comparison CADDSuite/galaxyconfigs/molFiles.py @ 3:ff6df146c0d5

Uploaded
author marcel
date Sun, 26 Jun 2011 13:53:57 -0400
parents bac3c274238f
children
comparison
equal deleted inserted replaced
2:bbc4a2c1d276 3:ff6df146c0d5
1 # -*- coding: utf-8 -*-
2
3 import data
4 import logging
5 from galaxy.datatypes.sniff import *
6 import commands
7
8 log = logging.getLogger(__name__)
9
10 class GenericMolFile( data.Text ):
11 file_ext = "mol2/sdf/drf"
12 def check_filetype( self,filename ):
13 self.no_mols = commands.getstatusoutput("grep -c \\$\\$\\$\\$ "+filename)
14 if (self.no_mols[0] == 0) & (self.no_mols[1] > 0):
15 self.file_ext="sdf"
16 return True
17 self.no_mols = commands.getstatusoutput("grep -c @\<TRIPOS\>MOLECULE "+filename)
18 if (self.no_mols[0] == 0) & (self.no_mols[1] > 0):
19 self.file_ext="mol2"
20 return True
21 self.no_mols = commands.getstatusoutput("grep -c \"ligand id\" "+filename)
22 if (self.no_mols[0] == 0) & (self.no_mols[1] > 0):
23 self.file_ext="drf"
24 return True
25 self.no_mols = commands.getstatusoutput("grep -c HEADER "+filename)
26 if (self.no_mols[0] == 0) & (self.no_mols[1] > 0):
27 self.file_ext="pdb"
28 return True
29 return False
30
31 def set_peek( self, dataset, is_multi_byte=False ):
32 if not dataset.dataset.purged:
33 if(self.check_filetype(dataset.file_name)) :
34 if (self.no_mols[1] == '1'):
35 dataset.blurb = "1 molecule"
36 else:
37 dataset.blurb = "%s molecules"%self.no_mols[1]
38 dataset.peek = data.get_file_peek( dataset.file_name, is_multi_byte=is_multi_byte )
39 else:
40 dataset.peek = 'file does not exist'
41 dataset.blurb = 'file purged from disk'
42
43 def get_mime(self):
44 return 'text/plain'
45
46
47 class GenericMultiMolFile( GenericMolFile ):
48 def set_peek( self, dataset, is_multi_byte=False ):
49 if not dataset.dataset.purged:
50 self.sniff(dataset.file_name)
51 if (self.no_mols[1] == '1'):
52 dataset.blurb = "1 molecule"
53 else:
54 dataset.blurb = "%s molecules"%self.no_mols[1]
55 dataset.peek = data.get_file_peek( dataset.file_name, is_multi_byte=is_multi_byte )
56 else:
57 dataset.peek = 'file does not exist'
58 dataset.blurb = 'file purged from disk'
59
60 class SDF( GenericMultiMolFile ):
61 file_ext = "sdf"
62 def sniff( self, filename ):
63 self.no_mols = commands.getstatusoutput("grep -c \\$\\$\\$\\$ "+filename)
64 if (self.no_mols[0] == 0) & (self.no_mols[1] > 0):
65 return True
66 else:
67 return False
68
69 class MOL2( GenericMultiMolFile ):
70 file_ext = "mol2"
71 def sniff( self, filename ):
72 self.no_mols = commands.getstatusoutput("grep -c @\<TRIPOS\>MOLECULE "+filename)
73 if (self.no_mols[0] == 0) & (self.no_mols[1] > 0):
74 return True
75 else:
76 return False
77
78 class DRF( GenericMultiMolFile ):
79 file_ext = "drf"
80 def sniff( self, filename ):
81 self.no_mols = commands.getstatusoutput("grep -c \"ligand id\" "+filename)
82 if (self.no_mols[0] == 0) & (self.no_mols[1] > 0):
83 return True
84 else:
85 return False
86
87 class PDB( GenericMolFile ):
88 file_ext = "pdb"
89 def sniff( self, filename ):
90 self.no_mols = commands.getstatusoutput("grep -c HEADER "+filename)
91 if (self.no_mols[0] == 0) & (self.no_mols[1] > 0):
92 return True
93 else:
94 return False
95 def set_peek( self, dataset, is_multi_byte=False ):
96 #def set_peek( self, dataset, line_count=None, is_multi_byte=False ):
97 if not dataset.dataset.purged:
98 res = commands.getstatusoutput("lib/galaxy/datatypes/countResidues.sh "+dataset.file_name)
99 dataset.peek = res[1]
100 self.sniff(dataset.file_name)
101 if (self.no_mols[1] == '1'):
102 dataset.blurb = "1 protein structure"
103 else:
104 dataset.blurb = "%s protein structures"%self.no_mols[1]
105 else:
106 dataset.peek = 'file does not exist'
107 dataset.blurb = 'file purged from disk'
108
109 class grd ( data.Text ) :
110 file_ext = "grd"
111 def set_peek( self, dataset, is_multi_byte=False ):
112 if not dataset.dataset.purged:
113 #dataset.peek = ""
114 dataset.blurb = "score-grids for docking"
115 else:
116 dataset.peek = 'file does not exist'
117 dataset.blurb = 'file purged from disk'
118
119 class grdtgz ( data.Text ) :
120 file_ext = "grd.tgz"
121 def set_peek( self, dataset, is_multi_byte=False ):
122 if not dataset.dataset.purged:
123 #dataset.peek = ""
124 dataset.blurb = "compressed score-grids for docking"
125 else:
126 dataset.peek = 'file does not exist'
127 dataset.blurb = 'file purged from disk'
128