我正在尝试检索两个序列的比对分数,使用biopython中的emboss进行比较。据我所知,唯一的方法是从emboss生成的输出文本文件中检索它。问题是将有数百个这样的文件需要迭代。有没有一种更简单、更干净的方法来检索比对得分,而不是求助于此?这是我使用的代码的主要部分。
From Bio.Emboss.Applications import StretcherCommandline
needle_cline = StretcherCommandline(asequence=,bsequence=,gapopen=,gapextend=,outfile=)
stdout, stderr = needle_cline()发布于 2013-12-02 06:23:33
我也有同样的问题,在花了一些时间寻找一个整洁的解决方案后,我弹出了一个白旗。
但是,为了显著加快输出文件的处理速度,我执行了以下操作:
1)我使用re python模块来处理正则表达式,以提取所需的所有数据。
2)我为输出文件创建了一个ramdisk空间。这里使用的内存磁盘允许处理和交换RAM内存中的所有数据(比从硬盘驱动器写入和读取输出文件要快得多,更不用说在处理大量比对的情况下节省了硬盘)。
发布于 2015-03-15 07:12:35
我不知道有没有专门为你指挥的。
对于Primer3CommandLine,有Primer3。让你的生活变得更轻松,比如:
from Bio.Emboss import Primer3
inputFile = "./wherever/your/outputfileis.out"
with open(inputFile) as fileHandle:
record = Primer3.parse(fileHandle)
# XXX check is len>0
primers = record.next().primers
numPrimers = len(primers)
# you should have access to each primer, using a for loop
# to check how to access the data you care about. For example:我也会检查http://biopython.org/wiki/SeqIO#Sequence_Input
https://stackoverflow.com/questions/18303160
复制相似问题