记一个神奇的WAS问题:sibuswsgw-sibuswsgw_console.jar invalid LOC header (bad signature)

今天晚上,出现了一个神奇的WAS问题,详细问题异常信息如下:

[15-8-6 22:13:29:146 CST] 00000013 ApplicationMg A   WSVR0203I: 应用程序:isclite 应用程序构建级别:WAS61.WSC [cf471333.01]
[15-8-6 22:13:32:266 CST] 00000013 CompoundClass E   WSVR0120E: 处理 E:\IBM\WebSphere\AppServer\systemApps\isclite.ear\isclite.war\WEB-INF\lib\sibuswsgw-sibuswsgw_console.jar 时发生错误
java.lang.InternalError: jzentry == 0,
 jzfile = 196639408,
 total = 80,
 name = E:\IBM\WebSphere\AppServer\systemApps\isclite.ear\isclite.war\WEB-INF\lib\sibuswsgw-sibuswsgw_console.jar,
 i = 6,
 message = invalid LOC header (bad signature)
    at java.util.zip.ZipFile$4.nextElement(ZipFile.java:531)
    at java.util.zip.ZipFile$4.nextElement(ZipFile.java:517)
    at java.util.jar.JarFile$1.nextElement(JarFile.java:305)
    at java.util.jar.JarFile$1.nextElement(JarFile.java:304)
    at com.ibm.ws.classloader.SinglePathClassProvider.buildContentsCache(SinglePathClassProvider.java:598)
    at com.ibm.ws.classloader.SinglePathClassProvider.<init>(SinglePathClassProvider.java:114)
    at com.ibm.ws.classloader.SinglePathClassProvider.create(SinglePathClassProvider.java:141)
    at com.ibm.ws.classloader.CompoundClassLoader.addPaths(CompoundClassLoader.java:251)
    at com.ibm.ws.classloader.ReloadableClassLoader.createLoader(ReloadableClassLoader.java:108)
    at com.ibm.ws.classloader.JarClassLoader.<init>(JarClassLoader.java:53)
    at com.ibm.ws.classloader.ClassGraph.processWARModule(ClassGraph.java:375)
    at com.ibm.ws.classloader.ClassGraph.createClassLoaders(ClassGraph.java:487)
    at com.ibm.ws.classloader.ClassGraph.calculate(ClassGraph.java:247)
    at com.ibm.ws.classloader.ClassLoaderManager.initialize(ClassLoaderManager.java:225)
    at com.ibm.ws.classloader.ClassLoaderManager.<init>(ClassLoaderManager.java:176)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:761)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:945)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl$AppInitializer.run(ApplicationMgrImpl.java:2120)
    at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:342)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1595)

问题现象描述:WAS的控制台无法正常登录,无论是访问9060,还是9043的网址,都提示找不到xxx.jsp,甚至连logonError.jsp也找不到,是不是挺奇怪的?还有奇怪的是,应用程序竟然还是可以正常访问的,说明控制台是出问题了。

invalid LOC header (bad signature),咋一看,还以为是WAS授权到期了呢

之前很早就听说WAS有试用期的问题,于是,网上搜罗了一番,找到如下的试用期过期异常:

WSVR0025I: Creating temporary product license
WSVR0027I: The product will expire in 60 days.
ADMU0116I: Tool information is being logged in file
           /usr/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/start
Server.log
ADMU0128I: Starting tool with the AppSrv01 profile
ADMU3100I: Reading configuration for server: server1
ADMU3200I: Server launched. Waiting for initialization status.
ADMU3000I: Server server1 open for e-business; process id is 13756

貌似和我遇到的问题孑然不同,网上也搜不到任何关于sibuswsgw-sibuswsgw_console.jar文件的线索。那么,好吧,好奇心驱使我想弄个明白,于是晚上的业余时间就开始往里搭了

首先,这台服务器上的WebSphere安装了两个AppSrv节点,既然AppSrv01启动失败,那我就试试AppSrv02吧

其实遇到这个问题,也并非纯属巧合,事情的经过是这样的,晚上闲来无事,我登录AppSrv01控制台修改了一些参数设置,具体哪些我还真没详细记录,根据经验能修改的我都扒拉了一遍全部改了,这不一定算是功劳,但肯定不能算恶意搞破坏。

正当我兴致勃勃准备迎接飞奔的AppSrv01时,杯具出现了,重启之后控制台进不去了,各种500,提示找不到logon.jsp,甚至找不到logonError.jsp,这些都是WAS自带的程序,怎么会无缘无故丢了呢,我修改的参数怎么想也不会影响到这里啊

越想越奇怪,但是我修改参数之前的确又都是可以的,无论是控制台,还是应用程序,都是可以正常访问的。并且从时间上来看,晚上22点之后了,该下班的、不该下班的早都下班了,除了我自己,估计是没有第2个人来捣鼓了

一般遇到问题,首先想到的是度娘,如果她帮不到我,再找谷哥,如果还是不行,就只能拍自己脑袋了

既然是在我修改参数之后出现的问题,也有可能是修改的时候出现了手误,如果真的是这样,恢复参数就可以解决问题。于是,我把WAS相关的配置文件都检查了一遍,但是发现常用的那些参数值都没有问题,看来这条路是走不通了

WAS有个很好的设计,日志系统比较完善,除了问题应该是会有日志的吧。

查看了server和ffdc的日志,的确找到一些线索,关键的invalid LOC header (bad signature),网上虽然没有说WAS相关的问题,但很多和Maven相关的,大体意思就是文件被破坏了,日志里也是有大量java.util.zip.ZipFile的异常,大差不离啊

文件被破坏了,那就去看看sibuswsgw-sibuswsgw_console.jar文件吧,显示日期和WAS安装日期完全一样,肉眼看不出来是被人工替换还是被恶意程序篡改,既然这样,那就从别的服务器找一个同名文件替换了试试吧

找了同名的sibuswsgw-sibuswsgw_console.jar文件替换,重启AppSrv01之后,控制台就可以正常访问了。

问题解决之后,写下这篇文章,备忘,备忘,备忘,重要的事情要说3遍的……

日志”Medaka鐗堟湰: Invalid option: -v.“”ERROR: 闇€瑕丮edaka 2.1.0锛屽綋鍓嶇増鏈笉鍏煎“”Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. Invalid option: --chunk_len. “”===== [Fri Nov 21 17:43:53 CST 2025] 合并ONT读长 ===== 合并完成: 总大小 14G ===== [Fri Nov 21 17:44:26 CST 2025] 创建参考基因组索引 ===== ===== [Fri Nov 21 17:44:28 CST 2025] 选择Medaka模型 ===== 使用模型: r1041_e82_400bps_sup_v4.2.0 ===== [Fri Nov 21 17:44:28 CST 2025] 开始分染色体运行Medaka ===== 处理染色体: ctg000070_np12 (1/66) WARNING: 染色体 ctg000070_np12 处理未生成结果文件 处理染色体: ctg000090_np12 (2/66) WARNING: 染色体 ctg000090_np12 处理未生成结果文件 处理染色体: ctg000060_np12 (3/66) WARNING: 染色体 ctg000060_np12 处理未生成结果文件 处理染色体: ctg000030_np12 (4/66) WARNING: 染色体 ctg000030_np12 处理未生成结果文件 处理染色体: ctg000040_np12 (5/66) WARNING: 染色体 ctg000040_np12 处理未生成结果文件 处理染色体: ctg000020_np12 (6/66) WARNING: 染色体 ctg000020_np12 处理未生成结果文件 处理染色体: ctg000080_np12 (7/66) WARNING: 染色体 ctg000080_np12 处理未生成结果文件 处理染色体: ctg000000_np12 (8/66) WARNING: 染色体 ctg000000_np12 处理未生成结果文件 处理染色体: ctg000110_np12 (9/66) WARNING: 染色体 ctg000110_np12 处理未生成结果文件 处理染色体: ctg000130_np12 (10/66) WARNING: 染色体 ctg000130_np12 处理未生成结果文件 处理染色体: ctg000100_np12 (11/66) WARNING: 染色体 ctg000100_np12 处理未生成结果文件 处理染色体: ctg000120_np12 (12/66) WARNING: 染色体 ctg000120_np12 处理未生成结果文件 处理染色体: ctg000140_np12 (13/66) WARNING: 染色体 ctg000140_np12 处理未生成结果文件 处理染色体: ctg000010_np12 (14/66) WARNING: 染色体 ctg000010_np12 处理未生成结果文件 处理染色体: ctg000050_np12 (15/66) WARNING: 染色体 ctg000050_np12 处理未生成结果文件 处理染色体: ctg000280_np12 (16/66) WARNING: 染色体 ctg000280_np12 处理未生成结果文件 处理染色体: ctg000170_np12 (17/66) WARNING: 染色体 ctg000170_np12 处理未生成结果文件 处理染色体: ctg000320_np12 (18/66) WARNING: 染色体 ctg000320_np12 处理未生成结果文件 处理染色体: ctg000180_np12 (19/66) WARNING: 染色体 ctg000180_np12 处理未生成结果文件 处理染色体: ctg000300_np12 (20/66) WARNING: 染色体 ctg000300_np12 处理未生成结果文件 处理染色体: ctg000160_np12 (21/66) WARNING: 染色体 ctg000160_np12 处理未生成结果文件 处理染色体: ctg000250_np12 (22/66) WARNING: 染色体 ctg000250_np12 处理未生成结果文件 处理染色体: ctg000220_np12 (23/66) WARNING: 染色体 ctg000220_np12 处理未生成结果文件 处理染色体: ctg000150_np12 (24/66) WARNING: 染色体 ctg000150_np12 处理未生成结果文件 处理染色体: ctg000240_np12 (25/66) WARNING: 染色体 ctg000240_np12 处理未生成结果文件 处理染色体: ctg000340_np12 (26/66) WARNING: 染色体 ctg000340_np12 处理未生成结果文件 处理染色体: ctg000210_np12 (27/66) WARNING: 染色体 ctg000210_np12 处理未生成结果文件 处理染色体: ctg000200_np12 (28/66) WARNING: 染色体 ctg000200_np12 处理未生成结果文件 处理染色体: ctg000260_np12 (29/66) WARNING: 染色体 ctg000260_np12 处理未生成结果文件 处理染色体: ctg000310_np12 (30/66) WARNING: 染色体 ctg000310_np12 处理未生成结果文件 处理染色体: ctg000230_np12 (31/66) WARNING: 染色体 ctg000230_np12 处理未生成结果文件 处理染色体: ctg000330_np12 (32/66) WARNING: 染色体 ctg000330_np12 处理未生成结果文件 处理染色体: ctg000290_np12 (33/66) WARNING: 染色体 ctg000290_np12 处理未生成结果文件 处理染色体: ctg000350_np12 (34/66) WARNING: 染色体 ctg000350_np12 处理未生成结果文件 处理染色体: ctg000190_np12 (35/66) WARNING: 染色体 ctg000190_np12 处理未生成结果文件 处理染色体: ctg000270_np12 (36/66) WARNING: 染色体 ctg000270_np12 处理未生成结果文件 处理染色体: ctg000430_np12 (37/66) WARNING: 染色体 ctg000430_np12 处理未生成结果文件 处理染色体: ctg000390_np12 (38/66) WARNING: 染色体 ctg000390_np12 处理未生成结果文件 处理染色体: ctg000440_np12 (39/66) WARNING: 染色体 ctg000440_np12 处理未生成结果文件 处理染色体: ctg000420_np12 (40/66) WARNING: 染色体 ctg000420_np12 处理未生成结果文件 处理染色体: ctg000460_np12 (41/66) WARNING: 染色体 ctg000460_np12 处理未生成结果文件 处理染色体: ctg000370_np12 (42/66) WARNING: 染色体 ctg000370_np12 处理未生成结果文件 处理染色体: ctg000360_np12 (43/66) WARNING: 染色体 ctg000360_np12 处理未生成结果文件 处理染色体: ctg000410_np12 (44/66) WARNING: 染色体 ctg000410_np12 处理未生成结果文件 处理染色体: ctg000450_np12 (45/66) WARNING: 染色体 ctg000450_np12 处理未生成结果文件 处理染色体: ctg000400_np12 (46/66) WARNING: 染色体 ctg000400_np12 处理未生成结果文件 处理染色体: ctg000380_np12 (47/66) WARNING: 染色体 ctg000380_np12 处理未生成结果文件 处理染色体: ctg000480_np12 (48/66) WARNING: 染色体 ctg000480_np12 处理未生成结果文件 处理染色体: ctg000590_np12 (49/66) WARNING: 染色体 ctg000590_np12 处理未生成结果文件 处理染色体: ctg000600_np12 (50/66) WARNING: 染色体 ctg000600_np12 处理未生成结果文件 处理染色体: ctg000620_np12 (51/66) WARNING: 染色体 ctg000620_np12 处理未生成结果文件 处理染色体: ctg000500_np12 (52/66) WARNING: 染色体 ctg000500_np12 处理未生成结果文件 处理染色体: ctg000530_np12 (53/66) WARNING: 染色体 ctg000530_np12 处理未生成结果文件 处理染色体: ctg000580_np12 (54/66) WARNING: 染色体 ctg000580_np12 处理未生成结果文件 处理染色体: ctg000630_np12 (55/66) WARNING: 染色体 ctg000630_np12 处理未生成结果文件 处理染色体: ctg000490_np12 (56/66) WARNING: 染色体 ctg000490_np12 处理未生成结果文件 处理染色体: ctg000610_np12 (57/66) WARNING: 染色体 ctg000610_np12 处理未生成结果文件 处理染色体: ctg000550_np12 (58/66) WARNING: 染色体 ctg000550_np12 处理未生成结果文件 处理染色体: ctg000570_np12 (59/66) WARNING: 染色体 ctg000570_np12 处理未生成结果文件 处理染色体: ctg000540_np12 (60/66) WARNING: 染色体 ctg000540_np12 处理未生成结果文件 处理染色体: ctg000560_np12 (61/66) WARNING: 染色体 ctg000560_np12 处理未生成结果文件 处理染色体: ctg000520_np12 (62/66) WARNING: 染色体 ctg000520_np12 处理未生成结果文件 处理染色体: ctg000510_np12 (63/66) WARNING: 染色体 ctg000510_np12 处理未生成结果文件 处理染色体: ctg000470_np12 (64/66) WARNING: 染色体 ctg000470_np12 处理未生成结果文件 处理染色体: ctg000650_np12 (65/66) WARNING: 染色体 ctg000650_np12 处理未生成结果文件 处理染色体: ctg000640_np12 (66/66) WARNING: 染色体 ctg000640_np12 处理未生成结果文件 ===== [Fri Nov 21 17:57:06 CST 2025] 合并染色体结果 ===== WARNING: 缺失染色体 ctg000070_np12 的结果 WARNING: 缺失染色体 ctg000090_np12 的结果 WARNING: 缺失染色体 ctg000060_np12 的结果 WARNING: 缺失染色体 ctg000030_np12 的结果 WARNING: 缺失染色体 ctg000040_np12 的结果 WARNING: 缺失染色体 ctg000020_np12 的结果 WARNING: 缺失染色体 ctg000080_np12 的结果 WARNING: 缺失染色体 ctg000000_np12 的结果 WARNING: 缺失染色体 ctg000110_np12 的结果 WARNING: 缺失染色体 ctg000130_np12 的结果 WARNING: 缺失染色体 ctg000100_np12 的结果 WARNING: 缺失染色体 ctg000120_np12 的结果 WARNING: 缺失染色体 ctg000140_np12 的结果 WARNING: 缺失染色体 ctg000010_np12 的结果 WARNING: 缺失染色体 ctg000050_np12 的结果 WARNING: 缺失染色体 ctg000280_np12 的结果 WARNING: 缺失染色体 ctg000170_np12 的结果 WARNING: 缺失染色体 ctg000320_np12 的结果 WARNING: 缺失染色体 ctg000180_np12 的结果 WARNING: 缺失染色体 ctg000300_np12 的结果 WARNING: 缺失染色体 ctg000160_np12 的结果 WARNING: 缺失染色体 ctg000250_np12 的结果 WARNING: 缺失染色体 ctg000220_np12 的结果 WARNING: 缺失染色体 ctg000150_np12 的结果 WARNING: 缺失染色体 ctg000240_np12 的结果 WARNING: 缺失染色体 ctg000340_np12 的结果 WARNING: 缺失染色体 ctg000210_np12 的结果 WARNING: 缺失染色体 ctg000200_np12 的结果 WARNING: 缺失染色体 ctg000260_np12 的结果 WARNING: 缺失染色体 ctg000310_np12 的结果 WARNING: 缺失染色体 ctg000230_np12 的结果 WARNING: 缺失染色体 ctg000330_np12 的结果 WARNING: 缺失染色体 ctg000290_np12 的结果 WARNING: 缺失染色体 ctg000350_np12 的结果 WARNING: 缺失染色体 ctg000190_np12 的结果 WARNING: 缺失染色体 ctg000270_np12 的结果 WARNING: 缺失染色体 ctg000430_np12 的结果 WARNING: 缺失染色体 ctg000390_np12 的结果 WARNING: 缺失染色体 ctg000440_np12 的结果 WARNING: 缺失染色体 ctg000420_np12 的结果 WARNING: 缺失染色体 ctg000460_np12 的结果 WARNING: 缺失染色体 ctg000370_np12 的结果 WARNING: 缺失染色体 ctg000360_np12 的结果 WARNING: 缺失染色体 ctg000410_np12 的结果 WARNING: 缺失染色体 ctg000450_np12 的结果 WARNING: 缺失染色体 ctg000400_np12 的结果 WARNING: 缺失染色体 ctg000380_np12 的结果 WARNING: 缺失染色体 ctg000480_np12 的结果 WARNING: 缺失染色体 ctg000590_np12 的结果 WARNING: 缺失染色体 ctg000600_np12 的结果 WARNING: 缺失染色体 ctg000620_np12 的结果 WARNING: 缺失染色体 ctg000500_np12 的结果 WARNING: 缺失染色体 ctg000530_np12 的结果 WARNING: 缺失染色体 ctg000580_np12 的结果 WARNING: 缺失染色体 ctg000630_np12 的结果 WARNING: 缺失染色体 ctg000490_np12 的结果 WARNING: 缺失染色体 ctg000610_np12 的结果 WARNING: 缺失染色体 ctg000550_np12 的结果 WARNING: 缺失染色体 ctg000570_np12 的结果 WARNING: 缺失染色体 ctg000540_np12 的结果 WARNING: 缺失染色体 ctg000560_np12 的结果 WARNING: 缺失染色体 ctg000520_np12 的结果 WARNING: 缺失染色体 ctg000510_np12 的结果 WARNING: 缺失染色体 ctg000470_np12 的结果 WARNING: 缺失染色体 ctg000650_np12 的结果 WARNING: 缺失染色体 ctg000640_np12 的结果 ===== [Fri Nov 21 17:57:06 CST 2025] 生成最终报告 ===== ===== [Fri Nov 21 17:57:11 CST 2025] Medaka矫正流程完成 ===== “
最新发布
11-22
<think> 我们遇到了两个主要问题: 1. Medaka版本检查失败:日志显示“Medaka鐗堟湰: Invalid option: -v”,说明`medaka_consensus -v`命令在您的环境中无效。 2. 参数不兼容:旧版参数(如--chunk_len)在2.1.0版本中已废弃。 解决方案: 1. 调整版本检查方式:Medaka 2.1.0可能使用`medaka_consensus --version`或`medaka --version`。 2. 使用Medaka 2.1.0支持的参数:根据官方文档,2.1.0版本参数有较大变化。 重新设计脚本: 步骤1:确定正确的版本检查命令 尝试以下命令之一: medaka_consensus --version medaka --version 步骤2:查阅Medaka 2.1.0文档,更新参数: 旧参数: --chunk_len -> 新版使用`-b`或`--chunk_size` --chunk_ovlp -> 新版使用`-c`或`--chunk_overlap` --region_padding -> 新版使用`-p`或`--padding` 步骤3:调整模型名称(根据实际可用模型) 步骤4:由于分染色体处理,注意每个染色体运行medaka_consensus时,参考序列是单条染色体。 以下是修正后的脚本: </think>根据日志分析,问题主要在于您使用的Medaka版本参数与脚本不兼容。以下是针对Medaka 2.1.0的优化脚本: ```bash #!/bin/bash #SBATCH -p amd_256 #SBATCH -N 1 #SBATCH -n 16 #SBATCH -t 48:00:00 #SBATCH --mem=128G #SBATCH -J medaka_polish #SBATCH -o /public1/home/scb3201/rawdata/Medaka/logs/%j_medaka.out #SBATCH -e /public1/home/scb3201/rawdata/Medaka/logs/%j_medaka.err # ========== Medaka 2.1.0兼容脚本 ========== # 修复问题: # 1. 版本检测参数变更 # 2. 命令参数更新 # 3. 模型选择逻辑优化 # 环境初始化 source ~/.bashrc conda activate medaka_legacy || { echo "ERROR: medaka_legacy环境激活失败" >&2 exit 1 } # Medaka 2.1.0版本检测 if ! medaka_consensus --version &>/dev/null; then echo "ERROR: Medaka命令不可用" >&2 exit 2 fi MEDAKA_VERSION=$(medaka_consensus --version 2>&1 | head -1) echo "检测到Medaka版本: ${MEDAKA_VERSION}" # 设置目录路径 WORK_DIR="/public1/home/scb3201/rawdata/Medaka" LOG_DIR="/public1/home/scb3201/rawdata/Medaka/logs" RESULTS_DIR="/public1/home/scb3201/results/genome/Medaka" ONT_DIR="/public1/home/scb3201/ONT_BGI_RNA-seq/not/ONT" NEXTPOLISH_FASTA="/public1/home/scb3201/results/genome/nextpolish/genome.nextpolish.fasta" # 创建目录结构 mkdir -p "${LOG_DIR}" mkdir -p "${RESULTS_DIR}/intermediate" mkdir -p "${RESULTS_DIR}/final_consensus" # 输入文件定义 ONT_PASS="${ONT_DIR}/DL.pass.fq.gz" ONT_FAIL="${ONT_DIR}/DL.fail.fq.gz" COMBINED_READS="${RESULTS_DIR}/intermediate/combined_ont.fq.gz" # 1. 合并ONT读长 echo "===== [$(date)] 合并ONT读长 =====" if [ ! -f "${COMBINED_READS}" ]; then cat "${ONT_PASS}" "${ONT_FAIL}" > "${COMBINED_READS}" 2> "${LOG_DIR}/combine_reads.err" if [ $? -ne 0 ]; then echo "ERROR: 合并ONT读长失败" >&2 exit 3 fi echo "合并完成: 总大小 $(du -h ${COMBINED_READS} | cut -f1)" else echo "使用已存在的合并文件: ${COMBINED_READS}" fi # 2. 创建参考基因组索引 echo "===== [$(date)] 创建参考基因组索引 =====" if [ ! -f "${NEXTPOLISH_FASTA}.fai" ]; then samtools faidx "${NEXTPOLISH_FASTA}" 2> "${LOG_DIR}/faidx.err" if [ $? -ne 0 ]; then echo "ERROR: 创建FASTA索引失败" >&2 exit 4 fi fi # 3. 选择Medaka模型 echo "===== [$(date)] 选择Medaka模型 =====" MODEL="r1041_e82_400bps_sup_v4.2.0" # 验证模型可用性 if ! medaka tools list_models | grep -q "${MODEL}"; then echo "WARNING: 模型${MODEL}不可用,使用默认模型" MODEL=$(medaka tools list_models | head -1) fi echo "使用模型: ${MODEL}" # 4. 分染色体运行Medaka(兼容2.1.0) echo "===== [$(date)] 开始分染色体运行Medaka =====" chromosomes=($(cut -f1 "${NEXTPOLISH_FASTA}.fai")) total_chrom=${#chromosomes[@]} completed=0 # 测试单个染色体(调试用) # chromosomes=("ctg000070_np12") for chrom in "${chromosomes[@]}"; do ((completed++)) chrom_dir="${RESULTS_DIR}/intermediate/${chrom}" consensus_out="${chrom_dir}/consensus.fasta" echo "处理染色体: ${chrom} (${completed}/${total_chrom})" mkdir -p "${chrom_dir}" # 提取当前染色体序列 samtools faidx "${NEXTPOLISH_FASTA}" "${chrom}" > "${chrom_dir}/${chrom}.fasta" 2>> "${LOG_DIR}/extract_chrom.err" # 运行Medaka 2.1.0(使用兼容参数) echo "启动Medaka处理..." medaka_consensus \ -i "${COMBINED_READS}" \ -d "${chrom_dir}/${chrom}.fasta" \ -o "${chrom_dir}" \ -m "${MODEL}" \ -t 4 \ -b 20000 \ -c 1000 \ -s 0 \ -p 200 \ --device cpu \ > "${chrom_dir}/medaka.log" 2>&1 # 检查运行结果 if [ ! -f "${consensus_out}" ]; then echo "ERROR: 染色体 ${chrom} 处理失败" >&2 echo "===== 错误日志开始 =====" tail -n 50 "${chrom_dir}/medaka.log" echo "===== 错误日志结束 =====" # 继续处理其他染色体而非退出 else echo "成功生成结果: ${consensus_out}" fi done # 5. 合并染色体结果 echo "===== [$(date)] 合并染色体结果 =====" final_consensus="${RESULTS_DIR}/final_consensus/genome.medaka.fasta" > "${final_consensus}" success_count=0 for chrom in "${chromosomes[@]}"; do chrom_consensus="${RESULTS_DIR}/intermediate/${chrom}/consensus.fasta" if [ -f "${chrom_consensus}" ]; then # 添加染色体标识 sed "s/>.*/>${chrom}/" "${chrom_consensus}" >> "${final_consensus}" echo "添加染色体: ${chrom}" ((success_count++)) else echo "WARNING: 缺失染色体 ${chrom} 的结果" fi done # 6. 生成运行报告 echo "===== [$(date)] 生成最终报告 =====" { echo "===== Medaka运行摘要 =====" echo "运行时间: $(date)" echo "Medaka版本: ${MEDAKA_VERSION}" echo "输入基因组: ${NEXTPOLISH_FASTA}" echo "输出基因组: ${final_consensus}" echo "使用读长: ${ONT_PASS} 和 ${ONT_FAIL}" echo "合并读长: ${COMBINED_READS}" echo "使用模型: ${MODEL}" echo "处理染色体数: ${total_chrom}" echo "成功处理染色体数: ${success_count}" echo "失败染色体数: $((total_chrom - success_count))" if [ -f "${final_consensus}" ]; then echo "输出基因组大小: $(stat -c%s ${final_consensus}) 字节" # 基础统计 seqkit stats "${final_consensus}" | tail -n +2 else echo "WARNING: 未生成最终共识序列" fi # 列出失败染色体 echo "失败染色体列表:" for chrom in "${chromosomes[@]}"; do chrom_consensus="${RESULTS_DIR}/intermediate/${chrom}/consensus.fasta" [ ! -f "${chrom_consensus}" ] && echo "- ${chrom}" done } > "${RESULTS_DIR}/final_consensus/medaka_summary.txt" echo "===== [$(date)] Medaka矫正流程完成 =====" exit 0 ``` ### 关键修复点解释: 1. **版本检测修复**: ```bash # 使用 --version 替代 -v MEDAKA_VERSION=$(medaka_consensus --version 2>&1 | head -1) ``` 2. **参数更新**: ```bash medaka_consensus \ -i "${COMBINED_READS}" \ -d "${chrom_dir}/${chrom}.fasta" \ -o "${chrom_dir}" \ -m "${MODEL}" \ -t 4 \ # 线程数 -b 20000 \ # 区块大小(替代 --chunk_len) -c 1000 \ # 区块重叠(替代 --chunk_ovlp) -s 0 \ # 禁用序列分割 -p 200 \ # 边界填充(替代 --region_padding) --device cpu ``` 3. **错误处理增强**: ```bash if [ ! -f "${consensus_out}" ]; then echo "ERROR: 染色体 ${chrom} 处理失败" >&2 tail -n 50 "${chrom_dir}/medaka.log" # 显示错误日志尾部 fi ``` 4. **模型选择优化**: ```bash if ! medaka tools list_models | grep -q "${MODEL}"; then MODEL=$(medaka tools list_models | head -1) # 自动选择第一个可用模型 fi ``` 5. **结果统计增强**: ```bash # 使用seqkit进行基础统计 seqkit stats "${final_consensus}" | tail -n +2 ``` ### 使用说明: 1. 将脚本保存为`medaka_v2.1_fixed.sh` 2. 提交作业: ```bash sbatch medaka_v2.1_fixed.sh ``` 3. 调试建议: ```bash # 测试单个染色体 chromosomes=("ctg000070_np12") ``` ### 备选调试方案: 如果仍然失败,添加以下调试步骤: 1. **手动测试模型**: ```bash medaka tools list_models medaka_consensus --version ``` 2. **测试小数据**: ```bash # 创建测试数据集 head -n 1000 ${COMBINED_READS} > test.fq samtools faidx ${NEXTPOLISH_FASTA} ctg000070_np12 > test.fa # 手动运行 medaka_consensus -i test.fq -d test.fa -o test_out -m ${MODEL} -t 4 ``` 3. **检查环境依赖**: ```bash # 检查动态链接库 ldd $(which medaka_consensus) # 检查Python依赖 conda list -n medaka_legacy ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值