基于 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
按照以下说明在 Mac 上安装 Python 和 Homebrew:http://docs.python-guide.org/en/latest/starting/install/osx/
对于Linux系统
http://docs.python-guide.org/en/latest/starting/install/linux/
在 Mac 上安装 MongoDB:
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
当您在站点上工作时,该本地服务器需要始终运行。如果您想要或设置某些启动服务,您可以在后台执行此操作;如果您不想保持活动终端窗口打开,则可以在屏幕会话中执行此操作。
最后,您可能希望将系统保留在 virtualenv 中,以安装:
对于苹果机:
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 标题行中所述的样本 ID,表型是您要定义为群体的疾病(或其他)状态,性别指定为 M 或 F。
populations.csv包含所有存在的“populations”。这些对应于不同的表型。例如结直肠癌人群,它必须具有以下列:
code phenotype
其中代码是将出现在sites.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
在此示例中,coverage_file_list 将包含 list.coverage.gz 的路径。如果将 GATK DepthOfCoverage 命令拆分为不同的样本集,则每个 tabixed 覆盖文件将位于不同的行。生成的 .cov 文件包含所有样本中每个位置的平均覆盖率。
bgzip -c coverage_file_list.cov > all_coverage.txt.gz
tabix -s 1 -b 2 -e 2 all_coverage.txt.gz
然后在 canvar.py 脚本中使用 all_coverage.txt.gz 作为覆盖文件。它还可以按染色体拆分并按照原始 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 web框架
Lookups.py 从 mongodb 中提取数据
调用manage.py将数据加载到mongodb中
将输入文件加载到 mongodb 时调用 Parsing.py。网站中显示的人群需要在此处重新定义。
utils.py 解析和检索数据时需要的附加模块
####加载数据
现在从平面文件加载数据库:这是一个命令,但可能需要一段时间(可以通过修改 exac.py 中的 LOAD_DB_PARALLEL_PROCESSES 来利用并行加载):
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 文件中包含的所有基因都将被预先缓存。您可以根据需要添加任意数量的成绩单 ID,最多可达数据库中的每个成绩单,以便完全缓存数据。
请注意,如果您在休息后重新访问该站点,请确保您的 virtualenv 已activate
。
您可以使用以下命令运行开发服务器:
python canvar.py
并在浏览器上访问:
http://localhost:5000
http://localhost:5000/gene/ENSG00000237683
http://localhost:5000/variant/20-76735-A-T
为了进行测试,您可以使用以下命令打开交互式 shell:
python manage.py shell