/usr/include/libGenome-1.3/libGenome/gnSEQSource.h is in libgenome-1.3-dev 1.3.1-6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | /////////////////////////////////////////////////////////////////////////////
// File: gnSEQSource.h
// Purpose: Implements gnBaseSource for .SEQ files
// Description:
// Changes:
// Version: libGenome 0.5.1
// Author: Aaron Darling
// Modified by:
// Copyright: (c) Aaron Darling
// Licenses: See COPYING file for details
/////////////////////////////////////////////////////////////////////////////
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#ifndef _gnSEQSource_h_
#define _gnSEQSource_h_
#include "libGenome/gnDefs.h"
#include <string>
#include <fstream>
#include <vector>
#include "libGenome/gnFileSource.h"
#include "libGenome/gnFileContig.h"
#include "libGenome/gnSourceSpec.h"
#include "libGenome/gnSequence.h"
namespace genome {
/**
* gnSEQSource is a SEQ file reader.
* This class reads and writes the DNAStar SEQ file format.
* gnSEQSource is used by gnSourceFactory to read files and should only be used
* directly.when writing out files in SEQ file format by calling
* gnSEQSource::Write( mySpec, "C:\\mySeqFile.seq");
*/
class GNDLLEXPORT gnSEQSource : public gnFileSource
{
public:
/**
* Empty Constructor, does nothing.
*/
gnSEQSource();
/**
* Clone Constructor copies the specified gnSEQSource.
* @param s The gnSEQSource to copy.
*/
gnSEQSource( const gnSEQSource& s );
/**
* Destructor, frees memory.
*/
~gnSEQSource();
/**
* Returns an exact copy of this class.
*/
gnSEQSource* Clone() const;
// Contig Access methods
uint32 GetContigListLength() const;
boolean HasContig( const std::string& name ) const;
uint32 GetContigID( const std::string& name ) const;
std::string GetContigName( const uint32 i ) const;
gnSeqI GetContigSeqLength( const uint32 i ) const;
boolean SeqRead( const gnSeqI start, char* buf, gnSeqI& bufLen, const uint32 contigI=ALL_CONTIGS );
/**
* Writes the specified gnSequence to a .SEQ file named "filename".
* @param sequence The gnSequence to write out.
* @param filename The name of the file to write.
* @return True if successful, false otherwise.
*/
static boolean Write(gnSequence& sequence, const std::string& filename);
/**
* Writes the specified source to a .SEQ file named "filename".
* @param source The source to write out.
* @param filename The name of the file to write.
* @return True if successful, false otherwise.
*/
static boolean Write(gnBaseSource *source, const std::string& filename);
/**
* Writes the given spec to a .SEQ file named "filename".
* @param spec The spec to write out.
* @param filename The name of the file to write.
* @return True if successful, false otherwise.
*/
static boolean Write(gnGenomeSpec *spec, const std::string& filename);
gnGenomeSpec *GetSpec() const;
gnFileContig* GetFileContig( const uint32 contigI ) const;
private:
boolean SeqSeek( const gnSeqI start, const uint32& contigI, uint64& startPos, uint64& readableBytes );
boolean SeqStartPos( const gnSeqI start, gnFileContig& contig, uint64& startPos, uint64& readableBytes );
boolean ParseStream( std::istream& fin );
static std::string& Filler(uint32 length);
static void FormatString(std::string& data, uint32 offset, uint32 width);
static void BaseCount(const std::string& bases, gnSeqI& a_count, gnSeqI& c_count, gnSeqI& g_count, gnSeqI& t_count, gnSeqI& other_count);
// gnSeqI m_seqLength;
gnGenomeSpec *m_spec;
std::vector< gnFileContig* > m_contigList;
};// class gnSEQSource
// Clone
inline
gnSEQSource* gnSEQSource::Clone() const
{
return new gnSEQSource( *this );
}
// Contig Access methods
inline
uint32 gnSEQSource::GetContigListLength() const
{
return m_contigList.size();
}
inline
boolean gnSEQSource::Write(gnSequence& sequence, const std::string& filename){
return Write(sequence.GetSpec(), filename);
}
inline
boolean gnSEQSource::Write(gnBaseSource *source, const std::string& filename){
return Write(source->GetSpec(), filename);
}
inline
gnGenomeSpec *gnSEQSource::GetSpec() const{
return m_spec->Clone();
}
} // end namespace genome
#endif
// _gnSEQSource_h_
|