> For the complete documentation index, see [llms.txt](https://rocket-9.gitbook.io/rocket-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rocket-9.gitbook.io/rocket-docs/low-resolution-groel-sub-tomogram-average.md).

# Low Resolution GroEL Sub-Tomogram Average

This tutorial walks through refinement of the *E. coli* groEL chain H (PDB ID 8P4P) from **Figure 3** in our paper:

**"Extracting Information from Low Resolution Data"**

The goal is to show how ROCKET can build a chain into a cryoEM map that is especially low resolution or noisy.

<figure><img src="/files/JbXA2hIhWYfGMXeK7I5Z" alt=""><figcaption><p>Two distinct subunit conformations can be observed in the GroEL heptameric rings. Here we focus on refinement of chain H as an example of the conformation in the bottom ring.</p></figcaption></figure>

### 1. Collect the required files

We have prepared ROCKET inputs for download at <https://zenodo.org/records/20186329>.

Download and decompress the file:

```bash
tar xvf data_for_8p4pH.tar.gz
```

You will see a folder organized in the following manner:

```
data_for_8p4pH/
├── 8p4pH_data
│   ├── 8p4pH_docked.pdb
│   ├── 8p4pH-fixed-model-forchainH.pdb
│   ├── emd_17425_half_map_1.map
│   └── emd_17425_half_map_2.map
├── 8p4pH_fasta
│   └── 8p4pH.fasta
├── 8p4pH_preprocessing_outputs
│   ├── 8p4pH.fasta 
│   ├── alignments 
│   ├── docking_outputs
│   ├── predictions
│   ├── processed_predicted_files
│   ├── ROCKET_config_phase1.yaml
│   ├── ROCKET_config_phase2.yaml
│   ├── ROCKET_refine.yaml
│   ├── ROCKET_inputs
│   └── timings.json
├── alignments
│   └── 8p4pH
└── preprocess.sh
```

For reproducibility, we have prepared all the necessary files in `8p4pH_preprocessing_outputs`. If you want to generate them from scratch, follow [Launch with Your Own Cryo-EM Data](/rocket-docs/launch-with-your-own-cryo-em-data.md) and [rk.preprocess](/rocket-docs/api/rk.preprocess.md).

This example uses half maps, which are preferred for our error model. If you already have a predocked model for your own system and only one post-processed map, `rk.preprocess` can take `--map` alone. Keep in mind that does not work when ROCKET still needs to search for the docked placement.

### 2. Run refinement

The preprocessing step generates two YAML files for `rk.refine`. You can run refinement inside `8p4pH_preprocessing_outputs` with:

```bash
rk.refine ROCKET_refine.yaml
```

The settings used in this example are:

```yaml
note: phase1_8p4pH_refine
data:
  datamode: cryoem
  free_flag: R-free-flags
  testset_value: 1
  min_resolution: 3.0
  max_resolution: null
  voxel_spacing: 4.5
  msa_subratio: null
  w_plddt: 0.0
  downsample_ratio: null
paths:
  path: ./
  file_id: 8p4pH
  input_pdb: ./ROCKET_inputs/8p4pH-pred-aligned.pdb
  template_pdb: null
  input_msa: null
  sub_msa_path: null
  sub_delmat_path: null
  msa_feat_init_path: null
  starting_bias: null
  starting_weights: null
  uuid_hex: tutorial
execution:
  cuda_device: 0
  num_of_runs: 1
  verbose: false
algorithm:
  bias_version: 3
  iterations: 300
  init_recycling: 20
  domain_segs: null
  optimization:
    additive_learning_rate: 0.0001
    multiplicative_learning_rate: 0.001
    weight_decay: 0.0001
    batch_sub_ratio: 1.0
    number_of_batches: 1
    rbr_opt_algorithm: lbfgs
    rbr_lbfgs_learning_rate: 1.0
    smooth_stage_epochs: 50
    phase2_final_lr: 0.0001
    l2_weight: 1.0e-12
  features:
    solvent: true
    sfc_scale: false
    refine_sigmaA: true
    additional_chain: false
    total_chain_copy: 1.0
    bias_from_fullmsa: false
    chimera_profile: false
alphafold:
  use_deepspeed_evo_attention: true
monitoring:
  use_wandb: true
  wandb_project: "rocket"
  wandb_entity: <your_wandb_username>
  wandb_name: "8p4pH_refine"
  wandb_tags: ["8p4pH", "refine"]
  wandb_notes: "8p4pH refinement"
```

Note that our learning rate defaults for low resolution cryo-EM are lower. The refinement trajectory will be saved to `ROCKET_outputs`.

### 3. Find the best-scoring model

ROCKET will highlight the best scoring model during its refinement trajectory and save the final MSA cluster profile bias and weight tensors as `best_feat_weights_H_{best_iteration}.pt` and `best_msa_bias_H_{best_iteration}.pt` that can be used to re-predict the conformation found. The `postRBR_{best_iteration}.pdb` file can also be accessed directly in the output folder.

<figure><img src="/files/TJHYkZR60RcBt6gKohfz" alt=""><figcaption><p>ROCKET refines chain H into density</p></figcaption></figure>

### 4. Finalize geometry and B-factors

This will have less of an effect at low resolution, but we recommend a brief standard run of refinement (`phenix.refine` used in the paper) to refine B-factors and polish the geometry of the best scoring model coming straight out of `ROCKET` .

### Note

There is some stochasticity in the gradient descent and per-iteration rigid-body refinement steps. Two ROCKET runs started from the same inputs and parameters may still differ slightly.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://rocket-9.gitbook.io/rocket-docs/low-resolution-groel-sub-tomogram-average.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
