你好,
我需要一些帮助/指导来转换一些Python代码以发布并从网站获取数据( https://maayanlab.cloud/Enrichr/help#api ),旨在确定基因列表或某些生物途径中是否存在富集。 我对使用“新HTTP请求”与REST API进行交互所需的语法不够熟悉。
从这些服务中获取信息的能力将合并到旨在执行一些基本基因表达分析的插件中。 我试图避免在JMP中依赖Python,因为我想避免让外接用户在不需要的情况下在其计算机上安装Python。
步骤1-发布基因清单以进行服务-Python代码如下
导入json
汇入要求
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 ='示例基因列表'
有效载荷= {
'列表':(无,genes_str),
'说明':(无,说明)
}
响应= request.post(ENRICHR_URL,files = payload)
如果没有response.ok:
引发Exception('错误分析基因列表')
数据= json.loads(response.text)
打印(数据)
这将生成一个userListId,用于从分析中检索数据
第2步-获取显示该服务中一些基因富集的Biological Pathways的列表- Python代码如下:
进口json
进口要求
ENRICHR_URL = ' http://maayanlab.cloud/Enrichr/enrich '
query_string = '?userListId =%s&backgroundType =%s'
user_list_id = 363320
gene_set_library = 'KEGG_2015'
响应= request.get(ENRICHR_URL + query_string%(user_list_id,gene_set_library))
如果不response.ok:
提高例外( “提取浓缩结果时出错” )
数据= json.loads(response.text)
打印(数据)
在上面的示例中-理想情况下,应该发生3件事:
- (HTTP请求应在多个gene_set库中循环(gene_set_library = {“ KEGG_2015”, “ Panther_2016”,“ WikiPathways_2016”,“ Reactome_2016”} //还有很多可用的库)
- 检索到的Json似乎不容易解析,需要具有标头(与其相关的等级,术语名称,P值,Z分数,综合得分,重叠基因,调整的p值,旧的p值,旧的调整的p值)
- 检索到的每个Json文件都应串联到一个JMP表中
我希望有人在寻找一点挑战,并愿意尝试一下。
最好的祝福,
塞巴斯蒂安