分段故障

时间:2016-03-20 16:38:47

标签: python unix segmentation-fault fasta

我在UNIX机器上使用python 2.4.4(旧机器,无法做任何事情)。我是python /编程的新手,以前从未使用过UNIX机器。这就是我想要做的事情:

  1. 从FASTA文件(蛋白质+核苷酸)中提取单个序列到临时文本文件。
  2. 将此临时文件提供给名为' threader'
  3. 的程序
  4. 将threader的输出(称为tempresult.out)附加到名为results.out
  5. 的文件中
  6. 删除临时文件。
  7. 删除tempresult.out文件。
  8. 使用下一个FASTA序列重复。
  9. 到目前为止,这是我的代码:

    import os
    from itertools import groupby
    
    input_file = open('controls.txt', 'r')
    output_file = open('results.out', 'a')
    
    def fasta_parser(fasta_name):
    input = fasta_name
    parse = (x[1] for x in groupby(input, lambda line: line[0] == ">"))
    for header in parse:
        header = header.next()[0:].strip()
        seq = "\n".join(s.strip() for s in parse.next())
        yield (header, '\n', seq)
    
    parsedfile = fasta_parser(input_file)
    
    mylist = list(parsedfile)
    
    index = 0
    
    while index < len(mylist): 
        temp_file = open('temp.txt', 'a+')
        temp_file.write(' '.join(mylist[index]))    
        os.system('threader' + ' temp.txt' + ' tempresult.out' + ' structures.txt')
        os.remove('temp.txt')
        f = open('tempresult.out', 'r')
        data = str(f.read())
        output_file.write(data)   
        os.remove('tempresult.out')
        index +=1
    
    
    output_file.close()
    temp_file.close()
    input_file.close()
    

    当我运行此脚本时,我收到错误&#39; Segmentation Fault&#39;。从我收集的内容来看,这与我一起弄乱记忆,我不应该弄乱(???)。我认为它与临时文件有关,但我不知道如何解决这个问题。

    非常感谢任何帮助!

    谢谢!

    更新1: 当我像这样多次给它相同的序列时,Threader工作正常:

    import os
    
    
    input_file = open('control.txt', 'r')
    output_file = open('results.out', 'a')
    
    x=0
    
    while x<3:    
        os.system('threader' + ' control.txt' + ' tempresult.out' + ' structures.txt')
        f = open('tempresult.out', 'r')  
        data = str(f.read())
        output_file.write(data)    
        os.remove('result.out')
        x += 1
    
    
    output_file.close()
    input_file.close()
    

    更新2:如果其他人收到此错误。我忘了在调用threader程序之前关闭temp.txt。

0 个答案:

没有答案