Some change in the way to manage access to special items of the
dictionary like sequence or quality
This commit is contained in:
@ -11,9 +11,11 @@ cdef class OBI_Seq(dict) :
|
|||||||
|
|
||||||
cdef class OBI_Nuc_Seq(OBI_Seq) :
|
cdef class OBI_Nuc_Seq(OBI_Seq) :
|
||||||
cdef object _quality
|
cdef object _quality
|
||||||
#cpdef object reverse_complement(self)
|
cpdef object get_str_quality(self)
|
||||||
|
|
||||||
|
#cpdef object reverse_complement(self)
|
||||||
|
|
||||||
cdef class OBI_Nuc_Seq_Stored(OBIView_line) :
|
cdef class OBI_Nuc_Seq_Stored(OBIView_line) :
|
||||||
cpdef object get_str_quality(self)
|
cpdef object get_str_quality(self)
|
||||||
|
|
||||||
#cpdef object reverse_complement(self)
|
#cpdef object reverse_complement(self)
|
||||||
|
@ -8,14 +8,31 @@ from .capi.obiview cimport NUC_SEQUENCE_COLUMN, \
|
|||||||
QUALITY_COLUMN
|
QUALITY_COLUMN
|
||||||
|
|
||||||
|
|
||||||
|
cdef str __str__ID_COLUMN__ = bytes2str(ID_COLUMN)
|
||||||
|
cdef str __str__DEFINITION_COLUMN__ = bytes2str(DEFINITION_COLUMN)
|
||||||
|
cdef str __str__QUALITY_COLUMN__ = bytes2str(QUALITY_COLUMN)
|
||||||
|
cdef str __str__NUC_SEQUENCE_COLUMN__ = bytes2str(NUC_SEQUENCE_COLUMN)
|
||||||
|
|
||||||
|
|
||||||
cdef class OBI_Seq(dict) :
|
cdef class OBI_Seq(dict) :
|
||||||
|
|
||||||
def __init__(self, str id, object seq, object definition=None) :
|
def __init__(self, str id,
|
||||||
|
object seq,
|
||||||
|
str definition=None,
|
||||||
|
dict attributes=None) :
|
||||||
self.id = id
|
self.id = id
|
||||||
self.seq = seq
|
self.seq = seq
|
||||||
if definition is not None :
|
if definition is not None :
|
||||||
self.definition = definition
|
self.definition = definition
|
||||||
|
|
||||||
|
def __getitem__(self,str key):
|
||||||
|
if key == __str__ID_COLUMN__:
|
||||||
|
return self._id
|
||||||
|
elif key == __str__DEFINITION_COLUMN__:
|
||||||
|
return self._definition
|
||||||
|
else:
|
||||||
|
return dict.__getitem__(self,key)
|
||||||
|
|
||||||
# sequence id property getter and setter
|
# sequence id property getter and setter
|
||||||
@property
|
@property
|
||||||
def id(self): # @ReservedAssignment
|
def id(self): # @ReservedAssignment
|
||||||
@ -23,7 +40,6 @@ cdef class OBI_Seq(dict) :
|
|||||||
@id.setter
|
@id.setter
|
||||||
def id(self, str new_id): # @ReservedAssignment @DuplicatedSignature
|
def id(self, str new_id): # @ReservedAssignment @DuplicatedSignature
|
||||||
self._id = new_id
|
self._id = new_id
|
||||||
self[bytes2str(ID_COLUMN)] = new_id
|
|
||||||
|
|
||||||
# sequence property getter and setter
|
# sequence property getter and setter
|
||||||
@property
|
@property
|
||||||
@ -32,7 +48,7 @@ cdef class OBI_Seq(dict) :
|
|||||||
@seq.setter
|
@seq.setter
|
||||||
def seq(self, object new_seq): # @DuplicatedSignature
|
def seq(self, object new_seq): # @DuplicatedSignature
|
||||||
self._seq = new_seq
|
self._seq = new_seq
|
||||||
self["SEQ"] = new_seq # TODO discuss
|
# self["SEQ"] = new_seq # TODO discuss
|
||||||
|
|
||||||
# sequence definition property getter and setter
|
# sequence definition property getter and setter
|
||||||
@property
|
@property
|
||||||
@ -41,11 +57,21 @@ cdef class OBI_Seq(dict) :
|
|||||||
@definition.setter
|
@definition.setter
|
||||||
def definition(self, object new_definition): # @DuplicatedSignature
|
def definition(self, object new_definition): # @DuplicatedSignature
|
||||||
self._definition = new_definition
|
self._definition = new_definition
|
||||||
self[bytes2str(DEFINITION_COLUMN)] = new_definition
|
|
||||||
|
|
||||||
|
|
||||||
cdef class OBI_Nuc_Seq(OBI_Seq) :
|
cdef class OBI_Nuc_Seq(OBI_Seq) :
|
||||||
|
|
||||||
|
def __getitem__(self,str key):
|
||||||
|
if key == __str__NUC_SEQUENCE_COLUMN__:
|
||||||
|
return self._id
|
||||||
|
elif key == __str__QUALITY_COLUMN__:
|
||||||
|
return self._quality
|
||||||
|
else:
|
||||||
|
return OBI_Seq.__getitem__(self,key)
|
||||||
|
|
||||||
|
cpdef object get_str_quality(self) : # TODO not ideal. Make quality_int and quality_str properties
|
||||||
|
return self._quality
|
||||||
|
|
||||||
# nuc sequence property getter and setter
|
# nuc sequence property getter and setter
|
||||||
@property
|
@property
|
||||||
def seq(self):
|
def seq(self):
|
||||||
@ -53,7 +79,7 @@ cdef class OBI_Nuc_Seq(OBI_Seq) :
|
|||||||
@seq.setter
|
@seq.setter
|
||||||
def seq(self, object new_seq): # @DuplicatedSignature
|
def seq(self, object new_seq): # @DuplicatedSignature
|
||||||
self._seq = new_seq
|
self._seq = new_seq
|
||||||
self[bytes2str(NUC_SEQUENCE_COLUMN)] = new_seq
|
# self[bytes2str(NUC_SEQUENCE_COLUMN)] = new_seq
|
||||||
|
|
||||||
# sequence quality property getter and setter
|
# sequence quality property getter and setter
|
||||||
@property
|
@property
|
||||||
@ -62,7 +88,7 @@ cdef class OBI_Nuc_Seq(OBI_Seq) :
|
|||||||
@quality.setter
|
@quality.setter
|
||||||
def quality(self, object new_quality): # @DuplicatedSignature
|
def quality(self, object new_quality): # @DuplicatedSignature
|
||||||
self._quality = new_quality
|
self._quality = new_quality
|
||||||
self[bytes2str(QUALITY_COLUMN)] = new_quality
|
# self[bytes2str(QUALITY_COLUMN)] = new_quality
|
||||||
|
|
||||||
# cpdef str reverse_complement(self) : TODO in C ?
|
# cpdef str reverse_complement(self) : TODO in C ?
|
||||||
# pass
|
# pass
|
||||||
@ -75,40 +101,44 @@ cdef class OBI_Nuc_Seq_Stored(OBIView_line) :
|
|||||||
# sequence id property getter and setter
|
# sequence id property getter and setter
|
||||||
@property
|
@property
|
||||||
def id(self): # @ReservedAssignment @DuplicatedSignature
|
def id(self): # @ReservedAssignment @DuplicatedSignature
|
||||||
return self[bytes2str(ID_COLUMN)]
|
return self[__str__ID_COLUMN__]
|
||||||
|
|
||||||
@id.setter
|
@id.setter
|
||||||
def id(self, str new_id): # @ReservedAssignment @DuplicatedSignature
|
def id(self, str new_id): # @ReservedAssignment @DuplicatedSignature
|
||||||
self[bytes2str(ID_COLUMN)] = new_id
|
self[__str__ID_COLUMN__] = new_id
|
||||||
|
|
||||||
# sequence definition property getter and setter
|
# sequence definition property getter and setter
|
||||||
@property
|
@property
|
||||||
def definition(self):
|
def definition(self):
|
||||||
return self[bytes2str(DEFINITION_COLUMN)]
|
return self[__str__DEFINITION_COLUMN__]
|
||||||
|
|
||||||
@definition.setter
|
@definition.setter
|
||||||
def definition(self, str new_def): # @DuplicatedSignature
|
def definition(self, str new_def): # @DuplicatedSignature
|
||||||
self[bytes2str(DEFINITION_COLUMN)] = new_def
|
self[__str__DEFINITION_COLUMN__] = new_def
|
||||||
|
|
||||||
# nuc_seq property getter and setter
|
# nuc_seq property getter and setter
|
||||||
@property
|
@property
|
||||||
def nuc_seq(self):
|
def nuc_seq(self):
|
||||||
return self[bytes2str(NUC_SEQUENCE_COLUMN)]
|
return self[__str__NUC_SEQUENCE_COLUMN__]
|
||||||
|
|
||||||
@nuc_seq.setter
|
@nuc_seq.setter
|
||||||
def nuc_seq(self, object new_seq): # @DuplicatedSignature
|
def nuc_seq(self, object new_seq): # @DuplicatedSignature
|
||||||
self[bytes2str(NUC_SEQUENCE_COLUMN)] = new_seq
|
self[__str__NUC_SEQUENCE_COLUMN__] = new_seq
|
||||||
|
|
||||||
# quality property getter and setter
|
# quality property getter and setter
|
||||||
@property
|
@property
|
||||||
def quality(self):
|
def quality(self):
|
||||||
return self[bytes2str(QUALITY_COLUMN)]
|
return self[__str__QUALITY_COLUMN__]
|
||||||
|
|
||||||
@quality.setter
|
@quality.setter
|
||||||
def quality(self, object new_qual): # @DuplicatedSignature
|
def quality(self, object new_qual): # @DuplicatedSignature
|
||||||
if (type(new_qual) == list) or (new_qual is None) : # TODO check that quality column exists
|
if (type(new_qual) == list) or (new_qual is None) : # TODO check that quality column exists
|
||||||
self[bytes2str(QUALITY_COLUMN)] = new_qual
|
self[__str__QUALITY_COLUMN__] = new_qual
|
||||||
else : # Quality is in str form
|
else : # Quality is in str form
|
||||||
(((self._view).columns)[bytes2str(QUALITY_COLUMN)]).set_str_line(self._index, new_qual)
|
(((self._view).columns)[__str__QUALITY_COLUMN__]).set_str_line(self._index, new_qual)
|
||||||
|
|
||||||
cpdef object get_str_quality(self) : # TODO not ideal. Make quality_int and quality_str properties
|
cpdef object get_str_quality(self) : # TODO not ideal. Make quality_int and quality_str properties
|
||||||
return ((self._view).columns)[bytes2str(QUALITY_COLUMN)].get_str_line(self._index)
|
return ((self._view).columns)[__str__QUALITY_COLUMN__].get_str_line(self._index)
|
||||||
|
|
||||||
# cpdef str reverse_complement(self) : TODO in C ?
|
# cpdef str reverse_complement(self) : TODO in C ?
|
||||||
# pass
|
# pass
|
||||||
|
Reference in New Issue
Block a user