Skip to content

Commit

Permalink
VCell Kisao Ontology.
Browse files Browse the repository at this point in the history
Proof of concept.
  • Loading branch information
vasilescu authored and vasilescu committed Dec 15, 2020
1 parent 95551ae commit 7dd9b95
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 19 deletions.
7 changes: 7 additions & 0 deletions vcell-core/src/main/java/cbit/util/kisao/KisaoOntology.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,5 +45,12 @@ public void createRelations() {
}
}
}

public static void main(String[] args) {

KisaoTerm sedmlSolverKisaoTerm = KisaoOntology.getInstance().getTermById("KISAO_0000027");
System.out.println(sedmlSolverKisaoTerm);
System.out.println("Done");
}

}
11 changes: 2 additions & 9 deletions vcell-core/src/main/java/cbit/util/kisao/KisaoTerm.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

public class KisaoTerm {

private String id, name, def;
private String id, name;
private List<KisaoTerm> isaList = new ArrayList<KisaoTerm>();
private List<String> isaRef = new ArrayList<String>(); // used only during parsing, as proxy for still unknown terms

Expand All @@ -15,7 +15,7 @@ public class KisaoTerm {

@Override
public String toString() {
return "KisaoTerm [id=" + id + ", name=" + name + ", def=" + def + "]";
return "KisaoTerm [id=" + id + ", name=" + name + "]";
}
@Override
public int hashCode() {
Expand Down Expand Up @@ -61,13 +61,6 @@ void setName(String name) {
this.name = name;
}

public String getDefinition() {
return def;
}
void setDef(String def) {
this.def = def;
}

public List<KisaoTerm> getIsa() {
return Collections.unmodifiableList(isaList);
}
Expand Down
15 changes: 5 additions & 10 deletions vcell-core/src/main/java/cbit/util/kisao/KisaoTermParser.java
Original file line number Diff line number Diff line change
@@ -1,26 +1,25 @@
package cbit.util.kisao;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class KisaoTermParser {

final String Kisao_OBO = "kisao_2020_12_13.obo";

final String TERM_PATTERN = "\\[Term\\]";
final Pattern ID_PATTERN = Pattern.compile("id:\\s*(.+)");
final Pattern NAME_PATTERN = Pattern.compile("name:\\s*(.+)");
final Pattern DEF_PATTERN = Pattern.compile("def:\\s*(.+)");
final Pattern ISA_PATTERN = Pattern.compile("is_a:\\s*(\\S+)");

KisaoOntology parse() {
InputStream is2 = KisaoTermParser.class.getClassLoader().getResourceAsStream(Kisao_OBO);
BufferedReader isr = new BufferedReader(new InputStreamReader(is2));
InputStream is = KisaoTermParser.class.getClassLoader().getResourceAsStream(Kisao_OBO);
BufferedReader isr = new BufferedReader(new InputStreamReader(is));
String line = null;
boolean inPreamble = true;
boolean inState = false;
KisaoOntology ontology = new KisaoOntology();
KisaoTerm curr = null;
Expand All @@ -34,10 +33,10 @@ KisaoOntology parse() {
}
if (line.matches("^$") && curr != null) {
inState = false;
inPreamble = false;
ontology.addTerm(curr);
curr = null;
}

if(inState) {
Matcher matcher = ID_PATTERN.matcher(line);
if (matcher.find()) {
Expand All @@ -48,10 +47,6 @@ KisaoOntology parse() {
if (matcher.find()) {
curr.setName(matcher.group(1));
}
matcher = DEF_PATTERN.matcher(line);
if (matcher.find()) {
curr.setDef(matcher.group(1));
}
matcher = ISA_PATTERN.matcher(line);
if (matcher.find()) {
curr.addIsaRef(matcher.group(1));
Expand Down

0 comments on commit 7dd9b95

Please sign in to comment.