Ресеквенирование
У нас есть рефересная последовательность 11-ой хромосомы человека. Есть риды, полученные при секвенировании 11 хромосомы но у другого человека.
Задача: найти однонуклеотидные изменения (делеция, вставка, замена) - полиморфизмы в вновь секвенированной хромосоме человека.
Подготовка чтений
Для этого нужно подготовить чтения. Убрать те, качество которых нас не устраивает. Чтобы наглядно увидеть изменения получим графическое изображение (Рис.1),
которое покажет понуклеотидное качество секвенирования.
fastqc chr11.fastq
Рисунок 1 Графическое изображение понуклеотидного качества секвенирования
до фильтрации по качеству и длине
Далее очистим наши риды с краев и оставим те, качество которых больше 20, а длина не меньше 50. В этом поможет Trimmomatic.
java -jar /usr/share/java/trimmomatic.jar SE -phred33 infile.fastq outfile.fastq TRAILING:20 MINLEN:50
Что же изменилось? Во-первых у нас удалилось 134
последовательности: было 4198, стало - 4064ю Во- вторых это мы сможем узнать опять при помощи контроля FastQC (Рис. 2).
Рисунок 2 Графическое изображение понуклеотидного качества секвенирования после фильтрации по качеству и длине
Нужно пояснить, что у нас все риды длиной 100 - это параметр секвенатора. За счет их большого количества машина может относительно быстро секвенировать целый геном.
На этих изображениях показана информация о распределении качества прочтения одного нуклеотида (вертикальная ось - положение этого нуклеотида в риде: от 1ого до 100).
Качество нуклеотида - это величина, которая обратно зависит от вероятности ошибки. Распределение понимается так:
в первом нуклеотиде каждого рида можно сделать ошибку секвенирования с некоторой вероятностью. Ридов очень много.
Соответственно появятся значения качества прочтения (т.е. вероятности сделать ошибку), которые чаще встреяаются или почти невстречаются.
Это информация и отражается в каждом столбце картинки. В хвостах (тонких черных полос) мы можем найти значения качества, которые редко встречаются,
в желтой области мы имеем распределение - "горку", на вершине которой мода - то значение, которое встречается чаще всего.
Красным обозначено среднее значение.
На основании этой информации мы теперь можем понять что изменилось.
Во-первых, укоротились хвосты с маленьким значениеи качества секвенирования. Желтая область тоже поуменьшилась.
Теперь у нас нет никаких ридов в красной области (собственно, что мы и хотели).
Также в выдаче находятся и другие изображения.
До обработки trimmomatic |
После обработки trimmomatic |
Различия |
|
|
Картинка отражает распределение ридов по качеству. Хвост в районе 20 - 30 (по оси качества) заметно изменился.
Их количество (ридов с низким качеством) свелось к минимальному после обработки. |
|
|
Картинка отражает распределение содержания GC (т.е. процентное содержание нуклеотидов гуанина или цитозина - т.к.
они образуют три водородных связи более устойчивые, чем
двойные это важный критерий для определения фрагмента генома). Особых различий не наблюдается. |
|
|
Отражает процентное содержание каждого нуклеотида в каждой позиции всех ридов. Особых различий не наблюдается. |
|
|
Распределение длин последовательностей. Очень трудно сказать, что изменилось, так как графики распределения выглядят по-разному.
Судя по первой картинки до очистки не было последовательностей меньше 99,.. и больше 101,...
После обработки распределение изменилось стало больше последовательностей длиной от 90 до 100. |
Картирование чтений
Сначала нам нужно создать навигацию - т.е. проиндексировать рефересную последовательность
bwa index chr11.fasta
Затем выравнять наши риды - т.е. определить положение в системе координат.
bwa mem chr11.fasta chr11_after_screen.fastq > aln.sam
Анализ выравнивания
Выравнивания в sam формате весьма громоздки. Обрабатывать их довольно долго. Поэтому переведем его в бинарный формат.
samtools view -b -o aln.bam aln.sam
Отсортируем их (выравнивания) по начальным координатам относительно рефересного генома.
samtools sort -T /ngs/anandia/aln.sorted -o aln.sorted.bam aln.bam
Теперь заново проиндексируем.
samtools index aln.sorted.bam
Узнаем, сколько чтений откартировалось на геном
samtools idxstats aln.sorted.bam
В итоге 4062 последовательности откартировались, а 2 нет.
Немножко о покрытиии
Как узнать хорошее ли покрытие дпнного полиморфизма и вообще что это такое? Покрытие - это количество ридов наложившихся друг на друга при картировании.
samtools depth aln.sorted.bam
Это команда возвратила таблицу с информацией о покрытии каждого нуклеотида (диапозон значений: от 1 до 185).
Выбрав нуклеотид с покрытием 181 (координата 116628504), я установила что он находится в экзоне гена BUD13, который имеет координаты: 116628482-116628666.
samtools depth aln.sorted.bam -r chr11:116628482-116628666
Программа выдала понуклеотидное покрытие экзона. Среднее покрытие оказалось 143 - довольно высокий результат. Но чаще всего покрытие нуклеотида составляет 60-80.
Анализ SNP
Поиск SNP и инделей
Создадим файл с полиморфизмами.
samtools mpileup -uf chr11.fasta aln.sorted.bam > snp.bcf
Создадим файл со списком отличий между референсом и чтениями в формате .vcf.
bcftools call -cv snp.bcf > snp.vcf
Файл
snp.vcf содержит
23 полиморфизма: 1 вставка, 1 делеция, 21 замена.
Качество 6-ти (26%) не достигает и 30. По-моему есть некая зависимость между покрытием и качеством, так как полиморфизмф
с низким покрытием имеют низкий показатель качества. Остальные полиморфизмы имеют очень высокие показатели качества.
Информация о некоторых из них представлена в Таблице 1.
Таблица с информацией о трех разных полиморфизмах из 11 хромосомы
Координата |
Тип полиморфизма |
Референсная последовательность |
Чтение |
Качество чтений |
Глубина покрытия |
116657590
|
Индель |
СAAA |
CAAAA |
144.467
|
63 |
116650454
|
Индель |
ATCTCT
|
ATCT
|
196.468
|
22 |
116655600
|
Замена |
G |
A |
225.009
|
37 |
Аннотация SNP
Выполняется с помощью с annovar.
Для начала удалим из vcf-файла индели, аннотация которых нас не интересует.
Затем переведем vcf файл в тот, с которым работает annovar.
perl convert2annovar.pl -format /nfs/srv/databases/ngs/anandia/snp.vcf > /nfs/srv/databases/ngs/anandia/snp.avinput
Затем последовательно были аннотированы SNP по различным базам данных.
- Refgene - база данных для метода аннотации полиморфизмов, основанного на изменении строении генов и
межгенных участков при инделях или заменах. Программа выдает 2 файла: в первом суммарная информация о всех найденных (т.е. генноразмеченных)
полиморфизмах. Там есть свои группы snp (см.рис.3). Во втором файле содержится информация о полиморфизма в экзонах. В нем тоже есть своя градация по
последствиям этих snp (см. рис.4)
Рисунок 3 Полный список типов snp в зависимости от места их расположения.
Рисунок 4 Список разных экзонных snp.
perl /nfs/srv/databases/anandia/annotate_variation.pl -geneanno -dbtype refGene -buildver hg19
/nfs/srv/databases/anandia/snp.avinput -outfile snp_annot_refgene /nfs/srv/databases/annovar/humandb/
5 полиморфизмов были найдены внутри экзонов 3 генов.
В гене KCNG11 присутствуют 2 несинонимичные замены (G748A:p.V250I; A67G:p.K23E;
(т.е. замена одно нуклеотида меняет нам аминокислоту). В этом гене закодирован интегральный мембранный белок входящего АТФ-зависимого
калиевого канала (закачивает ионы калия в клетку), который закрывается, когда высокая концентрация АТФ вызывает секрецию инсулина.
Мутации в этом гене вызывают неконтролируемый синтез инсулина (гиперинсулинная гипогликемия), а также диабет (инсулин независимый).
В гене BUD13 есть одна синонимичная замена (G480A:p.P160P) и одна несинонимичная (C443T:p.P148L).
В этом гене закодирован белок, участвующий в выведении мРНК из ядра и сплайсировании pre
РНК
В гене ZPR1 1 несинонимичная замена (C791T:p.A264V). В гене закодирован белок, который
содержит цинковый палец и участвует в дифференциации нейронов. Мутации могут вызывать апоптоз моторных нейронов и спинальную мышечную атрофию.
Вполне возможно, что данные полиморфизмы имеют клиническое значение.
- dbsnp - база данных уже аннотированных полиморфизмов. Используется в методе фильтрации
(сравнивают полиморфизмы с раннее аннотированными: если начало, конец и собственно аллели (рефересная и чтение) точно
(важное отличие от метода разметки окружения)
совпадают - берут.
perl /nfs/srv/databases/anandia/annotate_variation.pl -filter -dbtype snp138 -buildver hg19
/nfs/srv/databases/anandia/snp.avinput -outfile snp_annot_snp138 /nfs/srv/databases/annovar/humandb/
Не нашли соответсвия только 2 полиморфизма. Остальные были аннотированы раньше. Т.е. имеют индентификатор в этой базе (rs).
- 1000genomes - база данных полиморфизмов из 1000 геномов людей. Используется для метода фильтрации.
Можем определить, с какой частотой встречается данный полиморфизм.
perl /nfs/srv/databases/anandia/annotate_variation.pl -filter -dbtype 1000g2014oct_all -buildver hg19
/nfs/srv/databases/anandia/snp.avinput -outfile snp_annot_1000g2014oct_all /nfs/srv/databases/annovar/humandb/
Как и в прошлый раз отсеились 2 полиморфизма (те же самые) - отбор по порогу встречаемости (>= 0.05)
Можно заметить, что замена пуринового основания на пиримидиновое встречается реже, чем обратная замена.
- GWAS - база данных для метода разметки регионов генома. Для него (метода)
не обязательно точное понуклеотидное совпадение полиморфизмов. Программа смотрит соответсвие ранее аннотированных полиморфизмов с прочитанными,
имеющими некоторое количество нуклеотидов в окружении. GWAS - база данных аннотированных полиморфизмов, которые ассоциированы с
заболеваниями или особыми последствиями, определенными в ходе множественных геномных исследований.
perl /nfs/srv/databases/anandia/annotate_variation.pl -regionanno -dbtype gwasCatalog -buildver hg19
/nfs/srv/databases/anandia/snp.avinput -outfile snp_annot_gwasCatalog /nfs/srv/databases/annovar/humandb/
Здесь определилсь 6 полиморфизмов. 2 ассоциированы с диабетом 2 ого типа (были предположительно заявлены в refGen аннотации), 2 были ассоциированы
с увеличением количества трилицеридов, которые путешествуют по кровотоку в составе комплекса с липопротеинами.
Скапливаясь в большом количестве могут образовывать препятствия кровотоку, приводя к атеросклерозу.
Кроме того, триглицериды значительно повышают риск развития острого воспаления поджелудочной железы – острого панкреатита.
1 был связан с возникновением метаболитического синдрома (увеличение массы висцерального жира, снижение чувствительности
периферических тканей к инсулину и гиперинсулинемия,
которые нарушают углеводный, липидный, пуриновый обмен, а также артериальная гипертензия). Еще один связан с ожирением.
Все заболевания связаны с углеводным и липидным обменом. Возможно, что все эти полиморфизмы находятся либо в одном гене,
либо в генах, кодирующих схожие белки. В любом случае у человекас таким набором полиморфизмов есть риск получить заболевание связанное с липидным и углеводным обменом.
Интересно, сколько нужно полиморфизмов, чтобы заболевание обязательно проявилось? Делятся ли заболевание на тем,
что могут с большой вероятностью проявится в связи с единичным полиморфизмов и те, которым нужна целая серия?.
- Clinvar - база для метода фильтрации. Содержит информацию о связи между полиморфизмом и его влиянием на организм человека
(патогенный, неизвестный, отвечающий на лечение лекарствами и др.)
perl /nfs/srv/databases/anandia/annotate_variation.pl -filter -dbtype clinvar_20150629 -buildver hg19
/nfs/srv/databases/anandia/snp.avinput -outfile snp_annot_Clinvar /nfs/srv/databases/annovar/humandb/
Только 2 полиморфизма были аннотированы по такой базе: один непатогенный и неспецифичный, другой - отвечающий на лечение диабет 2-ого типа.
Таблицу с информацией о всех вышеупомянутых аннотациях snp можно найти.
здесь
Таблица использованных команд
Команда |
Что делает |
fastQC |
Проверяет качество ридов. Отчет в zip архиве. |
java -jar /usr/share/java/trimmomatic.jar SE -phred33 infile.fastq outfile.fastq TRAILING:20 MINLEN:50 |
Отрезает с конца каждого чтения нуклеотиды с качеством ниже 20, оставляет только чтения длиной не меньше 50 нуклеотидов. |
bwa index chr11.fasta
|
Индексирует рефересную последовательность chr11.fasta |
bwa mem chr11.fasta chr11_after_screen.fastq > aln.sam
|
Строит выравнивание индексированной рефересной последовательности и ридов |
samtools view -b -o aln.bam aln.sam
|
Переводит выравнивание в sam формате в бинарный. |
samtools sort -T /ngs/anandia/aln.sorted -o aln.sorted.bam aln.bam
|
Сортирует bam - файл по началу в рефересном геноме |
samtools index aln.sorted.bam |
Индексирует бинарный отсортированный файл |
samtools idxstats aln.sorted.bam |
Выдает табличку с информацией о количестве откартированных на геном чтений |
samtools mpileup -uf chr11.fasta aln.sorted.bam > snp.bcf |
Создает файл с полиморфизмами |
bcftools call -cv snp.bcf > snp.vcf |
Переводит полученный .bcf файл в список отличий между референсом и чтениями в формате .vcf. |
perl convert2annovar.pl -format /nfs/srv/databases/ngs/anandia/snp.vcf > /nfs/srv/databases/ngs/anandia/snp.avinput |
Создает на основе файла .vcf файл, с которым может работать annovar |
perl /nfs/srv/databases/anandia/annotate_variation.pl -geneanno -dbtype refGene -buildver hg19
/nfs/srv/databases/anandia/snp.avinput -outfile snp_annot_refgene /nfs/srv/databases/annovar/humandb/ |
Аннотирует файл со списком SNP по базе данных refgene с использованием сборки генома человека h19 |
perl /nfs/srv/databases/anandia/annotate_variation.pl -filter -dbtype snp138 -buildver hg19
/nfs/srv/databases/anandia/snp.avinput -outfile snp_annot_snp138 /nfs/srv/databases/annovar/humandb/ |
Аннотирует файл со списком SNP по базе данных dbsnp |
perl /nfs/srv/databases/anandia/annotate_variation.pl -filter -dbtype 1000g2014oct_all -buildver hg19
/nfs/srv/databases/anandia/snp.avinput -outfile snp_annot_1000g2014oct_all /nfs/srv/databases/annovar/humandb/ |
Аннотирует файл со списком SNP по базе данных 1000genomes |
perl /nfs/srv/databases/anandia/annotate_variation.pl -regionanno -dbtype gwasCatalog -buildver hg19
/nfs/srv/databases/anandia/snp.avinput -outfile snp_annot_gwasCatalog /nfs/srv/databases/annovar/humandb |
Аннотирует файл со списком SNP по базе данных GWAS |
perl /nfs/srv/databases/anandia/annotate_variation.pl -filter -dbtype clinvar_20150629 -buildver hg19
/nfs/srv/databases/anandia/snp.avinput -outfile snp_annot_Clinvar /nfs/srv/databases/annovar/humandb/ |
Аннотирует файл со списком SNP по базе данных Clinvar |