diff --git a/doc/installation/checkInstallation.html b/doc/installation/checkInstallation.html index d9e06d5d..1fbfd73a 100644 --- a/doc/installation/checkInstallation.html +++ b/doc/installation/checkInstallation.html @@ -57,7 +57,7 @@

CROSS-REFERENCE INFORMATION ^
 
 <h2><a name=SUBFUNCTIONS ^

+
  • function res = interpretResults(results)
  • function str = myStr(InputStr,len)
  • function status = makeBinaryExecutable(ravenDir)
  • function printOrange(stringToPrint)
  • SOURCE CODE ^

    0001 function currVer = checkInstallation(developMode)
    @@ -91,328 +91,327 @@ 

    SOURCE CODE ^%Get the RAVEN path 0030 [ST, I]=dbstack('-completenames'); 0031 [ravenDir,~,~]=fileparts(fileparts(ST(I).file)); -0032 status = makeBinaryExecutable(); -0033 -0034 % Do not print first few lines if only version should be reported -0035 if ~versionOnly -0036 fprintf('\n*** THE RAVEN TOOLBOX ***\n\n'); -0037 %Print the RAVEN version if it is not the development version -0038 fprintf([myStr(' > Installing from location',40) '%f']); -0039 fprintf('%s\n',ravenDir) -0040 fprintf([myStr(' > Checking RAVEN release',40) '%f']); -0041 end -0042 if exist(fullfile(ravenDir,'version.txt'), 'file') == 2 -0043 currVer = fgetl(fopen(fullfile(ravenDir,'version.txt'))); -0044 fclose('all'); -0045 if ~versionOnly -0046 fprintf([currVer '\n']); -0047 try -0048 newVer=strtrim(webread('https://raw.githubusercontent.com/SysBioChalmers/RAVEN/main/version.txt')); -0049 newVerNum=str2double(strsplit(newVer,'.')); -0050 currVerNum=str2double(strsplit(currVer,'.')); -0051 for i=1:3 -0052 if currVerNum(i)<newVerNum(i) -0053 fprintf([myStr(' > Latest RAVEN release available',40) '%f']) -0054 printOrange([newVer,'\n']) -0055 hasGit=isfolder(fullfile(ravenDir,'.git')); -0056 if hasGit -0057 printOrange(' Run git pull in your favourite git client\n') -0058 printOrange(' to get the latest RAVEN release\n'); -0059 else -0060 printOrange([myStr(' Instructions on how to upgrade',40) '%f']) -0061 fprintf('<a href="https://github.com/SysBioChalmers/RAVEN/wiki/Installation#upgrade-to-latest-raven-release">here</a>\n'); -0062 end -0063 break -0064 elseif i==3 -0065 fprintf(' > You are running the latest RAVEN release\n'); -0066 end -0067 end -0068 catch -0069 fprintf([myStr(' > Checking for latest RAVEN release',40) '%f']) -0070 printOrange('Fail\n'); -0071 printOrange(' Cannot reach GitHub for release info\n'); -0072 end -0073 end -0074 else -0075 currVer = 'develop'; -0076 if ~versionOnly; fprintf('DEVELOPMENT\n'); end -0077 end -0078 if strcmp(developMode,'versionOnly') -0079 return; -0080 end -0081 -0082 fprintf([myStr(' > Checking MATLAB release',40) '%f']) -0083 fprintf([version('-release') '\n']) -0084 fprintf([myStr(' > Checking system architecture',40) '%f']) -0085 fprintf([computer('arch'),'\n']) -0086 -0087 fprintf([myStr(' > Set RAVEN in MATLAB path',40) '%f']) -0088 subpath=regexp(genpath(ravenDir),pathsep,'split'); %List all subdirectories -0089 pathsToKeep=cellfun(@(x) ~contains(x,'.git'),subpath) & cellfun(@(x) ~contains(x,'doc'),subpath); -0090 try -0091 addpath(strjoin(subpath(pathsToKeep),pathsep)); -0092 fprintf('Pass\n'); -0093 fprintf([myStr(' > Save MATLAB path',40) '%f']) -0094 try -0095 savepath -0096 fprintf('Pass\n') -0097 catch -0098 printOrange('Fail\n') -0099 fprintf([' You might have to rerun checkInstallation again\n'... -0100 ' next time you start up MATLAB\n']) -0101 end -0102 catch -0103 printOrange('Fail\n') -0104 end -0105 -0106 if isunix -0107 fprintf([myStr(' > Make binaries executable',40) '%f']) -0108 status = makeBinaryExecutable(); -0109 if status == 0 -0110 fprintf('Pass\n') -0111 else -0112 printOrange('Fail\n') -0113 end -0114 end -0115 -0116 %Check if it is possible to parse an Excel file -0117 fprintf('\n=== Model import and export ===\n'); -0118 fprintf([myStr(' > Add Java paths for Excel format',40) '%f']) -0119 try -0120 %Add the required classes to the static Java path if not already added -0121 addJavaPaths(); -0122 fprintf('Pass\n') -0123 catch -0124 printOrange('Fail\n') -0125 end -0126 fprintf([myStr(' > Checking libSBML version',40) '%f']) -0127 try -0128 evalc('importModel(fullfile(ravenDir,''tutorial'',''empty.xml''))'); -0129 try -0130 libSBMLver=OutputSBML; % Only works in libSBML 5.17.0+ -0131 fprintf([libSBMLver.libSBML_version_string '\n']); -0132 catch -0133 printOrange('Fail\n') -0134 fprintf(' An older libSBML version was found, update to version 5.17.0 or higher for a significant improvement of model import\n'); -0135 end -0136 catch -0137 printOrange('Fail\n') -0138 fprintf(' Download libSBML from http://sbml.org/Software/libSBML/Downloading_libSBML and add to MATLAB path\n'); -0139 end -0140 fprintf(' > Checking model import and export\n') -0141 [~,res]=evalc("runtests('importExportTests.m');"); -0142 -0143 fprintf([myStr(' > Import Excel format',40) '%f']) -0144 if res(1).Passed == 1 -0145 fprintf('Pass\n') -0146 else -0147 printOrange('Fail\n') -0148 addList = matlab.addons.installedAddons; -0149 if any(strcmpi(addList.Name,'Text Analytics Toolbox')) -0150 fprintf([' Excel import/export is incompatible with MATLAB Text Analytics Toolbox.\n' ... -0151 ' Further instructions => https://github.com/SysBioChalmers/RAVEN/issues/55#issuecomment-1514369299\n']) -0152 end -0153 end -0154 -0155 fprintf([myStr(' > Export Excel format',40) '%f']) -0156 if res(3).Passed == 1 -0157 fprintf('Pass\n') -0158 else -0159 printOrange('Fail\n') -0160 end -0161 -0162 fprintf([myStr(' > Import SBML format',40) '%f']) -0163 if res(2).Passed == 1 -0164 fprintf('Pass\n') -0165 else -0166 printOrange('Fail\n') -0167 end -0168 -0169 fprintf([myStr(' > Export SBML format',40) '%f']) -0170 if res(4).Passed == 1 -0171 fprintf('Pass\n') -0172 else -0173 printOrange('Fail\n') -0174 end -0175 -0176 if res(1).Passed~=1 && res(3).Passed~=1 && exist('vaderSentimentScores.m','file')==2 -0177 fprintf([' > MATLAB Text Analytics Toolbox found. This should be\n'... -0178 ' uninstalled if you want to read/write Excel files.\n'... -0179 ' See RAVEN GitHub Issues page for instructions.\n']) -0180 end -0181 -0182 %Check if it is possible to import an YAML model -0183 % fprintf(' > Checking import of model in YAML format:\t\t\t'); -0184 % try -0185 % readYaml(ymlFile,true); -0186 % fprintf('Pass\n'); -0187 % catch -0188 % printOrange('Fail\n'); -0189 % end -0190 -0191 fprintf('\n=== Model solvers ===\n'); -0192 -0193 %Get current solver. Set it to 'none', if it is not set -0194 fprintf(' > Checking for LP solvers\n') -0195 [~,res]=evalc("runtests('solverTests.m');"); -0196 -0197 fprintf([myStr(' > glpk',40) '%f']) -0198 if res(1).Passed == 1 -0199 fprintf('Pass\n') -0200 else -0201 printOrange('Fail\n') -0202 end -0203 -0204 fprintf([myStr(' > gurobi',40) '%f']) -0205 if res(2).Passed == 1 -0206 fprintf('Pass\n') -0207 else -0208 printOrange('Fail\n') -0209 end -0210 -0211 fprintf([myStr(' > scip',40) '%f']) -0212 if res(3).Passed == 1 -0213 fprintf('Pass\n') -0214 else -0215 printOrange('Fail\n') -0216 end -0217 -0218 fprintf([myStr(' > cobra',40) '%f']) -0219 if res(4).Passed == 1 -0220 fprintf('Pass\n') -0221 else -0222 printOrange('Fail\n') -0223 end -0224 fprintf([myStr(' > Set RAVEN solver',40) '%f']) -0225 try -0226 oldSolver=getpref('RAVEN','solver'); -0227 solverIdx=find(strcmp(oldSolver,{'glpk','gurobi','scip','cobra'})); -0228 catch -0229 solverIdx=0; -0230 end -0231 % Do not change old solver if functional -0232 if solverIdx~=0 && res(solverIdx).Passed == 1 -0233 fprintf([oldSolver '\n']) -0234 % Order of preference: gurobi > glpk > soplex > cobra -0235 elseif res(2).Passed == 1 -0236 fprintf('gurobi\n') -0237 setRavenSolver('gurobi'); -0238 elseif res(1).Passed == 1 -0239 fprintf('glpk\n') -0240 setRavenSolver('glpk'); -0241 elseif res(3).Passed == 1 -0242 fprintf('soplex\n') -0243 setRavenSolver('soplex'); -0244 elseif res(4).Passed == 1 -0245 fprintf('cobra\n') -0246 setRavenSolver('cobra'); -0247 else -0248 fprintf('None, no functional solvers\n') -0249 fprintf(' The glpk should always be working, check your RAVEN installation to make sure all files are present\n') -0250 end -0251 -0252 fprintf('\n=== Essential binary executables ===\n'); -0253 fprintf([myStr(' > Checking BLAST+',40) '%f']) -0254 [~,res]=evalc("runtests('blastPlusTests.m');"); -0255 res=interpretResults(res); -0256 if res==false -0257 fprintf(' This is essential to run getBlast()\n') -0258 end -0259 -0260 fprintf([myStr(' > Checking DIAMOND',40) '%f']) -0261 [~,res]=evalc("runtests('diamondTests.m');"); -0262 res=interpretResults(res); -0263 if res==false -0264 fprintf(' This is essential to run the getDiamond()\n') -0265 end -0266 -0267 fprintf([myStr(' > Checking HMMER',40) '%f']) -0268 [~,res]=evalc("runtests('hmmerTests.m')"); -0269 res=interpretResults(res); -0270 if res==false -0271 fprintf([' This is essential to run getKEGGModelFromHomology()\n'... -0272 ' when using a FASTA file as input\n']) -0273 end -0274 -0275 if developMode -0276 fprintf('\n=== Development binary executables ===\n'); -0277 fprintf('NOTE: These binaries are only required when using KEGG FTP dump files in getKEGGModelForOrganism\n'); -0278 -0279 fprintf([myStr(' > Checking CD-HIT',40) '%f']) -0280 [~,res]=evalc("runtests('cdhitTests.m');"); -0281 interpretResults(res); -0282 -0283 fprintf([myStr(' > Checking MAFFT',40) '%f']) -0284 [~,res]=evalc("runtests('mafftTests.m');"); -0285 interpretResults(res); -0286 end -0287 -0288 fprintf('\n=== Compatibility ===\n'); -0289 fprintf([myStr(' > Checking function uniqueness',40) '%f']) -0290 checkFunctionUniqueness(); -0291 -0292 fprintf('\n*** checkInstallation complete ***\n\n'); -0293 end -0294 -0295 function res = interpretResults(results) -0296 if results.Failed==0 && results.Incomplete==0 -0297 fprintf('Pass\n'); -0298 res=true; -0299 else -0300 printOrange('Fail\n') -0301 fprintf(' Download/compile the binary and rerun checkInstallation\n'); -0302 res=false; +0032 +0033 % Do not print first few lines if only version should be reported +0034 if ~versionOnly +0035 fprintf('\n*** THE RAVEN TOOLBOX ***\n\n'); +0036 %Print the RAVEN version if it is not the development version +0037 fprintf([myStr(' > Installing from location',40) '%f']); +0038 fprintf('%s\n',ravenDir) +0039 fprintf([myStr(' > Checking RAVEN release',40) '%f']); +0040 end +0041 if exist(fullfile(ravenDir,'version.txt'), 'file') == 2 +0042 currVer = fgetl(fopen(fullfile(ravenDir,'version.txt'))); +0043 fclose('all'); +0044 if ~versionOnly +0045 fprintf([currVer '\n']); +0046 try +0047 newVer=strtrim(webread('https://raw.githubusercontent.com/SysBioChalmers/RAVEN/main/version.txt')); +0048 newVerNum=str2double(strsplit(newVer,'.')); +0049 currVerNum=str2double(strsplit(currVer,'.')); +0050 for i=1:3 +0051 if currVerNum(i)<newVerNum(i) +0052 fprintf([myStr(' > Latest RAVEN release available',40) '%f']) +0053 printOrange([newVer,'\n']) +0054 hasGit=isfolder(fullfile(ravenDir,'.git')); +0055 if hasGit +0056 printOrange(' Run git pull in your favourite git client\n') +0057 printOrange(' to get the latest RAVEN release\n'); +0058 else +0059 printOrange([myStr(' Instructions on how to upgrade',40) '%f']) +0060 fprintf('<a href="https://github.com/SysBioChalmers/RAVEN/wiki/Installation#upgrade-to-latest-raven-release">here</a>\n'); +0061 end +0062 break +0063 elseif i==3 +0064 fprintf(' > You are running the latest RAVEN release\n'); +0065 end +0066 end +0067 catch +0068 fprintf([myStr(' > Checking for latest RAVEN release',40) '%f']) +0069 printOrange('Fail\n'); +0070 printOrange(' Cannot reach GitHub for release info\n'); +0071 end +0072 end +0073 else +0074 currVer = 'develop'; +0075 if ~versionOnly; fprintf('DEVELOPMENT\n'); end +0076 end +0077 if strcmp(developMode,'versionOnly') +0078 return; +0079 end +0080 +0081 fprintf([myStr(' > Checking MATLAB release',40) '%f']) +0082 fprintf([version('-release') '\n']) +0083 fprintf([myStr(' > Checking system architecture',40) '%f']) +0084 fprintf([computer('arch'),'\n']) +0085 +0086 fprintf([myStr(' > Set RAVEN in MATLAB path',40) '%f']) +0087 subpath=regexp(genpath(ravenDir),pathsep,'split'); %List all subdirectories +0088 pathsToKeep=cellfun(@(x) ~contains(x,'.git'),subpath) & cellfun(@(x) ~contains(x,'doc'),subpath); +0089 try +0090 addpath(strjoin(subpath(pathsToKeep),pathsep)); +0091 fprintf('Pass\n'); +0092 fprintf([myStr(' > Save MATLAB path',40) '%f']) +0093 try +0094 savepath +0095 fprintf('Pass\n') +0096 catch +0097 printOrange('Fail\n') +0098 fprintf([' You might have to rerun checkInstallation again\n'... +0099 ' next time you start up MATLAB\n']) +0100 end +0101 catch +0102 printOrange('Fail\n') +0103 end +0104 +0105 if isunix +0106 fprintf([myStr(' > Make binaries executable',40) '%f']) +0107 status = makeBinaryExecutable(ravenDir); +0108 if status == 0 +0109 fprintf('Pass\n') +0110 else +0111 printOrange('Fail\n') +0112 end +0113 end +0114 +0115 %Check if it is possible to parse an Excel file +0116 fprintf('\n=== Model import and export ===\n'); +0117 fprintf([myStr(' > Add Java paths for Excel format',40) '%f']) +0118 try +0119 %Add the required classes to the static Java path if not already added +0120 addJavaPaths(); +0121 fprintf('Pass\n') +0122 catch +0123 printOrange('Fail\n') +0124 end +0125 fprintf([myStr(' > Checking libSBML version',40) '%f']) +0126 try +0127 evalc('importModel(fullfile(ravenDir,''tutorial'',''empty.xml''))'); +0128 try +0129 libSBMLver=OutputSBML; % Only works in libSBML 5.17.0+ +0130 fprintf([libSBMLver.libSBML_version_string '\n']); +0131 catch +0132 printOrange('Fail\n') +0133 fprintf(' An older libSBML version was found, update to version 5.17.0 or higher for a significant improvement of model import\n'); +0134 end +0135 catch +0136 printOrange('Fail\n') +0137 fprintf(' Download libSBML from http://sbml.org/Software/libSBML/Downloading_libSBML and add to MATLAB path\n'); +0138 end +0139 fprintf(' > Checking model import and export\n') +0140 [~,res]=evalc("runtests('importExportTests.m');"); +0141 +0142 fprintf([myStr(' > Import Excel format',40) '%f']) +0143 if res(1).Passed == 1 +0144 fprintf('Pass\n') +0145 else +0146 printOrange('Fail\n') +0147 addList = matlab.addons.installedAddons; +0148 if any(strcmpi(addList.Name,'Text Analytics Toolbox')) +0149 fprintf([' Excel import/export is incompatible with MATLAB Text Analytics Toolbox.\n' ... +0150 ' Further instructions => https://github.com/SysBioChalmers/RAVEN/issues/55#issuecomment-1514369299\n']) +0151 end +0152 end +0153 +0154 fprintf([myStr(' > Export Excel format',40) '%f']) +0155 if res(3).Passed == 1 +0156 fprintf('Pass\n') +0157 else +0158 printOrange('Fail\n') +0159 end +0160 +0161 fprintf([myStr(' > Import SBML format',40) '%f']) +0162 if res(2).Passed == 1 +0163 fprintf('Pass\n') +0164 else +0165 printOrange('Fail\n') +0166 end +0167 +0168 fprintf([myStr(' > Export SBML format',40) '%f']) +0169 if res(4).Passed == 1 +0170 fprintf('Pass\n') +0171 else +0172 printOrange('Fail\n') +0173 end +0174 +0175 if res(1).Passed~=1 && res(3).Passed~=1 && exist('vaderSentimentScores.m','file')==2 +0176 fprintf([' > MATLAB Text Analytics Toolbox found. This should be\n'... +0177 ' uninstalled if you want to read/write Excel files.\n'... +0178 ' See RAVEN GitHub Issues page for instructions.\n']) +0179 end +0180 +0181 %Check if it is possible to import an YAML model +0182 % fprintf(' > Checking import of model in YAML format:\t\t\t'); +0183 % try +0184 % readYaml(ymlFile,true); +0185 % fprintf('Pass\n'); +0186 % catch +0187 % printOrange('Fail\n'); +0188 % end +0189 +0190 fprintf('\n=== Model solvers ===\n'); +0191 +0192 %Get current solver. Set it to 'none', if it is not set +0193 fprintf(' > Checking for LP solvers\n') +0194 [~,res]=evalc("runtests('solverTests.m');"); +0195 +0196 fprintf([myStr(' > glpk',40) '%f']) +0197 if res(1).Passed == 1 +0198 fprintf('Pass\n') +0199 else +0200 printOrange('Fail\n') +0201 end +0202 +0203 fprintf([myStr(' > gurobi',40) '%f']) +0204 if res(2).Passed == 1 +0205 fprintf('Pass\n') +0206 else +0207 printOrange('Fail\n') +0208 end +0209 +0210 fprintf([myStr(' > scip',40) '%f']) +0211 if res(3).Passed == 1 +0212 fprintf('Pass\n') +0213 else +0214 printOrange('Fail\n') +0215 end +0216 +0217 fprintf([myStr(' > cobra',40) '%f']) +0218 if res(4).Passed == 1 +0219 fprintf('Pass\n') +0220 else +0221 printOrange('Fail\n') +0222 end +0223 fprintf([myStr(' > Set RAVEN solver',40) '%f']) +0224 try +0225 oldSolver=getpref('RAVEN','solver'); +0226 solverIdx=find(strcmp(oldSolver,{'glpk','gurobi','scip','cobra'})); +0227 catch +0228 solverIdx=0; +0229 end +0230 % Do not change old solver if functional +0231 if solverIdx~=0 && res(solverIdx).Passed == 1 +0232 fprintf([oldSolver '\n']) +0233 % Order of preference: gurobi > glpk > soplex > cobra +0234 elseif res(2).Passed == 1 +0235 fprintf('gurobi\n') +0236 setRavenSolver('gurobi'); +0237 elseif res(1).Passed == 1 +0238 fprintf('glpk\n') +0239 setRavenSolver('glpk'); +0240 elseif res(3).Passed == 1 +0241 fprintf('soplex\n') +0242 setRavenSolver('soplex'); +0243 elseif res(4).Passed == 1 +0244 fprintf('cobra\n') +0245 setRavenSolver('cobra'); +0246 else +0247 fprintf('None, no functional solvers\n') +0248 fprintf(' The glpk should always be working, check your RAVEN installation to make sure all files are present\n') +0249 end +0250 +0251 fprintf('\n=== Essential binary executables ===\n'); +0252 fprintf([myStr(' > Checking BLAST+',40) '%f']) +0253 [~,res]=evalc("runtests('blastPlusTests.m');"); +0254 res=interpretResults(res); +0255 if res==false +0256 fprintf(' This is essential to run getBlast()\n') +0257 end +0258 +0259 fprintf([myStr(' > Checking DIAMOND',40) '%f']) +0260 [~,res]=evalc("runtests('diamondTests.m');"); +0261 res=interpretResults(res); +0262 if res==false +0263 fprintf(' This is essential to run the getDiamond()\n') +0264 end +0265 +0266 fprintf([myStr(' > Checking HMMER',40) '%f']) +0267 [~,res]=evalc("runtests('hmmerTests.m')"); +0268 res=interpretResults(res); +0269 if res==false +0270 fprintf([' This is essential to run getKEGGModelFromHomology()\n'... +0271 ' when using a FASTA file as input\n']) +0272 end +0273 +0274 if developMode +0275 fprintf('\n=== Development binary executables ===\n'); +0276 fprintf('NOTE: These binaries are only required when using KEGG FTP dump files in getKEGGModelForOrganism\n'); +0277 +0278 fprintf([myStr(' > Checking CD-HIT',40) '%f']) +0279 [~,res]=evalc("runtests('cdhitTests.m');"); +0280 interpretResults(res); +0281 +0282 fprintf([myStr(' > Checking MAFFT',40) '%f']) +0283 [~,res]=evalc("runtests('mafftTests.m');"); +0284 interpretResults(res); +0285 end +0286 +0287 fprintf('\n=== Compatibility ===\n'); +0288 fprintf([myStr(' > Checking function uniqueness',40) '%f']) +0289 checkFunctionUniqueness(); +0290 +0291 fprintf('\n*** checkInstallation complete ***\n\n'); +0292 end +0293 +0294 function res = interpretResults(results) +0295 if results.Failed==0 && results.Incomplete==0 +0296 fprintf('Pass\n'); +0297 res=true; +0298 else +0299 printOrange('Fail\n') +0300 fprintf(' Download/compile the binary and rerun checkInstallation\n'); +0301 res=false; +0302 end 0303 end -0304 end -0305 -0306 function str = myStr(InputStr,len) -0307 str=InputStr; -0308 lenDiff = len - length(str); -0309 if lenDiff < 0 -0310 warning('String too long'); -0311 else -0312 str = [str blanks(lenDiff)]; +0304 +0305 function str = myStr(InputStr,len) +0306 str=InputStr; +0307 lenDiff = len - length(str); +0308 if lenDiff < 0 +0309 warning('String too long'); +0310 else +0311 str = [str blanks(lenDiff)]; +0312 end 0313 end -0314 end -0315 -0316 function status = makeBinaryExecutable() -0317 if ispc -0318 status = 0; % No need to run on Windows -0319 return; -0320 end -0321 binDir = fullfile(findRAVENroot(),'software'); -0322 -0323 binList = {fullfile(binDir,'blast+','blastp'); fullfile(binDir,'blast+','blastp.mac'); -0324 fullfile(binDir,'blast+','makeblastdb'); fullfile(binDir,'blast+','makeblastdb.mac'); -0325 fullfile(binDir,'cd-hit','cd-hit'); fullfile(binDir,'cd-hit','cd-hit.mac'); -0326 fullfile(binDir,'diamond','diamond'); fullfile(binDir,'diamond','diamond.mac'); -0327 fullfile(binDir,'hmmer','hmmbuild'); fullfile(binDir,'hmmer','hmmbuild.mac'); -0328 fullfile(binDir,'hmmer','hmmsearch'); fullfile(binDir,'hmmer','hmmsearch.mac'); -0329 fullfile(binDir,'GLPKmex','glpkcc.mexa64'); fullfile(binDir,'GLPKmex','glpkcc.mexglx'); fullfile(binDir,'GLPKmex','glpkcc.mexmaci64'); -0330 fullfile(binDir,'libSBML','TranslateSBML.mexa64'); fullfile(binDir,'libSBML','TranslateSBML.mexglx'); fullfile(binDir,'libSBML','TranslateSBML.mexmaci64'); -0331 fullfile(binDir,'libSBML','OutputSBML.mexa64'); fullfile(binDir,'libSBML','OutputSBML.mexglx'); fullfile(binDir,'libSBML','OutputSBML.mexmaci64'); -0332 fullfile(binDir,'mafft','mafft-linux64','mafft.bat'); -0333 fullfile(binDir,'mafft','mafft-mac','mafft.bat');}; -0334 -0335 for i=1:numel(binList) -0336 [status,cmdout] = system(['chmod +x "' binList{i} '"']); -0337 if status ~= 0 -0338 warning('Failed to make %s executable: %s ',binList{i},strip(cmdout)) -0339 end +0314 +0315 function status = makeBinaryExecutable(ravenDir) +0316 if ispc +0317 status = 0; % No need to run on Windows +0318 return; +0319 end +0320 binDir = fullfile(ravenDir,'software'); +0321 +0322 binList = {fullfile(binDir,'blast+','blastp'); fullfile(binDir,'blast+','blastp.mac'); +0323 fullfile(binDir,'blast+','makeblastdb'); fullfile(binDir,'blast+','makeblastdb.mac'); +0324 fullfile(binDir,'cd-hit','cd-hit'); fullfile(binDir,'cd-hit','cd-hit.mac'); +0325 fullfile(binDir,'diamond','diamond'); fullfile(binDir,'diamond','diamond.mac'); +0326 fullfile(binDir,'hmmer','hmmbuild'); fullfile(binDir,'hmmer','hmmbuild.mac'); +0327 fullfile(binDir,'hmmer','hmmsearch'); fullfile(binDir,'hmmer','hmmsearch.mac'); +0328 fullfile(binDir,'GLPKmex','glpkcc.mexa64'); fullfile(binDir,'GLPKmex','glpkcc.mexglx'); fullfile(binDir,'GLPKmex','glpkcc.mexmaci64'); +0329 fullfile(binDir,'libSBML','TranslateSBML.mexa64'); fullfile(binDir,'libSBML','TranslateSBML.mexglx'); fullfile(binDir,'libSBML','TranslateSBML.mexmaci64'); +0330 fullfile(binDir,'libSBML','OutputSBML.mexa64'); fullfile(binDir,'libSBML','OutputSBML.mexglx'); fullfile(binDir,'libSBML','OutputSBML.mexmaci64'); +0331 fullfile(binDir,'mafft','mafft-linux64','mafft.bat'); +0332 fullfile(binDir,'mafft','mafft-mac','mafft.bat');}; +0333 +0334 for i=1:numel(binList) +0335 [status,cmdout] = system(['chmod +x "' binList{i} '"']); +0336 if status ~= 0 +0337 warning('Failed to make %s executable: %s ',binList{i},strip(cmdout)) +0338 end +0339 end 0340 end -0341 end -0342 -0343 function printOrange(stringToPrint) -0344 % printOrange -0345 % Duplicate of RAVEN/core/printOrange is also kept here, as this function -0346 % should be able to run before adding RAVEN to the MATLAB path. -0347 try useDesktop = usejava('desktop'); catch, useDesktop = false; end -0348 if useDesktop -0349 fprintf(['[\b' stringToPrint,']\b']) -0350 else -0351 fprintf(stringToPrint) -0352 end -0353 end

    +0341 +0342 function printOrange(stringToPrint) +0343 % printOrange +0344 % Duplicate of RAVEN/core/printOrange is also kept here, as this function +0345 % should be able to run before adding RAVEN to the MATLAB path. +0346 try useDesktop = usejava('desktop'); catch, useDesktop = false; end +0347 if useDesktop +0348 fprintf(['[\b' stringToPrint,']\b']) +0349 else +0350 fprintf(stringToPrint) +0351 end +0352 end
    Generated by m2html © 2005
    \ No newline at end of file diff --git a/installation/checkInstallation.m b/installation/checkInstallation.m index 79e4c326..ae0bf51f 100755 --- a/installation/checkInstallation.m +++ b/installation/checkInstallation.m @@ -29,7 +29,6 @@ %Get the RAVEN path [ST, I]=dbstack('-completenames'); [ravenDir,~,~]=fileparts(fileparts(ST(I).file)); - status = makeBinaryExecutable(); % Do not print first few lines if only version should be reported if ~versionOnly @@ -105,7 +104,7 @@ if isunix fprintf([myStr(' > Make binaries executable',40) '%f']) - status = makeBinaryExecutable(); + status = makeBinaryExecutable(ravenDir); if status == 0 fprintf('Pass\n') else @@ -313,12 +312,12 @@ end end -function status = makeBinaryExecutable() +function status = makeBinaryExecutable(ravenDir) if ispc status = 0; % No need to run on Windows return; end -binDir = fullfile(findRAVENroot(),'software'); +binDir = fullfile(ravenDir,'software'); binList = {fullfile(binDir,'blast+','blastp'); fullfile(binDir,'blast+','blastp.mac'); fullfile(binDir,'blast+','makeblastdb'); fullfile(binDir,'blast+','makeblastdb.mac'); diff --git a/software/libSBML/AUTHORS.txt b/software/libSBML/AUTHORS.txt deleted file mode 100644 index 9088ddf1..00000000 --- a/software/libSBML/AUTHORS.txt +++ /dev/null @@ -1,20 +0,0 @@ - The original code contained here was initially developed by: - - Sarah Keating - Science and Technology Research Centre - University of Hertfordshire - Hatfield, AL10 9AB - United Kingdom - - with contributions from - - Ben Bornstein and Michael Hucka - Control and Dynamical Systems, MC 107-81 - California Institute of Technology - Pasadena, CA, 91125, USA - - For more information about SBML or libSBML, contact: - - The SBML Team - http://sbml.org - mailto:sbml-team@googlegroups.com diff --git a/software/libSBML/ConvertFormulaToMathML.m b/software/libSBML/ConvertFormulaToMathML.m index fbb504f6..3f35626b 100755 --- a/software/libSBML/ConvertFormulaToMathML.m +++ b/software/libSBML/ConvertFormulaToMathML.m @@ -119,7 +119,7 @@ j = j+1; x = SubFormula(j:length(SubFormula)-1); - if (exist('OCTAVE_VERSION', 'var')) + if (exist('OCTAVE_VERSION')) ReplaceFormula = myRegexprep(SubFormula, n, x, 'once'); ReplaceFormula = myRegexprep(ReplaceFormula,regexptranslate('escape',x),n,2); ReplaceFormula = myRegexprep(ReplaceFormula, 'nthroot', 'root', 'once'); diff --git a/software/libSBML/OutputSBML.m b/software/libSBML/OutputSBML.m new file mode 100644 index 00000000..d9d231e3 --- /dev/null +++ b/software/libSBML/OutputSBML.m @@ -0,0 +1,95 @@ +% OutputSBML(model, (filename), (extensionsAllowed), (applyUserValidation), (fbcGeneProductOptions))) +% outputs an xml file +% +% The function OutputSBML is the converse of TranslateSBML: +% it writes an MATLAB_SBML structure to an XML file. It accepts two arguments: +% +% * model: This argument must be a MATLAB_SBML structure representing the +% model to be written out to a file. Note that the structure will +% not be validated to check if it is fully correct SBML; OutputSBML +% will only verify the basic integrity of the structure (i.e., to +% make sure it has the form expected of a MATLAB_SBML structure), +% but nothing more. +% +% * filename: The name of the file where the SBML content should be written. +% +% NOTE: This argument is optional where a graphical user interface is +% available, in which case a missing argument will open a browse window. +% relative to the current working directory). +% +% * extensionsAllowed: An optional argument indicating that when +% determining whether the MATLAB_SBML structure represents +% a valid structure any additional fields are ignored. The default value is 1. +% If this argument is set to 0, a structure will be considered +% valid if it contains only the expected fields and no additional fields. +% +% * applyUserValidation: An optional argument indicating that when +% determining whether the MATLAB_SBML structure represents +% a valid structure user defined validation is applied. The default +% value is 0 which disables custom validation. A value of 1 +% indicates that when using the function 'isSBML_Model' to assess +% whether the MATLAB_SBML structure is correct the +% 'applyUserValidation' function should be invoked. This allows a +% user to add their own custom validation criteria to the export of SBML. +% +% * fbcGeneProductOptions: This optional argument is an array of two values that +% allows the user to change the behavior relating to +% geneProduct elements in the fbc package. +% - The first value in the array impacts of the infix respresentation of a +% GeneProductAssociation. +% A value of [0, n] (the default) indicates that OutputSBML +% should interpret the geneProductAssociation using the label +% attribute to refer to the geneProduct. A value of [1,n] +% indicates the id attribute should be used. +% +% - The second entry in the array indicates whether OutputSBML +% should add geneProduct elements if it encounters a +% label/id in an association element that does not +% correspond to an existing geneProduct. +% A value of [n, 1] (the default) will add missing geneProducts. A value of +% [n, 0] turns off this behavior. +% + +% Filename : OutputSBML.m +% Description : MATLAB help file for OutputSBML +% Author(s) : SBML Development Group +% +% -pkgCount = 0; - if (nargin < 3) error('not enough input arguments'); else element_name = varargin{1}; level = varargin{2}; version = varargin{3}; -end; +end packages = {}; packageVersion = 1; if (nargin > 3) if (nargin < 5) error('not enough input arguments'); - end; + end pkgCount = length(varargin{4}); packages = varargin{4}; if (length(varargin{5}) ~= pkgCount) error('need a version number for each package'); - end; + end packageVersion = varargin{5}; -end; +end fieldData = [getStructureFieldnames(element_name, level, version, ... packages, packageVersion) ; getDefaultValues(element_name, level, ... @@ -79,5 +77,5 @@ sbmlStruct = struct(fieldData{:}); else sbmlStruct = struct(); -end; +end end \ No newline at end of file diff --git a/software/libSBML/getStructureEnum.m b/software/libSBML/getStructureEnum.m index e7086bd5..4142cfd3 100755 --- a/software/libSBML/getStructureEnum.m +++ b/software/libSBML/getStructureEnum.m @@ -1,5 +1,5 @@ function [SBMLfieldnames, nNumberFields] = getStructureEnum(varargin) -% [SBMLfieldnames, nNumberFields] = getStructureFieldnames(typecode, level, version, pkgversion(optional)) +% [SBMLfieldnames, nNumberFields] = getStructureEnum(typecode, level, version, pkgversion(optional)) % % Takes % @@ -51,13 +51,13 @@ if (nargin > 3) if (nargin < 5) error('not enough arguments'); - end; + end pkgCount = length(varargin{4}); % packages = cell(1, pkgCount); % pkgVersion = zeros(1, pkgCount); packages = varargin{4}; pkgVersion = varargin{5}; -end; +end SBMLfieldnames = []; @@ -124,7 +124,7 @@ fhandle = str2func('getUnitDefinitionFieldnames'); otherwise done = 0; -end; +end if done == 1 [SBMLfieldnames, nNumberFields] = feval(fhandle, level, version); @@ -135,14 +135,14 @@ [found, fhandle] = getFields(typecode, packages{i}, 0); if (found == 1) break; - end; + end i = i + 1; - end; + end if (found == 1) [SBMLfieldnames, nNumberFields] = feval(fhandle, level, version, pkgVersion(i)); done = 1; - end; -end; + end +end if (done == 1 && pkgCount > 0) % we may need to extend the fields @@ -154,10 +154,19 @@ [newSBMLfieldnames, newNumberFields] = feval(fhandle, level, version, pkgVersion(i)); SBMLfieldnames = [copySBML, newSBMLfieldnames]; nNumberFields = nNumberFields + newNumberFields; - end; + end +% check for SBase extension + [found, fhandle] = getFields('SBase', packages{i}, 1); + if (found == 1) + copySBML = SBMLfieldnames; + [newSBMLfieldnames, newNumberFields] = feval(fhandle, level, version, pkgVersion(i)); + SBMLfieldnames = [copySBML, newSBMLfieldnames]; + nNumberFields = nNumberFields + newNumberFields; + end + i = i + 1; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [found, fhandle] = getFields(typecode, pkg, extension) @@ -167,27 +176,27 @@ if (extension) if (isFBCExtension(typecode)) [found, fhandle] = getFBCFieldnameFunction(typecode); - end; + end else [found, fhandle] = getFBCFieldnameFunction(typecode); - end; + end elseif strcmp(pkg, 'qual') if (extension) if (isQUALExtension(typecode)) [found, fhandle] = getQUALFieldnameFunction(typecode); - end; + end else [found, fhandle] = getQUALFieldnameFunction(typecode); - end; + end elseif strcmp(pkg, 'groups') if (extension) if (isGROUPSExtension(typecode)) [found, fhandle] = getGROUPSFieldnameFunction(typecode); - end; + end else [found, fhandle] = getGROUPSFieldnameFunction(typecode); - end; - end; + end + end %%%%% REMOVE END %%%%% ADD ADDITIONAL @@ -202,50 +211,61 @@ extend = 1; case {'SBML_FBC_REACTION', 'FBCReaction','SBML_REACTION', 'Reaction', 'reaction'} extend = 1; - end; - + case {'SBML_FBC_SBASE', 'FBCSBase', 'SBML_SBASE', 'SBase', 'sbase'} + extend = 1; + end function extend = isQUALExtension(typecode) extend = 0; switch (typecode) case {'SBML_QUAL_MODEL', 'QUALModel', 'SBML_MODEL', 'Model', 'model'} extend = 1; - end; + end function extend = isGROUPSExtension(typecode) extend = 0; switch (typecode) case {'SBML_GROUPS_MODEL', 'GROUPSModel', 'SBML_MODEL', 'Model', 'model'} extend = 1; - end; + end %%%% ADD isExtension %%%% ADD isExtension %%%% END isExtension function [found, fhandle] = getFBCFieldnameFunction(typecode) - found = 1; - switch (typecode) - case {'SBML_FBC_FLUXBOUND', 'FluxBound', 'fluxBound', 'fbc_fluxBound'} - fhandle = str2func('getFluxBoundFieldnames'); - case {'SBML_FBC_FLUXOBJECTIVE', 'FluxObjective', 'fluxObjective', 'fbc_fluxObjective'} - fhandle = str2func('getFluxObjectiveFieldnames'); - case {'SBML_FBC_OBJECTIVE', 'Objective', 'objective', 'fbc_objective'} - fhandle = str2func('getObjectiveFieldnames'); - case {'SBML_FBC_GENE_PRODUCT', 'GeneProduct', 'geneProduct', 'fbc_geneProduct'} - fhandle = str2func('getGeneProductFieldnames'); - case {'SBML_FBC_GENE_PRODUCT_ASSOCIATION', 'GeneProductAssociation', 'geneProductAssociation', 'fbc_geneProductAssociation'} - fhandle = str2func('getGeneProductAssociationFieldnames'); - case {'SBML_FBC_ASSOCIATION', 'Association', 'association', 'fbc_association'} - fhandle = str2func('getAssociationFieldnames'); - case {'SBML_FBC_MODEL', 'FBCModel', 'SBML_MODEL', 'Model', 'model'} - fhandle = str2func('getFBCModelFieldnames'); - case {'SBML_FBC_SPECIES', 'FBCSpecies', 'SBML_SPECIES', 'Species', 'species'} - fhandle = str2func('getFBCSpeciesFieldnames'); - case {'SBML_FBC_REACTION', 'FBCReaction','SBML_REACTION', 'Reaction', 'reaction'} - fhandle = str2func('getFBCReactionFieldnames'); + found = 1; + switch (typecode) + case {'SBML_FBC_FLUXBOUND', 'FluxBound', 'fluxBound', 'fbc_fluxBound'} + fhandle = str2func('getFluxBoundFieldnames'); + case {'SBML_FBC_OBJECTIVE', 'Objective', 'objective', 'fbc_objective'} + fhandle = str2func('getObjectiveFieldnames'); + case {'SBML_FBC_FLUXOBJECTIVE', 'FluxObjective', 'fluxObjective', 'fbc_fluxObjective'} + fhandle = str2func('getFluxObjectiveFieldnames'); + case {'SBML_FBC_GENE_PRODUCT', 'GeneProduct', 'geneProduct', 'fbc_geneProduct'} + fhandle = str2func('getGeneProductFieldnames'); + case {'SBML_FBC_GENE_PRODUCT_REF', 'GeneProductRef', 'geneProductRef', 'fbc_geneProductRef'} + fhandle = str2func('getGeneProductRefFieldnames'); + case {'SBML_FBC_ASSOCIATION', 'Association', 'association', 'fbc_association'} + fhandle = str2func('getAssociationFieldnames'); + case {'SBML_FBC_GENE_PRODUCT_ASSOCIATION', 'GeneProductAssociation', 'geneProductAssociation', 'fbc_geneProductAssociation'} + fhandle = str2func('getGeneProductAssociationFieldnames'); + case {'SBML_FBC_USERDEFINEDCONSTRAINTCOMPONENT', 'UserDefinedConstraintComponent', 'userDefinedConstraintComponent', 'fbc_userDefinedConstraintComponent'} + fhandle = str2func('getUserDefinedConstraintComponentFieldnames'); + case {'SBML_FBC_USERDEFINEDCONSTRAINT', 'UserDefinedConstraint', 'userDefinedConstraint', 'fbc_userDefinedConstraint'} + fhandle = str2func('getUserDefinedConstraintFieldnames'); + case {'SBML_FBC_KEYVALUEPAIR', 'KeyValuePair', 'keyValuePair', 'fbc_keyValuePair'} + fhandle = str2func('getKeyValuePairFieldnames'); + case {'SBML_FBC_MODEL', 'FBCModel', 'SBML_MODEL', 'Model', 'model'} + fhandle = str2func('getFBCModelFieldnames'); + case {'SBML_FBC_SPECIES', 'FBCSpecies', 'SBML_SPECIES', 'Species', 'species'} + fhandle = str2func('getFBCSpeciesFieldnames'); + case {'SBML_FBC_REACTION', 'FBCReaction', 'SBML_REACTION', 'Reaction', 'reaction'} + fhandle = str2func('getFBCReactionFieldnames'); + case {'SBML_FBC_SBASE', 'FBCSBase', 'SBML_SBASE', 'SBase', 'sbase'} + fhandle = str2func('getFBCSBaseFieldnames'); otherwise fhandle = str2func('disp'); found = 0; - end; + end function [found, fhandle] = getQUALFieldnameFunction(typecode) found = 1; @@ -267,7 +287,7 @@ otherwise fhandle = str2func('disp'); found = 0; - end; + end function [found, fhandle] = getGROUPSFieldnameFunction(typecode) found = 1; @@ -281,7 +301,7 @@ otherwise fhandle = str2func('disp'); found = 0; - end; + end %%%% ADD getFieldname %%%% ADD getFieldname %%%% END getFieldname @@ -292,7 +312,7 @@ version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... {'notes','notes','',1,1}, ... @@ -363,7 +383,7 @@ {'units','units','',1,20}, ... }; nNumberFields = 12; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -394,17 +414,16 @@ {'name','name','',1,20}, ... {'units','units','',1,20}, ... {'id','id','',1,20}, ... - {'name','name','',1,20}, ... }; - nNumberFields = 14; - end; -end; + nNumberFields = 13; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getAssignmentRuleFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; nNumberFields = 0; @@ -465,7 +484,7 @@ {'units','units','',1,20}, ... }; nNumberFields = 12; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -496,17 +515,16 @@ {'name','name','',1,20}, ... {'units','units','',1,20}, ... {'id','id','',1,20}, ... - {'name','name','',1,20}, ... }; - nNumberFields = 14; - end; -end; + nNumberFields = 13; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getCompartmentFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... {'notes','notes','',1,1}, ... @@ -589,7 +607,7 @@ {'isSetVolume','volume','',0,7}, ... }; nNumberFields = 16; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -625,14 +643,14 @@ {'isSetSpatialDimensions','spatialDimensions','',0,7}, ... }; nNumberFields = 14; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getCompartmentTypeFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; nNumberFields = 0; @@ -670,7 +688,7 @@ {'id','id','',1,20}, ... }; nNumberFields = 8; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = []; @@ -678,14 +696,14 @@ elseif (version == 2) SBMLfieldnames = []; nNumberFields = 2; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getCompartmentVolumeRuleFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... {'notes','notes','',1,1}, ... @@ -712,7 +730,7 @@ elseif (version == 4 || version == 5) SBMLfieldnames = []; nNumberFields = 0; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = []; @@ -720,14 +738,14 @@ elseif (version == 2) SBMLfieldnames = []; nNumberFields = 2; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getConstraintFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; nNumberFields = 0; @@ -766,7 +784,7 @@ {'message','message','',1,8}, ... }; nNumberFields = 8; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -792,14 +810,14 @@ {'name','name','',1,20}, ... }; nNumberFields = 10; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getDelayFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; nNumberFields = 0; @@ -829,7 +847,7 @@ {'math','math','',1,5}, ... }; nNumberFields = 7; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -853,14 +871,14 @@ {'name','name','',1,20}, ... }; nNumberFields =9; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getEventAssignmentFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; nNumberFields = 0; @@ -905,7 +923,7 @@ {'math','math','',1,5}, ... }; nNumberFields = 8; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -931,14 +949,14 @@ {'name','name','',1,20}, ... }; nNumberFields = 10; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getEventFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; nNumberFields = 0; @@ -998,7 +1016,7 @@ {'eventAssignment','eventAssignment','',1,20}, ... }; nNumberFields = 12; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -1032,14 +1050,14 @@ {'eventAssignment','eventAssignment','',1,20}, ... }; nNumberFields = 13; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getFunctionDefinitionFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; nNumberFields = 0; @@ -1088,7 +1106,7 @@ {'math','math','',1,5}, ... }; nNumberFields = 9; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -1114,14 +1132,14 @@ {'math','math','',1,5}, ... }; nNumberFields = 9; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getInitialAssignmentFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; nNumberFields = 0; @@ -1160,7 +1178,7 @@ {'math','math','',1,5}, ... }; nNumberFields = 8; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -1186,14 +1204,14 @@ {'name','name','',1,20}, ... }; nNumberFields = 10; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getKineticLawFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... {'notes','notes','',1,1}, ... @@ -1251,7 +1269,7 @@ {'parameter','parameter','',1,20}, ... }; nNumberFields = 9; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -1277,14 +1295,14 @@ {'name','name','',1,20}, ... }; nNumberFields = 10; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getLocalParameterFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; nNumberFields = 0; @@ -1320,14 +1338,14 @@ {'isSetValue','value','',0,7}, ... }; nNumberFields = 11; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getModelFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... {'notes','notes','',1,1}, ... @@ -1449,7 +1467,7 @@ {'namespaces','','',0,3}, ... }; nNumberFields = 25; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -1521,14 +1539,14 @@ {'namespaces','','',0,3}, ... }; nNumberFields = 32; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getModifierSpeciesReferenceFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; nNumberFields = 0; @@ -1575,7 +1593,7 @@ {'name','name','',1,20}, ... }; nNumberFields = 9; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -1599,18 +1617,16 @@ {'species','species','',1,20}, ... {'id','id','',1,20}, ... {'name','name','',1,20}, ... - {'id','id','',1,20}, ... - {'name','name','',1,20}, ... }; - nNumberFields = 11; - end; -end; + nNumberFields = 9; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getParameterFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... {'notes','notes','',1,1}, ... @@ -1678,7 +1694,7 @@ {'isSetValue','value','',0,7}, ... }; nNumberFields = 12; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -1710,14 +1726,14 @@ {'isSetValue','value','',0,7}, ... }; nNumberFields = 12; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getParameterRuleFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... {'notes','notes','',1,1}, ... @@ -1744,7 +1760,7 @@ elseif (version == 4 || version == 5) SBMLfieldnames = []; nNumberFields = 0; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = []; @@ -1752,14 +1768,14 @@ elseif (version == 2) SBMLfieldnames = []; nNumberFields = 2; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getPriorityFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; nNumberFields = 0; @@ -1789,14 +1805,14 @@ {'name','name','',1,20}, ... }; nNumberFields = 9; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getRateRuleFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; nNumberFields = 0; @@ -1857,7 +1873,7 @@ {'units','units','',1,20}, ... }; nNumberFields = 12; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -1888,17 +1904,16 @@ {'name','name','',1,20}, ... {'units','units','',1,20}, ... {'id','id','',1,20}, ... - {'name','name','',1,20}, ... }; - nNumberFields = 14; - end; -end; + nNumberFields = 13; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getReactionFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... {'notes','notes','',1,1}, ... @@ -1980,7 +1995,7 @@ {'isSetFast','fast','',0,7}, ... }; nNumberFields = 15; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -2018,14 +2033,14 @@ {'compartment','compartment','',1,20}, ... }; nNumberFields = 14; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getSpeciesConcentrationRuleFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... {'notes','notes','',1,1}, ... @@ -2052,7 +2067,7 @@ elseif (version == 4 || version == 5) SBMLfieldnames = []; nNumberFields = 0; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = []; @@ -2060,14 +2075,14 @@ elseif (version == 2) SBMLfieldnames = []; nNumberFields = 2; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getSpeciesFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... {'notes','notes','',1,1}, ... @@ -2171,7 +2186,7 @@ {'isSetCharge','charge','',0,7}, ... }; nNumberFields = 20; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -2215,14 +2230,14 @@ {'conversionFactor','conversionFactor','',1,20}, ... }; nNumberFields = 18; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getSpeciesReferenceFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... {'notes','notes','',1,1}, ... @@ -2284,7 +2299,7 @@ {'stoichiometryMath','stoichiometryMath','',1,20}, ... }; nNumberFields = 11; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -2316,14 +2331,14 @@ {'isSetStoichiometry','stoichiometry','',0,7}, ... }; nNumberFields = 12; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getSpeciesTypeFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; nNumberFields = 0; @@ -2361,7 +2376,7 @@ {'id','id','',1,20}, ... }; nNumberFields = 8; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = []; @@ -2369,14 +2384,14 @@ elseif (version == 2) SBMLfieldnames = []; nNumberFields = 2; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getStoichiometryMathFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; nNumberFields = 0; @@ -2406,7 +2421,7 @@ {'math','math','',1,5}, ... }; nNumberFields = 7; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = []; @@ -2414,14 +2429,14 @@ elseif (version == 2) SBMLfieldnames = []; nNumberFields = 2; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getTriggerFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; nNumberFields = 0; @@ -2451,7 +2466,7 @@ {'math','math','',1,5}, ... }; nNumberFields = 7; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -2479,14 +2494,14 @@ {'name','name','',1,20}, ... }; nNumberFields = 11; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getUnitDefinitionFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... {'notes','notes','',1,1}, ... @@ -2539,7 +2554,7 @@ {'unit','unit','',1,20}, ... }; nNumberFields = 9; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -2565,14 +2580,14 @@ {'unit','unit','',1,20}, ... }; nNumberFields = 9; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getUnitFieldnames(level, ... version) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... {'notes','notes','',1,1}, ... @@ -2631,7 +2646,7 @@ {'multiplier','multiplier','',1,20}, ... }; nNumberFields = 10; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { {'typecode','','',0,0}, ... @@ -2661,315 +2676,653 @@ {'name','name','',1,20}, ... }; nNumberFields = 12; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getFBCModelFieldnames(level, ... - version, pkgVersion) -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; -% need a check on package version -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion == 1) - SBMLfieldnames = { {'fbc_version','version','fbc',1,20}, ... - {'fbc_fluxBound','fluxBound','fbc',1,20}, ... - {'fbc_objective','objective','fbc',1,20}, ... - {'fbc_activeObjective','activeObjective','fbc',1,20}, ... - }; - nNumberFields = 4; - elseif(pkgVersion ==2) - SBMLfieldnames = { {'fbc_version','version','fbc',1,20}, ... - {'fbc_geneProduct','geneProduct','fbc',1,20}, ... - {'fbc_objective','objective','fbc',1,20}, ... - {'fbc_activeObjective','activeObjective','fbc',1,20}, ... - {'fbc_strict','strict','fbc',1,20} - }; - nNumberFields = 5; - end; - end; -end; + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + SBMLfieldnames = { + {'fbc_objective', 'objective', 'fbc', 1, 20}, ... + {'fbc_activeObjective', 'activeObjective', 'fbc', 1, 20}, ... + {'fbc_fluxBound', 'fluxBound', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 6; + elseif (pkgVersion == 2) + SBMLfieldnames = { + {'fbc_objective', 'objective', 'fbc', 1, 20}, ... + {'fbc_activeObjective', 'activeObjective', 'fbc', 1, 20}, ... + {'fbc_geneProduct', 'geneProduct', 'fbc', 1, 20}, ... + {'fbc_strict', 'strict', 'fbc', 1, 20}, ... + {'isSetfbc_strict', 'strict', 'fbc', 0, 7}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 8; + elseif (pkgVersion == 3) + SBMLfieldnames = { + {'fbc_objective', 'objective', 'fbc', 1, 20}, ... + {'fbc_activeObjective', 'activeObjective', 'fbc', 1, 20}, ... + {'fbc_geneProduct', 'geneProduct', 'fbc', 1, 20}, ... + {'fbc_userDefinedConstraint', 'userDefinedConstraint', 'fbc', 1, 20}, ... + {'fbc_strict', 'strict', 'fbc', 1, 20}, ... + {'isSetfbc_strict', 'strict', 'fbc', 0, 7}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 9; + end + end + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getFBCSpeciesFieldnames(level, ... - version, pkgVersion) -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; -% need a check on package version -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion < 3) - SBMLfieldnames = { {'fbc_charge','charge','fbc',1,20}, ... - {'fbc_chemicalFormula','chemicalFormula','fbc',1,20}, ... - {'isSetfbc_charge','charge','fbc',0,7}, ... - {'level','','', 0, 0}, ... - {'version','','', 0, 0}, ... - {'fbc_version','version','fbc',1,20}, ... - }; - nNumberFields = 6; - end; - end; -end; + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + SBMLfieldnames = { + {'fbc_charge', 'charge', 'fbc', 1, 20}, ... + {'isSetfbc_charge', 'charge', 'fbc', 0, 7}, ... + {'fbc_chemicalFormula', 'chemicalFormula', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 6; + elseif (pkgVersion == 2) + SBMLfieldnames = { + {'fbc_charge', 'charge', 'fbc', 1, 20}, ... + {'isSetfbc_charge', 'charge', 'fbc', 0, 7}, ... + {'fbc_chemicalFormula', 'chemicalFormula', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 6; + elseif (pkgVersion == 3) + SBMLfieldnames = { + {'fbc_charge', 'charge', 'fbc', 1, 20}, ... + {'isSetfbc_charge', 'charge', 'fbc', 0, 7}, ... + {'fbc_chemicalFormula', 'chemicalFormula', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 6; + end + end + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -function [SBMLfieldnames, nNumberFields] = getFluxBoundFieldnames(level, ... - version, pkgVersion) -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; -% need a check on package version -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version <3) - if (pkgVersion == 1) - SBMLfieldnames = { {'typecode','','',0,0}, ... - {'metaid','metaid','',1,20}, ... - {'notes','notes','',1,1}, ... - {'annotation','annotation','',1,2}, ... - {'cvterms','','',0,4}, ... - {'sboTerm','sboTerm','',1,20}, ... - {'fbc_id','id','fbc',1,20}, ... - {'fbc_reaction','reaction','fbc',1,20}, ... - {'fbc_operation','operation','fbc',1,20}, ... - {'fbc_value','value','fbc',1,20}, ... - {'isSetfbc_value','value','fbc',0,7}, ... - {'level','','', 0, 0}, ... - {'version','','', 0, 0}, ... - {'fbc_version','version','fbc',1,20}, ... - }; - nNumberFields = 14; - else - SBMLfieldnames = []; - nNumberFields = 0; - end; - end; -end; +function [SBMLfieldnames, nNumberFields] = getFBCReactionFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + SBMLfieldnames = { + {'fbc_geneProductAssociation', 'geneProductAssociation', 'fbc', 1, 20}, ... + {'fbc_lowerFluxBound', 'lowerFluxBound', 'fbc', 1, 20}, ... + {'fbc_upperFluxBound', 'upperFluxBound', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 6; + elseif (pkgVersion == 3) + SBMLfieldnames = { + {'fbc_geneProductAssociation', 'geneProductAssociation', 'fbc', 1, 20}, ... + {'fbc_lowerFluxBound', 'lowerFluxBound', 'fbc', 1, 20}, ... + {'fbc_upperFluxBound', 'upperFluxBound', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 6; + end + end + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -function [SBMLfieldnames, nNumberFields] = getFluxObjectiveFieldnames(level, ... - version, pkgVersion) -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; -% need a check on package version -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion < 3) - SBMLfieldnames = { {'typecode','','',0,0}, ... - {'metaid','metaid','',1,20}, ... - {'notes','notes','',1,1}, ... - {'annotation','annotation','',1,2}, ... - {'cvterms','','',0,4}, ... - {'sboTerm','sboTerm','',1,20}, ... - {'fbc_reaction','reaction','fbc',1,20}, ... - {'fbc_coefficient','coefficient','fbc',1,20}, ... - {'isSetfbc_coefficient','coefficient','fbc',0,7}, ... - {'level','','', 0, 0}, ... - {'version','','', 0, 0}, ... - {'fbc_version','version','fbc',1,20}, ... - }; - nNumberFields = 12; - end; - end; -end; +function [SBMLfieldnames, nNumberFields] = getFBCSBaseFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + elseif (pkgVersion == 3) + SBMLfieldnames = { + {'fbc_keyValuePair', 'keyValuePair', 'fbc', 1, 20}, ... + {'fbc_kvp_xmlns', 'xmlns', 'fbc', 1, 20}, ... + }; + nNumberFields = 2; + end + end + end + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getFluxBoundFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'metaid', 'metaid', '', 1, 20}, ... + {'notes', 'notes', '', 1, 1}, ... + {'annotation', 'annotation', '', 1, 2}, ... + {'cvterms', '', '', 0, 4}, ... + {'sboTerm', 'sboTerm', '', 1, 20}, ... + {'fbc_id', 'id', 'fbc', 1, 20}, ... + {'fbc_name', 'name', 'fbc', 1, 20}, ... + {'fbc_reaction', 'reaction', 'fbc', 1, 20}, ... + {'fbc_operation', 'operation', 'fbc', 1, 20}, ... + {'fbc_value', 'value', 'fbc', 1, 20}, ... + {'isSetfbc_value', 'value', 'fbc', 0, 7}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 15; + elseif (pkgVersion == 2) + elseif (pkgVersion == 3) + end + end + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getObjectiveFieldnames(level, ... - version, pkgVersion) -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; -% need a check on package version -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion < 3) - SBMLfieldnames = { {'typecode','','',0,0}, ... - {'metaid','metaid','',1,20}, ... - {'notes','notes','',1,1}, ... - {'annotation','annotation','',1,2}, ... - {'cvterms','','',0,4}, ... - {'sboTerm','sboTerm','',1,20}, ... - {'fbc_id','id','fbc',1,20}, ... - {'fbc_type','type','fbc',1,20}, ... - {'fbc_fluxObjective','fluxObjective','fbc',1,20}, ... - {'level','','', 0, 0}, ... - {'version','','', 0, 0}, ... - {'fbc_version','version','fbc',1,20}, ... - }; - nNumberFields = 12; - end; - end; -end; + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'metaid', 'metaid', '', 1, 20}, ... + {'notes', 'notes', '', 1, 1}, ... + {'annotation', 'annotation', '', 1, 2}, ... + {'cvterms', '', '', 0, 4}, ... + {'sboTerm', 'sboTerm', '', 1, 20}, ... + {'fbc_id', 'id', 'fbc', 1, 20}, ... + {'fbc_name', 'name', 'fbc', 1, 20}, ... + {'fbc_type', 'type', 'fbc', 1, 20}, ... + {'fbc_fluxObjective', 'fluxObjective', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 13; + elseif (pkgVersion == 2) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'metaid', 'metaid', '', 1, 20}, ... + {'notes', 'notes', '', 1, 1}, ... + {'annotation', 'annotation', '', 1, 2}, ... + {'cvterms', '', '', 0, 4}, ... + {'sboTerm', 'sboTerm', '', 1, 20}, ... + {'fbc_id', 'id', 'fbc', 1, 20}, ... + {'fbc_name', 'name', 'fbc', 1, 20}, ... + {'fbc_type', 'type', 'fbc', 1, 20}, ... + {'fbc_fluxObjective', 'fluxObjective', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 13; + elseif (pkgVersion == 3) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'metaid', 'metaid', '', 1, 20}, ... + {'notes', 'notes', '', 1, 1}, ... + {'annotation', 'annotation', '', 1, 2}, ... + {'cvterms', '', '', 0, 4}, ... + {'sboTerm', 'sboTerm', '', 1, 20}, ... + {'fbc_id', 'id', 'fbc', 1, 20}, ... + {'fbc_name', 'name', 'fbc', 1, 20}, ... + {'fbc_type', 'type', 'fbc', 1, 20}, ... + {'fbc_fluxObjective', 'fluxObjective', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 13; + end + end + end + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getFluxObjectiveFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'metaid', 'metaid', '', 1, 20}, ... + {'notes', 'notes', '', 1, 1}, ... + {'annotation', 'annotation', '', 1, 2}, ... + {'cvterms', '', '', 0, 4}, ... + {'sboTerm', 'sboTerm', '', 1, 20}, ... + {'fbc_id', 'id', 'fbc', 1, 20}, ... + {'fbc_name', 'name', 'fbc', 1, 20}, ... + {'fbc_reaction', 'reaction', 'fbc', 1, 20}, ... + {'fbc_coefficient', 'coefficient', 'fbc', 1, 20}, ... + {'isSetfbc_coefficient', 'coefficient', 'fbc', 0, 7}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 14; + elseif (pkgVersion == 2) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'metaid', 'metaid', '', 1, 20}, ... + {'notes', 'notes', '', 1, 1}, ... + {'annotation', 'annotation', '', 1, 2}, ... + {'cvterms', '', '', 0, 4}, ... + {'sboTerm', 'sboTerm', '', 1, 20}, ... + {'fbc_id', 'id', 'fbc', 1, 20}, ... + {'fbc_name', 'name', 'fbc', 1, 20}, ... + {'fbc_reaction', 'reaction', 'fbc', 1, 20}, ... + {'fbc_coefficient', 'coefficient', 'fbc', 1, 20}, ... + {'isSetfbc_coefficient', 'coefficient', 'fbc', 0, 7}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 14; + elseif (pkgVersion == 3) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'metaid', 'metaid', '', 1, 20}, ... + {'notes', 'notes', '', 1, 1}, ... + {'annotation', 'annotation', '', 1, 2}, ... + {'cvterms', '', '', 0, 4}, ... + {'sboTerm', 'sboTerm', '', 1, 20}, ... + {'fbc_id', 'id', 'fbc', 1, 20}, ... + {'fbc_name', 'name', 'fbc', 1, 20}, ... + {'fbc_reaction', 'reaction', 'fbc', 1, 20}, ... + {'fbc_reaction2', 'reaction2', 'fbc', 1, 20}, ... + {'fbc_coefficient', 'coefficient', 'fbc', 1, 20}, ... + {'isSetfbc_coefficient', 'coefficient', 'fbc', 0, 7}, ... + {'fbc_variableType', 'variableType', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 16; + end + end + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getGeneProductFieldnames(level, ... - version, pkgVersion) -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; -% need a check on package version -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion == 2) - SBMLfieldnames = { {'typecode','','',0,0}, ... - {'metaid','metaid','',1,20}, ... - {'notes','notes','',1,1}, ... - {'annotation','annotation','',1,2}, ... - {'cvterms','','',0,4}, ... - {'sboTerm','sboTerm','',1,20}, ... - {'fbc_id','id','fbc',1,20}, ... - {'fbc_name','name','fbc',1,20}, ... - {'fbc_label','label','fbc',1,20}, ... - {'fbc_associatedSpecies','associatedSpecies','fbc',1,20}, ... - {'level','','', 0, 0}, ... - {'version','','', 0, 0}, ... - {'fbc_version','version','fbc',1,20}, ... - }; - nNumberFields = 13; - else - SBMLfieldnames = []; - nNumberFields = 0; - end; - end; -end; + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'metaid', 'metaid', '', 1, 20}, ... + {'notes', 'notes', '', 1, 1}, ... + {'annotation', 'annotation', '', 1, 2}, ... + {'cvterms', '', '', 0, 4}, ... + {'sboTerm', 'sboTerm', '', 1, 20}, ... + {'fbc_id', 'id', 'fbc', 1, 20}, ... + {'fbc_name', 'name', 'fbc', 1, 20}, ... + {'fbc_label', 'label', 'fbc', 1, 20}, ... + {'fbc_associatedSpecies', 'associatedSpecies', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 13; + elseif (pkgVersion == 3) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'metaid', 'metaid', '', 1, 20}, ... + {'notes', 'notes', '', 1, 1}, ... + {'annotation', 'annotation', '', 1, 2}, ... + {'cvterms', '', '', 0, 4}, ... + {'sboTerm', 'sboTerm', '', 1, 20}, ... + {'fbc_id', 'id', 'fbc', 1, 20}, ... + {'fbc_name', 'name', 'fbc', 1, 20}, ... + {'fbc_label', 'label', 'fbc', 1, 20}, ... + {'fbc_associatedSpecies', 'associatedSpecies', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 13; + end + end + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -function [SBMLfieldnames, nNumberFields] = getFBCReactionFieldnames(level, ... - version, pkgVersion) -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; -% need a check on package version -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion == 2) - SBMLfieldnames = { {'fbc_lowerFluxBound','lowerFluxBound','fbc',1,20}, ... - {'fbc_upperFluxBound','upperFluxBound','fbc',1,20}, ... - {'fbc_geneProductAssociation','geneProductAssociation','fbc',1,20}, ... - {'level','','', 0, 0}, ... - {'version','','', 0, 0}, ... - {'fbc_version','version','fbc',1,20}, ... - }; - nNumberFields = 6; - else - SBMLfieldnames = []; - nNumberFields = 0; - end; - end; -end; +function [SBMLfieldnames, nNumberFields] = getGeneProductRefFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'metaid', 'metaid', '', 1, 20}, ... + {'notes', 'notes', '', 1, 1}, ... + {'annotation', 'annotation', '', 1, 2}, ... + {'cvterms', '', '', 0, 4}, ... + {'sboTerm', 'sboTerm', '', 1, 20}, ... + {'fbc_id', 'id', 'fbc', 1, 20}, ... + {'fbc_name', 'name', 'fbc', 1, 20}, ... + {'fbc_geneProduct', 'geneProduct', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 12; + elseif (pkgVersion == 3) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'metaid', 'metaid', '', 1, 20}, ... + {'notes', 'notes', '', 1, 1}, ... + {'annotation', 'annotation', '', 1, 2}, ... + {'cvterms', '', '', 0, 4}, ... + {'sboTerm', 'sboTerm', '', 1, 20}, ... + {'fbc_id', 'id', 'fbc', 1, 20}, ... + {'fbc_name', 'name', 'fbc', 1, 20}, ... + {'fbc_geneProduct', 'geneProduct', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 12; + end + end + end + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getAssociationFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'metaid', 'metaid', '', 1, 20}, ... + {'notes', 'notes', '', 1, 1}, ... + {'annotation', 'annotation', '', 1, 2}, ... + {'cvterms', '', '', 0, 4}, ... + {'sboTerm', 'sboTerm', '', 1, 20}, ... + {'fbc_association', 'association', 'fbc', 1, 14}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 10; + elseif (pkgVersion == 3) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'metaid', 'metaid', '', 1, 20}, ... + {'notes', 'notes', '', 1, 1}, ... + {'annotation', 'annotation', '', 1, 2}, ... + {'cvterms', '', '', 0, 4}, ... + {'sboTerm', 'sboTerm', '', 1, 20}, ... + {'fbc_association', 'association', 'fbc', 1, 14}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 10; + end + end + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getGeneProductAssociationFieldnames(level, ... - version, pkgVersion) -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; -% need a check on package version -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion == 2) - SBMLfieldnames = { {'typecode','','',0,0}, ... - {'metaid','metaid','',1,20}, ... - {'notes','notes','',1,1}, ... - {'annotation','annotation','',1,2}, ... - {'cvterms','','',0,4}, ... - {'sboTerm','sboTerm','',1,20}, ... - {'fbc_id','id','fbc',1,20}, ... - {'fbc_name','name','fbc',1,20}, ... - {'fbc_association','association','fbc',1,20}, ... - {'level','','', 0, 0}, ... - {'version','','', 0, 0}, ... - {'fbc_version','version','fbc',1,20}, ... - }; - nNumberFields = 12; - else - SBMLfieldnames = []; - nNumberFields = 0; - end; - end; -end; + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'metaid', 'metaid', '', 1, 20}, ... + {'notes', 'notes', '', 1, 1}, ... + {'annotation', 'annotation', '', 1, 2}, ... + {'cvterms', '', '', 0, 4}, ... + {'sboTerm', 'sboTerm', '', 1, 20}, ... + {'fbc_id', 'id', 'fbc', 1, 20}, ... + {'fbc_name', 'name', 'fbc', 1, 20}, ... + {'fbc_association', 'association', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 12; + elseif (pkgVersion == 3) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'metaid', 'metaid', '', 1, 20}, ... + {'notes', 'notes', '', 1, 1}, ... + {'annotation', 'annotation', '', 1, 2}, ... + {'cvterms', '', '', 0, 4}, ... + {'sboTerm', 'sboTerm', '', 1, 20}, ... + {'fbc_id', 'id', 'fbc', 1, 20}, ... + {'fbc_name', 'name', 'fbc', 1, 20}, ... + {'fbc_association', 'association', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 12; + end + end + end + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -function [SBMLfieldnames, nNumberFields] = getAssociationFieldnames(level, ... - version, pkgVersion) -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; -% need a check on package version -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion == 2) - SBMLfieldnames = { {'typecode','','',0,0}, ... - {'metaid','metaid','',1,20}, ... - {'notes','notes','',1,1}, ... - {'annotation','annotation','',1,2}, ... - {'cvterms','','',0,4}, ... - {'sboTerm','sboTerm','',1,20}, ... - {'fbc_association','association','fbc',1,14}, ... - {'level','','', 0, 0}, ... - {'version','','', 0, 0}, ... - {'fbc_version','version','fbc',1,20}, ... - }; - nNumberFields = 10; - else - SBMLfieldnames = []; - nNumberFields = 0; - end; - end; -end; +function [SBMLfieldnames, nNumberFields] = getUserDefinedConstraintComponentFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + elseif (pkgVersion == 3) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'metaid', 'metaid', '', 1, 20}, ... + {'notes', 'notes', '', 1, 1}, ... + {'annotation', 'annotation', '', 1, 2}, ... + {'cvterms', '', '', 0, 4}, ... + {'sboTerm', 'sboTerm', '', 1, 20}, ... + {'fbc_id', 'id', 'fbc', 1, 20}, ... + {'fbc_name', 'name', 'fbc', 1, 20}, ... + {'fbc_coefficient', 'coefficient', 'fbc', 1, 20}, ... + {'fbc_variable', 'variable', 'fbc', 1, 20}, ... + {'fbc_variable2', 'variable2', 'fbc', 1, 20}, ... + {'fbc_variableType', 'variableType', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 15; + end + end + end + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getUserDefinedConstraintFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + elseif (pkgVersion == 3) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'metaid', 'metaid', '', 1, 20}, ... + {'notes', 'notes', '', 1, 1}, ... + {'annotation', 'annotation', '', 1, 2}, ... + {'cvterms', '', '', 0, 4}, ... + {'sboTerm', 'sboTerm', '', 1, 20}, ... + {'fbc_id', 'id', 'fbc', 1, 20}, ... + {'fbc_name', 'name', 'fbc', 1, 20}, ... + {'fbc_lowerBound', 'lowerBound', 'fbc', 1, 20}, ... + {'fbc_upperBound', 'upperBound', 'fbc', 1, 20}, ... + {'fbc_userDefinedConstraintComponent', 'userDefinedConstraintComponent', 'fbc', 1, 20}, ... + {'level', '', '', 0, 0}, ... + {'version', '', '', 0, 0}, ... + {'fbc_version', 'version', 'fbc', 1, 20}, ... + }; + nNumberFields = 14; + end + end + end + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getKeyValuePairFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + elseif (pkgVersion == 3) + SBMLfieldnames = { + {'typecode', '', '', 0, 0}, ... + {'fbc_key', 'key', 'fbc', 1, 20}, ... + {'fbc_value', 'value', 'fbc', 1, 20}, ... + {'fbc_uri', 'uri', 'fbc', 1, 20}, ... + }; + nNumberFields = 4; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getQUALModelFieldnames(level, ... version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; if (level == 3) @@ -2981,15 +3334,15 @@ {'qual_transition','transition','qual',1,20}, ... }; nNumberFields = 3; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getQualitativeSpeciesFieldnames(level, ... version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; if (level == 3) @@ -3013,15 +3366,15 @@ {'qual_version','version','qual',1,20}, ... }; nNumberFields = 15; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getTransitionFieldnames(level, ... version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; if (level == 3) @@ -3045,15 +3398,15 @@ {'qual_version','version','qual',1,20}, ... }; nNumberFields = 14; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getInputFieldnames(level, ... version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; if (level == 3) @@ -3077,15 +3430,15 @@ {'qual_version','version','qual',1,20}, ... }; nNumberFields = 15; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getOutputFieldnames(level, ... version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; if (level == 3) @@ -3108,15 +3461,15 @@ {'qual_version','version','qual',1,20}, ... }; nNumberFields = 14; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getDefaultTermFieldnames(level, ... version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; if (level == 3) @@ -3135,15 +3488,15 @@ {'qual_version','version','qual',1,20}, ... }; nNumberFields = 10; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getFunctionTermFieldnames(level, ... version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; if (level == 3) @@ -3163,15 +3516,15 @@ {'qual_version','version','qual',1,20}, ... }; nNumberFields = 11; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getGROUPSModelFieldnames(level, ... version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; if (level == 3) @@ -3182,15 +3535,15 @@ {'groups_group','group','groups',1,20}, ... }; nNumberFields = 2; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getGroupFieldnames(level, ... version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; if (level == 3) @@ -3212,15 +3565,15 @@ {'groups_version','version','groups',1,20}, ... }; nNumberFields = 13; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getMemberFieldnames(level, ... version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; if (level == 3) @@ -3242,9 +3595,9 @@ {'groups_version','version','groups',1,20}, ... }; nNumberFields = 13; - end; - end; - end; + end + end + end %%%% ADD functions %%%% ADD functions %%%% END functions @@ -3255,23 +3608,23 @@ error('level must be an integer'); elseif ~isIntegralNumber(version) error('version must be an integer'); -end; +end if (level < 1 || level > 3) error('current SBML levels are 1, 2 or 3'); -end; +end if (level == 1) if (version < 1 || version > 2) error('SBMLToolbox supports versions 1-2 of SBML Level 1'); - end; + end elseif (level == 2) if (version < 1 || version > 5) error('SBMLToolbox supports versions 1-5 of SBML Level 2'); - end; + end elseif (level == 3) if (version < 1 || version > 2) error('SBMLToolbox supports version 1-2 of SBML Level 3'); - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function value = isIntegralNumber(number) value = 0; @@ -3285,5 +3638,5 @@ % if it is an integer if (number == fix(number)) value = 1; - end; -end; + end +end diff --git a/software/libSBML/getStructureFieldnames.m b/software/libSBML/getStructureFieldnames.m index bed838ed..d2574b6c 100755 --- a/software/libSBML/getStructureFieldnames.m +++ b/software/libSBML/getStructureFieldnames.m @@ -51,13 +51,13 @@ if (nargin > 3) if (nargin < 5) error('not enough arguments'); - end; + end pkgCount = length(varargin{4}); % packages = cell(1, pkgCount); % pkgVersion = zeros(1, pkgCount); packages = varargin{4}; pkgVersion = varargin{5}; -end; +end SBMLfieldnames = []; @@ -124,7 +124,7 @@ fhandle = str2func('getUnitDefinitionFieldnames'); otherwise done = 0; -end; +end if done == 1 [SBMLfieldnames, nNumberFields] = feval(fhandle, level, version); @@ -135,14 +135,14 @@ [found, fhandle] = getFields(typecode, packages{i}, 0); if (found == 1) break; - end; + end i = i + 1; - end; + end if (found == 1) [SBMLfieldnames, nNumberFields] = feval(fhandle, level, version, pkgVersion(i)); done = 1; - end; -end; + end +end if (done == 1 && pkgCount > 0) % we may need to extend the fields @@ -154,12 +154,23 @@ [newSBMLfieldnames, newNumberFields] = feval(fhandle, level, version, pkgVersion(i)); SBMLfieldnames = [copySBML, newSBMLfieldnames]; nNumberFields = nNumberFields + newNumberFields; - end; + end +% check for SBase extension + [found, fhandle] = getFields('SBase', packages{i}, 1); + if (found == 1) + copySBML = SBMLfieldnames; + [newSBMLfieldnames, newNumberFields] = feval(fhandle, level, version, pkgVersion(i)); + SBMLfieldnames = [copySBML, newSBMLfieldnames]; + nNumberFields = nNumberFields + newNumberFields; + end + i = i + 1; - end; -end; - + end +end +%%%%% 111 REMOVE END +%%%%% ADD ADDITIONAL %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + function [found, fhandle] = getFields(typecode, pkg, extension) fhandle = str2func('disp'); found = 0; @@ -167,85 +178,104 @@ if (extension) if (isFBCExtension(typecode)) [found, fhandle] = getFBCFieldnameFunction(typecode); - end; + end else [found, fhandle] = getFBCFieldnameFunction(typecode); - end; + end elseif strcmp(pkg, 'qual') if (extension) if (isQUALExtension(typecode)) [found, fhandle] = getQUALFieldnameFunction(typecode); - end; + end else [found, fhandle] = getQUALFieldnameFunction(typecode); - end; + end elseif strcmp(pkg, 'groups') if (extension) if (isGROUPSExtension(typecode)) [found, fhandle] = getGROUPSFieldnameFunction(typecode); - end; + end else [found, fhandle] = getGROUPSFieldnameFunction(typecode); - end; - end; + end + end %%%%% REMOVE END %%%%% ADD ADDITIONAL %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%% ADD isExtension +%%%% ADD isExtension + function extend = isFBCExtension(typecode) - extend = 0; - switch (typecode) - case {'SBML_FBC_MODEL', 'FBCModel', 'SBML_MODEL', 'Model', 'model'} - extend = 1; - case {'SBML_FBC_SPECIES', 'FBCSpecies', 'SBML_SPECIES', 'Species', 'species'} - extend = 1; - case {'SBML_FBC_REACTION', 'FBCReaction','SBML_REACTION', 'Reaction', 'reaction'} - extend = 1; - end; + extend = 0; + switch (typecode) + case {'SBML_FBC_MODEL', 'FBCModel', 'SBML_MODEL', 'Model', 'model'} + extend = 1; + case {'SBML_FBC_SPECIES', 'FBCSpecies', 'SBML_SPECIES', 'Species', 'species'} + extend = 1; + case {'SBML_FBC_REACTION', 'FBCReaction', 'SBML_REACTION', 'Reaction', 'reaction'} + extend = 1; + case {'SBML_FBC_SBASE', 'FBCSBase', 'SBML_SBASE', 'SBase', 'sbase'} + extend = 1; + end function extend = isQUALExtension(typecode) extend = 0; switch (typecode) case {'SBML_QUAL_MODEL', 'QUALModel', 'SBML_MODEL', 'Model', 'model'} extend = 1; - end; + end function extend = isGROUPSExtension(typecode) extend = 0; switch (typecode) case {'SBML_GROUPS_MODEL', 'GROUPSModel', 'SBML_MODEL', 'Model', 'model'} extend = 1; - end; -%%%% ADD isExtension -%%%% ADD isExtension + end %%%% END isExtension +%%%% ADD getFieldname +%%%% ADD getFieldname function [found, fhandle] = getFBCFieldnameFunction(typecode) - found = 1; - switch (typecode) - case {'SBML_FBC_FLUXBOUND', 'FluxBound', 'fluxBound', 'fbc_fluxBound'} - fhandle = str2func('getFluxBoundFieldnames'); - case {'SBML_FBC_FLUXOBJECTIVE', 'FluxObjective', 'fluxObjective', 'fbc_fluxObjective'} - fhandle = str2func('getFluxObjectiveFieldnames'); - case {'SBML_FBC_OBJECTIVE', 'Objective', 'objective', 'fbc_objective'} - fhandle = str2func('getObjectiveFieldnames'); - case {'SBML_FBC_GENE_PRODUCT', 'GeneProduct', 'geneProduct', 'fbc_geneProduct'} - fhandle = str2func('getGeneProductFieldnames'); - case {'SBML_FBC_GENE_PRODUCT_ASSOCIATION', 'GeneProductAssociation', 'geneProductAssociation', 'fbc_geneProductAssociation'} - fhandle = str2func('getGeneProductAssociationFieldnames'); - case {'SBML_FBC_ASSOCIATION', 'Association', 'association', 'fbc_association'} - fhandle = str2func('getAssociationFieldnames'); - case {'SBML_FBC_MODEL', 'FBCModel', 'SBML_MODEL', 'Model', 'model'} - fhandle = str2func('getFBCModelFieldnames'); - case {'SBML_FBC_SPECIES', 'FBCSpecies', 'SBML_SPECIES', 'Species', 'species'} - fhandle = str2func('getFBCSpeciesFieldnames'); - case {'SBML_FBC_REACTION', 'FBCReaction','SBML_REACTION', 'Reaction', 'reaction'} - fhandle = str2func('getFBCReactionFieldnames'); - otherwise - fhandle = str2func('disp'); - found = 0; - end; + found = 1; + switch (typecode) + case {'SBML_FBC_FLUXBOUND', 'FluxBound', 'fluxBound', 'fbc_fluxBound'} + fhandle = str2func('getFluxBoundFieldnames'); + case {'SBML_FBC_OBJECTIVE', 'Objective', 'objective', 'fbc_objective'} + fhandle = str2func('getObjectiveFieldnames'); + case {'SBML_FBC_FLUXOBJECTIVE', 'FluxObjective', 'fluxObjective', 'fbc_fluxObjective'} + fhandle = str2func('getFluxObjectiveFieldnames'); + case {'SBML_FBC_GENE_PRODUCT', 'GeneProduct', 'geneProduct', 'fbc_geneProduct'} + fhandle = str2func('getGeneProductFieldnames'); + case {'SBML_FBC_GENE_PRODUCT_REF', 'GeneProductRef', 'geneProductRef', 'fbc_geneProductRef'} + fhandle = str2func('getGeneProductRefFieldnames'); + case {'SBML_FBC_AND', 'FbcAnd', 'fbcAnd', 'fbc_fbcAnd'} + fhandle = str2func('getFbcAndFieldnames'); + case {'SBML_FBC_OR', 'FbcOr', 'fbcOr', 'fbc_fbcOr'} + fhandle = str2func('getFbcOrFieldnames'); + case {'SBML_FBC_ASSOCIATION', 'Association', 'association', 'fbc_association'} + fhandle = str2func('getAssociationFieldnames'); + case {'SBML_FBC_GENE_PRODUCT_ASSOCIATION', 'GeneProductAssociation', 'geneProductAssociation', 'fbc_geneProductAssociation'} + fhandle = str2func('getGeneProductAssociationFieldnames'); + case {'SBML_FBC_USERDEFINED_CONSTRAINT_COMPONENT', 'UserDefinedConstraintComponent', 'userDefinedConstraintComponent', 'fbc_userDefinedConstraintComponent'} + fhandle = str2func('getUserDefinedConstraintComponentFieldnames'); + case {'SBML_FBC_USERDEFINED_CONSTRAINT', 'UserDefinedConstraint', 'userDefinedConstraint', 'fbc_userDefinedConstraint'} + fhandle = str2func('getUserDefinedConstraintFieldnames'); + case {'SBML_FBC_KEY_VALUE_PAIR', 'KeyValuePair', 'keyValuePair', 'fbc_keyValuePair'} + fhandle = str2func('getKeyValuePairFieldnames'); + case {'SBML_FBC_MODEL', 'FBCModel', 'SBML_MODEL', 'Model', 'model'} + fhandle = str2func('getFBCModelFieldnames'); + case {'SBML_FBC_SPECIES', 'FBCSpecies', 'SBML_SPECIES', 'Species', 'species'} + fhandle = str2func('getFBCSpeciesFieldnames'); + case {'SBML_FBC_REACTION', 'FBCReaction', 'SBML_REACTION', 'Reaction', 'reaction'} + fhandle = str2func('getFBCReactionFieldnames'); + case {'SBML_SBASE', 'SBase', 'sbase'} + fhandle = str2func('getFBCSBaseFieldnames'); + otherwise + fhandle = str2func('disp'); + found = 0; + end function [found, fhandle] = getQUALFieldnameFunction(typecode) found = 1; @@ -267,7 +297,7 @@ otherwise fhandle = str2func('disp'); found = 0; - end; + end function [found, fhandle] = getGROUPSFieldnameFunction(typecode) found = 1; @@ -281,9 +311,7 @@ otherwise fhandle = str2func('disp'); found = 0; - end; -%%%% ADD getFieldname -%%%% ADD getFieldname + end %%%% END getFieldname %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -302,7 +330,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { 'typecode', ... @@ -374,7 +402,7 @@ 'units', ... }; nNumberFields = 12; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -405,11 +433,10 @@ 'name', ... 'units', ... 'id', ... - 'name', ... }; - nNumberFields = 14; - end; -end; + nNumberFields = 13; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getAssignmentRuleFieldnames(level, ... @@ -427,7 +454,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; @@ -489,7 +516,7 @@ 'units', ... }; nNumberFields = 12; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -520,11 +547,10 @@ 'name', ... 'units', ... 'id', ... - 'name', ... }; - nNumberFields = 14; - end; -end; + nNumberFields = 13; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getCompartmentFieldnames(level, ... @@ -542,7 +568,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { 'typecode', ... @@ -626,7 +652,7 @@ 'isSetVolume', ... }; nNumberFields = 16; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -662,8 +688,8 @@ 'isSetSpatialDimensions', ... }; nNumberFields = 14; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getCompartmentTypeFieldnames(level, ... @@ -681,7 +707,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; @@ -720,7 +746,7 @@ 'id', ... }; nNumberFields = 8; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = []; @@ -728,8 +754,8 @@ elseif (version == 2) SBMLfieldnames = []; nNumberFields = 2; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getCompartmentVolumeRuleFieldnames(level, ... @@ -747,7 +773,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { 'typecode', ... @@ -775,7 +801,7 @@ elseif (version == 4 || version == 5) SBMLfieldnames = []; nNumberFields = 0; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = []; @@ -783,8 +809,8 @@ elseif (version == 2) SBMLfieldnames = []; nNumberFields = 2; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getConstraintFieldnames(level, ... @@ -802,7 +828,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; @@ -842,7 +868,7 @@ 'message', ... }; nNumberFields = 8; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -868,8 +894,8 @@ 'name', ... }; nNumberFields = 10; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getDelayFieldnames(level, ... @@ -887,7 +913,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; @@ -918,7 +944,7 @@ 'math', ... }; nNumberFields = 7; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -942,8 +968,8 @@ 'name', ... }; nNumberFields =9; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getEventAssignmentFieldnames(level, ... @@ -961,7 +987,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; @@ -1007,7 +1033,7 @@ 'math', ... }; nNumberFields = 8; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -1033,8 +1059,8 @@ 'name', ... }; nNumberFields = 10; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getEventFieldnames(level, ... @@ -1052,7 +1078,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; @@ -1113,7 +1139,7 @@ 'eventAssignment', ... }; nNumberFields = 12; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -1147,8 +1173,8 @@ 'eventAssignment', ... }; nNumberFields = 13; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getFunctionDefinitionFieldnames(level, ... @@ -1166,7 +1192,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; @@ -1216,7 +1242,7 @@ 'math', ... }; nNumberFields = 9; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -1242,8 +1268,8 @@ 'math', ... }; nNumberFields = 9; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getInitialAssignmentFieldnames(level, ... @@ -1261,7 +1287,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; @@ -1301,7 +1327,7 @@ 'math', ... }; nNumberFields = 8; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -1327,8 +1353,8 @@ 'name', ... }; nNumberFields = 10; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getKineticLawFieldnames(level, ... @@ -1346,7 +1372,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { 'typecode', ... @@ -1405,7 +1431,7 @@ 'parameter', ... }; nNumberFields = 9; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -1431,8 +1457,8 @@ 'name', ... }; nNumberFields = 10; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getLocalParameterFieldnames(level, ... @@ -1450,7 +1476,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; @@ -1487,8 +1513,8 @@ 'isSetValue', ... }; nNumberFields = 11; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getModelFieldnames(level, ... @@ -1506,7 +1532,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { 'typecode', ... @@ -1629,7 +1655,7 @@ 'namespaces', ... }; nNumberFields = 25; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -1701,8 +1727,8 @@ 'namespaces', ... }; nNumberFields = 32; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getModifierSpeciesReferenceFieldnames(level, ... @@ -1720,7 +1746,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; @@ -1768,7 +1794,7 @@ 'name', ... }; nNumberFields = 9; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -1792,12 +1818,10 @@ 'species', ... 'id', ... 'name', ... - 'id', ... - 'name', ... }; - nNumberFields = 11; - end; -end; + nNumberFields = 9; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getParameterFieldnames(level, ... @@ -1815,7 +1839,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { 'typecode', ... @@ -1884,7 +1908,7 @@ 'isSetValue', ... }; nNumberFields = 12; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -1916,8 +1940,8 @@ 'isSetValue', ... }; nNumberFields = 12; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getParameterRuleFieldnames(level, ... @@ -1935,7 +1959,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { 'typecode', ... @@ -1963,7 +1987,7 @@ elseif (version == 4 || version == 5) SBMLfieldnames = []; nNumberFields = 0; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = []; @@ -1971,8 +1995,8 @@ elseif (version == 2) SBMLfieldnames = []; nNumberFields = 2; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getPriorityFieldnames(level, ... @@ -1990,7 +2014,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; @@ -2021,8 +2045,8 @@ 'name', ... }; nNumberFields = 9; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getRateRuleFieldnames(level, ... @@ -2040,7 +2064,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; @@ -2102,7 +2126,7 @@ 'units', ... }; nNumberFields = 12; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -2133,11 +2157,10 @@ 'name', ... 'units', ... 'id', ... - 'name', ... }; - nNumberFields = 14; - end; -end; + nNumberFields = 13; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getReactionFieldnames(level, ... @@ -2155,7 +2178,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { 'typecode', ... @@ -2238,7 +2261,7 @@ 'isSetFast', ... }; nNumberFields = 15; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -2276,8 +2299,8 @@ 'compartment', ... }; nNumberFields = 14; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getSpeciesConcentrationRuleFieldnames(level, ... @@ -2295,7 +2318,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { 'typecode', ... @@ -2323,7 +2346,7 @@ elseif (version == 4 || version == 5) SBMLfieldnames = []; nNumberFields = 0; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = []; @@ -2331,8 +2354,8 @@ elseif (version == 2) SBMLfieldnames = []; nNumberFields = 2; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getSpeciesFieldnames(level, ... @@ -2350,7 +2373,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { 'typecode', ... @@ -2455,7 +2478,7 @@ 'isSetCharge', ... }; nNumberFields = 20; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -2499,8 +2522,8 @@ 'conversionFactor', ... }; nNumberFields = 18; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getSpeciesReferenceFieldnames(level, ... @@ -2518,7 +2541,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { 'typecode', ... @@ -2581,7 +2604,7 @@ 'stoichiometryMath', ... }; nNumberFields = 11; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -2613,8 +2636,8 @@ 'isSetStoichiometry', ... }; nNumberFields = 12; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getSpeciesTypeFieldnames(level, ... @@ -2632,7 +2655,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; @@ -2671,7 +2694,7 @@ 'id', ... }; nNumberFields = 8; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = []; @@ -2679,8 +2702,8 @@ elseif (version == 2) SBMLfieldnames = []; nNumberFields = 2; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getStoichiometryMathFieldnames(level, ... @@ -2698,7 +2721,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; @@ -2729,7 +2752,7 @@ 'math', ... }; nNumberFields = 7; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = []; @@ -2737,8 +2760,8 @@ elseif (version == 2) SBMLfieldnames = []; nNumberFields = 2; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getTriggerFieldnames(level, ... @@ -2756,7 +2779,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = []; @@ -2787,7 +2810,7 @@ 'math', ... }; nNumberFields = 7; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -2815,8 +2838,8 @@ 'name', ... }; nNumberFields = 11; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getUnitDefinitionFieldnames(level, ... @@ -2834,7 +2857,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { 'typecode', ... @@ -2888,7 +2911,7 @@ 'unit', ... }; nNumberFields = 9; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -2914,8 +2937,8 @@ 'unit', ... }; nNumberFields = 9; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getUnitFieldnames(level, ... @@ -2933,7 +2956,7 @@ if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end if (level == 1) SBMLfieldnames = { 'typecode', ... @@ -2993,7 +3016,7 @@ 'multiplier', ... }; nNumberFields = 10; - end; + end elseif (level == 3) if (version == 1) SBMLfieldnames = { 'typecode', ... @@ -3023,362 +3046,660 @@ 'name', ... }; nNumberFields = 12; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%% ADD functions +%%%% ADD functions +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Fieldnames +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getFBCModelFieldnames(level, ... version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); -end; +end -% need a check on package version + SBMLfieldnames = []; + nNumberFields = 0; -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion == 1) - SBMLfieldnames = { 'fbc_version', ... - 'fbc_fluxBound', ... - 'fbc_objective', ... - 'fbc_activeObjective', ... - }; - nNumberFields = 4; - elseif(pkgVersion ==2) - SBMLfieldnames = { 'fbc_version', ... - 'fbc_geneProduct', ... - 'fbc_objective', ... - 'fbc_activeObjective', ... - 'fbc_strict' - }; - nNumberFields = 5; - end; - end; -end; + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + SBMLfieldnames = { + 'fbc_objective', ... + 'fbc_activeObjective', ... + 'fbc_fluxBound', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 6; + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'fbc_objective', ... + 'fbc_activeObjective', ... + 'fbc_geneProduct', ... + 'fbc_strict', ... + 'isSetfbc_strict', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 8; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'fbc_objective', ... + 'fbc_activeObjective', ... + 'fbc_geneProduct', ... + 'fbc_userDefinedConstraint', ... + 'fbc_strict', ... + 'isSetfbc_strict', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 9; + end + end + end -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getFBCSpeciesFieldnames(level, ... - version, pkgVersion) + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; + SBMLfieldnames = []; + nNumberFields = 0; -% need a check on package version + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + SBMLfieldnames = { + 'fbc_charge', ... + 'isSetfbc_charge', ... + 'fbc_chemicalFormula', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 6; + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'fbc_charge', ... + 'isSetfbc_charge', ... + 'fbc_chemicalFormula', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 6; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'fbc_charge', ... + 'isSetfbc_charge', ... + 'fbc_chemicalFormula', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 6; + end + end + end -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion < 3) - SBMLfieldnames = { 'fbc_charge', ... - 'fbc_chemicalFormula', ... - 'isSetfbc_charge', ... - 'level', ... - 'version', ... - 'fbc_version', ... - }; - nNumberFields = 6; - end; - end; -end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getFBCReactionFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end -function [SBMLfieldnames, nNumberFields] = getFluxBoundFieldnames(level, ... - version, pkgVersion) + SBMLfieldnames = []; + nNumberFields = 0; -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'fbc_geneProductAssociation', ... + 'fbc_lowerFluxBound', ... + 'fbc_upperFluxBound', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 6; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'fbc_geneProductAssociation', ... + 'fbc_lowerFluxBound', ... + 'fbc_upperFluxBound', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 6; + end + end + end -% need a check on package version - -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version <3) - if (pkgVersion == 1) - SBMLfieldnames = { 'typecode', ... - 'metaid', ... - 'notes', ... - 'annotation', ... - 'cvterms', ... - 'sboTerm', ... - 'fbc_id', ... - 'fbc_reaction', ... - 'fbc_operation', ... - 'fbc_value', ... - 'isSetfbc_value', ... - 'level', ... - 'version', ... - 'fbc_version', ... - }; - nNumberFields = 14; - else - SBMLfieldnames = []; - nNumberFields = 0; - end; - end; -end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getFBCSBaseFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end -function [SBMLfieldnames, nNumberFields] = getFluxObjectiveFieldnames(level, ... - version, pkgVersion) - -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; + SBMLfieldnames = []; + nNumberFields = 0; -% need a check on package version + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'fbc_keyValuePair', ... + 'fbc_kvp_xmlns', ... + }; + nNumberFields = 2; + end + end + end -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion < 3) - SBMLfieldnames = { 'typecode', ... - 'metaid', ... - 'notes', ... - 'annotation', ... - 'cvterms', ... - 'sboTerm', ... - 'fbc_reaction', ... - 'fbc_coefficient', ... - 'isSetfbc_coefficient', ... - 'level', ... - 'version', ... - 'fbc_version', ... - }; - nNumberFields = 12; - end; - end; -end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getFluxBoundFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + SBMLfieldnames = { + 'typecode', ... + 'metaid', ... + 'notes', ... + 'annotation', ... + 'cvterms', ... + 'sboTerm', ... + 'fbc_id', ... + 'fbc_name', ... + 'fbc_reaction', ... + 'fbc_operation', ... + 'fbc_value', ... + 'isSetfbc_value', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 15; + elseif (pkgVersion == 2) + elseif (pkgVersion == 3) + end + end + end + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getObjectiveFieldnames(level, ... - version, pkgVersion) + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; + SBMLfieldnames = []; + nNumberFields = 0; -% need a check on package version + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + SBMLfieldnames = { + 'typecode', ... + 'metaid', ... + 'notes', ... + 'annotation', ... + 'cvterms', ... + 'sboTerm', ... + 'fbc_id', ... + 'fbc_name', ... + 'fbc_type', ... + 'fbc_fluxObjective', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 13; + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'typecode', ... + 'metaid', ... + 'notes', ... + 'annotation', ... + 'cvterms', ... + 'sboTerm', ... + 'fbc_id', ... + 'fbc_name', ... + 'fbc_type', ... + 'fbc_fluxObjective', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 13; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'typecode', ... + 'metaid', ... + 'notes', ... + 'annotation', ... + 'cvterms', ... + 'sboTerm', ... + 'fbc_id', ... + 'fbc_name', ... + 'fbc_type', ... + 'fbc_fluxObjective', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 13; + end + end + end -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion < 3) - SBMLfieldnames = { 'typecode', ... - 'metaid', ... - 'notes', ... - 'annotation', ... - 'cvterms', ... - 'sboTerm', ... - 'fbc_id', ... - 'fbc_type', ... - 'fbc_fluxObjective', ... - 'level', ... - 'version', ... - 'fbc_version', ... - }; - nNumberFields = 12; - end; - end; -end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getFluxObjectiveFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + SBMLfieldnames = { + 'typecode', ... + 'metaid', ... + 'notes', ... + 'annotation', ... + 'cvterms', ... + 'sboTerm', ... + 'fbc_id', ... + 'fbc_name', ... + 'fbc_reaction', ... + 'fbc_coefficient', ... + 'isSetfbc_coefficient', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 14; + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'typecode', ... + 'metaid', ... + 'notes', ... + 'annotation', ... + 'cvterms', ... + 'sboTerm', ... + 'fbc_id', ... + 'fbc_name', ... + 'fbc_reaction', ... + 'fbc_coefficient', ... + 'isSetfbc_coefficient', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 14; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'typecode', ... + 'metaid', ... + 'notes', ... + 'annotation', ... + 'cvterms', ... + 'sboTerm', ... + 'fbc_id', ... + 'fbc_name', ... + 'fbc_reaction', ... + 'fbc_reaction2', ... + 'fbc_coefficient', ... + 'isSetfbc_coefficient', ... + 'fbc_variableType', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 16; + end + end + end + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getGeneProductFieldnames(level, ... - version, pkgVersion) + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; + SBMLfieldnames = []; + nNumberFields = 0; -% need a check on package version + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'typecode', ... + 'metaid', ... + 'notes', ... + 'annotation', ... + 'cvterms', ... + 'sboTerm', ... + 'fbc_id', ... + 'fbc_name', ... + 'fbc_label', ... + 'fbc_associatedSpecies', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 13; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'typecode', ... + 'metaid', ... + 'notes', ... + 'annotation', ... + 'cvterms', ... + 'sboTerm', ... + 'fbc_id', ... + 'fbc_name', ... + 'fbc_label', ... + 'fbc_associatedSpecies', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 13; + end + end + end -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion == 2) - SBMLfieldnames = { 'typecode', ... - 'metaid', ... - 'notes', ... - 'annotation', ... - 'cvterms', ... - 'sboTerm', ... - 'fbc_id', ... - 'fbc_name', ... - 'fbc_label', ... - 'fbc_associatedSpecies', ... - 'level', ... - 'version', ... - 'fbc_version', ... - }; - nNumberFields = 13; - else - SBMLfieldnames = []; - nNumberFields = 0; - end; - end; -end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getGeneProductRefFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end -function [SBMLfieldnames, nNumberFields] = getFBCReactionFieldnames(level, ... - version, pkgVersion) - -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; + SBMLfieldnames = []; + nNumberFields = 0; -% need a check on package version + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'typecode', ... + 'metaid', ... + 'notes', ... + 'annotation', ... + 'cvterms', ... + 'sboTerm', ... + 'fbc_id', ... + 'fbc_name', ... + 'fbc_geneProduct', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 12; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'typecode', ... + 'metaid', ... + 'notes', ... + 'annotation', ... + 'cvterms', ... + 'sboTerm', ... + 'fbc_id', ... + 'fbc_name', ... + 'fbc_geneProduct', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 12; + end + end + end -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion == 2) - SBMLfieldnames = { 'fbc_lowerFluxBound', ... - 'fbc_upperFluxBound', ... - 'fbc_geneProductAssociation', ... - 'level', ... - 'version', ... - 'fbc_version', ... - }; - nNumberFields = 6; - else - SBMLfieldnames = []; - nNumberFields = 0; - end; - end; -end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getAssociationFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end -function [SBMLfieldnames, nNumberFields] = getGeneProductAssociationFieldnames(level, ... - version, pkgVersion) + SBMLfieldnames = []; + nNumberFields = 0; -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'typecode', ... + 'metaid', ... + 'notes', ... + 'annotation', ... + 'cvterms', ... + 'sboTerm', ... + 'fbc_association', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 10; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'typecode', ... + 'metaid', ... + 'notes', ... + 'annotation', ... + 'cvterms', ... + 'sboTerm', ... + 'fbc_association', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 10; + end + end + end -% need a check on package version -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion == 2) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getGeneProductAssociationFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'typecode', ... + 'metaid', ... + 'notes', ... + 'annotation', ... + 'cvterms', ... + 'sboTerm', ... + 'fbc_id', ... + 'fbc_name', ... + 'fbc_association', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 12; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'typecode', ... + 'metaid', ... + 'notes', ... + 'annotation', ... + 'cvterms', ... + 'sboTerm', ... + 'fbc_id', ... + 'fbc_name', ... + 'fbc_association', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 12; + end + end + end - SBMLfieldnames = { 'typecode', ... - 'metaid', ... - 'notes', ... - 'annotation', ... - 'cvterms', ... - 'sboTerm', ... - 'fbc_id', ... - 'fbc_name', ... - 'fbc_association', ... - 'level', ... - 'version', ... - 'fbc_version', ... - }; - nNumberFields = 12; - else - SBMLfieldnames = []; - nNumberFields = 0; - end; - end; -end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getUserDefinedConstraintComponentFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end -function [SBMLfieldnames, nNumberFields] = getAssociationFieldnames(level, ... - version, pkgVersion) + SBMLfieldnames = []; + nNumberFields = 0; -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'typecode', ... + 'metaid', ... + 'notes', ... + 'annotation', ... + 'cvterms', ... + 'sboTerm', ... + 'fbc_id', ... + 'fbc_name', ... + 'fbc_coefficient', ... + 'fbc_variable', ... + 'fbc_variable2', ... + 'fbc_variableType', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 15; + end + end + end -% need a check on package version -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion == 2) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getUserDefinedConstraintFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end - SBMLfieldnames = { 'typecode', ... - 'metaid', ... - 'notes', ... - 'annotation', ... - 'cvterms', ... - 'sboTerm', ... - 'fbc_association', ... - 'level', ... - 'version', ... - 'fbc_version', ... - }; - nNumberFields = 10; - else - SBMLfieldnames = []; - nNumberFields = 0; - end; - end; -end; + SBMLfieldnames = []; + nNumberFields = 0; + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'typecode', ... + 'metaid', ... + 'notes', ... + 'annotation', ... + 'cvterms', ... + 'sboTerm', ... + 'fbc_id', ... + 'fbc_name', ... + 'fbc_lowerBound', ... + 'fbc_upperBound', ... + 'fbc_userDefinedConstraintComponent', ... + 'level', ... + 'version', ... + 'fbc_version', ... + }; + nNumberFields = 14; + end + end + end + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getKeyValuePairFieldnames(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'typecode', ... + 'fbc_key', ... + 'fbc_value', ... + 'fbc_uri', ... + }; + nNumberFields = 4; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getQUALModelFieldnames(level, ... version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3392,9 +3713,9 @@ 'qual_transition', ... }; nNumberFields = 3; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3402,7 +3723,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3428,9 +3749,9 @@ 'qual_version', ... }; nNumberFields = 15; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3438,7 +3759,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3464,9 +3785,9 @@ 'qual_version', ... }; nNumberFields = 14; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3474,7 +3795,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3500,9 +3821,9 @@ 'qual_version', ... }; nNumberFields = 15; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3510,7 +3831,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3535,9 +3856,9 @@ 'qual_version', ... }; nNumberFields = 14; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3545,7 +3866,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3566,9 +3887,9 @@ 'qual_version', ... }; nNumberFields = 10; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3576,7 +3897,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3598,9 +3919,9 @@ 'qual_version', ... }; nNumberFields = 11; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3608,7 +3929,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3621,9 +3942,9 @@ 'groups_group', ... }; nNumberFields = 2; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3631,7 +3952,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3655,9 +3976,9 @@ 'groups_version', ... }; nNumberFields = 13; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3665,7 +3986,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3689,9 +4010,9 @@ 'groups_version', ... }; nNumberFields = 13; - end; - end; - end; + end + end + end %%%% ADD functions %%%% ADD functions @@ -3708,29 +4029,30 @@ error('level must be an integer'); elseif ~isIntegralNumber(version) error('version must be an integer'); -end; +end if (level < 1 || level > 3) error('current SBML levels are 1, 2 or 3'); -end; +end if (level == 1) if (version < 1 || version > 2) error('SBMLToolbox supports versions 1-2 of SBML Level 1'); - end; + end elseif (level == 2) if (version < 1 || version > 5) error('SBMLToolbox supports versions 1-5 of SBML Level 2'); - end; + end elseif (level == 3) if (version < 1 || version > 2) error('SBMLToolbox supports version 1-2 of SBML Level 3'); - end; + end -end; +end +%%%% END functions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function value = isIntegralNumber(number) value = 0; @@ -3746,8 +4068,8 @@ % if it is an integer if (number == fix(number)) value = 1; - end; -end; + end +end diff --git a/software/libSBML/getValueType.m b/software/libSBML/getValueType.m index 199bad9f..0d67f173 100755 --- a/software/libSBML/getValueType.m +++ b/software/libSBML/getValueType.m @@ -52,13 +52,13 @@ if (nargin > 3) if (nargin < 5) error('not enough arguments'); - end; + end pkgCount = length(varargin{4}); % packages = cell(1, pkgCount); % pkgVersion = zeros(1, pkgCount); packages = varargin{4}; pkgVersion = varargin{5}; -end; +end valueType = []; @@ -127,7 +127,7 @@ fhandle = str2func('getUnitDefinitionValueType'); otherwise done = 0; -end; +end if done == 1 [valueType] = feval(fhandle, level, version); @@ -138,14 +138,14 @@ [found, fhandle] = getValues(typecode, packages{i}, 0); if (found == 1) break; - end; + end i = i + 1; - end; + end if (found == 1) [valueType] = feval(fhandle, level, version, pkgVersion(i)); done = 1; - end; -end; + end +end if (done == 1 && pkgCount > 0) % we may need to extend the fields @@ -156,10 +156,18 @@ copySBML = valueType; [newValueType] = feval(fhandle, level, version, pkgVersion(i)); valueType = [copySBML, newValueType]; - end; + end +% check for SBase extension + [found, fhandle] = getValues('SBase', packages{i}, 1); + if (found == 1) + copySBML = valueType; + [newValueType] = feval(fhandle, level, version, pkgVersion(i)); + valueType = [copySBML, newValueType]; + end + i = i + 1; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [found, fhandle] = getValues(typecode, pkg, extension) @@ -169,27 +177,27 @@ if (extension) if (isFBCExtension(typecode)) [found, fhandle] = getFBCValueFunction(typecode); - end; + end else [found, fhandle] = getFBCValueFunction(typecode); - end; + end elseif strcmp(pkg, 'qual') if (extension) if (isQUALExtension(typecode)) [found, fhandle] = getQUALValueTypeFunction(typecode); - end; + end else [found, fhandle] = getQUALValueTypeFunction(typecode); - end; + end elseif strcmp(pkg, 'groups') if (extension) if (isGROUPSExtension(typecode)) [found, fhandle] = getGROUPSValueTypeFunction(typecode); - end; + end else [found, fhandle] = getGROUPSValueTypeFunction(typecode); - end; - end; + end + end %%%%% REMOVE END %%%%% ADD ADDITIONAL @@ -203,21 +211,22 @@ extend = 1; case {'SBML_FBC_REACTION', 'FBCReaction','SBML_REACTION', 'Reaction', 'reaction'} extend = 1; - end; - + case {'SBML_FBC_SBASE', 'FBCSBase', 'SBML_SBASE', 'SBase', 'sbase'} + extend = 1; + end function extend = isQUALExtension(typecode) extend = 0; switch (typecode) case {'SBML_QUAL_MODEL', 'QUALModel', 'SBML_MODEL', 'Model', 'model'} extend = 1; - end; + end function extend = isGROUPSExtension(typecode) extend = 0; switch (typecode) case {'SBML_GROUPS_MODEL', 'GROUPSModel', 'SBML_MODEL', 'Model', 'model'} extend = 1; - end; + end %%%% ADD isExtension %%%% ADD isExtension %%%% END isExtension @@ -227,26 +236,36 @@ switch (typecode) case {'SBML_FBC_FLUXBOUND', 'FluxBound', 'fluxBound', 'fbc_fluxBound'} fhandle = str2func('getFluxBoundValueType'); - case {'SBML_FBC_FLUXOBJECTIVE', 'FluxObjective', 'fluxObjective', 'fbc_fluxObjective'} - fhandle = str2func('getFluxObjectiveValueType'); - case {'SBML_FBC_OBJECTIVE', 'Objective', 'objective', 'fbc_objective'} + case {'SBML_FBC_OBJECTIVE', 'Objective', 'objective', 'fbc_objective'} fhandle = str2func('getObjectiveValueType'); - case {'SBML_FBC_MODEL', 'FBCModel', 'SBML_MODEL', 'Model', 'model'} - fhandle = str2func('getFBCModelValueType'); - case {'SBML_FBC_SPECIES', 'FBCSpecies', 'SBML_SPECIES', 'Species', 'species'} - fhandle = str2func('getFBCSpeciesValueType'); - case {'SBML_FBC_GENE_PRODUCT', 'GeneProduct', 'geneProduct', 'fbc_geneProduct'} + case {'SBML_FBC_FLUXOBJECTIVE', 'FluxObjective', 'fluxObjective', 'fbc_fluxObjective'} + fhandle = str2func('getFluxObjectiveValueType'); + case {'SBML_FBC_GENE_PRODUCT', 'GeneProduct', 'geneProduct', 'fbc_geneProduct'} fhandle = str2func('getGeneProductValueType'); - case {'SBML_FBC_GENE_PRODUCT_ASSOCIATION', 'GeneProductAssociation', 'geneProductAssociation', 'fbc_geneProductAssociation'} + case {'SBML_FBC_GENE_PRODUCT_REF', 'GeneProductRef', 'geneProductRef', 'fbc_geneProductRef'} + fhandle = str2func('getGeneProductRefValueType'); + case {'SBML_FBC_ASSOCIATION', 'Association', 'association', 'fbc_association'} + fhandle = str2func('getAssociationValueType'); + case {'SBML_FBC_GENE_PRODUCT_ASSOCIATION', 'GeneProductAssociation', 'geneProductAssociation', 'fbc_geneProductAssociation'} fhandle = str2func('getGeneProductAssociationValueType'); - case {'SBML_FBC_REACTION', 'FBCReaction','SBML_REACTION', 'Reaction', 'reaction'} + case {'SBML_FBC_USERDEFINEDCONSTRAINTCOMPONENT', 'UserDefinedConstraintComponent', 'userDefinedConstraintComponent', 'fbc_userDefinedConstraintComponent'} + fhandle = str2func('getUserDefinedConstraintComponentValueType'); + case {'SBML_FBC_USERDEFINEDCONSTRAINT', 'UserDefinedConstraint', 'userDefinedConstraint', 'fbc_userDefinedConstraint'} + fhandle = str2func('getUserDefinedConstraintValueType'); + case {'SBML_FBC_KEYVALUEPAIR', 'KeyValuePair', 'keyValuePair', 'fbc_keyValuePair'} + fhandle = str2func('getKeyValuePairValueType'); + case {'SBML_FBC_MODEL', 'FBCModel', 'SBML_MODEL', 'Model', 'model'} + fhandle = str2func('getFBCModelValueType'); + case {'SBML_FBC_SPECIES', 'FBCSpecies', 'SBML_SPECIES', 'Species', 'species'} + fhandle = str2func('getFBCSpeciesValueType'); + case {'SBML_FBC_REACTION', 'FBCReaction', 'SBML_REACTION', 'Reaction', 'reaction'} fhandle = str2func('getFBCReactionValueType'); - case {'SBML_FBC_GENE_PRODUCT_REF', 'Association', 'association', 'SBML_FBC_ASSOCIATION', 'fbc_association'} - fhandle = str2func('getAssociationValueType'); + case {'SBML_FBC_SBASE', 'FBCSBase', 'SBML_SBASE', 'SBase', 'sbase'} + fhandle = str2func('getFBCSBaseValueType'); otherwise fhandle = str2func('disp'); found = 0; - end; + end function [found, fhandle] = getQUALValueTypeFunction(typecode) found = 1; @@ -268,7 +287,7 @@ otherwise fhandle = str2func('disp'); found = 0; - end; + end function [found, fhandle] = getGROUPSValueTypeFunction(typecode) found = 1; @@ -282,7 +301,7 @@ otherwise fhandle = str2func('disp'); found = 0; - end; + end %%%% ADD getFieldname %%%% ADD getFieldname %%%% END getFieldname @@ -304,7 +323,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = { @@ -376,7 +395,7 @@ 'char', ... 'char', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -408,10 +427,10 @@ 'char', ... 'char', ... 'char', ... - 'char', ... + }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getAssignmentRuleValueType(level, version) @@ -429,7 +448,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = []; @@ -490,7 +509,7 @@ 'char', ... 'char', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -522,10 +541,9 @@ 'char', ... 'char', ... 'char', ... - 'char', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getCompartmentValueType(level, version) @@ -543,7 +561,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = { @@ -627,7 +645,7 @@ 'bool', ... 'bool', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -663,8 +681,8 @@ 'bool', ... 'bool', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getCompartmentTypeValueType(level, version) @@ -682,7 +700,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = []; @@ -719,14 +737,14 @@ 'char', ... 'char', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = []; elseif (version == 2) valueType = []; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getCompartmentVolumeRuleValueType(level, version) @@ -744,7 +762,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = { @@ -768,14 +786,14 @@ valueType = []; elseif (version == 4 || version == 5) valueType = []; - end; + end elseif (level == 3) if (version == 1) valueType = []; elseif (version == 2) valueType = []; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getConstraintValueType(level, version) @@ -793,7 +811,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = []; @@ -831,7 +849,7 @@ 'char', ... 'char', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -857,8 +875,8 @@ 'char', ... 'char', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getDelayValueType(level, version) @@ -876,7 +894,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = []; @@ -904,7 +922,7 @@ 'int', ... 'char', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -928,8 +946,8 @@ 'char', ... 'char', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getEventAssignmentValueType(level, version) @@ -947,7 +965,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = []; @@ -992,7 +1010,7 @@ 'char', ... 'char', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -1018,8 +1036,8 @@ 'char', ... 'char', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getEventValueType(level, version) @@ -1037,7 +1055,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = []; @@ -1097,7 +1115,7 @@ 'structure', ... 'structure', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -1131,8 +1149,8 @@ 'structure', ... 'structure', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getFunctionDefinitionValueType(level, version) @@ -1150,7 +1168,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = []; @@ -1199,7 +1217,7 @@ 'char', ... 'char', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -1225,8 +1243,8 @@ 'char', ... 'char', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getInitialAssignmentValueType(level, version) @@ -1244,7 +1262,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = []; @@ -1282,7 +1300,7 @@ 'char', ... 'char', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -1308,8 +1326,8 @@ 'char', ... 'char', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getKineticLawValueType(level, version) @@ -1327,7 +1345,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = { @@ -1386,7 +1404,7 @@ 'char', ... 'structure', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -1412,8 +1430,8 @@ 'char', ... 'char', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getLocalParameterValueType(level, version) @@ -1431,7 +1449,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = []; @@ -1444,7 +1462,7 @@ valueType = []; elseif (version == 4 || version == 5) valueType = []; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -1474,8 +1492,8 @@ 'char', ... 'bool', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getModelValueType(level, version) @@ -1493,7 +1511,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = { @@ -1616,7 +1634,7 @@ 'char', ... 'structure', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -1687,8 +1705,8 @@ 'char', ... 'structure', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getModifierSpeciesReferenceValueType(level, version) @@ -1706,7 +1724,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = []; @@ -1753,7 +1771,7 @@ 'char', ... 'char', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -1778,11 +1796,9 @@ 'char', ... 'char', ... 'char', ... - 'char', ... - 'char', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getParameterValueType(level, version) @@ -1800,7 +1816,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = { @@ -1869,7 +1885,7 @@ 'bool', ... 'bool', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -1901,8 +1917,8 @@ 'bool', ... 'bool', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getParameterRuleValueType(level, version) @@ -1920,7 +1936,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = { @@ -1944,14 +1960,14 @@ valueType = []; elseif (version == 4 || version == 5) valueType = []; - end; + end elseif (level == 3) if (version == 1) valueType = []; elseif (version == 2) valueType = []; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getPriorityValueType(level, version) @@ -1969,7 +1985,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = []; @@ -1982,7 +1998,7 @@ valueType = []; elseif (version == 4 || version == 5) valueType = []; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -2006,8 +2022,8 @@ 'char', ... 'char', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getRateRuleValueType(level, version) @@ -2025,7 +2041,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = []; @@ -2086,7 +2102,7 @@ 'char', ... 'char', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -2118,10 +2134,9 @@ 'char', ... 'char', ... 'char', ... - 'char', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getReactionValueType(level, version) @@ -2139,7 +2154,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = { @@ -2222,7 +2237,7 @@ 'bool', ... 'bool', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -2260,8 +2275,8 @@ 'bool', ... 'char', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getSpeciesConcentrationRuleValueType(level, version) @@ -2279,7 +2294,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = { @@ -2303,14 +2318,14 @@ valueType = []; elseif (version == 4 || version == 5) valueType = []; - end; + end elseif (level == 3) if (version == 1) valueType = []; elseif (version == 2) valueType = []; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getSpeciesValueType(level, version) @@ -2328,7 +2343,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = { @@ -2433,7 +2448,7 @@ 'bool', ... 'bool', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -2477,8 +2492,8 @@ 'bool', ... 'char', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getSpeciesReferenceValueType(level, version) @@ -2496,7 +2511,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = { @@ -2559,7 +2574,7 @@ 'double', ... 'structure', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -2591,8 +2606,8 @@ 'bool', ... 'bool', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getSpeciesTypeValueType(level, version) @@ -2610,7 +2625,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = []; @@ -2647,14 +2662,14 @@ 'char', ... 'char', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = []; elseif (version == 2) valueType = []; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getStoichiometryMathValueType(level, version) @@ -2672,7 +2687,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = []; @@ -2700,14 +2715,14 @@ 'int', ... 'char', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = []; elseif (version == 2) valueType = []; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getTriggerValueType(level, version) @@ -2725,7 +2740,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = []; @@ -2753,7 +2768,7 @@ 'int', ... 'char', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -2781,8 +2796,8 @@ 'char', ... 'char', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getUnitValueType(level, version) @@ -2800,7 +2815,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = { @@ -2860,7 +2875,7 @@ 'int', ... 'double', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -2890,8 +2905,8 @@ 'char', ... 'char', ... }; - end; -end; + end +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [valueType] = getUnitDefinitionValueType(level, version) @@ -2909,7 +2924,7 @@ if ~isValidLevelVersionCombination(level, version) error('invalid level/version combination'); -end; +end if (level == 1) valueType = { @@ -2963,7 +2978,7 @@ 'char', ... 'structure', ... }; - end; + end elseif (level == 3) if (version == 1) valueType = { @@ -2989,354 +3004,647 @@ 'char', ... 'structure', ... }; - end; -end; -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - + end +end +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getFBCModelValueType(level, ... - version, pkgVersion) -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end -% need a check on package version + SBMLfieldnames = []; + nNumberFields = 0; -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion == 1) - SBMLfieldnames = { 'uint', ... - 'structure', ... - 'structure', ... - 'char', ... - }; - nNumberFields = 4; - elseif(pkgVersion ==2) - SBMLfieldnames = { 'uint', ... - 'structure', ... - 'structure', ... - 'char', ... - 'bool' - }; - nNumberFields = 5; - end; - end; -end; + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + SBMLfieldnames = { + 'structure', ... + 'char', ... + 'structure', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 6; + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'structure', ... + 'char', ... + 'structure', ... + 'bool', ... + 'bool', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 8; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'structure', ... + 'char', ... + 'structure', ... + 'structure', ... + 'bool', ... + 'bool', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 9; + end + end + end -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getFBCSpeciesValueType(level, ... - version, pkgVersion) + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; + SBMLfieldnames = []; + nNumberFields = 0; -% need a check on package version + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + SBMLfieldnames = { + 'int', ... + 'bool', ... + 'char', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 6; + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'int', ... + 'bool', ... + 'char', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 6; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'double', ... + 'bool', ... + 'char', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 6; + end + end + end -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion < 3) - SBMLfieldnames = { 'int', ... - 'char', ... - 'bool', ... - 'uint', ... - 'uint', ... - 'uint', ... - }; - nNumberFields = 6; - end; - end; -end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getFBCReactionValueType(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end -function [SBMLfieldnames, nNumberFields] = getFluxBoundValueType(level, ... - version, pkgVersion) - -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; + SBMLfieldnames = []; + nNumberFields = 0; -% need a check on package version + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'structure', ... + 'char', ... + 'char', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 6; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'structure', ... + 'char', ... + 'char', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 6; + end + end + end -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version <3) - if (pkgVersion == 1) - SBMLfieldnames = { 'SBML_FBC_FLUXBOUND', ... - 'char', ... - 'char', ... - 'char', ... - 'structure', ... - 'int', ... - 'char', ... - 'char', ... - 'char', ... - 'double', ... - 'bool', ... - 'uint', ... - 'uint', ... - 'uint', ... - }; - nNumberFields = 14; - else - SBMLfieldnames = []; - nNumberFields = 0; - end; - end; -end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getFBCSBaseValueType(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end -function [SBMLfieldnames, nNumberFields] = getFluxObjectiveValueType(level, ... - version, pkgVersion) - -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; + SBMLfieldnames = []; + nNumberFields = 0; -% need a check on package version + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'structure', ... + 'char', ... + }; + nNumberFields = 2; + end + end + end -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion < 3) - SBMLfieldnames = { 'SBML_FBC_FLUXOBJECTIVE', ... - 'char', ... - 'char', ... - 'char', ... - 'structure', ... - 'int', ... - 'char', ... - 'double', ... - 'bool', ... - 'uint', ... - 'uint', ... - 'uint', ... - }; - nNumberFields = 12; - end; - end; -end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getFluxBoundValueType(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + SBMLfieldnames = { + 'SBML_FBC_FLUXBOUND', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'int', ... + 'char', ... + 'char', ... + 'char', ... + 'char', ... + 'double', ... + 'bool', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 15; + elseif (pkgVersion == 2) + elseif (pkgVersion == 3) + end + end + end + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getObjectiveValueType(level, ... - version, pkgVersion) + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; + SBMLfieldnames = []; + nNumberFields = 0; -% need a check on package version + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + SBMLfieldnames = { + 'SBML_FBC_OBJECTIVE', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'int', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 13; + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'SBML_FBC_OBJECTIVE', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'int', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 13; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'SBML_FBC_OBJECTIVE', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'int', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 13; + end + end + end -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion < 3) - SBMLfieldnames = { 'SBML_FBC_OBJECTIVE', ... - 'char', ... - 'char', ... - 'char', ... - 'structure', ... - 'int', ... - 'char', ... - 'char', ... - 'structure', ... - 'uint', ... - 'uint', ... - 'uint', ... - }; - nNumberFields = 12; - end; - end; -end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getFluxObjectiveValueType(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + SBMLfieldnames = { + 'SBML_FBC_FLUXOBJECTIVE', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'int', ... + 'char', ... + 'char', ... + 'char', ... + 'double', ... + 'bool', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 14; + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'SBML_FBC_FLUXOBJECTIVE', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'int', ... + 'char', ... + 'char', ... + 'char', ... + 'double', ... + 'bool', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 14; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'SBML_FBC_FLUXOBJECTIVE', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'int', ... + 'char', ... + 'char', ... + 'char', ... + 'char', ... + 'double', ... + 'bool', ... + 'char', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 16; + end + end + end + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getGeneProductValueType(level, ... - version, pkgVersion) + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; + SBMLfieldnames = []; + nNumberFields = 0; -% need a check on package version + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'SBML_FBC_GENE_PRODUCT', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'int', ... + 'char', ... + 'char', ... + 'char', ... + 'char', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 13; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'SBML_FBC_GENE_PRODUCT', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'int', ... + 'char', ... + 'char', ... + 'char', ... + 'char', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 13; + end + end + end -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion == 2) - SBMLfieldnames = { 'SBML_FBC_GENE_PRODUCT', ... - 'char', ... - 'char', ... - 'char', ... - 'structure', ... - 'int', ... - 'char', ... - 'char', ... - 'char', ... - 'char', ... - 'uint', ... - 'uint', ... - 'uint', ... - }; - nNumberFields = 13; - else - SBMLfieldnames = []; - nNumberFields = 0; - end; - end; -end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getGeneProductRefValueType(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end -function [SBMLfieldnames, nNumberFields] = getFBCReactionValueType(level, ... - version, pkgVersion) - -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; + SBMLfieldnames = []; + nNumberFields = 0; -% need a check on package version + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'SBML_FBC_GENE_PRODUCT_REF', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'int', ... + 'char', ... + 'char', ... + 'char', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 12; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'SBML_FBC_GENE_PRODUCT_REF', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'int', ... + 'char', ... + 'char', ... + 'char', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 12; + end + end + end -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion == 2) - SBMLfieldnames = { 'char', ... - 'char', ... - 'structure', ... - 'uint', ... - 'uint', ... - 'uint', ... - }; - nNumberFields = 6; - else - SBMLfieldnames = []; - nNumberFields = 0; - end; - end; -end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getAssociationValueType(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'SBML_FBC_ASSOCIATION', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'int', ... + 'char', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 10; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'SBML_FBC_ASSOCIATION', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'int', ... + 'char', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 10; + end + end + end + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [SBMLfieldnames, nNumberFields] = getGeneProductAssociationValueType(level, ... - version, pkgVersion) + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; + SBMLfieldnames = []; + nNumberFields = 0; -% need a check on package version + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + SBMLfieldnames = { + 'SBML_FBC_GENE_PRODUCT_ASSOCIATION', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'int', ... + 'char', ... + 'char', ... + 'structure', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 12; + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'SBML_FBC_GENE_PRODUCT_ASSOCIATION', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'int', ... + 'char', ... + 'char', ... + 'structure', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 12; + end + end + end -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion == 2) - - SBMLfieldnames = { 'SBML_FBC_GENE_PRODUCT_ASSOCIATION', ... - 'char', ... - 'char', ... - 'char', ... - 'structure', ... - 'int', ... - 'char', ... - 'char', ... - 'structure', ... - 'uint', ... - 'uint', ... - 'uint', ... - }; - nNumberFields = 12; - else - SBMLfieldnames = []; - nNumberFields = 0; - end; - end; -end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getUserDefinedConstraintComponentValueType(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end -function [SBMLfieldnames, nNumberFields] = getAssociationValueType(level, ... - version, pkgVersion) + SBMLfieldnames = []; + nNumberFields = 0; -if (~isValidLevelVersionCombination(level, version)) - error ('invalid level/version combination'); -end; + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'SBML_FBC_USERDEFINEDCONSTRAINTCOMPONENT', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'int', ... + 'char', ... + 'char', ... + 'char', ... + 'char', ... + 'char', ... + 'char', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 15; + end + end + end -% need a check on package version -if (level == 1) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 2) - SBMLfieldnames = []; - nNumberFields = 0; -elseif (level == 3) - if (version < 3) - if (pkgVersion == 2) - - SBMLfieldnames = { 'SBML_FBC_ASSOCIATION', ... - 'char', ... - 'char', ... - 'char', ... - 'structure', ... - 'int', ... - 'char', ... - 'uint', ... - 'uint', ... - 'uint', ... - }; - nNumberFields = 9; - else - SBMLfieldnames = []; - nNumberFields = 0; - end; - end; -end; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getUserDefinedConstraintValueType(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'SBML_FBC_USERDEFINEDCONSTRAINT', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'int', ... + 'char', ... + 'char', ... + 'char', ... + 'char', ... + 'structure', ... + 'uint', ... + 'uint', ... + 'uint', ... + }; + nNumberFields = 14; + end + end + end + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [SBMLfieldnames, nNumberFields] = getKeyValuePairValueType(level, ... + version, pkgVersion) + if (~isValidLevelVersionCombination(level, version)) + error ('invalid level/version combination'); + end + + SBMLfieldnames = []; + nNumberFields = 0; + + if (level == 3) + if (version < 3) + if (pkgVersion == 1) + elseif (pkgVersion == 2) + elseif (pkgVersion == 3) + SBMLfieldnames = { + 'SBML_FBC_KEYVALUEPAIR', ... + 'char', ... + 'char', ... + 'char', ... + }; + nNumberFields = 4; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3344,7 +3652,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3358,9 +3666,9 @@ 'structure', ... }; nNumberFields = 3; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3368,7 +3676,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3394,9 +3702,9 @@ 'uint', ... }; nNumberFields = 15; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3404,7 +3712,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3430,9 +3738,9 @@ 'uint', ... }; nNumberFields = 14; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3440,7 +3748,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3466,9 +3774,9 @@ 'uint', ... }; nNumberFields = 15; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3476,7 +3784,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3501,9 +3809,9 @@ 'uint', ... }; nNumberFields = 14; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3511,7 +3819,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3532,9 +3840,9 @@ 'uint', ... }; nNumberFields = 10; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3542,7 +3850,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3564,9 +3872,9 @@ 'uint', ... }; nNumberFields = 11; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3574,7 +3882,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3587,9 +3895,9 @@ 'structure', ... }; nNumberFields = 2; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3597,7 +3905,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3621,9 +3929,9 @@ 'uint', ... }; nNumberFields = 13; - end; - end; - end; + end + end + end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -3631,7 +3939,7 @@ version, pkgVersion) if (~isValidLevelVersionCombination(level, version)) error ('invalid level/version combination'); - end; + end SBMLfieldnames = []; nNumberFields = 0; @@ -3655,9 +3963,9 @@ 'uint', ... }; nNumberFields = 13; - end; - end; - end; + end + end + end %%%% ADD functions @@ -3674,28 +3982,28 @@ error('level must be an integer'); elseif ~isIntegralNumber(version) error('version must be an integer'); -end; +end if (level < 1 || level > 3) error('current SBML levels are 1, 2 or 3'); -end; +end if (level == 1) if (version < 1 || version > 2) error('SBMLToolbox supports versions 1-2 of SBML Level 1'); - end; + end elseif (level == 2) if (version < 1 || version > 5) error('SBMLToolbox supports versions 1-5 of SBML Level 2'); - end; + end elseif (level == 3) if (version < 1 || version > 2) error('SBMLToolbox supports version 1-2 of SBML Level 3'); - end; + end -end; +end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function value = isIntegralNumber(number) @@ -3712,8 +4020,8 @@ % if it is an integer if (number == fix(number)) value = 1; - end; -end; + end +end diff --git a/software/libSBML/other.m b/software/libSBML/other.m new file mode 100644 index 00000000..5b5e4a4b --- /dev/null +++ b/software/libSBML/other.m @@ -0,0 +1,2 @@ + +OutputSBML(m, 'other.xml'); \ No newline at end of file diff --git a/software/libSBML/other.xml b/software/libSBML/other.xml new file mode 100644 index 00000000..1fc853ca --- /dev/null +++ b/software/libSBML/other.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + k1 + X0 + + + + + + + + + + + + + + + + + + + k2 + S1 + + + + + + + + + + + + + + + + + + + k3 + S1 + + + + + + + + + + diff --git a/software/versions.txt b/software/versions.txt index d6683764..e4bb821b 100644 --- a/software/versions.txt +++ b/software/versions.txt @@ -2,8 +2,10 @@ Apache-POI: 3.8 BLAST+: 2.12.0 CD-HIT: 4.8.1 DIAMOND: 2.0.13 -GLPK (Windows & Linux): 4.40 -GLPK (macOS): 5.0 +GLPK: 4.40 +GLPK (.mexmaca64 only): 5.0 +libSBML: 5.20.2 +libSBML (.mexmaci64 only): 5.19.0 M2HTML: 1.5 HMMER: 3.3.2 MAFFT: 7.490