mummerplot gnuplot 安装(nucmer)

文章详细介绍了如何下载并安装gnuplotv4.6.2,然后利用nucmer进行序列比对,通过delta-filter筛选结果,使用mummerplot生成比对图谱,最后将ps图谱转换为png格式。整个流程涉及生物信息学中基因组比对的关键步骤。

可用ref:https://blog.sciencenet.cn/home.php?mod=space&uid=2970729&do=blog&id=1174911

下载稳定老版本gnuplot v4.6.2

mkdir gnuplot && cd gnuplot

wget https://sourceforge.net/projects/gnuplot/files/gnuplot/4.6.2/gnuplot-4.6.2.tar.gz

tar -zxvf gnuplot-4.6.2.tar.gz

./configure --prefix=$PWD

make

make install

export PATH=/path/to/gnuplot/gnuplot-4.6.2/bin:$PATH

step1: run nucmer for alignment

nucmer --threads 32 --mum -D 5 -p

-D, --diagdiff=uint32 Set the maximum diagonal difference between two adjacent anchors in a cluster (5)

-p, 前缀

subject和query是序列,fasta

step2: filter alignment result

delta-filter -i 85 -l 8000 -o 85 .delta -1 > .best_delta

-i,最小alignment相似性阈值

-l,小写L,最小的alignment长度

-o 和-r,-q相关,可以理解为alignment coverage

-1,数字1,指定是否进行一对一的比对,一个位置(subject或query上)只找一个最佳的比对。特别是对大的基因组一定要加这个选项,否则会异常慢

step3: generate figure using mummerplot

mummerplot -p .best_delta -t postscript

采用上一步过滤后的结果.best_delta画图,这里生成的是ps格式的图,虽然-t可以指定png图,但是结果显示生成的png图分辨率太低。

-t 格式
-s small/large font and dot size

step4: convert ps format to png

/usr/bin/ps2pdf .ps .pdf

convert -density 300 .pdf .png

ps2pdf可以将ps格式的文件转pdf

convert是imagemagick包中的一个子程序,可将pdf转为png

/opt/gridview/slurm/spool/slurmd/job2458238/slurm_script: 行 29: 11855 已杀死 nucmer --maxmatch -c 100 -b 500 -l 50 -p ${PREFIX} ${REF_FASTA} ${QRY_FASTA} ERROR: Could not parse delta file, Mo17_vs_B73_chr1.delta error no: 402 ERROR: Could not parse delta file, Mo17_vs_B73_chr1.filtered.delta error no: 402 WARNING: deprecated switch x11, postscript, png, use -t,--terminalgnuplot: error while loading shared libraries: libjpeg.so.8: cannot open shared object file: No such file or directory WARNING: Using outdated gnuplot, use v4 or later for best results ERROR: Could not read Mo17_vs_B73_chr1.filtered.delta, File is empty Error: /undefinedfilename in (Mo17_vs_B73_chr1.ps) Operand stack: Execution stack: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push Dictionary stack: --dict:1167/1684(ro)(G)-- --dict:0/20(G)-- --dict:77/200(L)-- Current allocation mode is local Last OS error: No such file or directory GPL Ghostscript 9.07: Unrecoverable error, exit code 1 rm: 无法删除"Mo17_vs_B73_chr1.rplot": 没有那个文件或目录 rm: 无法删除"Mo17_vs_B73_chr1.gp": 没有那个文件或目录 rm: 无法删除"Mo17_vs_B73_chr1.fplot": 没有那个文件或目录 rm: 无法删除"Mo17_vs_B73_chr1.ps": 没有那个文件或目录 slurmstepd: error: Detected 1 oom-kill event(s) in step 2458238.batch cgroup. Some of your processes may have been killed by the cgroup out-of-memory handler.
07-03
在使用 **nucmer** 及其可视化工具(如 `mummerplot` 或 `dnadiff`)进行基因组比对与分析时,用户可能会遇到多个错误。以下是对这些问题的详细解释及可能的解决方案: ### Delta 文件解析失败(Could not parse delta file) 当运行 `mummerplot` 或其他基于 `gnuplot` 的可视化工具时,如果出现类似 `Could not parse delta file` 的错误,通常意味着生成的 `.delta` 文件格式不正确或内容为空。这可能是由于 `nucmer` 比对过程中未找到足够的匹配区域,或者比对失败导致输出文件为空。 - 一种常见的原因是参考基因组和查询基因组之间相似度较低,导致无法生成有效的比对结果。 - 建议检查输入 FASTA 文件是否完整,并确认比对参数是否合理,例如使用 `--maxmatch` 参数可以避免复杂区域的过度比对[^1]。 ### 缺少 libjpeg 库(libjpeg.so.8 not found) 该错误表明系统缺少 `libjpeg` 共享库,特别是在调用 `mummerplot` 生成图像时会触发此问题。`mummerplot` 默认尝试将 `.delta` 文件转换为 PostScript 图像,并依赖外部工具如 `ps2pdf` 和 `convert`(ImageMagick 组件)来生成 PNG 格式图像。 - 安装缺失的库,例如在基于 Red Hat 的系统上可执行: ```bash sudo yum install libjpeg-turbo ``` - 或在 Debian/Ubuntu 系统上执行: ```bash sudo apt-get install libjpeg-turbo8 ``` 确保安装后 `.so.8` 文件存在于 `/usr/lib/` 或 `/usr/local/lib/` 路径中[^4]。 ### Gnuplot 错误(gnuplot error) `gnuplot` 是 `mummerplot` 所依赖的绘图引擎。如果系统未安装 `gnuplot`,或版本过低,可能导致绘图失败。 - 在大多数 Linux 发行版中,可以通过包管理器安装: ```bash sudo apt-get install gnuplot ``` - 如果已安装但版本不兼容,建议升级到最新版本。此外,某些发行版默认安装的是 `gnuplot-x11` 或 `gnuplot-nox`,请根据需求选择正确的子包。 ### 文件为空或未找到(File is empty) 此类错误通常出现在 `.delta`、`.coords` 或 `.plot` 文件为空的情况下。这可能是因为 `nucmer` 没有找到任何匹配区域,或者脚本未能正确生成中间文件。 - 首先确认 `nucmer` 是否成功执行,并生成非空的 `.delta` 文件。 - 使用 `show-coords` 工具查看 `.delta` 文件内容: ```bash show-coords -r -c reference.fasta query.fasta.delta > coords.txt ``` - 若 `coords.txt` 文件为空,则说明没有发现显著比对区域,应考虑调整比对参数或更换更相近的参考序列。 ### Slurm 中 OOM(内存不足)问题(oom-kill) 当处理大规模基因组数据时,`nucmer` 可能消耗大量内存,导致 Slurm 作业被操作系统内核的 OOM Killer 终止。 - 增加分配给任务的内存资源,例如在提交作业脚本中指定: ```bash #SBATCH --mem=32G ``` - 对于特别大的基因组,可考虑分段比对或使用 `--prefix` 参数分割参考基因组。 - 此外,优化比对参数以减少内存占用,例如设置 `--maxmatch` 或使用 `-l` 参数降低最小匹配长度。 ### Slurm 错误(Slurm error) Slurm 错误种类繁多,具体表现可能包括作业提交失败、节点分配失败等。常见原因包括资源请求不合理、权限配置错误或 Slurm 控制器异常。 - 检查作业脚本中的资源请求是否合理,包括 CPU 数量、内存大小和时间限制。 - 使用 `scontrol show job <jobid>` 查看详细的作业状态和失败原因。 - 若为集群权限问题,请联系管理员确认账户权限和队列配置[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值