一套有助于开发罗塞塔蛋白设计套件的工具。

rosetta_dev_tools的Python项目详细描述


编辑编译测试周期没有 在罗塞塔很方便。一是源代码,单位 测试和试点应用程序可执行文件都保存在不同的地方, 这要求您在进行更改时不断更改目录。另一个 在添加新的 类,还有一个是增量编译时间可以是 慢点。

这个包试图解决其中的一些问题,特别是 使用它可以编译和测试代码。为此,一组脚本 它们简化了编译、测试和运行的过程 罗塞塔。这些脚本知道rosetta的目录结构,所以路径知道 不需要指定。

这些脚本也使用忍者构建系统,比scons快得多 在执行增量生成时。这需要一些外部工作来配置 是的,但是korteme实验室wiki页面上提供了相关信息。

安装

这些工具可从pypi获得,因此您可以使用pip安装它们。是 不过,一定要使用与python3关联的pip,因为默认情况下 pip通常与python2关联,并且不会与这些关联 工具:

$ pip3 install rosetta_dev_tools

这将在^{tt6}中安装少量可执行脚本$ 目录pip已配置为使用。这些剧本有很长的名字, 所以我通常把它们化名为短一点的,这样打字就更方便了 方便。例如,将这些行放入~/.bashrc

alias rk='rdt_stub'
alias rb='rdt_build debug'
alias rr='rdt_build release'
alias ru='rdt_unit_test'
alias rd='rdt_doxygen'

如果要在qb3集群上安装这些工具,必须使用 多走几步。首先,集群没有安装pip,因此 必须克隆此存储库并手动运行setup.py。第二,你有 在交互节点上(例如iqint)或git克隆将不起作用。第三, 默认情况下,集群不提供python3,因此必须 使用scl enable python33命令显式启用它:

$ ssh iqint
$ git clone git@github.com:Kortemme-Lab/rosetta_dev_tools.git
$ cd rosetta_dev_tools
$ scl enable python33 'python setup.py build'
$ scl enable python33 'python setup.py install --user'

您还必须在每次需要时使用scl enable python33命令 要使用这些工具中的任何一个,只需将它们封装在函数中就很容易了。 例如,将这些行放入~/.bashrc

function rb {} (
    scl enable python33 'rdt_build debug $*'
}
function rr {} (
    scl enable python33 'rdt_build release $*'
}

填充样板

要为新移动器创建所有样板文件,请运行以下命令 命令:

$ rk mover protocols::moves::MyMover

此命令将创建新的*.fwd.hh*.hh*Creator.hh*.cc, 以及*.cxxtest.hh文件。它还将把移动器添加到相关的 *.src.settings*.test.settings文件,它将注册 移动器输入init.MoverCreators.ihhinit.MoverRegistrators.ihh。什么时候? 命令完成后,您的新类将完全准备好编译。

第一个参数指定要生成的文件类型,第二个参数指定 参数指定新类的名称。第二个论点没有 成为一个完全限定名(即,它不必包含名称空间)。如果 如果不指定命名空间,则会自动从 当前工作目录。所以上面的命令可以缩写成so:

$ cd $rosetta/source/src/protocols/moves
$ rk mover MyMover

这个命令还有一个方便的--dry-run选项,可以用来查看 在存根文件实际写入磁盘之前生成的存根文件。

编译rosetta

要在调试模式下构建rosetta,只需在 您对罗塞塔的结帐:

$ rb

要在发布模式下构建,请改用以下别名:

$ rr

这些别名要求安装ninjamake。大多数 默认情况下,系统将安装make,因此您不必担心 关于这个。但是,如果两个生成工具都已安装,则首选ninja。 因为它更快更简洁。

运行单元测试

要编译和运行单元测试套件,请使用以下命令作为模板:

$ ru protocols MyUnitTest

第一个论点是单元测试所属的库,通常 是protocols。第二个参数是要运行的测试套件的名称 (即*.cxxtest.hh文件中类的名称)。你也可以 指定第三个参数以仅运行一个特定测试用例(即一个 test_*()来自该类的方法)。

一旦您使用上述命令运行了单元测试,就可以使用 该命令的缩写版本,以便再次运行相同的测试:

$ ru

该命令将重新运行上次运行的单元测试。也有可能 将名称分配给常用的测试,以便您可以在很少的时间内运行它们 尽可能地按键:

$ ru protocols MyOtherUnitTest -s other
$ ru other

编写文档

要为当前所在的目录生成doxygen文档, 运行以下命令:

$ rd

这将生成文档并自动以新的 firefox窗口。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java缓存逐出在没有键的情况下不工作,并且方法没有参数?   泛型不兼容的类型:java。无法将lang.Object转换为T   java RxJava:将Observable与Completable合并不起作用   节点。js如何使用java生成的public对nodejs中的字符串进行加密   java有一种方法可以知道代码中系统可以交换线程的所有可能位置   java蒙特卡罗模拟   java无法在IE浏览器中使用Selenium定位SmartGWT应用程序的元素   java如何在JSP中使用列表项的索引访问列表项   java解决了从Lucene 4.0升级到4.1后的糟糕性能   socketjava udp数据包合并   多线程是java中唯一id的线程安全代码   java使用重写的抽象方法从超类访问私有变量   java如何在spring中使用@Transactional实现真正的事务   java MVC通过JSP发送带有请求/会话的字段值   java为什么是2*整数。最大值=2?   java从用户处获取输入小时分秒,并以hh:mm:ss格式开始倒计时