annotate flapjack.py @ 39:c8c40cbe2945 draft

Uploaded
author cropgeeks
date Thu, 02 Mar 2017 08:16:25 -0500
parents 7ae1bb322c6f
children 4a0f069c98e0
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
39
c8c40cbe2945 Uploaded
cropgeeks
parents: 38
diff changeset
3 from galaxy.datatypes.binary import Binary
4
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
4
39
c8c40cbe2945 Uploaded
cropgeeks
parents: 38
diff changeset
5 class FlapjackFormat(Binary):
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):
39
c8c40cbe2945 Uploaded
cropgeeks
parents: 38
diff changeset
9 # The first 16 bytes of any SQLite3 database file is 'SQLite format 3\0', and the file is binary. For details
c8c40cbe2945 Uploaded
cropgeeks
parents: 38
diff changeset
10 # about the format, see http://www.sqlite.org/fileformat.html
c8c40cbe2945 Uploaded
cropgeeks
parents: 38
diff changeset
11 try:
c8c40cbe2945 Uploaded
cropgeeks
parents: 38
diff changeset
12 header = open(filename, 'rb').read(16)
c8c40cbe2945 Uploaded
cropgeeks
parents: 38
diff changeset
13 if header == b'SQLite format 3\0':
c8c40cbe2945 Uploaded
cropgeeks
parents: 38
diff changeset
14 fj_table_names = ["objects", "project"]
36
927533e85a6a Uploaded
cropgeeks
parents: 35
diff changeset
15 conn = sqlite.connect(filename)
35
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
16 c = conn.cursor()
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
17 tables_query = "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name"
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
18 result = c.execute(tables_query).fetchall()
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
19 result = [_[0] for _ in result]
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
20 for table_name in fj_table_names:
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
21 if table_name not in result:
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
22 return False
414aa590a1de Uploaded
cropgeeks
parents: 32
diff changeset
23 return True
39
c8c40cbe2945 Uploaded
cropgeeks
parents: 38
diff changeset
24 return False
c8c40cbe2945 Uploaded
cropgeeks
parents: 38
diff changeset
25 except:
c8c40cbe2945 Uploaded
cropgeeks
parents: 38
diff changeset
26 return False
38
7ae1bb322c6f Uploaded
cropgeeks
parents: 36
diff changeset
27
7ae1bb322c6f Uploaded
cropgeeks
parents: 36
diff changeset
28 Binary.register_sniffable_binary_format( "flapjack", "flapjack", FlapjackFormat)
9
44c2d3b788f1 Uploaded
cropgeeks
parents: 7
diff changeset
29
28
326e6b1e926c Uploaded
cropgeeks
parents: 9
diff changeset
30 class FlapjackMapFormat(Tabular):
4
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
31 file_ext = "fjmap"
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
32
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
33 def sniff( self, filename ):
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
34 h = open(filename)
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
35 line = h.readline()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
36 if line.rstrip() != "# fjFile = MAP":
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
37 h.close()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
38 return False
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
39 return True
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
40
28
326e6b1e926c Uploaded
cropgeeks
parents: 9
diff changeset
41 class FlapjackGenotypeFormat(Tabular):
4
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
42 file_ext = "fjgenotype"
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
43
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
44 def sniff( self, filename ):
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
45 h = open(filename)
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
46 line = h.readline()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
47 if line.rstrip() != "# fjFile = GENOTYPE":
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
48 h.close()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
49 return False
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
50 return True
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
51
28
326e6b1e926c Uploaded
cropgeeks
parents: 9
diff changeset
52 class FlapjackPhenotypeFormat(Tabular):
4
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
53 file_ext = "fjphenotye"
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
54
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
55 def sniff( self, filename ):
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
56 h = open(filename)
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
57 line = h.readline()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
58 if line.rstrip() != "# fjFile = PHENOTYPE":
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
59 h.close()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
60 return False
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
61 return True
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
62
28
326e6b1e926c Uploaded
cropgeeks
parents: 9
diff changeset
63 class FlapjackQtlFormat(Tabular):
4
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
64 file_ext = "fjqtl"
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
65
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
66 def sniff( self, filename ):
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
67 h = open(filename)
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
68 line = h.readline()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
69 if line.rstrip() != "# fjFile = QTL":
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
70 h.close()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
71 return False
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
72 return True
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
73
28
326e6b1e926c Uploaded
cropgeeks
parents: 9
diff changeset
74 class FlapjackGraphFormat(Tabular):
4
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
75 file_ext = "fjgraph"
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
76
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
77 def sniff( self, filename ):
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
78 h = open(filename)
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
79 line = h.readline()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
80 if line.rstrip() != "# fjFile = GRAPH":
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
81 h.close()
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
82 return False
8970bd921458 Uploaded
cropgeeks
parents:
diff changeset
83 return True