Hallo,
Ich benötige Hilfe / Anleitung, um Python-Code zum Posten und Abrufen von Daten von einer Website zu konvertieren ( https://maayanlab.cloud/Enrichr/help#api ) entwickelt, um festzustellen, ob eine Genliste oder einige biologische Pfade angereichert sind. Ich bin nicht genug mit der Syntax vertraut, die für die Interaktion mit der REST-API mithilfe der 'neuen HTTP-Anforderung' erforderlich ist, um dies zu erreichen.
Die Möglichkeit, Informationen von diesen Diensten abzurufen, wird in einem Add-In zusammengeführt, mit dem einige grundlegende Genexpressionsanalysen durchgeführt werden können. Ich versuche zu vermeiden, dass ich mich in JMP auf Python verlassen muss, weil ich vermeiden möchte, dass die Add-In-Benutzer Python auf ihrem Computer installieren, wenn sie dies nicht müssen.
Schritt 1 - Veröffentlichen Sie eine Genliste für den Service - Der Python-Code ist unten
json importieren
Importanforderungen
ENRICHR_URL = ' http://maayanlab.cloud/Enrichr/addList '
gene_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 = 'Beispielgenliste'
Nutzlast = {
'Liste': (Keine, Genes_str),
'Beschreibung': (Keine, Beschreibung)
}}
response = request.post (ENRICHR_URL, files = payload)
wenn nicht response.ok:
Ausnahme auslösen ('Fehler beim Analysieren der Genliste')
data = json.loads (response.text)
drucken (Daten)
Dadurch wird eine userListId generiert, mit der die Daten aus der Analyse abgerufen werden
Schritt 2 - Holen Sie sich eine Liste der biologischen Pfade, die eine gewisse Genanreicherung aus dem Dienst zeigen - Der Python-Code ist unten:
importieren json
importieren Anfragen
ENRICHR_URL = ' http://maayanlab.cloud/Enrichr/enrich '
query_string = '? userListId =% s & backgroundType =% s'
user_list_id = 363320
gene_set_library = 'KEGG_2015'
response = request.get (ENRICHR_URL + query_string% (user_list_id, gene_set_library))
wenn nicht response.ok:
erziehen Ausnahme( 'Fehler beim Abrufen der Anreicherungsergebnisse' )
data = json.loads (response.text)
drucken (Daten)
Im obigen Beispiel sollten im Idealfall drei Dinge passieren:
- (Die HTTP-Anforderung sollte mehrere gene_set-Bibliotheken durchlaufen (gene_set_library = {"KEGG_2015", "Panther_2016", "WikiPathways_2016", "Reactome_2016"} // viele weitere Bibliotheken sind verfügbar)
- Der abgerufene Json scheint nicht einfach zu analysieren zu sein und benötigt Header ( Rang, Termname, P-Wert, Z-Score, kombinierter Score, überlappende Gene, angepasster p-Wert, alter p-Wert, alter angepasster p-Wert)
- Jede abgerufene Json-Datei sollte in eine JMP-Tabelle verkettet werden
Ich hoffe, da draußen ist jemand, der nach einer kleinen Herausforderung sucht und bereit ist, es zu versuchen.
Freundliche Grüße,
Sebastien