source: orange-bioinformatics/_bioinformatics/obiKEGG/types.py @ 1733:548d1187a29f

Revision 1733:548d1187a29f, 3.6 KB checked in by Ales Erjavec <ales.erjavec@…>, 14 months ago (diff)

Porting obiKEGG to use the new REST KEGG API.

Line 
1"""
2Return types from api classes interface for the SOAP kegg api.
3
4"""
5
6from datetime import datetime
7from collections import namedtuple
8from operator import methodcaller
9
10Definition = namedtuple(
11    "Definition",
12    ["entry_id",
13     "definition"]
14)
15
16
17def _Definition_from_items(items):
18    """ Definition 'items' tuple from a list of items
19    """
20    items_list = []
21    for name, val in items:
22        if isinstance(name, list):
23            name = name[0]
24        if isinstance(val, list):
25            val = val[0]
26        items_list.append((str(name), str(val)))
27    return Definition(**dict(items_list))
28
29
30def _Definition_from_str(text):
31    """
32    Return a `Definition` item by parsing a tab separated string `text`
33    i.e. text must be of the form '<entry_id>\t<definition>'
34
35    """
36    return Definition(*text.split("\t", 1))
37
38
39Definition.from_items = staticmethod(_Definition_from_items)
40Definition.from_str = staticmethod(_Definition_from_str)
41
42
43OrganismSummary = namedtuple(
44    "OrganismSummary",
45    ["entry_id",
46     "org_code",
47     "name",
48     "lineage"],
49)
50
51
52def OrganismSummary_from_str(string):
53    return OrganismSummary(*string.split("\t"))
54
55OrganismSummary.from_str = staticmethod(OrganismSummary_from_str)
56
57
58BInfo = namedtuple(
59    'BInfo',
60    ["entry_id",
61    "definition",
62    "name",
63    "release",
64    "curator",
65    "contents",
66    "last_update",
67    "supported_formats"]
68)
69
70
71def _BInfo_from_text(text):
72    """ Parse the return string from info into a new BInfo instance.
73    """
74    lines = text.splitlines()
75    name, definition = lines[0].split(" ", 1)
76    definition = definition.strip()
77    entry_id, release = lines[1].split(" ", 1)
78    _, release = release.strip().split(" ", 1)
79    curator = lines[2].strip()
80    contents = "\n".join(map(methodcaller("strip"), lines[3:]))
81
82    return BInfo(entry_id, definition, name, release, curator,
83                 contents, None, None)
84
85BInfo.from_text = staticmethod(_BInfo_from_text)
86
87
88Link = namedtuple("Link", ["entry_id1", "entry_id2"])
89
90
91SSDBRelation = namedtuple(
92    "SSDBRelation", ["genes_id1",
93                     "genes_id2",
94                     "sw_score",
95                     "bit_score",
96                     "identity",
97                     "overlap",
98                     "start_position1",
99                     "end_position1",
100                     "start_position2",
101                     "end_position2",
102                     "best_flag_1to2",
103                     "best_flag_2to1",
104                     "definition1",
105                     "definition2",
106                     "length1",
107                     "length2"
108                     ])
109
110MotifResult = namedtuple(
111    "MotifResult", ["motif_id",
112                    "definition",
113                    "genes_id",
114                    "start_position",
115                    "end_position",
116                    "score",
117                    "evalue"
118                    ])
119
120LinkDBRelation = namedtuple(
121    "LinkDBRelation", ["entry_id1",
122                       "entry_id2",
123                       "type",
124                       "path"
125                       ])
126
127PathwayElement = namedtuple(
128    "PathwayElement", ["element_id",
129                       "type",
130                       "names",
131                       "components"
132                       ])
133
134PathwayElementRelation = namedtuple(
135    "PathwayElementRelation", ["element_id1",
136                               "element_id2",
137                               "type",
138                               "subtypes"
139                               ])
140
141Subtype = namedtuple(
142    "Subtype", ["element_id",
143                "relation",
144                "type",
145                ])
146
Note: See TracBrowser for help on using the repository browser.