diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/reactions/ReactionsRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/reactions/ReactionsRestImpl.java index d8a8ed17ac8d9e7a93c5dfd817f5d74e295ad6da..e9854d5ccf2b0168283c81ac629263cc014c909b 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/reactions/ReactionsRestImpl.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/models/bioEntities/reactions/ReactionsRestImpl.java @@ -13,6 +13,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import lcsb.mapviewer.api.BaseRestImpl; +import lcsb.mapviewer.model.map.kinetics.SbmlFunction; +import lcsb.mapviewer.model.map.kinetics.SbmlKinetics; +import lcsb.mapviewer.model.map.kinetics.SbmlParameter; import lcsb.mapviewer.model.map.model.Model; import lcsb.mapviewer.model.map.reaction.Modifier; import lcsb.mapviewer.model.map.reaction.Product; @@ -142,6 +145,8 @@ public class ReactionsRestImpl extends BaseRestImpl { value = new LightReactionView(reaction).getLines(); } else if (column.equals("notes")) { value = reaction.getNotes(); + } else if (column.equals("kineticlaw")) { + value = kineticsToMap(reaction.getKinetics()); } else if (column.equals("references")) { value = createAnnotations(reaction.getMiriamData()); } else { @@ -152,6 +157,25 @@ public class ReactionsRestImpl extends BaseRestImpl { return result; } + private Map<String, Object> kineticsToMap(SbmlKinetics kinetics) { + if (kinetics == null) { + return null; + } + Map<String, Object> result = new HashMap<>(); + result.put("definition", kinetics.getDefinition()); + List<Integer> functionIds = new ArrayList<>(); + for (SbmlFunction function : kinetics.getFunctions()) { + functionIds.add(function.getId()); + } + result.put("functionIds", functionIds); + List<Integer> parameterIds = new ArrayList<>(); + for (SbmlParameter parameter : kinetics.getParameters()) { + parameterIds.add(parameter.getId()); + } + result.put("parameterIds", parameterIds); + return result; + } + private Set<String> createReactionColumnSet(String columns) { Set<String> columnsSet = new HashSet<>(); if (columns.equals("")) { @@ -160,6 +184,7 @@ public class ReactionsRestImpl extends BaseRestImpl { columnsSet.add("modelId"); columnsSet.add("type"); columnsSet.add("lines"); + columnsSet.add("kineticLaw"); columnsSet.add("centerPoint"); columnsSet.add("products"); columnsSet.add("reactants");