Version history
1 version on record. Newest first; the live version sits at the top with a live indicator.
- Live5/27/2026, 5:54:46 PM
sha256:dc350Content snapshot
{ "cells": [ { "source": "import cellxgene_census\nimport pandas as pd\n\n# Open Census (latest stable release)\nwith cellxgene_census.open_soma() as census:\n # Pull obs slice for SEA-AD human cortex\n obs = census['census_data']['homo_sapiens'].obs\n sea_ad_obs = obs.read(\n value_filter=\"dataset_id == 'SEA-AD' or collection_name.str.contains('SEA-AD', case=False, na=False)\",\n column_names=None # fetch all columns to enumerate schema\n ).concat().to_pandas()\n\nprint('SEA-AD obs shape:', sea_ad_obs.shape)\nprint('All obs columns:', list(sea_ad_obs.columns))\nprint('Sample disease values:', sea_ad_obs['disease'].unique() if 'disease' in sea_ad_obs.columns else 'N/A')\nprint('Sample disease_ontology_term_id values:', sea_ad_obs['disease_ontology_term_id'].unique() if 'disease_ontology_term_id' in sea_ad_obs.columns else 'N/A')\n\n# Search for Braak-related columns\nbraak_cols = [c for c in sea_ad_obs.columns if 'braak' in c.lower() or 'neuropath' in c.lower() or 'stage' in c.lower()]\nprint('Braak/neuropath candidate columns:', braak_cols)\n\n# Count microglia donors with Braak metadata\nif braak_cols:\n microglia_mask = sea_ad_obs['cell_type'].str.contains('microgli', case=False, na=False) if 'cell_type' in sea_ad_obs.columns else pd.Series(False, index=sea_ad_obs.index)\n micro_df = sea_ad_obs[microglia_mask]\n for col in braak_cols:\n non_null = micro_df[col].dropna()\n n_donors = micro_df.loc[non_null.index, 'donor_id'].nunique() if 'donor_id' in micro_df.columns else 'unknown'\n print(f'Column {col}: {len(non_null)} microglia nuclei, {n_donors} donors with non-null Braak metadata')", "cell_id": "c-4363534d", "outputs": [], "cell_hash": "sha256:cce4cdfeb908eba453325214e999651afb1dbae4a98f4710e6d331d114f80c7f", "cell_type": "code", "execution_count": null } ], "metadata": {}, "owner_ref": "persona-andy-hickl", "created_by": "persona-andy-hickl" }