На главную

Сборка de novo

    
В задании необходимо было поработать с данными проекта по секвенированию бактерии Buchnera aphidicola. Buchnera aphidicola - вид гамма-протеобактерий, являющихся первичными эндосимбионтами гороховых тлей Acyrthosiphon pisum. Основной источник пищи Acyrthosiphon pisum - соки растений, поэтому у них естественным образом возникает дефицит незаменимых аминокислот. Решением этой проблемы стал симбиоз c Buchnera, возникший примерно 200 миллионов лет назад. Buchnera живут в специальных клетках тли, бактериоцитах, и передаются вертикально, через яйцеклетки матери. Они синтезируют незаменимые аминокислоты, а в ответ получают от тли множество питательных веществ и среду, богатую азотом. В результате такого симбиоза Buchnera aphidicola утратили значительную часть генома и многие ферменты, жизненно важные для свободноживущих бактерий [1]. Работать было нужно с короткими (длины 36) чтениями, полученными по технологии Illumina. Мне был выдан код доступа SRR4240356. На странице проекта я скачала fastq - файл в виде архива .gz и перенесла его в рабочую директорию (/nfs/srv/databases/ngs/p.avdiunina/pr15), где распаковала программой gunzip. Использованная команда: gunzip SRR4240356.fastq.gz Был получен файл с чтениями SRR4240356.fastq.

Очистка чтений

    С помощью программы Trimmomatic была проведена очистка чтений, а именно: удаление остатков адаптеров и плохих букв с концов. Для начала все адаптеры для Illumina были собраны в единый файл adapters.fasta.
  Затем были исполнены следующие команды: 
  
КомандаНазначениеВыходной файл
java -jar /usr/share/java/trimmomatic.jar SE -phred33 SRR4240357.fastq SRR4240357_noad.fastq ILLUMINACLIP:adapters.fasta:2:7:7Удаление остатков адаптеров SRR4240357_noad.fastq
java -jar /usr/share/java/trimmomatic.jar SE -phred33 SRR4240357_noad.fastq SRR4240357_trim.fastq TRAILING:20 MINLEN:30Обрезка с концов чтений нуклеотидов с качеством ниже 20 и отбор чтений длины не менее 30SRR4240357_trim.fastq
Выдача программы на этапе удаления адаптеров: Input Reads: 7511579 Surviving: 7358438 (97,96%) Dropped: 153091 (2,04%).
Выдача программы на этапе обрезки концов и отбора по длине: Input Reads: 7358438 Surviving: 7075381 (96,15%) Dropped: 283057 (3,85%).

Подготовка k-меров

    
    Подготовка k-меров была произведена с помощью программы velveth. Она предназначена для создания набора данных, которые далее могут обрабатываться программой velvetg.
  Velveth принимает на вход несколько последовательностей, строит хэш-таблицу и создает в  отдельной директории два файла - Sequences и Roadmaps, необходимые для velvetg.
При запуске необходимо указывать длину k-мера (hash length) - длину хэшируемых слов в парах оснований, а также тип чтений (короткие или длинные, парные или непарные и т.д.). Возможные форматы входных файлов - fasta (default), fastq, fasta.gz, fastq.gz, sam, bam, eland, gerald. В нашем случае было необходимо подготовить k-меры длины 29 для коротких непарных чтений (-short) из файла в формате fastq (-fastq). Выходные файлы записывались в папку velveth. Использованная команда: velveth velveth 29 -fastq -short SRR4240357_trim.fastq.

Cборка на основе k-меров

  Cборка на основе k-меров была произведена программой velvetg с использованием данных, полученных на предыдущем этапе. Velvetg строит граф де Брёйна - ориентированный n-мерный граф из m символов, 
  отражающий пересечения между последовательностями символов. Он имеет m^n вершин, состоящих из всех возможных последовательностей длины n из данных символов. Один и тот же символ может встречаться
  в последовательности несколько раз. Запуск программы без дополнительных параметров позволят получить fasta-файл с контигами и статистические данные в указанной директории.
  
  Использованная команда: velvetg velveth.
  
  В постороенном программой графе оказалось 719 вершин. Информация по каждой из них отражена в файле stats.txt. Стоит отметить, что количество вершин не обязательно соответствует количеству контигов,
  так как "нормальными" являются только контиги длины не менее 29. Именно они прописываются в файле  contigs.fa. 
   
Длины и покрытия самых больших контигов
IDДлинаПокрытие Контиги
711546852,223586contig_7
2010607645,974914contig_20
87508254,512946contig_8
N50 = 46003 Типичные значения покрытий выделить довольно сложно, так как они достаточно сильно разнятся. Чтобы найти отклоняющиеся показатели, были вычислены наиболее употребимые средние значения, а также найдены максимальные и минимальные покрытия.
  • Среднее арифметическое - 571.069
  • Медиана - 10
  • Максимальные значения покрытий - 599; 595,2; 591
  • Минимальные значения покрытий - 1; 1,142857; 1,166667
Контиги с аномально большим покрытием
IDДлинаПокрытие
3951365,608
63711660
7091735
103127664,598425
Видно, что в нашей выборке присутствуют контиги с аномально большим покрытием. Информация по ним представлена в таблице слева. Можно сказать, что для данных контигов характерна сравнительно небольшая длина, что, в общем-то, не удивительно. В случае контигов с минимальным покрытием я не уверена, можно ли их назвать "аномальными". Их покрытия действительно значительно меньше тех показателей, которые хотелось бы назвать типичными, однако в выборке их слишком много (141 контигов с покрытием < 3).

Анализ

    С помощью алгоритма megablastn было проведено сравнение каждого из трех самых длинных контигов с хромосомой Buchnera aphidicola (CP009253). 
    Результаты работы megablastn можно увидеть в таблице ниже.
  
Сравнение самых длинных контигов с хромосомой Buchnera aphidicola
IDКоординаты в геномеMax scoreTotal scoreQuery coverE-value IdentAlignment lengthGaps
7528794-550219173045075973%0.081%21721545/21721(2%)
20266073-27555161373881468%0.079%9630 363/9661(3%)
835124-4469385213673373%0.083%9630 125/9630(1%)
Построенные выравнивания можно назвать достаточно неплохими. Далее требовалось выполнить аналогичный анализ для двух контигов с аномально большим покрытием.
При запуске megablastn с дефолтными параметрами ни для одного из 4-х описанных ранее "аномальных" контигов выравнивание построено не было, выдавалось сообщение "No significant similarity found". В FAQ программы указано, что одной из возможных причин такой ошибки могут являться слишком короткие query-sequences, что в нашем случае действительно так. Таким образом, ни для одного из контигов с аномально большим покрытием построить выравнивание не удалось.

Источники:


© Avdiunina Polina, 2015