Skip to content

Substructure Search

A chemistry-aware retrieval operation that returns database structures admitting an atom-and-bond embedding of a declared molecular query pattern under explicit matching semantics.

Version
v1 · 2026-08-30 · History
Domain-specific #
2888
Origin domain
cheminformatics
Subdomain
chemical structure retrieval
Aliases
Chemical substructure search, Molecular substructure search, Structure pattern search

Core Idea

Substructure Search is a chemistry-aware retrieval operation that asks which stored molecular structures contain a declared query pattern of atoms and bonds. The target molecule is represented as a labeled molecular graph: vertices carry chemical atom information and edges carry bond information. IUPAC's molecular-graph definition makes the formal bridge explicit by treating atom kinds as differently labeled vertices and bond kinds as differently labeled edges.[1] The query is not normally a smaller finished compound that must remain chemically complete in isolation. It is a pattern whose atom and bond predicates state what must, may, or must not occur in a matching region of a target.

The operation succeeds for a target when there is an injective mapping from every query atom to a distinct target atom such that required adjacency, bond, and atom predicates are preserved. In a simple case, the query C-C-O can embed in ethanol, propanol, and diethyl ether because each contains the requested carbon-carbon-oxygen path. If the intended feature is specifically a hydroxyl group rather than any oxygen on that path, the query must constrain the oxygen's hydrogen count or connectivity. Daylight's SMARTS language illustrates this distinction: an unqualified O is broad, while [O;H1] specifies a simple hydroxy oxygen and [O;D2] a two-connected etheric oxygen.[2] The invariant is therefore not “the target looks chemically similar.” It is “the complete query pattern has at least one valid embedding under the declared semantics.”

At database scale, the abstraction typically separates screening from verification. A conservative index or fingerprint cheaply rejects targets that cannot contain the query. Surviving candidates undergo exact atom-by-atom graph matching. Agrafiotis and colleagues' chemical-cartridge implementation makes this division concrete: a pattern-mapping algorithm solves subgraph isomorphism, an indexing scheme accelerates large-library search, and database cost estimation integrates the operation with other SQL constraints.[3] Screening may admit false positives, because exact verification will remove them; it must not remove a genuine hit if the system promises complete retrieval under its semantics.

Substructure Search is accepted as a domain-specific abstraction because the recurring structure is more than generic graph matching or database filtering. Its stable identity includes molecular representation, chemically typed query predicates, aromaticity and valence conventions, hydrogen treatment, optional stereochemical and isotopic constraints, target standardization, containment direction, screening, exact verification, and atom mappings. Those roles recur in medicinal chemistry, compound registration, patent searching, toxicophore alerts, reaction databases, vendor catalogs, and chemical inventory systems. Remove the chemistry-specific semantics and the residual is the broader prime Search and Retrieval plus a generic subgraph predicate; the named abstraction itself does not travel intact beyond chemical structure information.

Structural Signature

The defining roles are:

  • the query structure — a connected or disconnected chemical graph pattern entered by drawing, SMARTS, SMILES interpreted as a query, a structure file, or another supported representation;
  • the atom predicates — element, isotope, formal charge, valence, degree, hydrogen count, aromaticity, ring membership, wildcard, list, negation, or recursive environment constraints;
  • the bond predicates — required adjacency and allowed bond types, aromaticity, ring or chain status, direction, or “any bond” conditions;
  • the target representation — a stored molecular graph produced under stated standardization, component, charge, tautomer, hydrogen, and aromaticity conventions;
  • the containment direction — the query must embed in the target, rather than the target in the query or the two being identical;
  • the screen — a conservative fingerprint, fragment key, count bound, or index that removes impossible targets before expensive matching;
  • the verifier — an exact labeled-subgraph procedure that searches for a one-to-one atom mapping preserving every encoded predicate;
  • the match semantics — explicit settings for stereochemistry, isotopes, charge, tautomers, ring embedding, aromatic matching, chain-to-ring matching, and hydrogen removal;
  • the hit and mapping output — the qualifying structure record, usually with one or more query-to-target atom embeddings and any requested metadata;
  • the completeness contract — whether all matches under the stated semantics are promised, or a service limit, timeout, or partial-result condition weakens that promise.

Locked signature: chemically typed query pattern + standardized target collection + declared match semantics -> conservative candidate screening -> exact labeled-subgraph embedding test -> qualifying structures and atom mappings.

Two invariants control recognition. First, every reported structural hit must admit a full query embedding; matching only a fragment of the query is failure. Second, a property that the query and settings do not constrain cannot silently become a hit requirement. RDKit states the second point operationally: a property not specified in a query is generally not used as a matching criterion, and hydrogens are normally ignored.[4] Implementations may differ in defaults, but a defensible result is always relative to an inspectable semantics rather than to a vague picture resemblance.

What It Is Not

  • Not chemical similarity search. Similarity search ranks or thresholds molecules by a descriptor or fingerprint resemblance, such as PubChem's two-dimensional Tanimoto similarity. A high-scoring molecule need not contain the query, and a true substructure hit need not rank as globally similar.[5]
  • Not whole-structure identity. Identity search compares complete connectivity and optionally stereochemistry, isotopes, or tautomeric equivalence. Substructure search is directional containment and normally tolerates additional target atoms and bonds.
  • Not the inverse superstructure query. In PubChem's terminology, substructure search returns targets that contain the input; superstructure search returns targets contained within the input.[5] Swapping the arguments changes the result set.
  • Not text, name, formula, or identifier lookup. A molecular formula omits connectivity, stereochemistry, charge placement, and bond order; names and identifiers address records rather than prove a graph embedding.
  • Not maximum common substructure. Maximum-common-substructure methods seek a largest shared pattern between two or more structures. Substructure search begins with a fixed query and decides containment across a collection.
  • Not generic subgraph isomorphism alone. Ullmann's algorithm addresses graphs generally.[6] Chemical search adds atom and bond query languages, aromaticity and valence models, standardization, hydrogens, stereochemistry, and database-retrieval obligations.
  • Not a claim about physical possession of a fragment. A match is representational containment in the stored graph under chosen semantics. It does not by itself establish reactivity, mechanism, bioactivity, synthesis, or that the query fragment can be isolated from the molecule.
  • Not a fingerprint hit. Fingerprint screening creates candidates. Unless a system explicitly offers approximate results, passing the screen is not the final containment proof.

Scope of Application

Substructure Search has a bounded but extensive home domain wherever chemical structures are stored and retrieved:

  • Medicinal and discovery chemistry. Researchers retrieve compounds containing a scaffold, functional group, linker, warhead, or substitution environment for series analysis, purchasing, assay follow-up, and library design.
  • Compound registration and inventory. Registration systems use structure queries to locate related or duplicate records, identify components, and combine a structural constraint with availability, ownership, purity, or location fields.
  • Chemical literature and patent search. Searchers express exact fragments or generic atom/bond conditions to find disclosed structures within claims and indexed documents. Markush and reaction-query extensions can broaden the language, but their special group and mapping semantics must be declared rather than assumed.
  • Safety and toxicology screening. Structural-alert systems apply libraries of query patterns to flag motifs associated with assay interference, reactivity, metabolism, or toxicity. A hit is an alert trigger, not proof of an effect.
  • Chemical catalogs and procurement. Vendor databases let chemists search for available molecules containing a desired building block while adding price, mass, stock, or delivery constraints.
  • Reaction and synthesis information. A molecular pattern may be required on a reactant, reagent, or product side; reaction SMARTS can additionally constrain roles and atom mapping. Daylight documents that reaction queries introduce global mapping and component semantics beyond ordinary molecule matching.[2]
  • Macromolecular and materials informatics. The same operation can apply to represented residues, monomers, coordination environments, or fragments when the system's molecular model and query language support them. It should not be presumed that small-molecule aromaticity, valence, or component conventions transfer unchanged.

The scope is limited by the representational contract. A database of substances, mixtures, polymers, tautomers, salts, stereoisomers, and organometallic structures must decide what graph or graph family stands for each record. InChI, for example, is a standardized chemical identifier with defined layers and normalization; it helps identify and interlink structures but does not abolish the need to state which stored representation is searched.[7] Substructure results are thus results over represented chemical structures, not automatically over every chemically reasonable form of every material.

Clarity

The abstraction clarifies four questions that are often collapsed into “does this molecule have the feature?” First, what is the feature as a formal query? A drawn benzene ring, c1ccccc1, an alternating-bond pattern, and a generic aromatic six-membered ring may differ under a toolkit's aromaticity model. Second, what is the target object? A neutral parent, salt component, tautomer, stereoisomer, mixture, or standardized record can expose different graph facts. Third, which predicates matter? PubChem exposes independent controls for stereo, isotope, charge, tautomer, ring embedding, aromatic matching, chain-to-ring matching, and explicit-hydrogen removal.[5] Fourth, what does the output assert? It asserts an embedding, not similarity, activity, or causation.

A useful diagnostic is: Can the system return the exact query-to-target atom mapping and explain every atom and bond predicate that admitted it? If yes, the claim is structurally auditable. If the system can provide only a resemblance score or textual reason, it may be performing another kind of retrieval. A second diagnostic is perturbational: add a chemically meaningful constraint—one hydrogen, ring membership, exact charge, or stereochemistry. If the hit set changes in the direction predicted by the declared semantics, the system is behaving as a query-pattern matcher rather than as an opaque similarity engine.

Manages Complexity

Chemical collections can contain millions or billions of represented structures, while a query may have numerous potential atom mappings into each target. Directly enumerating every mapping for every record is wasteful. Substructure Search manages this complexity by separating semantic authoring, data normalization, screening, and verification. Query authoring makes the chemist's intent explicit. Standardization produces comparable target graphs. Indexes and fingerprints move reusable work to ingestion time. Exact search is reserved for candidates that survive cheap necessary conditions.

The screen-then-verify architecture also separates two kinds of error. A screen may intentionally tolerate false positives because the verifier will remove them. A false negative is more serious: a genuine embedding never reaches verification, violating complete-retrieval claims. Agrafiotis and colleagues combine pattern mapping, indexing, SQL integration, and cost estimation precisely because database-scale performance depends on orchestration, not on one graph algorithm alone.[3] Ehrlich and Rarey's benchmark likewise shows that exact molecular substructure matching depends on query formulation, query and target size, algorithm choice, and parallelism; their 1,235 SMARTS benchmark found VF2 faster than Ullmann across the tested scenarios while both solved most individual cases quickly.[8]

The abstraction also makes chemical ambiguity local and configurable. Instead of pretending that “same ring” or “same molecule” has one context-free meaning, it exposes settings for aromaticity, tautomers, hydrogens, charges, and stereochemistry. That does not eliminate complexity; it converts hidden convention into a controlled query contract that can be tested, versioned, and reproduced.

Abstract Reasoning

Reasoning with Substructure Search proceeds as a chain of declared implications:

  1. Translate the chemical question into atom, bond, topology, component, and optional stereochemical predicates.
  2. Choose target standardization and matching settings consistent with the scientific question.
  3. Derive cheap necessary conditions for containment and use them to screen the collection.
  4. For each survivor, seek an injective mapping f: V(Q) -> V(T) that satisfies every query-atom predicate and maps each query bond to a compatible target bond.
  5. Return the target only if at least one complete mapping exists; return mappings or counts when multiplicity matters.
  6. Interpret the hit no more strongly than the query warrants.

This chain licenses predictions. Adding a predicate can only preserve or reduce the hit set under fixed target and semantics; removing a predicate can only preserve or expand it. Reversing containment exchanges substructure and superstructure search. If an index bit encodes a necessary feature of the query and the target lacks it, the target may be rejected without exact matching. If a screen bit is not genuinely necessary under the active aromaticity or tautomer semantics, using it risks false negatives.

The chain also licenses debugging. Unexpected ether hits from a C-C-O query indicate that the oxygen's hydrogen or degree was not constrained, not that the graph matcher is necessarily wrong. Missing aromatic hits may indicate a mismatch between query and target aromaticity perception. Missing tautomers may indicate that the search uses literal stored graphs rather than tautomer expansion. Opposite-enantiomer hits may indicate that chirality is disabled. These diagnoses turn a disputed result into a check of a specific role.

Knowledge Transfer

Within chemistry, the same competence transfers exactly across public compound databases, internal registrations, vendor catalogs, patent systems, structural-alert libraries, and reaction-search tools: define the intended pattern, inspect representation conventions, distinguish screening from proof, verify mappings, and interpret hits at the query's level of specificity. The file format, index, matcher, and user interface may change, but the role structure remains.

Beyond chemistry, the portable skeleton is query-pattern retrieval using a containment predicate, and it belongs to the live prime Search and Retrieval plus general graph reasoning. Source-code pattern matching, graph-database queries, motif discovery, and network subgraph search may also use labeled subgraph embeddings. That is genuine transfer of the parent structure, not literal transfer of Chemical Substructure Search. Atom valence, aromaticity, implicit hydrogens, tautomers, stereochemistry, salts, Markush groups, and chemical standardization do not travel. Calling a software call graph a “molecule” would be metaphor; describing both tasks as constrained graph retrieval is the appropriate abstraction lift.

The key transferable lesson is epistemic: a match is always relative to a representation and predicate language. A query cannot enforce an omitted condition, a prefilter should not be mistaken for verification, and an output should not be interpreted more strongly than the relation computed. Those lessons transfer through Search and Retrieval and Constraint rather than making Substructure Search a prime.

Examples

Canonical: distinguishing an alcohol from an ether

Suppose a chemist sketches the three-atom path C-C-O and searches a compound collection. Propanol contains such a path, but so does diethyl ether. The result is correct: the query said that an oxygen must be adjacent to a carbon, not that the oxygen must bear hydrogen. A SMARTS pattern such as C-C-[O;H1] adds the hydrogen-count condition and excludes a two-connected ether oxygen; a degree predicate can refine the meaning further.[2]

Mapped back: the path is the query graph; the oxygen expression is an atom predicate; each standardized compound is a target; screening rejects structures missing the required elements and bonds; exact verification produces the atom mapping. The contrast demonstrates the omitted-constraint invariant.

Applied: scaffold retrieval followed by nonstructural filtering

A medicinal chemist searches an internal collection for molecules containing an amide-linked bicyclic scaffold, allowing any halogen at one position while requiring a nonaromatic nitrogen at another. A SMARTS query captures the alternatives and local environments. The cartridge first screens structure fingerprints, then verifies exact embeddings. The database engine intersects the structural hit set with records having a measured assay value, available stock, and acceptable molecular mass. The structure predicate and metadata filters are composed, but only the first proves scaffold containment. Currano's chemical-information chapter treats structure and substructure searching as a specialized retrieval practice precisely because chemists often think and search in structures rather than names.[9]

Mapped back: the scaffold and substitution rules form the query; the registry is the target collection; structure keys screen; subgraph mapping verifies; SQL fields postfilter; the returned record and atom mapping are the hit. Stock or assay data does not alter what containment means.

Representation-sensitive: aromaticity, hydrogen, and tautomer settings

A query author wants all records containing a particular heteroaromatic hydrogen-bond donor. A literal pattern written against one tautomer may miss a database record stored as another tautomer. An aromatic query can also behave differently from an alternating single/double-bond query if query and target are perceived under different aromaticity models. PubChem therefore exposes toggles for tautomer matching, aromatic-bond flexibility, charge, isotopes, stereo, ring embedding, and explicit-hydrogen removal; RDKit documents that its aromaticity model and query-source semantics affect atom matching.[5][4]

Mapped back: the underlying chemical interest is translated into a representation-dependent pattern; match settings define allowable equivalences; the verifier remains exact relative to those settings. A missed alternate representation does not refute subgraph matching—it reveals that the declared search universe was narrower than the user's chemical intention.

Structural Tensions

  • T1: Query expressiveness vs. computational cost. Wildcards, recursive environments, component relationships, stereochemistry, and negation express chemical intent but can weaken screening and expand the mapping search. Diagnostic: Which predicate adds decision-relevant specificity, and how much candidate pruning does it disable?
  • T2: Recall vs. screen selectivity. A conservative fingerprint preserves true hits but may pass many false positives; an aggressive screen saves verification work but can violate completeness if its features are not necessary under the active semantics. Diagnostic: Has every screen-out rule been proved safe for the exact query language and standardization version?
  • T3: Literal graph fidelity vs. chemical equivalence. Searching the stored graph is reproducible, while tautomer, resonance, protonation, or aromatic normalization can better reflect chemical intent but broadens the equivalence relation. Diagnostic: Is the question about the recorded representation or about a chemically normalized family?
  • T4: Default convenience vs. semantic transparency. Ignoring hydrogens and stereochemistry makes common queries forgiving, but hidden defaults produce surprising hits. Requiring every detail burdens users. Diagnostic: Can a user inspect, export, and reproduce all active matching settings?
  • T5: Pattern breadth vs. interpretability. A broad query increases recall, yet each additional alternative can make a hit harder to explain and may mix chemically distinct motifs. Diagnostic: Can every hit be traced to a specific branch and atom mapping in the query?
  • T6: Database speed vs. update cost. Rich structural indexes accelerate queries but take storage, preprocessing, and maintenance when structures or standardization rules change. Diagnostic: Does query workload justify the index, and is it rebuilt when representation semantics change?
  • T7: Hit detection vs. scientific inference. A structural alert is useful for triage, but the same motif can behave differently across molecular context. Diagnostic: Is a hit being reported as containment, or has it been overread as activity, hazard, mechanism, or efficacy?
  • T8: Autonomous chemical abstraction vs. reduction to generic graph search. The graph embedding is mathematically general, but chemical query predicates and representation conventions determine the operational hit set. Diagnostic: Could the workflow be reconstructed from generic subgraph matching without restating aromaticity, valence, hydrogen, stereochemical, tautomer, standardization, and chemical-record roles? If not, the domain-specific residual is real.

Structural–Framed Character

Substructure Search is mixed, leaning structural. Its formal center—labeled graph containment, necessary-condition screening, exact verification, and atom mapping—is structural and mechanically testable. The result is not determined by institutional authority or evaluative judgment. A mapping either satisfies the declared predicates or it does not.

The abstraction is nevertheless partly framed because chemistry supplies the labels and the rules by which they are perceived. Aromaticity models, implicit-hydrogen conventions, valence sanitization, tautomer treatment, stereochemical defaults, component handling, and Markush semantics are engineered domain frames. Different defensible toolkits can produce different hit sets from superficially similar inputs because their contracts differ. This is not ordinary subjectivity: once a contract and data version are fixed, the operation is reproducible. The mixed classification records that formal exactness lives inside a chemically chosen representation.

The candidate is recognized rather than imported within cheminformatics: practitioners repeatedly encounter the same query-screen-verify-map configuration. It carries no inherent positive or negative value; the same operation can find a useful scaffold or an undesirable alert. Its structural score is therefore high, while its literal domain vocabulary prevents full substrate independence.

Structural Core vs. Domain Accent

Skeletal core. A pattern-bearing query defines a relation over a collection; an index applies cheap necessary tests; a verifier establishes the relation exactly; qualifying objects and witness mappings are retrieved. This core lifts cleanly to Search and Retrieval, Pattern Recognition, Constraint, and generic labeled-subgraph matching.

Irreducible domain accent. The named abstraction requires molecular graphs and chemical predicates: atoms and bonds, element and isotope, valence and charge, implicit and explicit hydrogen, aromaticity and ring status, stereochemistry, tautomers, salts and components, molecular standardization, SMARTS-like query semantics, and chemically meaningful atom mappings. These choices are not decorative examples. They determine membership in the hit set.

Why it is not a prime. Literal substitution outside chemistry removes the molecular representation and its recognition rules. A social-network motif search and a code-graph pattern query instantiate the same parent retrieval structure, but neither has tautomers, valence, aromaticity, or chemical stereochemistry. Their shared mechanism is already captured by more general catalog nodes. Promoting Substructure Search itself would either smuggle chemistry into unrelated substrates or dilute it to “find a graph pattern,” losing the very residual that makes the candidate autonomous and useful.

Substructure Search most directly instantiates Search and Retrieval. It specifies a structured query, searches a collection, applies an exact relevance criterion, uses indexing or precomputation, and returns qualifying records. The criterion is unusual in being directional chemical-graph containment rather than equality, ranking, or semantic similarity, but it fits the prime's query-space-match-retrieve organization exactly.

It also relies on Pattern Recognition and Constraint in explanatory roles. The system recognizes a declared molecular pattern by satisfying local atom and bond predicates plus global injectivity and connectivity constraints. These primes explain the verifier, not the database-level abstraction as a whole. Comparison explains testing a query against a target, and Canonical Form or standardization can stabilize stored representations, but neither subsumes retrieval across a collection.

The nearest domain-specific catalog neighbors are Graph Data Type and Graph Database. A molecular graph is a graph-typed representation, but the abstraction can operate over relational or specialized chemical stores and is not a data type. A graph database can execute subgraph queries, but chemical cartridges over relational databases demonstrate that a graph-native database is not mandatory.[3] Those nodes are implementation context, not taxonomic parents.

Relationships to Other Abstractions

Local relationship map for Substructure SearchParents appear above the current abstraction, mutual partners to the right, and children below. Node labels state whether each abstraction is prime or domain-specific; colors identify relation types.Substructure SearchDOMAINPrime abstraction: Search and Retrieval — is a kind ofSearch andRetrievalPRIME

Current abstraction Substructure Search Domain-specific

Parents (1) — more general patterns this builds on

  • Substructure Search is a kind of Search and Retrieval Prime

    Substructure Search most directly instantiates Search and Retrieval.

Hierarchy paths (4) — routes to 3 parentless roots

Neighborhood in Abstraction Space

Substructure Search sits in a sparse region of the domain-specific corpus (85th percentile for distinctiveness): few abstractions share its structure, so a faithful description tends to retrieve it precisely.

Family — Unclustered & Miscellaneous (1565 abstractions)

Nearest neighbors

Computed from structural-signature embeddings · 2026-09-08

Not to Be Confused With

  • Chemical similarity search. It ranks approximate overall resemblance. Tell: ask whether every result must contain a complete witness mapping for the query.
  • Identity search. It seeks the same complete structure under declared equivalence settings. Tell: add an extra substituent to the target; identity should fail while containment may survive.
  • Superstructure search. It reverses the containment direction. Tell: state explicitly which object must embed in which.
  • Maximum common substructure. It discovers a large shared pattern rather than testing a fixed query. Tell: ask whether the pattern is input or output.
  • Molecular formula search. It compares element counts without connectivity. Tell: constitutional isomers share a formula but need not share a requested bond pattern.
  • Pharmacophore or three-dimensional similarity search. It uses spatial feature arrangements or shapes and can match distinct two-dimensional connectivity. Tell: ask whether the witness is a 2D atom-and-bond embedding or a geometric feature alignment.
  • Structural alert. An alert is a rule library and interpretation layered on substructure hits. Tell: a hit answers containment; the alert workflow assigns a hazard, interference, or triage meaning.
  • Graph database query. It is a broader storage/query technology. Tell: a chemical substructure search remains the same abstraction when implemented by a cartridge in a relational database.
  • SMILES or InChI lookup. These are structure representations or identifiers. Tell: a particular string can supply an input, but the substructure operation is the containment relation evaluated over targets.
  • Fingerprint screening. It is a performance stage that rejects impossible candidates. Tell: require final atom mapping before calling a survivor a structural hit.

References

[1] International Union of Pure and Applied Chemistry. “Molecular Graph.” Compendium of Chemical Terminology (Gold Book), 5th ed., 2025. DOI 10.1351/goldbook.MT07069. registry

[2] Daylight Chemical Information Systems. “SMARTS—A Language for Describing Molecular Patterns.” Daylight Theory Manual. Official language specification; accessed and claim-checked 2026-08-28. registry ↩a ↩b ↩c

[3] Dimitris K. Agrafiotis et al. “Efficient Substructure Searching of Large Chemical Libraries: The ABCD Chemical Cartridge.” Journal of Chemical Information and Modeling 51, no. 12 (2011): 3113–3130. DOI 10.1021/ci200413e. registry ↩a ↩b ↩c

[4] RDKit Project. “The RDKit Book.” Official documentation, especially “Aromaticity,” “Atom-Atom Matching in Substructure Queries,” “Generic Queries,” and “Pattern Fingerprints”; accessed and claim-checked 2026-08-28. registry ↩a ↩b

[6] J. R. Ullmann. “An Algorithm for Subgraph Isomorphism.” Journal of the ACM 23, no. 1 (1976): 31–42. DOI 10.1145/321921.321925. registry

[7] Stephen R. Heller, Alan McNaught, Igor Pletnev, Stephen Stein, and Dmitrii Tchekhovskoi. “InChI, the IUPAC International Chemical Identifier.” Journal of Cheminformatics 7 (2015): 23. DOI 10.1186/s13321-015-0068-4. registry

[8] Hans-Christian Ehrlich and Matthias Rarey. “Systematic Benchmark of Substructure Search in Molecular Graphs—from Ullmann to VF2.” Journal of Cheminformatics 4 (2012): 13. DOI 10.1186/1758-2946-4-13. registry

[9] Judith N. Currano. “Searching by Structure and Substructure.” In Chemical Information for Chemists: A Primer, pp. 109–145. Royal Society of Chemistry, 2014. DOI 10.1039/9781782620655-00109. registry