大部分分析我们需要明确转录本和基因的一一对应关系
如果是如下这种规范格式的,那么这种对应关系是好找的
准备文件如果是这样的呢?没有肉眼可见的关系,
- ensemble官网下载的pep序列文件
- 每个物种的一一对应文本文件
- 所有物种一一对应合并文件
#转录本id-基因id转化
from pathlib import Path
p = Path('H:\ensemble下载')
def transcript2gene(infile,outfile):
change_list = []
with open(infile,'rt') as f1:
for eachline in f1:
if eachline[0] == '>':
transcript_name = eachline.split(' ')[0].lstrip('>')
gene_name = eachline.split(' ')[3].split('=')[1]
change_list.append(transcript_name + 't' + gene_name + 'n')
with open(outfile,'wt') as f2:
for i in change_list:
f2.write(i)
def search_fa():
for infile in p.iterdir():
if infile.suffix == '.fa':
outfile = p / (infile.stem + "T2G.txt")
transcript2gene(infile,outfile)
search_fa()
#####合并多个txt转换文件
def merge():
mergefile = open(p / 'transcript2geneall.txt',"wt")
info = []
for each in p.iterdir():
if each.suffix == '.txt':
with open(each,'rt') as eachfile:
for n in eachfile:
info.append(n)
for m in info:
mergefile.write(m)
mergefile.close()
merge()



