Skip to content

Commit

Permalink
add time units from SBML L3
Browse files Browse the repository at this point in the history
  • Loading branch information
metelkin committed Jun 4, 2024
1 parent b264c1c commit 9d0c03a
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions src/module-system/sbml-parse.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ function jsbmlToQArr(JSBML){
let model = sbml.elements
.find((x) => x.name === 'model'); // <model>


// unit definition
let unitDict = {};
model.elements
Expand All @@ -40,8 +41,22 @@ function jsbmlToQArr(JSBML){
unitDict[x.attributes.id] = unitDefinitionToUnits(x);
});

// algebraicRules

// get time units
let timeUnits = model.attributes?.timeUnits;
if (typeof timeUnits !== 'undefined') {
let q = { action: 'update', id: 't' };
let legalUnitIndex = legalUnits.indexOf(timeUnits);
if (legalUnitIndex !== -1) { // if id in legal unit list
q.units = Unit.fromQ([{ kind: timeUnits }]);
} else if (unitDict[timeUnits] !== undefined) { // if id in unitDefinitions
q.units = unitDict[timeUnits]; //.simplify();
} else {
q.units = Unit.fromQ([{ kind: timeUnits }]);
}
qArr.push(q); // add only if units presented
}

// function definitions
model.elements
.filter((x) => x.name === 'listOfFunctionDefinitions')
.map((x) => x.elements)
Expand Down

0 comments on commit 9d0c03a

Please sign in to comment.