PhytoMine-I a essayé d'obtenir les informations génétiques de la plante avec Python

J'ai découvert qu'il existe une PhytoMine qui peut appeler les données de Phytozome de Python, alors je l'ai essayé. Le phytozome est un site familier aux chercheurs sur les plantes et constitue un site pratique pour examiner les informations génomiques et génétiques de diverses espèces végétales.

PhytoMine est l'un des registres du système d'entrepôt de données appelé InterMine.

InterMine est un système d'entrepôt de données open source sous licence LGPL2.1. InterMine est utilisé pour créer une base de données de données biologiques accessibles par des outils de requête Web avancés. Vous pouvez utiliser InterMine pour créer une base de données à partir d'un seul ensemble de données ou pour consolider plusieurs sources de données. La prise en charge de certains formats biologiques populaires est fournie et il existe un cadre pour ajouter d'autres données. InterMine comprend une interface Web conviviale qui fonctionne «hors de la boîte» et est facile à personnaliser. De Wikipedia "InterMine"

InterMine est disponible dans une variété de langages de programmation, y compris Python. Voir API et bibliothèques clientes pour plus d'informations.

J'ai essayé d'utiliser PhytoMine en Python en me référant au Tutoriel InterMine-Python. L'installation a été faite avec pip.

$ pip install intermine

J'ai spécifié la fonction du gène et les espèces végétales sous forme de requête et j'ai essayé d'obtenir une liste de gènes en Python. La liste a été créée dans Pandas. Le code source est le suivant.

size = 20 #Spécifiez le nombre de données à acquérir

import pandas as pd
from intermine.webservice import Service

service = Service("https://phytozome.jgi.doe.gov/phytomine/service") #Créez une instance en spécifiant l'URL de PhytoMine
query = service.new_query("Gene") #Obtenez des informations génétiques
query.add_constraint("briefDescription","CONTAINS","transcription factor") #Spécifier la fonction du gène(Condition A)
query.add_constraint("name","CONTAINS","Eucgr") #Au début du nom du gène d'Eucalyptus Grandis"Eucgr"Désigner Eucalyptus Grandis comme espèce végétale en utilisant(Condition B)
query.add_constraint("name","CONTAINS","Potri") #Au début du nom du gène du peuplier"Potri"Désigner le peuplier comme espèce végétale en utilisant(Condition C)
query.set_logic("A & (B | C)") #Paramètres d'examen des gènes d'Eucalyptus Grandis et du peuplier(Condition A et condition B ou condition C)

dfs = [] #Créez une liste vide pour enregistrer la sortie
for row in query.rows(size=size):
    dfs.append(pd.DataFrame(row.values(),index=row.keys()).T) #Obtenez des données et enregistrez-les dans la liste

dfs = pd.concat(dfs) #Convertir la liste en bloc de données
dfs.to_csv("Tree_TFs_Top20.csv")  #Enregistrer la trame de données au format csv
Gene.briefDescription Gene.cytoLocation Gene.description Gene.genomicOrder Gene.id Gene.length Gene.name Gene.primaryIdentifier Gene.score Gene.scoreType Gene.secondaryIdentifier Gene.symbol
0 (1 of 102) PF00319 - SRF-type transcription fa... None None None 49560540 186 Potri.010G098100 Potri.010G098100 None None PAC:26981244 None
0 (1 of 102) PF00319 - SRF-type transcription fa... None None None 303626540 186 Potri.010G098100 Potri.010G098100 None None PAC:37221527 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 48348276 2263 Potri.007G090600 Potri.007G090600 None None PAC:27016559 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 48359640 1853 Potri.003G139300 Potri.003G139300 None None PAC:26998891 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 48837989 1051 Potri.005G168700 Potri.005G168700 None None PAC:27030760 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 49691741 1649 Potri.017G055400 Potri.017G055400 None None PAC:26983926 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 50099858 2177 Potri.005G077300 Potri.005G077300 None None PAC:27029242 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 50216626 2401 Potri.013G135600 Potri.013G135600 None None PAC:26993814 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 50231866 2179 Potri.019G102200 Potri.019G102200 None None PAC:27025339 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 303511172 2177 Potri.005G077300 Potri.005G077300 None None PAC:37265642 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 303527050 1051 Potri.005G168700 Potri.005G168700 None None PAC:37263387 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 303695561 2263 Potri.007G090600 Potri.007G090600 None None PAC:37252859 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 303799992 2401 Potri.013G135600 Potri.013G135600 None None PAC:37233326 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 303940612 2179 Potri.019G102200 Potri.019G102200 None None PAC:37260937 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 304098097 1649 Potri.017G055400 Potri.017G055400 None None PAC:37223899 None
0 (1 of 10) PTHR31657:SF9 - ETHYLENE-RESPONSIVE ... None None None 304255554 1853 Potri.003G139300 Potri.003G139300 None None PAC:37236557 None
0 (1 of 11) K08064 - nuclear transcription facto... None None None 49458724 4801 Potri.011G098400 Potri.011G098400 None None PAC:27000615 None
0 (1 of 11) KOG4282 - Transcription factor GT-2 ... None None None 174786351 2903 Eucgr.J01012 Eucgr.J01012 None None PAC:32033046 None
0 (1 of 11) KOG4282 - Transcription factor GT-2 ... None None None 174819386 2316 Eucgr.J02994 Eucgr.J02994 None None PAC:32035652 None
0 (1 of 11) KOG4282 - Transcription factor GT-2 ... None None None 175094637 2197 Eucgr.G03225 Eucgr.G03225 None None PAC:32071912 None

En regardant la [page Query Builder] de PhytoMine (https://phytozome.jgi.doe.gov/phytomine/customQuery.do), il semble qu'il existe différents types de données autres que les gènes qui peuvent être utilisés pour les requêtes, je vais donc l'essayer petit à petit. je veux

Recommended Posts

PhytoMine-I a essayé d'obtenir les informations génétiques de la plante avec Python
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
J'ai essayé de trouver l'entropie de l'image avec python
J'ai essayé d'obtenir les informations de localisation du bus Odakyu
Récupérez la source de la page à charger indéfiniment avec python.
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
Comment obtenir les informations des organisations, Cost Explorer d'un autre compte AWS avec Lambda (python)
J'ai essayé d'obtenir des données CloudWatch avec Python
Obtenez des informations sur le processeur de Raspberry Pi avec Python
Script Python pour obtenir des informations de note avec REAPER
J'ai essayé de rationaliser le rôle standard des nouveaux employés avec Python
Comment obtenir le nombre de chiffres en Python
Ajoutez des informations au bas de la figure avec Matplotlib
J'ai essayé de démarrer avec le script python de blender_Part 01
J'ai essayé de toucher un fichier CSV avec Python
J'ai essayé de démarrer avec le script python de blender_Partie 02
J'ai essayé de visualiser facilement les tweets de JAWS DAYS 2017 avec Python + ELK
Essayez d'obtenir le contenu de Word avec Golang
J'ai essayé de visualiser les informations spacha de VTuber
J'ai essayé de résoudre le problème avec Python Vol.1
Obtenez l'état de fonctionnement de JR West avec Python
[Python] J'ai essayé d'obtenir Json de squid ring 2
Obtenez des informations sur l'alambic avec Python
Comment obtenir une liste de fichiers dans le même répertoire avec python
J'ai essayé d'envoyer automatiquement la littérature du nouveau virus corona à LINE avec Python
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé d'automatiser la mise à jour de l'article du blog Livedoor avec Python et sélénium.
J'ai essayé de visualiser les caractéristiques des nouvelles informations sur les personnes infectées par le virus corona avec wordcloud
J'ai essayé de comparer la vitesse de traitement avec dplyr de R et pandas de Python
Le 15e temps réel hors ligne, j'ai essayé de résoudre le problème de l'écriture avec python
J'ai essayé la "correction gamma" de l'image avec Python + OpenCV
J'ai essayé de simuler la propagation de l'infection avec Python
Essayez d'obtenir la liste des fonctions du paquet Python> os
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
J'ai essayé de notifier les informations de retard de train avec LINE Notify
Connaissances minimales pour démarrer avec le module de journalisation Python
Comment entrer dans l'environnement de développement Python avec Vagrant
J'ai essayé d'obtenir diverses informations de l'API codeforces
[Introduction à Python] Comment obtenir des données avec la fonction listdir
Lien pour commencer avec python
Obtenez la météo avec les requêtes Python
Obtenez la météo avec les requêtes Python 2
Comment obtenir la version Python
Comment démarrer avec Python
Obtenez des informations météorologiques avec Python et le grattage
J'ai essayé de résoudre le problème de F02 comment écrire en temps réel hors ligne avec Python
J'ai écrit un doctest dans "J'ai essayé de simuler la probabilité d'un jeu de bingo avec Python"
Essayez d'importer dans la base de données en manipulant ShapeFile d'informations numériques sur les terres nationales avec Python
J'ai essayé de résoudre l'édition du débutant du livre des fourmis avec python
J'ai essayé d'obtenir l'index de la liste en utilisant la fonction énumérer
Comment obtenir l'ID de Type2Tag NXP NTAG213 avec nfcpy
[Python] Un mémo que j'ai essayé de démarrer avec asyncio
[Python] Comment obtenir le premier et le dernier jour du mois
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
J'ai essayé de créer une liste de nombres premiers avec python