你好,
我需要一些帮助/指导来转换一些 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”
])
描述 = '基因列表示例'
有效负载={
'列表':(无,genes_str),
'描述':(无,描述)
}
响应= requests.post(ENRICHR_URL,文件=有效负载)
如果没有响应。确定:
引发异常('分析基因列表时出错')
数据 = json.loads(响应.text)
打印(数据)
这将生成一个 userListId,用于从分析中检索数据
第 2 步 - 获取显示服务中一些基因富集的生物途径列表 - Python代码如下:
进口json
进口要求
ENRICHR_URL = ' http://maayanlab.cloud/Enrichr/enrich '
查询字符串 = '?userListId=%s&backgroundType=%s'
用户列表 ID = 363320
基因集库= 'KEGG_2015'
响应 = requests.get( ENRICHR_URL + query_string % (user_list_id,gene_set_library) )
如果不是响应.确定:
增加例外( “获取丰富结果时出错” )
数据 = json.loads(响应.text)
打印(数据)
在上面的例子中,理想情况下应该发生 3 件事:
- (HTTP 请求应该循环访问多个gene_set 库 (gene_set_library= {"KEGG_2015", "Panther_2016", "WikiPathways_2016", "Reactome_2016"} //还有更多库可用)
- 检索到的 Json 似乎不容易解析,需要有标头(与其关联的排名、术语名称、P 值、Z 分数、组合分数、重叠基因、调整后的 p 值、旧 p 值、旧调整后的 p 值)
- 检索到的每个 Json 文件应连接到 JMP 表中
我希望有人正在寻找一点挑战并愿意尝试一下。
此致,
塞巴斯蒂安