本系列主要定期集中記錄一些實(shí)用的生信操作
1. 第一列作為行名截粗,構(gòu)建數(shù)值矩陣
假如我剛讀取了一個(gè)表達(dá)譜矩陣gene_exp
佳窑,第一列為基因名
,其余列為基因表達(dá)量
> gene_exp
genes expression_1 expression_2
1 a 1 3
2 b 2 5
3 c 1 3
4 d 2 5
5 e 1 3
6 f 2 5
> str(gene_exp) # 看看每列的數(shù)據(jù)類型
'data.frame': 6 obs. of 3 variables:
$ genes : chr "a" "b" "c" "d" ...
$ expression_1: num 1 2 1 2 1 2
$ expression_2: num 3 5 3 5 3 5
然后就可以將第一列作為行名
library(tibble)
gene_exp<-column_to_rownames(.data=gene_exp,var ="genes") # var為第一列的列名
如果有時(shí)候举农,從第二列開始是字符串型
> str(gene_exp)
'data.frame': 6 obs. of 3 variables:
$ genes : chr "a" "b" "c" "d" ...
$ expression_1: chr "1" "2" "1" "2" ...
$ expression_2: chr "3" "5" "3" "5" ...
也可以一次性將轉(zhuǎn)變?yōu)閿?shù)值型變量
gene_exp[,c(2,ncol(gene_exp))] <- apply(gene_exp[,c(2,ncol(gene_exp))],MARGIN = 2,FUN = as.numeric)
> str(gene_exp)
'data.frame': 6 obs. of 3 variables:
$ genes : chr "a" "b" "c" "d" ...
$ expression_1: num 1 2 1 2 1 2
$ expression_2: num 3 5 3 5 3 5
其中:
gene_exp[,c(2,ncol(gene_exp))]
為需要轉(zhuǎn)換的區(qū)域蔫浆,這里表示第2
到n
列,n為最大列數(shù)
MARGIN
= 1灸眼,表示處理行卧檐, = 2 表示處理列
FUN
,批量實(shí)現(xiàn)功能
as.numeric
焰宣,將其他類型變量
轉(zhuǎn)換為數(shù)值型變量
2. 一句話解決重復(fù)基因求均值
有時(shí)候霉囚,測序結(jié)果中會出現(xiàn)重復(fù)基因
> gene_exp
genes expression_1 expression_2
1 a 1 3
2 b 2 5
3 c 1 3
4 a 2 5
5 b 1 3
6 c 2 5
這時(shí)候把第一列作為行名時(shí)會報(bào)錯(cuò),因?yàn)樾忻荒苡兄貜?fù)
> gene_exp<-column_to_rownames(.data=gene_exp,var ="genes")
Error in `.rowNamesDF<-`(x, value = value) :
duplicate 'row.names' are not allowed
In addition: Warning message:
non-unique values when setting 'row.names': ‘a(chǎn)’, ‘b’, ‘c’
因此我們可以先對重復(fù)基因求均值匕积,再將基因作為行名
gene_exp <- aggregate(x = .~genes,data=gene_exp,FUN=mean)
gene_exp <- column_to_rownames(.data=gene_exp,var ="genes")
> gene_exp
expression_1 expression_2
a 1.5 4
b 1.5 4
c 1.5 4
完美解決~
一圖看懂aggregate
函數(shù)
3. bioconductor 設(shè)置鏡像
在安裝bioconductor
上面的包時(shí)盈罐,從國外庫中下載速度比較慢,可以使用清華的鏡像
options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")
本期內(nèi)容到此結(jié)束闪唆,這個(gè)系列主要是將一些小技巧整理起來盅粪,方便后續(xù)使用,單獨(dú)發(fā)太少悄蕾,匯集3個(gè)發(fā)一期票顾,大家在分析過程中遇到的一些報(bào)錯(cuò)也可以私信聯(lián)系,解決后也能納入素材帆调,方便他人后續(xù)避坑
感謝觀看奠骄,如果有用還請點(diǎn)贊,關(guān)注番刊!