1. Pregătirea mediului și încărcarea datelor
Înainte de a începe, asigurați-vă că aveți instalat Scanpy și dependențele sale (numpy, pandas, matplotlib, etc.). Datele PBMC pot fi descărcate din depozite publice precum 10x Genomics sau folosind funcția `scanpy.datasets.pbmc3k()` care încarcă un subset de 2.700 de celule. În practică, veți lucra cu fișiere în format HDF5 (`.h5`) sau cu matrice de expresie (`.mtx`, `.tsv`). Scanpy oferă funcția `sc.read_10x_h5()` pentru a citi direct output-ul platformei 10x Genomics. După încărcare, datele sunt stocate într-un obiect `AnnData`, care conține matricea de expresie (gene × celule), metadatele celulelor și informații despre gene.
2. Controlul calității (QC)
Un pas critic este filtrarea celulelor de calitate scăzută și a genelor slab exprimate. Parametrii comuni includ:
Scanpy permite calcularea acestor metrici cu `sc.pp.calculate_qc_metrics()`. Celulele care nu îndeplinesc criteriile sunt eliminate cu `sc.pp.filter_cells()`. De asemenea, genele care apar în mai puțin de 3 celule sunt filtrate. Acest pas asigură că analiza ulterioară se bazează pe date de încredere.
3. Normalizarea și identificarea genelor variabile
Pentru a corecta diferențele de adâncime de secvențiere, se aplică normalizarea la scară logaritmică: `sc.pp.normalize_total(target_sum=1e4)` urmată de `sc.pp.log1p()`. Apoi, identificăm genele cu cea mai mare variație biologică folosind `sc.pp.highly_variable_genes()`. Aceste gene sunt cele care contribuie cel mai mult la diferențierea între tipurile celulare. De obicei, selectăm primele 2.000 de gene variabile și le salvăm în obiectul AnnData.
4. Reducerea dimensionalității și clusteringul
Pentru a reduce zgomotul și a facilita vizualizarea, aplicăm PCA (Analiza Componentelor Principale) cu `sc.tl.pca()`. De regulă, reținem primele 50 de componente principale. Apoi, construim un graf al vecinătăților (k-nearest neighbors) cu `sc.pp.neighbors()` și aplicăm algoritmul de clustering Louvain sau Leiden (recomandat) cu `sc.tl.leiden()`. Rezoluția clusteringului poate fi ajustată pentru a obține un număr adecvat de grupuri (de exemplu, între 8 și 12 pentru PBMC).
5. Vizualizarea cu UMAP și t-SNE
Pentru a inspecta distribuția celulelor în spațiul bidimensional, folosim UMAP (`sc.tl.umap()`) sau t-SNE (`sc.tl.tsne()`). UMAP este preferat datorită vitezei și capacității de a păstra structura globală. Rezultatul poate fi colorat în funcție de cluster sau de expresia unor gene marker, oferind o primă imagine a eterogenității.
6. Adnotarea tipurilor celulare
Adnotarea se face prin identificarea genelor marker specifice fiecărui cluster. Scanpy oferă `sc.tl.rank_genes_groups()` pentru a găsi genele diferențial exprimate între clustere. Apoi, comparăm aceste gene cu baze de date cunoscute (de exemplu, CD3D pentru celule T, CD14 pentru monocite, MS4A1 pentru celule B). Putem automatiza adnotarea folosind dicționare de markeri sau instrumente precum CellTypist. O adnotare corectă este crucială pentru interpretarea biologică.
7. Descoperirea traiectoriilor de diferențiere
Unul dintre cele mai puternice aspecte ale scRNA-seq este capacitatea de a reconstrui traiectorii de dezvoltare sau de activare. Scanpy implementează algoritmul PAGA (Partition-based Graph Abstraction) prin `sc.tl.paga()`, care identifică conexiunile între clustere și estimează o pseudotimp. De asemenea, putem folosi `sc.tl.dpt()` (Diffusion Pseudotime) pentru a ordona celulele de-a lungul unei traiectorii. De exemplu, în PBMC putem urmări diferențierea monocitelor în macrofage sau activarea celulelor T. Vizualizarea traiectoriilor se face cu `sc.pl.paga()` și `sc.pl.umap(color='dpt_pseudotime')`.
8. Integrarea și analiza avansată
Pentru seturi de date multiple (de exemplu, de la diferiți pacienți), Scanpy se integrează cu metode precum Harmony sau scVI. De asemenea, putem exporta rezultatele pentru analize suplimentare, cum ar fi îmbogățirea căilor metabolice (GSEA) sau inferența rețelelor de reglare genetică.
Concluzie
Construirea unei conducte de analiză scRNA-seq cu Scanpy este accesibilă și flexibilă. De la încărcarea datelor PBMC până la clustering, adnotare și descoperirea traiectoriilor, fiecare pas poate fi personalizat în funcție de întrebarea biologică. Acest ghid oferă o bază solidă pentru orice cercetător care dorește să exploreze datele monocelulare. Pe măsură ce tehnologia avansează, conductele devin din ce în ce mai sofisticate, dar principiile rămân aceleași: curățarea datelor, reducerea dimensionalității, clusteringul și interpretarea biologică.
De ce este important:
Înțelegerea eterogenității celulare la nivel de celulă unică este fundamentală pentru descoperirea de noi biomarkeri, înțelegerea mecanismelor bolilor și dezvoltarea terapiilor personalizate. O conductă robustă de analiză, precum cea descrisă, permite cercetătorilor să extragă informații valoroase din date complexe, accelerând descoperirile în imunologie, oncologie și medicină regenerativă. Scanpy, fiind open-source și bine documentat, democratizează accesul la aceste tehnici avansate, facilitând colaborarea și reproducibilitatea în comunitatea științifică.