在Google平台上运行clustalw并在ubuntu中生成.aln文件时出错

时间:2019-05-14 02:22:31

标签: python-3.x ubuntu google-cloud-platform biopython clustal

我试图从Google Cloud Platform上的python3的Biopython库运行clustalw,然后使用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)

我只想知道如何在本地环境中在Google Cloud平台上创建.aln和.dnd文件。我猜可能是因为我没有使用python在服务器上创建新文件的权限。我已经在Google Cloud上尝试过f = open('test.txt', 'w'),但是直到在sudo之类的终端命令之前添加sudo python3 text.py,该方法才起作用。但是,如您所见,对于clustalw,添加sudo仅会使整个biopython库丢失。

0 个答案:

没有答案