Skip to content
Open
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
4 changes: 2 additions & 2 deletions .secrets.baseline
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"files": "^.secrets$|^.secrets.baseline$",
"lines": null
},
"generated_at": "2026-08-05T13:33:24Z",
"generated_at": "2026-08-06T17:18:31Z",
"plugins_used": [
{
"name": "AWSKeyDetector"
Expand Down Expand Up @@ -82,7 +82,7 @@
"hashed_secret": "52b44e0998fd3bcb1929ac25818191fae050cf1d",
"is_secret": false,
"is_verified": false,
"line_number": 662,
"line_number": 829,
"type": "Secret Keyword",
"verified_result": null
}
Expand Down
51 changes: 51 additions & 0 deletions add-biomed-multi-alignment-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
name: New Nexus Package
about: Submit a new Nexus package to Algorithm Nexus
title: "feat(package): Add biomed-multi-alignment Nexus package"
labels: "nexus-package"
---

## Description

Adds the [biomed-multi-alignment](https://github.com/BiomedSciAI/biomed-multi-alignment)
package as a new Nexus package. This package provides MAMMAL (Molecular Aligned
Multi-Modal Architecture and Language), a 458M-parameter T5-style biomedical
foundation model trained on over 2 billion biological samples across proteins,
small molecules, and single-cell gene expression data.

### Changes made

- Created `packages/biomed-multi-alignment/nexus.yaml` with the Nexus package
definition.
- Created `packages/biomed-multi-alignment/models/biomed.omics.bl.sm.ma-ted-458m/model.yaml`
with the HuggingFace model ID (`ibm-research/biomed.omics.bl.sm.ma-ted-458m`)
and vLLM plugin configuration (general plugin: `mammal`).
- Added `biomed-multi-alignment` as a dependency to both the `ecosystem` and
`candidate` variants in `pyproject.toml`, pinned to release `0.2.5`
(`git+https://github.com/BiomedSciAI/biomed-multi-alignment@0.2.5`).
The package is **vllm-agnostic** (vLLM is an optional dependency via the
`[vllm]` extra), so it is added without extras for `ecosystem` and with
`[vllm]` for `candidate`.
- Updated `uv.lock` and exported updated `requirements-ecosystem.txt` and
`requirements-candidate.txt`.

### Variant classification

The package declares `vllm` as an **optional** dependency (via the `[vllm]`
extra in its `pyproject.toml`). It therefore belongs to both the **ecosystem**
and **candidate** variants per the Variant Association Rules.

## Additional Information

The vLLM plugin (`vllm_mammal_plugin`) is located under the `mammal_vllm/`
subdirectory of the repository and is included when installing with the `[vllm]`
extra. The plugin is registered via the `vllm.general_plugins` entry point and
exposes the MAMMAL model as a pooling-runner embedding model in vLLM.

## I need help with this PR

N/A — all steps completed successfully.

## Related Issues

N/A
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
model:
id: ibm-research/biomed.omics.bl.sm.ma-ted-458m
vllm:
enabled: true
plugins:
general: mammal
2 changes: 2 additions & 0 deletions packages/biomed-multi-alignment/nexus.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
package:
name: biomed-multi-alignment
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ nexus = "algorithm_nexus.cli:main"

[project.optional-dependencies]
candidate = [
"biomed-multi-alignment[vllm]",
"bmfm-targets[vllm]>=0.20.0",
# CP 02/07/2026
# Scanners are flagging opencv-python-headless==5.0.0.93 as
Expand All @@ -37,6 +38,7 @@ cli = [
"typer>=0.25.0",
]
ecosystem = [
"biomed-multi-alignment",
"bmfm-targets",
"gridfm-graphkit==0.8.1",
"terrakit>=0.2.0",
Expand Down Expand Up @@ -88,6 +90,7 @@ conflicts = [
[tool.uv.sources]
bmfm-targets = { git = "https://github.com/BiomedSciAI/biomed-multi-omic.git" }
tokamind = { git = "https://github.com/UKAEA-IBM-STFC-Fusion-FMs/tokamind", tag = "OS_v2.0" }
biomed-multi-alignment = { git = "https://github.com/BiomedSciAI/biomed-multi-alignment", rev = "0.2.5" }

[tool.uv-dynamic-versioning]
enable = true
Expand Down
736 changes: 696 additions & 40 deletions requirements-candidate.txt

Large diffs are not rendered by default.

580 changes: 548 additions & 32 deletions requirements-ecosystem.txt

Large diffs are not rendered by default.

4 changes: 1 addition & 3 deletions requirements-product.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1630,9 +1630,7 @@ nvidia-cuda-nvrtc==13.3.33 ; sys_platform == 'darwin' \
--hash=sha256:7b05ecda494c6dabc44231a608b060a71008a730d9dfda932cc508e6d29159e0 \
--hash=sha256:7d2af818851c0c224d5f92221e9226e51ee23c236df4b51f9194563979c888be \
--hash=sha256:82530788b8c6164a54d3fd9ae8bcca8893d397c4aeb998861982a03bbe41e204
# via
# humming-kernels
# nvidia-cublas
# via humming-kernels
nvidia-cuda-runtime==13.0.96 ; sys_platform != 'darwin' \
--hash=sha256:7f82250d7782aa23b6cfe765ecc7db554bd3c2870c43f3d1821f1d18aebf0548 \
--hash=sha256:ef9bcbe90493a2b9d810e43d249adb3d02e98dd30200d86607d8d02687c43f55 \
Expand Down
105 changes: 52 additions & 53 deletions ruff.toml
Original file line number Diff line number Diff line change
@@ -1,34 +1,33 @@
# Exclude a variety of commonly ignored directories.
exclude = [
".bzr",
".direnv",
".eggs",
".git",
".git-rewrite",
".hg",
".ipynb_checkpoints",
".mypy_cache",
".nox",
".pants.d",
".pyenv",
".pytest_cache",
".pytype",
".ruff_cache",
".svn",
".tox",
".venv",
".vscode",
"__pypackages__",
"_build",
"buck-out",
"build",
"dist",
"node_modules",
"site-packages",
"venv",
".bzr",
".direnv",
".eggs",
".git",
".git-rewrite",
".hg",
".ipynb_checkpoints",
".mypy_cache",
".nox",
".pants.d",
".pyenv",
".pytest_cache",
".pytype",
".ruff_cache",
".svn",
".tox",
".venv",
".vscode",
"__pypackages__",
"_build",
"buck-out",
"build",
"dist",
"node_modules",
"site-packages",
"venv",
]


# Assume Python 3.10
target-version = "py310"

Expand All @@ -37,32 +36,32 @@ target-version = "py310"
# Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or
# McCabe complexity (`C901`) by default.
select = [
# "D",
"E", # pycodestyle errors
"F", # Pyflakes
"FA", # flake8-future-annotations
"FAST", # FastAPI
"FLY", # flynt
"FURB", # refurb
"I", # isort
"ICN", # flake8-import-conventions
"INT", # flake8-gettext
"ISC", # flake8-implicit-str-concat
"NPY", # NumPy-specific rules
"PERF", # Perflint
"PGH", # pygrep-hooks
"PIE", # flake8-pie
"PT", # flake8-pytest-style
"RUF", # Ruff-specific rules
"S", # flake8-bandit
"S608", # SQL injection
"SIM", # flake8-simplify
"SLOT", # flake8-slots
"T10", # flake8-debugger
"TID", # flake8-tidy-imports
"UP", # pyupgrade
"W", # pycodestyle warnings
"YTT", # flake8-2020
# "D",
"E", # pycodestyle errors
"F", # Pyflakes
"FA", # flake8-future-annotations
"FAST", # FastAPI
"FLY", # flynt
"FURB", # refurb
"I", # isort
"ICN", # flake8-import-conventions
"INT", # flake8-gettext
"ISC", # flake8-implicit-str-concat
"NPY", # NumPy-specific rules
"PERF", # Perflint
"PGH", # pygrep-hooks
"PIE", # flake8-pie
"PT", # flake8-pytest-style
"RUF", # Ruff-specific rules
"S", # flake8-bandit
"S608", # SQL injection
"SIM", # flake8-simplify
"SLOT", # flake8-slots
"T10", # flake8-debugger
"TID", # flake8-tidy-imports
"UP", # pyupgrade
"W", # pycodestyle warnings
"YTT", # flake8-2020
]

# E501 - line too long (https://docs.astral.sh/ruff/rules/line-too-long/)
Expand Down
Loading