Module 1: Feature Extraction
ProMaya processes each input protein (PDB + FASTA) into four distinct data modalities. This ensures the model captures biological information ranging from deep evolutionary history down to physical atomic packing.
1. Atomic Features & LSMD (Core Hypothesis)
The most critical innovation in ProMaya is the Local Surface Mass Density (LSMD) hypothesis. Since explicit electron cloud calculations (like DFT) are computationally infeasible for whole proteins, LSMD serves as a biophysical proxy for electron density at the binding interface.
[IMPORTANT] The LSMD Formulation
LSMD computes the Gaussian-smoothed atomic packing density around atom \(i\):
\[ \text{LSMD}(i) = \sum_{j \in N(i)} m_j \cdot \exp\left(-\frac{||r_i - r_j||^2}{2\sigma^2}\right) \]Where \(m_j\) is the atomic mass, \(r\) represents 3D coordinates, \(\sigma = 1.0\text{\AA}\) is the smoothing factor, and a \(6.0\text{\AA}\) cutoff is applied for sparsity.
Atomic Graph Construction: - Nodes: Heavy atoms. 41-dimensional features including atom type, chemical descriptors, B-factor, LSMD, and RBF distances. - Edges: Formed between atoms within an \(8.0\text{\AA}\) radius, utilizing 35-dimensional geometric features.
import torch
from torch_geometric.data import Data
def build_atomic_graph(atom_coords: torch.Tensor, atom_features: torch.Tensor) -> Data:
# Compute pairwise distances
dist_matrix = torch.cdist(atom_coords, atom_coords)
# 1. Calculate LSMD (Local Surface Mass Density) proxy
sigma = 1.0
lsmd_weights = torch.exp(-(dist_matrix ** 2) / (2 * sigma ** 2))
# Mask out atoms beyond 6.0 Angstroms
lsmd_weights = lsmd_weights * (dist_matrix <= 6.0).float()
# Assume atom_features[:, 0] is mass
lsmd_scores = torch.sum(lsmd_weights * atom_features[:, 0].unsqueeze(1), dim=1)
# Concatenate LSMD to atomic features
augmented_features = torch.cat([atom_features, lsmd_scores.unsqueeze(1)], dim=-1)
# 2. Build edges (8.0 Angstrom cutoff)
edge_index = (dist_matrix <= 8.0).nonzero(as_tuple=False).t()
return Data(x=augmented_features, edge_index=edge_index, pos=atom_coords)
2. Residue-Level Features
The residue graph aggregates vast amounts of biochemical and evolutionary data.
- Nodes: Amino acid residues. A massive 1082-dimensional feature vector comprising:
- Basic AA types and physicochemical properties.
- DSSP: Secondary structure codes and solvent accessibility.
- Torsion Angles: \(\phi\) and \(\psi\) backbone angles.
- PSSM: Position-Specific Scoring Matrices from PSI-BLAST (evolutionary conservation).
- IUPred2A: Scalar disorder score indicating intrinsic flexibility.
- Edges: Connected if \(C_\alpha - C_\alpha\) distance \(\leq 10.0\text{\AA}\).
3. Surface Point Cloud
Protein interactions fundamentally rely on 3D geometric shape and charge complementarity.
- Generation: MSMS generates a triangulated solvent-excluded surface. We sample exactly 1024 points uniformly.
- Features: 14-dimensional vector per point (Coordinates, surface normals, curvature, electrostatics, and nearest-neighbor LSMD projection).
- Encoding: Processed via a PointNet++ module to yield a 128-d embedding per point.
4. Sequence Language Model Embeddings
To capture long-range contextual relationships and "grammar" of the protein, ProMaya utilizes ProtTrans-T5-XL-UniRef50 (a 3B-parameter language model).
- Process: The FASTA sequence is tokenized and passed through the frozen ProtTrans encoder.
- Output: A highly contextualized 1024-dimensional embedding vector for each amino acid in the sequence.
Next: See how these four distinct data types are fused in Multimodal Alignment â