nvidia-bionemo/bionemo-agent-toolkit

rfd4-proteina-evaluate

Use when scoring existing RFD4-Proteina designs, aggregating metrics, adding custom metrics, or clustering diversity.

소스 보기

사용 방법

  1. 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
  2. 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
  3. 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/nvidia-bionemo/bionemo-agent-toolkit --skill rfd4-proteina-evaluate

시작 전 확인

  • 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
  • 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 Skill 문서

원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.

RFD4-Proteína Evaluate (post-hoc metrics + aggregation)

Purpose

Score structures that already exist on disk, without re-running generation. evaluate.py shares the exact same metrics stack and Hydra config as generation, so any metrics_tags or custom-metric config behaves identically inline and offline. The two things this skill exists to get right: (1) pick the right metric tags for the design task (and know which ones silently need the AF3 container), and (2) aggregate the parallel per-job CSVs into one table before you try to read results.

Run everything from the repository root (the directory containing .project-root). All arguments are Hydra `key=value`, never `--key value`.

Inline (during generation) vs post-hoc (this skill)

  • Inline — pass metrics_tags to generate.py; metrics run immediately

after each design and land in per_example_metrics.csv next to the CIFs. Best when you already know what you want measured. See rfd4-proteina-generate.

  • Post-hoc — this skill. Score a folder of CIFs you already generated, add

metrics you forgot to turn on, or re-score with different tags. Same config, same outputs.

Prerequisites

A configured model environment and existing design CIFs. Refolding additionally needs its selected oracle backend; diversity clustering needs FoldSeek.

Use the user-selected model checkout at RFPROTEINA_ROOT for model commands, configs, and upstream manuals. This catalog contains the skills, not that checkout. In helper examples, resolve open-models-skills/rfd4-proteina/<name>/... to its absolute installed path when the catalog and model checkout are separate.

Inputs

Required: the user's structure directory, metric tags, and output directory. Optional: task CSV, custom metric config, and clustering. Read thresholds from the config actually used, not an unrelated default.

Instructions

Step 1 — Run evaluate.py over a folder of structures

bash
rfd4-evaluate \
    inputs=/path/to/structures \
    metrics_tags='[design]' \
    out_dir=/path/to/eval_output
  • inputs — a directory scanned recursively for CIF-like files. Required.

To evaluate one structure, place it in a dedicated directory.

  • metrics_tags — a bracket-quoted Hydra list: '[design]',

'[unconditional_refolding]', or multiple, e.g. '[design, unconditional_refolding]'. Required (no default in configs/evaluate.yaml).

  • out_dir — required; evaluate.py has no run directory to derive one from.

Results go under out_dir/evaluation_metrics/.

  • task_csv=<csv> — optional; a CSV with designed_structure_path and task

columns when different structures need different tag/pass-criterion treatment. Otherwise every structure is scored the same way.

Design tags and refolding tags are separate namespaces — pass both families if you want both to run. See references/metrics.md for the full tag table and semantics.

Scheduler intent

For any batch run, read the selected scripts/.user_info_<cluster> and the launcher before constructing the command. Preserve the user's partition, account, QoS/priority options, GPU request, runtime, memory, and CPU settings. Use a resource override only when the user explicitly requested it. State the resolved scheduler values before submission; use dry-run or non-submitting tests when validating the workflow.

Step 2 — Aggregate across parallel jobs

Large evaluations split across SLURM array jobs; each job writes its own per_example_metrics_job{N}.csv. After all jobs finish, concatenate:

bash
python -m rfproteina.inference_utils.aggregate_metrics /path/to/eval_output/evaluation_metrics/

The metrics directory is the first positional argument. This concatenates the per-example job CSVs, writes aggregated_metrics.csv and per_task_metrics.csv, and moves the individual job files into individual_job_results/. Aggregation moves those source CSVs and can replace existing aggregate outputs. Preserve prior results before repeating it; use a fresh --output_dir for a separate aggregate (source CSVs are still moved). Flags: --output_dir <dir> to write elsewhere, --cluster_with_foldseek for diversity clustering (Step 3). With scripts/launch_evaluate.sh (or launch_generate.sh) this aggregation runs automatically as a dependent SLURM job — foldseek on by default; disable with --no-foldseek.

Step 3 — FoldSeek diversity clustering (optional)

bash
python -m rfproteina.inference_utils.aggregate_metrics /path/to/eval_output/evaluation_metrics/ \
    --cluster_with_foldseek

Adds a foldseek_cluster_id column so you can count structurally distinct designs per task. Clustering is scoped to the designed chain (the chain_of_interest, identified from conditioning annotations and stored in the metrics CSV) at a TM-score threshold of 0.5. FOLDSEEK_EXEC in the active environment must point at the FoldSeek executable. Post-hoc evaluate.py writes the designed-chain CIFs that its aggregation step needs. Generation-time aggregation instead requires save_chain_of_interest=true so generation writes those chain CIFs.

Step 4 — Custom metrics (no tracked-file edits)

Both custom-metric directories are git-ignored, so nothing you add here is ever committed:

  • src/rfproteina/metrics/custom_metrics/ — your Python Metric subclasses.
  • configs/metrics/custom_metrics/all_custom_metrics.yaml — Hydra registration

(scaffolded by setup.sh on first run; # @package metrics).

They are picked up automatically (no extra flags), and results land in per_example_metrics.csv prefixed by the config key (e.g. residue_count.n_residues). Often you don't even need new Python — an existing ready-made-but-opt-in class (interface ddG, atom-pair distance constraints, charge complementarity, ...) just needs a few lines of YAML. See docs/workflow/custom-metrics.md and references/metrics.md.

The AF3-container caveat (read this)

Refolding metrics (refolded_backbone_rmsd, refolded_motif_*_rmsd, ...) and the refolding oracles (oracle, oracle_ppi, oracle_dna — the AF3 variants) run the AF3 structure predictor, which runs only inside an apptainer/docker container configured via the cluster env files. Plain (non-refolding) design metrics like [design] do not need a container. If you request a refolding tag without the container, those metrics silently do not run — you get no oracle columns and no error. Configure the container first (see rfd4-proteina-setup, RFD4-Proteína installation guide, or use scripts/launch_evaluate.sh ... which wires it in.

Metrics-tag reference

A compact table of the imported metric, oracle, pass-criterion, and filter entries, their categories and config paths, the tag semantics (required_tags_any / required_tags_all / prohibited_tags), and the opt-in classes is in references/metrics.md. The full source of truth is docs/workflow/metrics.md.

Outputs

FileWritten byContents
per_example_metrics.csv (or per_example_metrics_job{N}.csv)evaluate.py / generate.pyOne row per design; metric columns prefixed by config key
aggregated_metrics.csvaggregate_metricsAll per-example rows concatenated; adds foldseek_cluster_id with --cluster_with_foldseek
per_task_metrics.csvaggregate_metricsPer-task summary (pass rates, means, cluster counts)
individual_job_results/aggregate_metricsThe original per-job CSVs, moved aside

Troubleshooting

SymptomFix
No oracle / refolding columns, no errorRefolding needs the AF3 container — configure it or use launch_evaluate.sh; plain [design] metrics need no container
metrics_tags metric silently skippedTags are matched by set intersection; pass the exact tag string a metric declares (design vs refolding are separate namespaces)
foldseek clustering does nothingSet FOLDSEEK_EXEC; for generation-time aggregation also set save_chain_of_interest=true before generation
out_dir missing / config errorout_dir is mandatory for evaluate.py; there is no run dir to infer it from
Hydra "could not override" / arg ignoredUse key=value, not --key value; quote list values as metrics_tags='[design]'
Only job CSVs present, no aggregateRun python -m rfproteina.inference_utils.aggregate_metrics <metrics_dir> after all jobs finish

For deeper detail: metrics reference · docs/workflow/metrics.md · docs/workflow/custom-metrics.md · Evaluating Results.

Limitations

Missing refolding columns mean unmeasured results. Metric and pass-rate interpretations depend on the exact model revision, providers, and criteria configuration.

Examples

The Step 1 command scores existing CIFs with the design tag. Steps 2 and 3 show aggregation with and without FoldSeek; choose the requested operation and a fresh result destination.

관련 작업

같은 저장소의 Skills

더 많은 Skills

모든 Skills
nvidia-bionemo
커뮤니티

msa-search-nim

Generate multiple sequence alignments (MSAs) for protein sequences using the ColabFold MSA-Search NIM. Use for homolog search, UniRef30/ColabFold env searches, A3M or FASTA alignments, paired MSA search for complexes, PDB70 structural templates, hosted NVIDIA API calls, or local Docker deployment. For local deployment, download the databases in parallel with aria2c and launch via NIMMODELNAME (the recommended default fast path, ~14 min vs over 80 min for the built-in downloader); a plain docker

설치 수
2
GitHub Stars
488
업데이트
10월 21일
nvidia-bionemo
커뮤니티

msa-structure-prediction-pipeline

NOTE: your protein sequence and the retrieved MSA alignment are transmitted to external NVIDIA-hosted APIs (health.api.nvidia.com) on every call. Use local NIM containers for confidential or proprietary sequences. Run a complete protein structure prediction pipeline using NVIDIA BioNeMo NIMs: search for MSA alignments with MSA-Search (ColabFold), then predict the structure with OpenFold3 using the retrieved alignments. Use this skill whenever the user wants to predict a protein structure with ma

설치 수
2
GitHub Stars
488
업데이트
10월 21일
nvidia-bionemo
커뮤니티

openfold3-nim

Use this skill for OpenFold3, NVIDIA's BioNeMo NIM microservice for biomolecular structure prediction. Invoke whenever the user mentions OpenFold3 or needs protein, protein-ligand, protein-DNA/RNA, or multi-chain complex prediction with the hosted NVIDIA API or local Docker NIM. Covers endpoint choice, auth, request payloads, output artifacts, confidence scores, and local container setup.

설치 수
2
GitHub Stars
488
업데이트
10월 21일
nvidia-bionemo
커뮤니티

protein-binder-design

Orchestrate an end-to-end de novo protein binder design campaign against a protein target by composing BioNeMo NIM skills. Use for binder design, minibinder design, de novo binders, RFdiffusion + ProteinMPNN + Boltz2/OpenFold3 pipelines, epitope/hotspot-targeted design, in-silico binder validation, and ranking designs by interface confidence.

설치 수
2
GitHub Stars
488
업데이트
10월 21일