生信学习学的是什么?常识!
学生信,不是贪多的,而是求精的!
为前文填坑,也希望能给后续答疑积累个素材,有问题先来查询再提问!
文件或目录找不到
这是常见问题,常见提示有
No such file or directory
Error in file(file, “rt”):无法打开链接
Fatal error: Unable to open file for reading (seq/WT1_1.fq)
Fatal error: Unable to read from file (C:Program file/Git/usearch/rdp_16s_v16_sp.fa)
mv: cannot stat ‘circlize.pdf’: No such file or directory
排查思路:
如果提示中给了文件名,确认与提示名字完全一致的文件是否存在,并确认路径是否正确。如上面第 3 个提示,确认WT1_1.fq
文件存在于当前工作路径的 seq 目录下
。
如果未提示文件名,需要自己从命令行参数中找到文件名,再按第 1 条思路排查
不管是哪个情况,要坚信是自己提供的文件名字
的问题或文件路径与自己的工作路径不匹配
的问题。
提问建议:
如果自己按上面的排查,没发现问题,在群里提问时要注意 5
点:
注明:我知道这个是文件路径问题,但我查看了,文件路径和名字都没错。要不然得到的回答还是要你先排查这一步。
截图时完整的截取运行的命令和报错信息,不要只截取报错信息或只截取自己认为的核心报错信息。最简单的截图方式:截取满屏、标记重点。
同时也截取下对应目录的文件列表,方便他人一起看下是不是文件名中字符没分辨清楚,如1与l
或空格
等特殊字符的存在。如下面这个-
在 R 中做了转换,致使匹配不上。
如果目录中文件太多,一定截取到最近的区域,如下面截图所示就是一个错误例子,没有到W
部分不能判断文件是否存在。应该按名字排序截取到v,w,x
开头的文件处。
提问不能太随意。
自己重视,别人才能重视。
文件为空
不太常见,通常为前面步骤运行出错导致的。需要打开文件看下,确认是否为空(最常见的可能性)还是有特殊格式(如#
号开头或引号
不对等),再继续向前翻看运行记录,看下是哪步出的错。
小技巧:搜索这个文件名(或文件名的一部分),通常可以快速定位到输出这个文件的步骤或代码部分。
画图时输出文件已打开,不能覆盖
导致下面的问题最常见的原因是:之前运行过命令,对应的图已经生成并且正处于打开状态,程序不能覆盖,一般只发生在Windows
平台下。如果文件确实已打开,就关掉对应的PDF
文件,再运行一次。
另外一种可能是:输出路径的目录没有创建,需要创建下。这时就是一层层目录去查看。
Error in pdf(x, …): 无法打开’result/beta/bray_curtiis.txt.pheatmap.pdf’文件
Error in grDevices::pdf(file=filename) 无法打开result/alpha/alpha_boxplot_riichness.pdf
文件
命令未找到
排查思路:
对应的软件没有安装。
软件安装后,没有放到环境变量中,具体见PATH和path,傻傻分不清。如果是conda
安装,则查看是否在对应的
如果不确定是 1
还是 2
的问题,可使用locate
或find
命令查看命令是否已安装,具体见Linux下那些查找命令。
软件命令输入错误,如大小写混淆等。
软件和参数之间没有加空格。
TAB 不能填充
TAB
填充是 Linux 下输入命令和文件名比较方便快速且不容易出错的快捷按键。TAB
键会自动补全环境变量中的程序
名字和作为参数时的文件和路径名
。所以下面截图中,只输入文件名就按TAB
键是没有反应的。
多行程序未能正确运行
不少程序因为太长需要多行显示,在运行时最好是全选而非一句句的运行。单句一个个点运行时就容易出现下面的问题,多点了导致参数赋值出错。
更多的时候,会出现这样的错误,中间少点了某一句,致使程序一直未能如期运行。在Terminal
运行处,出现了很多不结束的大于号(>
)开头的行,很多命令都被卡住了,要么一直运行不了,要么运行报错。
这时,果断按下Ctrl+C
终止当前的输入,然后从最开始卡住处重新运行。
参数赋值问题
参数和命令之间漏掉空格
参数忘记赋值。一般出现在参数值以公共变量形式出现时,公共变量如wd
或db
等未初始化导致的。当然从这个截图我们看不出问题具体是什么,因为截图不完整,只能是猜测,或通过进一步与提问者沟通了解问题所在。
参数写错: 比如-l
误看做-1
,自己敲入命令时就会出错;或-c, -C
, -p, -P
等大小写问题;或不同系统软件参数略有不同导致的。既然看到了illegal option
,首先坚信是自己参数输入错了,然后查看下对应命令的帮助信息,看看最相近的参数名字是什么,按需要修改即可。
R的错误
Error: unexpected numeric constant in:
"if (0 != 0){data_m$0.2"
Execution halted
列名字不能为数字或者以数字开头
Error in read.table(file = "1509195237.txt", :duplicate 'row.names' are not allowed
Execution halted
请对给定数据矩阵第一列的重复元素进行预处理,一般可以增加序号进行区分或重复的属性合并
Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, :line 1 did not have 3 elements
Calls: read.table -> scan
Execution halted
请确认矩阵每一行列数是否相同,注意列分隔符是否为TAB键
Error in read.table(file = "/var/www/html/ImageGP/Public/source/lines/1510560834.txt", :more columns than column names
Execution halted
请确认矩阵每一行列数是否相同,注意列分隔符是否为TAB键
Error in `$<-.data.frame`(`*tmp*`, variable, value = integer(0)) :replacement has 0 rows, data has 58
Calls: $<- -> $<-.data.frame
Execution halted
检查给定的变量名字(也就是列名字)是否存在
Error in `levels<-`(`*tmp*`, value = if (nl == nL) as.character(labels) else paste0(labels, :factor level [4] is duplicated
Calls: factor
Execution halted
输入的variable order 有重复元素;variable order为对应列的唯一元素的有序排列
Warning message:
NAs introduced by coercion
Error: Discrete value supplied to continuous scale
Execution halted
数据是离散的(discrete, 字符型)却选择了continuous类型 (数值型)
Error in Math.factor(data$GeneRatio) : &#39;log10&#39; not meaningful for factors
Execution halted
请确认指定使用对数处理的列是不是只含有数字
Error in order(NULL, c(6L, 2L, 2L, 6L, 7L, 7L, 6L, 3L, 5L, 4L, 1L, 4L), :argument 1 is not a vector
Calls: [ -> [.data.frame -> order -> do.call -> order
Execution halted
请提供合法的列名字
Error in log10(data$Pvalue) :non-numeric argument to mathematical function
Execution halted
请确认给定的列为数值列
Error: unexpected symbol in "uwid = 70cm"
Execution halted
请不用填写单位
Error in fix.by(by.x, x) : &#39;by&#39; must specify a uniquely valid column
Calls: merge -> merge.data.frame -> fix.by
Execution halted
请检查输入数据格式
Error: object &#39;Value&#39; not found
Execution halted
请提供数据中存在的列名字,注意大小写;特殊地,对线图,数值列的列名字必须是value
Error in order(data$term, data$Ratio) : argument 1 is not a vector
Calls: [ -> [.data.frame -> order
Execution halted
请提供数据中存在的列名字,注意大小写;
Error in grDevices::col2rgb(colors, alpha = alpha) :invalid color name &#39;gree&#39;
Calls: scale_colour_gradient ... seq_gradient_pal -> gradient_n_pal -> colour_ramp ->
Execution halted
请提供正确的颜色名字, green不是gree
Error in colSums(temp_data) :&#39;x&#39; must be an array of at least two dimensions
Calls: upset -> FindMostFreq -> colSums
Execution halted
UpSetView 需要至少3列 (Wide format)
Error in max(sapply(as.vector(unique(data_m$qvalue)), nchar)) :invalid &#39;type&#39; (list) of argument
Execution halted
请确认给定的列 (variable)是否正确。
Error in if (-90 ~ 90 != 0) { : argument is not interpretable as logical
In addition: Warning message:
In if (-90 ~ 90 != 0) { :the condition has length > 1 and only the first element will be used
Execution halted
角度只需给一个数字就可以。没有参数接受一个范围值,范围只用于提示。
Error in hclust(d, method = method) :NA/NaN/Inf in foreign function call (arg 11)
Calls: pheatmap -> cluster_mat -> hclust
Execution halted
热图层级聚类分析时不允许NA值的存在。
Error: unexpected symbol in "ann_colors = list(Type=c(Pain and"
Execution halted
热图自定义注释颜色格式不对,请参照提示。
Error: cannot allocate vector of size 15.2 Gb
Execution halted
热图矩阵太大。
Error in cor(t(mat)) : &#39;x&#39; must be numeric
Calls: pheatmap -> cluster_mat -> as.dist -> cor
Execution halted
热图必须是数值矩阵,除第一行和第一列,其它的元素都必须是数值。
遇到错误多调试,至少在初学时,坚信是自己的错,不是程序的错。
往期精品(点击图片直达文字对应教程)
后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集
(请备注姓名-学校/企业-职务等)