当数据量较大时,用MrBayes进行计算通常是旷日持久的事情,几天甚至几个月。中间如果断电死机什么的发生就很令人发狂了。于是 MrBayes 3.2 svn 版增加了一个断点保存的功能,死机后可以从保存的断点处继续计算。只要在mcmc命令中加入checkfreq=n (n为保存断点间隔的代数)参数即可保存断点;下次从断点继续运算时,在mcmc  命令中加入append=yes参数即可.

  碰巧的是,前些天不知道谁把我用来计算的那台服务器的电源碰掉了,我那已经算了20多天的任务啊.....!  想砍人之余又庆幸事前曾经设置了断点保存。可是当我在mcmc  命令中加入append=yes参数以恢复运算时,不幸的事还是发生了,MrBayes报错并停止:A maximum of 2000 characters is allowed on a single line, The longest line of the file  xxx contains at least one line with 58000 characters.   当时就有欲哭无泪的感觉啊。稍稍平复一下心情,决定还是从程序的源代码查起吧,希望不是一个与算法有关的大bug(小修小改能搞定,跟算法有关的话短时间就没办法搞了)!拿出错消息grep一下所有的源文件,发现问题在这里:

trunk/src/command.c-3211-    /* find length of longest line */
trunk/src/command.c-3212-    longestLineLength = LongestLine (fp);
trunk/src/command.c-3213-    MrBayesPrint ("%s   Longest line length = %d\n", spacer, longestLineLength);
trunk/src/command.c-3214-    longestLineLength += 50;
trunk/src/command.c-3215-    
trunk/src/command.c:3216:    /* check that longest line is not longer than CMD_STRING_LENGTH */
trunk/src/command.c:3217:    if (longestLineLength >= CMD_STRING_LENGTH - 100)
trunk/src/command.c-3218-        {
trunk/src/command.c:3219:        MrBayesPrint ("%s   A maximum of %d characters is allowed on a single line\n", spacer, CMD_STRING_LENGTH - 100);
trunk/src/command.c-3220-        MrBayesPrint ("%s   in a file. The longest line of the file %s\n", spacer, inputFileName);
trunk/src/command.c-3221-        MrBayesPrint ("%s   contains at least one line with %d characters.\n", spacer, longestLineLength);
trunk/src/command.c-3222-        nErrors++;
trunk/src/command.c-3223-        }
trunk/src/command.c-3224-#    if defined (MPI_ENABLED)

  原来最长行的字符数被 CMD_STRING_LENGTH 所限制。grep搜CMD_STRING_LENGTH,在mb.h中找到:

trunk/src/mb.h-250-#define OMEGA_MAX 1000000.0f
trunk/src/mb.h-251-
trunk/src/mb.h-252-#define POS_INFINITY 1E25f;
trunk/src/mb.h-253-#define NEG_INFINITY -1000000.0f
trunk/src/mb.h-254-
trunk/src/mb.h:255:#define CMD_STRING_LENGTH 200000
trunk/src/mb.h-256-

  原来 CMD_STRING_LENGTH 被限制到了20000,该值已经大大不能符合我的数据要求了。于是操刀将其放大10倍,改为200000。重新编译MrBayes, 再次从断点处回复执行, OK,熟悉的计算过程又回来了。20多天的计算总算没白费。

转载于:https://www.cnblogs.com/agateriver/archive/2010/05/31/1748373.html

修改 MrBayes 3.2 源码解决不能恢复断点的问题相关推荐

  1. C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码...

    原文:C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码 前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github. ...

  2. 31_ElasticSearch 修改IK分词器源码来基于mysql热更新词库

    31_ElasticSearch 修改IK分词器源码来基于mysql热更新词库 更多干货 分布式实战(干货) spring cloud 实战(干货) mybatis 实战(干货) spring boo ...

  3. zookeeper源码分析之恢复事务日志

    zookeeper源码分析之恢复事务日志 前言 源码分析 查看事务日志命令 总结 前言 本文是基于zookeeper集群启动过程分析(https://blog.csdn.net/weixin_4244 ...

  4. Python 技术篇 - 修改源码解决中文主机名导致的flask、socket服务起不来问题: ‘utf-8‘ codec can‘t decode byte 0xc0 in position...

    由于主机名为中文导致的 flask 服务起不来,报错如下: File "D:\work\python3.9_64\lib\socket.py", line 791, in getf ...

  5. 使用pdfBox实现pdf转图片出现中文方块乱码 简单修改源码解决

    参考文章 问题排查:使用pdfbox将pdf转image时STSong-Light字体中文乱码 pdfbox版本是2.0 日志中打印出类似这样的日志(例:Using fallback XXX for ...

  6. es修改IK分词器源码 mysql热词动态更新(报错解决x3)

    最近在公司遇到的一个问题,给elasticsearch配置ik热部署mysql词库. 我是参照下面这个博客来做的 https://www.cnblogs.com/xiaoxiaoliu/p/11218 ...

  7. django-oscar的物流状态pending修改以及分析源码解决报错:The new status 'xxx' is not valid for this order

    先说物流状态的修改: django-oscar自带的物流状态是四个: OSCAR_INITIAL_ORDER_STATUS = 'Pending' OSCAR_INITIAL_LINE_STATUS ...

  8. 【咸鱼教程】置于后台停止计时,修改引擎源码解决。

    一 调试环境 二 修改引擎 三 弊端       一  调试环境 环境: 引擎版本4.0.3 原因是tween.timer等使用的心跳计时器starttick,都是优先检查window的request ...

  9. 【转载保存】修改IK分词器源码实现动态加载词典

    链接:http://www.gongstring.com/portal/article/index/id/59.html 当前IKAnalyzer从发布最后一个版本后就一直没有再更新,使用过程中,经常 ...

最新文章

  1. Lambda 表达式基础理论与示例
  2. 界面怎么使用pip_从零开始学Python——10Pyinstaller的使用
  3. 互联网产品mysql数据库设计总结
  4. eclipse中svn插件的安装
  5. Codeforces 1108 E2(线段树+思维)
  6. 解决小程序背景图片在真机上不能查看的问题
  7. 系统学习机器学习之增强学习(一)--模型基础
  8. 小白都能了解的聚类算法之四(谱聚类)
  9. Java前端和后端的区别
  10. 我的保研之路-哈工大计算机,中科院信工所,复旦大数据学院
  11. Typora数学公式总结
  12. 柯桥在PPT中如何制作翻书动画?
  13. 笔记本电脑怎么打不开计算机,笔记本电脑打不开了怎么办
  14. 抄袭/模仿/致敬的那些事:从《以父之名》说起(转)
  15. html语言设置网页背景,HTML+CSS入门 设置网页中的背景图片的5个属性
  16. MacBook Pro 一月使用体验
  17. QQ中的相关文件功能
  18. shell脚本一键安装jdk(三台)
  19. BearPi_HM Nano开发板环境搭建踩坑
  20. Poj·Dessert

热门文章

  1. CSP 行车路线 最短路变型
  2. 3224: Tyvj 1728 普通平衡树
  3. jQuery.Form.js 异步提交表单使用总结
  4. 我是服务的执政官-服务发现和注册工具consul简介
  5. 数据结构与算法——冒泡排序(改进后)
  6. C#开发终端式短信的原理和方法
  7. 用excel制作双层饼图_双层饼图,让你的工作更出彩
  8. jquery ajax post请求连续多个问号特殊数据异常问题
  9. lm358在哪个库里_库里8和aj35哪个好 库里8是安德玛的吗
  10. 实验一 链式存储结构的基本操作