Changelog

ASCENT v1.3.0

Released on 2024-02-02 - GitHub

DOI: 10.5281/zenodo.10608262

ASCENT v1.3.0 Release Notes

v1.2.2 -> v1.3.0: new features

  • extended framework to model two cuffs (stimulation and recording)
  • modeling a recording cuff will produce a single fiber action potential, and optionally a transmembrane current matrix, output file per fiber simulation
  • model.json now can additionally accept a list of cuff JSON objects in the "cuff" property
  • sim.json now contains an "active_recs" property for defining electrode weighting for recording cuffs
  • added analysis scripts to plot recorded single fiber and compound action potentials
  • added analysis script to import transmembrane current matrices and generate current templates
  • submit.py now checks for successful compilation of NEURON files

v1.2.2 -> v1.3.0: docs

  • added documentation for modeling neural recording and new JSON configuration properties
  • added documentation for using ASCENT on oSPARC
  • added refs for new papers using ASCENT

v1.2.2 -> v1.3.0: bug fixes

  • fixed error with coordinate handling of supersampled fibers
  • fixed bug where submit.py would fail if on windows and the user name started with an n

v1.2.2 -> v1.3.0: miscellaneous

  • upgraded to Python 3.10
  • upgraded pre-commit hooks
  • changed default dataset export behavior to include sectionwise 2D files

v1.3.0-rc.1: ASCENT 1.3.0-rc.1

Released on 2024-01-25 - GitHub

DOI: 10.5281/zenodo.10570215

ASCENT 1.3.0-rc.1 Release Notes

v1.2.2 -> v1.3.0-rc.1: new features

  • extended framework to model two cuffs (stimulation and recording)
  • modeling a recording cuff will produce a single fiber action potential, and optionally a transmembrane current matrix, output file per fiber simulation
  • model.json now can additionally accept a list of cuff JSON objects in the "cuff" property
  • sim.json now contains an "active_recs" property for defining electrode weighting for recording cuffs
  • added analysis scripts to plot recorded single fiber and compound action potentials
  • added analysis script to import transmembrane current matrices and generate current templates
  • submit.py now checks for successful compilation of NEURON files

v1.2.2 -> v1.3.0-rc.1: docs

  • added documentation for modeling neural recording and new JSON configuration properties
  • added documentation for using ASCENT on oSPARC
  • added refs for new papers using ASCENT

v1.2.2 -> v1.3.0-rc.1: bug fixes

  • fixed error with coordinate handling of supersampled fibers
  • fixed bug where submit.py would fail if on windows and the user name started with an n

v1.2.2 -> v1.3.0-rc.1: miscellaneous

  • upgraded to Python 3.10
  • upgraded pre-commit hooks
  • changed default dataset export behavior to include sectionwise 2D files

ASCENT v1.2.2

Released on 2023-08-29 - GitHub

DOI: 10.5281/zenodo.8298703

v1.2.1 -> v1.2.2: new features

  • tidy_samples and clean_samples now print the number of files removed

v1.2.1 -> v1.2.2: bugfixes

  • Fixed bug where explicit fibersets could cause a pipeline error
  • submit.py now properly checks for successful NEURON compilation
  • Fixed bug where windows usernames starting with “n” would incorrectly be interpreted as a newline character

v1.2.1 -> v1.2.2: misc.

  • Added pyupgrade to pre commit hooks
  • Added documentation for usage of ASCENT on oSPARC

ASCENT v1.2.1

Released on 2023-02-10 - GitHub

DOI: 10.5281/zenodo.7627427

v1.2.0 -> v1.2.1: new features

  • Adds check for input sample images

v1.2.0 -> v1.2.1: bugfixes

  • Fixed bug only present in 1.2.0 where all materials outside of the nerve (including the fill domain, cuff, contacts, etc.) would be assigned to "medium". NOTE: Please DO NOT USE v1.2.0.

v1.2.0 -> v1.2.1: misc.

  • Adds text to dataset README instructions for example README and example "Curator's Notes" for data upload to Pennsieve.
  • Adds more context and statements about the purpose of each step in the process of the dataset generating tool.

ASCENT v1.2.0

Released on 2023-02-07 - GitHub

DO NOT USE THIS RELEASE. PLEASE SEE 1.2.1.

DOI: 10.5281/zenodo.7614127

v1.1.5 -> v1.2.0: new features

  • Added tool for generating output datasets for publication per NIH SPARC dataset standards
  • Refactor weighting of potentials from different contacts to occur in python instead of java. Potentials are extracted for each basis which allows different contact weightings to occur within the Simulation class in Python
  • Added new v2 Livanova cuffs with more accurate parameterization based on CAD files from LivaNova
  • Slide plotting slide.plot() now has parameters for adding a scale bar
  • Added new Trace.ecd() method which calculates the effective circular diameter of a trace

v1.1.5 -> v1.2.0: bugfixes

  • Fixed bug where first time run of install script would fail
  • Fixed bug where env.json would not properly update from env_setup.py
  • Fixed bug where uniform density points would generate without respecting xy_trace_buffer
  • Fixes bugs in Tigerholm model (gbar_kdr -> gbar_kdrTiger, Ra 35.5 -> 35.4, celsiusT_kdr -> celsiusT_kdrTiger) in cFiberBuilder.hoc

v1.1.5 -> v1.2.0: misc.

  • Changed default indices in run,json template to zeros
  • Moved functionality of TemplateOutput class to Configurable
  • Updated requirements.txt to specify versions of shapely and open-cv
  • Added example UNIX example for environment variables (config/templates/unix_env.json).
  • Added notes to documentation on segmentation resources
  • Changed default plot saving location for examples/analysis scripts to out/analysis
  • Added error if no valid masks are found
  • Added warning if xy_trace_buffer is specified and xy_mode is “CENTROID”
  • Reworked slide validation to check for more types of errors and be simpler
  • Added error if a trace is too small for a given xy_trace_buffer
  • Jittered or offset fibers will now save offset values
  • Adds brief description of each cuff in the cuff's JSON file

ASCENT v1.1.5

Released on 2022-11-04 - GitHub

DOI: 10.5281/zenodo.7293412

v1.1.4 -> v1.1.5: bugfixes

  • Fixes broken docs

ASCENT v1.1.4

Released on 2022-11-04 - GitHub

DOI: 10.5281/zenodo.7292944

v1.1.3 -> v1.1.4: new features

  • Added new plotting scripts in examples/analysis
  • Reworked heatmaps to be more extensible; heatmap grids can now be generated by using a Seaborn FacetGrid
  • Added auto documentation of plotter module
  • Added implementation for schild94 fiber model

v1.1.3 -> v1.1.4: bugfixes

  • Updated validation logic for missing bases to re-solve all bases if an identifier manager record is not present
  • Fixed bug which caused an error when trying to run schild, sundt, or rattay fiber models
  • Changed waveforms with two phases such that now there is no 0 amplitude step between phases
  • Fixed bug where a biphasic uneven waveform would not generate correctly if the first phase was longer than the second

v1.1.3 -> v1.1.4: misc.

  • Archived some outdated plotting scripts in examples/analysis
  • Moved plotting scripts to “plotter” module
  • Updated some print statements to be more informative
  • Made linting improvements
  • Added additional linting and formatting checks to pre-commit
  • Added docstrings for all functions
  • Updated pyproject.toml with project metadata
  • Reworked Getting Started/Tutorial documentation
  • Added framework for unit testing
  • Simplified tutorial example and installation process
  • Removed Exceptionable class and migrated all exceptions to throw Python Exceptions and added custom exceptions where relevant
  • Query now requires indices to be of type int
  • Added new Model class to govern python side code related to model.json

ASCENT v1.1.3

Released on 2022-07-26 - GitHub

DOI: 10.5281/zenodo.6908578

v1.1.2 -> v1.1.3: new features

  • Java will now wait for the COMSOL server to start, rather than exiting if the first connection attempt fails
  • Added parameter in model.json which allows selection of a direct or iterative solver for COMSOL solution
  • submit.py is much less verbose, and now prints a progress bar. Access the old behavior with the --verbose flag
  • Added ability to auto-submit fibers after each run completes
  • submit.py will now proceed to the next run if an error occurs during submission
  • Added flag allowing submit.py to run on all runs in a submit directory
  • Failure during slide validation with now generate a debug plot

v1.1.2 -> v1.1.3: bugfixes

  • Fixed bug where plot parameter was not fully deprecated in fiberset.py
  • Fixed rare bug where the NEURON submission would not index properly
  • submit.py now checks that NEURON files were compiled, rather than just for the existence of the compilation folder
  • Query.threshold_data() now properly loops over supplied sims
  • ffmpeg should now properly install
  • Fixed rare bug where more than three contacts could result in out of order bases in the weighting of bases to produce NEURON Ve inputs
  • Fixed bug where mesh recycling logic always printed even when recycle meshes was set to false
  • Fixed fiber0 heatmaps plotting for "peanut" fascicles
  • Fixed bug where heatmaps did not properly return figure object

v1.1.2 -> v1.1.3: docs

  • Extensive restructure of documentation
  • Added documentation for "max_steps" in sim.json (used in threshold search)
  • Fixed documentation for solution and mesh order
  • JSON documentation examples now use config/templates/ to generate
  • Updated troubleshooting guide

v1.1.2 -> v1.1.3: misc.

  • Applied black and isort formatting
  • Replaced most os.system calls with subprocess module
  • COMSOL server now automatically logs in, without the need for the user to generate login info
  • Added pre-commit hooks
  • Added GitLab CI/CD
  • Removed "samples_path" parameter from sample.json
  • Archived LivaNova cuffs and ensured all cuff codes are unique
  • Specks in the input masks will now throw an error
  • Renamed "beta task" to "tutorial"
  • Removed src/neuron/submit.sh
  • Added error is "n_aps" is provided (not yet implemented)
  • The pipeline will now catch errors from Java and warn the user an issue occurred
  • Added descriptions to all cuff parameters
  • Changed default heatmaps type to "fibers"
  • Fixed bug where mesh and solution order were incorrectly applied

ASCENT v1.1.2

Released on 2022-05-10 - GitHub

DOI: 10.5281/zenodo.6537277

v1.1.1 -> v1.1.2: new features

  • Comsol run progress can now be printed to stdout or in a popup window
  • Added script to plot Ve, Ve 1st spatial differential, and 2nd spatial differential along fibers
  • Added new pre_solve breakpoint
  • Added new script to plot threshold error (for convergence studies)
  • Added model specification to scout sim
  • Added pseudonym capability to model, sim, sample, and run jsons
  • Added ability to store solution data for only the endoneurial geometry
  • Import_n_sims will now check for missing thresholds. New command line argument allows forcing import even if thresholds are missing
  • Added new command line argument to import_n_sims to remove export path directories after importing
  • New absolute offset parameter allows centering a Node of Ranvier at any arbitrary location along a nerve
  • Explicit fibersets are now stored in a sample level folder and indexed in sim.json
  • Added new command line arguments to submit.py to specify submission context, number of cpus to use, partition, job counts for array submission, and memory per slurm job
  • Submit.py will now generate a summary and ask for user confirmation before running
  • New threshold data function of Query class generates a pandas dataframe of threshold data. Updated examples/analysis/get_thresholds.py to use this function

v1.1.1 -> v1.1.2: bugfixes

  • Array submission of NEURON jobs with slurm will now properly submit even if the last index threshold is present
  • Removed excess contact overhang from U contact primitives
  • Fixed scout sim threshold usage (was absolute value, now will use sign)
  • Job arrays will now submit n jobs (rather than n-1)
  • Fixed check for n_dimensions in sim.json
  • Fixed bug where a missing threshold would cause all following fascicles to render as missing their threshold when plot mode == fiber0

v1.1.1 -> v1.1.2: misc.

  • Contact impedances in COMSOL are now stored in a node group
  • Reworked saving of comsol mesh and solution statistics to model.json
  • Removed some print statements
  • Random offset is now specified with the “offset”:”random” key value pair
  • Passing a single element list for a loopable sim parameter now throws an error
  • Shell scripts for NEURON submission now generate in their own subfolder
  • Extracting potentials now uses derivative recovery (results in more accurate potential extraction)
  • NEURON job keys now have headers
  • Mesh will now clear from bases after the solution is solved
  • List util will now report any json files with bad syntax
  • Added git attributes file

ASCENT v1.1.1

Released on 2022-01-27 - GitHub

DOI: 10.5281/zenodo.5910968

v1.1.0 -> v1.1.1: new features

  • New full_nerve_length parameter in sim.json allows warning suppression when min and max aren't specified for fiber z parameters
  • Break points can now be specified via command line
  • Added a command line argument allowing the pipeline to wait until a COMSOL license is available instead of exiting
  • ap_time_and_loc.py now has subplotting ability
  • Partial_fem params can now be controlled via command line arguments
  • Submission context can now be set to automatic, rather than the user manually specifying cluster or local
  • Implemented new sample mode “shrinkage_definition” allowing finer control over how histological shrinkage is corrected
  • Added -l,--list command to run which can display command line information about config files
  • Added config/system/slurm_params.json which can be edited to change default behavior for NEURON fiber submissions (cluster submissions only)
  • Added command line argument parsing to submit.py, including new -p flag (for specifying partition, cluster submit only)

v1.1.0 -> v1.1.1: bugfixes

  • User specified offset will now work correctly instead of erroring
  • If input masks are of type COMPILED the pipeline will now skip the fill holes step
  • submit.py will now ensure all output directories exist
  • Trace smoothing will now ensure that trace area does not change during smoothing
  • The pipeline will now solve for any missing bases, rather than continuing without doing so
  • Fixed several bugs related to fiber supersampling and significantly sped up supersampling code
  • Certain parameter combinations previously could cause the pipeline to skip generating epineurium, now epinerium will always be generated
  • Fiber0 mode in heatmaps script will now work in all cases
  • Supersampling using bases from other sims will now work properly
  • Supersampled bases will now extract potentials in the correct order
  • Fixed bug where rotation could cause deformation to break in some cases
  • Fascicle separation is now properly ensured when deform_ratio==0
  • Sample processing now ensures that post deformation area is equal to pre deformation area
  • Fixed bug where changing sample input resulted in incorrect geometry
  • Fixed bug where “peanut” fascicles would cause heatmap.py to error
  • Fixed bug where heatmaps fibers would be out of order when using explicitly defined fiber xy-locations
  • Fixed bug where pipeline sometimes would continue to Java before COMSOL server had started
  • Sped up array submission for cluster NEURON fiber sims
  • Fixed rare bug where supersampling would error if the if the modulus of the fiber length/internodal length was less than dz
  • Fixed bug where heatmaps would use improper comparison key
  • Fixed rare string comparison bug where submit.py could submit incorrect directories

v1.1.0 -> v1.1.1: misc.

  • Plots will now clear from memory after generating when plotting to a folder
  • Pipeline will now print sim number instead of sim index
  • If pre_java break point is enabled, the pipeline will now continue on to the remaining runs instead of exiting
  • Added error message when supersampled bases are not found
  • Java will now print out the model index at the beginning of each iteration
  • Errors during mesh match searching will now initatiate a remesh instead of exiting
  • Sim.json>fibers>z_parameters>longitudinally_centered removed, new behavior equal to old “True” behavior
  • Cuffs and configuration files for oSPARC guided mode added
  • Query will now error if no results are found during its Query.run()
  • Updates to many print statements for clarity
  • clean_samples.py and tidy_samples.py now ask for confirmation before running

ASCENT v1.1.0

Released on 2021-11-15 - GitHub

DOI: 10.5281/zenodo.5703269

v1.0.3 -> v1.1.0: new features
• Added runtime saving controls
• Added the ability to save action potential times at specified points along fibers
• Added the ability to generate plots in a folder instead of a popup window. Also added more options for plotting.
• Updated deformation logic to allow for deform_ratio=0 (no change to nerve trace but ensures fascicle separation)
• Installation will now generate directories required to set up ascent runs automatically
• Documentation is now hosted on Read the Docs, and part of the repo
• Added troubleshooting guide to documentation
• Added image preprocessing option to Sample
• Added fascicle and nerve smoothing options to Sample
• Added welcome message to run script

v1.0.3 -> v1.1.0: bug fixes
• Fixed issues with cuff rotation logic and added “fixed_point” parameter to cuff configuration files
• Modified print statements to be more informative
• Fixed bug where sample centering was slightly off center
• Sample.py now checks that only one object is present in the orientation mask
• Changed COMSOL interpolation curve type from “open” to “closed”
• Fixed perineurium generation for Mask Input Mode = “INNERS” to use effective circular diameter instead of average radius
• Added check to ensure all morphology masks have the same dimensions
• Fixed bug where submit would always check for scout sims if the parameter was present
• Fixed issue where super sampling would cause an error
• Fixed errors with installation script and added requirements.txt file for pip
• Will now check that the pipeline is running in the ASCENT conda environment
• Archived cuffs that are no longer needed

ASCENT v1.0.3

Released on 2021-09-10 - GitHub

DOI: 10.5281/zenodo.5500260

v1.0.2 -> v1.0.3: new features

v1.0.2 -> v1.0.3: bug fixes

  • Fixes bug ModelWrapper will always exit after string comparison (mistake was using "==" instead of ".equals()")

ASCENT v1.0.2

Released on 2021-09-01 - GitHub

DOI: 10.5281/zenodo.5365774

v1.0.1 -> v1.0.2: new features

  • Adds new control in Sample for defining the pixel/length ratio rather than using a segmented mask of the scale bar.
  • Exceptionable uses the file path to indicate error source rather than specifying explicitly in exceptions.json.
  • Adds functionality to represent nerve traces in COMSOL using interpolation curves, rather than being limited to CIRCLE.

v1.0.1 -> v1.0.2: bug fixes

  • Fixes bug for some inners in which offset (i.e., non-affine scaling out) created new traces from self-overlap.
  • Fixes bug in installation script for Windows.
  • Removed unused jsonReader.java class.

ASCENT v1.0.1

Released on 2021-08-05 - GitHub

DOI: 10.5281/zenodo.5163966

v1.0.0 -> v1.0.1: bug fixes

  • Corrects (x,y) locations of myelinated fibers in nerve cross section. If this code (i.e., v1.0.0) was used, delete the sims created (samples/<sample_index>/models/<model_index>/sims/) and re-run the pipeline.
  • Corrects error in populating cuff rotation and position in COMSOL from parameters in Model. The documentation says Double values are used (correct) rather than Integer values that were being used (incorrect).
  • Corrects control of waveform precision (print format) in writing to file.

ASCENT v1.0.0

Released on 2021-07-25 - GitHub

DOI: 10.5281/zenodo.5136631

See v1.0.1