Skip to content

Releases

lupin 0.2.3

Choose a tag to compare

@YPARK YPARK released this 30 Sep 19:42

lupin finds a pinto run's data from any working directory.

Install: cargo install lupin-rs

Fixes

  • pinto records its data paths relative to the directory it ran in (e.g. temp_gbm/gbm.zarr.zip). lupin now also tries them under the manifest's directory before falling back to the bare file name, so lupin annotate -f path/to/run.pinto.json works from anywhere.

lupin 0.2.2

Choose a tag to compare

@YPARK YPARK released this 30 Sep 19:42

Fixes to the moved-data lookup added in 0.2.1, matching senna's copy of the same rule.

Install: cargo install lupin-rs

Fixes

  • Leading .. in a path are kept (../../a/b no longer becomes a/b).
  • The run's directory is made absolute without resolving symlinks, so moved runs under a symlinked tree are found.
  • The last-resort search needs at least the file and its folder to match, so an unrelated file of the same name is not taken for the data. Substitutions are logged as warnings.
  • The --tui marker-panel browser skips .zip files.

lupin 0.2.1

Choose a tag to compare

@YPARK YPARK released this 30 Sep 19:42

lupin 0.2.1 finds the data of runs that were moved, adds a file browser to annotate --tui, never replaces a manifest without asking, and annotates any level of a pinto cascade.

Install: cargo install lupin-rs

Highlights

Moved runs

  • A run's recorded data.input / data.batch files are found after the run moves to another directory or machine. lupin tries the path as recorded, then the same place relative to the run's new directory as it was relative to the training prefix's, then the longest tail of the path under the manifest's directory or one of its ancestors. It logs the substitution. senna uses the same rule.

lupin annotate --tui

  • -f, -m and -o are optional. A file browser picks the run manifest, then the marker panel, if the run records none. Each panel shows its number of types and genes and how many of those genes the run has; the panel covering the most is starred. Single-type panels are refused. -o defaults to {run}.L1.
  • The TUI annotates by enrichment unless --method is given, so bge / fne / gem runs show specific genes and NES / p / q too.

No silent overwrite

  • lupin asks before replacing an existing manifest (Replace it? [y/N]), and refuses when there is no terminal to ask on. The new global --overwrite replaces without asking.
  • annotate, ask and pseudotime check before doing any work, so a refusal erases nothing. plot records its clusters only when it needn't ask. The TUI confirms on screen.

pinto cascade levels

  • lupin annotate --level <tag> annotates one level of a pinto run, using that level's propensity as the clusters. The tag is recorded at annotate.settings.enrichment.level and carried forward by relabel --next.

lupin 0.2.0

Choose a tag to compare

@YPARK YPARK released this 29 Sep 03:27
9234b38

lupin 0.2.0 adds an interactive terminal UI for annotating clusters, new enrichment statistics, and Cell Ontology data that ships as editable files.

Install: cargo install lupin-rs

Highlights

Interactive annotation: lupin annotate --tui

  • Go through the clusters one at a time: see each cluster's candidate cell types with share, NES, p and q, and label it from the candidates or from the ontology tree.
  • Browse the full Cell Ontology, searching names, synonyms and abbreviations. Give a cluster the evidence can't split a named mixed label.
  • Edit marker panels from a cluster's specific genes: add them to a type, including a new one, drop them, or undo the edit.
  • Live rescoring: after a marker edit, the cell types it touches are rescored in the background, and the cluster table shows the new share, NES, p and q before you save.
  • Hide uninformative genes by name or pattern (e.g. MT-*). Mark labels as kept or decided. Press ? for the key guide.
  • Passes and saves run as background lupin processes, with their output shown in a log pane. A running save is never interrupted.

Statistics

  • Enrichment uses fgsea's normalized enrichment score (NES) and a permutation p-value.
  • q-values are TreeBH-adjusted over the panel's cell-type tree, so a fine type is called only where its coarser class is. The share is a softmax of z = Φ⁻¹(1 − p).
  • --num-perm now defaults to 1000.

Cell Ontology data

  • Matching rules and label aliases are data files, not code, layered in this order:
    1. the install;
    2. a download of this release;
    3. ~/.config/lupin/;
    4. the project's lupin/ folder;
    5. per-run flags.
  • lupin data where shows which files are in use; lupin data fetch downloads them.
  • Labels chosen in the TUI, hidden genes and mixed labels are saved as plain files in the project's lupin/ folder.

Other changes

  • Marker gene files can be gzipped (.gz).
  • lupin relabel --preview rescores what decisions would change and reports every cluster's share, NES, p and q.

Breaking changes

  • The marker bootstrap is gone, from annotation, relabeling and lineage calls. It made about 99.7% of cells abstain on real data and was slow.
  • Runs record annotate.cluster_celltype_p and cluster_celltype_nes; the cluster_celltype_support and marker_support outputs are removed.

Dependencies

  • legume-enrichment 0.4.1, which adds annotate_types and adjust for rescoring a subset of cell types.

Full changelog: v0.1.5...v0.2.0