Source code for moscot.utils.data
from pathlib import Path
from typing import List, Literal
__all__ = ["transcription_factors", "proliferation_markers", "apoptosis_markers"]
[docs]
def transcription_factors(organism: Literal["human", "mouse", "drosophila"]) -> List[str]:
"""Get transcription factors for a selected organism.
The data was taken from this `source <https://resources.aertslab.org/cistarget/tf_lists/>`_.
Parameters
----------
organism
Organism for which to select the transcription factors.
Returns
-------
Transcription factors for ``organism``.
"""
if organism == "human":
fname = "allTFs_hg38.txt"
elif organism == "mouse":
fname = "allTFs_mm.txt"
elif organism == "drosophila":
fname = "allTFs_dmel.txt"
else:
raise NotImplementedError(f"Transcription factors for `{organism!r}` are not yet implemented.")
with open(Path(__file__).parent / "_data" / fname) as fin:
return sorted(tf.strip() for tf in fin.readlines())
[docs]
def proliferation_markers(organism: Literal["human", "mouse"]) -> List[str]:
"""Get proliferation markers for a selected organism.
Parameters
----------
organism
Organism for which to select the marker genes. Human markers come from :cite:`tirosh:16:science`,
mouse markers come from :cite:`tirosh:16:nature`.
Returns
-------
Proliferation markers for ``organism``.
"""
if organism not in ("human", "mouse"):
raise NotImplementedError(f"Proliferation markers for `{organism!r}` are not yet implemented.")
fname = f"{organism}_proliferation.txt"
with open(Path(__file__).parent / "_data" / fname) as fin:
return sorted(tf.strip() for tf in fin.readlines())
[docs]
def apoptosis_markers(organism: Literal["human", "mouse"]) -> List[str]:
"""Get apoptosis markers for a selected organism.
Parameters
----------
organism
Organism for which to select the marker genes. Human markers come from
`Hallmark Apoptosis, MSigDB <https://www.gsea-msigdb.org/gsea/msigdb/cards/HALLMARK_APOPTOSIS>`_,
mouse markers come from
`Hallmark P53 Pathway, MSigDB <https://www.gsea-msigdb.org/gsea/msigdb/cards/HALLMARK_P53_PATHWAY>`_.
Returns
-------
Apoptosis markers for ``organism``.
"""
if organism not in ("human", "mouse"):
raise NotImplementedError(f"Apoptosis markers for `{organism!r}` are not yet implemented.")
fname = f"{organism}_apoptosis.txt"
with open(Path(__file__).parent / "_data" / fname) as fin:
return sorted(tf.strip() for tf in fin.readlines())