[Biojava-l] NullPointerException Exception While Creating DNA MultipleSequenceAlignment

Muhammad Tariq Pervez tariq_cp at hotmail.com
Tue Jul 26 12:14:37 UTC 2011


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: HWillis at scripps.edu
To: tariq_cp at hotmail.com; biojava-l at lists.open-bio.org
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 <tariq_cp at hotmail.com>
Date:  Mon, 25 Jul 2011 06:27:02 -0400
To:  Scooter Willis <hwillis at scripps.edu>, "Biojava-l at lists.open-bio.org" <Biojava-l at lists.open-bio.org>
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 at d337d3]
all===1
scorers===org.biojava3.alignment.FractionalIdentityScorer at 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: HWillis at scripps.edu
> To: tariq_cp at hotmail.com; biojava-l at lists.open-bio.org
> 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" <tariq_cp at hotmail.com> 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  -  Biojava-l at lists.open-bio.org
> >http://lists.open-bio.org/mailman/listinfo/biojava-l
> 
 		 	   		   		 	   		  



More information about the Biojava-l mailing list