# Projected Area Computation

> Use when you have 3D optimized molecular conformers (RDKit mol objects or SDF files) and need to extract shape-based features for collision cross section prediction, graph neural network input, or conformer comparison.

- Skill: `holobiomicslab/projected-area-computation` (Agent Skill)
- Install (CLI): `npx skillmds@latest add holobiomicslab/projected-area-computation`
- Raw SKILL.md: https://api.skillmd.com/api/skills/holobiomicslab/projected-area-computation/raw
- Safety review: PASS (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: CC-BY-4.0
- Author: HolobiomicsLab (https://skillmd.com/u/holobiomicslab)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/holobiomicslab/projected-area-computation

---


# projected-area-computation

## Summary

Compute voxel-projected area features from 3D molecular conformers using Fibonacci grid sampling and coordinate plane projections. This is a critical input featurization step for deep-learning CCS prediction, where projected area encodes molecular shape and cross-sectional geometry.

## When to use

You have 3D optimized molecular conformers (RDKit mol objects or SDF files) and need to extract shape-based features for collision cross section prediction, graph neural network input, or conformer comparison. Use this when the input molecules have already been embedded to 3D coordinates and force-field optimized, and you are preparing data for PACCS model training or inference.

## When NOT to use

- Input is a 2D SMILES or mol graph without 3D coordinates — conformer generation and optimization must precede this skill.
- Molecules are already represented as pre-computed feature tensors or neural embeddings — projected area computation is redundant.
- Use case requires all-atoms surface area or solvent-accessible surface area instead of projected area — different geometric models.

## Inputs

- RDKit mol object with 3D conformer embedded and force-field optimized
- Molecular conformer in SDF format
- SMILES string (must be converted to 3D conformer first via ETKDGv3 + MMFF optimization)

## Outputs

- Scalar projected area value (float, in Ų units)
- Projected area vector [area_xy, area_xz, area_yz] before averaging
- Feature tensor ready for concatenation with m/z, graph, and adduct encoding

## How to apply

Load each molecular conformer and apply the voxel projected area algorithm: (1) distribute points evenly over 3D atomic van der Waals surfaces using Fibonacci grid sampling; (2) project these point clouds orthogonally onto three coordinate planes (xy, xz, yz); (3) compute the occupied area on each plane; (4) average the three plane areas to obtain a single scalar projected area value per conformer. The method is implemented in VoxelProjectedArea.py and operates directly on RDKit mol objects. This scalar feature is then combined with m/z (from MZ.py), molecular graph encoding (from MolecularRepresentations.py), and adduct one-hot encoding to form the complete input tensor for the PACCS neural network.

## Related tools

- **RDKit** (Load and manipulate 3D molecular conformers; provide mol objects and atomic coordinate access for voxel distribution and projection) — https://rdkit.org/
- **VoxelProjectedArea.py** (Core implementation of Fibonacci grid sampling, plane projection, and area aggregation; called for each conformer) — https://github.com/yuxuanliao/PACCS
- **NumPy** (Numerical computation of Fibonacci grid points, orthogonal projections onto xy/xz/yz planes, and area averaging) — https://numpy.org/
- **MZ.py** (Sibling module to compute mass-to-charge ratio; projected area is concatenated with m/z for model input) — https://github.com/yuxuanliao/PACCS
- **MolecularRepresentations.py** (Sibling module to construct molecular graph; projected area is concatenated with graph encoding for model input) — https://github.com/yuxuanliao/PACCS

## Examples

```
from PACCS.VoxelProjectedArea import compute_projected_area
from rdkit import Chem
from rdkit.Chem import AllChem

mol = Chem.MolFromSmiles('CCO')
mol = Chem.AddHs(mol)
ps = AllChem.ETKDGv3()
AllChem.EmbedMultipleConfs(mol, numConfs=1, params=ps)
AllChem.MMFFOptimizeMoleculeConfs(mol, numThreads=0)
projected_area = compute_projected_area(mol, confId=0)
```

## Evaluation signals

- Projected area scalar is a positive float > 0; typical range ~50–500 Ų for organic molecules.
- Three intermediate plane areas (xy, xz, yz) are computed and their average equals the final scalar output.
- Projected area remains invariant under conformer reorientation (rotation and translation do not change geometric projection).
- Conformer with larger van der Waals radius or more extended shape yields larger projected area than compact conformer of same molecule.
- Output tensor can be successfully concatenated with m/z and graph features without shape mismatch (scalar appends to feature vector).

## Limitations

- Accuracy depends on accurate 3D conformer generation and force-field optimization beforehand; garbage-in-garbage-out.
- Fibonacci grid resolution (number of surface points sampled per atom) is a hidden hyperparameter; insufficient sampling may undersample concave or intricate surfaces.
- Projected area is orientation-invariant but does not capture directional anisotropy or asymmetry in shape; symmetric molecules with different 3D shapes may yield identical projected areas.
- Method assumes van der Waals radii are accurately defined in RDKit; anomalous or heavy-metal atoms may have poor or absent radii.
- Single conformer per molecule loses ensemble effects; if multiple conformers exist, projected area should be computed per conformer and aggregated or selected carefully.

## Evidence

- [readme] PACCS calculates the projected area with the voxel-based approach: "PACCS calculates the projected area with the voxel-based approach, computes the m/z, and constructs the molecular graph."
- [readme] Using Fibonacci grids and projection on three coordinate planes: "Using the Fibonacci grids approach to distribute points evenly over the surfaces of 3D atomic spheres. Projected on three coordinate planes (xy, xz, yz). Averaging."
- [readme] PACCS is a Projected Area-based CCS prediction method: "We developed a Projected Area-based CCS prediction method (PACCS) directly from molecular conformers."
- [readme] Voxel projected area features are core inputs to the deep-learning model: "The predicted CCS values of molecules are obtained by feeding the voxel projected area, molecular graph, one-hot encoding of adduct type, and m/z into the already trained PACCS model"
- [readme] Conformers must be 3D-embedded and force-field optimized first: "MMFFOptimizeMoleculeConfs optimizes the 3D conformers of molecules."

