Kerangka kerja berdasarkan ExAC untuk menyediakan studi frekuensi varian tertentu. Ketergantungan dan petunjuk instalasi hampir identik dengan ExAC seperti yang dijelaskan di https://github.com/konradjk/exac_browser/blob/master/README.md
Buat direktori untuk menyimpan semua hal ini. Ini akan berfungsi sebagai direktori induk dari repositori canvar_browser yang sebenarnya
mkdir canvar
cd canvar
Pertama (karena ini dapat berjalan secara paralel), ambil kumpulan data yang digunakan browser dan masukkan ke dalam direktori 'exac_data'. Semua file yang diperlukan dapat ditemukan di:
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
Untuk file 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
Sekarang kloning repo:
git clone https://github.com/danchubb/CanVar.git
Anda perlu menginstal Python dan pip
Ikuti petunjuk berikut untuk menginstal Python dan Homebrew di Mac Anda: http://docs.python-guide.org/en/latest/starting/install/osx/
Untuk sistem linux
http://docs.python-guide.org/en/latest/starting/install/linux/
Instal MongoDB di Mac:
brew install mongodb
# or
sudo port install mongodb
Alternatifnya, jika Anda menggunakan sistem linux:
https://docs.mongodb.com/v3.0/tutorial/install-mongodb-on-linux/
Buat direktori untuk menyimpan file database mongo Anda:
mkdir database
Di tab terpisah, mulai server database mongo:
mongod --dbpath database
Server lokal ini harus berjalan setiap saat saat Anda bekerja di situs. Anda dapat melakukan ini di latar belakang jika Anda ingin atau mengatur beberapa layanan startup, atau dalam sesi layar jika Anda tidak ingin jendela terminal aktif tetap terbuka.
Terakhir, Anda mungkin ingin menyimpan sistem dalam virtualenv, untuk menginstal:
Untuk Mac:
sudo port install py27-virtualenv # Or whatever version
Untuk linux:
sudo apt-get install virtualenv
or sudo pip install virtualenv
Anda kemudian dapat membuat lingkungan virtual python tempat browser akan hidup:
mkdir canvar_env
virtualenv canvar_env
source canvar_env/bin/activate
Instal persyaratan python:
pip install -r requirements.txt
Beberapa paket memerlukan header Python (python-dev pada beberapa sistem).
Kode yang disediakan di sini terutama digunakan untuk menghasilkan file VCF situs dan file cakupan yang diperlukan oleh kerangka kerja. Skrip lain telah dimodifikasi untuk menghapus referensi hardcode ke ExAC dan populasi yang ada di dalamnya, menggantikannya dengan kelompok sewenang-wenang seperti keadaan penyakit.
####Membuat situs vcf dan file cakupan
VCF -> situs vcf:
python vcf_to_site_canvar.py --infile /path/to/file.vcf --phenotypes /path/to/phenotypes.csv --pops populations.csv
phenotype.csv berisi data fenotipe untuk setiap sampel dalam file vcf, harus memiliki kolom:
sample phenotype sex
dimana sampel adalah ID sampel seperti yang dinyatakan dalam baris header VCF, fenotipe adalah keadaan penyakit (atau lainnya) yang ingin Anda definisikan sebagai populasi dan jenis kelamin ditentukan sebagai M atau F.
populations.csv berisi semua "populasi" yang ada. Ini sesuai dengan fenotipe yang berbeda. misal populasi kanker kolorektal, harus terdapat kolom:
code phenotype
dimana kode merupakan bentuk singkatan dari fenotip yang akan muncul pada situs.vcf misal CRC Colorectal
Untuk menghasilkan file cakupan
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 berisi jalur ke semua file BAM yang ingin Anda hitung cakupannya.
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
dalam contoh ini coverage_file_list akan berisi jalur ke list.coverage.gz. Jika Anda membagi perintah GATK DepthOfCoverage ke dalam kumpulan sampel yang berbeda, maka setiap file cakupan yang diberi tab berada pada baris yang berbeda. File .cov dihasilkan dengan cakupan rata-rata untuk setiap posisi di semua sampel.
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 kemudian digunakan dalam skrip canvar.py sebagai file cakupan. Itu juga dapat dipecah berdasarkan kromosom dan ditambahkan sesuai kode exac.py asli.
####File exac yang diadaptasi
File dan direktori lain yang tersisa hampir sama dengan yang tersedia dari: https://github.com/konradjk/exac_browser/blob/master/README.md
/static berisi file .js, file css, gambar dan font yang diperlukan untuk situs web. Modul .js widget-columnSelector.js ditambahkan untuk mengaktifkan alat pemilihan kolom pada halaman hasil gen.
/templates berisi templat HTML untuk berbagai halaman web.
canvar.py sebagian besar kode penting. Memanggil fungsi python lainnya, mengimpor data dan perlu dijalankan untuk memulai kerangka web flask
lookups.py mengambil data dari mongodb
Manage.py dipanggil untuk memuat data ke mongodb
Parsing.py dipanggil saat memuat file input ke mongodb. Populasi yang akan ditampilkan di situs web perlu didefinisikan ulang di sini.
modul tambahan utils.py diperlukan saat menguraikan dan mengambil data
####Memuat data
Sekarang database dimuat dari file datar: Ini adalah perintah tunggal, tetapi dapat memakan waktu cukup lama (dapat memanfaatkan pemuatan paralel dengan memodifikasi LOAD_DB_PARALLEL_PROCESSES di exac.py):
python manage.py load_db
Anda tidak perlu sering menjalankan ini - sebagian besar perubahan tidak memerlukan pembangunan kembali database. Meskipun demikian, ini (dan akan tetap) idempoten, jadi Anda dapat menjalankannya lagi kapan saja jika menurut Anda ada sesuatu yang salah - ini akan memuat ulang database dari awal. Anda juga dapat memuat ulang bagian database menggunakan salah satu perintah berikut:
python manage.py load_variants_file
python manage.py load_dbsnp_file
python manage.py load_base_coverage
python manage.py load_gene_models
Kemudian jalankan:
python manage.py precalculate_metrics
Kemudian, Anda perlu membuat cache untuk pelengkapan otomatis dan keperluan gen besar:
python manage.py create_cache
Semua gen yang terdapat dalam file gen_to_cache.txt akan di-cache sebelumnya. Anda dapat menambahkan ID Transkrip sebanyak yang Anda inginkan, hingga setiap transkrip dalam database untuk menyimpan data dalam cache sepenuhnya.
Perhatikan bahwa jika Anda mengunjungi kembali situs tersebut setelah istirahat, pastikan virtualenv Anda activate
'd.
Anda dapat menjalankan server pengembangan dengan:
python canvar.py
Dan kunjungi di browser Anda:
http://localhost:5000
http://localhost:5000/gene/ENSG00000237683
http://localhost:5000/variant/20-76735-A-T
Untuk pengujian, Anda dapat membuka shell interaktif dengan:
python manage.py shell