BenchmarksSingle-File Stress Benchmarks

Single-File Stress Benchmarks

Single-file benchmarks time one calc invocation per structure, from process start to written output. They cover eight structures from 10,919 to 4,506,416 atoms, in PDB and mmCIF form, at 100 sphere points.

Runtime and memory#

Single-structure cost against size

Eight structures from 10,919 to 4,506,416 atoms. 10 threads, 100 sphere points, three-run means. Both axes are logarithmic.
Data table

At 10 threads zsasa f64 is the fastest tool on every structure in both formats, and it has the lowest peak memory. On the smallest structures the bitmask modes are slower than exact f64, because building the lookup table is a fixed cost that a single small structure does not repay.

Per-structure runtime and memory at 10 threads

100 sphere points. Bars are three-run means; whiskers show one standard deviation.
Data table

PDB input#

StructureAtomsRuntime (s)Peak RSS (MiB)vs FreeSASAvs RustSASAvs PDBTools.jl
AF-P49792-F10-model_v610,9190.0146.51.9×1.5×101.3×
AF-000000006663862214,6180.0218.01.6×1.4×65.1×
AF-Q6ZS30-F1-model_v621,6110.0279.91.8×1.5×51.6×
AF-000000006578121924,1400.03313.81.7×1.5×42.8×
3jc8107,5000.08439.62.7×1.8×19.3×
8rbs164,6050.12451.5112.8×1.8×14.2×
5vyc249,1680.243100.52.2×54.7×8.7×
9fqr4,506,4164.8292,131.341.3×1.8×2.4×

PDB input, zsasa f64 at 10 threads and 100 sphere points.

mmCIF input#

StructureAtomsRuntime (s)Peak RSS (MiB)vs FreeSASAvs RustSASAvs PDBTools.jl
AF-P49792-F10-model_v610,9190.0196.52.9×4.2×101.5×
AF-000000006663862214,6180.0249.6–1.9×73.4×
AF-Q6ZS30-F1-model_v621,6110.0509.32.2×1.7×38.1×
AF-000000006578121924,1400.03613.1–2.1×50.1×
3jc8107,5000.13440.14.8×2.4×12.1×
8rbs164,6050.19454.64.8×2.5×8.9×
5vyc249,1680.393122.45.2×2.7×4.8×
9fqr4,506,4166.9752,131.44.2×3.4×1.5×

mmCIF input, zsasa f64 at 10 threads and 100 sphere points.

The "vs" columns are runtime ratios against zsasa f64: the comparator's runtime divided by the zsasa runtime. A dash means the comparator did not complete that input.

Thread scaling#

Single-structure runtime by thread count

100 sphere points, three-run means. The runtime axis is logarithmic.
Data table

Dataset#

Inputs were normalized to protein-only files for fair comparator runs: hydrogens, alternate conformations, ligands, waters, and non-L-peptide chains were removed; atom and residue identifiers were wrapped into PDB field limits when needed. The mmCIF inputs are representations of the same eight workloads.

Structure Role Atoms Chains Note
AF-P49792-F10 single-medium 10,919 1 AFDB single-chain case
AF-Q6ZS30-F1 single-large 21,611 1 AFDB large single-chain case
AF-0000000066638622 multi-medium 14,618 2 AFDB-derived two-chain case
AF-0000000065781219 multi-large 24,140 2 AFDB-derived two-chain case
3jc8 100k-atom 107,500 3 PDB assembly
5vyc RustSASA stress 249,168 4 Parser-heavy RustSASA case
8rbs FreeSASA stress 164,605 5 PDB coordinate-overflow parser case
9fqr maximum-size 4,506,416 57 Largest assembly in this subset

Lahuta is excluded from this suite because the benchmarked SASA command targets AlphaFold-style chain-A inputs and cannot process this mixed multi-chain subset.

Caveats#

  • zsasa and PDBTools.jl were measured in the 0.9.0 rerun. The FreeSASA and RustSASA values for PDB input are unchanged comparator measurements retained from the 0.6.0 suite.
  • The 8rbs FreeSASA result for PDB input exposes fixed-width coordinate overflow: coordinates wider than the PDB 8.3 field are misread by the pinned FreeSASA parser, which produces a pathological setup time. The mmCIF form of 8rbs does not show it.
  • The 5vyc RustSASA result for PDB input is dominated by parser time. The mmCIF form does not show it.
  • FreeSASA did not complete the two AFDB-derived two-chain structures in mmCIF form, because it aborted without assigning atomic radii.
  • PDBTools.jl timings include the full Julia wrapper invocation, including Julia startup.

Evidence source#

The charts and tables on this page are generated from results/tables/single_file_t10_summary.csv and single_file_thread_scaling.csv in N283T/zsasa-benchmarks.

Edit this page