百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

生信学习入门常见错误可能的原因分类总结和求助指南

nanshan 2024-11-05 10:43 35 浏览 0 评论


为前文填坑,也希望能给后续答疑积累个素材,有问题先来查询再提问!

文件或目录找不到

这是常见问题,常见提示有

  • 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

排查思路:

  1. 如果提示中给了文件名,确认与提示名字完全一致的文件是否存在,并确认路径是否正确。如上面第 3 个提示,确认WT1_1.fq文件存在于当前工作路径的 seq 目录下。
  2. 如果未提示文件名,需要自己从命令行参数中找到文件名,再按第 1 条思路排查
  3. 不管是哪个情况,要坚信是自己提供的文件名字的问题或文件路径与自己的工作路径不匹配的问题。

提问建议:

如果自己按上面的排查,没发现问题,在群里提问时要注意 5 点:

  1. 注明:我知道这个是文件路径问题,但我查看了,文件路径和名字都没错。要不然得到的回答还是要你先排查这一步。
  2. 截图时完整的截取运行的命令和报错信息,不要只截取报错信息或只截取自己认为的核心报错信息。最简单的截图方式:截取满屏、标记重点
  3. 同时也截取下对应目录的文件列表,方便他人一起看下是不是文件名中字符没分辨清楚,如1与l或空格等特殊字符的存在。如下面这个-在 R 中做了转换,致使匹配不上。

  4. 如果目录中文件太多,一定截取到最近的区域,如下面截图所示就是一个错误例子,没有到W部分不能判断文件是否存在。应该按名字排序截取到v,w,x开头的文件处。


  5. 提问不能太随意。
  6. 自己重视,别人才能重视。


文件为空

不太常见,通常为前面步骤运行出错导致的。需要打开文件看下,确认是否为空(最常见的可能性)还是有特殊格式(如#号开头或引号不对等),再继续向前翻看运行记录,看下是哪步出的错。

小技巧:搜索这个文件名(或文件名的一部分),通常可以快速定位到输出这个文件的步骤或代码部分。

  • Error in read.table(file = “result/alpha/otu_group_exist.txt”, sep=”\t”: 输入中没有多出的行

画图时输出文件已打开,不能覆盖

导致下面的问题最常见的原因是:之前运行过命令,对应的图已经生成并且正处于打开状态,程序不能覆盖,一般只发生在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文件

命令未找到

排查思路:

  1. 对应的软件没有安装。
  2. 软件安装后,没有放到环境变量中,具体见PATH和path,傻傻分不清。如果是conda安装,则查看是否在对应的
  3. 如果不确定是 1 还是 2 的问题,可使用locate或find命令查看命令是否已安装,具体见Linux下那些查找命令。
  4. 软件命令输入错误,如大小写混淆等。
  5. 软件和参数之间没有加空格。
  • bash: SOAPdenovo: 未找到命令...
  • -bash: ls-l: command not found

TAB 不能填充

TAB填充是 Linux 下输入命令和文件名比较方便快速且不容易出错的快捷按键。TAB键会自动补全环境变量中的程序名字和作为参数时的文件和路径名。所以下面截图中,只输入文件名就按TAB键是没有反应的。

多行程序未能正确运行

不少程序因为太长需要多行显示,在运行时最好是全选而非一句句的运行。单句一个个点运行时就容易出现下面的问题,多点了导致参数赋值出错。

更多的时候,会出现这样的错误,中间少点了某一句,致使程序一直未能如期运行。在Terminal运行处,出现了很多不结束的大于号(>)开头的行,很多命令都被卡住了,要么一直运行不了,要么运行报错。

这时,果断按下Ctrl+C终止当前的输入,然后从最开始卡住处重新运行。

参数赋值问题

参数和命令之间漏掉空格

  • bash: cd/c/amplicon: No such file or directory

参数忘记赋值。一般出现在参数值以公共变量形式出现时,公共变量如wd或db等未初始化导致的。当然从这个截图我们看不出问题具体是什么,因为截图不完整,只能是猜测,或通过进一步与提问者沟通了解问题所在。

参数写错: 比如-l误看做-1,自己敲入命令时就会出错;或-c, -C, -p, -P等大小写问题;或不同系统软件参数略有不同导致的。既然看到了illegal option,首先坚信是自己参数输入错了,然后查看下对应命令的帮助信息,看看最相近的参数名字是什么,按需要修改即可。

  • cp: illegal option — 1

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 `lt;-.data.frame`(`*tmp*`, variable, value = integer(0)) :
  replacement has 0 rows, data has 58
Calls: lt;- -> lt;-.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) : 'log10' 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) : 'by' must specify a uniquely valid column
Calls: merge -> merge.data.frame -> fix.by
Execution halted
请检查输入数据格式

Error: object 'Value' 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 'gree'
Calls: scale_colour_gradient ... seq_gradient_pal -> gradient_n_pal -> colour_ramp -> <Anonymous>
Execution halted
请提供正确的颜色名字, green不是gree

Error in colSums(temp_data) :
  'x' 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 'type' (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)) : 'x' must be numeric
Calls: pheatmap -> cluster_mat -> as.dist -> cor
Execution halted
热图必须是数值矩阵,除第一行和第一列,其它的元素都必须是数值。

遇到错误多调试,至少在初学时,坚信是自己的错,不是程序的错。

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: