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

Reply via email to