MetaGraph — это инструмент для масштабируемого построения аннотированных графов генома и выравнивания последовательностей к графам.
Представления индексов по умолчанию в MetaGraph чрезвычайно масштабируемы и поддерживают построение графов с триллионами узлов и миллионами меток аннотаций. В то же время предоставленные рабочие процессы и их тщательная реализация в сочетании с низкоуровневой оптимизацией основных структур данных обеспечивают исключительную производительность запросов и выравнивания.
Онлайн-документация доступна по адресу https://metagraph.ethz.ch/static/docs/index.html. Офлайн-источники здесь.
Установите последнюю версию Linux или Mac OS X с помощью Anaconda:
conda install -c bioconda -c conda-forge metagraph
Если в системе доступен докер, немедленно начните с
docker pull ghcr.io/ratschlab/metagraph:master
docker run -v ${HOME}:/mnt ghcr.io/ratschlab/metagraph:master
build -v -k 10 -o /mnt/transcripts_1000 /mnt/transcripts_1000.fa
и замените ${HOME}
каталогом в хост-системе, чтобы отобразить его в /mnt
в контейнере.
Чтобы запустить двоичный файл, скомпилированный для Protein
алфавита, просто добавьте --entrypoint metagraph_Protein
:
docker run -v ${HOME}:/mnt --entrypoint metagraph_Protein ghcr.io/ratschlab/metagraph:master
build -v -k 10 -o /mnt/graph /mnt/protein.fa
Как видите, запустить MetaGraph из докер-контейнеров очень просто. Кроме того, следующая команда (или подобная) может быть полезна для просмотра того, какой каталог смонтирован в контейнере, или для другого вида отладки команды:
docker run -v ${HOME}:/mnt --entrypoint ls ghcr.io/ratschlab/metagraph:master /mnt
Здесь перечислены все различные версии образа контейнера.
Чтобы скомпилировать из исходного кода (например, для сборок с пользовательским алфавитом или другими конфигурациями), см. онлайн-документацию.
./metagraph build
./metagraph annotate
./metagraph transform_anno
./metagraph query
DATA="../tests/data/transcripts_1000.fa"
./metagraph build -k 12 -o transcripts_1000 $DATA
./metagraph annotate -i transcripts_1000.dbg --anno-filename -o transcripts_1000 $DATA
./metagraph query -i transcripts_1000.dbg -a transcripts_1000.column.annodbg $DATA
./metagraph stats -a transcripts_1000.column.annodbg transcripts_1000.dbg
./metagraph
./metagraph build -v --parallel 30 -k 20 --mem-cap-gb 10
-o < GRAPH_DIR > /graph < DATA_DIR > / * .fasta.gz
2>&1 | tee < LOG_DIR > /log.txt
./metagraph build -v --parallel 30 -k 20 --mem-cap-gb 10 --disk-swap < GRAPH_DIR >
-o < GRAPH_DIR > /graph < DATA_DIR > / * .fasta.gz
2>&1 | tee < LOG_DIR > /log.txt
K=20
./KMC/kmc -ci5 -t4 -k $K -m5 -fm < FILE > .fasta.gz < FILE > .cutoff_5 ./KMC
./metagraph build -v -p 4 -k $K --mem-cap-gb 10 -o graph < FILE > .cutoff_5.kmc_pre
./metagraph annotate -v --anno-type row --fasta-anno
-i primates.dbg
-o primates
~ /fasta_zurich/refs_chimpanzee_primates.fa
./metagraph transform_anno -v --linkage --greedy
-o linkage.txt
--subsample R
-p NCORES
primates.column.annodbg
Требует N*R/8 + 6*N^2
байт ОЗУ, где N
— количество столбцов, а R
— количество субвыборок строк.
./metagraph transform_anno -v -p NCORES --anno-type brwt
--linkage-file linkage.txt
-o primates
--parallel-nodes V
-p NCORES
primates.column.annodbg
Требуется M*V/8 + Size(BRWT)
байт ОЗУ, где M
— количество строк в аннотации, а V
— количество узлов, объединенных одновременно.
./metagraph query -v -i < GRAPH_DIR > /graph.dbg
-a < GRAPH_DIR > /annotation.column.annodbg
--min-kmers-fraction-label 0.8 --labels-delimiter " , "
query_seq.fa
./metagraph align -v -i < GRAPH_DIR > /graph.dbg query_seq.fa
./metagraph assemble -v < GRAPH_DIR > /graph.dbg
-o assembled.fa
--unitigs
./metagraph assemble -v < GRAPH_DIR > /graph.dbg
--unitigs
-a < GRAPH_DIR > /annotation.column.annodbg
--diff-assembly-rules diff_assembly_rules.json
-o diff_assembled.fa
См. файлы примеров metagraph/tests/data/example.diff.json
и metagraph/tests/data/example_simple.diff.json
.
Статистика для графика
./metagraph stats graph.dbg
Статистика для аннотации
./metagraph stats -a annotation.column.annodbg
Статистика для обоих
./metagraph stats -a annotation.column.annodbg graph.dbg
Makefile
в исходном каталоге верхнего уровня можно использовать для более удобного создания и тестирования metagraph
. Поддерживаются следующие аргументы:
env
: среда для компиляции/запуска ( ""
: на хосте, docker
: в контейнере докеров)alphabet
: скомпилировать метаграф для определенного алфавита (например, DNA
или Protein
, DNA
по умолчанию)additional_cmake_args
: дополнительные аргументы для передачи в cmake.Примеры:
# compiles metagraph in a docker container for the `DNA` alphabet
make build-metagraph env=docker alphabet=DNA
Создание релиза новой версии осуществляется в три этапа:
Metagraph распространяется по лицензии GPLv3 (см. ЛИЦЕНЗИЮ). Дополнительную информацию можно найти в файлах АВТОРЫ и АВТОРСКИЕ ПРАВА.