Code, Math, and Algorithms
Assembly Index Explorer
Build reusable-fragment pathways for directed strings and small molecular graphs. Bounded Python workers search for reusable pathways. Results show a proved minimum or a clearly labelled constructive upper bound.
This presentation implementation was built de novo from the definitions in the supplemental complexity proof. It is not the split-bound method implemented in the Cronin lab. For production-quality Assembly Index calculations, see the Cronin lab's work.
As we show in the supplemental complexity proof, exact Assembly Index calculation is NP-complete, so computation time can grow very rapidly with problem size. The server therefore places a time bound on branch-and-bound search and returns the best valid path found within that time. It reports an exact Assembly Index only when the minimum has been proved; otherwise the result is labelled as an upper bound. Molecular exact search is restricted to at most 9 atoms and 8 bonds. Larger accepted molecules receive a constructive upper bound. Both adapters use the same generic finite assembly-space solver.
Assembly Theory and Computational Complexity (PDF) Supplemental complexity proof (PDF) Marshall et al. (Cronin lab), molecular assembly (2021) Marshall et al. (Cronin lab), assembly spaces (2022) Sharma et al. (Cronin lab), Assembly Theory (2023) API documentation\n Back to publications
Directed input string
The server first retains a valid pathway, then uses branch-and-bound with up to two parallel search processes. Candidate counts include partial rooted-subspace search states. The time limit covers worker startup, model construction and search.
Constructed assembly pathway
Target:
How the time-bounded exact search reports results
The Assembly Index is the minimum number of recursive joins across all possible pathways. The generic solver explores producing-join choices with safe lower bounds and a validated best-known witness. Exhausting every search branch proves the minimum; parallel search is an implementation feature, not a method supplied by the paper. If the time bound is reached first, the page returns the best valid pathway already found and labels it as an upper bound.
Molecule pathway
Choose a sample card or supply your own single connected V2000 `.mol` file, up to 50 bonds and 51 atoms. A double or triple bond counts as one graph edge. When you build a pathway, the selected structure is sent over HTTPS to QUOX. Job inputs and results are held temporarily (about 10 minutes after completion), not saved as a dataset. The server validates the format, atom and bond references, connectedness, and size. Above 8 bonds, the current implementation returns a constructive upper bound without an optimality search.
Sample molecules
Model and implementation scope
Interactive molecular graphics use 3Dmol.js. The finite presentation model uses connected edge-fragments identified by element- and bond-order-preserving graph isomorphism. One-bond fragment types form the basis; joins identify shared atoms without overlapping bonds. Explicit hydrogens are retained; omitted hydrogens are not added. Isotope, charge, stereochemistry and query annotations in uploads are rejected, not silently ignored. Exactness refers to this stated model, not a claim of production chemical assembly equivalence.
The larger named samples are element/bond-order projections of PubChem structures: hydrogens and stereochemical annotations are omitted explicitly for this demonstration model. Their formulas describe the full compounds, while the displayed counts describe the supplied graphs. The alkane samples are generated carbon backbones with schematic coordinates. All assembly steps start expanded; their dark 3D snapshots share a renderer to avoid exhausting browser graphics resources. Use “Interact in 3D” on any step to rotate its fragments.