[Biopython] SeqRecord subclassing or composition
Uri Laserson
laserson at mit.edu
Tue Mar 8 22:07:54 EST 2011
I am trying to implement a data type for my work. Each object will have a
sequence (derived from a single read) and lots of annotations and features.
However, I want to implement some extra interface that is problem-specific
to make my analysis more convenient.
I am debating whether to subclass SeqRecord and simply implement the extra
interface or define a new object that wraps a SeqRecord object and pass on
the subset of native SeqRecord calls and/or simply access the underlying
SeqRecord directly.
One additional factor is that I want to be able to read/write INSDC-style
files for the data (e.g., GenBank). Therefore, if I use the SeqIO parser,
it will return native SeqRecords. If I go the inheritance route, how do I
cast a SeqRecord object to my new subclass?
So, I am debating between inheritance
class ImmuneChain(SeqRecord):
def __init__(self, *args, **kw):
SeqRecord.__init__(self,*args,**kw)
# But how do I cast a SeqRecord to an ImmuneChain?
or composition
class ImmuneChain(object):
def __init__(self, *args, **kw):
if isinstance(args[0],SeqRecord):
self._record = args[0]
else:
# Initialize the underlying SeqRecord manually
self._record.seq = ...
Any thoughts?
Thanks!
Uri
...................................................................................
Uri Laserson
Graduate Student, Biomedical Engineering
Harvard-MIT Division of Health Sciences and Technology
M +1 917 742 8019
laserson at mit.edu
More information about the Biopython
mailing list