Быстрое создание и исследование пангенома без выравнивания
Релиз: Разработчик: @master:
FindMyFriends — это пакет R для проведения пангеномного анализа микробных геномов. Он выпущен как часть проекта Bioconductor и может быть установлен с помощью функции BiocManager::install()
:
if ( ! requireNamespace( " BiocManager " , quietly = TRUE ))
install.packages( " BiocManager " )
BiocManager :: install( " FindMyFriends " )
Чтобы получить самую последнюю версию, установите ее прямо с GitHub:
if ( ! require( devtools )) {
install.packages( ' devtools ' )
library( devtools )
}
install_github( ' thomasp85/FindMyFriends ' )
В сравнительной микробной геномике пангеном определяется как группа генов в геномах, основанная на некотором сходстве. Эта мера сходства не высечена на камне, но часто она выводится из сравнения каждой пары генов друг с другом. Это плохая идея по нескольким причинам: сравнение всех со всеми приводит к ужасному масштабированию вычислительного времени по мере увеличения числа генов, BLAST в целом очень медленный, а одно только сходство последовательностей не может отличить гены-ортологи от паралогов. Последний вопрос был решен с помощью недавних инструментов, таких как PanOCT и Roary, но первые два все еще остаются в силе (хотя Roary делает что-то умное, чтобы сделать его менее проблематичным).
Войдите в FindMyFriends...
Это еще один алгоритм. Но что еще более важно, это основа для проведения анализа пангенома, которая совершенно не зависит от того, как вы вообще получили свой пангеном. FindMyFriends определяет расширяемый список классов для прозрачной обработки данных пангенома и подключается непосредственно к обширному набору геномных инструментов, предлагаемых Bioconductor.
Ладно, вернемся к алгоритмам. FindMyFriends использует CD-Hit для создания очень грубой группировки генов в вашем наборе данных, а затем уточняет эту группировку во втором проходе, используя дополнительные меры сходства. В этом отличие от Roary, который использует CD-Hit, но только для группировки наиболее похожих генов перед запуском BLAST. На втором этапе FindMyFriends происходит вся магия. Гены в каждой большой группе сравниваются по сходству последовательностей (с использованием косинусного сходства kmer), длине последовательности, членству в геноме и сходству соседей. На основе этих сравнений для каждой группы создается граф, ребра которого определяют сходство между генами выше определенного порога. Из этого графа клики постепенно извлекаются таким образом, чтобы гарантировать, что в первую очередь извлекаются клики самого высокого качества. Эти клики определяют окончательную группировку генов. Поскольку они представляют собой клики, пользователь может быть уверен, что все члены результирующих генных групп имеют определенное сходство друг с другом и что ни один ген не может быть сгруппирован с другими на основании высокого сходства с одним членом.
Что ж, качественный результат важнее скорости! Но это один из редких случаев, когда можно не только съесть свой торт, но и съесть его. FindMyFriends — это, с большим отрывом, самый быстрый алгоритм:
FindMyFriends масштабируется до тысяч геномов и может обрабатывать большое разнообразие (т. е. не ограничиваться уровнем вида). Например, пангеном на основе примерно 1200 штаммов из отряда Lactobacillales (молочнокислые бактерии) был создан примерно за 8 часов на экземпляре AWS c3x8.large с использованием одного ядра.
Будучи фреймворком, вы можете делать много вещей и много разных способов сделать это. Ниже приведен рекомендуемый подход к расчету пангенома:
library( FindMyFriends )
# We expect here that your genomes are stored in amino acid fasta files in the
# working directory.
genomes <- list.files( pattern = ' .fasta ' )
# First we create our pangenome object
pg <- pangenome( genomes , translated = TRUE , geneLocation = ' prodigal ' )
# Then we make the initial grouping
pg <- cdhitGrouping( pg )
# And lastly we refine the groups
pg <- neighborhoodSplit( pg )
пожалуйста, посмотрите виньетку для получения дополнительной информации о различных шагах, а также примеров того, что вы можете делать с вашими данными после того, как закончите группировать свои гены.
Ниже приведены некоторые функции, над которыми работают/рассматриваются: