Documentation Audit
This page records the current documentation/docstring audit for the 2.0 release line. It is aimed at maintainers and should be updated whenever public APIs or workflow defaults change.
Current Source Of Truth
- User workflows:
README.md,docs/src/getting_started.md, anddocs/src/cluster_batch_workflows.md. - Public API behavior: docstrings in
src/*.jl, especiallyfit.jl,biowulf.jl,analysis.jl,io.jl, andstage.jl. - Exported symbols: the
exportblock insrc/StochasticGene.jl. The old unusedsrc/exports.jlfile has been retired so there is only one canonical export list. - Generated website navigation:
docs/make.jl. - Do not edit generated files under
docs/build; updatedocs/srcand rebuild.
Audited Workflows
RNA histogram and scRNA sweeps
Status: current.
makeswarm_genes(; datapath, datacond, ...)is the replacement for the older v0.7-style folder sweep.- Folder scanning uses
checkgenesby default (filter_metadata=true), preserving the halflife/allele metadata gate. filter_metadata=falsescans filenames only.batchsize=nothingwrites all gene commands into one command file by default.- For large Biowulf runs, submit the single file with
swarm -b <bundle>rather than splitting into many numbered command files. batchsize=<N>is still available only when a user deliberately wants several command files.
Representative submit command:
swarm -f fit.swarm -b 20 -g 24 -t 4 --time 25:00 --merge-output --module juliaRNA result dataframe stack
Status: current.
- Legacy/RNA-style folders:
make_dataframes(resultfolder, datapath; ...)write_dataframes_only(resultfolder, datapath; ...)write_dataframes(resultfolder, datapath; measure=:AIC, ...)
- Key-based folders:
make_dataframes_key(resultfolder; datapath=nothing, ...)write_dataframes_only_key(resultfolder; datapath=nothing, ...)
Docs now distinguish these paths explicitly.
Key-based trace and shared analyses
Status: current for entry points; deeper examples can be expanded.
write_traces_key(folder)should be used for key-based trace prediction.write_ONOFFhistograms_key(folder)is the key-aware ON/OFF histogram path.write_correlation_functions_key(folder; ...)is the modern key-aware theoretical correlation path and can also write generalized observable-pair correlations.write_shared_group_measures_from_samples(resultfolder, key; ...)is the post-fit shared/group diagnostic path when posterior samples are available.
Retired or compatibility-only inputs
Status: current.
infolderandinlabelare retired public inputs. Useroot,datapath,label, andresultfolder.fit(; key=...)still tolerates old run-spec fields during migration.traceinfoanddttyperemain accepted in legacy scripts, but new trace and dwell workflows should prefertrace_specsanddwell_specs.
Known Documentation Risks
- The package exports many developer/test/benchmark helpers from
src/StochasticGene.jl. Not all of those are intended as user-facing APIs. Avoid adding manual examples for test helpers unless they are deliberately promoted. docs/src/api/index.mdis broad and partly hand-written. When new public APIs are added, prefer adding specific pages or concrete workflow docs rather than expanding that file with generic placeholder APIs.- Analysis APIs should be documented only when the functions exist in
src. Placeholder names such asprofile_likelihood,posterior_mean, ortrace_plotsshould not appear in the manual unless implemented. - Shared-fit documentation should keep the rate/parameter distinction clear: rate files are complete likelihood-ready rate vectors; fitted parameters are the reduced parameter vector used by the sampler.
Audit Checklist For Future Changes
Run the static audit helper first. It does not import StochasticGene, so it is safe to run before dependency precompilation is clean:
julia --startup-file=no docs/audit_docs.jlTo make missing exported-symbol docstring candidates fail the audit:
julia --startup-file=no docs/audit_docs.jl --strict-docstringsSearch docs and source docstrings for stale keywords:
rg -n "infolder|inlabel|batchsize|filter_metadata|traceinfo|dttype|fit_rna" README.md docs/src srcSearch for old Biowulf split-file guidance:
rg -n "fit_\\*\\.swarm|for f in fit_|batch command files|batchsize = (1000|4800)" README.md docs/srcVerify Julia source parses after docstring edits:
julia --startup-file=no -e 'Meta.parseall(read("src/biowulf.jl", String)); Meta.parseall(read("src/io.jl", String)); Meta.parseall(read("src/analysis.jl", String)); println("parse ok")'If dependencies are available, build docs:
julia --project=docs docs/make.jlNever patch
docs/builddirectly.