Releases: teenu/INDIalign
INDIalign v1.1.0
What's New
Removed 4096-residue hard limit. All fixed-size stack arrays replaced with dynamic allocation. Structures of any length are now supported (tested up to N=8192).
Spatial grid for anchor contact seeds. Neighbor lookups reduced from O(V²) to O(V × k_avg) using cell-based spatial hashing, improving seed generation on longer structures.
Early termination in seed bank. When the score exceeds a configurable threshold (default 0.99), remaining seeds are skipped. Significantly speeds up easy cases.
Hash-based seed deduplication. FNV-1a hashing replaces O(K×N) byte comparison for duplicate seed detection.
Configurable rescue and early-termination thresholds. Three new NativeConfig fields: rescue_score_1 (default 0.5), rescue_score_2 (default 0.3), early_term_score (default 0.99).
Benchmark scripts updated to match the new API (Cfg struct, relative library paths).
Validation
All three benchmarks reproduce the published results exactly:
| Benchmark | Pairs | INDIalign wins | USalign wins | Ties |
|---|---|---|---|---|
| NMR PDB structures | 128 | 108 (84.4%) | 13 (10.2%) | 7 (5.5%) |
| Challenging PDB pairs | 72 | 39 (54.2%) | 18 (25.0%) | 15 (20.8%) |
| Synthetic pairs | 500 | 330 (66.0%) | 137 (27.4%) | 33 (6.6%) |
No speed regression: old vs new library measured at 481ms vs 500ms on the same 20-pair subset (within noise).
Large-structure smoke tests pass at N=6000 and N=8192.
INDIalign v1.0.1
Highlights
- Improves long-target rescue performance, especially on hard RNA pairs where dense local-fragment rescue previously dominated runtime.
- Reduces avoidable OpenMP overhead in seed-bank and rescue evaluation by avoiding nested or tiny parallel regions.
- Adds optional per-stage profiling via
INDIALIGN_PROFILE=1andINDIALIGN_PROFILE_TAGfor targeted performance debugging. - Updates the README with profiling instructions and notes on sequential benchmark timing.
Validation
- Benchmark win/loss results were unchanged on the bundled PDB and synthetic benchmark scripts.
- Hard PDB benchmark runtime improved substantially on the tested machine, with the large
1H1Koutlier reduced from roughly 13.5s to 1.6s.
INDIalign v1.0.0
Initial public release.
Highlights
- Multi-strategy TM-score search for RNA C1' coordinate alignment
- 66% win rate over USalign on 500-pair benchmark (common scorer, p < 10^-19)
- C API via
libindialign.so— single-pair and OpenMP batch modes - Optional CUDA acceleration — fused GPU kernel for seed evaluation
- Reproducible benchmark included (
benchmark/fair_benchmark.py)
Building
cd indialign_c
make # auto-detects CUDA
make cpu # CPU-onlySee README for full documentation.