一套有助于开发罗塞塔蛋白设计套件的工具。
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.ihh和init.MoverRegistrators.ihh。什么时候? 命令完成后,您的新类将完全准备好编译。
第一个参数指定要生成的文件类型,第二个参数指定 参数指定新类的名称。第二个论点没有 成为一个完全限定名(即,它不必包含名称空间)。如果 如果不指定命名空间,则会自动从 当前工作目录。所以上面的命令可以缩写成so:
$ cd $rosetta/source/src/protocols/moves $ rk mover MyMover
这个命令还有一个方便的--dry-run选项,可以用来查看 在存根文件实际写入磁盘之前生成的存根文件。
编译rosetta
要在调试模式下构建rosetta,只需在 您对罗塞塔的结帐:
$ rb
要在发布模式下构建,请改用以下别名:
$ rr
这些别名要求安装ninja或make。大多数 默认情况下,系统将安装make,因此您不必担心 关于这个。但是,如果两个生成工具都已安装,则首选ninja。 因为它更快更简洁。
运行单元测试
要编译和运行单元测试套件,请使用以下命令作为模板:
$ ru protocols MyUnitTest
第一个论点是单元测试所属的库,通常 是protocols。第二个参数是要运行的测试套件的名称 (即*.cxxtest.hh文件中类的名称)。你也可以 指定第三个参数以仅运行一个特定测试用例(即一个 test_*()来自该类的方法)。
一旦您使用上述命令运行了单元测试,就可以使用 该命令的缩写版本,以便再次运行相同的测试:
$ ru
该命令将重新运行上次运行的单元测试。也有可能 将名称分配给常用的测试,以便您可以在很少的时间内运行它们 尽可能地按键:
$ ru protocols MyOtherUnitTest -s other $ ru other
编写文档
要为当前所在的目录生成doxygen文档, 运行以下命令:
$ rd
这将生成文档并自动以新的 firefox窗口。