您的位置:首页 > 编程语言 > Python开发

根据GFF3文件统计外显子大小和数量以及内含子大小

2017-01-17 20:31 871 查看
### 根据GFF3文件统计外显子大小和数量以及内含子大小

with open('TSG.gff3', 'r') as f:
for line in f:
lin = line.strip().split('\t')
name = lin[8].split(';')[1].split('=')[-1]
if lin[2] == 'gene':
print '\n',
print name, lin[0], lin[3], lin[4],lin[6],
if lin[2] == 'exon':
print lin[3], lin[4],

# 上述程序统计每个基因的外显子起始与结束的位置,保存为1.txt,注意需要打开1.txt编辑删除第一行的空行
with open('1.txt', 'r') as f:
for line in f:
lin = line.strip().split()
a = len(lin)
for i in range(6, a, 2):
exon = int(lin[i]) - int(lin[i-1]) + 1
print lin[0], exon

#上述程序则是计算每个外显子的大小

with open('1.txt', 'r') as f:
for line in f:
lin = line.strip().split()
a = len(lin)
if a == 7:
print lin[0], '0'
if a > 7:
if lin[4] == '+':
for i in range(7, a, 2):
intron = abs(int(lin[i]) - int(lin[i-1]) - 1)
print lin[0], intron
if lin[4] == '-':
for i in range(8, a, 2):
intron = abs(int(lin[i]) + 1 - int(lin[i - 3]))
print lin[0], intron

#上述这个程序则是计算每个内含子的大小

with open('1.txt', 'r') as f:
for line in f:
lin = line.strip().split()
a = len(lin)
n = (a - 5)/2
print lin[0], n

#上述这个程序则是统计每个基因外显子的数量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python GFF3 exon intron 数量
相关文章推荐