ThunderShiviah / AllenBrainAtlasAPI

A library of common functions used in calling the Allen Brain Atlas API (AllenBrainAtlas link: http://help.brain-map.org//display/mousebrain/API).
2 stars 0 forks source link

Outline wrapper structure. #19

Open ThunderShiviah opened 9 years ago

ThunderShiviah commented 9 years ago

I need to plan out a broad overview of what I want this wrapper to look like, do, not do, etc. The things I care about are:

  1. Behavior
    • How does the user access the code?
    • What is the code supposed to do?
    • What is the code not supposed to do?
  2. Test driven development
    • Writing effective unit tests first
  3. Strong documentation

Currently, the two examples I'm looking at for ideas are:

  1. The python wrapper for reddit's API
  2. [Allen Institute's python wrapper for their gene expression data ap]i(https://github.com/AllenBrainAtlas/api-examples/blob/9c12dabb97ed47f5668154d0ab8c4b4ca1964f91/structures/download_data.py)
ThunderShiviah commented 9 years ago

Next actions: Write up list of user behaviour (stories) as motivated by the ipython notebooks.

ThunderShiviah commented 9 years ago

For the first iteration, the user story will follow this progression:

  1. open lab image(s)
  2. identify best matching allen image
  3. download allen image(s) and/or annotation(s)
  4. Register annotations to lab image
  5. toggle back and forth between annotation and lab image
  6. save annotation with lab image for future use

On the backend side, the user stories are mirrored roughly by the following framework

brain project - progress report fall 2014

I'll start by converting the general methods I've outlined in the notebooks into a library of re-usable scripts for accessing and downloading content from the API.

The conversion process will start with writing a unit testing suite with nose and using virtualenv for sandboxing. I will also use pylint in my testing suite.

ThunderShiviah commented 9 years ago

UPDATE: It appears virtualenv does not play nicely with python3. For the time being, I'll explore python3.4's native virtualenv.

ThunderShiviah commented 9 years ago

So python3.4 doesn't have very thorough documentation for their native venv. virtualenvwrapper is tested up to python 3.3 and has extensive documentation so i'll try that until it breaks.

ThunderShiviah commented 9 years ago

Currently using a venv called allen_env. Not sure how I should go about adding the virtual environment to the github repo (or if that's actually necessary).

jmicahc commented 9 years ago

Is this still being developed? I'm interested in contributing.

ThunderShiviah commented 9 years ago

This project is still currently being developed. What would you be interested in helping out on?

jmicahc commented 9 years ago

I've been working on a project with the hierarchical structure data and the svg annotation data in the allen brain atlas api, which you can see here:

http://people.ucsc.edu/~jomicoll/D3-Horizontal-Zoomable-Icicle-Diagram/brainstructure.html

I'm not sure what the Jara Images are or what your plans are with that, but I was going to work on encapsulating the url query system starting with the parts of the api that I'm most familiar with. My plan was to start with the Ontology Structure Graph and grow the encapsulation outwards from there, with a focus on enriching the core Ontology structure with references to other data, such as svg annotations and gene expression.

Unfortunately I'm too busy with school this quarter, however, so serious work will have to wait a little while.