你好,
我需要一些幫助/指導來轉換一些 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 表中
我希望有人正在尋找一點挑戰並願意嘗試一下。
此致,
塞巴斯蒂安