[Pipet Devel] workspace shapshot, July 1

J.W. Bizzaro bizzaro at bc.edu
Thu Jul 1 09:40:48 EDT 1999


Release early and often, as they say.

Well, I know that most of the people on this list don't have CVS access, so here
is a tarball:

    http://theopenlab.um.edu/loci/download/loci-core-19990701.tar.gz

Note that this is what has been on the CVS for about a week, so if you checked
out the module a little while ago (Humberto), there's no need to update.

Requirements:

    gnome-libs >= 1.0.10
    gnome-python >= 1.0.3

Of course it doesn't do much of anything yet, but I am happy with the look and
feel.  Let me know what you think or if you have any ideas.

To get an idea as to what my plans are for the workspace, I have pasted a
message from June 6, "cunstructing the command line":

Locians,

As the development continues, it appears the users will be able to construct
their own gui's by connecting loci together.  This will involve the use of an
XML similar to Damon Chaplin's Glade XML, which was really made just to save
projects.

Here is an example of Glade XML.  It's simply a button placed in a container and
in a window.

-----------------8<------------------
<?xml version="1.0"?>
<GTK-Interface>

<project>
  <name>project1</name>
  <directory></directory>
  <source_directory></source_directory>
  <pixmaps_directory>pixmaps</pixmaps_directory>
  <language>C</language>
  <gettext_support>False</gettext_support>
  <use_widget_names>False</use_widget_names>
  <main_source_file>gladesrc.c</main_source_file>
  <main_header_file>gladesrc.h</main_header_file>
  <handler_source_file>gladesig.c</handler_source_file>
  <handler_header_file>gladesig.h</handler_header_file>
</project>

<widget>
  <class>GtkWindow</class>
  <name>window1</name>
  <title>window1</title>
  <type>GTK_WINDOW_TOPLEVEL</type>
  <position>GTK_WIN_POS_NONE</position>
  <allow_shrink>True</allow_shrink>
  <allow_grow>True</allow_grow>
  <auto_shrink>False</auto_shrink>

  <widget>
    <class>GtkFixed</class>
    <name>fixed1</name>

    <widget>
      <class>GtkButton</class>
      <name>button1</name>
      <x>32</x>
      <y>16</y>
      <width>112</width>
      <height>40</height>
      <can_focus>True</can_focus>
      <label>button1</label>
    </widget>
  </widget>
</widget>

</GTK-Interface>
-----------------8<------------------

Note: James Henstridge already made a Python script to generate a PyGTK gui from
Glade XML.

You can see that the widgets here are Gtk widgets; of course, this is for Gtk. 
But let's say we make higher level, composite widgets (the "megawidgets" I've
been talking about).  Instead simple gui widgets, some of Loci's composite
widgets will generate the options of a command-line.  (Some composite widgets
will be biowidgets of a sort.)

For example, in the build phase we start off with a windowlet/locus containing a
composite widget that is an option to choose the name of a program.  This may
simply have a text entry box where the user can type in the name.

Next, the user can add a flag option.  A new locus appears, and they are
presented with a pull down list of all flags, -a to -Z.  Underneath that is a
text entry box that goes with the flag, because sometimes a flag option expects
a term to be added.

And the user can actually specify types and ranges for any option.  Say the
program that the gui is being built for requires an integer after the -n flag. 
In the build phase, the user can set this using some radio button or something.

At this point the user will see several composite widgets, each with its own
locus, all connected with lines.  Selecting the parent locus (the first one
made), the user can pull down a menu and cause them all to be merged into a
functional, gui representation of a command-line.  Now that the locus is out of
the build phase, only the options that were not previously set are visible.

I mentioned a couple months ago that there are some programs meant to wrap
command-lines in a gui.  GGUI is one that uses wizards:

    http://www.greysite.com/ggui/

I also found TkWorld, which is like GGUI:

    http://www.tkworld.org/

But Loci is not meant to be just a command-line generator.  It will do this, but
much more will be included.  For one, Loci will keep biodata in a standardized
XML format.  This will require conversion utilities: one for LocusML ->
program-format, and one for program-format -> LocusML.  This is because, unlike
simple UNIX shell utilities, most bioinfo programs have specific format
requirements.

Another issue I don't believe is addressed so nicely by GGUI and TkWorld, is
piping.  Loci's loci will, by the nature of the bioinfo programs used, make
extensive use of piping or connecting output to input.  And this is supposed to
occur seamlessly over the Internet; not something normally done in the UNIX
shell.

So what will the resultant gui XML look like?  I think that when the loci are
combined, the XML's can be concatonated.  And the user can take them back apart,
recombine them as they wish, and even save/store them.  A really neat result is
that a user can make some unique concoction and then send it across the Internet
to someone else using Loci.  Rapid locus development and sharing will be
important to Loci's success.

Well, if you read this far, thank you.


:-)
Jeff
-- 
J.W. Bizzaro                  mailto:bizzaro at bc.edu
Boston College Chemistry      http://www.uml.edu/Dept/Chem/Bizzaro/
--




More information about the Pipet-Devel mailing list