Hi Tariq, thanks for the patch, I committed it to SVN. Please verify that it works for you now. (If you provide me with a junit test case for this, I can add that as well).
Andreas On Tue, Jul 26, 2011 at 5:14 AM, Muhammad Tariq Pervez <[email protected]> wrote: > > Eventaully, I succeeded in finding the exact location of exception and fixes > it as well. The problem is with that in getMultipleSequenceAlignment Method > of Alignments class there are two 'if' statements as follows: > > if (cs == AminoAcidCompoundSet.getAminoAcidCompoundSet()) { > @SuppressWarnings("unchecked") // compound types must be equal > since compound sets are equal > SubstitutionMatrix<C> temp = (SubstitutionMatrix<C>) > SubstitutionMatrixHelper.getBlosum62(); > subMatrix = temp; > }else if (cs == AmbiguityDNACompoundSet.getDNACompoundSet()) { > @SuppressWarnings("unchecked") // compound types must be equal > since compound sets are equal > SubstitutionMatrix<C> temp = (SubstitutionMatrix<C>) > SubstitutionMatrixHelper.getNuc4_4(); > subMatrix = temp; > System.out.println("Inside getMSA===" +subMatrix); > } > and 'subMatrix' remains null when we try to DNA sequences. But when i added > the third 'if' statement as follows the problem fixes and DNA sequences are > aligned correctly. > > if (cs == AminoAcidCompoundSet.getAminoAcidCompoundSet()) { > @SuppressWarnings("unchecked") // compound types must be equal > since compound sets are equal > SubstitutionMatrix<C> temp = (SubstitutionMatrix<C>) > SubstitutionMatrixHelper.getBlosum62(); > subMatrix = temp; > } else if (cs == DNACompoundSet.getDNACompoundSet()) { > @SuppressWarnings("unchecked") // compound types must be equal > since compound sets are equal > SubstitutionMatrix<C> temp = (SubstitutionMatrix<C>) > SubstitutionMatrixHelper.getNuc4_4(); > subMatrix = temp; > System.out.println("Inside getMSA===" +subMatrix); > } > else if (cs == AmbiguityDNACompoundSet.getDNACompoundSet()) { > @SuppressWarnings("unchecked") // compound types must be equal > since compound sets are equal > SubstitutionMatrix<C> temp = (SubstitutionMatrix<C>) > SubstitutionMatrixHelper.getNuc4_4(); > subMatrix = temp; > System.out.println("Inside getMSA===" +subMatrix); > } > > Tariq, Phd Scholar > > > From: [email protected] > To: [email protected]; [email protected] > Date: Mon, 25 Jul 2011 09:44:23 -0400 > Subject: Re: [Biojava-l] NullPointerException Exception While Creating DNA > MultipleSequenceAlignment > > > > Not sure if this is an issue with the MultipleSequenceAlignment code versus > the way you are doing pairwise is simply throwing a concurrency exception. > Can you complete all pairwise comparisons independently to rule out a problem > related to the code and the sequences you are trying to align? > From: Muhammad Tariq Pervez <[email protected]> > Date: Mon, 25 Jul 2011 06:27:02 -0400 > To: Scooter Willis <[email protected]>, "[email protected]" > <[email protected]> > Subject: RE: [Biojava-l] NullPointerException Exception While Creating DNA > MultipleSequenceAlignment > > > Following is tmpLst filled with two DNA sequences. Scorers object is > displayed from inside the object of Alignments (getMultipleSequenceAlignment > method). All==1 is displayed from inside the method of public static <S > extends Sequence<C>, C extends Compound> int[] runPairwiseScorers( > List<PairwiseSequenceScorer<S, C>> scorers) { (class is > Alignments) as follows > > all = scorers.size(); > > But the line System.out.println("futures==="+futures.get(0).get()); causes > NullPointer Exception. > > List<Future<Integer>> futures = new ArrayList<Future<Integer>>(); > for (PairwiseSequenceScorer<S, C> scorer : scorers) { > futures.add(ConcurrencyTools.submit(new > CallablePairwiseSequenceScorer<S, C>(scorer), > String.format("Scoring pair %d of %d", n++, all))); > } > try{ // perhaps this code is not working fine. > System.out.println("futures==="+futures.get(0).get()); > > tmpLst==[GAATCTATAGGGCGATTGGGCCTCTAGATGCATGCTCGAGCGGCCGCCAGTGTGATGGATATCTGCAGAATTCAGGTAGTCGACTCAGATTCTTGTAGTGGCTCTCATCTGATCAAGGGTATTATTCCCAAGCCATAGTAAGGTCTTCTGTTGTGCCTTTTGCTTATACATCAGGTAACATGATAGAACTAGGCTAAGTG, > > ATGGGCTCCAAACCTTCTACCAGGATCCCAGCACCTCTAATGCTGATCACTCGGACTATGCTGATATTGAGCTGTATCCGTCTGACAAGCTCTCTTGACGGCAGGCCCCTTGCAGCTGCAGGAATTGTAGTAACAGGAGATAAGGCAGTCAATGTATACACCTCGTCTCAGACAGGGTCAATCATAGTCAAGTTGCTCCCGAATATGCCCAGAGATAAGGAGGCATGTGCAAAAGCCCCATTGGAGGCATATAACAGAACACTGACTACTCTGCTCACTC] > sequences=== > [GAATCTATAGGGCGATTGGGCCTCTAGATGCATGCTCGAGCGGCCGCCAGTGTGATGGATATCTGCAGAATTCAGGTAGTCGACTCAGATTCTTGTAGTGGCTCTCATCTGATCAAGGGTATTATTCCCAAGCCATAGTAAGGTCTTCTGTTGTGCCTTTTGCTTATACATCAGGTAACATGATAGAACTAGGCTAAGTG, > > ATGGGCTCCAAACCTTCTACCAGGATCCCAGCACCTCTAATGCTGATCACTCGGACTATGCTGATATTGAGCTGTATCCGTCTGACAAGCTCTCTTGACGGCAGGCCCCTTGCAGCTGCAGGAATTGTAGTAACAGGAGATAAGGCAGTCAATGTATACACCTCGTCTCAGACAGGGTCAATCATAGTCAAGTTGCTCCCGAATATGCCCAGAGATAAGGAGGCATGTGCAAAAGCCCCATTGGAGGCATATAACAGAACACTGACTACTCTGCTCACTC] > scorers=== [org.biojava3.alignment.FractionalIdentityScorer@d337d3] > all===1 > scorers===org.biojava3.alignment.FractionalIdentityScorer@d337d3 > java.util.concurrent.ExecutionException: java.lang.NullPointerException > at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) > at java.util.concurrent.FutureTask.get(FutureTask.java:83) > at pakjalphiew.Alignments.getListFromFutures(Alignments.java:304) > at pakjalphiew.Alignments.runPairwiseScorers(Alignments.java:631) > at pakjalphiew.Alignments.getMultipleSequenceAlignment(Alignments.java:194) > at pakjalphiew.MSA.msaDNAFromFiles(MSA.java:109) > at > pakjalphiew.MSACalculation.calculateDNAMSAFromFiles(MSACalculation.java:42) > at pakjalphiew.MSAInterFrame.<init>(MSAInterFrame.java:60) > at > pakjalphiew.LaunchingFrame.newDNAFromFileActionPerformed(LaunchingFrame.java:265) > at pakjalphiew.LaunchingFrame.access$000(LaunchingFrame.java:26) > at pakjalphiew.LaunchingFrame$1.actionPerformed(LaunchingFrame.java:83) > at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) > at > javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) > at > javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) > at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) > at javax.swing.AbstractButton.doClick(AbstractButton.java:357) > at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809) > at > javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850) > at java.awt.Component.processMouseEvent(Component.java:6288) > at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) > at java.awt.Component.processEvent(Component.java:6053) > at java.awt.Container.processEvent(Container.java:2041) > at java.awt.Component.dispatchEventImpl(Component.java:4651) > at java.awt.Container.dispatchEventImpl(Container.java:2099) > at java.awt.Component.dispatchEvent(Component.java:4481) > at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) > at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) > at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) > at java.awt.Container.dispatchEventImpl(Container.java:2085) > at java.awt.Window.dispatchEventImpl(Window.java:2478) > at java.awt.Component.dispatchEvent(Component.java:4481) > at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643) > at java.awt.EventQueue.access$000(EventQueue.java:84) > at java.awt.EventQueue$1.run(EventQueue.java:602) > at java.awt.EventQueue$1.run(EventQueue.java:600) > at java.security.AccessController.doPrivileged(Native Method) > at > java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) > at > java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) > at java.awt.EventQueue$2.run(EventQueue.java:616) > at java.awt.EventQueue$2.run(EventQueue.java:614) > at java.security.AccessController.doPrivileged(Native Method) > at > java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) > at java.awt.EventQueue.dispatchEvent(EventQueue.java:613) > at > java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) > at > java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) > at > java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) > at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) > at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) > at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) > Caused by: java.lang.NullPointerException > at > org.biojava3.alignment.FractionalIdentityScorer.align(FractionalIdentityScorer.java:112) > at > org.biojava3.alignment.FractionalIdentityScorer.getScore(FractionalIdentityScorer.java:105) > at > org.biojava3.alignment.template.CallablePairwiseSequenceScorer.call(CallablePairwiseSequenceScorer.java:53) > at > org.biojava3.alignment.template.CallablePairwiseSequenceScorer.call(CallablePairwiseSequenceScorer.java:38) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > at java.util.concurrent.FutureTask.run(FutureTask.java:138) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:662) > Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException > at pakjalphiew.AlignmentRuler.getRuler(AlignmentRuler.java:34) > at pakjalphiew.AlignmentRuler.<init>(AlignmentRuler.java:26) > at pakjalphiew.MSAInterFrame.initComponents(MSAInterFrame.java:81) > at pakjalphiew.MSAInterFrame.<init>(MSAInterFrame.java:62) > at > pakjalphiew.LaunchingFrame.newDNAFromFileActionPerformed(LaunchingFrame.java:265) > at pakjalphiew.LaunchingFrame.access$000(LaunchingFrame.java:26) > at pakjalphiew.LaunchingFrame$1.actionPerformed(LaunchingFrame.java:83) > at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) > at > javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) > at > javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) > at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) > at javax.swing.AbstractButton.doClick(AbstractButton.java:357) > at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809) > at > javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850) > at java.awt.Component.processMouseEvent(Component.java:6288) > at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) > at java.awt.Component.processEvent(Component.java:6053) > at java.awt.Container.processEvent(Container.java:2041) > at java.awt.Component.dispatchEventImpl(Component.java:4651) > at java.awt.Container.dispatchEventImpl(Container.java:2099) > at java.awt.Component.dispatchEvent(Component.java:4481) > at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) > at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) > at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) > at java.awt.Container.dispatchEventImpl(Container.java:2085) > at java.awt.Window.dispatchEventImpl(Window.java:2478) > at java.awt.Component.dispatchEvent(Component.java:4481) > at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643) > at java.awt.EventQueue.access$000(EventQueue.java:84) > at java.awt.EventQueue$1.run(EventQueue.java:602) > at java.awt.EventQueue$1.run(EventQueue.java:600) > at java.security.AccessController.doPrivileged(Native Method) > at > java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) > at > java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) > at java.awt.EventQueue$2.run(EventQueue.java:616) > at java.awt.EventQueue$2.run(EventQueue.java:614) > at java.security.AccessController.doPrivileged(Native Method) > at > java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) > at java.awt.EventQueue.dispatchEvent(EventQueue.java:613) > at > java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) > at > java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) > at > java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) > at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) > at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) > at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) > > > Muhammad Tariq Pervez > > Assistant Professor, > Department of Computer Science > Virtual University of Pakistan, Lahore > Tel: (042) 9203114-7 > URL: www.vu.edu.pk > Mobile: +923364120541, +923214602694 > > >> From: [email protected] >> To: [email protected]; [email protected] >> Date: Fri, 22 Jul 2011 08:11:34 -0400 >> Subject: Re: [Biojava-l] NullPointerException Exception While Creating DNA >> MultipleSequenceAlignment >> >> Can you include the output of the stack trace as well as a small working >> example that causes the exception? >> >> On 7/22/11 7:56 AM, "Muhammad Tariq Pervez" <[email protected]> wrote: >> >> > >> > >> > >> >Dear all, >> > >> >I faced the NullPointerException exception while creating the DNA >> >MultipleSequenceAlignment. The same goes right with protein sequence. >> >Exception is thrown at the following line >> > >> >dnaProfile = Alignments.getMultipleSequenceAlignment(tmpLst); >> > >> >tmpLst is list of DNA sequences created/declared as follows >> >List<DNASequence> tmpLst=new ArrayList<DNASequence>(); >> > >> >Note: the tmpLst is filled/populated with two or more two sequences. >> > >> >I traced the exception by going into >> >Alignments.getMultipleSequenceAlignmen method of the Alignments class and >> >found the following line of code the cause of exception. >> > >> >static <E> List<E> getListFromFutures(List<Future<E>> futures) { >> > List<E> list = new ArrayList<E>(); >> > for (Future<E> f : futures) { >> > // TODO when added to ConcurrencyTools, log completions and >> >exceptions instead of printing stack traces >> > try { >> > >> > list.add(f.get());** >> > } catch (InterruptedException e) { >> > e.printStackTrace(); >> > } catch (ExecutionException e) { >> > e.printStackTrace(); >> > } >> > } >> > return list; >> > } >> >** is the cause of exception. All is right with the protein sequences. >> >Can any body help/guide me regarding the problem. >> > >> >Best Regards. >> > >> > >> > >> >Tariq, PhD Scholar >> > >> >_______________________________________________ >> >Biojava-l mailing list - [email protected] >> >http://lists.open-bio.org/mailman/listinfo/biojava-l >> > > _______________________________________________ > Biojava-l mailing list - [email protected] > http://lists.open-bio.org/mailman/listinfo/biojava-l > _______________________________________________ Biojava-l mailing list - [email protected] http://lists.open-bio.org/mailman/listinfo/biojava-l
