Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python脚本:没有输出,但没有错误?_Python - Fatal编程技术网

Python脚本:没有输出,但没有错误?

Python脚本:没有输出,但没有错误?,python,Python,我有一系列的短DNA比对,我想追踪其中的位置和各种不匹配。路线之间用“---”分隔,因此文件如下所示: TTCGCTTGCAGAGAGAAATCAC ||||| |||||||||||||||| TTCGCATGCAGAGAGAAATCAC -- TGCTCACCTCTCTTTCTGTCAGT ||||||||||||||| ||||||| TGCTCACCTCTCTTTGTGTCAGT -- TGCTCAC-TGCTCTTTCTGTCAG ||||||| | ||||||||||||| TGC

我有一系列的短DNA比对,我想追踪其中的位置和各种不匹配。路线之间用“---”分隔,因此文件如下所示:

TTCGCTTGCAGAGAGAAATCAC
||||| ||||||||||||||||
TTCGCATGCAGAGAGAAATCAC
--
TGCTCACCTCTCTTTCTGTCAGT
||||||||||||||| |||||||
TGCTCACCTCTCTTTGTGTCAGT
--
TGCTCAC-TGCTCTTTCTGTCAG
||||||| | |||||||||||||
TGCTCACCT-CTCTTTCTGTCAG
--
5,'T A'
15,'C G'
7,'- C'
9,'G -'
我有一个使用BioPython创建对齐对象的短脚本,我想将结果写入如下文件:

TTCGCTTGCAGAGAGAAATCAC
||||| ||||||||||||||||
TTCGCATGCAGAGAGAAATCAC
--
TGCTCACCTCTCTTTCTGTCAGT
||||||||||||||| |||||||
TGCTCACCTCTCTTTGTGTCAGT
--
TGCTCAC-TGCTCTTTCTGTCAG
||||||| | |||||||||||||
TGCTCACCT-CTCTTTCTGTCAG
--
5,'T A'
15,'C G'
7,'- C'
9,'G -'
这是我到目前为止写的脚本。它不返回任何错误,也不返回任何输出。非常感谢您的帮助/指导

#!/usr/bin/python

from __future__ import print_function
from itertools import groupby
from Bio import Alphabet
from Bio.Align.Generic import Alignment
from Bio.Align import AlignInfo
from Bio.Align.AlignInfo import SummaryInfo
from Bio.Seq import Seq
from Bio.Alphabet import IUPAC, Gapped

def align_iter(tmp2):
    """given an alignment file, yield tuples of topline, pipes, bottomline"""
    al = open('tmp2', 'r')
    alniter = (x[1:3] for x in groupby(al, lambda line: line[0] == "-"))  ## split file on '--'
    align = Alignment(Gapped(IUPAC.unambiguous_dna, "-"))  ## these are gapped alignments
    for align in alniter: # for i in range(len(alniter(i)))
        align.add_sequence("full", x[1])    ### together the 3 lines are the alignment
        align.add_sequence("pipes", x[2])
        align.add_sequence("mature", x[3])
    """
    for each mismatch in the alignment, print out the mismatching pairs
    and their index position
    """
def reportMismatch(align):
    for i,c in enumerate(align):     #### want to return an iterator, i think
        if " "==str(x[2].seq):       ### where ever there's a mismatch in the alignment (no pipe),
            yield "{}".format(i)     ### return the column and its index
    for i in reportMismatch():
        with open('Out.txt', 'a') as f:   ### write the results to a file
            print(i, align.get_column(i), file=f)    ### including the position (index) and column contents

Python脚本需要一个主入口点来运行它

在脚本底部添加以下代码:

if __name__ == '__main__':
  # Call the function you want to invoke.

然后,您至少可以看到您的函数正在执行。然后您可以开始进一步调试。

这就是您的整个脚本吗?没有任何函数调用这些函数。行
产生“{}”。format(i)
将创建一个生成器。您的注释表明您可能希望
返回值,而不是
生成值。旁注:
itertools.groupby
为组和分组元素的生成器返回两个
元组(一对)
x[1:3]
将生成一个仅包含生成器的元组(切片要求两个元素,但从索引1开始只有一个元素),而该生成器无法被索引。除此之外,当您使用结果时,您迭代命名组
align
,然后索引
x
,这是双重错误;没有
x
,无法对生成器编制索引。这就是你真正想要的
groupby
?也许你想要一些其他的
groupby
,例如熊猫(从未使用过)?在这些情况下,我所做的是,在每几行之后,在每个
if
语句中,添加命令
print(number)
,其中
number
每次增加1,然后我计算出程序的输出数量,然后我会看到哪些遗漏了,我可以用它来定位问题