研究固有のバリアント頻度を提供する ExAC に基づくフレームワーク。依存関係とインストール手順は、https://github.com/konradjk/exac_browser/blob/master/README.md で説明されている ExAC とほぼ同じです。
これらすべてを入れるディレクトリを作成します。これは、実際の 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/
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 に保持することもできます。
Macの場合:
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
ここで、sample は VCF のヘッダー行に記載されているサンプル ID、表現型は集団として定義したい疾患 (またはその他) の状態、性別は M または F として指定されます。
Populations.csv には、存在するすべての「人口」が含まれています。これらはさまざまな表現型に対応します。たとえば、結腸直腸がんの集団には次の列が必要です。
code phenotype
ここで、code は 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 コマンドを異なるサンプル セットに分割すると、各 tabix カバレッジ ファイルは異なる行に配置されます。すべてのサンプルにわたる各位置の平均カバレッジを含む .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 には、Web サイトに必要な .js ファイル、css ファイル、画像、フォントが含まれています。 .js モジュール widget-columnSelector.js が追加され、遺伝子結果ページで列選択ツールが有効になります。
/templates には、さまざまな Web ページの HTML テンプレートが含まれています。
canvar.py 重要なコードの大部分。他の Python 関数を呼び出し、データをインポートし、Flask Web フレームワークを開始するために実行する必要があります
lookups.py は mongodb からデータを取得します
データを mongodb にロードするために manage.py が呼び出される
Parsing.py は、入力ファイルを mongodb にロードするときに呼び出されます。 Web サイトに表示される母集団は、ここで再定義する必要があります。
データの解析と取得時に必要な utils.py 追加モジュール
####データのロード
これで、データベースがフラット ファイルからロードされます。これは 1 つのコマンドですが、時間がかかる場合があります (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
テストのために、次のコマンドを使用して対話型シェルを開くことができます。
python manage.py shell