Bonjour,
J'ai besoin d'aide / de conseils pour convertir du code Python en publication et obtenir des données d'un site Web ( https://maayanlab.cloud/Enrichr/help#api ) conçu pour déterminer s'il y a enrichissement dans une liste de gènes ou dans certaines voies biologiques. Je ne suis pas assez familier avec 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 d'avoir à compter sur Python dans JMP parce que je veux éviter que les utilisateurs du complément installent Python sur leur machine s'ils ne le sont pas.
Étape 1 - Publier une liste de gènes en service - Le code Python est ci-dessous
importer json
demandes d'importation
ENRICHR_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': (Aucun, description)
}
response = requests.post (ENRICHR_URL, files = payload)
sinon response.ok:
lever une exception ('Erreur lors de l'analyse de la liste des gènes')
data = json.loads (réponse.text)
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 qui montrent un enrichissement génétique du service - Le code Python est ci-dessous:
importer json
importer demandes
ENRICHR_URL = ' http://maayanlab.cloud/Enrichr/enrich '
query_string = '? userListId =% s & backgroundType =% s'
user_list_id = 363320
gene_set_library = «KEGG_2015»
response = requests.get (ENRICHR_URL + query_string% (user_list_id, gene_set_library))
si ne pas response.ok:
élever Exception( "Erreur lors de la récupération des résultats d'enrichissement" )
data = json.loads (réponse.text)
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"} // beaucoup plus de bibliothèques sont disponibles)
- Le Json qui est 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 là-bas à la recherche d'un petit défi et est prêt à lui donner une chance.
Meilleures salutations,
Sébastien