项目实战代码:TCGA 20 条肿瘤信号通路整理

2022-11-11 16:13:34 浏览数 (1)

有人不喜欢空谈理论,喜欢 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中,然后在终端运行以下命令:

代码语言:javascript复制
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中,然后在终端运行以下命令:

代码语言:javascript复制
python get_pathway_gene_ddr.py

完成后,通路与基因的对应关系就保存到pathway_ddr.json中了。

最后总结

两个脚本主要用到了三个Python库:

  • json
  • pandas
  • collections

Python代码很简单吧?如果你看不懂这两个脚本,那基础知识还得加强,这是入门级的哈。

0 人点赞