0

我正在尝试检索在 biopython 中使用 emboss 进行比较的两个序列的对齐分数。我知道的唯一方法是从 emboss 生成的输出文本文件中检索它。问题是将有数百个这样的文件需要迭代。是否有一种更简单/更清洁的方法来检索对齐分数,而无需诉诸于此?这是我正在使用的代码的主要部分。

From Bio.Emboss.Applications import StretcherCommandline
needle_cline = StretcherCommandline(asequence=,bsequence=,gapopen=,gapextend=,outfile=)
stdout, stderr = needle_cline()
4

2 回答 2

0

我遇到了同样的问题,花了一些时间寻找一个简洁的解决方案后,我弹出了一个白旗。

但是,为了显着加快输出文件的处理速度,我做了以下事情:

1)我使用re python 模块来处理正则表达式以提取所需的所有数据。

2) 我为输出文件创建了一个 ramdisk 空间。在这里使用 ramdisk 可以处理和交换 RAM 内存中的所有数据(比从硬盘驱动器写入和读取输出文件要快得多,更不用说在处理大量对齐的情况下它可以节省您的硬盘)。

于 2013-12-01T22:23:32.610 回答
0

我不知道是否有一个专门为你的命令。

对于 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

于 2015-03-14T23:12:34.867 回答