-
Notifications
You must be signed in to change notification settings - Fork 1
/
sequencesetorm.py
81 lines (68 loc) · 2.52 KB
/
sequencesetorm.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
from sqlalchemy import *
import MySQLdb
from sqlalchemy.dialects.mysql import MEDIUMTEXT
from sqlalchemy import Column, Integer, String, DateTime, func, Boolean
from basemobedac import BaseMoBEDAC
from sqlalchemy import Table, ForeignKey
from sqlalchemy.orm import relationship, backref
from dec_base import Base
import json as json
from Bio import SeqIO
import os
import datetime
from string import Template
class SequenceSetORM(Base, BaseMoBEDAC):
__tablename__ = 'sequenceset'
TYPE = "type"
PROTEIN = "protein"
PROVENANCE = "provenance"
LIBRARY_ID = "library_id"
SEQUENCES = "sequences"
id = Column(String(64), primary_key=True)
name = Column(String(256))
about = Column(String(1024))
url = Column(String(512))
version = Column(Integer)
mbd_metadata = Column('metadata',MEDIUMTEXT)
creation = Column(DateTime)
type = Column(String(256))
protein = Column(Boolean)
provenance = Column(MEDIUMTEXT)
library_id = Column(String(64), ForeignKey('library.id'))
sequences = Column(String(512))
@classmethod
def get_REST_sub_path(cls):
return "sequenceset"
@classmethod
def mobedac_name(self):
return "SequenceSet"
@classmethod
def mobedac_collection_name(self):
return "sequencesets"
def __init__(self, arg_dict):
pass
def get_one(self):
pass
def __repr__(self):
return "<SequenceSetORM('%s','%s', '%s','%s','%s', '%s')>" % (self.name, self.about, self.url, self.version, self.mbd_metadata, self.creation)
def from_json(self, is_create, json_obj, sess_obj):
# do base attrs
self.base_from_json(is_create, json_obj)
self.set_attrs_from_json(json_obj, self.TYPE)
self.protein = json_obj[self.PROTEIN]
self.set_attrs_from_json(json_obj, self.PROTEIN)
self.set_attrs_from_json(json_obj, self.PROVENANCE)
self.set_attrs_from_json(json_obj, self.SEQUENCES)
self.set_attrs_from_json(json_obj, self.LIBRARY_ID)
return self
def to_json(self, sess_obj):
base_json = BaseMoBEDAC.to_json(self, sess_obj)
parts = [base_json]
self.dump_attr(parts,self.type, self.TYPE)
self.dump_attr(parts,self.protein, self.PROTEIN)
self.dump_attr(parts,self.provenance, self.PROVENANCE)
self.dump_attr(parts,self.provenance, self.SEQUENCES)
self.dump_attr(parts,self.library_id, self.LIBRARY_ID)
result = ",".join(parts)
print result
return result