กรอบการทำงานตาม 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
ทาบิกซ์ -s 2 -b 3 -e 3 dbsnp142.txt.bgz
ตอนนี้โคลน repo:
git clone https://github.com/danchubb/CanVar.git
คุณต้องติดตั้ง Python และ pip
ทำตามคำแนะนำเหล่านี้เพื่อติดตั้ง Python และ Homebrew บน Mac ของคุณ: http://docs.python-guide.org/en/latest/starting/install/osx/
สำหรับระบบลินุกซ์
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
เซิร์ฟเวอร์ภายในเครื่องนี้จำเป็นต้องทำงานตลอดเวลาเมื่อคุณทำงานบนไซต์ คุณสามารถทำเช่นนี้ในพื้นหลังได้หากต้องการหรือตั้งค่าบริการเริ่มต้นระบบ หรือภายในเซสชันหน้าจอ หากคุณไม่ต้องการเปิดหน้าต่างเทอร์มินัลที่ใช้งานอยู่ต่อไป
สุดท้ายนี้ คุณอาจต้องการเก็บระบบไว้ใน virtualenv เพื่อติดตั้ง:
สำหรับแมค:
sudo port install py27-virtualenv # Or whatever version
สำหรับลินุกซ์:
sudo apt-get install virtualenv
or sudo pip install virtualenv
จากนั้นคุณสามารถสร้างสภาพแวดล้อมเสมือนของ Python ที่เบราว์เซอร์จะใช้งานได้:
mkdir canvar_env
virtualenv canvar_env
source canvar_env/bin/activate
ติดตั้งข้อกำหนดของหลาม:
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
โดยที่ตัวอย่างคือ ID ตัวอย่างตามที่ระบุไว้ในบรรทัดส่วนหัวของ VCF ฟีโนไทป์คือสถานะของโรค (หรืออื่นๆ) ที่คุณต้องการกำหนดเป็นประชากร และเพศระบุเป็น M หรือ F
ประชากร.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 ออกเป็นชุดตัวอย่างที่แตกต่างกัน ไฟล์ความครอบคลุมแต่ละไฟล์ที่อยู่ในแท็บจะอยู่ในบรรทัดที่แตกต่างกัน ไฟล์ .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 โค้ดสำคัญส่วนใหญ่ เรียกใช้ฟังก์ชันหลามอื่นๆ นำเข้าข้อมูล และจำเป็นต้องเรียกใช้เพื่อเริ่มต้นเฟรมเวิร์กเว็บขวด
lookups.py ดึงข้อมูลจาก mongodb
Manage.py เรียกให้โหลดข้อมูลลงใน mongodb
Parsing.py เรียกเมื่อโหลดไฟล์อินพุตลงใน mongodb ประชากรตามที่จะแสดงบนเว็บไซต์จำเป็นต้องได้รับการกำหนดใหม่ที่นี่
utils.py โมดูลเพิ่มเติมที่จำเป็นเมื่อแยกวิเคราะห์และดึงข้อมูล
####กำลังโหลดข้อมูล
ขณะนี้ฐานข้อมูลถูกโหลดจากไฟล์แฟลต: นี่เป็นคำสั่งเดียว แต่อาจใช้เวลาสักครู่ (สามารถใช้ประโยชน์จากการโหลดแบบขนานโดยการแก้ไข LOAD_DB_PARALLEL_PROCESSES ใน exac.py):
python manage.py load_db
คุณไม่ต้องดำเนินการบ่อยครั้ง การเปลี่ยนแปลงส่วนใหญ่ไม่จำเป็นต้องสร้างฐานข้อมูลใหม่ ที่กล่าวมา นี่คือ (และจะยังคงอยู่) idempotent ดังนั้นคุณสามารถเรียกใช้อีกครั้งได้ตลอดเวลาหากคุณคิดว่ามีบางอย่างผิดปกติ - มันจะโหลดฐานข้อมูลใหม่ตั้งแต่ต้น คุณยังสามารถรีโหลดบางส่วนของฐานข้อมูลโดยใช้คำสั่งใดๆ ต่อไปนี้:
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 จะถูกแคชไว้ล่วงหน้า คุณสามารถเพิ่มรหัสการถอดเสียงได้มากเท่าที่คุณต้องการ สูงสุดถึงทุกการถอดเสียงภายในฐานข้อมูลเพื่อแคชข้อมูลทั้งหมด
โปรดทราบว่าหากคุณกลับมาเยี่ยมชมไซต์อีกครั้งหลังจากหยุดพัก ตรวจสอบให้แน่ใจว่า virtualenv ของคุณ activate
'd แล้ว
คุณสามารถรันเซิร์ฟเวอร์การพัฒนาด้วย:
python canvar.py
และเยี่ยมชมบนเบราว์เซอร์ของคุณ:
http://localhost:5000
http://localhost:5000/gene/ENSG00000237683
http://localhost:5000/variant/20-76735-A-T
สำหรับการทดสอบ คุณสามารถเปิดเชลล์เชิงโต้ตอบด้วย:
python manage.py shell