annotate rgClustalw.py @ 1:973f9ca114fb draft

planemo upload commit 00a7926c285bc4a339bd7deebf40b28f39c7d947-dirty
author devteam
date Tue, 21 Jul 2015 14:16:31 -0400
parents 7cc64024fe92
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
1 """
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
2 rgclustalw.py
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
3 wrapper for clustalw necessitated by bad choice of output path for .dnd file based on input file. Naughty.
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
4 Copyright ross lazarus march 2011
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
5 All rights reserved
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
6 Licensed under the LGPL
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
7 """
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
8
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
9 import sys,optparse,os,subprocess,tempfile,shutil
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
10
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
11 class Clustrunner:
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
12 """
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
13 """
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
14 def __init__(self,opts=None):
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
15 self.opts = opts
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
16 self.iname = 'infile_copy'
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
17 shutil.copy(self.opts.input,self.iname)
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
18
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
19 def run(self):
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
20 tlf = open(self.opts.outlog,'w')
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
21 cl = ['clustalw2 -INFILE=%s -OUTFILE=%s -OUTORDER=%s -TYPE=%s -OUTPUT=%s' % (self.iname,self.opts.output,self.opts.out_order,self.opts.dnarna,self.opts.outform)]
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
22 if self.opts.seq_range_end <> None and self.opts.seq_range_start <> None:
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
23 cl.append('-RANGE=%s,%s' % (self.opts.seq_range_start,self.opts.seq_range_end))
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
24 if self.opts.outform=='CLUSTAL' and self.opts.outseqnos <> None:
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
25 cl.append('-SEQNOS=ON')
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
26 process = subprocess.Popen(' '.join(cl), shell=True, stderr=tlf, stdout=tlf)
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
27 rval = process.wait()
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
28 dndf = '%s.dnd' % self.iname
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
29 if os.path.exists(dndf):
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
30 tlf.write('\nClustal created the following dnd file for your information:\n')
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
31 dnds = open('%s.dnd' % self.iname,'r').readlines()
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
32 for row in dnds:
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
33 tlf.write(row)
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
34 tlf.write('\n')
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
35 tlf.close()
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
36 os.unlink(self.iname)
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
37
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
38
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
39
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
40 if __name__ == "__main__":
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
41 op = optparse.OptionParser()
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
42 op.add_option('-i', '--input', default=None)
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
43 op.add_option('-o', '--output', default=None)
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
44 op.add_option('-t', '--outname', default="rgClustal")
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
45 op.add_option('-s', '--out_order', default='ALIGNMENT')
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
46 op.add_option('-f', '--outform', default='CLUSTAL')
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
47 op.add_option('-e', '--seq_range_end',default=None)
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
48 op.add_option('-b', '--seq_range_start',default=None)
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
49 op.add_option('-l','--outlog',default='rgClustalw.log')
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
50 op.add_option('-q', '--outseqnos',default=None)
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
51 op.add_option('-d', '--dnarna',default='DNA')
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
52
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
53 opts, args = op.parse_args()
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
54 assert opts.input <> None
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
55 assert os.path.isfile(opts.input)
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
56 c = Clustrunner(opts)
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
57 c.run()
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
58
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
59
7cc64024fe92 Imported from capsule None
devteam
parents:
diff changeset
60