Запуск clustalw на платформе Google с ошибкой при создании файла .aln в Ubuntu - PullRequest
0 голосов
/ 14 мая 2019

Я пытался запустить clustalw из библиотеки Python3 Biopython на Google Cloud Platform, а затем с помощью библиотеки Phylo сгенерировать филогенетическое дерево из файла .dnd.

Код работал без ошибок в моей локальной системе. Однако при запуске на платформе Google Cloud возникает следующая ошибка:

python3 clustal.py
Traceback (most recent call last):
  File "clustal.py", line 9, in <module>
    align = AlignIO.read("opuntia.aln", "clustal")
  File "/home/lhcy3w/.local/lib/python3.5/site-packages/Bio/AlignIO/__init__.py", line 435, in read
    first = next(iterator)
  File "/home/lhcy3w/.local/lib/python3.5/site-packages/Bio/AlignIO/__init__.py", line 357, in parse
    with as_handle(handle, 'rU') as fp:
  File "/usr/lib/python3.5/contextlib.py", line 59, in __enter__
    return next(self.gen)
  File "/home/lhcy3w/.local/lib/python3.5/site-packages/Bio/File.py", line 113, in as_handle
    with open(handleish, mode, **kwargs) as fp:
FileNotFoundError: [Errno 2] No such file or directory: 'opuntia.aln'

Если я запускаю sudo python3 clustal.py, ошибка будет

  File "clustal.py", line 1, in <module>
    from Bio import AlignIO
ImportError: No module named 'Bio'

Если я запускаю его как в интерактивной форме python, происходит следующее

Python 3.5.3 (default, Sep 27 2018, 17:25:39) 
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from Bio.Align.Applications import ClustalwCommandline
>>> in_file = "opuntia.fasta"
>>> clustalw_cline = ClustalwCommandline("/usr/bin/clustalw", infile=in_file)
>>> clustalw_cline()
('\n\n\n CLUSTAL 2.1 Multiple Sequence Alignments\n\n\nSequence format is Pearson\nSequence 1: gi|6273291|gb|AF191665.1|AF191665   902 bp\nSequence 2: gi|6273290|gb
|AF191664.1|AF191664   899 bp\nSequence 3: gi|6273289|gb|AF191663.1|AF191663   899 bp\nSequence 4: gi|6273287|gb|AF191661.1|AF191661   895 bp\nSequence 5: gi|627328
6|gb|AF191660.1|AF191660   893 bp\nSequence 6: gi|6273285|gb|AF191659.1|AF191659   894 bp\nSequence 7: gi|6273284|gb|AF191658.1|AF191658   896 bp\n\n', '\n\nERROR: 
Cannot open output file [opuntia.aln]\n\n\n')

Вот мой файл clustal.py:

from Bio import AlignIO
from Bio import Phylo
import matplotlib

from Bio.Align.Applications import ClustalwCommandline
in_file = "opuntia.fasta"
clustalw_cline = ClustalwCommandline("/usr/bin/clustalw", infile=in_file)
clustalw_cline()
tree = Phylo.read("opuntia.dnd", "newick")
tree = tree.as_phyloxml()
Phylo.draw(tree)

Я просто хочу знать, как создать файл .aln и .dnd на платформе Google Cloud, чтобы получить доступ к своей локальной среде. Наверное, это потому, что у меня нет разрешения на создание нового файла на сервере с python. Я пробовал f = open('test.txt', 'w') в Google Cloud, но он не мог работать, пока я не добавлю sudo перед командой терминала, такой как sudo python3 text.py. Однако, как вы можете видеть, для clustalw добавление sudo приводит только к отсутствию всей библиотеки биопионов.

...