diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dedb491..080561b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -64,8 +64,8 @@ jobs: - run: | julia --project=docs -e ' using Documenter: doctest - using CICOCore - doctest(CICOCore)' # change MYPACKAGE to the name of your package + using CICOBase + doctest(CICOBase)' # change MYPACKAGE to the name of your package - run: julia --project=docs docs/make.jl env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/Project.toml b/Project.toml index f8c5532..472e95b 100644 --- a/Project.toml +++ b/Project.toml @@ -1,10 +1,10 @@ -name = "CICOCore" +name = "CICOBase" uuid = "33444335-3134-4342-4659-594331344435" keywords = ["package", "identifiability", "modeling"] license = "MIT" desc = "practical identifiability analysis and confidence intervals evaluation" authors = ["borisov ", "metelkin "] -repo-url = "https://github.com/insysbio/CICOCore.jl" +repo-url = "https://github.com/insysbio/CICOBase.jl" version = "0.5.2" [deps] diff --git a/README.md b/README.md index e691d33..b2d1796 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ # CICO - Confidence Intervals by Constrained Optimization -[![Documentation](https://img.shields.io/badge/docs-latest-blue.svg)](https://insysbio.github.io/CICOCore.jl/latest) -[![Build status](https://github.com/insysbio/CICOCore.jl/workflows/CI/badge.svg)](https://github.com/insysbio/CICOCore.jl/actions?query=workflow%3ACI) -[![Coverage Status](https://coveralls.io/repos/github/insysbio/CICOCore.jl/badge.svg?branch=master)](https://coveralls.io/github/insysbio/CICOCore.jl?branch=master) -[![version](https://juliahub.com/docs/General/CICOCore/stable/version.svg)](https://juliahub.com/ui/Packages/General/CICOCore) -[![GitHub license](https://img.shields.io/github/license/insysbio/CICOCore.jl.svg)](https://github.com/insysbio/CICOCore.jl/blob/master/LICENSE) +[![Documentation](https://img.shields.io/badge/docs-latest-blue.svg)](https://insysbio.github.io/CICOBase.jl/latest) +[![Build status](https://github.com/insysbio/CICOBase.jl/workflows/CI/badge.svg)](https://github.com/insysbio/CICOBase.jl/actions?query=workflow%3ACI) +[![Coverage Status](https://coveralls.io/repos/github/insysbio/CICOBase.jl/badge.svg?branch=master)](https://coveralls.io/github/insysbio/CICOBase.jl?branch=master) +[![version](https://juliahub.com/docs/General/CICOBase/stable/version.svg)](https://juliahub.com/ui/Packages/General/CICOBase) +[![GitHub license](https://img.shields.io/github/license/insysbio/CICOBase.jl.svg)](https://github.com/insysbio/CICOBase.jl/blob/master/LICENSE) [![DOI:10.1371/journal.pcbi.1008495](https://zenodo.org/badge/DOI/10.1371/journal.pcbi.1008495.svg)](https://doi.org/10.1371/journal.pcbi.1008495) -**CICOCore** is a [Julia language](https://julialang.org/downloads/) package for [identifiability analysis](https://en.wikipedia.org/wiki/Identifiability_analysis) and confidence intervals estimation. +**CICOBase** is a [Julia language](https://julialang.org/downloads/) package for [identifiability analysis](https://en.wikipedia.org/wiki/Identifiability_analysis) and confidence intervals estimation. -See [documentation](https://insysbio.github.io/CICOCore.jl/latest/). +See [documentation](https://insysbio.github.io/CICOBase.jl/latest/). ## Use cases Notebooks with use cases can be found in a separate repository: @@ -29,13 +29,13 @@ Notebooks with use cases can be found in a separate repository: ] -(v1.9) pkg> add CICOCore +(v1.9) pkg> add CICOBase ``` ## Quick start ```julia -using CICOCore +using CICOBase # testing profile function f(x) = 5.0 + (x[1]-3.0)^2 + (x[1]-x[2]-1.0)^2 + 0*x[3]^2 diff --git a/docs/make.jl b/docs/make.jl index fc3d89e..6a4644f 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -1,10 +1,10 @@ -using CICOCore +using CICOBase using Documenter makedocs( - modules = [CICOCore], - sitename = "CICOCore Documentation", + modules = [CICOBase], + sitename = "CICOBase Documentation", pages = [ "Home" => "index.md", "Methods" => "methods.md", @@ -16,7 +16,7 @@ makedocs( deploydocs( - repo = "github.com/insysbio/CICOCore.jl.git", + repo = "github.com/insysbio/CICOBase.jl.git", devbranch="master", devurl = "latest", ) diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 750d474..0537913 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -1,5 +1,5 @@ -site_name: CICOCore.jl -repo_url: https://github.com/insysbio/CICOCore.jl +site_name: CICOBase.jl +repo_url: https://github.com/insysbio/CICOBase.jl site_description: A Julia package for identifiability analysis and confidence intervals estimation. site_author: InSysBio diff --git a/docs/src/api.md b/docs/src/api.md index d8a6b56..0245d18 100644 --- a/docs/src/api.md +++ b/docs/src/api.md @@ -3,6 +3,6 @@ The package exports the following functions for **parameters identifiability analysis**, **confidence intervals evaluation** and **results visualization**. ```@autodocs -Modules = [CICOCore] +Modules = [CICOBase] Order = [:function, :type, :module] ``` diff --git a/docs/src/index.md b/docs/src/index.md index b4d4772..22bfbc6 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -1,6 +1,6 @@ # Overview -**CICOCore** is a [Julia](https://julialang.org/downloads/) package for **identifiability analysis** and **confidence intervals** estimation. +**CICOBase** is a [Julia](https://julialang.org/downloads/) package for **identifiability analysis** and **confidence intervals** estimation. ## Use cases Notebooks with use cases can be found in a separate repository: @@ -19,13 +19,13 @@ Notebooks with use cases can be found in a separate repository: ] -(v1.9) pkg> add CICOCore +(v1.9) pkg> add CICOBase ``` ## Quick start ```julia -using CICOCore +using CICOBase # testing profile function f(x) = 5.0 + (x[1]-3.0)^2 + (x[1]-x[2]-1.0)^2 + 0*x[3]^2 @@ -46,11 +46,11 @@ plotly() plot(res_1) ``` -![plot_lin](https://github.com/insysbio/CICOCore.jl/blob/master/img/plot_lin.png?raw=true) +![plot_lin](https://github.com/insysbio/CICOBase.jl/blob/master/img/plot_lin.png?raw=true) ## Intro -The reliability and predictability of a **kinetic systems biology (SB) and systems pharmacology (SP) model** depends on the calibration of model parameters. Experimental data can be insufficient to determine all the parameters unambiguously. This results in "non-identifiable" parameters and parameters identifiable within confidence intervals (CIs). The algorithms included in **CICOCore** implement Profile Likelihood (PL) [2] method for parameters identification and can be applied to complex SB models. The results of the algorithms can be used to qualify and calibrate parameters or to reduce the model. +The reliability and predictability of a **kinetic systems biology (SB) and systems pharmacology (SP) model** depends on the calibration of model parameters. Experimental data can be insufficient to determine all the parameters unambiguously. This results in "non-identifiable" parameters and parameters identifiable within confidence intervals (CIs). The algorithms included in **CICOBase** implement Profile Likelihood (PL) [2] method for parameters identification and can be applied to complex SB models. The results of the algorithms can be used to qualify and calibrate parameters or to reduce the model. ## Objective diff --git a/docs/src/methods.md b/docs/src/methods.md index 2628f34..345d219 100644 --- a/docs/src/methods.md +++ b/docs/src/methods.md @@ -1,6 +1,6 @@ # Methods - Three methods implemented in **CICOCore** package: `:CICO_ONE_PASS`, + Three methods implemented in **CICOBase** package: `:CICO_ONE_PASS`, `:LIN_EXTRAPOL`, `:QUADR_EXTRAPOL`. diff --git a/docs/src/optimizers.md b/docs/src/optimizers.md index 1389733..ed98ed5 100644 --- a/docs/src/optimizers.md +++ b/docs/src/optimizers.md @@ -1,8 +1,8 @@ # Note on optimizers -Currently **CICOCore** relies on [`NLopt`](https://nlopt.readthedocs.io/en/latest/). +Currently **CICOBase** relies on [`NLopt`](https://nlopt.readthedocs.io/en/latest/). -Internally **CICOCore** utilizes `:LN_AUGLAG` algorithm from **NLopt** to construct an augmented objective function with a set of bound constrains. Then the augmented objective function is passed to an optimization algorithm, which is defined by the keyword argument `local_alg` (see [`CICOCore.get_interval`](@ref)). +Internally **CICOBase** utilizes `:LN_AUGLAG` algorithm from **NLopt** to construct an augmented objective function with a set of bound constrains. Then the augmented objective function is passed to an optimization algorithm, which is defined by the keyword argument `local_alg` (see [`CICOBase.get_interval`](@ref)). Default `local_alg` = `:LN_NELDERMEAD`, which is the most reliable for the current problem among the derivative-free algorithms. Any [`NLopt`](https://nlopt.readthedocs.io/en/latest/NLopt_Algorithms/) algorithm could be potentially used as `local_alg`. diff --git a/docs/src/visualization.md b/docs/src/visualization.md index f085e62..c6a5baa 100644 --- a/docs/src/visualization.md +++ b/docs/src/visualization.md @@ -1,15 +1,15 @@ # Visualization -[`CICOCore.get_interval`](@ref) function returns estimated +[`CICOBase.get_interval`](@ref) function returns estimated confidence interval along with other data as -[`CICOCore.ParamInterval`](@ref) structure. +[`CICOBase.ParamInterval`](@ref) structure. -**CICOCore** provides a `@recipe` for **Plots.jl** to visualize +**CICOBase** provides a `@recipe` for **Plots.jl** to visualize confidence interval estimation and plot parameter's profile based on -[`CICOCore.ParamInterval`](@ref). +[`CICOBase.ParamInterval`](@ref). ``` -using CICOCore +using CICOBase # Likelihood function f(x) = 5.0 + (x[1]-3.0)^2 + (x[1]-x[2]-1.0)^2 + 0*x[3]^2 @@ -30,9 +30,9 @@ plotly() plot(res[2]) ``` -![](https://github.com/insysbio/CICOCore.jl/blob/master/img/plot_cico.png?raw=true) +![](https://github.com/insysbio/CICOBase.jl/blob/master/img/plot_cico.png?raw=true) -To make a smooth plot one can compute more profile points with [`CICOCore.update_profile_points!`](@ref) which internally uses [`PlotUtils.adapted_grid`](https://github.com/JuliaPlots/PlotUtils.jl/blob/master/src/adapted_grid.jl) +To make a smooth plot one can compute more profile points with [`CICOBase.update_profile_points!`](@ref) which internally uses [`PlotUtils.adapted_grid`](https://github.com/JuliaPlots/PlotUtils.jl/blob/master/src/adapted_grid.jl) ``` update_profile_points!(res[2]) @@ -40,4 +40,4 @@ update_profile_points!(res[2]) plot(res[2]) ``` -![](https://github.com/insysbio/CICOCore.jl/blob/master/img/plot_cico_smooth.png?raw=true) +![](https://github.com/insysbio/CICOBase.jl/blob/master/img/plot_cico_smooth.png?raw=true) diff --git a/src/CICOCore.jl b/src/CICOBase.jl similarity index 95% rename from src/CICOCore.jl rename to src/CICOBase.jl index 865b520..0bb6509 100644 --- a/src/CICOCore.jl +++ b/src/CICOBase.jl @@ -1,6 +1,6 @@ #__precompile__(false) """ -Main module for `CICOCore.jl`. +Main module for `CICOBase.jl`. Four functions are exported from this module for public use: @@ -10,7 +10,7 @@ Four functions are exported from this module for public use: - [`update_profile_points!`](@ref). Updates confidence interval with likelihood profile points. """ -module CICOCore +module CICOBase using NLopt, ForwardDiff using Calculus diff --git a/test/runtests.jl b/test/runtests.jl index be9dbb9..b0fd373 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -2,7 +2,7 @@ # Pkg.add("NLopt") # Pkg.add("RecipesBase") -using CICOCore, Test +using CICOBase, Test using NLopt NLopt.srand(12345) diff --git a/test/test_deriv_free_algs.jl b/test/test_deriv_free_algs.jl index 814bf46..ca4eb3b 100644 --- a/test/test_deriv_free_algs.jl +++ b/test/test_deriv_free_algs.jl @@ -1,6 +1,6 @@ ### Derivative free optimization tests -using CICOCore +using CICOBase # The following NLopt derivative-free algorithms are compared dfo_algorithms = [ diff --git a/test/test_get_optimal.jl b/test/test_get_optimal.jl index 0940738..be35de4 100644 --- a/test/test_get_optimal.jl +++ b/test/test_get_optimal.jl @@ -1,6 +1,6 @@ # tests for `get_optimal` method # testing only the case f_2p -# using CICOCore +# using CICOBase @testset "testing get_optimal() for :LN_PRAXIS and f_2p, identifiable" begin res0 = get_optimal( diff --git a/test/test_loss_error.jl b/test/test_loss_error.jl index 4c12790..566fc51 100644 --- a/test/test_loss_error.jl +++ b/test/test_loss_error.jl @@ -28,7 +28,7 @@ end @testset "test profile error" begin err_func = err_fun_generate() - prof = CICOCore._profile( + prof = CICOBase._profile( [3., 4.], 1, err_func diff --git a/test/test_noderiv.jl b/test/test_noderiv.jl index 544e2f9..86636ec 100644 --- a/test/test_noderiv.jl +++ b/test/test_noderiv.jl @@ -1,4 +1,4 @@ -using CICOCore, Plots +using CICOBase, Plots # functions with zero derivative at one of the endpoints f1(x) = 3x[1]^4 - 6x[1]^3 + 5 diff --git a/test/test_plots.jl b/test/test_plots.jl index 8cb16a4..fc13eab 100644 --- a/test/test_plots.jl +++ b/test/test_plots.jl @@ -14,7 +14,7 @@ using Plots silent = true ) for i in 1:3] update_profile_points!(res0[1]; max_recursions=1) - a_grid_1 = CICOCore.get_grid(res0[1]) + a_grid_1 = CICOBase.get_grid(res0[1]) @test length(a_grid_1[2]) > 0 p = plot(res0[1]) @test p isa Plots.Plot diff --git a/test/test_profile.jl b/test/test_profile.jl index bf81e8d..c55f3c0 100644 --- a/test/test_profile.jl +++ b/test/test_profile.jl @@ -1,5 +1,5 @@ @testset "profile" begin - prof = CICOCore._profile( + prof = CICOBase._profile( [3., 2., 2.1], 1, f_3p_1im_dep;