From 1eed1f8163346b3055d32f601834b97b0725afc9 Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Tue, 8 Feb 2022 16:13:52 -0500 Subject: [PATCH 01/25] Adding ensemble metrics to sidebars. --- .../RosettaScripts/FeaturesReporter/_Sidebar.md | 2 ++ .../FeaturesReporter/features_reporters/_Sidebar.md | 4 ++++ .../RosettaScripts/FeaturesReporter/rscripts/_Sidebar.md | 4 ++++ scripting_documentation/RosettaScripts/Filters/_Sidebar.md | 2 ++ scripting_documentation/RosettaScripts/Movers/_Sidebar.md | 2 ++ .../RosettaScripts/SimpleMetrics/_Sidebar.md | 4 ++++ .../RosettaScripts/TaskOperations/_Sidebar.md | 2 ++ scripting_documentation/RosettaScripts/_Sidebar.md | 2 ++ .../RosettaScripts/composite_protocols/_Sidebar.md | 2 ++ 9 files changed, 24 insertions(+) diff --git a/scripting_documentation/RosettaScripts/FeaturesReporter/_Sidebar.md b/scripting_documentation/RosettaScripts/FeaturesReporter/_Sidebar.md index de27f22ed..4d334d69b 100644 --- a/scripting_documentation/RosettaScripts/FeaturesReporter/_Sidebar.md +++ b/scripting_documentation/RosettaScripts/FeaturesReporter/_Sidebar.md @@ -20,6 +20,8 @@ * [[Simple Metrics | SimpleMetrics]] + * [[Ensemble Metrics|EnsembleMetrics]] + * [[Filters|Filters-RosettaScripts]] * [[FeaturesReporters|Features-reporter-overview]] diff --git a/scripting_documentation/RosettaScripts/FeaturesReporter/features_reporters/_Sidebar.md b/scripting_documentation/RosettaScripts/FeaturesReporter/features_reporters/_Sidebar.md index 4faf9cccc..209569d19 100644 --- a/scripting_documentation/RosettaScripts/FeaturesReporter/features_reporters/_Sidebar.md +++ b/scripting_documentation/RosettaScripts/FeaturesReporter/features_reporters/_Sidebar.md @@ -14,6 +14,10 @@ * [[Filters|Filters-RosettaScripts]] + * [[Simple Metrics|SimpleMetrics]] + + * [[Ensemble Metrics|EnsembleMetrics]] + * [[Residue Selectors|ResidueSelectors]] * [[PackerPalettes|PackerPalette]] diff --git a/scripting_documentation/RosettaScripts/FeaturesReporter/rscripts/_Sidebar.md b/scripting_documentation/RosettaScripts/FeaturesReporter/rscripts/_Sidebar.md index 94af5a392..3800286b4 100644 --- a/scripting_documentation/RosettaScripts/FeaturesReporter/rscripts/_Sidebar.md +++ b/scripting_documentation/RosettaScripts/FeaturesReporter/rscripts/_Sidebar.md @@ -14,6 +14,10 @@ * [[Residue Selectors|ResidueSelectors]] + * [[Simple Metrics|SimpleMetrics]] + + * [[Ensemble Metrics|EnsembleMetrics]] + * [[PackerPalettes|PackerPalette]] * [[Filters|Filters-RosettaScripts]] diff --git a/scripting_documentation/RosettaScripts/Filters/_Sidebar.md b/scripting_documentation/RosettaScripts/Filters/_Sidebar.md index b37eb316e..3752c97cf 100644 --- a/scripting_documentation/RosettaScripts/Filters/_Sidebar.md +++ b/scripting_documentation/RosettaScripts/Filters/_Sidebar.md @@ -20,6 +20,8 @@ * [[Simple Metrics | SimpleMetrics]] + * [[Ensemble Metrics | EnsembleMetrics]] + * [[Filters|Filters-RosettaScripts]] * [[FeaturesReporters|Features-reporter-overview]] diff --git a/scripting_documentation/RosettaScripts/Movers/_Sidebar.md b/scripting_documentation/RosettaScripts/Movers/_Sidebar.md index b37eb316e..dd495fff9 100644 --- a/scripting_documentation/RosettaScripts/Movers/_Sidebar.md +++ b/scripting_documentation/RosettaScripts/Movers/_Sidebar.md @@ -20,6 +20,8 @@ * [[Simple Metrics | SimpleMetrics]] + * [[Ensemble Metrics|EnsembleMetrics]] + * [[Filters|Filters-RosettaScripts]] * [[FeaturesReporters|Features-reporter-overview]] diff --git a/scripting_documentation/RosettaScripts/SimpleMetrics/_Sidebar.md b/scripting_documentation/RosettaScripts/SimpleMetrics/_Sidebar.md index 19e142d78..e5e662775 100644 --- a/scripting_documentation/RosettaScripts/SimpleMetrics/_Sidebar.md +++ b/scripting_documentation/RosettaScripts/SimpleMetrics/_Sidebar.md @@ -14,6 +14,10 @@ * [[Residue Selectors|ResidueSelectors]] + * [[Simple Metrics|SimpleMetrics]] + + * [[Ensemble Metrics|EnsembleMetrics]] + * [[PackerPalettes|PackerPalette]] * [[Task Operations|TaskOperations-RosettaScripts]] diff --git a/scripting_documentation/RosettaScripts/TaskOperations/_Sidebar.md b/scripting_documentation/RosettaScripts/TaskOperations/_Sidebar.md index f41e9d5c9..d2c0e52c8 100644 --- a/scripting_documentation/RosettaScripts/TaskOperations/_Sidebar.md +++ b/scripting_documentation/RosettaScripts/TaskOperations/_Sidebar.md @@ -19,6 +19,8 @@ * [[Task Operations|TaskOperations-RosettaScripts]] * [[Simple Metrics | SimpleMetrics]] + + * [[Ensemble Metrics|EnsembleMetrics]] * [[Filters|Filters-RosettaScripts]] diff --git a/scripting_documentation/RosettaScripts/_Sidebar.md b/scripting_documentation/RosettaScripts/_Sidebar.md index b217aad09..003412fb8 100644 --- a/scripting_documentation/RosettaScripts/_Sidebar.md +++ b/scripting_documentation/RosettaScripts/_Sidebar.md @@ -22,6 +22,8 @@ * [[Simple Metrics | SimpleMetrics]] + * [[Ensemble Metrics|EnsembleMetrics]] + * [[Filters|Filters-RosettaScripts]] * [[FeaturesReporters|Features-reporter-overview]] diff --git a/scripting_documentation/RosettaScripts/composite_protocols/_Sidebar.md b/scripting_documentation/RosettaScripts/composite_protocols/_Sidebar.md index 33d6bcd71..35255fec7 100644 --- a/scripting_documentation/RosettaScripts/composite_protocols/_Sidebar.md +++ b/scripting_documentation/RosettaScripts/composite_protocols/_Sidebar.md @@ -20,6 +20,8 @@ * [[Simple Metrics | SimpleMetrics]] + * [[Ensemble Metrics|EnsembleMetrics]] + * [[Filters|Filters-RosettaScripts]] * [[Features Reporters|Features-reporter-overview]] From 9156829f734fefb725cc0fa9a2d005db07f7fb96 Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Tue, 8 Feb 2022 16:22:50 -0500 Subject: [PATCH 02/25] Updating main RosettaScripts page. --- scripting_documentation/RosettaScripts/RosettaScripts.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scripting_documentation/RosettaScripts/RosettaScripts.md b/scripting_documentation/RosettaScripts/RosettaScripts.md index 8162b50ea..87c20cb24 100644 --- a/scripting_documentation/RosettaScripts/RosettaScripts.md +++ b/scripting_documentation/RosettaScripts/RosettaScripts.md @@ -19,6 +19,7 @@ Fleishman SJ, Leaver-Fay A, Corn JE, Strauch EM, Khare SD, et al. (2011) Rosetta - [[JumpSelectors |JumpSelectors]] - [[PackerPalettes|PackerPalette]] - [[SimpleMetrics]] +- [[EnsembleMetrics]] --------------------- From 35cb71758edae4c2a29f3a6fd480a4e3a7c65867 Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Tue, 8 Feb 2022 16:39:13 -0500 Subject: [PATCH 03/25] Adding page for CentralTendency metric. --- .../ensemble_metric_pages/CentralTendency.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 scripting_documentation/RosettaScripts/EnsembleMetrics/ensemble_metric_pages/CentralTendency.md diff --git a/scripting_documentation/RosettaScripts/EnsembleMetrics/ensemble_metric_pages/CentralTendency.md b/scripting_documentation/RosettaScripts/EnsembleMetrics/ensemble_metric_pages/CentralTendency.md new file mode 100644 index 000000000..24f4c6c3b --- /dev/null +++ b/scripting_documentation/RosettaScripts/EnsembleMetrics/ensemble_metric_pages/CentralTendency.md @@ -0,0 +1,40 @@ +# CentralTendency Ensemble Metric +*Back to [[SimpleMetrics]] page.* +## CentralTendency Ensemble Metric + +[[_TOC_]] + +### Description + +The Central Tendency metric accepts as input a real-valued [[SimpleMetric|SimpleMetrics]]. It then applies it to each pose in an ensemble, collecting a series of values. At reporting time, the metric computes measures of central tendency (mean, median, and mode), plus other descriptive statistics about the distribution of the measured value over the ensemble (standard deviation, standard error, min, max, range). + +### Author and history + +Created Tuesday, 8 February 2022 by Vikram K. Mulligan, Center for Computational Biology, Flatiron Institute (vmulligan@flatironinstitute.org). This was the first [[EnsembleMetric|EnsembleMetrics]] implemented + +### Interface + +[[include:ensemble_metric_CentralTendencyEnsembleMetric_type]] + +### Named values produced + +Measure | Name (used for the [[EnsembleFilter]]) | Description +--------|----------------------------------------|------------ +Mean | mean | The average of the values measured for the poses in the ensemble. +Median | median | When values measured from all of hte poses in the ensemble are listed in increasing order, this is the middle value. If the number of poses in the ensemble is even, the middle two values are averaged. +Mode | mode | The most frequently seen value in the values measured from the poses in the environment. If more than one value appears with equal frequency and this frequency is highest, the values are averaged. +Standard Deviation | stddev | Estimate of the standard deviation of the mean, defined as the sqrt( sum_i( S_i - mean )^2 / N ), where S_i is the ith sample, mean is the average of all the samples, and N is the number of samples. +Standard Error | stderr | Estimate of the standard error of the mean, defined by stddev / sqrt(N), where N is the number of samples. +Min | min | The minimum value seen. +Max | max | The maximum value seen. +Range | range | the largest value seen minus the smallest. + +#### Note about mode + +The mode of a set of floating-point numbers can be thrown off by floating-point error. For instance, two poses may have energies of -3.7641 kJ/mol, but the process of computing that energy may result in slightly different values at the 15th decimal point. This would prevent the filter from recognizing this is at the most frequent value. + +##See Also + +* [[SimpleMetrics]]: Available SimpleMetrics. +* [[EnsembleMetrics]]: Available EnsembleMetrics. +* [[I want to do x]]: Guide to choosing a tool in Rosetta. \ No newline at end of file From cc023e6f6f18990aa429c1cb4e7e4476aecfec84 Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Tue, 8 Feb 2022 16:39:30 -0500 Subject: [PATCH 04/25] Updating auto-generated docs. --- .../RosettaScripts/xsd/filter_FragmentScoreFilter_type.md | 2 +- .../RosettaScripts/xsd/mover_ParsedProtocol_type.md | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/scripting_documentation/RosettaScripts/xsd/filter_FragmentScoreFilter_type.md b/scripting_documentation/RosettaScripts/xsd/filter_FragmentScoreFilter_type.md index cf17faf3b..b556a2dfb 100644 --- a/scripting_documentation/RosettaScripts/xsd/filter_FragmentScoreFilter_type.md +++ b/scripting_documentation/RosettaScripts/xsd/filter_FragmentScoreFilter_type.md @@ -13,7 +13,7 @@ Filter based on any score that can be calculated in fragment_picker. outputs_name="(pose &string;)" csblast="(&string;)" blast_pgp="(&string;)" placeholder_seqs="(&string;)" sparks-x="(&string;)" sparks-x_query="(&string;)" psipred="(&string;)" - vall_path="(/scratch/benchmark/W.hojo-1/rosetta.Hojo-1/master/main/database//sampling/vall.jul19.2011.gz &string;)" + vall_path="(/Users/vmulligan/rosetta_git_workingcopy/Rosetta/main/tools/doc_tools/../../database//sampling/vall.jul19.2011.gz &string;)" frags_scoring_config="(&string;)" n_frags="(200 &non_negative_integer;)" n_candidates="(1000 &non_negative_integer;)" print_to_pdb="(false &xs:boolean;)" diff --git a/scripting_documentation/RosettaScripts/xsd/mover_ParsedProtocol_type.md b/scripting_documentation/RosettaScripts/xsd/mover_ParsedProtocol_type.md index 2a4c1874f..5284f7d94 100644 --- a/scripting_documentation/RosettaScripts/xsd/mover_ParsedProtocol_type.md +++ b/scripting_documentation/RosettaScripts/xsd/mover_ParsedProtocol_type.md @@ -11,8 +11,8 @@ This is a special mover that allows making a single compound mover and filter ve apply_probability="(ℜ)" resume_support="(false &bool;)" > + ensemble_metrics="(&string;)" apply_probability="(ℜ)" + report_at_end="(true &bool;)" never_rerun_filter="(false &bool;)" /> @@ -33,6 +33,7 @@ Subtag **Add**: The steps to be applied. - **filter**: The filter whose execution is desired - **metrics**: A comma-separated list of metrics to run at this point. - **labels**: A comma-separated list of labels to use for the provided metrics in the output. If empty/missing, use the metric names from the metrics setting. If '-', use the metric's default. +- **ensemble_metrics**: A comma-separated list of ensemble metrics to add at this point. Ensemble metrics will collect information about the pose at this point, and will later report statistics about the ensemble of poses that they have seen. - **apply_probability**: by default equal probability for all tags - **report_at_end**: Report filter value via filter re-evaluation on final pose after conclusion of protocol. Otherwise report filter value as evaluated mid-protocol. - **never_rerun_filter**: Never run this filter after the original apply-time run. Use this option to avoid expensive re-runs when reporting From a18aca64b55832e3a39da76a0c87a105ff946b05 Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Tue, 8 Feb 2022 16:44:29 -0500 Subject: [PATCH 05/25] Adding auto-generated ensemble metric docs. --- .../ensemble_metric_CentralTendency_type.md | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 scripting_documentation/RosettaScripts/xsd/ensemble_metric_CentralTendency_type.md diff --git a/scripting_documentation/RosettaScripts/xsd/ensemble_metric_CentralTendency_type.md b/scripting_documentation/RosettaScripts/xsd/ensemble_metric_CentralTendency_type.md new file mode 100644 index 000000000..71e9363f8 --- /dev/null +++ b/scripting_documentation/RosettaScripts/xsd/ensemble_metric_CentralTendency_type.md @@ -0,0 +1,25 @@ + + +_Autogenerated Tag Syntax Documentation:_ + +--- +An ensemble metric that takes a real-valued simple metric, applies it to all poses in an ensemble, and calculates measures of central tendency (mean, median, mode) and other statistics about the distribution (standard deviation, standard error of the mean, min, max, range, etc.). Values that this ensemble metric returns are referred to in scripts as: mean, median, mode, stddev, stderr, min, max, and range. + +```xml + +``` + +- **label_prefix**: If provided, this prefix is prepended to the label for this ensemble metric (with an underscore after the prefix and before the ensemble metric name). +- **label_suffix**: If provided, this suffix is appended to the label for this ensemble metric (with an underscore after the ensemble metric name and before the suffix). +- **ensemble_generating_protocol**: An optional ParsedProtocol or other mover for generating an ensemble from the current pose. This protocol will be applied repeatedly (ensemble_generating_protocol_repeats times) to generate the ensemble of structures. Each generated pose will be measured by this metric, then discarded. The ensemble properties are then reported. If not provided, the current pose is measured and the report will be produced later (e.g. at termination with the JD2 rosetta_scripts application). +- **ensemble_generating_protocol_repeats**: The number of times that the ensemble_generating_protocol is applied. This is the maximum number of structures in the ensemble (though the actual number may be smaller if the protocol contains filters or movers that can fail for some attempts). Only used if an ensemble-generating protocol is provided with the ensemble_generating_protocol option. +- **n_threads**: The number of threads to request for generating ensembles in parallel. This is only used in multi-threaded compilations of Rosetta (compiled with extras=cxx11thread), and only when an ensemble-generating protocol is provided with the ensemble_generating_protocol option. A value of 0 means to use all available threads. In single-threaded builds, this must be set to 0 or 1. +- **use_additional_output_from_last_mover**: If true, this ensemble metric will use the additional output from the previous pose (assuming the previous pose generates multiple outputs) as the ensemble, analysing it and producing a report immediately. If false, then it will behave normally. False by default. +- **real_valued_metric**: The name of a real-valued simple metric defined previously. Required input. + +--- From 3e8cc7ff9f4af78f9362b1b625f6af3fcf940fa1 Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Tue, 8 Feb 2022 16:57:25 -0500 Subject: [PATCH 06/25] Updating CentralTendency ensemble metric doc. --- .../EnsembleMetrics/ensemble_metric_pages/CentralTendency.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripting_documentation/RosettaScripts/EnsembleMetrics/ensemble_metric_pages/CentralTendency.md b/scripting_documentation/RosettaScripts/EnsembleMetrics/ensemble_metric_pages/CentralTendency.md index 24f4c6c3b..2a2b9678f 100644 --- a/scripting_documentation/RosettaScripts/EnsembleMetrics/ensemble_metric_pages/CentralTendency.md +++ b/scripting_documentation/RosettaScripts/EnsembleMetrics/ensemble_metric_pages/CentralTendency.md @@ -14,7 +14,7 @@ Created Tuesday, 8 February 2022 by Vikram K. Mulligan, Center for Computational ### Interface -[[include:ensemble_metric_CentralTendencyEnsembleMetric_type]] +[[include:ensemble_metric_CentralTendency_type]] ### Named values produced From 0e5918f8357deeab4dae4ab0e5b67ad6e53b25dc Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Wed, 9 Feb 2022 19:39:47 -0500 Subject: [PATCH 07/25] Working on documentation for EnsembleMetrics. --- .../EnsembleMetrics/EnsembleMetrics.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md diff --git a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md new file mode 100644 index 000000000..63fb0f03d --- /dev/null +++ b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md @@ -0,0 +1,36 @@ +# EnsembleMetrics +*Back to main [[RosettaScripts|RosettaScripts]] page.* + +Page created Wed, 9 February 2022 by Vikram K. Mulligan, Flatiron Institute (vmulligan@flatironinstitute.org). + +[[_TOC_]] + +## Description + +Just as [[SimpleMetrics]] measure some property of a pose, EnsembleMetrics measure some property of a group (or _ensemble_) of poses. They are designed to be used in two phases. In the _accumulation_ phase, an EnsembleMetric is applied to each pose in an ensemble in sequence, allowing it to store any relevant measurements from that pose that will later be needed to calculate properties of the ensemble. In the _reporting_ phase, the EnsembleMetric generates a report about the properties of the ensemble and writes this report to disk or to tracer. Following reporting, an EnsembleMetric may be _interrogated_ by such modules as the [[EnsembleFilter]], allowing retrieval of any floating-point values computed by the EnsembleMetric for filtering. Alternatively, the EnsembleMetric may be _reset_ for re-use (meaning that accumulated data, but not configuration settings, are wiped). + +## Usage modes + +EnsembleMetrics have three intended usage modes in [[RosettaScripts]]: + +Mode | Setup | Accumulation Phase | Reporting Phase | Subsequent Interrogation | Subsequent Resetting +---- | ----- | ------------------ | --------------- | ------------------------ | -------------------- +Basic accumulator mode | Added to a protocol at point of accumulation. | The EnsembleMetric is applied to each pose that the RosettaScripts script handles, in sequence. | The EnsembleMetric produces its report at termination of the RosettaScripts application. This report covers all poses seen during this RosettaScripts run. | None. | None. +Internal generation mode | Provided with a ParsedProtocol for generating the ensemble of poses from the input pose, and a number to generate. Added to protocol at point where ensemble should be generated from pose at that point. | Accumulates information about each pose in the ensemble it generates. Poses are then discaded. | The report is provided immediately once the ensemble has been generated. The script then continues with the input pose. | After reporting. | On next nstruct (repeat) or next job. +Multiple pose mover mode | Set to use input from a mover that produces many outputs (a [[MultiplePoseMover]]). Placed in script after such a mover. | Collects data from each pose produced by previous mover. | Reports immediately after collecting data on all poses produced by previous mover. The script then continues on. | After reporting. | On next nstruct (repeat) or next job. + +CONTINUE HEREs + +##Available EnsembleMetrics + +EnsembleMetric | Description +------------ | ------------- +**[[CentralTendency]]** | Takes a [[real-valued SimpleMetric|SimpleMetrics]], applies it to each pose in an ensemble, and returns measures of central tendency (mean, median, mode) and other measures of the distribution (standard deviation, standard error, etc.). + +##See Also + +* [[SimpleMetrics]]: Measure a property of a single pose. +* [[Filters|Filters-RosettaScripts]]: Filter on a measured feature of a pose. +* [[EnsembleFilter]]: Filter on a property of an ensemble of poses. +* [[Movers|Movers-RosettaScripts]]: Modify a pose. +* [[I want to do x]]: Guide to choosing a Rosetta protocol. \ No newline at end of file From b3730e1e00ebdf585f8f69139ce4ba576e73d55d Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Wed, 9 Feb 2022 19:56:34 -0500 Subject: [PATCH 08/25] Fleshing out EnsembleMetric documentation. --- .../EnsembleMetrics/EnsembleMetrics.md | 101 +++++++++++++++++- 1 file changed, 96 insertions(+), 5 deletions(-) diff --git a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md index 63fb0f03d..afee96cf7 100644 --- a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md +++ b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md @@ -9,6 +9,12 @@ Page created Wed, 9 February 2022 by Vikram K. Mulligan, Flatiron Institute (vmu Just as [[SimpleMetrics]] measure some property of a pose, EnsembleMetrics measure some property of a group (or _ensemble_) of poses. They are designed to be used in two phases. In the _accumulation_ phase, an EnsembleMetric is applied to each pose in an ensemble in sequence, allowing it to store any relevant measurements from that pose that will later be needed to calculate properties of the ensemble. In the _reporting_ phase, the EnsembleMetric generates a report about the properties of the ensemble and writes this report to disk or to tracer. Following reporting, an EnsembleMetric may be _interrogated_ by such modules as the [[EnsembleFilter]], allowing retrieval of any floating-point values computed by the EnsembleMetric for filtering. Alternatively, the EnsembleMetric may be _reset_ for re-use (meaning that accumulated data, but not configuration settings, are wiped). +##Available EnsembleMetrics + +EnsembleMetric | Description +------------ | ------------- +**[[CentralTendency]]** | Takes a [[real-valued SimpleMetric|SimpleMetrics]], applies it to each pose in an ensemble, and returns measures of central tendency (mean, median, mode) and other measures of the distribution (standard deviation, standard error, etc.). + ## Usage modes EnsembleMetrics have three intended usage modes in [[RosettaScripts]]: @@ -19,13 +25,98 @@ Basic accumulator mode | Added to a protocol at point of accumulation. | The Ens Internal generation mode | Provided with a ParsedProtocol for generating the ensemble of poses from the input pose, and a number to generate. Added to protocol at point where ensemble should be generated from pose at that point. | Accumulates information about each pose in the ensemble it generates. Poses are then discaded. | The report is provided immediately once the ensemble has been generated. The script then continues with the input pose. | After reporting. | On next nstruct (repeat) or next job. Multiple pose mover mode | Set to use input from a mover that produces many outputs (a [[MultiplePoseMover]]). Placed in script after such a mover. | Collects data from each pose produced by previous mover. | Reports immediately after collecting data on all poses produced by previous mover. The script then continues on. | After reporting. | On next nstruct (repeat) or next job. -CONTINUE HEREs +### Example of basic usage -##Available EnsembleMetrics +In this example, the input is a cyclic peptide. This script perturbs the peptide backbone, relaxes the peptide, and then applies a [[CentralTendency EnsembleMetric|CentralTendency]] that in turn applies a [[TotalEnergyMetric]], measuring total score. At the end of execution (after repeat execution, a number of times set with the `-nstruct` flag), the EnsembleMetric produces a report about the mean, median, mode, etc. of the samples. -EnsembleMetric | Description ------------- | ------------- -**[[CentralTendency]]** | Takes a [[real-valued SimpleMetric|SimpleMetrics]], applies it to each pose in an ensemble, and returns measures of central tendency (mean, median, mode) and other measures of the distribution (standard deviation, standard error, etc.). +```xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +### Example of internal generation mode + +TODO + +### Example of multiple pose mover mode + +TODO + +## Interrogating EnsembleMetric floating-point values by name + +## Note about running in MPI mode + +TODO ##See Also From 97d78921d5e8239bc7843bf0f2afd1f7dcd36883 Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Wed, 9 Feb 2022 23:15:51 -0500 Subject: [PATCH 09/25] Updating auto-generated docs. --- .../ensemble_metric_CentralTendency_type.md | 5 ++++- .../xsd/filter_EnsembleFilter_type.md | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 scripting_documentation/RosettaScripts/xsd/filter_EnsembleFilter_type.md diff --git a/scripting_documentation/RosettaScripts/xsd/ensemble_metric_CentralTendency_type.md b/scripting_documentation/RosettaScripts/xsd/ensemble_metric_CentralTendency_type.md index 71e9363f8..833bb10a0 100644 --- a/scripting_documentation/RosettaScripts/xsd/ensemble_metric_CentralTendency_type.md +++ b/scripting_documentation/RosettaScripts/xsd/ensemble_metric_CentralTendency_type.md @@ -7,7 +7,8 @@ An ensemble metric that takes a real-valued simple metric, applies it to all pos ```xml + +_Autogenerated Tag Syntax Documentation:_ + +--- +A filter that filters based on some named float-valued property measured by an EnsembleMetric. Note that the value produced by the EnsembleMetric is based on an ensemble generated earlier in the protocol, presumably from the pose on which we are currently filtering. + +```xml + +``` + +- **ensemble_metric**: (REQUIRED) A previously-defined EnsembleMetric that produces at least one floating-point value. This filter will filter a pose based on that value. +- **named_value**: (REQUIRED) A named floating-point value produced by the EnsembleMetric, on which this filter will filter. +- **threshold**: The threshold for rejecting a pose. +- **filter_acceptance_mode**: The criterion for ACCEPTING a pose. For instance, if the value returned by the ensemble metric is greater than the threshold, and the mode is 'less_than_or_equal' (the default mode), then the pose is rejected. Allowed modes are: 'greater_than', 'less_than', 'greater_than_or_equal', 'less_than_or_equal', 'equal', and 'not_equal'. +- **confidence**: Probability that the pose will be filtered out if it does not pass this Filter + +--- From ca9eebdb51f0460004ccc1b43deaf4d0ca1244d2 Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Thu, 10 Feb 2022 15:57:07 -0500 Subject: [PATCH 10/25] Adding note about accessing named values. --- .../EnsembleMetrics/EnsembleMetrics.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md index afee96cf7..5c1483324 100644 --- a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md +++ b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md @@ -114,6 +114,52 @@ TODO ## Interrogating EnsembleMetric floating-point values by name +Each EnsembleMetric can return one or more floating-point values describing different features of the ensemble. Each of these has a name associated with it. + +### From C++ or Python code + +From C++ (or Python) code, after an EnsembleMetric produces its final report, these values can be interrogated with the `get_metric_by_name()` method. To see all names offered by a particular EnsembleMetric, call `real_valued_metric_names()`: + +```C++ + // Create an EnsembleMetric: + CentralTendency my_ensemble_metric; + // Configure this EnsembleMetric here. This particular + // example would require a SimpleMetric to be passed to + // it, though in general the setup for EnsembleMetrics + // will vary from EnsembleMetric subclass to subclass. + + for( core::Size i=1; i<=nstruct; ++i ) { + // Generate a pose here. + // ... + + // Collect data from it: + my_ensemble_metric.apply( pose ); + } + + // Produce final report (to tracer or disk, + // depending on configuration): + my_ensemble_metric.produce_final_report(); + + // Get the names of floating point values + // that the EnsembleMetric has calculated: + utility::vector1< std::string > const value_names( + my_ensemble_metric.real_valued_metric_names() + ); + + // Confirm that "median" is a name of a value + // returned by this particular metric: + runtime_assert( value_names.has_value( "median" ) ); //This passes. + + // Get the median value from the ensemble: + core::Real const median_value( + my_ensemble_metric.get_metric_by_name( "median" ) + ); +``` + +### Using filters + +TODO + ## Note about running in MPI mode TODO From bbfdb09d097f6de0fea8de16107f577d9704b2b6 Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Thu, 10 Feb 2022 16:08:53 -0500 Subject: [PATCH 11/25] Adding note about filtering. --- .../RosettaScripts/EnsembleMetrics/EnsembleMetrics.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md index 5c1483324..773b568a9 100644 --- a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md +++ b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md @@ -158,7 +158,11 @@ From C++ (or Python) code, after an EnsembleMetric produces its final report, th ### Using filters -TODO +In RosettaScripts (or in PyRosetta or even C++ code), when an EnsembleMetric is used in internal generator mode or multiple pose mover mode (_i.e._ it applies itself to an ensemble of poses that it either generates internally or receives from a previous mover) a subsequent [[EnsembleFilter]] may be used to interrogate a named value computed by the EnsembleMetric, and to cause the protocol to pass or fail depending on that property of the ensemble. + +Why would someone want to do this? One example would be if one wanted to write a script that would design a protein, generate for each design a conformational ensemble, and score the propensity to favour the designed state (_e.g._ with the planned [[PNear]] EnsembleMetric), then discard those designs that have poor propensith to favour the designed state based on the ensemble analysis. This would ensure that one could produce thousands or tens of thousands of designs in memory, analyze them all, and only write to disk the ones worth carrying forward. Other similar usage patterns are possible. + +For more information, see the page for the [[EnsembleFilter]]. ## Note about running in MPI mode From 9dd6e8930753870e202fc3a914fbb9507ef7d06d Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Thu, 10 Feb 2022 16:11:27 -0500 Subject: [PATCH 12/25] Revising text slightly. --- .../RosettaScripts/EnsembleMetrics/EnsembleMetrics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md index 773b568a9..9b48cb12c 100644 --- a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md +++ b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md @@ -160,7 +160,7 @@ From C++ (or Python) code, after an EnsembleMetric produces its final report, th In RosettaScripts (or in PyRosetta or even C++ code), when an EnsembleMetric is used in internal generator mode or multiple pose mover mode (_i.e._ it applies itself to an ensemble of poses that it either generates internally or receives from a previous mover) a subsequent [[EnsembleFilter]] may be used to interrogate a named value computed by the EnsembleMetric, and to cause the protocol to pass or fail depending on that property of the ensemble. -Why would someone want to do this? One example would be if one wanted to write a script that would design a protein, generate for each design a conformational ensemble, and score the propensity to favour the designed state (_e.g._ with the planned [[PNear]] EnsembleMetric), then discard those designs that have poor propensith to favour the designed state based on the ensemble analysis. This would ensure that one could produce thousands or tens of thousands of designs in memory, analyze them all, and only write to disk the ones worth carrying forward. Other similar usage patterns are possible. +Why would someone want to do this? One example would be if one wanted to write a script that would design a protein, generate for each design a conformational ensemble, and score the propensity to favour the designed conformation (_e.g._ with the planned [[PNear]] EnsembleMetric), then discard those designs that have poor propensity to favour the designed state based on the ensemble analysis. This would ensure that one could produce thousands or tens of thousands of designs in memory, analyze them all, and only write to disk the ones worth carrying forward. Variant patterns include generating initial designs using a low-cost initial design protocol, doing moderate-cost ensemble analysis, discarding poor designs with the EnsembleFilter, and refining those designs that pass the filter using higher-cost refinement protocols. Other similar usage patterns are possible. For more information, see the page for the [[EnsembleFilter]]. From 9629b4b3a5db9f5af38ca7581c2c0b16aad4620d Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Thu, 10 Feb 2022 16:16:42 -0500 Subject: [PATCH 13/25] Adding note about MPI mode. --- .../RosettaScripts/EnsembleMetrics/EnsembleMetrics.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md index 9b48cb12c..b53f94158 100644 --- a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md +++ b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md @@ -166,9 +166,9 @@ For more information, see the page for the [[EnsembleFilter]]. ## Note about running in MPI mode -TODO +Note that EnsembleMetrics that run in different MPI processes cannot share information about the different poses that they have seen at present. This means that they will produce reports about only the ensemble of poses that they have seen _in their own MPI process_. They can still be used in MPI mode to analyse different ensembles in each MPI process. Support for generating giant ensembles by MPI and analysing them with EnsembleMetrics is planned for the future. -##See Also +## See Also * [[SimpleMetrics]]: Measure a property of a single pose. * [[Filters|Filters-RosettaScripts]]: Filter on a measured feature of a pose. From 33019004e61376e3a11572706b34140d5b178fa6 Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Thu, 10 Feb 2022 18:28:56 -0500 Subject: [PATCH 14/25] Adding example of internal generation mode. --- .../EnsembleMetrics/EnsembleMetrics.md | 122 +++++++++++++++++- 1 file changed, 116 insertions(+), 6 deletions(-) diff --git a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md index b53f94158..f89a2aa9a 100644 --- a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md +++ b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md @@ -27,7 +27,7 @@ Multiple pose mover mode | Set to use input from a mover that produces many outp ### Example of basic usage -In this example, the input is a cyclic peptide. This script perturbs the peptide backbone, relaxes the peptide, and then applies a [[CentralTendency EnsembleMetric|CentralTendency]] that in turn applies a [[TotalEnergyMetric]], measuring total score. At the end of execution (after repeat execution, a number of times set with the `-nstruct` flag), the EnsembleMetric produces a report about the mean, median, mode, etc. of the samples. +In this example, the input is a cyclic peptide (provided with the `-in:file:s` commandline option). This script perturbs the peptide backbone, relaxes the peptide, and then applies a [[CentralTendency EnsembleMetric|CentralTendency]] that in turn applies a [[TotalEnergyMetric]], measuring total score. At the end of execution (after repeat execution, a number of times set with the `-nstruct` commandline option), the EnsembleMetric produces a report about the mean, median, mode, etc. of the samples. ```xml @@ -38,7 +38,9 @@ In this example, the input is a cyclic peptide. This script perturbs the peptid - + @@ -59,7 +61,9 @@ In this example, the input is a cyclic peptide. This script perturbs the peptid - + @@ -96,17 +100,123 @@ In this example, the input is a cyclic peptide. This script perturbs the peptid - + - + ``` ### Example of internal generation mode -TODO +This example is similar to the example above, only this time, we load one or more cyclic peptides (provided with the `-in:file:s` or `-in:file:l` commandline options), generate a conformational ensemble for each peptide _in memory_, without writing all structures to disk, and perform ensemble analysis on that ensemble, filtering on the results with the [[EnsembleMetric]]. + +```xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` ### Example of multiple pose mover mode From a5778bb6f493572edf75aebc22242ff2e49d86ba Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Thu, 10 Feb 2022 18:38:22 -0500 Subject: [PATCH 15/25] Adding note about multithreading. --- .../EnsembleMetrics/EnsembleMetrics.md | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md index f89a2aa9a..f9dd81b62 100644 --- a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md +++ b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md @@ -5,7 +5,7 @@ Page created Wed, 9 February 2022 by Vikram K. Mulligan, Flatiron Institute (vmu [[_TOC_]] -## Description +## 1. Description Just as [[SimpleMetrics]] measure some property of a pose, EnsembleMetrics measure some property of a group (or _ensemble_) of poses. They are designed to be used in two phases. In the _accumulation_ phase, an EnsembleMetric is applied to each pose in an ensemble in sequence, allowing it to store any relevant measurements from that pose that will later be needed to calculate properties of the ensemble. In the _reporting_ phase, the EnsembleMetric generates a report about the properties of the ensemble and writes this report to disk or to tracer. Following reporting, an EnsembleMetric may be _interrogated_ by such modules as the [[EnsembleFilter]], allowing retrieval of any floating-point values computed by the EnsembleMetric for filtering. Alternatively, the EnsembleMetric may be _reset_ for re-use (meaning that accumulated data, but not configuration settings, are wiped). @@ -15,7 +15,7 @@ EnsembleMetric | Description ------------ | ------------- **[[CentralTendency]]** | Takes a [[real-valued SimpleMetric|SimpleMetrics]], applies it to each pose in an ensemble, and returns measures of central tendency (mean, median, mode) and other measures of the distribution (standard deviation, standard error, etc.). -## Usage modes +## 2. Usage modes EnsembleMetrics have three intended usage modes in [[RosettaScripts]]: @@ -25,7 +25,7 @@ Basic accumulator mode | Added to a protocol at point of accumulation. | The Ens Internal generation mode | Provided with a ParsedProtocol for generating the ensemble of poses from the input pose, and a number to generate. Added to protocol at point where ensemble should be generated from pose at that point. | Accumulates information about each pose in the ensemble it generates. Poses are then discaded. | The report is provided immediately once the ensemble has been generated. The script then continues with the input pose. | After reporting. | On next nstruct (repeat) or next job. Multiple pose mover mode | Set to use input from a mover that produces many outputs (a [[MultiplePoseMover]]). Placed in script after such a mover. | Collects data from each pose produced by previous mover. | Reports immediately after collecting data on all poses produced by previous mover. The script then continues on. | After reporting. | On next nstruct (repeat) or next job. -### Example of basic usage +### 2.1 Example of basic usage In this example, the input is a cyclic peptide (provided with the `-in:file:s` commandline option). This script perturbs the peptide backbone, relaxes the peptide, and then applies a [[CentralTendency EnsembleMetric|CentralTendency]] that in turn applies a [[TotalEnergyMetric]], measuring total score. At the end of execution (after repeat execution, a number of times set with the `-nstruct` commandline option), the EnsembleMetric produces a report about the mean, median, mode, etc. of the samples. @@ -110,7 +110,7 @@ In this example, the input is a cyclic peptide (provided with the `-in:file:s` c ``` -### Example of internal generation mode +### 2.2 Example of internal generation mode This example is similar to the example above, only this time, we load one or more cyclic peptides (provided with the `-in:file:s` or `-in:file:l` commandline options), generate a conformational ensemble for each peptide _in memory_, without writing all structures to disk, and perform ensemble analysis on that ensemble, filtering on the results with the [[EnsembleMetric]]. @@ -218,15 +218,19 @@ This example is similar to the example above, only this time, we load one or mor ``` -### Example of multiple pose mover mode +#### 2.2.1 Multi-threading + +When used in internal generation mode, the EnsembleMetric can generate members of the ensemble in [[parallel threads|Multithreading]]. This uses the [[RosettaThreadManager]], assigning work to available threads up to a user-specied maximum number to request. To set the maximum number of threads to request, use the `n_threads` option (where a setting of zero means to request all available threads). This functionality is only available in multi-threaded builds of Rosetta (built using `extras=cxx11thread` in the `scons` command), and requires that the total number of Rosetta threads be set at the command line using the `-multithreading:total_threads` commandline option. Note that an EnsembleMetric may be assigned fewer than the requested number of threads if other modules are using threads; at a minimum, it is guaranteed to be assigned the calling thread. + +### 2.3 Example of multiple pose mover mode TODO -## Interrogating EnsembleMetric floating-point values by name +## 3. Interrogating EnsembleMetric floating-point values by name Each EnsembleMetric can return one or more floating-point values describing different features of the ensemble. Each of these has a name associated with it. -### From C++ or Python code +### 3.1 From C++ or Python code From C++ (or Python) code, after an EnsembleMetric produces its final report, these values can be interrogated with the `get_metric_by_name()` method. To see all names offered by a particular EnsembleMetric, call `real_valued_metric_names()`: @@ -266,19 +270,19 @@ From C++ (or Python) code, after an EnsembleMetric produces its final report, th ); ``` -### Using filters +### 3.2 Using filters In RosettaScripts (or in PyRosetta or even C++ code), when an EnsembleMetric is used in internal generator mode or multiple pose mover mode (_i.e._ it applies itself to an ensemble of poses that it either generates internally or receives from a previous mover) a subsequent [[EnsembleFilter]] may be used to interrogate a named value computed by the EnsembleMetric, and to cause the protocol to pass or fail depending on that property of the ensemble. Why would someone want to do this? One example would be if one wanted to write a script that would design a protein, generate for each design a conformational ensemble, and score the propensity to favour the designed conformation (_e.g._ with the planned [[PNear]] EnsembleMetric), then discard those designs that have poor propensity to favour the designed state based on the ensemble analysis. This would ensure that one could produce thousands or tens of thousands of designs in memory, analyze them all, and only write to disk the ones worth carrying forward. Variant patterns include generating initial designs using a low-cost initial design protocol, doing moderate-cost ensemble analysis, discarding poor designs with the EnsembleFilter, and refining those designs that pass the filter using higher-cost refinement protocols. Other similar usage patterns are possible. -For more information, see the page for the [[EnsembleFilter]]. +Note that if one simply wants the value produced by the EnsembleMetric to be recorded in the pose, the EnsembleFilter can be used for that purpose as well by setting `confidence="0"` (so that the filter never rejects anything, but only reports). At some point, a SimpleMetric may be written for that purpose. For more information, see the page for the [[EnsembleFilter]]. -## Note about running in MPI mode +## 4. Note about running in MPI mode Note that EnsembleMetrics that run in different MPI processes cannot share information about the different poses that they have seen at present. This means that they will produce reports about only the ensemble of poses that they have seen _in their own MPI process_. They can still be used in MPI mode to analyse different ensembles in each MPI process. Support for generating giant ensembles by MPI and analysing them with EnsembleMetrics is planned for the future. -## See Also +## 5. See Also * [[SimpleMetrics]]: Measure a property of a single pose. * [[Filters|Filters-RosettaScripts]]: Filter on a measured feature of a pose. From a04596251da283a4aac16a07d9165cc84fd25f03 Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Thu, 10 Feb 2022 21:48:06 -0500 Subject: [PATCH 16/25] Updating note about multi-threading. --- .../RosettaScripts/EnsembleMetrics/EnsembleMetrics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md index f9dd81b62..a1c596109 100644 --- a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md +++ b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md @@ -220,7 +220,7 @@ This example is similar to the example above, only this time, we load one or mor #### 2.2.1 Multi-threading -When used in internal generation mode, the EnsembleMetric can generate members of the ensemble in [[parallel threads|Multithreading]]. This uses the [[RosettaThreadManager]], assigning work to available threads up to a user-specied maximum number to request. To set the maximum number of threads to request, use the `n_threads` option (where a setting of zero means to request all available threads). This functionality is only available in multi-threaded builds of Rosetta (built using `extras=cxx11thread` in the `scons` command), and requires that the total number of Rosetta threads be set at the command line using the `-multithreading:total_threads` commandline option. Note that an EnsembleMetric may be assigned fewer than the requested number of threads if other modules are using threads; at a minimum, it is guaranteed to be assigned the calling thread. +When used in internal generation mode, the EnsembleMetric can generate members of the ensemble in [[parallel threads|Multithreading]]. This uses the [[RosettaThreadManager]], assigning work to available threads up to a user-specied maximum number to request. To set the maximum number of threads to request, use the `n_threads` option (where a setting of zero means to request all available threads). This functionality is only available in multi-threaded builds of Rosetta (built using `extras=cxx11thread` in the `scons` command), and requires that the total number of Rosetta threads be set at the command line using the `-multithreading:total_threads` commandline option. Note that an EnsembleMetric may be assigned fewer than the requested number of threads if other modules are using threads; at a minimum, it is guaranteed to be assigned the calling thread. **Note: this is a _highly_ experimental feature that can fail for many ensemble-generating protocols. When in doubt, it is safest to set `n_threads` to 1 (the default) for an EnsembleMetric.** ### 2.3 Example of multiple pose mover mode From eb93e85d9bf1858897fc981c174639468d8dc925 Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Thu, 10 Feb 2022 22:53:08 -0500 Subject: [PATCH 17/25] Adding example for mode 3. --- .../EnsembleMetrics/EnsembleMetrics.md | 56 ++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md index a1c596109..c9fc29d57 100644 --- a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md +++ b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md @@ -224,7 +224,61 @@ When used in internal generation mode, the EnsembleMetric can generate members o ### 2.3 Example of multiple pose mover mode -TODO +The following example uses the [[BundleGridSampler]] mover to grid-sample helical bundle conformations parametrically. For each conformation sampled, the protocol then uses the [[Disulfidize]] mover to generate all possible disulfides joining the helices as an ensemble of poses. It then computes the median disulfide pair energy, and discards conformations for which this energy is above a cutoff. + +```xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` ## 3. Interrogating EnsembleMetric floating-point values by name From 62a915844db80b2e5fb7a2fca23de4e324eca579 Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Thu, 10 Feb 2022 22:55:37 -0500 Subject: [PATCH 18/25] Add EnsembleFilter docs to filter list. --- .../RosettaScripts/Filters/Filters-RosettaScripts.md | 1 + 1 file changed, 1 insertion(+) diff --git a/scripting_documentation/RosettaScripts/Filters/Filters-RosettaScripts.md b/scripting_documentation/RosettaScripts/Filters/Filters-RosettaScripts.md index 5beb4a849..8518db1fe 100644 --- a/scripting_documentation/RosettaScripts/Filters/Filters-RosettaScripts.md +++ b/scripting_documentation/RosettaScripts/Filters/Filters-RosettaScripts.md @@ -37,6 +37,7 @@ Filter | Description **[[CompoundStatement|CompoundStatementFilter]]** | Uses previously defined filters with logical operations to construct a compound filter. **[[CombinedValue|CombinedValueFilter]]** | Weighted sum of multiple filters. **[[CalculatorFilter]]** | Combine multiple filters with a mathematical expression. +**[[EnsembleFilter]]** | Filter based, not on a property of a single pose, but on a property of an _ensemble_ of many poses. **[[ReplicateFilter]]** | Repeat a filter multiple times and average. **[[Boltzmann|BoltzmannFilter]]** | Boltzmann weighted sum of positive/negative filters. **[[MoveBeforeFilter]]** | Apply a mover before applying the filter. From d38608f9c01f68b2ea717778ad2f9a3941f2c252 Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Thu, 10 Feb 2022 22:59:47 -0500 Subject: [PATCH 19/25] Moving some filters that were in the wrong folder. --- .../Filters/{ => filter_pages}/AlignmentAAFinderFilter.md | 0 .../Filters/{ => filter_pages}/AlignmentGapInserterFilter.md | 0 .../RosettaScripts/Filters/{ => filter_pages}/ChainBreakFilter.md | 0 .../RosettaScripts/Filters/{ => filter_pages}/FragQualFilter.md | 0 .../Filters/{ => filter_pages}/FragmentScoreFilter.md | 0 .../Filters/{ => filter_pages}/HelixHelixAngleFilter.md | 0 .../RosettaScripts/Filters/{ => filter_pages}/HolesFilter.md | 0 .../{ => filter_pages}/LongestContinuousApolarSegmentFilter.md | 0 .../Filters/{ => filter_pages}/MPSpanAngleFilter.md | 0 .../Filters/{ => filter_pages}/SequenceDistanceFilter.md | 0 .../Filters/{ => filter_pages}/SpanTopologyMatchPoseFilter.md | 0 .../RosettaScripts/Filters/{ => filter_pages}/TMsAACompFilter.md | 0 12 files changed, 0 insertions(+), 0 deletions(-) rename scripting_documentation/RosettaScripts/Filters/{ => filter_pages}/AlignmentAAFinderFilter.md (100%) rename scripting_documentation/RosettaScripts/Filters/{ => filter_pages}/AlignmentGapInserterFilter.md (100%) rename scripting_documentation/RosettaScripts/Filters/{ => filter_pages}/ChainBreakFilter.md (100%) rename scripting_documentation/RosettaScripts/Filters/{ => filter_pages}/FragQualFilter.md (100%) rename scripting_documentation/RosettaScripts/Filters/{ => filter_pages}/FragmentScoreFilter.md (100%) rename scripting_documentation/RosettaScripts/Filters/{ => filter_pages}/HelixHelixAngleFilter.md (100%) rename scripting_documentation/RosettaScripts/Filters/{ => filter_pages}/HolesFilter.md (100%) rename scripting_documentation/RosettaScripts/Filters/{ => filter_pages}/LongestContinuousApolarSegmentFilter.md (100%) rename scripting_documentation/RosettaScripts/Filters/{ => filter_pages}/MPSpanAngleFilter.md (100%) rename scripting_documentation/RosettaScripts/Filters/{ => filter_pages}/SequenceDistanceFilter.md (100%) rename scripting_documentation/RosettaScripts/Filters/{ => filter_pages}/SpanTopologyMatchPoseFilter.md (100%) rename scripting_documentation/RosettaScripts/Filters/{ => filter_pages}/TMsAACompFilter.md (100%) diff --git a/scripting_documentation/RosettaScripts/Filters/AlignmentAAFinderFilter.md b/scripting_documentation/RosettaScripts/Filters/filter_pages/AlignmentAAFinderFilter.md similarity index 100% rename from scripting_documentation/RosettaScripts/Filters/AlignmentAAFinderFilter.md rename to scripting_documentation/RosettaScripts/Filters/filter_pages/AlignmentAAFinderFilter.md diff --git a/scripting_documentation/RosettaScripts/Filters/AlignmentGapInserterFilter.md b/scripting_documentation/RosettaScripts/Filters/filter_pages/AlignmentGapInserterFilter.md similarity index 100% rename from scripting_documentation/RosettaScripts/Filters/AlignmentGapInserterFilter.md rename to scripting_documentation/RosettaScripts/Filters/filter_pages/AlignmentGapInserterFilter.md diff --git a/scripting_documentation/RosettaScripts/Filters/ChainBreakFilter.md b/scripting_documentation/RosettaScripts/Filters/filter_pages/ChainBreakFilter.md similarity index 100% rename from scripting_documentation/RosettaScripts/Filters/ChainBreakFilter.md rename to scripting_documentation/RosettaScripts/Filters/filter_pages/ChainBreakFilter.md diff --git a/scripting_documentation/RosettaScripts/Filters/FragQualFilter.md b/scripting_documentation/RosettaScripts/Filters/filter_pages/FragQualFilter.md similarity index 100% rename from scripting_documentation/RosettaScripts/Filters/FragQualFilter.md rename to scripting_documentation/RosettaScripts/Filters/filter_pages/FragQualFilter.md diff --git a/scripting_documentation/RosettaScripts/Filters/FragmentScoreFilter.md b/scripting_documentation/RosettaScripts/Filters/filter_pages/FragmentScoreFilter.md similarity index 100% rename from scripting_documentation/RosettaScripts/Filters/FragmentScoreFilter.md rename to scripting_documentation/RosettaScripts/Filters/filter_pages/FragmentScoreFilter.md diff --git a/scripting_documentation/RosettaScripts/Filters/HelixHelixAngleFilter.md b/scripting_documentation/RosettaScripts/Filters/filter_pages/HelixHelixAngleFilter.md similarity index 100% rename from scripting_documentation/RosettaScripts/Filters/HelixHelixAngleFilter.md rename to scripting_documentation/RosettaScripts/Filters/filter_pages/HelixHelixAngleFilter.md diff --git a/scripting_documentation/RosettaScripts/Filters/HolesFilter.md b/scripting_documentation/RosettaScripts/Filters/filter_pages/HolesFilter.md similarity index 100% rename from scripting_documentation/RosettaScripts/Filters/HolesFilter.md rename to scripting_documentation/RosettaScripts/Filters/filter_pages/HolesFilter.md diff --git a/scripting_documentation/RosettaScripts/Filters/LongestContinuousApolarSegmentFilter.md b/scripting_documentation/RosettaScripts/Filters/filter_pages/LongestContinuousApolarSegmentFilter.md similarity index 100% rename from scripting_documentation/RosettaScripts/Filters/LongestContinuousApolarSegmentFilter.md rename to scripting_documentation/RosettaScripts/Filters/filter_pages/LongestContinuousApolarSegmentFilter.md diff --git a/scripting_documentation/RosettaScripts/Filters/MPSpanAngleFilter.md b/scripting_documentation/RosettaScripts/Filters/filter_pages/MPSpanAngleFilter.md similarity index 100% rename from scripting_documentation/RosettaScripts/Filters/MPSpanAngleFilter.md rename to scripting_documentation/RosettaScripts/Filters/filter_pages/MPSpanAngleFilter.md diff --git a/scripting_documentation/RosettaScripts/Filters/SequenceDistanceFilter.md b/scripting_documentation/RosettaScripts/Filters/filter_pages/SequenceDistanceFilter.md similarity index 100% rename from scripting_documentation/RosettaScripts/Filters/SequenceDistanceFilter.md rename to scripting_documentation/RosettaScripts/Filters/filter_pages/SequenceDistanceFilter.md diff --git a/scripting_documentation/RosettaScripts/Filters/SpanTopologyMatchPoseFilter.md b/scripting_documentation/RosettaScripts/Filters/filter_pages/SpanTopologyMatchPoseFilter.md similarity index 100% rename from scripting_documentation/RosettaScripts/Filters/SpanTopologyMatchPoseFilter.md rename to scripting_documentation/RosettaScripts/Filters/filter_pages/SpanTopologyMatchPoseFilter.md diff --git a/scripting_documentation/RosettaScripts/Filters/TMsAACompFilter.md b/scripting_documentation/RosettaScripts/Filters/filter_pages/TMsAACompFilter.md similarity index 100% rename from scripting_documentation/RosettaScripts/Filters/TMsAACompFilter.md rename to scripting_documentation/RosettaScripts/Filters/filter_pages/TMsAACompFilter.md From 11215f250ac63370b3d33720a5bf5e6c7fb8f4ff Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Thu, 10 Feb 2022 23:12:25 -0500 Subject: [PATCH 20/25] Adding documentation for EnsembleFilter. --- .../Filters/filter_pages/EnsembleFilter.md | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 scripting_documentation/RosettaScripts/Filters/filter_pages/EnsembleFilter.md diff --git a/scripting_documentation/RosettaScripts/Filters/filter_pages/EnsembleFilter.md b/scripting_documentation/RosettaScripts/Filters/filter_pages/EnsembleFilter.md new file mode 100644 index 000000000..7dfbda089 --- /dev/null +++ b/scripting_documentation/RosettaScripts/Filters/filter_pages/EnsembleFilter.md @@ -0,0 +1,132 @@ +# EnsembleFilter +*Back to [[SimpleMetrics]] page.* +*Back to [[Filters | Filters-RosettaScripts]] page.* +## EnsembleFilter + +Created by Vikram K. Mulligan (vmulligan@flatironinstitute.org) on 10 February 2022. + +[[_TOC_]] + +### Description + +This filter takes as input an [[EnsembleMetric|EnsembleMetrics]] that has been used to evaluate some set of properties of an ensemble of filters, retrives a named floating-point value from the metric, and filters based on whether that value is greater than, equal to, or less than some threshold. (Note that [[EnsembleMetrics]] evaluate a property of a collection or _ensemble_ poses, not of a single pose. This makes this filter unusual: where most discard a trajectory based on the state of a single pose, this can discard a trajectory based on the state of large ensemble of poses -- for example, based on many sampled conformatinos of a single design.) + + +### Options + +[[include:filter_SimpleMetricFilter_type]] + +### Example: + +In this example, we load one or more cyclic peptides (provided with the `-in:file:s` or `-in:file:l` commandline options), generate a conformational ensemble of slightly perturbed conformations for each peptide _in memory_, without writing all structures to disk, and perform ensemble analysis on that ensemble with the [[CentralTendency EnsembleMetric|CentralTendency]], filtering on the results with the EnsembleFilter. Only those peptides that have low-energy ensembles of perturbed conformations pass the filter. + +```xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +### See also + +* [[EnsembleMetrics]]: Available SimpleMetrics +* [[SimpleMetrics]]: Available SimpleMetrics +* [[SimpleMetricFilter]]: Filter on an arbitrary SimpleMetric +* [[Movers|Movers-RosettaScripts]]: Available Movers +* [[I want to do x]]: Guide to choosing a Rosetta protocol. \ No newline at end of file From b7e9ef79447b69e504b0ca3e0f2f8c1add90e04a Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Thu, 10 Feb 2022 23:13:08 -0500 Subject: [PATCH 21/25] Minor typos. --- .../RosettaScripts/EnsembleMetrics/EnsembleMetrics.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md index c9fc29d57..d9559cf96 100644 --- a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md +++ b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md @@ -112,7 +112,7 @@ In this example, the input is a cyclic peptide (provided with the `-in:file:s` c ### 2.2 Example of internal generation mode -This example is similar to the example above, only this time, we load one or more cyclic peptides (provided with the `-in:file:s` or `-in:file:l` commandline options), generate a conformational ensemble for each peptide _in memory_, without writing all structures to disk, and perform ensemble analysis on that ensemble, filtering on the results with the [[EnsembleMetric]]. +This example is similar to the example above, only this time, we load one or more cyclic peptides (provided with the `-in:file:s` or `-in:file:l` commandline options), generate a conformational ensemble for each peptide _in memory_, without writing all structures to disk, and perform ensemble analysis on that ensemble, filtering on the results with the [[EnsembleFilter]]. ```xml @@ -215,7 +215,6 @@ This example is similar to the example above, only this time, we load one or mor - ``` #### 2.2.1 Multi-threading From fc6e6749a4cd0c7f0f819f7380275f24100fdc7e Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Thu, 10 Feb 2022 23:15:41 -0500 Subject: [PATCH 22/25] Expanding note about mode. --- .../EnsembleMetrics/ensemble_metric_pages/CentralTendency.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripting_documentation/RosettaScripts/EnsembleMetrics/ensemble_metric_pages/CentralTendency.md b/scripting_documentation/RosettaScripts/EnsembleMetrics/ensemble_metric_pages/CentralTendency.md index 2a2b9678f..80393e4f0 100644 --- a/scripting_documentation/RosettaScripts/EnsembleMetrics/ensemble_metric_pages/CentralTendency.md +++ b/scripting_documentation/RosettaScripts/EnsembleMetrics/ensemble_metric_pages/CentralTendency.md @@ -31,7 +31,7 @@ Range | range | the largest value seen minus the smallest. #### Note about mode -The mode of a set of floating-point numbers can be thrown off by floating-point error. For instance, two poses may have energies of -3.7641 kJ/mol, but the process of computing that energy may result in slightly different values at the 15th decimal point. This would prevent the filter from recognizing this is at the most frequent value. +The mode of a set of floating-point numbers can be thrown off by floating-point error. For instance, two poses may have energies of -3.7641 kJ/mol, but the process of computing that energy may result in slightly different values at the 15th decimal point. This could prevent the filter from recognizing this is at the most frequent value. Mode is most useful as a metric when the "floating-point" values are actually integers (for instance, given a [[SimpleMetric|SimpleMetrics]] like the [[SelectedResidueCountMetric]], which returns integer counts). ##See Also From 08dc81e128e6259038d411f636a7159d5150169f Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Thu, 10 Feb 2022 23:23:36 -0500 Subject: [PATCH 23/25] Minor tweak. --- .../RosettaScripts/EnsembleMetrics/EnsembleMetrics.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md index d9559cf96..3f30a2cf1 100644 --- a/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md +++ b/scripting_documentation/RosettaScripts/EnsembleMetrics/EnsembleMetrics.md @@ -288,8 +288,10 @@ Each EnsembleMetric can return one or more floating-point values describing diff From C++ (or Python) code, after an EnsembleMetric produces its final report, these values can be interrogated with the `get_metric_by_name()` method. To see all names offered by a particular EnsembleMetric, call `real_valued_metric_names()`: ```C++ + // C++ pseudo-code: + // Create an EnsembleMetric: - CentralTendency my_ensemble_metric; + CentralTendencyEnsembleMetric my_ensemble_metric; // Configure this EnsembleMetric here. This particular // example would require a SimpleMetric to be passed to // it, though in general the setup for EnsembleMetrics @@ -341,4 +343,4 @@ Note that EnsembleMetrics that run in different MPI processes cannot share infor * [[Filters|Filters-RosettaScripts]]: Filter on a measured feature of a pose. * [[EnsembleFilter]]: Filter on a property of an ensemble of poses. * [[Movers|Movers-RosettaScripts]]: Modify a pose. -* [[I want to do x]]: Guide to choosing a Rosetta protocol. \ No newline at end of file +* [[I want to do x]]: Guide to choosing a Rosetta protocol. From 41dacf139c387c6c14daf8281cd1b589cfc77227 Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Fri, 25 Feb 2022 00:41:39 -0500 Subject: [PATCH 24/25] Updating CentralTendency and FragmentScore auto-generated docs. --- .../xsd/ensemble_metric_CentralTendency_type.md | 10 +++++----- .../xsd/filter_FragmentScoreFilter_type.md | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/scripting_documentation/RosettaScripts/xsd/ensemble_metric_CentralTendency_type.md b/scripting_documentation/RosettaScripts/xsd/ensemble_metric_CentralTendency_type.md index 833bb10a0..2aaf50613 100644 --- a/scripting_documentation/RosettaScripts/xsd/ensemble_metric_CentralTendency_type.md +++ b/scripting_documentation/RosettaScripts/xsd/ensemble_metric_CentralTendency_type.md @@ -9,8 +9,8 @@ An ensemble metric that takes a real-valued simple metric, applies it to all pos ``` @@ -20,9 +20,9 @@ An ensemble metric that takes a real-valued simple metric, applies it to all pos - **output_mode**: The output mode for reports from this ensemble metric. Default is 'tracer'. Allowed modes are: 'tracer', 'tracer_and_file', or 'file'. - **output_filename**: The file to which the ensemble metric report will be written if output mode is 'tracer_and_file' or 'file'. Note that this filename will have the job name and number prepended so that each report is unique. - **ensemble_generating_protocol**: An optional ParsedProtocol or other mover for generating an ensemble from the current pose. This protocol will be applied repeatedly (ensemble_generating_protocol_repeats times) to generate the ensemble of structures. Each generated pose will be measured by this metric, then discarded. The ensemble properties are then reported. If not provided, the current pose is measured and the report will be produced later (e.g. at termination with the JD2 rosetta_scripts application). -- **ensemble_generating_protocol_repeats**: The number of times that the ensemble_generating_protocol is applied. This is the maximum number of structures in the ensemble (though the actual number may be smaller if the protocol contains filters or movers that can fail for some attempts). Only used if an ensemble-generating protocol is provided with the ensemble_generating_protocol option. -- **n_threads**: The number of threads to request for generating ensembles in parallel. This is only used in multi-threaded compilations of Rosetta (compiled with extras=cxx11thread), and only when an ensemble-generating protocol is provided with the ensemble_generating_protocol option. A value of 0 means to use all available threads. In single-threaded builds, this must be set to 0 or 1. +- **ensemble_generating_protocol_repeats**: The number of times that the ensemble_generating_protocol is applied. This is the maximum number of structures in the ensemble (though the actual number may be smaller if the protocol contains filters or movers that can fail for some attempts). Only used if an ensemble-generating protocol is provided with the ensemble_generating_protocol option. Defaults to 1. +- **n_threads**: The number of threads to request for generating ensembles in parallel. This is only used in multi-threaded compilations of Rosetta (compiled with extras=cxx11thread), and only when an ensemble-generating protocol is provided with the ensemble_generating_protocol option. A value of 0 means to use all available threads. In single-threaded builds, this must be set to 0 or 1. Defaults to 1. NOTE THAT MULTI-THREADING IS HIGHLY EXPERIMENTAL AND LIKELY TO FAIL FOR MANY ENSEMBLE-GENERATING PROTOCOLS. When in doubt, leave this set to 1. - **use_additional_output_from_last_mover**: If true, this ensemble metric will use the additional output from the previous pose (assuming the previous pose generates multiple outputs) as the ensemble, analysing it and producing a report immediately. If false, then it will behave normally. False by default. -- **real_valued_metric**: The name of a real-valued simple metric defined previously. Required input. +- **real_valued_metric**: (REQUIRED) The name of a real-valued simple metric defined previously. Required input. --- diff --git a/scripting_documentation/RosettaScripts/xsd/filter_FragmentScoreFilter_type.md b/scripting_documentation/RosettaScripts/xsd/filter_FragmentScoreFilter_type.md index b556a2dfb..288cf53a7 100644 --- a/scripting_documentation/RosettaScripts/xsd/filter_FragmentScoreFilter_type.md +++ b/scripting_documentation/RosettaScripts/xsd/filter_FragmentScoreFilter_type.md @@ -13,7 +13,7 @@ Filter based on any score that can be calculated in fragment_picker. outputs_name="(pose &string;)" csblast="(&string;)" blast_pgp="(&string;)" placeholder_seqs="(&string;)" sparks-x="(&string;)" sparks-x_query="(&string;)" psipred="(&string;)" - vall_path="(/Users/vmulligan/rosetta_git_workingcopy/Rosetta/main/tools/doc_tools/../../database//sampling/vall.jul19.2011.gz &string;)" + vall_path="(/home/vikram/rosetta_devcopy/Rosetta/main/database//sampling/vall.jul19.2011.gz &string;)" frags_scoring_config="(&string;)" n_frags="(200 &non_negative_integer;)" n_candidates="(1000 &non_negative_integer;)" print_to_pdb="(false &xs:boolean;)" From 99146f77c5a8879577c9bb0c53b9b5d22c155908 Mon Sep 17 00:00:00 2001 From: "Vikram K. Mulligan" Date: Fri, 11 Mar 2022 11:58:15 -0500 Subject: [PATCH 25/25] Updating auto-generated docs. --- .../xsd/ensemble_metric_CentralTendency_type.md | 5 +++++ .../RosettaScripts/xsd/filter_EnsembleFilter_type.md | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/scripting_documentation/RosettaScripts/xsd/ensemble_metric_CentralTendency_type.md b/scripting_documentation/RosettaScripts/xsd/ensemble_metric_CentralTendency_type.md index 2aaf50613..6e5c2d553 100644 --- a/scripting_documentation/RosettaScripts/xsd/ensemble_metric_CentralTendency_type.md +++ b/scripting_documentation/RosettaScripts/xsd/ensemble_metric_CentralTendency_type.md @@ -5,6 +5,11 @@ _Autogenerated Tag Syntax Documentation:_ --- An ensemble metric that takes a real-valued simple metric, applies it to all poses in an ensemble, and calculates measures of central tendency (mean, median, mode) and other statistics about the distribution (standard deviation, standard error of the mean, min, max, range, etc.). Values that this ensemble metric returns are referred to in scripts as: mean, median, mode, stddev, stderr, min, max, and range. +References and author information for the CentralTendency ensemble metric: + +CentralTendencyEnsembleMetric SimpleMetric's author(s): +Vikram K. Mulligan, Systems Biology group, Center for Computational Biology, Flatiron Institute [vmulligan@flatironinstitute.org] (Created the ensemble metric framework and wote the CentralTendency ensemble metric.) + ```xml