Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SpliceSegment.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/protein_interface_design/movers/SpliceSegment.hh
11 /// @author Sarel Fleishman
12 
13 #ifndef INCLUDED_protocols_protein_interface_design_movers_SpliceSegment_hh
14 #define INCLUDED_protocols_protein_interface_design_movers_SpliceSegment_hh
17 #include <utility/pointer/ReferenceCount.hh>
18 #include <utility/vector1.hh>
19 #include <map>
20 
21 namespace protocols {
22 namespace protein_interface_design {
23 namespace movers {
24 
25 /* A SpliceSegment is one stretch of residues, which is associated with one or more sequence profiles. SpliceSegment is a class that helps manage these profiles
26 
27 Two types of input files per splice segment are expected:
28 pdb-profile match: This file should be formatted as pdb, profile_name:
29 1y32 L1.1
30 1y33 L1.1
31 1ya3 L1.2
32 .
33 .
34 .
35 
36 Each splice_segment is additionally associated with the sequence profiles mentioned in the pdb-profile match file. These should be
37 formatted as Rosetta-readable PSSM files*/
38 
39 ///@brief utility class and functions for dealing with sequence profiles for varying segments in Splice
41 {
42  public:
43  SpliceSegment();
44  virtual ~SpliceSegment();
45  void read_profile( std::string const file_name, std::string const segment_name ); /// read pssm
46  void read_pdb_profile( std::string const file_name ); /// read the pdb-profile match from a disk file
47  core::sequence::SequenceProfileOP get_profile( std::string const segment_name ); // return the requested sequence profile
48  void add_pdb_profile_pair( std::string const pdb, std::string const profile_name ); /// add a sequence profile
49  core::sequence::SequenceProfileOP pdb_profile( std::string const pdb_name ); // return a sequence profile according to a pdb file name
50  core::sequence::SequenceProfileOP sequence_profile( std::string const profile_name ); // return a sequence profile according to a profile name
51  private:
53  std::map< std::string/*1y32*/, std::string/*L1.1*/ > pdb_to_profile_map_;
54 };
55 
56 /* pose comments
57 segment_L1 1y32
58 segment_FR2 1x9q
59 segment_L2 1jxw
60 */
61 
62 core::sequence::SequenceProfileOP concatenate_profiles( utility::vector1< core::sequence::SequenceProfileOP > const profiles ); // utility function to generate a single concatenated profile from a vector of profiles
63 
64 } // movers
65 } // protein_interface_design
66 } // protocols
67 
68 
69 #endif /*INCLUDED_protocols_protein_interface_design_movers_Splice_HH*/