{"id":46097388,"url":"https://github.com/rosettacommons/rc","last_synced_at":"2026-04-02T15:13:13.064Z","repository":{"id":323584002,"uuid":"1093833808","full_name":"RosettaCommons/rc","owner":"RosettaCommons","description":"Utility to run RosettaCommons tools","archived":false,"fork":false,"pushed_at":"2026-02-24T01:50:05.000Z","size":156,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-24T08:21:26.720Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RosettaCommons.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-10T22:46:58.000Z","updated_at":"2026-02-24T01:50:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/RosettaCommons/rc","commit_stats":null,"previous_names":["rosettacommons/rc"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/RosettaCommons/rc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RosettaCommons%2Frc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RosettaCommons%2Frc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RosettaCommons%2Frc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RosettaCommons%2Frc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RosettaCommons","download_url":"https://codeload.github.com/RosettaCommons/rc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RosettaCommons%2Frc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29980792,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T16:35:47.903Z","status":"ssl_error","status_checked_at":"2026-03-01T16:35:44.899Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-01T19:01:45.956Z","updated_at":"2026-04-02T15:13:13.051Z","avatar_url":"https://github.com/RosettaCommons.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RosettaCommons Run\n\nRosettaCommons Run utility (`rc`) is a command-line tool for running and reproducing calculations with containerized biomolecular software. It simplifies common tasks such as mounting local directories, building HPC containers, running containerized applications, and logging executed commands, helping you run complex workflows reliably and repeatably. Designed for reproducible research, `rc` aims to become a seamless part of your daily computational workflow.\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Installation](#installation)\n  - [Using Pre-built Binaries (Recommended)](#using-pre-built-binaries-recommended)\n  - [Build from Source](#build-from-source)\n- [Basic Usage](#basic-usage)\n  - [Running Rosetta Score](#running-rosetta-score)\n  - [Specifying a Container Engine](#specifying-a-container-engine)\n  - [Working Directory](#working-directory)\n- [Command Logging](#command-logging)\n- [Commands](#commands)\n  - [`run`](#run)\n  - [`install`](#install)\n  - [`clean`](#clean)\n- [App Usage Examples](#app-usage-examples)\n  - [Rosetta](#rosetta)\n  - [PyRosetta](#pyrosetta)\n  - [RFdiffusion](#rfdiffusion)\n  - [ProteinMPNN](#proteinmpnn)\n  - [ProteinMPNN-Script](#proteinmpnn-script)\n  - [Foundry](#foundry)\n  - [General Options](#general-options)\n- [Verbose Mode](#verbose-mode)\n\n## Overview\n\n`rc` provides a unified interface for running Rosetta and other biomolecular modeling applications through container engines like Docker, Singularity, or Apptainer — or natively without containers using [Pixi](https://pixi.sh)-managed environments.\n\n**Available Apps:**\n- [`rosetta`](https://docs.rosettacommons.org/docs/latest/Home) - Run Rosetta protocols and applications\n- [`score`](https://docs.rosettacommons.org/docs/latest/application_documentation/analysis/score-commands) - Run Rosetta score command (shorthand for common scoring tasks)\n- [`pyrosetta`](https://www.pyrosetta.org/) - Execute PyRosetta Python scripts with PyRosetta environment\n- [`rfdiffusion`](https://sites.google.com/omsf.io/rfdiffusion) - Run RFdiffusion for protein structure generation\n- [`proteinmpnn`](https://github.com/dauparas/ProteinMPNN) - Run ProteinMPNN for protein sequence design\n- [`proteinmpnn-script`](https://github.com/dauparas/ProteinMPNN) - Run ProteinMPNN helper scripts for preprocessing and analysis\n- [`ligandmpnn`](https://github.com/dauparas/LigandMPNN) - Run LigandMPNN for protein-ligand interface design\n- [`foundry`](https://rosettacommons.github.io/foundry/) - Run Foundry toolkit (RFDiffusion3, LigandMPNN, RoseTTAFold3) for integrated protein design workflows\n\nSee [App Usage Examples](#app-usage-examples) for how to run each of these tools using `rc`.\n\n**Container Engine Support:**\n\n\u003e [!NOTE]\n\u003e Here, 'Native' means that `rc` can work with a local (non-containerized) installation of a particular tool. \n\n| App | Docker | HPC Containers (Singularity/Apptainer) | Native |\n|-----|--------|----------------------------------------|--------|\n| `rosetta` | ✓ | ✓ | ✓ |\n| `score` | ✓ | ✓ | ✓ |\n| `pyrosetta` | ✓ | ✓ |  |\n| `rfdiffusion` | ✓ | ✓ | ✓ |\n| `proteinmpnn` | ✓ | ✓ | ✓ |\n| `proteinmpnn-script` | ✓ | ✓ | ✓ |\n| `ligandmpnn` | ✓ | ✓ | ✓ |\n| `foundry` | ✓ | ✓ | ✓ |\n\n## Installation\n\n### Using Pre-built Binaries (Recommended)\n\nThe easiest way to install `rc` is to download a pre-built binary for your platform:\n\n- **[Nightly builds](https://github.com/RosettaCommons/rc/releases/tag/nightly)** - Latest development version with newest features\n- **[Stable releases](https://github.com/RosettaCommons/rc/releases)** - Tested and stable versions\n\nDownload the appropriate binary for your operating system, make it executable, and add it to your PATH.\n\n### Build from Source\n\n`rc` uses `cargo`, Rust's package manager and build tool, for fast and seamless installation. To run the following command, you will need to have [Rust installed](https://rust-lang.org/tools/install/). \n\n```bash\ncargo install --path .\n```\n\n## Basic Usage\n\n### Running Rosetta Score\n\nScore a PDB structure file using Rosetta:\n\n```bash\nrc run -w /path/to/working/directory rosetta score \\\n    -out:file:scorefile output.sc \\\n    -in:file:s structure.pdb\n```\n\nThis command will:\n- Use the default [Docker](https://www.docker.com/) container engine\n- Mount the working directory into the container\n- Run the Rosetta score application\n- Output the score file to `output.sc`\n- Log the executed command to a log file for reproducibility, see [Command Logging](#command-logging)\n\n### Specifying a Container Engine\n\nYou can specify which container engine to use with the `-e` flag:\n\n```bash\nrc run -e singularity rosetta score -in:file:s structure.pdb\n```\n\nSupported container engines:\n- [`docker`](https://docs.docker.com/engine/install/) (default)\n- [`singularity`](https://docs.sylabs.io/guides/latest/user-guide/)\n- [`apptainer`](https://apptainer.org/)\n- `none` (run natively without containers - supported by RFDiffusion and Foundry)\n\n### Working Directory\n\nThe `-w` flag specifies the working directory that will be mounted into the container:\n\n```bash\nrc run -w ./data rosetta score -in:file:s input.pdb\n```\n\nIf not specified, the current directory (`.`) is used by default.\n\n## Command Logging\n\nEvery command executed by `rc` is automatically logged to `\u003cworking-dir\u003e/.NNNN.rc.log`, where `NNNN` is a sequential number incremented with each command run in that directory. This provides:\n- **Reproducibility** - Review and replay exact commands that were run\n- **Debugging** - Trace what commands were executed in case of issues\n- **Documentation** - Keep a record of all operations performed\n\nEach log file contains:\n- The exact command line used to invoke `rc`\n- Full output logs from the executed application\n- Timestamp and execution details\n\nFor example, your first run creates `.0000.rc.log`, the second creates `.0001.rc.log`, and so on.\n\n## Commands\n\n### `run`\n\nRun an application with optional arguments.\n\n```bash\nrc run [OPTIONS] \u003cAPP\u003e [ARGS]...\n```\nThe `[OPTIONS]` are `rc`-specific, while the `[ARGS]` are specific to the app you are running.\n\n**Options:**\n- `-w, --working-dir \u003cPATH\u003e` - Input directory path (default: current directory)\n- `-e, --container-engine \u003cENGINE\u003e` - Container engine to use (default: docker)\n\n### `install`\n\nPre-install (pull or build) the container image or native environment for an app. The `-e` flag is required.\n\n```bash\nrc install \u003cAPP\u003e -e \u003cENGINE\u003e\n```\n\n**Options:**\n- `-e, --container-engine \u003cENGINE\u003e` - Container engine to install for (**required**)\n\n**What it does per engine:**\n- **`docker`** - Pulls the app's Docker image if not already present locally\n- **`singularity` / `apptainer`** - Pre-builds the `.sif` image file into the local cache\n- **`none`** (native) - Installs the [Pixi](https://pixi.sh) environment for the app\n\n**Examples:**\n\n```bash\n# Pull the Docker image for RFdiffusion\nrc install rfdiffusion -e docker\n\n# Pre-build the Singularity image for Rosetta\nrc install rosetta -e singularity\n\n# Set up the native Pixi environment for RFdiffusion\nrc install rfdiffusion -e none\n```\n\n### `clean`\n\nRemove cached images and native environments for one app or all apps.\n\n```bash\n# Clean a specific app across all engines\nrc clean \u003cAPP\u003e\n\n# Clean a specific app for one engine\nrc clean \u003cAPP\u003e -e \u003cENGINE\u003e\n\n# Clean all apps across all engines\nrc clean --all\n```\n\n**Arguments:**\n- `\u003cAPP\u003e` - The app to clean (required unless `--all` is specified)\n\n**Options:**\n- `-a, --all` - Clean all apps (cannot be combined with `\u003cAPP\u003e` or `-e`)\n- `-e, --container-engine \u003cENGINE\u003e` - Limit cleaning to a specific engine (cannot be combined with `--all`)\n\n**What it does per engine:**\n- **`docker`** - Removes the app's Docker image (`docker image rm`)\n- **`singularity` / `apptainer`** - Deletes the pre-built `.sif` image file from the cache\n- **`none`** (native) - Removes the app's Pixi environment directory from the cache\n\n**Examples:**\n\n```bash\n# Remove the Docker image for ProteinMPNN\nrc clean proteinmpnn -e docker\n\n# Remove all cached Singularity images\nrc clean --all -e singularity\n\n# Remove everything cached for all apps across all engines\nrc clean --all\n```\n\n## App Usage Examples\n\n### Rosetta\n\n#### Score a single structure\n\n```bash\nrc run rosetta score \\\n    -out:file:scorefile my_scores.sc \\\n    -in:file:s my_protein.pdb\n```\n\n#### Run other Rosetta protocols\n\n\u003e [!IMPORTANT]\n\u003e A list of available Rosetta protocols/applications can be found [here](https://docs.rosettacommons.org/docs/latest/application_documentation/Application-Documentation). \n\n```bash\nrc run rosetta relax \\\n    -in:file:s input.pdb \\\n    -relax:fast\n```\n\n### PyRosetta\n\n#### Running PyRosetta Scripts\n\nExecute PyRosetta Python scripts directly using the `-c` flag for inline code:\n\n```bash\nrc run pyrosetta -c 'import pyrosetta; pyrosetta.init(); pose=pyrosetta.pose_from_pdb(\"1brs.pdb\"); print(\"SCORE:\", pyrosetta.get_score_function()(pose) )'\n```\n\nOr run a Python script file:\n\n```bash\nrc run pyrosetta my-pyrosetta-script.py\n```\n\n#### Run a PyRosetta script file\n\n```bash\nrc run pyrosetta design_script.py\n```\n\n### RFdiffusion\n\nRFdiffusion supports native runs without containers ((uses `-e none`).\n\n#### Generate a protein backbone\n\n```bash\nrc run rfdiffusion inference.py \\\n    inference.output_prefix=output/sample \\\n    inference.num_designs=10\n```\n\n#### Conditional generation with a motif\n\n```bash\nrc run rfdiffusion inference.py \\\n    inference.output_prefix=output/motif_scaffold \\\n    inference.input_pdb=motif.pdb \\\n    'contigmap.contigs=[10-40/A163-181/10-40]'\n```\n\n### ProteinMPNN\n\n#### Design sequences for a protein structure\n\n```bash\nrc run proteinmpnn \\\n    --pdb_path structure.pdb \\\n    --pdb_path_chains \"A B\"\n```\n\nThis will generate designed sequences in the `seqs/` directory within your working directory.\n\n#### Design with custom parameters\n\n```bash\nrc run proteinmpnn \\\n    --pdb_path structure.pdb \\\n    --pdb_path_chains \"A\" \\\n    --num_seq_per_target 10 \\\n    --sampling_temp 0.1\n```\n\n### ProteinMPNN-Script\n\nProteinMPNN-Script provides access to helper scripts for preprocessing structures and analyzing ProteinMPNN results.\n\n#### Parse multiple PDB chains\n\n```bash\nrc run proteinmpnn-script parse_multiple_chains.py --input_path=monomers --output_path=parsed_pdbs.jsonl\n```\n\n\n### Foundry\n\nFoundry provides an integrated toolkit combining RFDiffusion3 (rfd3), LigandMPNN (mpnn), and RoseTTAFold3 (rf3) for comprehensive protein design workflows. It supports native runs without containers (uses `-e none`).\n\n#### Complete workflow example\n\n\u003e [!NOTE]\n\u003e Each `rc run` invocation will produce a separate log file. So even though\n\u003e these commands are run as part of a workflow, each will produce its own log file.\n\nFirst, create an input JSON file (e.g., `input.json`):\n\n```bash\necho '{ \"foundry\": { \"length\": \"10\" } }' \u003e input.json\n```\n\nThen run the three-step workflow:\n\n**Step 1: Run RFDiffusion3 for structure generation**\n\n```bash\nrc run foundry rfd3 \\\n    out_dir=rfd3_out/ \\\n    inputs=input.json \\\n    skip_existing=False \\\n    prevalidate_inputs=True \\\n    n_batches=1 \\\n    diffusion_batch_size=1 \\\n    inference_sampler.num_timesteps=10 \\\n    low_memory_mode=True \\\n    global_prefix=design_\n```\n\n**Step 2: Run LigandMPNN for sequence design**\n\n```bash\nrc run foundry mpnn \\\n    --structure_path rfd3_out/design_foundry_0_model_0.cif.gz \\\n    --is_legacy_weights True \\\n    --model_type ligand_mpnn \\\n    --out_directory mpnn_out\n```\n\n**Step 3: Run RoseTTAFold3 for structure prediction**\n\n```bash\nrc run foundry rf3 fold \\\n    inputs=mpnn_out/design_foundry_0_model_0.cif_b0_d0.cif \\\n    diffusion_batch_size=1 \\\n    num_steps=10 \\\n    out_dir=rf3_out\n```\n\n#### Using explicit weights specification\n\nYou can specify custom checkpoint paths for the models:\n\n```bash\n# RFDiffusion3 with custom checkpoint\nrc run foundry rfd3 \\\n    out_dir=rfd3_out/ \\\n    inputs=input.json \\\n    ckpt_path=/weights/rfd3_latest.ckpt \\\n    skip_existing=False \\\n    prevalidate_inputs=True \\\n    n_batches=1 \\\n    diffusion_batch_size=1 \\\n    inference_sampler.num_timesteps=10 \\\n    low_memory_mode=True \\\n    global_prefix=design_\n\n# LigandMPNN with custom checkpoint\nrc run foundry mpnn \\\n    --structure_path rfd3_out/design_foundry_0_model_0.cif.gz \\\n    --checkpoint_path /weights/ligandmpnn_v_32_010_25.pt \\\n    --is_legacy_weights True \\\n    --model_type ligand_mpnn \\\n    --out_directory mpnn_out\n\n# RoseTTAFold3 with custom checkpoint\nrc run foundry rf3 fold \\\n    inputs=mpnn_out/design_foundry_0_model_0.cif_b0_d0.cif \\\n    ckpt_path=/weights/rf3_foundry_01_24_latest_remapped.ckpt \\\n    diffusion_batch_size=1 \\\n    num_steps=10 \\\n    out_dir=rf3_out\n```\n\n### General Options\n\n#### Using with different working directory\n\n```bash\nrc run -w /data/structures rosetta score \\\n    -out:file:scorefile results/scores.sc \\\n    -in:file:s protein.pdb\n```\n\n#### Using Singularity instead of Docker\n\n```bash\nrc run -e singularity rosetta score \\\n    -in:file:s structure.pdb\n```\n\n## Verbose Mode\n\nEnable verbose output with the `-v` flag:\n\n```bash\nrc -v run rosetta score -in:file:s structure.pdb\n```\n\nThis will show detailed information including the exact command being executed and where it's being logged.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frosettacommons%2Frc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frosettacommons%2Frc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frosettacommons%2Frc/lists"}