Reference information for annotation sources in MetaHQ.

To add a new reference, build a new class with a Reference structure and add it to the REFERENCE_MAP at the bottom of this script.

Author: Parker Hicks
Date: 2026-04-01

Last updated: 2026-04-10 by Parker Hicks

Reference

Bases: ABC

Reference scaffold.

Attributes:
  • source (str) –

    The name of a source to reference.

  • citation (str) –

    The citation for the source.

  • doi (str) –

    DOI for the source.

  • url (str) –

    URL to access the source.

  • rights (str) –

    License code (e.g., CC0 1.0, CC BY-NC 4.0).

  • notes (str) –

    Any notes on the source to include.

  • n (int) –

    Number of annotations/labels the source provided for a query.

Ale

Bases: Reference

Reference information for ALE.

Bgee

Bases: Reference

Reference information for Bgee.

CellO

Bases: Reference

Reference information for CellO.

Creeds

Bases: Reference

Reference information for CREEDS.

DiSignAtlas

Bases: Reference

Reference information for DiSignAtlas.

Gemma

Bases: Reference

Reference information for Gemma.

Golightly

Bases: Reference

Reference information for Golightly_2018.

Gu

Bases: Reference

Reference information for Gu_2023.

Johnson

Bases: Reference

Reference information for Johnson_2023.

Sirota

Bases: Reference

Reference information for Sirota_2011.

Ursa

Bases: Reference

Reference information for URSA.

UrsaHD

Bases: Reference

Reference information for URSA_HD.

KrishnanLab

Bases: Reference

Reference information for KrishnanLab.

get_allowed_sources(license_query)

Returns the set of source names permitted by a license filter.

Parameters:
  • license_query (str) –

    A supported license category. One of 'permissive', 'nc', or 'any'.

Returns:
  • set[str] | None

    A set of source names (matching REFERENCE_MAP keys) whose license falls within the requested filter, or None if all sources are allowed (license_query='any'). Matching against BSON source keys should be done case-insensitively.

Raises:
  • ValueError

    If license_query is not a supported category.

Examples:

>>> from metahq_core.sources import get_allowed_sources
>>> get_allowed_sources('permissive')
{'ALE', 'BGee', 'Cello', 'CREEDS', 'Golightly_2018', 'Gu_2023', 'Johnson_2023', 'KrishnanLab'}
>>> get_allowed_sources('nc')
{'DiSignAtlas', 'Gemma', 'Sirota_2011', 'URSA', 'URSA_HD'}
>>> get_allowed_sources('any') is None
True