有人不喜欢空谈理论,喜欢 show me the code,好吧,今天就分享肿瘤项目实战中用到的两个脚本,完全免费。
背景知识
本文以分享代码为主,不过多涉及背景方面的知识,不太清楚的朋友可以自行查阅相关资料了解。这里只简单说下,TCGA 的 20 条肿瘤信号通路,分为两类:
- 一类是有丝分裂相关的,有 10 条。
- 一类是 DNA 损伤修复相关的,有 10 条。
通路与基因的对应关系列表,网上论文中可以下载到,但会发现,信息很乱。现在想知道,每个通路里到底有哪些基因,下面分享的两个脚本能够回答这个问题。
脚本一:get_pathway_gene_mit.py
这个脚本把 TCGA 10 条有丝分裂相关的信号通路中的基因提取出来,保存到一个json
文件中。
源代码
代码语言:javascript复制import sys
import json
import pandas as pd
from collections import OrderedDict
pathway_ten_fn = "TCGA_10_Oncogenic_Pathway.tsv"
pathway_mitosis = "pathway_mit.json"
# TCGA 10条肿瘤通路基因
df_ten = pd.read_table(pathway_ten_fn)
ptw = OrderedDict()
for i, r in df_ten.iterrows():
g = r['Gene']
p = r['Pathway']
p = 'MIT_' p.replace('-', '_')
# 如果通路名没有在字典中,则将通路名放入字典,将第一个基因放入列表
if p not in ptw:
ptw[p] = []
# 如果通路名已经在字典中了,则将基因名附加到列表后,最终将通路与基因在字典中关联起来
ptw[p].append(g)
with open(pathway_mitosis, 'w') as fh:
json.dump(ptw, fh, indent = 4)
使用方法
将上面的代码保存到脚本get_pathway_gene_mit.py
中,然后在终端运行以下命令:
python get_pathway_gene_mit.py
完成后,通路与基因的对应关系就保存到pathway_mit.json
中了。
脚本二:get_pathway_gene_ddr.py
这个脚本把 TCGA 10 条 DNA 损伤修复相关的信号通路中的基因提取出来,保存到一个json
文件中。
源代码
代码语言:javascript复制import sys
import json
import pandas as pd
from collections import OrderedDict
pathway_ddr_fn = "TCGA_DDR_276_Gene_Pathway.xlsx"
pathway_json = "pathway_ddr.json"
# TCGA DDR 276个基因
df_ddr = pd.read_excel(pathway_ddr_fn, skiprows = 3)
ptw = OrderedDict()
for i, r in df_ddr.iterrows():
g = r['gene']
pws = r['DDR Pathway'].split(',')
for p in pws:
p = 'DDR_' p
if p not in ptw:
ptw[p] = []
ptw[p].append(g)
with open(pathway_json, "w") as fh:
json.dump(ptw, fh, indent = 4)
使用方法
将上面的代码保存到脚本get_pathway_gene_ddr.py
中,然后在终端运行以下命令:
python get_pathway_gene_ddr.py
完成后,通路与基因的对应关系就保存到pathway_ddr.json
中了。
最后总结
两个脚本主要用到了三个Python
库:
- json
- pandas
- collections
Python
代码很简单吧?如果你看不懂这两个脚本,那基础知识还得加强,这是入门级的哈。