annotate ontology.py @ 2:474ea11c8581

Uploaded
author jorrit
date Tue, 12 Feb 2013 13:47:22 -0500
parents 646b05282962
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
646b05282962 Uploaded
jorrit
parents:
diff changeset
1 """
646b05282962 Uploaded
jorrit
parents:
diff changeset
2 Ontology datatypes
646b05282962 Uploaded
jorrit
parents:
diff changeset
3
646b05282962 Uploaded
jorrit
parents:
diff changeset
4 """
646b05282962 Uploaded
jorrit
parents:
diff changeset
5 import pkg_resources
646b05282962 Uploaded
jorrit
parents:
diff changeset
6 pkg_resources.require( "bx-python" )
646b05282962 Uploaded
jorrit
parents:
diff changeset
7
646b05282962 Uploaded
jorrit
parents:
diff changeset
8 import logging, os, sys, time, tempfile, shutil
646b05282962 Uploaded
jorrit
parents:
diff changeset
9 import data
646b05282962 Uploaded
jorrit
parents:
diff changeset
10 from galaxy import util
646b05282962 Uploaded
jorrit
parents:
diff changeset
11 from galaxy.datatypes.sniff import *
646b05282962 Uploaded
jorrit
parents:
diff changeset
12 from galaxy.web import url_for
646b05282962 Uploaded
jorrit
parents:
diff changeset
13 from cgi import escape
646b05282962 Uploaded
jorrit
parents:
diff changeset
14 import urllib
646b05282962 Uploaded
jorrit
parents:
diff changeset
15 from bx.intervals.io import *
646b05282962 Uploaded
jorrit
parents:
diff changeset
16 from galaxy.datatypes import metadata
646b05282962 Uploaded
jorrit
parents:
diff changeset
17 from galaxy.datatypes.metadata import MetadataElement
646b05282962 Uploaded
jorrit
parents:
diff changeset
18 from galaxy.datatypes.tabular import Tabular
646b05282962 Uploaded
jorrit
parents:
diff changeset
19 import math
646b05282962 Uploaded
jorrit
parents:
diff changeset
20
646b05282962 Uploaded
jorrit
parents:
diff changeset
21 log = logging.getLogger(__name__)
646b05282962 Uploaded
jorrit
parents:
diff changeset
22
646b05282962 Uploaded
jorrit
parents:
diff changeset
23 class Ontology( data.Text ):
646b05282962 Uploaded
jorrit
parents:
diff changeset
24 """Any ontology Format"""
646b05282962 Uploaded
jorrit
parents:
diff changeset
25 file_ext = "ontology"
646b05282962 Uploaded
jorrit
parents:
diff changeset
26
646b05282962 Uploaded
jorrit
parents:
diff changeset
27 def init_meta( self, dataset, copy_from=None ):
646b05282962 Uploaded
jorrit
parents:
diff changeset
28 data.Text.init_meta( self, dataset, copy_from=copy_from )
646b05282962 Uploaded
jorrit
parents:
diff changeset
29
646b05282962 Uploaded
jorrit
parents:
diff changeset
30
646b05282962 Uploaded
jorrit
parents:
diff changeset
31 class Obo( Ontology ):
646b05282962 Uploaded
jorrit
parents:
diff changeset
32 """OBO Format"""
646b05282962 Uploaded
jorrit
parents:
diff changeset
33 file_ext = "obo"
646b05282962 Uploaded
jorrit
parents:
diff changeset
34
646b05282962 Uploaded
jorrit
parents:
diff changeset
35 def init_meta( self, dataset, copy_from=None ):
646b05282962 Uploaded
jorrit
parents:
diff changeset
36 data.Text.init_meta( self, dataset, copy_from=copy_from )
646b05282962 Uploaded
jorrit
parents:
diff changeset
37 def sniff( self, filename ):
646b05282962 Uploaded
jorrit
parents:
diff changeset
38 """
646b05282962 Uploaded
jorrit
parents:
diff changeset
39 Determines whether the file is in OBO format
646b05282962 Uploaded
jorrit
parents:
diff changeset
40 """
646b05282962 Uploaded
jorrit
parents:
diff changeset
41 headers = get_headers( filename, '\n' )
646b05282962 Uploaded
jorrit
parents:
diff changeset
42 try:
646b05282962 Uploaded
jorrit
parents:
diff changeset
43 for hdr in headers:
646b05282962 Uploaded
jorrit
parents:
diff changeset
44 if hdr and hdr[0].startswith( 'format-version:' ) :
646b05282962 Uploaded
jorrit
parents:
diff changeset
45 return True
646b05282962 Uploaded
jorrit
parents:
diff changeset
46 return False
646b05282962 Uploaded
jorrit
parents:
diff changeset
47 except:
646b05282962 Uploaded
jorrit
parents:
diff changeset
48 return False
646b05282962 Uploaded
jorrit
parents:
diff changeset
49
646b05282962 Uploaded
jorrit
parents:
diff changeset
50 class Owl( Ontology ):
646b05282962 Uploaded
jorrit
parents:
diff changeset
51 """OWL"""
646b05282962 Uploaded
jorrit
parents:
diff changeset
52 file_ext = "owl"
646b05282962 Uploaded
jorrit
parents:
diff changeset
53
646b05282962 Uploaded
jorrit
parents:
diff changeset
54 def init_meta( self, dataset, copy_from=None ):
646b05282962 Uploaded
jorrit
parents:
diff changeset
55 data.Text.init_meta( self, dataset, copy_from=copy_from )
646b05282962 Uploaded
jorrit
parents:
diff changeset
56 def sniff( self, filename ):
646b05282962 Uploaded
jorrit
parents:
diff changeset
57 """
646b05282962 Uploaded
jorrit
parents:
diff changeset
58 Determines whether the file is in OWL RDF-XML format
646b05282962 Uploaded
jorrit
parents:
diff changeset
59 """
646b05282962 Uploaded
jorrit
parents:
diff changeset
60 headers = get_headers( filename, '\n' )
646b05282962 Uploaded
jorrit
parents:
diff changeset
61 try:
646b05282962 Uploaded
jorrit
parents:
diff changeset
62 for hdr in headers:
646b05282962 Uploaded
jorrit
parents:
diff changeset
63 if hdr and hdr[0].find( '<owl' ) > -1 :
646b05282962 Uploaded
jorrit
parents:
diff changeset
64 return True
646b05282962 Uploaded
jorrit
parents:
diff changeset
65 if hdr and hdr[0].find( 'http://www.w3.org/2002/07/owl' ) > -1 :
646b05282962 Uploaded
jorrit
parents:
diff changeset
66 return True
646b05282962 Uploaded
jorrit
parents:
diff changeset
67 return False
646b05282962 Uploaded
jorrit
parents:
diff changeset
68 except:
646b05282962 Uploaded
jorrit
parents:
diff changeset
69 return False
646b05282962 Uploaded
jorrit
parents:
diff changeset
70
646b05282962 Uploaded
jorrit
parents:
diff changeset
71
646b05282962 Uploaded
jorrit
parents:
diff changeset
72 class OwlRdfXML( Owl ):
646b05282962 Uploaded
jorrit
parents:
diff changeset
73 """OWL RDF/XML"""
646b05282962 Uploaded
jorrit
parents:
diff changeset
74
646b05282962 Uploaded
jorrit
parents:
diff changeset
75 def init_meta( self, dataset, copy_from=None ):
646b05282962 Uploaded
jorrit
parents:
diff changeset
76 data.Text.init_meta( self, dataset, copy_from=copy_from )
646b05282962 Uploaded
jorrit
parents:
diff changeset
77 def sniff( self, filename ):
646b05282962 Uploaded
jorrit
parents:
diff changeset
78 """
646b05282962 Uploaded
jorrit
parents:
diff changeset
79 Determines whether the file is in OWL RDF-XML format
646b05282962 Uploaded
jorrit
parents:
diff changeset
80 """
646b05282962 Uploaded
jorrit
parents:
diff changeset
81 headers = get_headers( filename, '\n' )
646b05282962 Uploaded
jorrit
parents:
diff changeset
82 try:
646b05282962 Uploaded
jorrit
parents:
diff changeset
83 for hdr in headers:
646b05282962 Uploaded
jorrit
parents:
diff changeset
84 if hdr and hdr[0].find( '<owl:Ontology' ) > -1 :
646b05282962 Uploaded
jorrit
parents:
diff changeset
85 return True
646b05282962 Uploaded
jorrit
parents:
diff changeset
86 return False
646b05282962 Uploaded
jorrit
parents:
diff changeset
87 except:
646b05282962 Uploaded
jorrit
parents:
diff changeset
88 return False
646b05282962 Uploaded
jorrit
parents:
diff changeset
89
646b05282962 Uploaded
jorrit
parents:
diff changeset
90