# The LOTUS initiative for open knowledge management in natural products research

1. Adriano Rutz 1 1
2. Maria Sorokina 2
3. Jakub Galgonek 3
4. Daniel Mietchen 4 5 6
5. Egon Willighagen 7
6. Arnaud Gaudry 1 1
7. James G Graham 8 8
8. Ralf Stephan 9
9. Roderic Page 10
10. Jiří Vondrášek 3
11. Christoph Steinbeck 2
12. Guido F Pauli 8 8
13. Jean-Luc Wolfender 1 1
14. Jonathan Bisson bjo@uic.edu 8 8
15. Pierre-Marie Allard pierre-marie.allard@unifr.ch 1 1 11

1. Geneva
2. Jena
3. Prague
4. Montclair
5. Berlin
6. Charlottesville
7. Maastricht
8. Chicago
9. Toronto
10. Glasgow
11. Fribourg

2022-05-26

- Tools and Resources

- Computational and Systems Biology
- Ecology

- open science
- natural products
- Wikidata
- knowledge graph
- linked data
- LOTUS Initiative
- Other

- publisher-id 70780
- doi 10.7554/eLife.70780
- elocation-id e70780

## Abstract

Contemporary bioinformatic and chemoinformatic capabilities hold promise to reshape knowledge management, analysis and interpretation of data in natural products research. Currently, reliance on a disparate set of non-standardized, insular, and specialized databases presents a series of challenges for data access, both within the discipline and for integration and interoperability between related fields. The fundamental elements of exchange are referenced structure-organism pairs that establish relationships between distinct molecular structures and the living organisms from which they were identified. Consolidating and sharing such information via an open platform has strong transformative potential for natural products research and beyond. This is the ultimate goal of the newly established LOTUS initiative, which has now completed the first steps toward the harmonization, curation, validation and open dissemination of 750,000+ referenced structure-organism pairs. LOTUS data is hosted on Wikidata and regularly mirrored on https://lotus.naturalproducts.net/. Data sharing within the Wikidata framework broadens data access and interoperability, opening new possibilities for community curation and evolving publication models. Furthermore, embedding LOTUS data into the vast Wikidata knowledge graph will facilitate new biological and chemical insights. The LOTUS initiative represents an important advancement in the design and deployment of a comprehensive and collaborative natural products knowledge base.

## Introduction

### Evolution of electronic natural products resources

Natural Products (NP) research is a transdisciplinary field with wide-ranging interests: from fundamental structural aspects of naturally occurring molecular entities to their effects on living organisms and extending to the study of chemically mediated interactions within entire ecosystems. Defining the 'natural' qualifier is a complex task 31 Ducarme and Couvet 2020 3 All natural 2007. We thus adopt here a broad definition of a NP as any chemical entity found in a living organism, hereafter refered to as a structure-organism pair. An additional and fundamental element of a structure-organism pair is a reference to the experimental evidence that establishes the linkages between the chemical structure and the biological organism. A future-oriented electronic NP resource should contain fully-referenced structure-organism pairs.

Reliance on data from the NP literature presents many challenges. The assembly and integration of NP occurrences into an inter-operative platform relies primarily on access to a heterogeneous set of databases (DB) whose content and maintenance status are critical factors in this dependency 126 Tsugawa 2018. A tertiary inter-operative NP platform is thus dependent on a secondary set of data that has been selectively annotated into a DB from primary literature sources. The experimental data itself reflects a complex process involving collection or sourcing of natural material (and establishment of its identity), a series of material transformation and separation steps and ultimately the chemical or spectral elucidation of isolates. The specter of human error and the potential for the introduction of biases are present at every phase of this journey. These include publication biases 70 Lee et al.2013, such as emphasis on novel and/or bioactive structures in the review process, or, in DB assembly stages, with selective focus on a specific compound class or a given taxonomic range, or disregard for annotation of other relevant evidence that may have been presented in primary sources. Temporal biases also exist: a technological 'state-of-the-art' when published can eventually be recast as anachronistic.

The advancement of NP research has always relied on the development of new technologies. In the past century alone, the rate at which unambiguous identification of new NP entities from biological matrices can be achieved has been reduced from years to days and in the past few decades, the scale at which new NP discoveries are being reported has increased exponentially. Without a means to access and process these disparate NP data points, information is fragmented and scientific progress is impaired 6 Balietti et al.2015. To this extent, contemporary bioinformatic tools enable the (re-)interpretation and (re-)annotation of (existing) datasets documenting molecular aspects of biodiversity 80 Mongia and Mohimani 2021 55 Jarmusch et al.2020.

While large, well-structured and freely accessible DB exist, they are often concerned primarily with chemical structures (e.g. PubChem 63 Kim et al.2019, with over 100 M entries) or biological organisms (e.g. GBIF 36 GBIF 2020, with over 1900 M entries), but scarce interlinkages limit their application for documentation of NP occurrence(s). Currently, no open, cross-kingdom, comprehensive and computer-interpretable electronic NP resource links NP and their containing organisms, along with referral to the underlying experimental work. This shortcoming breaks the crucial evidentiary link required for tracing information back to the original data and assessing its quality. Even valuable commercially available efforts for compiling NP data, such as the Dictionary of Natural Products (DNP), can lack proper documentation of these critical links.

Pioneering efforts to address such challenges led to the establishment of KNApSAck 116 Shinbo et al.2006, which is likely the first public, curated electronic NP resource of referenced structure-organism pairs. KNApSAck 1 Afendi et al.2012 currently contains 50,000+ structures and 100,000+ structure-organism pairs. However, the organism field is not standardized and access to the data is not straightforward. Another early-established electronic NP resources is the NAPRALERT dataset 40 Graham and Farnsworth 2010, which was compiled over five decades from the NP literature, gathering and annotating data derived from over 200,000 primary literature sources. This dataset contains 200,000+ distinct compound names and structural elements, along with 500,000+ records of distinct, fully-cited structure-organism pairs. In total, NAPRALERT contains over 900,000 such records, due to equivalent structure-organism pairs reported in different citations. However, NAPRALERT is not an open platform and employs an access model that provides only limited free searches of the dataset. Finally, the NPAtlas 128 Santen et al.2019 129 Santen et al.2022 is a more recent project complying with the FAIR (Findability, Accessibility, Interoperability, and Reuse) guidelines for digital assets 142 Wilkinson et al.2016 and offering convenient web access. While the NPAtlas allows retrieval and encourages submission of compounds with their biological source, it focuses on microbial NP and ignores a wide range of biosynthetically active organisms found in the Plantae kingdom.

The LOTUS initiative seeks to address the aforementioned shortcomings. Building on the experience gained through the establishment of the recently published COlleCtion of Open NatUral producTs (COCONUT) 121 Sorokina et al.2021 regarding the aggregation and curation of NP structural databases, this savoir-faire was expanded to accommodate biological organisms and scientific references in the equation. After extensive data curation and harmonization of over 40 electronic ressources, pairs characterizing a NP occurrence were standardized at the chemical, biological and reference levels. At its current stage of development, LOTUS disseminates 750,000+ referenced structure-organism pairs. These efforts and experiences represent an intensive preliminary curatorial phase and the first major step towards providing a high-quality, computer-interpretable knowledge base capable of transforming NP research data management from a classical (siloed) database approach to an optimally shared resource.

### Accommodating principles of FAIRness and TRUSTworthiness for natural products knowledge management

In awareness of the multi-faceted pitfalls associated with implementing, using and maintaining classical scientific DBs 48 Helmy et al.2016, and to enhance current and future sharing options, the LOTUS initiative selected the Wikidata platform for disseminating its resources. The idea of using wikis to disseminate databases is not new, with multiple underlying advantages 33 Finn et al.2012. Since its creation, Wikidata has focused on cross-disciplinary and multilingual support. Wikidata is curated and governed collaboratively by a global community of volunteers, about 20,000 of which are contributing monthly. Wikidata currently contains more than 1 billion statements in the form of subject-predicate-object triples. Triples are machine-interpretable and can be enriched with qualifiers and references. Within Wikidata, data triples correspond to approximately 100 million entries, which can be grouped into classes as diverse as countries, songs, disasters, or chemical compounds. The statements are closely integrated with Wikipedia and serve as the source for many of its infoboxes. Various workflows have been established for reporting such classes, particularly those of interest to life sciences, such as genes, proteins, diseases, drugs, or biological taxa 131 Waagmeester et al.2020.

Building on the principles and experiences described above, the present report introduces the development and implementation of the LOTUS workflow for NP occurrence curation and dissemination, which applies both FAIR and TRUST (Transparency, Responsibility, User focus, Sustainability and Technology) principles 71 Lin et al.2020. LOTUS data upload and retrieval procedures ensure optimal accessibility by the research community, allowing any researcher to contribute, edit and reuse the data with a clear and open CC0 license (Creative Commons 0).

Despite many advantages, Wikidata hosting has some notable, yet manageable drawbacks. While its SPARQL query language offers a powerful way to query available data, it can also appear intimidating to the less experienced user. Furthermore, some typical queries of molecular electronic NP resources such as structural or spectral searches are not yet available in Wikidata. To address these shortcomings, LOTUS is hosted in parallel at https://lotus.naturalproducts.net (LNPN) within the naturalproducts.net ecosystem. The Natural ProductsOnline website is a portal for open-source and open-data resources for NP research. In addition to the generalistic COCONUT and LNPN databases, the portal will enable hosting of arbitrary and skinned collections, themed in particular by species or taxonomic clade, by geographic location or by institution, together with a range of cheminformatics tools for NP research. LNPN is periodically updated with the latest LOTUS data. This dual hosting provides an integrated, community-curated and vast knowledge base (via Wikidata), as well as a NP community-oriented product with tailored search modes (via LNPN). The multiple data interaction options should establish the basis for the transparent and sustainable access, sharing and creation of knowledge on NP occurrence.

The LOTUS initiative was initially launched to answer our need to access the most comprehensive compilation of biological occurrences of NP. Indeed, we recently highlighted the interest of considering the taxonomic dimension when annotating metabolites 99 Rutz et al.2019. This being said, many other concrete applications can result from an access by the scientific community to the LOTUS initiative data. For example, such a resource will facilitate the exploration of eco-evolutionary mechanisms at the molecular level 27 Defossez et al.2021. In terms of drug discovery, this resource is extremely valuable to orient and guide researchers interested in a structure of interest. On the same theme, LOTUS is expected to be the perfect place to encounter 'molecular arguments' for biodiversity conservation 13 Campbell 2003. Researchers interested in the history of science will be able, through this kind of resource, to gain a preliminary view of the temporal evolution of disciplines such as pharmacognosy. More generally, the objective of the LOTUS initiative is to prepare the ground for an electronic and globally accessible resource that would be the counterpart, at the metabolite level, of established databases linking proteins to biological organisms (e.g. Uniprot) and genes to biological organisms (Genbank). Once such an objective is reached, it will be possible to interconnect the three central objects of the living, that is metabolites, proteins and genes, through the common entity of these resources, the biological organism. Such an interconnection, fostering cross-fertilization of the fields of chemistry, biology and associated disciplines is desirable and necessary to advance towards a better understanding of Life.

## Results and discussion

This section is structured as follows: first, we present an overview of the LOTUS initiative at its current stage of development. The central curation and dissemination elements of the LOTUS initiative are then explained in detail. The third section addresses the interaction modes between end-users and LOTUS, including data retrieval, addition, and editing. Some examples on how LOTUS data can be used to answer research questions or develop hypothesis are given. The final section is dedicated to the interpretation of LOTUS data and illustrates the dimensions and qualities of the current LOTUS dataset from chemical and biological perspectives.

### Blueprint of the LOTUS initiative

Building on the standards established by the related WikiProjects on Wikidata (Chemistry, Taxonomy and Source Metadata), a NP chemistry-oriented subproject was created (Chemistry/Natural products). Its central data consists of three minimal sufficient objects:

- A chemical structure object, with associated Simplified Molecular Input Line Entry System (SMILES) 135 Weininger 1988, International Chemical Identifier (InChI) 47 Heller et al.2013 and InChIKey (a hashed version of the InChI).
- A biological organism object, with associated taxon name, the taxonomic DB where it was described and the taxon ID in the respective DB.
- A reference object describing the structure-organism pair, with the associated article title and a Digital Object Identifier (DOI), a PubMed (PMID), or PubMed Central (PMCID) ID.

As data formats are largely inhomogeneous among existing electronic NP resources, fields related to chemical structure, biological organism and references are variable and essentially not standardized. Therefore, LOTUS implements multiple stages of harmonization, processing, and validation (Figure 1, stages 1--3). LOTUS employs a Single Source of Truth (SSOT, Single_source_of_truth) to ensure data reliability and continuous availability of the latest curated version of LOTUS data in both Wikidata and LNPN (Figure 1, stage 4). The SSOT approach consists of a PostgreSQL DB that structures links and data schemes such that every data element has a single place. The LOTUS processing pipeline is tailored to efficiently include and diffuse novel or curated data directly from new sources or at the Wikidata level. This iterative workflow relies both on data addition and retrieval actions as described in the Data Interaction section. The overall process leading to referenced and curated structure-organisms pairs is illustrated in Figure 1 and detailed hereafter.

Figure 1.

#### Blueprint of the LOTUS initiative.

Data undergo a four-stage process: (1) Harmonization, (2) Processing, (3) Validation, and (4) Dissemination. The process was designed to incorporate future contributions (5), either by the addition of new data from within Wikidata (a) or new sources (b) or via curation of existing data (c). The figure is available under the CC0 license at https://commons.wikimedia.org/wiki/File:Lotus_initiative_1_blueprint.svg.

By design, this iterative process fosters community participation, essential to efficiently document NP occurrences. All stages of the workflow are described on the git sites of the LOTUS initiative at https://github.com/lotusnprod and in the methods. At the time of writing, 750,000+ LOTUS entries contained a curated chemical structure, biological organism and reference and were available on both Wikidata and LNPN. As the LOTUS data volume is expected to increase over time, a frozen (as of 2021-12-20), tabular version of this dataset with its associated metadata is made available at https://doi.org/10.5281/zenodo.5794106 102 Rutz et al.2021.

### Data harmonization

Multiple data sources were processed as described hereafter. All publicly accessible electronic NP resources included in COCONUT that contain referenced structure-organism pairs were considered as initial input. The data were complemented with COCONUT's own referenced structure-organism pairs 119 Sorokina and Steinbeck 2020, as well as the following additional electronic NP resources: Dr. Duke 127 U.S. Department of Agriculture 1992, Cyanometdb 56 Jones et al.2021, Datawarrior 112 Sander et al.2015, a subset of NAPRALERT, Wakankensaku 132 Wakankenaku 2020 and DiaNat-DB 74 Madariaga-Mazón et al.2021.

The contacts of the electronic NP resources not explicitly licensed as open were individually reached for permission to access and reuse data. A detailed list of data sources and related information is available as Appendix 1. All necessary scripts for data gathering and harmonization can be found in the lotus-processor repository in the src/1_gathering directory and processed is detailed in the corresponding methods section gathering section. All subsequent iterations including new data sources, either updated information from the same data sources or new data, will involve a comparison with the previously gathered data at the SSOT level to ensure that the data is only curated once.

### Data processing and validation

As shown in Figure 1, data curation consisted of three stages: harmonization, processing, and validation. Thereby, after the harmonization stage, each of the three central objects -- chemical compounds, biological organisms, and reference -- were processed, as described in related methods section. Given the data size (2.5M+ initial entries), manual validation was unfeasible. Curating the references was a particularly challenging part of the process. Whereas organisms are typically reported by at least their vernacular or scientific denomination and chemical structures via their SMILES, InChI, InChIKey or image (not covered in this work), references suffer from largely insufficient reporting standards. Despite poor standardization of the initial reference field, proper referencing remains an indispensable way to establish the validity of structure-organism pairs. Better reporting practices, supported by tools such as Scholia 10 Blomqvist et al.2017 94 Rasberry et al.2019 and relying on Wikidata, Fatcat, or Semantic Scholar should improve reference-related information retrieval in the future.

In addition to curating the entries during data processing, 420 referenced structure-organism pairs were selected for manual validation. An entry was considered as valid if: (i) the structure (in the form of any structural descriptor that could be linked to the final sanitized InChIKey) was described in the reference (ii) the containing organism (as any organism descriptor that could be linked to the accepted canonical name) was described in the reference and (iii) the reference was describing the occurrence of the chemical structure in the biological organism. More details are available in the related methods section. This process allowed us to establish rules for automatic filtering and validation of the entries. The parameters of the automatic filtering are available as a function (filter_dirty.R) and are further described in the related methods section. The automatic filtering was then applied to all entries. To confirm the efficacy of the filtering process, a new subset of 100 diverse, automatically curated and automatically validated entries was manually checked, yielding a rate of 97% of true positives. The detailed results of the two manual validation steps are reported in Appendix 2. The resulting data is also available in the dataset shared at https://doi.org/10.5281/zenodo.5794106 102 Rutz et al.2021. Table 1 shows an example of a referenced structure-organism pair before and after curation. This process resolved the structure to an InChIKey, the organism to a valid taxonomic name and the reference to a DOI, thereby completing the establishment of the essential referenced structure-organism pair.

Table 1.

#### Example of a referenced structure-organism pair

before and after curation.

| Structure | Organism | Reference
--- | --- | --- | ---
Before curation | Cyathocaline | Stem bark of Cyathocalyx zeylanica CHAMP. ex HOOK. f. & THOMS. (Annonaceae) | Wijeratne E. M. K., de Silva L. B., Kikuchi T., Tezuka Y., Gunatilaka A. A. L., Kingston D. G. I., J. Nat. Prod., 58, 459--462 (1995).
After curation | VFIIVOHWCNHINZ-UHFFFAOYSA-N | Cyathocalyx zeylanicus | 10.1021/NP50117A020

Challenging examples encountered during the development of the curation process were compiled in an edge cases table (tests/tests.tsv) to allow for automated unit testing. These tests allow a continuous revalidation of any change made to the code, ensuring that corrected errors will not reappear. The alluvial plot in Figure 2 illustrates the individual contribution of each source and original subcategory that led to the processed categories: structure, organism, and reference.

Figure 2.

#### Alluvial plot of the data transformation flow within LOTUS during the automated curation and validation processes.

The figure also reflects the relative proportions of the data stream in terms of the contributions from the various sources ('source' block, left), the composition of the harmonized subcategories ('original subcategory' block, middle) and the validated data after curation ('processed category' block, right). Automatically validated entries are represented in green, rejected entries in blue. The figure is available under the CC0 license at https://commons.wikimedia.org/wiki/File:Lotus_initiative_1_alluvial_plot.svg.

The figure highlights, for example, the essential contribution of the reference DOI category to the final validated entries. A similar pattern can be seen concerning structures, where the validation rate of structural identifiers is higher than chemical names. The combination of the results of the automated curation pipeline and the manually curated entries led to the establishment of four categories (manually validated, manually rejected, automatically validated and automatically rejected) of the referenced structure-organism pairs that formed the processed part of the SSOT. Out of a total of 2.5M+ initial pairs, the manual and automatic validation retained 750,000+ pairs (approximately 30%), which were then selected for dissemination on Wikidata. Among validated entries, multiple ones were redundant among the source databases, thus also explaining the decrease of entries between the initial pairs and validated ones. Moreover, because data quality was favored over quantity, the number of rejected entries is high. Among them, multiple correct entries were certainly falsely rejected, but still not disseminated. All rejected entries were kept aside for later manual inspection and validation. These are publicly available at https://doi.org/10.5281/zenodo.5794597 103 Rutz et al.2021. In the end, the disseminated data contained 290,000+ unique chemical structures, 40,000+ distinct organisms and 75,000+ references.

### Data dissemination

Research worldwide can benefit the most when all results of published scientific studies are fully accessible immediately upon publication 2 Agosti and Johnson 2002. This concept is considered the foundation of scientific investigation and a prerequisite for the effective direction of new research efforts based on prior information. To achieve this, research results have to be made publicly available and reusable. As computers are now the main investigation tool for a growing number of scientists, all research data including those in publications should be disseminated in computer-readable format, following the FAIR principles. LOTUS uses Wikidata as a repository for referenced structure-organism pairs, as this allows documented research data to be integrated with a large, pre-existing and extensible body of chemical and biological knowledge. The dynamic nature of Wikidata encourages the continuous curation of deposited data through the user community. Independence from individual and institutional funding represents another major advantage of Wikidata. The Wikidata knowledge base and the option to use elaborate SPARQL queries allow the exploration of the dataset from a sheer unlimited number of angles. The openness of Wikidata also offers unprecedented opportunities for community curation, which will support, if not guarantee, a dynamic and evolving data repository. At the same time, certain limitations of this approach can be anticipated. Despite (or possibly due to) their power, SPARQL queries can be complex and potentially require an in-depth understanding of the models and data structure. This involves a steep learning curve which can discourage some end-users. Furthermore, traditional ways to query electronic NP resources such as structural or spectral searches are currently not within the scope of Wikidata and, are thus addressed in LNPN. Using the pre-existing COCONUT template, LNPN hosting allows the user to perform structural searches by directly drawing a molecule, thereby addressing the current lack of such structural search possibilities in Wikidata. Since metabolite profiling by Liquid Chromatography (LC) - Mass Spectrometry (MS) is now routinely used for the chemical composition assessment of natural extracts, future versions of LOTUS and COCONUT are envisioned to be augmented by predicted MS spectra and hosted at https://naturalproducts.net to allow mass and spectral-based queries. Note that such spectral database is already available at https://doi.org/10.5281/zenodo.5607264 5 Allard et al.2021. To facilitate queries focused on specific taxa (e.g. 'return all molecules found in the Asteraceae family'), a unified taxonomy is paramount. As the taxonomy of living organisms is a complex and constantly evolving field, all the taxon identifiers from all accepted taxonomic DB for a given taxon name were kept. Initiatives such as the Open Tree of Life (OTL) 97 Rees and Cranston 2017 will help to gradually reduce these discrepancies, and the Wikidata platform can and does support such developments. OTL also benefits from regular expert curation and new data. As the taxonomic identifier property for this resource did not exist in Wikidata, its creation was requested and obtained. The property is now available as 'Open Tree of Life ID' (P9157).

Following the previously described curation process, all validated entries have been made available through Wikidata and LNPN. LNPN will be regularly mirroring Wikidata LOTUS through the SSOT as described in Figure 1.

### User interaction with LOTUS data

The possibilities to interact with the LOTUS data are numerous. The following gives examples of how to retrieve, add and edit LOTUS data.

### Data retrieval

LOTUS data can be queried and retrieved either directly in Wikidata or on LNPN, both of which have distinct advantages. While Wikidata offers flexible and powerful queries capacities at the cost of potential complexity, LNPN has a graphical user interface with capabilities of drawing chemical structures, simplified structural or biological filtering and advanced chemical descriptors, albeit with a more rigid structure. For bulk download, a frozen version of LOTUS data (timestamp of 2021-12-20) is also available at https://doi.org/10.5281/zenodo.5794106 102 Rutz et al.2021. More refined approaches to the direct interrogation of the up-to-date LOTUS data both in Wikidata and LNPN are detailed hereafter.

### Wikidata

The easiest way to search for NP occurrence information in Wikidata is by typing the name of a chemical structure directly into the 'Search Wikidata' field, which (for left-to-right languages) can be found in the upper right corner of the Wikidata homepage or any other Wikidata page. For example, by typing 'erysodine', the user will land on the page of this compound (Q27265641). Scrolling down to the 'found in taxon' statement will allow the user to view the biological organisms reported to contain this NP (Figure 3). Clicking the reference link under each taxon name links to the publication(s) documenting the occurrence.

Figure 3.

#### Illustration of the found in taxon statement section on the Wikidata page

of erysodine Q27265641 showing a selection of erysodine-containing taxa and the references documenting these occurrences.

The typical approach to more elaborated querying involves writing SPARQL queries using the Wikidata Query Service or another direct connection to a SPARQL endpoint. Table 2 contains some examples from simple to more elaborated queries, demonstrating what can be done using this approach. The full-text queries with explanations are included in Supplementary file 1.

Table 2.

#### Potential questions about structure-organism relationships and corresponding Wikidata queries.

Question | Wikidata SPARQL query
--- | ---
What are the compounds present in Mouse-ear cress (Arabidopsis thaliana) or its child taxa? | https://w.wiki/4Vcv
Which organisms are known to contain β-sitosterol? | https://w.wiki/4VFn
Which organisms are known to contain stereoisomers of β-sitosterol? | https://w.wiki/4VFq
Which pigments are found in which taxa, according to which reference? | https://w.wiki/4VFx
What are examples of organisms where compounds were found in an organism sharing the same parent taxon, but not in the organism itself? | https://w.wiki/4Wt3
Which Zephyranthes species lack compounds known from at least two species in the genus? | https://w.wiki/4VG3
How many compounds are structurally similar to compounds labeled as antibiotics? (grouped by the parent taxon of the containing organism) | https://w.wiki/4VG4
Which organisms contain indolic scaffolds? Count occurrences, group and order the results by the parent taxon. | https://w.wiki/4VG9
Which compounds with known bioactivities were isolated from Actinobacteria, between 2014 and 2019, with related organisms and references? | https://w.wiki/4VGC
Which compounds labeled as terpenoids were found in Aspergillus species, between 2010 and 2020, with related references? | https://w.wiki/4VGD
Which are the available referenced structure-organism pairs on Wikidata? (example limited to 1000 results) | https://w.wiki/4VFh

The queries presented in Table 2 are only selected examples, and many other ways of interrogating LOTUS can be formulated. Generic queries can be used, for example, for hypothesis generation when starting a research project. For instance, a generic SPARQL query - listed in Table 2 as "Which are the available referenced structure-organism pairs on Wikidata?" - retrieves all structures, identified by their InChIKey (P235), which contain 'found in taxon' (P703) statements that are stated in (P248) a bibliographic reference: https://w.wiki/4VFh. Data can then be exported in various formats, such as classical tabular formats, json, or html tables (see Download tab on the lower right of the query frame). At the time of writing (2021-12-20), this query (without the LIMIT 1000) returned 951,800 entries; a frozen query result is available at https://doi.org/10.5281/zenodo.5668854 105 Rutz et al.2021.

Targeted queries allowing to interrogate LOTUS data from the perspective of one of the three objects forming the referenced structure-organism pairs can also be built. Users can, for example, retrieve a list of all structures reported from a given organism, such as all structures reported from Arabidopsis thaliana (Q158695) or its child taxa (https://w.wiki/4Vcv). Alternatively, all organisms containing a given chemical can be queried via its structure, such as in the search for all organisms where β-sitosterol (Q121802) was found in (https://w.wiki/4VFn). For programmatic access, the lotus-wikidata-exporter repository also allows data retrieval in RDF format and as TSV tables.

To further showcase the possibilities, two additional queries were established (https://w.wiki/4VGC and https://w.wiki/4VGD). Both queries were inspired by recent literature review works 57 Jose et al.2021 153 Zhao et al.2022. The first work describes compounds found in Actinobacteria, with a biological focus on compounds with reported bioactivity. The second one describes compounds found in Aspergillus spp., with a chemical focus on terpenoids. In both cases, in seconds, the queries allow retrieving a table similar to the ones in the mentioned literature reviews. While these queries are not a direct substitute for manual literature review, they do allow researchers to quickly begin such a review process with a very strong body of relevant references.

For a convenient expansion or limitation of the results, certain types of queries such as structure or similarity searches usually exist in molecular electronic resources. As these queries are not natively integrated by SPARQL, they are not readily available for Wikidata exploration. To address such limitation, Galgonek et al. developed an in-house SPARQL engine that allows utilization of Sachem, a high-performance chemical DB cartridge for PostgreSQL for fingerprint-guided substructure and similarity search 66 Kratochvíl et al.2018. The engine is used by the Integrated Database of Small Molecules (IDSM) that operates, among other things, several dedicated endpoints allowing structural search in selected small-molecule datasets via SPARQL 67 Kratochvíl et al.2019. To allow substructure and similarity searches via SPARQL also on compounds from Wikidata, a dedicated IDSM/Sachem endpoint was created for the LOTUS project. The endpoint indexes isomeric (P2017) and canonical (P233) SMILES code available in Wikidata. To ensure that data is kept up-to-date, SMILES codes are automatically downloaded from Wikidata daily. The endpoint allows users to run federated queries and, thereby, proceed to structure-oriented searches on the LOTUS data hosted at Wikidata. For example, the SPARQL query https://w.wiki/4VG9 returns a list of all organisms that produce NP with an indolic scaffold. The output is aggregated at the parent taxa level of the containing organisms and ranked by the number of scaffold occurrences.

Regarding the versioning aspects, some challenges are implied by the dynamic nature of the Wikidata environment. However, tracking of the data evolution can be achieved in multiple ways and at different levels: at the full Wikidata level, dumps are regularly created (https://dumps.wikimedia.org/wikidatawiki/entities) while at the individual entry level the full history of modification can be consulted (see following link for the full edit history of erythromycin for example (https://www.wikidata.org/w/index.php?title=Q213511&action=history)).

We propose to the users a simple approach to document, version and share the output of queries on the LOTUS data at a defined time point. For this, in addition to sharing the short url of a the SPARQL query (which will return results evolving over time), a simple archiving of the returned table to Zenodo or similar platform can be done. In order to gather results of SPARQL queries, we established the LOTUS Initiative Community repository. The following link allows to directly contribute to the community repository https://zenodo.org/deposit/new?c=the-lotus-initiative. For example, the output of this Wikidata SPARQL query https://w.wiki/4N8G realized on the 2021-11-10T16:56 can be easily archived and shared in a publication via its DOI 10.5281/zenodo.5668380.

### Lotus.naturalproducts.net (LNPN)

In the search field of the LNPN interface (https://lotus.naturalproducts.net), simple queries can be achieved by typing the molecule name (e.g. ibogaine) or pasting a SMILES, InChI, InChIKey string, or a Wikidata identifier. All compounds reported from a given organism can be found by entering the organism name at the species or any higher taxa level (e.g. Tabernanthe iboga). Compound search by chemical class is also possible.

Alternatively, a structure can be directly drawn in the structure search interface (https://lotus.naturalproducts.net/search/structure), where the user can also decide on the nature of the structure search (exact, similarity, substructure search). Refined search mode combining multiple search criteria, in particular physicochemical properties, is available in the advanced search interface (https://lotus.naturalproducts.net/search/advanced).

Within LNPN, LOTUS bulk data can be retrieved as SDF or SMILES files, or as a complete MongoDB dump via https://lotus.naturalproducts.net/download. Extensive documentation describing the search possibilities and data entries is available at https://lotus.naturalproducts.net/documentation. LNPN can also be queried via the application programming interface (API) as described in the documentation.

### Data addition and evolution

One major advantage of the LOTUS architecture is that every user has the option to contribute to the NP occurrences documentation effort by adding new or editing existing data. As all LOTUS data applies the SSOT mechanism, reprocessing of previously treated elements is avoided. However, at the moment, the SSOT channels are not open to the public for direct write access to maintain data coherence and evolution of the SSOT scheme. For now, the users can employ the following approaches to add or modify data in LOTUS.

#### Sources

LOTUS data management involves regular re-importing of both current and new data sources. New and edited information from these electronic NP resources will be checked against the SSOT. If absent or different, data will be passed through the curation pipeline and subsequently stored in the SSOT. Accordingly, by contributing to external electronic NP resources, any researcher has a means of providing new data for LOTUS, keeping in mind the inevitable delay between data addition and subsequent inclusion into LOTUS.

#### Wikidata

The currently favored approach to add new data to LOTUS is to create or edit Wikidata entries directly. Newly created or edited data will then be imported into the SSOT. There are several ways to interact with Wikidata which depend on the technical skills of the user and the volume of data to be uploaded/modified.

#### Pre-requisites

While direct Wikidata upload is possible, contributors are encouraged to use the LOTUS curation pipeline as a preliminary step to strengthen the initial data quality. For this, a specific mode of the LOTUS processor can be called (see Custom mode). The added data will therefore benefit from the curation and validation stages implemented in the LOTUS processing pipeline.

#### Manual upload

Any researcher interested in reporting NP occurrences can manually add the data directly in Wikidata, without any particular technical knowledge requirement. For this the creation of a Wikidata account and following the general object editing guidelines is advised. Regarding the addition of NP-centered objects (i.e. referenced structure-organisms pairs), users shall refer to the WikiProject Chemistry/Natural products group page.

A tutorial for the manual creation and upload of a referenced structure-organism pair to Wikidata is available in Supplementary file 2.

#### Batch and automated upload

Through the initial curation process described previously, 750,000+ referenced structure-organism pairs were validated for Wikidata upload. To automate this process, a set of programs were written to automatically process the curated outputs, group references, organisms and compounds, check if they are already present in Wikidata (using SPARQL and direct Wikidata querying) and insert or update the entities as needed (i.e. upserting). These scripts can be used for future batch upload of properly curated and referenced structure-organism pairs to Wikidata. Programs for data addition to Wikidata can be found in the repository lotus-wikidata-interact. The following Xtools page offers an overview of the latest activity performed by our NPimporterBot, using those programs.

### Data editing

Even if correct at a given time point, scientific advances can invalidate or update previously uploaded data. Thus, the possibility to continuously edit the data is desirable and guarantees data quality and sustainability. Community-maintained knowledge bases such as Wikidata encourage such a process. Wikidata presents the advantage of allowing both manual and automated correction. Field-specific robots such as SuccuBot, KrBot, Pi_bot and ProteinBoxBot or our NPimporterBot went through an approval process. The robots are capable of performing thousands of edits without the need for human input. This automation helps reduce the amount of incorrect data that would otherwise require manual editing. However, manual curation by human experts remains irreplaceable as a standard. Users who value this approach and are interested in contributing are invited to follow the manual curation tutorial in Supplementary file 2.

The Scholia platform provides a visual interface to display the links among Wikidata objects such as researchers, topics, species or chemicals. It now provides an interesting way to view the chemical compounds found in a given biological organism (see here for the metabolome view of Eurycoma longifolia). If Scholia currently does not offer a direct editing interface for scientific references, it still allows users to proceed to convenient batch editing via QuickStatements. The adaptation of such a framework to edit the referenced structure-pairs in the LOTUS initiative could thus facilitate the capture of future expert curation, especially manual efforts that cannot be replaced by automated scripts.

### Data interpretation

To illustrate the nature and dimensions of the LOTUS dataset, some selected examples of data interpretation are shown. First, the distribution of chemical structures among four important NP reservoirs: plants, fungi, animals, and bacteria (Table 3). Then, the distribution of biological organisms according to the number of related chemical structures and likewise the distribution of chemical structures across biological organisms are illustrated (Figure 4). Furthermore, the individual electronic NP resources participation in LOTUS data is resumed using the UpSet plot depiction, which allows the visualization of intersections in data sets (Figure 5). Across these figures we take again the two previous examples, i.e, β-sitosterol as chemical structure and Arabidopsis thaliana as biological organism because of their well-documented statuses. Finally, a biologically interpreted chemical tree and a chemically-interpreted biological tree are presented (Figures 6 and 7). The examples illustrate the overall chemical and biological coverage of LOTUS by linking family-specific classes of chemical structures to their taxonomic position. Table 3, Figures 4, 6 and 7 were generated using the frozen data (2021-12-20 timestamp), which is available for download at https://doi.org/10.5281/zenodo.5794106 102 Rutz et al.2021. Figure 5 required a dataset containing information from closed resources and the complete data used for its generation is therefore not available for public distribution. All scripts used for the generation of the figures are available in the lotus-processor repository in the src/4_visualizing directory for reproducibility.

### Distribution of chemical structures across reported biological organisms in LOTUS

Table 3 summarizes the distribution of chemical structures and their chemical classes (according to NPClassifier 64 Kim et al.2021) across the biological organisms reported in LOTUS. For this, biological organisms were grouped into four artificial taxonomic levels (plants, fungi, animals, and bacteria). These were built by combining the two highest taxonomic levels in the OTL taxonomy, namely Domain and Kingdom levels. "Plants" corresponded to "Eukaryota_Archaeplastida", "Fungi" to "Eukaryota_Fungi", "Animals" to "Eukaryota_Metazoa" and "Bacteria" to "Bacteria_NA". The category corresponding to "Eukaryota_NA" mainly contained Algae, but also other organisms such as Amoebozoa and was therefore excluded. This represented less than 1% of all entries. The details of this process are available under src/3_analyzing/structure_taxon_distribution.R. When the chemical structure/class was reported only in one taxonomic grouping, it was counted as 'specific'.

Table 3.

#### Distribution and specificity of chemical structures across four important NP reservoirs: plants, fungi, animals, and bacteria.

When the chemical structure/class appeared only in one group and not the three others, they were counted as 'specific'. Chemical classes were attributed with NPClassifier.

Group | Organisms | 2D Structure-Organism pairs | 2D chemical structures | Specific 2D chemical structures | Chemical classes | Specific chemical classes
--- | --- | --- | --- | --- | --- | ---
Plantae | 28,439 | 342,891 | 95,191 | 90,672 (95%) | 545 | 59 (11%)
Fungi | 4,003 | 36,950 | 22,594 | 20,194 (89%) | 417 | 19 (5%)
Animalia | 2,716 | 24,114 | 15,242 | 11,822 (78%) | 455 | 14 (3%)
Bacteria | 1,555 | 23,198 | 15,895 | 14,130 (89%) | 385 | 43 (11%)

Table 3-1.

    library(dplyr)
    library(knitr)
    library(readr)
    library(splitstackshape)

    TAX_LEVEL_1 <- "organism_taxonomy_01domain"
    TAX_LEVEL_2 <- "organism_taxonomy_02kingdom"

    # message("Loading the LOTUS")
    #' File available at https://zenodo.org/record/5794107
    lotus <- readr::read_csv(file = "211220_frozen_metadata.csv.gz") %>%
      dplyr::mutate(structure_inchikey_2D = substring(text = structure_inchikey,
                                                      first = 1,
                                                      last = 14))

    # message("Lotus loaded")

    # message("Formatting the LOTUS")
    domain_unique <- lotus  %>%
      dplyr::select(
        structure_inchikey,
        structure_inchikey_2D,
        organism_name,
        structure_taxonomy_npclassifier_01pathway,
        structure_taxonomy_npclassifier_02superclass,
        structure_taxonomy_npclassifier_03class,
        organism_taxonomy_01domain,
        organism_taxonomy_02kingdom
      ) %>%
      dplyr::filter(!is.na(!!as.name(TAX_LEVEL_1)) |
                      !is.na(!!as.name(TAX_LEVEL_2)))  %>%
      dplyr::distinct(structure_inchikey_2D, organism_name, .keep_all = TRUE)  %>%
      splitstackshape::cSplit(splitCols = "structure_taxonomy_npclassifier_01pathway",
                              sep = "|",
                              direction = "long")  %>%
      splitstackshape::cSplit(splitCols = "structure_taxonomy_npclassifier_02superclass",
                              sep = "|",
                              direction = "long")  %>%
      splitstackshape::cSplit(splitCols = "structure_taxonomy_npclassifier_03class",
                              sep = "|",
                              direction = "long")  %>%
      dplyr::filter(!is.na(structure_inchikey_2D) &
                      !is.na(organism_name)) %>%
      dplyr::mutate(Group = paste(
        organism_taxonomy_01domain,
        organism_taxonomy_02kingdom,
        sep = "_"
      ))  %>%
      dplyr::filter(
        Group == "Eukaryota_Archaeplastida" |
          Group == "Eukaryota_Fungi" |
          Group == "Eukaryota_Metazoa" |
          Group == "Bacteria_NA"
      )  %>%
      dplyr::mutate(
        Group = dplyr::if_else(
          condition = Group == "Eukaryota_Archaeplastida",
          true = "Plantae",
          false = dplyr::if_else(
            condition = Group == "Eukaryota_Fungi",
            true = "Fungi",
            false = dplyr::if_else(
              condition = Group == "Eukaryota_Metazoa",
              true = "Animalia",
              false = "Bacteria"
            )
          )
        )
      )

    # message("Counting...")
    # message("... organisms")
    domain_unique_organisms <- domain_unique  %>%
      dplyr::distinct(organism_name, Group)  %>%
      dplyr::group_by(Group) %>%
      dplyr::count(name = "Organisms",
                   sort = TRUE)

    # message("... pairs")
    domain_unique_pairs <- domain_unique %>%
      dplyr::group_by(Group) %>%
      dplyr::count(name = "2D Structure-Organism Pairs",
                   sort = TRUE)

    # message("... 2D structures")
    domain_unique_structures_2D <- domain_unique %>%
      dplyr::distinct(Group, structure_inchikey_2D) %>%
      dplyr::group_by(Group) %>%
      dplyr::count(name = "2D Chemical Structures",
                   sort = TRUE)

    # message("... chemical classes")
    domain_unique_classes <- domain_unique %>%
      dplyr::distinct(Group, structure_taxonomy_npclassifier_03class) %>%
      dplyr::group_by(Group) %>%
      dplyr::count(name = "Chemical Classes",
                   sort = TRUE)

    # message("... specific 2D structures")
    domain_unique_structures_2D_specific <- domain_unique %>%
      dplyr::distinct(Group, structure_inchikey_2D) %>%
      dplyr::group_by(structure_inchikey_2D) %>%
      dplyr::add_count() %>%
      dplyr::filter(n == 1) %>%
      dplyr::ungroup() %>%
      dplyr::group_by(Group) %>%
      dplyr::count(name = "Specific 2D Chemical Structures",
                   sort = TRUE)

    # message("... specific chemical classes")
    domain_unique_classes_specific <- domain_unique %>%
      dplyr::distinct(Group, structure_taxonomy_npclassifier_03class) %>%
      dplyr::group_by(structure_taxonomy_npclassifier_03class) %>%
      dplyr::add_count() %>%
      dplyr::filter(n == 1) %>%
      dplyr::ungroup() %>%
      dplyr::group_by(Group) %>%
      dplyr::count(name = "Specific Chemical Classes",
                   sort = TRUE)

    # message("Joining everything together")
    domain <- domain_unique_organisms %>%
      dplyr::left_join(domain_unique_pairs) %>%
      dplyr::left_join(domain_unique_structures_2D) %>%
      dplyr::left_join(domain_unique_structures_2D_specific) %>%
      dplyr::left_join(domain_unique_classes) %>%
      dplyr::left_join(domain_unique_classes_specific) %>%
      dplyr::ungroup() %>%
      dplyr::mutate(
        `Specific 2D Chemical Structures` = paste0(
          `Specific 2D Chemical Structures`,
          " (",
          round(
            x = 100 * `Specific 2D Chemical Structures` / `2D Chemical Structures`,
            digits = 0
          ),
          "%)"
        ),
        `Specific Chemical Classes` = paste0(
          `Specific Chemical Classes`,
          " (",
          round(
            x = 100 * `Specific Chemical Classes` / `Chemical Classes`,
            digits = 0
          ),
          "%)"
        )
      )

    # message("Table calculated")

    domain %>%
      knitr::kable()

#### Distribution and specificity of chemical structures across four important NP reservoirs: plants, fungi, animals, and bacteria.

When the chemical structure/class appeared only in one group and not the three others, they were counted as 'specific'. Chemical classes were attributed with NPClassifier.

### Distributions of organisms per structure and structures per organism

Readily achievable outcomes from LOTUS show that the depth of exploration of the world of NP is rather limited: as depicted in Figure 4, on average, three organisms are reported per chemical structure and eleven structures per organism. Notably, half of all structures have been reported from a single organism and half of all studied organisms are reported to contain five or fewer structures. Metabolomics studies suggest that these numbers are heavily underrated 83 Noteborn et al.2000 133 Wang et al.2020 and indicate that a better reporting of the metabolites detected in the course of NP chemistry investigations should greatly improve coverage.

This incomplete coverage may be partially explained by the habit in classical NP journals to accept only new and/or bioactive chemical structures for publication. Another possible explanation is the fact that specific chemical classes have been under heavier scrutiny by the natural products community than others. For example, alkaloids have three specific characteristics which favor their reporting in the literature. First, they are often endowed with potent biological activities making them a target in the frame of pharmacognosy research. Second, their chemical nature makes them readily accessible from complex biological matrices through acido-basic extraction. Third, they ionize greatly in positive MS mode, which makes their detection even at a very low concentration possible, where other compounds present in much higher concentrations are not detected. It is thus a complex task to answer the following question: "Is the currently observed repartition of alkaloids across the tree of life a reflection of their true biological occurrence or is this repartition biased by the aforementioned characteristics of this chemical class?" While the LOTUS initiative does not allow yet disentangling the bias from the true occurrence, it should offer sound and strong foundations for such challenging research problematic.

Another obvious explanation for the limited coverage (see Figure 4) is the fact that most of the chemical structures in LOTUS have been physically isolated and described. This is an extremely time-consuming effort that can obviously not be carried on all metabolites of all biological organisms. Here, the sensitivity of mass spectrometry and the ever-increasing efficiency of computational metabolite annotation solutions could offer a strong take. The documentation of metabolite annotation results obtained on large collections of biological matrices and the associated metadata within knowledge graphs offers exciting perspectives regarding the possibilities to expand both the chemical and biological coverage of the LOTUS data in a feasible manner.

Figure 4.

#### Distribution of 'structures per organism' and 'organisms per structure'.

The number of organisms linked to the planar structure of β-sitosterol (KZJWDPNRJALLNS) and the number of chemical structures in Arabidopsis thaliana are two exemplary highlights. A. thaliana contains 687 different short InChIKeys (i.e. 2D structures) and KZJWDPNRJALLNS is reported in 3979 distinct organisms. Less than 10% of the species contain more than 80% of the structural diversity present within LOTUS. In parallel, 80% of the species present in LOTUS are linked to less than 10% of the structures. The figure is available under the CC0 license at https://commons.wikimedia.org/wiki/File:Lotus_initiative_1_structure_organism_distribution.svg.

Figure 4-1.

    library(data.table)
    library(dplyr)
    library(plotly)
    library(readr)
    library(splitstackshape)

    # openDb <-
    #   readr::read_delim(
    #     file = "documented_pairs.tsv.gz",
    #     delim = "\t",
    #     col_types = cols(.default = "c"),
    #     col_select = c(
    #       "database",
    #       "organismCleaned",
    #       "organismCleaned_dbTaxoTaxonRanks",
    #       "structureCleanedInchi",
    #       "structureCleaned_inchikey2D",
    #       "referenceCleanedDoi"
    #     )
    #   ) %>%
    #   dplyr::filter(database != "custom") %>%
    #   dplyr::distinct()

    # pairsOpenDb_2D <- openDb %>%
    #   dplyr::filter(!is.na(organismCleaned) &
    #            !is.na(structureCleaned_inchikey2D)) %>%
    #   dplyr::distinct(structureCleaned_inchikey2D,
    #            organismCleaned,
    #            .keep_all = TRUE
    #   )
    pairsOpenDb_2D_2 <- lotus %>%
      dplyr::filter(!is.na(organism_name) &
               !is.na(structure_inchikey_2D)) %>%
      dplyr::distinct(structure_inchikey_2D,
               organism_name,
               .keep_all = TRUE
      )

    # openDbOrganism <- openDb %>%
    #   dplyr::filter(!is.na(organismCleaned)) %>%
    #   dplyr::distinct(organismCleaned)
    openDbOrganism_2 <- lotus %>%
      dplyr::filter(!is.na(organism_name)) %>%
      dplyr::distinct(organism_name)

    # openDbStructure_2D <- openDb %>%
    #   dplyr::filter(!is.na(structureCleaned_inchikey2D)) %>%
    #   dplyr::distinct(structureCleaned_inchikey2D, .keep_all = TRUE)
    openDbStructure_2D_2 <- lotus %>%
      dplyr::filter(!is.na(structure_inchikey_2D)) %>%
      dplyr::distinct(structure_inchikey_2D, .keep_all = TRUE)

    # structuresPerOrganism_2D <- pairsOpenDb_2D %>%
    #   dplyr::filter(grepl(pattern = "species", x = organismCleaned_dbTaxoTaxonRanks)) %>%
    #   dplyr::filter(grepl(pattern = " ", x = organismCleaned)) %>%
    #   dplyr::distinct(organismCleaned, structureCleaned_inchikey2D) %>%
    #   dplyr::group_by(organismCleaned) %>%
    #   dplyr::count()
    structuresPerOrganism_2D_2 <- pairsOpenDb_2D_2 %>%
      dplyr::filter(!is.na(organism_taxonomy_09species)) %>%
      dplyr::distinct(organism_name, structure_inchikey_2D) %>%
      dplyr::group_by(organism_name) %>%
      dplyr::count()

    # organismsPerStructure_2D <- pairsOpenDb_2D %>%
    #   dplyr::filter(grepl(pattern = "species", x = organismCleaned_dbTaxoTaxonRanks)) %>%
    #   dplyr::filter(grepl(pattern = " ", x = organismCleaned)) %>%
    #   dplyr::distinct(organismCleaned, structureCleaned_inchikey2D) %>%
    #   dplyr::group_by(structureCleaned_inchikey2D) %>%
    #   dplyr::count()
    organismsPerStructure_2D_2 <- pairsOpenDb_2D_2 %>%
      dplyr::filter(!is.na(organism_taxonomy_09species)) %>%
      dplyr::distinct(organism_name, structure_inchikey_2D) %>%
      dplyr::group_by(structure_inchikey_2D) %>%
      dplyr::count()

    organismsPerStructure_2D <- organismsPerStructure_2D_2

    structuresPerOrganism_2D <- structuresPerOrganism_2D_2

    organismsPerStructure_2D_cum <- organismsPerStructure_2D %>%
      dplyr::ungroup() %>%
      dplyr::arrange(n) %>%
      dplyr::mutate(cum_sum = cumsum(n)) %>%
      dplyr::mutate(
        per_x = n / max(n) * 100,
        per_y = cum_sum / max(cum_sum) * 100
      ) %>%
      dplyr::distinct(per_x, .keep_all = TRUE)

    structuresPerOrganism_2D_cum <- structuresPerOrganism_2D %>%
      dplyr::ungroup() %>%
      dplyr::arrange(n) %>%
      dplyr::mutate(cum_sum = cumsum(n)) %>%
      dplyr::mutate(
        per_x = n / max(n) * 100,
        per_y = cum_sum / max(cum_sum) * 100
      ) %>%
      dplyr::distinct(per_x, .keep_all = TRUE)

    top_structure <-
      organismsPerStructure_2D_cum[which.max(organismsPerStructure_2D_cum$n), ]

    ## actually third but better to ilustrate
    # top_organism <-
    #   structuresPerOrganism_2D_cum[structuresPerOrganism_2D_cum$organismCleaned == "Arabidopsis thaliana", ]
    top_organism <-
      structuresPerOrganism_2D_cum[structuresPerOrganism_2D_cum$organism_name == "Arabidopsis thaliana", ]

    # a <- list(
    #   x = top_organism$per_x,
    #   y = top_organism$per_y,
    #   text = paste("<i>", top_organism$organismCleaned, "</i> \n Number of 2D structures =", top_organism$n),
    #   xref = "x",
    #   yref = "y",
    #   showarrow = TRUE,
    #   arrowhead = 1,
    #   ax = -120,
    #   ay = -30,
    #   font = list(color = "#2994D2"),
    #   arrowcolor = "#2994D2"
    # )
    a <- list(
      x = top_organism$per_x,
      y = top_organism$per_y,
      text = paste("<i>", top_organism$organism_name, "</i> \n Number of 2D structures =", top_organism$n),
      xref = "x",
      yref = "y",
      showarrow = TRUE,
      arrowhead = 1,
      ax = -120,
      ay = -30,
      font = list(color = "#2994D2"),
      arrowcolor = "#2994D2"
    )

    # b <- list(
    #   x = top_structure$per_x,
    #   y = top_structure$per_y,
    #   text = paste(
    #     top_structure$structureCleaned_inchikey2D,
    #     "\n Number of species =",
    #     top_structure$n
    #   ),
    #   xref = "x",
    #   yref = "y",
    #   showarrow = TRUE,
    #   arrowhead = 1,
    #   ax = -120,
    #   ay = -30,
    #   font = list(color = "#7CB13F"),
    #   arrowcolor = "#7CB13F"
    # )
    b <- list(
      x = top_structure$per_x,
      y = top_structure$per_y,
      text = paste(
        top_structure$structure_inchikey_2D,
        "\n Number of species =",
        top_structure$n
      ),
      xref = "x",
      yref = "y",
      showarrow = TRUE,
      arrowhead = 1,
      ax = -120,
      ay = -30,
      font = list(color = "#7CB13F"),
      arrowcolor = "#7CB13F"
    )

    c <- list(
      x = "per species",
      y = mean(structuresPerOrganism_2D$n),
      text = paste("mean ", round(mean(
        structuresPerOrganism_2D$n
      ), 2)),
      xref = "x2",
      yref = "y2",
      showarrow = TRUE,
      arrowhead = 1,
      ax = 57,
      ay = -40,
      font = list(color = "#2994D2"),
      arrowcolor = "#2994D2"
    )

    d <- list(
      x = "per structure",
      y = mean(organismsPerStructure_2D$n),
      text = paste("mean ", round(mean(
        organismsPerStructure_2D$n
      ), 2)),
      xref = "x2",
      yref = "y2",
      showarrow = TRUE,
      arrowhead = 1,
      ax = -57,
      ay = -40,
      font = list(color = "#7CB13F"),
      arrowcolor = "#7CB13F"
    )

    e <- list(
      x = "per structure",
      y = median(organismsPerStructure_2D$n),
      text = paste("median ", median(organismsPerStructure_2D$n)),
      xref = "x2",
      yref = "y2",
      showarrow = TRUE,
      arrowhead = 1,
      ax = -115,
      ay = -0,
      font = list(color = "#7CB13F"),
      arrowcolor = "#7CB13F"
    )

    f <- list(
      x = "per species",
      y = median(structuresPerOrganism_2D$n),
      text = paste("median ", median(structuresPerOrganism_2D$n)),
      xref = "x2",
      yref = "y2",
      showarrow = TRUE,
      arrowhead = 1,
      ax = -115,
      ay = 0,
      font = list(color = "#2994D2"),
      arrowcolor = "#2994D2"
    )

    # initialize plot
    fig <- plotly::plot_ly() %>%
      plotly::add_lines(
        data = organismsPerStructure_2D_cum,
        name = "species per 2D structure",
        x = ~per_x,
        y = ~per_y,
        mode = "line",
        color = I("#7CB13F"),
        showlegend = FALSE
      ) %>%
      plotly::add_lines(
        data = structuresPerOrganism_2D_cum,
        name = "2D structures per species",
        x = ~per_x,
        y = ~per_y,
        mode = "line",
        color = I("#2994D2"),
        showlegend = FALSE
      ) %>%
      plotly::add_trace(
        data = structuresPerOrganism_2D,
        name = "2D structures per species",
        x = "per species",
        y = ~n,
        type = "box",
        quartilemethod = "inclusive",
        boxmean = TRUE,
        xaxis = "x2",
        yaxis = "y2",
        color = I("#2994D2")
      ) %>%
      plotly::add_trace(
        data = organismsPerStructure_2D,
        name = "species per 2D structure",
        x = "per structure",
        y = ~n,
        type = "box",
        quartilemethod = "inclusive",
        boxmean = TRUE,
        xaxis = "x2",
        yaxis = "y2",
        color = I("#7CB13F")
      ) %>%
      plotly::layout(
        annotations = list(a, b, c, d, e, f),
        font = list(family = "helvetica neue", size = 18),
        yaxis = list(title = "Cumulative % of contribution"),
        xaxis = list(title = "% of entries"),
        yaxis2 = list(
          title = "Number of entries",
          mirror = TRUE,
          showline = TRUE,
          zeroline = FALSE,
          showline = FALSE,
          showgrid = FALSE,
          range = c(0, 30),
          domain = c(0.2, 0.7),
          anchor = "x2"
        ),
        xaxis2 = list(
          mirror = TRUE,
          showline = TRUE,
          zeroline = FALSE,
          showline = FALSE,
          showticklabels = FALSE,
          showgrid = FALSE,
          domain = c(0.25, 0.95),
          anchor = "y2"
        ),
        legend = list(
          x = 0.25,
          y = 0.175,
          orientation = "h"
        ),
        width = 800,
        height = 450
      )

    fig

#### Distribution of 'structures per organism' and 'organisms per structure'.

The number of organisms linked to the planar structure of β-sitosterol (KZJWDPNRJALLNS) and the number of chemical structures in Arabidopsis thaliana are two exemplary highlights. A. thaliana contains 687 different short InChIKeys (i.e. 2D structures) and KZJWDPNRJALLNS is reported in 3979 distinct organisms. Less than 10% of the species contain more than 80% of the structural diversity present within LOTUS. In parallel, 80% of the species present in LOTUS are linked to less than 10% of the structures. The figure is available under the CC0 license at https://commons.wikimedia.org/wiki/File:Lotus_initiative_1_structure_organism_distribution.svg.

### Contribution of individual electronic NP resources to LOTUS

The added value of the LOTUS initiative to assemble multiple electronic NP resources is illustrated in Figure 5: Panel A shows the contributions of the individual electronic NP resources to the ensemble of chemical structures found in one of the most studied vascular plants, Arabidopsis thaliana ("Mouse-ear cress"; Q147096). Panel B shows the ensemble of taxa reported to contain the planar structure of the widely occurring triterpenoid β-sitosterol (Q121802).

Figure 5.

#### UpSet plots of the individual contribution of electronic NP resources to the planar structures found in Arabidopsis thaliana (A) and to organisms reported to contain the planar structure of β-sitosterol (KZJWDPNRJALLNS) (B).

UpSet plots are evolved Venn diagrams, allowing to represent intersections between multiple sets. The horizontal bars on the lower left represent the number of corresponding entries per electronic NP resource. The dots and their connecting line represent the intersection between source and consolidate sets. The vertical bars indicate the number of entries at the intersection. For example, 479 organisms containing the planar structure of β-sitosterol are present in both UNPD and NAPRALERT, whereas each of them respectively reports 1349 and 2330 organisms containing the planar structure of β-sitosterol. The figure is available under the CC0 license at https://commons.wikimedia.org/wiki/File:Lotus_initiative_1_upset_plot.svg.

Figure 5-1.

    # message("Needs closed data, we could provide the same figures with the open set")

Figure 5A also shows that according to NPClassifier, the 'chemical pathway' category distribution across electronic NP resources is not conserved. Note that NPClassifier and ClassyFire 29 Djoumbou Feunang et al.2016 chemical classification results are both available as metadata in the frozen LOTUS export and LNPN. Both classification tools return a chemical taxonomy for individual structures, thus allowing their grouping at higher hierarchical levels, in the same way as it is done for biological taxonomies. The UpSet plot in Figure 5 indicates the poor overlap of preexisting electronic NP resources and the added value of an aggregated dataset. This is particularly well illustrated in Figure 5B., where the number of organisms for which the planar structure of β-sitosterol (KZJWDPNRJALLNS) has been reported is shown for each intersection. NAPRALERT has by far the highest number of entries (2330 in total), while other electronic NP resources complement this well: e.g. UNPD has 573 reported organisms with β-sitosterol that do not overlap with any other resource. Of note, β-sitosterol is documented in only 13 organisms in the DNP, highlighting the importance of a better systematic reporting of ubiquitous metabolites and the interest of multiple data sources agglomeration.

### A biologically interpreted chemical tree

The chemical diversity captured in LOTUS is here displayed using TMAP (Figure 6), a visualization library allowing the structural organization of large chemical datasets as a minimum spanning tree 93 Probst and Reymond 2020. Using Faerun, an interactive HTML file is generated to display metadata and molecule structures by embedding the SmilesDrawer library 91 Probst and Reymond 2018 92 Probst and Reymond 2018. Planar structures were used for all compounds to generate the TMAP (chemical space tree-map) using MAP4 encoding 17 Capecchi et al.2020. As the tree organizes structures according to their molecular fingerprint, an anticipated coherence between the clustering of compounds and the mapped NPClassifier chemical class is observed (Figure 6A.). For clarity, some of the most represented chemical classes of LOTUS plus quassinoids and stigmastane steroids are mapped, with examples of a quassinoid (NXZXPYYKGQCDRO) (light green star) and a stigmastane steroid (KZJWDPNRJALLNS) (dark green diamond) and their corresponding location in the TMAP.

Figure 6.

#### TMAP visualizations of the chemical diversity present in LOTUS.

Each dot corresponds to a chemical structure. A highly specific quassinoid (NXZXPYYKGQCDRO) (light green star) and an ubiquitous stigmastane steroid (KZJWDPNRJALLNS) (dark green diamond) are mapped as examples in all visualizations. In panel A., compounds (dots) are colored according to the NPClassifier chemical class they belong to. In panel B., compounds that are mostly reported in the Simaroubaceae family are highlighted in blue. Finally, in panel C., the compounds are colored according to the specificity score of chemical classes found in biological organisms. This biological specificity score at a given taxonomic level for a given chemical class is calculated as a Jensen-Shannon divergence. A score of 1 suggests that compounds are highly specific, 0 that they are ubiquitous. Zooms on a group of compounds of high biological specificity score (in pink) and on compounds of low specificity (blue) are depicted. An interactive HTML visualization of the LOTUS TMAP is available at https://lotus.nprod.net/post/lotus-tmap/ and archived at https://doi.org/10.5281/zenodo.5801807 101 Rutz and Gaudry 2021. The figure is available under the CC0 license at https://commons.wikimedia.org/wiki/File:Lotus_initiative_1_biologically_interpreted_chemical_tree.svg.

Figure 6-1.

    library(knitr)
    knitr::include_url("https://metabo-store.nprod.net/tmap/index.html", height = "800px")

To explore relationships between chemistry and biology, it is possible to map taxonomical information such as the most reported biological family per chemical compound (Figure 6B.) or the biological specificity of chemical classes (Figure 6C.) on the TMAP. The biological specificity score at a given taxonomic level for a given chemical class is calculated as a Jensen-Shannon divergence. A score of 1 suggests that compounds are highly specific, 0 that they are ubiquitous. For more details, see 3_analyzing/jensen_shannon_divergence.R. This visualization allows to highlight chemical classes specific to a given taxon, such as the quassinoids in the Simaroubaceae family. In this case, it is striking to see how well the compounds of a given chemical class (quassinoids) (Figure 6A.) and the most reported plant family per compound (Simaroubaceae) (Figure 6B.) overlap. This is also evidenced on Figure 6C. with a Jensen-Shannon divergence of 0.99 at the biological family level for quassinoids. In this plot, it is also possible to identify chemical classes that are widely spread among living organisms, such as the stigmastane steroids, which exhibit a Jensen-Shannon divergence of 0.73 at the biological family level. This means that repartition of stigmastane steroids among families is not specific. Figure 7---figure supplement 1 further supports this statement.

### A chemically interpreted biological tree

An alternative view of the biological and chemical diversity covered by LOTUS is illustrated in Figure 7. Here, chemical compounds are not organized but biological organisms are placed in their taxonomy. To limit bias due to under-reporting in the literature and keep a reasonable display size, only families with at least 50 reported compounds were included. Organisms were classified according to the OTL taxonomy and structures according to NPClassifier. The tips were labeled according to the biological family and colored according to their biological kingdom. The bars represent structure specificity of the most characteristic chemical class of the given biological family (the higher the more specific). This specificity score was a Jaccard index between the chemical class and the biological family. For more details, see 4_visualizing/plot_magicTree.R.

Figure 7.

#### LOTUS provides new means of exploring and representing chemical and biological diversity.

The tree generated from current LOTUS data builds on biological taxonomy and employs the kingdom as tips label color (only families containing 50+ chemical structures were considered). The outer bars correspond to the most specific chemical class found in the biological family. The height of the bar is proportional to a specificity score corresponding to a Jaccard index between the chemical class and the biological family. The bar color corresponds to the chemical pathway of the most specific chemical class in the NPClassifier classification system. The size of the leaf nodes corresponds to the number of genera reported in the family. The figure is vectorized and zoomable for detailed inspection and is available under the CC0 license at https://commons.wikimedia.org/wiki/File:Lotus_initiative_1_chemically_interpreted_biological_tree.svg.

Figure 7 supplement.

#### Distribution of β-sitosterol and related chemical parents among families with at least 50 reported compounds present in LOTUS.

Script used for the generation of each tree in the figure is the same (src/4_visualizing/plot_magicTree.R(https://github.com/lotusnprod/lotus-processor/blob/main src/4_visualizing/plot_magicTree.R)) as for Figure 7 as both figures are related. The figure is available under CC0 license at https://commons.wikimedia.org/wiki/File:Lotus_initiative_1_chemically_interpreted_biological_tree_supplement.svg.

Figure 7-2.

    library(data.table)
    library(dplyr)
    library(forcats)
    library(ggplot2)
    library(ggtree)
    library(ggtreeExtra)
    library(ggstar)
    library(ggnewscale)
    library(readr)
    library(rotl)
    library(splitstackshape)
    library(tidyr)

    paired <- c(
      "#a6cee3",
      "#1f78b4",
      "#b2df8a",
      "#33a02c",
      "#fb9a99",
      "#e31a1c",
      "#fdbf6f",
      "#ff7f00",
      "#cab2d6",
      "#6a3d9a",
      "#ffff99",
      "#b15928"
    )

    #' Title
    #'
    #' @param df
    #' @param name
    #'
    #' @return
    #' @export
    #'
    #' @examples
    tree_preparation <- function(df, name) {
      df %>%
        dplyr::group_by(organism_taxonomy_06family) %>%
        tidyr::fill(structure_inchikey, .direction = "downup") %>%
        dplyr::distinct(organism_taxonomy_06family, structure_inchikey) %>%
        dplyr::left_join(
          families_matched_restricted,
          .,
          by = c("unique_name" = "organism_taxonomy_06family")
        ) %>%
        dplyr::mutate(
          structure_inchikey = ifelse(
            test = !is.na(structure_inchikey),
            yes = structure_inchikey,
            no = name
          )
        ) %>%
        dplyr::mutate(key = gsub(
          pattern = "_.*",
          replacement = "",
          x = key
        )) %>%
        dplyr::relocate(key, .before = search_string) %>%
        data.frame()
    }

    #' Title
    #'
    #' @param table
    #' @param level
    #'
    #' @return
    #' @export
    #'
    #' @examples
    tree_presence_absence <- function(table, level) {
      q <-
        ggtree::ggtree(
          tr = tr_jaccard,
          layout = "circular",
          size = 5,
          ggtree::aes(color = switch(level,
                             "structure_inchikey" = structure_inchikey,
                             "structure_taxonomy_npclassifier_03class" = structure_taxonomy_npclassifier_03class,
                             "structure_taxonomy_npclassifier_02superclass" = structure_taxonomy_npclassifier_02superclass,
                             "structure_taxonomy_npclassifier_01pathway" = structure_taxonomy_npclassifier_01pathway
          ))
        ) %<+%
        table +
        ggtree::scale_color_manual(
          values = c("#336A2D", "#861450"),
          na.value = "grey"
        )
      q <- q %<+%
        info_jaccard +
        ggnewscale::new_scale_color() +
        ggtree::geom_tiplab(
          ggtree::aes(color = Kingdom),
          align = TRUE,
          size = ggplot2::rel(5),
          offset = ggplot2::rel(1)
        ) +
        ggtree::scale_color_manual(
          values = strsplit(x = paired, split = " "),
          na.value = "grey"
        ) +
        ggtree::theme(legend.position = "none")
    }

    pairs_metadata <- lotus %>%
      data.table()

    n_min <- 50

    families_restricted <- pairs_metadata %>%
      dplyr::filter(!is.na(organism_taxonomy_06family)) %>%
      dplyr::group_by(organism_taxonomy_06family) %>%
      dplyr::add_count() %>%
      dplyr::ungroup() %>%
      dplyr::filter(n >= n_min) %>%
      dplyr::distinct(organism_taxonomy_06family)

    families_matched_restricted <-
      rotl::tnrs_match_names(
        names = families_restricted$organism_taxonomy_06family,
        do_approximate_matching = FALSE
      )

    #' Long step
    ott_in_tree <-
      rotl::ott_id(families_matched_restricted)[rotl::is_in_tree(rotl::ott_id(families_matched_restricted))]

    families_restricted <- families_restricted %>%
      dplyr::filter(organism_taxonomy_06family %in% names(ott_in_tree))

    families_matched_restricted <-
      rotl::tnrs_match_names(
        names = families_restricted$organism_taxonomy_06family,
        do_approximate_matching = FALSE
      )

    families_matched_restricted <- families_matched_restricted %>%
      dplyr::mutate(key = paste(
        gsub(
          x = unique_name,
          pattern = " ",
          replacement = "_",
          fixed = TRUE
        ),
        paste0("ott", ott_id),
        sep = "_"
      ))

    tr_restricted <- rotl::tol_induced_subtree(ott_ids = ott_in_tree)

    specific_classes <- pairs_metadata %>%
      splitstackshape::cSplit(
        splitCols = colnames(.)[.[, grepl(
          pattern = "structure_taxonomy_npclassifier_",
          x = colnames(.)
        )]],
        sep = "|",
        direction = "long"
      ) %>%
      dplyr::filter(
        !is.na(structure_taxonomy_npclassifier_01pathway) &
          !is.na(structure_taxonomy_npclassifier_02superclass) &
          !is.na(structure_taxonomy_npclassifier_03class)
      ) %>%
      dplyr::mutate_all(as.character) %>%
      dplyr::filter(organism_taxonomy_06family %in% families_matched_restricted$unique_name) %>%
      dplyr::filter(!is.na(structure_taxonomy_npclassifier_03class)) %>%
      dplyr::distinct(organism_taxonomy_06family,
               structure_inchikey,
               .keep_all = TRUE
      )

    specific_classes_n <- specific_classes %>%
      dplyr::group_by(organism_taxonomy_06family) %>%
      dplyr::count(name = "n") %>%
      dplyr::ungroup()

    specific_classes_m <- specific_classes %>%
      dplyr::group_by(structure_taxonomy_npclassifier_03class) %>%
      dplyr::count(name = "m") %>%
      dplyr::ungroup()

    specific_classes_o <- specific_classes %>%
      dplyr::group_by(organism_taxonomy_06family) %>%
      dplyr::distinct(organism_taxonomy_08genus, .keep_all = TRUE) %>%
      dplyr::count(name = "o") %>%
      dplyr::ungroup()

    specific_classes_p <- specific_classes %>%
      dplyr::group_by(
        organism_taxonomy_06family,
        structure_taxonomy_npclassifier_03class
      ) %>%
      dplyr::count(name = "p") %>%
      dplyr::ungroup()

    specific_classes_jaccard <- specific_classes %>%
      dplyr::left_join(., specific_classes_n) %>%
      dplyr::left_join(., specific_classes_m) %>%
      dplyr::left_join(., specific_classes_o) %>%
      dplyr::left_join(., specific_classes_p) %>%
      dplyr::mutate(q = p / (n + m - p)) %>%
      dplyr::distinct(
        organism_taxonomy_06family,
        structure_taxonomy_npclassifier_03class,
        q,
        o,
        .keep_all = TRUE
      ) %>%
      dplyr::group_by(organism_taxonomy_06family) %>%
      dplyr::filter(q == max(q)) %>%
      dplyr::ungroup() %>%
      dplyr::distinct(organism_taxonomy_06family, q, .keep_all = TRUE)

    tr_restricted$tip.label <-
      gsub(
        pattern = "_.*",
        replacement = "",
        x = tr_restricted$tip.label
      )

    taxonomy <-
      dplyr::left_join(
        families_restricted,
        pairs_metadata
      ) %>%
      dplyr::distinct(
        Domain = organism_taxonomy_01domain,
        Kingdom = organism_taxonomy_02kingdom,
        Phylum = organism_taxonomy_03phylum,
        Class = organism_taxonomy_04class,
        Order = organism_taxonomy_05order,
        Family = organism_taxonomy_06family
      )

    info <- taxonomy %>%
      dplyr::select(
        id = Family,
        dplyr::everything()
      ) %>%
      dplyr::mutate(Kingdom = forcats::fct_reorder(Kingdom, !is.na(Domain))) %>%
      dplyr::mutate(Phylum = forcats::fct_reorder(Phylum, !is.na(Kingdom)))

    bar_data_jaccard <- specific_classes_jaccard %>%
      dplyr::select(
        id = organism_taxonomy_06family,
        dplyr::everything(),
        -organism_taxonomy_01domain,
        -organism_taxonomy_02kingdom,
        -organism_taxonomy_03phylum,
        -organism_taxonomy_05order
      ) %>%
      # mutate(`02superclass` = fct_reorder(`02superclass`, `01kingdom`)) %>%
      # mutate(`03class` = fct_reorder(`03class`, !is.na(`02superclass`)))
      dplyr::mutate(
        superclass = forcats::fct_reorder(
          structure_taxonomy_npclassifier_02superclass,
          structure_taxonomy_npclassifier_01pathway
        )
      ) %>%
      dplyr::mutate(class = forcats::fct_reorder(
        structure_taxonomy_npclassifier_03class,
        !is.na(structure_taxonomy_npclassifier_02superclass)
      ))

    info_jaccard <- info %>%
      dplyr::filter(id %in% bar_data_jaccard$id)

    ott_jaccard <-
      ott_in_tree[names(ott_in_tree) %in% bar_data_jaccard$id]

    ott_jaccard <- ott_jaccard[!duplicated(ott_jaccard)]

    tr_jaccard <- rotl::tol_induced_subtree(ott_ids = ott_jaccard)

    tr_jaccard$tip.label <-
      gsub(
        pattern = "_.*",
        replacement = "",
        x = tr_jaccard$tip.label
      )

    sitosterol_3D <- pairs_metadata %>%
      dplyr::mutate(structure_inchikey = ifelse(
        test = grepl(
          pattern = "KZJWDPNRJALLNS-VJSFXXLFSA-N",
          x = structure_inchikey,
          fixed = TRUE
        ),
        yes = "KZJWDPNRJALLNS-VJSFXXLFSA-N",
        no = NA
      )) %>%
      dplyr::group_by(organism_taxonomy_06family) %>%
      tidyr::fill(structure_inchikey, .direction = "downup") %>%
      dplyr::distinct(organism_taxonomy_06family, structure_inchikey) %>%
      dplyr::left_join(families_matched_restricted,
                .,
                by = c("unique_name" = "organism_taxonomy_06family")
      ) %>%
      dplyr::mutate(structure_inchikey = ifelse(
        test = !is.na(structure_inchikey),
        yes = structure_inchikey,
        no = "noSitosterol_3D"
      )) %>%
      dplyr::mutate(key = gsub(
        pattern = "_.*",
        replacement = "",
        x = key
      )) %>%
      dplyr::relocate(key, .before = search_string) %>%
      data.frame()

    sitosterol_2D <- pairs_metadata %>%
      dplyr::mutate(structure_inchikey = ifelse(
        test = grepl(
          pattern = "KZJWDPNRJALLNS",
          x = structure_inchikey,
          fixed = TRUE
        ),
        yes = "KZJWDPNRJALLNS",
        no = NA
      )) %>%
      tree_preparation(name = "noSitosterol_2D")

    stigmastanes <- pairs_metadata %>%
      dplyr::mutate(
        structure_taxonomy_npclassifier_03class = ifelse(
          test = structure_taxonomy_npclassifier_03class == "Stigmastane steroids",
          yes = structure_taxonomy_npclassifier_03class,
          no = NA
        )
      ) %>%
      tree_preparation(name = "zNo_stigmastane_steroids")

    steroids <- pairs_metadata %>%
      dplyr::mutate(
        structure_taxonomy_npclassifier_02superclass = ifelse(
          test = structure_taxonomy_npclassifier_02superclass == "Steroids",
          yes = structure_taxonomy_npclassifier_02superclass,
          no = NA
        )
      ) %>%
      tree_preparation(name = "zNo_steroids")

    terpenoids <- pairs_metadata %>%
      dplyr::mutate(
        structure_taxonomy_npclassifier_01pathway = ifelse(
          test = structure_taxonomy_npclassifier_01pathway == "Terpenoids",
          yes = structure_taxonomy_npclassifier_01pathway,
          no = NA
        )
      ) %>%
      tree_preparation(name = "zNo_terpenoids")

    tree_jaccard <- ggtree::ggtree(tr = tr_jaccard, layout = "circular")

    p_jaccard <- tree_jaccard %<+%
      info_jaccard +
      ggtree::geom_tiplab(
        ggtree::aes(color = Kingdom),
        align = TRUE,
        size = ggplot2::rel(5),
        offset = ggplot2::rel(1)
      ) +
      ggtree::scale_color_manual(
        values = strsplit(x = paired, split = " "),
        na.value = "grey"
      ) +
      ggtreeExtra::geom_fruit(
        data = bar_data_jaccard,
        geom = geom_bar,
        mapping =
          ggtree::aes(
            y = id,
            x = q,
            fill = structure_taxonomy_npclassifier_01pathway
          ),
        offset = ggplot2::rel(0.2),
        pwidth = ggplot2::rel(1.6),
        orientation = "y",
        stat = "identity",
      ) +
      ggtree::geom_tiplab(
        mapping = ggtree::aes(
          # label = paste(`02superclass`, `03class`, sep = " - "),
          label = paste(
            structure_taxonomy_npclassifier_02superclass,
            structure_taxonomy_npclassifier_03class,
            sep = " - "
          ),
          x = 33 + 75 * q ## to adapt with the data
        ),
        linetype = "blank",
        linesize = 0,
        align = TRUE,
        size = ggplot2::rel(5),
        offset = ggplot2::rel(12)
      ) +
      ggplot2::scale_fill_discrete(
        name = "Chemical pathway",
        direction = "vertical",
        guide = ggtree::guide_legend(order = 3)
      ) +
      ggtree::scale_fill_manual(
        values = strsplit(
          x = paired[4:12],
          split = " "
        ),
        na.value = "grey"
      )

    p_jaccard <- p_jaccard %<+%
      bar_data_jaccard +
      ggtree::geom_tippoint(mapping = ggtree::aes(color = Kingdom, size = o)) +
      ggnewscale::new_scale_fill() +
      ggplot2::scale_fill_discrete(
        name = "Biological kingdom",
        guide = ggtree::guide_legend(
          order = 1,
          ncol = 2
        )
      ) +
      ggplot2::scale_size_continuous(
        name = "Genera in biological family",
        guide = ggtree::guide_legend(
          order = 2,
          direction = "horizontal"
        )
      ) +
      ggtree::theme(
        legend.position = c(0.5, 0.05),
        legend.background = ggplot2::element_rect(fill = NA),
        legend.title = ggplot2::element_text(size = ggplot2::rel(3)),
        legend.text = ggplot2::element_text(size = ggplot2::rel(2)),
      )

    q <-
      tree_presence_absence(table = sitosterol_3D, level = "structure_inchikey")

    r <-
      tree_presence_absence(table = sitosterol_2D, level = "structure_inchikey")

    s <-
      tree_presence_absence(table = stigmastanes, level = "structure_taxonomy_npclassifier_03class")

    t <-
      tree_presence_absence(table = steroids, level = "structure_taxonomy_npclassifier_02superclass")

    u <-
      tree_presence_absence(table = terpenoids, level = "structure_taxonomy_npclassifier_01pathway")

    ggsave(
        filename = fs::path("magicTree_jaccard.pdf"),
        plot = p_jaccard,
        width = 100,
        height = 100,
        units = "in",
        limitsize = FALSE
      ) |>
      knitr::include_graphics()
    # ggsave(
    #     filename = fs::path("tree_sitosterol_3D.pdf"),
    #     plot = q,
    #     width = 25,
    #     height = 25,
    #     units = "in",
    #     limitsize = FALSE
    #   ) |>
    #   knitr::include_graphics()
    # ggsave(
    #     filename = fs::path("tree_sitosterol_2D.pdf"),
    #     plot = r,
    #     width = 25,
    #     height = 25,
    #     units = "in",
    #     limitsize = FALSE
    #   ) |>
    #   knitr::include_graphics()
    # ggsave(
    #     filename = fs::path("tree_stigmastanes.pdf"),
    #     plot = s,
    #     width = 25,
    #     height = 25,
    #     units = "in",
    #     limitsize = FALSE
    #   ) |>
    #   knitr::include_graphics()
    # ggsave(
    #     filename = fs::path("tree_steroids.pdf"),
    #     plot = t,
    #     width = 25,
    #     height = 25,
    #     units = "in",
    #     limitsize = FALSE
    #   ) |>
    #   knitr::include_graphics()
    # ggsave(
    #     filename = fs::path("tree_terpenoids.pdf"),
    #     plot = u,
    #     width = 25,
    #     height = 25,
    #     units = "in",
    #     limitsize = FALSE
    #   ) |>
    #   knitr::include_graphics()

Figure 7 makes it possible to spot highly specific compound classes such as trinervitane terpenoids in the Termitidae, the rhizoxin macrolides in the Rhizopodaceae, or the quassinoids and limonoids typical, respectively, of Simaroubaceae and Meliaceae. Similarly, tendencies of more generic occurrence of NP can be observed. For example, within the fungal kingdom, Basidiomycotina appear to have a higher biosynthetic specificity toward terpenoids than other fungi, which mostly focus on polyketides production. As explained previously, Figure 7 is highly dependent of the data reported in literature. As also illustrated in Figure 4, some compounds can be over-studied among several organisms, and many organisms studied for specific compounds only. This is a direct consequence of the way the NP community reports its data actually. Having this in mind, when observed at a finer scale, down to the structure level, such chemotaxonomic representation can give valuable insights. For example, among all chemical structures, only two were found in all biological kingdoms, namely heptadecanoic acid (KEMQGTRYUADPNZ-UHFFFAOYSA-N) and β-carotene (OENHQHLEOONYIE-JLTXGRSLSA-N). Looking at the distribution of β-sitosterol (KZJWDPNRJALLNS-VJSFXXLFSA-N) within the overall biological tree, Figure 7---figure supplement 1 plots its presence/absence versus those of its superior chemical classifications, namely the stigmastane, steroid and terpenoid derivatives, over the same tree used in Figure 7. The comparison of these five chemically interpreted biological trees clearly highlights the increasing speciation of the β-sitosterol biosynthetic pathway in the Archaeplastida kingdom, while the superior classes are distributed across all kingdoms. Figure 7 is zoomable and vectorized for detailed inspection.

As illustrated, the possibility of data interrogation at multiple precision levels, from fully defined chemical structures to broader chemical classes, is of great interest, for example, for taxonomic and evolution studies. This makes LOTUS a unique resource for the advancement of chemotaxonomy, a discipline pioneered by Augustin Pyramus de Candolle and pursued by other notable researchers (Robert Hegnauer, Otto R. Gottlieb) 39 Gottlieb 1982 45 Hegnauer 1986 15 Candolle 1816. Six decades after Hegnauer's publication of 'Die Chemotaxonomie der Pflanzen' 46 Hegnauer 1986 much remains to be done for the advancement of this field of study and the LOTUS initiative aims to provide a solid basis for researchers willing to pursue these exciting explorations at the interface of chemistry, biology and evolution.

As shown recently in the context of spectral annotation 32 Dührkop et al.2021, lowering the precision level of the annotation allows a broader coverage along with greater confidence. Genetic studies investigating the pathways involved and the organisms carrying the responsible biosynthetic genes would be of interest to confirm the previous observations. These forms of data interpretation exemplify the importance of reporting not only new structures, but also novel occurrences of known structures in organisms as comprehensive chemotaxonomic studies are pivotal for a better understanding of the metabolomes of living organisms.

The integration of multiple knowledge sources, for example genetics for NP producing gene clusters 58 Kautsar et al.2020 combined to taxonomies and occurrences DB, also opens new opportunities to understand if an organism is responsible for the biosynthesis of a NP or merely contains it. This understanding is of utmost importance for the chemotaxonomic field and will help to understand to which extent microorganisms (endosymbionts) play a role in host development and its NP expression potential 111 Saikkonen et al.2004.

### Conclusion and Perspectives

#### Advancing natural products knowledge

At its current development stage, data harmonized and curated throughout the LOTUS initiative remains imperfect and, by the very nature of research, at least partially biased (see Introduction). In the context of bioactive NP research, and due to global editorial practices, it should not be ignored that many publications tend to emphasize new compounds and/or those for which interesting bioactivity has been measured. Near-ubiquitous (primarily plant-based) compounds, if broadly bioactive, tend to be overrepresented in the NP literature, yet the implication of their wide distribution in nature and associated patterns of non-specific activity are often underappreciated 8 Bisson et al.2016. Ideally, all characterized compounds independent of structural novelty and/or bioactivity profile should be documented, and the sharing of verified structure-organism pairs is fundamental to the advancement of NP research.

The LOTUS initiative provides a framework for rigorous review and incorporation of new records and already presents a valuable overview of the distribution of NP occurrences studied to date. While current data presents a reasonable approximation of the chemistries of a few well-studied organisms such as Arabidopsis thaliana, it remains patchy for many other organisms represented in the dataset. Community participation is the most efficient means of achieving a better documentation of NP occurrences, and the comprehensive editing opportunities provided within LOTUS and through the associated Wikidata distribution platform open new opportunities for such collaborative engagement. In addition to facilitating the introduction of new data, it also provides a forum for critical review of existing data (see an example of a Wikidata Talk page here), as well as harmonization and verification of existing NP datasets as they come online.

#### Fostering FAIRness and TRUSTworthiness

The LOTUS harmonized data and dissemination of referenced structure-organism pairs through Wikidata, enables novel forms of queries and transformational perspectives in NP research. As LOTUS follows the guidelines of FAIRness and TRUSTworthiness, all researchers across disciplines can benefit from this opportunity, whether the interest is in ecology and evolution, chemical ecology, drug discovery, biosynthesis pathway elucidation, chemotaxonomy, or other research fields connected with NP.

Researchers worldwide uniformly acknowledge the limitations caused by the intrinsic unavailability of essential (raw) data 7 Bisson et al.2016. In addition to being FAIR, LOTUS data is also open with a clear license, while closed data is still a major impediment to advancement of science 82 Murray-Rust 2008. The lack of progress in such direction is partly due to elements in the dissemination channels of the classical print and static PDF publication formats that complicate or sometimes even discourage data sharing, for example, due to page limitations and economically motivated mechanisms, including those involved in the focus on and calculation of journal impact factors. In particular raw data such as experimental readings, spectroscopic data, instrumental measurements, statistical, and other calculations are valued by all, but disseminated by only very few. The immense value of raw data and the desire to advance the public dissemination has recently been documented in detail for nuclear magnetic resonance (NMR) spectroscopic data by a large consortium of NP researchers 77 McAlpine et al.2019. However, to generate the vital flow of contributed data, the effort associated with preparing and submitting content to open repositories as well as data reuse should be better acknowledged in academia, government, regulatory, and industrial environments 23 Cousijn et al.2019 22 Cousijn et al.2018 88 Pierce et al.2019. The introduction of LOTUS provides here a new opportunity to advance the FAIR guiding principles for scientific data management and stewardship 142 Wilkinson et al.2016.

#### Opening new perspectives for spectral data

The possibilities for expansion and future applications of the Wikidata-based LOTUS initiative are significant. For example, properly formatted spectral data (e.g. obtained by MS or NMR) can be linked to the Wikidata entries of the originating chemical compounds. MassBank 51 Horai et al.2010 and SPLASH 145 Wohlgemuth et al.2010 identifiers are already reported in Wikidata, and this existing information can be used to report MassBank or SPLASH records for example for Arabidopsis thaliana compounds (https://w.wiki/3PJD). Such possibilities will help to bridge experimental data results obtained during the early stages of NP research with data that has been reported and formatted in different contexts. This opens exciting perspectives for structural dereplication, NP annotation, and metabolomic analysis. The authors have previously demonstrated that taxonomically informed metabolite annotation is critical for the improvement of the NP annotation process 99 Rutz et al.2019. Alternative approaches linking structural annotation to biological organisms have also shown substantial improvements 50 Hoffmann et al.2021. In this context, the LOTUS initiative offers new opportunities for linking chemical objects to both their biological occurrences and spectral information and should significantly facilitate such applications.

#### Integrating chemodiversity, biodiversity, and human health

As shown in Figure 7---figure supplement 1, observing the chemical and biological diversity at various granularities offers new insights. Regarding the chemical objects involved, it will be important to document the taxonomies of chemical annotations for the Wikidata entries. However, this is a rather complex task, for which stability and coverage issues will have to be addressed first. Existing chemical taxonomies such as ChEBI, ClassyFire, or NPClassifier are evolving steadily, and it will be important to constantly update the tools used to make further annotations. Promising efforts have been undertaken to automate the inclusion of Wikidata structures into a chemical ontology. Such approach exploits the SMILES and SMARTS associated properties to infer a chemical classification for the structure. See for example, the entry related to emericellolide B. Repositioning NP within their greater biosynthetic context is another major challenge - and active field of research. The fact that the LOTUS initiative disseminates its data through Wikidata will help facilitate further integration with biological pathway knowledge bases such as WikiPathways and contribute to this complex task 76 Martens et al.2021 118 Slenter et al.2018.

In the field of ecology, molecular traits are gaining increased attention 59 Kessler and Kalske 2018 114 Sedio 2017 124 Taylor and Dunn 2018. The LOTUS architecture can help to associate classical plant traits (e.g. leaf surface area, photosynthetic capacities, etc.) with Wikidata biological organisms entries, and, thus, allow their integration and comparison with chemicals that are associated with the organisms. Likewise, the association of biogeography data documented in repositories such as GBIF could be further exploited in Wikidata to pursue the exciting but understudied topic of 'chemodiversity hotspots' 27 Defossez et al.2021.

Other NP-related information of great interest remains poorly formatted. One example of such a shortcoming relates to traditional medicine (and the field studying it: ethnomedicine and ethnobotany), which is the historical and empiric approach of mankind to discover and use bioactive products from Nature, primarily plants. The amount of knowledge generated in human history on the use of medicinal substances represents a fascinating yet underutilized amount of information. Notably, the body of literature on the pharmacology and toxicology of NP is compound-centric, increases steadily, and relatively scattered, but still highly relevant for exploring the role and potential utility of NP for human health. To this end, the LOTUS initiative represents a potential framework for new concepts by which such information could be valued and conserved in the digital era 4 Allard et al.2018 20 Cordell 2017 21 Cordell 2017. This underscores the transformative value of the LOTUS initiative for the advancement of traditional medicine and its interest for drug discovery in health systems worldwide.

#### Shortcomings and challenges

Despite these strong advantages, the establishment and functioning of the LOTUS curation pipeline is not devoid of defaults and we list hereafter some of the observed shortcomings and associated challenges.

First, the LOTUS processing pipeline is heavy. It includes many dependencies and is convoluted. We tried to simplify the process and associated programs as much as possible but they remain consequent. This is the consequence of the heterogeneous nature of the source information and the number of successive operations required to process the data.

Second, while the overall objective of the LOTUS processing pipeline is to increase data quality, the pipeline also transforms data during the process, and, in some cases, data quality can be degraded or errors can be propagated. For example, regarding the chemical objects, the processing pipeline performs a systematic sanitization step that includes salt removal, uncharging of molecules and dimers resolving. We decided to apply this step systematically after observing a high ratio of artifacts within salts, charged or dimeric molecules. This thus implies that correct salts, charged or dimeric molecules in the input data will suffer an unwanted 'sanitization' step. Also, the LOTUS processing step uses external libraries and tools for the automated 'name to structure' and 'structure to name' translations. These remain challenging as they rely on sets of predefined rules which do not cover all cases and can commonly lead to incorrect translations.

On the biological organisms curation side, we are aware of shortcomings, whether inherent to specific inputs or regarding limitations of the general process. Regarding inputs, some cases are clearly not resolvable except through human curation. For example, the word Lotus can refer both to the genus of a plant of the Fabaceae family (https://www.wikidata.org/wiki/Q3645698) or to the vernacular name of Nelumbo nucifera (https://www.wikidata.org/wiki/Q16528). In fact, the name of the LOTUS Initiative comes, in part, from this taxonomic curiosity - and the challenge for its automated curation. To give another striking illustration, Ficus variegata corresponds both to a plant (https://www.wikidata.org/wiki/Q5446649) and to a mollusc (https://www.wikidata.org/wiki/Q502030). For specific names coming from traditional Chinese medicine or other sources using vernacular names, translation was dependent on hand curated dictionaries, which are clearly not exhaustive. Additionally, it is noteworthy to remind that the validation of the processed entries relies in part on partly imperfect rules, thus leading to erroneous entries in the output data. However, we also deliberately kept those rules restrictive in order to overall favor quality over quantity (see Figure 2).

Thus, despite our efforts, there is no doubt that incorrect structure-organism pairs have been uploaded on Wikidata (and some correct ones have not). We however expect that the editing facilities offered by this platform and community efforts will, over time, improve data quality.

#### Summary and outlook

Despite these challenges, the various facets discussed above connect with ongoing and future developments that the tandem of the LOTUS initiative and its Wikidata integration can accommodate through a broader knowledge base. The information of the LOTUS initiative is already readily accessible by third party projects build on top of Wikidata such as the SLING project (https://github.com/ringgaard/sling, see entry for gliotoxin) or the Plant Humanities Lab project (https://lab.plant-humanities.org, see entry for Ilex guayusa in the 'From Related Items' section). LOTUS data has also been integrated to PubChem (https://pubchem.ncbi.nlm.nih.gov/source/25132) to complement the natural products related metadata of this major chemical DB. For an example, see Gentiana lutea.

Behind the scenes, all underlying resources represent data in a multidimensional space and can be extracted as individual graphs, which can then be interconnected. The craft of appropriate federated queries allows users to navigate these graphs and fully exploit their potential 131 Waagmeester et al.2020 66 Kratochvíl et al.2018. The development of interfaces such as RDFFrames 79 Mohamed et al.2020 will also facilitate the use of the wide arsenal of existing machine learning approaches to automate reasoning on these knowledge graphs.

Overall, the LOTUS initiative aims to make more and better data available. While we did our best to ensure high data quality, the current processing pipeline still removes a lot of correct entries and misses or induces some incorrect ones. Aware of those imperfections, our project hopefully paves the way for the establishment of an open, durable and expandable electronic NP resource. The design and efforts of the LOTUS initiative reflect our conviction that the integration of NP research results is long-needed and requires a truly open and FAIR approach to information dissemination, with high quality data directly flowing from its source to public knowledge bases. We believe that the LOTUS initiative has the potential to fuel a virtuous cycle of research habits and, as a result, contribute to a better understanding of Life and its chemistry.

## Materials and methods

Key resources table.

#### Key resources table

Reagent type (species) or resource | Designation | Source or reference | Identifiers | Additional information
--- | --- | --- | --- | ---
Software, algorithm | Lotus-processor code | This work (https://github.com/lotusnprod/lotus-processor, 108 Rutz 2022) |  | Archived at https://doi.org/10.5281/zenodo.5802107
Software, algorithm | Lotus-web code | This work (https://github.com/lotusnprod/lotus-web, 109 Rutz 2022) |  | Archived at https://doi.org/10.5281/zenodo.5802119
Software, algorithm | Lotus-wikidata-interact code | This work (https://github.com/lotusnprod/lotus-wikidata-interact, 110 Rutz 2022) |  | Archived at https://doi.org/10.5281/zenodo.5802113
Software, algorithm | Global Names Architeture | https://globalnames.org | QID:Q65691453 | See Additional executable files
Software, algorithm | Java | https://www.java.com | QID:Q251 |
Software, algorithm | Kotlin | https://kotlinlang.org | QID:Q3816639 | See Kotlin packages
Software, algorithm | Manubot | https://manubot.org | QID:Q96473455 RRID:SCR_018553 | Repository available at https://github.com/lotusnprod/lotus-manuscript
Software, algorithm | NPClassifier | https://npclassifier.ucsd.edu |  | See https://doi.org/10.1021/acs.jnatprod.1c00399
Software, algorithm | OPSIN | https://github.com/dan2097/opsin | QID:Q26481302 | See Additional executable files
Software, algorithm | Python Programming Language | https://www.python.org | QID:Q28865 RRID:SCR_008394 | See Python packages
Software, algorithm | R Project for Statistical Computing | https://www.r-project.org | QID:Q206904 RRID:SCR_001905 | See R packages
Software, algorithm | Molconvert | https://docs.chemaxon.com/display/docs/molconvert.md | QID:Q55377678 | See Chemical structures
Software, algorithm | Wikidata | https://www.wikidata.org | QID:Q2013 RRID:SCR_018492 | Project page https://www.wikidata.org/wiki/Wikidata:WikiProject_Chemistry/Natural_products
Other | Lotus custom dictionaries | This work |  | Archived at https://doi.org/10.5281/zenodo.5801798
Other | Chemical identifier resolver | https://cactus.nci.nih.gov/chemical/structure |  | See Chemical structures
Other | CrossRef | https://www.crossref.org | QID:Q5188229 RRID:SCR_003217 | See References
Other | PubChem | https://pubchem.ncbi.nlm.nih.gov | QID:Q278487 RRID:SCR_004284 | LOTUS data https://pubchem.ncbi.nlm.nih.gov/source/25132
Other | PubMed | https://pubmed.ncbi.nlm.nih.gov | QID:Q180686 RRID:SCR_004846 | See References
Other | Taxonomic data sources | https://resolver.globalnames.org/data_sources |  | See Translation
Other | Natural Products data sources |  |  | See Appendix 1

### Data gathering

Before their inclusion, the overall quality of the source was manually assessed to estimate, both, the quality of referenced structure-organism pairs and the lack of ambiguities in the links between data and references. This led to the identification of thirty-six electronic NP resources as valuable LOTUS input. Data from the proprietary Dictionary of Natural Products (DNP v 29.2) was also used for comparison purposes only and is not publicly disseminated. FooDB was also curated but not publicly disseminated since its license proscribed sharing in Wikidata. Appendix 1 gives all necessary details regarding electronic NP resources access and characteristics.

Manual inspection of each electronic NP resource revealed that the structure, organism, and reference fields were widely variable in format and contents, thus requiring standardization to be comparable. The initial stage consisted of writing tailored scripts that are capable of harmonizing and categorizing knowledge from each source (Figure 1). This transformative process led to three categories: fields relevant to the chemical structure described, to the producing biological organism, and the reference describing the occurrence of the chemical structure in the producing biological organism. This process resulted in categorized columns for each source, providing an initial harmonized format for each table.

For all thirty-eight sources, if a single file or multiple files were accessible via a download option including FTP, data was gathered that way. For some sources, data was scraped (cf. Appendix 1). All scraping scripts can be found in the lotus-processor repository in the src/1_gathering directory (under each respective subdirectory). Data extraction scripts for the DNP are available and should allow users with a DNP license only to further exploit the data (src/1_gathering/db/dnp). The chemical structure fields, organism fields, and reference fields were manually categorized into three, two, and ten subcategories, respectively. For chemical structures, "InChI", "SMILES", and "chemical name" (not necessarily IUPAC). For organisms, "clean" and "dirty", meaning lot text not referred to the canonical name was present or the organism was not described by its canonical name (e.g. "Compound isolated from the fresh leaves of Citrus spp."). For the references, the original reference was kept in the "original" field. When the format allowed it, references were divided into: "authors", "doi", "external", "isbn", "journal", "original", "publishing details", "pubmed", "title", "split". The generic "external" field was used for all external cross-references to other websites or electronic NP resources (e.g. "also in knapsack"). The last subcategory, "split", corresponds to a still non-atomic field after the removal of parts of the original reference. Other field titles are self-explanatory. The producing organism field was kept as a single field.

### Data harmonization

To perform the harmonization of all previously gathered sources, sixteen columns were chosen as described above. Upon electronic NP resources harmonization, resulting subcategories were divided and subject to further processing. The 'chemical structure' fields were divided into files according to their subcategories ("InChI", "names" and "SMILES"). A file containing all initial structures from all three subcategories was also generated. The same procedure was followed for organisms and references.

### Data processing

To obtain an unambiguously referenced structure-organism pair for Wikidata dissemination, the initial sixteen columns were translated and processed into three fields: the reported structure, the organism canonical name, and the reference. The structure was reported as InChI, together with its SMILES and InChIKey translation. The biological organism field was reported as three minimal necessary and sufficient fields, namely its canonical name and the taxonID and taxonomic DB corresponding to the latter. The reference was reported as four minimal fields, namely reference title, DOI, PMCID, and PMID, one being sufficient. For the forthcoming translation processes, automated solutions were used when available. However, for specific cases (common or vernacular names of the biological organisms, Traditional Chinese Medicine (TCM) names, and conversion between digital reference identifiers), no solution existed, thus requiring the use of tailored dictionaries. Their construction is detailed in the Dictionaries section. The initial entries (containing one or multiple producing organisms per structure, with one or multiple accepted names per organism) were processed into 2M+ referenced structure-organism pairs.

#### Chemical structures

To retrieve as much information as possible from the original structure field(s) of each of the sources, the following procedure was followed. Allowed structural fields for the sources were divided into two types: structural (InChI, SMILES) or nominal (chemical name, not necessarily IUPAC). If multiple fields were present, structural identifiers were preferred over structure names. Among structural identifiers, when both identifiers were present, SMILES was preferred over InChI. InChI were translated to SMILES using the 95 RDKit 2021 implementation in Python 3.8 (src/2_curating/2_editing/structure/1_translating/inchi.py). They were first converted to ROMol objects which were then converted to SMILES. When no structural identifier was available, the nominal identifier was translated to InChI first thanks to OPSIN 73 Lowe et al.2011, a fast Java-based translation open-source solution. If no translation was obtained, chemical names were then submitted to the PUG-REST, the interface for programmatic access to PubChem 62 Kim et al.2018 61 Kim et al.2015. If again no translation was obtained, candidates were then submitted to the Chemical Identifier Resolver. Before the translation process, some typical chemical structure-related greek characters (such as α, ß) were replaced by their textual equivalents (alpha, beta) to obtain better results. All pre-translation steps are included in the preparing_name function and are available in src/r/preparing_name.R.

The chemical sanitization step sought to standardize the representation of chemical structures coming from different sources. It consisted of three main stages (standardizing, fragment removal, and uncharging) achieved via the MolVS package. The initial standardizer function consists of six stages (RDKit Sanitization, RDKit Hs removal, Metals Disconnection, Normalization, Acids Reionization, and Stereochemistry recalculation) detailed in the molvs documentation. In a second step, the FragmentRemover functionality was applied using a list of SMARTS to detect and remove common counterions and crystallization reagents sometimes occurring in the input DB. Finally, the Uncharger function was employed to neutralize molecules when appropriate.

Molconvert function of the MarvinSuite was used for traditional and IUPAC names translation, Marvin 20.19, ChemAxon. When stereochemistry was not fully defined, (+) and (-) symbols were removed from names. All details are available in the following script: src/2_curating/2_editing/structure/4_enriching/naming.R. Chemical classification of all resulting structures was done using classyfireR 29 Djoumbou Feunang et al.2016 and NPClassifier API.

After manual evaluation, structures remaining as dimers were discarded (all structures containing a "." in their SMILES were removed).

From the 283,267 initial InChI, 242,068 (85%) sanitized structures were obtained, of which 185,929 (77%) had complete stereochemistry defined. A total of 203,718 (72%) were uploaded to Wikidata. From the 248,185 initial SMILES, 207,658 (84%) sanitized structures were obtained, of which 98,685 (48%) had complete stereochemistry defined. 174,091 (70%) were uploaded to Wikidata. From the 49,675 initial chemical names, 27,932 (56%) sanitized structures were obtained, of which 17,460 (63%) had complete stereochemistry defined. 23,036 (46%) were uploaded to Wikidata. In total, 163,800 structures with fully defined stereochemistry were uploaded as "chemical compounds" (Q11173), and 106,669 structures without fully defined stereochemistry were uploaded as "group of stereoisomers" (Q59199015).

#### Biological organisms

The processing at the biological organism's level had three objectives:convert the original organism string to (a) taxon name(s), atomize fields containing multiple taxon names, and deduplicate synonyms. The original organism strings were treated with Global Names Finder (GNF) and Global Names Verifier (GNV), both tools coming from the Global Names Architecture (GNA) a system of web services that helps people to register, find, index, check, and organize biological scientific names and interconnect on-line information about species. GNF allows scientific name recognition within raw text blocks and searches for found scientific names among public taxonomic DB. GNV takes names or lists of names and verifies them against various biodiversity data sources. Canonical names, their taxonID, and the taxonomic DB they were found in were retrieved. When a single entry led to multiple canonical names (accepted synonyms), all of them were kept. Because both GNF and GNV recognize scientific names and not common ones, common names were translated before a second resubmission.

##### Dictionaries

To perform the translations from common biological organism name to latin scientific name, specialized dictionaries included in DrDuke, FooDB, PhenolExplorer were aggregated together with the translation dictionary of GBIF Backbone Taxonomy. The script used for this was src/1_gathering/translation/common.R. When the canonical translation of a common name contained a specific epithet that was not initially present, the translation pair was discarded (for example, "Aloe" translated in "Aloe vera" was discarded). Common names corresponding to a generic name were also discarded (for example "Kiwi" corresponding to the synonym of an Apteryx spp. (https://www.gbif.org/species/4849989)). When multiple translations were given for a single common name, the following procedure was followed: the canonical name was split into species name, genus name, and possible subnames. For each common name, genus names and species names were counted. If both the species and genus names were consistent at more than 50%, they were considered consistent overall and, therefore, kept (for example, "Aberrant Bush Warbler" had "Horornis flavolivaceus" and "Horornis flavolivaceus intricatus" as translation; as both the generic ("Horornis") and the specific ("flavolivaceus") epithets were consistent at 100%, both ("Horornis flavolivaceus") were kept). When only the generic epithet had more than 50% consistency, it was kept (for example, "Angelshark" had "Squatina australis" and "Squatina squatina" as translation, so only "Squatina" was kept). Some unspecific common names were removed (see https://doi.org/10.5281/zenodo.5801816 100 Rutz 2021) and only common names with more than three characters were kept. This resulted in 181,891 translation pairs further used for the conversion from common names to scientific names. For TCM names, translation dictionaries from TCMID, TMMC, and coming from the Chinese Medicine Board of Australia were aggregated. The script used for this was src/1_gathering/translation/tcm.R. Some unspecific common names were removed (see https://doi.org/10.5281/zenodo.5801816 100 Rutz 2021). Careful attention was given to the Latin genitive translations and custom dictionaries were written (see https://doi.org/10.5281/zenodo.5801816 100 Rutz 2021). Organ names of the producing organism were removed to avoid wrong translation (see https://doi.org/10.5281/zenodo.5801816 100 Rutz 2021). This resulted in 7,070 translation pairs. Both common and TCM translation pairs were then ordered by decreasing string length, first translating the longer names to avoid part of them being translated incorrectly.

##### Translation

To ensure compatibility between obtained taxonID with Wikidata, the taxonomic DB 3 (ITIS), 4 (NCBI), 5 (Index Fungorum), 6 (GRIN Taxonomy for Plants), 8 (The Interim Register of Marine and Nonmarine Genera), 9 (World Register of Marine Species), 11 (GBIF Backbone Taxonomy), 12 (Encyclopedia of Life), 118 (AmphibiaWeb), 128 (ARKive), 132 (ZooBank), 147 (Database of Vascular Plants of Canada (VASCAN)), 148 (Phasmida Species File), 150 (USDA NRCS PLANTS Database), 155 (FishBase), 158 (EUNIS), 163 (IUCN Red List of Threatened Species), 164 (BioLib.cz), 165 (Tropicos - Missouri Botanical Garden), 167 (The International Plant Names Index), 169 (uBio NameBank), 174 (The Mammal Species of The World), 175 (BirdLife International), 179 (Open Tree of Life), 180 (iNaturalist), and 187 (The eBird/Clements Checklist of Birds of the World) were chosen. All other available taxonomic DB are listed at http://index.globalnames.org/datasource. To retrieve as much information as possible from the original organism field of each of the sources, the following procedure was followed: First, a scientific name recognition step, allowing us to retrieve canonical names was carried (src/2_curating/2_editing/organisms/subscripts/1_processingOriginal.R). Then, a subtraction step of the obtained canonical names from the original field was applied, to avoid unwanted translation of parts of canonical names. For example, Bromus mango contains "mango" as a specific epithet, which is also the common name for Mangifera indica. After this subtraction step, the remaining names were translated from vernacular (common) and TCM names to scientific names, with help of the dictionaries. For performance reasons, this processing step was written in Kotlin and used coroutines to allow efficient parallelization of that process (src/2_curating/2_editing/organisms/2_translating_organism_kotlin/). They were subsequently submitted again to scientific name recognition (src/2_curating/2_editing/organisms/3_processingTranslated.R).

After full resolution of canonical names, all obtained names were submitted to rotl 78 Michonneau et al.2016 to obtain a unified taxonomy. From the 88,395 initial "clean" organism fields, 43,936 (50%) canonical names were obtained, of which 32,285 (37%) were uploaded to Wikidata. From the 300 initial "dirty" organism fields, 250 (83%) canonical names were obtained, of which 208 (69%) were uploaded to Wikidata.

#### Reference

The Rcrossref package 18 Chamberlain et al.2020 interfacing with the Crossref API was used to translate references from their original subcategory ("original", "publishingDetails", "split", "title") to a DOI, the title of its corresponding article, the journal it was published in, its date of publication and the name of the first author. The first twenty candidates were kept and ranked according to the score returned by Crossref, which is a tf-idf score. For DOI and PMID, only a single candidate was kept. All DOIs were also translated with this method, to eventually discard any DOI not leading to an object. PMIDs were translated, thanks to the entrezsummary function of the rentrez package 144 Winter 2017. Scripts used for all subcategories of references are available in the directory src/2_curating/2_editing/reference/1_translating/. Once all translations were made, results coming from each subcategory were integrated, (src/2_curating/2_editing/reference/2_integrating.R) and the producing organism related to the reference was added for further treatment. Because the crossref score was not informative enough, at least one other metric was chosen to complement it. The first metric was related to the presence of the producing organism's generic name in the title of the returned article. If the title contained the generic name of the organism, a score of 1 was given, else 0. Regarding the subcategories "doi", "pubmed" and "title", for which the same subcategory was retrieved _via crossref or rentrez, distances between the input's string and the candidates' one were calculated. Optimal string alignment (restricted Damerau-Levenshtein distance) was used as a method. Among "publishing details", "original" and "split" categories, three additional metrics were used: If the journal name was present in the original field, a score of 1 was given, else 0. If the name of the first author was present in the original field, a score of 1 was given, else 0. Those three scores were then summed together. All candidates were first ordered according to their crossref score, then by the complement score for related subcategories, then again according to their title-producing organism score, and finally according to their translation distance score. After this re-ranking step, only the first candidate was kept. Finally, the Pubmed PMCID dictionary (PMC-ids.csv.gz) was used to perform the translations between DOI, PMID, and PMCID (src/2_curating/2_editing/reference/3_processing.R).

From the 36,710 initial "original" references, 21,970 (60%) references with sufficient quality were obtained, of which 15,588 (71%) had the organism name in their title. 14,710 (40%) were uploaded to Wikidata. From the 21,953 initial "pubmed" references, 9452 (43%) references with sufficient quality were obtained, of which 6,098 (65%) had the organism name in their title. 5553 (25%) were uploaded to Wikidata. From the 37,371 initial "doi" references, 20,139 (54%) references with sufficient quality were obtained, of which 15,727 (78%) had the organism name in their title. 15,351 (41%) were uploaded to Wikidata. From the 29,600 initial "title" references, 17,417 (59%) references with sufficient quality were obtained, of which 12,675 (73%) had the organism name in their title. 10,725 (36%) were uploaded to Wikidata. From the 11,325 initial "split" references, 5856 (52%) references with sufficient quality were obtained, of which 3,206 (55%) had the organism name in their title. 2,854 (25%) were uploaded to Wikidata. From the 3,314 initial "publishingDetails" references, 119 (4%) references with sufficient quality were obtained, of which 59 (50%) had the organism name in their title. 58 (2%) were uploaded to Wikidata.

### Data realignment

In order to fetch back the referenced structure-organism pairs links in the original data, the processed structures, processed organisms, and processed references were re-aligned with the initial entries. This resulted in 6.2M+ referenced structure-organism pairs. Those pairs were not unique, with redundancies among electronic NP resources and different original categories leading to the same final pair (for example, entry reporting InChI=1/C21H20O12/c22-6-13-15(27)17(29)18(30)21(32-13)33-20-16(28)14-11(26)4-8(23)5-12(14)31-19(20)7-1-2-9(24)10(25)3-7/h1-5,13,15,17--18,21-27,29--30H,6H2/t13-,15+,17+,18-,21+/m1/s1 in Crataegus oxyacantha or InChI=1S/C21H20O12/c22-6-13-15(27)17(29)18(30)21(32-13)33-20-16(28)14-11(26)4-8(23)5-12(14)31-19(20)7-1-2-9(24)10(25)3-7/h1-5,13,15,17--18,21-27,29--30H,6H2/t13-,15+,17+,18-,21+/m1/s1 in Crataegus stevenii both led to OVSQVDMCBVZWGM-DTGCRPNFSA-N in Crataegus monogyna). After deduplication, 2M+ unique structure-organism pairs were obtained.

After the curation of all three objects, all of them were put together again. Therefore, the original aligned table containing the original pairs was joined with each curation result. Only entries containing a structure, an organism, and a reference after curation were kept. Each curated object was divided into minimal data (for Wikidata upload) and metadata. A dictionary containing original and curated object translations was written for each object to avoid those translations being made again during the next curation step (src/2_curating/3_integrating.R).

### Data validation

The pairs obtained after curation were of different quality. Globally, structure and organism translation was satisfactory whereas reference translation was not. Therefore, to assess the validity of the obtained results, a randomized set of 420 referenced structure-organism pairs was sampled in each reference subcategory and validated or rejected manually. Entries were sampled with at least 55 of each reference subcategory present (to get a representative idea of each subcategory) (src/3_analyzing/1_sampling.R). An entry was only validated if: (i) the structure (as any structural descriptor that could be linked to the final sanitized InChIKey) was described in the reference (ii) the producing organism (as any organism descriptor that could be linked to the accepted canonical name) was described in the reference and (iii) the reference was describing the occurrence of the chemical structure in the biological organism. Results obtained on the manually analyzed set were categorized according to the initial reference subcategory and are detailed in Appendix 2. To improve these results, further processing of the references was needed. This was done by accepting entries whose reference was coming from a DOI, a PMID, or from a title which restricted Damerau-Levenshtein distance between original and translated was lower than ten or if it was coming from one of the three main journals where NP occurrences are commonly expected to be published (i.e. Journal of Natural Products, Phytochemistry, or Journal of Agricultural and Food Chemistry). For "split", "publishingDetails" and "original" subcategories, the year of publication of the obtained reference, its journal, and the name of the first author were searched in the original entry and if at least two of them were present, the entry was kept. Entries were then further filtered to keep the ones where the reference title contained the first element of the detected canonical name. Except for COCONUT, exceptions to this filter were made for all DOI-based references. The function resulting from those rules is (filter_dirty.R). To validate those filtering criteria, an additional set of 100 structure-organism pairs were manually analyzed. F0.5 score was used as a metric. F0.5 score is a modified F1 score where precision has twice more weight than recall. The F-score was calculated with ß = 0.5, as in Equation 1:

F β=(1+β 2)⋅p r e c i s i o n⋅r e c a l l(β 2⋅p r e c i s i o n)+r e c a l l

Based on this first manually validated dataset, filtering criteria (src/r/filter_dirty.R) were established to maximize precision and recall. Another 100 entries were sampled, this time respecting the whole set ratios. After manual validation, 97% of true positives were reached on the second set. A summary of the validation results is given in Appendix 2. Once validated, the filtering criteria were established to the whole curated set to filter entries chosen for dissemination (src/3_analyzing/2_validating.R).

### Unit testing

To provide robustness of the whole process and code, unit tests and partial data full-tests were written. They can run on the developer machine but also on the CI/CD system (GitHub) upon each commit to the codebase.

Those tests assess that the functions are providing results coherent with what is expected especially for edge cases detected during the development. The Kotlin code has tests based on JUnit and code quality control checks based on Ktlint, Detekt and Ben Mane's version plugin.

### Data dissemination

#### Wikidata

All the data produced for this work has been made available on Wikidata under a Creative Commons 0 license according to Wikidata:Licensing. This is a "No-rights-reserved" license that places no restrictions on reuse.

#### Lotus.NaturalProducts.Net (LNPN)

The web interface is implemented following the same protocol as described in the COCONUT publication 121 Sorokina et al.2021 that is the data are stored in a MongoDB repository, the backend runs with Kotlin and Java, using the Spring framework, and the frontend is written in React.js, and completely Dockerized. In addition to the diverse search functions available through this web interface, an API is also implemented, allowing programmatic LNPN querying. The complete API usage is described on the "Documentation" page of the website. LNPN is part of the NaturalProducts.net portal, an initiative aimed at gathering diverse open NP resources in one place.

### Data Interaction

#### Data retrieval

Bulk retrieval of a frozen (2021-12-20) version of LOTUS data is also available at https://doi.org/10.5281/zenodo.5794106 102 Rutz et al.2021.

The download lotus part of lotus-wikidata-interact allows the download of all chemical compounds with a "found in taxon" property. That way, it does not only get the data produced by this work, but any that would have existed beforehand or that would have been added directly on Wikidata by our users. It makes a copy of all the entities (compounds, taxa, references) into a local triplestore that can be queried with SPARQL as is or converted to a TSV file for inclusion in other projects. It is currently adapted to export directly into the SSOT thus allowing direct reuse by the processing/curation pipeline.

### Data addition

#### Wikidata

Data is loaded by the Kotlin importer available in the upload lotus part of lotus-wikidata-interact repository under a GPL V3 license and imported into Wikidata. The importer processes the curated outputs grouping references, organisms, and compounds together. It then checks if they already exist in Wikidata (using SPARQL or a direct connection to Wikidata depending on the kind of data). It then uses update or insert, also called upsert, the entities as needed. The script currently takes the tabular file of the referenced structure-organism pairs resulting from the LOTUS curation process as input. Before upload, a filtering step is performed in order to avoid re-uploading entries we already uploaded. This way, if modifications occur in Wikidata, it will not be erased by the next iteration of the importer. The importer is currently being adapted to use directly the SSOT and avoid an unnecessary conversion step. To import references, it first double checks for the presence of duplicated DOIs and utilizes the Crossref REST API to retrieve metadata associated with the DOI, the support for other citation sources such as Europe PMC is in progress. The structure-related fields are only subject to limited processing: basic formatting of the molecular formula by subscripting of the numbers. Due to limitations in Wikidata, the molecule names are dropped if they are longer than 250 characters and likewise the InChI strings cannot be stored if they are longer than 1500 characters.

Uploaded taxonomical DB identifiers are currently restricted to ITIS, GBIF, NCBI Taxon, Index Fungorum, IRMNG, WORMS, VASCAN, and iNaturalist, and newly OTL. The taxa levels are currently limited to family, subfamily, tribe, subtribe, genus, species, variety. The importer checks for the existence of each item based on their InChIKey and upserts the compound with the found in taxon statement and the associated organisms and references.

#### LNPN

From the onset, LNPN has been importing data directly from the frozen tabular data of the LOTUS dataset (https://doi.org/10.5281/zenodo.5794106 102 Rutz et al.2021). In future versions, LNPN will directly feed on the SSOT.

#### Data edition

The bot framework lotus-wikidata-interact was adapted such that, in addition to batch upload capabilities, it can also edit erroneously created entries on Wikidata. As massive edits have a large potential to disrupt otherwise good data, progressive deployment of this script is used, starting by editing progressively 1, 10, then 100 entries that are manually checked. Upon validation of 100 entries, the full script is run and check its behavior checked at regular intervals. An example of a corrected entry is as follows: https://www.wikidata.org/w/index.php?title=Q105349871&type=revision&diff=1365519277&oldid=1356145998.

#### Curation interface

A web-based (Kotlin, Spring Boot for the back-end, and TypeScript with Vue for the front-end) curation interface is currently in construction. It will allow mass-editing of entries and navigate quick navigation in the SSOT for the curation of new and existing entries. This new interface is intended to become open to the public to foster the curation of entries by further means, driven by the users. In line with the overall LOTUS approach, any modification made in this curation interface will be mirrored after validation on Wikidata and LNPN.

### Code availability

#### General repository

All programs written for this work can be found in the following group: https://github.com/lotusnprod.

#### Processing

The source data curation system is available at https://github.com/lotusnprod/lotus-processor (copy archived at swh:1:rev:78e6065d8eb9d0b0d11c2ea8de6ac66b445bca0e, 108 Rutz 2022). This program takes the source data as input and outputs curated data, ready for dissemination. The first step involves checking if the source data has already been processed. If not, all three elements (biological organism, chemical structures, and references) are submitted to various steps of translation and curation, before validation for dissemination.

#### Wikidata

The programs to interact with Wikidata are available at https://github.com/lotusnprod/lotus-wikidata-interact, (copy archived at swh:1:rev:92d19b8995a69f5bba39f438172ba425fdcc0f28, 110 Rutz 2022). On the upload side, the program takes the processed data resulting from the lotusProcessor subprocess as input and uploads it to Wikidata. It performs a SPARQL query to check which objects already exist. If needed, it creates the missing objects. It then updates the content of each object. Finally, it updates the chemical compound page with a "found in taxon" statement complemented with a "stated in" reference. A publication importer creating an article page from a DOI is also available.

On the download side, the program takes the structured data in Wikidata corresponding to chemical compounds found in taxa with a reference associated as input and exports it in both RDF and tabular formats for further use. Two subsequent options are (a) that the end-user can directly use the exported data.; or (b) that the exported data, which can be new or modified since the last iteration, is used as new source data in lotusProcessor.

#### LNPN

The LNPN website and processing system is available at https://github.com/lotusnprod/lotus-web (copy archived at swh:1:rev:278a5ab82389ebd5df720b1876a1724d15937644, 109 Rutz 2022). This system takes the processed data resulting from the lotusProcessor as input and uploads it on https://lotus.naturalproducts.net. The repository is not part of the main GitHub group as it benefits from already established pipelines developed by CS and MS. The website allows searches from different points of view, complemented with taxonomies for both the chemical and biological sides. Many chemical molecular properties and molecular descriptors that otherwise are unavailable in Wikidata are also provided.

#### Code freezing

All repository hyperlinks in the manuscript point to the main branches by default. The links contain all programs and code and will eventually be updated to a publication branch using modifications resulting from the peer-reviewing process. As the code evolves, readers are invited to refer to the main branch of each repository for the most up-to-date code. A frozen version (2021-12-23) of all programs and code is also available in the LOTUS Zenodo community (5802107 107 Rutz et al.2021, 5802113 9 Bisson et al.2021, and 5802120 122 Sorokina et al.2021).

### Programs and packages

#### R

The R versions used for the project were 4.0.2 up to 4.1.2, and R-packages used were, in alphabetical order: ChemmineR (3.42.1) 16 Cao et al.2008, chorddiag (0.1.3) 34 Flor 2020, ClassyfireR (0.3.6) 29 Djoumbou Feunang et al.2016, data.table (1.14.2) 30 Dowle and Srinivasan 2020, DBI (1.1.1) 140 Wickham and Müller 2021, gdata (2.18.0) 134 Warnes et al.2017, ggalluvial (0.12.3) 12 Brunson 2020, ggfittext (0.9.1) 141 Wilkins 2020, ggnewscale (0.4.5) 14 Campitelli 2021, ggraph (2.0.5) 87 Pedersen 2020, ggstar (1.0.2) 146 Xu 2021, ggtree (3.2.0) 149 Yu 2017, ggtreeExtra (1.4.0) 147 Xu et al.2021, jsonlite (1.7.2) 86 Ooms 2014, pbmcapply (1.5.0) 68 Kuang et al.2019, plotly (4.10.0) 117 Sievert 2020, rcrossref(1.1.0.99) 18 Chamberlain et al.2020, readxl (1.3.1) 136 Wickham 2018, rentrez (1.2.3) 144 Winter 2017, rotl (3.0.11) 78 Michonneau et al.2016, rvest (1.0.2) 138 Wickham 2020, splitstackshape (1.4.8) 75 Mahto 2019, RSQLite (2.2.8) 81 Müller et al.2021, stringdist (0.9.8) 72 Loo 2014, stringi (1.7.6) 35 Gagolewski 2020, tidyverse (1.3.1) 137 Wickham et al.2019, treeio (1.18.0) 133 Wang et al.2020, UpSetR (1.4.0)37 Gehlenborg 2019, webchem (1.1.1) 123 Szöcs et al.2020, XML (3.99--0.8) 69 Lang 2020, xml2 (1.3.3) 139 Wickham and Hester 2020.

#### Python

The Python version used was 3.7.12 up to 3.9.7, and the Python packages utilized were, in alphabetical order: cmcrameri (1.4) 25 Crameri 2021 24 Crameri et al.2020, faerun (0.3.20) 91 Probst and Reymond 2018, map4 (1.0) 17 Capecchi et al.2020, matplotlib (3.5.0) 53 Hunter 2007, Molvs (0.1.1), pandas (1.3.4) 96 Reback et al.2020, rdkit (2021.09.2) 95 RDKit 2021, scipy (1.7.3) 130 Virtanen et al.2020, tmap (1.0.4) 93 Probst and Reymond 2020.

#### Kotlin

Kotlin packages used were as follows: Common: Kotlin 1.4.21 up to 1.6.0, Univocity 2.9.1, OpenJDK 15, Kotlin serialization 1.3.1, konnector 0.1.34, Log4J 2.14.1 Wikidata Importer Bot:, wdkt 0.12.1, CDK 2.5 143 Willighagen et al.2017, RDF4J 3.7.4, Ktor 1.6.5, KotlinXCli 0.3.3, Wikidata data processing: Shadow 5.0.0 Quality control and testing: Ktlint 10.2.0, Kotlinter 3.3.0, Detekt 1.15.0, Ben Mane's version plugin 0.36.0, Junit 5.8.1.

#### Additional executable files

GNFinder v.0.16.3, GNVerifier v.0.6.1, OPSIN v.2.5.0 73 Lowe et al.2011.

### Data availability

A snapshot of the obtained data at the time of re-submission (2021-12-20) is available at the following Zenodo community: https://zenodo.org/communities/the-lotus-initiative(https://zenodo.org/communities/the-lotu -initiative) and related record: 5793224 106 Rutz et al.2021, 5794107 104 Rutz et al.2021, 5794597 103 Rutz et al.2021, 5801816 100 Rutz 2021. The https://lotus.nprod.net website is intended to gather news and features related to the LOTUS initiative in the future.

## References

1. 1. FM Afendi
   2. T Okada
   3. M Yamazaki
   4. A Hirai-Morita
   5. Y Nakamura
   6. K Nakamura
   7. S Ikeda
   8. H Takahashi
   9. M Altaf-Ul-Amin
   10. LK Darusman
   11. K Saito
   12. S Kanaya
   2012 KNApSAcK family databases: integrated metabolite-plant species databases for multifaceted plant research 53 Plant & Cell Physiology
2. 1. D Agosti
   2. NF Johnson
   2002 Taxonomists need better access to published data 417 Nature
3. 1. All natural
   2007 All natural 3 Nature Chemical Biology
4. 1. PM Allard
   2. J Bisson
   3. A Azzollini
   4. GF Pauli
   5. GA Cordell
   6. JL Wolfender
   2018 Pharmacognosy in the digital era: shifting to contextualized metabolomics 54 Current Opinion in Biotechnology 57 64
5. 1. PM Allard
   2. J Bisson
   3. A Rutz
   2021 ISDB: In Silico Spectral Databases of Natural Products https://doi.org/10.5281/zenodo.5607264
6. 1. S Balietti
   2. M Mäs
   3. D Helbing
   2015 On disciplinary fragmentation and scientific progress 10 PLOS ONE
7. 1. J Bisson
   2. C Simmler
   3. SN Chen
   4. J Friesen
   5. DC Lankin
   6. JB McAlpine
   7. GF Pauli
   2016 Dissemination of original NMR data enhances reproducibility and integrity in chemical research 33 Natural Product Reports 1028 1033
8. 1. J Bisson
   2. JB McAlpine
   3. JB Friesen
   4. SN Chen
   5. J Graham
   6. GF Pauli
   2016 Can Invalid Bioactives Undermine Natural Product-Based Drug Discovery?59 Journal of Medicinal Chemistry 1671 1690
9. 1. J Bisson
   2. A Rutz
   3. P Allard
   2021 lotusnprod/lotus-wikidata-interact https://doi.org/10.5281/zenodo.5802113
10. 1. E Blomqvist
    2. K Hose
    3. H Paulheim
    4. A Ławrynowicz
    5. F Ciravegna
    6. O Hartig
    2017 The Semantic Web: ESWC 2017 Satellite Events Springer
11. 1. J Boonen
    2. A Bronselaer
    3. J Nielandt
    4. L Veryser
    5. G De Tré
    6. B De Spiegeleer
    2012 Alkamid database: Chemistry, occurrence and functionality of plant N-alkylamides 142 Journal of Ethnopharmacology 563 590
12. 1. J Brunson
    2020 ggalluvial: Layered Grammar for Alluvial Plots 5 Journal of Open Source Software
13. 1. AK Campbell
    2003 Save those molecules! Molecular biodiversity and life*40 Journal of Applied Ecology 193 203
14. 1. E Campitelli
    2021 ggnewscale: Multiple fill and colour scales in ’ggplot2 https://CRAN.R-project.org/package=ggnewscale
15. 1. A de Candolle
    1816 Essai Sur Les Propriâetâes Mâedicales Des Plantes, Comparâees Avec Leurs Formes Extâerieures et Leur Classification Naturelle /Biodiversity Heritage Library
16. 1. Y Cao
    2. A Charisi
    3. LC Cheng
    4. T Jiang
    5. T Girke
    2008 ChemmineR: a compound mining framework for R 24 Bioinformatics (Oxford, England)1733 1734
17. 1. A Capecchi
    2. D Probst
    3. J-L Reymond
    2020 One molecular fingerprint to rule them all: drugs, biomolecules, and the metabolome 12 Journal of Cheminformatics
18. 1. S Chamberlain
    2. H Zhu
    3. N Jahn
    4. C Boettiger
    5. K Ram
    2020 rcrossref: Client for Various “CrossRef” “APIs.”https://CRAN.R-project.org/package=rcrossref
19. 1. H Choi
    2. SY Cho
    3. HJ Pak
    4. Y Kim
    5. J-Y Choi
    6. YJ Lee
    7. BH Gong
    8. YS Kang
    9. T Han
    10. G Choi
    11. Y Cho
    12. S Lee
    13. D Ryoo
    14. H Park
    2017 NPCARE: database of natural products and fractional extracts for cancer regulation 9 Journal of Cheminformatics
20. 1. GA Cordell
    2017 Cognate and cognitive ecopharmacognosy — in an anthropogenic era 20 Phytochemistry Letters 540 549
21. 1. GA Cordell
    2017 Sixty Challenges – A 2030 Perspective on Natural Products and Medicines Security 12 Natural Product Communications
22. 1. H Cousijn
    2. A Kenall
    3. E Ganley
    4. M Harrison
    5. D Kernohan
    6. T Lemberger
    7. F Murphy
    8. P Polischuk
    9. S Taylor
    10. M Martone
    11. T Clark
    2018 A data citation roadmap for scientific publishers 5 Scientific Data
23. 1. H Cousijn
    2. P Feeney
    3. D Lowenberg
    4. E Presani
    5. N Simons
    2019 Bringing Citations and Usage Metrics Together to Make Data Count 18 Data Science Journal
24. 1. F Crameri
    2. GE Shephard
    3. PJ Heron
    2020 The misuse of colour in science communication 11 Nature Communications
25. 1. F Crameri
    2021 Scientific colour map https://doi.org/10.5281/zenodo.1243862
26. 1. GJ Davis
    2. AR Vasanthi
    2011 Seaweed metabolite database (SWMD): A database of natural compounds from marine algae 5 Bioinformation 361 364
27. 1. E Defossez
    2. C Pitteloud
    3. P Descombes
    4. G Glauser
    5. PM Allard
    6. TWN Walker
    7. P Fernandez-Conradi
    8. JL Wolfender
    9. L Pellissier
    10. S Rasmann
    2021 Spatial and evolutionary predictability of phytochemical diversity 118 PNAS
28. 1. S Derese
    2. A Ndakala
    3. M Rogo
    4. C Maynim
    5. J Oyim
    2019 Mitishamba database: a web based in silico database of natural products from Kenya plants University of Nairobi
29. 1. Y Djoumbou Feunang
    2. R Eisner
    3. C Knox
    4. L Chepelev
    5. J Hastings
    6. G Owen
    7. E Fahy
    8. C Steinbeck
    9. S Subramanian
    10. E Bolton
    11. R Greiner
    12. DS Wishart
    2016 ClassyFire: automated chemical classification with a comprehensive, computable taxonomy 8 Journal of Cheminformatics
30. 1. M Dowle
    2. A Srinivasan
    2020 data.table: Extension of “data.frame.”https://CRAN.R-project.org/package=data.table
31. 1. F Ducarme
    2. D Couvet
    2020 What does ‘nature’ mean?6 Palgrave Communications
32. 1. K Dührkop
    2. L-F Nothias
    3. M Fleischauer
    4. R Reher
    5. M Ludwig
    6. MA Hoffmann
    7. D Petras
    8. WH Gerwick
    9. J Rousu
    10. PC Dorrestein
    11. S Böcker
    2021 Systematic classification of unknown metabolites using high-resolution fragmentation mass spectra 39 Nature Biotechnology 462 471
33. 1. RD Finn
    2. PP Gardner
    3. A Bateman
    2012 Making your database available through Wikipedia: the pros and cons 40 Nucleic Acids Research
34. 1. M Flor
    2020 chorddiag: Interactive Chord Diagrams http://github.com/mattflor/chorddiag/
35. 1. M Gagolewski
    2020 stringi: Character String Processing Facilities https://cran.r-project.org/web/packages/stringi/index.html
36. 1. GBIF
    2020 GBIF https://www.gbif.org
37. 1. N Gehlenborg
    2019 UpSetR: A More Scalable Alternative to Venn and Euler Diagrams for Visualizing Intersecting Sets https://CRAN.R-project.org/package=UpSetR
38. 1. F Giacomoni
    2. A Silva
    3. M Bronze
    4. C Gladine
    5. RK Peter Hollman
    6. DL Yanwen
    7. P Micheau
    8. MC Santos
    9. B Pavot
    10. G Schmidt
    11. C Morand
    12. MU Sarda
    13. N Vazquez Manjarrez
    14. MA Verny
    15. W Wiczkowski
    16. C Knox
    17. C Manach
    2017 PhytoHub, an online platform to gather expert knowledge on polyphenols and other dietary phytochemicals https://hal.archives-ouvertes.fr/hal-01697081
39. 1. OR Gottlieb
    1982 Micromolecular Evolution, Systematics and Ecology Springer
40. 1. JG Graham
    2. NR Farnsworth
    2010 3.04 - The NAPRALERT Database as an Aid for Discovery of Novel Bioactive Compounds 3 Comprehensive Natural Products 81 94
41. 1. J Gu
    2. Y Gui
    3. L Chen
    4. G Yuan
    5. H-Z Lu
    6. X Xu
    2013 Use of natural products as chemical library for drug discovery and network pharmacology 8 PLOS ONE
42. 1. BF Günthardt
    2. J Hollender
    3. K Hungerbühler
    4. M Scheringer
    5. TD Bucheli
    2018 Comprehensive Toxic Plants-Phytotoxins Database and Its Application in Assessing Aquatic Micropollution Potential 66 Journal of Agricultural and Food Chemistry 7577 7588
43. 1. R Hatherley
    2. DK Brown
    3. TM Musyoka
    4. DL Penkler
    5. N Faya
    6. KA Lobb
    7. Ö Tastan Bishop
    2015 SANCDB: a South African natural compound database 7 Journal of Cheminformatics
44. 1. K Haug
    2. K Cochrane
    3. VC Nainala
    4. M Williams
    5. J Chang
    6. KV Jayaseelan
    7. C O’Donovan
    2020 MetaboLights: a resource evolving in response to the needs of its scientific community 48 Nucleic Acids Research
45. 1. R Hegnauer
    1986 Phytochemistry and plant taxonomy — an essay on the chemotaxonomy of higher plants 25 Phytochemistry 1519 1535
46. 1. R Hegnauer
    1986 Chemotaxonomie Der Pflanzen springer
47. 1. S Heller
    2. A McNaught
    3. S Stein
    4. D Tchekhovskoi
    5. I Pletnev
    2013 InChI - the worldwide chemical structure identifier standard 5 Journal of Cheminformatics
48. 1. M Helmy
    2. A Crits-Christoph
    3. GD Bader
    2016 Ten Simple Rules for Developing Public Biological Databases 12 PLOS Computational Biology
49. 1. DS Himmelstein
    2. V Rubinetti
    3. DR Slochower
    4. D Hu
    5. VS Malladi
    6. CS Greene
    7. A Gitter
    2019 Open collaborative writing with Manubot 15 PLOS Computational Biology
50. 1. MA Hoffmann
    2. LF Nothias
    3. M Ludwig
    4. M Fleischauer
    5. EC Gentry
    6. M Witting
    7. PC Dorrestein
    8. K Dührkop
    9. S Böcker
    2021 Assigning Confidence to Structural Annotations from Mass Spectra with COSMIC bioRxiv
51. 1. H Horai
    2. M Arita
    3. S Kanaya
    4. Y Nihei
    5. T Ikeda
    6. K Suwa
    7. Y Ojima
    8. K Tanaka
    9. S Tanaka
    10. K Aoshima
    11. Y Oda
    12. Y Kakazu
    13. M Kusano
    14. T Tohge
    15. F Matsuda
    16. Y Sawada
    17. MY Hirai
    18. H Nakanishi
    19. K Ikeda
    20. N Akimoto
    21. T Maoka
    22. H Takahashi
    23. T Ara
    24. N Sakurai
    25. H Suzuki
    26. D Shibata
    27. S Neumann
    28. T Iida
    29. K Tanaka
    30. K Funatsu
    31. F Matsuura
    32. T Soga
    33. R Taguchi
    34. K Saito
    35. T Nishioka
    2010 MassBank: a public repository for sharing mass spectral data for life sciences 45 Journal of Mass Spectrometry 703 714
52. 1. W Huang
    2. LK Brewer
    3. JW Jones
    4. AT Nguyen
    5. A Marcu
    6. DS Wishart
    7. AG Oglesby-Sherrouse
    8. MA Kane
    9. A Wilks
    2018 PAMDB: a comprehensive Pseudomonas aeruginosa metabolome database 46 Nucleic Acids Research
53. 1. JD Hunter
    2007 Matplotlib: A 2D Graphics Environment 9 Computing in Science & Engineering 90 95
54. 1. A Ibezim
    2. B Debnath
    3. F Ntie-Kang
    4. CJ Mbah
    5. NJ Nwodo
    2017 Binding of anti-Trypanosoma natural products from African flora against selected drug targets: a docking study 26 Medicinal Chemistry Research 562 579
55. 1. AK Jarmusch
    2. M Wang
    3. CM Aceves
    4. RS Advani
    5. S Aguirre
    6. AA Aksenov
    7. G Aleti
    8. AT Aron
    9. A Bauermeister
    10. S Bolleddu
    11. A Bouslimani
    12. AM Caraballo Rodriguez
    13. R Chaar
    14. R Coras
    15. EO Elijah
    16. M Ernst
    17. JM Gauglitz
    18. EC Gentry
    19. M Husband
    20. SA Jarmusch
    21. KL Jones
    22. Z Kamenik
    23. A Le Gouellec
    24. A Lu
    25. LI McCall
    26. KL McPhail
    27. MJ Meehan
    28. AV Melnik
    29. RC Menezes
    30. YA Montoya Giraldo
    31. NH Nguyen
    32. LF Nothias
    33. M Nothias-Esposito
    34. M Panitchpakdi
    35. D Petras
    36. RA Quinn
    37. N Sikora
    38. JJJ Hooft
    39. F Vargas
    40. A Vrbanac
    41. KC Weldon
    42. R Knight
    43. N Bandeira
    44. PC Dorrestein
    2020 ReDU: a framework to find and reanalyze public mass spectrometry data 17 Nature Methods 901 904
56. 1. MR Jones
    2. E Pinto
    3. MA Torres
    4. F Dörr
    5. H Mazur-Marzec
    6. K Szubert
    7. L Tartaglione
    8. C Dell’Aversano
    9. CO Miles
    10. DG Beach
    11. P McCarron
    12. K Sivonen
    13. DP Fewer
    14. J Jokela
    15. EM-L Janssen
    2021 CyanoMetDB, a comprehensive public database of secondary metabolites from cyanobacteria 196 Water Research
57. 1. PA Jose
    2. A Maharshi
    3. B Jha
    2021 Actinobacteria in natural products research: Progress and prospects 246 Microbiological Research
58. 1. SA Kautsar
    2. K Blin
    3. S Shaw
    4. JC Navarro-Muñoz
    5. BR Terlouw
    6. JJJ Hooft
    7. JA Santen
    8. V Tracanna
    9. HG Suarez Duran
    10. V Pascal Andreu
    11. N Selem-Mojica
    12. M Alanjary
    13. SL Robinson
    14. G Lund
    15. SC Epstein
    16. AC Sisto
    17. LK Charkoudian
    18. J Collemare
    19. RG Linington
    20. T Weber
    21. MH Medema
    2020 MIBiG 2.0: a repository for biosynthetic gene clusters of known function 48 Nucleic Acids Research
59. 1. A Kessler
    2. A Kalske
    2018 Plant Secondary Metabolite Diversity and Species Interactions 49 Annual Review of Ecology, Evolution, and Systematics 115 138
60. 1. SK Kim
    2. S Nam
    3. H Jang
    4. A Kim
    5. JJ Lee
    2015 TM-MC: a database of medicinal materials and chemical compounds in Northeast Asian traditional medicine 15 BMC Complementary and Alternative Medicine
61. 1. S Kim
    2. PA Thiessen
    3. EE Bolton
    4. SH Bryant
    2015 PUG-SOAP and PUG-REST: web services for programmatic access to chemical information in PubChem 43 Nucleic Acids Research
62. 1. S Kim
    2. PA Thiessen
    3. T Cheng
    4. B Yu
    5. EE Bolton
    2018 An update on PUG-REST: RESTful interface for programmatic access to PubChem 46 Nucleic Acids Research
63. 1. S Kim
    2. J Chen
    3. T Cheng
    4. A Gindulyte
    5. J He
    6. S He
    7. Q Li
    8. BA Shoemaker
    9. PA Thiessen
    10. B Yu
    11. L Zaslavsky
    12. J Zhang
    13. EE Bolton
    2019 PubChem 2019 update: improved access to chemical data 47 Nucleic Acids Research
64. 1. HW Kim
    2. M Wang
    3. CA Leber
    4. L-F Nothias
    5. R Reher
    6. KB Kang
    7. JJJ Hooft
    8. PC Dorrestein
    9. WH Gerwick
    10. GW Cottrell
    2021 NPClassifier: A Deep Neural Network-Based Structural Classification Tool for Natural Products 84 Journal of Natural Products 2795 2807
65. 1. D Klementz
    2. K Döring
    3. X Lucas
    4. KK Telukunta
    5. A Erxleben
    6. D Deubel
    7. A Erber
    8. I Santillana
    9. OS Thomas
    10. A Bechthold
    11. S Günther
    2016 StreptomeDB 2.0–an extended resource of natural products produced by streptomycetes 44 Nucleic Acids Research
66. 1. M Kratochvíl
    2. J Vondrášek
    3. J Galgonek
    2018 Sachem: a chemical cartridge for high-performance substructure search 10 Journal of Cheminformatics
67. 1. M Kratochvíl
    2. J Vondrášek
    3. J Galgonek
    2019 Interoperable chemical structure search service 11 Journal of Cheminformatics
68. 1. K Kuang
    2. Q Kong
    3. F Napolitano
    2019 pbmcapply: Tracking the Progress of Mc*pply with Progress Bar https://CRAN.R-project.org/package=pbmcapply
69. 1. DT Lang
    2020 XML: Tools for Parsing and Generating XML Within R and S-Plus https://CRAN.R-project.org/package=XML
70. 1. CJ Lee
    2. CR Sugimoto
    3. G Zhang
    4. B Cronin
    2013 Bias in peer review 64 Journal of the American Society for Information Science and Technology 2 17
71. 1. D Lin
    2. J Crabtree
    3. I Dillo
    4. RR Downs
    5. R Edmunds
    6. D Giaretta
    7. M De Giusti
    8. H L’Hours
    9. W Hugo
    10. R Jenkyns
    11. V Khodiyar
    12. ME Martone
    13. M Mokrane
    14. V Navale
    15. J Petters
    16. B Sierman
    17. DV Sokolova
    18. M Stockhause
    19. J Westbrook
    2020 The TRUST Principles for digital repositories 7 Scientific Data
72. 1. M Loo
    2014 The stringdist Package for Approximate String Matching 6 The R Journal
73. 1. DM Lowe
    2. PT Corbett
    3. P Murray-Rust
    4. RC Glen
    2011 Chemical name to structure: OPSIN, an open source solution 51 Journal of Chemical Information and Modeling 739 753
74. 1. A Madariaga-Mazón
    2. JJ Naveja
    3. JL Medina-Franco
    4. KO Noriega-Colima
    5. K Martinez-Mayorga
    2021 DiaNat-DB: a molecular database of antidiabetic compounds from medicinal plants 11 RSC Advances 5172 5178
75. 1. A Mahto
    2019 splitstackshape: Stack and Reshape Datasets After Splitting Concatenated Values https://CRAN.R-project.org/package=splitstackshape
76. 1. M Martens
    2. A Ammar
    3. A Riutta
    4. A Waagmeester
    5. DN Slenter
    6. K Hanspers
    7. R A Miller
    8. D Digles
    9. EN Lopes
    10. F Ehrhart
    11. LJ Dupuis
    12. LA Winckers
    13. SL Coort
    14. EL Willighagen
    15. CT Evelo
    16. AR Pico
    17. M Kutmon
    2021 WikiPathways: connecting communities 49 Nucleic Acids Research
77. 1. JB McAlpine
    2. S-N Chen
    3. A Kutateladze
    4. JB MacMillan
    5. G Appendino
    6. A Barison
    7. MA Beniddir
    8. MW Biavatti
    9. S Bluml
    10. A Boufridi
    11. MS Butler
    12. RJ Capon
    13. YH Choi
    14. D Coppage
    15. P Crews
    16. MT Crimmins
    17. M Csete
    18. P Dewapriya
    19. JM Egan
    20. MJ Garson
    21. G Genta-Jouve
    22. WH Gerwick
    23. H Gross
    24. MK Harper
    25. P Hermanto
    26. JM Hook
    27. L Hunter
    28. D Jeannerat
    29. N-Y Ji
    30. TA Johnson
    31. DGI Kingston
    32. H Koshino
    33. H-W Lee
    34. G Lewin
    35. J Li
    36. RG Linington
    37. M Liu
    38. KL McPhail
    39. TF Molinski
    40. BS Moore
    41. J-W Nam
    42. RP Neupane
    43. M Niemitz
    44. J-M Nuzillard
    45. NH Oberlies
    46. FMM Ocampos
    47. G Pan
    48. RJ Quinn
    49. DS Reddy
    50. J-H Renault
    51. J Rivera-Chávez
    52. W Robien
    53. CM Saunders
    54. TJ Schmidt
    55. C Seger
    56. B Shen
    57. C Steinbeck
    58. H Stuppner
    59. S Sturm
    60. O Taglialatela-Scafati
    61. DJ Tantillo
    62. R Verpoorte
    63. B-G Wang
    64. CM Williams
    65. PG Williams
    66. J Wist
    67. J-M Yue
    68. C Zhang
    69. Z Xu
    70. C Simmler
    71. DC Lankin
    72. J Bisson
    73. GF Pauli
    2019 The value of universally available raw NMR data for transparency, reproducibility, and integrity in natural product research 36 Natural Product Reports 35 107
78. 1. F Michonneau
    2. JW Brown
    3. DJ Winter
    4. R Fitzjohn
    2016 rotl: an R package to interact with the Open Tree of Life data 7 Methods in Ecology and Evolution 1476 1481
79. 1. A Mohamed
    2. G Abuoda
    3. A Ghanem
    4. Z Kaoudi
    5. A Aboulnaga
    2020 RDFFrames: Knowledge Graph Access for Machine Learning Tools https://www.wikidata.org/wiki/Q106204599
80. 1. M Mongia
    2. H Mohimani
    2021 Repository scale classification and decomposition of tandem mass spectral data 11 Scientific Reports
81. 1. K Müller
    2. H Wickham
    3. DA James
    4. S Falcon
    2021 RSQLite: “SQLite” interface for r https://CRAN.R-project.org/package=RSQLite
82. 1. P Murray-Rust
    2008 Open Data in Science 4 Nature Precedings
83. 1. HP Noteborn
    2. A Lommen
    3. RC Jagt
    4. JM Weseman
    2000 Chemical fingerprinting for the evaluation of unintended secondary metabolic changes in transgenic food crops 77 Journal of Biotechnology 103 114
84. 1. F Ntie-Kang
    2. KK Telukunta
    3. K Döring
    4. CV Simoben
    5. AF A Moumbock
    6. YI Malange
    7. LE Njume
    8. JN Yong
    9. W Sippl
    10. S Günther
    2017 NANPDB: A Resource for Natural Products from Northern African Sources 80 Journal of Natural Products 2067 2076
85. 1. LNU Nupur
    2. A Vats
    3. SK Dhanda
    4. GPS Raghava
    5. AK Pinnaka
    6. A Kumar
    2016 ProCarDB: a database of bacterial carotenoids 16 BMC Microbiology
86. 1. J Ooms
    2014 The jsonlite Package: A Practical and Consistent Mapping Between JSON Data and R Objects https://www.wikidata.org/wiki/Q106204620
87. 1. TL Pedersen
    2020 ggraph: An Implementation of Grammar of Graphics for Graphs and Networks https://CRAN.R-project.org/package=ggraph
88. 1. HH Pierce
    2. A Dev
    3. E Statham
    4. BE Bierer
    2019 Credit data generators for data reuse 570 Nature 30 32
89. 1. AC Pilon
    2. M Valli
    3. AC Dametto
    4. MEF Pinto
    5. RT Freire
    6. I Castro-Gamboa
    7. AD Andricopulo
    8. VS Bolzani
    2017 NuBBEDB: an updated database to uncover chemical and biological information from Brazilian biodiversity 7 Scientific Reports
90. 1. BA Pilón-Jiménez
    2. FI Saldívar-González
    3. BI Díaz-Eufracio
    4. JL Medina-Franco
    2019 BIOFACQUIM: A Mexican Compound Database of Natural Products 9 Biomolecules
91. 1. D Probst
    2. JL Reymond
    2018 FUn: a framework for interactive visualizations of large, high-dimensional datasets on the web 34 Bioinformatics (Oxford, England)1433 1435
92. 1. D Probst
    2. JL Reymond
    2018 SmilesDrawer: Parsing and Drawing SMILES-Encoded Molecular Structures Using Client-Side JavaScript 58 Journal of Chemical Information and Modeling 1 7
93. 1. D Probst
    2. J-L Reymond
    2020 Visualization of very large high-dimensional data sets as minimum spanning trees 12 Journal of Cheminformatics
94. 1. L Rasberry
    2. E Willighagen
    3. F Nielsen
    4. D Mietchen
    2019 Robustifying Scholia: paving the way for knowledge discovery and research assessment through Wikidata 5 Research Ideas and Outcomes
95. 1. RDKit
    2021 RDKit: Open-source cheminformatics http://www.rdkit.org
96. 1. J Reback
    2. W McKinney
    3. J Jbrockmendel
    4. T Augspurger
    5. P Cloud
    6. S Gfyoung
    7. S Hawkins
    8. M Roeschke
    2020 pandas-dev/pandas: Pandas https://doi.org/10.5281/zenodo.4161697
97. 1. JA Rees
    2. K Cranston
    2017 Automated assembly of a reference taxonomy for phylogenetic data synthesis 10 Biodiversity Data Journal
98. 1. JA Rothwell
    2. J Perez-Jimenez
    3. V Neveu
    4. A Medina-Remón
    5. N M’hiri
    6. P García-Lobato
    7. C Manach
    8. C Knox
    9. R Eisner
    10. DS Wishart
    11. A Scalbert
    2013 Phenol-Explorer 3.0: a major update of the Phenol-Explorer database to incorporate data on the effects of food processing on polyphenol content 2013 Database
99. 1. A Rutz
    2. M Dounoue-Kubo
    3. S Ollivier
    4. J Bisson
    5. M Bagheri
    6. T Saesong
    7. SN Ebrahimi
    8. K Ingkaninan
    9. J-L Wolfender
    10. P-M Allard
    2019 Taxonomically Informed Scoring Enhances Confidence in Natural Products Annotation 10 Frontiers in Plant Science
100. 1. A Rutz
     2021 The LOTUS Initiative for Open Natural Products Research: custom dictionaries https://doi.org/10.5281/zenodo.5801816
101. 1. A Rutz
     2. A Gaudry
     2021 The LOTUS Initiative for Open Natural Products Research: TMAP https://doi.org/10.5281/zenodo.5801807
102. 1. A Rutz
     2. J Bisson
     3. PM Allard
     2021 The LOTUS Initiative for Open Natural Products Research: biological and chemical trees https://doi.org/10.5281/zenodo.5794106
103. 1. A Rutz
     2. J Bisson
     3. PM Allard
     2021 The LOTUS Initiative for Open Natural Products Research: waste to recycle https://doi.org/10.5281/zenodo.5794597
104. 1. A Rutz
     2. J Bisson
     3. PM Allard
     2021 The LOTUS Initiative for Open Natural Products Research: frozen dataset union wikidata https://doi.org/10.5281/zenodo.5794107
105. 1. A Rutz
     2. J Bisson
     3. PM Allard
     4. W Community
     2021 The LOTUS Initiative for Open Natural Products Research: wikidata query results https://doi.org/10.5281/zenodo.5668854
106. 1. A Rutz
     2. J Bisson
     3. PM Allard
     4. W Community
     2021 The LOTUS Initiative for Open Natural Products Research: wikidata query results https://doi.org/10.5281/zenodo.5793224
107. 1. A Rutz
     2. J Bisson
     3. PM Allard
     4. W Gaudry
     2021 lotusnprod/lotus-processor https://doi.org/10.5281/zenodo.5802107
108. 1. A Rutz
     2022 The LOTUS Initiative https://archive.softwareheritage.org/swh:1:dir:06f92b6efba0c694b9ff259ee9406c8269a9bc3f;origin=https://github.com/lotusnprod/lotus-processor;visit=swh:1:snp:816d6826154073ce81ea66e18893029abb53a8e9;anchor=swh:1:rev:78e6065d8eb9d0b0d11c2ea8de6ac66b445bca0e
109. 1. A Rutz
     2022 LOTUS web https://archive.softwareheritage.org/swh:1:dir:b00de761fdb113deab6cad0143190006edd0181f;origin=https://github.com/lotusnprod/lotus-web;visit=swh:1:snp:aa23783a4ecd32578845345e497259a5fdd78a0c;anchor=swh:1:rev:278a5ab82389ebd5df720b1876a1724d15937644
110. 1. A Rutz
     2022 Wikidata interactions for the LOTUS Initiative https://archive.softwareheritage.org/swh:1:dir:3c6e7a6d7c939a4ae63ef03a039bd843839ac34f;origin=https://github.com/lotusnprod/lotus-wikidata-interact;visit=swh:1:snp:86ac8009d72baef9426fe2d7cc55fe980e4d3b78;anchor=swh:1:rev:92d19b8995a69f5bba39f438172ba425fdcc0f28
111. 1. K Saikkonen
     2. P Wäli
     3. M Helander
     4. SH Faeth
     2004 Evolution of endophyte-plant symbioses 9 Trends in Plant Science 275 280
112. 1. T Sander
     2. J Freyss
     3. M Korff
     4. C Rufener
     2015 DataWarrior: an open-source program for chemistry aware data visualization and analysis 55 Journal of Chemical Information and Modeling 460 473
113. 1. Y Sawada
     2. R Nakabayashi
     3. Y Yamada
     4. M Suzuki
     5. M Sato
     6. A Sakata
     7. K Akiyama
     8. T Sakurai
     9. F Matsuda
     10. T Aoki
     11. MY Hirai
     12. K Saito
     2012 RIKEN tandem mass spectral database (ReSpect) for phytochemicals: a plant-specific MS/MS-based data resource and database 82 Phytochemistry 38 45
114. 1. BE Sedio
     2017 Recent breakthroughs in metabolomics promise to reveal the cryptic chemical traits that mediate plant community composition, character evolution and lineage diversification 214 The New Phytologist 952 958
115. 1. A Sharma
     2. P Dutta
     3. M Sharma
     4. NK Rajput
     5. B Dodiya
     6. JJ Georrge
     7. T Kholia
     8. A Bhardwaj
     9. OSDD Consortium
     2014 BioPhytMol: a drug discovery community resource on anti-mycobacterial phytomolecules and plant extracts 6 Journal of Cheminformatics
116. 1. Y Shinbo
     2. Y Nakamura
     3. M Altaf-Ul-Amin
     4. H Asahi
     5. K Kurokawa
     6. M Arita
     7. K Saito
     8. D Ohta
     9. D Shibata
     10. S Kanaya
     2006 Plant Metabolomics Springer
117. 1. C Sievert
     2020 Interactive Web-Based Data Visualization with R, Plotly, and Shiny Chapman and Hall/CRC
118. 1. DN Slenter
     2. M Kutmon
     3. K Hanspers
     4. A Riutta
     5. J Windsor
     6. N Nunes
     7. J Mélius
     8. E Cirillo
     9. SL Coort
     10. D Digles
     11. F Ehrhart
     12. P Giesbertz
     13. M Kalafati
     14. M Martens
     15. R Miller
     16. K Nishida
     17. L Rieswijk
     18. A Waagmeester
     19. LMT Eijssen
     20. CT Evelo
     21. AR Pico
     22. EL Willighagen
     2018 WikiPathways: a multifaceted pathway database bridging metabolomics to other omics research 46 Nucleic Acids Research
119. 1. M Sorokina
     2. C Steinbeck
     2020 COCONUT: the COlleCtion of Open NatUral producTs https://doi.org/10.5281/zenodo.3778405
120. 1. M Sorokina
     2. C Steinbeck
     2020 Review on natural products databases: where to find data in 2020 12 Journal of Cheminformatics
121. 1. M Sorokina
     2. P Merseburger
     3. K Rajan
     4. MA Yirik
     5. C Steinbeck
     2021 COCONUT online: Collection of Open Natural Products database 13 Journal of Cheminformatics
122. 1. M Sorokina
     2. A Rutz
     3. W Renovate
     4. E Willighagen
     2021 Imgbot. lotusnprod/lotus https://doi.org/10.5281/zenodo.5802120
123. 1. E Szöcs
     2. T Stirling
     3. ER Scott
     4. A Scharmüller
     5. RB Schäfer
     2020 webchem: An R Package to Retrieve Chemical Information from the Web 10 Journal of Statistical Software
124. 1. NG Taylor
     2. AM Dunn
     2018 Predatory impacts of alien decapod Crustacea are predicted by functional responses and explained by differences in metabolic rate 20 Biological Invasions 2821 2837
125. 1. T Tomiki
     2. T Saito
     3. M Ueki
     4. H Konno
     5. T Asaoka
     6. R Suzuki
     7. M Uramoto
     8. H Kakeya
     9. H Osada
     2006 RIKEN natural products encyclopedia (RIKEN NPEdia) a chemical database of RIKEN natural products depository (RIKEN NPDepo
126. 1. H Tsugawa
     2018 Advances in computational metabolomics and databases deepen the understanding of metabolisms 54 Current Opinion in Biotechnology 10 17
127. 1. U.S. Department of Agriculture
     1992 Dr. Duke’s Phytochemical and Ethnobotanical Databases https://phytochem.nal.usda.gov/
128. 1. JA Santen
     2. G Jacob
     3. AL Singh
     4. V Aniebok
     5. MJ Balunas
     6. D Bunsko
     7. FC Neto
     8. L Castaño-Espriu
     9. C Chang
     10. TN Clark
     11. JL Cleary Little
     12. DA Delgadillo
     13. PC Dorrestein
     14. KR Duncan
     15. JM Egan
     16. MM Galey
     17. FPJ Haeckl
     18. A Hua
     19. AH Hughes
     20. D Iskakova
     21. A Khadilkar
     22. J-H Lee
     23. S Lee
     24. N LeGrow
     25. DY Liu
     26. JM Macho
     27. CS McCaughey
     28. MH Medema
     29. RP Neupane
     30. TJ O’Donnell
     31. JS Paula
     32. LM Sanchez
     33. AF Shaikh
     34. S Soldatou
     35. BR Terlouw
     36. TA Tran
     37. M Valentine
     38. JJJ Hooft
     39. DA Vo
     40. M Wang
     41. D Wilson
     42. KE Zink
     43. RG Linington
     2019 The Natural Products Atlas: An Open Access Knowledge Base for Microbial Natural Products Discovery 5 ACS Central Science 1824 1833
129. 1. JA Santen
     2. EF Poynton
     3. D Iskakova
     4. E McMann
     5. TA Alsup
     6. TN Clark
     7. CH Fergusson
     8. DP Fewer
     9. AH Hughes
     10. CA McCadden
     11. J Parra
     12. S Soldatou
     13. JD Rudolf
     14. EM-L Janssen
     15. KR Duncan
     16. RG Linington
     2022 The Natural Products Atlas 2.0: a database of microbially-derived natural products 50 Nucleic Acids Research
130. 1. P Virtanen
     2. R Gommers
     3. TE Oliphant
     4. M Haberland
     5. T Reddy
     6. D Cournapeau
     7. E Burovski
     8. P Peterson
     9. W Weckesser
     10. J Bright
     11. SJ Walt
     12. M Brett
     13. J Wilson
     14. KJ Millman
     15. N Mayorov
     16. ARJ Nelson
     17. E Jones
     18. R Kern
     19. E Larson
     20. CJ Carey
     21. İ Polat
     22. Y Feng
     23. EW Moore
     24. J VanderPlas
     25. D Laxalde
     26. J Perktold
     27. R Cimrman
     28. I Henriksen
     29. EA Quintero
     30. CR Harris
     31. AM Archibald
     32. AH Ribeiro
     33. F Pedregosa
     34. P Mulbregt
     35. SciPy 1.0 Contributors
     2020 SciPy 1.0: fundamental algorithms for scientific computing in Python 17 Nature Methods 261 272
131. 1. A Waagmeester
     2. G Stupp
     3. S Burgstaller-Muehlbacher
     4. BM Good
     5. M Griffith
     6. OL Griffith
     7. K Hanspers
     8. H Hermjakob
     9. TS Hudson
     10. K Hybiske
     11. SM Keating
     12. M Manske
     13. M Mayers
     14. D Mietchen
     15. E Mitraka
     16. AR Pico
     17. T Putman
     18. A Riutta
     19. N Queralt-Rosinach
     20. LM Schriml
     21. T Shafee
     22. D Slenter
     23. R Stephan
     24. K Thornton
     25. G Tsueng
     26. R Tu
     27. S Ul-Hasan
     28. E Willighagen
     29. C Wu
     30. AI Su
     2020 Wikidata as a knowledge graph for the life sciences 9 eLife
132. 1. Wakankenaku
     2020 WAKANKENSAKU https://wakankensaku.inm.u-toyama.ac.jp/wiki/Main_Page
133. 1. L-G Wang
     2. TT-Y Lam
     3. S Xu
     4. Z Dai
     5. L Zhou
     6. T Feng
     7. P Guo
     8. CW Dunn
     9. BR Jones
     10. T Bradley
     11. H Zhu
     12. Y Guan
     13. Y Jiang
     14. G Yu
     2020 Treeio: An R Package for Phylogenetic Tree Input and Output with Richly Annotated and Associated Data 37 Molecular Biology and Evolution 599 603
134. 1. GR Warnes
     2. B Bolker
     3. G Gorjanc
     4. G Grothendieck
     5. A Korosec
     6. T Lumley
     7. D MacQueen
     8. A Magnusson
     2017 gdata: Various r programming tools for data manipulation https://CRAN.R-project.org/package=gdata
135. 1. D Weininger
     1988 SMILES, a chemical language and information system. 1. Introduction to methodology and encoding rules 28 Journal of Chemical Information and Modeling 31 36
136. 1. H Wickham
     2018 readxl: Read Excel Files https://CRAN.R-project.org/package=readxl
137. 1. H Wickham
     2. M Averick
     3. J Bryan
     4. W Chang
     5. L McGowan
     6. R François
     7. G Grolemund
     8. A Hayes
     9. L Henry
     10. J Hester
     11. M Kuhn
     12. T Pedersen
     13. E Miller
     14. S Bache
     15. K Müller
     16. J Ooms
     17. D Robinson
     18. D Seidel
     19. V Spinu
     20. K Takahashi
     21. D Vaughan
     22. C Wilke
     23. K Woo
     24. H Yutani
     2019 Welcome to the Tidyverse 4 Journal of Open Source Software
138. 1. H Wickham
     2020 rvest: Easily Harvest (Scrape) Web Pages https://CRAN.R-project.org/package=rvest
139. 1. H Wickham
     2. J Hester
     2020 Jeroen Ooms. xml2 https://CRAN.R-project.org/package=xml2
140. 1. H Wickham
     2. K Müller
     2021 DBI: R database interface R Special Interest Group on Databases https://CRAN.R-project.org/package=DBI
141. 1. D Wilkins
     2020 ggfittext: Fit Text Inside a Box in ’ggplot2 https://CRAN.R-project.org/package=ggfittext
142. 1. MD Wilkinson
     2. M Dumontier
     3. IJJ Aalbersberg
     4. G Appleton
     5. M Axton
     6. A Baak
     7. N Blomberg
     8. JW Boiten
     9. LB Silva Santos
     10. PE Bourne
     11. J Bouwman
     12. AJ Brookes
     13. T Clark
     14. M Crosas
     15. I Dillo
     16. O Dumon
     17. S Edmunds
     18. CT Evelo
     19. R Finkers
     20. A Gonzalez-Beltran
     21. AJG Gray
     22. P Groth
     23. C Goble
     24. JS Grethe
     25. J Heringa
     26. PAC Hoen
     27. R Hooft
     28. T Kuhn
     29. R Kok
     30. J Kok
     31. SJ Lusher
     32. ME Martone
     33. A Mons
     34. AL Packer
     35. B Persson
     36. P Rocca-Serra
     37. M Roos
     38. R Schaik
     39. SA Sansone
     40. E Schultes
     41. T Sengstag
     42. T Slater
     43. G Strawn
     44. MA Swertz
     45. M Thompson
     46. J Lei
     47. E Mulligen
     48. J Velterop
     49. A Waagmeester
     50. P Wittenburg
     51. K Wolstencroft
     52. J Zhao
     53. B Mons
     2016 The FAIR Guiding Principles for scientific data management and stewardship 3 Scientific Data
143. 1. EL Willighagen
     2. JW Mayfield
     3. J Alvarsson
     4. A Berg
     5. L Carlsson
     6. N Jeliazkova
     7. S Kuhn
     8. T Pluskal
     9. M Rojas-Chertó
     10. O Spjuth
     11. G Torrance
     12. CT Evelo
     13. R Guha
     14. C Steinbeck
     2017 The Chemistry Development Kit (CDK) v2.0: atom typing, depiction, molecular formulas, and substructure searching 9 Journal of Cheminformatics
144. 1. D Winter
     2017 rentrez: An R package for the NCBI eUtils API 9 The R Journal
145. 1. G Wohlgemuth
     2. PK Haldiya
     3. E Willighagen
     4. T Kind
     5. O Fiehn
     2010 The Chemical Translation Service–a web-based tool to improve standardization of metabolomic reports 26 Bioinformatics (Oxford, England)2647 2648
146. 1. S Xu
     2021 ggstar: Star Layer for ’ggplot2 https://CRAN.R-project.org/package=ggstar
147. 1. S Xu
     2. Z Dai
     3. P Guo
     4. X Fu
     5. S Liu
     6. L Zhou
     7. W Tang
     8. T Feng
     9. M Chen
     10. L Zhan
     11. T Wu
     12. E Hu
     13. Y Jiang
     14. X Bo
     15. G Yu
     2021 ggtreeExtra: Compact Visualization of Richly Annotated Phylogenetic Data 38 Molecular Biology and Evolution 4039 4042
148. 1. J Yabuzaki
     2017 Carotenoids Database: structures, chemical fingerprints and distribution among organisms 2017 Database
149. 1. G Yu
     2017 ggtree: an r package for visualization and annotation of phylogenetic trees with their covariates and other associated data 8 Methods in Ecology and Evolution 28 36
150. 1. Y Yue
     2. G-X Chu
     3. X-S Liu
     4. X Tang
     5. W Wang
     6. G-J Liu
     7. T Yang
     8. T-J Ling
     9. X-G Wang
     10. Z-Z Zhang
     11. T Xia
     12. X-C Wan
     13. G-H Bao
     2014 TMDB: A literature-curated database for small molecular compounds found from tea 14 BMC Plant Biology
151. 1. X Zeng
     2. P Zhang
     3. W He
     4. C Qin
     5. S Chen
     6. L Tao
     7. Y Wang
     8. Y Tan
     9. D Gao
     10. B Wang
     11. Z Chen
     12. W Chen
     13. YY Jiang
     14. YZ Chen
     2018 NPASS: natural product activity and species source database for natural product research, discovery and tool development 46 Nucleic Acids Research
152. 1. R Zhang
     2. J Lin
     3. Y Zou
     4. X-J Zhang
     5. W-L Xiao
     2019 Chemical Space and Biological Target Network of Anti-Inflammatory Natural Products 59 Journal of Chemical Information and Modeling 66 73
153. 1. W-Y Zhao
     2. J Yi
     3. Y-B Chang
     4. C-P Sun
     5. X-C Ma
     2022 Recent studies on terpenoids in Aspergillus fungi: Chemical diversity, biosynthesis, and bioactivity 193 Phytochemistry