Skip to content
Merged

fixes #142

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 6 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,10 @@ Crucially, **`DonorData`** ensures that genetic data and single-cell modalities

**cellink** offers a streamlined suite of tools for the entire analysis workflow, organized by task:

**Variant preprocessing & QC**
- [Variant preprocessing & annotation](https://cellink-docs.readthedocs.io/en/latest/tutorials/explore_annotations.html): quality control, annotation (VCF export/import), and selection of genetic variants.

**Association testing**
- [Pseudobulk eQTL mapping](https://cellink-docs.readthedocs.io/en/latest/tutorials/pseudobulk_eqtl.html)
- [eQTL analysis with jaxQTL or tensorQTL](https://cellink-docs.readthedocs.io/en/latest/tutorials/pseudobulk_eqtl_jaxqtl_tensorqtl.html)
- [eQTL analysis with SAIGE-QTL](https://cellink-docs.readthedocs.io/en/latest/tutorials/single_cell_eqtl_saigeqtl.html)
- [Naive pseudobulk eQTL mapping](https://cellink-docs.readthedocs.io/en/latest/tutorials/pseudobulk_eqtl.html)
- [Rare variant association studies](https://cellink-docs.readthedocs.io/en/latest/tutorials/burden_testing.html)
- [Clumping & pruning](https://cellink-docs.readthedocs.io/en/latest/tutorials/clumping_pruning.html)
- [Colocalization analysis](https://cellink-docs.readthedocs.io/en/latest/tutorials/colocalization.html)
Expand All @@ -62,11 +61,10 @@ Crucially, **`DonorData`** ensures that genetic data and single-cell modalities
**Deep learning & representation learning**
- [LIVI: donor-level representation learning](https://cellink-docs.readthedocs.io/en/latest/tutorials/livi.html)
- [Scooby: single-cell-resolution sequence-to-coverage modeling & variant scoring](https://cellink-docs.readthedocs.io/en/latest/tutorials/scooby.html)
- [Built-in dataloaders for deep learning](https://cellink-docs.readthedocs.io/en/latest/tutorials/run_dataloader.html)
- [Built-in dataloaders for deep learning](https://cellink-docs.readthedocs.io/en/latest/tutorials/run_dataloader.html), including Multiple Instance Learning (MIL) over per-donor cell bags

**Interoperability & data integration**
- [eQTL analysis with jaxQTL or tensorQTL](https://cellink-docs.readthedocs.io/en/latest/tutorials/pseudobulk_eqtl_jaxqtl_tensorqtl.html)
- [eQTL analysis with SAIGE-QTL](https://cellink-docs.readthedocs.io/en/latest/tutorials/single_cell_eqtl_saigeqtl.html)
**Other**
- [Variant preprocessing & annotation](https://cellink-docs.readthedocs.io/en/latest/tutorials/explore_annotations.html): quality control, annotation (VCF export/import), and selection of genetic variants.
- [Integrating `DonorData` with EHR data](https://cellink-docs.readthedocs.io/en/latest/tutorials/ehrdataset.html)

## Getting Started
Expand Down
6 changes: 3 additions & 3 deletions tests/test_gene_pair_effects.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,16 @@ def test_compare_gene_pair_effects_keeps_only_celltypes_with_both_genes(tmp_path
[
(GENE_A, VARIANT, 0.3, 0.05, 1e-8),
(GENE_B, VARIANT, -0.25, 0.06, 1e-6),
(GENE_A, "1:200:A:G", 0.1, 0.05, 0.2), # different variant: irrelevant
(GENE_A, "1:200:A:G", 0.1, 0.05, 0.2),
],
)
# only GENE_A has a row at VARIANT here; celltype must be dropped entirely

_write_celltype_parquet(tmp_path, "ukb_european", "T_CD4_naive", [(GENE_A, VARIANT, 0.1, 0.02, 0.01)])

res = compare_gene_pair_effects(tmp_path, VARIANT, GENE_A, GENE_B, cohort="ukb_european")

assert list(res["celltype"].unique()) == ["NK_CD16"]
assert list(res["gene"]) == [GENE_A, GENE_B] # gene_a first, then gene_b, per celltype
assert list(res["gene"]) == [GENE_A, GENE_B]
assert list(res.columns) == ["gene", "variant_id", "beta", "se", "pval", "celltype"]


Expand Down
2 changes: 1 addition & 1 deletion tests/test_tl_external_dense_trans_scan.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def test_run_dense_trans_scan_ranks_all_genes(dd, far_variant_id):
assert list(df["rank_by_pval"]) == list(range(1, len(df) + 1))
assert df["pval"].is_monotonic_increasing
assert {"chrom", "start", "end"}.issubset(df.columns)
# a genuinely unlinked (far-away) variant shouldn't lose any gene to the cis-window filter

assert len(df) == dd.C.n_vars


Expand Down
Loading