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

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使用并发hashmap减少线程池的内存使用?   java为什么在提交片段后出现错误“getParentActivityIntent:badActivity name”?   vim UltiSnips扩展java包   java给出了一个名称列表,如何插入、删除、显示、搜索和退出?Java程序   java Spring集成:只从FTP服务器下载新的或更新的文件?   使用Java中的Scala:将函数作为参数传递   java线程1每秒填充一个映射,线程2每60秒保存一个条目   java从私有类访问公共类中的方法/字段   如何使用ApacheSpark流媒体和JavaAPI从所有人那里获取英语推文?   java是否可以在父标记和子标记中编写XMLSchemainstance?   java无法读取文本文件,也找不到解决方案   java在运行时加载类时无法创建bean