All notable changes to this project will be documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Update
GitHub
action versions for all workflow files. Closes #37. - Add missing link to paper reference in documentation.
- Replace URLs for CRAN checks badges. Closes #35.
- Fix
docs
workflow error after changing fromyarn
topnpm
. For the time being, migrated back toyarn
. Closes #39.
- Remove invalid
HTML
syntax from documented functions (i.e.,div
elements nested insidep
elements). See #30 (i.e., the reply by @mihaiconstantin) for more details.
- Fix
HTML
validation problems during theCRAN
checks. Closes #30.
- Add navigation bar and sidebar links under Reference for exported package
functions and
S3
methods. - Enable automatic registration for
.vue
components in/docs/.vuepress/components/
. - Add component
Markdown.vue
for rendering reusable markdown. - Add content for functions
powerly
,validate
, andgenerate_model
. - Add content for
S3
methodsplot.Method
,plot.Validation
, andsummary
.
- Refactor styles and improve readability for narrow screens.
- Replace incorrect feature image for Step 1.
- Update
CSS
breakpoints for mobile views.
- Add starter package documentation via
VuePress
. The deployed documentation files can be accessed at powerly.dev.
- Add reference to online documentation in
README.md
file. - Moved image assets from
inst/
underdocs/
. - Simplify
ASCII
console logo to include domain name for the online documentation.
- Remove square brackets from version numbers in
NEWS.md
to allow CRAN to parse the version information.
- Add option to run GitHub workflow manually.
- Add more arguments for generating partial correlation matrices (i.e., in line
with Yin and Li (2011; see reference below). The new arguments are
positive
(i.e., for the proportion of positive edges),range
(i.e., for the interval from which to sample values for the partial correlations), andconstant
(i.e., to vary the magnitude of the partial correlations). See Yin and Li (2011) for a description of the generating algorithm. - Add functionality to resample
GgmModel
data when variables withSD = 0
are detected.
- Update documentation to include the new arguments for generating a GGM.
- Update GGM data generation and estimation tests.
- Yin, J., and Li, H. (2011). A sparse conditional gaussian graphical model for analysis of genetical genomics data. The annals of applied statistics, 5(4), 2630.
- Add
duration
field toStepTwo
class to record the execution time for the spline fitting procedure - Add
CNAME
for apex domainhttps://powerly.dev
served via GitHub Pages.
- Fix missing import for
mvnorm
package (#11). Closes #5. - Fix missing number of
cores
inBackend
when more cores than available were requested (#12). Closes #2. - Fix legend overlapping spline confidence bands for
StepThree
plot (#13). Closes #3. - Fix recording and reporting of
Method
and step classes execution time (#15). The duration is now recorded in seconds. Closes #9.
- Remove
dev
branch from allGitHub
workflows (#14). Switched to theGitHub
flow. Closes #4.
- Update badges order in
README.md
and removed open issues badge.
- Fix typos in
NEWS
file.
- Add GitHub badges with latest release version and number of open issues.
- Update GGM estimation test to check if the estimation fails when variables with zero standard deviation are present in the generated data.
- Update GGM estimation to fail when the generated data contains at least one variable that has a standard deviation equal to zero (i.e., as a result of generating data with a sample size value that is too low).
- Add tolerance (i.e.,
0.0000001
) for test checking whether the spline coefficients are estimated correctly. - Fix test for the updating of the bounds of a
Range
instance to run only when the the 2.5th and 97.5th selected sample sizes are different quantities. - Fix bug in GGM data generating test where the number of nodes to generate data for were incorrectly sampled.
- Update moved URL https://codecov.io/gh/mihaiconstantin/powerly to https://app.codecov.io/gh/mihaiconstantin/powerly based on comments of CRAN maintainer Uwe Ligges.
- Add
summary
S3 method support forValidation
class objects.
- Add new
R
version to the CI pipeline for theR CMD check
job. - Update
R CMD check
workflow to usecheck
action fromr-lib/actions
. - Add explicit
.data
and.env
pronoun calls (i.e., from therlang
package) to variables used inside data-masking function (e.g.,ggplot2::aes()
) to avoidCRAN
notes regarding missing bindings for global variables. See this question for more information: https://stackoverflow.com/q/9439256/5252007. - Update plot functions to respect the signature of the S3 plot generic.
- Improve documentation and positioning of figures in the help pages.
- Create
roxygen2
templates for documenting the public API and S3 methods. - Extract
plot()
methods fromR6
classes into standalone S3 methods. - Update package start-up logo with message to welcome and encourage users to submit ideas for improving the package.
- Extend CI workflow to include branch
dev
.
- Fix backend test where the cluster would contain an unexpected
.Random.seed
. The.Random.seed
is caused by loading thebootnet
package which in turn loads thesnow
package. Thesnow
package uses theRNG
within the.onLoad()
function to draw from the uniform distribution and set a port number. The result of this operation is a.Random.seed
in the.GlobalEnv
. For more information see: https://stackoverflow.com/q/69866215/5252007 and SachaEpskamp/bootnet#82. - Fix preprint URL in package documentation.
- Fix heading typo in news file.
- Update line exclusions for
covr::codecov()
.
- Add new
Validation
class plot toREADME.md
file. - Update
GgmModel
tests to vary various model estimation and data generation parameters. - Update
testthat::expect_equal
to test with a tolerance of1e-6
forBasis
andSolver
. - Replace own
GgmModel
estimation withqgraph::EBICglasso()
. - Add ECDF plot to
Validation
class. - Import external functions to
NAMESPACE
viaRoxygen2
. - Add more cool badges to
README.md
(e.g., CRAN version and check status). - Fix missing missing period in package description in
DESCRIPTION
file.
- Fix issue where
GGM
estimation test would fail due to a precision level set too high.
- Update
Description
field inDESCRIPTION
file to follow CRAN guidelines.
- Update preprint link in
powerly()
documentation to use the\doi{}
syntax as indicated by CRAN member Uwe Ligges. - Update
DESCRIPTION
to start with capital letter as indicated by CRAN member Uwe Ligges. - Fix typo in
DESCRIPTION
.
- Add preliminary
summary()
support forMethod
andValidation
objects. - Update citation and references to the preprint available at psyarxiv.com/j5v7u.
- Add
ggplot
plots and saving support forStepOne
,StepTwo
,StepThree
andValidation
objects.
- Migrate from
R
base plots toggplot2
andpatchwork
. - Add more detailed
Description
inDESCRIPTION
file as per comment by CRAN member Julia Haider.
- Fix seed in
StepOne
unit test. - Fix superfluous test fail for
GGM
model estimation. Restricted the unit test to compare the estimated edge weights up to 7 digits precision.
- Add code coverage workflow based on action provided by
usethis::use_github_action("test-coverage")
and badge toREADME.md
.
- Fix cluster creation bug in
Backend
when the machine had only 1 or 2 cores. The previous version would result in an error when the machine contained only 1 or 2 cores. Now, when the machine has only 1 core, the cluster creation will fail, with a message that not enough cores are available. When the machine has 2 cores, all 2 cores are used. In all other cases, the number of cores used is given by the number of cores on the machine minus one.
- Add names and comments to workflow file
R-CMD-check.yaml
. - Update
README.md
and package startup logo to only show major version. - Update existing tests and added new ones.
- Add type check for
method
argument ofvalidate()
to ensure that only instances ofMethod
class (i.e., produced bypowerly()
are passed). - Add
Backend
stopping toon.exit()
inpowerly()
to ensure the cluster is stopped no matter the execution status of the function. - Improve logic around setting and resetting the number of cores when the cluster is created and stopped (i.e., also for adopted clusters).
- Correct version number and add changes in
NEWS.md
for1.2.0
.
- Add CI workflow via
usethis::use_github_action_check_standard()
.
- Restrict tests to using a maximum of two cores to respect CRAN restriction.
- Hide package logo at startup if the
R
session is not interactive. - Add more informative changelogs to
NEWS.md
for previous releases.
- Add
.remove_missing()
to clear anyNA
values that may be present in.measures
inStepOne
class after the Monte Carlo procedure.
- Fix broken URLs in documentation causing build warnings.
- Add
validate()
public API to validate method results. - Add
Validation
class to perform validation on aMethod
object.
- Add example in
README.md
forvalidation()
and fixed images. - Decrease legend font size in
StepThree
class. - Rename from quantile to percentile in
StepThree
class plots.
- Add
powerly()
public API to run the method. - Add
generate_model()
public API to generate true models. - Add package documentation for public API.
- Add plotting for all three method steps.
- Add option to save last two iterations in
Method
class. - Add
Method
class to run the method steps iteratively. - Add parallel support for Step 1 and Step 3 of the method.
- Add
Backend
class to manage parallel clusters. - Add support for multiple solvers for estimating spline coefficients.
- Rewrite prototype using
R6
OOP style into first stable release.
- Remove text feedback from each method step function.
- Fix bug cased by initial candidate sample size ranges being too narrow.
- Add preliminary support for the Gaussian Graphical Model via
ggm
object. - Add preliminary support for two statistics via
statistic.power()
andstatistic.mean()
. - Add
validate.recommendation()
prototype for validating a sample size recommendation. - Add
run.method()
prototype for running all method steps iteratively. - Add
run.step.1()
prototype for Step 1 of the method. - Add
run.step.2()
prototype for Step 2 of the method. - Add
run.step.3()
prototype for Step 3 of the method.