如何使COBRA工具箱在linux(如Ubuntu 14.04)中的MATLAB下使用适当的SBML支持?

如何使COBRA工具箱在linux(如Ubuntu 14.04)中的MATLAB下使用适当的SBML支持?,linux,matlab,io,bioinformatics,sbml,Linux,Matlab,Io,Bioinformatics,Sbml,考虑以下4种软件: 眼镜蛇2.05 libsbml5.10 MATLAB R2013a(也称为8.1,64位;MATLAB不再支持32位Linux) 64位Linux操作系统(如Ubuntu 14.04或最新的Mint,但不限于此) 简介 COBRA工具箱是一个运行在MATLAB之上的优化套件,旨在开发代谢网络建模的MATLAB代码。这样的“网络”是一个方程组,可以有大量的方程和变量(如数千个)。因此,根据某种格式规范读取和写入这些大型模型的例程是必须具备的,COBRA为此使用标准SBM

考虑以下4种软件:

  • 眼镜蛇2.05

  • libsbml5.10

  • MATLAB R2013a(也称为8.1,64位;MATLAB不再支持32位Linux)

  • 64位Linux操作系统(如Ubuntu 14.04或最新的Mint,但不限于此)

  • 简介

    COBRA工具箱是一个运行在MATLAB之上的优化套件,旨在开发代谢网络建模的MATLAB代码。这样的“网络”是一个方程组,可以有大量的方程和变量(如数千个)。因此,根据某种格式规范读取和写入这些大型模型的例程是必须具备的,COBRA为此使用标准SBML

    问题

    与Windows版本不同的是,Linux二进制软件包没有很好的集成:首先,可供下载的预编译的Linux二进制libSBML(开源)不支持MATLAB。如果试图使用预编译的libSBML,COBRA将找不到“MATLAB绑定”,因此无法从磁盘读取和写入m脚本中的SBML XML文件

    问题


    要使COBRA 2.05在Linux(Ubuntu14.04或最新的Mint,但这可能不是特定于发行版)下运行在MATLAB R2013a之上,能够读取和写入SBML XML文件,需要做些什么?换句话说,要让COBRA通过自己的
    testSBML

    测试,需要在系统范围内做些什么?这就是我如何让它工作的,以及我可以从关于Linux机器如何工作的所有麻烦中学到什么。我希望我没有忘记/遗漏/弄错任何东西

    1.MATLAB 1.1. 安装MATLAB 将其安装在默认位置(您需要root访问权限),不要像我一样固执。原因:

    1.1.1. 整合 很可能你会想在某个时候安装其他一些使用MATLAB框架的软件,而在现实世界中,软件并不总是能找到其他软件,即使你知道如何告诉它在哪里可以找到

    1.1.2. 让你的生活更轻松 尽管在一个拥有大量可用空间的地方安装一个大型软件似乎是一个好主意,并且可以在多台机器上使用(特别是在Linux中,Linux没有所谓的注册表,并且有符号链接),如果该位置是一个带有Linux文件系统的分区,那么除了item1.1.1,这可能是一个好主意,因为在某个时候,某些可执行文件/脚本将需要执行权限,并且为其所有文件装载具有执行权限的整个分区是相当不安全的。因此,不要将MATLAB放在外部HD的NTFS分区中;也许仅仅为Linux特定的东西在外部HD中创建Linux分区就可以解决这个问题,但是这有多麻烦呢

    1.2. 设置MATLAB,以便人们和其他软件可以启动它 尽管我在某个地方看到MATLAB安装程序最终显示了一个选项,可以在系统路径中创建符号链接以方便使用,但在我的例子中没有。但这没关系,因为我必须用以下shell脚本(相同路径,相同文件名)替换符号链接
    /usr/local/bin/matlab

    OBS:MATLAB需要
    LD_LIBRARY_PATH
    ,以便以后找到SBML绑定并能够使用它们。另外,如果您安装了一些第三方解算器,比如TOMLAB,那么您很可能需要在这个小启动程序脚本中添加更多的路径。 OBS 2:在我的例子中,安装脚本没有自动创建任何启动程序或快捷方式,但我发现一个无图标和无扩展名的
    Matlab 8.01
    文件和一个作为png文件的Matlab图标,第一个文件是一个模板
    .desktop
    文件,我可以编辑它以满足我的需要,然后放入
    /usr/share/applications
    ,这样Unity Dash就可以找到它。此
    Matlab.desktop
    文件的内容包括:

        [Desktop Entry]
        Type=Application
        Icon=/usr/local/MATLAB/R2013a/Matlab.png
        Name=Matlab 8.01
        Comment="Start Matlab 8.01"
        Exec=/usr/local/MATLAB/R2013a/bin/matlab -desktop
        Categories=Development;
        Name=Matlab 8.01
        GenericName=Matlab 8.01
        Comment="Start Matlab 8.01"
    
    2.libSBML 2.1. 安装libSBML libSBML是由一个特定于Ubuntu(和CentOS)的deb包提供的,它还提供了几种风格的Windows和MacOSX版本(它们的主页:)。猜猜哪一个平台的二进制文件没有使用MATLAB支持编译?当然是Linux。这意味着您需要从源代码处编译(因此,deb包对您来说是无用的)。汇编:

    2.1.1. 安装依赖项 依赖项
    libxml2 dev
    (来自软件管理器或终端):

    2.1.2. 为自己将来节省一些时间 通常,人们会进行
    配置
    制作
    ,然后
    制作安装
    。但不建议这样做,原因与安装不在一个非常小的软件包中的任何东西相同:您将失去对文件存放位置的控制,并且如果以后需要卸载,需要保留源代码才能运行
    makeuninstall
    。因此,请安装
    checkinstall
    ,并使用它来替换步骤
    makeinstall
    ,因为
    checkinstall
    为您的系统创建了一个软件包,以后可以像任何常规软件包一样(从软件管理器或终端)卸载或重新安装该软件包:

    2.1.3. 配置编译过程 获取LibSBML源代码并将其解压缩到某个文件夹。从终端导航到该文件夹并配置编译:

        ./configure --with-matlab
    
    OBS:使用
    with matlab
    标志,配置脚本将失败,因为它找不到文件名为
    matlab
    的可执行文件。如果失败,它将输出无法找到
    matlab
    文件,但它执行的测试实际上是该文件是否存在以及该文件是否可执行。因此,如果文件位于NTFS分区中,配置甚至会失败
        sudo apt-get install libxml2-dev
    
        sudo apt-get install checkinstall
    
        ./configure --with-matlab
    
        ./configure --with-matlab=/path/to/matlab/root
    
        make
        checkinstall
    
        strings /usr/local/MATLAB/R2013a/sys/os/glnxa64/libstdc++.so.6.0.13 | grep GLIBC
    
        initCobraToolbox
        testAll
    
    sudo ln -s /usr/local/lib/libsbml.so.5 /usr/local/MATLAB/R2014a/sys/os/glnxa64/
    
    .............
            elseif(EXISTS "/Applications/MATLAB_R2008a.app/")
                    set(MATLAB_ROOT_PATH "/Applications/MATLAB_R2008a.app/")    
                endif()
            else()
                if (EXISTS "/usr/local/MATLAB/R2014a/")
                    set(MATLAB_ROOT_PATH "/usr/local/MATLAB/R2014a/")
                endif()
            endif()
    ..........