ReadMetaData Class Reference

Provides non-spatial attributes to a read. Holds its corresponding read index (recno). More...

#include <featuredata.h>

Inheritance diagram for ReadMetaData:

Inheritance graph
[legend]
Collaboration diagram for ReadMetaData:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ReadMetaData (db_recno_t rec=0)
 ReadMetaData (const ReadMetaData &other)
virtual ~ReadMetaData ()
virtual void print_debug_info ()
virtual void readStream (QDataStream &str)
virtual void writeStream (QDataStream &str)
virtual void readAttributes (const QXmlAttributes &attr)
virtual void writeXml (ostream &stream)
TrDb::IndexMap getIndexMap ()
std::string uniqueName ()
void setName (const std::string &n)
void setMate (const std::string &m)
void setMateLength (const std::size_t &l)
void setStrand (const std::string &m)
void setBeginGood (TR_DNA index)
void setEndGood (TR_DNA index)
std::string name ()
std::string mate ()
std::size_t mateLength ()
std::string strand ()
TR_DNA beginGood ()
TR_DNA endGood ()
 ReadMetaData (db_recno_t rec=0)
 ReadMetaData (const ReadMetaData &other)
virtual ~ReadMetaData ()
virtual void print_debug_info ()
virtual void readStream (QDataStream &str)
virtual void writeStream (QDataStream &str)
virtual void readAttributes (const QXmlAttributes &attr)
virtual void writeXml (ostream &stream)
TrDb::IndexMap getIndexMap ()
std::string uniqueName ()
void setName (const std::string &n)
void setMate (const std::string &m)
void setMateLength (const std::size_t &l)
void setStrand (const std::string &m)
void setBeginGood (TR_DNA index)
void setEndGood (TR_DNA index)
std::string name ()
std::string mate ()
std::size_t mateLength ()
std::string strand ()
TR_DNA beginGood ()
TR_DNA endGood ()

Static Public Member Functions

static int getName (Db *dbp, const Dbt *pkey, const Dbt *pdata, Dbt *skey)
static int bt_compare_name (DB *db, const DBT *dbt1, const DBT *dbt2)
static int getName (Db *dbp, const Dbt *pkey, const Dbt *pdata, Dbt *skey)
static int bt_compare_name (DB *db, const DBT *dbt1, const DBT *dbt2)

Public Attributes

TrapperVector< double > tc_vec
TrapperVector< double > tc_vec

Protected Member Functions

virtual FeatureInfomakeInfo ()
virtual FeatureGuimakeGui ()

Protected Attributes

FeatureInfom_info
std::string name_
std::string mate_
std::size_t matelen_
std::string strand_
TR_DNA beginGood_
TR_DNA endGood_
db_recno_t readRecno
FeatureInfom_info

Detailed Description

Provides non-spatial attributes to a read. Holds its corresponding read index (recno).

Definition at line 264 of file featuredata.h.


Constructor & Destructor Documentation

ReadMetaData::ReadMetaData ( db_recno_t  rec = 0  )  [inline]

Definition at line 267 of file featuredata.h.

00267 : FeatureData(rec), beginGood_(0), endGood_(0) {}

ReadMetaData::ReadMetaData ( const ReadMetaData other  ) 

Definition at line 12 of file readmetadata.cpp.

References beginGood_, endGood_, mate_, matelen_, name_, readRecno, FeatureData::readRecno(), strand_, and tc_vec.

00012                                                       : GeneralData(other)
00013 {
00014   readRecno = other.readRecno;
00015   name_ = other.name_;
00016   mate_ = other.mate_;
00017   matelen_ = other.matelen_;
00018   strand_ = other.strand_;
00019   beginGood_ = other.beginGood_;
00020   endGood_ = other.endGood_;
00021   tc_vec = other.tc_vec;
00022 }

ReadMetaData::~ReadMetaData (  )  [inline, virtual]

Definition at line 269 of file featuredata.h.

00269 {}

ReadMetaData::ReadMetaData ( db_recno_t  rec = 0  )  [inline]

Definition at line 30 of file readmetadata.h.

00030 : FeatureData(rec), beginGood_(0), endGood_(0) {}

ReadMetaData::ReadMetaData ( const ReadMetaData other  ) 

virtual ReadMetaData::~ReadMetaData (  )  [virtual]


Member Function Documentation

void ReadMetaData::print_debug_info (  )  [virtual]

Prints some info for debugging, this should be removed in release version!

Reimplemented from FeatureData.

Definition at line 628 of file featuredata.cpp.

References name_, FeatureData::print_debug_info(), and FeatureData::readRecno_.

00629 {
00630   FeatureData::print_debug_info();
00631   cerr<<"readRecno: "<<readRecno_<<endl;
00632   cerr<<"name: "<<name_<<endl;
00633 }

void ReadMetaData::readStream ( QDataStream str  )  [virtual]

Loads the state of this object from a byte stream. Or in other words reads and unserializes a byte stream to set the values of this class object. This method is used for loading a GeneralData object from Berkeley Db.

Reimplemented from FeatureData.

Definition at line 635 of file featuredata.cpp.

References beginGood_, QDataStream::device(), endGood_, mate_, matelen_, name_, FeatureData::readRecno_, TrapperVector< T >::stlVector(), strand_, and tc_vec.

00636 {
00637   QIODevice * dev = stream.device();
00638   Q_ASSERT( dev );
00639 //   stream.readRawBytes( ( char * ) &s, sizeof ( StorageData ) );  
00640 
00641   stream>>readRecno_;
00642   QString tmp;
00643   stream>>tmp;
00644   name_ = tmp.ascii();
00645   stream>>tmp;
00646   mate_ = tmp.ascii();
00647   stream>>matelen_;
00648   stream>>tmp;
00649   strand_ = tmp.ascii();
00650   stream>>beginGood_;
00651   stream>>endGood_;
00652   tc_vec.stlVector().clear();
00653   stream>>tc_vec;
00654 }

void ReadMetaData::writeStream ( QDataStream str  )  [virtual]

Saves the state of this object to a byte stream. Or in other words serializes and writes the internal data held in this class object to a byte stream. This method is used for storing a GeneralData object into Berkeley Db.

Reimplemented from FeatureData.

Definition at line 656 of file featuredata.cpp.

References beginGood_, QDataStream::device(), endGood_, mate_, matelen_, QIODevice::mode(), name_, FeatureData::readRecno_, strand_, and tc_vec.

00657 {
00658   QIODevice * dev = stream.device();
00659   Q_ASSERT( dev );
00660   if ( ! ( IO_WriteOnly & dev->mode() ) )
00661     {
00662       cerr << "data stream should be writeonly" << endl;
00663       exit(1);
00664     }
00665 //   stream.writeRawBytes( ( char * ) &s, sizeof ( StorageData ) );
00666   stream<<readRecno_;
00667 
00668   QString tmp;
00669   tmp = name_;
00670   stream<<tmp;
00671   tmp = mate_;
00672   stream<<tmp;
00673   stream<<matelen_;
00674   tmp = strand_;
00675   stream<<tmp;
00676   stream<<beginGood_;
00677   stream<<endGood_;
00678   stream<<tc_vec;
00679 }

void ReadMetaData::readAttributes ( const QXmlAttributes attr  )  [virtual]

Loads the state of this object from QXmlAttributes.This method is used for importing.

Reimplemented from FeatureData.

Definition at line 681 of file featuredata.cpp.

References beginGood_, endGood_, mate_, matelen_, name_, TrapperVector< T >::readString(), strand_, tc_vec, and QXmlAttributes::value().

00682 {
00683   if ( attr.value("name") != "" ) {
00684     name_ = attr.value("name").ascii();
00685   }
00686   if ( attr.value("mate") != "" ) {
00687     mate_ = attr.value("mate").ascii();
00688   }
00689   if ( attr.value("matelen") != "" ) {
00690     matelen_ = attr.value("matelen").toInt();
00691   }
00692   if ( attr.value("strand") != "" ) {
00693     strand_ = attr.value("strand").ascii();
00694   }
00695   if ( attr.value("beginGood") != "" ) {
00696     beginGood_ = attr.value("beginGood").toInt();
00697   }
00698   if ( attr.value("endGood") != "" ) {
00699     endGood_ = attr.value("endGood").toInt();
00700   }
00701   if ( attr.value("tc") != "" ) {
00702     QString str = attr.value("tc");
00703     tc_vec.readString(str);
00704   }
00705 
00706 }

void ReadMetaData::writeXml ( ostream &  stream  )  [virtual]

Reimplemented from FeatureData.

Definition at line 708 of file featuredata.cpp.

References beginGood_, endGood_, mate_, matelen_, name_, TrapperVector< T >::stlVector(), strand_, and tc_vec.

00709 {
00710   stream<<"<ReadMetaData "
00711         <<"name=\""<<name_<<"\" "
00712         <<"mate=\""<<mate_<<"\" "
00713         <<"matelen=\""<<matelen_<<"\" "
00714         <<"strand=\""<<strand_<<"\" "
00715         <<"beginGood=\""<<beginGood_<<"\" "
00716         <<"endGood=\""<<endGood_<<"\"";
00717   if ( tc_vec.stlVector().size() > 0 ) {
00718     stream<<" tc=\"";
00719     for( size_t i = 0; i < tc_vec.stlVector().size(); i++ ) {
00720       stream<<' '<<tc_vec.stlVector()[i];
00721     }
00722     stream<<"\"";
00723   }
00724   stream<<">\n";
00725 }

TrDb::IndexMap ReadMetaData::getIndexMap (  )  [virtual]

Returns a TrDb::IndexMap that specifies which secondary indexes should be generated for stored data objects of this class in the Berkeley Db backend. Each record in the TrDb::IndexMap generates a secondary index built as a btree ( a DB_BTREE in Berkeley Db wording ). The secondary index is sorted which makes it possible to do queries like "Give me the object that has the smallest value, bigger or equal than x".

And about speed performance, a quote from Berkeley Db documentation says: "Searches take O(log base_b N) time, where base_b is the average number of keys per page, and N is the total number of keys stored"

Reimplemented from FeatureData.

Definition at line 727 of file featuredata.cpp.

References QString::ascii(), bt_compare_name(), FeatureData::getIndexMap(), getName(), and TrDb::Index::name.

00728 {
00729 
00730   TrDb::IndexMap iMap = FeatureData::getIndexMap();
00731   TrDb::Index i1 = {
00732     &ReadMetaData::bt_compare_name,
00733     &ReadMetaData::getName,
00734     QString("name"),
00735     NULL
00736   };
00737   iMap.insert( make_pair( i1.name.ascii(), i1 ) );
00738   
00739   return iMap;
00740 }

int ReadMetaData::getName ( Db *  dbp,
const Dbt *  pkey,
const Dbt *  pdata,
Dbt *  skey 
) [static]

Definition at line 754 of file featuredata.cpp.

References name(), and Database::setFromDbt().

Referenced by getIndexMap().

00756 {
00757   
00758   memset(skey, 0, sizeof(Dbt));
00759 
00760   
00761   ReadMetaData tmp;
00762   Database::setFromDbt(pdata, &tmp);
00763   char* name = (char*)malloc(sizeof(char)*(tmp.name().length() + 1));
00764   strcpy(name, tmp.name().c_str());
00765   assert( name[ tmp.name().length() ] == '\0' );
00766   skey->set_flags( DB_DBT_APPMALLOC );
00767   skey->set_data( (void*)name ); 
00768   skey->set_size(sizeof(char)*(strlen(name) + 1) );
00769   
00770 
00771   return 0;
00772 }

int ReadMetaData::bt_compare_name ( DB *  db,
const DBT *  dbt1,
const DBT *  dbt2 
) [static]

Definition at line 742 of file featuredata.cpp.

Referenced by getIndexMap().

00743 {
00744   /* order after end position */
00745   
00746   char* seqData1 = ( char* ) dbt1->data;
00747   char* seqData2 = ( char* ) dbt2->data;
00748 
00749 //   cerr<<seqData1<<'\t'<<seqData2<<'\t'<<strcmp(seqData1, seqData2)<<endl;
00750   
00751   return strcmp(seqData1, seqData2);
00752 }

std::string ReadMetaData::uniqueName (  )  [inline, virtual]

Specifies a name that uniquely should identify this class. It will be used for lookups in the GeneralMaker class.

Implements GeneralData.

Definition at line 286 of file featuredata.h.

00286 { return std::string("ReadMetaData"); }

void ReadMetaData::setName ( const std::string &  n  )  [inline]

Definition at line 288 of file featuredata.h.

References name_.

Referenced by TrapperView::findRead(), TrapperDoc::importChromat(), TrapperDoc::importMates(), TrapperDoc::importPhd(), TrapperDoc::importTimeCourse(), and FindMatesAlgo::start().

00288 { name_ = n; }

void ReadMetaData::setMate ( const std::string &  m  )  [inline]

Definition at line 289 of file featuredata.h.

References mate_.

00289 { mate_ = m; }

void ReadMetaData::setMateLength ( const std::size_t &  l  )  [inline]

Definition at line 290 of file featuredata.h.

References matelen_.

00290 { matelen_ = l; }

void ReadMetaData::setStrand ( const std::string &  m  )  [inline]

Definition at line 291 of file featuredata.h.

References strand_.

00291 { strand_ = m; }

void ReadMetaData::setBeginGood ( TR_DNA  index  )  [inline]

Definition at line 292 of file featuredata.h.

References beginGood_.

00292 { beginGood_ = index; }

void ReadMetaData::setEndGood ( TR_DNA  index  )  [inline]

Definition at line 293 of file featuredata.h.

References endGood_.

00293 { endGood_ = index; }

std::string ReadMetaData::name (  )  [inline]

Definition at line 295 of file featuredata.h.

References name_.

Referenced by TrapperDoc::all_readnames(), TrapperView::findRead(), TrapperView::getInfo(), and getName().

00295 { return name_; }

std::string ReadMetaData::mate (  )  [inline]

Definition at line 296 of file featuredata.h.

References mate_.

Referenced by TrapperView::getInfo(), and FindMatesAlgo::start().

00296 { return mate_; }

std::size_t ReadMetaData::mateLength (  )  [inline]

Definition at line 297 of file featuredata.h.

References matelen_.

Referenced by TrapperView::getInfo().

00297 { return matelen_; }

std::string ReadMetaData::strand (  )  [inline]

Definition at line 298 of file featuredata.h.

References strand_.

Referenced by TrapperView::getInfo(), TrapperDoc::importChromat(), and TrapperDoc::importPhd().

00298 { return strand_; }

TR_DNA ReadMetaData::beginGood (  )  [inline]

Definition at line 299 of file featuredata.h.

References beginGood_.

Referenced by TrapperView::getInfo().

00299 { return beginGood_; }

TR_DNA ReadMetaData::endGood (  )  [inline]

Definition at line 300 of file featuredata.h.

References endGood_.

Referenced by TrapperView::getInfo().

00300 { return endGood_; }

virtual FeatureInfo* ReadMetaData::makeInfo (  )  [inline, protected, virtual]

Implements FeatureData.

Definition at line 306 of file featuredata.h.

00306 { return NULL; }

virtual FeatureGui* ReadMetaData::makeGui (  )  [inline, protected, virtual]

Implements FeatureData.

Definition at line 307 of file featuredata.h.

00307 { return NULL; }

virtual void ReadMetaData::print_debug_info (  )  [virtual]

Prints some info for debugging, this should be removed in release version!

Reimplemented from FeatureData.

virtual void ReadMetaData::readStream ( QDataStream str  )  [virtual]

Loads the state of this object from a byte stream. Or in other words reads and unserializes a byte stream to set the values of this class object. This method is used for loading a GeneralData object from Berkeley Db.

Reimplemented from FeatureData.

virtual void ReadMetaData::writeStream ( QDataStream str  )  [virtual]

Saves the state of this object to a byte stream. Or in other words serializes and writes the internal data held in this class object to a byte stream. This method is used for storing a GeneralData object into Berkeley Db.

Reimplemented from FeatureData.

virtual void ReadMetaData::readAttributes ( const QXmlAttributes attr  )  [virtual]

Loads the state of this object from QXmlAttributes.This method is used for importing.

Reimplemented from FeatureData.

virtual void ReadMetaData::writeXml ( ostream &  stream  )  [virtual]

Reimplemented from FeatureData.

TrDb::IndexMap ReadMetaData::getIndexMap (  )  [virtual]

Returns a TrDb::IndexMap that specifies which secondary indexes should be generated for stored data objects of this class in the Berkeley Db backend. Each record in the TrDb::IndexMap generates a secondary index built as a btree ( a DB_BTREE in Berkeley Db wording ). The secondary index is sorted which makes it possible to do queries like "Give me the object that has the smallest value, bigger or equal than x".

And about speed performance, a quote from Berkeley Db documentation says: "Searches take O(log base_b N) time, where base_b is the average number of keys per page, and N is the total number of keys stored"

Reimplemented from FeatureData.

static int ReadMetaData::getName ( Db *  dbp,
const Dbt *  pkey,
const Dbt *  pdata,
Dbt *  skey 
) [static]

static int ReadMetaData::bt_compare_name ( DB *  db,
const DBT *  dbt1,
const DBT *  dbt2 
) [static]

std::string ReadMetaData::uniqueName (  )  [inline, virtual]

Specifies a name that uniquely should identify this class. It will be used for lookups in the GeneralMaker class.

Implements GeneralData.

Definition at line 49 of file readmetadata.h.

00049 { return std::string("ReadMetaData"); }

void ReadMetaData::setName ( const std::string &  n  )  [inline]

Definition at line 51 of file readmetadata.h.

References name_.

00051 { name_ = n; }

void ReadMetaData::setMate ( const std::string &  m  )  [inline]

Definition at line 52 of file readmetadata.h.

References mate_.

00052 { mate_ = m; }

void ReadMetaData::setMateLength ( const std::size_t &  l  )  [inline]

Definition at line 53 of file readmetadata.h.

References matelen_.

00053 { matelen_ = l; }

void ReadMetaData::setStrand ( const std::string &  m  )  [inline]

Definition at line 54 of file readmetadata.h.

References strand_.

00054 { strand_ = m; }

void ReadMetaData::setBeginGood ( TR_DNA  index  )  [inline]

Definition at line 55 of file readmetadata.h.

References beginGood_.

00055 { beginGood_ = index; }

void ReadMetaData::setEndGood ( TR_DNA  index  )  [inline]

Definition at line 56 of file readmetadata.h.

References endGood_.

00056 { endGood_ = index; }

std::string ReadMetaData::name (  )  [inline]

Definition at line 58 of file readmetadata.h.

References name_.

00058 { return name_; }

std::string ReadMetaData::mate (  )  [inline]

Definition at line 59 of file readmetadata.h.

References mate_.

00059 { return mate_; }

std::size_t ReadMetaData::mateLength (  )  [inline]

Definition at line 60 of file readmetadata.h.

References matelen_.

00060 { return matelen_; }

std::string ReadMetaData::strand (  )  [inline]

Definition at line 61 of file readmetadata.h.

References strand_.

00061 { return strand_; }

TR_DNA ReadMetaData::beginGood (  )  [inline]

Definition at line 62 of file readmetadata.h.

References beginGood_.

00062 { return beginGood_; }

TR_DNA ReadMetaData::endGood (  )  [inline]

Definition at line 63 of file readmetadata.h.

References endGood_.

00063 { return endGood_; }


Member Data Documentation

FeatureInfo* ReadMetaData::m_info [protected]

Reimplemented from FeatureData.

Definition at line 312 of file featuredata.h.

std::string ReadMetaData::name_ [protected]

Definition at line 313 of file featuredata.h.

Referenced by name(), print_debug_info(), readAttributes(), ReadMetaData(), readStream(), setName(), writeStream(), and writeXml().

std::string ReadMetaData::mate_ [protected]

Definition at line 314 of file featuredata.h.

Referenced by mate(), readAttributes(), ReadMetaData(), readStream(), setMate(), writeStream(), and writeXml().

std::size_t ReadMetaData::matelen_ [protected]

Definition at line 315 of file featuredata.h.

Referenced by mateLength(), readAttributes(), ReadMetaData(), readStream(), setMateLength(), writeStream(), and writeXml().

std::string ReadMetaData::strand_ [protected]

Definition at line 316 of file featuredata.h.

Referenced by readAttributes(), ReadMetaData(), readStream(), setStrand(), strand(), writeStream(), and writeXml().

TR_DNA ReadMetaData::beginGood_ [protected]

Definition at line 317 of file featuredata.h.

Referenced by beginGood(), readAttributes(), ReadMetaData(), readStream(), setBeginGood(), writeStream(), and writeXml().

TR_DNA ReadMetaData::endGood_ [protected]

Definition at line 318 of file featuredata.h.

Referenced by endGood(), readAttributes(), ReadMetaData(), readStream(), setEndGood(), writeStream(), and writeXml().

TrapperVector<double> ReadMetaData::tc_vec

Definition at line 320 of file featuredata.h.

Referenced by TrapperView::getInfo(), TrapperView::paintFeatures(), readAttributes(), ReadMetaData(), readStream(), writeStream(), and writeXml().

db_recno_t ReadMetaData::readRecno [protected]

Definition at line 71 of file readmetadata.h.

Referenced by TrapperView::findRead(), TrapperDoc::importChromat(), TrapperDoc::importPhd(), ReadMetaData(), and FindMatesAlgo::start().

FeatureInfo* ReadMetaData::m_info [protected]

Reimplemented from FeatureData.

Definition at line 73 of file readmetadata.h.

TrapperVector<double> ReadMetaData::tc_vec

Definition at line 81 of file readmetadata.h.


The documentation for this class was generated from the following files:
Generated on Fri Jul 17 20:19:52 2009 for ngsview by  doxygen 1.5.1