Format SAM : Sequence Alignment/Map (biologie)

Fiche ressource Article, événement, site web...
  • Création ou MAJ importante : 17/01/12
  • Correction mineure : 19/04/13
Mots-clés

Format SAM : Sequence Alignment/Map (biologie)

  • http://samtools.sourceforge.net/
  • Type de ressource : résumé
  • Date de publication du document ou de l'événement : Juin 2009
  • Auteur(s) ou responsable(s) : Li H, Handsaker B, Wysoker A, Fennell T, Ruan J, Homer N, Marth G, Abecasis G, Durbin R; 1000 Genome Project Data Processing Subgroup
  • Contact pour plus d'informations : Pour se tenir au courant des développement et contacter la communauté : les mailing lists.
    Et un forum (anglophone) très dynamique : communauté seqanswers.com

Acronyme :

SAM

Nom complet :

Sequence Alignment/Map

Description courte :

Format, utilisé en biologie, d'alignement générique pour stocker les alignements de séquence sur des séquences de référence

Extension par convention :

sam (bam pour la version binarisée, c'est-à-dire compressée)

Version actuelle ou version décrite dans la fiche :

1.4 décrite dans les spécifications Version v1.4-r985, du 7 septembre 2011

Types de documents concernés :

Fichiers de séquences alignées (produits d'assemblage, d'aligneur de séquences)

Documents de standardisation :

SAM a été créé à l'initiative de, et utilisé par, le projet 1000 Génomes.
Description complète du format. Specifications sur le site officiel.

Avantages :

Le format SAM (Sequence Alignment/Map) est un format d'alignement générique pour stocker les alignements de lectures (reads, sequences) sur des séquences de référence. Ce format supporte les lectures courtes et longues (jusqu'à 128 Megabases) produites par plusieurs plate-formes de séquençage.

SAM tend à être capable de :

  • Être assez flexible pour stocker toutes les informations d'alignements produits par divers programmes d'alignement
  • Être assez simple pour être facilement généré par des programmes d'alignement ou converti depuis un autre format d'alignement
  • Être compact en taille
  • Permettre la plupart des opérations sur un alignement tout en travaillant dans un flux sans avoir à charger tout l'alignement en mémoire
  • Permettre le fichier d'être indexé par position génomique afin de récupérer efficacement toutes les lectures alignées sur un locus

Inconvénients :

La qualité est sensée être encodée en base ASCII+33, ce qui peut éventuellement poser des problèmes quand on a affaire à des anciennes données Illumina/Solexa (ASCII+64), voir la page wikipedia rédigée par la communauté sur l'encodage de la qualité (similaire à celle du format Fastq).

Utilisations recommandées :

SAM est un format d'échange de données d'alignements, en vogue dans les traitements de données de nouvelles technologies de séquençage.

Logiciels de traitement :

Formats connexes :

tsv (Fichier texte tabulé).

Formats concurrents :

ACE (propriété de Roche), BED, Stockholm...

Bonnes pratiques

  1. Section en-tête

    1. La ligne @HD doit être présente, avec l'étiquette "SO" spécifiée.
    2. Les lignes @SQ doivent être présentes s'il y a des lectures qui sont alignées.
    3. Quand une étiquette "RG" apparaît dans la section alignement, alors il doit y avoir la ligne @RG correspondante (même valeur de "ID") dans l'en-tête.
    4. Quand une étiquette "PG" apparaît dans la section alignement, alors il doit y avoir la ligne @PG correspondante (même valeur de "ID") dans l'en-tête.
  2. Les opérations CIGAR adjacentes doivent être différentes (sinon les regrouper)
  3. Aucun alignement ne devrait recevoir la "mapping quality" à 255 (maximum 254, pour signifier qu'on ne peut la donner).
  4. Lectures non alignées
    1. Pour une lecture non alignée, en "paired-end" ou en "mate-pair" dont le partenaire est aligné, ce read non aligné devrait avoir un "RNAME" et une "POS" identique à son partenaire aligné.
    2. Si tous les segments d'un patron ("template") sont non-alignés, leur "RNAME"devrait être mis à "*" et leur "POS" à "0".
    3. Si "POS", ajouté de la somme des longueurs des opérations CIGAR M/=/X/D/N, dépasse la longueur spécifiée dans "LN" de la ligne @SQ (de l'en-tête, si elle existe) avec un "SN" égale au "RNAME", la lecture devrait être non alignée.
  5. Alignement multiple
    1. Quand un segment est présent dans plusieurs enregistrements, un seul de ces enregistrements devrait avoir (pour l'alignement secondaire) la valeur de "flag" (0x100) désactivée. "RNEXT" et "PNEXT" pointent vers l'alignement primaire du segment suivant.
    2. "SEQ" et "QUAL" de l'alignement secondaire devraient être mis à "*" pour réduire la taille.
  6. Etiquettes optionnelles :
    1. Si un patron a plus de 2 segments, l'étiquette "TC" devrait être présente.
    2. L'étiquette "NM" devrait être présente.

Commentaires :

Les spécifications ne sont plus en draft !
Planification de la 2.0 : mediawiki

URL pour plus d'informations :

http://samtools.sourceforge.net/

Fichier attachéTaille
SAM1.pdf159.26 Ko
sam1_v14.pdf356.29 Ko