إطار عمل يعتمد على 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 -ب 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/
لأنظمة لينكس
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
يجب أن يكون هذا الخادم المحلي قيد التشغيل في جميع الأوقات عندما تعمل على الموقع. يمكنك القيام بذلك في الخلفية إذا كنت تريد أو تقوم بإعداد بعض خدمات بدء التشغيل، أو خلال جلسة عمل إذا كنت لا تريد الاحتفاظ بنافذة طرفية نشطة مفتوحة.
أخيرًا، قد ترغب في الاحتفاظ بالنظام في بيئة افتراضية لتثبيت:
لنظام التشغيل Mac:
sudo port install py27-virtualenv # Or whatever version
لنظام التشغيل Linux:
sudo apt-get install virtualenv
or sudo pip install virtualenv
يمكنك بعد ذلك إنشاء بيئة افتراضية بيثون حيث سيعيش المتصفح:
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
حيث العينة هي معرف العينة كما هو مذكور في سطر رأس VCF، والنمط الظاهري هو الحالة المرضية (أو غيرها) التي تريد تعريفها كمجموعة سكانية ويتم تحديد الجنس على أنه M أو F.
يحتوي ملف السكان.csv على كافة "المجموعات السكانية" الموجودة. هذه تتوافق مع الأنماط الظاهرية المختلفة. على سبيل المثال، مجموعة سرطان القولون والمستقيم، يجب أن تحتوي على الأعمدة:
code phenotype
حيث الكود هو الشكل المختصر للنمط الظاهري الذي سيظهر في المواقع.vcf على سبيل المثال CRC Colourectal
لإنشاء ملف التغطية
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
في هذا المثال، سوف تحتوي قائمة Cover_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-columnSelector.js لتمكين أداة تحديد العمود في صفحة نتائج الجينات.
/templates يحتوي على قوالب HTML لصفحات الويب المختلفة.
canvar.py أغلبية التعليمات البرمجية المهمة. يستدعي وظائف بايثون الأخرى، ويستورد البيانات ويحتاج إلى تشغيله لبدء إطار عمل الويب flask
lookups.py يسحب البيانات من mongodb
تم استدعاء Manage.py لتحميل البيانات إلى mongodb
يتم استدعاء Parsing.py عند تحميل ملفات الإدخال إلى mongodb. يجب إعادة تعريف المجموعات السكانية كما سيتم عرضها في الموقع هنا.
وحدات utils.py الإضافية مطلوبة عند تحليل البيانات واسترجاعها
####تحميل البيانات
يتم الآن تحميل قاعدة البيانات من الملفات الثابتة: هذا أمر واحد، لكنه قد يستغرق بعض الوقت (يمكن الاستفادة من التحميل المتوازي عن طريق تعديل LOAD_DB_PARALLEL_PROCESSES في exac.py):
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 مؤقتًا مسبقًا. يمكنك إضافة أي عدد تريده من معرفات النص، حتى كل نص داخل قاعدة البيانات من أجل تخزين البيانات مؤقتًا بشكل كامل.
لاحظ أنه إذا كنت ستزور الموقع مرة أخرى بعد فترة انقطاع، فتأكد من activate
Virtualenv الخاص بك 'd.
يمكنك تشغيل خادم التطوير باستخدام:
python canvar.py
وقم بزيارة متصفحك:
http://localhost:5000
http://localhost:5000/gene/ENSG00000237683
http://localhost:5000/variant/20-76735-A-T
للاختبار، يمكنك فتح غلاف تفاعلي باستخدام:
python manage.py shell