Added properties for Nuc_Seq cython classes (and updated commands using
them)
This commit is contained in:
@ -67,16 +67,16 @@ def run(config):
|
||||
for seq in iview :
|
||||
pb(i)
|
||||
|
||||
toprint = ">"+seq.get_id()+" "
|
||||
toprint = ">"+seq.id+" "
|
||||
|
||||
for col_name in seq :
|
||||
if col_name not in special_columns :
|
||||
toprint = toprint + col_name + "=" + str(seq[col_name]) + "; "
|
||||
|
||||
if DEFINITION_COLUMN in seq :
|
||||
toprint = toprint + seq.get_definition()
|
||||
toprint = toprint + seq.definition
|
||||
|
||||
nucseq = bytes2str(seq.get_sequence())
|
||||
nucseq = bytes2str(seq.nuc_seq)
|
||||
|
||||
if config['export']['format'] == "fasta" :
|
||||
nucseq = re.sub("(.{60})", "\\1\n", nucseq, 0, re.DOTALL)
|
||||
|
@ -90,7 +90,7 @@ def addOptions(parser):
|
||||
|
||||
# TODO: Handling of NA values
|
||||
def run(config):
|
||||
pb = ProgressBar(35000000, config, seconde=5)
|
||||
pb = ProgressBar(10000, config, seconde=5) # TODO should be number of records in file
|
||||
|
||||
inputs = uopen(config['import']['filename'])
|
||||
|
||||
@ -114,18 +114,17 @@ def run(config):
|
||||
i = 0
|
||||
for seq in iseq:
|
||||
pb(i)
|
||||
view[i].set_id(seq['id'])
|
||||
view[i].set_definition(seq['definition'])
|
||||
view[i].set_sequence(seq['sequence'])
|
||||
view[i].id = seq['id']
|
||||
view[i].definition = seq['definition']
|
||||
view[i].nuc_seq = seq['sequence']
|
||||
if get_quality :
|
||||
view[i].set_quality(seq['quality'])
|
||||
view[i].quality = seq['quality']
|
||||
for tag in seq['tags'] :
|
||||
view[i][tag] = seq['tags'][tag]
|
||||
i+=1
|
||||
|
||||
print(view.__repr__())
|
||||
#print(view.__repr__())
|
||||
|
||||
view.close()
|
||||
d.close()
|
||||
|
||||
print("Done.")
|
||||
|
@ -4,35 +4,16 @@ from ._obidms cimport OBIView_line
|
||||
|
||||
|
||||
cdef class OBI_Seq(dict) :
|
||||
cdef object id
|
||||
cdef object definition
|
||||
cdef object sequence
|
||||
|
||||
cpdef set_id(self, object id)
|
||||
cpdef object get_id(self)
|
||||
cpdef set_definition(self, object definition)
|
||||
cpdef object get_definition(self)
|
||||
cpdef object get_sequence(self)
|
||||
cdef str _id
|
||||
cdef object _seq
|
||||
cdef str _definition
|
||||
|
||||
|
||||
cdef class OBI_Nuc_Seq(OBI_Seq) :
|
||||
cdef object quality
|
||||
|
||||
cdef object _quality
|
||||
#cpdef object reverse_complement(self)
|
||||
cpdef set_sequence(self, object sequence)
|
||||
cpdef set_quality(self, object quality)
|
||||
cpdef object get_quality(self)
|
||||
|
||||
|
||||
cdef class OBI_Nuc_Seq_Stored(OBIView_line) :
|
||||
cpdef set_id(self, object id)
|
||||
cpdef object get_id(self)
|
||||
cpdef set_definition(self, object definition)
|
||||
cpdef object get_definition(self)
|
||||
cpdef set_sequence(self, object sequence)
|
||||
cpdef object get_sequence(self)
|
||||
cpdef set_quality(self, object quality)
|
||||
cpdef object get_quality(self)
|
||||
cpdef object get_str_quality(self)
|
||||
|
||||
# cpdef object reverse_complement(self)
|
||||
#cpdef object reverse_complement(self)
|
||||
|
@ -10,45 +10,59 @@ from .capi.obiview cimport NUC_SEQUENCE_COLUMN, \
|
||||
|
||||
cdef class OBI_Seq(dict) :
|
||||
|
||||
def __init__(self, object id, object seq, object definition=None) :
|
||||
self.set_id(id)
|
||||
self.set_sequence(seq)
|
||||
if definition is not None :
|
||||
self.set_definition(definition)
|
||||
|
||||
cpdef set_id(self, object id) :
|
||||
def __init__(self, str id, object seq, object definition=None) :
|
||||
self.id = id
|
||||
self[bytes2str(ID_COLUMN)] = id
|
||||
self.seq = seq
|
||||
if definition is not None :
|
||||
self.definition = definition
|
||||
|
||||
cpdef get_id(self) :
|
||||
return self.id
|
||||
# sequence id property getter and setter
|
||||
@property
|
||||
def id(self):
|
||||
return self._id
|
||||
@id.setter
|
||||
def id(self, str new_id):
|
||||
self._id = new_id
|
||||
self[bytes2str(ID_COLUMN)] = new_id
|
||||
|
||||
cpdef set_definition(self, object definition) :
|
||||
self.definition = definition
|
||||
self[bytes2str(DEFINITION_COLUMN)] = definition
|
||||
# sequence property getter and setter
|
||||
@property
|
||||
def seq(self):
|
||||
return self._seq
|
||||
@seq.setter
|
||||
def seq(self, object new_seq):
|
||||
self._seq = new_seq
|
||||
self["SEQ"] = new_seq # TODO discuss
|
||||
|
||||
cpdef get_definition(self) :
|
||||
return self.definition
|
||||
|
||||
cpdef get_sequence(self) :
|
||||
return self.sequence
|
||||
|
||||
def __str__(self) :
|
||||
return self.sequence # or not
|
||||
# sequence definition property getter and setter
|
||||
@property
|
||||
def definition(self):
|
||||
return self._definition
|
||||
@definition.setter
|
||||
def definition(self, object new_definition):
|
||||
self._definition = new_definition
|
||||
self[bytes2str(DEFINITION_COLUMN)] = new_definition
|
||||
|
||||
|
||||
cdef class OBI_Nuc_Seq(OBI_Seq) :
|
||||
|
||||
cpdef set_sequence(self, object sequence) :
|
||||
self.sequence = sequence
|
||||
self[bytes2str(NUC_SEQUENCE_COLUMN)] = sequence
|
||||
# nuc sequence property getter and setter
|
||||
@property
|
||||
def seq(self):
|
||||
return self._seq
|
||||
@seq.setter
|
||||
def seq(self, object new_seq):
|
||||
self._seq = new_seq
|
||||
self[bytes2str(NUC_SEQUENCE_COLUMN)] = new_seq
|
||||
|
||||
cpdef set_quality(self, object quality) :
|
||||
self.quality = quality
|
||||
self[bytes2str(QUALITY_COLUMN)] = quality
|
||||
|
||||
cpdef get_quality(self) :
|
||||
return self.quality
|
||||
# sequence quality property getter and setter
|
||||
@property
|
||||
def quality(self):
|
||||
return self._quality
|
||||
@quality.setter
|
||||
def quality(self, object new_quality):
|
||||
self._quality = new_quality
|
||||
self[bytes2str(QUALITY_COLUMN)] = new_quality
|
||||
|
||||
# cpdef str reverse_complement(self) : TODO in C ?
|
||||
# pass
|
||||
@ -58,41 +72,46 @@ cdef class OBI_Nuc_Seq_Stored(OBIView_line) :
|
||||
|
||||
# TODO store the str version of column name macros?
|
||||
|
||||
cpdef set_id(self, object id) :
|
||||
self[bytes2str(ID_COLUMN)] = id
|
||||
|
||||
cpdef object get_id(self) :
|
||||
# sequence id property getter and setter
|
||||
@property
|
||||
def id(self):
|
||||
return self[bytes2str(ID_COLUMN)]
|
||||
@id.setter
|
||||
def id(self, str new_id):
|
||||
self[bytes2str(ID_COLUMN)] = new_id
|
||||
|
||||
cpdef set_definition(self, object definition) :
|
||||
self[bytes2str(DEFINITION_COLUMN)] = definition
|
||||
|
||||
cpdef object get_definition(self) :
|
||||
# sequence definition property getter and setter
|
||||
@property
|
||||
def definition(self):
|
||||
return self[bytes2str(DEFINITION_COLUMN)]
|
||||
@definition.setter
|
||||
def definition(self, str new_def):
|
||||
self[bytes2str(DEFINITION_COLUMN)] = new_def
|
||||
|
||||
cpdef set_sequence(self, object sequence) :
|
||||
self[bytes2str(NUC_SEQUENCE_COLUMN)] = sequence
|
||||
|
||||
cpdef object get_sequence(self) :
|
||||
# nuc_seq property getter and setter
|
||||
@property
|
||||
def nuc_seq(self):
|
||||
return self[bytes2str(NUC_SEQUENCE_COLUMN)]
|
||||
@nuc_seq.setter
|
||||
def nuc_seq(self, object new_seq):
|
||||
self[bytes2str(NUC_SEQUENCE_COLUMN)] = new_seq
|
||||
|
||||
cpdef set_quality(self, object quality) :
|
||||
if (type(quality) == list) or (quality is None) :
|
||||
self[bytes2str(QUALITY_COLUMN)] = quality
|
||||
else : # Quality is in str form
|
||||
(((self._view).columns)[bytes2str(QUALITY_COLUMN)]).set_str_line(self._index, quality)
|
||||
|
||||
cpdef object get_quality(self) :
|
||||
# quality property getter and setter
|
||||
@property
|
||||
def quality(self):
|
||||
return self[bytes2str(QUALITY_COLUMN)]
|
||||
@quality.setter
|
||||
def quality(self, object new_qual):
|
||||
if (type(new_qual) == list) or (new_qual is None) :
|
||||
self[bytes2str(QUALITY_COLUMN)] = new_qual
|
||||
else : # Quality is in str form
|
||||
(((self._view).columns)[bytes2str(QUALITY_COLUMN)]).set_str_line(self._index, new_qual)
|
||||
|
||||
cpdef object get_str_quality(self) :
|
||||
cpdef object get_str_quality(self) : # TODO not ideal
|
||||
return ((self._view).columns)[bytes2str(QUALITY_COLUMN)].get_str_line(self._index)
|
||||
|
||||
# def __str__(self) :
|
||||
# return self[bytes2str(NUC_SEQUENCE_COLUMN)] # or not
|
||||
|
||||
# cpdef str reverse_complement(self) : TODO in C ?
|
||||
# pass
|
||||
|
||||
# TODO static method to import?
|
||||
# TODO static method to import OBI_Nuc_Seq to OBI_Nuc_Seq_Stored ?
|
||||
|
||||
|
Reference in New Issue
Block a user