- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
from Bio import SeqIO
import re, os
import pandas as pd
from Bio.Seq import Seq
from Bio.Alphabet import generic_dna
from Bio.SeqRecord import SeqRecord
os.chdir('c:\Users\Workspace\Desktop')
filename = os.path.join(os.getcwd(),'convertedgisaid','df.dat')
df = pd.read_table(filename, header=None, sep=' ',low_memory=False)
df.columns = ['GID','IsolateID','Carrier','Country','HN','Type','Date','Segment','Gene','Length','ETC','SEQ']
f_in = os.path.join(os.getcwd(),'convertedgisaid','annotationFULL.tbl')
f_out = os.path.join(os.getcwd(),'convertedgisaid','gisaid_influenza.cds')
file = open(f_in,'r')
records = file.read().split('>Feature ')
file.close()
records = records[1:]
f = open(f_out,'w')
start=1
end=0
for rec in records:
withoutNewline = re.sub("\n"," ",rec)
GID = re.match('\d{1,6}',withoutNewline).group()
Details = df[df.GID==GID]
Seq = list(Details.SEQ)[0]
codingSeq=''
codingDetails = ''
cdsSegment = re.findall("((?:\d{1,4} |<\d{1,4} >|\d{1,4} >)\d{1,4} CDS)",withoutNewline)
for cds in cdsSegment:
cdsSplit = cds.split(' ')
if(cdsSplit[0][0]=="<" or cdsSplit[1][0]==">"):
if(cdsSplit[0][0]=="<"):
start = cdsSplit[0][1:]
else:
start = cdsSplit[0]
if(cdsSplit[1][0]==">"):
end = cdsSplit[1][1:]
else:
end = cdsSplit[1]
else:
start = cdsSplit[0]
end = cdsSplit[1]
codingDetails+=cdsSplit[0]+'-'+cdsSplit[1]+','
codingSeq+=Seq[(int(start)-1):int(end)]
codingDetails = codingDetails[:-1]
curSeq = codingSeq.upper()
curId = GID
curDesc = ":"+codingDetails+"Influenza "+list(Details.Type)[0]+" virus ("+list(Details.ETC)[0]+" (" +list(Details.HN)[0]+"))"
cdsRecords = SeqRecord(Seq(curSeq, generic_dna), id=curId, description=curDesc)
SeqIO.write(cdsRecord,f,"fasta")
f.close()
以下代码显示以下错误:
Traceback (most recent call last): File "", line 1, in TypeError: 'str' object is not callable Topic:Biopython unable to declare new SeqRecord
我可以知道它有什么问题吗?我正在使用 Bio Python。
最佳答案
在 Stackoverflow 上寻求帮助时,请始终尝试将您的问题减少到 Minimal, Complete, and Verifiable example .
如果你这样做,你会看到你有以下导入:
from Bio.Seq import Seq
但在你的程序中,你定义了一个变量 Seq
如下
Seq = list(Details.SEQ)[0]
所以,现在 Seq
不再是 Bio.Seq
中的函数,而是一个字符串。
因此,当您尝试执行 SeqRecord(Seq(curSeq, generic_dna), id=curId, description=curDesc)
时,您会得到一个 TypeError
因为 Seq
不再可调用。
因此解决方案是将您的 Seq
变量重命名为其他名称,这样它就不会再影响导入的 Bio.Seq.Seq
。
关于python - Biopython 无法声明新的 SeqRecord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41857318/
from Bio import SeqIO import re, os import pandas as pd from Bio.Seq import Seq from Bio.Alphabet im
我想我应该尝试使用 Biopython 来挽救合作者提供的一些轻微损坏的 fastq 文件。我只需要修改包含特定子字符串的标题行(以 @ 开头)。但是,以下代码创建的新 fastq 文件没有变化。毫无
我正在尝试按文件中序列的字母顺序(而不是序列 ID)对 fasta 文件进行排序。 fasta 文件包含超过 200 个序列,我试图在一个 bit master(使用 python 代码)中找到重复项
我是一名优秀的程序员,十分优秀!