Отчет по практикуму 13-14. Ресеквенирование. Поиск полиморфизмов у человека.
На этой странице выложен отчет по практикуму 13-14.
Часть I: подготовка чтений.
Мне была дана 21 хромосома человека chr21.fasta и файл с ридами для той же хромосомы chr21.fastq.
Файл с хромосомой chr21.fasta и файл с ридами chr21.fastq был скопирован в директоию /nfs/srv/databases/ngs/tsvetcovroman.
Анализ качества прочтений был проведён при помощи программы FastQC. Для улучшения качества использовался Trimmomatic.
Программа FastQC была запущена через командную строку на kodomo:
fastqc chr21.fastq
Вывод программы:
Started analysis of chr21.fastq
Approx 10% complete for chr21.fastq
Approx 20% complete for chr21.fastq
Approx 35% complete for chr21.fastq
Approx 45% complete for chr21.fastq
Approx 60% complete for chr21.fastq
Approx 70% complete for chr21.fastq
Approx 85% complete for chr21.fastq
Approx 95% complete for chr21.fastq
Analysis complete for chr21.fastq
В результате были получены 2 файла:chr21_fastqc.zip и chr21_fastqc.html.
Результаты в формате .html: chr21_fastqc.html.
Далее была произведена очистка чтений с помощью программы Trimmomatic. При этом программа Trimmomatic была запущена с помощью команды:
java -jar /usr/share/java/trimmomatic.jar SE -phred33 chr21.fastq c.fastq TRAILING:20 MINLEN:50
Вывод программы:
TrimmomaticSE: Started with arguments: -phred33 chr21.fastq c.fastq TRAILING:20 MINLEN:50
Automatically using 8 threads
Input Reads: 8158 Surviving: 7858 (96,32%) Dropped: 300 (3,68%)
TrimmomaticSE: Completed successfully
В результате был получен файл c.fastq.
Далее был произведен анализ качества чтений файла c.fastq.
Программа FastQC была запущена через командную строку на kodomo:
fastqc c.fastq
Вывод программы:
Started analysis of c.fastq
Approx 10% complete for c.fastq
Approx 25% complete for c.fastq
Approx 35% complete for c.fastq
Approx 50% complete for c.fastq
Approx 60% complete for c.fastq
Approx 75% complete for c.fastq
Approx 85% complete for c.fastq
Analysis complete for c.fastq
В результате были получены 2 файла:c_fastqc.zip и c_fastqc.html.
Результаты в формате .html: c_fastqc.html.
Качество прочтения нуклеотидов
До чистки Trimmomatic |
 |
После чистки Trimmomatic |
 |
Как видно из приведенных рисунков, качество прочтений после работы программы Trimmomatic повысилось, и теперь почти все позиции нуклеотидов прочтены хорошо , так как
почти попадают в зелёную область гистограммы, что означает quality от 28 и выше. До работы программы Trimmomatic качество некоторых прочтений было неудовлетворительным, так как онипопадали в красную область.
Также можно заметить, что наибольшее повышение качества произошло на конце ридов, поскольку программа Trimmomatic обрезала концевые нуклеотиды, имевшие качество ниже 20.
Распределение качества прочтений
До чистки Trimmomatic |
 |
После чистки Trimmomatic |
 |
На этих рисунках представлены графики из файлов chr21_fastqc.html и c_fastqc.html выданных FastQC, на которых представлено распределение качества по последовательностям в целом. Нужно заметить,
у 2 рисунков отличается шкала по горизонтальной оси,
на которой отражено среднее качество последовательности. На рисунке 1, отображающем результаты анализа качества чтений до чистки программой Trimmomatic шкала начинается с 2, а
рисунке 2, отображающем результаты анализа качества чтений после чистки программой Trimmomaticшкала начинается с 22.
Это демонтрирует работу программы Trimmomatic, поскольку как можно заметить из приведенных графиков, программа Trimmomatic действительно удаляет последовательности с низким (меньше 20) качеством (phred-score).
Команды.
Номер | Команда | Действие |
1 | fastqc chr21.fastq | Запуск FastQC для анализа качества чтений файла cрк21.fastq. На выходе — html-страница с результатами(файл chr21_fastqc.html) и архив в формате .zip. |
2 | java -jar /usr/share/java/trimmomatic.jar SE -phred33 chr21.fastq c.fastq TRAILING:20 MINLEN:50 | Запуск Trimmomatic в режиме SE (single-ends) для того, чтобы улучшить качества одноконцевых прочтений. Производится очистка чтений. В процессе очистки чтений отрезаются с конца каждого чтения нуклеотиды с качеством ниже 20, оставляются только чтения длиной не меньше 50 нуклеотидов.
-phred33 задает формат, в котором задаётся качество в fastq-файле
TRAILING:20 удаляет с конца каждого чтения нуклеотиды с качеством ниже 20
MINLEN:50 убирает чтения с длиной менее, чем 50 нуклеотидов. |
3 | fastqc c.fastq | Запуск программы FastQC для анализа качества чтений файла c.fastq. На выходе — html-страница с результатами(файл c_fastqc.html) и архив в формате .zip. |
Количество и длина чтений
Рис. 1. Общая статистика файла с ридами
до чистки |
Рис. 2. Общая статистика файла с ридами
после чистки |
Из 2 рисунков с общей статистикой можно сделать выводы о числе и длине чтений до и после чистки:
| Длина чтений | Количество чтений |
До очистки | 8158 | 30-100 |
После очистки | 7858 | 50-100 |
Из приведенной таблицы видно, что в начале было 8158 чтений с длиной от 30 до 100, после обработки их число уменьшилось до 7858, причём остались только риды с длиной от 50 до 100.
Часть II: картирование чтений.
Для картирования чтений использовалась программа BWA. Сначала проиндексирована референсная последовательность chr21.fasta. Для этого была запущена программа BWA с опцией index. При этом использовалась команда:
bwa index chr21.fasta
Вывод программы:
[bwa_index] Pack FASTA... 0.88 sec
[bwa_index] Construct BWT for the packed sequence...
[BWTIncCreate] textLength=96259790, availableWord=18772880
[BWTIncConstructFromPacked] 10 iterations done. 30966126 characters processed.
[BWTIncConstructFromPacked] 20 iterations done. 57205886 characters processed.
[BWTIncConstructFromPacked] 30 iterations done. 80523822 characters processed.
[bwt_gen] Finished constructing BWT in 38 iterations.
[bwa_index] 121.17 seconds elapse.
[bwa_index] Update BWT... 0.72 sec
[bwa_index] Pack forward-only FASTA... 0.67 sec
[bwa_index] Construct SA from BWT and Occ... 25.43 sec
[main] Version: 0.7.10-r789
[main] CMD: bwa index chr21.fasta
[main] Real time: 314.423 sec; CPU: 148.880 sec
Далее было построено выравнивание прочтений и референса в формате .sam, при этом был использован алгоритм mem и команда bwa mem.
Для построения выравнивания прочтения и референса была использована команда:
bwa mem chr21.fasta c.fastq > ch.sam
Вывод программы:
[M::main_mem] read 7858 sequences (769104 bp)...
[M::mem_process_seqs] Processed 7858 reads in 0.436 CPU sec, 1.035 real sec
[main] Version: 0.7.10-r789
[main] CMD: bwa mem chr21.fasta c.fastq
[main] Real time: 3.481 sec; CPU: 0.708 sec
В результате был получен файл ch.sam с выравниванием прочтений и референса.
Далее выравнивание чтений с референсом было переведено в бинарный формат .bam. При этом был использован пакет samtools, команда view: samtools view.
Чтобы узнать необходимую опцию команды samtools view был вызван help этой команды. Дляэтого использована команда:
Usage: samtools view [options] || [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]
-T FILE reference sequence FASTA FILE [null]
-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]
-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 bits set in INT set in FLAG [0]
-F INT only include reads with none of the bits set in INT
set in FLAG [0]
-x STR read tag to strip (repeatable) [null]
-B collapse the backward CIGAR operation
-s FLOAT integer part sets seed of random number generator [0];
rest sets fraction of templates to subsample [no subsampling]
-@ INT number of BAM compression threads [0]
-? print long help, including note about region specification
-S ignored (input format is auto-detected)
Для перевода выравнивания чтений с референсом было в бинарный формат .bam нужно использовать опции -b и -o.
Для Для перевода выравнивания чтений с референсом было в бинарный формат .bam была использована команда:
samtools view ch.sam -b -o ch.bam
В результате был получен файл ch.bam.
Затем выравнивание чтений с референсом (получившийся после картирования .bam файл) был отсортирован по координате начала чтения в референсе.
Для того, чтобы выяснить необходимые опции команды был вызван help.
Выдача help:
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
-o FILE Write final output to FILE rather than standard output
-O FORMAT Write output as FORMAT ('sam'/'bam'/'cram') (either -O or
-T PREFIX Write temporary files to PREFIX.nnnn.bam -T is required)
-@ INT Set number of sorting and compression threads [1]
Legacy usage: samtools sort [options...]
Options:
-f Use as full final filename rather than prefix
-o Write final output to stdout rather than .bam
-l,m,n,@ Similar to corresponding options above
Для сортировки выравнивания была использована команда:
samtools sort -T /tmp/ -o ch_sorted.bam ch.bam
В результате был получен файл:ch_sorted.bam .
Затем полученный файл был проиндексирован командой:
samtools index ch_sorted.bam
В результате был получен файл ch_sorted.bam.bai.
Далее для получения информации о количестве картированных прочтений была использована команда:
samtools idxstats ch_sorted.bam
Выдача программы:
chr21 48129895 7858 0
* 0 0 1
Рисунок 1.Выдача программы samtools idxstats ch_sorted.bam.
Из выдачи программы можно узнать, что на референсную последовательность картировались все 7858 прочтений, оставшиеся после улучшения качества с
помощью программы Trimmomatic.
Часть III: Анализ SNP.
Для создания файла с полиморфизмами в формате .bcf была использована команда:
samtools mpileup -uf chr21.fasta ch_sorted.bam > snp.bcf
Выдача команды:
[fai_load] build FASTA index.
[mpileup] 1 samples in 1 input files
Set max per-file depth to 8000
В результате был получен файл snp.bcf.
Далее был создан файл со списком отличий между референсом и чтениями в формате .vcf . Для этого была использована команда:
bcftools call -cv snp.bcf > snp.vcf
В результате был получен файл snp.vcf.
В файле записано 6 инделей и 82 замен. Данные полиморфизмы довольно низкого качества: медианное качество 11,34 и среднее 57,81.
Ссылка на файл с расчетами:s.xlsx.
Примеры полиморфизмов:
Координата | Тип полиморфизма | В референсе | В чтениях | Глубина покрытия данного места | Качество чтений в данном месте |
16379074 | замена | C | A | 1 | 11,3429 |
43824106 | замена | A | G | 8 | 126,008 |
45323946 | делеция | agtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgt | agtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgt | 5 | 4.4191 |
45378631 | вставка | agtgtgt | aGTgtgtgt | 2 | 21.5018 |
Полученные снипы были проаннотированны по пяти базам данных.
Был создан файл s.vcf, содержащий все полиморфизмы из snp.vcf, кроме инделей. Индели были удалены вручную.
Сначала необходимо было из нашего файла snp_only.vcf получить файл, с которым может работать программа annovar. Для этого использовалась команда:
perl /nfs/srv/databases/annovar/convert2annovar.pl -format vcf4 s.vcf -outfile s.avinput
Выдача команды:
NOTICE: Finished reading 114 lines from VCF file
NOTICE: A total of 82 locus in VCF file passed QC threshold, representing 82 SNPs (56 transitions and 26 transversions) and 0 indels/substitutions
NOTICE: Finished writing 82 SNP genotypes (56 transitions and 26 transversions) and 0 indels/substitutions for 1 sample
1. Далее полученный файл s.vinput использовался для аннотации SNP с помощью скрипта annotate_variation.pl:
perl /nfs/srv/databases/annovar/annotate_variation.pl -out s.refgene -build hg19 s.avinput /nfs/srv/databases/annovar/humandb/
Выдача скрипта:
NOTICE: The --geneanno operation is set to ON by default
NOTICE: Reading gene annotation from /nfs/srv/databases/annovar/humandb/hg19_refGene.txt ... Done with 50914 transcripts (including 11516 without coding sequence annotation) for 26271 unique genes
NOTICE: Reading FASTA sequences from /nfs/srv/databases/annovar/humandb/hg19_refGeneMrna.fa ... Done with 4 sequences
WARNING: A total of 345 sequences will be ignored due to lack of correct ORF annotation
NOTICE: Finished gene-based annotation on 82 genetic variants in s.avinput
NOTICE: Output files were written to s.refgene.variant_function, s.refgene.exonic_variant_function
В результате были получены файлы:s.refgene.variant_function, который содержит описание всех SNP,
s.refgene.exonic_variant_function, который содержит описание SNP, попавших в экзоны, и s.refgene.log, который содержит
информацию о процессе работы(лог работы аннотирующего скрипта).
Полиморфизмы попали в гены NRIP1, UBASH3A и AGPAT3. Из экзонных SNP 3 SNP попали в ген UBASH3A, 1 SNP попал в ген NRIP1.
Наибольшее количество замен произошло в интронах(69 замен из 82), что можно объяснить тем, что эти замены не влияют на итоговые продукты генов.
Refgene делит снипы на несколько категорий, приведенных в Таблице 4. Количество полиморфизмов разных категорий приведено в Таблице 5.
Обозначение |
Количество |
Значение |
Sequence Ontology |
exonic |
4 |
Экзонные SNP |
exon_variant (SO:0001791) |
splicing |
0 |
SNP сайтов сплайсинга |
splicing_variant (SO:0001568) |
ncRNA |
0 |
SNP в генах некодирующих РНК |
non_coding_transcript_variant (SO:0001619) |
UTR5 |
9 |
SNP в области 5' нетранслируемых областей |
5_prime_UTR_variant (SO:0001623) |
UTR3 |
0 |
SNP в области 5' нетранслируемых областей |
3_prime_UTR_variant (SO:0001624) |
intronic |
69 |
интронные SNP |
intron_variant (SO:0001627) |
upstream |
0 |
SNP находится в области 1 kb до сайта начала транскрипции |
upstream_gene_variant (SO:0001631) |
downstream |
0 |
SNP находится в области 1 kb до сайта начала транскрипции |
downstream_gene_variant (SO:0001632) |
intergenic |
0 |
SNP расположены в межгенных областях |
intergenic_variant (SO:0001628) |
Таблица 4. Классификация полиморфмизмов в Refgene.
Хромосома | Старт | Стоп | Ген | Нуклеотидная замена | Аминокислотная замена | Покрытие |
chr21 | 16340289 | 16340289 | NRIP1 | A -> T | A -> G | 169.009 |
chr21 | 43824123 | 43824123 | UBASH3A | T -> C | C -> S | 196.018 |
chr21 | 43863521 | 43863521 | UBASH3A | C -> T | C -> P | 118.008 |
Таблица 5.Нуклеотидные и аминокислотные замены.
Категория в Refgene | exonic |
splicing | ncRNA | UTR5 | UTR5 |
UTR3 | intronic | upstream | downstream | intergenic |
Количество полиморфизмов | 4 | 0 | 9 | 0 |
69 | 0 | 0 | 0 | 0 | 0 |
Таблица 6.Количество полиморфизмов разных категорий.
2. Далее полиморфизмы были проаннотированы по базе данных dbsnp. Для этого использовался скрипт:
perl /nfs/srv/databases/annovar/annotate_variation.pl -filter -out s -build hg19 -dbtype snp138 s.avinput ../../annovar/humandb/
Выдача скрипта:
NOTICE: Variants matching filtering criteria are written to s.hg19_snp138_dropped, other variants are written to s.hg19_snp138_filtered
NOTICE: Processing next batch with 82 unique variants in 82 input lines
NOTICE: Database index loaded. Total number of bins is 2894320 and the number of bins to be scanned is 57
NOTICE: Scanning filter database ../../annovar/humandb/hg19_snp138.txt...Done
В результате было получено 3 файла: s.dbsnp.hg19_snp138_dropped (SNP, имеющие идентификатор rs, то есть аннотированные в базе данных dbSNP),
s.dbsnp.hg19_snp138_filtered (SNP, не имеющие rs) и файл s.dbsnp.log(лог работы скрипта аннотации). В файле s.dbsnp.hg19_snp138_dropped 60 записей,
в файле s.dbsnp.hg19_snp138_filtered 22 записи.
Таким образом, 60 SNP имеют аннотацию в базе данных dbSNP, а 22 — не имеют.Медианная частота SNP составляет 5,0, средняя 9,43. Ссылка на файл с расчетами.c.xlsx.
3. Далее SNP были проаннотированы по базе данных 1000 genomes. Для этого использовалась команда:
perl /nfs/srv/databases/annovar/annotate_variation.pl -filter -dbtype 1000g2014oct_all -buildver hg19 -out s s.avinput ../../annovar/humandb/
Выдача команды:
NOTICE: Variants matching filtering criteria are written to s.hg19_ALL.sites.2014_10_dropped, other variants are written to s.hg19_ALL.sites.2014_10_filtered
NOTICE: Processing next batch with 82 unique variants in 82 input lines
NOTICE: Database index loaded. Total number of bins is 2824642 and the number of bins to be scanned is 57
NOTICE: Scanning filter database ../../annovar/humandb/hg19_ALL.sites.2014_10.txt...Done
В результате были получены файлы s.hg19_ALL.sites.2014_10_dropped, s.hg19_ALL.sites.2014_10_filtered и s.log.
В файле s.hg19_ALL.sites.2014_10_dropped записаны SNP, имеющие идентификатор rs, то есть аннотированные в базе данных 1000 genomes, в файле
s.hg19_ALL.sites.2014_10_filtered записаны SNP, не имеющие rs.
Файл s.log содержит лог работы скрипта аннотации.
В файле s.hg19_ALL.sites.2014_10_dropped 59 записей, в файле s.hg19_ALL.sites.2014_10_filtered 23 записи.
Таким образом, 59 SNP имеют аннотацию в базе данных 1000 genomes, а 23 — не имеют.
4. Далее SNP были проаннотированы по базе данных GWAS. Для этого использовалась команда:
perl /nfs/srv/databases/annovar/annotate_variation.pl -regionanno -build hg19 -out s -dbtype gwasCatalog s.avinput ../../annovar/humandb/
Выдача команды:
NOTICE: Reading annotation database ../../annovar/humandb/hg19_gwasCatalog.txt ... Done with 18027 regions
NOTICE: Finished region-based annotation on 82 genetic variants in s.avinput
NOTICE: Output file is written to s.hg19_gwasCatalog
В результате было получено 2 выходных файла: s.hg19_gwasCatalog, в которм записаны снипы, имеющие описанное клиническое значение, s.log,
в котором записан
лог работы аннотирующего скрипта. В файле s.hg19_gwasCatalog записано 3 снипа.
Ниже можно видеть, что клиническое значение аннотировано в 3 снипах, причем ни один из них не является экзонным.
Координата | Клинический смысл | Замена | Качество прочтения | Глубина покрытия |
16340289 | Нарушения когнитивной работы | С -> T | 169.009 | 30 |
43836390 | Диабет 1 типа | A -> G | 142.514 | 17 |
45404338 | Изменение уровня фосфолипидов в плазме | A -> G | 11.3381 | 10 |
5. Далее SNP были проаннотированы по базе данных Clinvar. Для этого использовалась команда:
perl /nfs/srv/databases/annovar/annotate_variation.pl s.avinput ../../annovar/humandb/ -filter -dbtype clinvar_20150629 -buildver hg19 -out s
Выдача команды:
NOTICE: the --dbtype clinvar_20150629 is assumed to be in generic ANNOVAR database format
NOTICE: Variants matching filtering criteria are written to s.hg19_clinvar_20150629_dropped, other variants are written to s.hg19_clinvar_20150629_filtered
NOTICE: Processing next batch with 82 unique variants in 82 input lines
NOTICE: Database index loaded. Total number of bins is 49139 and the number of bins to be scanned is 1
NOTICE: Scanning filter database ../../annovar/humandb/hg19_clinvar_20150629.txt...Done
В результате были получены 3 файла: s.hg19_clinvar_20150629_dropped, s.hg19_clinvar_20150629_filtered и s.log.
В файле s.hg19_clinvar_20150629_dropped записаны SNP, имеющие идентификатор rs, то есть аннотированные в базе данных Clinvar,
в файле s.hg19_clinvar_20150629_filtered записаны записаны SNP, не имеющие rs. Файл s.log содержит лог работы скрипта аннотации.
В файле s.hg19_clinvar_20150629_dropped нет записей, в файле s.hg19_clinvar_20150629_filtered записаны все 82 снипа.
Таким образом, ни один из снипов не аннотирован в базе данных Clinvar.

Рис. 2 Картинка полиморфизма, выданная IGV.