Какой-то скрипт для загрузки геномов бактерий и грибов из NCBI после того, как они некоторое время назад реструктурировали свой FTP.
Идея бессовестно украдена из скриптов загрузчика Kraken Мика Уотсона, которые также можно найти в репозитории Мика на GitHub. Однако сценарии Мика написаны на Perl специально для создания базы данных Kraken (как заявлено).
Итак, это набор скриптов, ориентированных на фактическую загрузку генома.
pip install ncbi-genome-download
Альтернативно, клонируйте этот репозиторий из GitHub, а затем запустите (в виртуальной среде Python)
установка пипа.
Если это не помогло в более старых версиях Python, попробуйте сначала обновить свой инструмент pip
:
pip install --upgrade pip
а затем повторно запустите установку ncbi-genome-download
.
Альтернативно, ncbi-genome-download
упакован в conda
. Обратитесь к сайту Anaconda/miniconda для установки дистрибутива (настоятельно рекомендуется). С его помощью можно:
conda install -c bioconda ncbi-genome-download
ncbi-genome-download
разрабатывается и тестируется только на версиях Python, которые все еще находятся под активной поддержкой проекта Python. На данный момент это означает версии 3.7, 3.8, 3.9, 3.10 и 3.11. В частности, не предпринимается никаких попыток тестирования на версиях Python старше 3.7.
Если ваша система использует более старую версию Python, рассмотрите возможность использования такого инструмента, как Homebrew, чтобы получить более актуальную версию.
ncbi-genome-download
0.2.12 была последней версией, поддерживающей Python 2.
Чтобы загрузить все бактериальные геномы RefSeq в формате GenBank из NCBI, выполните следующую команду:
бактерии ncbi-genome-download
Также возможна загрузка нескольких групп:
ncbi-genome-скачать бактерии,вирусы
Примечание . Чтобы просмотреть все доступные группы, см. ncbi-genome-download --help
или просто используйте all
чтобы проверить все группы. Присвоение более конкретного названия группе уменьшит размер загрузки и время, необходимое для поиска последовательностей для загрузки.
Если у вас достаточно быстрое соединение, вы можете попробовать запустить несколько загрузок параллельно:
ncbi-genome-download бактерии --параллель 4
Чтобы загрузить все геномы GenBank грибов из NCBI в формате GenBank, запустите:
ncbi-genome-download --section генбанк грибов
Чтобы загрузить все вирусные геномы RefSeq в формате FASTA, запустите:
ncbi-genome-download --formats быстро вирусный
Можно загрузить несколько форматов, предоставив список форматов или просто загрузив все форматы:
ncbi-genome-download --formats fasta,assembly-report вирусный ncbi-genome-download --форматирует все вирусные
Чтобы загрузить только полные бактериальные геномы RefSeq в формате GenBank, запустите:
ncbi-genome-download — уровни сборки полных бактерий
Можно загрузить несколько уровней сборки одновременно, предоставив список:
ncbi-genome-download --уровни сборки завершены, хромосомные бактерии
Чтобы загрузить только эталонные геномы бактерий из RefSeq в формате GenBank, запустите:
ncbi-genome-download --refseq-categories эталонные бактерии
Чтобы загрузить бактериальные геномы RefSeq рода Streptomyces , запустите:
ncbi-genome-download --genera бактерии Streptomyces
Примечание . Это простое строковое совпадение имени организма, предоставленного только NCBI.
Вы также можете использовать это с небольшой хитростью для загрузки геномов определенного вида:
ncbi-genome-download --genera бактерии Streptomyces coelicolor
Примечание : кавычки важны. Опять же, это простое совпадение строки с названием организма, предоставленным NCBI.
Также возможно несколько родов:
ncbi-genome-download --genera Бактерии Streptomyces coelicolor, Escherichia coli
Вы также можете поместить названия родов в файл, по одному организму в строке, например:
Стрептомицеты Амиколатопсис
Затем передайте путь к этому файлу (например, my_genera.txt
) в параметр --genera
, например:
ncbi-genome-download --genera my_genera.txt бактерии
Примечание . Приведенная выше команда загрузит все геномы Streptomyces и Amycolatopsis из RefSeq.
Вы можете сделать соответствие строки нечетким, используя опцию --fuzzy-genus
. Это может быть удобно, если вам нужно сопоставить значение в середине имени организма NCBI, например:
ncbi-genome-download --genera coelicolor --fuzzy-genus бактерии
Примечание . Приведенная выше команда загрузит все бактериальные геномы, содержащие слово «coelicolor» в любом месте названия их организма, из RefSeq.
Чтобы загрузить бактериальные геномы RefSeq на основе идентификатора таксономии видов NCBI, запустите:
ncbi-genome-download --species-taxids 562 бактерии
Примечание . Приведенная выше команда загрузит все геномы RefSeq, принадлежащие Escherichia coli .
Чтобы загрузить определенные бактериальные геномы RefSeq на основе их идентификатора таксономии NCBI, запустите:
ncbi-genome-download --taxids 511145 бактерий
Примечание . Приведенная выше команда загрузит геном RefSeq, принадлежащий Escherichia coli str. К-12 подстр. МГ1655 .
Также можно загрузить несколько видов таксидов или таксидов, указав числа в списке, разделенном запятыми:
ncbi-genome-download --taxids 9606,9685 --хромосома уровня сборки позвоночных_млекопитающих
Примечание . Приведенная выше команда загрузит эталонные геномы кошки и человека.
Кроме того, вы можете поместить в файл несколько видов таксидов или таксидов, по одному в каждой строке, и передать это имя файла в параметры --species-taxids
или --taxids
соответственно.
Предположим, у вас есть файл my_taxids.txt
со следующим содержимым:
9606
9685
Вы можете скачать эталонные геномы кошки и человека следующим образом:
ncbi-genome-download --taxids my_taxids.txt --хромосома уровня сборки позвоночных_млекопитающих
Также возможно создать удобочитаемую структуру каталогов параллельно с зеркальным отображением макета, используемого NCBI:
ncbi-genome-download --бактерии, читаемые человеком
При этом будут использоваться ссылки для указания на соответствующие файлы в структуре каталогов NCBI, что позволяет экономить файловое пространство. Обратите внимание, что ссылки не поддерживаются в некоторых файловых системах Windows и некоторых более старых версиях Windows.
Также возможно повторно запустить предыдущую загрузку с помощью опции --human-readable
. В этом случае ncbi-genome-download
не будет загружать новые файлы генома, а просто создаст удобочитаемую структуру каталогов. Обратите внимание: если какие-либо файлы были изменены на стороне NCBI, будет запущена загрузка файла.
Существует опция «пробного запуска», позволяющая показать, какие образцы будут загружены с учетом ваших фильтров:
ncbi-genome-download --пробный запуск бактерий
Если вы хотите отфильтровать столбец «Отношение к типу материала» файла сводки сборки, вы можете использовать опцию --type-materials
. Возможные значения: «любой», «все», «тип», «ссылка», «синоним», «прокситип» и/или «неотип». «Любой» будет включать сборки, не имеющие отношения к определенному значению типа материала, «Все» будут загружать только сборки с определенным значением. Можно указать несколько значений, разделенных запятой:
ncbi-genome-download --type-materials тип,ссылка
По умолчанию ncbi-genome-download кэширует файлы сводки сборок для соответствующих таксономических групп на один день. Вы можете пропустить использование файла кэша, используя опцию --no-cache
. Вывод --help
также показывает каталог кэша, если вы захотите удалить какой-либо из кэшированных файлов.
Чтобы получить обзор всех опций, запустите
ncbi-genome-download --help
Вы также можете использовать его как вызов метода:
импортируйте ncbi_genome_download как ngdngd.download()
Передайте питонизированные аргументы ключевого слова, как описано выше или в --help
. Чтобы указать таксономические группы, например бактерии , используйте ключевое слово groups
. Чтобы указать форматы файлов, например, для параметра CLI --format
, используйте file_formats
. Все остальные ключевые слова должны соответствовать параметрам CLI, с преобразованием -
в _
. Обратите внимание: поскольку вызов метода следует той же логике, что и CLI, данные списков по-прежнему должны передаваться в виде строк, разделенных запятой, но без пробелов, как в командной строке.
gimme_taxa.py
Этот скрипт позволяет вам узнать, какие TaxID следует передать в ngd
, и напишет простой файл с одним элементом в строке для передачи ему. Он использует набор инструментов ete3
, поэтому обратитесь к их сайту, чтобы установить зависимость, если она еще не удовлетворена.
Вы можете запросить базу данных, используя определенный TaxID или научное название. Основная функция скрипта — вернуть все дочерние таксоны указанного родительского таксона. Скрипт имеет различные варианты того, какая информация записывается на выходе.
Базовый вызов может выглядеть так:
# Получить все таксоны-потомки Escherichia (taxid 561):python gimme_taxa.py -o ~/mytaxafile.txt 561# В качестве альтернативы просто укажите имя таксонаpython gimme_taxa.py -o all_descendent_taxids.txt Escherichia# Вы можете указать несколько таксонов и/или именаpython gimme_taxa.py -o all_descendent_taxids.txt 561,Methanobrevibacter
При первом использовании небольшая база данных sqlite по умолчанию будет создана в вашем домашнем каталоге (измените местоположение с помощью флага --database
). Вы можете обновить эту базу данных, используя флаг --update
. Обратите внимание: если база данных находится не в вашем домашнем каталоге, вы должны указать ее с помощью --database
, иначе в вашем домашнем каталоге будет создана новая база данных.
Чтобы просмотреть всю справку:
python gimme_taxa.py python gimme_taxa.py -h python gimme_taxa.py --help
Чтобы использовать скрипт gimme_taxa.py
с опцией --taxids
ncbi-genome-download
, вам нужно вызвать gimme_taxa.py
с опцией -j
, например:
gimme_taxa.py -j -o my_taxids.txt Эшерихия ncbi-genome-download --taxids my_taxids.txt бактерии
ncbi-genome-download
Вы можете указать ncbi-genome-download
через депозит Zenodo под DOI: 10.5281/zenodo.8192432 или конкретный DOI для используемой вами версии.
Весь код доступен по лицензии Apache версии 2, подробности см. в файле LICENSE
.