Rosetta  2021.16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
protocols::rosetta_scripts::RosettaScriptsJobQueen Class Reference

#include <RosettaScriptsJobQueen.hh>

Inheritance diagram for protocols::rosetta_scripts::RosettaScriptsJobQueen:
Inheritance graph
[legend]

Public Types

typedef
jd3::standard::StandardJobQueen 
parent
 

Public Member Functions

 RosettaScriptsJobQueen ()
 
 ~RosettaScriptsJobQueen () override
 
jd3::JobOP complete_larval_job_maturation (jd3::LarvalJobCOP larval_job, utility::options::OptionCollectionCOP job_options, utility::vector1< jd3::JobResultCOP > const &) override
 The derived JobQueen must define the method that takes a larval job and the job-specific options and matures the larval job into a full job. More...
 
std::list
< jd3::deallocation::DeallocationMessageOP
deallocation_messages () override
 the RosettaScriptsJobQueen needs to tell remote nodes to deallocate Resources held by the ResourceManager that are no longer needed More...
 
void derived_process_deallocation_message (jd3::deallocation::DeallocationMessageOP message) override
 A deallocation message first sent to the JobDistributor on this host originating from a remote JobQueen. More...
 
void note_preliminary_job_node_is_complete (jd3::PrelimJobNodeID pjn_index) override
 Respond to the completion of a preliminary job node in derived SJQs. More...
 
void initialize_resources_for_preliminary_job_nodes ()
 
basic::resource_manager::ResourceManagerOP resource_manager ()
 Accessor to the JQs resource_manager – only really needed for testing purposes. More...
 
- Public Member Functions inherited from protocols::jd3::standard::StandardJobQueen
 StandardJobQueen ()
 The StandardJobQueen constructor asks the PoseInputterFactory for a PoseInputter and creates a ResourceManager. More...
 
 ~StandardJobQueen () override
 
void update_job_dag (JobDigraphUpdater &updater) override
 Starting the Job ///. More...
 
LarvalJobs determine_job_list (JobDAGNodeID job_dag_node_index, core::Size max_njobs) override
 Create a list of LarvalJobs for each Node Index. Only can create max_njobs to save memory. More...
 
protocols::jd3::JobOP mature_larval_job (protocols::jd3::LarvalJobCOP job, utility::vector1< JobResultCOP > const &input_job_results) override
 Mature the LarvalJob into a full Job that will be run on a processor. Calls complete_larval_job_maturation, which you will need to override. More...
 
void note_job_completed (LarvalJobCOP job, JobStatus status, core::Size nresults) override
 The JD calls this function on completion of a LarvalJob, after updating the JobTracker. More...
 
void completed_job_summary (LarvalJobCOP job, ResultIndex result_index, JobSummaryOP summary) override
 As each job completes, this function is called for each result coming from a LarvalJob. More...
 
std::list< JobResultIDjob_results_that_should_be_discarded () override
 The IDs of jobs that should be discarded, IE not kept in memory for the next set of job nodes. More...
 
std::list
< output::OutputSpecificationOP
jobs_that_should_be_output () override
 By default outputs all recently finished jobs for JD output (stored in recent_successes_). Override this method if you want to cull these lists. More...
 
output::ResultOutputterOP result_outputter (output::OutputSpecification const &spec) override
 Return the bag of of PoseOutputters (in the form of a MultipleOutputter) for the Pose that has been requested and specified by a particular OutputSpecification;. More...
 
bool has_job_previously_been_output (protocols::jd3::LarvalJobCOP job) override
 Checks the outputter to see if the job already has been output. Used for JD override behavior. More...
 
void process_deallocation_message (deallocation::DeallocationMessageOP message) override
 A deallocation message first sent to the JobDistributor on this host originating from a remote JobQueen. If a derived JobQueen has deallocation messages she needs to recieve, she should override derived_process_deallocation_message. More...
 
void flush () override
 Send all buffered output to disk – called by the JobDistributor right before it shuts down if it hits an error or catches an exception that it cannot ignore. More...
 
std::string job_definition_xsd () const override
 XSD Functions ///. More...
 
std::string resource_definition_xsd () const override
 JobQueens may optionally define an XSD for their resource definition file which is fed to their resource manager (if they control one). If the JobDistributor is awakened with the flag "jd3::output_resource_xsd <output file>" on the command line, and if the derived JobQueen defines an XSD for resources she uses, then the JobDistributor will write out the resource definition XSD to the output file. The derived queen may return an empty string to indicate that no resources are definable for the resource manager. More...
 
void determine_preliminary_job_list_from_xml_file (std::string const &job_def_string)
 Read from an input string representing the contents of the job-definiton XML file and construct a set of PreliminaryLarvalJobs; this function is primarily useful for testing, but could be used to organize jobs by an enterprising job distributor or by another JobQueen. More...
 
- Public Member Functions inherited from protocols::jd3::JobQueen
 JobQueen ()
 
 ~JobQueen () override
 
JobDigraphOP create_and_set_initial_job_dag ()
 Creates the initial job dag using create_initial_job_dag function and sets it to the JQ. More...
 
void note_job_completed_and_track (LarvalJobCOP job, JobStatus status, core::Size nresults)
 Call note_job_completed in derived classes and track the job using the JobTracker. More...
 
LarvalJobs determine_job_list_and_track (JobDAGNodeID job_dag_node_index, core::Size max_njobs)
 Call determine_job_list in derived classes and track the jobs using the JobTracker. More...
 

Private Member Functions

jd3::JobDigraphOP create_initial_job_dag () override
 The job dag encodes which job nodes are independent or dependant on each other. If you have a applicationwhere all inputs are independant and only a single run of a protocol is needed, Then do not override this method. More...
 

Private Attributes

protocols::rosetta_scripts::RosettaScriptsParserOP parser_
 
basic::resource_manager::ResourceManagerOP resource_manager_
 
std::map< std::string,
std::set< core::Size > > 
pjns_requiring_resources_
 
utility::vector1< std::list
< std::string > > 
resources_for_pjn_
 
std::list
< jd3::deallocation::DeallocationMessageOP
deallocation_messages_to_send_
 

Additional Inherited Members

- Static Public Member Functions inherited from protocols::jd3::standard::StandardJobQueen
static std::string job_def_complex_type_name (std::string const &type)
 Naming function for the complexTypes in the job-definition XSD. More...
 
- Protected Member Functions inherited from protocols::jd3::standard::StandardJobQueen
virtual LarvalJobs next_batch_of_larval_jobs_for_job_node (JobDAGNodeID job_dag_node_index, core::Size max_njobs)
 Called during the SJQs determine_job_list function. Override this function to create LarvalJobs for nodes other than preliminary job nodes. More...
 
GlobalJobID current_job_index () const
 Get the current larval job index from the JobTracker. More...
 
virtual void append_job_tag_subelements (utility::tag::XMLSchemaDefinition &job_definition_xsd, utility::tag::XMLSchemaComplexTypeGenerator &ct_gen) const
 XML Schema ///. More...
 
virtual void append_common_tag_subelements (utility::tag::XMLSchemaDefinition &xsd, utility::tag::XMLSchemaComplexTypeGenerator &ct_gen) const
 Here, you specify which tags that are defined in the <common> element. More...
 
virtual void parse_job_definition_tags (utility::tag::TagCOP, utility::vector1< PreliminaryLarvalJob > const &)
 This gives the derived JobQueen a chance to read any relevant information from the job-definition file. The second argument holds a PreliminaryLarvalJob for every job block and the PreliminaryLarvalJob itself has all of the information given in its corresponding block. More...
 
virtual void determine_preliminary_job_list ()
 Preliminary Larval Jobs ///. More...
 
bool get_preliminary_larval_jobs_determined () const
 Has determine_preliminary_job_list been called? More...
 
PreliminaryLarvalJobTrackerget_prelim_larval_job_tracker ()
 Get write access to the PreliminaryLarvalJobTracker. More...
 
PreliminaryLarvalJobTracker const & get_prelim_larval_job_tracker () const
 Get read access to the PreliminaryLarvalJobTracker. More...
 
utility::vector1
< PreliminaryLarvalJob > const & 
get_preliminary_larval_jobs () const
 Read access to derived JobQueens to the preliminary job list. More...
 
virtual InnerLarvalJobs refine_preliminary_job (PreliminaryLarvalJob const &prelim_job)
 Optional Larval Job Creation ///. More...
 
virtual LarvalJobs expand_job_list (InnerLarvalJobOP inner_job, core::Size max_larval_jobs_to_create)
 Expand an InnerLarvalJob into a full set of LarvalJobs, creating nstruct LarvalJob objects Increments larval_job_counter_. More...
 
virtual StandardInnerLarvalJobOP create_inner_larval_job (core::Size nstruct, JobDAGNodeID job_node, PrelimJobNodeID preliminary_job_node) const
 Factory method for derived classes if they wish to rely on classes derived from StandardInnerLarvalJob. This is invoked by the StandardJobQueen in her determine_job_list method just as jobs are prepared. If the base StandardInnerLarvalJob class is desired, then do not override this method. More...
 
virtual LarvalJobOP create_larval_job (InnerLarvalJobOP job, NStructIndex nstruct_index, core::Size larval_job_index)
 Factory method for derived classes if they wish to rely on classes derived from LarvalJob. This is invoked by the StandardJobQueen in the expand_job_list method. If the base LarvalJob class is desired, then do not override this method. More...
 
InnerLarvalJobOP create_and_init_inner_larval_job_from_preliminary (core::Size nstruct, PrelimJobNodeID prelim_job_node, JobDAGNodeID job_node) const
 Adds information regarding the job definition (job tag, input source, jobdef tag, and outputter). Uses the PreliminaryInnerLarvalJob to do so. More...
 
void create_and_store_output_specification_for_job_result (LarvalJobCOP job, ResultIndex result_index, core::Size nresults)
 Output Specifications and Ouputters ///. More...
 
void create_and_store_output_specification_for_job_result (LarvalJobCOP job, utility::options::OptionCollection const &job_options, ResultIndex result_index, core::Size nresults)
 Create an output specification for a given job + result index and store it in the recent_successes_ list, which will be given to the JobDistributor upon request. More...
 
virtual
output::OutputSpecificationOP 
create_output_specification_for_job_result (LarvalJobCOP job, utility::options::OptionCollection const &job_options, ResultIndex result_index, core::Size nresults)
 Construct the OutputSpecification for a completed successful job. More...
 
JobOutputIndex build_output_index (protocols::jd3::LarvalJobCOP larval_job, ResultIndex result_index_for_job, core::Size n_results_for_job)
 Construct a JobOutputIndex for a given job based on "the obvious", but giving derived classes the chance to assign their own indices via the assign_output_index function. More...
 
virtual void assign_output_index (protocols::jd3::LarvalJobCOP larval_job, ResultIndex result_index_for_job, core::Size n_results_for_job, JobOutputIndex &output_index)
 The derived job queen may assign her own numbering to output Poses if she chooses. More...
 
pose_outputters::PoseOutputterOP pose_outputter_for_job (InnerLarvalJob const &innerJob)
 Create or get the PoseOutputter from the job. Cache the Outputter in the SJQ. More...
 
pose_outputters::PoseOutputterOP pose_outputter_for_job (InnerLarvalJob const &innerJob, utility::options::OptionCollection const &job_options)
 Create or get the PoseOutputter from the job. Cache the Outputter in the SJQ. More...
 
pose_outputters::PoseOutputterOP pose_outputter_for_job (pose_outputters::PoseOutputSpecification const &spec)
 Find the PoseOutputter for a job specification, respecting the Job-distributor provided output file suffix. More...
 
utility::vector1
< pose_outputters::SecondaryPoseOutputterOP
secondary_outputters_for_job (InnerLarvalJob const &innerJob, utility::options::OptionCollection const &job_options)
 
core::pose::PoseOP pose_for_inner_job (InnerLarvalJobCOP inner_job)
 
core::pose::PoseOP pose_for_inner_job (InnerLarvalJobCOP inner_job, utility::options::OptionCollection const &options)
 Return a copy of the Pose to be used with the given inner job. More...
 
core::pose::PoseOP pose_for_job (LarvalJobCOP job, utility::options::OptionCollection const &options)
 Return a copy of the Pose to be used with the given job. Wrapper for pose_for_inner_job() More...
 
utility::options::OptionCollectionOP options_for_job (InnerLarvalJob const &inner_job) const
 Options Collection ///. More...
 
utility::options::OptionCollectionOP options_from_tag (utility::tag::TagCOP job_options_tags) const
 Create an OptionCollection from tags and OptionKeys stored in the SJQ. More...
 
pose_inputters::PoseInputterOP pose_inputter_for_job (InnerLarvalJob const &inner_job) const
 Access the pose inputter. More...
 
void add_options (utility::options::OptionKeyList const &opts)
 
void add_option (utility::options::OptionKey const &key)
 
void remove_default_input_element ()
 Override the basic specification of input elements as either PDBs, Silent Structures, or ResourceManager defined structures. This should be called during the derived class's constructor if it is to be used. More...
 
utility::tag::TagCOP common_block_tags () const
 Return the set of subtags that are common to the whole set of jobs in the Job definition file, if any are given. This set of tags is read from disk at most once per execution. More...
 
void set_common_block_precedes_job_blocks (bool setting)
 By default, the common block is given before the job blocks in the job definition file. Setting this value to false reverses the order and the common block goes at the end of the file. More...
 
void do_not_accept_all_pose_inputters_from_factory ()
 Expert Override Input/Output behavior ///. More...
 
void allow_pose_inputter (pose_inputters::PoseInputterCreatorOP creator)
 
void do_not_accept_all_pose_outputters_from_factory ()
 
void allow_pose_outputter (pose_outputters::PoseOutputterCreatorOP creator)
 
void set_default_outputter (pose_outputters::PoseOutputterCreatorOP creator)
 
- Protected Member Functions inherited from protocols::jd3::JobQueen
JobDigraph const & get_job_graph () const
 Get read access to the current job graph. More...
 
JobTrackerget_job_tracker ()
 Get write access to the current job tracker. More...
 
JobTracker const & get_job_tracker () const
 Get read access to the current job tracker. More...
 

Member Typedef Documentation

Constructor & Destructor Documentation

protocols::rosetta_scripts::RosettaScriptsJobQueen::RosettaScriptsJobQueen ( )
protocols::rosetta_scripts::RosettaScriptsJobQueen::~RosettaScriptsJobQueen ( )
override

Member Function Documentation

protocols::jd3::JobOP protocols::rosetta_scripts::RosettaScriptsJobQueen::complete_larval_job_maturation ( jd3::LarvalJobCOP  larval_job,
utility::options::OptionCollectionCOP  job_options,
utility::vector1< jd3::JobResultCOP > const &  input_job_results 
)
overridevirtual

The derived JobQueen must define the method that takes a larval job and the job-specific options and matures the larval job into a full job.

Implements protocols::jd3::standard::StandardJobQueen.

References core::pose::datacache::CacheableDataType::JOBDIST_OUTPUT_TAG, protocols::jd3::JobOutputIndex::primary_output_index, and protocols::rosetta_scripts::TR().

protocols::jd3::JobDigraphOP protocols::rosetta_scripts::RosettaScriptsJobQueen::create_initial_job_dag ( )
overrideprivatevirtual

The job dag encodes which job nodes are independent or dependant on each other. If you have a applicationwhere all inputs are independant and only a single run of a protocol is needed, Then do not override this method.

The StandardJobQueen provides an implementation of this function which returns the most straight-forward DAG representing a set of jobs that have no interdependencies: a DAG with a single node and no edges.

Override this method if you have a need for any more job nodes other than what is created from input structures and the Job Definition file.

The base class provides a digraph with a single node – that is, all the jobs are independent of each other. This is equivalent to the kind of jobs that could be run in JD2.

Reimplemented from protocols::jd3::standard::StandardJobQueen.

std::list< deallocation::DeallocationMessageOP > protocols::rosetta_scripts::RosettaScriptsJobQueen::deallocation_messages ( )
overridevirtual

the RosettaScriptsJobQueen needs to tell remote nodes to deallocate Resources held by the ResourceManager that are no longer needed

Reimplemented from protocols::jd3::standard::StandardJobQueen.

void protocols::rosetta_scripts::RosettaScriptsJobQueen::derived_process_deallocation_message ( jd3::deallocation::DeallocationMessageOP  message)
overridevirtual

A deallocation message first sent to the JobDistributor on this host originating from a remote JobQueen.

Reimplemented from protocols::jd3::standard::StandardJobQueen.

References protocols::rosetta_scripts::TR().

void protocols::rosetta_scripts::RosettaScriptsJobQueen::initialize_resources_for_preliminary_job_nodes ( )
void protocols::rosetta_scripts::RosettaScriptsJobQueen::note_preliminary_job_node_is_complete ( jd3::PrelimJobNodeID  pjn_index)
overridevirtual

Respond to the completion of a preliminary job node in derived SJQs.

Called during note_job_completed

The SJQ tracks which preliminary-job-nodes have had all of their jobs complete and lets the derived job queens know. DerivedJobQueens wishing to track when, e.g., all of the jobs that might depend on a particular Resource held by the ResourceManager have completed can override this method and then be updated by the SJQ at the completion of every PJN.

Reimplemented from protocols::jd3::standard::StandardJobQueen.

basic::resource_manager::ResourceManagerOP protocols::rosetta_scripts::RosettaScriptsJobQueen::resource_manager ( )

Accessor to the JQs resource_manager – only really needed for testing purposes.

Member Data Documentation

std::list< jd3::deallocation::DeallocationMessageOP > protocols::rosetta_scripts::RosettaScriptsJobQueen::deallocation_messages_to_send_
private
protocols::rosetta_scripts::RosettaScriptsParserOP protocols::rosetta_scripts::RosettaScriptsJobQueen::parser_
private
std::map< std::string, std::set< core::Size > > protocols::rosetta_scripts::RosettaScriptsJobQueen::pjns_requiring_resources_
private
basic::resource_manager::ResourceManagerOP protocols::rosetta_scripts::RosettaScriptsJobQueen::resource_manager_
private
utility::vector1< std::list< std::string > > protocols::rosetta_scripts::RosettaScriptsJobQueen::resources_for_pjn_
private

The documentation for this class was generated from the following files: