Public Member Functions | Static Public Member Functions | List of all members
protocols::multistage_rosetta_scripts::MRSJobQueenChecker Class Reference

#include <MRSJobQueenChecker.hh>

Inheritance diagram for protocols::multistage_rosetta_scripts::MRSJobQueenChecker:
Inheritance graph

Public Member Functions

 MRSJobQueenChecker ()
 ~MRSJobQueenChecker () override
core::Size estimate_number_of_bytes_needed_for_archiving ()
 create serialized poses for every input job and use these to predict the amount of memory required for archiving results More...
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...
std::list< jd3::LarvalJobOPdetermine_job_list (jd3::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...
- Public Member Functions inherited from protocols::multistage_rosetta_scripts::MRSJobQueen
 MRSJobQueen ()
 ~MRSJobQueen () override
jd3::JobOP complete_larval_job_maturation (jd3::LarvalJobCOP larval_job, utility::options::OptionCollectionCOP job_options, utility::vector1< jd3::JobResultCOP > const &input_job_results) 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...
void note_job_completed (jd3::GlobalJobID job_id, jd3::JobStatus status, core::Size nresults, bool are_you_a_unit_test)
 this was only created for the unit test. Please do not call this. More...
void note_job_completed (core::Size, jd3::JobStatus, core::Size)
void note_job_completed (jd3::LarvalJobCOP job, jd3::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 (jd3::GlobalJobID job_id, jd3::ResultIndex result_index, jd3::JobSummaryOP summary)
void completed_job_summary (jd3::LarvalJobCOP job, jd3::ResultIndex result_index, jd3::JobSummaryOP summary) override
 As each job completes, this function is called for each result coming from a LarvalJob. More...
jd3::JobDAGNodeID stage_for_global_job_id (jd3::GlobalJobID global_job_id) const
std::list< jd3::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< jd3::output::OutputSpecificationOPjobs_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...
TagManager const & tag_manager () const
void determine_validity_of_stage_tags ()
core::Size num_input_structs () const
core::Size num_stages () const
core::Size num_results_to_keep_for_stage (core::Size stage) const
- 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...
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...
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...
std::list< deallocation::DeallocationMessageOPdeallocation_messages () override
 Resource Management ///. 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...

Static Public Member Functions

static std::pair< core::Size, core::Sizefa_and_cen_sizes_for_archives (core::pose::PoseOP pose)
- 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...

Additional Inherited Members

- Protected Member Functions inherited from protocols::multistage_rosetta_scripts::MRSJobQueen
core::pose::PoseOP pose_for_job_derived (jd3::LarvalJobCOP job, utility::options::OptionCollection const &options)
core::pose::PoseOP pose_for_inner_job_derived (jd3::InnerLarvalJobCOP inner_job, utility::options::OptionCollection const &options)
void all_settings_to_defualt ()
jd3::LarvalJobOP get_nth_job_for_initial_stage (jd3::LocalJobID local_job_id)
jd3::LarvalJobOP get_nth_job_for_noninitial_stage (jd3::JobDAGNodeID stage, jd3::LocalJobID local_job_id)
void append_common_tag_subelements (utility::tag::XMLSchemaDefinition &xsd, utility::tag::XMLSchemaComplexTypeGenerator &ct_gen) const override
 Here, you specify which tags that are defined in the <common> element. More...
void parse_job_definition_tags (utility::tag::TagCOP common_block_tags, utility::vector1< jd3::standard::PreliminaryLarvalJob > const &) override
 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...
void parse_common_tag (utility::tag::TagCOP common_tag)
void parse_single_stage_tag (utility::tag::TagCOP subprotocol_tag)
void append_job_tag_subelements (utility::tag::XMLSchemaDefinition &job_definition_xsd, utility::tag::XMLSchemaComplexTypeGenerator &job_ct_gen) const override
 XML Schema ///. More...
void parse_single_job_tag (jd3::standard::PreliminaryLarvalJob const &prelim_larval_job, jd3::PrelimJobNodeID input_pose_id)
jd3::PrelimJobNodeID input_pose_id_for_jobid (jd3::GlobalJobID global_jobid) const
void print_job_lineage () const
void assign_output_index (jd3::LarvalJobCOP larval_job, jd3::ResultIndex result_index_for_job, core::Size n_results_for_job, jd3::JobOutputIndex &output_index) override
 The derived job queen may assign her own numbering to output Poses if she chooses. More...
void assign_output_index (jd3::GlobalJobID global_job_id, jd3::ResultIndex result_id, jd3::JobOutputIndex &output_index)
void cluster (jd3::JobDAGNodeID stage_about_to_start)
- 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 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 void note_preliminary_job_node_is_complete (PrelimJobNodeID pjn_index)
 Respond to the completion of a preliminary job node in derived SJQs. 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 derived_process_deallocation_message (deallocation::DeallocationMessageOP message)
 If the derived class has deallocation messages that it needs to broadcast to remote nodes and then to process on those remote nodes, then the StanardJobQueen will pass them along to the derived job queen using this function. 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::SecondaryPoseOutputterOPsecondary_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...
- Static Protected Member Functions inherited from protocols::multistage_rosetta_scripts::MRSJobQueen
static std::string protocols_subelement_mangler (std::string const &name)
static std::string job_subelement_mangler (std::string const &name)

Constructor & Destructor Documentation

◆ MRSJobQueenChecker()

protocols::multistage_rosetta_scripts::MRSJobQueenChecker::MRSJobQueenChecker ( )

◆ ~MRSJobQueenChecker()

protocols::multistage_rosetta_scripts::MRSJobQueenChecker::~MRSJobQueenChecker ( )

Member Function Documentation

◆ create_initial_job_dag()

jd3::JobDigraphOP protocols::multistage_rosetta_scripts::MRSJobQueenChecker::create_initial_job_dag ( )

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::multistage_rosetta_scripts::MRSJobQueen.

References protocols::multistage_rosetta_scripts::MRSJobQueen::create_initial_job_dag(), and protocols::multistage_rosetta_scripts::MRSJobQueen::determine_validity_of_stage_tags().

◆ determine_job_list()

std::list< jd3::LarvalJobOP > protocols::multistage_rosetta_scripts::MRSJobQueenChecker::determine_job_list ( jd3::JobDAGNodeID  job_dag_node_index,
core::Size  max_njobs 

Create a list of LarvalJobs for each Node Index. Only can create max_njobs to save memory.

The StandardJobQueen manages the process of creating the list of LarvalJobs that will later be matured into actual jobs and run by the JobDistributor. It is not recommended that derived job queens override this method; doing so will mean that some of the data the SJQ relies on will not be initialized – see comments on the SJQs data members below to understand the consequences of overriding this method.

It is recommended to override next_batch_of_larval_jobs_for_job_node instead of this method However, if you do override this - especially for more complicated protocols - be sure to call similar functions here

The process begins by first constructing the job definition and resource definition XSDs. With these schemas, the StandardJobQueen validates the input XML files (if present). The StandardJobQueen then populates preliminary versions of LarvalJob objects./ If the XSD includes "command line options" (which may be specified either from the command line or in the <options> sections of the Job XML file), the StandardJobQueen loads the preliminary LarvalJob objects with the options. These preliminary LarvalJob objects will not have been nstruct expanded (i.e. if there are 100 nstruct for each of 5 different jobs, then there will only be 5 preliminary larval jobs created). It then passes the preliminary LarvalJob list and the TagOP objects for each preliminary LarvalJob to the derived class through the refine_job_list method.

Reimplemented from protocols::multistage_rosetta_scripts::MRSJobQueen.

◆ estimate_number_of_bytes_needed_for_archiving()

core::Size protocols::multistage_rosetta_scripts::MRSJobQueenChecker::estimate_number_of_bytes_needed_for_archiving ( )

◆ fa_and_cen_sizes_for_archives()

std::pair< core::Size, core::Size > protocols::multistage_rosetta_scripts::MRSJobQueenChecker::fa_and_cen_sizes_for_archives ( core::pose::PoseOP  pose)

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