Saturday, June 28, 2014

I haven't posted in a couple weeks!

Since the last update, our design has moved away from a remote database to one locally hosted. So each user of PyOpenWorm would have his/her own copy of the database on their machine together with a serialization of the database which can be version controlled under git. The serialization isn't too large (40MB for trix, 20MB for n-quads, 13MB for trig).

One of my long standing issues is attributing data to data sources -- labs, articles, curated data. This aspect of attribution, assigning metadata, can be done before the data model is fully specified, and has been in various places. We would only (!) need to translate into our data model after that.

For now I'm implementing the API.

Sunday, June 15, 2014

Lately, I've been attempting to generate morphology files from the database to use in RegenerateConnectome.py. Generating them is fine, but obviously pulling from the database for every one of the 302 neurons is pretty slow. It may not be worth it to speed up that loop more directly rather than caching the database. Need to test this.

EDIT: Comparing to the full database copied to a local Sleepycat store, the queries are actually slower. Same with OpenRDF Sesame...probably due to my laptop being way underpowered compared to the server...or resource sharing.

EDIT2: Think I'll look into HTTP caching.

Thursday, June 12, 2014

PyOpenWorm feature freeze

I have declared a feature freeze for PyOpenWorm. For this week we're just writing code to pass the tests we've already written and those obviously derived from the API.

Wednesday, June 11, 2014

I am trying to figure out how ReadTheDocs can bring in documentation from the python source files.
  • update (10:33): Sphinx installed
  • update (10:44): Got Network's documentation printing out. Let's see about the others.
  • update (10:57): aaand, now the docs don't update from the source files. Not even deleting the build directory changes it.
  • update (11:19): Started using sphinx-apidoc. Has really noisy output.

Wednesday, June 4, 2014

Citations, DOIs, Pubmed IDs

Since we've started discussing the API for PyOpenWorm, we've started talking about putting up citations of data sources. What we're looking at doing is making a declarative API that allows us to write things like:

n1 = Neuron('AVAL')
n2 = Neuron('ADER')
r1 = n1.connectsWith(n2) # r1 is now a representation of this 'connectsWith' relationship
s = Chemical('X')
r2 = s.modulates(r) # r2 is the representation of the 'modulates' relationship
e = Evidence(doi="http://dx.doi.org/10.1007%2Fs00454-010-9273-0")
e.asserts(r2)

In English, "10.1007%2Fs00454-010-9273-0 suggests that chemical X modulates the connection between AVAL and ADER". This 'relationship' API (a sub-API to the PyOpenWorm API), has the primary feature of allowing statements made as to be part of higher order statements.