VTS Versions Save

Virtual Tissue Simulator

Version_10.0

6 months ago

VTS Library NuGet Package 10.0

Visit nuget.org for information on our latest NuGet package.

Release Notes

  • Updated NuGet packages
  • Removed dotnet standard from solution and retargeted remaining project to .Net 6.0 (Issue #76)
  • Started scripting project for .NET Polyglot Notebook and Jupyter Notebook samples (Issue #121) - currently C# scripts that parallel MATLAB vts_solver_demo.m and vts_mc_demo.m coded
  • Updated BuildTestReleaseMCCL powershell script to run MCCL unit tests
  • Replaced Moq with NSubstitute (Issue #82)
  • Updated RangeOfT to implement IEnumerable<T> directly, tagged obsolete code for removal in the future (Issue #90)
  • Added files for creating the code documentation on GitHub pages
  • Created GitHub actions to build Vts.sln and run Vts.Library.sln Tests upon PR submission (Issue #100)
  • Started to publish static web hosted documentation to GitHub pages (Issue #92)
  • Added unit tests to increase code coverage and cleaned up code (Issues #102, #105)

Monte Carlo code changes:

  • Removed unused DirectionalArbitrarySource
  • Added DirectionalImageSource that can be used to initialize source from bitmap
  • Added SlantedRecessedFiberDetector for fiber detectors that are in an angle above tissue surface, and unit tests (Issue #103)
  • Fixed bugs, security issues and maintenance issues in MCCL and the Monte Carlo Post Processor (MCPP) (Issues #79, #107)
  • Renamed VirtualBoundaryType Dosimetry to InternalSurface to be more general
  • Added unit tests to increase code coverage and cleaned up code (Issues #102, #105, #110)
  • Corrected bug found in ReflectedMTOfXAndYAndSubregionHistDetector and TransmittedMTOfXAndYAndSubregionHistDetector having to do with serialization when Y.Count is not equal to X.Count (Issue #115)

Documentation for the library can be accessed here

VTS MATLAB Package 10.0

NOTE: This version of the MATLAB interoperability only works with MATLAB R2022b and higher. If you have a previous version of MATLAB, use one of the previous releases.

Use the MATLAB function dotnetenv to switch between environments dotnetenv("core") or dotnetenv("framework") - this version uses "core"

Download: VTS_MATLAB_v10.0.0.zip

Release Notes

See above

This release contains sample scripts for the following:

  • using MATLAB to call the solvers in the VTS Libraries.
  • using MATLAB to call the Monte Carlo tools in the VTS Libraries.

These files will only work for MATLAB on Windows.

Requirements: On Windows: .NET 6.0 - download here MATLAB (R2022b and higher)

Version_9.1

9 months ago

VTS Library NuGet Package 9.1

Visit nuget.org for information on our latest NuGet package.

Release Notes

  • Fixed bugs and code vulnerabilities identified by SonarCloud which includes correctly documenting parameters for each method, removing unused variables, and renaming misspelled properties.
  • Increased unit test code coverage.
  • Updated NuGet packages.

MATLAB interop changes:

  • Updated the documentation in the html folder.
  • Updated the PowerShell command files for the MATLAB interop using version 2022b.

Monte Carlo code changes:

  • For the fluorescent emission sources:
    • omitted use of the boundary bins from the absorbed energy detector results when generating the source.
    • updated how to determine the center of a cylindrical voxel with respect to rho.
    • added a clarification message to user when specifying a "uniform" sampling of the fluorescent voxels that states that the individual voxel results cannot be added together.
    • modified and added unit tests to validate these changes
  • Fixed code so that transmitted detectors can be post-processed from a database.
  • Added the units tests for MCCL and MCPP to BuildTestRelease.ps1.

For the MSDN style developer documentation, download: VtsDocumentation.chm

VTS MATLAB Package 9.1

NOTE: This version of the MATLAB interoperability only works with MATLAB R2022b and higher. If you have a previous version of MATLAB, use one of the previous releases.

Use the MATLAB function dotnetenv to switch between environments dotnetenv("core") or dotnetenv("framework") - this version uses "core"

Download: VTS_MATLAB_v9.1.0.zip

Release Notes

See above

This release contains sample scripts for the following:

  • using MATLAB to call the solvers in the VTS Libraries.
  • using MATLAB to call the Monte Carlo tools in the VTS Libraries.

These files will only work for MATLAB on Windows.

Requirements: On Windows: .NET 6.0 - download here MATLAB (R2022b and higher)

Version_9.0

1 year ago

VTS Library NuGet Package 9.0

Visit nuget.org for information on our latest NuGet package.

Release Notes

  • Removed .NET Framework 4.8 from library: .NET 6.0 now has support for MATLAB interoperability

  • Updated all NuGet packages

  • VTS code changes:

    • Increased unit test code coverage for ComputationalFactory class to 100%
    • Fixed a bug in two-layer SDA solution for Fluence(rho,z,ft) when the independent axis variable is ft (revealed by expanded unit test coverage)
  • Code clean up to improve readability and maintainability:

    • Removed unused tools folder that contained 7zip and nunit
    • Removed unused local variables
    • Modified variable specifications to use "var" instead of type
    • Make variables "private" and "readonly" where applicable
    • Reduce nesting of "if" statements by inverting the "if" when possible
    • For switch statements based on an Enum, included all cases of the Enum
    • Renamed local variables to longer more descriptive names
    • Removed commented out code and obsolete comments
    • Corrected erroneous comments
  • Monte Carlo code changes:

    • Bug fixed in perturbation Monte Carlo transmittance database specification
    • Modified SimulationStatistics to not tally to NumberOfPhotonsOutTopOfTissue if photon killed by Russian Roulette on collision prior to exit
    • Found continuation line in loadMCResults.m that did not have a "..." at the end of it

For the MSDN style developer documentation, download: VtsDocumentation.chm

VTS MATLAB Package 9.0

NOTE: This version of the MATLAB interoperability only works with MATLAB R2022b and higher. If you have a previous version of MATLAB, use one of the previous releases.

Use the MATLAB function dotnetenv to switch between environments dotnetenv("core") or dotnetenv("framework") - this version uses "core"

Download: VTS_MATLAB_v9.0.0.zip

Release Notes

See above

This release contains sample scripts for the following:

  • using MATLAB to call the solvers in the VTS Libraries.
  • using MATLAB to call the Monte Carlo tools in the VTS Libraries.

These files will only work for MATLAB on Windows.

Requirements: On Windows: .NET 6.0 - download here MATLAB (R2022b and higher)

Version_8.0

1 year ago

VTS Library NuGet Package 8.0

Visit nuget.org for information on our latest NuGet package.

Release Notes

  • Upgraded to .NET 6.0
  • Updated NuGet packages
  • Updated package, license and readme files and removed obsolete ones.
  • Cleaned up code by:
    • Reorganizing folders to match namespaces.
    • Renaming unit test classes to match class tested plus "Tests".
  • Facilitated improved source code documentation by:
    • Adding missing XML comments and clarifying existing comments.
    • Adding namespace documentation to the solution.
    • Spell checking comments.
    • Correcting references to algorithms employed in code.
  • Removed obsolete BinaryFormatter method which resulted in removing the following public static methods:
    • ReadFromBinary<T>(string filename)
    • ReadFromBinaryInResources<T>(string filename, string projectName)
    • WriteToBinary<T>(this T myObject, string filename)
    • ReadFromBinaryStream<T>(Stream s)
    • WriteToBinaryStream<T>(T myObject, Stream s)
  • Monte Carlo additions:
    • Added a paramsweep option for the random number generator Seed.
    • Added new ROfFxAndMaxDepth detector that determines reflectance as a function of spatial-frequency and maximum depth of penetration.

For the MSDN style developer documentation, download: VtsDocumentation.chm

VTS MATLAB Package 8.0 Beta

Download: VTS_MATLAB_v8.0.0Beta.zip

Release Notes

See above

This release contains sample scripts for the following:

  • using MATLAB to call the solvers in the VTS Libraries.
  • using MATLAB to call the Monte Carlo tools in the VTS Libraries.

These files will only work for MATLAB on Windows.

Requirements: On Windows: .NET Framework 4.8 - download here MATLAB (R2019b and higher)

Version_7.0

1 year ago

VTS Library NuGet Package 7.0

Visit nuget.org for information on our latest NuGet package.

Release Notes

  • Added post-processing capabilities for transmitted photons. This includes the ability to generate a database for transmitted photons, then post-process this database quickly to generate any transmittance detector result. In addition, perturbation Monte Carlo can be performed for transmitted photons. The transmittance database can be generated simultaneously with database for reflected photons, i.e. the same infile can be used.
  • Cleaned up toolbox of methods for Monte Carlo source generation. Clarified parameter names and descriptions.
  • Added capability to Monte Carlo source CircularAngledFromCircle to have the circle in air be tilted specified by a new CircleInAirRotation vector.
  • Replaced the depreciated package, Unity and replaced it with Microsoft's Dependency Injection.
  • Updated all NuGet packages

For the MSDN style developer documentation, download: VtsDocumentation.chm

VTS MATLAB Package 7.0 Beta

Download: VTS_MATLAB_v7.0.0Beta.zip

Release Notes

See above

This release contains sample scripts for the following:

  • using MATLAB to call the solvers in the VTS Libraries.
  • using MATLAB to call the Monte Carlo tools in the VTS Libraries.

These files will only work for MATLAB on Windows.

Requirements: On Windows: .NET Framework 4.8 - download here MATLAB (R2019b and higher)

Version_6.0

2 years ago

VTS Library NuGet Package 6.0

Visit nuget.org for information on our latest NuGet package.

Release Notes

General:

  • Separated the FemModeling namespace into a separate library called Vts.FemModeling, contact us if you need this library
  • Updated the library and test projects to be multi-targeted (.NET Standard 2.1, .NET Framework 4.8 and .NET Core 3.1)

Code Cleanup:

  • Added XML comments to all public classes, Properties and methods
  • Added appropriate getters and setters to all properties
  • Added "readonly" to variables that are readonly

Bug fixes:

  • Modeling Spectroscopy SpectralConverter: fixed regular expression for wavelength unit
  • Monte Carlo AbsorptionWeightingMethods: pMCAbsorpContinuous method check should be that the denominator of the pMC weight is not 0
  • Monte Carlo ROfFxAndAngle did not have numerical aperture (NA) properties and associated code to determine if photon within NA
  • Monte Carlo SourceToolbox UpdateDirectionAfterGivenFlags for BeamRotationFromInwardNormal processing
  • Monte Carlo PostProccsorInputValidation: input file existence code correction
  • Monte Carlo BoundingCylinderTissueINputValidation: validation checks were in an order that one validation would never be reached
  • Monte Carlo SimulationInputExtensions: when paramsweep is the SourceInput x,y,z Position and for d1 when the TissueInput is not a MultiLayerTissueInput
  • loadMCResults.m: FluenceOfXAndYAndZAndStartingXAndYCount dimensions were switched

VTS MATLAB Package 6.0 Beta

Download: VTS_MATLAB_v6.0.0Beta.zip

Release Notes

This release contains sample scripts for the following:

  • using MATLAB to call the solvers in the VTS Libraries.
  • using MATLAB to call the Monte Carlo tools in the VTS Libraries.

These files will only work for MATLAB on Windows.

Requirements: On Windows: .NET Framework 4.8 - download here MATLAB (R2019b and higher)

Version_5.0

2 years ago

VTS Library NuGet Package 5.0

Visit nuget.org for information on our latest NuGet package.

Release Notes

  • Updated the library versions to .NET Framework 4.8 and .NET Standard 2.1
  • Simplified the SecondMoment calculation for Complex boundary detectors using cos^2+sin^2=1, expanded the code comments to describe this, and added more comments to the Complex history tallies which don't calculate SecondMoment until the photon has exited.

VTS MATLAB Package 5.0 Beta

Download: VTS_MATLAB_v5.0.0Beta.zip

Release Notes

Updated the library to .NET Framework 4.8

This release contains sample scripts for the following:

  • using MATLAB to call the solvers in the VTS Libraries.
  • using MATLAB to call the Monte Carlo tools in the VTS Libraries.

These files will only work for MATLAB on Windows.

Requirements: On Windows: .NET Framework 4.8 - download here MATLAB (R2019b and higher)

Version_4.11

2 years ago

VTS Library NuGet Package 4.11

Visit nuget.org for information on our latest NuGet package.

Release Notes

Sources:

  • Added circular sources such that the direction of rays are determined by a point or sampling a circle at an elevated height. These are different from DirectionalCircularSource because this source determines angle based on rotation of the principal axis and/or rotation about the inward normal by theta and phi.
  • Added line sources such that the direction of rays are determine from sampling a line at an elevated height.
  • Fixed bugs found in CylindricalFiber and Tubular sources.
  • Fixed SourceFlags in SurfaceEmittingSpherical sources.

Detectors:

  • Corrected second moment calculation for total absorbance, ATotalDetector.
  • Modified Photon.cs so that Continuous Absorption Weighting can be used to calculate ATotalDetector.
  • Added ROfRhoAndMaxDepth, ROfXAndYAndMaxDepth and associated pMCRofRhoAndMaxDepth and pMCROfXAndYAndMaxDepth and unit tests: these detectors take note of the deepest depth a photon attained before exiting detector.
  • Added FluenceOfXAndYAndZAndStartingXAndY: this detector determines fluence but takes note of the starting x-y bin the photon started in.
  • Added ROfXAndYAndThetaAndPhi: this detector determines reflectance as a function of Cartesian coordinates the exiting direction in theta and phi bins.
  • Added ROfRhoRecessed, ROfXAndYRecessed, ROfRhoAndMaxDepthRecessed, ROfXAndYAndMaxDepthRecessed, pMCROfRhoRecessed and pMCROfRhoAndTimeRecessed to tally the photon in air at a specified height above the tissue.

Parallel processing:

  • Added new ParallelMonteCarloSimulation class and made major changes to MonteCarloSimulation class to enable parallel processing and unit tests to verify these changes. The major changes included code clean up so that Properties and local variables were named appropriately and overall organization of software is per our coding standards.
  • Ensured that the parallel code did not share local variables across multiple threads which would impact results and timing.
  • Ported DynamicCreatorMersenneTwister from C to C# to enable selecting subsequences from the original MersenneTwister

VTS MATLAB Package 4.11 Beta

Download: VTS_MATLAB_v4.11.0Beta.zip

Release Notes

  • Updated all the NuGet packages

This release contains sample scripts for the following:

  • using MATLAB to call the solvers in the VTS Libraries.
  • using MATLAB to call the Monte Carlo tools in the VTS Libraries.

These files will only work for MATLAB on Windows.

Requirements: On Windows: .NET Framework 4.6.1 - download here MATLAB (R2011b and higher)

Version_4.10

3 years ago

Monte Carlo Command Line Application 5.0

The MCCL is now a .NET Core application and has moved to a separate repository and the releases can be found here: MCCL Releases

For a list of capabilities and details about the implementation go here.

VTS MATLAB Package 4.10 Beta

Download: VTS_MATLAB_v4.10.0Beta.zip

Release Notes

  • Updated all the NuGet packages

This release contains sample scripts for the following:

  • using MATLAB to call the solvers in the VTS Libraries.
  • using MATLAB to call the Monte Carlo tools in the VTS Libraries.

These files will only work for MATLAB on Windows.

Requirements: On Windows: .NET Framework 4.6.1 - download here MATLAB (R2011b and higher)

Version_4.9

4 years ago

Monte Carlo Command Line Application 4.9 Beta

Download: MC_v4.9.0Beta.zip

Release Notes

  • Updated all the NuGet packages
  • Added ROfFxAndAngle, FluenceOfXAndYAndZAndTime and pMCROfXAndY detectors, unit tests and added code to load_results_script.m and loadMCResults.m to process them
  • Added ability for the photon to start with weight other than 1
  • Added fluorescence source capability based on the absorbed energy generated from a prior run. This included FluorescentEmissionAOfXAndYAndZSource, AOfXAndYAndZLoader and ability to specify whether the photon is a) UNIF: started uniformly throughout absorbed energy region of tissue with weight equal to absorbed energy in that region, or b) CDF: started spatially according to a cumulative distribution function determined from the absorbed energy map of the fluorescent region and weight 1. Verified both methods provide statistically equivalent results.
  • Excised code to determine if a photon ray intersects an infinite cylinder so that it could be used for cylinders with orientations along any axis
  • Added ability to define bounding tissue region that creates a lateral border around tissue and related detector to tally total absorbed energy in that bounding volume, ATotalBoundingVolumeDetector. Added CaplessCylinderTissueRegion to help in definition of bounding tissue region.
  • Renamed TallyDetails IsDosimetryTally to IsInternalSurfaceTally to be more generalized
  • Added unit tests for reflectance results that are a function of wavelength and two other independent variables, e.g. rho, time, fx, ft, so that it is clear how to unpack the single dimensioned return
  • In load_results_script.m, found a bug in the calculation of total fluence and total radiance for those detectors that have theta angle dependence. Now total fluence/radiance for all fluence/radiance detectors calculate the same value.

For a list of capabilities and details about the implementation go to the Conventional Monte Carlo page on our Education site.

To get a list of parameters and usage, type "mc help" at the command line.

Requirements: On Windows: .NET Framework 4.6.1 - download here On Linux and Mac: Mono 5.14.0 - download here

Useful Tools: JSON Editor online - for editing the JSON input files, visit www.jsoneditoronline.org

VTS MATLAB Package 4.9 Beta

Download: VTS_MATLAB_v4.9.0Beta.zip

Release Notes

  • Updated all the NuGet packages

This release contains sample scripts for the following:

  • using MATLAB to call the solvers in the VTS Libraries.
  • using MATLAB to call the Monte Carlo tools in the VTS Libraries.

These files will only work for MATLAB on Windows.

Requirements: On Windows: .NET Framework 4.6.1 - download here MATLAB (R2011b and higher)