<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel><title>Will Stott Blog</title>
<description>blogs mostly about topic in science, engineering, and technology with emphasis on agile and software development in the Microsoft stack.</description>
<generator>Miniblog.Core</generator>
<link>https://www.willstott.org/</link>
<item>
  <title>Genes, proteins &amp; biological function</title>
  <link>https://www.willstott.org/blog/science-bio-cellsandproteins-intro/</link>
  <description>&lt;h1&gt;Tutorial: Brief introduction to how life works&lt;/h1&gt;
&lt;p&gt;Watching the David Attenborough documentary series &amp;ldquo;&lt;a title="https://en.wikipedia.org/wiki/Life_on_Earth_(TV_series)" href="https://en.wikipedia.org/wiki/Life_on_Earth_(TV_series)" target="_blank" rel="noopener"&gt;Life on Earth&lt;/a&gt;&amp;rdquo; you cannot fail to be awestruck by the splendour and diversity of life on our plant, but it also begs the question: how did it all begin? Whilst there is currently no definitive answer to that question, science does at least provide an insight into the basic mechanics that allow life to exist and evolve. Fundamentally these mechanisms are easy to understand and have a certain beauty in their simplicity, though what they lead towards is exquisitely complex and mysterious. The aim of this tutorial is to explain these simple mechanisms to give you a better appreciation of how life at this microscopic level impacts our world in terms of things like cancer, genetic diseases, or the Covid-19 catastrophe.&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;If should take you about 30 minutes to read this post. You should have no difficulty understanding its content if you already know some school level science such as the role of &lt;a style="color: #808080;" title="https://en.wikipedia.org/wiki/Molecule" href="https://en.wikipedia.org/wiki/Molecule" target="_blank" rel="noopener"&gt;molecules&lt;/a&gt; in chemistry and &lt;a style="color: #808080;" title="https://en.wikipedia.org/wiki/Cell_(biology)" href="https://en.wikipedia.org/wiki/Cell_(biology)" target="_blank" rel="noopener"&gt;cells&lt;/a&gt; in biology. You will encounter a few technical terms, but they are introduced by explanations or have links to full descriptions.&amp;nbsp;&amp;nbsp;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Genes"&gt;Genes&lt;/a&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#GenesLocation"&gt;Where are our genes found?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#GenesRoleDNA"&gt;The role of DNA and chromosomes in storing genetic instructions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="#Proteins"&gt;Proteins&lt;/a&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#ProteinsAminoAcidChains"&gt;Going from amino acids to biological function&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ProteinsGeneSequences"&gt;How genes sequences code for amino acid sequences&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ProteinsAminoAcidAssembly"&gt;How amino acid chains are assembled&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ProteinsFolding"&gt;Folding of the amino acid chain&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ProteinsRegulation"&gt;Protein regulation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ProteinsBiologicalProcesses"&gt;Roles of proteins in biological processes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="#Mutations"&gt;Mutations&lt;/a&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#MutationsProteins"&gt;Impact of protein mutations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#MutationsGeneticCode"&gt;Genetic code mutations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#MutationsTimescales"&gt;Mutational timescales and evolution&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="#Summary"&gt;Summary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#FurtherReading"&gt;Further reading&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#RelatedPosts"&gt;Related Posts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#References"&gt;References&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Genes"&gt;Genes&lt;/h2&gt;
&lt;h3 id="GenesLocation"&gt;Where are our genes found?&lt;/h3&gt;
&lt;p&gt;The fundamental unit of a living organism is the cell. The variety of life arises from the diversity of form and function of the cell which can exist independently as a &lt;a title="https://en.wikipedia.org/wiki/Unicellular_organism" href="https://en.wikipedia.org/wiki/Unicellular_organism" target="_blank" rel="noopener"&gt;single cell organism&lt;/a&gt;, or can be assembled into large multicellular organisms like ourselves. Given this diversity cells are remarkably similar in terms of their chemistry, the mechanisms they use to perform their functions, and their internal structures. The basic structure of a cell is shown in Figure 1. The ability to reproduce cells is a fundamental feature of all living organisms. Cell reproduction happens at the moment of conception, but it also happens in our bodies all the time. It involves the splitting of a cell to produce two new cells each with their own chemistry, internal mechanisms, and complete set of genetic instructions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img src="/Posts/files/Genes-Cell-Fig1_637476173011554935.jpg" alt="Basic structures common to most cells" width="823" height="490" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 1: The basic structures common to most cells&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Our ideas about what constitutes a life-form are heavily influenced by what we see as the basic properties of cells, specifically an ability to grow, reproduce, adapt, convert energy into a form it can use, maintain its internal environment, and respond to stimuli [&lt;a title="Ref1" href="#Ref1" target="_blank" rel="noopener"&gt;Ref 1&lt;/a&gt;]. Each of these properties is key to understanding life as we know it, but let&amp;rsquo;s focus on the basic mechanism that underpins them all &amp;ndash; the production of proteins from a set of genetic instructions called genes. All human genes are contained in our &lt;a title="https://en.wikipedia.org/wiki/Chromosome" href="https://en.wikipedia.org/wiki/Chromosome" target="_blank" rel="noopener"&gt;chromosomes&lt;/a&gt; which are stored in the nucleus of most cells.&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;Humans have 23 pairs of chromosomes which are identical in most of our cells. The key exception are the sex cells created in the testes (male) or ovaries (female) which contain a single set of 23 chromosomes. During conception the chromosomes from the male and female sex cells mix to produce a single cell with the normal 23 pairs which forms the basis of a new individual.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="GenesRoleDNA"&gt;The role of DNA and chromosomes in storing genetic instructions&lt;/h3&gt;
&lt;p&gt;Each of our chromosomes contains a specific group of genes held within collections of Deoxyribonucleic acid (&lt;a title="https://en.wikipedia.org/wiki/DNA" href="https://en.wikipedia.org/wiki/DNA" target="_blank" rel="noopener"&gt;DNA&lt;/a&gt;) molecules. These DNA molecules are formed by linking together much smaller nucleotide molecules into long chains that coil around each other to form the well-know double helix structure shown in Figure 2. Each of these nucleotide molecules contain a phosphate backbone molecule which acts like the link in a chain as well as one of four base molecules which carry a code; adenine (A), guanine (G), cytosine (C) and thymine (T). Our genetic code is formed by sequences of these bases linked together in a DNA chain, like ACTGATTGT, though typically meaningful sequences are considerably longer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img src="/Posts/files/Genes-DNA-Fig2_637476173012655232.jpg" alt="The helical structure of DNA" width="850" height="390" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 2: The helical structure of DNA first reported by &lt;a title="https://www.nature.com/scitable/topicpage/discovery-of-dna-structure-and-function-watson-397/" href="https://www.nature.com/scitable/topicpage/discovery-of-dna-structure-and-function-watson-397/" target="_blank" rel="noopener"&gt;Crick and Watson in 1953&lt;/a&gt;&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;The size of a DNA molecule is usually expressed in terms of the number of base-pairs (bp) it contains as DNA is actually formed from two complementary chains of nucleotides as shown in Figure 2. However as each chain contains the same genetic information, its length is often given in terms of the bases (b) in one chain.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="Proteins"&gt;Proteins&lt;/h2&gt;
&lt;h3 id="ProteinsAminoAcidChains"&gt;Going from amino acids to biological function&lt;/h3&gt;
&lt;p&gt;Amino acids are the building blocks of life in that they are the small molecules from which all proteins are assembled. A protein is simply a particular sequence of amino acids folded into a three dimensional molecular structure so it can interact with other biological molecules, including other proteins. Proteins provide all the cell&amp;rsquo;s various functions whether acting as enzymes to catalyse biochemical reactions, providing structural support, sending messages to other cells, or even orchestrating an immune response.&amp;nbsp; Most cells are specialised to perform a particular function and collections of cells in a given organ collaborate to achieve a higher level function. For example, your heart contains muscle cells which produce proteins allowing them to contract. It also contains other specialised cells which produce proteins for sending messages to groups of nearby muscle cells telling them when to contract. Thus the various groups of cells in your heart with their different functions collaborate to pump blood around your body; a key biological function.&lt;/p&gt;
&lt;p&gt;Our genetic instructions, or genes, tell a cell how to build proteins. A small protein might be defined by sequence of between 150 and 1,000 bases in a much longer chain of DNA. However, large proteins can be ten or twenty times as long. The human genome, our entire genetic code,is estimated to contain approximately 3 billion bases whereas E. coli bacteria has a genome with only approximately 4.6 million bases.&lt;/p&gt;
&lt;p&gt;It is estimated that only 2% of the human genome contains code for producing useful proteins [&lt;a title="Ref 2 " href="#Ref1" target="_blank" rel="noopener"&gt;Ref 2&lt;/a&gt;]. The remainder of our genome was once thought to consist mainly of what is termed &lt;a title="https://www.advancedsciencenews.com/that-junk-dna-is-full-of-information/" href="https://www.advancedsciencenews.com/that-junk-dna-is-full-of-information/" target="_blank" rel="noopener"&gt;junk DNA&lt;/a&gt; - sequences of codes the have become corrupted during our evolution so they no longer form useful proteins. However, it is now estimated that 80% of such areas have important functions such as regulating which proteins should be produced and in what circumstances.&lt;/p&gt;
&lt;h3 id="ProteinsGeneSequences"&gt;How genes sequences code for amino acid sequences&lt;/h3&gt;
&lt;p&gt;Our genetic instructions, or genes, act like the sequence of binary codes that control a computer. In the same way that the values in a sequence of bits like 10000111 define a particular processor instruction such as ADD, the values in a gene sequence tell the cell how to assemble a sequence of amino acids into a chain. However, unlike computer code, there are only three types of instruction; start a chain, terminate (stop) a chain, and add a specified amino acid to the chain. Each instruction is defined by a series of three bases, called a &lt;a title="https://www.genome.gov/genetics-glossary/Codon" href="https://www.genome.gov/genetics-glossary/Codon" target="_blank" rel="noopener"&gt;codon&lt;/a&gt;. Therefore the gene sequence &amp;lsquo;ATG,GTT,AAA,GAC,TAA&amp;rsquo; has five codons the first of which marks the start of a protein sequence and the last of which marks its end, whilst those in-between code for the amino acids in the chain, in this case Valine (GTT), Lysine (AAA) and Aspartic Acid (GAC).&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;A chain with at least 20 amino acids is needed to produce the smallest functional protein, but a chain can contain as many as 30,000 amino acids in the case of some of the longest proteins.&lt;/em&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h3 id="ProteinsAminoAcidAssembly"&gt;How amino acid chains are assembled&lt;/h3&gt;
&lt;p&gt;A process called &lt;a title="https://www.genome.gov/genetics-glossary/Transcription" href="https://www.genome.gov/genetics-glossary/Transcription" target="_blank" rel="noopener"&gt;transcription&lt;/a&gt; occurs in the nucleus and copies the part of DNA responsible for coding a specific protein into a new molecular chain of nucleotides called Ribonucleic Acid (&lt;a title="https://en.wikipedia.org/wiki/RNA" href="https://en.wikipedia.org/wiki/RNA" target="_blank" rel="noopener"&gt;RNA&lt;/a&gt;). The RNA molecule has a number of different roles, so in transcription it is called &lt;em&gt;messenger RNA&lt;/em&gt; (mRNA) which reflects its function in passing the genetic code through the nucleus wall to cellular machinery responsible for making it into a protein; the Ribosome.&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;DNA and RNA have the same A,G, and C bases, but in RNA the base Uracil (U) replaces the DNA base thymine (T). The backbone of RNA is also formed from ribose instead of a deoxyribose sugar molecule and forms a single strand.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Protein synthesis happens in the cell&amp;rsquo;s Ribosomes and involves the construction of a chain of &lt;a title="https://en.wikipedia.org/wiki/Amino_acid" href="https://en.wikipedia.org/wiki/Amino_acid" target="_blank" rel="noopener"&gt;amino acids&lt;/a&gt; which then fold into a functioning protein. These amino acids circulate outside the nucleus in the cell&amp;rsquo;s cytoplasm. There are &lt;a title="https://www.ncbi.nlm.nih.gov/Class/Structure/aa/aa_explorer.cgi" href="https://www.ncbi.nlm.nih.gov/Class/Structure/aa/aa_explorer.cgi" target="_blank" rel="noopener"&gt;20 standard types of amino acids&lt;/a&gt; in human cells. Some of them are are absorbed as part of the digestive process, but most are just fragments of old cell proteins which have been broken down by other cellular processes. Small molecules of RNA called &lt;em&gt;transport RNA&lt;/em&gt; (tRNA) are also circulating in the cytoplasm and bind to particular amino acids depending upon the four possible values contained in the three bases in their anti-codon. In this way individual amino acids are carried to the Ribosome which is then responsible for assembling them in the order specified by the mRNA &amp;ndash; a process called &lt;a title="https://www.genome.gov/genetics-glossary/Translation" href="https://www.genome.gov/genetics-glossary/Translation" target="_blank" rel="noopener"&gt;translation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The creation of a chain of amino acids starts with mRNA binding to a particular subunit of the Ribosome called &lt;a title="https://en.wikipedia.org/wiki/Eukaryotic_small_ribosomal_subunit_(40S)" href="https://en.wikipedia.org/wiki/Eukaryotic_small_ribosomal_subunit_(40S)" target="_blank" rel="noopener"&gt;40S&lt;/a&gt;. This subunit then works its way along the mRNA chain three nucleotides at a time until it identifies a start codon. At this point the Ribosome exposes the next codon of the mRNA so that binding can take place to a nearby tRNA molecule, but only one with a set of bases that are complementary to those of the exposed codon. In this way the first amino acid in the chain is precisely positioned by the bond between its tRNA and the exposed codon of the mRNA, as held by the Ribosome. The Ribosome then exposes the next codon of the mRNA and the process repeats, except this time a different subunit of the Ribosome called 60S orchestrates the bonding of its associated amino acid to the previous one, still held by its tRNA, so forming the first link in the chain. The tRNA molecule attached to the first amino acid is then released so it can be recycled. The Ribosome continues to crank through the mRNA in this manner, assembling the required chain of amino acids step by step, until it reaches a stop codon. At this point the chain of amino acids is complete so it is released by the Ribosome. The process of building an amino acid chain is summarised in Figure 3, but the &lt;a title="https://www.youtube.com/watch?reload=9&amp;amp;v=TfYf_rPWUdY" href="https://www.youtube.com/watch?reload=9&amp;amp;v=TfYf_rPWUdY" target="_blank" rel="noopener"&gt;animated video&lt;/a&gt; produced by the DNA Learning Centre brings it to life.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img src="/Posts/files/Genes-mRNA-Fig3_637476173013083547.jpg" alt="Assemby of amino acids by the Ribosome" width="875" height="483" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 3: Assembly of amino acids by the Ribosome&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="ProteinsFolding"&gt;Folding of the amino acid chain&lt;/h3&gt;
&lt;p&gt;A functioning protein is a three dimensional structure so the linear chain of amino acids needs to fold into a particular shape much like the way a cube is formed from a flat piece of paper as shown in Figure 4. Scientific knowledge about how proteins fold is limited so it is difficult to predict how a given amino acid sequence will form into a three dimensional structure with any degree of certainty. Accordingly it is usually necessary to work backwards and deduce structural information bit by bit by analysing samples of the final protein using techniques like &lt;a title="https://en.wikipedia.org/wiki/X-ray_crystallography" href="https://en.wikipedia.org/wiki/X-ray_crystallography" target="_blank" rel="noopener"&gt;x-ray diffraction&lt;/a&gt; or &lt;a title="https://en.wikipedia.org/wiki/Electron_microscope" href="https://en.wikipedia.org/wiki/Electron_microscope" target="_blank" rel="noopener"&gt;electron microscopy&lt;/a&gt;. These methods may take years to complete, but have great value as knowing the three dimensional structure of a protein is key to understanding its interaction with other biological molecules and so how it functions.&lt;img src="/Posts/files/Genes-Folding-Fig4_637476175783646149.jpg" alt="Genes-Folding-Fig4.jpg" width="1305" height="425" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 4: Folding of a two dimensional shape to form a three dimensional object &lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;November 2020 Google&amp;rsquo;s &lt;a style="color: #808080;" title="https://deepmind.com/blog/article/alphafold-a-solution-to-a-50-year-old-grand-challenge-in-biology" href="https://deepmind.com/blog/article/alphafold-a-solution-to-a-50-year-old-grand-challenge-in-biology" target="_blank" rel="noopener"&gt;DeepMind AI project&lt;/a&gt; claimed to reached a major milestone in terms of predicting the way any given amino acid sequence would fold into a protein [&lt;a style="color: #808080;" title="Ref 3" href="#Ref3" target="_blank" rel="noopener"&gt;Ref 3&lt;/a&gt;]. This achievement may represent a major break-through as it opens the way for faster and better predictions of how a change in the amino acid sequence might alter the way the protein functions, allowing in turn improved assessments about the impact of mutations.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="ProteinsRegulation"&gt;Protein regulation&lt;/h3&gt;
&lt;p&gt;The production of proteins in a cell is called &lt;a title="https://en.wikipedia.org/wiki/Gene_expression" href="https://en.wikipedia.org/wiki/Gene_expression" target="_blank" rel="noopener"&gt;gene expression&lt;/a&gt; and depends upon the needs of the cell. Some genes are always expressed, but others are switched-on and off allowing control of the timing, location and amount of a given protein being produced to change in response to environmental conditions. The mechanisms that regulate gene expression are not completely understood, but they have an important role in overall biological function in terms of ensuring that the correct types of proteins are present at the correct time and in sufficient numbers to allow the various chemical reactions in the cell to proceed. It is these reactions that provide the basis of most biological processes.&lt;/p&gt;
&lt;h3 id="ProteinsBiologicalProcesses"&gt;Roles of proteins in biological processes&lt;/h3&gt;
&lt;p&gt;Biological processes usually involve making some form of chemical transformation to a molecule, called the &lt;a title="https://en.wikipedia.org/wiki/Substrate_(chemistry)" href="https://en.wikipedia.org/wiki/Substrate_(chemistry)" target="_blank" rel="noopener"&gt;substrate&lt;/a&gt;. Typically this transformation of the substrate is performed in a number of steps to form what is known as a &lt;a title="https://en.wikipedia.org/wiki/Metabolic_pathway" href="https://en.wikipedia.org/wiki/Metabolic_pathway" target="_blank" rel="noopener"&gt;metabolic pathway&lt;/a&gt;. Each step, like splitting the substrate in two or bonding it to another molecule, performs a small chemical reaction to prepare it for the next step.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Certain types of proteins called &lt;a title="https://en.wikipedia.org/wiki/Enzyme" href="https://en.wikipedia.org/wiki/Enzyme" target="_blank" rel="noopener"&gt;enzymes&lt;/a&gt; have an important role in these chemical reactions as their amino acids are folded in such a way as to facilitate the formation of chemical bonds between a part called its &lt;a title="https://en.wikipedia.org/wiki/Active_site" href="https://en.wikipedia.org/wiki/Active_site" target="_blank" rel="noopener"&gt;active site&lt;/a&gt; and a particular part of the substrate called a &lt;a title="https://en.wikipedia.org/wiki/Binding_site" href="https://en.wikipedia.org/wiki/Binding_site" target="_blank" rel="noopener"&gt;binding site&lt;/a&gt;. The enzyme might then bind to another molecule&amp;rsquo;s binding site thereby bringing it close to the substrate to make the formation of a&amp;nbsp; &lt;a title="https://en.wikipedia.org/wiki/Chemical_bond" href="https://en.wikipedia.org/wiki/Chemical_bond" target="_blank" rel="noopener"&gt;chemical bond&lt;/a&gt; between the two of them more likely as shown in Figure 5. Once the enzyme has performed its role as matchmaker it detaches so can be recycled and do the same again with another substrate. Therefore an enzyme can be described as a catalyst. It speeds-up reactions between a substrate and its associated molecules by bring them together in a suitable orientation; something that might take a considerable time if left solely to chance.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Posts/files/Genes-Enzyme-Fig5_637476175784428665.jpg" alt="Genes-Enzyme-Fig5.jpg" width="1380" height="575" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 5: Enzyme binds to two molecules to help them react together&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;An enzyme can also act in other ways. For example, it can attach to binding site in the substrate and then brake some of its nearby chemical bonds so helping it to split in two. There are large numbers of different types of enzymes and reactions in metabolic pathways are typically controlled by activating or deactivating them. Most of the major metabolic pathways, like those concerned with energy production, are well understood. However, many other pathways are still largely unknown. The dynamic interaction between pathways to achieve high level biological function are even less understood; similarly the mechanisms that govern when particular pathways are activated and the cell signalling that coordinates them.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h2 id="Mutations"&gt;Mutations&lt;/h2&gt;
&lt;h3 id="MutationsProteins"&gt;Impact of protein mutations&lt;/h3&gt;
&lt;p&gt;The construction of a chain of amino acids from a DNA template is not an error free process, so sometimes the chain contains an error (mutation) which causes it to fold into a slightly different three dimensional structure. This may result in the production of a protein with different properties. For example, a protein that acts as an enzyme with a small mutation in its active site may bond less easily with the substrate&amp;rsquo;s binding site because the change in shape causes them to fit together less well, much like small damage to a key just makes it more difficult for you to activate its lock. The change may even be sufficient to stop it catalysing the chemical reaction completely. However, a mutation in an enzyme occasionally has the reverse effect and makes bonding easier. This may improve the efficiency of the associated biological process and thereby confer significant advantage to the organism. Consequently some mutations in enzymes and other proteins may help an organism to become better adapted to its environment. For this reason a certain rate of mutation is beneficial, but it must not be so high as to cause a chaotic effect in terms of protein function.&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;Protein synthesis in the Ribosome may be companied by error correcting mechanisms like &lt;a style="color: #808080;" title="https://en.wikipedia.org/wiki/Proofreading_(biology)" href="https://en.wikipedia.org/wiki/Proofreading_(biology)" target="_blank" rel="noopener"&gt;proof reading&lt;/a&gt; which correct errors made during assembly of the amino acid chain. This makes the protein more resilient to mutation and so more stable. The nature of the genetic code itself also acts to reduce the rate at which proteins mutate.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="MutationsGeneticCode"&gt;Genetic code mutations&lt;/h3&gt;
&lt;p&gt;Mutations in an amino acid chain are usually the result of the incorrect bonding of nucleotides during the copying of DNA to mRNA which cause errors in the genetic code arriving at the Ribosome. However there is some tolerance for such errors as different codon values may code for the same amino acid so allowing for some degree of self-correction. This replication happens because there are more permutations for the value of a codon (64) than the number of amino acids (20) and the required control instructions (start, stop). Therefore, given both GUU and GUC code for the same amino acid (Valine), a mutation of U to a C in the third base of the codon GUU will self-correct as both GUU and GUC code for Valine. Most amino acids have at least one such replicated nucleotide code and some have as many as four. In addition there are also replications for the stop instruction, though not for the start instruction which is always AUG.&lt;/p&gt;
&lt;p&gt;Despite the self-correcting nature of the code, some errors still persist. They have three basic forms: a &lt;em&gt;deletion&lt;/em&gt; whereby a nucleotide is missed from the sequence, an &lt;em&gt;insertion&lt;/em&gt; whereby additional nucleotides are added into the sequence, and a &lt;em&gt;substitution&lt;/em&gt; whereby or one nucleotide may take the place of another. These types of errors can be further described in terms of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Loss or gain of a single nucleotide&lt;/strong&gt; in a coding region means each following nucleotide ends-up in the wrong codon. This is called a &lt;strong&gt;framing error&lt;/strong&gt;. For example, in sequence AUG,GUU,AAA the loss of the first A in the first codon of the means the first codon changes to UGG and the second becomes UUA, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Substitution of a single nucleotide&lt;/strong&gt; in a coding region means the associated codon may code for a different amino acid; a &lt;strong&gt;missense mutation&lt;/strong&gt;. For example a substitution of the middle base adenine (A) for guanine (G) in the codon AAA would make it code for Arginine (AGA) rather than for Lysine (AAA). However, due to the self-correcting nature of the code the change of a single nucleotide may still code for the same amino acid &amp;ndash; this is called a &lt;strong&gt;synonymous mutation&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gain of a start/stop codon&lt;/strong&gt; by substitution of one or more nucleotides to form a start (AUG), or stop codon (UAA, UAG, UGA) are usually significant. A gained start codon will prematurely initiate a new coding region so the following codons code for an amino acid sequence that will be prepended to the usual sequence for the protein. Conversely a gained stop codon in an existing coding region will truncate the amino acid synthesis for the protein at that point.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Loss of a start/stop codon&lt;/strong&gt; by substitution or loss of one or more nucleotides in the codon that forms a start or stop codon typically cause major damage to the protein. A lost start codon prevents the protein from being synthesised, whereas a lost stop codon will cause protein synthesis to continue until the next start codon.&lt;/li&gt;
&lt;ul&gt;&lt;!--StartFragment--&gt;&lt;/ul&gt;
&lt;li&gt;&lt;strong&gt;Loss or gain of a group of three nucleotides&lt;/strong&gt; will result in the removal or addition of one or more amino acids to the protein being synthesised. Sometimes quite long strings of amino acids are lost or gained resulting in significant changes in protein function.&lt;!--EndFragment--&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mutation in a sequence that doesn&amp;rsquo;t code for a protein&lt;/strong&gt; will clearly not alter any protein, though it may change protein regulation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The impact of a genetic mutation on the functioning of a protein depends on where it occurs and what form it takes. For example, the gain of a stop codon in the middle of the coding sequence associated with the creation of an enzyme&amp;rsquo;s active site may well cause a complete loss of function by preventing the site from achieving the shape it needs to fit into the substrate&amp;rsquo;s binding site. However, a minor mutation like the loss of an amino acid in the same place may only slightly change the shape of the active site making it fit less perfectly so making the the enzyme less effective, though it could equally improve the fit and have the reverse effect. The majority of genetic mutations either have no effect on the final protein because they occur in a coding region that is unimportant for its function, or have some catastrophic effect&amp;nbsp; causing a complete loss of function. It is only the few mutations that improve the functioning of the final protein that have evolutionary significance and even then only if they can be passed to the next generation.&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;A virus cannot be called an organism as it lacks some of the properties that define a cell. However, it is able to hijack mechanisms in its host cells in order to replicate and in this way its genetic mutations are passed to subsequent generations. Therefore a mutation that confers some significant advantage, like a change in a protein which allows it to enter host cells more easily, will lead to it becoming more dominant in a local population by out-competing forms of the virus that do not have the mutation.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="MutationsTimescales"&gt;Mutational timescales and evolution&lt;/h3&gt;
&lt;p&gt;The common chemistry and structure of cells so far discovered in all organisms of whatever lineage strongly suggests that they have all evolved from some chance alignment of amino acids from which self-replicating proteins developed into the very first cell on Earth [&lt;a title="Ref 4" href="#Ref4" target="_blank" rel="noopener"&gt;Ref 4&lt;/a&gt;]. This evolution has taken a very long time, for the Earth is estimated to be 4.54 billion years old and it is thought that the first single-celled organisms started to emerge about 3.5 billion years ago. It wasn&amp;rsquo;t until about 600 million years ago that simple multicellular organisms started to appear. Going back 210 million years the earliest mammals arrived and they were followed by mankind&amp;rsquo;s oldest relatives, the hominids, which arrived 4.4 million years ago. The earliest signs of our species, Homo sapiens, date back just 300,000 years. Therefore it might be concluded that evolution has lead to the development of complexity which has grown exponentially as simple structures have become more ever more complex to better exploit their environment.&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;Viruses are very simple in terms of their structure, but can replicate and spread amongst host organisms very quickly.&amp;nbsp; For example the new strain of the coronavirus, SARS-Cov-2, evolved and within a year spread throughout the world infecting almost 100 million people.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="Summary"&gt;Summary&lt;/h2&gt;
&lt;p&gt;Science has come a long way since the structure of DNA was reported by Crick and Watson in 1953, but is still far from being able to use the information it contains in order to master disease, or exercise control over life with any certainty of the outcome. However, the basic building blocks of life, amino acids, have been studied in great detail and are well understood. Similarly the way in which amino acids are assembled into long chains following a particular sequence of types according to codes formed in our genes is no longer a mystery due to advances in Genomics.&lt;/p&gt;
&lt;p&gt;Unfortunately the folding of&amp;nbsp; amino acid chains into functional proteins is less well understood, so too is the way such proteins orchestrate many higher level biological functions. This is because biological function depends on the three dimensional structure of the protein which is generally difficult to predict from a given amino acid sequence. Furthermore, even if it is known how the structure of a protein impacts a particular chemical reaction, knowledge about the role of this reaction in a particular metabolic pathway may be incomplete, as may the dynamic mechanisms required for the interactions of such pathways to achieve a given biological function. Therefore, at present, science cannot predict with any certainty the effect of most changes in the amino acid sequence of a protein.&lt;/p&gt;
&lt;p&gt;In time science will develop the sort of complex computer models necessary to calculate the behaviour of proteins from their amino acid sequences and their role in the dynamic metabolic pathways that result in higher level biological function. This will allow the rapid and reliable prediction of the impact of genetic mutations &lt;em&gt;in silico&lt;/em&gt; leading to a transformation in our understanding of many diseases as well as the development of much better treatments. In the meantime science will continue to work &lt;em&gt;in vitro&lt;/em&gt; to look at changes in biological function and work backwards to determine the amino acid changes that may have caused it; something that requires extensive and time consuming laboratory study. However, it is these same methods that have allowed us to understand how life works, even if we don&amp;rsquo;t yet understand its ultimate cause and reason.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;If you found this post useful please help raise my profile by providing a link on your social media account; just click the buttons at the top of the page. You can also add a comment or contact me by email, but I can&amp;rsquo;t promise to respond immediately.&amp;nbsp;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;img src="/Posts/files/ClickToShare_637480254971626474.jpg" alt="ClickToShare.jpg" width="384" height="111" /&gt;&lt;/em&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="FurtherReading"&gt;Further reading&lt;/h2&gt;
&lt;h3&gt;Popular Science Books&lt;/h3&gt;
&lt;p&gt;The following books provide more detail about some of the topics discussed in this post and are aimed at a general audience:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DNA The Secret of Life; James D. Watson [Ref 5]&lt;/li&gt;
&lt;li&gt;Gene Machine: The Race to Decipher the Secrets of the Ribosome; Ramakrishnan V. [ref 6]&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Text Books&lt;/h3&gt;
&lt;p&gt;People studying life sciences or medicine may find the following books useful:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Essential Cell Biology; Alberts B, Hopkin K, et al&amp;nbsp; [ref 7]&lt;/li&gt;
&lt;li&gt;Genomes 4; Brown TA [ref 8]&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Internet Sources&lt;/h3&gt;
&lt;p&gt;The internet provides a vast amount of information about the topics discussed in this post, but the following are particularly recommended:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Berg JM, Tymoczko JL, Stryer L. Amino Acids Are Encoded by Groups of Three Bases Starting from a Fixed Point. Biochemistry 5th edition [Internet]. 2002. Available from: &lt;a href="https://www.ncbi.nlm.nih.gov/books/NBK22358/"&gt;https://www.ncbi.nlm.nih.gov/books/NBK22358/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Cooper GM. The Origin and Evolution of Cells. The Cell: A Molecular Approach 2nd edition [Internet]. 2000 [cited 2021 Jan 14]; Available from: &lt;a href="https://www.ncbi.nlm.nih.gov/books/NBK9841/"&gt;https://www.ncbi.nlm.nih.gov/books/NBK9841/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Human Genome Project FAQ [Internet]. Genome.gov. Available from: &lt;a href="https://www.genome.gov/human-genome-project/Completion-FAQ"&gt;https://www.genome.gov/human-genome-project/Completion-FAQ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="RelatedPosts"&gt;Related Posts&lt;/h2&gt;
&lt;p&gt;This tutorial provides an introduction to the following posts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a title="https://www.willstott.org/blog/science-med-c19-variantB117/" href="https://www.willstott.org/blog/science-med-c19-variantB117/" target="_blank" rel="noopener"&gt;Emergence of SARS-Cov-2 variant B.1.1.7&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="References"&gt;References&lt;/h2&gt;
&lt;p&gt;The following sources of information are referenced in this post:&lt;/p&gt;
&lt;ol&gt;
&lt;li id="Ref1"&gt;Alberts B, Hopkin K, Johnson AD, Morgan D, Raff M. Essential Cell Biology. Fifth-International Student Edition. New York (NY): W. W. Norton &amp;amp; Company; 2019. 750 p.&lt;a title="https://www.amazon.co.uk/Essential-Cell-Biology-Bruce-Alberts/dp/0393680398" href="https://www.amazon.co.uk/Essential-Cell-Biology-Bruce-Alberts/dp/0393680398"&gt;https://www.amazon.co.uk/Essential-Cell-Biology-Bruce-Alberts/dp/0393680398&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref2"&gt;Elkon R, Agami R. Characterization of noncoding regulatory DNA in the human genome. Nature Biotechnology. 2017 Aug;35(8):732&amp;ndash;46. Available from &lt;a title="https://www.nature.com/articles/nbt.3863" href="https://www.nature.com/articles/nbt.3863"&gt;https://www.nature.com/articles/nbt.3863&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li id="Ref3"&gt;Timmer J. DeepMind AI handles protein folding, which humbled previous software [Internet]. Ars Technica. 2020. Available from: &lt;a href="https://arstechnica.com/science/2020/11/deepmind-ai-handles-protein-folding-which-humbled-previous-software/"&gt;https://arstechnica.com/science/2020/11/deepmind-ai-handles-protein-folding-which-humbled-previous-software/&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref4"&gt;NASA Astrobiology [Internet]. Available from: &lt;a href="https://astrobiology.nasa.gov/news/how-did-multicellular-life-evolve/"&gt;https://astrobiology.nasa.gov/news/how-did-multicellular-life-evolve/&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref5"&gt;James D. Watson DNA The Secret of Life by Watson, ON Apr-01-2004, Paperback. Cornerstone; 2004 Available from &lt;a title="https://www.amazon.co.uk/Watson-Secret-Author-Apr-01-2004-Paperback/dp/B00NBMD4LQ" href="https://www.amazon.co.uk/Watson-Secret-Author-Apr-01-2004-Paperback/dp/B00NBMD4LQ"&gt;https://www.amazon.co.uk/Watson-Secret-Author-Apr-01-2004-Paperback/dp/B00NBMD4LQ&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref6"&gt;Ramakrishnan V. Gene Machine: The Race to Decipher the Secrets of the Ribosome. Oneworld Publications; 2019. 288 p. Available from &lt;a href="https://www.amazon.co.uk/Gene-Machine-Decipher-Secrets-Ribosome/dp/1786076713"&gt;https://www.amazon.co.uk/Gene-Machine-Decipher-Secrets-Ribosome/dp/1786076713&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref7"&gt;lberts B, Hopkin K, Johnson AD, Morgan D, Raff M. Essential Cell Biology. Fifth-International Student Edition. New York: W. W. Norton &amp;amp; Company; 2019. 750 p Available from: &lt;a title="https://www.amazon.co.uk/Essential-Cell-Biology-Bruce-Alberts/dp/0393680398/. " href="https://www.amazon.co.uk/Essential-Cell-Biology-Bruce-Alberts/dp/0393680398/. "&gt;https://www.amazon.co.uk/Essential-Cell-Biology-Bruce-Alberts/dp/0393680398/. &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Brown TA. Genomes 4. 4th edition. New York, NY: Garland Science; 2017. 544 p.&amp;nbsp; Available from &lt;a href="https://www.amazon.co.uk/Genomes-4-T-Brown/dp/081534508"&gt;https://www.amazon.co.uk/Genomes-4-T-Brown/dp/081534508&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;</description>
  <author>Will Stott</author>
  <category>bio</category>
  <category>science</category>
  <guid isPermaLink="false">https://www.willstott.org/blog/science-bio-cellsandproteins-intro/</guid>
  <pubDate>Mon, 04 Jan 2021 10:33:48 GMT</pubDate>
</item>
<item>
  <title>Covid-19: SARS-CoV-2 variant B.1.1.7</title>
  <link>https://www.willstott.org/blog/science-med-c19-variantb117/</link>
  <description>&lt;h1&gt;Briefing: What is known about variant B.1.1.7?&lt;/h1&gt;
&lt;p&gt;Christmas was all but cancelled for much of the UK because a new variant of the Coronavirus had been identified which seemed to explain the significant rise in infections observed throughout London and the South East during early December 2020. There was much comment in the media, but not much by way of scientific explanation in terms of the changes this new variant has, what they might mean, and how it might be different to previous variants. Even the name of this new variant wasn&amp;rsquo;t made clear. This briefing reviews the scientific literature in an attempt to answer such questions.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;It should take you about 30 minutes to read this post. You should be able to follow the material with only a basic knowledge of biology at the cellular level, but may find my post &lt;a style="color: #808080;" href="https://www.willstott.org/blog/science-bio-cellsandproteins-intro/" target="_blank" rel="noopener"&gt;Genes, proteins &amp;amp; biological function&lt;/a&gt; a useful introduction.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#IntroSARS-CoV-2"&gt;Introduction to SARS-CoV-2&lt;/a&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#IntroOrigins"&gt;Origin of SARS-CoV-2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#IntroGenome"&gt;Genomic structure of SARS-CoV-2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#IntroMutationRate"&gt;SARS-Cov-2 Mutation rate&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="#Variants"&gt;Brief introduction to SARS-CoV-2 variants&lt;/a&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#VariantsEmergence"&gt;How variants emerge&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#VariantsNaming"&gt;Naming of mutations and variants&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#VariantsLineage"&gt;Lineage of variants&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Variants2020"&gt;Variants of SARS-CoV-2 Emerging in 2020&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="#B-1-1-7"&gt;SARS-CoV-2 variant of concern: B.1.1.7&lt;/a&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#B-1-1-7-MutationList"&gt;Mutations in variant B.1.1.7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#B-1-1-7-SignificantMutations"&gt;B.1.1.7 mutations with particular significance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#B-1-1-7-Detection"&gt;Detection of B.1.1.7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#B-1-1-7-ClinicalImpact"&gt;Clinical Impact of B.1.1.7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#B-1-1-7-Spread"&gt;Spread of B.1.1.7 beyond UK&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="#General"&gt;General Implications&lt;/a&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#GeneralRiskGroups"&gt;Groups at risk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#GeneralFutureVariants"&gt;Future variants&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#GeneralHerdImmunity"&gt;Herd immunity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#GeneralVaccination"&gt;Vaccination&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="#Conclusion"&gt;Conclusion&lt;/a&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#ConclusionWhatIsKnown"&gt;What is known about B.1.1.7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ConclusionOpenQuestions"&gt;Open Questions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ConclusionDividend"&gt;Is there a Covid Dividend?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href="#RelatedPosts"&gt;Related Posts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#References"&gt;References&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="IntroSARS-CoV-2"&gt;Introduction to SARS-CoV-2&lt;/h2&gt;
&lt;h3 id="IntroOrigins"&gt;Origin of SARS-CoV-2&lt;/h3&gt;
&lt;p&gt;The disease &lt;a title="https://www.who.int/health-topics/coronavirus" href="https://www.who.int/health-topics/coronavirus" target="_blank" rel="noopener"&gt;Covid-19&lt;/a&gt; was first identified in the city of Wuhan (China) in late 2019. Researchers identified that it was caused by a new strain of the &lt;a title="https://en.wikipedia.org/wiki/Betacoronavirus" href="https://en.wikipedia.org/wiki/Betacoronavirus"&gt;beta coronavirus&lt;/a&gt; (CoV) previous strains of which had been identified as causing diseases in bats as well as being responsible for epidemics of &lt;a title="https://www.who.int/health-topics/severe-acute-respiratory-syndrome" href="https://www.who.int/health-topics/severe-acute-respiratory-syndrome" target="_blank" rel="noopener"&gt;SARS&lt;/a&gt; in China and of &lt;a title="https://www.who.int/health-topics/middle-east-respiratory-syndrome-coronavirus-mers" href="https://www.who.int/health-topics/middle-east-respiratory-syndrome-coronavirus-mers" target="_blank" rel="noopener"&gt;MERS&lt;/a&gt; in the Middle East [&lt;a title="Ref 1" href="#Ref1" target="_blank" rel="noopener"&gt;Ref 1&lt;/a&gt;]. This new strain was officially named as SARS-CoV-2 by The World Health Organisation (WHO) on 11 Feb 2020 [&lt;a title="Ref 2" href="#Ref2" target="_blank" rel="noopener"&gt;Ref 2&lt;/a&gt;].&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;New strains of a virus are usually given an official name by WHO when the change in its genome is significant enough to cause some distinct functional difference in the associated disease. Changes to a virus strain are called variants and a variety of different naming systems are used to identify them.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="IntroGenome"&gt;Genomic structure of SARS-CoV-2&lt;/h3&gt;
&lt;p&gt;SARS-CoV-2 is a non-segmented &lt;a title="https://en.wikipedia.org/wiki/RNA_virus" href="https://en.wikipedia.org/wiki/RNA_virus" target="_blank" rel="noopener"&gt;RNA virus&lt;/a&gt; and when first identified in January 2020 had 29,903 nucleotides [&lt;a title="Ref 3" href="#Ref3" target="_blank" rel="noopener"&gt;Ref 3&lt;/a&gt;]. Its genome, as summarised in Figure 1, contains a number of regions that code for &lt;a title="https://en.wikipedia.org/wiki/Viral_protein" href="https://en.wikipedia.org/wiki/Viral_protein" target="_blank" rel="noopener"&gt;viral structural proteins&lt;/a&gt; common to the coronavirus (CoV) family of viruses:&amp;nbsp; spike (S), envelope (E), membrane (M), nucleocapsid (N). There are also coding areas for 16 non-structural proteins some of which are common to other CoV viruses. These non-structural proteins are involved in its replication and are also associated with causing disease in the host organism [Ref &lt;a title="Ref 4" href="#Ref4" target="_blank" rel="noopener"&gt;4&lt;/a&gt;,&lt;a title="Ref 5" href="#Ref5" target="_blank" rel="noopener"&gt;5&lt;/a&gt;]. Finally there are nine regions that code for accessory proteins whose role is less well understood [&lt;a title="Ref 6" href="#Ref6" target="_blank" rel="noopener"&gt;Ref 6&lt;/a&gt;].&lt;/p&gt;
&lt;p&gt;&lt;img src="/Posts/files/SARS-CoV-2-Genome2_637478641189018393.jpg" alt="SARS-CoV-2-Genome2.jpg" width="3108" height="1656" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 1: Significant Proteins of the SARS-CoV-2 Genome [&lt;a title="Ref 7" href="#Ref7"&gt;Ref 7&lt;/a&gt;]&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;Viruses like SARS-CoV-2 in themselves lack some of the properties deemed essential for classification as a separate organism. Instead they use the machinery found in their human host cells to do things like replicate or generate the energy they need. Accordingly the term &lt;strong&gt;virus particle&lt;/strong&gt; it is more appropriate rather than virus cell.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="IntroMutationRate"&gt;SARS-Cov-2 Mutation rate&lt;/h3&gt;
&lt;p&gt;RNA viruses must hijack mechanisms in their hosts cells in order to replicate themselves. When this happens the chance of an error whilst copying any base molecule in their genome can be as high as 1 in 10,000 [&lt;a title="Ref 8" href="#Ref8" target="_blank" rel="noopener"&gt;Ref 8&lt;/a&gt;]. These errors, or mutations, then become copied in turn so the virus genome acquires further mutations at each generation. Such a high mutation rate allows the virus to adapt rapidly and exploit changes in its environment, but it also makes the virus prone to lethal mutation; mutations that stops it functioning or replicating. It is for this reason that many mutations do not manage to replicate further. In fact the observed rate of conserved mutations in SARS-CoV-2 is estimated at only two nucleotide mutations per month [Ref 9]. This is lower than expected for an RNA virus with such a large genome. It may be explained by the presence of the non-structural protein nsp14-ExoN found in the CoV family of viruses which seems to provide a &lt;a title="https://en.wikipedia.org/wiki/Proofreading_(biology)" href="https://en.wikipedia.org/wiki/Proofreading_(biology)" target="_blank" rel="noopener"&gt;proof reading mechanism&lt;/a&gt; that acts to increase the fidelity of base molecule copying during replication [&lt;a title="Ref 9" href="#Ref9" target="_blank" rel="noopener"&gt;Ref 9&lt;/a&gt;].&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;result in some areas of the genome becoming identified as mutational hotspots&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Although nucleotide mutations arise by chance throughout the SARS-CoV-2 genome, some bases like cytosine are more prone to mutation than others and certain sequences are similarly more to suffer mutations than others [&lt;a title="Ref 10" href="#Ref10" target="_blank" rel="noopener"&gt;Ref 10&lt;/a&gt;]. There are also certain areas of the genome in which mutations tend to be observed less often than others due to selective pressures. For example mutations in some locations of the coding area for a given protein might more readily lead to lethal mutation, whilst mutations in other locations might be better tolerated or repaired. Such factors, and others, result in some areas of the genome becoming identified as &lt;a title="https://en.wikipedia.org/wiki/Mutation_bias" href="https://en.wikipedia.org/wiki/Mutation_bias" target="_blank" rel="noopener"&gt;mutational hotspots&lt;/a&gt; [&lt;a title="Ref 11" href="#Ref11" target="_blank" rel="noopener"&gt;Ref 11&lt;/a&gt;].&lt;/p&gt;
&lt;h2 id="Variants"&gt;Brief introduction to SARS-CoV-2 variants&lt;/h2&gt;
&lt;h3 id="VariantsEmergence"&gt;How variants emerge&lt;/h3&gt;
&lt;p&gt;The process of &lt;a title="https://en.wikipedia.org/wiki/Natural_selection" href="https://en.wikipedia.org/wiki/Natural_selection" target="_blank" rel="noopener"&gt;natural selection&lt;/a&gt; ensures that SARS-CoV-2 virus particles containing a set of mutations which somehow improve their ability to replicate and thrive will become more numerous in a given local population. Eventually virus particles sharing a set of advantageous mutations will start to dominate the local population. This marks the emergence of a new variant of the virus. In time this new variant will itself become subject to the forces of natural selection as another variant starts to emerge; one which is even better adapted to the environment. This variant might arise from some mutations suffered by its predecessor, or might be non-related variant that has been imported from a different local population.&lt;/p&gt;
&lt;p&gt;Classifying virus particles according to the set of mutations they contain is a useful way to study the emergence of new variants. The whole genome sequence of SARS-CoV-2 can be determined from clinical respiratory samples using the same &lt;a title="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3841808/" href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3841808/" target="_blank" rel="noopener"&gt;Next-Generation Sequencing&lt;/a&gt; (NGS) methods commonly used in genomic research. The resulting sequences are usually deposited in publicly available databases like &lt;a title="https://www.gisaid.org" href="https://www.gisaid.org" target="_blank" rel="noopener"&gt;GISAID&lt;/a&gt; and &lt;a title="https://www.epicov.fr/" href="https://www.epicov.fr/" target="_blank" rel="noopener"&gt;EpiCov&lt;/a&gt; so new variants can be identified and their progression traced as a global effort.&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color: #ffffff; color: #808080;"&gt;&lt;em&gt;A total of 93,817 SARS-CoV-2 sequences had been deposited in the GISAID database by 6 September 2020. The UK accounted for the majority of these (38.9%), followed by USA (22.7%) with Australia, Spain, and India also making significant contributions [&lt;a style="background-color: #ffffff; color: #808080;" title="Ref 12" href="#Ref12" target="_blank" rel="noopener"&gt;Ref 12&lt;/a&gt;].&amp;nbsp; The large numbers of samples being sequenced in the UK means that new variants of the virus in this country are more likely to be detected sooner than elsewhere.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="VariantsNaming"&gt;Naming of mutations and variants&lt;/h3&gt;
&lt;p&gt;Mutations are often named by the location and type of a nucleotide mutation. For example A23403G is a mutation arising from the substitution of the base adenine (A) for guanine (G) which is 23,403 bases from the start of the SARS-CoV-2 genome.&amp;nbsp; However, when a mutation starts to become more frequently observed in a population it is identified as an emerging variant, traditionally according to the resultant change in the amino acid of the protein for which it codes. For example, the nucleotide mutation A23403G results in S.D614G, a change of aspartic acid (D) to glycine (G) in the 614th codon of the amino acid chain that codes for the spike protein (S). Accordingly the variant is named D614G.&lt;/p&gt;
&lt;p&gt;In the case of most viruses the mutations that give rise to variants involve changes to only one or two amino acids so a naming system based on the amino acid change is reasonable, but it becomes less so when there are multiple amino acid changes and new variants are emerging each month; the case in SARS-CoV-2. Therefore names are used which reflect the emerging variant&amp;rsquo;s origins (lineage). For example, the &lt;a title="https://cov-lineages.org" href="https://cov-lineages.org" target="_blank" rel="noopener"&gt;Pangolin&lt;/a&gt; system names D614G as B.1 showing that it is the first emerging variant from the B lineage linked to Wuhan [&lt;a title="Ref 13" href="#Ref13" target="_blank" rel="noopener"&gt;Ref 13&lt;/a&gt;] whereas in the &lt;a title="https://nextstrain.org" href="https://nextstrain.org" target="_blank" rel="noopener"&gt;Nextstrain&lt;/a&gt; system it is named 20I/D614G reflecting that variants in this branch are characterised by the S.D614G mutation whose parent was the ninth (I) SARS-CoV-2 variant to become dominant in 2020 (20) [&lt;a title="Ref 14" href="#Ref14" target="_blank" rel="noopener"&gt;Ref 14&lt;/a&gt;]. However, these naming systems struggled to keep pace with the changes in SAR-CoV-2 that are were happening throughout the world in 2020.&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;Nextstrain was obliged to create a number of new branch (clade) names in early January 2021, including 20I which resulted in the new name 20I/D614G for what was previously called 20B/D614G. Some Nextstrain clade names have also acquired a number to indicate a variant of concern, for example 501Y.V1 (UK) and 501Y.V2 (South Africa) and 501Y.V3 (Brazil).&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The Nextstrain and Pangolin naming systems both have their draw-backs, so not surprisingly neither has been adopted widely adopted outside the scientific community. Indeed, even some scientists have criticised the way SARS-CoV-2 variants are named; a situation described as a &lt;em&gt;&amp;lsquo;bloody mess&amp;rsquo;&lt;/em&gt; by the influential journal Nature [&lt;a title="Ref 15" href="#Ref15" target="_blank" rel="noopener"&gt;Ref 15&lt;/a&gt;]. Perhaps as&amp;nbsp; a consequence, the UK NERVTAG group experts have adopted a variant name system for SARS-CoV-2 that avoids including details of lineage. Instead it gives a general classification, followed by the year and month, followed by a unique number. Therefore in this system the variant 501Y.V1 is named VOC 202012/01 indicating it is the first &amp;lsquo;Variant Of Concern&amp;rsquo; named in December 2020.&lt;/p&gt;
&lt;h3 id="VariantsLineage"&gt;Lineage of variants&lt;/h3&gt;
&lt;p&gt;Studying the genetic differences between samples of viruses provides useful information not only about the relative dominance of a particular variant, but also about its lineage in terms of when and where the mutation first arose as well as its relationship to earlier mutations.&lt;/p&gt;
&lt;p&gt;A study by Koyama, Platt, and Parida [&lt;a title="Ref 16" href="#Ref16" target="_blank" rel="noopener"&gt;Ref 16&lt;/a&gt;] in May 2020 analysed the genetic sequences of 10,022 SARS-CoV-2 virus samples deposited from 68 countries in various databases against the reference genome NC_045512 [&lt;a title="Ref 3" href="#Ref3" target="_blank" rel="noopener"&gt;Ref 3&lt;/a&gt;]. The study found 65,776 mutations of the virus, but only 5,775 were identified as distinct variants. The second most frequently observed non-synonymous variant was S.D614G, observed in a total of 6294 samples. The locations and dates from which the samples containing the S.D614G variant were analysed together with the other variants. This work allowed the construction of a phylogenetic tree tracing the relationship between all the major mutations back to the reference genome, sequenced in December 2019 from samples obtained in Wuhan [&lt;a title="Ref 3" href="#Ref3" target="_blank" rel="noopener"&gt;Ref 3&lt;/a&gt;]. It initially had six major branches, or clades, the largest being S.D614G which had five subclade. However, many new clades were subsequently added as the virus spread and mutated.&lt;/p&gt;
&lt;p&gt;The &lt;a title="https://nextstrain.org/ncov/global" href="https://nextstrain.org/ncov/global" target="_blank" rel="noopener"&gt;Nextstrain website&lt;/a&gt; produces a similar phylogenetic tree which displays the lineage of variants identified from SARS-CoV-2 genome sequences that have been uploaded to the GISAID database. A screenshot of this website is shown in Figure 2. It&amp;rsquo;s tree displays the lineage of the major clades classified by Nextstrain in December 2020 together with the emerging clades arising from them. The corresponding map shows that the 20B clade is dominant in UK, whilst the 20A clade is more dominant in other parts of Europe.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img src="/Posts/files/NextstrainCades_637478641190769445.jpg" alt="NextstrainCades.jpg" width="1588" height="611" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 2: Lineage of SARS-Cov-2 B.1.1.7 classified by Nextstrain in December 2020&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="Variants2020"&gt;Variants of SARS-CoV-2 Emerging in 2020&lt;/h3&gt;
&lt;p&gt;SARS-Cov-2 is the first Coronavirus to cause a global pandemic. Although its mutation rate is low compared to other RNA viruses, it prevalence in such a large number of local populations has resulted in the emergence of many variants in the 12 months since it was first identified. Some of the most notable include:&lt;/p&gt;
&lt;h4&gt;&lt;span style="font-weight: bold;"&gt;&lt;u&gt;20A (B.1)&lt;/u&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;It is defined by the amino acid mutation S.D614G. It emerged in January 2020 and soon became the dominant lineage in Europe before spreading to the United States, Canada and Australia.&lt;/p&gt;
&lt;p&gt;Lab experiments suggest the mutation enhances viral load in the upper respiratory tract so may increase the chance of infection, though it was not found to reduce the effectiveness of vaccines [&lt;a title="Ref 17" href="#Ref17" target="_blank" rel="noopener"&gt;Ref 17&lt;/a&gt;].&lt;/p&gt;
&lt;h4&gt;&lt;span style="font-weight: bold;"&gt;&lt;u&gt;20B (B.1.1)&lt;/u&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;It is defined by the additional amino acid mutations N.R203K, N.G204R, ORF14.G50N. It emerged in February 2020 and some child variants have become the dominant strain in UK. One of particular interest is the main subject of this post; B.1.1.7.&lt;/p&gt;
&lt;h4&gt;&lt;u&gt;&lt;strong&gt;20E.EU1 (B.1.177)&lt;/strong&gt; &lt;/u&gt;&lt;/h4&gt;
&lt;p&gt;It is defined by the amino acid mutation S.A222V was reported in Oct 2020. It is characterised by additional mutations; ORF10:V30L, N:A220V, ORF14:L67F. Sequences containing this variation date from 20th June in &lt;strong&gt;Spain&lt;/strong&gt; and by autumn had become the dominant variant in many European countries as well as being present in Hong Kong, Australia, New Zealand and Singapore. It is thought that this variant was spread rapidly by summertime travellers.&lt;/p&gt;
&lt;p&gt;The A222V mutation occurs in an areas of the Spike protein not concerned with binding to human cell receptors. Lab studies failed to show any enhanced transmissibility in humans, though they were simplified and did not involve the entire SARS-CoV-2 virus [&lt;a title="Ref 18" href="#Ref18" target="_blank" rel="noopener"&gt;Ref 18&lt;/a&gt;].&lt;/p&gt;
&lt;h4&gt;&lt;u&gt;&lt;span style="font-weight: bold;"&gt;20H/501Y.V2 (B.1.351)&lt;/span&gt;&lt;/u&gt;&lt;/h4&gt;
&lt;p&gt;It is characterised by amino acid mutations in the Spike protein: &lt;u&gt;N501Y&lt;/u&gt;, &lt;u&gt;K417N&lt;/u&gt;, &lt;u&gt;E484K&lt;/u&gt; and 6 other non-synonymous mutations; 9 changes in total. It was reported 18 December 2020 in &lt;strong&gt;South Africa, &lt;/strong&gt;but seems to have become dominant in October 2020. The emergence of this variant from clade 20H suggests it has arisen independently of 20I/501Y.V1 (B.1.1.7) which emerged from clade 20I, but shares the same S.N501Y amino acid mutation.&lt;/p&gt;
&lt;p&gt;The variant 20H/501Y.V2 has been associated though genomic and epidemiological studies with a significant increase in transmissibility, possibly due to the S.N501Y and S.E484K mutations in the receptor binding domain (RBD). Furthermore both these mutations may contribute towards immune evasion by the RBD so have potential to allow re-infection or reduce the effectiveness of vaccines [&lt;a title="Ref 19" href="#Ref19" target="_blank" rel="noopener"&gt;Ref 19&lt;/a&gt;].&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;The non-synonymous mutations in the B.1.351 variant are: ORF1ab: K1655N; Envelope: P71L; Spike: &lt;u&gt;N501Y&lt;/u&gt;, &lt;u&gt;K417N&lt;/u&gt;, &lt;u&gt;E484K, &lt;/u&gt;D80A, D215G, A701V; Nucleocapsid: T205I [&lt;a style="color: #808080;" title="Ref 62" href="#Ref62" target="_blank" rel="noopener"&gt;Ref 62&lt;/a&gt;]&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;u&gt;&lt;span style="font-weight: bold;"&gt;20J/501Y.V3 (P.1) &lt;/span&gt;&lt;/u&gt;&lt;/h4&gt;
&lt;p&gt;It is characterised by amino acid mutations &lt;u&gt;S.N501Y&lt;/u&gt;, &lt;u&gt;S.K417N&lt;/u&gt;, &lt;u&gt;S.E484K&lt;/u&gt;, 12 other non-synonymous mutations, ORF1ab: &lt;u&gt;SGF 3675-3677&lt;/u&gt; delete, and 4 synonymous mutations; 20 changes in total. It was reported January 2021 in Japan, but originates from &lt;strong&gt;Manaus, Brazil&lt;/strong&gt;. The emergence of this variant from clade 20J (B.1.1.28) suggests that it has arisen independently of both 20I/501Y.V1 (UK) and 20H/501Y.V2 (South Africa) though it shares some of the same mutations; both have S.N501Y whilst 501Y.V1 shares the SGF 3675-3677 delete and 501Y.V2 shares S.K417N as well as S.E484K [&lt;a title="Ref 20" href="#Ref20" target="_blank" rel="noopener"&gt;Ref 20&lt;/a&gt;].&lt;/p&gt;
&lt;p&gt;501Y.V3 was absent from the publicly available sequences from samples collected in Manaus from March to November 2020, but seems to have spread quickly in December suggesting all its mutations arose at the same time. Early epidemiological data showed that it has high transmissibility and it was also speculated that presence of the S.E484K mutation might allow re-infection [&lt;a title="Ref 21" href="#Ref21" target="_blank" rel="noopener"&gt;Ref 21&lt;/a&gt;]. Later epidemiological data also suggested that &lt;a title="https://www.thelancet.com/journals/laninf/article/PIIS1473-3099(20)30783-0/fulltext" href="https://www.thelancet.com/journals/laninf/article/PIIS1473-3099(20)30783-0/fulltext" target="_blank" rel="noopener"&gt;re-infection&lt;/a&gt; may have occurred, though other causes might also explain the high number of new infections in a local population thought to have acquired herd immunity [&lt;a title="Ref 52" href="#Ref52" target="_blank" rel="noopener"&gt;Ref 52&lt;/a&gt;].&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;The non-synonymous and delete mutations in the P.1. variant are: ORF1ab: S1188L, K1795Q, &lt;u&gt;del SGF 3675-3677&lt;/u&gt;; Spike: &lt;u&gt;S.N501Y&lt;/u&gt;, &lt;u&gt;S.K417N&lt;/u&gt;, &lt;u&gt;S.E484K, &lt;/u&gt;L18F, T20N, P26S, D138Y, R190S, H655Y, T1027I; ORF3a: G174C; ORF8: E92K; Nucleocapsid: P80R [&lt;a style="color: #808080;" title="Ref 63" href="#Ref63" target="_blank" rel="noopener"&gt;Ref 63&lt;/a&gt;]&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="B-1-1-7"&gt;SARS-CoV-2 variant of concern: B.1.1.7&lt;/h2&gt;
&lt;h3 id="B-1-1-7-MutationList"&gt;Mutations in variant B.1.1.7&lt;/h3&gt;
&lt;p&gt;A new&amp;nbsp; SARS-CoV-2 variant was identified in UK, December 2000. The emerging variant is named &lt;strong&gt;VOC 202012/01&lt;/strong&gt; in some government documents, but is called &lt;strong&gt;B.1.1.7&lt;/strong&gt; in the Pangolin system. Nextstrain initially named it &lt;strong&gt;20B/501Y.V1&lt;/strong&gt;, but later changed the name to &lt;strong&gt;20I/501Y.V1 &lt;/strong&gt;[&lt;a title="Ref 22" href="#Ref22" target="_blank" rel="noopener"&gt;Ref 22&lt;/a&gt;]. The first sample of this variant was sequenced 20 September 2020 and came from a patient in Kent. It has been subsequently suggested that all its characteristic mutations emerged over a short period in the same chronically-infected and immune-deficient/suppressed patient [&lt;a title="Ref 23" href="#Ref23" target="_blank" rel="noopener"&gt;Ref 23&lt;/a&gt;]. When this first sample was sequenced there was no reason to suppose that its mutations would characterise a new variant or confer any advantage to the virus like increase in transmissibility.&lt;/p&gt;
&lt;p&gt;B.1.1.7 is exceptional as it contains 23 nucleotide mutations in the protein coding areas of the SARS-CoV-2 genome. Six of these mutations do not change the resultant amino acid (synonymous). The remaining 17 mutations result in the following changes to the amino acids used to build the various proteins of the virus [ref &lt;a title="Ref 39" href="#Ref39" target="_blank" rel="noopener"&gt;39&lt;/a&gt;,&lt;a title="Ref 47" href="#Ref47" target="_blank" rel="noopener"&gt;47&lt;/a&gt;]:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ORF1ab mutations: T1001I, A1708D, i2230T, &lt;u&gt;SGF 3675-3677&lt;/u&gt; delete. ORF1ab contains 16 non-structural proteins as shown in Figure 1. These proteins are mainly enzymes thought to be concerned with catalysing the replication of the virus RNA in human host cells as well as suppressing the host immune response and host gene expression [&lt;a title="Ref 24" href="#Ref24" target="_blank" rel="noopener"&gt;Ref 24&lt;/a&gt;] . Therefore these mutations have the potential to change transmissibility.&lt;/li&gt;
&lt;li&gt;Spike (S) mutations: &lt;strong&gt;&lt;u&gt;N501Y&lt;/u&gt;, P681H, HV69-70 delete, &lt;/strong&gt;Y144 delete, A570D, T716I, S982A, D1118H. The S protein contains &lt;a title="https://www.sciencedirect.com/science/article/pii/S0092867420302622" href="https://www.sciencedirect.com/science/article/pii/S0092867420302622" target="_blank" rel="noopener"&gt;two functional subunits&lt;/a&gt;. The S1 subunit contains a fragment called the receptor binding domain (RBD) which binds to the angiotensin-converting enzyme 2 (ACE2) protein in a&amp;nbsp; human host cell. The S2 subunit is responsible for fusion of virus and human cell membranes [&lt;a title="Ref 25" href="#Ref25" target="_blank" rel="noopener"&gt;Ref 25&lt;/a&gt;]. Therefore S mutations, like those in the ORF1ab, have the potential to change the transmissibility of the virus.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;ORF8 mutations: Q27 Stop, R52I, Y73C. The ORF8 protein is not thought to be concerned with the functioning of virus itself or its replication, but together with the N protein seems to create disruption of key metabolic pathways in human host cells [&lt;a title="Ref 26" href="#Ref26" target="_blank" rel="noopener"&gt;Ref 26&lt;/a&gt;]. Therefore mutations in ORF8 may increase or decrease the severity of the Covid-19 disease.&lt;/li&gt;
&lt;li&gt;Nucleocapsid (N) mutations D3L, S235F:&amp;nbsp; The N protein surrounds the virus genome and is essential for replication of the virus in the human host cell. The N protein together with the ORF8 protein seems to create disruption in human host cells [&lt;a title="Ref 27" href="#Ref27" target="_blank" rel="noopener"&gt;Ref 27&lt;/a&gt;]. Therefore mutations in N may increase or decrease the transmissibility of the virus as well as the severity of the Covid-19 disease&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;all these hyper-mutant variants appeared within the final quarter of 2020...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Most branches of the SARS-CoV-2 phylogenetic tree show no more than a few mutations and such mutations have previously accumulated at a relatively constant rate of 1-2 mutations per month [&lt;a title="Ref 9" href="#Ref9" target="_blank" rel="noopener"&gt;Ref 9&lt;/a&gt;]. Therefore the accrual of 14 amino acid replacements and 3 deletions in the B 1.1.7 variant (20I.501Y.V1) was unprecedented [&lt;a title="Ref 28" href="#Ref28" target="_blank" rel="noopener"&gt;Ref 28&lt;/a&gt;], at least until the report of the variants B.1.351 (20H/501Y.V2 South Africa)and P.1 (20J/501Y.V3 Brazil). The fact that all these hyper-mutant variants have appeared within the final quarter of 2020, yet seem to have emerged independently suggests a departure from typical viral evolution.&lt;/p&gt;
&lt;h3 id="B-1-1-7-SignificantMutations"&gt;B.1.1.7 mutations with particular significance&lt;/h3&gt;
&lt;ul&gt;&lt;!--StartFragment--&gt;&lt;/ul&gt;
&lt;p&gt;The following mutations of B.1.1.7 in the Spike protein were identified by Rambaut A et al [&lt;a title="Ref 28" href="#Ref28" target="_blank" rel="noopener"&gt;Ref 28&lt;/a&gt;] as having potential biological effects of particular significance:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;S.N501Y &lt;/strong&gt;&amp;ndash; its location in the Receptor Binding Domain (RBD) region suggests it may change the binding affinity with the ACE2 protein in human host cells, so increasing transmissibility [Ref &lt;a title="Ref 29" href="#Ref29" target="_blank" rel="noopener"&gt;29&lt;/a&gt;,&lt;a title="Ref 30" href="#Ref30" target="_blank" rel="noopener"&gt;30&lt;/a&gt;]. In addition it seems to be involved in interactions between the virus and antibodies produced by Covid-19 patients so has potential to reduce the effectiveness of vaccines[Ref &lt;a title="Ref 31" href="#Ref31" target="_blank" rel="noopener"&gt;31&lt;/a&gt;,&lt;a title="Ref 32" href="#Ref32" target="_blank" rel="noopener"&gt;32&lt;/a&gt;]. The same mutation exists in the&amp;nbsp; South African B.1.351 variant and the Brazilian P.1 variants, though they have a different lineage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S.HV69-70 delete&lt;/strong&gt; &amp;ndash;&amp;nbsp; thought to enhance viral infectivity and have potential to reduce effectiveness of vaccines with or without the N501Y mutation. It has also been found in other variants including the S.Y453F variant (Denmark cluster 5) [&lt;a title="Ref 33" href="#Ref%2033" target="_blank" rel="noopener"&gt;Ref 33&lt;/a&gt;].&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;S.P681H&lt;/strong&gt; &amp;ndash; suspected of assisting the entry of the virus into human host respiratory epithelial cells so has potential to increase transmissibility [&lt;a title="Ref 34" href="#Ref34" target="_blank" rel="noopener"&gt;Ref 34&lt;/a&gt;]. The same mutation exists in a variant with separate lineage originating in Nigeria, but does not exhibit the increase in transmissibility associated with B.1.1.7.[&lt;a title="Ref 35" href="#Ref35" target="_blank" rel="noopener"&gt;Ref 35&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;It has been proposed that the B.1.1.7 variant, like the B.1.351 variant, may have arisen from prolonged incubation of viable mutations within individuals having a compromised immune system and suffering from chronic Covid-19 and may result from antigenic evolution [Ref &lt;a style="color: #808080;" title="Ref 19" href="#Ref19" target="_blank" rel="noopener"&gt;19&lt;/a&gt;,&lt;a style="color: #808080;" title="Ref 36" href="#Ref36" target="_blank" rel="noopener"&gt;36&lt;/a&gt;,&lt;a style="color: #808080;" title="Ref 37" href="#Ref37" target="_blank" rel="noopener"&gt;37&lt;/a&gt;] &amp;ndash; i.e. it results from the selective pressure for the virus to escape recognition by the immune system of previously infected individuals.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="B-1-1-7-Detection"&gt;Detection of B.1.1.7&lt;/h3&gt;
&lt;p&gt;Whole genome sequencing is necessary to identify all the actual mutations in a sample, but it is performed for only 5-10% of all positive &lt;a title="https://en.wikipedia.org/wiki/Polymerase_chain_reaction" href="https://en.wikipedia.org/wiki/Polymerase_chain_reaction" target="_blank" rel="noopener"&gt;PCR tests&lt;/a&gt; in UK and even less in most other countries [&lt;a title="Ref 12" href="#Ref%2012" target="_blank" rel="noopener"&gt;Ref 12&lt;/a&gt;]. Consequently whilst many countries have a good indication of the number of new cases of SARS-CoV-2 infection from their PCR data, they often lack information about what variants are present in this data. However, the B.1.1.7 variant was an exception. This was partly due to the relatively high level of sequencing undertaken in UK, and partly due to a fluke in the location of one of its characteristic mutations.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;by luck includes the position of the HV69-70 delete...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;TaqPath COVID-19 PCR test [&lt;a title="Ref 38" href="#Ref38" target="_blank" rel="noopener"&gt;Ref 38&lt;/a&gt;] used in many UK labs is comprised of three probes that cover small sections of sequences for proteins in three different areas of the SARS-CoV-2 genome. One of these probes covers a sequence that codes for the Spike (S) protein and by luck it includes the position of the HV69-70 delete mutation. Therefore this probe passes in samples that contain the Spike protein without the mutation, but fails in any sample that contains the HV69-70 delete mutation. This is called &lt;em&gt;&amp;lsquo;S Gene Drop&amp;rsquo;&lt;/em&gt;, or '&lt;em&gt;Spike Gene Target Failure'&lt;/em&gt; (&lt;strong&gt;SGTF&lt;/strong&gt;) and presents an opportunity to track the spread of B.1.1.7 using PCR data [Ref &lt;a title="Ref 39" href="#Ref39" target="_blank" rel="noopener"&gt;39&lt;/a&gt;,&lt;a title="Ref 40" href="#Ref40" target="_blank" rel="noopener"&gt;40&lt;/a&gt;], but assumes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HV69-70 delete indicates the presence of the B.1.1.7 variant rather than some other variant with the same mutation [&lt;a title="Ref 39" href="#Ref39" target="_blank" rel="noopener"&gt;Ref 39&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;The other two probes either both pass, or both fail, so the overall result for the test for SARS-CoV-2 is correct [Ref &lt;a title="Ref 41" href="#Ref41" target="_blank" rel="noopener"&gt;41&lt;/a&gt;,&lt;a title="Ref 42" href="#Ref42" target="_blank" rel="noopener"&gt;42&lt;/a&gt;].&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The above assumptions were considered reasonable by Public Health England because sequence data had detected B.1.1.7 in a high number of samples over the period leading to 5 December which strongly suggested SGTF could not be attributed to another variant [&lt;a title="Ref 40" href="#Ref40" target="_blank" rel="noopener"&gt;Ref 40&lt;/a&gt;]. Consequently estimates of growth rate for the new variant were produced by combining data from PCR tests with sequence data. This analysis suggested B.1.1.7 exhibited a significant increase in transmissibility [Ref &lt;a title="Ref 39" href="#Ref39" target="_blank" rel="noopener"&gt;39&lt;/a&gt;,&lt;a title="Ref 40" href="#Ref40" target="_blank" rel="noopener"&gt;40&lt;/a&gt;].&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;The HV69-70 delete required for SGTF is characteristic of the B.1.1.7 variant, but is not characteristic of the P.1 (Brazil) or B.1.351 (South Africa) variants. Therefore SGTF from PCR data cannot be used to track the spread of these other variants. However, a PCR test for a specific variant can be developed by creating special PCR probes particular to its individual mutations. This type of variant specific PCR test was used in early February 2021 to track the spread of the B.1.351 variant in the UK.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="B-1-1-7-ClinicalImpact"&gt;Clinical Impact of B.1.1.7&lt;/h3&gt;
&lt;p&gt;Following a meeting of the UK &lt;a title="https://www.gov.uk/government/groups/new-and-emerging-respiratory-virus-threats-advisory-group" href="https://www.gov.uk/government/groups/new-and-emerging-respiratory-virus-threats-advisory-group" target="_blank" rel="noopener"&gt;NERVTAG&lt;/a&gt; group of experts 18th December the variant was upgraded to a variant of concern (VOC 202012/01) [&lt;a title="Ref 40" href="#Ref40" target="_blank" rel="noopener"&gt;Ref 40&lt;/a&gt;]. Within days the UK Government took action to constrain the spread of the new variant, though sadly by early January transmission rates had soared. It is reasonable to suggest that without these actions the situation in the UK would have been much worse. Subsequent studies by Davies et al suggested&amp;nbsp; B.1.1.7 was&amp;nbsp; 56% more transmissible [&lt;a title="Ref 43" href="#Ref43" target="_blank" rel="noopener"&gt;Ref 43&lt;/a&gt;] whilst Volz et al observed a 75% advantage in transmission as well as a statistically significant shift in the infection of the under 20 age group [&lt;a title="Ref 44" href="#Ref44" target="_blank" rel="noopener"&gt;Ref 44&lt;/a&gt;].&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;for men aged 60 the mortality was 13 or 14 per 1,000...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Early analysis of epidemiological data suggested the hospital admission ratio as well as age, sex, reinfection and mortality profiles were not significantly changed by the new B.1.1.7 variant [&lt;a title="Ref 39" href="#Ref39" target="_blank" rel="noopener"&gt;Ref 39&lt;/a&gt;]. However, the UK NERVTAG group announced 21st January that increased mortality had been observed in people who had a positive PCR test with SGTF against those with non-SGTF. This was interpreted to show that variant B.1.1.7 is associated with an increased risk of death compared to other variants circulating the UK [&lt;a title="Ref 45" href="#Ref45" target="_blank" rel="noopener"&gt;Ref 45&lt;/a&gt;].&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;The UK chief scientific adviser, Patrick Vallance, used the data provided by the NERVTAG group to support claims that for men aged 60 the mortality associated with B.1.1.7 was 13 or 14 per 1,000 against 10 per 1,000 in other variants. Furthermore he claimed the variant was 30%-70% more transmissible than previous UK variants [&lt;a style="color: #808080;" title="Ref 46" href="#Ref46" target="_blank" rel="noopener"&gt;Ref 46&lt;/a&gt;].&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="B-1-1-7-Spread"&gt;Spread of B.1.1.7 beyond UK&lt;/h3&gt;
&lt;p&gt;By January 28 2021 the B.1.1.7 variant was found in sequences uploaded to GISAID from 31,907 samples in 50 countries, though the majority were from UK (29,556) [&lt;a title="Ref 47" href="#Ref47" target="_blank" rel="noopener"&gt;Ref 47&lt;/a&gt;]. Therefore it is possible that many countries are now in the same situation as UK in early December 2020 with B.1.1.7 having established itself, but not yet causing a significant surge in infection.&lt;/p&gt;
&lt;p&gt;The low levels of sequencing achieved in many countries makes it difficult to trace the spread of the variant using SGTF data with any certainty. For example in USA where SGTF was detected in 14 States between October and December 2020 [&lt;a title="Ref 48" href="#Ref48" target="_blank" rel="noopener"&gt;Ref 48&lt;/a&gt;], the first B.1.1.7 variant was only confirmed by sequencing 29 December 2020 [&lt;a title="Ref 49" href="#Ref49" target="_blank" rel="noopener"&gt;Ref 49&lt;/a&gt;]. Similarly Portugal has observed an increase in SGTF from 5.8% in December 2020 to 13.3% in mid-January 2021, but the total number of sequences was insufficient to conclusively attribute B.1.1.7 as the cause [&lt;a title="Ref 50" href="#Ref50" target="_blank" rel="noopener"&gt;Ref 50&lt;/a&gt;]. Therefore the low level of sequencing in both US and Portugal does not preclude the emergence of another variant with the same HV69-70 delete mutation.&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;PCR positive cases in Portugal surged from a 7 day average of 2,921 in 28 December 2020 to 12,417 by 26 January 2021 [&lt;a style="color: #808080;" title="Ref" href="#Ref51" target="_blank" rel="noopener"&gt;Ref 51&lt;/a&gt;].&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="General"&gt;General Implications&lt;/h2&gt;
&lt;h3 id="GeneralRiskGroups"&gt;Groups at risk&lt;/h3&gt;
&lt;p&gt;It is unclear why Covid-19 is more lethal to some people than others. A number of associations have been observed between the severity of disease and traits such as sex, age and existing medical conditions [Ref &lt;a title="Ref 52" href="#Ref52" target="_blank" rel="noopener"&gt;52&lt;/a&gt;, &lt;a title="Ref 54" href="#Ref54" target="_blank" rel="noopener"&gt;54&lt;/a&gt;], though similar associations exist in many diseases. There is also evidence from studies of patients in UK and US that people from Black and Asian ethnic backgrounds have worse clinical outcomes from Covid-19 than White individuals [&lt;a title="Ref 55" href="#Ref55" target="_blank" rel="noopener"&gt;Ref 55&lt;/a&gt;] though this is thought to arise from factors like differences in the socio-economic background&amp;nbsp; rather than genetics. However, some evidence of genetic risks comes from a study that reports an association between severe Covid-19 and certain human genes carried by 50% of people in South Asia and 16% of people in Europe [&lt;a title="Ref 56" href="#Ref56" target="_blank" rel="noopener"&gt;Ref 56&lt;/a&gt;]. This suggests it may be possible to tailor treatment to individuals based on their genetic profile and the variant of the virus they have contracted.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;h3 id="GeneralFutureVariants"&gt;Future variants&lt;/h3&gt;
&lt;p&gt;The B.1.1.7 variant of SARS-CoV-2 has emerged from earlier variants and may itself parent further variants which in turn may come to dominate local populations due to some enhanced trait like further increased transmissibility. Therefore it is possible that B.1.1.7 will become the source of many future variants and be identified as a major clade in 2021. However, a variant introduced from another local population with a particularly advantageous trait may out-compete B.1.1.7. In this case B.1.1.7 will eventually share the fate of many other variants like S.Y453F (Denmark) and stop circulating [&lt;a title="Ref 57" href="#Ref57" target="_blank" rel="noopener"&gt;Ref 57&lt;/a&gt;].&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Our best hope is future variants become less virulent...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It is improbable that SARS-CoV-2 will simply disappear of its own accord, like the earlier Coronavirus associated with SARS in 2004. It is now just too difficult to isolate people with the virus in all local populations at the level required to stop its circulation. Similarly there are too many variants dominating different local populations to expect one single variant to emerge that would manage to out-compete all the others and then suffer a mutation which would stop it being able to replicate in human host cells. Our best hope is that future variants will become less virulent in terms of the disease they cause so we can tolerate living with SARS-CoV-2 in much the same way we live with the influenza virus, though improvements in immunity, whether acquired naturally or from vaccines, will undoubtedly have a key role in the future control of the virus.&lt;/p&gt;
&lt;h3 id="GeneralHerdImmunity"&gt;Herd immunity&lt;/h3&gt;
&lt;p&gt;When more than a certain percentage of people in a local population acquire immunity to a virus, either by vaccination or previous infection, further infection drops dramatically as a consequence of an effect called &lt;a href="https://www.who.int/news-room/q-a-detail/herd-immunity-lockdowns-and-covid-19" target="_blank" rel="noopener"&gt;herd immunity&lt;/a&gt;. However, allowing herd immunity to arise simply by letting people become infected would result in many deaths; for example mortality is estimated at 1 in 100 for men aged 60 [&lt;a title="Ref 46" href="#Ref46" target="_blank" rel="noopener"&gt;Ref 46&lt;/a&gt;]. There is also the question of how long immunity acquired from such infection would last as well as the possibility that a new variant may allow people to become re-infected anyway [&lt;a title="Ref 52" href="#Ref52" target="_blank" rel="noopener"&gt;Ref 52&lt;/a&gt;]. Therefore there is no real alternative to a global programme of vaccination.&lt;/p&gt;
&lt;h3 id="GeneralVaccination"&gt;Vaccination&lt;/h3&gt;
&lt;p&gt;Current vaccines like Oxford-AstraZeneca and Pfizer-BioNTech have been approved on the basis of their efficacy in terms of preventing severe symptoms of Covid-19, not preventing infection [Ref &lt;a title="Ref 58" href="#Ref58" target="_blank" rel="noopener"&gt;58&lt;/a&gt;,&lt;a title="Ref 59" href="#Ref59" target="_blank" rel="noopener"&gt;59&lt;/a&gt;]. However, the large scale vaccination programmes that have been initiated in the UK and elsewhere should produce data about preventing infection by Q2 2021, if not before. It is to be hoped that these results will be as impressive as those obtained from clinical trials in respect of preventing serious illness.&lt;/p&gt;
&lt;p&gt;There is concern about the effectiveness of vaccines on new variants, especially variants with mutations in the Spike protein which is the target of both the Oxford-AstraZeneca and Pfizer-BioNTech vaccine. There is particular concern about the S.E484K mutation that exists in the B.1.351 (South Africa) and P.1 (Brazil) because it has been associated with a small number of re-infection cases [Ref &lt;a title="Ref 52" href="#Ref52" target="_blank" rel="noopener"&gt;52&lt;/a&gt;,&lt;a title="Ref 60" href="#Ref60" target="_blank" rel="noopener"&gt;60&lt;/a&gt;]. It is difficult to predict with any certainty the impact of any mutation, so the evidence of any reduction in the effectiveness of a vaccine will inevitably come from observational studies. These can only report when significant numbers of people have been vaccinated in a local population in which a variant with the mutation has achieved dominance. Therefore it is necessary to wait for such evidence.&lt;/p&gt;
&lt;p&gt;Variations in the viral proteins targeted by vaccines are constrained by a need for them interact with proteins in their human hosts, so whilst such mutations may reduce the effectiveness of some vaccines, they are unlikely to render them entirely useless. However, even a small change in the Spike protein may give the variant an evolutionary edge in a vaccinated local population allowing it to dominate and then spread elsewhere. For this reason the overall success of vaccination depends on lowering the probability of a new variant emerging that reduces vaccine effectiveness. This means vaccinating quickly to reduce the time the virus has to mutate, having different types of vaccine to avoid just one mutation getting the necessary evolutionary edge, and taking measures to stop the virus spreading in order to lower the total number of virus infections from which a mutation can emerge. It also means addressing the cause of hyper-mutational SARS-CoV-2 variants like B.1.1.7 (UK), B.1.351 (South Africa), and P.1. (Manaus, Brazil).&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;Even if a local population has controlled the virus by vaccination, it remains vulnerable to a variant arriving from elsewhere especially one which has evolved some degree of vaccine resistance. Consequently it is essential that we quickly complete vaccination on a global basis and keep our local measures to stop the virus spreading until the virus has been successfully controlled everywhere.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="Conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;h3 id="ConclusionWhatIsKnown"&gt;What is known about B.1.1.7&lt;/h3&gt;
&lt;p&gt;Whilst there is precise knowledge about the SARS-CoV-2 genome and the mutations that characterise its mutations, science has not yet reached the point of being able to produce reliable predictions of functional outcomes based solely on such genomic data and models of proteomic behaviour. Consequently most information about the impact of the virus and its mutations on disease and its transmission must come from epidemiological and lab studies. Unfortunately such studies take time and often fail to product conclusive results. Therefore in the meantime we have to rely of the results of the initial studies, such as those published 21 January 2021, which suggest:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the &lt;em&gt;B.1.1.7 variant has higher transmissibility than previous variants and causes increased mortality&lt;/em&gt;, but otherwise is similar in terms of outcomes than previous variants [&lt;a title="Ref 45" href="#Ref45" target="_blank" rel="noopener"&gt;Ref 45&lt;/a&gt;].&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;It would not be surprising if future studies involving more extensive research and better data reach different conclusions to those given in these initial studies.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 id="ConclusionOpenQuestions"&gt;Open Questions&lt;/h3&gt;
&lt;p&gt;Despite the huge international research effort in 2020 a number of important scientific questions remain unanswered at the start of 2021:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Do the approved vaccines reduce infection as well as severe illness? &lt;/strong&gt;The clinic trials for the approved vaccines show clear efficacy in terms of reducing severe illness due to Covid-19, but will these results be confirmed by the data from large scale vaccination programmes? Just as importantly, will the data also show that vaccinated people are also less likely to transmit the virus to others?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Might P.1 (Manaus, Brazil)&amp;nbsp; or B.1.351 (South Africa) become dominant in UK?&lt;/strong&gt; Will the traits of these other variants allow them to out-compete B.1.1.7? Alternatively will the UK measures to reduce infection and its vaccine programme stop them developing beyond a few isolated cases?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Will current vaccines be effective against new variants?&lt;/strong&gt; What will the data from large scale vaccinations show in terms of the effectiveness of vaccines against new variants? What might we learn about the potential of certain mutations to change vaccine effectiveness?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How can new variants be better detected and tracked?&lt;/strong&gt; the emergence of B.1.1.7 in a country that sequences a relatively high level of positive cases allowed it to be detected quickly. What sort of global effort is required to allow future variants to be detected and tracked so allowing timely interventions to be made?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What caused the hyper-mutation in B.1.1.7?&lt;/strong&gt; Does the high number of mutations in the B.1.1.7, B.1.351 and P.1 variants result from treatment given to chronically-infected and immune-deficient/suppressed patients? If so what changes in treatment or infection protection measures need to be taken?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How long before B.1.1.7 spreads beyond UK?&lt;/strong&gt; B.1.1.7 has already been detected in 49 countries besides UK, so will its higher levels of transmissibility allow this variant to out-compete other variants in their local populations and become dominant? How long before this happens?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What is the ultimate fate of B.1.1.7?&lt;/strong&gt;&amp;nbsp; Will B.1.1.7 acquire further mutations that give it advantageous traits and so spawn further variants, or will it be supplanted by a variant from a different lineage and so stop circulating? How long will it take for such new variants to emerge?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Why do young people not suffer from Covid-19?&lt;/strong&gt; In previous pandemics involving a respiratory virus people with less effective immune system, both the very young and very old, had an elevated risk of mortality [&lt;a title="Ref 61" href="#Ref61" target="_blank" rel="noopener"&gt;Ref 61&lt;/a&gt;]. Therefore why do so many people under 18 years old suffer so little from Covid-19 ?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Why do people react differently to Covid-19?&lt;/strong&gt; Severe Covid-19 is associated with expected risk factors, like age and existing medical conditions. However it also seems that some people have genetic susceptibilities to the disease. Can these susceptibilities be identified by genetic markers so tests can be developed for them? Might a better understanding of these genetic factors allow a more effective and personalised treatment?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What are the long term effects of Covid-19&lt;/strong&gt;? The long term clinical outcomes of Covid-19 are unknown, though clearly the disease can affect multiple organs besides the lungs and may persist for many months. What will we discover about the disease in 2021 and beyond?&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="ConclusionDividend"&gt;Is there a Covid Dividend?&lt;/h3&gt;
&lt;p&gt;Whilst SAR-CoV-2 has had a catastrophic impact on many people throughout world, it has also produced a few dividends. For example it has driven the development of new types of vaccine with potential for use against other types virus including those we have yet to encounter. It has also produced vast quantities of data which will help provide new knowledge and understanding about viruses and the disease they cause. However, perhaps the biggest dividend is it making a compelling case for global cooperation and a return to rational thinking.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;If you found this post useful please help raise my profile by providing a link on your social media account; just click the buttons at the top of the page. You can also add a comment or contact me by email, but I can&amp;rsquo;t promise to respond immediately.&amp;nbsp;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;img src="/Posts/files/ClickToShare_637480254971626474.jpg" alt="ClickToShare.jpg" width="384" height="111" /&gt;&lt;/em&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="RelatedPosts"&gt;Related Posts&lt;/h2&gt;
&lt;p&gt;The following posts provide further information:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.willstott.org/blog/science-bio-cellsandproteins-intro/" target="_blank" rel="noopener"&gt;Genes, proteins &amp;amp; biological function&lt;/a&gt; &amp;ndash; a brief introduction to how life works&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Further information&lt;/h2&gt;
&lt;p&gt;The following links provide information related to this post:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="https://www.nytimes.com/interactive/2020/04/30/science/coronavirus-mutations.html" href="https://www.nytimes.com/interactive/2020/04/30/science/coronavirus-mutations.html" target="_blank" rel="noopener"&gt;New York Times article explaining how SARS-CoV-2 mutations arise and spread&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="References"&gt;References&lt;/h2&gt;
&lt;p&gt;The following sources of information are referenced in the post:&lt;/p&gt;
&lt;ol&gt;
&lt;li id="Ref1"&gt;Lu R, Zhao X, Li J, Niu P, Yang B, Wu H, et al. Genomic characterisation and epidemiology of 2019 novel coronavirus: implications for virus origins and receptor binding. Lancet. 2020 Feb 22;395(10224):565&amp;ndash;74. Available from: &lt;a title="https://pubmed.ncbi.nlm.nih.gov/32007145/" href="https://pubmed.ncbi.nlm.nih.gov/32007145/"&gt;https://pubmed.ncbi.nlm.nih.gov/32007145/&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref2"&gt;WHO | Naming the coronavirus disease (COVID-19) and the virus that causes it [Internet]. Available from: &lt;a href="https://www.who.int/emergencies/diseases/novel-coronavirus-2019/technical-guidance/naming-the-coronavirus-disease-(covid-2019)-and-the-virus-that-causes-it"&gt;https://www.who.int/emergencies/diseases/novel-coronavirus-2019/technical-guidance/naming-the-coronavirus-disease-(covid-2019)-and-the-virus-that-causes-it&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref3"&gt;Wu F, Zhao S. Severe acute respiratory syndrome coronavirus 2 isolate Wuhan-Hu-1, complete genome. 2020 Mar 18; Available from: &lt;a href="http://www.ncbi.nlm.nih.gov/nuccore/MN908947.3"&gt;http://www.ncbi.nlm.nih.gov/nuccore/MN908947.3&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li id="Ref4"&gt;Nakagawa S, Miyazawa T. Genome evolution of SARS-CoV-2 and its virological characteristics. Inflammation and Regeneration. 2020 Aug 10;40(1):17 Available from: &lt;a title="https://inflammregen.biomedcentral.com/articles/10.1186/s41232-020-00126-7" href="https://inflammregen.biomedcentral.com/articles/10.1186/s41232-020-00126-7"&gt;https://inflammregen.biomedcentral.com/articles/10.1186/s41232-020-00126-7&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref5"&gt;Yuan S, Peng L, Park JJ, Hu Y, Devarkar SC, Dong MB, et al. Nonstructural Protein 1 of SARS-CoV-2 Is a Potent Pathogenicity Factor Redirecting Host Protein Synthesis Machinery toward Viral RNA. Molecular Cell. 2020 Dec 17;80(6):1055-1066.e6.&amp;nbsp; Available from: &lt;a title="https://www.sciencedirect.com/science/article/pii/S1097276520307413" href="https://www.sciencedirect.com/science/article/pii/S1097276520307413"&gt;https://www.sciencedirect.com/science/article/pii/S1097276520307413&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref6"&gt;Michel CJ, Mayer C, Poch O, Thompson JD. Characterization of accessory genes in coronavirus genomes. Virology Journal. 2020 Aug 27;17(1):131. Available from &lt;a title="https://virologyj.biomedcentral.com/articles/10.1186/s12985-020-01402-1" href="https://virologyj.biomedcentral.com/articles/10.1186/s12985-020-01402-1"&gt;https://virologyj.biomedcentral.com/articles/10.1186/s12985-020-01402-1&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref7"&gt;Romano M, Ruggiero A, Squeglia F, Maga G, Berisio R. A Structural View of SARS-CoV-2 RNA Replication Machinery: RNA Synthesis, Proofreading and Final Capping. Cells [Internet]. 2020 May 20;9(5). Available from: &lt;a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7291026/"&gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7291026/&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li id="Ref8"&gt;Sanju&amp;aacute;n R, Nebot MR, Chirico N, Mansky LM, Belshaw R. Viral Mutation Rates. J Virol. 2010 Oct;84(19):9733&amp;ndash;48&lt;strong&gt;. &lt;/strong&gt;Available from &lt;a title="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2937809/" href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2937809/"&gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2937809/&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref9"&gt;Smith EC, Blanc H, Vignuzzi M, Denison MR. Coronaviruses Lacking Exoribonuclease Activity Are Susceptible to Lethal Mutagenesis: Evidence for Proofreading and Potential Therapeutics. PLoS Pathog [Internet]. 2013 Aug 15 ;9(8). Available from: &lt;a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3744431/"&gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3744431/&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref10"&gt;Li Y, Yang X, Wang N, Wang H, Yin B, Yang X, et al. Mutation profile of over 4500 SARS-CoV-2 isolations reveals prevalent cytosine-to-uridine deamination on viral RNAs. Future Microbiology. 2020 Sep 1;15(14):1343&amp;ndash;52. Available from &lt;a title="https://www.futuremedicine.com/doi/full/10.2217/fmb-2020-0149" href="https://www.futuremedicine.com/doi/full/10.2217/fmb-2020-0149"&gt;https://www.futuremedicine.com/doi/full/10.2217/fmb-2020-0149&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref11"&gt;Laamarti M, Alouane T, Kartti S, Chemao-Elfihri MW, Hakmi M, Essabbar A, et al. Large scale genomic analysis of 3067 SARS-CoV-2 genomes reveals a clonal geo-distribution and a rich genetic variations of hotspots mutations. Gao F, editor. PLoS ONE. 2020 Nov 10;15(11):e0240345. Available from: &lt;a title="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0240345" href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0240345"&gt;https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0240345&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref12"&gt;Furuse Y. Genomic Sequencing Effort for SARS-CoV-2 by Country during the Pandemic. International Journal of Infectious Diseases [Internet]. 2020 Dec 14;0(0). Available from: &lt;a href="https://www.ijidonline.com/article/S1201-9712(20)32557-1/abstract"&gt;https://www.ijidonline.com/article/S1201-9712(20)32557-1/abstract&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref13"&gt;Rambaut A, Holmes EC, O&amp;rsquo;Toole &amp;Aacute;, Hill V, McCrone JT, Ruis C, et al. A dynamic nomenclature proposal for SARS-CoV-2 lineages to assist genomic epidemiology. Nature Microbiology. 2020 Nov;5(11):1403&amp;ndash;7.&amp;nbsp; Available from &lt;a title="https://www.nature.com/articles/s41564-020-0770-5" href="https://www.nature.com/articles/s41564-020-0770-5"&gt;https://www.nature.com/articles/s41564-020-0770-5&lt;/a&gt; See also &lt;a title="https://cov-lineages.org/" href="https://cov-lineages.org/"&gt;https://cov-lineages.org/&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li id="Ref14"&gt;Nextstrain | Clade Naming &amp;amp; Definitions [Internet]. Available from: &lt;a href="https://docs.nextstrain.org/en/latest/tutorials/SARS-CoV-2/steps/naming_clades.html"&gt;https://docs.nextstrain.org/en/latest/tutorials/SARS-CoV-2/steps/naming_clades.html&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref15"&gt;Callaway E. &amp;lsquo;A bloody mess&amp;rsquo;: Confusion reigns over naming of new COVID variants. Nature. 2021 Jan 15;589(7842):339&amp;ndash;339.Available from: &lt;a href="https://www.nature.com/articles/d41586-021-00097-w"&gt;https://www.nature.com/articles/d41586-021-00097-w&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref16"&gt;Koyama T, Platt D, Parida L. Variant analysis of SARS-CoV-2 genomes. Bull World Health Organ. 2020 Jul 1;98(7):495&amp;ndash;504. Available from &lt;a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7375210/"&gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7375210/&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref17"&gt;Plante JA, Liu Y, Liu J, Xia H, Johnson BA, Lokugamage KG, et al. Spike mutation D614G alters SARS-CoV-2 fitness. Nature. 2020 Oct 26;1&amp;ndash;6. Available from &lt;a href="https://www.sciencedirect.com/science/article/pii/S0092867420308205"&gt;https://www.sciencedirect.com/science/article/pii/S0092867420308205&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref18"&gt;Hodcroft EB, Zuber M, Nadeau S, Crawford KHD, Bloom JD, Veesler D, et al. Emergence and spread of a SARS-CoV-2 variant through Europe in the summer of 2020. medRxiv [Internet]. 2020 Nov 27; Available from: &lt;a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7709189/"&gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7709189/&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref19"&gt;Tegally H, Wilkinson E, Giovanetti M, Iranzadeh A, Fonseca V, Giandhari J, et al. Emergence and rapid spread of a new severe acute respiratory syndrome-related coronavirus 2 (SARS-CoV-2) lineage with multiple spike mutations in South Africa. medRxiv. 2020 Dec 22;2020.12.21.20248640.&amp;nbsp; Available from: &lt;a title="https://www.medrxiv.org/content/10.1101/2020.12.21.20248640v1" href="https://www.medrxiv.org/content/10.1101/2020.12.21.20248640v1"&gt;https://www.medrxiv.org/content/10.1101/2020.12.21.20248640v1&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref20"&gt;Faria N, Claro I, Candido D et al .Genomic characterisation of an emergent SARS-CoV-2 lineage in Manaus: preliminary findings [Internet]. Virological. 2021. Available from: &lt;a href="https://virological.org/t/genomic-characterisation-of-an-emergent-sars-cov-2-lineage-in-manaus-preliminary-findings/586"&gt;https://virological.org/t/genomic-characterisation-of-an-emergent-sars-cov-2-lineage-in-manaus-preliminary-findings/586&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li id="Ref21"&gt;Resende P, Bezerra J, et al. Spike E484K mutation in the first SARS-CoV-2 reinfection case confirmed in Brazil, 2020 [Internet]. Virological. 2021. Available from: &lt;a href="https://virological.org/t/spike-e484k-mutation-in-the-first-sars-cov-2-reinfection-case-confirmed-in-brazil-2020/584"&gt;https://virological.org/t/spike-e484k-mutation-in-the-first-sars-cov-2-reinfection-case-confirmed-in-brazil-2020/584&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref22"&gt;Nextstrain | Updated Nextstain SARS-CoV-2 clade naming strategy [Internet]. Virological. 2021. Available from: &lt;a href="https://virological.org/t/updated-nextstain-sars-cov-2-clade-naming-strategy/581"&gt;https://virological.org/t/updated-nextstain-sars-cov-2-clade-naming-strategy/581&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li id="Ref23"&gt;Rambaut A, Loman N, Pybus OG. Preliminary genomic characterisation of an emergent SARS-CoV-2 lineage in the UK defined by a novel set of spike mutations - SARS-CoV-2 coronavirus / nCoV-2019 Genomic Epidemiology [Internet]. Virological. 2020. Available from: &lt;a href="https://virological.org/t/preliminary-genomic-characterisation-of-an-emergent-sars-cov-2-lineage-in-the-uk-defined-by-a-novel-set-of-spike-mutations/563"&gt;https://virological.org/t/preliminary-genomic-characterisation-of-an-emergent-sars-cov-2-lineage-in-the-uk-defined-by-a-novel-set-of-spike-mutations/563&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref24"&gt;NCBI Gene Database | ORF1ab ORF1a polyprotein;ORF1ab polyprotein [Severe acute respiratory syndrome coronavirus 2] - Gene - NCBI [Internet]. Available from: &lt;a href="https://www.ncbi.nlm.nih.gov/gene/43740578"&gt;https://www.ncbi.nlm.nih.gov/gene/43740578&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref25"&gt;Walls AC, Park Y-J, Tortorici MA, Wall A, McGuire AT, Veesler D. Structure, Function, and Antigenicity of the SARS-CoV-2 Spike Glycoprotein. Cell. 2020 Apr 16;181(2):281-292.e6. Available from:&lt;a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7102599"&gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7102599&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref26"&gt;Zinzula L. Lost in deletion: The enigmatic ORF8 protein of SARS-CoV-2. Biochem Biophys Res Commun [Internet]. 2020 Oct 21; Available from: &lt;a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7577707/"&gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7577707/&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref27"&gt;Li J-Y, Liao C-H, Wang Q, Tan Y-J, Luo R, Qiu Y, et al. The ORF6, ORF8 and nucleocapsid proteins of SARS-CoV-2 inhibit type I interferon signaling pathway. Virus Res. 2020 Sep;286:198074.&amp;nbsp; Available from: &lt;a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7309931/"&gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7309931/&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref28"&gt;Rambaut A, Loman N. Preliminary genomic characterisation of an emergent SARS-CoV-2 lineage in the UK defined by a novel set of spike mutations [Internet]. Virological. 2020. Available from: &lt;a href="https://virological.org/t/preliminary-genomic-characterisation-of-an-emergent-sars-cov-2-lineage-in-the-uk-defined-by-a-novel-set-of-spike-mutations/563"&gt;https://virological.org/t/preliminary-genomic-characterisation-of-an-emergent-sars-cov-2-lineage-in-the-uk-defined-by-a-novel-set-of-spike-mutations/563&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li id="Ref29"&gt;Starr TN, Greaney AJ, Hilton SK, Ellis D, Crawford KHD, Dingens AS, et al. Deep Mutational Scanning of SARS-CoV-2 Receptor Binding Domain Reveals Constraints on Folding and ACE2 Binding. Cell. 2020 Sep 3;182(5):1295-1310.e20. Available from: &lt;a href="https://www.sciencedirect.com/science/article/pii/S0092867420310035"&gt;https://www.sciencedirect.com/science/article/pii/S0092867420310035&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref30"&gt;Mathavan S, Kumar S. Evaluation of the Effect of D614G, N501Y and S477N Mutation in SARS-CoV-2 through Computational Approach. 2020 Dec 28 ; Available from: &lt;a href="https://www.preprints.org/manuscript/202012.0710/v1"&gt;https://www.preprints.org/manuscript/202012.0710/v1&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref31"&gt;Yi C, Sun X, Ye J et al. Key residues of the receptor binding motif in the spike protein of SARS-CoV-2 that interact with ACE2 and neutralizing antibodies [Internet]. Vol. 17, Cellular &amp;amp; molecular immunology. Cell Mol Immunol; 2020. Available from: &lt;a href="https://pubmed.ncbi.nlm.nih.gov/32415260/"&gt;https://pubmed.ncbi.nlm.nih.gov/32415260/&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref32"&gt;Fratev F. The SARS-CoV-2 S1 spike protein mutation N501Y alters the protein interactions with both hACE2 and human derived antibody: A Free energy of perturbation study. bioRxiv. 2020 Dec 26;2020.12.23.424283. Available from: &lt;a href="https://www.biorxiv.org/content/10.1101/2020.12.23.424283v1"&gt;https://www.biorxiv.org/content/10.1101/2020.12.23.424283v1&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li id="Ref33"&gt;Kemp SA, Harvey WT, Datir RP, Collier DA, Ferreira I, Carabelli AM, et al. Recurrent emergence and transmission of a SARS-CoV-2 Spike deletion &amp;Delta;H69/V70. bioRxiv. 2020 Dec 21;2020.12.14.422555.Available from: &lt;a href="https://www.biorxiv.org/content/10.1101/2020.12.14.422555v3"&gt;https://www.biorxiv.org/content/10.1101/2020.12.14.422555v3&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li id="Ref34"&gt;Hoffmann M, Kleine-Weber H, P&amp;ouml;hlmann S. A Multibasic Cleavage Site in the Spike Protein of SARS-CoV-2 Is Essential for Infection of Human Lung Cells. Mol Cell. 2020 May 21;78(4):779-784.e5. Available from: &lt;a href="https://pubmed.ncbi.nlm.nih.gov/32362314/"&gt;https://pubmed.ncbi.nlm.nih.gov/32362314/&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref35"&gt;Oluniyi P. Detection of SARS-CoV-2 P681H Spike Protein Variant in Nigeria - SARS-CoV-2 coronavirus / nCoV-2019 Genomic Epidemiology [Internet]. Virological. 2020. Available from: &lt;a href="https://virological.org/t/detection-of-sars-cov-2-p681h-spike-protein-variant-in-nigeria/567"&gt;https://virological.org/t/detection-of-sars-cov-2-p681h-spike-protein-variant-in-nigeria/567&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref36"&gt;Rouzine IM, Rozhnova G. Antigenic evolution of viruses in host populations. PLOS Pathogens. 2018 Sep 12;14(9):e1007291. Available from &lt;a href="https://journals.plos.org/plospathogens/article?id=10.1371/journal.ppat.1007291"&gt;https://journals.plos.org/plospathogens/article?id=10.1371/journal.ppat.1007291&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li id="Ref37"&gt;Kemp SA, Collier DA, Datir RP. 1 Neutralising antibodies drive Spike mediated SARS-CoV-2 evasion. medRxiv: 2020 Dec 19 Available from: &lt;a href="https://www.medrxiv.org/content/10.1101/2020.12.05.20241927v2.full.pdf"&gt;https://www.medrxiv.org/content/10.1101/2020.12.05.20241927v2.full.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref38"&gt;Thermo Fisher | TaqPath COVID-19 Multiplex Diagnostic Solution - [Internet]. Available from: &lt;a href="http://www.thermofisher.com/uk/en/home/clinical/clinical-genomics/pathogen-detection-solutions/covid-19-sars-cov-2/multiplex.html"&gt;www.thermofisher.com/uk/en/home/clinical/clinical-genomics/pathogen-detection-solutions/covid-19-sars-cov-2/multiplex.html&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li id="Ref39"&gt;Public Health England | Investigation of novel SARS-COV-2 variant&amp;nbsp; Variant of Concern 202012/01 - Technical Briefing 1 [Internet].&amp;nbsp; 2020. Available from: &lt;a href="https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/947048/Technical_Briefing_VOC_SH_NJL2_SH2.pdf"&gt;https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/947048/Technical_Briefing_VOC_SH_NJL2_SH2.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref40"&gt;Public Health England | Investigation of novel SARS-COV-2 variant&amp;nbsp; Variant of Concern 202012/01 - Technical Briefing 2 [Internet] ; 2020. Available from: &lt;a href="https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/948152/Technical_Briefing_VOC202012-2_Briefing_2_FINAL.pdf"&gt;https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/948152/Technical_Briefing_VOC202012-2_Briefing_2_FINAL.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref41"&gt;Thermo Fisher | FAQ: Impact of the 69-70del mutation in the spike protein of SARS-CoV-2 on TaqPath COVID-19 testing assays [Internet]. Applied Biosystems; Available from: &lt;a href="https://assets.thermofisher.com/TFS-Assets/GSD/Reference-Materials/69-70del-s-gene-mutation-ceivd-faq.pdf"&gt;https://assets.thermofisher.com/TFS-Assets/GSD/Reference-Materials/69-70del-s-gene-mutation-ceivd-faq.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref42"&gt;WHO | Covid T, Rt I, Number E. WHO Emergency Use Assessment Coronavirus disease (COVID-19) IVDs. 2020;89. &amp;ndash; page 60 &lt;a href="https://extranet.who.int/pqweb/sites/default/files/documents/201104_EUL_0525-156-00_TaqPathCOVID-19CE-IVD%20RT-PCR_PR_v_2.0.pdf"&gt;https://extranet.who.int/pqweb/sites/default/files/documents/201104_EUL_0525-156-00_TaqPathCOVID-19CE-IVD%20RT-PCR_PR_v_2.0.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref43"&gt;Davies NG, Barnard RC, Jarvis CI, Kucharski AJ, Munday J, Pearson CAB, et al. Estimated transmissibility and severity of novel SARS-CoV-2 Variant of Concern 202012/01 in England [Internet]. Epidemiology; 2020 Dec. Available from: &lt;a href="http://medrxiv.org/lookup/doi/10.1101/2020.12.24.20248822"&gt;http://medrxiv.org/lookup/doi/10.1101/2020.12.24.20248822&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref44"&gt;Volz E, Mishra S, Chand M, Barrett JC, Johnson R, Geidelberg L, et al. Transmission of SARS-CoV-2 Lineage B.1.1.7 in England: Insights from linking epidemiological and genetic data. medRxiv. 2021 Jan 4;2020.12.30.20249034. Available from &lt;a href="https://www.medrxiv.org/content/10.1101/2020.12.30.20249034v2"&gt;https://www.medrxiv.org/content/10.1101/2020.12.30.20249034v2&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li id="Ref45"&gt;Horby P, Huntley C, Davis N. NERVTAG note on B.1.1.7 severity [Internet]. SAGE meeting paper; Available from: &lt;a href="https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/955239/NERVTAG_paper_on_variant_of_concern__VOC__B.1.1.7.pdf"&gt;https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/955239/NERVTAG_paper_on_variant_of_concern__VOC__B.1.1.7.pdf&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref46"&gt;Iacobucci G. Covid-19: New UK variant may be linked to increased death rate, early data indicate. BMJ. 2021 Jan 26;372:n230. Available from: &lt;a href="https://www.bmj.com/content/372/bmj.n230"&gt;https://www.bmj.com/content/372/bmj.n230&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref47"&gt;SARS-CoV-2 lineages - B.1.1.7 report 2021-01-19 [Internet]. 2021. Available from: &lt;a href="https://cov-lineages.org/global_report_B.1.1.7.html"&gt;https://cov-lineages.org/global_report_B.1.1.7.html&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref48"&gt;Washington NL, White S, Barrett KMS, Cirulli ET, Bolze A, Lu JT. S gene dropout patterns in SARS-CoV-2 tests suggest spread of the H69del/V70del mutation in the US. medRxiv. 2020 Dec 30;2020.12.24.20248814. Available from: &lt;a href="https://www.medrxiv.org/content/10.1101/2020.12.24.20248814v1"&gt;https://www.medrxiv.org/content/10.1101/2020.12.24.20248814v1&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref49"&gt;WQAD8 | Colorado reports first US case of COVID-19 variant initially found in UK [Internet]. wqad.com. Available from: &lt;a href="https://www.wqad.com/article/news/health/coronavirus/covid-19-variant-found-colorado/73-ac654aef-16f8-4121-99f0-fe009324d7fd"&gt;https://www.wqad.com/article/news/health/coronavirus/covid-19-variant-found-colorado/73-ac654aef-16f8-4121-99f0-fe009324d7fd&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref50"&gt;Tracking SARS-CoV-2 VOC 202012/01 (lineage B.1.1.7) dissemination in Portugal: insights from nationwide RT-PCR Spike gene drop out data - SARS-CoV-2 coronavirus [Internet]. Virological. 2021. Available from: &lt;a href="https://virological.org/t/tracking-sars-cov-2-voc-202012-01-lineage-b-1-1-7-dissemination-in-portugal-insights-from-nationwide-rt-pcr-spike-gene-drop-out-data/600"&gt;https://virological.org/t/tracking-sars-cov-2-voc-202012-01-lineage-b-1-1-7-dissemination-in-portugal-insights-from-nationwide-rt-pcr-spike-gene-drop-out-data/600&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref51"&gt;Dong E, Du H, Gardner L. An interactive web-based dashboard to track COVID-19 in real time. The Lancet Infectious Diseases. 2020 May 1;20(5):533&amp;ndash;4. Available from: &lt;a href="https://www.thelancet.com/journals/laninf/article/PIIS1473-3099(20)30120-1/fulltext"&gt;https://www.thelancet.com/journals/laninf/article/PIIS1473-3099(20)30120-1/fulltext&lt;/a&gt; with real time data available from &lt;a title="https://github.com/CSSEGISandData/COVID-19" href="https://github.com/CSSEGISandData/COVID-19"&gt;https://github.com/CSSEGISandData/COVID-19&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref52"&gt;Sabino EC, Buss LF, Carvalho MPS, Prete CA, Crispim MAE, Fraiji NA, et al. Resurgence of COVID-19 in Manaus, Brazil, despite high seroprevalence. The Lancet [Internet]. 2021 Jan 27 ;0(0). Available from: &lt;a href="https://www.thelancet.com/journals/lancet/article/PIIS0140-6736(21)00183-5/abstract"&gt;https://www.thelancet.com/journals/lancet/article/PIIS0140-6736(21)00183-5/abstract&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li id="Ref53"&gt;COVID-19 Provisional Counts - Weekly Updates by Select Demographic and Geographic Characteristics [Internet]. 2021. Available from: &lt;a href="https://www.cdc.gov/nchs/nvss/vsrr/covid_weekly/index.htm"&gt;https://www.cdc.gov/nchs/nvss/vsrr/covid_weekly/index.htm&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li id="Ref54"&gt;CDC. COVID-19 and Your Health [Internet]. Centers for Disease Control and Prevention. 2020. Available from: &lt;a href="https://www.cdc.gov/coronavirus/2019-ncov/need-extra-precautions/evidence-table.html"&gt;https://www.cdc.gov/coronavirus/2019-ncov/need-extra-precautions/evidence-table.html&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref55"&gt;Sze S, Pan D, Nevill CR, Gray LJ, Martin CA, Nazareth J, et al. Ethnicity and clinical outcomes in COVID-19: A systematic review and meta-analysis. EClinicalMedicine [Internet]. 2020 Dec 1;29. Available from: &lt;a href="https://www.thelancet.com/journals/eclinm/article/PIIS2589-5370(20)30374-6/abstract"&gt;https://www.thelancet.com/journals/eclinm/article/PIIS2589-5370(20)30374-6/abstract&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref56"&gt;Zeberg H, P&amp;auml;&amp;auml;bo S. The major genetic risk factor for severe COVID-19 is inherited from Neanderthals. Nature. 2020 Nov;587(7835):610&amp;ndash;2. Available from &lt;a href="https://www.nature.com/articles/s41586-020-2818-3"&gt;https://www.nature.com/articles/s41586-020-2818-3&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref57"&gt;WHO | SARS-CoV-2 mink-associated variant strain &amp;ndash; Denmark [Internet]. WHO. World Health Organization; Available from: &lt;a href="http://www.who.int/csr/don/03-december-2020-mink-associated-sars-cov2-denmark/en/"&gt;http://www.who.int/csr/don/03-december-2020-mink-associated-sars-cov2-denmark/en/&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref58"&gt;Voysey M, Clemens SAC, Madhi SA, Weckx LY, Folegatti PM, Aley PK, et al. Safety and efficacy of the ChAdOx1 nCoV-19 vaccine (AZD1222) against SARS-CoV-2: an interim analysis of four randomised controlled trials in Brazil, South Africa, and the UK. The Lancet. 2021 Jan 9;397(10269):99&amp;ndash;111.Available from &lt;a href="https://www.thelancet.com/journals/lancet/article/PIIS0140-6736(20)32661-1/fulltext"&gt;https://www.thelancet.com/journals/lancet/article/PIIS0140-6736(20)32661-1/fulltext&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref59"&gt;Polack FP, Thomas SJ, Kitchin N, Absalon J, Gurtman A, Lockhart S, et al. Safety and Efficacy of the BNT162b2 mRNA Covid-19 Vaccine. New England Journal of Medicine. 2020 Dec 31;383(27):2603&amp;ndash;15. Available from &lt;a href="https://www.nejm.org/doi/full/10.1056/NEJMoa2034577"&gt;https://www.nejm.org/doi/full/10.1056/NEJMoa2034577&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref60"&gt;Resende P, Bezerra J, Vasconcelos R. Spike E484K mutation in the first SARS-CoV-2 reinfection case confirmed in Brazil, 2020 [Internet]. Virological. 2021. Available from: &lt;a href="https://virological.org/t/spike-e484k-mutation-in-the-first-sars-cov-2-reinfection-case-confirmed-in-brazil-2020/584"&gt;https://virological.org/t/spike-e484k-mutation-in-the-first-sars-cov-2-reinfection-case-confirmed-in-brazil-2020/584&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref61"&gt;Gagnon A, Miller MS, Hallman SA, Bourbeau R, Herring DA, Earn DJD, et al. Age-Specific Mortality During the 1918 Influenza Pandemic: Unravelling the Mystery of High Young Adult Mortality. PLoS One [Internet]. 2013 Aug 5;8(8). Available from: &lt;a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3734171/"&gt;https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3734171/&lt;/a&gt;&lt;/li&gt;
&lt;li id="Ref62"&gt;SARS-CoV-2 lineages - B.1.351 report [Internet]. Available from: &lt;a href="https://cov-lineages.org/global_report_B.1.351.html"&gt;https://cov-lineages.org/global_report_B.1.351.html&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li id="Ref63"&gt;SARS-CoV-2 lineages - P.1 report [Internet]. Available from: &lt;a href="https://cov-lineages.org/global_report_P.1.html"&gt;https://cov-lineages.org/global_report_P.1.html&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
  <author>Will Stott</author>
  <category>c19</category>
  <category>med</category>
  <category>science</category>
  <guid isPermaLink="false">https://www.willstott.org/blog/science-med-c19-variantb117/</guid>
  <pubDate>Sun, 20 Dec 2020 10:06:17 GMT</pubDate>
</item>
<item>
  <title>How to build, adapt, and deploy Miniblog</title>
  <link>https://www.willstott.org/blog/tech-dev-aspnetcore-miniblog-createyourownsite/</link>
  <description>&lt;h1&gt;Recipe: Creating your own Miniblog website&lt;/h1&gt;
&lt;p&gt;Anyone with reasonable ASP.NET Core WebApp skills should have little difficulty in figuring out how to create their own personal blog site using &lt;a title="https://github.com/madskristensen/Miniblog.Core" href="https://github.com/madskristensen/Miniblog.Core" target="_blank" rel="noopener"&gt;Miniblog.core&lt;/a&gt;, but I hope the following recipe makes the task easier, quicker and more reproducible. It also has the advantage of lowering the technical bar so less skilled people can undertake the work. In fact this is just the sort of project from which a newbie will learn a lot about building and publishing websites using Microsoft technologies.&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;It should take you about&lt;strong&gt; 2 hours&lt;/strong&gt; to build your blogsite from start to finish, but you may need more time if you have to read any tutorials to get up to speed.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#WhatYouNeed"&gt;What you need&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#PrepYourGitHubRepo"&gt;Preparing your GitHub Repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#AdaptingMiniblog"&gt;Adapting Miniblog for your needs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#CreatingAzureResources"&gt;Creating Azure Resources for your website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#PublishingToAzure"&gt;Publishing to Azure and Test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#RegisteringDomainName"&gt;Registering a Domain Name &amp;ndash; Joker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#SettingCustomDomainName"&gt;Setting a Custom Domain Name for your Azure WebApp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ProvidingSupportForSSL"&gt;Providing support for SSL&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Summary"&gt;Summary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#RelatedPosts"&gt;Related Posts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="WhatYouNeed"&gt;What you need&lt;/h2&gt;
&lt;p&gt;I used the free &lt;a href="https://visualstudio.microsoft.com/vs/community/" target="_blank" rel="noopener"&gt;Community Edition of Visual Studio 2019&lt;/a&gt; v16.7.6 running on a Windows 10 machine to create this recipe, though I expect most earlier or later versions of Visual Studio 2019 will work fine too. I also had a free GitHub account as well as a paid Azure Subscription with a S1 application plan.&lt;/p&gt;
&lt;p&gt;Harish Rajora has produced a good tutorial about &lt;a href="https://www.toolsqa.com/git/how-to-create-github-account/" target="_blank" rel="noopener"&gt;creating a GitHub account&lt;/a&gt; for the uninitiated and anyone new to Azure can get a &lt;a href="https://azure.microsoft.com/en-us/free" target="_blank" rel="noopener"&gt;free account with $200 credit&lt;/a&gt; which is enough to run a S1 application plan for 30 days. You can host your blog site on a free F1 plan, but you should be aware of the limitations as detailed in my &lt;a href="https://www.willstott.org/blog/tech-dev-aspnetcore-miniblog-review/" target="_blank" rel="noopener"&gt;Miniblog review&lt;/a&gt; post and pay attention to the notes for F1 plans given below.&lt;/p&gt;
&lt;p&gt;In respect of Visual Studio, you will need to have the following installed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Workloads: &lt;strong&gt;Azure development&lt;/strong&gt; as well as &lt;strong&gt;ASP.NET and web development&lt;/strong&gt; &amp;ndash; select during install, or use Settings, App &amp;amp; Features to modify the installation&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Tool: &lt;a href="https://marketplace.visualstudio.com/items?itemName=GitHub.GitHubExtensionforVisualStudio" target="_blank" rel="noopener"&gt;&lt;strong&gt;GitHub Extension for Visual Studio&lt;/strong&gt;&lt;/a&gt; &amp;ndash; available for free from Visual Studio Marketplace&lt;/li&gt;
&lt;li&gt;Library: &lt;a href="https://dotnet.microsoft.com/download/dotnet-core/3.1" target="_blank" rel="noopener"&gt;&lt;strong&gt;.NET Core 3.1 SDK&lt;/strong&gt;&lt;/a&gt; (or later) &amp;ndash; download and run its installer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are entirely new to Visual Studio then run through some &lt;a href="https://visualstudio.microsoft.com/vs/getting-started/" target="_blank" rel="noopener"&gt;tutorials&lt;/a&gt;, or take a course like Kate Gregory&amp;rsquo;s &lt;a href="https://app.pluralsight.com/library/courses/visual-studio-2019-getting-started" target="_blank" rel="noopener"&gt;Visual Studio 2019 Getting started&lt;/a&gt;. This will familiarise you with the tools you need to build your blogsite. Similarly if you&amp;rsquo;ve never built a ASP.NET Core WebApp before you might want to look at the &lt;a href="https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/start-mvc?view=aspnetcore-3.1&amp;amp;tabs=visual-studio" target="_blank" rel="noopener"&gt;Microsoft beginners tutorial&lt;/a&gt; before going any further, as this will help you understand the changes made by Miniblog.core to a standard baseline project.&lt;/p&gt;
&lt;h2 id="PrepYourGitHubRepo"&gt;Preparing your GitHub Repository&lt;/h2&gt;
&lt;p&gt;Your first step is creating a repository for your blogsite in order to keep your work safe. You have two options; taking the simple way, or adopting a slightly more complex approach which would allow you to retain a connection to miniblog.core. The advantage of keeping a connection is that it makes it much easier to keep your repo up to date with changes made to miniblog.core; new features, bug fixes, etc.&lt;/p&gt;
&lt;h3&gt;Simple Approach &amp;ndash; remove connection to miniblog.core&lt;/h3&gt;
&lt;p&gt;The simple approach starts with you providing some initial content when creating your new repo on GitHub&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Open &lt;a href="http://github.com" target="_blank" rel="noopener"&gt;GitHub&lt;/a&gt; in your browser, login to your GityHub account, and then click the green &amp;lsquo;new&amp;rsquo; button the top left of your home page. This opens the &amp;lsquo;Create a new repository&amp;rsquo; form&lt;/li&gt;
&lt;li&gt;In the form provide a name for your repo (I called mine &lt;strong&gt;willstott.blog&lt;/strong&gt;), select the option to keep it private, and select &amp;lsquo;Add a README file&amp;rsquo; to provide an initial file.&lt;/li&gt;
&lt;li&gt;Click the &amp;lsquo;Create Repository&amp;rsquo; button at the bottom of the form and wait for GitHub to create this new repo and open its root folder in your browser.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In your repo&amp;rsquo;s root folder you will find a README.md file along with a green &amp;lsquo;Code&amp;rsquo; dropdown button. Use this button to clone the repo on your hard disk as follows:&lt;/p&gt;
&lt;ol start="4"&gt;
&lt;li&gt;Click the &amp;lsquo;Code&amp;rsquo; button and select &amp;lsquo;Open with Visual Studio&amp;rsquo;&amp;ndash; this starts Visual Studio on your PC and opens its Team Explorer Connect window&lt;/li&gt;
&lt;li&gt;Use the Connect window to select the folder for your local repo in the Local Git Repository section &amp;ndash; the folder must be empty so you will probably need to create a new folder; I called mine &amp;lsquo;willstott.blog&amp;rsquo;to match the name of my repo on GitHub.&lt;/li&gt;
&lt;li&gt;Click the&amp;nbsp; &amp;lsquo;Clone&amp;rsquo; button at the bottom of the section to create the local repo and populate it with the contents of your remote repo. It&amp;rsquo;s just the README file at this stage&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Having created both a remote repo on GitHub and a corresponding local repo on your PC, you need to populate the local repo with the source files from the miniblog.core GitHub repo and then push them to your own remote repo on GitHub. This can be achieved as follows:&lt;/p&gt;
&lt;ol start="7"&gt;
&lt;li&gt;Navigate to the &lt;a href="https://github.com/madskristensen/Miniblog.Core" target="_blank" rel="noopener"&gt;miniblog.core&lt;/a&gt; project on GitHub&lt;/li&gt;
&lt;li&gt;Select &amp;lsquo;Download ZIP&amp;rsquo; from the &amp;lsquo;Code&amp;rsquo; dropdown button&lt;/li&gt;
&lt;li&gt;Save the ZIP file, and then extract its contents into the new folder you created on your hard disk &amp;ndash; in my case &amp;lsquo;willstott.blog&amp;rsquo;.&lt;/li&gt;
&lt;li&gt;Use Team Explorer to add these files to your local repo (Changes window: Enter message and Commit All)&lt;/li&gt;
&lt;li&gt;Use Team Explorer to synchronise your local and remote repos (Sync window: Push outgoing commits).&lt;/li&gt;
&lt;li&gt;Check your GitHub repo now contains the miniblog.core files - see Figure 1&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="/Posts/files/Build-Fig-1A-GitHub_637395860138492083.jpg" alt="Build-Fig-1A-GitHub.jpg" width="919" height="605" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 1: My GitHub repository&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You are now ready to open the Miniblog.Core solution in Visual Studio and start the work of adapting it to fit your needs.&lt;/p&gt;
&lt;h3&gt;More Complex Approach &amp;ndash; keep connection to miniblog.core&lt;/h3&gt;
&lt;p&gt;The more complex approach starts with you creating a new repo on GitHub without any content, so from the Create New Repository page:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Open &lt;a href="http://github.com/" target="_blank" rel="noopener"&gt;GitHub&lt;/a&gt; in your browser, login to your GityHub account, and then click the green &amp;lsquo;new&amp;rsquo; button the top left of your home page. This opens the &amp;lsquo;Create a new repository&amp;rsquo; form&lt;/li&gt;
&lt;li&gt;In the form provide a name for your repo (I called mine &lt;strong&gt;willstott.blog&lt;/strong&gt;), select the option to keep it private, and clear the other selections so you don&amp;rsquo;t initialise your new repo with any files like README&lt;/li&gt;
&lt;li&gt;Click the &amp;lsquo;Create Repository&amp;rsquo; button at the bottom of the form and wait for GitHub to create this new repo and open an instruction page in your browser&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Instead of following the given instructions for setting-up a local repo, following these instead:&lt;/p&gt;
&lt;ol start="4"&gt;
&lt;li&gt;Open a Command Prompt Window and change its current directory to a suitable location on your hard disk&lt;/li&gt;
&lt;li&gt;Make a directory (mkdir) for your blogsite project and set it as your current directory &amp;ndash; in my case &amp;lsquo;cd willstott.blog&amp;rsquo;&lt;/li&gt;
&lt;li&gt;Execute the command: &lt;strong&gt;git clone &lt;/strong&gt;&lt;a href="https://github.com/madskristensen/Miniblog.Core.git"&gt;&lt;strong&gt;https://github.com/madskristensen/Miniblog.Core.git&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;The Git command tools are installed as part of the GitHub extension for Visual Studio installation&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;You have now cloned the miniblog.core remote repo on GitHub to a local repo on your PC, but this isn&amp;rsquo;t exactly what you want as any attempt to push the commits made in your local repo will fail. This is because your local repo&amp;rsquo;s origin is set to the remote miniblog.core repo rather than your own GitHub repo; in my case willstott.blog. Therefore use the follow commands to change your local repo where XXX is the URL of the repo you have just created on GitHub, as shown in Figure 1:&lt;/p&gt;
&lt;ol start="7"&gt;
&lt;li&gt;cd Miniblog.Core&lt;/li&gt;
&lt;li&gt;git remote rename origin upstream&lt;/li&gt;
&lt;li&gt;git remote add origin XXX&lt;/li&gt;
&lt;li&gt;git push origin master&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The default name of your repo&amp;rsquo;s remote has now been changed to &amp;lsquo;upstream&amp;rsquo; and a second remote called &amp;lsquo;origin&amp;rsquo; has been added which points to your new repo on GitHub. Therefore your local repo now has two remotes: 1) upstream which maps to miniblog.core 2) origin which maps to your new repo &amp;ndash; in my case &amp;lsquo;willstott.blog&amp;rsquo;. Consequently the last command pushes the commits in your local repo to your new repo rather than the miniblog repo. This is exactly what you want and if you check your repo on GitHub you will find it is now populated with all the files from miniblog.core, just like it was after completing the simpler option.&lt;/p&gt;
&lt;p&gt;Unfortunately, one problem remains: if you start Visual Studio, open the Miniblog.Core Solution, and look at the Team Explorer&amp;rsquo;s Branch screen you can see that the master branch is tracking upstream, not origin. The following command fixes this issue as can be seen in Figure 2:&lt;/p&gt;
&lt;ol start="12"&gt;
&lt;li&gt;git branch master --set-upstream-to origin/master&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="/Posts/files/Build-Fig-2-TeamExplorerBranches_637391576490117670.jpg" alt="Build-Fig-2-TeamExplorerBranches.jpg" width="411" height="310" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 2: Team Explorer &amp;ndash; Branch Window&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can now use Visual Studio to make changes to your blogsite project, use Team Explorer&amp;rsquo;s Change window to commit them to your local repo, and finally use its Sync window to push the commit to your remote repo on GitHub. The advantage of undertaking this extra work is that at any time you can update your repo with any changes made in the miniblog.core repo on GitHub just by issuing the command shown in Figure 3:&lt;/p&gt;
&lt;p&gt;&lt;img src="/Posts/files/Build-Fig-3-GitPullUpstream_637391576491463441.jpg" alt="Build-Fig-3-GitPullUpstream.jpg" width="915" height="294" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 3: Git Command to update your repo with any changes made in miniblog.core&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You are now ready to open the Miniblog.Core solution in Visual Studio and start the work of adapting it to fit your needs.&amp;nbsp;&lt;/p&gt;
&lt;h2 id="AdaptingMiniblog"&gt;Adapting Miniblog for your needs&lt;/h2&gt;
&lt;h3&gt;Perform an Initial Build&lt;/h3&gt;
&lt;p&gt;One of the golden rules of software development is to keep your program working. That&amp;rsquo;s to say, you start with a basic program, check it works, make a small change, check it works and then repeat. Therefore the first steps you want to take after setting-up your repo are:&lt;/p&gt;
&lt;ol start="13"&gt;
&lt;li&gt;Open the solution in Visual Studio (File | Open | Project/Solution)&lt;/li&gt;
&lt;li&gt;Rebuild the solution (Build | Build Solution)&lt;/li&gt;
&lt;li&gt;Run the website from the IIS Express server on your PC (Debug | Start without debugging)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The solution should build without error and your browser should then open at your blogsite&amp;rsquo;s&amp;nbsp; default page on localhost. You will want to repeat the above steps frequently as you develop your blogsite project. You are now ready to start adapting miniblog.core for your needs.&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;If you are using the &lt;a style="color: #808080;" href="https://www.jetbrains.com/resharper/" target="_blank" rel="noopener"&gt;Jet Brains ReSharper&lt;/a&gt; tool extension for Visual Studio you will find that numerous errors and warnings are reported during a build. Although these can be ignored, ideally you would want to fix them. I have proposed some work in this regard; see &lt;a style="color: #808080;" href="https://github.com/madskristensen/Miniblog.Core/issues/148" target="_blank" rel="noopener"&gt;issue #148&lt;/a&gt; in the miniblog.core GitHub project.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;Smoke Testing your Blogsite&lt;/h3&gt;
&lt;p&gt;A Smoke test is a small subset of test cases that cover the most important functionality of your blogsite. For example, it might including checking that a list of posts appear on its home page, allowing you to login and then create and delete posts, and so forth. Typically I run my Smoke tests manually using a list of things that need to be checked in order to confirm that the build succeeded and created a working website that can be viewed in my browser; it&amp;rsquo;s a type of sanity test. I try to limit the time it takes to run such tests to five minutes. Afterwards I embark upon more thorough testing of the changes I&amp;rsquo;ve just made to the project.&lt;/p&gt;
&lt;h3&gt;Replacing the Standard Website Images&lt;/h3&gt;
&lt;p&gt;The miniblog.core website contains a number of images which are used for things like displaying an icon in the browser address bar (favicon). You will probably want to replace these with images that reflect your own branding:&lt;/p&gt;
&lt;ol start="16"&gt;
&lt;li&gt;Replace the images in the&amp;nbsp; &lt;strong&gt;src\wwwroot\img&lt;/strong&gt; folder with your own equivalents, though you might want to keep avatar.svg as this provides the default image for comments made by people whose email address is not registered with a &lt;a href="https://en.gravatar.com/" target="_blank" rel="noopener"&gt;Gravatar.com&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Update the WebApp&amp;rsquo;s Metadata - manifest.json&lt;/h3&gt;
&lt;p&gt;The miniblog.core WebApp stores certain metadata like the name of the website in the file manifest.json which can be found in the &lt;strong&gt;src\wwwroot&lt;/strong&gt; folder. You should update the following elements:&lt;/p&gt;
&lt;ol start="17"&gt;
&lt;li&gt;&lt;strong&gt;name:&lt;/strong&gt; the name of the website as displayed at the top right of each page&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;short_name:&lt;/strong&gt; the name applied to desktop icons, etc&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;description:&lt;/strong&gt; the text that describes your website to Google indexing bots, etc&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Update the WebApp&amp;rsquo;s Configuration Settings &amp;ndash; appsettings.json&lt;/h3&gt;
&lt;p&gt;ASP.Net Core WebApps typically store their configuration settings in a file called appsettings.json which can be found in the &lt;strong&gt;src&lt;/strong&gt; folder; see Figure 4. You should update the following elements:&lt;/p&gt;
&lt;ol start="20"&gt;
&lt;li&gt;&lt;strong&gt;forcessl&lt;/strong&gt; &lt;strong&gt;false&lt;/strong&gt;: keep this value as &amp;lsquo;false&amp;rsquo;, though you will want to set force sll to true after updating your webapp to support Secure Sockets Layer (SSL) as described later.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;user: username:&lt;/strong&gt; enter the name you want as a username during your website&amp;rsquo;s log-in&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;user: password:&lt;/strong&gt; enter the value of the hash generated from the form at &lt;a title="https://onlinehasher.azurewebsites.net/" href="https://onlinehasher.azurewebsites.net/"&gt;https://onlinehasher.azurewebsites.net/&lt;/a&gt; for your given password and salt character string. It is practically impossible to recover the password text from this hash value.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;user: salt:&lt;/strong&gt; enter the random character string you used as the &amp;lsquo;salt&amp;rsquo; value when generating your password hash. I used a random password generator to provide this value.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;blog: owner:&lt;/strong&gt; enter your name as the owner of the site&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="/Posts/files/Build-Fig-4-AppSettings_637391576492288140.jpg" alt="Build-Fig-4-AppSettings.jpg" width="1019" height="608" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 4: Editing appsettings.json&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Update the Configuration Settings Class - blogsettings.cs&lt;/h3&gt;
&lt;p&gt;The class BlogSettings is contained in the file BlogSetting.cs which can be found in the &lt;strong&gt;src &lt;/strong&gt;folder. An instance of this class is created during your WebApp&amp;rsquo;s start-up and initialised from appsettings.json. The BlogSettings class defines default values for any values not found in your appsettings.json file, so it is good practice to make sure these defaults match the values defined in the file, specifically the default value for Owner (your name)&lt;/p&gt;
&lt;h3&gt;Update your Project Properties and Test&lt;/h3&gt;
&lt;p&gt;It is good practice to update the package details in your Project Properties (Figure 5) as these values are copied into the miniblog.core.dll generated by the build process and can help you identify it. I find the package version particularly useful in terms of identification as typically I update it before submitting changes that I have published. I also create a version control tag with a matching name as explained at the end of this post. In this way I can always rollback my source file to correspond with any published version of my site.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Posts/files/Build-Fig-5-ProjectProps_637391576493097603.jpg" alt="Build-Fig-5-ProjectProps.jpg" width="762" height="472" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 5: Project Properties - Package Section&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You are now ready to build your project and check your changes produce the desired effect as follows.&lt;/p&gt;
&lt;ol start="25"&gt;
&lt;li&gt;Rebuild your project (Build | Rebuild miniblog.core)&lt;/li&gt;
&lt;li&gt;Run the website from the IIS Express server on your PC (Debug | Start without debugging)&lt;/li&gt;
&lt;li&gt;Perform a Smoke test on the website now displayed in your browser&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;After ensuring that your website is running correctly from IIS Express you should start creating the resources you will need to run it on Azure&lt;/p&gt;
&lt;h2 id="CreatingAzureResources"&gt;Creating Azure Resources for your website&lt;/h2&gt;
&lt;p&gt;Once you have created an Azure account and subscription you can create the resources you need for your website using the Azure Portal. Most beginners use the portal&amp;rsquo;s GUI to create a resource group and service plan as well as the WebApp. However, I find it easier to use the Azure CLI which you can operate from the Portal&amp;rsquo;s Cloud Shell. Not only is this faster, but it also allows me to put all the commands needed to recreate the resources for my project into a text file which I can put under version control. The Cloud Shell is opened by clicking the button next to the search bar in your browser; see Figure 6&lt;/p&gt;
&lt;p&gt;&lt;img src="/Posts/files/Build-Fig-6A-AzureCmdShell_637395860139325192.jpg" alt="Build-Fig-6A-AzureCmdShell.jpg" width="778" height="556" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 6: Azure Command Shell&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Note: You may have to create a storage account to support the drive needed by the Azure Cloud Shell, but this happens without the need for much intervention on your part.&lt;/p&gt;
&lt;p&gt;Having opened a Cloud Shell you should select PowerShell (rather than Bash) in its menu bar and then issue the Azure CLI commands listed below. These commands are fully documented in &lt;a href="https://docs.microsoft.com/en-us/cli/azure/?view=azure-cli-latest" target="_blank" rel="noopener"&gt;Microsoft Docs&lt;/a&gt;, but you should be aware:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Your App Service Plan and WebApp must be in the same resource group&lt;/li&gt;
&lt;li&gt;You need a S1 service plan to support a custom domain and SSL. This level service plan costs me approx $80 per month. You can use the free F1 plan, but it also has other limitations&amp;nbsp; as detailed in my Miniblog Review post&lt;/li&gt;
&lt;li&gt;You should set the location of your service plan to somewhere close to where you expect most of your readers to come from. I selected &amp;ldquo;WestEurope&amp;rdquo;, but Microsoft publishes a list of other locations&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The labels in Table 1 are used when giving CLI commands in this post.&lt;/p&gt;
&lt;table style="border-collapse: collapse;" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="width: 17%; height: 18px;"&gt;Label&lt;/td&gt;
&lt;td style="width: 66%; height: 18px;"&gt;Description&lt;/td&gt;
&lt;td style="width: 17%; height: 18px;"&gt;Set at...&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AAAA&lt;/td&gt;
&lt;td&gt;Name of your subscription returned by az account list&lt;/td&gt;
&lt;td&gt;step 28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BBBB&lt;/td&gt;
&lt;td&gt;Name of your resource group&lt;/td&gt;
&lt;td&gt;step 30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CCCC&lt;/td&gt;
&lt;td&gt;Name of your service plan&lt;/td&gt;
&lt;td&gt;step 31&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DDDD&lt;/td&gt;
&lt;td&gt;Name of your webapp&lt;/td&gt;
&lt;td&gt;step 32&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EEEE&lt;/td&gt;
&lt;td&gt;Your username; see appsettings.json&lt;/td&gt;
&lt;td&gt;step 33&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FFFF&lt;/td&gt;
&lt;td&gt;Hash of your password; see appsettings.json&lt;/td&gt;
&lt;td&gt;step 34&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GGGG&lt;/td&gt;
&lt;td&gt;Salt used to generate the hash; see appsettings.json&lt;/td&gt;
&lt;td&gt;step 35&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HHHH&lt;/td&gt;
&lt;td&gt;Your custom domain name &amp;ndash; mine is &lt;a href="http://www.willstott.org"&gt;www.willstott.org&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;step 46&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JJJJ&lt;/td&gt;
&lt;td&gt;Thumbprint returned after creating a SSL certificate&lt;/td&gt;
&lt;td&gt;step 53&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Table 1: Labels used in Azure CLI Commands&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;Commands to create a WebApp&lt;/h3&gt;
&lt;p&gt;The following commands create a WebApp - see Table 1 for the label definitions&lt;/p&gt;
&lt;ol start="28"&gt;
&lt;li&gt;az account list&lt;/li&gt;
&lt;li&gt;az account set --subscription AAAA&lt;/li&gt;
&lt;li&gt;az group create --name BBBB --location "WestEurope"&lt;/li&gt;
&lt;li&gt;az appservice plan create --name CCCC --resource-group BBBB --location "WestEurope" --sku S1&lt;/li&gt;
&lt;li&gt;az webapp create &amp;ndash;name DDDD --plan CCCC --resource-group BBBB&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;At this point it is good idea to add the configuration settings for your WebApp. Such settings take precedence over those given in appsettings.json and have the advantage that they can be updated without the need to republish your project from Visual Studio. I recommend you at least add the following as well as issuing the restart command as such settings are only picked-up during the WebApp start-up process:&lt;/p&gt;
&lt;ol start="33"&gt;
&lt;li&gt;az webapp config appsettings set &amp;ndash;name DDDD --resource-group BBBB --settings 'user:username=EEEE'&amp;nbsp;&lt;/li&gt;
&lt;li&gt;az webapp config appsettings set &amp;ndash;name DDDD --resource-group BBBB --settings 'user:password=FFFF'&lt;/li&gt;
&lt;li&gt;az webapp config appsettings set &amp;ndash;name DDDD --resource-group BBBB --settings 'user:salt=GGGG'&lt;/li&gt;
&lt;li&gt;az webapp restart&amp;nbsp; &amp;ndash;name DDDD --resource-group BBBB&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You might want to return to your Azure Portal&amp;rsquo;s home page and take a look at the recent resources to confirm that your resource group, service plan and WebApp are now present and then inspect your WebApp&amp;rsquo;s Overview blade to check that its App Service Plan is set to S1 and its settings in the Configuration section are present as expected; see Figure 7.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Posts/files/Build-Fig-7-WebAppOverview_637391576495072113.jpg" alt="Build-Fig-7-WebAppOverview.jpg" width="1147" height="663" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 7: Azure WebApp Overview page&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You are now ready to Publish your website project from Visual Studio to the WebApp you have just setup on Azure.&lt;/p&gt;
&lt;h2 id="PublishingToAzure"&gt;Publishing to Azure and Test&lt;/h2&gt;
&lt;h3&gt;Create a Publishing Profile&lt;/h3&gt;
&lt;p&gt;Visual Studio makes it very easy to publish a website project to Azure. First you need to create a publishing profile as follows:&lt;/p&gt;
&lt;ol start="37"&gt;
&lt;li&gt;Open the Solution Explorer window, right click the name of the project (Miniblog.core) and select Publish from its context menu&lt;/li&gt;
&lt;li&gt;Select Azure as the target for publication&lt;/li&gt;
&lt;li&gt;Select Azure App Service (Windows) as the type of service&lt;/li&gt;
&lt;li&gt;Apply the settings necessary to find your WebApp in the given subscription and resource group, select it, and then click &amp;lsquo;Finish&amp;rsquo;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;After creating your publishing profile you are presented with the Miniblog.core Publish window (see figure 8). The same window will appear in future whenever you select Publish from your project&amp;rsquo;s context menu. Besides allowing you to publish your project, it also allows you to alter your existing publishing profile or create a new one. However, before clicking the Publish button there is one final step to take &amp;ndash; excluding your Posts folder.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Posts/files/Build-Fig-8-VSPublish_637391576495970387.jpg" alt="Build-Fig-8-VSPublish.jpg" width="1206" height="583" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 8: Visual Studio Publish Window&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;Your publishing profile has small stop sign icon next to it. This shows that the file will not be added to version control; a sensible option given that it may contain certain information that would not want to share with others.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;Editing the Publishing Profile to Exclude the Posts folder&lt;/h3&gt;
&lt;p&gt;You will probably have created a number of posts during the Smoke testing of your project. These Posts appear as XML files in the folder wwwroot\Posts. Clearly you do not want to publish these files when your site is hosted on Azure, so you want to exclude the contents of the Posts folder from the file and folders that will be uploaded to your Azure WebApp. This is done as follows:&lt;/p&gt;
&lt;ol start="41"&gt;
&lt;li&gt;Use Solution Explorer to open the Miniblog.core project&amp;rsquo;s Properties folder and then open the PublishProfiles folder as shown in Figure 8.&lt;/li&gt;
&lt;li&gt;Open the Publishing Profile file (*.pubxml) previously created in Visual Studio&amp;rsquo;s editor &amp;ndash; just double-click the file in Solution Explorer&lt;/li&gt;
&lt;li&gt;At the end of the file add the &amp;lt;ItemGroup&amp;gt; show below. This should be inserted just after the last &amp;lt;/PropertyGroup&amp;gt; and before the final &amp;lt;/Project&amp;gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;&amp;lt;ItemGroup&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt; MsDeploySkipRules Include="CustomSkipFolder"&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt; ObjectName&amp;gt;dirPath&amp;lt;/ObjectName&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt; AbsolutePath&amp;gt;wwwroot\\Posts&amp;lt;/AbsolutePath&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;/MsDeploySkipRules&amp;gt; &lt;br /&gt;&amp;lt; /ItemGroup&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;The way you exclude files and folders from may change with different versions of Visual Studio. The above instructions work with Visual Studio 2019.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;Publishing your Project on Azure&lt;/h3&gt;
&lt;p&gt;Having completed the preparation of your Publishing Profile you are now ready to publish your project to Azure. This step involves rebuilding your project to create the necessary code files, uploading them together with the files in the wwwroot folder (excluding the Posts subfolder) to your WebApp, and finally opening your browser at the URL of your Azure website. Fortunately, you just need to click one button to do all this work:&lt;/p&gt;
&lt;ol start="44"&gt;
&lt;li&gt;Click the Publish button in the Publish Window &amp;ndash; see Figure 8&lt;/li&gt;
&lt;li&gt;Run your Smoke test to check that your blogsite is working properly&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;You can find the code files and other build products in the folder Miniblog.Core\src\bin\Release\netcoreapp3.1. There is another folder called Debug which contains the build products for a Debug Build.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;You now have a working website that anyone connected to the internet can view. However, the URL isn&amp;rsquo;t very expressive as it&amp;rsquo;s the name of your Azure WebApp followed by the standard Azure domain azurewebsites.net. If you can afford to host on the S1 service plan you will want to change it to something more appropriate, but first you need to register a domain name for your blogsite.&lt;/p&gt;
&lt;h2 id="RegisteringDomainName"&gt;Registering a Domain Name &amp;ndash; Joker&lt;/h2&gt;
&lt;p&gt;The internet&amp;rsquo;s Domain Name System (DNS) is responsible for converting the URL you type into a browser into the Internet Protocol (IP) address of the server responsible for hosting your WebApp so that a connection can be made between the two machines. This connection will then be used to send the contents of your website back to the browser. The DNS is made-up of many, many servers running world-wide that distribute the work of translating URLs like like &lt;a href="http://www.willstott.org/"&gt;www.willstott.org&lt;/a&gt; into IP addresses like 168.56.7.245.&lt;/p&gt;
&lt;p&gt;The question you might now be asking is, how do I add my own record into the DNS so I can get my domain name translated into the IP address of the Azure server running my WebApp? The first step is registering a domain name:&lt;/p&gt;
&lt;ol start="46"&gt;
&lt;li&gt;Register your domain name HHHH with one of the many registrars. I use &lt;a href="http://www.joker.com/" target="_blank" rel="noopener"&gt;Joker.com&lt;/a&gt;, but there are many alternatives like &lt;a href="http://www.godaddy.com/" target="_blank" rel="noopener"&gt;GoDaddy.com&lt;/a&gt; and &lt;a href="https://www.wix.com" target="_blank" rel="noopener"&gt;Wix.com&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Each of the registrars have their own way of registering a domain name and there is also quite a wide variation in cost; I pay about $7.00 a year for a .org name. However, the process is no more difficult than using a credit card to buy anything else from the internet. Once you have purchased a domain name your registrar will manage the task of getting it added to one of their DNS servers so the associated records can be distributed to all the other servers on the internet. Your registrar will usually present you with a web portal so you can administer the these records. For example, the portal provided by Joker.com allows you to create a CNAME record as follows:&lt;/p&gt;
&lt;ol start="47"&gt;
&lt;li&gt;Login to your account on Joker.com and find your domain name HHHH in the list displayed on the home page; mine is willstott.org&lt;/li&gt;
&lt;li&gt;Click the &amp;lsquo;DNS&amp;rsquo; text in the row containing HHHH to open the DNS Configuration page. This page will list your existing DNS records for the domain.&lt;/li&gt;
&lt;li&gt;Click the &amp;lsquo;Add New Record&amp;rsquo; button to display the form shown in Figure 9. This allows you to define the type of record (CNAME), its subdomain (www) and the name of the alias (DDDD.azurewebsites.net). You then click &amp;lsquo;Add&amp;rsquo;, leaving the existing default values in the &amp;lsquo;Options&amp;rsquo; section&lt;/li&gt;
&lt;li&gt;Click the &amp;lsquo;Add New Record&amp;rsquo; again, but this time create a TXT record and keeping the subdomain as www, enter the Custom Domain Verification ID code as its content. You obtain this ID from your Azure Portal &amp;ndash; Custom Domains as shown in Figure 10. You then need to click &amp;lsquo;Add&amp;rsquo; as before.&lt;/li&gt;
&lt;li&gt;Click the &amp;lsquo;Save Changes&amp;rsquo; button at the bottom of the page to apply your new DNS records. It may take a few hours for them to propagate to your nearest DNS servers and up to 72 hours for them to propagate to all servers worldwide.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;There are a number of different types of DNS records you can create to map your domain name to the IP address of your Azure WebApp, but I prefer to use a CNAME record as it creates an alias for the WebApp name rather than setting a given IP address. In this way you are isolated from any changes in the IP address allocated to your WebApp by Azure.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Posts/files/Build-Fig-9-JokerCNAME_637391576497350654.jpg" alt="Build-Fig-9-JokerCNAME.jpg" width="1260" height="572" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 9: Joker.com add CNAME record&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Once your CNAME record has been added to the DNS you can proceed to the next step: setting a custom domain name for your Azure WebApp&lt;/p&gt;
&lt;h2 id="SettingCustomDomainName"&gt;Setting a Custom Domain Name for your Azure WebApp&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #ff0000;"&gt;The following step requires you to have a App Service Plan of &lt;u&gt;D1&lt;/u&gt; or greater&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To complete the process of setting-up a custom domain name for your blogsite you need to make your Azure WebApp aware of the hostname - HHHH. This can be done using the Azure CLI / Cloud Shell as follows - see Table 1 for the label definitions&lt;/p&gt;
&lt;ol start="52"&gt;
&lt;li&gt;az webapp config hostname add --webapp-name DDDD --resource-group BBBB --hostname DDDD&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You should then check that the Custom domain blade shows the assigned custom domain like that shown in Figure 10. You will note that the domain name is marked as &amp;lsquo;Not secure&amp;rsquo; because you have not bound a SSL certificate to it. This is something you will do next.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Your WebApp&amp;rsquo;s Custom domains blade contains the Custom Domain Verification ID. You should use this ID value to create a TXT record for your custom domain&amp;rsquo;s DNS settings as described in the previous section. This TXT record provides proof that you own the domain, or at least have the permissions necessary to create its DNS records.&lt;/p&gt;
&lt;h2 id="ProvidingSupportForSSL"&gt;Providing support for SSL&lt;/h2&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&lt;strong&gt;The following steps require you to have a App Service Plan of &lt;u&gt;S1 &lt;/u&gt;or greater&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Most websites now support Secure Sockets Layer (SSL) connections because modern browsers warn people against visiting sites that have not implemented this level of security. In the past I bought the SSL certificate necessary to implement SSL connection for my websites from the likes of &lt;a href="https://www.thawte.com/" target="_blank" rel="noopener"&gt;Thawte&lt;/a&gt; and &lt;a href="https://uk.godaddy.com/help/ssl-certificates-1000006" target="_blank" rel="noopener"&gt;GoDaddy&lt;/a&gt;. This proved to be not only an expensive exercise at $200 per year, but also one that involved a heavy administration burden in terms of undergoing verification of my company&amp;rsquo;s good standing and following a tortuous process for obtaining the certificate and uploading it to Azure. Fortunately, you can now obtain SSL certificates at no cost from Microsoft and then apply it to your website using the following Azure CLI commands - see Table 1 for the label definitions:&lt;/p&gt;
&lt;ol start="53"&gt;
&lt;li&gt;az webapp config ssl create --resource-group BBBB &amp;ndash;name DDDD &amp;ndash;hostname HHHH&lt;/li&gt;
&lt;li&gt;az webapp config ssl bind --certificate-thumbprint JJJJ &amp;ndash;name DDDD --resource-group BBBB --ssl-type SNI&lt;/li&gt;
&lt;li&gt;az webapp update --resource-group BBBB &amp;ndash;name DDDD --set HttpsOnly=true&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;T&lt;span style="color: #808080;"&gt;&lt;em&gt;he certificate thumbprint JJJJ is displayed after you create the certificate in step 53&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;You should confirm that your domain name is now secure by revisiting the Custom Domain Blade for your WebApp in the Azure Portal. It should now be marked as secureas shown in Figure 10.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Posts/files/Build-Fig-10-AzureCustomDomains_637391576497857446.jpg" alt="Build-Fig-10-AzureCustomDomains.jpg" width="1264" height="709" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 10: Azure WebApp Custom domains with Verification ID&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The only remaining task is changing your application settings so that it forces the use of SSL:&lt;/p&gt;
&lt;ol start="56"&gt;
&lt;li&gt;Use Visual Studio to edit your project&amp;rsquo;s AppSettings.json file and set &lt;strong&gt;forcessl: true&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You now need to republish your project using the same procedure as before:&lt;/p&gt;
&lt;ol start="57"&gt;
&lt;li&gt;Open the Solution Explorer window, right click the name of the project (Miniblog.core) and select Publish from its context menu&lt;/li&gt;
&lt;li&gt;Click the Publish button in the Publish Window &amp;ndash; see Figure 8 and wait for the website to open in your browser&lt;/li&gt;
&lt;li&gt;Run your Smoke test to check that your blogsite is working properly, paying particular attention to applying your new domain name prefixed with the https:// protocol&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you enter the non-SSL protocol (http://) with your domain name into a browser&amp;rsquo;s address bar, you will see that the URL is automatically changed to the SSL protocol; in my case to &lt;a href="https://www.willstott.org"&gt;https://www.willstott.org&lt;/a&gt;. You will also notice that a padlock icon appears in the address bar to indicate that you have a secure SSL connection to the Azure server &amp;ndash; clicking this padlock opens a dialog which allows you to view information about your certificate; see Figure 11.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Posts/files/Build-Fig-11-SSLCert_637391576498481695.jpg" alt="Build-Fig-11-SSLCert.jpg" width="923" height="750" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 11: SSL Certificate displayed in a browser&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Submitting Changes to your Project Files&lt;/h2&gt;
&lt;p&gt;To complete the process of adapting miniblog.core to provide your own blogsite you should add the files you have changed to version control as follows:&lt;/p&gt;
&lt;ol start="60"&gt;
&lt;li&gt;Open the Team Explorer window and click the &amp;lsquo;home&amp;rsquo; icon in its menu bar to display the location of your remote repo and a list of the actions you can apply; Changes, Sync, Tags, etc&lt;/li&gt;
&lt;li&gt;Click the &amp;lsquo;changes&amp;rsquo; action button to open a form and enter a description of the work you have done into its message box; see Figure 12.&lt;/li&gt;
&lt;li&gt;Click &amp;lsquo;commit all&amp;rsquo; to update your local repo &amp;ndash; a message will appear containing your commit ID&lt;/li&gt;
&lt;li&gt;Click the &amp;lsquo;home&amp;rsquo; icon again to return back to the list of actions&lt;/li&gt;
&lt;li&gt;Click the &amp;lsquo;Sync&amp;rsquo; action button and check that there is an outgoing commit waiting to be pushed to the remote repo in GitHub&lt;/li&gt;
&lt;li&gt;Click &amp;lsquo;push&amp;rsquo; and wait for your changes to be sent to the remote repo&lt;/li&gt;
&lt;li&gt;Click the &amp;lsquo;home&amp;rsquo; icon to return back to the list of actions&lt;/li&gt;
&lt;li&gt;Click the &amp;lsquo;Tags&amp;rsquo; action button and then click &amp;lsquo;New Tag&amp;rsquo; to open a form into which you should enter the &amp;lsquo;v1.0.0&amp;rsquo; as the tag name &amp;ndash; i.e. the version number in your Project Properties (see Figure 5).&amp;nbsp; You should then add a suitable tag message, click the &amp;lsquo;Create Tag button, and finally click &amp;lsquo;Push All&amp;rsquo; to update your remote repo on GitHub with this new tag information&lt;/li&gt;
&lt;li&gt;Use Solution Explorer to open your Project Properties and increment the version number in the Packages section to mark the start of future changes to your project.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="/Posts/files/Build-Fig-12-VSTeamExploreChanges_637391576499116602.jpg" alt="Build-Fig-12-VSTeamExploreChanges.jpg" width="356" height="336" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 12: Visual Studio Team Explorer &amp;ndash; Changes Window&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="Summary"&gt;Summary&lt;/h2&gt;
&lt;p&gt;You have now&amp;nbsp; created your own blogsite from miniblog.core and published it to Azure so it can be accessed using a custom domain and the SSL protocol like &lt;a href="https://www.willstott.org/"&gt;https://www.willstott.org&lt;/a&gt;. My next blog will explain how you can enhance this project to provide additional features that makes your blogsite appear slightly smarter.&lt;/p&gt;
&lt;h2 id="RelatedPosts"&gt;Related Posts&lt;/h2&gt;
&lt;p&gt;You might find the following posts interesting:&lt;/p&gt;
&lt;ul style="list-style-type: square;"&gt;
&lt;li&gt;&lt;a title="https://www.willstott.org/blog/tech-dev-aspnetcore-miniblog-review/" href="https://www.willstott.org/blog/tech-dev-aspnetcore-miniblog-review/" target="_blank" rel="noopener"&gt;Review: Why Use Miniblog for your blog?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;If you found this post useful please help raise my profile by providing a link on your social media account; just click the buttons below. You can also add a comment or contact me by email, but I can&amp;rsquo;t promise to respond immediately.&amp;nbsp;&lt;/em&gt;&lt;/p&gt;</description>
  <author>Will Stott</author>
  <category>tech</category>
  <category>dev</category>
  <category>aspnetcore</category>
  <category>miniblog</category>
  <guid isPermaLink="false">https://www.willstott.org/blog/tech-dev-aspnetcore-miniblog-createyourownsite/</guid>
  <pubDate>Wed, 14 Oct 2020 12:10:35 GMT</pubDate>
</item>
<item>
  <title>Why use Miniblog for your blog?</title>
  <link>https://www.willstott.org/blog/tech-dev-aspnetcore-miniblog-review/</link>
  <description>&lt;h1&gt;Review of Miniblog.core&lt;/h1&gt;
&lt;p&gt;I've had a few attempts at setting-up a personal blog site using services like Google's Blogger, but haven't been particularly happy with the result. Therefore I decided to build my own &amp;ndash; well I'm a software developer after all! Whilst searching GitHub for existing solutions to provide a starting point I found &lt;a title="https://github.com/madskristensen/Miniblog.Core" href="https://github.com/madskristensen/Miniblog.Core" target="_blank" rel="noopener"&gt;Miniblog.core&lt;/a&gt; by &lt;a title="https://devblogs.microsoft.com/visualstudio/author/madsk/" href="https://devblogs.microsoft.com/visualstudio/author/madsk/" target="_blank" rel="noopener"&gt;Mads Kristensen&lt;/a&gt;. He describes it as a personal blogging engine which means it implements a website from which you can create, manage and publish the postings of your own blog. After an evaluation I came to the conclusion that Miniblog would be a good match for me. In this blog post I will explain why. In my next post I explain &lt;a title="https://www.willstott.org/blog/tech-dev-aspnetcore-miniblog-createyourownsite/" href="https://www.willstott.org/blog/tech-dev-aspnetcore-miniblog-createyourownsite/" target="_blank" rel="noopener"&gt;how I built my site and published it on Azure&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#SkillsYouNeed"&gt;Skills you need&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Documentation"&gt;Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#HostingRequirements"&gt;Hosting requirements&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#CodeQualitySupport"&gt;Code quality and support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Architecture"&gt;Architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#LookAndFeelOfWebsite"&gt;Look and feel of the website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#SupportForComments"&gt;Support for Reader's Comments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#SupportForGoogleRanking"&gt;Support for Google Ranking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#SupportForAtomRSSRSD"&gt;Support for Atom, RSS and RSD&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#PostImportExport"&gt;Import and Export of Posts - MetaWeblog API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Performance"&gt;Performance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#WhatsMissing"&gt;What&amp;rsquo;s missing?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Summary"&gt;Summary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#References"&gt;References&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#RelatedPosts"&gt;Related Posts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="SkillsYouNeed"&gt;Skills you need&lt;/h2&gt;
&lt;p&gt;In order to use Miniblog as the basis for your own blog site you will need to have basic skills in building &lt;a title="https://dotnet.microsoft.com/apps/aspnet" href="https://dotnet.microsoft.com/apps/aspnet" target="_blank" rel="noopener"&gt;ASP.NET WebApps&lt;/a&gt; using &lt;a title="https://visualstudio.microsoft.com/downloads/" href="https://visualstudio.microsoft.com/downloads/"&gt;Visual Studio&lt;/a&gt; as well as some experience in deploying them to &lt;a title="https://docs.microsoft.com/en-us/learn/modules/welcome-to-azure/" href="https://docs.microsoft.com/en-us/learn/modules/welcome-to-azure/" target="_blank" rel="noopener"&gt;Azure&lt;/a&gt;. However, the technical bar isn't very high. Actually if you're just starting-out with this sort of technology then it's just the type of project you might want to undertake; you'll learn a lot by doing so. My next post takes you through the process step-by-step with few assumptions about your existing skills.&lt;/p&gt;
&lt;h2 id="Documentation"&gt;Documentation&lt;/h2&gt;
&lt;p&gt;The first thing you'll realise looking at the GitHub repo that provides a home for Miniblog is that there's not much by way of documentation. There's a &lt;a title="https://github.com/madskristensen/Miniblog.Core" href="https://github.com/madskristensen/Miniblog.Core"&gt;readme&lt;/a&gt; file which contains a list of its basic features and instructions for installing a template so you can build it with Visual Studio, though take care as this doesn't give you the latest version. There's also a link to an &lt;a title="https://miniblogcore.azurewebsites.net/" href="https://miniblogcore.azurewebsites.net" target="_blank" rel="noopener"&gt;example site&lt;/a&gt; built using Miniblog and published on Azure so you can explore its features for yourself.&lt;/p&gt;
&lt;h2 id="HostingRequirements"&gt;Hosting requirements&lt;/h2&gt;
&lt;p&gt;Miniblog uses the ASP.NET Core framework (currently version 3.1) which means that it can be hosted by most modern servers including those running Linux with Apache as well those running Windows Server with IIS. You won&amp;rsquo;t need a database server as your blog posts are stored as XML files within wwwroot and user authentication is performed using a simple web.config file.&lt;/p&gt;
&lt;p&gt;Hosting a Miniblog site in the Azure cloud made sense for me as I&amp;rsquo;ve already got a subscription with a &lt;a title="https://azure.microsoft.com/en-gb/pricing/details/app-service/windows/" href="https://azure.microsoft.com/en-gb/pricing/details/app-service/windows/"&gt;S1 application service plan&lt;/a&gt; so I can host it with minimal further cost. In this way I avoid the hassle of administering my own server and can publish my website directly from Visual Studio with only a few clicks. Indeed, Miniblog is built with Azure deployment in mind.&lt;/p&gt;
&lt;p&gt;Hosting on Azure might still be a good solution for people without an existing subscription as makes the deployment and running of your website very simple. However, a S1 application service plan isn&amp;rsquo;t cheap. I pay about $80 a month, but use the same plan for hosting multiple websites. You won&amp;rsquo;t find the costs reduce much when hosting just one WebApp.&lt;/p&gt;
&lt;p&gt;You can host your site on an F1 plan which is free, but you&amp;rsquo;ll have to make do with a domain name like &lt;em&gt;mysite12345.azurewebsites.net&lt;/em&gt; as well as suffer performance more suitable for development and testing. Upgrading to D1 will cost you about $10 a month and allows you to have a custom domain like &lt;em&gt;www.willstott.org&lt;/em&gt;. However, D1 doesn&amp;rsquo;t support SSL so most browsers will warn people not to visit your site. You also don&amp;rsquo;t get any improvement in performance over a F1 plan and are subject to same sort of quotas for CPU usage.&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;People using a F1 plan can implement a custom domain name by using the portal provided by their &lt;a style="color: #808080;" title="https://www.willstott.org/blog/tech-dev-aspnetcore-miniblog-createyourownsite#RegisteringDomainName" href="https://www.willstott.org/blog/tech-dev-aspnetcore-miniblog-createyourownsite#RegisteringDomainName" target="_blank" rel="noopener"&gt;domain name registrar&lt;/a&gt; to add a "URL Forward" DNS record to the website address created by Azure.&lt;/em&gt; &lt;/span&gt;&lt;/p&gt;
&lt;h2 id="CodeQualitySupport"&gt;Code quality and support&lt;/h2&gt;
&lt;p&gt;Not surprisingly in a project headed by Mads Kristensen the design and implementation of Miniblog.core is elegant, light weight and simple. The GitHub repo currently lists 22 contributors to the project and whilst not being worked upon every month, there are regular updates. You shouldn&amp;rsquo;t expect a rapid response when raising an issue, but there is small community of active volunteers who may decide to help you.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;... you don't need to have extensive experience in building ASP.NET Core WebApps to make good use of it&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="Architecture"&gt;Architecture&lt;/h2&gt;
&lt;p&gt;Minicore is based on the &lt;a title="https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/start-mvc?view=aspnetcore-3.1&amp;amp;tabs=visual-studio" href="https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/start-mvc?view=aspnetcore-3.1&amp;amp;tabs=visual-studio" target="_blank" rel="noopener"&gt;ASP.NET Core Model View Controller&lt;/a&gt; (MVC) pattern so the data is held in the model classes, the processing of website requests happens in the controller classes, and there are various views which are responsible for presenting the HTML returned to the browser containing the data from the model. There are also some service classes. The most significant of these is &lt;em&gt;FileBlogService&lt;/em&gt; which serves the &lt;em&gt;BlogController&lt;/em&gt; by reading your blog files (XML and JPEG) into a cache of Post model objects which can then be found and returned for display in the various &lt;em&gt;Blog views&lt;/em&gt;. For example, the following &lt;em&gt;GetPosts()&lt;/em&gt; method returns a collection of &lt;em&gt;Posts&lt;/em&gt; for display in the home page (&lt;em&gt;index.cshtml&lt;/em&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public virtual IAsyncEnumerable&amp;lt;Post&amp;gt; GetPosts(int count, int skip=0)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;{&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;var isAdmin = this.IsAdmin();&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;var posts = this.postsCache&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Where(p =&amp;gt; p.PubDate &amp;lt;= DateTime.UtcNow &amp;amp;&amp;amp; (p.IsPublished || isAdmin))&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; .Skip(skip)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Take(count)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .ToAsyncEnumerable();&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return posts;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Conceptually there is not much more you need to know about the operation of Minicore than the above, so you don't need to have extensive experience in building ASP.NET Core WebApps to make good use of it. That said, there is a reasonable amount of Javacript and some CSS which might prove more challenging for those who want to make changes to the styling of their blog site.&lt;/p&gt;
&lt;h2 id="LookAndFeelOfWebsite"&gt;Look and feel of the website&lt;/h2&gt;
&lt;p&gt;A brief look at the &lt;a title="https://miniblogcore.azurewebsites.net/" href="https://miniblogcore.azurewebsites.net/" target="_blank" rel="noopener"&gt;example site&lt;/a&gt; showed that Miniblog provided much of what I wanted. The website is responsive in that it looks equally good on a desktop browser as it does on a smartphone and there&amp;rsquo;s support for offline use with &lt;a title="https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers" href="https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers" target="_blank" rel="noopener"&gt;Service Worker&lt;/a&gt;. It has a very clean look with simple but stylish presentation of a blog posting that supports images, tables, lists as well as pull-outs and special sections for displaying code. There is also a provision for your readers to add their comments as well as to link the post to their social media accounts - Facebook, Twitter, and Google+.&lt;/p&gt;
&lt;p&gt;Rather than attempting to describe the user interface in detail, I suggest you just try it for yourself whilst paying attention to the following features:&lt;/p&gt;
&lt;ul style="list-style-type: square;"&gt;
&lt;li&gt;A menu item in the page footer provides access to the login form - username and password are both &amp;lsquo;demo&amp;rsquo;. Once logged-in you can create a new post, delete comments, or edit/delete an existing post. Miniblog supports only personal blog sites, so there is only one user.&lt;/li&gt;
&lt;li&gt;Although the rich text editor (&lt;a title="https://github.com/tinymce/tinymce" href="https://github.com/tinymce/tinymce" target="_blank" rel="noopener"&gt;Tinymce library&lt;/a&gt;) allows you to compose a post directly, it&amp;rsquo;s easier to use &lt;a title="https://openlivewriter.com" href="https://openlivewriter.com" target="_blank" rel="noopener"&gt;Open Live Writer&lt;/a&gt;, or cut and paste from a Word document. The editor does allow you to applying styles for headings and so forth, as well as special typographic effects for elements like source code and pull-outs. It also allows you insert images and links with special support for embedding YouTube videos (see &lt;a title="https://github.com/madskristensen/Miniblog.Core" href="https://github.com/madskristensen/Miniblog.Core" target="_blank" rel="noopener"&gt;Miniblog documentation&lt;/a&gt;)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Home page is reached by clicking the name of site in the header and contains a list of blog postings in date order each with its title, publication date, synopsis (excerpt) and a list of categories. Clicking on a category filters the list so it contains just the posts in that category, but you can&amp;rsquo;t filter by more than one category at a time. If there are more than a given number of posts (defaults to 4) then buttons appear so you can navigate between them.&lt;/li&gt;
&lt;li&gt;You read a post by clicking on its title in the home page list which takes you to a specific page with its own URL (defined by the slug field). At the top of the page is its title, followed by its publication date and then the content. At the bottom is a section which allows people to provide their own comments; a feature described in more detail below.&lt;/li&gt;
&lt;li&gt;At the bottom of each page is a block containing links to social media sites. This allows people reading your posts to provide links to them in their social media accounts. You should try this out as the integration is quite good, though I will suggest improvements in a future post.&lt;/li&gt;
&lt;li&gt;Good support is provided for printing posts which produce well-presented physical&amp;nbsp; documents with the content adjusted for the given paper size.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="SupportForComments"&gt;Support for Reader's Comments&lt;/h2&gt;
&lt;p&gt;You can set the number of days for which comments are allowed after a post is published in the &lt;em&gt;appsettings.json&lt;/em&gt; file, but you cannot specify the duration of comments for individual posts. There also isn&amp;rsquo;t a setting which allows you to block / unblock comments for the entire site; something which might be useful if you find your site being targeted by vandals.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The lack of email verification for people adding comments is possibly the biggest short-coming of Miniblog&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Anonymous comments permitted&lt;/h3&gt;
&lt;p&gt;It is very easy for people to add comments as there is no requirement to register. They just give an email address which isn't verified, though the format is validated and if it is known to &lt;a title="https://en.gravatar.com/" href="https://en.gravatar.com/" target="_blank" rel="noopener"&gt;Gravatar&lt;/a&gt; the corresponding image appears. The lack of email verification for people adding comments is possibly the biggest short-coming of Miniblog. Website owners are responsible for what appears on their website, at least in the UK. Therefore allowing anonymous posting of comments isn't a good idea. There is also the issue of spam commenting, but that is just an annoyance as any links entered into comments are tagged &amp;lsquo;no follow&amp;rsquo; so they have no impact on the webbots that do site ranking.&lt;/p&gt;
&lt;p&gt;I intend to enhance my site at some stage to support multiple authenticated users with different roles. This would allow me to limit the submission of comments just to people who had registered. It might also allow me to permit others besides myself to add posts. However, I suspect it will prove easier to integrate Miniblog into an template WebApp with full authentication features than it will to add full authentication to Miniblog. Whatever route taken, it doesn&amp;rsquo;t seem like a trivial task.&lt;/p&gt;
&lt;h2 id="SupportForGoogleRanking"&gt;Support for Google Ranking&lt;/h2&gt;
&lt;p&gt;Making your site friendly to webcrawlers (bots) like those employed by Google primarily involves including particular metadata in the headers of your HTML pages as well as providing certain standard files; specifically &amp;lsquo;robot.txt&amp;rsquo; and &amp;lsquo;sitemap.xml&amp;rsquo;.&lt;/p&gt;
&lt;p&gt;Your robot.txt file makes suggestions to bots about folders in your site that are unlikely to contain information worthy of indexing. It also gives them the location of your sitemap; a file which contains links to the pages they should index.&lt;/p&gt;
&lt;p&gt;Miniblog uses methods in the &lt;em&gt;RobotController&lt;/em&gt; class to dynamically create the required responses to requests for either of these files. This means you don&amp;rsquo;t have to update your sitemap after publishing a new post, or deleting an existing one. Similarly, information from the Post XML file is used to dynamically populate the metadata for the HTML page constructed in response to a bot&amp;rsquo;s request; see &lt;em&gt;Views\Shared\_Layout&lt;/em&gt; and &lt;em&gt;BlogController&lt;/em&gt;. This metadata includes elements to support the Facebook inspired &lt;a title="https://ogp.me/" href="https://ogp.me/" target="_blank" rel="noopener"&gt;Open Graph Protocol&lt;/a&gt; (og:url) as well as a similar protocol promoted by Twitter (twitter:url). They are both concerned with building social graphs in order to represent social relations between yourself and others.&lt;/p&gt;
&lt;h2 id="SupportForAtomRSSRSD"&gt;Support for Atom, RSS and RSD&lt;/h2&gt;
&lt;p&gt;In addition to servicing requests from webcrawlers (bots) by the likes of Google and Facebook, Miniblog also provides support for news aggregators and feed readers by supporting protocols for Really Simple Syndication (&lt;a title="https://rss.com/blog/how-do-rss-feeds-work/" href="https://rss.com/blog/how-do-rss-feeds-work/"&gt;RSS&lt;/a&gt;), &lt;a title="https://validator.w3.org/feed/docs/atom.html" href="https://validator.w3.org/feed/docs/atom.html" target="_blank" rel="noopener"&gt;Atom&lt;/a&gt;, and Really Simple Discovery (&lt;a title="https://en.wikipedia.org/wiki/RSS" href="https://en.wikipedia.org/wiki/RSS"&gt;RSD&lt;/a&gt;). These sorts of protocols have been around for decades and though their popularity has declined somewhat since their heyday they have recently enjoyed a resurgence of interest due to the emergence of newer readers like &lt;a title="http://www.newsflowapp.com/" href="http://www.newsflowapp.com/" target="_blank" rel="noopener"&gt;Newsflow&lt;/a&gt;, &lt;a title="https://awasu.com/" href="https://awasu.com/" target="_blank" rel="noopener"&gt;Awasu&lt;/a&gt; and &lt;a title="https://feedly.com/i/welcome" href="https://feedly.com/i/welcome" target="_blank" rel="noopener"&gt;Feedly&lt;/a&gt; which aim to help people take better control of the information they receive.&lt;/p&gt;
&lt;p&gt;Support for RSS, Atom and RSD is provided by methods in the &lt;em&gt;RobotController&lt;/em&gt; class which respond to a request like &lt;em&gt;www.willstott.org/feed/rss&lt;/em&gt; by returning an XML file containing information about each of your posts.&lt;/p&gt;
&lt;h2 id="PostImportExport"&gt;Import and Export of Posts - MetaWeblog API&lt;/h2&gt;
&lt;p&gt;Many blog providers like &lt;a title="https://wordpress.com/create-blog/" href="https://wordpress.com/create-blog/" target="_blank" rel="noopener"&gt;WordPress&lt;/a&gt; and &lt;a title="https://www.blogger.com/about/" href="https://www.blogger.com/about/" target="_blank" rel="noopener"&gt;Google Blogger&lt;/a&gt; support the &lt;a title="http://gtrifonov.com/2006/10/12/coding-blog-engine-with-metaweblog-api-support-and-using-it-with-windows-live-writer-2/" href="http://gtrifonov.com/2006/10/12/coding-blog-engine-with-metaweblog-api-support-and-using-it-with-windows-live-writer-2/" target="_blank" rel="noopener"&gt;MetaWeblog API&lt;/a&gt; which allows blog posts to be written, edited and deleted using XML Remote Process Calls (XML-RPC). Miniblog supports a subset of this API using the &lt;a title="https://github.com/shawnwildermuth/MetaWeblog" href="https://github.com/shawnwildermuth/MetaWeblog" target="_blank" rel="noopener"&gt;WilderMinds.MetaWeblog&lt;/a&gt; library by &lt;a title="https://wildermuth.com/" href="https://wildermuth.com/" target="_blank" rel="noopener"&gt;Shawn Widermuth.&lt;/a&gt; This allows you to use an editor like &lt;a title="https://openlivewriter.com/" href="https://openlivewriter.com/"&gt;Open Live Writer&lt;/a&gt; to create and publish your blog posts. Furthermore you can use Windows Live Writer to connect to an existing post hosted by Wordpress and then import it to your Miniblog site, or vice versa.&lt;/p&gt;
&lt;p&gt;&lt;img src="/Posts/files/OpenLiveWriter_2020-10-11.jpg" alt="Open Live Writer screenshot" width="672" height="492" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;small&gt;Figure 1: Open Live Writer Screenshot&lt;/small&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #808080;"&gt;&lt;em&gt;Open Live Writer is an open source desktop publishing application originally released by Microsoft as &lt;/em&gt;&lt;em&gt;Windows Live Writer (discontinued in 2017).&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="Performance"&gt;Performance&lt;/h2&gt;
&lt;p&gt;Miniblog is a well-written and compact implementation of a blog engine, so its overall performance depends more on the platform upon which it is hosted than the code itself. I&amp;rsquo;m very happy with the performance of my blog, but that isn&amp;rsquo;t too surprising given that it&amp;rsquo;s hosted on Azure S1 service plan. If you elect to use the free F1 plan then expect delays in loading and wide variations in responsiveness.&lt;/p&gt;
&lt;p&gt;The documentation on the MiniBlog GitHub site lists a number of tests that have been run for the example blogsite which show it is &lt;a title="https://www.webpagetest.org/result/201010_DiPT_931ff9e5fb8a52106e00bfead388611a/" href="https://www.webpagetest.org/result/201010_DiPT_931ff9e5fb8a52106e00bfead388611a/" target="_blank" rel="noopener"&gt;fast&lt;/a&gt; and compliant with key standards like &lt;a title="https://wave.webaim.org/report#/https://www.willstott.org/" href="https://wave.webaim.org/report#/https://www.willstott.org/" target="_blank" rel="noopener"&gt;accessibility&lt;/a&gt;, &lt;a href="https://wave.webaim.org/report#/https://www.willstott.org/"&gt;W3C HTML&lt;/a&gt;, &lt;a title="https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fwww.willstott.org%2Ffeed%2Frss%2F" href="https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fwww.willstott.org%2Ffeed%2Frss%2F" target="_blank" rel="noopener"&gt;RSS&lt;/a&gt;, &lt;a title="https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fwww.willstott.org%2F" href="https://developers.facebook.com/tools/debug/?q=https%3A%2F%2Fwww.willstott.org%2F" target="_blank" rel="noopener"&gt;OpenGraph&lt;/a&gt;. There is also support for content delivery networks (&lt;a title="https://azure.microsoft.com/en-gb/services/cdn/" href="https://azure.microsoft.com/en-gb/services/cdn/" target="_blank" rel="noopener"&gt;CDN&lt;/a&gt;) in terms of a CDN Tag Helper, though I haven&amp;rsquo;t implemented that feature for my own site yet. In addition when published on Azure the webjob &lt;a title="https://github.com/madskristensen/ImageOptimizerWebJob" href="https://github.com/madskristensen/ImageOptimizerWebJob" target="_blank" rel="noopener"&gt;Azure Image Optimizer&lt;/a&gt; is automatically installed in order to compress any image files contained in your posts.&lt;/p&gt;
&lt;h2 id="WhatsMissing"&gt;What&amp;rsquo;s missing?&lt;/h2&gt;
&lt;p&gt;Miniblog provides most of what I wanted for my personal blogsite, but not everything. Some of these shortcomings are easy to fix and have been implemented in the first iteration of my site as will be described in a forthcoming blog. They include adding standard pages like &lt;a title="https://www.willstott.org/contact" href="https://www.willstott.org/contact" target="_blank" rel="noopener"&gt;Contact&lt;/a&gt;, &lt;a title="https://www.willstott.org/about" href="https://www.willstott.org/about" target="_blank" rel="noopener"&gt;About&lt;/a&gt;, &lt;a title="https://www.willstott.org/privacy" href="https://www.willstott.org/privacy" target="_blank" rel="noopener"&gt;Privacy,&lt;/a&gt; and &lt;a title="https://www.willstott.org/termsconditions" href="https://www.willstott.org/termsconditions" target="_blank" rel="noopener"&gt;T&amp;amp;C&lt;/a&gt; as well as providing support for &lt;a title="https://www.linkedin.com/company/linkedin" href="https://www.linkedin.com/company/linkedin" target="_blank" rel="noopener"&gt;Linked-In&lt;/a&gt;. They also include a number of fixes for minor bugs present in the version of Miniblog I cloned at 6 Sept 2020, such as the failure of navigation buttons to appear when there are too many posts to display in the list on your home page; see &lt;a title="https://github.com/madskristensen/MiniBlog/issues/262" href="https://github.com/madskristensen/MiniBlog/issues/262" target="_blank" rel="noopener"&gt;issue #262&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Other shortcomings are more difficult to address so will have to await the second iteration of my site. These include:&lt;/p&gt;
&lt;ul style="list-style-type: square;"&gt;
&lt;li&gt;&lt;strong&gt;Cookie law compliance&lt;/strong&gt;: when you visit most commercial websites a banner appears asking you to consent to their use of cookies, but this is not provided out of the box by Miniblog. That said, it could be argued that this law doesn&amp;rsquo;t really apply to personal websites and that nobody reads such banners anyway.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Comments:&lt;/strong&gt;&amp;nbsp; I would like to restrict the making of comments to people who have registered with my blog, but Miniblog is designed to support just one authenticated user, as mentioned above&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-level hierarchy&lt;/strong&gt;: I would like to add a bread crumb trail to the top of my page so people can see where the current post sits in a multi-level hierarchy of posts, not just what&amp;rsquo;s its category. For example, rather than saying this post is in the Miniblog category it would be more helpful to show that it is in the technical, development, ASP.NET Core, Miniblog section. Building on this idea it would be useful to provide a dynamic multi-level menu reflecting&amp;nbsp; such a hierarchy as well as more meaningful URLs like &lt;em&gt;https://www.willstott.org/blog/tech/dev/aspnetcore/miniblog/review&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Search&lt;/strong&gt;: I would like to provide a search bar which allows people to search for posts containing given words and phrases.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Social Media Images&lt;/strong&gt;: People can post a link to a particular blog post in their social media accounts as previously discussed, but I would like such a link to use an image appropriate to the post instead of always using the same one. Ideally, I would also like this image to appear as a banner at top of the post.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reporting features:&lt;/strong&gt; Miniblog doesn&amp;rsquo;t provide any reports, so you will have to implement your own metric gathering as well as a mechanism (i.e. Azure webjob/webfunction) to provide periodic analysis and reporting of things like post popularity and number of comments added.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="Summary"&gt;Summary&lt;/h2&gt;
&lt;p&gt;I like the design of Miniblog and was delighted that it provided much of what I was looking for in a personal blog engine. It presents my posts elegantly and provides styling for code and pull-outs as well as other types of elements like tables, images, and YouTube videos. It also gives me full control over the implementation and hosting of my site so I can incrementally add new features and ramp-up the performance as needed. There are a few things missing, but nothing really important apart from email verification before allowing people to add their comments.&lt;/p&gt;
&lt;h2 id="References"&gt;References&lt;/h2&gt;
&lt;p&gt;Please let me know if you find any interesting material about Miniblog so I can add the link to this list.&lt;/p&gt;
&lt;ul style="list-style-type: square;"&gt;
&lt;li&gt;&lt;a title="https://github.com/madskristensen/Miniblog.Core" href="https://github.com/madskristensen/Miniblog.Core" target="_blank" rel="noopener"&gt;Miniblog.core GitHub project&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title="https://www.nuget.org/packages/MadsKristensen.AspNetCore.Miniblog" href="https://www.nuget.org/packages/MadsKristensen.AspNetCore.Miniblog" target="_blank" rel="noopener"&gt;Miniblog.core Nuget Package project&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title="https://www.hanselman.com/blog/the-weekly-source-code-55-notablog-a-local-xmlrpc-metaweblog-endpoint-that-lies-to-windows-live-writer" href="https://www.hanselman.com/blog/the-weekly-source-code-55-notablog-a-local-xmlrpc-metaweblog-endpoint-that-lies-to-windows-live-writer" target="_blank" rel="noopener"&gt;Scott Hanselman Blog: Includes information about Open Windows Writer and Metaweblog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="RelatedPosts"&gt;Related Posts&lt;/h2&gt;
&lt;p&gt;You might find the following posts interesting:&lt;/p&gt;
&lt;ul style="list-style-type: square;"&gt;
&lt;li&gt;&lt;a title="https://www.willstott.org/blog/tech-dev-aspnetcore-miniblog-createyourownsite/" href="https://www.willstott.org/blog/tech-dev-aspnetcore-miniblog-createyourownsite/" target="_blank" rel="noopener"&gt;Recipe: How to build, adapt and deploy Miniblog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;If you found this post useful please help raise my profile by providing a link on your social media account; just click the buttons below. You can also add a comment or contact me by email, but I can&amp;rsquo;t promise to respond immediately.&amp;nbsp;&lt;/em&gt;&lt;/p&gt;</description>
  <author>Will Stott</author>
  <category>miniblog</category>
  <category>aspnetcore</category>
  <category>dev</category>
  <category>tech</category>
  <guid isPermaLink="false">https://www.willstott.org/blog/tech-dev-aspnetcore-miniblog-review/</guid>
  <pubDate>Sat, 10 Oct 2020 15:48:15 GMT</pubDate>
</item></channel>
</rss>