InChI Resolver
Goal
making InChI resources on the Web
findable, linkable and browsable by a common, unified protocol
Writing a paper draft
technical implemention is dependent on many details
Web context provides a vast amount of (still fast developing)
technologies
Make the code/a prototype the documentation
depends on many components: web server, database, other
infrastructure
How to do it?
Postgres
9.5
InChI Resolver Prototype Technology
Reverse
Proxy
(nginx)
each box represents a Docker container
Postgres
with RDKit
9.5
Python/Conda
(nginx, Django,
RDKit+InChI
elastic
search
Docker virtual network
appserver
HTTP
outside
traffic
InChI Resolver Prototype Technology
Postgres
9.5
Reverse
Proxy
(nginx)
each box represents a Docker container
Postgres
with RDKit
9.5
Python/Conda
(nginx, Django,
RDKit+InChI
elastic
search
Docker virtual network
appserver
InChI Resolver Prototype0
Django & Django Rest Framework
Swagger/OpenAPI
HTTP
outside
traffic
HTTP
How to link InChI Resources
publisher
organization
InChI resource
(web services, URL endpoints)
InChI resolver
root
InChI Resolver Data Model
inchis
organizationspublishers
PubChem, ChEMBL, NCI/CADD,
FIZ Karlsruhe…
endpointsentrypoints
PubChem PUG UniChemCIR
URLs
External InChI Resolvers
[CIR] InChIKey to Molfile
[UniChem] inchikey_all
[PUG] SID to Key
URIs
String Key
browsable, paged index
NIH, NLM, NCI, EMBL-EBI,
FIZ Karlsruhe …
all models support HTTP methods GET, POST, PUT, PATCH, DELETE and OPTIONS (if authenticated)
InChI
calculator
String Key
calculates InChI according
business rules of the
publisher or organization
InChI Resolver Webpage
http://www.inchi-resolver.org
InChI Resolver Web Resources
InChI Resolver API Root
http://prototype0.inchi-resolver.org
InChI Resolver Swagger/OpenAPI
http://prototype0.inchi-resolver.org/openapi
InChI Resolver Web Resources
InChI Resolver Source Code at Github
https://github.com/markussitzmann/inchiresolver
Next
Improve Prototype0 (particulary on the description of endpoints)
Use of other Linked Data technologies (JSON-LD, RDF, SPARQL, …)
Documentation

InChI Resolver

  • 1.
  • 2.
    Goal making InChI resourceson the Web findable, linkable and browsable by a common, unified protocol
  • 3.
    Writing a paperdraft technical implemention is dependent on many details Web context provides a vast amount of (still fast developing) technologies Make the code/a prototype the documentation depends on many components: web server, database, other infrastructure How to do it?
  • 4.
    Postgres 9.5 InChI Resolver PrototypeTechnology Reverse Proxy (nginx) each box represents a Docker container Postgres with RDKit 9.5 Python/Conda (nginx, Django, RDKit+InChI elastic search Docker virtual network appserver HTTP outside traffic
  • 5.
    InChI Resolver PrototypeTechnology Postgres 9.5 Reverse Proxy (nginx) each box represents a Docker container Postgres with RDKit 9.5 Python/Conda (nginx, Django, RDKit+InChI elastic search Docker virtual network appserver InChI Resolver Prototype0 Django & Django Rest Framework Swagger/OpenAPI HTTP outside traffic HTTP
  • 6.
    How to linkInChI Resources publisher organization InChI resource (web services, URL endpoints) InChI resolver root
  • 7.
    InChI Resolver DataModel inchis organizationspublishers PubChem, ChEMBL, NCI/CADD, FIZ Karlsruhe… endpointsentrypoints PubChem PUG UniChemCIR URLs External InChI Resolvers [CIR] InChIKey to Molfile [UniChem] inchikey_all [PUG] SID to Key URIs String Key browsable, paged index NIH, NLM, NCI, EMBL-EBI, FIZ Karlsruhe … all models support HTTP methods GET, POST, PUT, PATCH, DELETE and OPTIONS (if authenticated) InChI calculator String Key calculates InChI according business rules of the publisher or organization
  • 8.
  • 9.
    InChI Resolver WebResources InChI Resolver API Root http://prototype0.inchi-resolver.org InChI Resolver Swagger/OpenAPI http://prototype0.inchi-resolver.org/openapi
  • 10.
    InChI Resolver WebResources InChI Resolver Source Code at Github https://github.com/markussitzmann/inchiresolver
  • 11.
    Next Improve Prototype0 (particularyon the description of endpoints) Use of other Linked Data technologies (JSON-LD, RDF, SPARQL, …) Documentation