Skip to main content

StrucTrace: A Universal Fourier Watermark for Traceable Biomolecular Structures

Python 3.8+ GROMACS

Authors: Xu Wang, Chi Wang, Tin-Yeh Huang, Yiquan Wang, Siyuan Jiang, Yafei Yuan*
These authors contributed equally to this work.
*Corresponding authors.

StrucTrace is a reference-guided Fourier-domain watermarking framework for traceable biomolecular structures. It embeds provenance payloads into flexible C-alpha coordinate regions as a post-processing step, preserving atomic-scale structural fidelity while enabling public provenance verification, hardware-bound access control and auditable digital-rights management.

Key Results

  • Universal post-processing watermarking for deposited PDB files, cryo-EM structures and AI-designed proteins.
  • 100% bit recovery in fidelity benchmarks, with side-chain RMSD no greater than 0.0015 Angstrom.
  • High-capacity embedding of a 6,584-bit abstract into the human gamma-secretase cryo-EM structure.
  • Defined recovery boundaries under rigid-body transformations, coordinate rounding, all-atom noise and local C-alpha perturbation.
  • Three-tier safeguard model: public provenance, hardware-bound access and digital-rights management.

Figures

Figure 1: Universal Fourier-domain watermarking workflow

Figure 1. Universal Fourier-domain watermarking workflow. StrucTrace selects flexible C-alpha atoms, embeds payload bits by mid-frequency FFT amplitude modulation and reconstructs watermarked coordinates with minimal geometric perturbation.

Figure 2: Universality and structural integrity

Figure 2. Structural fidelity and universality. Large-scale RMSD and Rosetta-energy analyses show negligible perturbation, and 50 ns MD simulations preserve dynamic behaviour across natural, Rosetta-designed and RFdiffusion-generated proteins.

Figure 3: High-density information embedding

Figure 3. High-capacity embedding. A 6,584-bit abstract was embedded into the human gamma-secretase tetramer while retaining coordinate-level agreement with the original cryo-EM structure.

Figure 4: Watermark recovery under perturbation

Figure 4. Robustness and tamper boundary. Reference-guided decoding is invariant to rigid-body transformations and standard PDB precision, while all-atom noise, local distortion and selected C-alpha perturbation define the recovery boundary.

Figure 5: Multi-tiered security ecosystem

Figure 5. Three-tier safeguards. Tier 1 provides public provenance verification, Tier 2 provides hardware-bound encrypted access, and Tier 3 provides auditable digital-rights management.

Install

After PyPI publication, install StrucTrace with:

pip install structrace

For local development, clone and install the package in editable mode:

git clone https://github.com/JLU-WangXu/Structrace.git
cd Structrace
pip install -e .

The command-line interface is then available as:

python -m structrace --help

If your Python scripts directory is on PATH, you can also use:

structrace --help

External software used for manuscript validation includes DSSP, GROMACS 2024.6, Rosetta and Foldseek.

Publishing

Build and validate the package locally:

python -m pip install --upgrade build twine
python -m build
python -m twine check dist/*

Upload to TestPyPI first:

python -m twine upload --repository testpypi dist/*

If the TestPyPI package installs and imports correctly, upload the same version to PyPI:

python -m twine upload dist/*

Quick Start

CLI

Embed a text watermark into a structure:

python -m structrace embed Robustness/00_baseline_cases/6MRR/6MRR_original.pdb \
  --text "npj SB" \
  -o tmp/6MRR_watermarked.pdb

Decode the watermark from the original and watermarked structures:

python -m structrace decode Robustness/00_baseline_cases/6MRR/6MRR_original.pdb \
  tmp/6MRR_watermarked.pdb \
  --bits 56

The --bits option can be set explicitly. If it is omitted, the CLI decodes 4 bits by default.

Python API

from structrace.watermark import decode_text, embed_text

master = "Robustness/00_baseline_cases/6MRR/6MRR_original.pdb"
query = "tmp/6MRR_watermarked.pdb"

embed_result = embed_text(master, "npj SB", query)
decode_result = decode_text(master, query)

print(embed_result.global_ca_rmsd)
print(decode_result.decoded_text)

Package Functions

Watermarking

  • embed_text(input_pdb, text, output_pdb): encode UTF-8 text as bits and embed it.
  • decode_text(master_pdb, query_pdb): recover the embedded UTF-8 text watermark from the original and watermarked structures.

Repository Map

  • src/structrace/: installable Python package.
  • Robustness/: robustness and preliminary watermark-validation examples.
  • Security_Safeguards/: Tier 1, Tier 2 and Tier 3 safeguard demonstrations.
  • High-density_embedding_stress_test/: gamma-secretase high-capacity embedding case.
  • Molecular_Dynamics_Validation/: MD inputs, structures and analysis outputs.
  • Bit_RMSD/ and Bit_Rosetta_energy/: large-scale fidelity benchmark tables.
  • Figs/Figs/: revised manuscript figures.
  • docs/: package implementation log and extended API examples.

Citation

@article{Wang2026StrucTrace,
  title  = {StrucTrace: A Universal Fourier Watermark for Traceable Biomolecular Structures},
  author = {Wang, Xu and Wang, Chi and Huang, Tin-Yeh and Wang, Yiquan and Jiang, Siyuan and Yuan, Yafei},
  journal = {npj structural biology},
  year   = {2026},
  note   = {Accepted}
}

Release files for structrace 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for structrace 0.1.0
File Size Uploaded
structrace-0.1.0.tar.gz 11.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for structrace 0.1.0
File Interpreter ABI Platform
structrace-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 22.5 kB

Release files / structrace-0.1.0.tar.gz

Download URL structrace-0.1.0.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
2b6c333babf83722de8a8bd4a9891e8dbbef2b519757d3fe22fa9cc89fa07efc
BLAKE2b-256 checksum
How to use checksums
8709db1340eafbe30a5ffb303e92b87a7031d8f7cabf5ba93496d1cf5441a31d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.8

Release files / structrace-0.1.0-py3-none-any.whl

Download URL structrace-0.1.0-py3-none-any.whl
Size 11.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
361567284c88efd7c6d65c744552561d68be9e23b47ad5789ff8cc766e73481a
BLAKE2b-256 checksum
How to use checksums
ccbc57df176299abd69642f9bc0d24360255ac1ed322ef1ea8d619f64640c603
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.8

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page