生信路上遇到的小错误

2021-11-07  本文已影响0人  小白兔和小毛驴

生信路上遇到的小错误

1、

文件修改后存储发生错误:可能你要保存的文件正打开

2、

Heatmap热图报错Error in hclust(get_dist(submat, distance), method = method) :    外接函数调用时不能有NA/NaN/Inf(arg10)

test <- data[apply(data, 1, function(x) sd(x)!=0),]

再做scale

3、

datexpr2=as.data.frame(lapply(datexpr,as.numeric))##数据框中的字符型数字全部转为数值型数字

4、

data <- read.table(filename, head=FALSE, as.is=TRUE, quote="", comment.char="#", sep="\t",colClasses=c("character",rep("numeric",10)))##其指定数据类型,用到参数为colClasses ,colClasses参数使用一个向量,为每一列指定数据类型。这里指定了第一列为字符型,其余列都为数值型。这样,第一列再读入时依然是 "01"了。

5、

match函数使用时,注意前后顺序,到底是谁匹配谁,匹配完以后有没有NA

6、

Surv函数循环调用时,记得一定要把样本ID输入,1:3列。特别是调用函数的时候,这个地方很容易出错。见程序(E:/1.RStudio/1.DXY_learn2.2/teacher_01/Rep_OVCP.R)

7.

GEO数据集整理出Exp,Label,GID的流程(无论是否需要标准化),见程序(E:/1.RStudio/1.DXY_learn2.2/teacher_01/bio_geo_test.R)

E:/1.RStudio/geo_ovarian_GPL96_570/geo_array_ovarian/GEO_verify_sub_way.R

此程序的表达谱结果中第一列为gene_Symbol,最后一列为对应的entrz_ID(GID),但是可能有部分entrz_ID(GID)是空格,即gene_Symbol没有找到对应的entrz_ID(GID),

GID<-as.numeric(exprSet[,81])#先取出最后一列

GID<-na.omit(GID)#去掉其中的NA

k<-match(GID,probe2symbol_df[,3])#取出对应去掉NA的gene_Symbol的位置

k<-probe2symbol_df[k,2]#取出对应位置的gene_Symbol名字

exprSet0<-exprSet[k,]#取出对应gene_Symbol的表达谱数据

另:每一套数据和其平台都要重新去跑一遍程序,因为对应找到的entrz_ID(GID),都是不一样的。

  TCGA(Xena)芯片数据集整理出Exp,Label,GID的流程,见程序(E:/1.RStudio/1.DXY_learn2.2/teacher_01/Rep_OVCP.R)

因为是芯片数据,所以表达谱数据中直接给出了gene_Symbol,只要去找对应的entrz_ID(GID)就行。

  TCGA(Xena)测序数据集整理出Exp,Label,GID的流程,见程序(E:/1.RStudio/1.DXY_learn2.2/teacher_01/deal_with_data.R)

因为是测序数据,给出的是ENSG开头的基因名,所以需要先进行一步转换,转换得到gene_Symbol后,再去找对应的entrz_ID(GID)就行。

ps:非常重要的点

  ①所有的Label需要自己整理。

  ②Exp,Label,GID整理完后,需要检查样本顺序是否一致,GID是否一致,Exp/GID中是否有NA,检查用语句data[is,na(data)],会给出NA的个数。

  ③Exp数据行为基因。列为样本。整理tcga的Exp表达谱时行名让它保留gene_Symbol的名字的和不保留gene_Symbol的名字的数据各整理一套,因为你的程序需要用到

8.

写function函数程序嵌套时,从数据库中取出某些列时是以list形式取出来的,而做coxph生存分析时,如果你直接写列名时,就不用管取出来的是什么形式的数据;如果你写的是第几列,那就要确保取出来的数据仍然保持矩阵形式,只有这样数据格式才不会变。详情见:E:/1.RStudio/geo_ovarian_GPL96_570/geo_array_ovarian/OVCP926.R

E:/1.RStudio/geo_ovarian_GPL96_570/geo_array_ovarian/SurPairchoose_bio.R

E:/1.RStudio/geo_ovarian_GPL96_570/geo_array_ovarian/SurPairchoose.R

E:/1.RStudio/geo_ovarian_GPL96_570/geo_array_ovarian/SurpairTest.R

9.

Arrayexpress中数据整理经验:

Exp数据基因名需要删掉前一部分,保留到能找到对应entrezid的部分。

GIDe对应-mtab-386_entrezidl.txt文件,找出GID

Label文件对应下载e-mtab-386.sdrf.txt文件,Hybridization.Name列直接改成mirRNA和RNA,Scan_Name列rep改成’.‘为了和Exp中的列名匹配。

10.

R读取数据出现“line 1 appears to contain embedded nulls”的解决方法

由于数据可能在Windows下编辑过,保存的是UTF-16的格式用R读取可能会出现以下问题。这种情况有以下三种解决方案。

解决方法一:fileEncoding="UTF16LE"或者fileEncoding="UTF16"

sampInfo=read.table("/media/xxx/sampInfo_origin.txt", fileEncoding="UTF16LE", sep="\t", header=T)

解决方法二:在Excel中打开,另存为csv文件即可。

解决方法三:在linux系统里将sampInfo_origin.txt用gedit打开,另存为sampInfo_origin01.txt,“Character Encoding” 改为 UTF-8, “Line ending”改为“Unix/Linux”。

sampInfo=read.table("/media/xxx/sampInfo_origin01.txt", sep="\t", header=T)

11.

正常读入TXT文件需要把行名变为第一列

library(dplyr)

Exp <- tibble::rownames_to_column(Exp,"GeneSymbol")

12.

Rstudio报错:

# Error: package or namespace load failed for ‘clusterProfiler’ in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]):

# 载入了名字空间‘rlang’ 0.4.5,但需要的是>= 0.4.6

解决方法:

关了RStudio。

如果这是安装某个包出现的这个语句,删除对应library的package(如果不知道library的路径在哪里,可以看RStudio的Tools-Global Option-General- R version,举例如下)。

使用R来下载对应的包,而不是RStudio。

PS:你没看错,这是RStudio的锅。纠结了1.5h,尝试了多种方式后解决方案

13.将某个数据框中因子标签“0”,“1”变成字符标签“男”,“女”方法

## 添加变量标签以便后续说明

lung$sex<-factor(lung$sex,levels=c(1,2),labels=c("male","female"))

14.分析和预测与 某基因(如MAP3K3) 相互作用的 miRNA的网站

Targetscan (http://www.targetscan.org/vert_71/)、

miRDB (http://www.mirdb.org/cgi-bin/search。 cgi)、

StarBase (http://starbase.sysu.edu.cn/) 

miRTarBase (http://mirtarbase.mbc.nctu.edu.tw/php/index.php)。

15.R 读入TXT文件报错line 87 did not have 10 elements

gse49997_Label<-read.table("gse49997_Label.txt",header=T,stringsAsFactors = F,comment.char = "",sep = "\t")##与普通读入TXT文件相比,增加一个参数限制 comment.char = ""和quote=""即可。

16.去除NA

去除NA值的行na.omit()就行

去除NA值的列 library(dplyr)

             dfpra<-    dfpra%>%select_if(~!any(is.na(.)))

17.多个向量取交集

genes<-Reduce(intersect,list(A,B,C,D...))

上一篇下一篇

猜你喜欢

热点阅读