MetaPhase: программный инструмент для метагеномной деконволюции с помощью Hi-C.
Создано Джошем Бертоном ( jnburton at uw.edu
) на факультете геномных наук Вашингтонского университета, Сиэтл, Вашингтон, США.
Публикация в G3: Гены | Геномы | Генетика (пожалуйста, укажите) находится здесь: http://dx.doi.org/10.1534/g3.114.011825.
Что такое MetaPhase и почему меня это волнует?
Что мне нужно иметь, чтобы использовать MetaPhase?
Системные требования
Загрузка пакета MetaPhase
Компиляция пакета MetaPhase
Пошаговое руководство: попробуйте MetaPhase на образце набора данных
Список входных файлов
Создание черновой сборки метагенома
Согласование чтений Hi-C с черновой сборкой метагенома
Предоставление эталонных геномов
Создание файлов TSV
Обязательные аргументы командной строки
Необязательные аргументы командной строки
Вывод аргументов командной строки (все необязательные переключатели)
Графики
Изображения
Файлы в выходном каталоге
Запуск ЛАХЕСИСа
MetaPhase не запускается!
MetaPhase вылетает!
MetaPhase выдает странный результат!
MetaPhase — это программный инструмент для выполнения метагеномной деконволюции. То есть он вводит сборку метагенома — сборку, созданную из смешанного геномного образца, обычно состоящего из многих разных видов микробов, — и определяет, какие контиги в этой сборке принадлежат одним и тем же геномам. Сборка метагенома не содержит полных геномов какого-либо одного вида в смешанной выборке, но деконволюционная сборка может содержать почти полные геномы многих отдельных видов. MetaPhase опирается на данные, полученные с помощью Hi-C, признанного молекулярного метода изучения конформации хроматина (статья).
Вы хотите использовать MetaPhase, если изучаете микробное сообщество и хотите знать геномы отдельных видов микробов. MetaPhase хорошо работает с довольно сложными сообществами и может одинаково хорошо изучать эукариотов и прокариотов. MetaPhase не может выполнять деконволюцию близкородственных штаммов одного и того же вида; он объединит все эти штаммы в один кластер. MetaPhase не тестировался на сообществах с тысячами видов, таких как микробиом кишечника человека, и не может надежно обнаруживать виды с численностью значительно ниже 1%. (Обратите внимание, что ограничение здесь заключается в неспособности стандартного программного обеспечения для сборки метагенома de novo генерировать черновой вариант сборки метагенома, содержащего контиги редких видов, а не в способности MetaPhase деконволюции этих контигов.)
Вам не следует использовать MetaPhase, если вы изучаете вариации штаммов внутри одного вида. Или если вы изучаете геномные перестройки в геномах рака человека. Вы также не хотите использовать MetaPhase, если у вас нет метагеномного набора данных Hi-C или вы не хотите его создать; Hi-C — непростая техника для изучения. Чисто вычислительная (а не молекулярная) метагеномная деконволюция сложна, но не невозможна: см. статьи, цитированные во введении к статье MetaPhase.
На высоком уровне для запуска MetaPhase вам нужно всего две вещи:
Проект сборки метагенома de novo . Его можно создать из библиотеки секвенирования метагенома с помощью дробовика с помощью любого количества инструментов сборки, таких как Velvet, IDBA-UD, ABySS или SPAdes.
Библиотека секвенирования Hi-C, созданная на основе образца метагенома — предпочтительно того же образца, который использовался для создания сборки метагенома de novo , или очень похожего.
На низком уровне MetaPhase требуется несколько разных входных файлов, а также некоторые дополнительные входные данные. Более подробную информацию о входных файлах см. в разделе C1 «Список входных файлов».
Для установки и запуска MetaPhase вам понадобится компьютер, работающий в среде UNIX, с объемом памяти не менее 16 ГБ и установленным следующим программным обеспечением:
gcc, компилятор C++ (http://gcc.gnu.org/)
Библиотека сжатия zlib (http://www.zlib.net/)
Вам также может понадобиться следующее программное обеспечение:
Короткий выравниватель BWA (http://bio-bwa.sourceforge.net/) или другой такой выравниватель.
Программа выравнивания BLAST в форме командной строки (http://www.ncbi.nlm.nih.gov/books/NBK1763/), включая команды blastn
, tblastx
и makeblastdb
Программное обеспечение bmtagger для удаления человеческих данных из наборов данных метагеномики (http://biowulf.nih.gov/apps/bmtagger.html).
Для MetaPhase также требуются библиотеки boost C++ (http://www.boost.org/) и набор инструментов SAMtools (http://samtools.sourceforge.net/), но они включены в установочный пакет MetaPhase.
Загрузите пакет MetaPhase с https://github.com/shendurelab/MetaPhase/archive/master.zip в файловую систему UNIX. Если вы загрузили архив ( MetaPhase.tar.gz
), распакуйте его с помощью следующих команд UNIX:
tar xzvf MetaPhase.tar.gz
cd MetaPhase/
С этого момента я называю основной каталог MetaPhase <MetaPhase>
.
Чтобы скомпилировать MetaPhase, просто введите make
в каталоге <MetaPhase>
. Чтобы запустить MetaPhase, вам также может потребоваться добавить <MetaPhase>/include/boost_1_47_0/stage/lib
в ваш $LD_LIBRARY_PATH
(чтобы избежать проблемы: cannot open shared object file...
). Наконец, обязательно запустите либо MetaPhase из каталога <MetaPhase>
или добавьте этот каталог в свой $PATH
. Это важно, поскольку некоторым модулям MetaPhase необходим доступ к исполняемым сценариям FastaSize
, CountMotifsInFasta.pl
, Fig2a.R
и MakeClusteringResultHeatmap.R
, которые включены в пакет MetaPhase.
Пакет MetaPhase включает небольшой тестовый пример, который вы можете запустить, чтобы понять, как работает MetaPhase. Он содержится в каталоге test_case
, который имеет следующие подкаталоги:
<MetaPhase>/test_case/assembly/
: Содержит черновой вариант сборки метагенома de novo , assembly.fasta
. Этот набор состоит из 20 контигов, взятых из гораздо более крупного образца образца бактериального вагиноза. Здесь он служит игрушечным примером сборки метагенома.
<MetaPhase>/test_case/HiC/
: содержит 2 файла fastq: BV.H3.head.bmt.1.fq и BV.H3.head.bmt.2.fq. Эти чтения являются частью гораздо большего набора данных Hi-C, секвенированных из образца бактериального вагиноза. Они уже были отфильтрованы с помощью bmtagger, чтобы исключить чтение человеком.
<MetaPhase>/test_case/refs/
: Содержит один общедоступный эталонный геном, LI.fasta
, для бактерии Lactobacillus iners . Это необязательный входной сигнал, который MetaPhase будет использовать, чтобы увидеть, соответствуют ли его кластеры геному L. iners .
<MetaPhase>/test_case/tsvs/
: содержит два файла TSV, которые описывают расположение других входных файлов и используются MetaPhase.
<MetaPhase>/test_case/out/
: этот каталог изначально не существует. Когда MetaPhase запустит тестовый пример, он создаст этот каталог и поместит сюда свои выходные данные.
В test_case отсутствует один (необязательный) ввод — это база данных нуклеотидных последовательностей BLAST. Эта база данных, которая позволяет запрашивать контиги сборки метагенома по всем известным последовательностям, слишком велика для тестового пакета, но ее можно загрузить с веб-сайта BLAST. Чтобы использовать эту базу данных, вам необходимо установить аргумент командной строки --blast_dir
.
Чтобы применить MetaPhase к test_case, выполните следующие команды:
Подготовьте проект сборки метагенома de novo для согласования с bwa. Обратите внимание, что bwa
должен быть в вашем $PATH
. cd <MetaPhase>/test_case/assembly
../../FastaSize assembly.fasta
bwa index -a bwtsw assembly.fasta
Совместите показания Hi-C с черновой сборкой. При этом используется align.sh
, уже предоставленный сценарий, который запускает bwa aln
и bwa sampe
и создает файл BAM, который будет использовать MetaPhase. Обратите внимание, что вы должны использовать bwa aln
и bwa sampe
, а не bwa mem
. cd <MetaPhase>/test_case/HiC
align.sh
Изучите файлы TSV, чтобы убедиться, что вы понимаете, что они делают. cd <MetaPhase>/tsvs
cat test_case.refs.tsv
cat test_case.HiC_libs.tsv
Теперь запустите тестовый пример MetaPhase с базовым набором аргументов командной строки. Назначение всех этих аргументов командной строки объясняется ниже, в разделе D «Запуск MetaPhase». cd <MetaPhase>
MetaPhase -s test_case -a test_case/assembly/assembly.fasta -i test_case/tsvs --refs_dir test_case/refs -o test_case/out -N 3 --isolated_component_size 2 --jarvis_patrick_K 2
Первое, что сделает MetaPhase, — это выровняет контиги черновой сборки с эталонным геномом LI.fasta. Это может занять несколько минут, но это разовое ожидание: результаты будут закэшированы в специальный файл. Затем MetaPhase сгруппирует 20 контигов черновой сборки по их связям Hi-C, создав 3 кластера (из-за -N 3
). Наконец, MetaPhase сообщит базовую статистику о созданных кластерах.
Теперь попробуйте снова запустить MetaPhase, добавив один или несколько следующих аргументов командной строки: --report_unclustered
, --output_cluster_fastas
, --output_heatmaps
, output_network_image
. Каждый из этих вариантов приведет к выводу большего количества информации в различных формах: либо на экран, либо в файлы, либо в изображения. Дополнительную информацию смотрите в разделе D2, «Необязательные аргументы командной строки».
Теперь посмотрите test_case/out/test_case
. Это выходной каталог, созданный при запуске MetaPhase. Он содержит несколько выходных файлов. Файлы cluster.*.fasta
— это фасты вашего кластера (они существуют только в том случае, если вы запустили его с параметром --output_cluster_fastas
). Подкаталог cached_data
содержит кэшированные файлы данных, которые включают в себя результаты запусков BLAST и кластеризации MetaPhase.
Обратите внимание, что test_case представляет собой очень небольшой набор данных, и его результаты не являются биологически полезными или типичными. Например, существует так мало пар чтения Hi-C, что 10 из 20 контигов полностью не связаны, а те, которые связаны, находятся в трех отдельных кластерах (поэтому невозможно создать менее 3 кластеров). Это не позволяет нам проиллюстрировать еще одну полезную информацию. Особенность MetaPhase заключается в том, что мы можем использовать ее для прогнозирования количества кластеров. В вашем образце (хотя, увы, не в test_case) вы можете запустить MetaPhase с -N 1
, и он сгенерирует кривую обогащения E(N) , как показано на рисунке S4 в статье MetaPhase. Это позволит вам определить приблизительное количество видов в вашей сборке метагенома и, следовательно, оптимальное количество кластеров.
MetaPhase напрямую использует следующие входные файлы. Для иллюстрации того, как выглядят все эти файлы, см. файл test_case.
Необходимые файлы:
Черновой вариант сборки метагенома в формате fasta.
Один или несколько файлов SAM/BAM, описывающих выравнивание чтений Hi-C с черновой сборкой метагенома. Обратите внимание, что в этих файлах SAM/BAM каждое чтение должно быть указано только один раз, что означает, что они должны быть созданы с помощью bwa aln и bwa sampe, а НЕ bwa mem.
Два файла TSV, <scenario>.HiC_libs.tsv
и <scenario>.refs.tsv
, которые описывают набор входных файлов BAM и набор эталонных геномов соответственно. Дополнительные файлы:
База данных BLAST, описывающая все известные последовательности нуклеотидов ( nt
) и/или белков ( nr
). Обновленную версию этой базы данных можно загрузить с веб-сайта BLAST, где также содержатся инструкции по установке необходимых вам утилит командной строки blastn
и tblastx
. Обратите внимание, что эти базы данных большие (по состоянию на 2015 год nt
составляет ~ 25 ГБ, а nr
— ~ 50 ГБ).
Набор эталонных геномов в формате fasta, описывающий виды, которые, по вашему мнению, присутствуют в вашей выборке или связаны с объектами в вашей выборке. Если вы не знаете всего в своем образце (а вы, вероятно, и не знаете), то вы можете подождать, пока вы уже не согласуете свою сборку метагенома с поиском BLAST, а затем принять предложения из этих результатов поиска. Чтобы найти эталонную сборку генома для вида, выполните поиск в базе данных сборок NCBI.
Файл SAM/BAM, описывающий выравнивание дробовика, считывает черновую сборку метагенома. Чтения дробовика — это те же чтения, которые использовались для создания сборки. MetaPhase может использовать этот файл для оценки численности в вашей выборке каждого контига и, следовательно, каждого кластера. В настоящее время недоступен без небольшого взлома MetaPhase.cc (извините).
Одним из наиболее важных вкладов в MetaPhase является проект сборки метагенома de novo . Вы должны создать эту сборку самостоятельно, используя считывание дробовика из вашего образца. Существует множество общедоступных инструментов сборки метагенома de novo , которые работают достаточно хорошо, включая Velvet, IDBA-UD, ABySS и SPAdes. Я использовал IDBA-UD при разработке MetaPhase.
Важно понимать, что MetaPhase не создает никакой новой последовательности; он кластеризует только последовательность, которая уже есть в сборке. Если какая-то последовательность из вашего образца не попадает в черновую сборку - потому что она слишком редкая, слишком GC-несбалансированная, слишком повторяющаяся или по какой-либо другой причине - то MetaPhase не сможет кластеризовать ее в геном. Возможно, стоит опробовать множество различных опций вашего ассемблера метагенома или множество различных инструментов сборки метагенома, чтобы получить сборку с наибольшим количеством последовательностей и самым длинным контигом N50.
MetaPhase работает намного лучше, когда его входные конфиги длиннее, потому что есть более четкий сигнал связи Hi-C, который он может использовать. В частности, MetaPhase не может кластеризовать контиг, который не содержит сайтов рестрикции , поскольку чтение Hi-C не может надежно совпадать с ним. Помните об этом факте, выбирая, какой фермент рестрикции использовать в своем эксперименте с Hi-C. Если ваша сборка метагенома имеет небольшой N50, вы можете использовать фермент рестрикции с 4 резцами вместо 6-резаков. (Например, если ваша сборка метагенома имеет N50 размером всего 4 КБ, то библиотека Hi-C, созданная с 6-резаком, который режет примерно каждые 4 КБ, будет совершенно неспособна кластеризовать 50% последовательности сборки.)
В дополнение к самой сборке метагенома MetaPhase вводит выравнивание чтений Hi-C в сборку метагенома. Этот файл должен быть в формате SAM или BAM и должен содержать каждый Hi-C, считываемый только один раз. Вы можете использовать любой выравниватель, создающий файлы SAM/BAM; Я использовал bwa при разработке MetaPhas; если вы используете bwa, обязательно используйте bwa aln и bwa sampe, а не bwa mem, который выводит каждое чтение несколько раз!)
Считывания Hi-C уникальны: они намеренно химерны, с химерным сайтом лигирования, последовательность которого известна по ферменту рестрикции (например, HindIII разрезает AAGCTT и производит AAGCTAGCTT при повторном лигировании). По этой причине простой подход к выравниванию будет пропустите много полезных сочетаний Hi-C. Возможно, вы захотите разработать собственный конвейер выравнивания, чтобы максимизировать доход; если да, взгляните на сценарий align.iter.interactive.sh
, который я использовал в своей собственной разработке и который может дать вам идеи для вашего собственного конвейера.
Предоставление эталонных геномов в MetaPhase совершенно необязательно, но очень полезно. MetaPhase может выровнять контиги черновой сборки, чтобы получить представление о том, к какому виду они могут принадлежать. Есть два способа сделать это: согласование с базой данных BLAST, содержащей все известные последовательности; и выравнивание по локальному файлу fasta, содержащему единственную сборку эталонного генома. Первый метод полезен для изучения вопроса о том, какие таксоны содержатся в вашей выборке; последний метод полезен для сосредоточения внимания на отдельных видах, которые, как вы знаете, присутствуют в вашей выборке (или связаны с объектами в вашей выборке), а также для создания тепловой карты и изображений кластерной сети (см. раздел E2, «Изображения»). Вы можете начать только с выравнивания BLAST, затем использовать полученные результаты, чтобы определить, с какими видами вы, скорее всего, столкнетесь, а затем загрузить эти ссылки и передать их в MetaPhase. Список сборок эталонного генома предоставляется MetaPhase в файле <scenario>.refs.tsv
.
MetaPhase выполнит все сопоставления как с базой данных BLAST, так и с эталонными геномами. MetaPhase может вызывать команды BLAST blastn
, tblastx
и makeblastdb
, все из которых являются частью пакета кода командной строки BLAST; убедитесь, что эти команды находятся в вашем $PATH
. Обратите внимание, что BLAST может использовать много времени выполнения, особенно если вы установите --use-tblastx
. Однако MetaPhase кэширует результаты запусков BLAST в <out_dir>/cached_data
, чтобы позже сохранить время выполнения.
MetaPhase требуется два входных файла TSV (значения, разделенные табуляцией): один для предоставления набора файлов выравнивания SAM/BAM, а другой для предоставления набора эталонных сборок генома. Эти файлы небольшие, и вам придется создавать их вручную, особенно потому, что позже может потребоваться их ручное изменение. Проще всего следовать примеру файлов TSV в test_case/tsvs
.
Чтобы получить краткую сводку всех аргументов командной строки MetaPhase, запустите MetaPhase -help
. Более подробное объяснение здесь.
-s
<string>
: имя сценария. Это используется MetaPhase для названия вашего прогона. Он используется как начало имени файлов tsv (см. -i
ниже), а также как имя выходного каталога (см. -o
ниже). Наконец, вы можете игнорировать это, но есть некоторые имена сценариев, в которых есть жестко заданные параметры командной строки, которые я использовал при разработке (например, почему -a
не указан как «обязательный» аргумент в MetaPhase -help
команда MetaPhase -help
.)
-a
<string>
: расположение черновика фаст-файла сборки метагенома de novo . Это должен быть абсолютный, а не относительный путь, т. е . он должен начинаться с /
.
-N
<integer>
: количество создаваемых кластеров. Если вы установите значение 1, MetaPhase сгруппирует все в один кластер и попутно рассчитает E(N), обогащение внутрикластерных связей, а затем напишет файл enrichment_curve.jpg
, который может дать вам оценку количества виды в вашем образце. Не устанавливайте значение 0 или число, превышающее количество контигов.
Некоторые из этих аргументов включают $HOME
в свои значения по умолчанию. Это относится к вашему домашнему каталогу UNIX (место, куда вы попадаете, когда вводите cd ~
или cd $HOME
.)
-i
<string>
: Входной каталог. Это каталог, содержащий файлы tsv: <scenario>.HiC_libs.tsv
и <scenario>.refs.tsv
. По умолчанию: ./input
.
-o
<string>
: Выходной корневой каталог. Выходные файлы этого запуска будут помещены в <out_dir>/<scenario>
. По умолчанию: $HOME/MP/out
.
--blast_dir
<string>
: каталог, содержащий базы данных BLAST ( nt.*
и nr.*
), которые MetaPhase использует для выравнивания. Вы можете скачать эти файлы с сайта BLAST. По умолчанию: $HOME/extern/blast
.
--refs_dir
<string>
: каталог, содержащий сборки эталонного генома, перечисленные в файле refs.tsv
. Выходные файлы этого запуска будут помещены в <out_dir>/<scenario>
. По умолчанию: $HOME/MP/refs
.
--use_tblastx
: переключить. Если этот параметр установлен, MetaPhase будет выполнять выравнивание BLAST, используя tblastx
вместо blastn
- который вместо выравнивания нуклеотидных последовательностей контигов по базе данных нуклеотидов транслирует нуклеотиды в аминокислоты и выравнивает их по базе данных белков. Поскольку белковые последовательности более консервативны, чем нуклеотидные последовательности, tblastx
обнаруживает более отдаленные филогенетические связи, т. е . на уровне семейства или рода, а не вида, что может вам желать, а может и не желать. tblastx
также намного медленнее, чем blastn
.
--force_blast_realign
: переключить. Если установлено, MetaPhase будет игнорировать и перезаписывать любые кэшированные файлы, описывающие выравнивания BLAST.
-b
: Переключить. Примените статистическую загрузку к матрице ссылок. Другими словами, как только матрица ссылок Hi-C создана (и до ее нормализации), выполните повторную выборку матрицы с заменой, создав новую матрицу с тем же общим количеством ссылок, но со случайным изменением точного размещения ссылок. Если вы хотите проверить надежность результата кластеризации, запустите MetaPhase с -b
несколько раз и сравните результаты, которые должны быть стохастически разными.
--isolated_component_size <integer>
: после создания графа связности контигов из матрицы ссылок отбросьте любой компонент в графе с меньшим количеством контигов, чем это. В большинстве наборов данных такие компоненты состоят из шума, который невозможно надежно отнести к какому-либо виду, и поскольку эти компоненты никогда не могут быть объединены с другими компонентами, они могут искажать кажущийся номер кластера. Однако, если ваши данные канала Hi-C скудны, вам может потребоваться уменьшить их, чтобы избежать мусора в реальных кластерах. По умолчанию: 100
.
--jarvis_patrick_K <integer>
: значение K, используемое на этапе предварительной кластеризации Джарвиса-Патрика. Более высокие значения увеличивают время выполнения, но могут повысить точность. Чтобы подробно понять это число, обратитесь к Джарвису и Патрику, «Кластеризация с использованием меры сходства на основе общих ближайших соседей», 1973. По умолчанию: 100
.
--min_cluster_norm <integer>
: минимальная норма допустимого кластера. «Норма» контига — это количество содержащихся в нем сайтов рестриктазы (RE), а норма кластера — это сумма норм его контигов. Этот параметр может иметь большое влияние на выходные данные: увеличение min_cluster_norm
увеличит минимально возможный размер кластера, потенциально уничтожая кластеры, представляющие мелкие виды; но это также предотвращает образование раздражающих маленьких мини-кластеров, содержащих лишь небольшое количество контигов (2-3), которые часто возникают из-за шума в данных и/или из-за повторяющихся контигов. Если вы получаете один огромный кластер с большинством ваших контигов, а все остальные кластеры крошечные, вам необходимо увеличить это значение. Имейте в виду, что норма кластера примерно равна его длине в п.н., деленной на частоту сайта RE, поэтому оптимальное количество может быть разным для разных типов RE. По умолчанию: 25
.
-merge
: переключить. Примените некоторые экспериментальные алгоритмы кластеризации для объединения нескольких независимых кластеров, возникающих из разных библиотек Hi-C. Не рекомендуется.
--load_cached_clusters
: переключить. Если установлено, вместо выполнения кластеризации MetaPhase будет искать кэшированный файл в <out_dir>/<scenario>.cached_data
, который содержит ранее вычисленные результаты кластеризации. Этот файл будет существовать, если MetaPhase ранее запускался в этом сценарии с тем же значением -N
что и сейчас, и без флага --dont_output_cache
. Это способ сэкономить время, если вы хотите проанализировать результаты кластеризации без повторного запуска кластеризации.
--dont_output_cache
: переключить. Не создавайте (или перезаписывайте) файл кэша кластера, который можно будет загрузить позже с помощью --load_cached_clusters
. Эта опция переопределяется --load_cached_clusters
.
--report_unclustered
: Переключить. Если установлено, MetaPhase создает окончательный отчет о контигах, которые он не кластеризовал: к каким видам они относятся, сколько из них не кластеризованы, поскольку они полностью не связаны между собой и т. д.
--output_cluster_fastas
: переключить. Если установлено, запишите файлы cluster.*.fasta
и unclustered.fasta
в <out_dir>/<scenario>/
. Это файлы fasta, показывающие, как MetaPhase кластеризовал контиги.
--output_network_image
: переключить. Если установлено, запустите сценарий Fig2a.R
и создайте образ сети кластера, подобный тому, который показан на рисунке 2A статьи MetaPhase.
--output_heatmaps
: переключить. Если установлено, запустите сценарий MakeClusteringResultHeatmap.R
и создайте изображения тепловой карты, подобные тем, которые показаны на рис. 2B и рис. S5 в документе MetaPhase.
--reorder_clusters_by_refs
: Переключить. Если установлено, кластеры переупорядочиваются так, чтобы максимизировать сигнал на диагоналях тепловых карт, созданных с помощью --output_heatmaps
. Обратите внимание, что это будет зависеть от того, какие эталонные геномы находятся в вашем файле refs.tsv
и в каком порядке они появляются в файле. Если вы хотите иметь согласованные номера кластеров, не устанавливайте это.
Самый основной вывод MetaPhase — на экран. MetaPhase будет предоставлять подробные отчеты о ходе выполнения предварительной обработки, выравнивания BLAST, кластеризации и посткластерного анализа. Предполагая, что сбой не произошел, MetaPhase создает красивую и удобную диаграмму результатов кластеризации. Столбцы на этой диаграмме:
Номер кластера
Количество контигов в этом кластере
Общая длина всех контигов в этом кластере
Численность: оценка численности ДНК (а не численности видов) этого кластера. Определяется как процент чтений дробовика, которые совпадают с контигами в этом кластере. Требуется файл SAM/BAM с множеством дробовиков, который в настоящее время требует взлома.
Ссылка на множественность: эталонная сборка генома (среди перечисленных в файле refs.tsv
), с которой совпадает множество последовательностей.
%eukaryotic, %rDNA, %tRNA, %mtDNA: предсказанные аннотации содержания последовательности в этом кластере. На основе сопоставления BLAST с базой данных BLAST.
Таксономия множественности: наиболее распространенные таксономические размещения содержимого последовательности в этом кластере. На основе сопоставления BLAST с базой данных BLAST.
Если вы установите --report_unclustered
, MetaPhase также создаст гораздо меньшую и более простую диаграмму, описывающую некластеризованные контиги.
Вы можете создавать красивые изображения, подобные тем, которые показаны на рисунках 2A и 2B в статье MetaPhase. Чтобы создать образ сети или тепловую карту, установите --output_network_image
или --output_heatmap
соответственно. Файлы создаются скриптами Fig2a.R
и MakeClusteringResultHeatmap.R
соответственно. Это довольно простые сценарии R, использующие ggplot2; если вы хотите настроить внешний вид изображений, просто настройте скрипты. Эти файлы по умолчанию создаются в $HOME/public_html
; вам может потребоваться создать этот каталог, чтобы файлы появились.
MetaPhase создаст следующие файлы в <out_dir>/<scenario>
:
assembly.blastn_report
: удобочитаемый файл, в котором удобно суммируются BLAST-выравнивания черновой сборки с базой данных nt.
result.human_readable.txt
: удобочитаемый файл, в котором перечислен каждый контиг в черновой сборке метагенома и указано, как он был кластеризован.
cluster.*.fasta
и unclustered.fasta
: файлы Fasta, содержащие контиги в каждом кластере. Создается только в том случае, если вы используете --output_cluster_fastas
.
Подкаталог cached_data
: содержит файлы кэша, описывающие выравнивание BLAST по ссылкам на геномы (MapToRefs.txt*); BLAST выравнивание по базе данных nt (сборка._blast ); и результаты кластеризации (кластеры ). Эти файлы могут быть не особенно удобочитаемы для человека.
Подкаталог LACHESIS
: Пустой, если вы не запустите Lachesis после запуска MetaPhase (см. следующий раздел).
Как показано в статье MetaPhase, можно запустить MetaPhase для создания отдельных кластеров для каждого вида, а затем запустить LACHESIS для создания каркасов контигов в этом кластере размером с хромосому, создавая таким образом высококачественную одновидовую сборку из ничего. но метагеномные данные. Однако есть несколько предостережений:
Вероятно, это сработает только для эукариот, поскольку метод LACHESIS на самом деле неприменим к геномам прокариот.
Вам нужно будет знать число хромосом вашего вида, потому что LACHESIS не может предсказать число хромосом так же точно, как MetaPhase может предсказать количество видов.
Вам придется заново согласовать свои чтения Hi-C с контигами в изучаемом вами кластере.
У видов дрожжей будьте осторожны, чтобы не сгруппировать все контиги, содержащие центромеры, в одну хромосому. Вам придется использовать опцию CLUSTER_CONTIGS_WITH_CENS
от LACHESIS.
Должен быть исполняемый файл с именем MetaPhase
. Введите MetaPhase
в командной строке. Если вы получаете сообщение об ошибке типа «команда не найдена», значит, вы либо находитесь не в правильном каталоге MetaPhase, либо не завершили компиляцию. Если MetaPhase готов к запуску, то при вводе MetaPhase
появится PARSE ERROR
, и MetaPhase опишет вам необходимые аргументы командной строки.
Если вы получаете следующую ошибку: MetaPhase: error while loading shared libraries: libboost_filesystem.so.1.47.0: cannot open shared object file: No such file or directory
, тогда вам необходимо добавить каталог, содержащий libboost_filesystem.so.1.47.0
, в ваша переменная среды $LD_LIBRARY_PATH
. Введите следующую команду: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<MetaPhase>/include/boost_1_47_0/stage/lib
Если MetaPhase дает сбой, первое, что вам следует сделать, это внимательно просмотреть его выходные данные. Это может дать подробное объяснение того, что пошло не так, и дать вам хорошее представление о том, как это исправить. Наиболее распространенной проблемой является то, что один из входных файлов либо не найден, либо содержит бессмысленные данные.
Вы также можете получить «ошибку утверждения», которая выглядит следующим образом: Assertion ... failed.
Это означает, что на каком-то этапе работы алгоритма MetaPhase столкнулся с чем-то особенным, чего не ожидал. Ошибка утверждения будет содержать ссылку на файл ( *.cc
или *.h
) и номер строки, в которой произошла ошибка. Попробуйте посмотреть эту строку в файле, которая должна содержать функцию assert()
. Вокруг этой строки должны быть комментарии, объясняющие, что может быть причиной ошибки утверждения.
В целом, мы приложили немало усилий, чтобы сделать MetaPhase хорошо продуманным и хорошо комментируемым фрагментом кода. Если вы знакомы с C++, вы сможете покопаться в исходном коде и получить представление о том, что происходит. Мы рекомендуем начать с модуля верхнего уровня MetaPhase.cc
и работать оттуда.
После того, как вы обеспечили правильную работу MetaPhase, внимательно посмотрите на выходные данные, особенно на диаграмму отчета. Если вы получаете странный результат — например, собирается очень небольшая последовательность или большая часть последовательности сгруппирована в один кластер (частая проблема) — вам может потребоваться настроить производительность MetaPhase. Внимательно ознакомьтесь с разделом D2 «Необязательные аргументы командной строки».
Программный пакет MetaPhase, а также все программное обеспечение и документация, входящие в его состав, защищены авторскими правами © 2013–2014 Джоша Бертона и Вашингтонского университета. Все права защищены.
Это программное обеспечение поставляется «как есть» без каких-либо гарантий или гарантий поддержки. Вашингтонский университет не несет ответственности за его использование, неправильное использование или функциональность. Ни при каких обстоятельствах авторы или правообладатели не несут ответственности за любые претензии, ущерб или другую ответственность, возникающую из или в связи с этим программным обеспечением.
Спасибо Ивану Лячко за реализацию проекта MetaPhase и за создание всех данных Hi-C, используемых программным обеспечением MetaPhase.
Спасибо Майтрее Данэму и Джею Шендуру за лидерство, управление и идеи.
Спасибо Кэтрин Бушли, Дэвиду Фредриксу, Стиву Салипанте, Лоре Сикуро и Эндрю Уайзеру за терпеливую помощь мне в тестировании и устранении неполадок MetaPhase.
Спасибо Аарону МакКенне за помощь в обеспечении доступа к MetaPhase через GitHub.
(от Эндрю) вы предоставляете пользователям новую ограниченную установку BOOST, которую они, возможно, не захотят взаимодействовать с остальной частью своей системы, добавив в свой LD_LIBRARY_PATH. Я предлагаю пользователю добавить каталог include/boost_1_47_0/stage/lib в свой LD_LIBRARY_PATH, если это возможно, но также предоставить сценарий-оболочку, который вместо этого будет устанавливать переменную среды во время выполнения. Программу Python, которая проверяет, указан ли правильный путь в пользовательском LD_LIBRARY_PATH, устанавливает его, если он не найден, а затем выполняет программу, было бы очень легко быстро приготовить.