bwa mem -t 10 chr9.fna ../trimming_dna/dna_f_p.fastq.gz ../trimming_dna/dna_r_p.fastq.gz > dna.sam 2> bwa_mem_log.txt
(лог).sam
файл и, через
перенаправление из потока ошибок, сохраняем лог-файл, на всякий случай. Число ядер для ускорения процесса задано с помощью -t
.
head dna.sam
(файл):@SQ SN:NC_000009.12 LN:138394717 @PG ID:bwa PN:bwa VN:0.7.17-r1188 CL:bwa mem chr9.fna ../trimming_dna/dna_f_p.fastq.gz ../trimming_dna/dna_r_p.fastq.gz SRR10720412.2 77 * 0 0 * * 0 0 GCTGAGTGATGGAGGGGGATAAGTCTTCTCGATAATAAACCTTCCCCAGGCCATCGGTCGTGTCCAAGTCCGCCA GGGD@F>EEBDDFFDDEEDEGGEEGGBGGFGEGBBGDGDDGGGGGGEDGGGEFb.?E GIGGEGIIGIEGBEGEEEEEGFFFFICC#CCB?=AB AS:i:0 XS:i:0 SRR10720412.3 141 * 0 0 * * 0 0 TGTGTTCCTTTTGCTTTGTNGTGTCTCCTGAGCAACCGCCNNTNNNNACAGTAAACATATTTTCTTTAATTATTA GEGEGIGIHHDIHIGFFFB#C=CAAIIIGIBHIIHEFCEF##?####498A=?AAIII IIE774#####8>##7889#4##<<7><#######0<>::@<=GEGIFIGHFBDGGDDIHIHI AS:i:0 XS:i:0 SRR10720412.6 77 * 0 0 * * 0 0 CATTTTTATTGCATTTTTGCAGTTNNTNCCATTTATTGAAAATNACAATTGTAACAATTTTCTTA HHHHHHEHHHHHDHHHHHHH>@???BBGHHEHEFB#EDBBBBHEHHHHFHHHHHHHH AS:i:0 XS:i:0 SRR10720412.6 141 * 0 0 * * 0 0 ATGGTTTCTTTACAGAANNNNNNTCNNCACCNTNNNTTCGNNNNNNNNNCTGTTCGAGGTGGAGTGACAGGACGT GGGGFIIIIIIIIHI88######59##?<:<#<###<8;<#########657559DDGG@GFED@DDEBE@;FA< AS:i:0 XS:i:0
Таблица 1. Описание первых 12 столбцов тела файла в формате SAM
№ | Поле | Тип данных | Описание |
1 | QNAME | String | Название рида (парным будет присвоено одинаковое) |
2 | FLAG | Int | Представляет собой комбинацию нескольких бинарных флагов, обозначающих парность, картированность и т. д. |
3 | RNAME | String | Название референса |
4 | POS | Int | Один минус самая левая позиция выравнивания |
5 | MAPQ | Int | Качество маппинга. MAPQ = −10 log10P, где P - вероятность того, что выравнивание неверно |
6 | CIGAR | String | Описание выравнивания, в записи которого используется набор операций (совпадение, инсерция и др.) |
7 | RNEXT | String | Название референса пары |
8 | PNEXT | Int | Позиция в референсе, которой соответствует начало пары. Аналогично четвёртому полю. |
9 | TLEN | Int | Расстояние между крайними точками выравнивания |
10 | SEQ | String | Последовательность рида (регистр не имеет значения) |
11 | QUAL | String | Качество в кодировке ASCII по знакомой нам шкале Phred+33 |
12 | TAGs | Mixed | Специальные тэги, предназначенные для хранения информации о прочтении или выравнивании |
ls -sh
выяснили, что наш .sam
файл весит 16 Гб.
.bam
файл, переконвертируем его с помощью команды:samtools sort -O bam -@ 10 dna.sam -o dna.bam
-O bam
(outformat) задает формат выходного файла, а -o
(output) - файл выхода,
а -@
задаем число ядер на побольше, чтобы считалось быстрее.ls -sh
выяснили, что наш .bam
файл весит 4,7 Гб.samtools index -b -@ 10 dna.bam dna.bai
-b
указывает на формат .bai
, хотя и этот формат в любом случае установлен по умолчанию.
samtools flagstat -@ 10 dna.bam > dna_flag.txt
(файл).fai
узнаем название хромосомы):samtools faidx chr9.fna -o chr9.fai
samtools view -h dna.bam NC_000009.12 > dna.chr9.sam
samtools view -bS dna.chr9.sam > dna.chr9.bam
- конвертируем в bamsamtools flagstat -@ 10 dna.chr9.bam > dna_chr9_flag.txt
(файл)samtools view -@ 10 -f 0x2 -bS dna.chr9.bam > dna_chr9_correct.bam
samtools flagstat -@ 10 dna_chr9_correct.bam > dna_chr9_correct_flag.txt
(файл)samtools index -b -@ 10 dna_chr9_correct.bam dna_chr9_correct.bai
picard MarkDuplicates -M metrix.file.txt -I dna_chr9_correct.bam -O markdup.bam
samtools flagstat -@ 10 markdup.bam > markdup.txt
(файл)
bcftools mpileup --threads 10 -f ../bwa/chr9.fna ../bwa/markdup.bam | bcftools call -mv -o vc_chr9.vcf
.vcf
файл с частотами встречаемости вариантов во множественном выравнивании.
Число ядер задаем как -threads, индексированный референс хромосомы как -f, после чего передаем выход
команде call, которая осуществляет "вызов" вариантов, с параметрами
-m - модель вызова для многоаллельных и редких вариантов,
-v - запись в файл только сайтов с вариантами,
и -o - выходной файл.
head -35 vc_chr9.vcf
(некоторые строки я убрал для лакончиности):##fileformat=VCFv4.2 ##FILTER=VCF формат - формат записи вариантов последовательностей. Заголовок начинается с названия и содержит метаданные, описывающие тело файла. Строки заголовков начинаются с символа #. Специальные ключевые слова в заголовке обозначаются ##. Немного упомянём и поля, присутствующие в файле.##bcftoolsVersion=1.9+htslib-1.9 ##bcftoolsCommand=mpileup --threads 10 -f ../bwa/chr9.fna ../bwa/markdup.bam ##reference=file://../bwa/chr9.fna ##contig= ##ALT= ##INFO= ... ##FORMAT= ... ##INFO= ... ##bcftools_callVersion=1.9+htslib-1.9 ##bcftools_callCommand=call -mv -o vc_chr9.vcf; Date=Wed Dec 2 11:08:14 2020 #CHROM POS ID REF ALT QUAL FILTER INFO FORMAT ../bwa/markdup.bam NC_000009.12 10111 . C A 13.7431 . DP=15;VDB=0.327477;SGB=-0.511536;RPB=0.400803;MQB=1;MQSB=0.914584;BQB=0.914584;MQ0F=0.133333;ICB=1;HOB=0.5;AC=1;AN=2;DP4=7,3,3,0;MQ=30 GT:PL 0/1:47,0,142 NC_000009.12 10465 . C A 10.7923 . DP=2;SGB=-0.379885;MQ0F=0;AC=2;AN=2;DP4=0,0,1,0;MQ=60 GT:PL 1/1:40,3,0 NC_000009.12 10469 . G C 10.7923 . DP=1;SGB=-0.379885;MQ0F=0;AC=2;AN=2;DP4=0,0,1,0;MQ=60 GT:PL 1/1:40,3,0 NC_000009.12 10473 . G C 10.7923 . DP=1;SGB=-0.379885;MQ0F=0;AC=2;AN=2;DP4=0,0,1,0;MQ=60 GT:PL 1/1:40,3,0 NC_000009.12 10482 . G C 3.18683 . DP=2;SGB=-0.379885;RPB=1;MQB=1;BQB=1;MQ0F=0;ICB=1;HOB=0.5;AC=1;AN=2;DP4=1,0,1,0;MQ=60 GT:PL 0/1:33,0,19 NC_000009.12 10506 . A G 27.4023 . DP=5;VDB=0.18;SGB=-0.453602;RPB=0;MQB=0;BQB=0.75;MQ0F=0;ICB=1;HOB=0.5;AC=1;AN=2;DP4=2,0,2,0;MQ=56 GT:PL 0/1:60,0,54
Таблица 2. Описание первых 9 столбцов файла в формате VCF
№ | Название | Описание |
1 | CHROM | Имя последовательности (обычно хромосомы), в которой вызывается вариант |
2 | POS | Один минус позиция вариант |
3 | ID | Индивидуальный номер варианта |
4 | REF | Референсный нуклеотид (-ы, в случае инделя) |
5 | ALT | Список аллельных вариантов |
6 | QUAL | Качество варианта, в зависимости от частот аллелей |
7 | FILTER | Флаг, указывающий, какой из заданного набора фильтров прошёл вариант |
8 | INFO | Ключевые значения для описания варианта |
9 | FORMAT | Описание образца |
bcftools stats vc_chr9.vcf > vc_chr9_stats.txt
(файл)bcftools filter -i'%QUAL>30 && DP>50' --threads 10 vc_chr9.vcf -o vc_filtered.vcf
bcftools stats vc_filtered.vcf > vc_filtered_stats.txt
(файл)bedtools genomecov -bg -ibam ../bwa/markdup.bam > gencov.bed
(файл)awk '{if ($4 > 50) {print $0}}' gencov.bed | sort -k4,4nr > gencov_geq50.txt
(файл)wc -l gencov_geq50.txt
- их получилось 593 932 wc -l wc -l gencov.bed
- 2 436 694 покрытых хотя бы единожды вариантов, то есть примерно пятая часть покрыта более чем 50 раз.bedtools intersect -a vc_filtered.vcf -b gencov.bed > intersect.txt
(файл)wc -l intersect.txt
- всего таких вариантов 10 723.