annotate flapjack.py @ 35:414aa590a1de draft

Uploaded
author cropgeeks
date Thu, 02 Mar 2017 05:40:54 -0500
parents 591567e072f1
children 927533e85a6a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
32
591567e072f1 Uploaded
cropgeeks
parents: 31
diff changeset
1 from galaxy.datatypes.data import Text
31
9f4041f700d8 Uploaded
cropgeeks
parents: 28
diff changeset
2 from galaxy.datatypes.tabular import Tabular
35
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
3 from galaxy.datatypes.binary import SQlite
4
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
4
35
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
5 class FlapjackFormat(SQlite):
9
44c2d3b788f1 Uploaded
cropgeeks
parents: 7
diff changeset
6 file_ext = "flapjack"
35
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
7
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
8 def sniff(self, filename):
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
9 if super(FlapjackFormat, self).sniff(filename):
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
10 fj_table_names = ["objects", "project"]
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
11 try:
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
12 conn = sqlite.connect( filename )
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
13 c = conn.cursor()
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
14 tables_query = "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name"
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
15 result = c.execute(tables_query).fetchall()
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
16 result = [_[0] for _ in result]
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
17 for table_name in fj_table_names:
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
18 if table_name not in result:
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
19 return False
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
20 return True
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
21 except Exception as e:
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
22 log.warning( '%s, sniff Exception: %s', self, e )
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
23 return False
9
44c2d3b788f1 Uploaded
cropgeeks
parents: 7
diff changeset
24
28
326e6b1e926c Uploaded
cropgeeks
parents: 9
diff changeset
25 class FlapjackMapFormat(Tabular):
4
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
26 file_ext = "fjmap"
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
27
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
28 def sniff( self, filename ):
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
29 h = open(filename)
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
30 line = h.readline()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
31 if line.rstrip() != "# fjFile = MAP":
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
32 h.close()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
33 return False
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
34 return True
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
35
28
326e6b1e926c Uploaded
cropgeeks
parents: 9
diff changeset
36 class FlapjackGenotypeFormat(Tabular):
4
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
37 file_ext = "fjgenotype"
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
38
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
39 def sniff( self, filename ):
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
40 h = open(filename)
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
41 line = h.readline()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
42 if line.rstrip() != "# fjFile = GENOTYPE":
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
43 h.close()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
44 return False
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
45 return True
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
46
28
326e6b1e926c Uploaded
cropgeeks
parents: 9
diff changeset
47 class FlapjackPhenotypeFormat(Tabular):
4
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
48 file_ext = "fjphenotye"
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
49
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
50 def sniff( self, filename ):
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
51 h = open(filename)
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
52 line = h.readline()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
53 if line.rstrip() != "# fjFile = PHENOTYPE":
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
54 h.close()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
55 return False
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
56 return True
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
57
28
326e6b1e926c Uploaded
cropgeeks
parents: 9
diff changeset
58 class FlapjackQtlFormat(Tabular):
4
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
59 file_ext = "fjqtl"
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
60
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
61 def sniff( self, filename ):
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
62 h = open(filename)
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
63 line = h.readline()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
64 if line.rstrip() != "# fjFile = QTL":
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
65 h.close()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
66 return False
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
67 return True
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
68
28
326e6b1e926c Uploaded
cropgeeks
parents: 9
diff changeset
69 class FlapjackGraphFormat(Tabular):
4
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
70 file_ext = "fjgraph"
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
71
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
72 def sniff( self, filename ):
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
73 h = open(filename)
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
74 line = h.readline()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
75 if line.rstrip() != "# fjFile = GRAPH":
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
76 h.close()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
77 return False
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
78 return True