美文网首页
生信小操作(一)

生信小操作(一)

作者: 生命数据科学 | 来源:发表于2023-01-06 18:08 被阅读0次

本系列主要定期集中记录一些实用的生信操作

1. 第一列作为行名,构建数值矩阵

假如我刚读取了一个表达谱矩阵gene_exp,第一列为基因名,其余列为基因表达量

> 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) # 看看每列的数据类型
'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为第一列的列名

如果有时候,从第二列开始是字符串型

> 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" ...

也可以一次性将转变为数值型变量

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))]为需要转换的区域,这里表示第2n列,n为最大列数
MARGIN = 1,表示处理行, = 2 表示处理列
FUN,批量实现功能
as.numeric,将其他类型变量转换为数值型变量

2. 一句话解决重复基因求均值

有时候,测序结果中会出现重复基因

> 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

这时候把第一列作为行名时会报错,因为行名不能有重复

> 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’, ‘b’, ‘c’

因此我们可以先对重复基因求均值,再将基因作为行名

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函数

image

3. bioconductor 设置镜像

在安装bioconductor上面的包时,从国外库中下载速度比较慢,可以使用清华的镜像

options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")

本期内容到此结束,这个系列主要是将一些小技巧整理起来,方便后续使用,单独发太少,汇集3个发一期,大家在分析过程中遇到的一些报错也可以私信联系,解决后也能纳入素材,方便他人后续避坑

感谢观看,如果有用还请点赞,关注!

相关文章

网友评论

      本文标题:生信小操作(一)

      本文链接:https://www.haomeiwen.com/subject/ldgscdtx.html