如何在没有输入FASTA文件的情况下运行ClustalW2?
我可以在命令中添加管道吗?我目前正在关注section 6.2.1中的Biopython Tutorial and Cookbook。
答案 0 :(得分:2)
我假设您希望使用clustal
包装器ClustalwCommandLine
。作为包装器,它的功能是从实例创建适当的命令行调用。
我认为使用subprocess
直接使用命令行工具通常更容易(因此完全跳过Biopython)。
stdin in clustalw2
咨询clustalw2
documentation,我认为无法从stdin
传递数据:
DATA (sequences)
-INFILE=file.ext :input sequences.
-PROFILE1=file.ext and -PROFILE2=file.ext :profiles (old alignment).
stdin in clustalo
但是,如果升级到Clustal Omega是一个选项,您可以在Clustal Omega documentation
中看到可以通过-
来表示从stdin
获取输入:
SEQUENCE INPUT:
-i, --in, --infile={<file>,-}
Multiple sequence input file (- for stdin)
请参阅how do I pass a string in subprocess.Popen
以供参考,但简而言之:
from subprocess import Popen, PIPE, STDOUT
proc = Popen(['clustalwo', '-', <...>], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
stdout = p.communicate(input='> Seq one\nATCGCTACGCACTACGTACG...')