100個GEO基因表達芯片或轉錄組數據處理023.GSE24807

100個GEO基因表達芯片或轉錄組數據處理

寫在前邊

雖然現在是高通量測序的時代,但是GEO、ArrayExpress等數據庫儲存并公開大量的基因表達芯片數據,還是會有大量的需求去處理芯片數據,并且建模或驗證自己所研究基因的表達情況,芯片數據的處理也可能是大部分剛學生信的道友入門R語言數據處理的第一次實戰,因此準備更新100個基因表達芯片或轉錄組高通量數據的處理。

數據信息檢索

可以看到GSE24807是基因表達芯片數據,因此可以使用GEOquery包下

使用GEOquery包下載數據

remotes::install_github('ScienceAdvances/using')
using::using(tidyverse, GEOquery, magrittr, data.table, AnnoProbe, clusterProfiler, org.Hs.eg.db, org.Mm.eg.db)

注:using作用是一次性加載多個R包,不用寫雙引號,并且不在屏幕上打印包的加載信息

因為文件太大,在R內下載失敗,可通過圖片中的方法下載文件,GEOquery::getGEO直接讀取本地的文件。

geo_accession <- "GSE24807"
eSet <- getGEO(filename=stringr::str_glue('{geo_accession}_series_matrix.txt.gz'), AnnotGPL = F, getGPL = F)
gpl <- eSet@annotation

處理表型數據

這部分是很關鍵的,可以篩選一下分組表型信息,只保留自己需要的樣本,作為后續分析的樣本(根據自己的研究目的篩選符合要求的樣本)

pdata <- pData(eSet)
pdata %<>%dplyr::mutate(Sample = geo_accession,Group = case_when(`disease state:ch1`=='non-alcoholic steatohepatitis (NASH)'~'NASH',`disease state:ch1`=='normal (control)'~'Control',TRUE~NA)) %>%drop_na(Group) %>% dplyr::select(Sample,Group,everything())

處理表達譜數據

數據大小不大于50不需要取log

exprs_mtx <- exprs(eSet)
if(max(exprs_mtx, na.rm = TRUE)<50 | min(exprs_mtx, na.rm = TRUE)<0){message("基因表達最大值小于50或者最小值小于0不需要log轉化")
}else {message("基因表達最大值大于50需要log轉化")exprs_mtx <- log2(exprs_mtx+1)
}
probe_exprs <- as.data.table(exprs_mtx, keep.rownames = "ProbeID")

探針與基因Symbol對應關系

從https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GPL2895下載注釋文件GPL2895.annot.gz,從中獲取探針與GeneID對應關系

idmaps <- function(ann_file, ProbeID = "ID", Feature = "Symbol", skip = 229, pattern = "control") {temp <- fread(ann_file, skip = skip, nThread = 8)vars <- c(ProbeID, Feature)temp <- temp[, ..vars]data.table::setnames(temp, c("ProbeID", "Feature"))temp %<>% tidyr::separate_longer_delim(cols=Feature, delim=" /// ") %>% data.table::as.data.table()temp %<>% tidyr::separate_longer_delim(cols=Feature, delim="///") %>% data.table::as.data.table()temp <- temp[!is.null(Feature), ][!is.na(Feature), ][Feature != "", ][Feature != "---", ][!stringr::str_detect(string = Feature, pattern = pattern), ]return(as.data.frame(temp))
}
probe2symbol <- idmaps('GPL2895.annot.gz', Feature = "Gene symbol", skip = 27)

ID轉換

把表達矩陣中的探針名轉換為基因名;transid是我寫的一個R函數,有需要可以加我(18983376561),進入交流群

fdata <- transid(probe2symbol, probe_exprs)

保存數據

common_samples <- base::intersect(colnames(fdata),pdata$Sample)
fdata %<>% select(all_of(c("Feature",common_samples)))
fwrite(fdata, file = stringr::str_glue("{geo_accession}_{gpl}_fdata.csv.gz"))
pdata %<>% dplyr::filter(Sample %in% common_samples)
fwrite(pdata, file = stringr::str_glue("{geo_accession}_{gpl}_pdata.csv"))

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/79223.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/79223.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/79223.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SAP ECCS標準報表在報表中不存在特征CG細分期間 消息號 GK715報錯分析

ECCS報表執行報錯&#xff1a; 在報表中不存在特征CG細分期間 消息號 GK715 診斷 未在報表中指定特征CG細分期間。但是&#xff0c;同時需要特征CG細分期間和其它特征。例如&#xff1a; 期間’需要用于擴展合并組。 系統響應 處理終止 步驟 調整報表定義。 報這個錯。 業務背景…

spring boot 文件下載

1.添加文件下載工具依賴 Commons IO is a library of utilities to assist with developing IO functionality. <dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version> </depe…

FastAPI 中定義接口函數參數,包含請求體參數、查詢參數、依賴注入參數的組合

FastAPI 中定義接口函數參數&#xff0c;包含請求體參數、查詢參數、依賴注入參數的組合。 ? 示例結構 async def chat(request: Request,data: ChatData,conversation_id: Optional[str] Query(None),current_user: User Depends(get_current_user), ):這表示你定義了一個…

實用類題目

1. 密碼強度檢測 題目描述&#xff1a;生活中&#xff0c;為保證賬戶安全&#xff0c;密碼需要有一定強度。編寫一個方法&#xff0c;接收一個字符串作為密碼&#xff0c;判斷其是否符合以下強度要求&#xff1a;長度至少為 8 位&#xff0c;包含至少一個大寫字母、一個小寫字…

MATLAB學習筆記(二) 控制工程會用到的

MATLAB中 控制工程會用到的 基礎傳遞函數表達傳遞函數 零極點式 狀態空間表達式 相互轉化畫響應圖線根軌跡Nyquist圖和bode圖現控部分求約旦判能控能觀極點配置和狀態觀測 基礎 傳遞函數表達 % 拉普拉斯變換 syms t s a f exp(a*t) %e的a次方 l laplace(f) …

基于YOLOv9的課堂行為檢測系統

基于YOLOv9的課堂行為檢測系統 項目概述 本項目是一個基于YOLOv9深度學習模型的課堂行為檢測系統&#xff0c;旨在通過計算機視覺技術自動識別和監測課堂中學生的各種行為狀態&#xff0c;幫助教師更好地了解課堂教學效果。 項目結構 課堂行為檢測/ ├── data/ │ ├──…

C 語言中的 volatile 關鍵字

1、概念 volatile 是 C/C 語言中的一個類型修飾符&#xff0c;用于告知編譯器&#xff1a;該變量的值可能會在程序控制流之外被意外修改&#xff08;如硬件寄存器、多線程共享變量或信號處理函數等&#xff09;&#xff0c;因此編譯器不應對其進行激進的優化&#xff08;如緩存…

java 洛谷題單【算法2-1】前綴和、差分與離散化

P8218 【深進1.例1】求區間和 解題思路 前綴和數組&#xff1a; prefixSum[i] 表示數組 a 的前 (i) 項的和。通過 prefixSum[r] - prefixSum[l - 1] 可以快速計算區間 ([l, r]) 的和。 時間復雜度&#xff1a; 構建前綴和數組的時間復雜度是 (O(n))。每次查詢的時間復雜度是 …

綠盟二面面試題

5000篇網安資料庫https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39a6eab17cc0ed0fca5f0e4c979ce64bd112762def9ee7cf0112a7e76af&scene21#wechat_redirect 1. 原理深度&…

線程安全學習

1 什么是線程 線程是cpu調度的最小單位&#xff0c;在Linux 下 實現線程的方式為輕量級進程&#xff0c;復用進程的結構體&#xff0c;使用clone函數創建 2 線程安全 所謂線程安全&#xff0c;更確切的應該描述為內存安全 #include <stdio.h> #include <pthread.h…

Linux紅帽:RHCSA認證知識講解(十 三)在serverb上破解root密碼

Linux紅帽&#xff1a;RHCSA認證知識講解&#xff08;十 三&#xff09;在serverb上破解root密碼 前言操作步驟 前言 在紅帽 Linux 系統的管理工作中&#xff0c;系統管理員可能會遇到需要重置 root 密碼的情況。本文將詳細介紹如何通過救援模式進入系統并重新設置 root 密碼。…

**Microsoft Certified Professional(MCP)** 認證考試

1. MCP 認證考試概述 MCP&#xff08;Microsoft Certified Professional&#xff09;是微軟認證體系中的一項入門級認證&#xff0c;旨在驗證考生在微軟產品和技術&#xff08;如 Windows Server、Azure、SQL Server、Microsoft 365&#xff09;方面的技能。2020 年&#xff0…

系統性能優化總結與思考-第一部分

1.C代碼優化策略總結 編譯器方面&#xff1a;用好的編譯器并用好編譯器&#xff08;支持C11的編譯器&#xff0c;IntelC&#xff08;速度最快&#xff09;GNU的C編譯器GCC/G&#xff08;非常符合標準&#xff09;&#xff0c;Visual C&#xff08;性能折中&#xff09;&#x…

RCL諧振電壓增益曲線

諧振電路如何通過調頻實現穩壓&#xff1f; 為什么要做諧振&#xff1f; 在諧振狀態實現ZVS導通&#xff0c;小電流關斷 電壓增益GVo/Vin&#xff0c;相當于產出投入比 當ff0時&#xff0c;G1時&#xff0c;輸出電壓輸入電壓 當G<1時&#xff0c;輸出電壓<輸入電壓 …

Linux進程相關選擇題及解析

1. 關于Linux進程創建,以下說法正確的是? A. fork()函數調用后,子進程從父進程的fork()之后開始執行 B. fork()函數返回兩次,父進程返回子進程PID,子進程返回0[10][11] C. exec函數族會替換當前進程的代碼段,但保留數據段和堆棧 D. wait()函數只能等待直接子進程退出 答…

STM32 HAL DHT11驅動程序

DHT11驅動程序會占用TIM3定時器&#xff0c;進行高精度延時。程序共包含4個文件 DHT11.c DHT11.h delay.c delay.h DHT11.c #include "stm32f1xx_hal.h" #include "dht11.h" #include "delay.h" // 添加延時頭文件 #define DHT_PORT GPIOB…

網頁防篡改與盜鏈防護:實時監控與自動化修復實踐

摘要&#xff1a;針對網頁內容篡改與盜鏈問題&#xff0c;本文基于群聯AI云防護系統&#xff0c;詳解如何通過哈希校驗、實時監控與CDN聯動實現秒級修復&#xff0c;并提供Python與AWS S3集成代碼。 一、網頁安全的核心需求 防篡改&#xff1a;保障頁面內容完整性&#xff0c;…

【4】k8s集群管理系列--harbor鏡像倉庫本地化搭建

一、harbor基本概念 ?Harbor是一個由VMware開源的企業級Docker鏡像倉庫解決方案?&#xff0c;旨在解決企業在容器化應用部署中的痛點&#xff0c;提供鏡像存儲、管理、安全和分發的全生命周期管理?。Harbor擴展了Docker Registry&#xff0c;增加了企業級功能&#xff0c;如…

Docker 安裝 Elasticsearch 8.x

Docker 安裝 Elasticsearch 8.x 前言一、準備工作二、設置容器的目錄結構三、啟動一個臨時的容器來復制配置文件四、復制配置文件到本地目錄五、刪除臨時容器六、創建并運行容器&#xff0c;掛載本地目錄七、修改文件配置監聽端口八、端口配置&#xff1a;Host 網絡模式 vs Por…

C#: 用Libreoffice實現Word文件轉PDF

現實場景中要實現Word格式轉PDF格式還是比較常見的。 如果要用開源的組件&#xff0c;只有用Libreoffice了。 一、下載安裝Libreoffice 先進入如下鏈接&#xff0c;找到最新版本和匹配的操作系統來安裝。 官網試過&#xff0c;下載是能下載&#xff0c;但安裝了用不了&…