Re: [XMLPipeDB-developer] GenMAPP multitaxon support - CMSI 486T
Brought to you by:
kdahlquist,
zugzugglug
From: Kam D. <kda...@lm...> - 2011-07-20 15:47:47
|
Hi, I'm OK for Thursday, too. Sorry, I don't generally check my e-mail at night. Hope everything is OK. In the future, don't hesitate to move things if I'm not responding, I'll catch up eventually :) Best, Kam At 08:29 AM 7/20/2011, John David N. Dionisio wrote: >OK, acknowledged. Take care. > >John David N. Dionisio, PhD >Associate Professor, Computer Science >Loyola Marymount University > > > >On Jul 20, 2011, at 8:25 AM, Richard Brous wrote: > > > 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 > > > > <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 |