Rosetta
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ligand_dock.cc
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 app/public/ligand_docking/ligand_dock.cc
11 ///
12 /// @brief Ligand docking application
13 /// @author Rocco Moretti (rmoretti@u.washington.edu) Ian Davis (ian.w.davis@gmail.com)
14 
15 // Unit Headers
16 
17 #include <devel/init.hh>
18 #include <protocols/ligand_docking/ligand_dock_impl.hh>
19 
20 // Utility Headers
21 
22 #include <basic/Tracer.hh>
23 
24 #include <basic/options/option.hh>
25 
26 #include <basic/options/keys/in.OptionKeys.gen.hh>
27 #include <basic/options/keys/out.OptionKeys.gen.hh>
28 #include <basic/options/keys/jd2.OptionKeys.gen.hh>
29 #include <basic/options/keys/packing.OptionKeys.gen.hh>
30 #include <basic/options/keys/docking.OptionKeys.gen.hh>
31 #include <basic/options/keys/enzdes.OptionKeys.gen.hh>
32 
33 #include <utility/vector1.hh>
35 
36 static THREAD_LOCAL basic::Tracer TR( "ligand_dock.main" );
37 
38 int
39 main( int argc, char * argv [] )
40 {
41  try {
42 
43  using namespace basic::options;
44  using namespace basic::options::OptionKeys;
46  option.add_relevant(in::file::extra_res_fa);
47  option.add_relevant(packing::unboundrot);
48  option.add_relevant(packing::ex1::ex1);
49  option.add_relevant(packing::ex1aro::ex1aro);
50  option.add_relevant(packing::ex2::ex2);
51  option.add_relevant(packing::extrachi_cutoff);
52  option.add_relevant(packing::no_optH);
53  option.add_relevant(packing::flip_HNQ);
54  option.add_relevant(docking::ligand::soft_rep);
55  option.add_relevant(docking::ligand::old_estat);
56 
60  option.add_relevant(out::suffix);
62  option.add_relevant(docking::uniform_trans);
65  option.add_relevant(docking::ligand::random_conformer);
66  option.add_relevant(docking::ligand::improve_orientation);
67  option.add_relevant(docking::ligand::minimize_ligand);
68  option.add_relevant(docking::ligand::harmonic_torsions);
69  option.add_relevant(docking::ligand::minimize_backbone);
70  option.add_relevant(docking::ligand::harmonic_Calphas);
71  option.add_relevant(docking::ligand::protocol);
72  option.add_relevant(docking::ligand::start_from);
73  option.add_relevant(docking::ligand::mutate_same_name3);
74  option.add_relevant(enzdes::cstfile);
75 
76  // Parses command line options and inits RNG.
77  // Doesn't seem to hurt to do it again if already done once (?)
78  // Except in unit testing mode, where it wipes out e.g. -database
79  devel::init(argc, argv);
80 
81  // Giving an AtomTreeDiff input file to ligand_dock is uncommon enough that it isn't worth special casing
82  if ( option[ in::file::silent ].active() ) {
83  TR.Warning << "WARNING: Current version of ligand_dock expects regular silent file with -in:file:silent" << std::endl;
84  TR.Warning << " Use -in:file:atom_tree_diff for inputting Atom Tree Diff format files" << std::endl;
85  }
86 
87  // Backward compatability default
88  // If we've haven set any other JD2 output options, use silent.out with Atom Tree Diff format
89  // (Options tested are a hacky repeat of cases in protocols::jd2::JobDistributorFactory::create_job_outputter() )
90  if ( ! option[ out::file::silent ].user() && ! option[ out::pdb ].user() && ! option[ out::file::score_only ].user() &&
91  ! option[ jd2::no_output ].user() && ! option[ out::nooutput ].user() &&
92  ! option[ jd2::enzdes_out ].user() && ! option[ out::use_database ].user() ) {
93  option[ out::file::atom_tree_diff ].value( "silent.out" );
94  }
95 
96  // Backward compatibility options munging.
97  if ( option[ out::file::silent ].user() && ! option[ out::file::silent_struct_type ].user() ) {
98  TR.Warning << "WARNING: For backward compatibility, by default ligand_dock will output Atom Tree Diff format files to -out:file:silent" << std::endl;
99  TR.Warning << " To output regular format silent file format, explicitly set -out:file:silent_struct_type" << std::endl;
100  option[ out::file::atom_tree_diff ].value( option[ out::file::silent ] );
101  option[ out::file::silent ].deactivate();
102  }
103 
104  // Note: Another difference from the jd1 version of ligand_dock is that the job order for -s/-l isn't randomized
105 
106  return ligand_dock_main();
107 
108  } catch ( utility::excn::EXCN_Base const & e ) {
109  std::cout << "caught exception " << e.msg() << std::endl;
110  return -1;
111  }
112 
113  return 0;
114 }
#define THREAD_LOCAL
virtual std::string const msg() const
Definition: EXCN_Base.hh:70
tuple randomize2
Definition: docking.py:34
int main(int argc, char *argv[])
Definition: ligand_dock.cc:39
void init(int argc, char *argv[])
Command line init() version.
Definition: init.cc:23
BooleanOptionKey const user("options:user")
Definition: OptionKeys.hh:40
common derived classes for thrown exceptions
TracerProxy Warning
Definition: Tracer.hh:262
tuple database
static void add_relevant(const OptionKey &key)
add OptionKey to list of application relevant options
static THREAD_LOCAL basic::Tracer TR("basic.options")
Tracer IO system.
basic::options::IntegerOptionKey const nstruct("nstruct")
rule< Scanner, options_closure::context_t > options
Definition: Tag.cc:377
utility::options::OptionCollection option
OptionCollection global.
Definition: option.cc:45
list native
Definition: ContactMap.py:108
ocstream cout(std::cout)
Wrapper around std::cout.
Definition: ocstream.hh:287
vector1: std::vector with 1-based indexing
Class for handling user debug/warnings/errors. Use instance of this class instead of 'std::cout' for ...
Definition: Tracer.hh:134
static THREAD_LOCAL basic::Tracer TR("ligand_dock.main")
Program options global and initialization function.
tuple dock_pert
Definition: docking.py:35
int const silent
Named verbosity levels.