Auf ExAC basierendes Framework zur Bereitstellung studienspezifischer Variantenhäufigkeiten. Abhängigkeiten und Installationsanweisungen sind nahezu identisch mit ExAC, wie unter https://github.com/konradjk/exac_browser/blob/master/README.md beschrieben
Erstellen Sie ein Verzeichnis, um all diese Dinge abzulegen. Dieses dient als übergeordnetes Verzeichnis des eigentlichen canvar_browser-Repositorys
mkdir canvar
cd canvar
Rufen Sie zunächst (da dies parallel ausgeführt werden kann) die vom Browser verwendeten Datensätze ab und legen Sie sie in einem „exac_data“-Verzeichnis ab. Alle benötigten Dateien finden Sie unter:
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
Für die dbsnp-Datei:
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
Klonen Sie nun das Repo:
git clone https://github.com/danchubb/CanVar.git
Sie müssen Python und Pip installiert haben
Befolgen Sie diese Anweisungen, um Python und Homebrew auf Ihrem Mac zu installieren: http://docs.python-guide.org/en/latest/starting/install/osx/
Für Linux-Systeme
http://docs.python-guide.org/en/latest/starting/install/linux/
Installieren Sie MongoDB auf dem Mac:
brew install mongodb
# or
sudo port install mongodb
Alternativ, wenn Sie ein Linux-System verwenden:
https://docs.mongodb.com/v3.0/tutorial/install-mongodb-on-linux/
Erstellen Sie ein Verzeichnis für Ihre Mongo-Datenbankdateien:
mkdir database
Starten Sie in einem separaten Tab den Mongo-Datenbankserver:
mongod --dbpath database
Dieser lokale Server muss immer aktiv sein, wenn Sie an der Site arbeiten. Sie können dies im Hintergrund tun, wenn Sie einen Startdienst einrichten möchten, oder innerhalb einer Bildschirmsitzung, wenn Sie kein aktives Terminalfenster geöffnet lassen möchten.
Schließlich möchten Sie vielleicht das System in einer virtuellen Umgebung belassen, um Folgendes zu installieren:
Für Mac:
sudo port install py27-virtualenv # Or whatever version
Für Linux:
sudo apt-get install virtualenv
or sudo pip install virtualenv
Anschließend können Sie eine virtuelle Python-Umgebung erstellen, in der der Browser leben wird:
mkdir canvar_env
virtualenv canvar_env
source canvar_env/bin/activate
Installieren Sie die Python-Anforderungen:
pip install -r requirements.txt
Einige Pakete erfordern Python-Header (python-dev auf einigen Systemen).
Der hier bereitgestellte Code wird hauptsächlich zum Erstellen der vom Framework benötigten VCF-Datei und Coverage-Datei der Site verwendet. Andere Skripte wurden geändert, um hartcodierte Verweise auf ExAC und die darin enthaltenen Populationen zu entfernen und sie durch willkürliche Gruppen wie den Krankheitszustand zu ersetzen.
####Erstellen von Sites-VCF- und Coverage-Dateien
VCF -> Sites vcf:
python vcf_to_site_canvar.py --infile /path/to/file.vcf --phenotypes /path/to/phenotypes.csv --pops populations.csv
phenotype.csv enthält Phänotypdaten für jede Probe in der VCF-Datei. Sie muss die folgenden Spalten enthalten:
sample phenotype sex
Dabei ist Probe die in der Kopfzeile des VCF angegebene Proben-ID, Phänotyp der Krankheitszustand (oder ein anderer Zustand), den Sie als Population definieren möchten, und Geschlecht wird als M oder F angegeben.
Populations.csv enthält alle vorhandenen „Populationen“. Diese entsprechen den unterschiedlichen Phänotypen. B. die Darmkrebspopulation, sie muss die folgenden Spalten enthalten:
code phenotype
Dabei ist Code die abgekürzte Form des Phänotyps, der in der Datei „sites.vcf“ angezeigt wird, z. B. CRC Colorectal
So erstellen Sie eine Coverage-Datei
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 enthält die Pfade zu allen BAM-Dateien, für die Sie die Abdeckung berechnen möchten.
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
In diesem Beispiel würde cover_file_list den Pfad zu list.coverage.gz enthalten. Wenn Sie Ihren GATK DepthOfCoverage-Befehl in verschiedene Stichprobensätze aufteilen, steht jede Tabix-Coverage-Datei in einer anderen Zeile. Es wird eine .cov-Datei mit der durchschnittlichen Abdeckung für jede Position über alle Stichproben hinweg erstellt.
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 wird dann im canvar.py-Skript als Coverage-Datei verwendet. Es kann auch nach Chromosom aufgeteilt und gemäß dem ursprünglichen exac.py-Code hinzugefügt werden.
####Angepasste Exac-Dateien
Die anderen verbleibenden Dateien und Verzeichnisse sind fast identisch mit denen, die unter https://github.com/konradjk/exac_browser/blob/master/README.md verfügbar sind
/static enthält die für die Website erforderlichen .js-Dateien, CSS-Dateien, Bilder und Schriftarten. Das .js-Modul widget-columnSelector.js wird hinzugefügt, um das Spaltenauswahltool auf der Gen-Ergebnisseite zu aktivieren.
/templates enthält die HTML-Vorlagen für die verschiedenen Webseiten.
canvar.py ist der Großteil des wichtigen Codes. Ruft andere Python-Funktionen auf, importiert Daten und muss ausgeführt werden, um das Flask-Webframework zu starten
Lookups.py ruft Daten aus Mongodb ab
manage.py wird aufgerufen, um die Daten in Mongodb zu laden
Parsing.py wird aufgerufen, wenn die Eingabedateien in die Mongodb geladen werden. Die Populationen, wie sie auf der Website angezeigt werden, müssen hier neu definiert werden.
utils.py zusätzliche Module, die beim Parsen und Abrufen von Daten erforderlich sind
####Daten werden geladen
Jetzt wird die Datenbank aus den Flatfiles geladen: Dies ist ein einzelner Befehl, der jedoch eine Weile dauern kann (kann parallele Ladevorgänge nutzen, indem LOAD_DB_PARALLEL_PROCESSES in exac.py geändert wird):
python manage.py load_db
Sie müssen dies nicht oft ausführen – die meisten Änderungen erfordern keinen Neuaufbau der Datenbank. Das heißt, dies ist (und bleibt) idempotent, sodass Sie es jederzeit erneut ausführen können, wenn Sie vermuten, dass etwas nicht stimmt – es wird die Datenbank von Grund auf neu laden. Sie können Teile der Datenbank auch mit einem der folgenden Befehle neu laden:
python manage.py load_variants_file
python manage.py load_dbsnp_file
python manage.py load_base_coverage
python manage.py load_gene_models
Führen Sie dann Folgendes aus:
python manage.py precalculate_metrics
Anschließend müssen Sie einen Cache für die automatische Vervollständigung und für große Gene erstellen:
python manage.py create_cache
Alle in der Datei genes_to_cache.txt enthaltenen Gene werden vorab zwischengespeichert. Sie können beliebig viele Transkript-IDs hinzufügen, bis hin zu jedem Transkript in der Datenbank, um die Daten vollständig zwischenzuspeichern.
Beachten Sie: Wenn Sie die Site nach einer Pause erneut besuchen, stellen Sie sicher, dass Ihre virtuelle Umgebung activate
ist.
Sie können den Entwicklungsserver ausführen mit:
python canvar.py
Und besuchen Sie in Ihrem Browser:
http://localhost:5000
http://localhost:5000/gene/ENSG00000237683
http://localhost:5000/variant/20-76735-A-T
Zum Testen können Sie eine interaktive Shell öffnen mit:
python manage.py shell