[PYTHON] Essayez l'apprentissage profond de la génomique avec Kipoi

Il existe également plusieurs modèles qui utilisent l'apprentissage en profondeur dans le domaine de la génomique. Par exemple, DeepBind, qui prédit la capacité de liaison d'une séquence de bases à une protéine de liaison ADN / ARN, et DeepSEA, qui prédit une modification épigénétique à partir d'une séquence de bases.

Kipoi est une plate-forme (appelée référentiel dans l'article) qui peut utiliser divers modèles d'apprentissage en profondeur de la génomique. Il prend en charge les modèles écrits en Keras, tensorflow, PyTorch et Scikit-learn. Vous pouvez charger le modèle entraîné et l'essayer facilement avec vos propres données de séquence pour obtenir les prédictions.

Page d'accueil: http://kipoi.org/ Papier: https://www.nature.com/articles/s41587-019-0140-0

En fait utiliser

L'environnement est Ubuntu 16.04 Anaconda Python 3.6 est.

Installation

pip install kipoi

Vous l'avez maintenant installé. La version était la 0.6.25.

Informations d'erreur

Quand j'essaye de le déplacer après cela, j'obtiens parfois l'erreur ʻAttribute Error: 'Table' object has no attribute'purge'`. Cela semble être dû au fait que tinydb est une nouvelle version. Dans ce cas, vous pouvez le réparer en réinstallant l'ancienne version comme suit.

pip uninstall tinydb
pip install tinydb==3.13.0

Essayez de déplacer Kipoi

Le tutoriel est publié sur github et vous pouvez l'essayer. (https://github.com/kipoi/examples) Cette fois, je vais essayer la première partie du tutoriel.

Tout d'abord, téléchargez l'ensemble des tutoriels.

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

Chargez la liste des modèles de kipoi.

kipoi ls

Vous pouvez maintenant l'utiliser. Un dossier (.kipoi / models /) contenant des modèles a été créé dans le dossier d'accueil. Ensuite, créez un nouvel environnement virtuel.

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

Cela a créé un environnement virtuel appelé "kipoi-shared_envs_kipoi-py3-keras2" dans conda. Accédez à cet environnement virtuel.

conda activate kipoi-shared__envs__kipoi-py3-keras2

Essayons du code de test.

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

J'ai pu confirmer que cela fonctionne.

example1 Essayons la prédiction de example1.

cd 1-predict

Il y a des exemples de données dans le dossier d'entrée, alors décompressez-le.

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

Faire une prédiction. Dans le modèle DeepBind utilisé cette fois, 100 bases sont entrées et la prédiction de la capacité de liaison avec CTCF est sortie. fasta_file contient des informations de séquence de base, intervalles_file contient des informations sur l'emplacement (début et fin) de la séquence de base à récupérer.

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

J'ai pu prédire.

Jetons un coup d'œil au contenu de la sortie (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
・ ・ ・ ・ ・ ・ ・

La colonne la plus à droite est la valeur prédite.

Snakefile est utilisé pour la suite du tutoriel, et il semble que vous deviez installer snakemake pour le faire fonctionner. (snakemake est un outil d'automatisation de flux de travail utile. Voir ici)

Comment exécuter en Python

Jusqu'à présent, tout a été fait avec CLI, mais il existe également des API pour Python et R. Après être entré dans l'environnement virtuel, il semble s'exécuter comme suit en Python. (Extrait de Manual)

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 

Impressions etc.

Je l'ai trouvé très intéressant en tant que plate-forme d'analyse génomique. L'environnement virtuel créé avec kipoi est traité de la même manière que l'environnement virtuel d'Anaconda. En plus du téléchargement et de l'utilisation de modèles, il semble que vous puissiez également télécharger et partager vos propres modèles entraînés. Je veux continuer à l'utiliser.

Recommended Posts

Essayez l'apprentissage profond de la génomique avec Kipoi
Essayez l'apprentissage en profondeur avec TensorFlow
Essayez le Deep Learning avec FPGA
Essayez le Deep Learning avec les concombres FPGA-Select
Essayez l'apprentissage en profondeur avec TensorFlow Partie 2
Essayez les prévisions de prix Bitcoin avec Deep Learning
Essayez avec Chainer Deep Q Learning - Lancement
Analyse émotionnelle des tweets avec apprentissage en profondeur
Deep learning 1 Pratique du deep learning
L'histoire de l'apprentissage profond avec TPU
Apprentissage profond du noyau avec Pyro
Essayez le machine learning à la légère avec Kaggle
Apprentissage par renforcement profond 2 Mise en œuvre de l'apprentissage par renforcement
Générez des Pokémon avec Deep Learning
Essayez de créer un réseau de neurones / d'apprentissage en profondeur avec scratch
[Evangelion] Essayez de générer automatiquement des lignes de type Asuka avec Deep Learning
Renforcer l'apprentissage 13 Essayez Mountain_car avec ChainerRL.
Faites de l'art ASCII avec l'apprentissage en profondeur
SVM essayant l'apprentissage automatique avec scikit-learn
Vérifiez la forme de squat avec l'apprentissage en profondeur
Catégoriser les articles de presse grâce au Deep Learning
Prévisions des ventes de collations avec apprentissage en profondeur
Essayez l'apprentissage de la représentation commune avec le chainer
Faites sourire les gens avec le Deep Learning
J'ai recherché une carte similaire de Hearthstone avec Deep Learning
Introduction au Deep Learning (2) - Essayez votre propre régression non linéaire avec Chainer-
L'apprentissage en profondeur
[Détection d'anomalies] Essayez d'utiliser la dernière méthode d'apprentissage à distance
[Exemple d'amélioration de Python] Apprentissage de Python avec Codecademy
Classez les visages d'anime avec l'apprentissage en profondeur avec Chainer
Othello-De la troisième ligne de "Implementation Deep Learning" (3)
Signification des modèles et paramètres d'apprentissage en profondeur
Apprentissage profond / Apprentissage profond à partir de zéro 2-Essayez de déplacer GRU
Visualisez les effets de l'apprentissage profond / de la régularisation
Enregistrement d'apprentissage de la lecture "Deep Learning from scratch"
Othello-De la troisième ligne de "Implementation Deep Learning" (2)
Renforcer l'apprentissage 11 Essayez OpenAI acrobot avec ChainerRL.
Apprentissage profond / rétropropagation d'erreur de la fonction sigmoïde
Un mémorandum d'étude et de mise en œuvre du Deep Learning
[Mémo d'apprentissage] Apprentissage profond à partir de zéro ~ Mise en œuvre de l'abandon ~
Commencer l'apprentissage en profondeur
Compréhension de base de l'estimation de la profondeur stéréo (Deep Learning)
Deep Learning from scratch La théorie et la mise en œuvre de l'apprentissage profond appris avec Python Chapitre 3
99,78% de précision avec apprentissage en profondeur en reconnaissant les hiragana manuscrits
Apprentissage en profondeur Python
Apprentissage parallèle du deep learning par Keras et Kubernetes
Apprentissage profond × Python
Implémentation du modèle Deep Learning pour la reconnaissance d'images
Apprentissage profond appris par mise en œuvre (segmentation) ~ Mise en œuvre de SegNet ~
Essayez d'utiliser le bloc-notes Jupyter à partir d'Azure Machine Learning
Points clés de «Machine learning avec Azure ML Studio»
Une histoire de prédiction du taux de change avec Deep Learning
Comptez le nombre de paramètres dans le modèle d'apprentissage en profondeur
Analyse d'images par apprentissage profond à partir de Kaggle et Keras
Essayez de projeter la conversion d'image en utilisant OpenCV avec Python
Essayez de prédire le taux de change (FX) avec un apprentissage automatique non approfondi
Application de Deep Learning 2 à partir de zéro Filtre anti-spam
Techniques pour comprendre la base des décisions d'apprentissage en profondeur
Prédire le sexe des utilisateurs de Twitter grâce à l'apprentissage automatique