Commit 6372d9c9 authored by lindenb's avatar lindenb
Browse files

cont

parent 3c56c752
# TP Next Generation Sequencing 2018
Au cours de cette séance de TP nous allons chercher les mutations de-novo d'un enfant dont l'exome ainsi que celui de ses deux parents ont été séquencés par la technologie Illumina. Il vous faudra aligner les reads sur un genome de reference, extraire les mutations, annoter ces variations.
Au cours de cette séance de TP nous allons chercher les mutations de-novo d'un enfant dont l'exome ainsi que celui de ses deux parents ont été séquencés par la technologie Illumina. Il vous faudra :
* aligner les reads sur un genome de reference
* extraire les mutations
* annoter ces variations.
Certaines étapes seront effectuées plusieurs fois (père, mère, enfant) je vous conseille donc de noter vos commandes (ou de le mettre dans un shell script, ou dans un fichier *Makefile* pour ceux qui maitrisent ces outils)
Certains outils ont besoin de place; le cas échéant, faites de la place, videz vos répertoires temporaires.
La version de l'outil samtools actuellement installée à la fac est une vieille version (1.2). Elle est suffisante pour ce TP mais les commandes avec la nouvelles version de samtools sera légerement différent.
## Recupération des données FASTQ
......@@ -133,12 +136,12 @@ A l'aide de `cat`, concatenez ces deux fichiers dans un fichier que vous nommere
$ cat chr22.fa chrM.fa > ref.fa
```
## TP septembre 2018
## TP septembre 20220
A priori tous les outils ont-été installés. Pas besoin d'installer samtools, bwa etc... comme décrit ci-dessous. En revanche vous devez indiquer au `bash` où se trouvent les outils en faisant:
```
export PATH="/usr/local/opt/sam_vcf_htslib/bin:${PATH}"
export PATH="/usr/local/opt/sam_bwa_20200917/bin:${PATH}"
````
on vérifie en tapant:
......@@ -146,10 +149,11 @@ on vérifie en tapant:
```
$ which samtools bwa
/usr/local/opt/sam_vcf_htslib/bin/samtools
/usr/local/opt/sam_vcf_htslib/bin/bwa
/usr/local/opt/sam_bwa_20200917/bin/samtools
/usr/local/opt/sam_bwa_20200917bin/bwa
```
Refaite cette operation a chaque fois
## Prise en main de BWA
......@@ -191,29 +195,50 @@ samtools est le couteau suisse des formats en NGS. Tout comme bwa, samtools lui-
$ samtools
Program: samtools (Tools for alignments in the SAM format)
Version: 0.1.19-44428cd
Version: 1.9-250-ga6a160b (using htslib 1.10.2-22-gbfc9f0d)
Usage: samtools <command> [options]
Command: view SAM<->BAM conversion
sort sort alignment file
mpileup multi-way pileup
depth compute the depth
faidx index/extract FASTA
tview text alignment viewer
index index alignment
idxstats BAM index stats (r595 or later)
fixmate fix mate information
flagstat simple stats
calmd recalculate MD/NM tags and '=' bases
merge merge sorted alignments
rmdup remove PCR duplicates
reheader replace BAM header
cat concatenate BAMs
bedcov read depth per BED region
targetcut cut fosmid regions (for fosmid pool only)
phase phase heterozygotes
bamshuf shuffle and group alignments by name
Commands:
-- Indexing
dict create a sequence dictionary file
faidx index/extract FASTA
fqidx index/extract FASTQ
index index alignment
-- Editing
calmd recalculate MD/NM tags and '=' bases
fixmate fix mate information
reheader replace BAM header
targetcut cut fosmid regions (for fosmid pool only)
addreplacerg adds or replaces RG tags
markdup mark duplicates
-- File operations
collate shuffle and group alignments by name
cat concatenate BAMs
merge merge sorted alignments
mpileup multi-way pileup
sort sort alignment file
split splits a file by read group
quickcheck quickly check if SAM/BAM/CRAM file appears intact
fastq converts a BAM to a FASTQ
fasta converts a BAM to a FASTA
-- Statistics
bedcov read depth per BED region
coverage alignment depth and percent coverage
depth compute the depth
flagstat simple stats
idxstats BAM index stats
phase phase heterozygotes
stats generate stats (former bamcheck)
-- Viewing
flags explain BAM flags
tview text alignment viewer
view SAM<->BAM<->CRAM conversion
depad convert padded BAM to unpadded BAM
(...)
```
......@@ -224,31 +249,61 @@ On peut également obtenir l'aide de chaque sous-programme en invoquant le nom d
```
$ samtools view
Usage: samtools view [options] <in.bam>|<in.sam> [region1 [...]]
Options: -b output BAM
-h print header for the SAM output
-H print header only (no alignments)
-S input is SAM
-u uncompressed BAM output (force -b)
-1 fast compression (force -b)
-x output FLAG in HEX (samtools-C specific)
-X output FLAG in string (samtools-C specific)
-c print only the count of matching records
-B collapse the backward CIGAR operation
-@ INT number of BAM compression threads [0]
-L FILE output alignments overlapping the input BED FILE [null]
-t FILE list of reference names and lengths (force -S) [null]
-T FILE reference sequence file (force -S) [null]
-o FILE output file name [stdout]
-R FILE list of read groups to be outputted [null]
-f INT required flag, 0 for unset [0]
-F INT filtering flag, 0 for unset [0]
-q INT minimum mapping quality [0]
-l STR only output reads in library STR [null]
-r STR only output reads in read group STR [null]
-s FLOAT fraction of templates to subsample; integer part as seed [-1]
-? longer help
Usage: samtools view [options] <in.bam>|<in.sam>|<in.cram> [region ...]
Options:
-b output BAM
-C output CRAM (requires -T)
-1 use fast BAM compression (implies -b)
-u uncompressed BAM output (implies -b)
-h include header in SAM output
-H print SAM header only (no alignments)
-c print only the count of matching records
-o FILE output file name [stdout]
-U FILE output reads not selected by filters to FILE [null]
-t FILE FILE listing reference names and lengths (see long help) [null]
-X include customized index file
-L FILE only include reads overlapping this BED FILE [null]
-r STR only include reads in read group STR [null]
-R FILE only include reads with read group listed in FILE [null]
-d STR:STR
only include reads with tag STR and associated value STR [null]
-D STR:FILE
only include reads with tag STR and associated values listed in
FILE [null]
-q INT only include reads with mapping quality >= INT [0]
-l STR only include reads in library STR [null]
-m INT only include reads with number of CIGAR operations consuming
query sequence >= INT [0]
-f INT only include reads with all of the FLAGs in INT present [0]
-F INT only include reads with none of the FLAGS in INT present [0]
-G INT only EXCLUDE reads with all of the FLAGs in INT present [0]
-s FLOAT subsample reads (given INT.FRAC option value, 0.FRAC is the
fraction of templates/read pairs to keep; INT part sets seed)
-M use the multi-region iterator (increases the speed, removes
duplicates and outputs the reads as they are ordered in the file)
-x STR read tag to strip (repeatable) [null]
-B collapse the backward CIGAR operation
-? print long help, including note about region specification
-S ignored (input format is auto-detected)
--no-PG do not add a PG line
--input-fmt-option OPT[=VAL]
Specify a single input file format option in the form
of OPTION or OPTION=VALUE
-O, --output-fmt FORMAT[,OPT[=VAL]]...
Specify output format (SAM, BAM, CRAM)
--output-fmt-option OPT[=VAL]
Specify a single output file format option in the form
of OPTION or OPTION=VALUE
-T, --reference FILE
Reference sequence FASTA FILE [null]
-@, --threads INT
Number of additional threads to use [0]
--write-index
Automatically index the output files [off]
--verbosity INT
Set level of verbosity
```
......@@ -354,17 +409,17 @@ pour permettre aux algorithmes d'aller plus vite, nous utilisons samtools pour c
### Synopsis:
```
samtools view -bS -o out.bam in.sam
samtools view -O BAM -o out.bam in.sam
```
* Option **-S** : l'entrée est du **SAM**
* Option **-b** : la sortie est du binaire (**BAM**)
* Option **-O BAM** : en souhaite écrite du binaire (**BAM**)
* Option **-o** : nom du fichier de sortie
Generez le fichier `child_unsorted.bam`
```
samtools view -bS -o child_unsorted.bam child_unsorted.sam
samtools view -O BAM -o child_unsorted.bam child_unsorted.sam
```
* que renvoie la commande `file child_unsorted.bam` ?
......@@ -402,10 +457,29 @@ Pour l'instant les reads ne sont pas triés sur la position génomique (chrom/st
### Synopsis:
```
samtools sort -o out.bam -T out in-unsorted.bam
# -T PREFIX Write temporary files to PREFIX.nnnn.bam
# -o FILE Write final output to FILE rather than standard output
Usage: samtools sort [options...] [in.bam]
Options:
-l INT Set compression level, from 0 (uncompressed) to 9 (best)
-m INT Set maximum memory per thread; suffix K/M/G recognized [768M]
-n Sort by read name
-t TAG Sort by value of TAG. Uses position as secondary index (or read name if -n is set)
-o FILE Write final output to FILE rather than standard output
-T PREFIX Write temporary files to PREFIX.nnnn.bam
--no-PG do not add a PG line
--input-fmt-option OPT[=VAL]
Specify a single input file format option in the form
of OPTION or OPTION=VALUE
-O, --output-fmt FORMAT[,OPT[=VAL]]...
Specify output format (SAM, BAM, CRAM)
--output-fmt-option OPT[=VAL]
Specify a single output file format option in the form
of OPTION or OPTION=VALUE
--reference FILE
Reference sequence FASTA FILE [null]
-@, --threads INT
Number of additional threads to use [0]
--verbosity INT
Set level of verbosity
```
......@@ -414,7 +488,7 @@ samtools sort -o out.bam -T out in-unsorted.bam
Triez `child_unsorted.bam` pour produire un fichier `child.bam`.
```
samtools sort -T tmp -o child.bam child_unsorted.bam
samtools sort -T tmp -O BAM -o child.bam child_unsorted.bam
```
* En utilisant 'samtools view', vérifiez que le fichier est trié en regardant la première ligne de son en-tête qui doit contenir le mot `coordinate`.
......@@ -429,11 +503,30 @@ samtools view -H child.bam
samtools view child.bam | cut -f 3,4
```
## Petite digression: Le format CRAM.
Prenons le temps de voir le nouveau format CRAM qui est l'équivalent de BAM mais nous ne stockons que les différences avec le genome de reference.
Pour génerer du *CRAM* à partir de BAM nous devons indiquer où se trouve le genome de reference.
```
samtools view -O CRAM --reference reference.fa -o child.cram child.bam
```
* Comparer la taille des fichiers **CRAM** et **BAM**. Le fichier **CRAM** est-il bien plus petit que le **BAM* ?.
* Pour voir les reads dans un **CRAM** il faut utiliser `samtools view` en joignant le genome de reference.
```
samtools view --reference reference.fa child.cram
```
* Y a-t-il le même nombre de reads entre le fichier `child.cram` et `child.bam` ?
## Indexation du BAM
Nous revenons au fichier **BAM**.
L'indexation consiste à créer un fichier d'index **'.bai'** à partir d'un bam trié. Cet index permet d'accéder rapidement aux reads mappés dans une région génomique précise. Ici on se sert de la commande `samtools index`
......@@ -443,7 +536,7 @@ L'indexation consiste à créer un fichier d'index **'.bai'** à partir d'un bam
samtools index in.bam
```
Indexez le fichier**child.bam**, vérifiez le fonctionnement de l'index en effectuant des requêtes par région:
Indexez le fichier **child.bam** , vérifiez le fonctionnement de l'index en effectuant des requêtes par région:
```
samtools view child.bam chr22
......@@ -565,7 +658,7 @@ et créez le fichier **father.bam**
Le calling des mutation se fait à l'aide de
* `samtools mpileup` qui va générer les bases trouvées à toutes les positions pour les 3 bams. Cet outil génére un fichier binaire de variants (BCF).
* `bcftools view` va transformer le BCF (binaire) en format *VCF* (*Variant Call Format*).
* `bcftools view` va transformer le **BCF** (binaire) en format *VCF* (*Variant Call Format*).
### Synopsis:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment