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
Die Umwelt ist Ubuntu 16.04 Anaconda Python 3.6 ist.
pip install kipoi
Sie haben es jetzt installiert. Die Version war 0.6.25.
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
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