Re: [XMLPipeDB-developer] GenMAPP multitaxon support - CMSI 486T
                
                Brought to you by:
                
                    kdahlquist,
                    
                
                    zugzugglug
                    
                
            
            
        
        
        
    | 
      
      
      From: Richard B. <rbr...@gm...> - 2011-07-20 15:58:52
      
     | 
| Thanks for understanding!
Talk tomorrow.
Rb
Sent from my iPhone
On Jul 20, 2011, at 8:47 AM, Kam Dahlquist <kda...@lm...> wrote:
> 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
> 
> 
> ------------------------------------------------------------------------------
> 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
 |