基於 ExAC 的框架提供研究特定的變異頻率。依賴關係和安裝說明與 ExAC 幾乎相同,如 https://github.com/konradjk/exac_browser/blob/master/README.md 中所述
建立一個目錄來放置所有這些內容。
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