No 1. Buttons (High Priority. I am currently working on this. Goal: finish in the next week)
Short version: get the flash version of cadnano to look like the jpg mockup that I put together this evening.
Plan to add functions that facilitate setting up buttons associated with specific panels (e.g. pass parameters such as target movieclip, icon name, image file, etc. to a Panel). Panel-specific buttons will appear directly below the masked canvas of the panel, and will be minimized together into the dock.
Gradually start implementing functions associated with each button. Some will be very straightforward (e.g. zoom), others will need to wait until we have a lot more implemented (e.g. most of the Path buttons and all of the render buttons). Each of us can do these as necessary.
No 2. Implement multiple layers of functionality in Path panel (High priority. I will work on this as soon as 1 is complete. It will be useful to split this up. Goal: finish by end of January)
Add "layers" to the Path panel and hook them up to layer buttons (visible and lock).
Start expanding the Path routines to handle different layers. This one is quite extensive. Order will likely be: scaffold, guides, staples, breakpoints, loops. (We will split this one up too.)
scaffold: We need to fill in horizontal scaffold lines, implement handles for dragging of crossovers, add/del of crossovers for neighboring helices, start doing checks to disallow certain default crossovers from being added,
staples: draw default crossovers, implement add/del crossovers, dragging of crossovers
breakpoints: default breakpoints, dragging, add/del breakpoints
Later on: selection tools to grab multiple handles and drag them together.
No 3. 3D drawing (Low priority for now. I will work on this initially, but not before significant progress has been made on 2. Goal: finish by end of February.)
Papervision3d 2.0 should be out in December '07 or January '08. It will implement some pretty sophisticated shaders, plus primitive lighting and shadowing effects. Line3D class still seems like the way to go, but maybe they'll have better routines. Supposedly the API is stable, but I think there's little sense in doing much on this front until we have the Path stuff working and Papervision completes its pending major release.
The earliest we can start working on this is once the scaffold layer more or less complete. Development can run parallel to the path layers after that (layer buttons can apply to both path and 3d render view).
After we have a 3D viewer that we are satisfied with, next we can start implementing an external rendering system to make high-quality movies. This should be pretty fun.
No 4. File I/O (Medium priority. Anyone can start implementing this if desired.) Figure out how to output structures for saving (object serialization? custom XML format?). This is also relevant for external 3D rendering. Once we are able to export structures, we can feed this into the 3D compositor that Au has been working on. A lot of the 2D Path and 3D viewer code should be portable to the compositor project.
No 5. Additional features & enhancements
scaffold chooser (currently being implemented by Alex).
design validator: perform several checks to make sure a structure conforms to our rules. should have one continuous scaffold, warn on violations of our spacing conventions, etc.
oligo grouper & sorter: use selection tools on the staples layer to group oligos. provide a list of groups in a suitable format for ordering from company, estimated cost, plus provide pipetting and annealing instructions.
stats window: give basic stats about the order: histogram of staple lengths, average length, total bases paired vs unpaired scaffold, number of loops,
multi-structure compositor: Once we have an output file that fully describes a structure, we can read it in to a compositing program which will allow 3D manipulation of structures so one can arrange them to create "interfaces". New lists of oligos will be generated that give rise to multimeric structures. (Au has been working on this, but it probably makes sense for him to switch over to more immediate sub-projects and then return to the compositor when we have more of the necessary infrastructure in place).
No 6. nano.med website (Low priority now. I'll do this once we've made serious progress on items 1-5.)
No 7. Publication. (High priority, but needs to come after 1-6. Goal: End of Summer 2008, depending on how many of us continue to work on the project until then. We can of course start writing up the paper immediately.)
Title (suggestions welcome): caDNAno: a web-based tool for design and visualization of three-dimensional scaffolded DNA origami structures. Author list so far: Douglas SM, Marblestone A, Vazquez A, Teerapittayanon S, Church GM, Shih WM. Abstract: We have developed caDNAno, a versatile web-based tool for design of scaffolded DNA origami nanostructures. Rationale: Scaffolded DNA origami is a revolutionary technique that allows implementation of arbitrary nanostructures on the 100 nm scale. However, there is a learning curve associated with designing these objects, requiring an initial investment of several days or weeks (depending on programming experience) to become proficient at designing new structures. Also, as structures get increasingly complex, the computer scripts required to generate the structures also grow in complexity. We aim to lower this barrier to entry into the field by providing a web-tool with an intuitive interface and immediate 2D and 3D visual feedback as structures are constructed. Methods: screenshots of the tool, links to website, brief background on implementation. Example structures: show novel structure that we've designed using caDNAno, including screenshot of the design, and corresponding EM images.