2013-11-12 1 views
0

я хочу использовать MafftCommandline для выравнивания мои данные, но я получаю следующее сообщение об ошибке:файла не найдена ошибка с помощью питона

Traceback (most recent call last): 


File "C:\Users\Rimvis\Desktop\asd\bioinformatika2_Working.py", line 35, in <mo 
dule> 
    stdout, stderr = mafftCline() # Note that MAFFT will write the alignment to 
stdout, which you may want to save to a file and then parse 
    File "C:\Python27\lib\site-packages\Bio\Application\__init__.py", line 475, in 
__call__ 
    shell=(sys.platform!="win32")) 
    File "C:\Python27\lib\subprocess.py", line 679, in __init__ 
    errread, errwrite) 
    File "C:\Python27\lib\subprocess.py", line 896, in _execute_child 
    startupinfo) 
WindowsError: [Error 2] The system cannot find the file specified 

мой код выглядит следующим образом:

dataToProcess = "dataToProcess.fa" 
file = open(dataToProcess, "w") 

arrayOfSequences = [] 
for sequence in blast.alignments: 
    if sequence.length > blast.alignments[0].length * 80/100: 
     sequenceToAppend = SeqRecord(Seq(sequence.hsps[0].sbjct), id=sequence.title) 
     arrayOfSequences.append(sequenceToAppend) 
SeqIO.write(arrayOfSequences, file, "fasta") 
file.close() 

maffPath = "..\mafft-win\mafft.bat"  
mafftCline = MafftCommandline(maffPath, input=dataToProcess) 
stdout, stderr = mafftCline() # Note that MAFFT will write the alignment to stdout, which you may want to save to a file and then parse 
alignedData = "aligned.fa" 
alignedFile = open(alignedData, "w") 
alignedFile.write(stdout) 
alignedFile.close() 
aligned = AlignIO.read(alignedData, "fasta") 

я использовал this учебник в качестве примера

+2

Попробуйте использовать абсолютный путь для файла, а не только имя файла и посмотреть, устраняет ли это проблему. Приложение может выглядеть в другом месте, кроме каталога запуска для вашего файла. – woemler

ответ

0

Как сказал @willOEM, скрипт ищет файл в относительном каталоге.

В вашем скрипте предполагается, что его файл находится в том же каталоге, что и файл fasta файла dataToProcess.

Если вы перенесли свой скрипт или пытаетесь открыть файл, расположенный в другом месте, он поднимет эту ошибку.

Чтобы обратиться к абсолютной траектории, необходимо изменить dataToProcess, maffPath и alignedFile.

+0

Но мне также пришлось добавлять полные пути, поэтому спасибо за помощь – kuldarim

0

Проблема в том, что мне нужно было бежать от косых черт. И используйте maffPath = "..\\mafft-win\\mafft.bat" вместо maffPath = "..\mafft-win\mafft.bat"