Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ jobs:
type=ref,event=pr
type=sha,format=short

- uses: docker/setup-qemu-action@v3

- uses: docker/setup-buildx-action@v3

- name: Build (load locally for the smoke test)
Expand Down Expand Up @@ -81,6 +83,7 @@ jobs:
with:
context: .
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: VERSION=${{ steps.meta.outputs.version }}
Expand Down
32 changes: 32 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: tests

# The test suite in the pixi `test` environment on Linux x86-64 and on macOS (Apple Silicon).
on:
pull_request:
push:
branches: [main]
workflow_dispatch:

permissions:
contents: read

jobs:
pytest:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: prefix-dev/[email protected]
with:
environments: test
locked: true
- name: Tests
run: pixi run -e test pytest tests -q
- name: Smoke test
run: |
pixi run matpredict --version
pixi run matpredict detect --help > /dev/null
pixi run bash -c 'for t in tblastn diamond miniprot exonerate mafft augustus taxonkit; do command -v $t > /dev/null || { echo "missing $t"; exit 1; }; done'
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ release completed.
## [Unreleased]

### Added
- Platforms: `pixi.toml` and `pixi.lock` now cover `osx-arm64` and `linux-aarch64` as well as `linux-64`; a `tests` workflow runs the suite (`pixi run -e test pytest tests`) and a smoke test on Linux and macOS; the Docker image is built for `linux/amd64` and `linux/arm64`. The re-lock also moved the `linux-64` pins, so run the regression check against it.
- Five accepted tier-3 records (curator sign-off 2026-10-30, J. Stajich): *Saccharomycopsis schoenii* GDD12 MATss (MATa-MATalpha left cluster and MATa right cluster, `db/Ascomycota/Ascoideales/`), *Barnettozyma californica* PB4207 MATbz and *Petasospora fabianii* MATpf (JOY008 MATa, TBRC 4498 MATalpha, `db/Ascomycota/Phaffomycetales/`). The gene models are our own (RNA-seq for *S. schoenii*, sequence-based for the others). With them, 20 of the 21 genomes that lose every MATsc/MTL call under the v0.8 cross-family rules are called again by their own family (trial run, `--preset v0.8`); *Ogataea degrootiae* GCA_019232045.1 stays uncalled.
- Raw-reads wave 2 (`datasets/reads/sra_survey/pilot/wave2/`): 55 more tier A, A1 and B species typed (1,468 runs; 13 confirmed, 16 provisional, 7 provisional-homothallic, 49 withheld), yeast idiomorph names (a / alpha, P / M, A / B) carried through, *Botrytis cinerea* typed on all 333 eligible samples. Species reports gain an allele-count table for all studies pooled or study by study, per run or per clone, and clone groups for every species with 10 or more sketched runs (average linkage at 0.998; counts per clone only where the clone number is stable). Output only; the genome tables and the database are unchanged.
- Idiomorph labels beside the raw names (curator rulings of 2026-10-28): `scripts/idiomorph_label_registry.json` (lineage and reference-organism codes, cell tokens, gene maps), `scripts/idiomorph_labels.py`, `scripts/label_loci_table.py`; the site data carry `label_alleles` in `taxa.json`, `call_label` / `alleles_label` in the genome tables and `data/idiomorph_labels.json`, and the explorer shows `Lineage__System_Cell` labels (for example `Taphr__SchPom_M`, `Sacch__CanAlb_alpha`, `Peziz__AspFum_MAT1-1`) with the raw name and the reference organism in the tooltip, and a switch back to the raw names. Output only: the database, the reports and the raw columns are unchanged. All 27,885 v0.7.0 loci are labelled. Duplicate family calls (`scripts/dedupe_family_calls.py`) are not removed from the counts.
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,8 @@ apptainer pull matpredict.sif docker://ghcr.io/stajichlab/matpredict:latest
apptainer run matpredict.sif detect --genome genome.fna --taxid 4837 --out-dir out
```

**macOS (Apple Silicon).** `pixi install` works natively on `osx-arm64` (every tool in `pixi.toml` resolves there); the Docker image is also published for `linux/arm64`.

**Conda / mamba.** [environment.yml](environment.yml) lists the same packages
as `pixi.toml` (exported with `pixi workspace export conda-environment`). Run
from the repository root, because it installs MATPredict from the checkout:
Expand Down
Loading
Loading