<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Farhan Rehman Sherief</title>
    <description>The latest articles on DEV Community by Farhan Rehman Sherief (@farhansherief).</description>
    <link>https://dev.to/farhansherief</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3971649%2F4fea112e-39e3-4e68-a18e-7205a7269fc3.jpg</url>
      <title>DEV Community: Farhan Rehman Sherief</title>
      <link>https://dev.to/farhansherief</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/farhansherief"/>
    <language>en</language>
    <item>
      <title>T Cells, Tumour Macrophages, and Why Lung Cancer Evades Your Immune System</title>
      <dc:creator>Farhan Rehman Sherief</dc:creator>
      <pubDate>Sat, 06 Jun 2026 18:54:14 +0000</pubDate>
      <link>https://dev.to/farhansherief/t-cells-tumour-macrophages-and-why-lung-cancer-evades-your-immune-system-1mf7</link>
      <guid>https://dev.to/farhansherief/t-cells-tumour-macrophages-and-why-lung-cancer-evades-your-immune-system-1mf7</guid>
      <description>&lt;p&gt;One of the most frustrating puzzles in cancer biology: some lung cancer patients respond brilliantly to immunotherapy. Others don't respond at all. The tumour microenvironment (TME), the ecosystem of immune, stromal, and cancer cells that surrounds a tumour is a big part of why.&lt;/p&gt;

&lt;p&gt;I wanted to understand what that ecosystem actually looks like at the resolution of individual cells. So I built a single-cell RNA sequencing (scRNA-seq) analysis of non-small cell lung cancer (NSCLC) tissue using Scanpy, working with a publicly available dataset of 111,683 cells from CZ CELLxGENE, spanning 38 distinct cell states.&lt;/p&gt;

&lt;p&gt;Here's what the data revealed about T cell exhaustion, macrophage behaviour, and what makes some tumours more immune-suppressive than others.&lt;/p&gt;




&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;NSCLC accounts for approximately 85% of all lung cancer cases. Immune checkpoint inhibitors have transformed treatment for some patients — but a large proportion still don't respond. The leading explanation is that the TME is actively suppressing anti-tumour immunity, rather than the immune system simply being absent.&lt;/p&gt;

&lt;p&gt;To understand this, you need to look not just at whether immune cells are present, but at &lt;strong&gt;what functional state those cells are in&lt;/strong&gt;. That's exactly what single-cell RNA sequencing makes possible.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Dataset
&lt;/h2&gt;

&lt;p&gt;The data comes from a study characterising the cellular and molecular identities of histologic subtypes in lung adenocarcinoma:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;111,683 cells&lt;/strong&gt; after QC (117,266 raw)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;57,398 genes&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;38 distinct cell states&lt;/strong&gt; across the TME&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4 histologic subtypes:&lt;/strong&gt; Acinar/Papillary (A/P), A/P + Solid, Micropapillary (MP), and Solid&lt;/li&gt;
&lt;li&gt;Sequenced with 10× Chromium 3' v3&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Pipeline
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Quality Control
&lt;/h3&gt;

&lt;p&gt;Cells were filtered to retain those with 200–8,000 detected genes, fewer than 100,000 UMI counts, and less than 25% mitochondrial content. This removed around 5,583 low-quality cells.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Normalisation
&lt;/h3&gt;

&lt;p&gt;Standard scRNA-seq approach: normalise to 10,000 counts per cell, log1p transform, identify 2,544 highly variable genes.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Dimensionality Reduction
&lt;/h3&gt;

&lt;p&gt;PCA (50 components) → neighbourhood graph → UMAP. The resulting embedding resolved all 38 cell states, with clear separation between tumour epithelial cells, immune populations, and stromal cells.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Findings
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. T Cell Exhaustion Is Not an End State - It's a Trajectory
&lt;/h3&gt;

&lt;p&gt;This was the most biologically interesting result. The CD8+ T cell data revealed three functionally distinct states forming a clear exhaustion trajectory:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;T.CD8.Naive → T.CD8.Predysfunc (8,897 cells) → T.CD8.Exhausted (1,454 cells)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The pre-dysfunctional population is the &lt;em&gt;largest&lt;/em&gt; CD8 group - meaning the majority of cytotoxic T cells in these tumours are actively being pushed toward dysfunction, not yet exhausted but clearly losing their killing capacity.&lt;/p&gt;

&lt;p&gt;The fully exhausted population co-expresses multiple immune checkpoint molecules simultaneously: &lt;code&gt;CTLA4&lt;/code&gt;, &lt;code&gt;LAG3&lt;/code&gt;, &lt;code&gt;TIGIT&lt;/code&gt;, &lt;code&gt;TOX&lt;/code&gt;, &lt;code&gt;ENTPD1&lt;/code&gt;, and &lt;code&gt;CXCL13&lt;/code&gt;. In contrast, cytotoxic T cells express effector molecules (&lt;code&gt;GZMB&lt;/code&gt;, &lt;code&gt;PRF1&lt;/code&gt;, &lt;code&gt;IFNG&lt;/code&gt;) with minimal checkpoint expression. The dotplot makes this contrast striking and clear.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Regulatory T Cells Outnumber Cytotoxic T Cells ~4:1
&lt;/h3&gt;

&lt;p&gt;Tregs (6,496 cells) vastly outnumber cytotoxic CD8+ T cells (1,688 cells). Tregs express high levels of &lt;code&gt;CTLA4&lt;/code&gt; and &lt;code&gt;TOX&lt;/code&gt;, consistent with their role in actively suppressing anti-tumour immunity. This ratio alone explains a great deal about why these tumours resist immune attack.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Pro-Tumour Macrophages Dominate the Myeloid Compartment
&lt;/h3&gt;

&lt;p&gt;Five macrophage subpopulations were identified:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mac.SPP1&lt;/strong&gt; and &lt;strong&gt;Mac.SPP1.GPNMB&lt;/strong&gt; (~7,054 cells combined) - pro-tumourigenic, SPP1/osteopontin-expressing macrophages associated with poor prognosis in multiple cancer types&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mac.SELENOP&lt;/strong&gt; (3,082 cells) - anti-inflammatory, tissue-resident&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mac.CXCL9&lt;/strong&gt; (1,118 cells) - anti-tumour, recruits cytotoxic T cells&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The pro-tumour to anti-tumour macrophage ratio is approximately &lt;strong&gt;6:1&lt;/strong&gt;. Combined with the T cell exhaustion data, this paints a picture of a TME that is actively - and efficiently - suppressing immune responses at multiple levels simultaneously.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. The Paradox of Solid Tumours
&lt;/h3&gt;

&lt;p&gt;Solid histologic subtype tumours had the highest immune infiltration (~75% immune cells vs ~63% in acinar/papillary). But solid subtype is also the most aggressive histology.&lt;/p&gt;

&lt;p&gt;This counterintuitive finding is consistent with what's sometimes called &lt;strong&gt;immune suppression rather than immune exclusion&lt;/strong&gt;: more immune cells arrive, but the suppressive environment is so potent that they can't function. High infiltration doesn't automatically mean effective anti-tumour immunity.&lt;/p&gt;




&lt;h2&gt;
  
  
  What This Means for Immunotherapy
&lt;/h2&gt;

&lt;p&gt;The data points to a few specific vulnerabilities worth thinking about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The large &lt;strong&gt;pre-dysfunctional T cell population&lt;/strong&gt; is a potential therapeutic opportunity - these cells aren't fully exhausted yet and might respond to checkpoint blockade&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;6:1 pro-tumour macrophage ratio&lt;/strong&gt; suggests that myeloid reprogramming strategies (not just T cell-targeting therapies) may be needed&lt;/li&gt;
&lt;li&gt;The Treg suppression appears to work partly through &lt;code&gt;CTLA4&lt;/code&gt;, which is why anti-CTLA4 therapy has shown activity in some NSCLC settings&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Subsetting for focused analysis pays off.&lt;/strong&gt; Rather than analysing all 38 cell states at once, isolating the T cell and macrophage compartments separately and running marker analysis on those subsets gave much cleaner, more interpretable results.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Using the authors' cell type annotations directly was the right call.&lt;/strong&gt; For a dataset this complex, re-clustering from scratch would have introduced unnecessary uncertainty. Their labels are validated and biologically grounded.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;With 38 cell states and multiple findings, deciding what to prioritise in the write-up took as long as some analysis steps.&lt;/strong&gt; Storytelling is part of the work.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Code
&lt;/h2&gt;

&lt;p&gt;Everything is in a fully annotated Jupyter Notebook. Download the H5AD file from CZ CELLxGENE and place it in the &lt;code&gt;data/&lt;/code&gt; folder to run it. &lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Farhan89082" rel="noopener noreferrer"&gt;
        Farhan89082
      &lt;/a&gt; / &lt;a href="https://github.com/Farhan89082/nsclc-tumour-microenvironment" rel="noopener noreferrer"&gt;
        nsclc-tumour-microenvironment
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Single-cell RNA-seq analysis of the NSCLC tumour microenvironment - T cell exhaustion trajectories and macrophage polarisation in lung adenocarcinoma
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🫁 scRNA-seq Tumour Microenvironment Analysis: Mapping Immune Cell Infiltration in Non-Small Cell Lung Cancer&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/ea669f7071987d9f7060a32f808785b46a2545d6904316dfee5ae52b2b4d6d02/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e31322d626c75653f6c6f676f3d707974686f6e"&gt;&lt;img src="https://camo.githubusercontent.com/ea669f7071987d9f7060a32f808785b46a2545d6904316dfee5ae52b2b4d6d02/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e31322d626c75653f6c6f676f3d707974686f6e" alt="Python"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/0c1e5c1d8632d0911579f496350f8fe428414a7c5baae05a807a500a71cca61b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5363616e70792d312e31322e312d677265656e"&gt;&lt;img src="https://camo.githubusercontent.com/0c1e5c1d8632d0911579f496350f8fe428414a7c5baae05a807a500a71cca61b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5363616e70792d312e31322e312d677265656e" alt="Scanpy"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/fcc4486d576902aeff57adc40bb3746081ac36c47c2d8efa685bbb3d837c689a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f43656c6c732d3131312532433638332d6f72616e6765"&gt;&lt;img src="https://camo.githubusercontent.com/fcc4486d576902aeff57adc40bb3746081ac36c47c2d8efa685bbb3d837c689a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f43656c6c732d3131312532433638332d6f72616e6765" alt="Cells"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/5a115de276fcd7c5e10b08980d02af2043a99c63e9a8b33f4dd6c4a79585c66c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f43656c6c25323054797065732d33382d707572706c65"&gt;&lt;img src="https://camo.githubusercontent.com/5a115de276fcd7c5e10b08980d02af2043a99c63e9a8b33f4dd6c4a79585c66c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f43656c6c25323054797065732d33382d707572706c65" alt="Cell Types"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/c4d4c5fb44c08b85ff48097669ae3661f4bac620d1d059881409e63ef6e5b84b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5374617475732d436f6d706c6574652d627269676874677265656e"&gt;&lt;img src="https://camo.githubusercontent.com/c4d4c5fb44c08b85ff48097669ae3661f4bac620d1d059881409e63ef6e5b84b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5374617475732d436f6d706c6574652d627269676874677265656e" alt="Status"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📌 Background&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Non-small cell lung cancer (NSCLC) is the most common form of lung cancer, accounting for approximately 85% of all cases. Despite the success of immune checkpoint inhibitors, a significant proportion of patients do not respond to immunotherapy — a failure largely attributed to T cell exhaustion and immunosuppressive remodelling of the tumour microenvironment (TME).&lt;/p&gt;
&lt;p&gt;The TME is a complex ecosystem of tumour cells, immune cells, and stromal cells that collectively determine whether the immune system can mount an effective anti-tumour response. Understanding the cellular composition and functional states within the TME is critical for identifying new therapeutic targets and predicting immunotherapy response.&lt;/p&gt;
&lt;p&gt;This project performs a comprehensive single-cell RNA sequencing (scRNA-seq) analysis of the NSCLC tumour microenvironment, profiling &lt;strong&gt;111,683 cells&lt;/strong&gt; across &lt;strong&gt;38 distinct cell states&lt;/strong&gt; to characterise T cell exhaustion trajectories, macrophage polarisation states…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Farhan89082/nsclc-tumour-microenvironment" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;The TME is one of the most complex biological systems we can now study at single-cell resolution - and it's increasingly clear that understanding it is key to making immunotherapy work for more patients. Happy to discuss the analysis, the biology, or the pipeline in the comments.&lt;/p&gt;

</description>
      <category>bioinformatics</category>
      <category>python</category>
      <category>datascience</category>
      <category>science</category>
    </item>
    <item>
      <title>How I Mapped Brain Cell Changes in Alzheimer's Disease Using Single-Cell RNA Sequencing</title>
      <dc:creator>Farhan Rehman Sherief</dc:creator>
      <pubDate>Sat, 06 Jun 2026 18:39:29 +0000</pubDate>
      <link>https://dev.to/farhansherief/how-i-mapped-brain-cell-changes-in-alzheimers-disease-using-single-cell-rna-sequencing-4lim</link>
      <guid>https://dev.to/farhansherief/how-i-mapped-brain-cell-changes-in-alzheimers-disease-using-single-cell-rna-sequencing-4lim</guid>
      <description>&lt;p&gt;Alzheimer's disease affects over 55 million people worldwide, yet the precise molecular changes happening inside individual brain cells remain poorly understood. I wanted to dig into that question - not at the tissue level, but at single-cell resolution.&lt;/p&gt;

&lt;p&gt;So I built a full scRNA-seq analysis pipeline in Python using Scanpy, working with a publicly available dataset of 63,608 nuclei from human prefrontal cortex tissue (sourced from CZ CELLxGENE). The donors spanned three Braak stages: 0 (cognitively normal), 2 (early Alzheimer's), and 6 (severe Alzheimer's).&lt;/p&gt;

&lt;p&gt;Here's what I found and how I found it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Dataset
&lt;/h2&gt;

&lt;p&gt;The data came from a study on the molecular characterisation of selectively vulnerable neurons in AD. It covers the superior frontal gyrus, a prefrontal region known to be hit hard by neurodegeneration - and includes seven major brain cell types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Glutamatergic neurons&lt;/li&gt;
&lt;li&gt;GABAergic neurons&lt;/li&gt;
&lt;li&gt;Oligodendrocytes&lt;/li&gt;
&lt;li&gt;OPCs (oligodendrocyte precursor cells)&lt;/li&gt;
&lt;li&gt;Astrocytes&lt;/li&gt;
&lt;li&gt;Microglia&lt;/li&gt;
&lt;li&gt;Endothelial cells&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;31,997 genes. 63,608 cells. Three disease stages. A lot to work with.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Pipeline
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Quality Control
&lt;/h3&gt;

&lt;p&gt;No dataset is clean out of the box. I filtered cells to keep only those with between 200 and 6,000 detected genes, and excluded anything with more than 20% mitochondrial gene content (high mitochondrial reads usually signal a dying or damaged cell). This removed around 2,809 low-quality cells.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Normalisation
&lt;/h3&gt;

&lt;p&gt;Library sizes were normalised to 10,000 counts per cell, followed by log1p transformation, standard practice that makes cells comparable regardless of how deeply they were sequenced. I then identified 5,607 highly variable genes to focus the downstream analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Dimensionality Reduction
&lt;/h3&gt;

&lt;p&gt;PCA (50 components) → neighbourhood graph (10 neighbours, 20 PCs) → UMAP embedding.&lt;/p&gt;

&lt;p&gt;The UMAP is where the biology starts to become visible. All seven cell types separated into distinct clusters, with clear separation between neuronal subtypes and glial populations.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Differential Expression
&lt;/h3&gt;

&lt;p&gt;For the microglial analysis, I used a Wilcoxon rank-sum test comparing AD vs normal microglia, with Benjamini-Hochberg multiple testing correction to control the false discovery rate.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Findings
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Glutamatergic Neurons Are Selectively Depleted
&lt;/h3&gt;

&lt;p&gt;One of the most striking results: glutamatergic (excitatory) neurons dropped from ~34% of cells in normal tissue to ~30% in AD tissue. This might sound like a small shift, but at the scale of 60,000+ cells it's biologically meaningful and it's consistent with what the literature already tells us about the selective vulnerability of excitatory neurons in AD.&lt;/p&gt;

&lt;h3&gt;
  
  
  Alzheimer's Leaves a Clear Signature in Microglia
&lt;/h3&gt;

&lt;p&gt;Microglia are the brain's resident immune cells, and they showed the most dramatic transcriptomic shifts between AD and normal tissue. The differential expression analysis revealed:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Upregulated in AD microglia:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;MALAT1&lt;/code&gt; - a long non-coding RNA strongly linked to neuroinflammation&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;FTH1&lt;/code&gt; - ferritin heavy chain, pointing to iron dysregulation&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;B2M&lt;/code&gt; - beta-2 microglobulin, a known AD biomarker reflecting immune activation&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;FOXP1&lt;/code&gt; - a transcription factor tied to microglial activation states&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Downregulated in AD microglia:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;MT-CO3&lt;/code&gt;, &lt;code&gt;MT-CO1&lt;/code&gt;, &lt;code&gt;MT-ATP6&lt;/code&gt;, &lt;code&gt;MT-ND2&lt;/code&gt; - mitochondrial complex genes, suggesting impaired energy metabolism in AD-affected microglia&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This pattern is consistent with what's described as disease-associated microglia (DAM) in the literature, a distinct activation state that emerges in neurodegeneration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Disease Progression Captured Across Braak Stages
&lt;/h3&gt;

&lt;p&gt;Cells from all three Braak stages were distributed across every cluster in the UMAP. This reflects that AD-associated transcriptomic changes are not confined to one cell type, they propagate across the whole cellular ecosystem as the disease progresses.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Memory management matters.&lt;/strong&gt; 60K+ cells × 30K+ genes is a big matrix. Working with sparse AnnData objects and being deliberate about which steps you checkpoint to disk makes a real difference.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cell type annotation is an art.&lt;/strong&gt; The dataset came with pre-annotated cell types, but validating them against canonical marker genes (the dotplot step) is essential and satisfying when the biology confirms itself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Volcano plots are still one of the most readable ways to communicate differential expression.&lt;/strong&gt; They give you significance and fold change in one glance.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Code
&lt;/h2&gt;

&lt;p&gt;Everything is in a fully annotated Jupyter Notebook. If you want to reproduce the analysis, download the H5AD file from CZ CELLxGENE and drop it in the &lt;code&gt;data/&lt;/code&gt; folder. &lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Farhan89082" rel="noopener noreferrer"&gt;
        Farhan89082
      &lt;/a&gt; / &lt;a href="https://github.com/Farhan89082/alzheimers-scrna-analysis" rel="noopener noreferrer"&gt;
        alzheimers-scrna-analysis
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Single-cell transcriptomic analysis of Alzheimer's disease using Scanpy - cell-type-specific gene expression in the human prefrontal cortex
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🧠 Single-Cell Transcriptomic Analysis of Alzheimer's Disease&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Cell-Type-Specific Gene Expression Changes in the Human Superior Frontal Gyrus&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/ea669f7071987d9f7060a32f808785b46a2545d6904316dfee5ae52b2b4d6d02/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e31322d626c75653f6c6f676f3d707974686f6e"&gt;&lt;img src="https://camo.githubusercontent.com/ea669f7071987d9f7060a32f808785b46a2545d6904316dfee5ae52b2b4d6d02/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e31322d626c75653f6c6f676f3d707974686f6e" alt="Python"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/0c1e5c1d8632d0911579f496350f8fe428414a7c5baae05a807a500a71cca61b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5363616e70792d312e31322e312d677265656e"&gt;&lt;img src="https://camo.githubusercontent.com/0c1e5c1d8632d0911579f496350f8fe428414a7c5baae05a807a500a71cca61b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5363616e70792d312e31322e312d677265656e" alt="Scanpy"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/017bf63e76a7bb12b804496f8727da2e301f9b9b1c74f363761c693d7e826b6b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f43656c6c732d36332532433630382d6f72616e6765"&gt;&lt;img src="https://camo.githubusercontent.com/017bf63e76a7bb12b804496f8727da2e301f9b9b1c74f363761c693d7e826b6b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f43656c6c732d36332532433630382d6f72616e6765" alt="Cells"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/c4d4c5fb44c08b85ff48097669ae3661f4bac620d1d059881409e63ef6e5b84b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5374617475732d436f6d706c6574652d627269676874677265656e"&gt;&lt;img src="https://camo.githubusercontent.com/c4d4c5fb44c08b85ff48097669ae3661f4bac620d1d059881409e63ef6e5b84b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5374617475732d436f6d706c6574652d627269676874677265656e" alt="Status"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📌 Background&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Alzheimer's disease (AD) is the most common form of dementia, affecting over 55 million people worldwide. While the hallmarks of AD — amyloid plaques and neurofibrillary tangles — are well established, the cell-type-specific molecular changes that drive neurodegeneration remain incompletely understood.&lt;/p&gt;
&lt;p&gt;Single-nucleus RNA sequencing (snRNA-seq) enables transcriptomic profiling of individual cells in post-mortem human brain tissue, making it a powerful tool for dissecting the cellular basis of AD. This project analyses a publicly available snRNA-seq dataset of the human superior frontal gyrus from AD and cognitively normal donors, sourced from the CZ CELLxGENE Discover platform. The dataset contains &lt;strong&gt;63,608 nuclei&lt;/strong&gt; across &lt;strong&gt;7 major brain cell types&lt;/strong&gt; and three Braak stages (0, 2, and 6), enabling analysis of both disease status and progression severity.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🎯 Objectives&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Perform quality control, normalisation, and dimensionality…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Farhan89082/alzheimers-scrna-analysis" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;





&lt;p&gt;If you're working with single-cell data or have questions about the pipeline, I'd love to hear from you in the comments. There's something fascinating about watching biology emerge from a matrix of gene counts.&lt;/p&gt;

</description>
      <category>bioinformatics</category>
      <category>python</category>
      <category>datascience</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
