Database Resources for MIRIAM Compliant Annotations in SBML
In older version of semanticSBML we used our "own version" of the MIRIAM database. This resouce file still exists and can be edited to fit your needs (read below). However in the current version we are using the XML export of the MIRIAM database. If your favourite database is missing or you want something else changed we would advise you to contact the maintainers of the MIRIAM database.
An XML file was created that contains all known databases that can be used for MIRIAM annotations. The XML file is based on an XML file created by the BioModels Database team of Nicolas Le Novère. This is an example entry
<resource name="EC code"Meaning of the variables
uri="http://www.ebi.ac.uk/IntEnz/" urn="ec"
alternateUris='http://www.ec-code.org/'
location="http://www.ebi.ac.uk/IntEnz/"
action="http://www.ebi.ac.uk/intenz/query?cmd=SearchEC&ec="
elements="assignmentRule rateRule algebraicRule reaction event"
idInputHelper=""
idPattern="^(\d+|\d+\.(-|\d+)|\d+\.\d+\.(-|\d+)|\d+\.\d+\.\d+\.(-|\d+))$"
/>
| name | Database name |
| uri | MIRIAM resource uri part (old) |
| urn | MIRIAM resource urn |
| alternateUris | alternate Uris of MIRIAM resources that have been found |
| location | World Wide Web location |
| action | URL that can be called in combination with the database identifier that will show a web page with the biological object |
| elements | space separated list of libSBML elements that can be annotated with this database |
| idPattern | regular expression pattern that the database id must match |
The file can be downloaded from the SVN repository. The file can be regarded as an offline version of the Miriam WebServices.
libSBML Resource
The file 'libsbmlresources.xml' contains the default unit definitions as specified in the libSBML specifications, all known units, as well as the current BioModels.net qualifiers, with descriptions and mappings to the IDs used in libSBML. The file can be downloaded from the SVN repository.
Element Scoring Matrix
The automatic matching of libSBML elements in the merging process is done with the help of a rather simple algorithm. The algorithm in pseudocode can be seen below
function compare_SBMLelements(entity1,entity2):
score=0
for (an1=MIRIAM annotation) in entity1:
for (an2=MIRIAM annotation) in entity2:
if is_equal(an1, an2):
score+=score_matrix[an1.qualifier][ an2.qualifier]
return score
function is_equal(an1,an2):
if an1==an2: return True
elseif database.is_equal(an1,an2) : return True
else:
The
score matrix (score_matrix[an1.qualifier][ an2.qualifier]) which is
also located in the .semanticSBML directory currently looks as follows.
is hasPart isPartOf isVersionOf hasVersion isHomologTo isDescribedBy unknown
is 10 1 1 1 1 1 1 1
hasPart 1 1 1 1 1 1 1
isPartOf 1 1 1 1 1 1
isVersionOf 1 1 1 1 1
hasVersion 1 1 1 1
isHomologTo 1 1 1
isDescribedBy 1 1
unknown 1
Even though the algorithm is very naive the largest problem is to improve the function is_equal(). The matching of elements that have e.g. a parent-child relationship (e.g. Glucose and α-D-glucose) is currently not possible.