libMems/DNAFileSML.cpp

Go to the documentation of this file.
00001 /*******************************************************************************
00002  * $Id: DNAFileSML.cpp,v 1.4 2004/03/01 02:40:08 darling Exp $
00003  * This file is copyright 2002-2007 Aaron Darling and authors listed in the AUTHORS file.
00004  * Please see the file called COPYING for licensing, copying, and modification
00005  * Please see the file called COPYING for licensing details.
00006  * **************
00007  ******************************************************************************/
00008 
00009 #ifdef HAVE_CONFIG_H
00010 #include "config.h"
00011 #endif
00012 
00013 #include "libGenome/gnSequence.h"
00014 #include "libGenome/gnFilter.h"
00015 #include "libMems/DNAFileSML.h"
00016 
00017 using namespace std;
00018 using namespace genome;
00019 namespace mems {
00020 
00021 DNAFileSML::DNAFileSML() : FileSML(){
00022         FileSML::header.version = FormatVersion();
00023 }
00024 
00025 DNAFileSML::~DNAFileSML(){
00026 }
00027 
00028 DNAFileSML::DNAFileSML(const string& fname, const uint8* table, const uint32 alpha_bits){
00029         header.alphabet_bits = alpha_bits;
00030         memcpy(header.translation_table, table, UINT8_MAX);
00031         filename = fname;
00032         header.version = FormatVersion();
00033 }
00034 
00035 DNAFileSML& DNAFileSML::operator=(const DNAFileSML& msa ){
00036         FileSML::operator=(msa);
00037         return *this;
00038 }
00039 
00040 DNAFileSML* DNAFileSML::Clone() const{
00041         DNAFileSML *bdsa = new DNAFileSML();
00042         (*bdsa) = *this;
00043         return bdsa;
00044 }
00045 
00046 uint64 DNAFileSML::GetNeededMemory(gnSeqI len){
00047         uint64 neededmem = (len * FileSML::header.alphabet_bits) / 8;
00048         //forward and reverse copies of the sequence
00049         neededmem += len * 2;
00050         neededmem += sizeof(bmer) * len;
00051         return neededmem;
00052 }
00053 
00054 uint32 DNAFileSML::CalculateMaxMerSize() const{
00055         return 62 / header.alphabet_bits;
00056 }
00057 
00058 uint64 DNAFileSML::GetMer(gnSeqI position) const{
00059         return GetDnaMer( position );
00060 }
00061 
00062 uint64 DNAFileSML::GetSeedMer( gnSeqI offset ) const{
00063         return GetDnaSeedMer( offset );
00064 }
00065 
00066 void DNAFileSML::FillSML(const gnSequence& seq, vector<bmer>& sml_array)
00067 {
00068         FillDnaSML(seq, sml_array);
00069 }
00070 
00071 } // namespace mems

Generated on Fri Mar 14 06:01:02 2008 for libMems by doxygen 1.3.6