README

Background

1. What are kernels? Why do they make SVM a good choice?

Kernels are mathematical functions that transform data into higher-dimensional spaces where classification becomes easier. For more background, please see Support Vector Machine. Support Vector Machines (SVMs) rely on kernels to find optimal decision boundaries, even when data is not linearly separable in the original space.
This makes SVMs particularly powerful for structured and complex data, much like the protein backbone torsion angles in this case.

2. What are quantum kernels?

Quantum kernels leverage the principles of quantum computing to create feature spaces that are exponentially larger and more complex than classical mappings.
They offer the potential to capture intricate structures in data, beyond what classical methods can efficiently compute.

3. What is the Hilbert space and how does it map to high-dimensional features?

A Hilbert space is a high-dimensional, infinite mathematical space where quantum states reside.
Mapping classical data into a Hilbert space using quantum feature maps allows for complex, non-linear structures to be distinguished with simple decision surfaces.

4. Simulators work with small data sets

Quantum simulators running on classical hardware are limited by computational resources, and thus can typically only handle small datasets or a limited number of qubits. Real quantum hardware it noisy at the moment.

5. The trick here: create Hilbert-like embeddings and generate a kernel

Rather than relying on full quantum simulation, Hilbert-like embeddings are crafted classically to mimic the behavior of quantum transformations.
These embeddings are then used to construct kernels for efficient learning on larger datasets.

6. Train a routine RBF SVM and a quantum-inspired SVM using DSSP torsion angle classification as ground truth

Torsion angles (ϕ/ψ) extracted via DSSP are used as ground truth labels to train:

7. This resource allows interactive comparison ground truth vs Classical vs Quantum

The models are compared in terms of:


Server Usage

1. Input Structure

The user can submit either:

2. DSSP is run to compute torsion angles + DSSP structure classification

Submitted structures are processed using DSSP to extract:

3. Torsion angles are classified into allowed/not allowed regions

Using the trained SVM models, each torsion angle pair is classified as:

4. Result page shows

5. API Documentation


/q_torsion/api_submit

Submit a structure for torsion angle classification.

Method

POST

URL

https://biosig.lab.uq.edu.au/q_torsion/api_submit

Accepts

Field Type Required Description
pdb_chain_list string optional A PDB Chain ID (e.g., 1hv4_A) or an AlphaFold ID (e.g., AF-A0A021WW64)
uploaded_file file optional Upload a .cif file containing exactly one chain

Example (Submit by PDB Chain ID)

curl -X POST https://biosig.lab.uq.edu.au/q_torsion/api_submit \
     -F "pdb_chain_list=1hv4_A"

Example (Submit by AlphaFold ID)

curl -X POST https://biosig.lab.uq.edu.au/q_torsion/api_submit \
     -F "pdb_chain_list=AF-A0A021WW64"

Example (Submit by uploading CIF file)

curl -X POST https://biosig.lab.uq.edu.au/q_torsion/api_submit \
     -F "uploaded_file=@/path/to/your_structure.cif"

Response (on success)

{
  "job_id": "1aec520e-bf41-43fe-97b9-0e7dc09975a3",
  "status": "submitted"
}

/q_torsion/api_status/<job_id>

Check the processing status of a submitted job.

Method

GET

URL

https://biosig.lab.uq.edu.au/q_torsion/api_status/<job_id>

Replace <job_id> with the ID you got from /api_submit.


Example (Check Job Status)

curl https://biosig.lab.uq.edu.au/q_torsion/api_status/1aec520e-bf41-43fe-97b9-0e7dc09975a3

Responses

If pending:

{
  "job_id": "1aec520e-bf41-43fe-97b9-0e7dc09975a3",
  "status": "pending"
}

If complete:

{
  "job_id": "1aec520e-bf41-43fe-97b9-0e7dc09975a3",
  "status": "complete",
  "structure_id": "1hv4_A",
  "residue_count": 158,
  "dssp_json": {
    "amino_acids": [...],
    "phi_psi": [...],
    "q_classification": [...],
    "raw_sequence": [...],
    "secondary_structure": [...],
    "structured_regions": [...],
    "svm_classification": [...]
  }
}

API Response Schema

When the job status is "complete", the returned JSON will have the following fields:

Field Type Description
job_id string Unique job identifier
status string Status of the job (pending, complete)
structure_id string Structure ID used (e.g., 1hv4_A)
residue_count number Number of residues analyzed
dssp_json object Main result containing torsion angles, DSSP info, and classification tracks

dssp_json Fields

Subfield Type Description
raw_sequence array of {begin, label} Raw amino acid sequence
amino_acids array of {begin, label} DSSP-annotated amino acids
secondary_structure array of {begin, label} DSSP secondary structure assignment (H, E, C, etc.)
structured_regions array of {begin, end, value} Structured regions based on DSSP
phi_psi array of {seq_pos, residue_number, phi, psi, class_svm, prob1_svm, class_q, prob1_q} Torsion angles with predictions and probabilities
svm_classification array of {begin, end, value} Classification by classical SVM
q_classification array of {begin, end, value} Classification by quantum-inspired SVM

Example snippet of phi_psi field

[
  {
    "seq_pos": 1,
    "residue_number": 10,
    "phi": -60.5,
    "psi": -45.2,
    "class_svm": 1,
    "prob1_svm": 0.92,
    "class_q": 1,
    "prob1_q": 0.95
  },
  ...
]

6. Citation

The preprint should be available soon.

7. Contact Details

See something out of place? For inquiries of any kind, please email and include job IDs.

Ashar Malik

Email: ashar.malik@uq.edu.au