A command line tool to run various biomolecular structural prediction, analysis and design applications using containerized environments.
rc provides a unified interface for running Rosetta and other biomolecular modeling applications through container engines like Docker, Singularity, or Apptainer.
cargo install --path .Score a PDB structure file using Rosetta:
rc run -w /path/to/working/directory rosetta score \
-out:file:scorefile output.sc \
-in:file:s structure.pdbThis command will:
- Use the default Docker container engine
- Mount the working directory into the container
- Run the Rosetta score application
- Output the score file to
output.sc - Log the executed command to a log file for reproducibility
You can specify which container engine to use with the -e flag:
rc run -e singularity rosetta score -in:file:s structure.pdbSupported container engines:
docker(default)singularityapptainernone(run natively without containers)
The -w flag specifies the working directory that will be mounted into the container:
rc run -w ./data rosetta score -in:file:s input.pdbIf not specified, the current directory (.) is used by default.
Every command executed by rc is automatically logged to <working-dir>/.NNNN.rc.log, where NNNN is a sequential number incremented with each command run in that directory. This provides:
- Reproducibility - Review and replay exact commands that were run
- Debugging - Trace what commands were executed in case of issues
- Documentation - Keep a record of all operations performed
Each log file contains:
- The exact command line used to invoke
rc - Full output logs from the executed application
- Timestamp and execution details
For example, your first run creates .0000.rc.log, the second creates .0001.rc.log, and so on.
Run an application with optional arguments.
rc run [OPTIONS] <APP> [ARGS]...Options:
-w, --working-dir <PATH>- Input directory path (default: current directory)-e, --container-engine <ENGINE>- Container engine to use (default: docker)
Available Apps:
rosetta- Run Rosetta protocols and applicationsscore- Run Rosetta score command (shorthand for common scoring tasks)pyrosetta- Execute PyRosetta Python scripts with PyRosetta environmentrfdiffusion- Run RFdiffusion for protein structure generationproteinmpnn- Run ProteinMPNN for protein sequence designproteinmpnn-script- Run ProteinMPNN helper scripts for preprocessing and analysisligandmpnn- Run LigandMPNN for protein-ligand interface design
Install an application (not yet implemented).
rc install <APP>Clean an app installation (not yet implemented).
rc clean <APP>rc run rosetta score \
-out:file:scorefile my_scores.sc \
-in:file:s my_protein.pdbrc run rosetta relax \
-in:file:s input.pdb \
-relax:fastExecute PyRosetta Python scripts directly using the -c flag for inline code:
rc run pyrosetta -c 'import pyrosetta; pyrosetta.init(); pose=pyrosetta.pose_from_pdb("1brs.pdb"); print("SCORE:", pyrosetta.get_score_function()(pose) )'Or run a Python script file:
rc run pyrosetta my-pyrosetta-script.pyrc run pyrosetta design_script.pyrc run rfdiffusion inference.py \
inference.output_prefix=output/sample \
inference.num_designs=10rc run rfdiffusion inference.py \
inference.output_prefix=output/motif_scaffold \
inference.input_pdb=motif.pdb \
'contigmap.contigs=[10-40/A163-181/10-40]'rc run proteinmpnn \
--pdb_path structure.pdb \
--pdb_path_chains "A B"This will generate designed sequences in the seqs/ directory within your working directory.
rc run proteinmpnn \
--pdb_path structure.pdb \
--pdb_path_chains "A" \
--num_seq_per_target 10 \
--sampling_temp 0.1rc run -w /data/structures rosetta score \
-out:file:scorefile results/scores.sc \
-in:file:s protein.pdbrc run -e singularity rosetta score \
-in:file:s structure.pdbEnable verbose output with the -v flag:
rc -v run rosetta score -in:file:s structure.pdbThis will show detailed information including the exact command being executed and where it's being logged.
- One of the supported container engines (Docker, Singularity, or Apptainer)
- Appropriate container images for the applications you want to run
See LICENSE file for details.
Sergey Lyskov