הפרוטוקול הנוכחי קובע מסלול שלם לניתוח תהליך ה-RNA-seq המוני מנתונים גולמיים ועד ניתוח העשרה פונקציונלית.
Method Article
* These authors contributed equally
הפרוטוקול הנוכחי קובע מסלול שלם לניתוח תהליך ה-RNA-seq המוני מנתונים גולמיים ועד ניתוח העשרה פונקציונלית.
כבד שומני לא אלכוהולי (NAFL) נחשב בדרך כלל למצב שפיר; עם זאת, לאחר שהמצב מתקדם לדלקת כבד לא אלכוהולית (NASH), החולים ניצבים בפני סיכון מוגבר משמעותית לפתח מחלת כבד בשלב סופי. מחקרים רבים מנסים להבהיר את המנגנון המולקולרי שמאחורי המעבר מ-NAFL ל-NASH. טכנולוגיות ריצוף בתפוקה גבוהה (כגון RNA-seq בכמויות גדולות) סיפקו לחוקרים הבנה מעמיקה יותר על ידי בחינת הטרנסקריפטום, חשיפת ביטוי מולקולות, הפעלת מסלולי איתות וגורמים נוספים הקשורים להתקדמות המחלה. יש שפע של נתונים בקוד פתוח הזמין לחוקרים לנתח כדי לזהות מטרות פוטנציאליות לטיפול במחלות. עם זאת, מחקר קשור מוגבל בשל היעדר תהליך יעיל ואמין לניתוח במעלה הזרם של הטרנסקריפטום. כאן מסופק ניתוח מעלה וניתוח גנטי דיפרנציאלי קשור לשכפול וידידותי למשתמש, כדי להשיג עיבוד סטנדרטי וניתוח מעמיק של נתונים פרטיים או ציבוריים. הצינור מחולק לארבעה שלבים: (1) בקרת איכות של נתונים; (2) מיפוי גנים; (3) ניתוח גנים שונה; ו-(4) אנליזה פונקציונלית. תהליך זה נועד לחשוף את המנגנונים המולקולריים של טרנספורמציית מחלות ולסייע לחוקרים בסינון מטרות תרופות פוטנציאליות וגישות טיפוליות באמצעות ניתוח נתוני RNA-seq בכמויות גדולות.
מחלת כבד שומני שאינה אלכוהולית (NAFLD) היא מחלת הכבד הכרונית השכיחה ביותר בעולם, המשפיעה על יותר מרבע מהאוכלוסייה. השכיחות שלו עלתה באופן דרמטי בעשורים האחרונים, 1,2,3. נטל המחלה הגובר, במיוחד הצורה המתקדמת יותר שלה, דלקת כבד לא אלכוהולית (NASH), מציבה אתגר בריאותי עולמי משמעותי ונטל כלכלי כבד. השלב הראשון של NAFLD הוא כבד שומני לא אלכוהולי (NAFL), שמלווה בדלקת ופיברוזיס שיכולים להתקדם ל-NASH. האחרון מעלה משמעותית את הסיכון להתפתחות למחלות כבד בשלב סופי, כולל שחמת כבד וקרצינומה כבדית (HCC)5,6,7. שכיחות ותמותת HCC קשורות לעלייה ב-NASH 8,9, וצפוי ש-NAFLD/NASH יהפוך לאינדיקטור המוביל להשתלת כבד עד 2030. עם זאת, ההתקדמות הקלינית של NAFLD היא הטרוגנית מאוד11, מה שמקשה מאוד על פיתוח התרופות הרלוונטיות12, ולכן חשוב במיוחד לחקור בדיוק את המנגנונים המולקולריים המעורבים.
רכישת מידע על הרכב תאי מבוססת RNA-seq בכמויות גדולות יכולה להבהיר משמעותית את הפתוגנזה של מחלות שונות. בעשורים האחרונים נערכו מחקרים רבים של RNA-seq באורגניזמים מודליים ובבני אדם כדי להבהיר הבדלים בביטוי גנים בהתקדמות NASH 13,14,15, במטרה לזהות מטרות טיפוליות חדשות להתערבות. בהתבסס על ניתוח RNA-seq בכמויות גדולות, Xiong ואחרים מצאו שתאים לא-פרנכימליים (NPCs) בכבד מעורבים בתהליכים כמו יצירת מטריצה חוץ-תאית והיצמדות תאים, התורמים להתפתחות NASH16. לי ועמיתיו הראו כי חלבון 1-אסוציאציה של גידול וילמס בכבד (WTAP) בכבד מווסת הצטברות ודלקת שומנים חוץ-רחמיים, ובכך מקדם את היווצרות NASH17. למרות שניתוח RNA-seq בכמויות גדולות הוא כלי עוצמתי להבהרת מנגנוני NASH, תוצאותיו רגישות מאוד לאיכות הנתונים העליונים. ההטרוגניות של פעולות ניסוי ותהליכי ניתוח במעלה הזרם עלולה לפגוע קשות באמינות הנתונים, ובכך להסתיר מידע ביולוגי אמיתי ולהפריע לדיוק הניתוחים הבאים. לכן, חשוב לקבוע סט של נהלי ניתוח סטנדרטיים במעלה הזרם.
בהשוואה לריצוף RNA חד-תאי (scRNA-seq), RNA-seq בכמויות גדולות מציע מספר יתרונות ברורים הן בתכנון ניסויים והן ביישומים מעשיים. בעוד ש-scRNA-seq מאפשר זיהוי הטרוגניות תאית ברמת התא היחיד ומאפשר ניתוח מדויק של תכונות שעתוק ספציפיות לסוג התא, הוא קשור לעלות גבוהה, דרישות עיבוד נתונים מורכבות ורגישות מוגבלת לזיהוי תמלילים בעלי שפע נמוך18. לעומת זאת, RNA-seq בכמויות גדולות מספק עומק ריצוף גבוה יותר, עלות נמוכה יותר וקצב דגימה גבוה יותר, מה שהופך אותו למתאים במיוחד לניתוחי ביטוי גנים שונים ברמת האוכלוסייה ולחקר מנגנונים מולקולריים19. לכן, כאשר מונחים על ידי זרימות עבודה אנליטיות סטנדרטיות, RNA-seq בכמויות גדולות נשאר גישה יעילה, חסכונית וחזקה לחקירת הבסיס המולקולרי של מחלות מורכבות.
פרוטוקול זה תוכנן במיוחד למאגרי נתונים של RNA-seq בכמויות גדולות שמקורם ברקמות אנושיות עם שלמות RNA גבוהה (RIN ≥ 7.0) וכמות RNA נכנסת מספקת (≥ 500 ng לדגימה). כדי להבטיח ביצוע אמין של שלבי יישור וכמות, מומלץ לבנות תחנת עבודה מקומית המצוידת בלפחות מעבד של 10 ליבות, 32 GB זיכרון RAM ומינימום של 200 GB של שטח דיסק פנוי. בהתבסס על דרישות אלו, הפרוטוקול מספק זרימת עבודה אנליטית יעילה וידידותית למשתמש, הכוללת הוראות תפעוליות מפורטות ותצורות פרמטרים סטנדרטיות, כדי לענות על צרכי החוקרים המנתחים נתוני טרנסקריפטומיה בקנה מידה גדול.
Access restricted. Please log in or start a trial to view this content.
למטרות הדגמה, מערך הנתונים הזמין לציבור PRJNA1023502 שנוצר על ידי לאן באי ואחרים שימש להמחשת כל שלב של ניתוחים מעלה ומורד הזרם20. מכיוון שמאגר נתונים זה מגיע ממאגר ה-SRA בגישה פתוחה של NCBI, אין צורך בהרשאות נוספות או אישורים אתיים. ראו את טבלת החומרים כדי לאמת את כל גרסאות התוכנה וה-R-package הנדרשות. מערך הנתונים הזמין לציבור כולל PRJNA1023502 6 דגימות שאינן NASH, 6 דגימות NAFL, ו-6 דגימות RNA-seq של כבד NASH. בפרוטוקול זה, מערך הנתונים שימש להדגמת כל שלבי תהליך ה-RNA-seq המרוכז, כולל שליפת נתונים ממסד הנתונים של SRA, בקרת איכות (fastp), יישור (HISAT2), כימות (featureCounts), וניתוחי הבעה דיפרנציאלית והעשרה פונקציונלית בהמשך הזרם.
1. התקנת ערכת כלים SRA
2. הורדת נתונים ציבוריים
3. יצירת מטריצת ספירת גנים
REFERENCE=~/reference/human/GRCh38/GRCh38.primary_assembly.genome.fa
GTF=~/reference/human/GRCh38/gencode.v44.annotation.gtf
INDEX=~/reference/human/GRCh38/GRCh38_index
FASTQ_DIR=~/SRA_tutorial/fastq
OUT_FASTP=~/RNAseq/fastp
OUT_HISAT2=~/RNAseq/hisat2
OUT_COUNTS=~/RNAseq/counts
mkdir -p $FASTQ_DIR $OUT_FASTP $OUT_HISAT2 $OUT_COUNTS
for f in SRR*; do [[ ! $f =~ \.sra$ ]] && mv "$f" "$f.sra"; done
for f in SRR*; do [[ ! $f =~ \.sra$ ]] && mv "$f" "$f.sra"; donefor f in SRR*; do [[ ! $f =~ \.sra$ ]] && mv "$f" "$f.sra"; donefor f in *.sra; do fasterq-dump "$f" --split-files -O $FASTQ_DIR - e 20; donehisat2-build $REFERENCE $INDEXfor fq in $FASTQ_DIR/*.fastq; do
sample=$(basename "$fq" .fastq)
for fq1 in $FASTQ_DIR/*_1.fastq; do
sample=$(basename "$fq1" _1.fastq)
fq2=$FASTQ_DIR/${sample}_2.fastqfastp \
-i "${fq}" \
-o $OUT_FASTP/${sample}.clean.fastq \
-h $OUT_FASTP/${sample}.html \
-j $OUT_FASTP/${sample}.json \
-w 20fastp \
-i "${fq}" \ -I "$fq2" \
-o $OUT_FASTP/${sample}_1.clean.fastq \
-O $OUT_FASTP/${sample}_2.clean.fastq \
-h $OUT_FASTP/${sample}.html \
-j $OUT_FASTP/${sample}.json \
-w 20hisat2 -p 20 \ -x $INDEX \-U $OUT_FASTP/${sample}.clean.fastq \
-S $OUT_HISAT2/${sample}.samhisat2 -p 20 \-x $INDEX \-1 $OUT_FASTP/${sample}_1.clean.fastq \
-2 $OUT_FASTP/${sample}_2.clean.fastq \
-S $OUT_HISAT2/${sample}.samsamtools view -@ 20 -bS $OUT_HISAT2/${sample}.sam \
| samtools sort -@ 20 -o $OUT_HISAT2/${sample}.sorted.bam
samtools index $OUT_HISAT2/${sample}.sorted.bam
donefeatureCounts -T 20 -p -s 0 \
-a $GTF \
-o $OUT_COUNTS /${sample}.counts.txt \
$OUT_HISAT2/${sample}.sorted.bam
Donecut -f1 $(ls $OUT_COUNTS/*.counts.txt | head -1) > all_counts.txtfor f in $OUT_COUNTS/*.counts.txt; do
cut -f7 "$f" | paste all_counts.txt - > tmp && mv tmp
all_counts.txt
donesamples=$(ls *.counts.txt | sed 's/.counts.txt//' | paste -sd "\t")
echo -e "Geneid\t$samples" | cat - all_counts.txt > counts_matrix.txtawk '$3=="exon"{match($0,/gene_id "([^"]+)"/,a); if(a[1]!=""){len=$5-$4+1; gene_len[a[1]]+=len}} END{print "GENE_ID\tLENGTH"; for(g in gene_len) print g"\t"gene_len[g]}' \$GTF > gene_length.txt4. עיבוד מטריצת ספירה גולמית והערות גנים
mart <- useMart("ensembl", dataset = "hsapiens_gene_ensembl")
id_map <- getBM(attributes = c("ensembl_gene_id", "hgnc_symbol"),
filters = "ensembl_gene_id",
values = exprSet$GeneID,
mart = mart)
exprSet <- exprSet %>%
left_join(id_map, by = c("GeneID" = "ensembl_gene_id")) %>%
filter(!is.na(hgnc_symbol), hgnc_symbol != "") %>%
distinct(hgnc_symbol, .keep_all = TRUE) %>%
column_to_rownames("hgnc_symbol")5. כימות ביטוי גנים
הערה: עיין בתיק המשלים 1 לתסריט המפורט.
counts <- read.csv("output/clean_counts_SRA.csv", header=TRUE, row.names=1)
gene_len <- read.delim("data/gene_length.txt", header=FALSE, col.names=c("gene_symbol","length"))
gene_len <- gene_len %>% distinct(gene_symbol, .keep_all=TRUE)
rownames(gene_len) <- gene_len$gene_symbol
gene_len <- gene_len[match(rownames(counts), gene_len$gene_symbol),]
length_bp <- gene_len$length
fpkm <- (counts / length_bp) * 1e9 / colSums(counts)
write.csv(fpkm, "output/clean_fpkm_SRA.csv")
tpm <- (counts / length_bp) / colSums(counts / length_bp) * 1e6
write.csv(tpm, "output/clean_tpm_SRA.csv")6. אשכולות דגימות והדמיית הבדלים
gene.pca <- PCA(exprSet, ncp = 2, scale.unit = TRUE, graph = FALSE)
ggplot(pca_sample, aes(x = Dim.1, y = Dim.2)) +
geom_point(aes(color = group)) +
labs(x = paste('PC1:', pca_eig1, '%'),
y = paste('PC2:', pca_eig2, '%'))7. ניתוח ביטוי דיפרנציאלי והדמיית תוצאות
הערה: עיין בתיק המשלים 1 לתסריט המפורט.
dds <- DESeq(DESeqDataSetFromMatrix(countData = exprSet, colData = colData, design = ~group)); sizeFactors(dds); res <- results(dds); dds <- dds[rowSums(counts(dds)) > 1,]
dd1 <- results(dds, contrast = contrast, alpha = 0.05)
dd2 <- lfcShrink(dds, contrast = contrast, res = dd1, type = "ashr")ggplot(data = data, aes(x = log2FoldChange, y = -log10(padj))) +
geom_point(aes(color = group), alpha = 1, size = 1.2) +
geom_hline(yintercept = -log10(0.05), lty = 4) +
geom_vline(xintercept = c(-0.5, 0.5), lty = 4) +
geom_text_repel(data = subset(data, abs(log2FoldChange) >= 1.5 & padj < 0.05),
aes(label = gene_id))8. ביצוע ניתוח העשרה פונקציונלית והדמיה
הערה: עיין בתיק המשלים 1 לתסריט המפורט.
EGG <- enrichKEGG(gene = gene$ENTREZID, organism = 'hsa',
pvalueCutoff = 0.05, qvalueCutoff = 0.05)
ggplot(symboldata, aes(richFactor, Description)) +
geom_point(aes(color = p.adjust, size = Count))ego <- enrichGO(gene = gene$ENTREZID, OrgDb = "org.Hs.eg.db", ont = "ALL",
pvalueCutoff = 0.05, qvalueCutoff = 0.05, pAdjustMethod = "BH")
ggplot(df) +
ggforce::geom_link(aes(x = 0, y = Description, xend = -log10(p.adjust),
yend = Description, color = ONTOLOGY), n = 500, show.legend = FALSE) +
facet_wrap(~ONTOLOGY, scales = "free", ncol = 1)genelist <- sort(res$log2FoldChange, decreasing = TRUE)
names(genelist) <- rownames(res)
hallmarks <- read.gmt('resource/h.all.v2023.2.Hs.symbols.gmt')
y <- GSEA(genelist, TERM2GENE = hallmarks, pvalueCutoff = 0.05)
gsearesult <- yd %>% arrange(desc(NES)) %>% slice_head(n = 10)
ggplot(gsearesult, aes(x = logFC, y = Description, fill = -log10(pvalue))) +
geom_density_ridges(alpha = 0.8, scale = 0.8) +
geom_point(aes(size = abs(NES), x = -0.4, color = NES)) +
scale_fill_distiller(palette = 'Spectral') +
scale_color_distiller(palette = 'Reds') +
scale_size_continuous(range = c(2, 6))Access restricted. Please log in or start a trial to view this content.
תהליך הניתוח במעלה הזרם עבור RNA-seq בכמויות גדולות מוצג באיור 1A. תהליך עבודה זה מבצע ברצף את השלבים המרכזיים הבאים בפלטפורמת לינוקס: ראשית, בקרת איכות קפדנית של נתוני ריצוף גולמיים מתבצעת באמצעות fastp להסרת קריאות באיכות נמוכה ורצפי מתאמים; בהמשך, HISAT2 מיישר קריאות באיכות גבוהה לגנום הייחוס, כאשר Samtools ממיר וממיין את קבצי היישור; לבסוף, FeatureCounts מבצע כימות ברמת הגן ליצירת מטריצת ביטוי גן, המספקת קלט איכותי לניתוח במורד הזרם. עיבוד וניתוח סטטיסטי מאוחר יותר של מטריצת הביטויים המת...
Access restricted. Please log in or start a trial to view this content.
ניתוח נתוני RNA-seq בכמויות גדולות מאופיין כמשימה בין-תחומית המשלבת גנומיקה, ביואינפורמטיקה, סטטיסטיקה ומדעי המחשב. תהליך עבודה אנליטי מלא כולל מספר שלבים מעלה ואחרון, כולל עיבוד מוקדם של נתונים גולמיים, בקרת איכות, יישור רצפים, כימות ברמת גנים, נרמול נתונים, ניתוח ביטוי דיפרנציאלי ופרשנות ביולוגית. בין השלבים הללו, המרה מדויקת של קריאות ריצוף גולמיות למטריצת ביטוי גנים איכותית היא קריטית במיוחד, שכן שגיאות שנוצרות במהלך עיבוד בזרם עלולות להתפשט לכל המסקנות הביולוגיות במורד הזרם. לכן, הק...
Access restricted. Please log in or start a trial to view this content.
המחברים מצהירים שאין להם ניגודי עניינים.
המחברים רוצים להודות למנהלי מאגרי המידע הזמינים לציבור ששימשו במחקר זה.
Access restricted. Please log in or start a trial to view this content.
| Name | Company | Catalog Number | Comments |
|---|---|---|---|
| ביומארט | ביו-קונדוקטור | 2.64.0 | הערת גנים מתוך Ensembl |
| clusterProfiler | ביו-קונדוקטור | 4.16.0 | ניתוח העשרה פונקציונלית |
| DESeq2 | ביו-קונדוקטור | 1.48.1 | ניתוח ביטוי דיפרנציאלי |
| FactoMineR | אגרופריזטק | 2.11.0 | PCA וניתוח רב-משתני |
| fastp | OpenGene | 1.0.1 | בקרת איכות וסינון נתוני FASTQ |
| ספירות תכונות | מחלקת ביואינפורמטיקה, מכון וולטר ואליזה הול למחקר רפואי | 2.0.0 | ספרו את מספר הקריאות שממופו לכל גן לכימות ביטוי גנים |
| ggplot2 | הנחה | 3.5.2 | ויזואליזציה של נתונים |
| גרפל | קמיל סלואיקובסקי | 0.9.6 | תוויות טקסט שאינן חופפות |
| גרידג'ס | קלאוס או. וילקה | 0.5.6 | יצירת עגרות רכס (ridgeline) |
| HISAT2 | אוניברסיטת ג'ונס הופקינס | 2.2.1 | יישר את הקריאות האיכותיות המסוננות לגנום הייחוס |
| R | R Core Team | 4.5.0 | סביבה לחישוב, ניתוח והדמיה של נתונים |
| RColorBrewer | אריך נויירת' | 1.1.3 | פלטות צבעים לתכנון |
| SAMTOOLS | זרם עבודה בגנומיקה בקנה מידה גדול | 1.22.0 | המרה ועיבוד קבצי SAM לשליפת וגישה יעילה |
| ערכת כלים של SRA | המרכז הלאומי למידע ביוטכנולוגי | 3.2.1 | השגת ועיבוד מוקדם של נתוני ריצוף גולמיים ממסד הנתונים של NCBI SRA |
Access restricted. Please log in or start a trial to view this content.
Request permission to reuse the text or figures of this JoVE article
Request Permission