Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MethylNames.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 protocols/noesy_assign/MethylNames.hh
11 /// @author Oliver Lange
12 
13 #ifndef INCLUDED_protocols_noesy_assign_MethylNames_HH
14 #define INCLUDED_protocols_noesy_assign_MethylNames_HH
15 
16 
17 // Unit Headers
18 //#include <protocols/noesy_assign/MethylNames.fwd.hh>
19 
20 // Package Headers
22 
23 // Project Headers
24 #include <core/chemical/AA.hh>
25 #include <core/types.hh>
26 #include <core/id/NamedAtomID.hh>
27 
28 // Utility headers
29 
30 // C++ headers
31 #include <string>
32 
33 namespace protocols {
34 namespace noesy_assign {
35 
36 class MethylNames {
37 public:
39  typedef std::map< std::string, AtomList > NameTable;
40  typedef NameTable::const_iterator const_iterator;
41  MethylNames( );
43 
44  //which NMR proton name belongs to the ROSETTA proton ?
45  //1HG1 ---> return HG11
46  std::string const& rosetta2nmr( std::string const& proton ) const;
47 
48  //return which NMR methyl name belongs to the Rosetta proton ?
49  //1HG1 --> returns QG1, QQG
50  AtomList const& rosetta2methyl( std::string const& proton ) const;
51 
52  //return list of rosetta protons that belong to a proton or methyl NMR name
53  AtomList const& nmr2rosetta( std::string const& proton ) const;
54 
55  //iterate over protons/methyls
56  const_iterator begin() const { return nmr2rosetta_.begin(); }
57  const_iterator end() const { return nmr2rosetta_.end(); }
58 
59  //the amino-acid type
60  core::chemical::AA aa() const { return aa_; }
61 
62  //return the amino-acid name (as from chemical::name_from_aa(x) )
63  std::string aa_name() const;
64 
65  //return index of nmr-name (using the same sequence as begin()...end() implies
66  core::Size proton_index( std::string const& ) const;
67 
68  //add a nmr / rosetta proton pair
69  void add_proton( std::string const& nmr, std::string const& rosetta );
70  //add a nmr-methyl / rosetta proton pair
71  void add_methyl( std::string const& rosetta, std::string const& methyl );
72 
73 private:
75  std::map< std::string, std::string > rosetta2nmr_;
78 };
79 
81 private:
82  //Singleton Class
84 
85 public:
86  static MethylNameLibrary const* get_instance();
88 
89 private:
90  void load_database_table();
92  typedef std::map< core::chemical::AA, MethylNames > MethylNameTable;
94 };
95 
96 }
97 }
98 
99 #endif