blast_rps_options.cpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:5k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: blast_rps_options.cpp,v $
  4.  * PRODUCTION Revision 1000.2  2004/06/01 18:05:49  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.6
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /*  $Id: blast_rps_options.cpp,v 1000.2 2004/06/01 18:05:49 gouriano Exp $
  10.  * ===========================================================================
  11.  *
  12.  *                            PUBLIC DOMAIN NOTICE
  13.  *               National Center for Biotechnology Information
  14.  *
  15.  *  This software/database is a "United States Government Work" under the
  16.  *  terms of the United States Copyright Act.  It was written as part of
  17.  *  the author's official duties as a United States Government employee and
  18.  *  thus cannot be copyrighted.  This software/database is freely available
  19.  *  to the public for use. The National Library of Medicine and the U.S.
  20.  *  Government have not placed any restriction on its use or reproduction.
  21.  *
  22.  *  Although all reasonable efforts have been taken to ensure the accuracy
  23.  *  and reliability of the software and data, the NLM and the U.S.
  24.  *  Government do not and cannot warrant the performance or results that
  25.  *  may be obtained by using this software or data. The NLM and the U.S.
  26.  *  Government disclaim all warranties, express or implied, including
  27.  *  warranties of performance, merchantability or fitness for any particular
  28.  *  purpose.
  29.  *
  30.  *  Please cite the author in any work or product based on this material.
  31.  *
  32.  * ===========================================================================
  33.  *
  34.  * Authors:  Tom Madden
  35.  *
  36.  */
  37. /// @file blast_rps_options.cpp
  38. /// Implements the CBlastRPSOptionsHandle class.
  39. #include <ncbi_pch.hpp>
  40. #include <algo/blast/api/blast_rps_options.hpp>
  41. #include <objects/seqloc/Na_strand.hpp>
  42. #include "blast_setup.hpp"
  43. /** @addtogroup AlgoBlast
  44.  *
  45.  * @{
  46.  */
  47. BEGIN_NCBI_SCOPE
  48. BEGIN_SCOPE(blast)
  49. CBlastRPSOptionsHandle::CBlastRPSOptionsHandle(EAPILocality locality)
  50.     : CBlastOptionsHandle(locality)
  51. {
  52.     if (m_Opts->GetLocality() == CBlastOptions::eRemote) {
  53.         return;
  54.     }
  55.     SetDefaults();
  56.     m_Opts->SetProgram(eRPSBlast);
  57. }
  58. void 
  59. CBlastRPSOptionsHandle::SetLookupTableDefaults()
  60. {
  61.     m_Opts->SetLookupTableType(RPS_LOOKUP_TABLE);
  62. }
  63. void
  64. CBlastRPSOptionsHandle::SetQueryOptionDefaults()
  65. {
  66.     SetFilterString("F");
  67.     m_Opts->SetStrandOption(objects::eNa_strand_unknown);
  68. }
  69. void
  70. CBlastRPSOptionsHandle::SetInitialWordOptionsDefaults()
  71. {
  72.     SetXDropoff(BLAST_UNGAPPED_X_DROPOFF_PROT);
  73.     SetWindowSize(BLAST_WINDOW_SIZE_PROT);
  74.     // FIXME: extend_word_method is missing
  75.     m_Opts->SetUngappedExtension();
  76. }
  77. void
  78. CBlastRPSOptionsHandle::SetGappedExtensionDefaults()
  79. {
  80.     SetGapXDropoff(BLAST_GAP_X_DROPOFF_PROT);
  81.     SetGapXDropoffFinal(BLAST_GAP_X_DROPOFF_FINAL_PROT);
  82.     SetGapTrigger(BLAST_GAP_TRIGGER_PROT);
  83.     m_Opts->SetGapExtnAlgorithm(eDynProgExt);
  84. }
  85. void
  86. CBlastRPSOptionsHandle::SetScoringOptionsDefaults()
  87. {
  88.     SetGappedMode();
  89.     m_Opts->SetMatrixName("BLOSUM62");
  90.     // set invalid values for options that are not applicable
  91.     m_Opts->SetOutOfFrameMode(false);
  92.     m_Opts->SetFrameShiftPenalty(INT2_MAX);
  93.     m_Opts->SetDecline2AlignPenalty(INT2_MAX);
  94. }
  95. void
  96. CBlastRPSOptionsHandle::SetHitSavingOptionsDefaults()
  97. {
  98.     SetHitlistSize(500);
  99.     SetPrelimHitlistSize(550);
  100.     SetEvalueThreshold(BLAST_EXPECT_VALUE);
  101.     SetPercentIdentity(0);
  102.     m_Opts->SetSumStatisticsMode(false);
  103.     // set some default here, allow INT4MAX to mean infinity
  104.     SetMaxNumHspPerSequence(0); 
  105.     // this is never used... altough it could be calculated
  106.     //SetTotalHspLimit(FIXME);
  107.     SetCutoffScore(0); // will be calculated based on evalue threshold,
  108.     // effective lengths and Karlin-Altschul params in BLAST_Cutoffs_simple
  109.     // and passed to the engine in the params structure
  110.     // not applicable
  111.     m_Opts->SetRequiredStart(0);
  112.     m_Opts->SetRequiredEnd(0);
  113. }
  114. void
  115. CBlastRPSOptionsHandle::SetEffectiveLengthsOptionsDefaults()
  116. {
  117.     SetDbLength(0);
  118.     SetDbSeqNum(1);
  119.     SetEffectiveSearchSpace(0);
  120.     SetUseRealDbSize();
  121. }
  122. void
  123. CBlastRPSOptionsHandle::SetSubjectSequenceOptionsDefaults()
  124. {}
  125. END_SCOPE(blast)
  126. END_NCBI_SCOPE
  127. /* @} */
  128. /*
  129.  * ===========================================================================
  130.  * $Log: blast_rps_options.cpp,v $
  131.  * Revision 1000.2  2004/06/01 18:05:49  gouriano
  132.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.6
  133.  *
  134.  * Revision 1.6  2004/05/21 21:41:02  gorelenk
  135.  * Added PCH ncbi_pch.hpp
  136.  *
  137.  * Revision 1.5  2004/05/17 15:32:39  madden
  138.  * Int algorithm_type replaced with enum EBlastPrelimGapExt
  139.  *
  140.  * Revision 1.4  2004/04/23 13:50:16  papadopo
  141.  * derived BlastRPSOptionsHandle from BlastOptions (again)
  142.  *
  143.  * Revision 1.3  2004/04/16 14:27:47  papadopo
  144.  * make this class a derived class of CBlastProteinOptionsHandle, that corresponds to the eRPSBlast program
  145.  *
  146.  * Revision 1.2  2004/03/19 15:13:34  camacho
  147.  * Move to doxygen group AlgoBlast
  148.  *
  149.  * Revision 1.1  2004/03/10 14:52:13  madden
  150.  * Options handle for RPSBlast searches
  151.  *
  152.  *
  153.  * ===========================================================================
  154.  */