我有一个看起来像这样的文件格式
>1ATGC>2TTTT>3ATGC>$$$>B1ATCG>B2TT-G>3TTCG>B4TT-G>B5TTCG>B6TTCG$$$>C1TTTT>C2ATGC注意:“$$$”将文件分开,例如$$$之前的任何设置为1且$$$设置为2之后和下一个$$$设置3之后的任何内容等。
我必须做到以下几点:
一个。连接“>”后面的序列。因此,我必须加入“ATGC”“TTTT”“ATGC”并存储在(1)中,并且我必须连接“ATCG”“TT-G”“TTCG”“TT-G”“TTCG”“TTCG”并存储如(2)...再次连接并存储在(3)
输出应该是一个如下所示的列表:
("ATGCTTTTATGC","ATCGTT-GTTCGTT-GTTCGTTCG","TTTTATGC")(2)然后,我找到具有最大长度的Set => Set(2)
(3)如果集合i的长度不等于集合(2),则在集合i处添加“Z”,使得集合i的长度现在等于集合(2)的长度,
(4)将所有“ - ”替换为“Z”
输出应该如下所示:
("ATGCTTTTATGCZZZZZZZZZZZZ",
"ATCGTTZGTTCGTTZGTTCGTTCG",
"TTTTATGCZZZZZZZZZZZZZZZZ")这是我尝试过的代码:
in_file = open('c:/test.txt','r')
org = []
seqlist = []
seqstring = ""
for line in in_file:
if line.startswith("$$$"):
if seqstring!= "":
seqlist.append(seqstring)
seqstring = ""
org.append(line.rstrip("\n"))
elif line.startswith(">"):
seqstring += line.rstrip("\n")
seqlist.append(seqstring)
setdraft = seqlist
maxsetlength = max(len(seqlist))
setdraft2 =[]
for i in setdraft:
if len(i) != maxsetlength:
setdraft2 = i.append("Z")
setfinal =[]
for j in setdraft2:
if j in setdraft2 =="-":
setfinal = j.insert ("Z")上述脚本不起作用。它给了我很多错误。
例如。当我打印setdraft时,它会给我输出
['>1ATGC>2TTTT>3ATGC>$$$>B1ATCG>B2TT-G>3TTCG>B4TT-G>B5TTCG>B6TTCG$$$>C1TTTT>C2ATGC']这与输入相同
Traceback (most recent call last):
File "C:/Users/ACER/Desktop/trial.py", line 25, in
maxsetlength = max(len(seqlist))
TypeError: 'int' object is not iterable