RocketBugsRender...
Contents:
This software was designed, in an ad hoc manner, to analyze the simulation output from "RocketBugs", my simulation of the actin-based motility of Listeria monocytogenes and other natural and artificial cellular bodies. It was never designed with the general user in mind... in fact, exactly two people in the world are familiar with its operation (Susanne Rafelski and myself). I've moved all the rendering of my more recent simulations into Java3D, but I've been impressed by the unexpected utility of the graphing functions of THIS code... I hope someone else may find these features useful, or work bits of code or inspiration into a more friendly and general analysis program.
If you're running the source or JAR file, you may need to allocate a large max heap size. If you're running a platform specific application, I've already done this for you. A large heap lets you load VERY large files, which I sometimes need to do.
For example, type "java -Xmx800M RocketBugsRender" or "java -Xmx800M -jar RocketBugsRender" to allocate a 800 MB max heap with the source or JAR file, respectively.
This code renders a very specific kind of file, with postscript QK, that is produced from the simulation RocketBug. These binary files contain all sorts of information about the state of the simulation when the file was written, including bug position and orientation, filament positions, orientations, and biochemical state, and a large number of biochemical events that occurred in the last time-step, or since the last QK file was written. To render these files, point the program to a folder containing a bunch of QK files by hitting the play (">") button. You can then change the center of the rendering screen by clicking the mouse (the click point becomes the new center), and by adjusting the zoom with the "ZoomIn" and "ZoomOut" buttons or the vertical scroll bar. Buttons on the bottom of the window let you choose the rendering type, whether or not to make a histogram of actin position, the number of files to skip between renders, and whether or not to actually write out image files. The image files (PNGs) are, by default, written into the parent directory of the QK folder with the same name but postfix "PNGs". I typically use Quicktime Pro to load this image sequence, then save or export as a movie in some codec like H264.
I created the graphing functions available in this code because I was unhappy with the options available in Excel and other plotting programs that I tried out. You can load a data file, or a folder of data files, by hitting the PLOT button and then Add Data in the new tabbed panel that appears. This program is, currently, very rigid in the type of file it can read in: it assumes text files with a title line and a value name line preceding the data. Everything must be semi-colon delimited, but I frequently convert Excel CSV (comma delimited) files to this format with a text editor character find-and-replace. The first column of data is always on the x-axis and is assumed to consist of regularly incremented values (sorry! I may make this more flexible if there is a need). You can plot any or all of the other columns against this first one, choosing from different plot types and ranges by double-clicking on the y-axis for that value. You can drag to adjust the range on the screen in which any column is plotted, and then flatten all y-columns with the flatten button at bottom-right on the frame. One nice feature for preparing publication images is the ability to output EPS files with the "EPS Out" button. They are not always perfectly grouped, but I've always been able to sufficiently edit these graphs in Adobe Illustrator.
Remember.. this is not commercial software and I haven't found time to put in a lot of nice features that you and I would both appreciate (like an Undo button, for crying out loud). Let me know if I can change anything to make a version that works for you.. and good luck!