Thanks for the answer. You have pointed to the Help page of an old version of clustalw (1.7, currently 2.0.10) which is a little outdated. Nevertheless it helped me to find out that it is possible to get the equivalent Help for current clustalw 2.0.10 just by running clustalw -help or clustalw -FULLHELP
I would like to run CLUSTAL 2.0.10 on an Unix system from the command line, but instead of passing options and arguments interactively, answering to the program when it asks p.g. for file names or formatting options, I need to pass them through a script or input file silently. Is there any way of doing this? Thanks in advance.
2 answers
You can run clustalw as a command passing it -INFILE , -PROFILE1 , PROFILE2 etc params without getting into user input mode. Make sure clustalw executable is in your PATH variable [HTML][HTML]here are the options[HTML] http://www.sacs.ucsf.edu/Documentation/seqsoftware/ClustalW1.7/help9.html
I had a big headache when solving this problem 6 months back when I didn't knew anything. But anyway now I can write you in detail how to do it silently through script.
import subprocess
from Bio.Align.Applications import ClustalwCommandline
cline = ClustalwCommandline("clustalw2", infile="opuntia.fasta", seqnos="ON", gapopen=2, gapext=0.5)
child = subprocess.call(str(cline), shell=(sys.platform!="win32"))
- Importing clustalw command line wrapper
- Subprocess - The subprocess module allows you to spawn new processes, connect to their input/output/error pipes, and obtain their return codes
Other parameters available
- Gap open penalty:
-gapopen - Gap extension penalty:
-gapext - no end gap(yes, no):
-endgaps - gap distance:
-gapdist - weight matrix(blosum, pam etc):
-matrix["BLOSUM","PAM","GONNET","ID"] - type (DNA,protein):
-type
It's easy to check the availabe parameters/options after wrapper have been created. Suppose from the above given example:
>>> cline = ClustalwCommandline(type='dna')
>>> dir(cline)
['__class__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__hash__',
'__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__setattr__', '__str__', '__weakref__', '_check_value', '_clear_parameter',
'_get_parameter', '_validate', 'align', 'bootlabels', 'bootstrap', 'case', 'check',
'clustering', 'convert', 'dnamatrix', 'endgaps', 'fullhelp', 'gapdist', 'gapext',
'gapopen', 'helixendin', 'helixendout', 'helixgap', 'help', 'hgapresidues', 'infile',
'iteration', 'kimura', 'ktuple', 'loopgap', 'matrix', 'maxdiv', 'maxseqlen',
'negative', 'newtree', 'newtree1', 'newtree2', 'nohgap', 'nopgap', 'nosecstr1',
'nosecstr2', 'noweights', 'numiter',
'options', 'outfile', 'outorder', 'output', 'outputtree', 'pairgap', 'parameters',
'profile', 'profile1', 'profile2', 'program_name', 'pwdnamatrix', 'pwgapext',
'pwgapopen', 'pwmatrix', 'quicktree', 'quiet', 'range', 'score', 'secstrout', 'seed',
'seqno_range', 'seqnos', 'sequences', 'set_parameter', 'stats', 'strandendin',
'strandendout', 'strandgap',
'terminalgap', 'topdiags', 'tossgaps', 'transweight', 'tree', 'type', 'usetree',
'usetree1', 'usetree2', 'window']
>>> print cline
clustalw2 -infile=opuntia.fasta -seqnos=ON -gapopen=2 -gapext=0.5
Before writing script you can first try by importing clustalwcommandline wrapper object play by passing parameters through shell/command line.
More information and Links
- http://www.daimi.au.dk/~mailund/scripting2005/lecture-notes/clustalw-ex.html
- http://www.sacs.ucsf.edu/Documentation/seqsoftware/ClustalW1.7/help9.html
- http://blog.sina.com.cn/s/blog_679a18eb0100ittq.html (Clear example on how to do it)
- My similar post in Biostar
Note- If you are using under windows then its important to put the clustalw on the system variable path
Hope it helps :)
Thanks for your help. I was just asking for help with running clustalw from the command line; instead you are showing how to run the program using some Bio: library (I thinks it's Biopython, right?). Though this is more than I needed, it should be useful for someone and I thank you for addressing this issue in such a complete way.
wao! this guy was really angry. Sorry that your question wasn't answered as anticipated.
Log in to answer this question.
don't worry, it took me an hour of google-ing to find it last time I needed it.
you have to search for "clustal batch mode" in a search engine. By the way, note that the current clustalw version is 2.1