生信编程实战第8题(python)
2018-08-25 本文已影响15人
天秤座的机器狗
题目来自生信技能树论坛
这道题很简单,但是应该更重要的是学会用R的方法,我后面会用R把这个系列的题目重做一遍,这里先用python做。
ID转换主要就是构建对应关系的字典
先看一下文件的内容
对应关系文件
head geneid2symbol.txt
1 A1BG
2 A2M
3 A2MP1
9 NAT1
10 NAT2
11 NATP
12 SERPINA3
13 AADAC
14 AAMP
15 AANAT
geneID文件
head my_geneID.txt
1175
2263
1581
4091
1783
2051
2248
22941
1410
881
脚本
import collections
geneDict=collections.OrderedDict()
with open ("geneid2symbol.txt") as fh:
for line in fh:
lineL=line.strip().split("\t")
gene_id=lineL[0]
symbol=lineL[1]
geneDict[gene_id]=symbol
for line in open("my_geneID.txt"):
line=line.strip()
print(geneDict[line])
运行结果
python3 exchange.py
AP2S1
FGFR2
CYP7A1
SMAD6
DYNC1LI2
EPHB6
FGF3
SHANK2
CRYAB
CCIN
CHKB
TSPAN2
YAF2
ZFC3H1
ATP6V0E2
LOC101929524
PCCA
HLA-DRB6
TMC6
JTB
POLD1
LHCGR
WBP4
FGL2
DEPDC5
EAPP
RRAS
B3GALT5
DESI2
SCN7A
其他的,geneID,symbol,ensembleID,entrez ID,probe ID 等等之间的转换,方法是一样的