【发布时间】:2014-07-11 16:38:43
【问题描述】:
我有一个蛋白质序列文件,如下所示:
>102L:A MNIFEMLRIDEGLRLKIYKDTEGYYTIGIGHLLTKSPSLNAAAKSELDKAIGRNTNGVITKDEAEKLFNQDVDAAVRGILRNAKLKPVYDSLDAVRRAALINMVFQMGETGVAGFTNSLRMLQQKRWDEAAVNLAKSRWYNQTPNRAKRVITTFRTGTWDAYKNL -------------------------------------------------------------------------------------------------------------------------------------------------------------------XX
第一个是序列的名称,第二个是实际的蛋白质序列,第一个是显示是否有缺失坐标的指示器。在这种情况下,请注意最后有两个“X”。这意味着序列的最后两个残基是“NL”,在这种情况下缺少坐标。
通过 Python 编码,我想生成一个如下所示的表格:
- 序列名称
- 缺失坐标的总数(即X的个数)
- 这些缺失坐标的范围(也就是那些X的位置范围) 4)序列的长度 5)实际顺序
所以最终结果应该是这样的:
>102L:A 2 163-164 164 MNIFEMLRIDEGLRLKIYKDTEGYYTIGIGHLLTKSPSLNAAAKSELDKAIGRNTNGVITKDEAEKLFNQDVDAAVRGILRNAKLKPVYDSLDAVRRAALINMVFQMGETGVAGFTNSLRMLQQKRWDEAAVNLAKSRWYNQTPNRAKRVITTFRTGTWDAYKNL
到目前为止,我的代码如下所示:
total_seq = []
with open('sample.txt') as lines:
for l in lines:
split_list = l.split()
# Assign the list number
header = split_list[0] # 1
seq = split_list[1] # 5
disorder = split_list[2]
# count sequence length and total residue of missing coordinates
sequence_length = len(seq) # 4
for x in disorder:
counts = 0
if x == 'X':
counts = counts + 1
total_seq.append([header, seq, str(counts)]) # obviously I haven't finish coding 2 & 3
with open('new_sample.txt', 'a') as f:
for lol in total_seq:
f.write('\n'.join(lol))
我是python的新手,有人能帮忙吗?
【问题讨论】:
-
你的问题到底是什么?
-
您这样做是为了创建一个可以加载到 R 中的表?为什么不能将序列加载到 R 中?查看 SeqinR 包。
-
@jonrsharpe 我的问题是如何使用我最初拥有的序列文件创建一个看起来像我最终结果的文件。很抱歉造成混乱。
-
@Bill 不一定要加载到 R 中。我只是想创建一个看起来像我最终结果的文件。很抱歉造成混乱。
-
@Jlod888 答案是“写代码”;这个问题对 SO 来说太宽泛了
标签: python dataset bioinformatics