Class NCBITaxonomyReader

java.lang.Object
org.episteme.core.io.AbstractResourceReader<Species>
org.episteme.natural.biology.loaders.NCBITaxonomyReader
All Implemented Interfaces:
ResourceIO<Species>, ResourceReader<Species>

public class NCBITaxonomyReader extends AbstractResourceReader<Species>
Loader for NCBI Taxonomy database.

Fetches taxonomic information from NCBI E-utilities API.

Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Constructor Details

    • NCBITaxonomyReader

      public NCBITaxonomyReader()
  • Method Details

    • getCategory

      public String getCategory()
      Description copied from interface: ResourceIO
      Returns the category for grouping. MUST be implemented with I18N support.
      Returns:
      the category name
    • getDescription

      public String getDescription()
      Description copied from interface: ResourceIO
      Returns a short description of this resource handler. MUST be implemented with I18N support.
      Returns:
      the description
    • getLongDescription

      public String getLongDescription()
      Description copied from interface: ResourceIO
      Returns a long description of this resource handler. MUST be implemented with I18N support.
      Returns:
      the long description
    • getResourceType

      public Class<Species> getResourceType()
      Description copied from interface: ResourceIO
      Returns the type of resource.
    • getResourcePath

      public String getResourcePath()
      Description copied from interface: ResourceIO
      Returns the base path where this resource is located.
    • getSupportedVersions

      public String[] getSupportedVersions()
      Description copied from interface: ResourceIO
      Returns the supported versions of the format this reader/writer handles.

      Each implementation MUST override this method to declare which versions of the underlying format are supported. The returned array should contain version strings in the format's standard notation (e.g., "3.0", "2.1", "Level 3 Version 2").

      Examples:

      • MathML: {"3.0", "2.0"}
      • SBML: {"Level 3 Version 2", "Level 3 Version 1", "Level 2 Version 5"}
      • PhyloXML: {"1.10", "1.00"}

      Returns:
      array of supported version strings, never null (empty array if version-agnostic)
    • loadFromSource

      protected Species loadFromSource(String resourceId) throws Exception
      Specified by:
      loadFromSource in class AbstractResourceReader<Species>
      Throws:
      Exception
    • fetchByTaxId

      public Optional<Species> fetchByTaxId(long taxId)
      Fetches taxonomy by NCBI taxon ID.
      Parameters:
      taxId - the NCBI taxonomy ID
      Returns:
      the species entry, or empty if not found
    • searchByName

      public List<Long> searchByName(String name)
      Searches for taxa by scientific name.
      Parameters:
      name - the scientific name to search
      Returns:
      list of matching taxon IDs
    • loadFromResource

      public List<Species> loadFromResource(String resourcePath)
      Loads species from a specific resource path (JSON).
      Parameters:
      resourcePath - Classpath to the JSON file.
      Returns:
      List of species found in the file.
    • getName

      public String getName()
      Description copied from interface: ResourceIO
      Returns the display name of this resource handler. MUST be implemented with I18N support.
      Returns:
      the display name