SASA Validation
Validation compares total SASA from zsasa with established implementations on the same inputs: FreeSASA for static structures and MDTraj for trajectory frames. All values are from zsasa 0.9.0.
Static structure validation against FreeSASA#
The static set is the E. coli K-12 AlphaFold proteome, 4,370 structures, evaluated at 64, 128, 256, 512 and 1,024 sphere points.
zsasa against FreeSASA, structure by structure
Data table
In exact f64 mode zsasa and FreeSASA agree to within floating-point noise on every structure, so the points form a flat line at zero. Bitmask f32 reports slightly less area than FreeSASA, with a spread that narrows as the structure grows.
Difference from FreeSASA by sphere-point count
Data table
The bitmask difference is a systematic offset rather than sampling noise. The lookup table quantizes directions and angles in fixed steps, so the median stays near −0.7% at every point count, and more sphere points narrow the spread without moving the median.
For scale, two exact implementations differ by a similar amount: in the table below RustSASA differs from FreeSASA by 0.28% on average at 128 points, with a maximum of 2.15%. The bitmask offset is small enough for screening, ranking and feature generation, where SASA is used as a relative descriptor. Use an exact mode when values must match FreeSASA.
| Tool | Sphere points | R² | Mean |difference| | Max |difference| |
|---|---|---|---|---|
| zsasa f64 | 128 | 1.000000 | 0.000% | 0.00% |
| zsasa f64 | 1024 | 1.000000 | 0.000% | 0.00% |
| zsasa f32 | 128 | 1.000000 | 0.000% | 0.02% |
| zsasa f32 | 1024 | 1.000000 | 0.000% | 0.00% |
| zsasa bitmask f64 | 128 | 0.999811 | 0.662% | 2.02% |
| zsasa bitmask f64 | 1024 | 0.999788 | 0.732% | 1.08% |
| zsasa bitmask f32 | 128 | 0.999811 | 0.662% | 2.02% |
| zsasa bitmask f32 | 1024 | 0.999788 | 0.732% | 1.08% |
| RustSASA | 128 | 0.999973 | 0.275% | 2.15% |
| RustSASA | 1024 | 0.999999 | 0.055% | 0.36% |
| Lahuta | 128 | 0.999973 | 0.275% | 2.15% |
| Lahuta | 1024 | 0.999999 | 0.055% | 0.36% |
| Lahuta bitmask | 128 | 0.999768 | 0.732% | 2.47% |
| Lahuta bitmask | 1024 | 0.999999 | 0.055% | 0.36% |
Agreement with FreeSASA over 4,370 E. coli AlphaFold structures.
"Mean" and "max" are over the absolute relative difference from FreeSASA.
Trajectory validation against MDTraj#
Trajectory validation uses 1,001 frames of the 5wvo_C ATLAS trajectory, with explicit hydrogens and the NACCESS classifier. The MDTraj reference is computed one frame at a time.
Difference from MDTraj by sphere-point count
Data table
Called through its MDTraj integration, which uses MDTraj's element radii, zsasa agrees with MDTraj without bias: the median difference is within 0.02% at every point count. The band narrows as the point count rises, because the two tools place their sphere points along different axes and that difference averages out.
The CLI differs from MDTraj by a constant −0.3%. That offset comes from the radius set, not the algorithm: the CLI runs use the NACCESS classifier, and MDTraj uses its own element radii.
Trajectory bitmask mode against exact zsasa
Data table
On this explicit-hydrogen trajectory the raw bitmask result is about 1.7% below exact zsasa, a larger offset than for static structures. Bitmask mode is therefore not recommended for explicit-hydrogen trajectories. An experimental bias-correction option removes most of the offset; it may change or be removed in a later release.
| Tool | Sphere points | R² | Mean |difference| | Max |difference| |
|---|---|---|---|---|
| zsasa CLI f64 | 128 | 0.971677 | 0.383% | 1.28% |
| zsasa CLI f64 | 1024 | 0.981070 | 0.328% | 1.00% |
| zsasa CLI f32 | 128 | 0.971692 | 0.383% | 1.28% |
| zsasa CLI f32 | 1024 | 0.981067 | 0.328% | 1.00% |
| zsasa CLI bitmask f32 | 128 | 0.479477 | 1.987% | 3.08% |
| zsasa CLI bitmask f32 | 1024 | 0.478658 | 2.006% | 2.66% |
| zsasa CLI bitmask f32, experimental correction | 128 | 0.965880 | 0.427% | 1.47% |
| zsasa CLI bitmask f32, experimental correction | 1024 | 0.974996 | 0.386% | 1.04% |
| zsasa + MDTraj | 128 | 0.989363 | 0.230% | 1.29% |
| zsasa + MDTraj | 1024 | 0.999515 | 0.049% | 0.24% |
| zsasa + MDAnalysis | 128 | 0.935340 | 0.643% | 1.88% |
| zsasa + MDAnalysis | 1024 | 0.945322 | 0.642% | 1.05% |
Agreement with MDTraj over 1,001 frames of the 5wvo_C trajectory.
Reproducibility notes#
- Static validation: 4,370 E. coli K-12 AFDB structures, 52 conditions.
- Trajectory validation: 5wvo_C, 1,001 frames, 75 conditions.
- Sphere-point counts: 64, 128, 256, 512 and 1,024.
- The charts are computed from the per-structure and per-frame records in the
zsasa-benchmarksresult database, using the same run selection as the published figures.