X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=mussa.git;a=blobdiff_plain;f=alg%2Fsequence.cpp;h=ecbc633f80141b32fc5ea2f8ee7d512c149bf415;hp=608ddd3b2059ba808c283e7726b181bfb27e0ce2;hb=8b38b5bc63e5c62983d0814aa75d3f88b9116e49;hpb=4b9dd885cdfef6d73c82bae5f112a063588766a9 diff --git a/alg/sequence.cpp b/alg/sequence.cpp index 608ddd3..ecbc633 100644 --- a/alg/sequence.cpp +++ b/alg/sequence.cpp @@ -90,7 +90,8 @@ Sequence::~Sequence() Sequence::Sequence(const char *seq, AlphabetRef alphabet_, SeqSpan::strand_type strand_) : header(""), - species("") + species(""), + motif_list(new MotifList) { set_filtered_sequence(seq, alphabet_, 0, npos, strand_); } @@ -99,7 +100,8 @@ Sequence::Sequence(const std::string& seq, AlphabetRef alphabet_, SeqSpan::strand_type strand_) : header(""), - species("") + species(""), + motif_list(new MotifList) { set_filtered_sequence(seq, alphabet_, 0, seq.size(), strand_); } @@ -134,7 +136,8 @@ Sequence::Sequence(const SequenceRef o) Sequence::Sequence(const SeqSpanRef& seq_ref) : seq(seq_ref), header(""), - species("") + species(""), + motif_list(new MotifList) { } @@ -637,7 +640,7 @@ Sequence::clear() header.clear(); species.clear(); annots.clear(); - motif_list.clear(); + motif_list.reset(new MotifList); } void @@ -755,18 +758,21 @@ void Sequence::add_motif(const Sequence& a_motif) motif_start_i != motif_starts.end(); ++motif_start_i) { - motif_list.push_back(motif(*motif_start_i, a_motif.get_sequence())); + motif_list->push_back(motif(*motif_start_i, a_motif.get_sequence())); } } void Sequence::clear_motifs() { - motif_list.clear(); + if (motif_list) + motif_list->clear(); + else + motif_list.reset(new MotifList); } -const std::list& Sequence::motifs() const +const Sequence::MotifList& Sequence::motifs() const { - return motif_list; + return *motif_list; } std::vector