Team:BU Wellesley Software/Notebook/JanooNotebook
From 2011.igem.org
Contents |
Life = 42
--Jtferns 15:47, 7 June 2011 (CDT)
To-Do List
read through Doug's Algorithm paper[http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2860133/]read through AssemblyManager coderead through ClothoHelp[http://wiki.bu.edu/ece-clotho/index.php/Main_Page]edit main page to allow for click-able imagesbreak main pagefix link-caption centering issue
read through kirigami/TB paperread through Friedland abstract/paper[6/7/2011]
PuppetShow Thought Project
read through Puppeteer/PuppetShow powerpoint[6/7/2011]- PuppetShow takes some version of the protocol graph produced via the Assembly Planner
- The relationships between parts within the protocol graphs are assumed to be labeled with protocol names
- The PuppetShow itself should link the protocol names to libraries and help generate the necessary Puppeteer code
- PuppetShow takes some version of the protocol graph produced via the Assembly Planner
read through Puppeteer/related abstract[6/7/2011]peruse GroovyScripter code/structureread up on JEditorPane first!![6/8/2011]need to find out how to properly import Python shell to run Python code[6/9/2011]- able to successfully incorporate python interpreting using native Python 3.2 installation!
attempt to mimic GUI and incorporate Python-parsing?[6/8/2011], [6/9/2011]- able to successfully mimic the JEditorPane!!
figure out how to seamlessly integrate Python script-compiling within fluid GUI[6/9/2011]- design aforementioned fluid GUI
currently working on implementing fluid menu bar design for easy navigation and script creation/manipulation[6/10/2011]
Using the Clotho platform [4], we develop two applications for specifying and executing biological protocols. The Assembly Planner [5] is the end-point of an endto- end design workflow [3] that produces an assembly plan for synthetic biological devices, with each assembly step annotated with the name of a biological protocol. Each such protocol itself may be fully specified using another Clotho application called PuppetShow, which provides an environment for writing, testing, debugging, and executing biological protocols. --A Software Stack for Specification and Robotic Execution of Protocols for Synthetic Biological Engineering
The Day-to-Day
[6/8/2011]
Finally got the plugin to properly load off of the Clotho dashboard. It runs as a JEditorPane with (I assume; has yet to be verified) Python-syntax-highlighting. Next up is finding a way to properly integrate a "run" method for parsing/executing Python scripts made within this GUI.
Got a bare-bones menu-bar working. It doesn't have any functioning implementations, yet. However I'm going to stop here until I can figure out how to parse Python and run it from the GUI window.
[6/9/2011]
I started looking into incorporating the Jython library/software package to assist with compiling Python scripts, etc. However, as per Swapnil's advice, instead I shifted to just trying to run the Python scripts directly off of a native Python installation. This makes sense since one would currently need to have Python installed to work with Puppeteer, so executing/compiling the Python scripts/code should work.
Right now I am trying to properly code the runtime-execution of python to parse some sample code within a test file that I placed within the App directory. My thoughts for future development involves saving the written code to a temp file and executing the code when the user chooses the run command.
Update: The App can now fully parse text written within the custom-JEditorPane and interpret it using the native Python 3.2 installation. I have currently abandoned any interest in incorporating Jython and will focus more on GUI design and simple file-manipulation.
[6/10/2011]
The cloning process is complete. The PS Scripter can now fully open files, save them, save them as a new file, and run the script. I will continue to play around with more GUI options but I will be leaving this App/Module alone so I don't brick anything just yet. The next step involves creating some new App with a more streamlines GUI that has some kind of status window.
Update: GUI now has a neat status window. I am currently implementing this by appending Strings to the TextArea, but there might be a better setup for future development. Right now it only spits out the basic text that I relied on for debugging. Eventually, it would either incorporate the python output/error stream (if possible). It also has a non-functional progress bar that I threw in for fun; if I can't get it to work with compile/run-time progress I will replace it with a status text.
[6/13/2011]
The GUI has been re-designed to contain a re-sizable bar to vary the height of the visible JEditorPane and JTextArea; these are the python-scripting area and status window area, respectively. The status window itself now features descriptive text (need to fix some alignment issues) and the direct output and error streams from the python-script-execution. The image to the right shows the new GUI as well as some example code and the resultant status window text.
[6/14/2011]
Fully re-designed the menu-bar components such that they were easily-modified via the built-in Netbeans GUI development tools. This resulted in the newly-implemented hotkeys for the various menu-bar components. Additionally, a new feature was added: custom command input. This feature allows the user to input a custom command for the runtime process execution; this allows users to input custom flags/commands as needed to do more with their Python scripts. Unfortunately, the current setup relies on saving the code opened/typed into the PS window to a "testing.py" file, which is what the Python interpreter compiles by default.
Update: The runtime process now no longer relies solely on the "testing.py" for executing previously-saved code. Instead, it uses the selected file once the user opens/saves their work. This change is also accurately reflected within the custom command option, which either presents the default "testing.py" choice or the current file appended to the default run-command text.
An issue that I still cannot figure out concerns why Swapnil cannot see the Python syntax-highlighting on his machine. My machine as well as the CIDAR PC1 both detect and highlight the code accurately. Therefore, something regarding the JSyntaxPane is acting up on Swapnil's machine. Currently the module is set up to use the associated JSyntaxPane library, so I might try experimenting with just wrapping the most recent JAR instead.
The Backburner
Protocol Graphs Thought Project
- Ideally, we should have a protocol graph that would be a generic form of managing an arbitrary combination of protocols.
- The protocol graph should contain vertices, which are either operands or protocols/operations.
- The graph should also connect operands to protocols.
- Given access to a library of protocol specifications, one should be able to give an expression or an explicit protocol graph for parsing purposes.
- One should be able to use PuppetShow (see powerpoint) to create an implicit protocol graph.
- One should be able to reconfigure protocol graphs for optimization, etc.
- Questions
- How do we want to construct this graph?
- Does the user input an expression?
- Should we have an interactive GUI to help user create custom protocol graphs?