For faster navigation, this Iframe is preloading the Wikiwand page for Sequence analysis.

Sequence analysis

In bioinformatics, sequence analysis is the process of subjecting a DNA, RNA or peptide sequence to any of a wide range of analytical methods to understand its features, function, structure, or evolution. It can be performed on the entire genome, transcriptome or proteome of an organism, and can also involve only selected segments or regions, like tandem repeats and transposable elements. Methodologies used include sequence alignment, searches against biological databases, and others.[1]

Since the development of methods of high-throughput production of gene and protein sequences, the rate of addition of new sequences to the databases increased very rapidly. Such a collection of sequences does not, by itself, increase the scientist's understanding of the biology of organisms. However, comparing these new sequences to those with known functions is a key way of understanding the biology of an organism from which the new sequence comes. Thus, sequence analysis can be used to assign function to coding and non-coding regions in a biological sequence usually by comparing sequences and studying similarities and differences. Nowadays, there are many tools and techniques that provide the sequence comparisons (sequence alignment) and analyze the alignment product to understand its biology.

Sequence analysis in molecular biology includes a very wide range of processes:

  1. The comparison of sequences to find similarity, often to infer if they are related (homologous)
  2. Identification of intrinsic features of the sequence such as active sites, post translational modification sites, gene-structures, reading frames, distributions of introns and exons and regulatory elements
  3. Identification of sequence differences and variations such as point mutations and single nucleotide polymorphism (SNP) in order to get the genetic marker.
  4. Revealing the evolution and genetic diversity of sequences and organisms
  5. Identification of molecular structure from sequence alone.


Since the very first sequences of the insulin protein were characterized by Fred Sanger in 1951, biologists have been trying to use this knowledge to understand the function of molecules.[2][3] He and his colleagues' discoveries contributed to the successful sequencing of the first DNA-based genome.[4] The method used in this study, which is called the “Sanger method” or Sanger sequencing, was a milestone in sequencing long strand molecules such as DNA. This method was eventually used in the human genome project.[5] According to Michael Levitt, sequence analysis was born in the period from 1969 to 1977.[6] In 1969 the analysis of sequences of transfer RNAs was used to infer residue interactions from correlated changes in the nucleotide sequences, giving rise to a model of the tRNA secondary structure.[7] In 1970, Saul B. Needleman and Christian D. Wunsch published the first computer algorithm for aligning two sequences.[8] Over this time, developments in obtaining nucleotide sequence improved greatly, leading to the publication of the first complete genome of a bacteriophage in 1977.[9] Robert Holley and his team in Cornell University were believed to be the first to sequence an RNA molecule.[10]

Overview of nucleotide sequence analysis (DNA & RNA)

Nucleotide sequence analyses identify functional elements like protein binding sites, uncover genetic variations like SNPs, study gene expression patterns, and understand the genetic basis of traits. It helps to understand mechanisms that contribute to processes like replication and transcription. Some of the tasks involved are outlined below.

Quality control and preprocessing

Quality control assesses the quality of sequencing reads obtained from the sequencing technology (e.g. Illumina). It is the first step in sequence analysis to limit wrong conclusions due to poor quality data. The tools used at this stage depend on the sequencing platform. For instance, FastQC checks the quality of short reads (including RNA sequences), Nanoplot or PycoQC are used for long read sequences (e.g. Nanopore sequence reads), and MultiQC aggregates the result of FastQC in a webpage format.[11][12][13]

Quality control provides information such as read lengths, GC content, presence of adapter sequences (for short reads), and a quality score, which is often expressed on a PHRED scale.[14] If adapters or other artifacts from PCR amplification are present in the reads (particularly short reads), they are removed using software such as Trimmomatic[15] or Cutadapt.[16]

Read alignment

At this step, sequencing reads whose quality have been improved are mapped to a reference genome using alignment tools like BWA[17] for short DNA sequence reads, minimap[18] for long read DNA sequences, and STAR[19] for RNA sequence reads. The purpose of mapping is to find the origin of any given read based on the reference sequence. It is also important for detecting variations or phylogenetic studies. The output from this step, that is, the aligned reads, are stored in compatible file formats known as SAM, which contains information about the reference genome as well as individual reads. Alternatively, BAM file formats are preferred as they use much less desk or storage space.[14]

Note: This is different from sequence alignment which compares two or more whole sequences (or sequence regions) to quantify similarity or differences or to identify an unknown sequence (as discussed below).

The following analyses steps are peculiar to DNA sequences:

Variant calling

Identifying variants is a popular aspect of sequence analysis as variants often contain information of biological significance, such as explaining the mechanism of drug resistance in an infectious disease. These variants could be single nucleotide variants (SNVs), small insertions/deletions (indels), and large structural variants. The read alignments are sorted using SAMtools, after which variant callers such as GATK[20] are used to identify differences compared to the reference sequence.

The choice of variant calling tool depends heavily on the sequencing technology used, so GATK is often used when working with short reads, while long read sequences require tools like DeepVariant[21] and Sniffles.[22] Tools may also differ based on organism (prokaryotes or eukaryotes), source of sequence data (cancer vs metagenomic), and variant type of interest (SNVs or structural variants). The output of variant calling is typically in vcf format, and can be filtered using allele frequencies, quality scores, or other factors based on the research question at hand.[14]

Variant annotation

This step adds context to the variant data using curated information from peer-reviewed papers and publicly available databases like gnomAD and Ensembl. Variants can be annotated with information about genomic features, functional consequences, regulatory elements, and population frequencies using tools like ANNOVAR or SnpEff,[23] or custom scripts and pipeline. The output from this step is an annotation file in bed or txt format.[14]

Visualization and interpretation

Genomic data, such as read alignments, coverage plots, and variant calls, can be visualized using genome browsers like IGV (Integrative Genomics Viewer) or UCSC Genome Browser. Interpretation of the results is done in the context of the biological question or hypothesis under investigation. The output can be a graphical representation of data in the forms of Circos plots, volcano plots, etc., or other forms of report describing the observations.[14]

DNA sequence analysis could also involve statistical modeling to infer relationships and epigenetic analysis, like identifying differential methylation regions using a tool like DSS.

The following steps are peculiar to RNA sequences:

Gene expression analysis

Mapped RNA sequences are analyzed to estimate gene expression levels using quantification tools such as HTSeq,[24] and identify differentially expressed genes (DEGs) between experimental conditions using statistical methods like DESeq2.[25] This is carried out to compare the expression levels of genes or isoforms between or across different samples, and infer biological relevance.[14] The output of gene expression analysis is typically a table with values representing the expression levels of gene IDs or names in rows and samples in the columns as well as standard errors and p-values. The results in the table can be further visualized using volcano plots and heatmaps, where colors represent the estimated expression level. Packages like ggplot2 in R and Matplotlib in Python are often used to create the visuals. The table can also be annotated using a reference annotation file, usually in GTF or GFF format to provide more context about the genes, such as the chromosome name, strand, and start and positions, and aid result interpretation.[14][12][13][26]

Functional enrichment analysis

Functional enrichment analysis identifies biological processes, pathways, and functional impacts associated with differentially expressed genes obtained from the previous step. It uses tools like GOSeq[27] and Pathview.[28] This creates a table with information about what pathways and molecular processes are associated with the differentially expressed genes, what genes are down or upregulated, and what gene ontology terms are recurrent or over-represented.[14][12][13][26]

RNA sequence analysis explores gene expression dynamics and regulatory mechanisms underlying biological processes and diseases. Interpretation of images and tables are carried out within the context of the hypotheses being investigated.

See also: Transcriptomic technologies.

Analyzing protein sequences

Proteome sequence analysis studies the complete set of proteins expressed by an organism or a cell under specific conditions. It describes protein structure, function, post-translational modifications, and interactions within biological systems. It often starts with raw mass spectrometry (MS) data from proteomics experiments, typically in mzML, mzXML, or RAW file formats.[14]

Beyond preprocessing raw MS data to remove noise, normalize intensities, and detect peaks and converting proprietary file formats (e.g., RAW) to open-source formats (mzML, mzXML) for compatibility with downstream analysis tools, other analytical steps include peptide identification, peptide quantification, protein inference and quantification, generating quality control report, and normalization, imputation and significance testing. The choice and order of analytical steps depend on the MS method used, which can either be data dependent acquisition (DDA) or independent acquisition (DIA).[14][29]

Genome browsers in sequence analysis

Genome browsers offer a non-code, user-friendly interface to visualize genomes and genomic segments, identify genomic features, and analyze the relationship between numerous genomic elements. The three primary genome browsers—Ensembl genome browser, UCSC genome browser, and the National Centre for Biotechnology Information (NCBI)—support different sequence analysis procedures, including genome assembly, genome annotation, and comparative genomics like exploring differential expression patterns and identifying conserved regions. All browsers support multiple data formats for upload and download and provide links to external tools and resources for sequence analyses, which contributes to their versatility.[30][31]

Sequence alignment

Example multiple sequence alignment

There are millions of protein and nucleotide sequences known. These sequences fall into many groups of related sequences known as protein families or gene families. Relationships between these sequences are usually discovered by aligning them together and assigning this alignment a score. There are two main types of sequence alignment. Pair-wise sequence alignment only compares two sequences at a time and multiple sequence alignment compares many sequences. Two important algorithms for aligning pairs of sequences are the Needleman-Wunsch algorithm and the Smith-Waterman algorithm. Popular tools for sequence alignment include:

A common use for pairwise sequence alignment is to take a sequence of interest and compare it to all known sequences in a database to identify homologous sequences. In general, the matches in the database are ordered to show the most closely related sequences first, followed by sequences with diminishing similarity. These matches are usually reported with a measure of statistical significance such as an Expectation value.

Profile comparison

In 1987, Michael Gribskov, Andrew McLachlan, and David Eisenberg introduced the method of profile comparison for identifying distant similarities between proteins.[32] Rather than using a single sequence, profile methods use a multiple sequence alignment to encode a profile which contains information about the conservation level of each residue. These profiles can then be used to search collections of sequences to find sequences that are related. Profiles are also known as Position Specific Scoring Matrices (PSSMs). In 1993, a probabilistic interpretation of profiles was introduced by Anders Krogh and colleagues using hidden Markov models.[33][34] These models have become known as profile-HMMs.

In recent years,[when?] methods have been developed that allow the comparison of profiles directly to each other. These are known as profile-profile comparison methods.[35]

Sequence assembly

Sequence assembly refers to the reconstruction of a DNA sequence by aligning and merging small DNA fragments. It is an integral part of modern DNA sequencing. Since presently-available DNA sequencing technologies are ill-suited for reading long sequences, large pieces of DNA (such as genomes) are often sequenced by (1) cutting the DNA into small pieces, (2) reading the small fragments, and (3) reconstituting the original DNA by merging the information on various fragments.

Recently, sequencing multiple species at one time is one of the top research objectives. Metagenomics is the study of microbial communities directly obtained from the environment. Different from cultured microorganisms from the lab, the wild sample usually contains dozens, sometimes even thousands of types of microorganisms from their original habitats.[36] Recovering the original genomes can prove to be very challenging.

Gene prediction

Gene prediction or gene finding refers to the process of identifying the regions of genomic DNA that encode genes. This includes protein-coding genes as well as RNA genes, but may also include the prediction of other functional elements such as regulatory regions. Geri is one of the first and most important steps in understanding the genome of a species once it has been sequenced. In general, the prediction of bacterial genes is significantly simpler and more accurate than the prediction of genes in eukaryotic species that usually have complex intron/exon patterns. Identifying genes in long sequences remains a problem, especially when the number of genes is unknown. Hidden markov models can be part of the solution.[37] Machine learning has played a significant role in predicting the sequence of transcription factors.[38] Traditional sequencing analysis focused on the statistical parameters of the nucleotide sequence itself (The most common programs used are listed in Table 4.1). Another method is to identify homologous sequences based on other known gene sequences (Tools see Table 4.3).[39] The two methods described here are focused on the sequence. However, the shape feature of these molecules such as DNA and protein have also been studied and proposed to have an equivalent, if not higher, influence on the behaviors of these molecules.[40]

Protein structure prediction

Target protein structure (3dsm, shown in ribbons), with Calpha backbones (in gray) of 354 predicted models for it submitted in the CASP8 structure-prediction experiment.

The 3D structures of molecules are of major importance to their functions in nature. Since structural prediction of large molecules at an atomic level is a largely intractable problem, some biologists introduced ways to predict 3D structure at a primary sequence level. This includes the biochemical or statistical analysis of amino acid residues in local regions and structural the inference from homologs (or other potentially related proteins) with known 3D structures.

There have been a large number of diverse approaches to solve the structure prediction problem. In order to determine which methods were most effective, a structure prediction competition was founded called CASP (Critical Assessment of Structure Prediction).[41]

Computational approaches and techniques

Sequence analysis tasks are often non-trivial to resolve and require the use of relatively complex approaches, many of which are the backbone behind many existing sequence analysis tools. Of the many methods used in practice, the most popular include the following:

See also


  1. ^ Durbin, Richard M.; Eddy, Sean R.; Krogh, Anders; Mitchison, Graeme (1998), Biological Sequence Analysis: Probabilistic Models of Proteins and Nucleic Acids (1st ed.), Cambridge, New York: Cambridge University Press, ISBN 0-521-62971-3, OCLC 593254083
  2. ^ Sanger F; Tuppy H (September 1951). "The amino-acid sequence in the phenylalanyl chain of insulin. I. The identification of lower peptides from partial hydrolysates". Biochem. J. 49 (4): 463–81. doi:10.1042/bj0490463. PMC 1197535. PMID 14886310.
  3. ^ SANGER F; TUPPY H (September 1951). "The amino-acid sequence in the phenylalanyl chain of insulin. 2. The investigation of peptides from enzymic hydrolysates". Biochem. J. 49 (4): 481–90. doi:10.1042/bj0490481. PMC 1197536. PMID 14886311.
  4. ^ Sanger, F; Nicklen, S; Coulson, AR (December 1977). "DNA sequencing with chain-terminating inhibitors". Proc Natl Acad Sci U S A. 74 (12): 441–448. Bibcode:1977PNAS...74.5463S. doi:10.1073/pnas.74.12.5463. PMC 431765. PMID 271968.
  5. ^ Sanger, F; Air, GM; Barrell, BG; Brown, NL; Coulson, AR; Fiddes, CA; Hutchison, CA; Slocombe, PM; Smith, M (February 1977). "Nucleotide sequence of bacteriophage phi X174 DNA". Nature. 265 (5596): 687–695. Bibcode:1977Natur.265..687S. doi:10.1038/265687a0. PMID 870828. S2CID 4206886.
  6. ^ Levitt M (May 2001). "The birth of computational structural biology". Nature Structural & Molecular Biology. 8 (5): 392–3. doi:10.1038/87545. PMID 11323711. S2CID 6519868.
  7. ^ Levitt M (November 1969). "Detailed molecular model for transfer ribonucleic acid". Nature. 224 (5221): 759–63. Bibcode:1969Natur.224..759L. doi:10.1038/224759a0. PMID 5361649. S2CID 983981.
  8. ^ Needleman SB; Wunsch CD (March 1970). "A general method applicable to the search for similarities in the amino acid sequence of two proteins". J. Mol. Biol. 48 (3): 443–53. doi:10.1016/0022-2836(70)90057-4. PMID 5420325.
  9. ^ Sanger F, Air GM, Barrell BG, et al. (February 1977). "Nucleotide sequence of bacteriophage phi X174 DNA". Nature. 265 (5596): 687–95. Bibcode:1977Natur.265..687S. doi:10.1038/265687a0. PMID 870828. S2CID 4206886.
  10. ^ Holley, RW; Apgar, J; Everett, GA; Madison, JT; Marquisee, M; Merrill, SH; Penswick, JR; Zamir, A (May 1965). "Structure of a Ribonucleic Acid". Science. 147 (3664): 1462–1465. Bibcode:1965Sci...147.1462H. doi:10.1126/science.147.3664.1462. PMID 14263761. S2CID 40989800.
  11. ^ Batut, Bérénice; Doyle, Maria; Cormier, Alexandre; Bretaudeau, Anthony; Leroi, Laura; Corre, Erwan; Robin, Stéphanie; nil, gallantries; Hyde, Cameron (3 November 2023). "Quality Control (Galaxy Training Materials)". Galaxy Training!. Retrieved 26 April 2024.
  12. ^ a b c Hiltemann, Saskia; Rasche, Helena; et al. (January 2023). "Galaxy Training: A Powerful Framework for Teaching!". PLOS Computational Biology. 19 (1): e1010752. Bibcode:2023PLSCB..19E0752H. doi:10.1371/journal.pcbi.1010752. PMC 9829167. PMID 36622853.
  13. ^ a b c Batut, Bérénice; et al. (2018). "Community-Driven Data Analysis Training for Biology". Cell Systems. 6 (6): 752–758.e1. doi:10.1016/j.cels.2018.05.012. PMC 6296361. PMID 29953864.
  14. ^ a b c d e f g h i j Prijibelski, Andrey B.; Korobeynikov, Anton I.; Lapidus, Alla L. (September 2018). "Sequence Analysis". Encyclopedia of Bioinformatics and Computational Biology. 3: 292–322. doi:10.1016/B978-0-12-809633-8.20106-4. ISBN 978-0-12-811432-2.
  15. ^ Bolger, Anthony M.; Lohse, Marc; Usadel, Bjoern (April 2014). "Trimmomatic: a flexible trimmer for Illumina sequence data". Bioinformatics. 30 (15): 2114–2120. doi:10.1093/bioinformatics/btu170. PMC 4103590. PMID 24695404.
  16. ^ Marcel, Martin (2011). "Cutadapt removes adapter sequences from high-throughput sequencing reads". EMBnet.journal. 17: 10. doi:10.14806/ej.17.1.200.
  17. ^ Li, Heng; Durbin, Richard (July 2009). "Fast and accurate short read alignment with Burrows–Wheeler transform". Bioinformatics. 25 (14): 1754–1760. doi:10.1093/bioinformatics/btp324. PMID 19451168.
  18. ^ Li, Heng (March 2016). "Minimap and miniasm: fast mapping and de novo assembly for noisy long sequences". Bioinformatics. 32 (14): 2103–2110. doi:10.1093/bioinformatics/btw152. PMC 4937194. PMID 27153593.
  19. ^ Dobin, Alexander; Davis, Carrie A.; et al. (October 2012). "STAR: ultrafast universal RNA-seq aligner". Bioinformatics. 29 (1): 15–21. doi:10.1093/bioinformatics/bts635. PMC 3530905. PMID 23104886.
  20. ^ McKenna, Aaron; Hanna, Matthew; et al. (July 2010). "The Genome Analysis Toolkit: A MapReduce framework for analyzing next-generation DNA sequencing data". Genome Research. 20 (9): 1297–1303. doi:10.1101/gr.107524.110. PMC 2928508. PMID 20644199.
  21. ^ Poplin, R; Chang, PC; et al. (September 2018). "A universal SNP and small-indel variant caller using deep neural networks". Nature Biotechnology. 36 (10): 983–987. doi:10.1038/nbt.4235. PMID 30247488.
  22. ^ Sedlazeck, F.J.; Rescheneder, P; et al. (April 2018). "Accurate detection of complex structural variations using single-molecule sequencing". Nature Methods. 15 (6): 461–468. doi:10.1038/s41592-018-0001-7. PMC 5990442. PMID 29713083.
  23. ^ Cingolani, P; Platts, A; et al. (April 2012). "A program for annotating and predicting the effects of single nucleotide polymorphisms, SnpEff". Fly. 6 (2): 80–92. doi:10.4161/fly.19695. PMC 3679285. PMID 22728672.
  24. ^ Anders, Simon; Pyl, Paul Theodore; Huber, Wolfgang (January 2015). "HTSeq—a Python framework to work with high-throughput sequencing data". Bioinformatics. 31 (2): 166–169. doi:10.1093/bioinformatics/btu638. PMC 4287950. PMID 25260700.
  25. ^ Love, M.I.; Huber, W.; Anders, S. (December 2014). "Moderated estimation of fold change and dispersion for RNA-seq data with DESeq2". Genome Biology. 15 (12): 550. doi:10.1186/s13059-014-0550-8. PMC 4302049. PMID 25516281.
  26. ^ a b Batut, Bérénice; Freeberg, Mallory; et al. (17 March 2024). "Reference-based RNA-Seq data analysis (Galaxy Training Materials)". Galaxy Training!. Retrieved 26 April 2024.
  27. ^ Young, M.D.; Wakefield, M.J; et al. (February 2010). "Gene ontology analysis for RNA-seq: accounting for selection bias". Genome Biology. 11 (2): R14. doi:10.1186/gb-2010-11-2-r14. hdl:11343/56416. PMID 20132535.
  28. ^ Luo, Weijun; Brouwer, Cory (June 2013). "Pathview: an R/Bioconductor package for pathway-based data integration and visualization". Bioinformatics. 29 (14): 1830–1831. doi:10.1093/bioinformatics/btt285. PMC 3702256. PMID 23740750.
  29. ^ "Quantitative mass spectrometry workflow". nf-core.
  30. ^ Wang, Jun; Kong, Lei; et al. (July 2012). "A brief introduction to web-based genome browsers". Briefings in Bioinformatics. 14 (2): 131–143. doi:10.1093/bib/bbs029. PMID 22764121.
  31. ^ Pevsner, J. (February 2009). "Analysis of Genomic DNA with the UCSC Genome Browser". Bioinformatics for DNA Sequence Analysis. Methods in Molecular Biology. Vol. 537. Humana Press. pp. 277–301. doi:10.1007/978-1-59745-251-9_14. ISBN 978-1-59745-251-9. PMID 19378150.
  32. ^ Gribskov M; McLachlan AD; Eisenberg D (July 1987). "Profile analysis: detection of distantly related proteins". Proc. Natl. Acad. Sci. U.S.A. 84 (13): 4355–8. Bibcode:1987PNAS...84.4355G. doi:10.1073/pnas.84.13.4355. PMC 305087. PMID 3474607.
  33. ^ Brown M; Hughey R; Krogh A; Mian IS; Sjölander K; Haussler D (1993). "Using Dirichlet mixture priors to derive hidden Markov models for protein families". Proc Int Conf Intell Syst Mol Biol. 1: 47–55. PMID 7584370.
  34. ^ Krogh A; Brown M; Mian IS; Sjölander K; Haussler D (February 1994). "Hidden Markov models in computational biology. Applications to protein modeling". J. Mol. Biol. 235 (5): 1501–31. doi:10.1006/jmbi.1994.1104. PMID 8107089. S2CID 2160404.
  35. ^ Ye X; Wang G; Altschul SF (December 2011). "An assessment of substitution scores for protein profile-profile comparison". Bioinformatics. 27 (24): 3356–63. doi:10.1093/bioinformatics/btr565. PMC 3232366. PMID 21998158.
  36. ^ Wooley, JC; Godzik, A; Friedberg, I (Feb 26, 2010). "A primer on metagenomics". PLOS Comput Biol. 6 (2): e1000667. Bibcode:2010PLSCB...6E0667W. doi:10.1371/journal.pcbi.1000667. PMC 2829047. PMID 20195499.
  37. ^ Stanke, M; Waack, S (Oct 19, 2003). "Gene prediction with a hidden Markov model and a new intron submodel". Bioinformatics. 19 Suppl 2 (2): 215–25. doi:10.1093/bioinformatics/btg1080. PMID 14534192.
  38. ^ Alipanahi, B; Delong, A; Weirauch, MT; Frey, BJ (Aug 2015). "Predicting the sequence specificities of DNA- and RNA-binding proteins by deep learning". Nat Biotechnol. 33 (8): 831–8. doi:10.1038/nbt.3300. PMID 26213851.
  39. ^ Wooley, JC; Godzik, A; Friedberg, I (Feb 26, 2010). "A primer on metagenomics". PLOS Comput Biol. 6 (2): e1000667. Bibcode:2010PLSCB...6E0667W. doi:10.1371/journal.pcbi.1000667. PMC 2829047. PMID 20195499.
  40. ^ Abe, N; Dror, I; Yang, L; Slattery, M; Zhou, T; Bussemaker, HJ; Rohs R, R; Mann, RS (Apr 9, 2015). "Deconvolving the recognition of DNA shape from sequence". Cell. 161 (2): 307–18. doi:10.1016/j.cell.2015.02.008. PMC 4422406. PMID 25843630.
  41. ^ Moult J; Hubbard T; Bryant SH; Fidelis K; Pedersen JT (1997). "Critical assessment of methods of protein structure prediction (CASP): round II". Proteins. Suppl 1 (S1): 2–6. doi:10.1002/(SICI)1097-0134(1997)1+<2::AID-PROT2>3.0.CO;2-T. PMID 9485489. S2CID 26823924.
{{bottomLinkPreText}} {{bottomLinkText}}
Sequence analysis
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!

Your input will affect cover photo selection, along with input from other users.


Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?