Octave的KL/MI运行测试
环境:75.4:Allocraft(python3.12,octave,biopython)
路径:75.4:/gxxu/Allocraft
安装pakages:
bioinfo:pkg install "https://github.com/schloegl/octmat-bioinfo/archive/refs/heads/master.tar.gz"
For information about changes from previous versions of the bioinfo package, run 'news bioinfo'.
addpath('.../src')
addpath('.../util')
addpath('.../alloPathCalc')
savepath
开始调试:
修改input_md2path,input_kldiv
第一个错误:Database.m中的findResidue/findFeature中的,移除arguments块,用inputParser代替or if nargin
第二个错误:Entry的getAtoms,addSimulation,computeContacts都是用的arguments块,用inputParser修改。
第三个错误:忘了pkg load bioinfo
第四个错误:pdbread,matlab中应该是readpdb,现在bioinfo中式pdbread.m,然后pdbread返回的是结构体,需要修改Entry.m和import_align_traj.m,从结构体中提取内容//傻逼了,MDprot呢??
addpath(genpath('...MDprot'))
savepath
第五个错误:又到aminolookup输入的错误,要转化问题三个字母氨基酸并且是Pro,而不是PRO,而且要过滤掉所有不是三字母代码,还有aminolookup返回值类型问题
第六个错误:chain.m出现同样的arguments错误,format_Residues
第七个错误:octave不支持string,然后fetch输入的pdbCode和url拼接有问题。
第八个错误:fetch中的websave在octave中没有实现,替换成urload+fwrite
第九个错误:multialign,用octave兼容的渐进式对比不行,还是调用python的biopython,感觉要放弃了。
果断放弃
------------------------------------------------------------以上是75.4上的测试-------------------------------------------------
错误:
1.语法不兼容点:Database,arguments关键字的使用,Entry中也有这个问题 :
inputParser代替arguments
前面是Database出现了这个问题
2.bioinfo问题,安装生信包:
先设置源:setenv('OCTAVE_PKG_DOWNLOAD_SITE','源‘)
pkg install -forge bioinfo
×然后pkg load bioinfo,或者直接把matlab的bioinformatics的包拿过来,
先把aminolookup拿到 bioinfo中 ×
然后把convertStringsToChars改掉了,Octave不兼容
现在修改MDprot中的pdb2seq,tmp/下保留了pdb2seq的原本
问题出在octave.bioinfo中的aminolookup,输入要求Pro,而不是PRO,并且返回的是字符数组而不是Cell数组。
Octave不支持string(),用char代替,Database.m中的26-27行。
Octave bioinfo少了multialign.m,从matlab中偷过来了,偷过来不管用
修改util/alignSequences.m的multialign调用的地方,不行
现在的解决方法是写个multialign方法,调用python.biopython中的多序列对齐代码,然后放到util中,然后供alignSequences调用
