Структура, основанная на ExAC, обеспечивает частоту конкретных вариантов исследования. Зависимости и инструкции по установке практически идентичны ExAC, как описано в https://github.com/konradjk/exac_browser/blob/master/README.md.
Создайте каталог для размещения всего этого. Он будет служить родительским каталогом фактического репозитория canvar_browser.
mkdir canvar
cd canvar
Сначала (поскольку это может выполняться параллельно) получите наборы данных, которые использует браузер, и поместите их в каталог exac_data. Все необходимые файлы можно найти по адресу:
wget https://personal.broadinstitute.org/konradk/exac_browser/omim_info.txt.gz
wget https://personal.broadinstitute.org/konradk/exac_browser/canonical_transcripts.txt.gz
wget https://personal.broadinstitute.org/konradk/exac_browser/dbNSFP2.6_gene.gz
wget https://personal.broadinstitute.org/konradk/exac_browser/gencode.gtf.gz
wget https://personal.broadinstitute.org/konradk/exac_browser/omim_info.txt.gz
Для файла dbsnp:
wget http://hgdownload.soe.ucsc.edu/goldenPath/hg19/database/snp141.txt.gz
gzcat snp141.txt.gz | cut -f 1-5 | bgzip -c > snp141.txt.bgz
tabix -0 -s 2 -b 3 -e 4 snp141.txt.bgz
zcat b142_SNPChrPosOnRef_105.bcp.gz | awk '$3 != ""' | perl -pi -e 's/ +/t/g' | sort -k2,2 -k3,3n | bgzip -c > dbsnp142.txt.bgz
tabix -s 2 -b 3 -e 3 dbsnp142.txt.bgz
Теперь клонируйте репо:
git clone https://github.com/danchubb/CanVar.git
Вам необходимо установить Python и pip.
Следуйте этим инструкциям, чтобы установить Python и Homebrew на ваш Mac: http://docs.python-guide.org/en/latest/starting/install/osx/
Для Linux-систем
http://docs.python-guide.org/en/latest/starting/install/linux/
Установите MongoDB на Mac:
brew install mongodb
# or
sudo port install mongodb
Альтернативно, если вы используете систему Linux:
https://docs.mongodb.com/v3.0/tutorial/install-mongodb-on-linux/
Создайте каталог для хранения файлов базы данных mongo:
mkdir database
В отдельной вкладке запустите сервер базы данных mongo:
mongod --dbpath database
Этот локальный сервер должен работать постоянно, пока вы работаете на сайте. Вы можете сделать это в фоновом режиме, если хотите или настроить какую-либо службу запуска, или в сеансе экрана, если вы не хотите оставлять активное окно терминала открытым.
Наконец, вы можете сохранить систему в виртуальной среде, чтобы установить:
Для Мака:
sudo port install py27-virtualenv # Or whatever version
Для Linux:
sudo apt-get install virtualenv
or sudo pip install virtualenv
Затем вы можете создать виртуальную среду Python, в которой будет жить браузер:
mkdir canvar_env
virtualenv canvar_env
source canvar_env/bin/activate
Установите требования Python:
pip install -r requirements.txt
Некоторым пакетам потребуются заголовки Python (python-dev в некоторых системах).
Представленный здесь код в основном используется для создания файла VCF сайта и файла покрытия, требуемого платформой. Другие сценарии были изменены, чтобы удалить жестко закодированные ссылки на ExAC и содержащиеся в нем группы населения, заменив их произвольными группами, такими как болезненное состояние.
####Создание сайтов в формате vcf и файлов покрытия
VCF -> сайты vcf:
python vcf_to_site_canvar.py --infile /path/to/file.vcf --phenotypes /path/to/phenotypes.csv --pops populations.csv
Phenotype.csv содержит данные фенотипа для каждого образца в файле vcf, он должен иметь столбцы:
sample phenotype sex
где образец — это идентификатор образца, указанный в строке заголовка VCF, фенотип — это заболевание (или другое) состояние, которое вы хотите определить как популяцию, а пол указывается как M или F.
Populations.csv содержит все присутствующие «популяции». Они соответствуют различным фенотипам. например, популяция колоректального рака, она должна иметь столбцы:
code phenotype
где код — это сокращенная форма фенотипа, который будет отображаться на сайте site.vcf, например, CRC Colorectal.
Чтобы создать файл покрытия
java -jar GenomeAnalysisTK.jar -T DepthOfCoverage -R human_g1k_v37.fasta -I bams.list -L capture.bed --omitIntervalStatistics --omitLocusTable --omitPerSampleStats -nt n -o list.coverage
bams.list содержит пути ко всем файлам BAM, для которых вы хотите рассчитать покрытие.
perl prepare_coverage_for_tabix.pl list.coverage | bgzip -c > list.coverage.gz
tabix -s 1 -b 2 -e 2 list.coverage.gz
python average_coverage_calculate.py coverage_file_list capture.bed
в этом примере Cover_file_list будет содержать путь к list.coverage.gz. Если вы разделите команду GATK DepthOfCoverage на разные наборы выборок, тогда каждый файл покрытия с табиксом будет располагаться на отдельной строке. Файл .cov создается со средним покрытием для каждой позиции во всех выборках.
bgzip -c coverage_file_list.cov > all_coverage.txt.gz
tabix -s 1 -b 2 -e 2 all_coverage.txt.gz
all_coverage.txt.gz затем используется в сценарии canvar.py в качестве файла покрытия. Его также можно разделить по хромосомам и добавить в соответствии с исходным кодом exac.py.
####Адаптированные файлы exac
Остальные оставшиеся файлы и каталоги почти идентичны тем, которые доступны по адресу: https://github.com/konradjk/exac_browser/blob/master/README.md.
/static содержит файлы .js, css, изображения и шрифты, необходимые для веб-сайта. Модуль .js widget-columnSelector.js добавлен для включения инструмента выбора столбца на странице результатов гена.
/templates содержит шаблоны HTML для различных веб-страниц.
canvar.py большую часть важного кода. Вызывает другие функции Python, импортирует данные и должен быть запущен для запуска веб-фреймворка flask.
Lookups.py извлекает данные из mongodb
Manage.py вызывается для загрузки данных в mongodb
Parsing.py вызывается при загрузке входных файлов в mongodb. Здесь необходимо заново определить группы населения, которые будут отображаться на веб-сайте.
utils.py дополнительные модули, необходимые при анализе и извлечении данных
####Загрузка данных
Теперь база данных загружается из плоских файлов: это одна команда, но она может занять некоторое время (можно воспользоваться преимуществами параллельной загрузки, изменив LOAD_DB_PARALLEL_PROCESSES в exac.py):
python manage.py load_db
Вам не придется выполнять это часто — большинство изменений не потребуют перестройки базы данных. Тем не менее, он является (и останется) идемпотентным, поэтому вы можете запустить его снова в любое время, если посчитаете, что что-то не так, — он перезагрузит базу данных с нуля. Вы также можете перезагрузить части базы данных, используя любую из следующих команд:
python manage.py load_variants_file
python manage.py load_dbsnp_file
python manage.py load_base_coverage
python manage.py load_gene_models
Затем запустите:
python manage.py precalculate_metrics
Затем вам необходимо создать кеш для автозаполнения и больших генов:
python manage.py create_cache
Все гены, содержащиеся в файле Genes_to_cache.txt, будут предварительно кэшированы. Вы можете добавить столько идентификаторов транскриптов, сколько захотите, вплоть до каждого транскрипта в базе данных, чтобы полностью кэшировать данные.
Обратите внимание: если вы повторно посещаете сайт после перерыва, убедитесь, что ваша виртуальная среда activate
.
Вы можете запустить сервер разработки с помощью:
python canvar.py
И посетите в своем браузере:
http://localhost:5000
http://localhost:5000/gene/ENSG00000237683
http://localhost:5000/variant/20-76735-A-T
Для тестирования вы можете открыть интерактивную оболочку с помощью:
python manage.py shell