Comments (3)
I'm still dubious of the value, especially when we provide different ways of ways of optimizing the score.
What would you think of instead having sc.metrics.modularity
where you match a clustering and a graph returning a modularity score?
It would basically wrap:
(
igraph.Graph.Weighted_Adjacency(adata.obsp["connectivities"])
.modularity(adata.obs["louvain"].cat.codes)
)
But you could also generate modularity scores for other labelings.
from scanpy.
What about comparing communities between for example CPM and RBERVertexPartition at the same resolution, using modularity score? This way we are not comparing scores obtained by optimization functions, just simple "external" measure.
from scanpy.
Yeah, that's why I like having it be manually computed rather than relying on the output of the clustering. This way we can make sure similar scores are used.
For API, I'm thinking:
@singledispatch
def modularity(graph: sparse.spmatrix, labels: pd.Series | np.ndarray) -> float:
...
@modularity.register
def _modularity_adata(adata: AnnData, labels: pd.Series | str, obsp: str) -> float:
return modularity(
adata.obsp[obsp],
adata.obs[labels] if isinstance(labels, str) else labels,
)
from scanpy.
Related Issues (20)
- why scale is not in spatial HOT 12
- sc.get.aggregate looses values HOT 4
- Dependency on `legacy-api-wrap` prevents 1.10 conda release HOT 1
- Future warning in \preprocessing\_highly_variable_genes.py:226 HOT 3
- leiden alg with igraph flavor causes out of bounds freezing HOT 19
- Adding format checking for sparse matrix in the function "read_v3_10x_h5"
- add support for Visium HD Spatial Gene Expression data HOT 9
- `sc.tl.ingest`: `pkg_version` does not work with `anndata==0.10.6` HOT 12
- AssertionError: Donβt call _normalize_index with non-categorical/string names HOT 1
- sc.tl.leiden TypeError: unexpected keyword 'flavor' HOT 1
- Suggestion to support VisiumHD tissue_position_list files (using parquet files) HOT 2
- Performance: Investigate `pp.scale` with sparse matrices HOT 1
- Tests fail with pytest 8.1 when a `data` dir exists HOT 13
- AxisError when calculating QC metrics on backed data HOT 1
- Failed violins HOT 3
- Pass n_iterations argument to scanpy.tl.louvain
- Add a needs triage tag
- Update Preprocessing functions with numba HOT 2
- Benchmarks: Add all from basic tutorial
- Benchmarks: Add all from Dask tutorial
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from scanpy.