The LOTUS initiative for open knowledge management in natural products research
- AdrianoRutz11
- MariaSorokina2
- JakubGalgonek3
- DanielMietchen456
- EgonWillighagen7
- ArnaudGaudry11
- JamesGGraham88
- RalfStephan9
- RodericPage10
- JiříVondrášek3
- ChristophSteinbeck2
- GuidoFPauli88
- Jean-LucWolfender11
- JonathanBisson[email protected]88
- Pierre-MarieAllard[email protected]1111
- Tools and Resources
- Computational and Systems Biology
- Ecology
- open science
- natural products
- Wikidata
- knowledge graph
- linked data
- LOTUS Initiative
- Other
- publisher-id70780
- doi10.7554/eLife.70780
- elocation-ide70780
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 . 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.https://lotus.naturalproducts.net
null
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 31Ducarme and Couvet2020; 3All natural2007. 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 126Tsugawa2018. 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 70Lee 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 6Balietti et al.2015. To this extent, contemporary bioinformatic tools enable the (re-)interpretation and (re-)annotation of (existing) datasets documenting molecular aspects of biodiversity 80Mongia and Mohimani202155Jarmusch et al.2020.
While large, well-structured and freely accessible DB exist, they are often concerned primarily with chemical structures (e.g. PubChem63Kim et al.2019, with over 100 M entries) or biological organisms (e.g. GBIF36GBIF2020, 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 KNApSAck116Shinbo et al.2006, which is likely the first public, curated electronic NP resource of referenced structure-organism pairs. KNApSAck 1Afendi 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 40Graham and Farnsworth2010, 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 NPAtlas128Santen et al.2019129Santen et al.2022 is a more recent project complying with the FAIR (Findability, Accessibility, Interoperability, and Reuse) guidelines for digital assets 142Wilkinson 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) 121Sorokina 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 48Helmy 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 33Finn 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 131Waagmeester 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 71Lin 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 99Rutz 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 27Defossez 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 13Campbell2003. 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) 135Weininger1988, International Chemical Identifier (InChI) 47Heller 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.
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.5794106102Rutz 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 119Sorokina and Steinbeck2020, as well as the following additional electronic NP resources: Dr. Duke 127U.S. Department of Agriculture1992, Cyanometdb 56Jones et al.2021, Datawarrior 112Sander et al.2015, a subset of NAPRALERT, Wakankensaku 132Wakankenaku2020 and DiaNat-DB 74Madariaga-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 Scholia10Blomqvist et al.201794Rasberry 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.5794106102Rutz 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.
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.
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.5794597103Rutz 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 2Agosti and Johnson2002. 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.56072645Allard 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) 97Rees and Cranston2017 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.5794106102Rutz 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.
{#fig3}
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.
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.5668854105Rutz 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 57Jose et al.2021; 153Zhao 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 66Kratochví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 67Kratochví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.5794106102Rutz 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 64Kim 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'.
start <- Sys.time()
library(dplyr)
library(readr)
message("Loading the LOTUS")
lotus <- readr::read_csv(file = "211220_frozen_metadata.csv.gz") |>
dplyr::mutate(structure_inchikey_2D = substring(text = structure_inchikey,
first = 1,
last = 14))
end <- Sys.time()
message("Lotus loaded in ", format(end - start))
start <- Sys.time()
library(dplyr)
library(readr)
library(splitstackshape)
TAX_LEVEL_1 <- "organism_taxonomy_01domain"
TAX_LEVEL_2 <- "organism_taxonomy_02kingdom"
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 <-
dplyr::left_join(domain_unique_organisms, 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
),
"%)"
)
)
end <- Sys.time()
message("Table calculated in ", format(end - start))
library(knitr)
domain |>
knitr::kable()
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%) |
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 83Noteborn et al.2000133Wang 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.
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 5A also shows that according to NPClassifier, the 'chemical pathway' category distribution across electronic NP resources is not conserved. Note that NPClassifier and ClassyFire 29Djoumbou 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 93Probst and Reymond2020. Using Faerun, an interactive HTML file is generated to display metadata and molecule structures by embedding the SmilesDrawer library 91Probst and Reymond201892Probst and Reymond2018. Planar structures were used for all compounds to generate the TMAP (chemical space tree-map) using MAP4 encoding 17Capecchi 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.
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 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) 39Gottlieb198245Hegnauer198615Candolle1816. Six decades after Hegnauer's publication of 'Die Chemotaxonomie der Pflanzen' 46Hegnauer1986 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 32Dü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 58Kautsar 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 111Saikkonen 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 8Bisson 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 7Bisson 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 82Murray-Rust2008. 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 77McAlpine 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 23Cousijn et al.201922Cousijn et al.201888Pierce et al.2019. The introduction of LOTUS provides here a new opportunity to advance the FAIR guiding principles for scientific data management and stewardship 142Wilkinson 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 51Horai et al.2010 and SPLASH 145Wohlgemuth 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 99Rutz et al.2019. Alternative approaches linking structural annotation to biological organisms have also shown substantial improvements 50Hoffmann 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 76Martens et al.2021118Slenter et al.2018.
In the field of ecology, molecular traits are gaining increased attention 59Kessler and Kalske2018114Sedio2017124Taylor and Dunn2018. 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' 27Defossez 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 4Allard et al.201820Cordell201721Cordell2017. 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 131Waagmeester et al.202066Kratochvíl et al.2018. The development of interfaces such as RDFFrames 79Mohamed 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
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, 108Rutz2022) | Archived at https://doi.org/10.5281/zenodo.5802107 | |
Software, algorithm | Lotus-web code | This work (https://github.com/lotusnprod/lotus-web, 109Rutz2022) | Archived at https://doi.org/10.5281/zenodo.5802119 | |
Software, algorithm | Lotus-wikidata-interact code | This work (https://github.com/lotusnprod/lotus-wikidata-interact, 110Rutz2022) | 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 95RDKit2021 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 OPSIN73Lowe 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 62Kim et al.201861Kim 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 29Djoumbou 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.5801816100Rutz2021) 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.5801816100Rutz2021). Careful attention was given to the Latin genitive translations and custom dictionaries were written (see https://doi.org/10.5281/zenodo.5801816100Rutz2021). Organ names of the producing organism were removed to avoid wrong translation (see https://doi.org/10.5281/zenodo.5801816100Rutz2021). 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 78Michonneau 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.
ReferenceThe Rcrossref package 18Chamberlain 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 entrez_summary function of the rentrez package 144Winter2017. 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--30 H,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:
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 121Sorokina 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.5794106102Rutz 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.5794106102Rutz 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, 108Rutz2022). 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, 110Rutz2022). 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, 109Rutz2022). 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 (5802107107Rutz et al.2021, 58021139Bisson et al.2021, and 5802120122Sorokina 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) 16Cao et al.2008, chorddiag (0.1.3) 34Flor2020, ClassyfireR (0.3.6) 29Djoumbou Feunang et al.2016, data.table (1.14.2) 30Dowle and Srinivasan2020, DBI (1.1.1) 140Wickham and Müller2021, gdata (2.18.0) 134Warnes et al.2017, ggalluvial (0.12.3) 12Brunson2020, ggfittext (0.9.1) 141Wilkins2020, ggnewscale (0.4.5) 14Campitelli2021, ggraph (2.0.5) 87Pedersen2020, ggstar (1.0.2) 146Xu2021, ggtree (3.2.0) 149Yu2017, ggtreeExtra (1.4.0) 147Xu et al.2021, jsonlite (1.7.2) 86Ooms2014, pbmcapply (1.5.0) 68Kuang et al.2019, plotly (4.10.0) 117Sievert2020, rcrossref(1.1.0.99) 18Chamberlain et al.2020, readxl (1.3.1) 136Wickham2018, rentrez (1.2.3) 144Winter2017, rotl (3.0.11) 78Michonneau et al.2016, rvest (1.0.2) 138Wickham2020, splitstackshape (1.4.8) 75Mahto2019, RSQLite (2.2.8) 81Müller et al.2021, stringdist (0.9.8) 72Loo2014, stringi (1.7.6) 35Gagolewski2020, tidyverse (1.3.1) 137Wickham et al.2019, treeio (1.18.0) 133Wang et al.2020, UpSetR (1.4.0) 37Gehlenborg2019, webchem (1.1.1) 123Szöcs et al.2020, XML (3.99--0.8) 69Lang2020, xml2 (1.3.3) 139Wickham and Hester2020.
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) 25Crameri202124Crameri et al.2020, faerun (0.3.20) 91Probst and Reymond2018, map4 (1.0) 17Capecchi et al.2020, matplotlib (3.5.0) 53Hunter2007, Molvs (0.1.1), pandas (1.3.4) 96Reback et al.2020, rdkit (2021.09.2) 95RDKit2021, scipy (1.7.3) 130Virtanen et al.2020, tmap (1.0.4) 93Probst and Reymond2020.
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 143Willighagen 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 73Lowe 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 and related record: 5793224106Rutz et al.2021, 5794107104Rutz et al.2021, 5794597103Rutz et al.2021, 5801816100Rutz2021. The https://lotus.nprod.net website is intended to gather news and features related to the LOTUS initiative in the future.
References
- FMAfendi
- TOkada
- MYamazaki
- AHirai-Morita
- YNakamura
- KNakamura
- SIkeda
- HTakahashi
- MAltaf-Ul-Amin
- LKDarusman
- KSaito
- SKanaya
- DAgosti
- NFJohnson
- All natural
- PMAllard
- JBisson
- AAzzollini
- GFPauli
- GACordell
- JLWolfender
- PMAllard
- JBisson
- ARutz
- SBalietti
- MMäs
- DHelbing
- JBisson
- CSimmler
- SNChen
- JFriesen
- DCLankin
- JBMcAlpine
- GFPauli
- JBisson
- JBMcAlpine
- JBFriesen
- SNChen
- JGraham
- GFPauli
- JBisson
- ARutz
- PAllard
- EBlomqvist
- KHose
- HPaulheim
- AŁawrynowicz
- FCiravegna
- OHartig
- JBoonen
- ABronselaer
- JNielandt
- LVeryser
- GDe Tré
- BDe Spiegeleer
- JBrunson
- AKCampbell
- ECampitelli
- A deCandolle
- YCao
- ACharisi
- LCCheng
- TJiang
- TGirke
- ACapecchi
- DProbst
- J-LReymond
- SChamberlain
- HZhu
- NJahn
- CBoettiger
- KRam
- HChoi
- SYCho
- HJPak
- YKim
- J-YChoi
- YJLee
- BHGong
- YSKang
- THan
- GChoi
- YCho
- SLee
- DRyoo
- HPark
- GACordell
- GACordell
- HCousijn
- AKenall
- EGanley
- MHarrison
- DKernohan
- TLemberger
- FMurphy
- PPolischuk
- STaylor
- MMartone
- TClark
- HCousijn
- PFeeney
- DLowenberg
- EPresani
- NSimons
- FCrameri
- GEShephard
- PJHeron
- FCrameri
- GJDavis
- ARVasanthi
- EDefossez
- CPitteloud
- PDescombes
- GGlauser
- PMAllard
- TWNWalker
- PFernandez-Conradi
- JLWolfender
- LPellissier
- SRasmann
- SDerese
- ANdakala
- MRogo
- CMaynim
- JOyim
- YDjoumbou Feunang
- REisner
- CKnox
- LChepelev
- JHastings
- GOwen
- EFahy
- CSteinbeck
- SSubramanian
- EBolton
- RGreiner
- DSWishart
- MDowle
- ASrinivasan
- FDucarme
- DCouvet
- KDührkop
- L-FNothias
- MFleischauer
- RReher
- MLudwig
- MAHoffmann
- DPetras
- WHGerwick
- JRousu
- PCDorrestein
- SBöcker
- RDFinn
- PPGardner
- ABateman
- MFlor
- MGagolewski
- GBIF
- NGehlenborg
- FGiacomoni
- ASilva
- MBronze
- CGladine
- RKPeter Hollman
- DLYanwen
- PMicheau
- MCSantos
- BPavot
- GSchmidt
- CMorand
- MUSarda
- NVazquez Manjarrez
- MAVerny
- WWiczkowski
- CKnox
- CManach
- ORGottlieb
- JGGraham
- NRFarnsworth
- JGu
- YGui
- LChen
- GYuan
- H-ZLu
- XXu
- BFGünthardt
- JHollender
- KHungerbühler
- MScheringer
- TDBucheli
- RHatherley
- DKBrown
- TMMusyoka
- DLPenkler
- NFaya
- KALobb
- ÖTastan Bishop
- KHaug
- KCochrane
- VCNainala
- MWilliams
- JChang
- KVJayaseelan
- CO’Donovan
- RHegnauer
- RHegnauer
- SHeller
- AMcNaught
- SStein
- DTchekhovskoi
- IPletnev
- MHelmy
- ACrits-Christoph
- GDBader
- DSHimmelstein
- VRubinetti
- DRSlochower
- DHu
- VSMalladi
- CSGreene
- AGitter
- MAHoffmann
- LFNothias
- MLudwig
- MFleischauer
- ECGentry
- MWitting
- PCDorrestein
- KDührkop
- SBöcker
- HHorai
- MArita
- SKanaya
- YNihei
- TIkeda
- KSuwa
- YOjima
- KTanaka
- STanaka
- KAoshima
- YOda
- YKakazu
- MKusano
- TTohge
- FMatsuda
- YSawada
- MYHirai
- HNakanishi
- KIkeda
- NAkimoto
- TMaoka
- HTakahashi
- TAra
- NSakurai
- HSuzuki
- DShibata
- SNeumann
- TIida
- KTanaka
- KFunatsu
- FMatsuura
- TSoga
- RTaguchi
- KSaito
- TNishioka
- WHuang
- LKBrewer
- JWJones
- ATNguyen
- AMarcu
- DSWishart
- AGOglesby-Sherrouse
- MAKane
- AWilks
- JDHunter
- AIbezim
- BDebnath
- FNtie-Kang
- CJMbah
- NJNwodo
- AKJarmusch
- MWang
- CMAceves
- RSAdvani
- SAguirre
- AAAksenov
- GAleti
- ATAron
- ABauermeister
- SBolleddu
- ABouslimani
- AMCaraballo Rodriguez
- RChaar
- RCoras
- EOElijah
- MErnst
- JMGauglitz
- ECGentry
- MHusband
- SAJarmusch
- KLJones
- ZKamenik
- ALe Gouellec
- ALu
- LIMcCall
- KLMcPhail
- MJMeehan
- AVMelnik
- RCMenezes
- YAMontoya Giraldo
- NHNguyen
- LFNothias
- MNothias-Esposito
- MPanitchpakdi
- DPetras
- RAQuinn
- NSikora
- JJJHooft
- FVargas
- AVrbanac
- KCWeldon
- RKnight
- NBandeira
- PCDorrestein
- MRJones
- EPinto
- MATorres
- FDörr
- HMazur-Marzec
- KSzubert
- LTartaglione
- CDell’Aversano
- COMiles
- DGBeach
- PMcCarron
- KSivonen
- DPFewer
- JJokela
- EM-LJanssen
- PAJose
- AMaharshi
- BJha
- SAKautsar
- KBlin
- SShaw
- JCNavarro-Muñoz
- BRTerlouw
- JJJHooft
- JASanten
- VTracanna
- HGSuarez Duran
- VPascal Andreu
- NSelem-Mojica
- MAlanjary
- SLRobinson
- GLund
- SCEpstein
- ACSisto
- LKCharkoudian
- JCollemare
- RGLinington
- TWeber
- MHMedema
- AKessler
- AKalske
- SKKim
- SNam
- HJang
- AKim
- JJLee
- SKim
- PAThiessen
- EEBolton
- SHBryant
- SKim
- PAThiessen
- TCheng
- BYu
- EEBolton
- SKim
- JChen
- TCheng
- AGindulyte
- JHe
- SHe
- QLi
- BAShoemaker
- PAThiessen
- BYu
- LZaslavsky
- JZhang
- EEBolton
- HWKim
- MWang
- CALeber
- L-FNothias
- RReher
- KBKang
- JJJHooft
- PCDorrestein
- WHGerwick
- GWCottrell
- DKlementz
- KDöring
- XLucas
- KKTelukunta
- AErxleben
- DDeubel
- AErber
- ISantillana
- OSThomas
- ABechthold
- SGünther
- MKratochvíl
- JVondrášek
- JGalgonek
- MKratochvíl
- JVondrášek
- JGalgonek
- KKuang
- QKong
- FNapolitano
- DTLang
- CJLee
- CRSugimoto
- GZhang
- BCronin
- DLin
- JCrabtree
- IDillo
- RRDowns
- REdmunds
- DGiaretta
- MDe Giusti
- HL’Hours
- WHugo
- RJenkyns
- VKhodiyar
- MEMartone
- MMokrane
- VNavale
- JPetters
- BSierman
- DVSokolova
- MStockhause
- JWestbrook
- MLoo
- DMLowe
- PTCorbett
- PMurray-Rust
- RCGlen
- AMadariaga-Mazón
- JJNaveja
- JLMedina-Franco
- KONoriega-Colima
- KMartinez-Mayorga
- AMahto
- MMartens
- AAmmar
- ARiutta
- AWaagmeester
- DNSlenter
- KHanspers
- RA Miller
- DDigles
- ENLopes
- FEhrhart
- LJDupuis
- LAWinckers
- SLCoort
- ELWillighagen
- CTEvelo
- ARPico
- MKutmon
- JBMcAlpine
- S-NChen
- AKutateladze
- JBMacMillan
- GAppendino
- ABarison
- MABeniddir
- MWBiavatti
- SBluml
- ABoufridi
- MSButler
- RJCapon
- YHChoi
- DCoppage
- PCrews
- MTCrimmins
- MCsete
- PDewapriya
- JMEgan
- MJGarson
- GGenta-Jouve
- WHGerwick
- HGross
- MKHarper
- PHermanto
- JMHook
- LHunter
- DJeannerat
- N-YJi
- TAJohnson
- DGIKingston
- HKoshino
- H-WLee
- GLewin
- JLi
- RGLinington
- MLiu
- KLMcPhail
- TFMolinski
- BSMoore
- J-WNam
- RPNeupane
- MNiemitz
- J-MNuzillard
- NHOberlies
- FMMOcampos
- GPan
- RJQuinn
- DSReddy
- J-HRenault
- JRivera-Chávez
- WRobien
- CMSaunders
- TJSchmidt
- CSeger
- BShen
- CSteinbeck
- HStuppner
- SSturm
- OTaglialatela-Scafati
- DJTantillo
- RVerpoorte
- B-GWang
- CMWilliams
- PGWilliams
- JWist
- J-MYue
- CZhang
- ZXu
- CSimmler
- DCLankin
- JBisson
- GFPauli
- FMichonneau
- JWBrown
- DJWinter
- RFitzjohn
- AMohamed
- GAbuoda
- AGhanem
- ZKaoudi
- AAboulnaga
- MMongia
- HMohimani
- KMüller
- HWickham
- DAJames
- SFalcon
- PMurray-Rust
- HPNoteborn
- ALommen
- RCJagt
- JMWeseman
- FNtie-Kang
- KKTelukunta
- KDöring
- CVSimoben
- AFA Moumbock
- YIMalange
- LENjume
- JNYong
- WSippl
- SGünther
- LNUNupur
- AVats
- SKDhanda
- GPSRaghava
- AKPinnaka
- AKumar
- JOoms
- TLPedersen
- HHPierce
- ADev
- EStatham
- BEBierer
- ACPilon
- MValli
- ACDametto
- MEFPinto
- RTFreire
- ICastro-Gamboa
- ADAndricopulo
- VSBolzani
- BAPilón-Jiménez
- FISaldívar-González
- BIDíaz-Eufracio
- JLMedina-Franco
- DProbst
- JLReymond
- DProbst
- JLReymond
- DProbst
- J-LReymond
- LRasberry
- EWillighagen
- FNielsen
- DMietchen
- RDKit
- JReback
- WMcKinney
- JJbrockmendel
- TAugspurger
- PCloud
- SGfyoung
- SHawkins
- MRoeschke
- JARees
- KCranston
- JARothwell
- JPerez-Jimenez
- VNeveu
- AMedina-Remón
- NM’hiri
- PGarcía-Lobato
- CManach
- CKnox
- REisner
- DSWishart
- AScalbert
- ARutz
- MDounoue-Kubo
- SOllivier
- JBisson
- MBagheri
- TSaesong
- SNEbrahimi
- KIngkaninan
- J-LWolfender
- P-MAllard
- ARutz
- ARutz
- AGaudry
- ARutz
- JBisson
- PMAllard
- ARutz
- JBisson
- PMAllard
- ARutz
- JBisson
- PMAllard
- ARutz
- JBisson
- PMAllard
- WCommunity
- ARutz
- JBisson
- PMAllard
- WCommunity
- ARutz
- JBisson
- PMAllard
- WGaudry
- ARutz
- ARutz
- ARutz
- KSaikkonen
- PWäli
- MHelander
- SHFaeth
- TSander
- JFreyss
- MKorff
- CRufener
- YSawada
- RNakabayashi
- YYamada
- MSuzuki
- MSato
- ASakata
- KAkiyama
- TSakurai
- FMatsuda
- TAoki
- MYHirai
- KSaito
- BESedio
- ASharma
- PDutta
- MSharma
- NKRajput
- BDodiya
- JJGeorrge
- TKholia
- ABhardwaj
- OSDD Consortium
- YShinbo
- YNakamura
- MAltaf-Ul-Amin
- HAsahi
- KKurokawa
- MArita
- KSaito
- DOhta
- DShibata
- SKanaya
- CSievert
- DNSlenter
- MKutmon
- KHanspers
- ARiutta
- JWindsor
- NNunes
- JMélius
- ECirillo
- SLCoort
- DDigles
- FEhrhart
- PGiesbertz
- MKalafati
- MMartens
- RMiller
- KNishida
- LRieswijk
- AWaagmeester
- LMTEijssen
- CTEvelo
- ARPico
- ELWillighagen
- MSorokina
- CSteinbeck
- MSorokina
- CSteinbeck
- MSorokina
- PMerseburger
- KRajan
- MAYirik
- CSteinbeck
- MSorokina
- ARutz
- WRenovate
- EWillighagen
- ESzöcs
- TStirling
- ERScott
- AScharmüller
- RBSchäfer
- NGTaylor
- AMDunn
- TTomiki
- TSaito
- MUeki
- HKonno
- TAsaoka
- RSuzuki
- MUramoto
- HKakeya
- HOsada
- HTsugawa
- U.S. Department of Agriculture
- JASanten
- GJacob
- ALSingh
- VAniebok
- MJBalunas
- DBunsko
- FCNeto
- LCastaño-Espriu
- CChang
- TNClark
- JLCleary Little
- DADelgadillo
- PCDorrestein
- KRDuncan
- JMEgan
- MMGaley
- FPJHaeckl
- AHua
- AHHughes
- DIskakova
- AKhadilkar
- J-HLee
- SLee
- NLeGrow
- DYLiu
- JMMacho
- CSMcCaughey
- MHMedema
- RPNeupane
- TJO’Donnell
- JSPaula
- LMSanchez
- AFShaikh
- SSoldatou
- BRTerlouw
- TATran
- MValentine
- JJJHooft
- DAVo
- MWang
- DWilson
- KEZink
- RGLinington
- JASanten
- EFPoynton
- DIskakova
- EMcMann
- TAAlsup
- TNClark
- CHFergusson
- DPFewer
- AHHughes
- CAMcCadden
- JParra
- SSoldatou
- JDRudolf
- EM-LJanssen
- KRDuncan
- RGLinington
- PVirtanen
- RGommers
- TEOliphant
- MHaberland
- TReddy
- DCournapeau
- EBurovski
- PPeterson
- WWeckesser
- JBright
- SJWalt
- MBrett
- JWilson
- KJMillman
- NMayorov
- ARJNelson
- EJones
- RKern
- ELarson
- CJCarey
- İPolat
- YFeng
- EWMoore
- JVanderPlas
- DLaxalde
- JPerktold
- RCimrman
- IHenriksen
- EAQuintero
- CRHarris
- AMArchibald
- AHRibeiro
- FPedregosa
- PMulbregt
- SciPy 1.0 Contributors
- AWaagmeester
- GStupp
- SBurgstaller-Muehlbacher
- BMGood
- MGriffith
- OLGriffith
- KHanspers
- HHermjakob
- TSHudson
- KHybiske
- SMKeating
- MManske
- MMayers
- DMietchen
- EMitraka
- ARPico
- TPutman
- ARiutta
- NQueralt-Rosinach
- LMSchriml
- TShafee
- DSlenter
- RStephan
- KThornton
- GTsueng
- RTu
- SUl-Hasan
- EWillighagen
- CWu
- AISu
- Wakankenaku
- L-GWang
- TT-YLam
- SXu
- ZDai
- LZhou
- TFeng
- PGuo
- CWDunn
- BRJones
- TBradley
- HZhu
- YGuan
- YJiang
- GYu
- GRWarnes
- BBolker
- GGorjanc
- GGrothendieck
- AKorosec
- TLumley
- DMacQueen
- AMagnusson
- DWeininger
- HWickham
- HWickham
- MAverick
- JBryan
- WChang
- LMcGowan
- RFrançois
- GGrolemund
- AHayes
- LHenry
- JHester
- MKuhn
- TPedersen
- EMiller
- SBache
- KMüller
- JOoms
- DRobinson
- DSeidel
- VSpinu
- KTakahashi
- DVaughan
- CWilke
- KWoo
- HYutani
- HWickham
- HWickham
- JHester
- HWickham
- KMüller
- DWilkins
- MDWilkinson
- MDumontier
- IJJAalbersberg
- GAppleton
- MAxton
- ABaak
- NBlomberg
- JWBoiten
- LBSilva Santos
- PEBourne
- JBouwman
- AJBrookes
- TClark
- MCrosas
- IDillo
- ODumon
- SEdmunds
- CTEvelo
- RFinkers
- AGonzalez-Beltran
- AJGGray
- PGroth
- CGoble
- JSGrethe
- JHeringa
- PACHoen
- RHooft
- TKuhn
- RKok
- JKok
- SJLusher
- MEMartone
- AMons
- ALPacker
- BPersson
- PRocca-Serra
- MRoos
- RSchaik
- SASansone
- ESchultes
- TSengstag
- TSlater
- GStrawn
- MASwertz
- MThompson
- JLei
- EMulligen
- JVelterop
- AWaagmeester
- PWittenburg
- KWolstencroft
- JZhao
- BMons
- ELWillighagen
- JWMayfield
- JAlvarsson
- ABerg
- LCarlsson
- NJeliazkova
- SKuhn
- TPluskal
- MRojas-Chertó
- OSpjuth
- GTorrance
- CTEvelo
- RGuha
- CSteinbeck
- DWinter
- GWohlgemuth
- PKHaldiya
- EWillighagen
- TKind
- OFiehn
- SXu
- SXu
- ZDai
- PGuo
- XFu
- SLiu
- LZhou
- WTang
- TFeng
- MChen
- LZhan
- TWu
- EHu
- YJiang
- XBo
- GYu
- JYabuzaki
- GYu
- YYue
- G-XChu
- X-SLiu
- XTang
- WWang
- G-JLiu
- TYang
- T-JLing
- X-GWang
- Z-ZZhang
- TXia
- X-CWan
- G-HBao
- XZeng
- PZhang
- WHe
- CQin
- SChen
- LTao
- YWang
- YTan
- DGao
- BWang
- ZChen
- WChen
- YYJiang
- YZChen
- RZhang
- JLin
- YZou
- X-JZhang
- W-LXiao
- W-YZhao
- JYi
- Y-BChang
- C-PSun
- X-CMa