annotate flapjack.py @ 38:7ae1bb322c6f draft

Uploaded
author cropgeeks
date Thu, 02 Mar 2017 08:01:45 -0500
parents 927533e85a6a
children c8c40cbe2945
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:
36
927533e85a6a Uploaded
cropgeeks
parents: 35
diff changeset
12 conn = sqlite.connect(filename)
35
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:
36
927533e85a6a Uploaded
cropgeeks
parents: 35
diff changeset
22 log.warning('%s, sniff Exception: %s', self, e)
35
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
23 return False
38
7ae1bb322c6f Uploaded
cropgeeks
parents: 36
diff changeset
24
7ae1bb322c6f Uploaded
cropgeeks
parents: 36
diff changeset
25 Binary.register_sniffable_binary_format( "flapjack", "flapjack", FlapjackFormat)
9
44c2d3b788f1 Uploaded
cropgeeks
parents: 7
diff changeset
26
28
326e6b1e926c Uploaded
cropgeeks
parents: 9
diff changeset
27 class FlapjackMapFormat(Tabular):
4
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
28 file_ext = "fjmap"
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
29
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
30 def sniff( self, filename ):
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
31 h = open(filename)
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
32 line = h.readline()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
33 if line.rstrip() != "# fjFile = MAP":
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
34 h.close()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
35 return False
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
36 return True
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
37
28
326e6b1e926c Uploaded
cropgeeks
parents: 9
diff changeset
38 class FlapjackGenotypeFormat(Tabular):
4
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
39 file_ext = "fjgenotype"
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
40
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
41 def sniff( self, filename ):
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
42 h = open(filename)
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
43 line = h.readline()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
44 if line.rstrip() != "# fjFile = GENOTYPE":
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
45 h.close()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
46 return False
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
47 return True
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
48
28
326e6b1e926c Uploaded
cropgeeks
parents: 9
diff changeset
49 class FlapjackPhenotypeFormat(Tabular):
4
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
50 file_ext = "fjphenotye"
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
51
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
52 def sniff( self, filename ):
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
53 h = open(filename)
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
54 line = h.readline()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
55 if line.rstrip() != "# fjFile = PHENOTYPE":
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
56 h.close()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
57 return False
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
58 return True
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
59
28
326e6b1e926c Uploaded
cropgeeks
parents: 9
diff changeset
60 class FlapjackQtlFormat(Tabular):
4
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
61 file_ext = "fjqtl"
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
62
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
63 def sniff( self, filename ):
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
64 h = open(filename)
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
65 line = h.readline()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
66 if line.rstrip() != "# fjFile = QTL":
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
67 h.close()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
68 return False
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
69 return True
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
70
28
326e6b1e926c Uploaded
cropgeeks
parents: 9
diff changeset
71 class FlapjackGraphFormat(Tabular):
4
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
72 file_ext = "fjgraph"
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
73
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
74 def sniff( self, filename ):
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
75 h = open(filename)
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
76 line = h.readline()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
77 if line.rstrip() != "# fjFile = GRAPH":
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
78 h.close()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
79 return False
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
80 return True