\(\newcommand{\B}[1]{ {\bf #1} }\) \(\newcommand{\R}[1]{ {\rm #1} }\)
2024¶
View page sourceRelease Notes for 2024¶
mm-dd¶
12-26¶
See the heading Compression in the csv.fit documentation. This marks the completion of the Covariate Table Size wish list item.
12-25¶
Add the csv.covariate_both and change csv.same_covariate to csv.covariate_same .
12-23¶
Add
omegato the spline columns returned by csv.covariate_same .Use csv.covariate_same to reduce the number of splines returned by csv.covariate_spline (some dictionary key combinations return the same spline).
12-22¶
Add csv.covariate_same . This was used on 12-26 above, together with the last item under 12-20 below, to help complete the Covariate Table Size wish list item.
12-21¶
There was a bug in the
freeze_type option.
To be specific, if the freeze type was posterior ,
and continue_cascade was run staring after the freeze,
the freeze would not be in effect.
This was fixed by changing the get_freeze_dict
to use the node table instead of the job table to determine if a
covariate has been frozen.
12-20¶
The bilinear spline documentation was improved to include the fact that spline_dict is constant w.r.t x (y) for values of x (y) outside the limits of the grid.
Testing indicates that the condition above is true for scipy.RectBivariateSpline but its documentation is not clear on this. The bilinear routine was modified to ensure this condition.
If the function values are constant with respect to x (y) a linear interpolation in just y (just x) is used (as apposed to bilinear interpolation). In the special case where the function is constant in both x and y no interpolation is done and the value at one point is returned.
12-14¶
The csv.shock_cov example was extended to include the shock as both a relative and absolute covariate. When csv.fit covariate_reference was covariate.csv and absolute_covariates was non empty, absolute covariates might have non-zero reference. This has been fixed. In addition, the option_all documentation for absolute_covariates was corrected.
12-13¶
The cov_reference_table was added to the all node data base; see cov_reference Table . The csv.fit covariate_reference option enables one to choose different ways to set this table. See cov_reference Table for an example that directly sets this table. This completed the Covariate Reference Values wish list which was removed.
The
get_cov_referenceroutine was changed to com_cov_reference and its arguments were changed so that it could be called before the all_node database was created.old:
def get_cov_reference( all_node_database , fit_database , shift_node_id , split_reference_id = None )
new:
def com_cov_reference( option_all_table , split_reference_table , node_table , covariate_table , shift_node_id , split_reference_id = None, )
12-12¶
The create_all_node_db mulcov_freeze_table documentation had mulcov_freeze_table
["fit_node_name"]. This was replace by row["fit_node_name"]where row is an entry in the mulcov_freeze_table list.In the ref:create_all_node_db@omega_grid documentation, omega[
age] and omega[time] have been replaced by omega_grid[age] and omega_grid[time] .
11-20¶
The description of csv prior and posterior predictions was improved.
11-18¶
Add freeze_type to the option_fit.csv file. This completes the Freezing Covariate Multiplier wish list item which was removed from the wish list.
11-17¶
Add freeze_type to the option_all table.
11-07¶
Remove the Meta Regression wish list item because it can be accomplished using a meas_noise covariate multiplier on a covariate that changes with location. For example, the covariate could be one at the root location and smaller the further down the node tree a location is.
Add the Covariate Table Size entry to the wish list.
11-05¶
The Freezing Covariate Multipliers entry was added to the wish list.
The csv.fit avgint Table wish list entry was edited to include the
this.dbdatabase. In addition, a link was added from thedismod.dbavgint Table to the csv.fit avgint table entries.
10-06¶
The
pre_one_jobargument fit_database was changed to pre_database to emphasize the fact that it is a copy of the fit_database .The term
fit_node_databasewas replaced by fit_database because it not only determines the fit node but also the fit split reference value (sex in the csv module).The term
root_node_databasewas replaced by root_database and the file nameroot_node.dbwas changed toroot.dbfor the same reason.
10-03¶
The job table Summary and prior_only discussion were improved. In addition, the wish_list was modified in the following ways:
The See Priors for Each Fit item and the No Data item were removed because they have been completed.
The special csv version of Continue Cascade item and Retry Fit item were removed because continue_cascade seems be working fine for these purposes.
The Estimate Standard Deviations item was removed because one can do this using the posterior samples.
The avgint Table and csv.fit avgint Table items were separated.
The covariate.csv item was changed to mention that there is only one rate_eff_cov table and include a link to the corresponding dismod_at documentation.
The max_fit item was changed to discuss leaf nodes with lots of data.
09-28¶
The fit_one_job log table
documentation was improved.
In addition, fit_one_job was modified to initialize the log table as empty.
This will make a difference if one fit aborts and then
another fit is started.
09-26¶
The create_job_table documentation was improved; e.g., see its Summary .
There was a bug in create_job_table whereby jobs that were prior_only was true would have children in the job table. This has been fixed.
There was a similar bug in check_log that caused it to check the logs for jobs that only had priors; i.e., were not fit. The error messages for both bugs ended with:
sqlite3.DatabaseError: file is not a database The *fit_goal_set* arguments to check_log was replaced by the :ref:`check_log@job_table` and the bug was fixed.
09-24¶
The create_shift_db routine is used to create the priors for child jobs (given the fit for the parent job). There was a bug in this routine whereby it was possible for the mean of the age and time differences to not satisfy the constraint on the age and time differences. The corresponding error message was:
dismod_at error: mean greater than upper limit
This has been fixed.
09-14¶
There was an error in csv.predict when start_job_name
did not correspond to the root node and max_job_depth
was not None . The corresponding error message was of the form:
File "... ancestor_fit.py", line 123, in ancestor_fit
messages = at_cascade_log_dict[job_name]
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
KeyError: ...
This has been fixed.
09-10¶
The comments under the headings data_in.csv in the csv.root_node_sex example where improved. In addition, the
A discussion about variation in the priors after freezing the covariate multipliers was added to csv.root_node_sex; see root_mulcov_prior_constant .
Some occurrences of the following python warnings (which were inside comments) were fixed:
SyntaxWarning: invalid escape sequence
09-09¶
The development and install tools were extended to work well on
MacOS with homebrew.
The versions between 08-25 and 09-08
were not tested and may have trouble on other systems.
(There was a problem with the new bin/grep_and_sed.sh script.)
08-22¶
The example
csv.start_node_sex.pywas moved to csv.root_node_sex , the computation ofhaqi_avgwas corrected, and indent level of the following line was corrected:sample_list.append(row)
API Change The csv.predict routine now includes priors even when posteriors are also available; see the discussion about priors for the csv.predict output files.
Some of the example and tests had to be changed because the number of rows in the csv.predict Output files is now larger.
08-21¶
There was a problem in the parallel predictions when start_job_name was not None. The logs were only being checked starting at the start job instead of the root node. This has been fixed.
08-18¶
07-30¶
It the IHME cluster is reporting errors like
SQL error: database is locked. SQL command: insert into log .
This seems to happened at random times and is possibly due to
an instability in the cluster file system.
In the hope that it may reduce the number of times this occurs,
the fit_one_job routine has been changed so
that it does not leave a database connection open for long periods of time
when the connection is not being used.
07-23¶
Fix bug in map_shared when not running on macOS or in sandbox (introduced on 07-12).
Include the mapped name in the clear_shared output, when the mapped name is not the same as the shared name. Currently the mapped name and the shared not are the same except for Darwin (i.e. macOS) systems.
See the heading Version is the cascade_root_node documentation.
07-13¶
Change the main program in all the examples and tests so that it only executes
when __name__ is equal to '__main__' . This was another change
necessary for the macOS system (when using the python multiprocessing package).
07-12¶
Add the map_shared routine so that at_cascade runs on macOS.
06-24¶
Remove the Measurement Value Effects wish list item (it was completed on 06-23 by adding the zero_meas_value option).
06-23¶
Add the zero_meas_value prediction option. Note that this requires dismod_at version 2024.6.23 or later.
There was a problem computing the standard deviations of variables that have priors where eta is not None. This has been fixed. (These variables are simulated in log space and negative values could cause this transformation to fail.)
06-18¶
Add the Measurement Value Effects wish list item. (it was completed on 06-23 by adding the zero_meas_value option).
06-12¶
Change
csv.pre_user_csvto csv.pre_user .Some of the at_cascade.csv routine were missing
at_cascade.csvat the beginning of their prototype; e.g., see the Prototype forcsv.pre_user.The csv.predict documentation was improved by adding a discussion of the Input Prediction Files .
06-10¶
If the age time grid in covariate.csv was not the same for all nodes, the error message would print:
node_name = {node_name}, sex = {sex} The text ``{node_name}`` and ``{sex}`` are now replace by the name of the node and the sex for which the age time grid is different.Fix a bug in the csv.break_fit_pred example. To be specific, the python source code:
p_predict[sex] = multiprocessing.Process( target = at_cascade.csv.predict, args = args, ) p_predict[sex].start() was replaced by the source code:: key = (node_name, sex) p_predict[key] = multiprocessing.Process( target = at_cascade.csv.predict, args = args, ) p_predict[key].start()
05-30¶
The no_ode_fit option was added to the csv.fit.
05-25¶
The cascade_root_node routine now puts
dismod_at and at_cascade version numbers at the beginning of
the log table in the dismod.db database corresponding to the root node.
This requires dismod_at-2024.5.25 or later so that
the command dismod_at --version just prints its version number
to standard output.
05-24¶
The cascade was setting omega to zero for all nodes. Note that this does not affect prevalence, but it does affect some other integrands; e.g., mtstandard and relrisk. This new relrisk example (which now passes its test) checks for this bug.
05-18¶
The csv.population example was changed to better test the population weighting. In addition, a csv.fit bug was fixed in the population weighting and all the covariate values for data with sex equal to both (the male instead of both values were being used).
05-17¶
The csv.population example was changed to include population weighting for data that corresponds to Both Sexes
05-16¶
The root_node_name item was removed from the wish list because changing the option_fit.csv file is a good way to control this. The avgint Table item was added to the wish list. The covariate.csv item was moved so that it is part of the csv sub section of the wish list.
The documentation now mentions that the csv module is can be used as an Interface Example for at_cascade.
The csv.fit routine now checks for the proper value of data_id in each row of the data_in.csv file.
05-15¶
The at_cascade version numbers have not been advancing since version 2024.3.26. This has been fixed and the version numbers from 2024.5.15 onward should be correct.
The root_node_sex option was added to the csv.fit routine. The new csv.root_node_sex example was uses this option, and the root_node_name option.
Add the Covariate Reference Values wish list item, which was completed on 12-13 .
05-11¶
Change the csv.coverage example from testing predictions of Sincidence to testing predictions of prevalence. This tests a non-linear function of the model variable iota.
The csv.simulate routine was not using its random_seed properly. This has been fixed and only affected the meas_value column of the data_sim.csv output file.
05-10¶
Add the csv.coverage example.
05-06¶
Use the new extract_avgint routine to simplify the examples .
Move csv.predict_xam to csv.prevalence2iota (better name for this example).
Change the continue_cascade example so that it checks (as part of the at_cascade testing) both the one and two fit goal set cases.
05-05¶
There was a bug in the csv.break_fit_pred example (starting with 03-25 below) that caused an assert. This has been fixed.
Use the new empty_directory routine to simplify the examples .
05-03¶
A discussion of some subtle issues related to population weighting was added. In addition, the csv.population example was improved as followed:
The ode_step_size was made smaller. so that the relative error tolerance could be changed from 1e-2 to 1e-5 .
The absolute covariate setting was removed from option_fit.csv .
Creating the fit_predict.csv file was moved to the csv.predict routine on 2023-04-09 . Some old documentation for fit_predict.csv, that was left under csv.fit, was removed.
03-25¶
The fit_goal.csv file has been changed in the following ways: It can have nodes that are not descendants of the root node. If the set of specified nodes is empty, the entire set of node is used.
The shared_unique argument was added to the continue_cascade routine. This makes it possible have two continue_cascade call running at the same time and starting at the same (node,sex) pair.
The breakup_computation example was modified to demonstrate (and test) running two continues form the same starting (node, sex) pair.
The shared memory names were shortened. To be specific,
_fitand_prewere removed. This was done because a fit and a csv.predict cannot be run starting at the (node,sex) pair and at the same time.
03-20¶
The comments for the csv fit and predict case where breakup_computation is true were improved.
03-12¶
Sometimes when running csv.fit with a large value for max_number_cpu (12 or more), and when a region had a lot of sub-regions (e.g. 47), one or more of the fit processes would never finish there would be no trace.out for the corresponding sex, region. Some multi-processing time out limits were added. This, combined with the advancing to dismod_at-2024.3.10, seems to have fixed this problem.
03-08¶
Population weighting of measurement values was added to csv.fit using the population column of the covariate.csv file.
03-07¶
If there was a split_reference_table , refit_split was false, and fit_database in continue_cascade was the node just before the split, continue_cascade would crash with a python dictionary key error. For example, this error occurred when using continue_cascade after csv.fit and continuing from the root node . This has been fixed.
02-20¶
There was a bug in check_log.py that could cause the following assert:
TypeError: '<=' not supported between instances of 'NoneType' and 'int'
This has been fixed.
02-09¶
The csv.fit and csv.predict were changed so that fit_goal.csv can have nodes that are not descendant of the root node. This allows one to start a fit at any node without having to change fit_goal.csv.
Some discussion, that explains why you may want to change root_node_name , was added.
Add the root_node_name` and root_ode_sex items to the wish list.
02-06¶
Remove the Predictions wish list item because it was completed on 2023, 12-22 .
Add the root_node_sex item to the wish list (it was completed on 2024-05-13).
02-02¶
There seems to be a problem that can causes csv.predict to crash; see issue13. Instead of crashing, the program now reports what predictions are missing with a message of the form:
where file_name ends with _predict.csv .
In addition, predict error reporting of the following form was added:
This may help us understand when (and or why) this is happening.
02-01¶
An undefined variable error would occur if and option value was empty in option_fit.csv or option_predict.csv . This has been fixed and the default value is now used when an option value is empty.
01-30¶
Add a 2DO comment as part of csv.fit.ode_method.no_ode.
01-28¶
API Change
There was a bug (that has been fixed) in the way multiprocessing Manger used; see issue13978. This would cause the following error on some systems:
OSError: [Errno 16] Device or resource busy: '.nfs ...
Change the following names, note that predict_all and process_target were inside predict.py.
Old Name |
New Name |
|---|---|
run_parallel |
|
run_parallel_job |
fit_one_process |
run_one_job |
|
predict:predict_all |
|
predict:process_target |
|
predict_one |
The text
_fitwas added to the python shared memory used for fitting. To be specific, the new shared memory names are:shared_memory_prefix_fit_job_name_number_cpu_inuseshared_memory_prefix_fit_job_name_job_statusThe following python shared memory is used by csv.predict :
shared_memory_prefix_pre_job_name_job_statusThe clear_shared routine was modified so that it works for the new shared memory names above.
The
bin/check_all.shscript was modified so that it skips building the documentation (and hence works) whenxrstis not available on the system.
01-17¶
Add a way to determine the at_cascade.version .
Add timing information to the csv.predict output.