Hola,
Necesito ayuda/orientación para convertir un código de Python para publicar y obtener datos de un sitio web ( https://maayanlab.cloud/Enrichr/help#api ) diseñado para determinar si hay enriquecimiento en una lista de genes o en algunas rutas biológicas. No estoy lo suficientemente familiarizado con la sintaxis necesaria para interactuar con la API REST usando la 'nueva solicitud HTTP' para lograr esto.
La capacidad de obtener información de esos servicios se fusionará en un complemento diseñado para realizar algunos análisis básicos de expresión génica. Estoy tratando de evitar tener que depender de Python dentro de JMP porque quiero evitar que los usuarios del complemento instalen Python en su máquina si no es necesario.
Paso 1: publique una lista de genes en el servicio - El código de Python está debajo
importar json
solicitudes de importación
ENRIQUECER_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 = 'Lista de genes de ejemplo'
carga útil = {
'lista': (Ninguno, genes_str),
'descripción': (Ninguno, descripción)
}
respuesta = solicitudes.post(ENRICHR_URL, archivos=carga útil)
si no responde.ok:
generar excepción ('Error al analizar la lista de genes')
datos = json.loads(respuesta.texto)
imprimir (datos)
Esto generará un userListId que se utilizará para recuperar los datos del análisis.
Paso 2: obtenga una lista de rutas biológicas que muestren algún enriquecimiento genético del servicio: El código de Python está a continuación:
importar json
importar peticiones
ENRIQUECER_URL = ' http://maayanlab.cloud/Enrichr/enriquecer '
consulta_cadena = '?userListId=%s&backgroundType=%s'
usuario_lista_id = 363320
gene_set_library = 'KEGG_2015'
respuesta = solicitudes.get( ENRICHR_URL + query_string % (user_list_id, gene_set_library) )
si no respuesta.ok:
aumentar Excepción( 'Error al obtener resultados de enriquecimiento' )
datos = json.loads(respuesta.texto)
imprimir (datos)
En el ejemplo anterior, idealmente deberían suceder 3 cosas:
- (La solicitud HTTP debe recorrer varias bibliotecas de conjuntos de genes (gene_set_library= {"KEGG_2015", "Panther_2016", "WikiPathways_2016", " Reactome_2016"} //hay muchas más bibliotecas disponibles)
- El Json que se recupera no parece analizarse fácilmente y debe tener encabezados ( Rango, nombre del término, valor P, puntaje Z, puntaje combinado, genes superpuestos, valor p ajustado, valor p anterior, valor p ajustado anterior) asociado con él
- Cada archivo Json recuperado debe concatenarse en una tabla JMP
Espero que haya alguien por ahí buscando un pequeño desafío y que esté dispuesto a intentarlo.
Atentamente,
Sebastián