Bonjour,
J'ai besoin d'aide/de conseils pour convertir du code Python pour publier et obtenir des données à partir d'un site Web ( https://maayanlab.cloud/Enrichr/help#api ) visant à déterminer s'il existe un enrichissement dans une liste de gènes ou dans certaines voies biologiques. Je ne connais pas assez la syntaxe nécessaire pour interagir avec l'API REST en utilisant la "nouvelle requête HTTP" pour y parvenir.
La possibilité d'obtenir des informations à partir de ces services sera fusionnée dans un complément conçu pour effectuer une analyse de base de l'expression génique. J'essaie d'éviter de devoir compter sur Python dans JMP car je veux éviter que les utilisateurs du complément installent Python sur leur machine s'ils n'y sont pas obligés.
Étape 1 - Publier une liste de gènes au service - Le code Python est ci-dessous
importer json
demandes d'importation
ENRICH_URL = ' http://maayanlab.cloud/Enrichr/addList '
genes_str = '\n'.join([
'PHF14', 'RBM3', 'MSL1', 'PHF21A', 'ARL10', 'INSR', 'JADE2', 'P2RX7',
'LINC00662', 'CCDC101', 'PPM1B', 'KANSL1L', 'CRYZL1', 'ANAPC16', 'TMCC1',
'CDH8', 'RBM11', 'CNPY2', 'HSPA1L', 'CUL2', 'PLBD2', 'LARP7', 'TECPR2',
'ZNF302', 'CUX1', 'MOB2', 'CYTH2', 'SEC22C', 'EIF4E3', 'ROBO2',
'ADAMTS9-AS2', 'CXXC1', 'LINC01314', 'ATF7', 'ATP5F1'
])
description = 'Exemple de liste de gènes'
charge utile = {
'list' : (Aucun, genes_str),
'description' : (Aucune, description)
}
réponse = demandes.post(ENRICHR_URL, fichiers=charge utile)
sinon réponse.ok :
soulever une exception ('Erreur lors de l'analyse de la liste des gènes')
données = json.loads(réponse.texte)
imprimer (données)
Cela générera un userListId qui sera utilisé pour récupérer les données de l'analyse
Étape 2 - Obtenez une liste des voies biologiques montrant un enrichissement génétique du service - Le code Python est ci-dessous :
importer json
importer demandes
ENRICHR_URL = ' http://maayanlab.cloud/Enrichr/enrich '
chaîne_requête = '?userListId=%s&backgroundType=%s'
user_list_id = 363320
gene_set_library = 'KEGG_2015'
réponse = demandes.get( ENRICHR_URL + query_string % (user_list_id, gene_set_library) )
si pas réponse.ok :
augmenter Exception( 'Erreur lors de la récupération des résultats d'enrichissement' )
données = json.loads(réponse.texte)
imprimer (données)
Dans l'exemple ci-dessus - 3 choses devraient idéalement se produire :
- (La requête HTTP doit parcourir plusieurs bibliothèques gene_set (gene_set_library= {"KEGG_2015", "Panther_2016", "WikiPathways_2016", " Reactome_2016"} // de nombreuses autres bibliothèques sont disponibles)
- Le Json récupéré ne semble pas être facilement analysé et doit avoir des en-têtes ( Rang, nom du terme, valeur P, score Z, score combiné, gènes qui se chevauchent, valeur p ajustée, ancienne valeur p, ancienne valeur p ajustée) qui lui sont associés
- Chaque fichier Json récupéré doit être concaténé dans une table JMP
J'espère qu'il y a quelqu'un qui cherche un petit défi et qui est prêt à tenter le coup.
Cordialement,
Sébastien