include/algo/align/ngalign/ngalign_interface.hpp

Go to the documentation of this file.
00001 #ifndef NGALIGN_INTERFACE__HPP
00002 #define NGALIGN_INTERFACE__HPP
00003 
00004 /*  $Id: ngalign_interface.hpp 170067 2009-09-08 18:42:38Z boukn $
00005  * ===========================================================================
00006  *
00007  *                            PUBLIC DOMAIN NOTICE
00008  *               National Center for Biotechnology Information
00009  *
00010  *  This software/database is a "United States Government Work" under the
00011  *  terms of the United States Copyright Act.  It was written as part of
00012  *  the author's official duties as a United States Government employee and
00013  *  thus cannot be copyrighted.  This software/database is freely available
00014  *  to the public for use. The National Library of Medicine and the U.S.
00015  *  Government have not placed any restriction on its use or reproduction.
00016  *
00017  *  Although all reasonable efforts have been taken to ensure the accuracy
00018  *  and reliability of the software and data, the NLM and the U.S.
00019  *  Government do not and cannot warrant the performance or results that
00020  *  may be obtained by using this software or data. The NLM and the U.S.
00021  *  Government disclaim all warranties, express or implied, including
00022  *  warranties of performance, merchantability or fitness for any particular
00023  *  purpose.
00024  *
00025  *  Please cite the author in any work or product based on this material.
00026  *
00027  * ===========================================================================
00028  *
00029  * Authors:  Nathan Bouk
00030  *
00031  * File Description:
00032  *
00033  */
00034 
00035 #include <corelib/ncbistd.hpp>
00036 #include <corelib/ncbiobj.hpp>
00037 #include <objects/seqloc/Na_strand.hpp>
00038 
00039 #include <algo/align/ngalign/result_set.hpp>
00040 
00041 
00042 BEGIN_NCBI_SCOPE
00043 
00044 BEGIN_SCOPE(objects)
00045     class CScope;
00046     class CSeq_align;
00047     class CSeq_align_set;
00048     class CSeq_id;
00049 END_SCOPE(objects)
00050 
00051 BEGIN_SCOPE(blast)
00052     class IQueryFactory;
00053     class CLocalDbAdapter;
00054     class CBlastOptionsHandle;
00055     class CSearchResultSet;
00056     class CSearchResults;
00057 END_SCOPE(blast)
00058 
00059 class CSeqMasker;
00060 
00061 
00062 typedef CRef<objects::CSeq_align_set> TAlignSetRef;
00063 typedef CRef<blast::CSearchResultSet> TResultsSetRef;
00064 typedef CRef<CAlignResultsSet>  TAlignResultsRef;
00065 
00066 
00067 class ISequenceSet : public CObject
00068 {
00069 public:
00070     virtual CRef<blast::IQueryFactory> CreateQueryFactory(
00071             objects::CScope& Scope, const blast::CBlastOptionsHandle& BlastOpts) = 0;
00072     virtual CRef<blast::IQueryFactory> CreateQueryFactory(
00073             objects::CScope& Scope, const blast::CBlastOptionsHandle& BlastOpts,
00074             const CAlignResultsSet& Alignments, int Threshold) = 0;
00075     virtual CRef<blast::CLocalDbAdapter> CreateLocalDbAdapter(
00076             objects::CScope& Scope, const blast::CBlastOptionsHandle& BlastOpts) = 0;
00077 };
00078 
00079 
00080 
00081 class IAlignmentFactory : public CObject
00082 {
00083 public:
00084     virtual TAlignResultsRef GenerateAlignments(objects::CScope& Scope,
00085                                                 ISequenceSet* Querys,
00086                                                 ISequenceSet* Subjects,
00087                                                 TAlignResultsRef AccumResults) = 0;
00088 };
00089 
00090 
00091 // Low Ranks are better.
00092 class IAlignmentFilter : public CObject
00093 {
00094 public:
00095     virtual void FilterAlignments(TAlignResultsRef In,
00096                                   TAlignResultsRef Out) = 0;
00097     virtual unsigned int GetFilterRank() const = 0;
00098 
00099     const static string KFILTER_SCORE;
00100 };
00101 
00102 
00103 
00104 class IAlignmentScorer : public CObject
00105 {
00106 public:
00107     virtual void ScoreAlignments(TAlignResultsRef Alignments,
00108                                  objects::CScope& Scope) = 0;
00109 };
00110 
00111 
00112 
00113 
00114 END_NCBI_SCOPE
00115 
00116 #endif
00117 
00118 

Generated on Wed Dec 9 02:54:17 2009 for NCBI C++ ToolKit by  doxygen 1.4.6
Modified on Wed Dec 09 08:17:25 2009 by modify_doxy.py rev. 173732