Gene Feature Attachment & CLI#
Gene length and intron count are used for optional bias correction inside
active_score.
# Use bundled tables
adata = scat.add_gene_features(adata, organism="mouse") # or "human"
# or provide your own table
adata = scat.add_gene_features(adata, gene_features_path="my_features.parquet")
The package includes tables for mouse and human. Use organism="mouse"
(default) or organism="human" when calling add_gene_features. For other
species or custom annotations use the gene feature generator CLI.
Command-line interface#
The only console script is the gene-feature table generator:
pip install "scatrans[gene_features]"
generate-gene-features --gtf /path/to/genes.gtf --output my_features.parquet --organism human
Works with 10x genes.gtf or GENCODE GTFs:
# Mouse
generate-gene-features --gtf /path/to/genes.gtf \
--output my_mouse_features.parquet \
--organism mouse
# Human (GENCODE or 10x)
generate-gene-features --gtf gencode.v49.primary_assembly.annotation.gtf \
--output human_GRCh38_2024A_gene_features.parquet \
--organism human
Then use it:
import scatrans as scat
adata = scat.add_gene_features(
adata,
gene_features_path="human_GRCh38_2024A_gene_features.parquet"
)
# bias correction will now be able to use length + intron_number
adata_res, significant, all_results = scat.active_score(adata, ...)
You can also call the generator programmatically:
from scatrans import generate_gene_features_from_gtf
df = generate_gene_features_from_gtf(
"path/to/genes.gtf",
output_name="my_custom_features.parquet",
organism="human"
)
See also scat.list_available_gene_features() (for bundled tables) and the
full signature of add_gene_features in the API Reference.
Tip: The generated parquet must contain a gene_name column (plus
gene_length and intron_number). add_gene_features does a reindex on
your adata.var_names.