Re: [XMLPipeDB-developer] GenMAPP multitaxon support - CMSI 486T
Brought to you by:
kdahlquist,
zugzugglug
From: John D. N. D. <do...@lm...> - 2011-07-20 16:00:12
|
Sounds good, talk to everyone Thursday 9am then :) John David N. Dionisio, PhD Associate Professor, Computer Science Loyola Marymount University 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 |