Skip to the content.

T1/T2 ^15N relaxation tutorial: TopSpin processing → Bruker Dynamics Center


What we measured

Every day for 7 days in total we measured the following spectra:

(Bruker pulse programs commonly used: hsqct1etf3gpsi3d and hsqct2etf3gpsi3d or close variants. These acquire HSQC planes versus relaxation delay in a pseudo-3D dataset.)

Pseudo-3D note: the third “dimension” is a non-frequency delay axis, so you only Fourier-transform the frequency axes (^1H and ^15N), and leave the delay axis as a series of 2D planes. TopSpin and Dynamics Center are built for exactly this.


Part A — Process each standard ^15N HSQC (QC) in TopSpin

Use standard 2D processing as described in the 15N HSQC Processing tutorial. If you don’t have it already, then save a high-quality peak list for the ^15N HSQC of day 1. This will be your reference list for all seven days in Dynamics Center.


Part B — Process each pseudo-3D T1/T2 dataset in TopSpin

  1. Transform the frequency axes and set phasing from a representative plane. Assuming that you have set biotop correctly (!), open the first T1 pseudo-3D dataset (experiment 4) and issue the following commands:
btproc biorefonly   # referencing
3 SI 4k       ; zero filling in the direct dimension
2 SI 1k       ; zero filling in the 15N (F2) dimension
2 ME_mod LPfc ; activate linear correction in the 15N dimension
2 NCOEF 48    # increate linear prediction coefficients
tf3           ; FT in the 1H dimension
tf2           ; FT in the 15N dimension
slice         ; extract the first F2–F3 plane to process it

You do not Fourier-transform along the delay axis (dimension F1) for pseudo-3D T1/T2; keep it as a series of 2D planes. (Dynamics Center will use those planes to fit intensities vs. delay.)

  1. Process the 2D plane (orientation 23) to phase it like a normal ^15N HSQC, then store the phase back to the 3D.

  2. Overlay with the QC ^15N HSQC (experiment 3) using .md, zoom into the region of interest, right-click and save the display region to STSR/STSI. Copy these numbers to the pseudo-3D spectrum.

overlay

At the bottom left there are tryptophan side-chain amide peaks. You can safely exclude them from the focus region since we are interested in the relaxation properties of the backbone amides only.

Tip — window/truncation: Zoom the ^1H (F2) range to your HSQC window (excluding the water line ≈ 4.7 ppm) before baseline correction; this avoids water-line artifacts influencing the polynomial baseline. Then apply baseline. (TopSpin’s ABSG governs baseline polynomial degree used by abs1/abs2.)

  1. Run baseline correction on the pseudo-3D spectrum:
abs3    ; on the direct dimension; we don't need to set ABSF2{F3} after the water line at ~4.7 ppm because we truncate with STSR/STSI
        ; the ABSF1{F3} must always be left to a high value like 1000 ppm.
abs2    ; we leave ABSF1{F2} and ABSF2{F2} to high values, like 1000 ppm and -1000 ppm, respectively.
  1. Hit edmac process_T1 to create a new macro. Then an editor will pop up. Adjust its contents to look like the following (SI, PHC0, STSR, STSI values will vary in your case):
btproc biorefonly
3 SI 4k
2 SI 1k
2 STSR 112
2 ME_mod LPfc
2 NCOEF 48
3 STSR 630
3 STSI 920
3 PHC0 120.525
tf3
tf2
tabs3
tabs2

Try process_T1 macro on the first T1 experiment (3) to see if it works smoothly. As you see in the figure below, it looks like the standard ^15N HSQC measured as a time series.

T1 relaxation

  1. Process all pseudo-3D T1 spectra in batch mode with the qumulti command. In the window that will pop up write process_T1 as the command and select the individual experiments that you want to process. E.g., 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43.

Before you proceed to the Analysis (Part C) make sure that all spectra were correctly referenced. If not then run manually the btproc biorefonly command to all of them until the perfectly overlap.

referenced

  1. Repeat steps 1-6 for the pseudo-3D T2 spectra.

Part C — Analyze in Bruker Dynamics Center (Protein Dynamics)

1) Launch & get oriented

2) One-time “Sample” setup (reused for both T1 and T2)

Why this matters: the sequence aligns residue-indexed results; the H-complete PDB enables structure-aware displays later if you use them.

3) T1 — Add data & peaks (pseudo-3D)

      Assignment          w1         w2
        A54N-A54H    126.639      8.284
        A30N-A30H    126.078      8.212
        C67N-C67H    125.602      9.492
      L114N-L114H    125.437      8.974
              ?-?    123.672      9.344
      V120N-V120H    123.672      8.781

peaks

Tip: If you measured the same delay multiple times, see the Lists tab (default settings are fine for most cases).

4) T1 — Fit the decays (Analysis)

fitting

Result: per-residue T1 with error bars—ready for plotting/export.

5) T1 — Make the display useful (View)

view

structure T2 preview

If you ever “lose” everything, use File → Visibility of objects to bring panels back.

6) Save your T1 setup (project)

7) T2 — Reuse the setup, switch the data, repeat

8) Export results & report


Mini-FAQ / sanity checks


Part D — Convert to rates, make summary plots, and write B-factors into a PDB

  1. What’s already in your PDC report .txt (no work needed)

You do not need to recompute R1 = 1/T1 or R2 = 1/T2 yourself. The script will only back-compute a rate from T if a report row is missing that rate.

  1. What this Python script does for you (automatic)

With just one time point per residue, the most informative composite you can form from T1/T2 is the ratio R2/R1. It acts as a coarse proxy for local effective correlation time (τc) because, under isotropic tumbling and in the absence of strong exchange, R2/R1 rises with τc (i.e., larger apparent size / slower tumbling). This usage is widespread enough that tools and notes exist specifically for estimating τc from R2/R1 (as a relative indicator).

state_score

Why R2‑centric? R2 is most sensitive to size‑/tumbling‑related broadening and also carries chemical‑exchange (Rex) contributions on μs–ms timescales; large positive shifts in R2 across days commonly indicate aggregation/oligomerization or exchange‑broadening; negative shifts indicate fragmentation/unfolding (faster tumbling).

Why a slope of ln(R2)? Log‑space makes the score scale‑invariant (it reflects % change/day) and is robust when different residues start at different baselines.

Why a t‑statistic? It naturally downweights noisy fits by using PDC’s per‑residue uncertainties (R2 sd) as weights and provides a simple “signal‑to‑noise” for the trend. (The PDC TXT “results” blocks include R2, its SD, and fit flags—Done/Warning/Fail—which the script uses.)

  1. How to run the script

Run python3 pdc_relax_to_bfactor.py -h to see all the CLI options. Below are representative usage examples.

python3 pdc_relax_to_bfactor.py \
  --t1 T1_day1_report.txt \
  --t2 T2_day1_report.txt \
  --pdb-in Cterm_AF_H.pdb \
  --out-prefix ARV7_day1_R2 \
  --metric auto \
  --bf-norm minmax --norm-range 10 80 --clip-percentiles 5 95 \
  --save-plots --emit-pml --no-pdb \
  --pml-column B_written --palette red_white_blue

T2 alone is often more robust for IDPs because R2/R1 inherits uncertainty from both R2 and R1 (and R1 can be noisy). If your R1 errors are large, a T2 map may be crisper for presentations; the script can plot T2 (choose --metric r2 for single‑day).

python3 pdc_relax_to_bfactor.py \
  --t1 T1_day1_report.txt T1_day2_report.txt T1_day3_report.txt \
  --t2 T2_day1_report.txt T2_day2_report.txt T2_day3_report.txt \
  --labels d1 d2 d3 \
  --pdb-in Cterm_AF_H.pdb \
  --out-prefix ARV7_days1to3_state \
  --metric auto \
  --bf-norm minmax --norm-range 10 80 --clip-percentiles 0 100 \
  --save-plots --emit-pml --no-pdb --palette blue_white_red

Normalization options: --bf-norm none|minmax|zscore (choose), --norm-range a b (e.g., 10 80), --clip-percentiles p_low p_high (e.g., 5 95).

  1. What you get (outputs, same <prefix>)

Visualize the PDBs in PyMOL

What this shows: higher B → more red and thicker tube (if putty on) if you have set --palette red_white_blue. B equals R2/R1 or R2 (single day) or state_score (multi-day), depending on how you ran the script.

Quickstart (use the generated .pml)

  1. In PyMOL: run ARV7_day1_R2.apply_b_from_txt.pml

If you used --bf-norm none, set minimum/maximum to the actual range (see B_written in the CSV).

  1. To save to an image do:
bg_color white
ray 2400, 1800
png ARV7_day1_R2.png, dpi=300

R2


Interpreting the metrics (one line each)

Part E — Interpretation of relaxation plots (what T1/T2 alone can tell you)

Global size / tumbling changes

Local dynamics vs. exchange (limits of T1/T2‑only)

What not to over‑interpret

R2 plots

Practical readouts for your 3‑day study


FAQ (about disappearing signals and day‑to‑day changes)


Authors