14 #include <core/io/pdb/pose_io.hh>
15 #include <core/pose/Pose.hh>
20 #include <basic/options/keys/relax.OptionKeys.gen.hh>
21 #include <basic/options/keys/in.OptionKeys.gen.hh>
22 #include <basic/options/keys/out.OptionKeys.gen.hh>
23 #include <basic/options/keys/docking.OptionKeys.gen.hh>
27 #include <protocols/simple_moves/ScoreMover.hh>
28 #include <core/pose/metrics/CalculatorFactory.hh>
29 #include <core/pose/metrics/simple_calculators/SasaCalculatorLegacy.hh>
30 #include <protocols/toolbox/pose_metric_calculators/NumberHBondsCalculator.hh>
31 #include <protocols/toolbox/pose_metric_calculators/PackstatCalculator.hh>
32 #include <protocols/toolbox/pose_metric_calculators/BuriedUnsatisfiedPolarsCalculator.hh>
34 #include <protocols/rigid/RigidBodyMover.hh>
35 #include <protocols/rigid/RB_geometry.hh>
36 #include <core/chemical/ResidueTypeSet.hh>
37 #include <core/conformation/ResidueFactory.hh>
38 #include <core/conformation/Residue.hh>
39 #include <core/optimization/MinimizerOptions.hh>
40 #include <core/optimization/AtomTreeMinimizer.hh>
41 #include <core/pack/task/TaskFactory.hh>
42 #include <core/pack/task/PackerTask.hh>
43 #include <core/pack/pack_rotamers.hh>
44 #include <core/scoring/sasa.hh>
61 #include <core/io/pdb/pose_io.hh>
62 #include <core/import_pose/import_pose.hh>
63 #include <core/kinematics/MoveMap.hh>
64 #include <protocols/rigid/RigidBodyMover.hh>
65 #include <core/scoring/constraints/CoordinateConstraint.hh>
66 #include <core/conformation/Residue.hh>
67 #include <core/pose/Pose.hh>
68 #include <core/pose/PDBInfo.hh>
69 #include <core/pose/util.hh>
70 #include <core/pose/metrics/CalculatorFactory.hh>
71 #include <core/scoring/Energies.hh>
72 #include <core/scoring/EnergyGraph.hh>
73 #include <core/scoring/ScoreFunction.hh>
74 #include <core/scoring/ScoreType.hh>
75 #include <core/scoring/rms_util.hh>
76 #include <core/scoring/rms_util.tmpl.hh>
77 #include <core/scoring/constraints/util.hh>
78 #include <core/scoring/ScoreFunctionFactory.hh>
79 #include <core/scoring/rms_util.hh>
80 #include <core/id/AtomID.hh>
81 #include <core/id/AtomID_Map.hh>
84 using namespace core::pose::datacache;
85 using namespace core::optimization;
86 using namespace core::pose::metrics;
87 using namespace core::scoring;
89 using namespace core::id;
91 using namespace basic::options::OptionKeys;
92 using namespace conformation;
93 using namespace protocols::simple_moves;
94 using namespace protocols::rigid;
100 int main(
int argc,
char * argv [] ){
103 NEW_OPT( input_protein_ligand_complex,
"bound protein-ligand file name",
"bound.pdb" );
104 NEW_OPT( input_protein,
"unbound protein file name",
"unbound.pdb" );
105 NEW_OPT( input_ligand,
"unbound ligand file name",
"ligand.pdb" );
109 std::string
const bound_protein =
option[ input_protein_ligand_complex ];
110 std::string
const unbound_protein =
option[ input_protein ];
111 std::string
const inp_ligand =
option[ input_ligand ];
114 scoring::ScoreFunctionOP
scorefxn(get_score_function());
115 scoring::ScoreFunctionOP repack_scorefxn(get_score_function());
118 std::string sasa_calc_name =
"sasa";
119 std::string hbond_calc_name =
"hbond";
120 std::string packstat_calc_name =
"packstat";
121 std::string burunsat_calc_name =
"burunsat";
122 core::pose::metrics::PoseMetricCalculatorOP sasa_calculator(
new core::pose::metrics::simple_calculators::SasaCalculatorLegacy );
123 core::pose::metrics::CalculatorFactory::Instance().register_calculator( sasa_calc_name, sasa_calculator );
125 core::pose::metrics::PoseMetricCalculatorOP hb_calc(
new protocols::toolbox::pose_metric_calculators::NumberHBondsCalculator() );
126 core::pose::metrics::CalculatorFactory::Instance().register_calculator( hbond_calc_name, hb_calc );
128 core::pose::metrics::PoseMetricCalculatorOP packstat_calc(
new protocols::toolbox::pose_metric_calculators::PackstatCalculator() );
129 core::pose::metrics::CalculatorFactory::Instance().register_calculator( packstat_calc_name, packstat_calc );
131 core::pose::metrics::PoseMetricCalculatorOP burunsat_calc(
new protocols::toolbox::pose_metric_calculators::BuriedUnsatisfiedPolarsCalculator(sasa_calc_name, hbond_calc_name) );
132 core::pose::metrics::CalculatorFactory::Instance().register_calculator( burunsat_calc_name, burunsat_calc );
134 pose::Pose bound_protein_pose, unbound_protein_pose, ligand_pose;
135 core::import_pose::pose_from_pdb( bound_protein_pose, bound_protein );
136 core::import_pose::pose_from_pdb( unbound_protein_pose, unbound_protein );
137 core::import_pose::pose_from_pdb( ligand_pose, inp_ligand );
139 core::Real ligand_pose_sasa = 0.0, bound_pose_sasa = 0.0, unbound_pose_sasa = 0.0, Total_pose_exposed_SASA = 0.0;
140 ligand_pose.metric(sasa_calc_name,
"total_sasa",total_sasa_mval);
141 ligand_pose_sasa = total_sasa_mval.
value();
142 bound_protein_pose.metric(sasa_calc_name,
"total_sasa",total_sasa_mval);
143 bound_pose_sasa = total_sasa_mval.
value();
144 unbound_protein_pose.metric(sasa_calc_name,
"total_sasa",total_sasa_mval);
145 unbound_pose_sasa = total_sasa_mval.
value();
146 Total_pose_exposed_SASA = 1 - ((((unbound_pose_sasa + ligand_pose_sasa) - bound_pose_sasa)/2)/ligand_pose_sasa);
147 core::Real theta_ligand = Total_pose_exposed_SASA;
196 std::cout <<
"Scores: theta_ligand "<<bound_protein<<
"\t"<< theta_ligand <<std::endl;
200 std::cerr <<
"caught exception " << e.
msg() << std::endl;
ocstream cerr(std::cerr)
Wrapper around std::cerr.
virtual std::string const msg() const
void init(int argc, char *argv[])
Command line init() version.
rule< Scanner, options_closure::context_t > options
#define OPT_KEY(type, key)
Output file stream wrapper for uncompressed and compressed files.
Option lookup functions emulating Rosetta++ equivalents for transitional use.
#define NEW_OPT(akey, help, adef)
int main(int argc, char *argv[])
ocstream cout(std::cout)
Wrapper around std::cout.
vector1: std::vector with 1-based indexing
Program options global and initialization function.
rule< Scanner, option_closure::context_t > option