@@ -57,8 +57,12 @@ def write_observable_df(df: pd.DataFrame, filename: str) -> None:
5757 df .to_csv (fh , sep = '\t ' , index = True )
5858
5959
60- def get_output_parameters (observable_df : pd .DataFrame ,
61- sbml_model : libsbml .Model ) -> List [str ]:
60+ def get_output_parameters (
61+ observable_df : pd .DataFrame ,
62+ sbml_model : libsbml .Model ,
63+ observables : bool = True ,
64+ noise : bool = True ,
65+ ) -> List [str ]:
6266 """Get output parameters
6367
6468 Returns IDs of parameters used in observable and noise formulas that are
@@ -67,12 +71,16 @@ def get_output_parameters(observable_df: pd.DataFrame,
6771 Arguments:
6872 observable_df: PEtab observable table
6973 sbml_model: SBML model
74+ observables: Include parameters from observableFormulas
75+ noise: Include parameters from noiseFormulas
7076
7177 Returns:
7278 List of output parameter IDs
7379 """
74- formulas = list (observable_df [OBSERVABLE_FORMULA ])
75- if NOISE_FORMULA in observable_df :
80+ formulas = []
81+ if observables :
82+ formulas .extend (observable_df [OBSERVABLE_FORMULA ])
83+ if noise and NOISE_FORMULA in observable_df :
7684 formulas .extend (observable_df [NOISE_FORMULA ])
7785 output_parameters = OrderedDict ()
7886
@@ -125,12 +133,18 @@ def get_formula_placeholders(formula_string: str, observable_id: str,
125133 return placeholders
126134
127135
128- def get_placeholders (observable_df : pd .DataFrame ) -> List [str ]:
136+ def get_placeholders (
137+ observable_df : pd .DataFrame ,
138+ observables : bool = True ,
139+ noise : bool = True ,
140+ ) -> List [str ]:
129141 """Get all placeholder parameters from observable table observableFormulas
130142 and noiseFormulas
131143
132144 Arguments:
133145 observable_df: PEtab observable table
146+ observables: Include parameters from observableFormulas
147+ noise: Include parameters from noiseFormulas
134148
135149 Returns:
136150 List of placeholder parameters from observable table observableFormulas
@@ -139,11 +153,19 @@ def get_placeholders(observable_df: pd.DataFrame) -> List[str]:
139153
140154 # collect placeholder parameters overwritten by
141155 # {observable,noise}Parameters
156+ placeholder_types = []
157+ formula_columns = []
158+ if observables :
159+ placeholder_types .append ('observable' )
160+ formula_columns .append (OBSERVABLE_FORMULA )
161+ if noise :
162+ placeholder_types .append ('noise' )
163+ formula_columns .append (NOISE_FORMULA )
164+
142165 placeholders = []
143166 for _ , row in observable_df .iterrows ():
144167 for placeholder_type , formula_column \
145- in zip (['observable' , 'noise' ],
146- [OBSERVABLE_FORMULA , NOISE_FORMULA ]):
168+ in zip (placeholder_types , formula_columns ):
147169 if formula_column not in row :
148170 continue
149171
0 commit comments