[PYTHON] Versuchen Sie mit Kipoi tiefes Erlernen der Genomik

Es gibt auch mehrere Modelle, die Deep Learning auf dem Gebiet der Genomik nutzen. Zum Beispiel DeepBind, das die Bindungsfähigkeit einer Basensequenz an ein DNA / RNA-bindendes Protein vorhersagt, und DeepSEA, das die epigenetische Modifikation aus einer Basensequenz vorhersagt.

Kipoi ist eine Plattform (in der Veröffentlichung als Repository bezeichnet), die verschiedene Modelle des tiefen Lernens der Genomik verwenden kann. Es unterstützt Modelle, die in Keras, Tensorflow, PyTorch und Scikit-Learn geschrieben wurden. Sie können das trainierte Modell laden und es einfach mit Ihren eigenen Sequenzdaten ausprobieren, um die Vorhersagen zu erhalten.

Homepage: http://kipoi.org/ Papier: https://www.nature.com/articles/s41587-019-0140-0

Eigentlich verwenden

Die Umwelt ist Ubuntu 16.04 Anaconda Python 3.6 ist.

Installation

pip install kipoi

Sie haben es jetzt installiert. Die Version war 0.6.25.

Fehlerinformationen

Wenn ich danach versuche, es zu verschieben, erhalte ich manchmal den Fehler "Attributfehler:" Tabellenobjekt hat kein Attribut "Reinigung". Dies scheint daran zu liegen, dass tinydb eine neue Version ist. In diesem Fall können Sie das Problem beheben, indem Sie die alte Version wie folgt neu installieren.

pip uninstall tinydb
pip install tinydb==3.13.0

Versuchen Sie, Kipoi zu bewegen

Das Tutorial wird auf github veröffentlicht und Sie können es ausprobieren. (https://github.com/kipoi/examples) Dieses Mal werde ich den ersten Teil des Tutorials ausprobieren.

Laden Sie zunächst die Tutorials herunter.

git clone https://github.com/kipoi/examples.git
cd examples

Laden Sie die Kipoi-Modellliste.

kipoi ls

Sie können es jetzt verwenden. Ein Ordner (.kipoi / models /) mit Modellen wurde im Home-Ordner erstellt. Erstellen Sie als Nächstes eine neue virtuelle Umgebung.

kipoi env create shared/envs/kipoi-py3-keras2

Damit wird eine virtuelle Umgebung namens "kipoi-shared_envs_kipoi-py3-keras2" in conda erstellt. Wechseln Sie zu dieser virtuellen Umgebung.

conda activate kipoi-shared__envs__kipoi-py3-keras2

Probieren wir einen Testcode aus.

kipoi test Basset --source=kipoi
kipoi test DeepSEA/predict --source=kipoi
kipoi test DeepBind/Homo_sapiens/TF/D00328.018_ChIP-seq_CTCF/ --source=kipoi

Ich konnte bestätigen, dass es funktioniert.

example1 Versuchen wir die Vorhersage von Beispiel1.

cd 1-predict

Der Eingabeordner enthält Beispieldaten. Entpacken Sie sie daher.

zcat input/hg19.chr22.fa.gz > input/hg19.chr22.fa

Eine Vorhersage machen. In dem diesmal verwendeten DeepBind-Modell werden 100 Basen eingegeben und die Vorhersage der Bindungsfähigkeit mit CTCF wird ausgegeben. fasta_file enthält Basissequenzinformationen, intervalildatei enthält Informationen über den Ort (Anfang und Ende) der abzurufenden Basissequenz.

kipoi predict DeepBind/Homo_sapiens/TF/D00328.018_ChIP-seq_CTCF \
   --dataloader_args='{"intervals_file": "input/enhancer-regions.hg19.chr22.bed.gz",
                       "fasta_file": "input/hg19.chr22.fa"}' \
  -o preds.tsv

Ich konnte vorhersagen.

Werfen wir einen Blick auf den Inhalt der Ausgabe (preds.tsv).

$ less preds.tsv
metadata/ranges/chr     metadata/ranges/end     metadata/ranges/id      metadata/ranges/start   metadata/ranges/strand  preds
chr22   17274293        0       17274192        *       -4.108346
chr22   17274548        1       17274447        *       -2.6903393
chr22   17275618        2       17275517        *       -5.2259955
chr22   17275863        3       17275762        *       -5.2259955
chr22   17287134        4       17287033        *       -4.2063684
chr22   17288718        5       17288617        *       -5.2259955
chr22   17570303        6       17570202        *       -4.93376
chr22   17597591        7       17597490        *       -4.4880404
chr22   17597800        8       17597699        *       -4.825454
chr22   17598104        9       17598003        *       -5.190316
・ ・ ・ ・ ・ ・ ・

Die Spalte ganz rechts ist der vorhergesagte Wert.

Snakefile wird für die Fortsetzung des Tutorials verwendet, und es scheint, dass Sie snakemake installieren müssen, damit es funktioniert. (snakemake ist ein nützliches Tool zur Automatisierung von Workflows. Siehe hier)

import kipoi

kipoi.list_models() # list available models
model = kipoi.get_model("Basset") # load the model
model = kipoi.get_model(  # load the model from a past commit
    "https://github.com/kipoi/models/tree/<commit>/<model>",
    source='github-permalink'
)

# main attributes
model.model # wrapped model (say keras.models.Model)
model.default_dataloader # dataloader
model.info # description, authors, paper link, ...

# main methods
model.predict_on_batch(x) # implemented by all the models regardless of the framework
model.pipeline.predict(dict(fasta_file="hg19.fa", intervals_file="intervals.bed"))
# runs: raw files -[dataloader]-> numpy arrays -[model]-> predictions 

Bisher wurde alles mit CLI erledigt, aber es gibt auch APIs für Python und R. Nach dem Betreten der virtuellen Umgebung scheint es in Python wie folgt ausgeführt zu werden. (Auszug aus Manual) Ich fand es als Plattform für Genomanalysen wie Impressionen sehr interessant. Die mit kipoi erstellte virtuelle Umgebung wird genauso behandelt wie die virtuelle Umgebung von Anaconda. Neben dem Herunterladen und Verwenden von Modellen können Sie anscheinend auch Ihre eigenen trainierten Modelle hochladen und freigeben. Ich möchte es weiter benutzen.

Recommended Posts

Versuchen Sie mit Kipoi tiefes Erlernen der Genomik
Versuchen Sie es mit TensorFlow
Versuchen Sie Deep Learning mit FPGA
Probieren Sie Deep Learning mit FPGA-Select-Gurken aus
Versuchen Sie es mit TensorFlow Part 2
Probieren Sie die Bitcoin-Preisprognose mit Deep Learning aus
Versuchen Sie es mit Chainer Deep Q Learning - Launch
Emotionale Analyse von Tweets mit Deep Learning
Deep Learning 1 Übung des Deep Learning
Die Geschichte des tiefen Lernens mit TPU
Deep Kernel Learning mit Pyro
Versuchen Sie es mit Kaggle leicht maschinell
Tiefes Lernen der Verstärkung 2 Implementierung des Lernens der Verstärkung
Generiere Pokemon mit Deep Learning
Versuchen Sie, ein Deep Learning / Neuronales Netzwerk mit Scratch aufzubauen
[Evangelion] Versuchen Sie, mit Deep Learning automatisch Asuka-ähnliche Linien zu erzeugen
Lernen stärken 13 Probieren Sie Mountain_car mit ChainerRL aus.
Machen Sie ASCII-Kunst mit tiefem Lernen
SVM versucht maschinelles Lernen mit Scikit-Learn
Überprüfen Sie die Kniebeugenform mit tiefem Lernen
Kategorisieren Sie Nachrichtenartikel mit Deep Learning
Snack-Umsatzprognose mit Deep Learning
Versuchen Sie Common Representation Learning mit Chainer
Bringen Sie Menschen mit Deep Learning zum Lächeln
Ich suchte mit Deep Learning nach einer ähnlichen Karte von Hearthstone
Einführung in Deep Learning (2) - Versuchen Sie Ihre eigene nichtlineare Regression mit Chainer-
Tiefes Lernen
[Erkennung von Anomalien] Versuchen Sie es mit der neuesten Methode des Fernunterrichts
[Beispiel für eine Python-Verbesserung] Python mit Codecademy lernen
Klassifizieren Sie Anime-Gesichter mit tiefem Lernen mit Chainer
Othello-Aus der dritten Zeile von "Implementation Deep Learning" (3)
Bedeutung von Deep-Learning-Modellen und -Parametern
Tiefes Lernen / Tiefes Lernen von Grund auf 2-Versuchen Sie, GRU zu bewegen
Visualisieren Sie die Auswirkungen von Deep Learning / Regularisierung
Lernbericht über das Lesen von "Deep Learning von Grund auf neu"
Othello-Aus der dritten Zeile von "Implementation Deep Learning" (2)
Stärkung des Lernens 11 Probieren Sie OpenAI Acrobot mit ChainerRL aus.
Deep Learning / Fehler-Backpropagation der Sigmoid-Funktion
Ein Memorandum zum Studieren und Implementieren von Deep Learning
[Lernnotiz] Deep Learning von Grund auf ~ Implementierung von Dropout ~
Starten Sie Deep Learning
Grundlegendes Verständnis der Stereo-Tiefenschätzung (Deep Learning)
Deep Learning von Grund auf neu Die Theorie und Implementierung des mit Python erlernten Deep Learning Kapitel 3
99,78% Genauigkeit bei tiefem Lernen durch Erkennen von handgeschriebenem Hiragana
Python Deep Learning
Paralleles Lernen von Deep Learning durch Keras und Kubernetes
Deep Learning × Python
Implementierung eines Deep Learning-Modells zur Bilderkennung
Tiefes Lernen durch Implementierung (Segmentierung) ~ Implementierung von SegNet ~
Versuchen Sie es mit dem Jupyter Notebook von Azure Machine Learning
Wichtige Punkte von "Maschinelles Lernen mit Azure ML Studio"
Eine Geschichte über die Vorhersage des Wechselkurses mit Deep Learning
Zählen Sie die Anzahl der Parameter im Deep-Learning-Modell
Deep Learning Bildanalyse beginnend mit Kaggle und Keras
Versuchen Sie, die Bildkonvertierung mit OpenCV mit Python zu projizieren
Versuchen Sie, den Wechselkurs (FX) mit nicht tiefem maschinellem Lernen vorherzusagen
Anwendung von Deep Learning 2 von Grund auf neu Spam-Filter
Techniken zum Verständnis der Grundlagen von Deep-Learning-Entscheidungen
Prognostizieren Sie das Geschlecht von Twitter-Nutzern durch maschinelles Lernen