Synthetically Accessible Virtual Inventory (SAVI)

We have made available a database of over 1 billion compounds predicted to be easily synthesizable. They have been created by a set of transforms based on an adaptation and extension of the CHMTRN/PATRAN programming languages describing chemical synthesis expert knowledge, which originally stem from the LHASA project. The chemoinformatics toolkit CACTVS was used to apply a total of 53 transforms to about 150,000 readily available building blocks (enamine.net). Only single-step, two-reactant syntheses were calculated for this database even though the technology can execute multi-step reactions. The possibility to incorporate scoring systems in CHMTRN allowed us to subdivide the database of 1.75 billion compounds in sets according to their predicted synthesizability, with the most-synthesizable class comprising 1.09 billion synthetic products. Properties calculated for all SAVI products show that the database should be well-suited for drug discovery. It is being made publicly available for free download from


Background & Summary
In silico screening of large databases of existing screening samples for the purpose of computer-aided drug design has made significant strides in the recent past, both in terms of the methodologies and software available and size and diversity of screening sample collections. Aggregated libraries on the order of 100 million on-the-shelf unique compounds are available in the commercial market 1 . Still, this MN-2 represents only a microscopically small fraction of the drug-like small-molecule space, which has been variously estimated to be on the order of 10 21 to 10 63 possible structures or even larger [2][3][4] .
Virtual libraries can significantly enlarge the part of chemistry space amenable to in silico screening. Prominent examples of very large libraries of enumerated compounds are the GDB databases, in particular GDB-17 of 166 billion enumerated organic small molecules of up to 17 heavy atoms of C, N, O, S, and halogens 5 . However, such automatically enumerated databasesas well as in principle any purely de novo designed moleculesuffer from the significant drawback that no practical synthetic route is a priori attached to these structures, and that therefore, in general, (a) manualand thus expensiveinvestigation of possible synthetic routes is necessary, (b) resulting routes may be complicated, multi-step syntheses, and (c) synthesis of the molecule may in the end prove altogether unsuccessful (or untenably expensive) even after significant effort.
Computational tools have been developed over the past four decades to alleviate these issues and help the synthetic chemist (and/or their CADD colleague) find a viable synthetic route for a novel molecule. They can be broadly categorized into two classes: synthesizability estimation [6][7][8][9][10][11][12][13][14] ; and synthetic route prediction (variously called computer assisted synthesis design (CASD), computer-assisted organic synthesis (CAOS), computer-assisted synthesis planning (CASP), computer-assisted reaction design (CARD), and yet other terms) [15][16][17][18][19][20][21][22][23][24][25][26][27][28][29][30][31][32][33] . While the former is often based on statistical, QSAR-like approaches and used (only) in the context of in silico screening, the latter typically apply some kind of retrosynthetic reasoning and were meant to support the bench chemist. These tools had their heyday during the 1980s and 1990s but subsequently fell out of favor as an approach used in practice, and the entire field went essentially dormant. Several reasons can be proffered for this, including: If the program selected one out of the typically very large number of possible routes, the proposed route was often either found not to work (well) in practice, or was rejected as unrealistic right away based on the chemist's experience; if, conversely, the software presented the user with a tree of possibilities, the amount of work to analyze these hundreds or thousands of possible routes was deemed unacceptable; hardware capabilities were insufficient to implement these approaches to their fullest potential and with enough speed; the programs were difficult to use including less user-friendly (or no) GUIs; the number of commercially available building blocks was much smaller than nowadays; advances in synthetic methods made existing knowledge bases obsolete; and perhaps the psychological issues of fearing these approaches might lead to replacement of human experts with machines.
Most importantly in our context, however, these approaches were all retrosynthetic in nature, i.e. trying to answer the question for a given molecule, "can it be synthesized?" or "how do I make it?" It seemed reasonable to turn this question on its head and instead ask: "what can we easily and cheaply synthesize?" and only then "go fishing" (with all the modern CADD approaches) for bioactive compounds in such a large pool of easy-to-synthesize molecules. The forward-synthetic approach ("let's just make some molecules/libraries"), while not always clear to distinguish in existing software from retrosynthetic processing, started up nearly as early with tools such as AHMOS, CAMEO, AIPHOS etc. [34][35][36][37][38][39][40][41][42][43][44] With this approach, one can for example a priori limit the number of reaction steps to just one, i.e. the simplest possible chemistry. The central point of SAVI is to avoid any synthetic heroics. Likewise, by giving the task of creating new molecules to the computer, one may reduce anthropogenic biases in chemical reaction choices 45 , thus hopefully covering chemical space better.
Three main components are required to make such an approach successful: (1) A set of highly predictive and richly annotated rules; (2) a significant-size database of reliably available and inexpensive starting materials; (3) a chemoinformatics engine capable of combining (1) and (2) to create a large number of molecules, each annotated with a proposed synthetic route description as well as with predicted properties seen as important in contemporary cutting-edge drug design.
Pharmaceutical companies have recognized since about 2010 the need for, and benefits of, similar approaches of generating large virtual libraries of easily synthesizable compounds. Examples we can cite here include Pfizer's Global Virtual Library 46 , Boehringer Ingleheim's BI CLAIM 47 , and Eli Lilly's Proximal Lilly Collection (PLC) 48 , the last probably being closest conceptually to SAVI. Still, there are several, and important, difference between these and SAVI, not least the fact that the resulting virtual libraries are proprietary and thus not available to the public.
Around the same time, Hartenfeller et al. published a paper 49 presenting robust organic synthesis reactions, encoded as SMIRKS patterns, that could be useful for in silico compound design. This publication, and its subsequent companion paper analyzing to what degree products generated with these chemistries would cover the bioactivity-relevant chemical space 50 , sparked a number of projects that based large virtual libraries on these "Hartenfeller reactions." [51][52][53] Numerous other projects involving virtual and tangible chemistry spaces and reaction prediction tools have emerged in the recent past 54,55 and have been reviewed in the literature 56 , as have projects of using such ultra-large libraries for virtual screening. [1][2][3] We felt, however, that SMIRKS patterns do not contain, and cannot easily be annotated with, any algorithmically usable chemistry knowledge for the reaction's successful application in the laboratory. For example, does the SMIRKS for the Sonogashira coupling 49 , really describe decades of experience of thousands of chemists about when this reaction works, how well, with what yields, and when it might not work at all? On the last point, there is no way to incorporate into a (single) SMIRKS a condition for rejecting the reaction altogether. We therefore tapped into the source of synthetic transform knowledge with arguably the richest description of the chemical context for each reaction: the knowledgebase that underlies the computational embodiment of E.J. Corey's seminal work on retrosynthetic analysis, the program LHASA (Logic and Heuristics Applied to Synthetic Analysis) 15,[59][60][61][62][63] . A thorough review of knowledge-based expert systems in chemistry has been recently published. 64 One of the characteristics distinguishing SAVI from LHASA is the fact the while the latter is retrosynthetic, the former is strictly forward-synthetic. This implied the task to make LHASA transforms, which are written for retrosynthetic application, work in a forward-synthetic context (A forward-synthetic application of the LHASA rules, LCOLI, was reported in the early 2000s 65 but doesn't seem to have progressed to any widely used tool.).
The active development of the LHASA program and knowledgebase essentially ceased in the late 1990s. As a consequence of this, nowadays widely used chemistries such as the Suzuki-Miyaura and Buchwald-Hartwig cross-coupling reactions were not represented in the LHASA knowledgebase at all at the beginning of the SAVI project. We have therefore created novel transforms for such (more) modern chemistry, as is further detailed below. All newly created transforms have however been coded such that they could directly be used in a retrosynthetic way, i.e. should the LHASA program be reactivated, or a successor retro-synthetic tool be created.

MN-4
After computing and posting for free download an early alpha set (610,492 products) in 2015 and subsequently a beta set of the SAVI database comprising over 283 million structures in 2016 66 , we are presenting here description and analysis of a data set of over 1 billion SAVI products. We point out that SAVI is an ongoing project, i.e. the approach and data described here are a snapshot of its current state.
Note regarding the nomenclature: In the context of the following description of the SAVI project, we employ a chemoinformatics usage of terms, which may differ from synthetic chemists' conventions. The (typically: named) chemistries used in SAVI are described by "transforms" (also called "rules"), whereas the application of a transform to a specific set of starting materials yields a "reaction." For example, there is one Sonogashira coupling transform/rule, but its application to all possible starting materials may yield tens of millions of Sonogashira reactions, each with a specific reaction product. The starting materials are taken from a set of possible reactants, which are also called building blocks (BB(s)). Some of the newly added named reactions were encoded in several different transforms expressing variants of reaction mechanisms, which we call "chemistries." For example, the Suzuki-Miyaura chemistry is encoded in six different transforms: Suzuki-Miyaura Cross-Coupling (Bromo), Suzuki-Miyaura Cross-Coupling (Iodo), etc. (see Table 2).

Language Pair CHMTRN/PATRAN for Encoding Transforms
The rules are written in the twin programming languages called CHMTRN and PATRAN originally developed in the LHASA project 59,60,67 . CHMTRN is probably best described as a hybrid of FORTRAN style programming with numerous buzz words providing a natural-language-like representation of detailed synthetic chemistry knowledge. It is used together with PATRAN, a chemical pattern description language. CHMTRN/PATRAN surpass other reaction transform descriptions such as SMIRKS in several respects: (1) Structural features that may be important for the reaction but are remote from the reaction center can be described and tested for (such as "a hydroxyl group within two atoms of one of the reaction center atoms"); (2) control and conditional functionality (such as "if ... then .. else", and "for each") and subroutine usage are possible; (3) tests for structural elements other than atoms and bonds, e.g. physico-chemical properties (such as electrophilic localization energy) can be implemented; (4) scoring systems can be implemented.
The rules can employ a scoring system that is based on molecular structural features, which can either facilitate the reaction (e.g., increase the predicted yield), or impede it. The syntactic elements that increase the transform's baseline score are the so-called ADD statements, and the SUBTRACT statements as their obvious counterpart. A third, related, syntactic element that is available if the author of a rule deems that structural features would make the reaction entirely unlikely to succeed is the KILL statement, whose meaning and effect is obvious. ADD and SUBTRACT values have traditionally been assigned in increments of five, and typically range from 5 to 30. In spite of their quantitative appearance, they are essentially qualitative human assessments.
We have adopted and extended the CHMTRN language for use in the SAVI project. CHMTRN/PATRAN, originally created for the design of retrosynthetic routes, have been reimplemented for the forward-synthetic SAVI project, but remain able to describe retro-, as well as MN-5 forward, reactions. For any further explanations of these languages including their detailed syntax, we refer to a recent publication. 68

Existing Transform Sets
The original LHASA knowledgebase in its entirety comprises about 2,300 transforms. We obtained all transforms from the two organizations that maintain it, the non-profit Lhasa Ltd in the UK (Leeds), and the small company LHASA LLC in the US (Cambridge, MA). The entire set is split roughly into 1,000 basic rules for retrosynthesis planning maintained by the latter company, and 1,300 more-complex rules held, and recently made public, 69 by the former.
While a large number of transforms may give power to a retrosynthetic toolwhich after all is intended to provide synthetic route suggestions for any molecule a user may submitthis is entirely unnecessary and was in fact undesirable at the inception of SAVI as we were looking for well-established chemistries that are easy, reliable, safe, high-yield etc. We therefore initially chose just over ten transforms from the knowledgebase with an emphasis on ring-forming reactions (Table 1), as well as to provide a test set for implementation of the CHMTRN/PATRAN parser, development of the SAVI algorithms, and initial proof of principle of the feasibility of the entire approach. We used the internal quality annotations in the transforms (such as TYPICAL*YIELD, RELIABILITY, CONDITION*FLEXIBILITY etc.) to filter for overall "good" transforms. Due to the age of the existing knowledgebase, it did not contain several named reactions that are widely used nowadays, such as Suzukia-Miyaura Cross-Coupling. We therefore created over fifty novel CHMTRN/PATRAN transforms (Table 2). We focused on transforms that create novel molecules by making significant new bonds, some of which encode ring-forming reactions. In the SAVI production runs that created the data described here we did not use functional group interchange (FGI) transforms, including the newly written Balz-Schiemann Fluorination (ID 6030) and Nitro Reduction to Primary Amine (ID 6040), which have significant expansion potential, being applicable to 96,314,519 and 89,415,518 of the 1.75 billion SAVI products, respectively. They, and potentially other FGI transforms from the original LHASA transform set, may be used for future broadening of the SAVI database.
The general reaction scheme of SAVI in its current version is thus A + B  C (A, B: reactants; C: product) as we have limited the project to single-step application of transforms.

Chemoinformatics Parsing of CHMTRN/PATRAN Rules and Computation of Reactions
While CHMTRN/PATRAN was not publicly documented at the beginning of the project, we received sufficient documentation material from the original providers of the transforms to be able to implement a parser and bytecode interpreter, augmented with additional, connected program logic in the chemoinformatics toolkit CACTVS (Xemistry GmbH, Glashütten, Germany) 70,71 for at least a subset of these rules. Details of this work will be published elsewhere. We have now provided a description of the CHMTRN language. 68 An important aspect of design and implementation of the CHMTRN/PATRAN parser and the SAVI algorithm based on it is that, as already-mentioned, the knowledgebase rules were all written for retrosynthetic application, whereas the SAVI project is forward-synthetic. Since we preserved compatibility of newly written transforms with the original retrosynthetic approach, this required a somewhat indirect traversal of the actual rule by first enumerating all possible reactant pairs (if dealing with a two-reactant transform), then testing in a first pass whether the "lhasa react" command in CACTVS produces a possible product, and only then subjecting this (tentative) product to the retrosynthetic analysis of the rule proper (including possibly encountering the above-mentioned ADD, SUBTRACT, or KILL clauses), executed by the "lhasa score" command. This workflow is shown in Figure 1: While CACTVS, in an initial transform compilation stage, parses the LHASA transforms written in CHMTRN/PATRAN, the algorithmic contents of the rules are then converted into internal, binary, data structures in CACTVS. The rules are therefore made available on the SAVI download page in both versions: human-readable source code (.src files), and compiled lhasa binary (.clb files).

Building Blocks (BBs)
Enamine (Kyiv, Ukraine, enamine.net) provided structural details of 155,129 BBs that were in stock as of December 2019. These BBs were standardized to remove fragments and salts. Duplicates were removed via a stereo-sensitive and tautomer-sensitive unique CACTVS hashcode identifier calculated for each building block. Further filters were applied to remove BBs containing less abundant isotopically labelled atoms, metals, as well as structures that were too complex to yield reasonable screening compounds, with the complexity quantitatively defined according to a modified Bertz/Hendrickson algorithm [72][73][74] . This left us with 152,532 structures. They were used to generate SAVI reactant pairs for application of the transform logic. Reactant pairs that might lead to a reaction forming polymers and/or product mixtures were excluded from the execution.

Protecting Groups
Handling protecting groups in the most meaningful way can be somewhat tricky. The issue is that while the planning of a synthetic approach should take protecting groups into account, i.e. present the chemist with a protected product if available, computations on the molecule as a ligand, such as docking, pharmacophore searching, or ADMET property calculations, generally require the unprotected version.
It is possible that a BB set includes the protected version (R1-PG), the unprotected version (R1), or both. The CHMTRN/PATRAN logic considers the effect of exposed or protected functional groups and either rewards or penalizes the reaction accordingly. We therefore did not modify the BBs to computationally add or remove protecting groups. We did however generate modified products by removing protecting groups. Thus, whereas a standard reaction with reactants R1 and R2 yielding product P that does not involve any protecting group is executed to the scheme of: if R1 has a protecting group, which produced a product P-PG, we created a deprotected version P: This deprotected version is saved in the product set, ready for CADD approaches. The original protected version of the product is added to the SAVI reaction details. In those cases where both a protected and an unprotected version of a building block amenable to a given transform were present in the BB set, a duplicate deprotected product P may have been produced, but only if the unprotected version of the BB did not trigger a KILL statement removing that reaction altogether. Penalization of the reaction with the unprotected BB (if it was not KILLed) is quite likely. It is therefore probable that such reactions are sorted into the "negative" (i.e. penalized) subset of SAVI products (see below) via the classification by reaction scores that we apply.

Predicted Properties
Each SAVI product has been annotated with over 60 properties, including data about the BBs and proposed reaction (catalog numbers, reactants, general conditions, protection, predicted yield etc.), identifiers/representations of both the BBs and the product, as well as "drug design" properties such as Lipinski RO5/RO3 75,76 violations, PAINS 77 filter matches, FSP3 (fraction of sp 3 hybridized carbons), and log P. The complete list is available on the SAVI Download web page 66 as well as in sections 1 and 2 of Supplementary Information 1. Section 3 of Supplementary Information 1 shows the fields written in SD file format of a SAVI product file. We are also computing and will make available in the future about 100 different ADME/Tox properties using the program ADMET Predictor (Simulations Plus, Lancaster, CA).
One of the annotations merits a brief elaboration. In addition to the widely used though increasingly controversial 78 PAINS filter 77 matches, we have annotated all SAVI products with a score based on 275 rules for identifying potentially reactive or promiscuous compounds that might interfere with biological MN-10 assays. We believe that these rules, described by Bruns and Watson 79 as being based on years of assaying experience at Eli Lilly, have more relevance and greater discriminatory and predictive power than the PAINS filters. All 275 rules have been implemented in CACTVS specifically in the context of the SAVI project (with help from Ian Watson), to produce an overall score called "Bruns and Watson demerit" (the lower the value the better).

Hardware and Database
The runs that generated the data presented here were performed in December 2019 -January 2020 on the NIH Biowulf system, a Linux cluster of several tens of thousands of cores 80 . Due to the "embarrassingly parallel" nature of the SAVI product generation runs (each reactant pair can be processed independently of all others), the entire job was split into nearly 69,000 subjobs, with 4,000 run simultaneously at any time (which was the per-user limit of jobs on Biowulf). The output of the jobs, both the structure data and the annotations, was first written to text files (CSV), which were then loaded into a PostgreSQL database, where it can be queried and analyzed, and whence other formats such as SDF and SMILES lists can be written. A total of about 2,084,000 CPU hours on Biowulf were used to generate this 2020 version of the SAVI database.

Data Records Building Blocks Used
Out of the total 152,532 accepted Enamine building blocks, application of the pattern-matching part of the 53 productive transforms found 143,365 BBs that fit one or several transforms as a possible reactant (see Table 3).  (Table 4). Thus, the loss rate caused by encountering KILL statements was about 51%. We re-emphasize that this is a good result: the reduction of the "haystack." Figure 2 shows the reaction success rate for each productive transform. The total number of saved reactions per transform is the product of the reaction pair count (  Counts were adjusted for duplication in products due to alkene reactivity at both ends of the bond (ID 6009) or tautomerism (IDs 7005, 7013, 7014).) (a) The unique-structure numbers for the individual classes do not add up to the unique structures for all classes combined since some products are present in more than one class. Table 4 shows the numbers of the saved reactions binned into the different scoring classes ("Plus" or "Negn" with n equaling at least 0, 10, 20, or 30). We observe that the majority of products (62.6%) are in the Plus class. At the same time, the highest occupancy among the Neg classes is in the highest (i.e. worst) Neg class. This suggests that it may indeed be advisable, especially for the highly productive transforms, to limit oneself to the Plus subsets. The "Scoring Class Distribution" sheet in Supplementary Information 2 shows the scoring class distributions for each individual transform. Two of the transforms, Kabbe Synthesis of 4-Chromanones (ID 2296) and Benzazepin-2-ones by Pictet-Spengler Reaction (ID 2630) generated 10,000 or more products, but none in the Plus class.

Splitting Into Scoring Classes
As already mentioned, it is entirely possible, and in no way undesirable, that the same molecule is produced by two different reactions, be it from the same building blocks but different procedures, or from different BBs and either the same or different transforms. Counting the unique products out of the 1,748,464,003 saved reactions yielded 1,526,316,392 molecules.

Success Rates and Implicit SAR Series
If we take the total number of accepted BBs, 152,532, observe that every one of the 53 used reaction essentially follows the pattern A + B  C, we can calculate the theoretically possible maximum number of products as a ½ * 153,532 2 * 53 ~ 617 billion. (We ignore, for simplicity's sake, the possibility that in some cases, when multiple reactive groups are present in a BB, one could have A + B  C and B + A  C'. We remove such cases anyway during the reactant pair generation.) Our actually generated product set being 1.75 billion, our success rate in this sense is about 1/350. This reduction is caused by both (a) the fact that most pairs R1 and R2 do not match the PATRAN patterns of any of our transforms, and (b) the 51% loss rate encountered by KILL statements in the CHMTRN reaction logic.
The totality of potential products defined from N BB building blocks and n t transforms as N BB 2 * n t can be seen as a large, triangular, three-dimensional matrix. Even though this matrix is very sparse, it contains for each filled cell (i.e. saved product) a large set of neighbors with R1 being constant and R2 varying, and vice versa. These sets can be seen as SAR series of sorts, which is a built-in feature of the approach. Due to the variety of chemistries presented in our transforms, the diversity within these series however is likely higher than in typical large-scale combinatorial libraries. Detailed diversity analysis of SAVI will therefore be needed to determine how close these compound series are to SAR series typically used in medicinal chemistry. For each accepted SAVI product, we can estimate the average size of the SAR series as follows. Remembering that the duplication across product space is about 15%, i.e. 85% of the products occur only once across all transforms, we can without too much error project all products onto the flattened two-dimensional matrix sized 143,365 x143,365, which has 20.6 billion cells. If all cells were filled in a triangular occupation, each generated molecule would have ½ * 143,365 SAR neighbors within each row, and the same number within each column, i.e. a total of about 143,000 SAR neighbors. A SAR neighbor is defined here as a molecule having the same BB R1 but any other R2, and equivalently for R2. However, we have only about 17% of the (triangular) matrix elements filled with truly generated products. This yields an average of about 24,800 SAR neighbors for each SAVI product.

Protected and Unprotected SAVI Products
153,001,115 products, which is nearly 10% of them, were generated from at least one protected building block. Protecting groups were removed before writing these products to the SAVI database. A suffix was added to the SAVI ID of a product: UN (UNprotected) if the product was generated from unprotected BBs; DP (DeProtected) if the product was generated from protected BBs but deprotected before writing it to the SAVI database.

Overlap with Other Databases
We calculated the overlap of SAVI with three large databases (Table 5) : the REAL database from Enamine 81 , the iResearch Library from ChemNavigator/Sigma Aldrich 1 , and PubChem 82 . For PubChem, we measured an overlap rate of 0.3%, i.e. >99% of the SAVI products are not in PubChem. Still, this small percentage corresponds to more than 5 million molecules that are in both databases. Among those are structures that have biological assay data (186,291 compounds). Overlap analysis with DrugBank V.5.1.5 83 showed that 547 SAVI compounds are in fact drugs. These compounds show that SAVI does generate "real" molecules.
Based on the fact that both SAVI and the REAL databases use Enamine BBs, it is of interest to know the overlap between those very large databases. We see that on the order of 10% of either database is also present in the other. This is reassuring both in the sense that reasonable chemistry is being created by  SAVI and that each of these Enamine-BB-based databases provides its own richness of unique structures.
We also notice that we in fact "re-synthesize" 34,241 of the building blocks themselves. The most likely explanation is that the Enamine BBs contains series of BBs that were synthetically based on each other. This again shows that calling a molecule a building block is mostly a matter of definition and practical considerations, not an invariant chemical property.

Ring System Analysis
As mentioned above, one goal in the creation of the SAVI versions so far has been to build novel molecules, not just modify existing molecules with new or interchanged functional groups. We aimed for this by emphasizing coupling and ring-building transforms. Sixteen of the 53 transforms are exclusively ring-forming (see Tables 1 and 2, third column), which yielded 8,227,198 products with newly formed rings. We note that intra-molecular application of coupling transforms can also lead to the formation of rings. However, this may also lead to polymer formation and was therefore generally excluded in this version of SAVI. Extra information may be added in the future into the transforms themselves to better handle intra-molecular cyclization.
Novel ring systems, i.e. ring systems never before seen in any known compound, have most likely also been generated by SAVI. Conducting a stringent analysis would require a reference body of molecules. Arguably, this would be the Chemical Abstract Service (CAS) Registry, which is however not readily available in bulk. Informal analyses have shown that more than 1,000 novel ring systems may have been created by SAVI.
A count of ring systems, both aromatic and aliphatic, yielded 39,036 unique ring systems in SAVI products. Rings that were already present in the building blocks were also counted. We compared the SAVI ring system count with the ring systems found in three large databases (Table 6). We note that the REAL database, while of similar size as SAVI, and based on essentially the same building block set, contain less than a tenth of the number of ring systems found in SAVI. This is likely due to the fact that the chemistries involved in creating SAVI contained more ring-forming transforms than those used for REAL. PubChem, a very diverse database aggregated from hundreds of sources 85 with very different types of compounds, shows a much larger number of different ring systems. Yet, the iRL, also combining hundreds of sources (but only of screening samples), only slightly surpasses SAVI. Perhaps most interestingly, the overlap subsets of SAVI comprised only a few thousand cases for each of the three databases (PubChem: 3,295; REAL: 2,145; iRL: 2,883) while the ring systems present only in SAVI added up to 35,623.  Supplementary Information 1, show that the SAVI product set is well suited for drug development. We note that the QED distribution is more drug-like than any of the databases analyzed in the original QED publication 86 . Similarly, the Bruns & Watson demerits 79 are within the strict limit of <100 used at Eli Lilly in 41% of the Plus SAVI compounds, and within the looser Eli Lilly limit of <160 in 65% of the cases.

Differences from, and Similarities with, Other Compound Generation and Synthesis Prediction Systems
The majority of rule-based approaches use SMIRKS to encode the rules needed to cover the desired chemical space 88,89 . They can number in the thousands, especially if retrosynthetic prediction is the goal ("predict the synthesis of a given molecule in any possible way"). SMIRKS, however, do not allow one to directly encode the synthetic chemists' accumulated knowledge about constraints and limitations of the reactions as a function of the structural details of the reactants. Even advanced machine learning patterns typically discover patterns in the data, not true chemical understanding. SAVI, in contrast, is an expert system approach with a detailed reaction logic that can be incorporated in the CHMTRN/PATRAN files. One such rule can therefore correspond to a large number of SMIRKS (some of which might be quite complicated); and CHMTRN/PATRAN can include features that cannot be expressed in SMIRKS at all (such as computed electron density).
A number of recent approaches are based on statistical evaluation of existing large bodies of reaction data 90-93 by unleashing modern machine learning methods on these data sets. Molecular structure representation is often done by SMILES. While impressive results have been achieved by these approaches whose central machine-learning algorithms may or may not be aware of chemistry at all, we see several advantages of SAVI compared to these approaches. Learning from existing datasets will always learn what is known, and preferentially learn what is widely used, i.e. strongly represented in the learning set. CHMTRN/PATRAN transforms can, in contrast, be used to add brand-new or unpublished chemistry into SAVI without having to wait for reaction databases to fill up with examples of such reactions. This has not been used much for SAVI up until now because we first wanted to populate the SAVI transform set with reliable, well-known chemistry that would be readily accepted by chemists. However, we have added new transforms in the recent past (not used for creation of the data presented here) as new synthetic approaches are being published. The latest examples include sulfonimidamide synthesis 94 and modular click chemistry. With accelerating advances in synthetic organic chemistry we expect rapid growth of SAVI. 95 The usage of sophisticated transforms that incorporate a scoring system makes it possible to use negative outcomes of the reaction logic (KILLed reactions, reactions with SUBTRACT demerits) to create large sets of (computationally) failed reactions, which may be useful for, e.g., machine learning approaches. Such efforts are currently being investigated.

Multi-Step Reactions
Multi-step reactions are trivial to conceive in SAVI; but daunting in their prospective sizes. For example, taking just the output of the click chemistry transform (transform ID 2875, Copper[I]catalyzed azide-alkyne cycloaddition), which produced 1 million molecules, as input for a second step (i.e. combining them with the standard BB compounds), yielded more than 50 billion reactant pairs. Taking the entire 1 billion current SAVI output set instead as new BBs can be estimated to yield 1 trillion actually accepted reactions. Techniques such as targeted growing into this huge space of 3reactant, 2-step, SAVI syntheses will be needed, which will be the topic of future reports.

Conclusions
We have created and made publicly available a database of over a billion easily synthesizable compounds suited for drug design. We have shown that the language pair CHMTRN/PATRAN, originally stemming from the chemical expert systems LHASA, can be adopted and extended in a highly productive way for a modern approach of large library design.
The SAVI database is being used in a number of drug discovery projects at the National Cancer Institute and with collaborators world-wide, including against SARS-CoV-2 targets. Reports on these projects will be published separately.

Code Availability
The academic version of the chemoinformatics toolkit CACTVS, is available for free download from https://www.xemistry.com/academic/ for evaluation and for use in research and education. The transforms used in the generation of the SAVI database are available from https://cactus.nci.nih.gov/download/savi_download/. The source code of the "lhasa" command in CACTVS that was developed for the SAVI project can be obtained from W.-D. Ihlenfeldt upon request.