spfy : Платформа для прогнозирования подтипов на основе полногеномных последовательностей E.coli и построения графических данных для сравнительного анализа в масштабах всей популяции.
Опубликовано как: Le, KK, Whiteside, MD, Hopkins, JE, Gannon, VPJ, Laing, CR spfy : интегрированная графовая база данных для прогнозирования бактериальных фенотипов в реальном времени и последующего сравнительного анализа. База данных (2018) Том. 2018: идентификатор статьи bay086; doi: 10.1093/база данных/bay086
Прямой эфир: https://lfz.corefacility.ca/superphy/spfy/
git clone --recursive https://github.com/superphy/spfy.git
cd spfy /
docker-compose up
ECTyper:
Панпредик:
Образ Docker для Conda:
Сравнение различных групп населения:
Время выполнения модулей подтипирования:
cd app/
python -m modules/savvy -i tests/ecoli/GCA_001894495.1_ASM189449v1_genomic.fna
, где аргумент после -i
— это файл вашего генома (FASTA). Онтология для spfy доступна по адресу: https://raw.githubusercontent.com/superphy/backend/master/app/scripts/spfy_ontology.ttl. Она была создана с использованием https://raw.githubusercontent.com/superphy/backend/master. /app/scripts/generate_ontology.py с общими функциями из внутреннего кода spfy . Если вы хотите запустить его, выполните: 1. cd app/
2. python -m scripts/generate_ontology
который поместит онтологию в app/
Вы можете создать красивую диаграмму из файла .ttl, используя http://www.visualdataweb.de/webvowl/.
Примечание
в настоящее время настроен только для файлов .fna
Вы можете обойти интерфейсный веб-сайт и по-прежнему ставить в очередь задания по подтипированию:
/datastore
в контейнерах.Например, если вы храните свои файлы в
/home/bob/ecoli-genomes/
, вам следует отредактировать файлdocker-compose.yml
и заменить его:volumes : - /datastoreс:
volumes : - /home/bob/ecoli-genomes:/datastore
docker-compose down docker-compose up -d
docker exec -it backend_webserver_1 sh python -m scripts/sideload exit
Обратите внимание, что в папке вашего генома могут создаваться повторные версии.
Dock-изображение | Порт с | Имя с | Описание |
---|---|---|---|
задняя часть - rq | 80/тцп, 443/тцп | back end_wor ker_1 | основные работники очереди Redis |
задняя часть - rq-b laze Graph h | 80/тцп, 443/тцп | back end_wor ker- blaz egra ph-i ds_ 1 | это соотношение генов les spfy ID для базы данных blaz egra ph |
задняя часть | 0,0. 0.0: 8000 -> 80/tcp, 443/tcp | back end_web -ngi nx-u wsgi _1 | серверная часть колбы, которая обрабатывает задачи очередей |
супер rphy/bla zegr aph: 2.1. 4 дюйма | 0,0. 0,0: 8080 ->80 80/t cp | back end_bla zegr aph_1 | База данных Blaz egra ph |
реди с:3. 2 | 6379 /TCP | задний конец_красный is_ 1 | База данных Redi |
Реакционный тапп | 0,0. 0,0: 8090 ->50 00/t cp | back end_rea ctap p_1 | от t-en d до spfy |
Образ superphy/backend-rq:2.0.0
является масштабируемым : вы можете создать столько экземпляров, сколько вам нужно/имеете вычислительную мощность. Образ отвечает за прослушивание очереди multiples
(12 рабочих процессов), которая обрабатывает большинство задач, включая вызовы RGI
. Он также прослушивает очередь singles
(1 рабочий), в которой выполняется ECTyper
. Это сделано потому, что RGI
— самая медленная часть уравнения. Управление работниками осуществляется supervisor
.
Образ superphy/backend-rq-blazegraph:2.0.0
не масштабируется: он отвечает за запрос к базе данных Blazegraph на наличие повторяющихся записей и за присвоение идентификаторов spfy в последовательном порядке. Его функции сведены к минимуму для повышения производительности (поскольку генерация идентификаторов является единственным узким местом в параллельных конвейерах); Сравнения выполняются с помощью хэшей sha1 отправленных файлов, а идентификаторы недубликатов зарезервированы путем связывания сгенерированного идентификатора spfy с хэшем файла. Управление работниками осуществляется supervisor
.
superphy/backend:2.0.0
, который запускает конечные точки Flask, использует supervisor
для управления внутренними процессами: nginx
, uWsgi
.
database['blazegraph_url']
в /app/config.py
Шаги, необходимые для добавления новых модулей, описаны в Руководстве разработчика.