Отчет по практикуму 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).

Команды.


НомерКомандаДействие
1fastqc chr21.fastqЗапуск FastQC для анализа качества чтений файла cрк21.fastq.
На выходе — html-страница с результатами(файл chr21_fastqc.html) и архив в формате .zip.
2java -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 нуклеотидов.
3fastqc 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заменаCA111,3429
43824106заменаAG8126,008
45323946делецияagtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtagtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgt54.4191
45378631вставкаagtgtgtaGTgtgtgt221.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.

ХромосомаСтартСтопГенНуклеотидная заменаАминокислотная заменаПокрытие
chr211634028916340289NRIP1A -> TA -> G 169.009
chr214382412343824123UBASH3AT -> CC -> S 196.018
chr214386352143863521UBASH3AC -> TC -> P 118.008

Таблица 5.Нуклеотидные и аминокислотные замены.
Категория в Refgeneexonic splicingncRNAUTR5UTR5 UTR3intronicupstreamdownstreamintergenic
Количество полиморфизмов4090 6900000
Таблица 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Нарушения когнитивной работыС -> T169.00930
43836390Диабет 1 типаA -> G142.51417
45404338Изменение уровня фосфолипидов в плазмеA -> G11.338110
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.