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
L'environnement est Ubuntu 16.04 Anaconda Python 3.6 est.
pip install kipoi
Vous l'avez maintenant installé. La version était la 0.6.25.
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
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
source activate
, mais cela ne fonctionnait pas, et cela fonctionnait quand je l'ai changé en conda activate
.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)
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
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