Re: [XMLPipeDB-developer] GenMAPP multitaxon support - CMSI 486T
Brought to you by:
kdahlquist,
zugzugglug
|
From: Richard B. <rbr...@gm...> - 2011-07-20 15:25:21
|
OK, I am forced to push to tomorrow now because our nanny is stuck in
traffic, christina is back at the hospital and I have to drive my boys to
MDR for their camp.
I'm sorry this is so crazy but all is upside down atm.
I already have a bunch of questions which I will lay out via email since
they are more high level than can be placed in code comments... at least I
think so atm.
Either way come hell or high-water I'll get another iteration on this prior
to a call.
rb
On Tue, Jul 19, 2011 at 11:21 PM, John David N. Dionisio <do...@lm...>wrote:
> Hi Rich,
>
> Sorry to hear about your mother-in-law. Hospital wait states are never
> fun.
>
> I can do Thursday morning at 9am if needed. Let's watch the e-mail in the
> morning to see if Kam can do that too; if so, then Thursday it is, but if
> not, then we can still push for Wednesday 9am.
>
> John David N. Dionisio, PhD
> Associate Professor, Computer Science
> Loyola Marymount University
>
>
>
> On Jul 19, 2011, at 10:26 PM, Richard Brous wrote:
>
> > ok, can't get a break... sitting in the ER after admitting my mother in
> law at St. Johns in Santa Monica. We are waiting to get her a bed but not
> sure how long it will take.
> >
> > Luckily I have my laptop with me so I was able to scan the new code with
> all the Dondi comments and compile a build which runs. I will review Dondi's
> changes as best I can from here but likely won't be able to do much with it
> by our call tomorrow.
> >
> > I'm happy to push our call to Thursday morning instead of tomorrow to
> allow more time... but it is late so unless I hear otherwise, tomorrow at
> 9am is still a go.
> >
> > Richard
> >
> > On Tue, Jul 19, 2011 at 3:00 PM, Richard Brous <rbr...@gm...>
> wrote:
> > Thanks will review later this afternoon. Sorry got hung up on this but
> continuing forward comments in code should speed this way up.
> >
> > Rb
> >
> > Sent from my iPhone
> >
> > On Jul 19, 2011, at 12:04 AM, "John David N. Dionisio" <do...@lm...>
> wrote:
> >
> > > Greetings,
> > >
> > > OK, my responses are committed. As noted in my "Dondi -" comments, you
> were fairly close. The main miss was how AbstractListModel was to be used.
> Give it a gander and holler if anything else remains unclear.
> > >
> > > At this point, you'll need to start managing what should happen as the
> user selects/deselects species. You'll also want that little informational
> panel on the right that summarizes (for tech types) whether the selected
> species will be using a customized species profile or the generic one.
> > >
> > > Carry on, see how this goes. :)
> > >
> > > John David N. Dionisio, PhD
> > > Associate Professor, Computer Science
> > > Loyola Marymount University
> > >
> > >
> > > On Jul 18, 2011, at 10:14 AM, Richard Brous wrote:
> > >
> > >> Ok , took the code as far as I could and submitted export 1 -
> unfortunately broken code even though I made a point not to by commenting
> out unfinished blocks. Take a look at the commit comments for info.
> > >>
> > >> I look forward to your comments which I'm sure will help straighten
> this out!
> > >>
> > >> Rb
> > >>
> > >> Sent from my iPhone
> > >>
> > >> On Jul 12, 2011, at 6:35 PM, "John David N. Dionisio" <do...@lm...>
> wrote:
> > >>
> > >>> Hi there,
> > >>>
> > >>> A code-oriented session is OK with me, though this particular
> question I can take a stab at via e-mail.
> > >>>
> > >>> The trick with full control of a JList is to implement its model (a
> ListModel). For this, I usually create a subclass of AbstractListModel and
> implement the missing methods. This AbstractListModel subclass should be
> able to see the list of species found. Then, the implementations of its
> missing methods would be based on that list of species.
> > >>>
> > >>> With this ListModel class in hand, keeping the JList up to date is a
> matter of instantiating the JList with this model:
> > >>>
> > >>> SpeciesListModel speciesListModel = new SpeciesListModel();
> > >>> speciesCheckList = new JList(speciesListModel);
> > >>>
> > >>> If the species list changes, have the species list model fire the
> appropriate list change event (the JavaDoc API has a bunch of fire*
> methods). To keep things simple, there is a "full update" event which just
> says "rebuild the entire JList." That one should be OK. There are
> finer-grained ones like "something got inserted" and "something got
> removed," but that really is more for optimization purposes.
> > >>>
> > >>> As for the text display, the simplest approach is to implement the
> toString method of the SpeciesProfile class so that they return something
> that is appropriate for a JList. Sometimes that is too limiting though. If
> you want greater flexibility, you will want to implement a ListCellRenderer.
> There is a class called DefaultListCellRenderer that you can extend.
> Typically the subclass would call the superclass's method, which returns a
> JLabel. You can then change the content of the JLabel according to the list
> item that you are trying to display.
> > >>>
> > >>> See if these leads are enough to go on. If not, I can talk you
> through them more during the call.
> > >>>
> > >>> John David N. Dionisio, PhD
> > >>> Associate Professor, Computer Science
> > >>> Loyola Marymount University
> > >>>
> > >>>
> > >>> On Jul 12, 2011, at 6:00 PM, Richard Brous wrote:
> > >>>
> > >>>> Update for tomorrow 7/13/11:
> > >>>>
> > >>>> Clear on what I need to do but can't seem to figure out a way to do
> it. I think the best use of our time tomorrow is to make it a code
> discussion session (giving Dr. Dahlquist the opportunity to bow out if so
> inclined)
> > >>>>
> > >>>> 1. In regard to the JList, I have been working on the best way to
> implement it but am getting stuck on how to populate it and where to do so
> in the code.
> > >>>>
> > >>>> I'm currently working in ExportPanel1.java and have done the
> following so far:
> > >>>>
> > >>>> imported JList;
> > >>>> imported javax.swing.event.*;
> > >>>>
> > >>>>
> > >>>> public class ExportPanel1 extends JPanel {
> > >>>> added: private JList speciesCheckList;
> > >>>>
> > >>>> private JPanel getContentPanel () {
> > >>>> underneath the species combo box entry // species | JComboBox |
> speciesFound |JLabel | Description | ...
> > >>>>
> > >>>> added: speciesCheckList = new JList ( speciesProfilesFound );
> > >>>>
> > >>>> // registered the listeners
> > >>>> speciesCheckList.addListSelectionListener ( new
> ListSelectionListener () {
> > >>>> // handle list selection
> > >>>> public void valueChanged ( ListSelectionEvent e ) {
> > >>>> // get selected indices
> > >>>> int [] indices = speciesCheckList.getSelectedIndices ();
> > >>>> }
> > >>>> });
> > >>>>
> > >>>> added: //leftPanel.add ( speciesComboBox );
> > >>>> leftPanel.add ( speciesCheckList );
> > >>>>
> > >>>> The real issue here is how to populate the JList... I took a look at
> the constructors but can't determine a way to populate it after
> instantiation... maybe using abstract class somehow?
> > >>>>
> > >>>> So instead I have been working to add the speciesProfilesFound []
> ArrayList as a constructor argument. Then I can pre-populate it prior to the
> contentPanel being initialized???... or possibly similar to the init()
> method which pre-populates the Database profileComboBox?
> > >>>>
> > >>>> Once the initital population of the JList is done we can modify it
> for the later methods which dynamically alter content in
> databaseProfileSelected() and speciesProfileSelected(). This will effect the
> selectedSpeciesProfile() method usage and its getter and setter.
> > >>>>
> > >>>> Also we can then work on the text indication which dynamically shows
> the selected species and whether a custom or generic profile has been
> associated.
> > >>>>
> > >>>> Dondi - I'm looking forward to your suggestions and assistance!!!
> > >>>>
> > >>>> Richard
> > >>>>
> > >>>>
> > >>>>
> > >>>> On Wed, Jul 6, 2011 at 10:58 PM, John David N. Dionisio <
> do...@lm...> wrote:
> > >>>> Hi Rich,
> > >>>>
> > >>>> OK, thanks for the discussion setup. We'll work through this during
> the call.
> > >>>>
> > >>>> John David N. Dionisio, PhD
> > >>>> Associate Professor, Computer Science
> > >>>> Loyola Marymount University
> > >>>>
> > >>>>
> > >>>>
> > >>>> On Jul 6, 2011, at 7:37 PM, Richard Brous wrote:
> > >>>>
> > >>>>> Update on status:
> > >>>>>
> > >>>>> Over the past two weeks I have spent time doing the following:
> > >>>>>
> > >>>>> 1. Reviewed the taxon id code changes which Don Murphy coded and
> were merged to create version 2.0 b64
> > >>>>> 2. Reviewed the UniprotDatabaseProfile, UniprotSpeciesProfile,
> SpeciesProfile, Profile and DatabaseProfile files
> > >>>>> 3. Reviewed and discussed the process by which GenMAPP matches
> single taxon ids found in a Postgres db with the known species profiles.
> > >>>>>
> > >>>>> Current actions:
> > >>>>>
> > >>>>> During the last few days I have started coding in the ability for
> the species matching functionality to surface multiple taxon ids from within
> a Postgres db.
> > >>>>>
> > >>>>> The process being the following steps:
> > >>>>>
> > >>>>> 1. Grab all the taxon ids from the Postgres db
> > >>>>> The current iteration of the software already does this. In the
> checkRequirements method in UniprotDatabaseProfile.java, a query of the
> Postgres db acquires all taxon id's and stores them in ResultSet result
> variable.
> > >>>>>
> > >>>>> 2. Check to find match between the taxon ids from Postgres against
> existing species profiles for known species.
> > >>>>>
> > >>>>> The current iteration compares each taxon id in ResultSet result
> variable.
> > >>>>> First taxon id from result:
> > >>>>> If match was found, then that species profile with associated taxon
> id was added to the speciesProfilesFound arraylist.
> > >>>>> If no match was found, a generic species profile associated with
> the current taxon id was added to the speciesProfilesFound arraylist.
> > >>>>>
> > >>>>> Next taxon id from result
> > >>>>> If match was found, then that species profile with associated taxon
> id was added to the speciesProfilesFound arraylist.
> > >>>>> If no match was found, a generic species profile associated with
> the current taxon id was added to the speciesProfilesFound arraylist.
> > >>>>>
> > >>>>> Repeat until no more taxon ids are found in ResultSet result
> variable.
> > >>>>>
> > >>>>> 3. Replace the JComboBox with a JList to allow the user to choose a
> selection of multiple species to export.
> > >>>>>
> > >>>>> Use the getSelectedIndices method for JList to determine which
> species have been selected for export.
> > >>>>>
> > >>>>> 4. Modify the export process to run a pass for each species
> selected to generate a multispecies gdb.
> > >>>>> details to be determined.
> > >>>>>
> > >>>>>
> -----------------------------------------------------------------------------------------------------------------------------------------------------------
> > >>>>>
> > >>>>>
> > >>>>> Discussion for tomorrows call:
> > >>>>>
> > >>>>>
> > >>>>> We previously discussed allowing user input to manually add taxon
> ids and associate them to the generic profile.
> > >>>>>
> > >>>>> Unless I don't really understand the reasoning behind this, it
> seems to me that it is unnecessary. Why would we add a taxon id during the
> export process that isn't already in the Postgres data?
> > >>>>>
> > >>>>> The current implementation already captures every taxon id in
> speciesProfilesFound regardless if its a known species or not. So it seems
> that we don't need to make any modifications in surfacing taxon ids from a
> Postgres db.
> > >>>>>
> > >>>>> Then we can go directly to #3 above which I have mostly coded, but
> can't seem to figure out how and where to populate the JList. In reviewing
> constructor documentation it indicates 4 ways to instantiate.
> > >>>>>
> > >>>>> My first choice was to create an empty JList [ JList () ] and
> populate it later but I don't see a method to do so such as addItems or
> something similar.
> > >>>>>
> > >>>>> I then tried to instantiate with speciesProfileFound as an array
> argument: JList ( SpeciesProfile[] speciesProfilesFound ) but can't resolve.
> > >>>>>
> > >>>>>
> > >>>>> Anyway, I look forward to our call at 9am tomorrow.
> > >>>>>
> > >>>>> Richard
> > >>>>> <ATT00001..txt><ATT00002..txt>
> > >>>>
> > >>>>
> > >>>>
> ------------------------------------------------------------------------------
> > >>>> All of the data generated in your IT infrastructure is seriously
> valuable.
> > >>>> Why? It contains a definitive record of application performance,
> security
> > >>>> threats, fraudulent activity, and more. Splunk takes this data and
> makes
> > >>>> sense of it. IT sense. And common sense.
> > >>>> http://p.sf.net/sfu/splunk-d2d-c2
> > >>>> _______________________________________________
> > >>>> xmlpipedb-developer mailing list
> > >>>> xml...@li...
> > >>>> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer
> > >>>>
> > >>>> <ATT00001..txt><ATT00002..txt>
> > >>>
> > >>>
> > >>>
> ------------------------------------------------------------------------------
> > >>> AppSumo Presents a FREE Video for the SourceForge Community by Eric
> > >>> Ries, the creator of the Lean Startup Methodology on "Lean Startup
> > >>> Secrets Revealed." This video shows you how to validate your ideas,
> > >>> optimize your ideas and identify your business strategy.
> > >>> http://p.sf.net/sfu/appsumosfdev2dev
> > >>> _______________________________________________
> > >>> xmlpipedb-developer mailing list
> > >>> xml...@li...
> > >>> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer
> > >>
> > >>
> ------------------------------------------------------------------------------
> > >> AppSumo Presents a FREE Video for the SourceForge Community by Eric
> > >> Ries, the creator of the Lean Startup Methodology on "Lean Startup
> > >> Secrets Revealed." This video shows you how to validate your ideas,
> > >> optimize your ideas and identify your business strategy.
> > >> http://p.sf.net/sfu/appsumosfdev2dev
> > >> _______________________________________________
> > >> xmlpipedb-developer mailing list
> > >> xml...@li...
> > >> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer
> > >
> > >
> > >
> ------------------------------------------------------------------------------
> > > Magic Quadrant for Content-Aware Data Loss Prevention
> > > Research study explores the data loss prevention market. Includes
> in-depth
> > > analysis on the changes within the DLP market, and the criteria used to
> > > evaluate the strengths and weaknesses of these DLP solutions.
> > > http://www.accelacomm.com/jaw/sfnl/114/51385063/
> > > _______________________________________________
> > > xmlpipedb-developer mailing list
> > > xml...@li...
> > > https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer
> >
> > <ATT00001..txt><ATT00002..txt>
>
>
>
> ------------------------------------------------------------------------------
> 10 Tips for Better Web Security
> Learn 10 ways to better secure your business today. Topics covered include:
> Web security, SSL, hacker attacks & Denial of Service (DoS), private keys,
> security Microsoft Exchange, secure Instant Messaging, and much more.
> http://www.accelacomm.com/jaw/sfnl/114/51426210/
> _______________________________________________
> xmlpipedb-developer mailing list
> xml...@li...
> https://lists.sourceforge.net/lists/listinfo/xmlpipedb-developer
>
|