Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CompositeScoringScheme.hh
Go to the documentation of this file.
1 // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
2 // vi: set ts=2 noet:
3 //
4 // (c) Copyright Rosetta Commons Member Institutions.
5 // (c) This file is part of the Rosetta software suite and is made available under license.
6 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
7 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
8 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
9 
10 /// @file CompositeScoringScheme.hh
11 /// @brief class definition for a given scoring scheme for an alignment.
12 /// @detailed Scoring scheme based on comparing sequence columns based on
13 /// the additive combination of several ScoringScheme objects.
14 /// @author James Thompson
15 
16 #ifndef INCLUDED_core_sequence_CompositeScoringScheme_hh
17 #define INCLUDED_core_sequence_CompositeScoringScheme_hh
18 
19 #include <core/types.hh>
23 
24 #include <utility/vector1_bool.hh>
25 
26 namespace core {
27 namespace sequence {
28 
30 
31 public:
33  gap_open ( -4 );
34  gap_extend( -1 );
35  type("Composite");
36  }
37 
38  /// @brief ctor
40  Real gap_open_in,
41  Real gap_extend_in,
43  ) :
44  scoring_schemes_( schemes )
45  {
46  gap_open( gap_open_in );
47  gap_extend( gap_extend_in );
48  type("Composite");
49  }
50 
52  // maybe clone the scoring_schemes() if object re-use ever causes a weird
53  // problem.
54  return new CompositeScoringScheme(
55  gap_open(),
56  gap_extend(),
58  );
59  }
60 
62  return scoring_schemes_;
63  }
64 
65  Size count() const {
66  return scoring_schemes_.size();
67  }
68 
69  void add_scoring_scheme( ScoringSchemeOP scheme );
70 
71  /// @brief dtor
73 
74  virtual void read_from_file( utility::file::FileName const & fn );
75 
76  virtual Real score( SequenceOP seq1, SequenceOP seq2, core::Size pos1, core::Size pos2 );
77 
78 private:
80 }; // class CompositeScoringScheme
81 
82 } // sequence
83 } // core
84 
85 #endif