Stockholm format

Stockholm format is a multiple sequence alignment format used by Pfam, Rfam and Dfam, to disseminate protein, RNA and DNA sequence alignments. The alignment editors Ralee, Belvu and Jalview support Stockholm format as do the probabilistic database search tools, Infernal and HMMER, and the phylogenetic analysis tool Xrate. Stockholm format files often have the filename extension  or.

Syntax
A well-formed stockholm file always contains a header which states the format and version identifier, currently '# STOCKHOLM 1.0'. The header is then followed by a multiple lines, a mix of markup (starting with ) and sequences. Finally, the "//" line indicates the end of the alignment.

An example without markup looks like:

//
 * 1) STOCKHOLM 1.0
 * 2) =GF ID  EXAMPLE

Sequences are written one per line. The sequence name is written first, and after any number of whitespaces the sequence is written. Sequence names are typically in the form "name/start-end" or just "name". Sequence letters may include any characters except whitespace. Gaps may be indicated by "" or "".

Mark-up lines start with. The "parameters" are separated by whitespace, so an underscore ("_") instead of space should be used for the 1-char-per-column markups. Mark-up types defined include:


 * 1) =GF 
 * 2) =GC 
 * 3) =GS 
 * 4) =GR 

Recommended features
These feature names are used by Pfam and Rfam for specific types of annotation. (See the Pfam and the Rfam documentation under "Description of fields")

#=GF
Pfam and Rfam may use the following tags: Compulsory fields: --  AC   Accession number:           Accession number in form PFxxxxx (Pfam) or RFxxxxx (Rfam). ID  Identification:             One word name for family. DE  Definition:                 Short description of family. AU  Author:                     Authors of the entry. SE  Source of seed:             The source suggesting the seed members belong to one family. SS  Source of structure:        The source (prediction or publication) of the consensus RNA secondary structure used by Rfam. BM  Build method:               Command line used to generate the model SM  Search method:              Command line used to perform the search GA  Gathering threshold:        Search threshold to build the full alignment. TC  Trusted Cutoff:             Lowest sequence score (and domain score for Pfam) of match in the full alignment. NC  Noise Cutoff:               Highest sequence score (and domain score for Pfam) of match not in full alignment. TP  Type:                       Type of family -- presently Family, Domain, Motif or Repeat for Pfam. -- a tree with roots Gene, Intron or Cis-reg for Rfam. SQ  Sequence:                   Number of sequences in alignment.

Optional fields: DC  Database Comment:           Comment about database reference. DR  Database Reference:         Reference to external database. RC  Reference Comment:          Comment about literature reference. RN  Reference Number:           Reference Number. RM  Reference Medline:          Eight digit medline UI number. RT  Reference Title:            Reference Title. RA  Reference Author:           Reference Author RL  Reference Location:         Journal location. PI  Previous identifier:        Record of all previous ID lines. KW  Keywords:                   Keywords. CC  Comment:                    Comments. NE  Pfam accession:		    Indicates a nested domain. NL  Location:                   Location of nested domains - sequence ID, start and end of insert. WK  Wikipedia link:             Wikipedia page CL  Clan:                       Clan accession MB  Membership:                 Used for listing Clan membership

For embedding trees: NH New Hampshire                A tree in New Hampshire eXtended format. TN Tree ID                      A unique identifier for the next tree.

Other: --  FR False discovery Rate:         A method used to set the bit score threshold based on the ratio of                                     expected false positives to true positives. Floating point number between 0 and 1. CB Calibration method:          Command line used to calibrate the model (Rfam only, release 12.0 and later)


 * Notes: A tree may be stored on multiple #=GF NH lines.
 * If multiple trees are stored in the same file, each tree must be preceded by a #=GF TN line with a unique tree identifier. If only one tree is included, the #=GF TN line may be omitted.

#=GS
Rfam and Pfam may use these features:

Feature                   Description -     ---      AC             ACcession number DE             DEscription DR ; ;     Database Reference OS             Organism (species) OC                Organism Classification (clade, etc.) LO                 Look (Color, etc.)

#=GR
Feature  Description            Markup letters ---  ---            --      SS        Secondary Structure    For RNA [.,;<>{}[]AaBb.-_] --supports pseudoknot and further structure markup (see WUSS documentation) For protein [HGIEBTSCX] SA       Surface Accessibility  [0-9X] (0=0%-10%; ...; 9=90%-100%)     TM        TransMembrane          [Mio] PP       Posterior Probability  [0-9*] (0=0.00-0.05; 1=0.05-0.15; *=0.95-1.00)     LI        LIgand binding         [*] AS       Active Site            [*] pAS       AS - Pfam predicted    [*] sAS       AS - from SwissProt    [*] IN       INtron (in or after)   [0-2] For RNA tertiary interactions: --    tWW       WC/WC        in trans   For basepairs: [<>AaBb...Zz]  For unpaired: [.] cWH      WC/Hoogsteen in cis cWS      WC/SugarEdge in cis tWS      WC/SugarEdge in trans notes: (1) {c,t}{W,H,S}{W,H,S} for general format. (2) cWW is equivalent to SS.

#=GC
The list of valid features includes those shown below, as well as the same features as for #=GR with "_cons" appended, meaning "consensus". Example: "SS_cons".

Feature  Description            Description ---  ---            --      RF        ReFerence annotation   Often the consensus RNA or protein sequence is used as a reference Any non-gap character (e.g. x's) can indicate consensus/conserved/match columns .'s or -'s indicate insert columns ~'s indicate unaligned insertions Upper and lower case can be used to discriminate strong and weakly conserved residues respectively MM       Model Mask             Indicates which columns in an alignment should be masked, such that the emission probabilities for match states corresponding to                                      those columns will be the background distribution.

Recommended placements

 * #=GF Above the alignment
 * #=GC Below the alignment
 * #=GS Above the alignment or just below the corresponding sequence
 * #=GR Just below the corresponding sequence

Size limits
There are no explicit size limits on any field. However, a simple parser that uses fixed field sizes should work safely on Pfam and Rfam alignments with these limits:


 * Line length: 10000.
 * : 255.
 * : 255.

Examples
A simple example of an Rfam alignment (UPSK RNA) with a pseudoknot in Stockholm format is shown below:


 * 1) STOCKHOLM 1.0
 * 2) =GF ID   UPSK
 * 3) =GF SE   Predicted; Infernal
 * 4) =GF SS   Published; PMID 9223489
 * 5) =GF RN   [1]
 * 6) =GF RM   9223489
 * 7) =GF RT   The role of the pseudoknot at the 3' end of turnip yellow mosaic
 * 8) =GF RT   virus RNA in minus-strand synthesis by the viral RNA-dependent RNA
 * 9) =GF RT   polymerase.
 * 10) =GF RA   Deiman BA, Kortlever RM, Pleij CW;
 * 11) =GF RL   J Virol 1997;71:5990-5996.

AF035635.1/619-641            UGAGUUCUCGAUCUCUAAAAUCG M24804.1/82-104               UGAGUUCUCUAUCUCUAAAAUCG J04373.1/6212-6234            UAAGUUCUCGAUCUUUAAAAUCG M24803.1/1-23                 UAAGUUCUCGAUCUCUAAAAUCG //
 * 1) =GC SS_cons                  .AAA....<<<>>>

Here is a slightly more complex example showing the Pfam CBS domain: O83071/192-246         MTCRAQLIAVPRASSLAEAIACAQKMRVSRVPVYERS O83071/259-312         MQHVSAPVFVFECTRLAYVQHKLRAHSRAVAIVLDEY O31698/18-71           MIEADKVAHVQVGNNLEHALLVLTKTGYTAIPVLDPS O31698/88-139          EVMLTDIPRLHINDPIMKGFGMVINN..GFVCVENDE O31699/88-139          EVMLTDIPRLHINDPIMKGFGMVINN..GFVCVENDE //
 * 1) STOCKHOLM 1.0
 * 2) =GF ID CBS
 * 3) =GF AC PF00571
 * 4) =GF DE CBS domain
 * 5) =GF AU Bateman A
 * 6) =GF CC CBS domains are small intracellular modules mostly found
 * 7) =GF CC in 2 or four copies within a protein.
 * 8) =GF SQ 5
 * 9) =GS O31698/18-71 AC O31698
 * 10) =GS O83071/192-246 AC O83071
 * 11) =GS O83071/259-312 AC O83071
 * 12) =GS O31698/88-139 AC O31698
 * 13) =GS O31698/88-139 OS Bacillus subtilis
 * 1) =GR O83071/192-246 SA 9998877564535242525515252536463774777
 * 1) =GR O83071/259-312 SS CCCCCHHHHHHHHHHHHHEEEEEEEEEEEEEEEEEEE
 * 1) =GR O31698/18-71 SS   CCCHHHHHHHHHHHHHHHEEEEEEEEEEEEEEEEHHH
 * 1) =GR O31698/88-139 SS  CCCCCCCHHHHHHHHHHHHEEEEEEEEEEEEEEEEEH
 * 2) =GC SS_cons           CCCCCHHHHHHHHHHHHHEEEEEEEEEEEEEEEEEEH
 * 1) =GR O31699/88-139 AS  ________________*____________________
 * 2) =GR O31699/88-139 IN  ____________1____________2______0____