NCBI C++ ToolKit
mask_writer.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 /* $Id: mask_writer.hpp 57273 2013-02-20 20:48:34Z camacho $
2  * ===========================================================================
3  *
4  * PUBLIC DOMAIN NOTICE
5  * National Center for Biotechnology Information
6  *
7  * This software/database is a "United States Government Work" under the
8  * terms of the United States Copyright Act. It was written as part of
9  * the author's official duties as a United States Government employee and
10  * thus cannot be copyrighted. This software/database is freely available
11  * to the public for use. The National Library of Medicine and the U.S.
12  * Government have not placed any restriction on its use or reproduction.
13  *
14  * Although all reasonable efforts have been taken to ensure the accuracy
15  * and reliability of the software and data, the NLM and the U.S.
16  * Government do not and cannot warrant the performance or results that
17  * may be obtained by using this software or data. The NLM and the U.S.
18  * Government disclaim all warranties, express or implied, including
19  * warranties of performance, merchantability or fitness for any particular
20  * purpose.
21  *
22  * Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================
25  *
26  * Author: Aleksandr Morgulis
27  *
28  * File Description:
29  * Header file for CMaskWriter class.
30  *
31  */
32 
33 #ifndef CMASK_WRITER_H
34 #define CMASK_WRITER_H
35 
36 #include <corelib/ncbistre.hpp>
37 #include <objects/seq/Bioseq.hpp>
40 
42 
43 /**
44  **\brief A base class for winmasker output writers.
45  **
46  ** This class provides support for the ability of winmasker
47  ** to generate output in multiple formats. A derived class
48  ** should be written for each supported format.
49  **
50  **/
52 {
53 public:
54 
55  /**
56  **\brief Object constructor.
57  **
58  **\param arg_os the ostream object used to output masked
59  ** sequences
60  **
61  **/
62  CMaskWriter( CNcbiOstream & arg_os ) : os( arg_os ) {}
63 
64  /**
65  **\brief Object destructor.
66  **
67  **/
68  virtual ~CMaskWriter() {}
69 
70  /**
71  **\brief Type representing a masked interval within a sequence.
72  **
73  ** If A is an object of type TMaskedInterval, then A.first is
74  ** the offset (starting from 0) of the beginning of the
75  ** interval; A.second is the offset of the end of the interval.
76  **
77  **/
78  typedef pair< TSeqPos, TSeqPos > TMaskedInterval;
79 
80  /**
81  **\brief A type representing the total of masking information
82  ** about a sequence.
83  **
84  **/
85  typedef vector< TMaskedInterval > TMaskList;
86 
87  /**
88  **\brief Output masked sequence data.
89  **
90  ** Each implementation of this abstract method will recieve the
91  ** original sequence and the list of masked intervals and is
92  ** responsible to formatting it masked sequence and printing
93  ** it using the ostream object passed to the writer at
94  ** construction time.
95  **
96  **\param bsh the bioseq handle
97  **\param mask the resulting list of masked intervals
98  **\param parsed_id bioseq id was parsed by CMaskReader.
99  **
100  **/
101  virtual void Print( objects::CBioseq_Handle & bsh,
102  const TMaskList & mask,
103  bool parsed_id = false ) = 0;
104 
105 protected:
106 
107  /**
108  **\brief Output of the sequence id.
109  **
110  **\param bsh the bioseq handle
111  **\param parsed_id bioseq id was parsed by CMaskReader.
112  **
113  **/
114  virtual void PrintId( objects::CBioseq_Handle& bsh, bool parsed_id );
115 
116  /**
117  **\brief Convert the sequence id to a string
118  **
119  ** By default prints id in fasta format but implementations
120  ** can redefine it as necessary and use from within Print()
121  ** method.
122  **
123  **\param bsh the bioseq handle
124  **\param parsed_id bioseq id was parsed by CMaskReader.
125  **
126  **/
127  virtual string IdToString(objects::CBioseq_Handle& bsh, bool parsed_id);
128 
129  /**
130  **\brief the standard C++ ostream object
131  **
132  ** Determines the destination of the output.
133  **
134  **/
136 };
137 
139 
140 #endif
ncbi::TMaskedQueryRegions mask
A base class for winmasker output writers.
Definition: mask_writer.hpp:52
virtual void Print(objects::CBioseq_Handle &bsh, const TMaskList &mask, bool parsed_id=false)=0
Output masked sequence data.
pair< TSeqPos, TSeqPos > TMaskedInterval
Type representing a masked interval within a sequence.
Definition: mask_writer.hpp:78
virtual ~CMaskWriter()
Object destructor.
Definition: mask_writer.hpp:68
CMaskWriter(CNcbiOstream &arg_os)
Object constructor.
Definition: mask_writer.hpp:62
CNcbiOstream & os
the standard C++ ostream object
vector< TMaskedInterval > TMaskList
A type representing the total of masking information about a sequence.
Definition: mask_writer.hpp:85
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
Definition: ncbistre.hpp:149
#define NCBI_XOBJREAD_EXPORT
Definition: ncbi_export.h:1315
NCBI C++ stream class wrappers for triggering between "new" and "old" C++ stream libraries.
Modified on Wed Sep 04 14:58:52 2024 by modify_doxy.py rev. 669887