Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
f54a4e6
Create run_cutadapt.jl.
JoshuaJewell Jan 31, 2026
8799473
Edit .gitignore
JoshuaJewell Jan 31, 2026
c5689fb
Remove ignored files.
JoshuaJewell Jan 31, 2026
9cd8b3c
Create conversion and merge functions for vsearch and dada2 outputs.
JoshuaJewell Feb 1, 2026
943139b
Edit .gitignore
JoshuaJewell Feb 1, 2026
5a0e376
Merge tables logic.
JoshuaJewell Feb 9, 2026
2dd6820
Added dada2 R module.
JoshuaJewell Feb 18, 2026
c558638
Reorganise directory structure.
JoshuaJewell Feb 18, 2026
523df7d
Update docstrings
JoshuaJewell Feb 18, 2026
97b9d10
Minor fixes.
JoshuaJewell Feb 18, 2026
9207d9a
Remove pipelinesteps.txt, update .gitignore.
JoshuaJewell Feb 18, 2026
a8dcb8e
Added license.
JoshuaJewell Feb 18, 2026
3a61caa
Added install scripts and README.md.
JoshuaJewell Feb 19, 2026
0ff1bca
Convert dada2.r orchestrator to use a real language, making the world…
JoshuaJewell Feb 19, 2026
232c005
Update .gitignore
JoshuaJewell Feb 19, 2026
60eb75b
Bugfixes and directory restructure.
JoshuaJewell Feb 19, 2026
62e83c4
Added VSEARCH local alignment taxonomic assignment. Pipeline tested a…
JoshuaJewell Feb 19, 2026
7aba674
Added databases.jl to handle databases due to different requirements …
JoshuaJewell Feb 20, 2026
76f1b4d
Remove dead R modules. Good riddance.
JoshuaJewell Feb 20, 2026
f6651db
Split massive dada2.jl, merged smaller run_*.jl, reorganised director…
JoshuaJewell Feb 20, 2026
6648a6e
Yep...I knew something had to go wrong...
JoshuaJewell Feb 20, 2026
c7d4aa9
Added better logging, removed openxlsx R dependency.
JoshuaJewell Feb 20, 2026
d759fd8
Allow offload assignTaxonomy() to server.
JoshuaJewell Feb 20, 2026
bd89c0c
I meant to stage all changes, oops.
JoshuaJewell Feb 20, 2026
369acd3
Added MultiQC report from FastQC.
JoshuaJewell Feb 20, 2026
ae903f7
Overhauled execution pipeline with wiretypes and mtime based skipping…
JoshuaJewell Feb 21, 2026
23f12e6
Overhauled config setup.
JoshuaJewell Feb 21, 2026
ddce33d
Added ssh key option.
JoshuaJewell Feb 21, 2026
b3ef1a1
Added SILVA database compatibility, filters, and analysis.
JoshuaJewell Feb 24, 2026
483b685
Added declarative graph introspection, removed SILVA and references..…
JoshuaJewell Feb 26, 2026
b8b1a9b
Much needed src/ restructure.
JoshuaJewell Feb 27, 2026
0a018a1
Programmatic testing, yay! Brought back in SWARM pipeline.
JoshuaJewell Feb 27, 2026
512133e
Slowed the testing down. Updated README.md.
JoshuaJewell Feb 27, 2026
f4e5735
Made integration test part of CI workflow. Updated README.md.
JoshuaJewell Feb 27, 2026
d048687
Update README.md
JoshuaJewell Feb 27, 2026
2651b30
Made integration test actually run. Hopefully.
JoshuaJewell Feb 27, 2026
d545091
Fixed integration test...hopefully...
JoshuaJewell Feb 27, 2026
1437996
Actually fixed integration test...
JoshuaJewell Feb 27, 2026
9c08d92
This time.
JoshuaJewell Feb 27, 2026
f59d9c2
How about..this time?
JoshuaJewell Feb 27, 2026
26b89e7
Please..just..
JoshuaJewell Feb 27, 2026
15dc41c
Getting somewhere...
JoshuaJewell Feb 27, 2026
819ee31
13th time was the charm, naturally.
JoshuaJewell Feb 27, 2026
e632415
More integration test tweaking.
JoshuaJewell Feb 28, 2026
a951ea7
Unbreaking the file.
JoshuaJewell Feb 28, 2026
06a40c8
Unbreaking other things...
JoshuaJewell Feb 28, 2026
aee1813
Unbreaking more other things...
JoshuaJewell Feb 28, 2026
b29f9ba
Possibly last fix.
JoshuaJewell Feb 28, 2026
5fc032d
It wasn't. And this isn't either.
JoshuaJewell Feb 28, 2026
96fe447
But this one might be.
JoshuaJewell Feb 28, 2026
631c144
...
JoshuaJewell Feb 28, 2026
9de67d0
...definitely working this time.
JoshuaJewell Feb 28, 2026
8bf629f
...definitely working this time this time.
JoshuaJewell Feb 28, 2026
acaa80b
Somehow this is all R's fault - who would've thought?
JoshuaJewell Feb 28, 2026
f5ae520
Somehow this is still all R's fault - who would've thought?
JoshuaJewell Feb 28, 2026
394e311
moRe fixes. Just kidding.
JoshuaJewell Feb 28, 2026
6ffd9d7
Replaced tidyverse.
JoshuaJewell Feb 28, 2026
c46c383
Skip assignTaxonomy for CI.
JoshuaJewell Feb 28, 2026
d989928
We really are getting there...
JoshuaJewell Feb 28, 2026
435226a
Added backend WebUI components and tests.
JoshuaJewell Mar 1, 2026
60ac5ae
Added sysimage for faster runtime, improved install script.
JoshuaJewell Mar 2, 2026
0c2b3df
Fixed database resolution and removed CairoMakie.
JoshuaJewell Mar 2, 2026
2987464
Added frontend
JoshuaJewell Mar 18, 2026
4fd295c
Updated CI tests and README.
JoshuaJewell Mar 28, 2026
83e3f60
Improved install logic and gitignored frontend packages.
JoshuaJewell Mar 28, 2026
83f6026
Sped the testing up.
JoshuaJewell Mar 28, 2026
d2dfd41
Added R dependencies to CI.
JoshuaJewell Mar 28, 2026
ab5f73e
Improved install script and added precompile trace for sysimage build…
JoshuaJewell Mar 28, 2026
e12bb39
Package frontend and backend.
JoshuaJewell Mar 29, 2026
1f827f5
Hardening routes. Commit frontend assets properly.
JoshuaJewell Mar 29, 2026
07f8da5
Fix compatibility with old cutadapt versions.
JoshuaJewell Mar 29, 2026
c7a906d
Fix compatibility with old swarm versions. Update Codecov slug to new…
JoshuaJewell Mar 29, 2026
2e64601
Improved cross-run analysis config and functionality.
JoshuaJewell Mar 29, 2026
4c403a8
Added Annotation view.
JoshuaJewell Apr 2, 2026
237c26a
CI debugging.
JoshuaJewell Apr 4, 2026
9b831ca
Added Composition view.
JoshuaJewell Apr 6, 2026
76a8d50
Developed analyses and views.
JoshuaJewell May 15, 2026
0136992
Added R environment with renv-pinned deps. Added CITATION.cff
JoshuaJewell May 21, 2026
7ce5cc5
CI overhaul.
JoshuaJewell May 22, 2026
9e6aaf1
Prepare v0.1.0 release notes and docs.
JoshuaJewell May 29, 2026
fbcec76
Add sub-group scoping to composition tables. Fixed major double count…
JoshuaJewell Jun 2, 2026
c3943e5
Converge Taxa Bar and Composition filtering.
JoshuaJewell Jul 12, 2026
1d35c57
Move category sets and filters into a single composition library.
JoshuaJewell Jul 14, 2026
9031476
Add provenance capture.
JoshuaJewell Jul 14, 2026
5d97ff6
CI fix.
JoshuaJewell Jul 14, 2026
862ccb4
Add primers/databases config editing, command provenance, and data-in…
JoshuaJewell Jul 20, 2026
6440189
CI fix.
JoshuaJewell Jul 20, 2026
af77462
Real CI fix.
JoshuaJewell Jul 21, 2026
ecefb1c
Real real CI fix.
JoshuaJewell Jul 21, 2026
a3db538
feat: Stipple/Vue migration with isolated typed studies UI
hyperpolymath Sep 21, 2026
6b481a3
Potential fix for pull request finding 'CodeQL / Workflow does not co…
hyperpolymath Sep 25, 2026
eab8ea0
Potential fix for pull request finding 'CodeQL / Workflow does not co…
hyperpolymath Sep 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .Rprofile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
source("renv/activate.R")
1 change: 1 addition & 0 deletions .bun-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.3.10
145 changes: 145 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# SPDX-License-Identifier: MPL-2.0
# Hyperpolymath estate canonical .editorconfig (standards#343 phase 1)
# Canon lives in rsr-template-repo; do not add a per-repo name to this header.
# https://editorconfig.org

root = true

# --- Estate baseline -------------------------------------------------------
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

# --- Prose: trailing whitespace is significant -----------------------------
[*.md]
trim_trailing_whitespace = false

[*.adoc]
trim_trailing_whitespace = false

# --- 4-space languages -----------------------------------------------------
[*.rs]
indent_size = 4

[*.zig]
indent_size = 4

[*.jl]
indent_size = 4

[*.py]
indent_size = 4

[*.c]
indent_size = 4

[*.h]
indent_size = 4

[*.php]
indent_size = 4

# --- 3-space languages (Ada / GNAT house style) ----------------------------
[*.ada]
indent_size = 3

[*.adb]
indent_size = 3

[*.ads]
indent_size = 3

[*.gpr]
indent_size = 3

# --- 2-space languages (explicit; matches the [*] default) -----------------
[*.hs]
indent_size = 2

[*.ex]
indent_size = 2

[*.exs]
indent_size = 2

[*.ncl]
indent_size = 2

[*.rkt]
indent_size = 2

[*.scm]
indent_size = 2

[*.idr]
indent_size = 2

[*.ipkg]
indent_size = 2

[*.k9]
indent_size = 2

[*.a2ml]
indent_size = 2

[*.agda]
indent_size = 2

[*.lean]
indent_size = 2

[*.ebnf]
indent_size = 2

# --- Tab-mandatory formats -------------------------------------------------
[Makefile]
indent_style = tab

[*.go]
indent_style = tab

# --- Task runners ----------------------------------------------------------
[Justfile]
indent_style = space
indent_size = 4

[justfile]
indent_style = space
indent_size = 4

[*.just]
indent_style = space
indent_size = 4

[Mustfile]
indent_style = space
indent_size = 4

# --- Platform-mandated line endings ----------------------------------------
# Windows batch/PowerShell hosts require CRLF; keep in step with .gitattributes.
[*.bat]
end_of_line = crlf

[*.cmd]
end_of_line = crlf

[*.ps1]
end_of_line = crlf

# --- Legacy / retired toolchains (retained for byte hygiene only) ----------
# ReScript (LANGUAGE-POLICY 1.2) and Nix (retired 2026-06-01) are no longer
# adopted for new work. These sections are inert where the files are absent and
# keep surviving files from drifting. Removal is a per-repo judgement.
[*.res]
indent_size = 2

[*.resi]
indent_size = 2

[*.nix]
indent_size = 2
17 changes: 17 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# SPDX-License-Identifier: MPL-2.0
# SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
# Activate the MetaManifold-WebUI dev environment on `cd` (direnv).
# Install direnv: https://direnv.net/

# Precedence: mise (exact CI-pinned binaries) first, Guix shell otherwise.
if has mise; then
use mise
elif has guix && [ -f guix.scm ]; then
use guix
fi

# Estate launcher discovery.
export METAMANIFOLD_REPO_DIR="$PWD"

# Real secrets belong in .env (gitignored) — never commit them here.
dotenv_if_exists
135 changes: 135 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
# SPDX-License-Identifier: MPL-2.0
# Hyperpolymath estate canonical .gitattributes (standards#343 phase 1)
# Canon lives in rsr-template-repo; do not add a per-repo name to this header.
#
# Only diff drivers that git actually ships are used here. MEASURED on git
# 2.47.3: diff=go and diff=zig are NOT drivers (git silently falls back to the
# default heuristic); the Go driver is named `golang`.

* text=auto eol=lf

# --- Source ----------------------------------------------------------------
*.rs text eol=lf diff=rust
*.ex text eol=lf diff=elixir
*.exs text eol=lf diff=elixir
*.ada text eol=lf diff=ada
*.adb text eol=lf diff=ada
*.ads text eol=lf diff=ada
*.gpr text eol=lf diff=ada
*.go text eol=lf diff=golang
*.py text eol=lf diff=python
*.scm text eol=lf diff=scheme linguist-language=Scheme
*.rkt text eol=lf
*.jl text eol=lf
*.hs text eol=lf
*.zig text eol=lf
*.chpl text eol=lf
*.idr text eol=lf linguist-language=Idris
*.ipkg text eol=lf linguist-language=Idris
*.agda text eol=lf linguist-language=Agda
*.lagda text eol=lf linguist-language=Agda
*.lean text eol=lf
# `.v` is ambiguous (Coq / Verilog / V). This estate's `.v` files are Coq
# proofs; 49 repos currently mislabel them `linguist-language=V`.
*.v text eol=lf linguist-language=Coq
*.ncl text eol=lf
*.k9 text eol=lf linguist-language=Nickel
*.a2ml text eol=lf linguist-language=TOML
*.ebnf text eol=lf
*.ts text eol=lf
*.js text eol=lf
*.sh text eol=lf diff=bash
*.bash text eol=lf diff=bash

# --- Windows hosts require CRLF --------------------------------------------
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf

# --- Docs ------------------------------------------------------------------
*.md text eol=lf diff=markdown
*.adoc text eol=lf
*.txt text eol=lf
*.tex text eol=lf diff=tex
*.bib text eol=lf diff=bibtex

# --- Data / config ---------------------------------------------------------
*.json text eol=lf
*.jsonl text eol=lf
*.yaml text eol=lf
*.yml text eol=lf
*.toml text eol=lf
*.svg text eol=lf
*.csv text eol=lf
*.html text eol=lf diff=html
*.css text eol=lf diff=css

# --- Repo control files ----------------------------------------------------
.gitignore text eol=lf
.gitattributes text eol=lf
.editorconfig text eol=lf
.tool-versions text eol=lf
Justfile text eol=lf
justfile text eol=lf
*.just text eol=lf
Mustfile text eol=lf
Makefile text eol=lf
Containerfile text eol=lf

# --- Binary ----------------------------------------------------------------
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.webp binary
*.ico binary
*.pdf binary
*.woff binary
*.woff2 binary
*.ttf binary
*.otf binary
*.eot binary
*.zip binary
*.tar binary
*.gz binary
*.xz binary
*.bz2 binary
*.so binary
*.dylib binary
*.dll binary
*.exe binary
*.wasm binary
*.rlib binary
*.beam binary

# --- Sequencing data -------------------------------------------------------
# History carried 269 MiB of these. They are binary, they must never be
# line-ending-normalised (a CRLF rewrite corrupts a gzip member), and they are
# not source. The recurrence guard with teeth is scripts/check-blob-hygiene.sh,
# run by .githooks/pre-commit and by CI; these lines are hygiene, not the gate.
*.fastq binary -diff linguist-generated=true
*.fastq.gz binary -diff linguist-generated=true
*.fq binary -diff linguist-generated=true
*.fq.gz binary -diff linguist-generated=true
*.fasta binary -diff linguist-generated=true
*.fa binary -diff linguist-generated=true
*.sam binary -diff linguist-generated=true
*.bam binary -diff linguist-generated=true

# --- Generated lockfiles: no diff noise, not counted as source -------------
Cargo.lock text eol=lf -diff linguist-generated=true
mix.lock text eol=lf -diff linguist-generated=true
bun.lock text eol=lf -diff linguist-generated=true
bun.lockb binary -diff linguist-generated=true
pnpm-lock.yaml text eol=lf -diff linguist-generated=true
package-lock.json text eol=lf -diff linguist-generated=true

# --- Legacy / retired toolchains (byte hygiene only) -----------------------
# ReScript is retired (LANGUAGE-POLICY 1.2); Nix was retired 2026-06-01. These
# lines keep surviving files normalised and keep retired tech out of the
# GitHub primary-language badge. Removal is a per-repo judgement, never a sweep.
*.res text eol=lf
*.resi text eol=lf
**/*.res linguist-detectable=false
*.nix text eol=lf
flake.lock text eol=lf -diff linguist-generated=true
22 changes: 22 additions & 0 deletions .githooks/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: MPL-2.0
# SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
#
# commit-msg hook — enforces the estate conventional-commit subject.
# Enable once per clone: git config core.hooksPath .githooks
# (The corresponding template is .gitmessage; CI re-checks on push.)
msg_file=$1
subject=$(head -1 "$msg_file")

# Types per .gitmessage "Allowed Types" list.
if ! printf '%s' "$subject" | grep -qE '^(feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert)(\([a-zA-Z0-9_/-]+\))?!?: .{1,72}$'; then
cat >&2 <<EOF
commit-msg: REJECTED subject:
$subject
Required form:
<type>(<optional scope>): <subject> (type in: feat fix docs style
refactor perf test build ci chore revert; subject 1..72 chars)
EOF
exit 1
fi
exit 0
12 changes: 12 additions & 0 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: MPL-2.0
# SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
#
# pre-commit hook -- refuses a commit that would reintroduce the sequencing
# blobs stripped from history. Enable once per clone with `just hooks`
# (or `git config core.hooksPath .githooks`).
#
# The rule itself lives in scripts/check-blob-hygiene.sh and is shared verbatim
# with the CI blob-hygiene step, so the local gate and the remote gate cannot
# disagree about what is allowed.
exec "$(git rev-parse --show-toplevel)/scripts/check-blob-hygiene.sh" --staged
12 changes: 12 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# SPDX-License-Identifier: MPL-2.0
# Ownership for the hyperpolymath fork. Application/domain questions are
# routed to upstream (JoshuaJewell/MetaManifold-WebUI).

* @hyperpolymath

# Engineering estate (types, tests, CI, tooling) — fork owner
frontend/src/types/ @hyperpolymath
frontend/tests/ @hyperpolymath
frontend/bench/ @hyperpolymath
.github/ @hyperpolymath
scripts/ @hyperpolymath
Loading
Loading