Re: NullPointerException Exception While Creating DNA MultipleSequenceAlignment

Andreas Prlic <[email protected]>
Newsgroups gmane.comp.java.bio.general
Message-ID <CALthepxRWuQtEfUG4DjBvYXL2-6M6QX+VASmAAahCAsvWQgc0w@mail.gmail.com>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.