考虑这4个软件:
1)COBRA2.05
2)LibSBML5.10
3)MATLABR2013a(亦称为8.1,64位;MATLAB不再支持32位Linux)
4)64位Linux操作系统(如Ubuntu14.04或最新的Mint但不限于它们)
介绍
COBRA工具箱是一个在MATLAB上运行的优化套件,致力开发用于代谢网路建模的MATLAB代码.这些“网络”是一个等式组,可以有好多多项式和变量(如数千).因而,按照某种格式规范读取和写入这些小型模型的类库是必须的,COBRA使用标准SBML.
问题
与Windows版本不同,Linux二补码包不能挺好地集成开箱即用:首先,可供下载的libSBML(开源)的预编译Linux二补码文件不具备MATLAB支持.假如尝试使用预编译的libSBML,COBRA将难以找到“MATLAB绑定”,因而未能在m脚本中从c盘读取和写入SBMLXML文件.
这个问题
须要做些哪些能够使COBRA2.05在Linux下运行的MATLABR2013a(Ubuntu14.04或最新的Mint,但这不太可能是特定于发行版)才能读写SBMLXML文件?换句话说,须要在整个系统范围内做些哪些能够使COBRA通过自己的testSBML测试?
解决方式:
这就是我怎么使它工作以及我可以从有关我的Linux袋子怎样工作的所有麻烦小学到的东西.我希望我不会忘掉/丢失/误会任何事情.
1.MATLAB
1.1.安装MATLAB
将它安装在默认位置(你须要root访问权限),不要像我企图的那样执拗.为何:
1.1.1.积分
您很可能希望在个别时侯安装一些使用MATLAB框架的其他软件,而在现实世界中,虽然您晓得怎样告诉它在那里找寻,软件并不总能找到其他软件.
1.1.2.让您的生活更轻松
虽然在一个有大量可用空间的地方安装一个大软件而且可以在多台机器中使用(非常是在Linux中,没有那个不齿的名为Registry,但是具有符号链接)虽然是一个好主意),这可能只是一个好主意–除了项目1.1.1–如果那种地方是一个Linux文件系统的分区,由于在个别时侯,个别可执行文件/脚本须要执行权限,并在执行时挂载整个分区对其所有文件的许可是相当不安全的.因而,不要将MATLAB置于外部HD的NTFS分区中;其实在外部HD中创建一个Linux分区只是针对特定于Linux的东西可以解决这个问题,但这有多麻烦?
1.2.设置MATLAB,便于人们和其他软件可以启动它
虽然我早已听到MATLAB安装程序最终会在系统路径中显示创建符号链接的选项,并且在我的情况下却没有.但这没关系,由于我必须用以下shell脚本(相同的路径,相同的文件名)替换符号链接/usr/local/bin/matlab:
#!/bin/sh
exportLD_LIBRARY_PATH=/usr/local/lib:/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
exec/usr/local/MATLAB/R2013a/bin/matlab$*
OBS:MATLAB须要LD_LIBRARY_PATH便于稍后查找SBML绑定并才能使用它们.据悉,倘若您安装个别第三方解算器(如TOMLAB),则很可能须要在此小启动器脚本中添加更多路径.
OBS2:在我的情况下,安装脚本没有手动创建任何启动器或快捷方法,但我找到了一个无图标和无扩充的Matlab8.01文件和一个matlab图标作为png文件,但是第一个文件是模板.桌面文件,我可以编辑以满足我的须要,并装入/usr/share/applications,便于UnityDash找到它.这个Matlab.desktop文件的内容是:
[DesktopEntry]
Type=Application
Icon=/usr/local/MATLAB/R2013a/Matlab.png
Name=Matlab8.01
Comment="StartMatlab8.01"
Exec=/usr/local/MATLAB/R2013a/bin/matlab-desktop
Categories=Development;
Name=Matlab8.01
GenericName=Matlab8.01
Comment="StartMatlab8.01"
2.libSBML
2.1.安装libSBML
libSBML由专用于Ubuntu(和CentOS)的deb软件包提供,还有几种版本的Windows和MacOSX版本(其主页:).猜猜那个二补码文件没有用MATLAB支持编译的惟一平台?其实是Linux.这意味着你须要从源代码编译(因而deb软件包对你没用).编译:
2.1.1.安装依赖项
依赖libxml2-dev(来自软件管理器或来自终端):
sudoapt-getinstalllibxml2-dev
2.1.2.将来节约一些时间
一般,人们会进行配置,制做之后进行安装.并且这不推荐用于安装任何不在一个大包装中的任何东西:你将丧失对什么文件去哪儿的控制权linux培训学校,但是须要保持源代码才能运行makeuninstallif你须要稍后卸载它.因而,安装checkinstall并使用它来替换步骤makeinstall,由于checkinstall会为您的系统创建一个包,之后可以像任何常规打包软件一样卸载或重新安装(来自软件管理器或终端):
sudoapt-getinstallcheckinstall
2.1.3.配置编译过程
获取LibSBML源代码并将其解压缩到某个文件夹.从终端导航到该文件夹并配置编译:
./configure--with-matlab
OBS:使用with-matlab标志,配置脚本将失败,它未能找到文件名为matlab的可执行文件.假如失败,则输出未能找到matlab文件,但它执行的测试实际上是文件的存在以及是否可执行.因而,倘若文件坐落NTFS分区中,虽然找到该文件,configure也会失败,但会告诉您未能找到该文件.您可以强制执行它以通过传递在/path/to/matlab/root中查找可执行文件(它将查找该路径中的bin文件夹以及该bin文件夹中的可执行文件):
./configure--with-matlab=/path/to/matlab/root
OBS:这将在默认位置安装libSBML:/usr/local/lib.同样,最好让它安装在默认位置,并且假如你须要修改它,你可以传递带有标志的路径:–prefix=/your/installation/path
OBS2:你可能会问为何libSBML须要找到并执行matlab来编译支持它:它须要之后启动MATLAB来建立MEX文件(编译的MATLAB代码),所以我猜想你不能虽然假如你的MATLAB没有生成MEX文件的编译器就安装libSBML.
2.1.4.建立并安装libSBML
make
checkinstall
十分重要的OBS:
I)checkinstall要求确认它即将创建的包的元数据.在我的事例中,版本数组的字符串默认为“Source”(没有冒号),这引起checkinstall失败,由于dpkg(实际建立deb文件的系统工具)失败,责怪版本号必须以,好吧,一个数字.所以,节约一些时间并确保版本数组中的字符串以数字开头(即“5.10”,其实没有冒号)
II)checkinstall寻问您是否要从将来的包文件中排除makeinstall命令将置于您的主文件夹中,并说它是排除它们的好主意.LibSBML有一个test.xml文件,它须要稍后在$HOME文件夹中,否则它将不容许你与MATLAB集成.虽然它告诉你缺乏test.xmllinux安装matlab,它也不会告诉你该文件应当在那里,或则该文件是否随库一起提供.我只是注意到它,由于checkinstall之前找到了$HOME/test.xml引用(其实我从包中排除了)但是我发觉它很奇怪.因而,节约一些时间并从checkinstall生成的包中排除$HOME/test.xml,之后在source-code文件夹中搜索test.xml,并在checkinstall安装libSBML后立刻将其复制到$HOME.
2.2.将libSBML集成到MATLAB中
启动MATLAB,导航到步骤2.1.5中安装SBMLMATLAB绑定的位置(在我的情况下:/usr/local/lib)并运行应当存在的文件installSBML.m.
2.2.1.共享库问题
在我的情况下,因为一蒙自的未解决的问题我有一个错误:libstdc.so.6没有引用GLIBCXX_3.4.15.原先linux安装matlab,MATLAB企图使用的libstdc.so.6.0.13(的libstdc.so.6是指向该文件的符号链接),在/usr/本地/MATLAB/R2013a用它来/SYS/OS/glnxa64确实没有哪个参考(人们可以通过发布:
strings/usr/local/MATLAB/R2013a/sys/os/glnxa64/libstdc++.so.6.0.13|grepGLIBC
).我的系统有一个坐落/usr/lib/x86_64-linux-gnu中的libstdc.so.6.0.19,它有该引用,所以我通过正确设置LD_LIBRARY_PATH强制MATLAB使用6.0.19(参见步骤1.2)和也可以通过将MATLAB附送的libstdc.so.6重命名为其他东西,这样就找不到它,但是会仍然看见它找到我的系统.我的一个同事运行LinuxMint不须要重命名任何东西:对他来说,设置LD_LIBRARY_PATH就足够了.
2.2.2.其他问题
假如找不到步骤2.1.5中提及的$HOME/test.xml文件,installSBML.m将失败,无论库是否实际工作.它假设假如它未能使用假设在$HOME中的文件来测试自身,则用户无论怎样都不应当选择安装它.
3.COBRA/SBML工具箱
3.1.设置COBRA
在MATLAB中,导航到/external/toolboxes/SBMLToolbox-4.1.0/toolbox并在那儿运行install.m文件.您应当设置所有设置,便于找到您在步骤2.2中设置的MATLAB绑定.
3.2.MATLABsetpaths问题
我必须以root身分自动编辑文件/usr/local/MATLAB/R2013a/toolbox/local/pathdef.m以包含文件夹/usr/local/lib(其中libSBML及其MATLAB绑定)以使该设置持久化.每次重新启动MATLAB时,无论我是否在通过MATLABGUI设置其setpath时以root身分启动MATLAB,其setpath都已恢复为默认值.
3.3.测试
如今你希望联接所有的点.试一试:在MATLAB中嵌入式linux,导航到和问题:
initCobraToolbox
testAll
倘若您没有安装和配置任何第三方解算器,它应当通过19个测试中的14个,包括SBML测试(testSBML).如今您可以将SBML文件加载到MATLAB中并使用它们.
标签:io,linux,matlab,bioinformatics
文章评论