Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Compound Members File Members

# gnFASSource Class Reference

gnFASSource reads and writes FastA files. More...

`#include <gnFASSource.h>`

Inheritance diagram for gnFASSource:

List of all members.

## Public Member Functions
| gnFASSource ()
| Empty Constructor, does nothing.
| gnFASSource (const gnFASSource &s)
| Clone Constructor copies the specified gnFASSource.
| ~gnFASSource ()
| Destructor, frees memory.
gnFASSource * | Clone () const
| Returns an exact copy of this class.
uint32 | GetContigListLength () const
| Get the number of sequence contigs in this source.
boolean | HasContig (const string &name) const
| Looks for a contig by name.
uint32 | GetContigID (const string &name) const
| Get a contig index by name.
string | GetContigName (const uint32 i) const
| Get the name of the specified contig.
gnSeqI | GetContigSeqLength (const uint32 i) const
| Get the total number of base pairs in the specified contig.
gnFileContig * | GetContig (const uint32 i) const
boolean | SeqRead (const gnSeqI start, char *buf, uint32 &bufLen, const uint32 contigI=ALL_CONTIGS)
| Gets sequence data from this source.
gnGenomeSpec * | GetSpec () const
| Get the annotated sequence data as a gnGenomeSpec.
gnFileContig * | GetFileContig (const uint32 contigI) const
| Returns a pointer to the file contig corresponding to contigI or null if none exists.
virtual void | Open (string openString)
| Opens the source given in "openString" for reading.
virtual void | Open ()
| Opens this source for reading.
virtual void | Close ()
| Closes the file or connection this source is reading from.
virtual string | GetOpenString () const
| Get the location of the source that is being used.
virtual const gnFilter * | GetFilter () const
| Get the filter currently being used to filter unwanted characters out of read sequences.
virtual void | SetFilter (gnFilter *filter)
| Set the filter that will be used to filter unwanted characters out of the sequence data.
virtual boolean | Read (const uint64 pos, char *buf, uint32 &bufLen)
| Gets raw input from this source.
## Static Public Member Functions
void | Write (gnSequence &sequence, const string &filename, boolean write_coords=true, boolean enforce_unique_names=true)
| Write the given gnSequence to a FastA file.
void | Write (gnSequence &sequence, ostream &m_ostream, boolean write_coords=true, boolean enforce_unique_names=true)
| Write the given gnSequence to an ostream.
boolean | Write (gnBaseSource *source, const string &filename)
| Deprecated - do not use.
## Protected Member Functions
void | DetermineNewlineType ()
## Protected Attributes
string | m_openString
ifstream | m_ifstream
const gnFilter * | m_pFilter
gnNewlineType | m_newlineType
uint32 | m_newlineSize
## Private Member Functions
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 (istream &fin)
## Private Attributes
vector< gnFileContig * > | m_contigList

## Detailed Description

gnFASSource reads and writes FastA files.

gnFASSource is used by gnSourceFactory to read files. Files can be written in the FastA file format by calling gnFASSource::Write( mySpec, "C:\myFasFile.fas");

Definition at line 32 of file gnFASSource.h.

## Constructor & Destructor Documentation

gnFASSource::gnFASSource | ( |  | ) |

| Empty Constructor, does nothing. Definition at line 20 of file gnFASSource.cpp. References DebugMsg(), gnFilter::fullDNASeqFilter(), gnFileSource::m_openString, and gnFileSource::m_pFilter. Referenced by Clone().

gnFASSource::gnFASSource | ( | const gnFASSource & | s | ) |

  | Clone Constructor copies the specified gnFASSource. Parameters:
  s | The gnFASSource to copy.
Definition at line 28 of file gnFASSource.cpp. References m_contigList.

gnFASSource::~gnFASSource | ( |  | ) |

| Destructor, frees memory. Definition at line 36 of file gnFASSource.cpp. References m_contigList, and gnFileSource::m_ifstream.

## Member Function Documentation

gnFASSource * gnFASSource::Clone | ( |  | ) | const`[inline, virtual]`

| Returns an exact copy of this class. Implements gnFileSource. Definition at line 113 of file gnFASSource.h. References gnFASSource().

void gnFileSource::Close | ( |  | ) | `[virtual, inherited]`

  | Closes the file or connection this source is reading from. Exceptions:
  IOStreamError | if an error occurs closing the file.
Implements gnBaseSource. Definition at line 56 of file gnFileSource.cpp. References IOStreamFailed(), gnFileSource::m_ifstream, and Throw_gnEx.

void gnFileSource::DetermineNewlineType | ( |  | ) | `[protected, inherited]`

| Definition at line 74 of file gnFileSource.cpp. References gnNewlineMac, gnNewlineUnix, gnNewlineWindows, gnFileSource::m_ifstream, gnFileSource::m_newlineSize, and gnFileSource::m_newlineType. Referenced by gnGBKSource::ParseStream(), and ParseStream().

gnFileContig * gnFASSource::GetContig | ( | const uint32 | i | ) | const

| Definition at line 84 of file gnFASSource.cpp. References m_contigList.

uint32 gnFASSource::GetContigID | ( | const string & | name | ) | const`[virtual]`

  | Get a contig index by name. If the source does not contain a contig by the specified name GetContigID returns UINT32_MAX. Parameters:
  name | The name of the contig to look for.
Returns: The index of the named contig or UINT32_MAX. Implements gnBaseSource. Definition at line 56 of file gnFASSource.cpp. References m_contigList, and uint32.

uint32 gnFASSource::GetContigListLength | ( |  | ) | const`[inline, virtual]`

| Get the number of sequence contigs in this source. Returns: The number of contigs in this source. Implements gnBaseSource. Definition at line 119 of file gnFASSource.h. References m_contigList, and uint32.

string gnFASSource::GetContigName | ( | const uint32 | i | ) | const`[virtual]`

  | Get the name of the specified contig. Returns an empty string if the specified contig is out of range. Parameters:
  i | The index of the contig or ALL_CONTIGS.
Returns: The name of the contig or an empty string. Implements gnBaseSource. Definition at line 65 of file gnFASSource.cpp. References m_contigList.

gnSeqI gnFASSource::GetContigSeqLength | ( | const uint32 | i | ) | const`[virtual]`

  | Get the total number of base pairs in the specified contig. Parameters:
  i | The index of the contig or ALL_CONTIGS.
Returns: The length in base pairs of the specified contig. Implements gnBaseSource. Definition at line 72 of file gnFASSource.cpp. References gnSeqI, GNSEQI_ERROR, m_contigList, and uint32.

gnFileContig * gnFASSource::GetFileContig | ( | const uint32 | contigI | ) | const`[virtual]`

| Returns a pointer to the file contig corresponding to contigI or null if none exists. Implements gnFileSource. Definition at line 382 of file gnFASSource.cpp. References m_contigList.

const gnFilter * gnFileSource::GetFilter | ( |  | ) | const`[inline, virtual, inherited]`

| Get the filter currently being used to filter unwanted characters out of read sequences. Returns: A pointer to the gnFilter currently in use. Implements gnBaseSource. Definition at line 68 of file gnFileSource.h. References gnFileSource::m_pFilter.

string gnFileSource::GetOpenString | ( |  | ) | const`[inline, virtual, inherited]`

| Get the location of the source that is being used. Returns: The location string describing this source, usually a file name. Implements gnBaseSource. Definition at line 62 of file gnFileSource.h. References gnFileSource::m_openString.

gnGenomeSpec * gnFASSource::GetSpec | ( |  | ) | const`[virtual]`

| Get the annotated sequence data as a gnGenomeSpec. GetSpec returns a gnGenomeSpec which contains the sequence, header, and feature data contained by this source. Returns: The annotated sequence data. Implements gnBaseSource. Definition at line 358 of file gnFASSource.cpp. References gnMultiSpec::AddHeader(), gnFragmentSpec::AddSpec(), gnGenomeSpec::AddSpec(), m_contigList, gnBaseSpec::SetName(), gnContigSpec::SetSourceName(), gnMultiSpec::SetSourceName(), and uint32.

boolean gnFASSource::HasContig | ( | const string & | name | ) | const`[virtual]`

  | Looks for a contig by name. Returns true if it finds the contig, otherwise false. Parameters:
  name | The name of the contig to look for.
Returns: True if the named contig exists, false otherwise. Implements gnBaseSource. Definition at line 47 of file gnFASSource.cpp. References m_contigList, and uint32.

void gnFileSource::Open | ( |  | ) | `[virtual, inherited]`

  | Opens this source for reading. Exceptions:
  Will | throw a FileNotOpened exception if the file was not found or was not accessible.
Implements gnBaseSource. Definition at line 48 of file gnFileSource.cpp. References FileNotOpened(), gnFileSource::m_ifstream, gnFileSource::m_openString, and Throw_gnEx.

void gnFileSource::Open | ( | string | openString | ) | `[virtual, inherited]`

  | Opens the source given in "openString" for reading. Parameters:
  openString | The name of the source (file, network URL, or database) to open.
  Exceptions:
  Will | throw a FileNotOpened exception if the file was not found or was not accessible. Will propagate a FileUnreadable exception if the file format was invalid.
Implements gnBaseSource. Definition at line 29 of file gnFileSource.cpp. References FileNotOpened(), gnFileSource::m_ifstream, gnFileSource::m_openString, gnFileSource::ParseStream(), and Throw_gnEx.

boolean gnFASSource::ParseStream | ( | istream & | fin | ) | `[private, virtual]`

| Implements gnFileSource. Definition at line 388 of file gnFASSource.cpp. References gnFileContig::AddToSeqLength(), Array< T >::data, gnFileSource::DetermineNewlineType(), ErrorMsg(), isNewLine(), isSpace(), gnFilter::IsValid(), m_contigList, gnFileSource::m_ifstream, gnFileSource::m_newlineSize, gnFileSource::m_pFilter, gnFileContig::SetFileEnd(), gnFileContig::SetFileStart(), gnFileContig::SetName(), gnFileContig::SetRepeatGapSize(), gnFileContig::SetRepeatSeqGap(), gnFileContig::SetRepeatSeqSize(), gnFileContig::SetSectEnd(), gnFileContig::SetSectStart(), uint32, and uint64.

boolean gnFileSource::Read | ( | const uint64 | pos,
|  | char * | buf,
|  | uint32 & | bufLen
| ) | `[virtual, inherited]`

  | Gets raw input from this source. Read will attempt to read "bufLen" bytes starting at "pos" directly from the source. It stores the data in "buf", and returns the actual number of bytes read in bufLen. Read will return false if a serious error occurs. Parameters:
  pos | The position in the file to start reading.
  buf | The character array to store data into.
  bufLen | The number of bytes to read.
Returns: True if the operation was successful. Implements gnBaseSource. Definition at line 63 of file gnFileSource.cpp. References gnFileSource::m_ifstream. Referenced by gnRAWSource::SeqRead().

boolean gnFASSource::SeqRead | ( | const gnSeqI | start,
|  | char * | buf,
|  | uint32 & | bufLen,
|  | const uint32 | contigI = ALL_CONTIGS
| ) | `[virtual]`

  | Gets sequence data from this source. SeqRead will attempt to read "bufLen" base pairs starting at "start", an offset into the sequence. Reading inside a specific contig can be accomplished by supplying the "contigI" parameter with a valid contig index. SeqRead stores the sequence data in "buf" and returns the actual number of bases read in "bufLen". SeqRead will return false if a serious error occurs. Parameters:
  start | The base pair to start reading at.
  buf | The character array to store base pairs into.
  bufLen | The number of base pairs to read.
  contigI | The index of the contig to read or ALL_CONTIGS by default.
Returns: True if the operation was successful. Implements gnBaseSource. Definition at line 92 of file gnFASSource.cpp. References Array< T >::data, gnSeqC, gnSeqI, gnFilter::IsValid(), m_contigList, gnFileSource::m_ifstream, gnFileSource::m_pFilter, SeqSeek(), uint32, and uint64.

boolean gnFASSource::SeqSeek | ( | const gnSeqI | start,
|  | const uint32 | contigI,
|  | uint64 & | startPos,
|  | uint64 & | readableBytes
| ) | `[private]`

| Definition at line 178 of file gnFASSource.cpp. References gnSeqI, m_contigList, SeqStartPos(), and uint64. Referenced by SeqRead().

boolean gnFASSource::SeqStartPos | ( | const gnSeqI | start,
|  | gnFileContig & | contig,
|  | uint64 & | startPos,
|  | uint64 & | readableBytes
| ) | `[private]`

| Definition at line 206 of file gnFASSource.cpp. References Array< T >::data, ErrorMsg(), gnFileContig::GetRepeatSeqGapSize(), gnFileContig::GetSectStartEnd(), gnFileContig::HasRepeatSeqGap(), gnFilter::IsValid(), gnFileSource::m_ifstream, gnFileSource::m_pFilter, and uint32. Referenced by SeqSeek().

void gnFileSource::SetFilter | ( | gnFilter * | filter | ) | `[inline, virtual, inherited]`

  | Set the filter that will be used to filter unwanted characters out of the sequence data. Parameters:
  filter | The filter to remove unwanted characters from the sequence.
  Exceptions:
  NullPointer | is thrown if the specified filter pointer is null.
Implements gnBaseSource. Definition at line 74 of file gnFileSource.h. References gnFileSource::m_pFilter, NullPointer(), and Throw_gnEx.

boolean gnFASSource::Write | ( | gnBaseSource * | source,
|  | const string & | filename
| ) | `[static]`

  | Deprecated - do not use. Write the given source to a FastA file. Parameters:
  source | The spec to write out.
  filename | The name of the file to write.
Definition at line 259 of file gnFASSource.cpp. References Array< T >::data, gnBaseSource::GetContigListLength(), gnBaseSource::GetContigName(), gnBaseSource::GetContigSeqLength(), gnSeqC, gnSeqI, gnBaseSource::SeqRead(), and uint32.

void gnFASSource::Write | ( | gnSequence & | sequence,
|  | ostream & | m_ostream,
|  | boolean | write_coords = true,
|  | boolean | enforce_unique_names = true
| ) | `[static]`

  | Write the given gnSequence to an ostream. Parameters:
  sequence | The gnSequence to write out.
  m_ostream | The output stream to write to.
  write_coords | If true each entry's name will be followed by the coordinates of the entry in the context of the entrire file.
  enforce_unique_names | If true each entry's name will be recorded as they are written. Each successive duplicate name that is found will have an underscore and a number appended to it, indicating the number of entries by the same name which have already been written. Turning this off will yield a slight performance improvement when writing files with a large number of entries. (More than 1000)
Definition at line 293 of file gnFASSource.cpp. References gnSequence::contigLength(), gnSequence::contigListLength(), gnSequence::contigName(), Array< T >::data, FAS_LINE_WIDTH, gnBaseHeader::GetHeader(), gnMultiSpec::GetHeader(), gnGenomeSpec::GetSpec(), gnSequence::GetSpec(), gnSeqC, gnSeqI, gnSequence::ToArray(), uint32, and uintToString().

void gnFASSource::Write | ( | gnSequence & | sequence,
|  | const string & | filename,
|  | boolean | write_coords = true,
|  | boolean | enforce_unique_names = true
| ) | `[static]`

  | Write the given gnSequence to a FastA file. Parameters:
  sequence | The gnSequence to write out.
  filename | The name of the file to write.
  write_coords | If true each entry's name will be followed by the coordinates of the entry in the context of the entrire file.
  enforce_unique_names | If true each entry's name will be recorded as they are written. Each successive duplicate name that is found will have an underscore and a number appended to it, indicating the number of entries by the same name which have already been written. Turning this off will yield a slight performance improvement when writing files with a large number of entries. (More than 1000)
  Exceptions:
  A | FileNotOpened() exception may be thrown.
Definition at line 285 of file gnFASSource.cpp. References FileNotOpened(), and Throw_gnEx.

## Member Data Documentation

vector< gnFileContig* > gnFASSource::m_contigList`[private]`

| Definition at line 109 of file gnFASSource.h. Referenced by GetContig(), GetContigID(), GetContigListLength(), GetContigName(), GetContigSeqLength(), GetFileContig(), GetSpec(), gnFASSource(), HasContig(), ParseStream(), SeqRead(), SeqSeek(), and ~gnFASSource().

ifstream gnFileSource::m_ifstream`[protected, inherited]`

| Definition at line 53 of file gnFileSource.h. Referenced by gnFileSource::Close(), gnFileSource::DetermineNewlineType(), gnFileSource::gnFileSource(), gnFileSource::Open(), gnSEQSource::ParseStream(), gnRAWSource::ParseStream(), gnGBKSource::ParseStream(), ParseStream(), gnFileSource::Read(), gnSEQSource::SeqRead(), gnGBKSource::SeqRead(), SeqRead(), gnSEQSource::SeqStartPos(), gnGBKSource::SeqStartPos(), SeqStartPos(), gnABISource::~gnABISource(), gnDNXSource::~gnDNXSource(), ~gnFASSource(), gnGBKSource::~gnGBKSource(), gnRAWSource::~gnRAWSource(), and gnSEQSource::~gnSEQSource().

uint32 gnFileSource::m_newlineSize`[protected, inherited]`

| Definition at line 56 of file gnFileSource.h. Referenced by gnFileSource::DetermineNewlineType(), gnFileSource::gnFileSource(), gnGBKSource::ParseStream(), ParseStream(), and gnGBKSource::SeqStartPos().

gnNewlineType gnFileSource::m_newlineType`[protected, inherited]`

| Definition at line 55 of file gnFileSource.h. Referenced by gnFileSource::DetermineNewlineType(), and gnFileSource::gnFileSource().

string gnFileSource::m_openString`[protected, inherited]`

| Definition at line 52 of file gnFileSource.h. Referenced by gnFileSource::GetOpenString(), gnABISource::gnABISource(), gnFASSource(), gnFileSource::gnFileSource(), gnGBKSource::gnGBKSource(), gnRAWSource::gnRAWSource(), gnSEQSource::gnSEQSource(), and gnFileSource::Open().

const gnFilter* gnFileSource::m_pFilter`[protected, inherited]`

| Definition at line 54 of file gnFileSource.h. Referenced by gnFileSource::GetFilter(), gnABISource::gnABISource(), gnDNXSource::gnDNXSource(), gnFASSource(), gnFileSource::gnFileSource(), gnGBKSource::gnGBKSource(), gnSEQSource::gnSEQSource(), gnSEQSource::ParseStream(), gnRAWSource::ParseStream(), gnGBKSource::ParseStream(), ParseStream(), gnSEQSource::SeqRead(), gnGBKSource::SeqRead(), SeqRead(), gnSEQSource::SeqStartPos(), gnGBKSource::SeqStartPos(), SeqStartPos(), and gnFileSource::SetFilter().

The documentation for this class was generated from the following files:

- gnFASSource.h
- gnFASSource.cpp