bio-annotation — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited bio-annotation (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Functional annotation and taxonomy inference from sequence homology.
docs/README.md and the relevant tool guides before running anything. uv run --script skills/bio-annotation/scripts/build_annotation_artifacts.py \
raw_annotations.tsv --genomes genomes.tsv --markers marker_catalog.tsv \
--out results/bio-annotationraw_annotations.tsv is one row per protein and family hit with columns genome, protein_id, family_id, family_name, category, e_value, annotation, taxonomy, confidence, merged by you from the tool outputs below. genomes.tsv has genome, role (query|reference), domain, route; marker_catalog.tsv has category, family_id, family_name, expected. fixtures/ holds a runnable example. The driver refuses a non-empty destination, enforces globally unique protein identifiers, writes normalized Parquet tables, adds explicit absent-marker rows, and computes query-specific/missing/expanded/contracted families against the reference median. The artifact contract is in schemas/artifacts.schema.json.
/tracking-taxonomy-updates first for the BBTools-container QuickClade percontig domain screen. Use that routing table to choose the right taxonomy/QC path before interpreting protein annotations.docs/interproscan-usage.md and validate the exact CLI with --help or --version. InterProScan 5 (5.78-109.0) and the Nextflow-based InterProScan 6 (6.0.2.2) both have current releases (checked 2026-10-01). Pin one release and one InterPro data release per project.Backend choice (DIAMOND, clustered nr, MMseqs2-GPU): see docs/README.md.
/bio-viromics; use PHROG/NCVOG markers and vConTACT3 only for phage/prokaryotic-virus contexts./bio-viromics with GVClass and NCLDV marker-gene phylogeny.pyhmmer (Python bindings around HMMER 3.4 with native SIMD and batch-friendly APIs) by default; fall back to the HMMER CLI (hmmsearch / hmmscan) when an upstream tool requires it. The choice of profile libraries is derived from the literature-derived playbook for the inferred group.marker_census.tsv (columns: genome, category, family_id, family_name, copy_number, evidence_source, e_value, notes). Expected-but-absent markers are first-class rows, not silent omissions.family_copy_number_matrix.parquet. Compute per-family fold change vs the relative median; flag query-specific families, missing-expected families, expansions, and contractions in family_expansion_candidates.tsv.query_specific requires the family to be absent from every reference. When the reference median is 0 but at least one reference carries the family, the status is present_in_reference_minority with an empty fold_change: report it as a signal, never as a discovery.discovery_candidates.tsv deterministically before reporting. Sort by status in the order query_specific, missing_expected, expanded, contracted, present_in_reference_minority; then by fold_change descending, with inf first and blank or non-numeric values last; then by genome and family_id ascending. Report the top rows in that order and keep the full table.Prerequisites:
docs/README.md for expected tools.BIO_DB_ROOT to the project or site-local database directory.Inputs:
raw_annotations.tsv, genomes.tsv (at least one query and one reference), and marker_catalog.tsv with the columns listed in Instructions step 2.The driver writes every file below except the agent-authored report and logs/, and also writes run_manifest.json.
{ok, skill, out, manifest, warnings} (driver stdout contract in AGENTS.md)* stop symbols before InterProScan, or strip them deliberately.-b or -d, never both together.python3 setup.py -f interproscan.properties when required.ps_scan.pl, pfscan, and pfsearch.sbatch smoke test on 1-2 proteins before submitting a large cluster job; do not compute on the login node. On Dori use -M perceus-00 -A grp-org-sc-mgs -p dori --qos=jgi_normal with a short --time, never a debug partition or QOS./bio-viromics plus vConTACT3/GVClass as appropriate for viruses, and EukCC for Eukaryota.schemas/artifacts.schema.json; protein identifiers are globally unique.marker_census.tsv covers every literature-derived marker category for the inferred group with explicit zero rows for absent markers.family_copy_number_matrix.parquet includes the query AND the supplied relatives, and family_expansion_candidates.tsv flags query-specific, missing-expected, expanded, and contracted families with fold-change vs the relative median./bio-viromics).$BIO_DB_ROOT are an input; report a missing database instead of fetching it./bio-structure-annotation.Issue: InterProScan fails immediately with CLI or runtime setup errors Solution: Check docs/interproscan-usage.md for mutually exclusive output flags, * stripping, one-time setup.py initialization, and ProSite PATH requirements.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.