Protify Documentation Hub

July 28, 2026 ยท View on GitHub

Protify is a low-code platform for training and evaluating protein language models on property-prediction and benchmarking tasks. You can run it via CLI, YAML config, or a Tk GUI, with optional cloud compute (Modal) and precomputed embeddings. This hub is the entry point for all Protify documentation.

For the full project story, installation options, and high-level usage, see the main README in the repository root.


Quick start

  1. Install: pip install -e . from the repo root (or use the Docker image). With Docker: run from repo root using the Getting started Docker section (no need to cd into src/protify).

  2. Minimal CLI run (one model, one dataset, probe-only):

    py -m src.protify.main --model_names ESM2-8 --data_names DeepLoc-2 --num_epochs 2
    
  3. YAML run: Edit src/protify/yamls/base.yaml and run:

    py -m src.protify.main --yaml_path src/protify/yamls/base.yaml
    

Results and logs go to results/ and logs/ by default. For full install options and where outputs go, see Getting started.


Documentation map

SectionDescriptionLink
Getting startedInstallation (pip, venv, Docker), entry points, first CLI and YAML runs, output locationsgetting_started.md
ConfigurationAll CLI argument groups, YAML config (base.yaml), merge behavior, model_names vs model_paths, full examplescli_and_config.md
DataDataArguments, supported datasets, data_dirs, loading flow, column normalization, translation flags, dataset classesdata.md
Models and embeddingsBase models (model_names / model_paths), get_base_model and get_tokenizer, EmbeddingArguments, Embedder flow, pooling, SQL vs PTHmodels_and_embeddings.md
Probes and trainingProbe types (linear, transformer, lyra), ProbeArguments, TrainerArguments, training flows, vectorized multi-seed linear probes, preflight planning, validation, num_runs, save/exportprobes_and_training.md
Model componentsFor developers: attention, attention_utils, transformer, mlp; which probes use whichmodel_components.md
ProteinGymProteinGymRunner, scoring methods, run_proteingym_zero_shot, CLI args, compare_scoring_methods, benchmarkproteingym.md
Visualizationcreate_plots (TSV format, six PNGs), regression vs classification metrics, ci_plots, CLIvisualization.md
Embedding clusteringCluster saved vector or matrix embeddings, optional scaling, algorithm comparison, assignments, metrics, and diagnostic plotsclustering.md
Logging and replayMetricsLogger, results TSV shape, log_metrics, LogReplayer, replay flowlogging_and_replay.md
Hyperparameter optimizationW&B sweep, sweep.yaml, HyperoptModule, CLI args, best-config rerunhyperparameter_optimization.md
ModalTk GUI Modal tab and modal_backend vs legacy Gradio app, config and path rewriting, deploy and runmodal.md
GUITk GUI tabs, settings and full_args, flow (session, data, embeddings, trainer), background tasksgui.md
ResourcesListing supported models and datasets (CLI and programmatic)resource_listing.md
Testingtesting_suite layout, how to run pytest, Docker notetesting.md

Architecture overview

flowchart LR
  CLI[CLI / YAML]
  GUI[Tk GUI]
  MP[MainProcess]
  DataM[DataMixin]
  Embed[Embedder]
  Probe[get_probe]
  Train[TrainerMixin]
  Log[MetricsLogger]
  CLI --> MP
  GUI --> MP
  MP --> DataM
  MP --> Embed
  MP --> Probe
  MP --> Train
  MP --> Log
  DataM --> Embed
  Embed --> Train
  Probe --> Train
  Train --> Log
  Log --> results[results / plots]

See also