FASTA (.fasta, .fa, .fna, .fsa, .mpfa)

Background & Context

    • MIME type: chemical/seq-aa-fasta, chemical/seq-na-fasta
    • FASTA molecular biology format.
    • Standard format for storing and exchanging DNA and protein sequences.
    • Plain text format.
    • Stores nucleic acid or protein sequences as character strings.
    • Various conventions are in use to represent meta-information.
    • Developed in 1988 by William Pearson and David Lipman as part of the FASTA sequence-alignment software.

Import & Export

  • Import["file.fasta"] imports DNA or protein sequences from a FASTA file.
  • Export["file.fasta",expr] exports a sequence or a list of sequences to the FASTA format.
  • Import["file.fasta"] returns a list of strings representing the sequences stored in the file.
  • Export["file.fasta",str] exports a character string representing a DNA sequence to FASTA.
  • Export["file.fasta",{str1,str2,}] exports multiple DNA sequences.
  • Import["file.fasta",elem] imports the specified element from a FASTA file.
  • Import["file.fasta",{elem,suba,subb,}] imports a subelement.
  • Import["file.fasta",{{elem1,elem2,}}] imports multiple elements.
  • The import format can be specified with Import["file","FASTA"] or Import["file",{"FASTA",elem,}].
  • Export["file.fasta",expr,elem] creates a FASTA file by treating expr as specifying element elem.
  • Export["file.fasta",{expr1,expr2,},{{elem1,elem2,}}] treats each expri as specifying the corresponding elemi.
  • Export["file.fasta",expr,opt1->val1,] exports expr with the specified option elements taken to have the specified values.
  • Export["file.fasta",{elem1->expr1,elem2->expr2,},"Rules"] uses rules to specify the elements to be exported.
  • See the following reference pages for full general information:
  • Import, Exportimport from or export to a file
    CloudImport, CloudExportimport from or export to a cloud object
    ImportString, ExportStringimport from or export to a string
    ImportByteArray, ExportByteArrayimport from or export to a byte array

Import Elements

  • General Import elements:
  • "Elements" list of elements and options available in this file
    "Summary"summary of the file
    "Rules"list of rules for all available elements
  • Data representation elements:
  • "Header"raw header lines
    "Sequence"DNA or protein sequences as a list of strings
    "Plaintext"sequences as formatted text
  • Import uses the "Sequence" element by default for the FASTA format.
  • Additional data elements:
  • "Data""Header" and "Sequence" elements combined in a list
    "LabeledData"list of rules for each sequence stored in the file
  • Header line meta-information:
  • "Accession"NCBI accession number for each sequence
    "Description"locus description text for each sequence
    "GenBankID"GenBank database identifier
    "Length"list of integers, representing the length of each sequence
  • The Wolfram Language uses the standard IUB/IUPAC abbreviations for nucleic acids:
  • Aadenosine
    Rpurine (G or A)
    Ypyrimidine (T or C)
    Kketone (G or T)
    Mamino group (A or C)
    Sstrong interaction (G or C)
    Wweak interaction (A or T)
    BC or G or T
    DA or G or T
    HA or C or T
    VA or C or G
    Nany nucleic acid (A or C or G or T)
    -gap of indeterminate length
  • Codes representing amino acids:
  • Aalanine (Ala)
    Beither aspartic acid or asparagine
    Ccysteine (Cys)
    Daspartic acid (Asp)
    Eglutamic acid (Glu)
    Fphenylalanine (Phe)
    Gglycine (Gly)
    Hhistidine (His)
    Iisoleucine (Ile)
    Klysine (Lys)
    Lleucine (Leu)
    Mmethionine (Met)
    Nasparagine (Asn)
    Pproline (Pro)
    Qglutamine (Gln)
    Rarginine (Arg)
    Sserine (Ser)
    Tthreonine (Thr)
    Vvaline (Val)
    Wtryptophan (Trp)
    Ytyrosine (Tyr)
    Zeither glutamic acid or glutamine
    Xany amino acid
    *translation stop
    -gap of indeterminate length


  • Import options:
  • "HeaderFormat"Automaticspecifies the format of the header
    "ToUpperCase"Truewhether or not to make sequences uppercase
  • Import uses a large built-in library of header format specifications found in common variants of the FASTA format.
  • By setting "HeaderFormat" to a list of literal strings and names of meta-information elements, any header line format can be specified on Import.
  • "HeaderFormat"->{"gi|","DatabaseIndex","|gb|","Accession","|","Description"} is a setting typical for NCBI FASTA files.
  • Advanced Export options:
  • "LineWidth"70maximum number of characters in a line
    "ToUpperCase"Truewhether or not to make sequences uppercase


Basic Examples  (7)

This reads the raw header line from a sample FASTA file:

Extract the accession string:

Parse the GenBank database key and the description string from the header line:

Read the first letters of the DNA sequence:

This converts a short sequence to the FASTA format, automatically adding default header information:

This exports two sequences:

This exports a pair of headers and sequences:

Import the previous output using the "Data" element gives raw headers and sequences:

Import as a list of rules: