[Biojava-l] Biojava-l Digest, Vol 100, Issue 4

Muhammad Tariq Pervez tariq_cp at hotmail.com
Wed May 11 06:00:24 UTC 2011




Dear Andreas, now I took code from BioJavaCookbook as it is and tried again to create the tree but in vain. Problem is not with http://biojava.org/wiki/BioJava:CookBook3:MSA and http://biojava.org/wiki/BioJava:CookBook:Core:FastaReadWrite. Files are read and MSA is performed successfully but problem is faced when the code to build the tree is reached.

Problem is how to get MultipleSequenceAlignment object to be used in the phylo module from the Profile object used in the alignment module.






Kindly help me.

The following exception is thrown and code is given below of this exception.

Best Regards.


Exception in thread "AWT-EventQueue-0" 
org.biojava3.core.exceptions.CompoundNotFoundError: Compound not found 
for: Cannot find compound for: 

        at org.biojava3.core.sequence.storage.ArrayListSequenceReader.setContents(ArrayListSequenceReader.java:196)
        at org.biojava3.core.sequence.template.AbstractSequence.<init>(AbstractSequence.java:88)




        at org.biojava3.core.sequence.ProteinSequence.<init>(ProteinSequence.java:52)
        at biojavademo.MSA.multipleSequenceAlignment(MSA.java:41)
        at biojavademo.MSAJFrame.jButton2ActionPerformed(MSAJFrame.java:160)




        at biojavademo.MSAJFrame.access$100(MSAJFrame.java:27)
        at biojavademo.MSAJFrame$2.actionPerformed(MSAJFrame.java:72)
        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.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6038)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)




        at java.awt.Component.processEvent(Component.java:5803)
        at java.awt.Container.processEvent(Container.java:2058)
        at java.awt.Component.dispatchEventImpl(Component.java:4410)
        at java.awt.Container.dispatchEventImpl(Container.java:2116)




        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)




        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
        at java.awt.Container.dispatchEventImpl(Container.java:2102)
        at java.awt.Window.dispatchEventImpl(Window.java:2429)
        at java.awt.Component.dispatchEvent(Component.java:4240)




        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)




        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)




        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)


package biojavademo;


import java.net.URL;
import java.util.ArrayList;
import java.util.List;


import org.biojava3.alignment.template.Profile;
import org.biojava3.alignment.Alignments;
import org.biojava3.core.sequence.MultipleSequenceAlignment;
import org.biojava3.core.sequence.ProteinSequence;



import org.biojava3.core.sequence.compound.AminoAcidCompound;
import org.biojava3.core.sequence.io.FastaReaderHelper;
import org.biojava3.core.util.ConcurrencyTools;
import org.biojava3.phylo.ProgessListenerStub;



import org.biojava3.phylo.TreeConstructionAlgorithm;
import org.biojava3.phylo.TreeConstructor;
import org.biojava3.phylo.TreeType;

public class MSA {


    MSA(){
              multipleSequenceAlignment = new MultipleSequenceAlignment <ProteinSequence, AminoAcidCompound>();



}
    public void multipleSequenceAlignment() throws Exception {
    String[] ids = new String[] {"Q21691", "Q21495", "O48771"};
        try {
            multipleSequenceAlignment(ids);



        } catch (Exception e){
            e.printStackTrace();
        }
    }

    private void multipleSequenceAlignment(String[] ids) throws Exception {
        List<ProteinSequence> lst = new ArrayList<ProteinSequence>();



        for (String id : ids) {
            lst.add(getSequenceForId(id));
        }
        Profile<ProteinSequence, AminoAcidCompound> profile = Alignments.getMultipleSequenceAlignment(lst);
        System.out.printf("Clustalw:%n%s%n", profile);



        
         ProteinSequence seq=new  ProteinSequence(profile.toString());
         multipleSequenceAlignment.addAlignedSequence(seq);
        
 TreeConstructor<ProteinSequence, AminoAcidCompound> 
treeConstructor = new TreeConstructor<ProteinSequence, 
AminoAcidCompound>(multipleSequenceAlignment,  TreeType.NJ, 
TreeConstructionAlgorithm.PID, new ProgessListenerStub());



         treeConstructor.process();
         String newick = treeConstructor.getNewickString(true, true);
         ConcurrencyTools.shutdown();
    }

    private static ProteinSequence getSequenceForId(String uniProtId) throws Exception {



        URL uniprotFasta = new URL(String.format("http://www.uniprot.org/uniprot/%s.fasta", uniProtId));
        ProteinSequence seq = FastaReaderHelper.readFastaProteinSequence(uniprotFasta.openStream()).get(uniProtId);



        System.out.printf("id : %s %s%n%s%n", uniProtId, seq, seq.getOriginalHeader());
        return seq;
    }

Muhammad Tariq Pervez

Ph.D (Scholar) - Bioinformatics,
University of Veterinary and Animal Science, Lahore, Pakistan




> From: biojava-l-request at lists.open-bio.org
> Subject: Biojava-l Digest, Vol 100, Issue 4
> To: biojava-l at lists.open-bio.org
> Date: Tue, 10 May 2011 12:00:04 -0400
> 
> Send Biojava-l mailing list submissions to
> 	biojava-l at lists.open-bio.org
> 
> To subscribe or unsubscribe via the World Wide Web, visit
> 	http://lists.open-bio.org/mailman/listinfo/biojava-l
> or, via email, send a message with subject or body 'help' to
> 	biojava-l-request at lists.open-bio.org
> 
> You can reach the person managing the list at
> 	biojava-l-owner at lists.open-bio.org
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Biojava-l digest..."
> 
> 
> Today's Topics:
> 
>    1. Re: An exception is being thrown while using the code related
>       to phylogeny from BioJava cookbook (Andreas Prlic)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Mon, 9 May 2011 17:13:01 -0700
> From: Andreas Prlic <andreas at sdsc.edu>
> Subject: Re: [Biojava-l] An exception is being thrown while using the
> 	code related to phylogeny from BioJava cookbook
> To: Muhammad Tariq Pervez <tariq_cp at hotmail.com>
> Cc: biojava-l at lists.open-bio.org
> Message-ID: <BANLkTi=_JXsoDOyBEtaPYPUsg_Gry+Vadw at mail.gmail.com>
> Content-Type: text/plain; charset=ISO-8859-1
> 
> Hi Muhammad,
> 
> did you see the Cookbook pages?
> 
> Best to start with a simple example like
> http://biojava.org/wiki/BioJava:CookBook3:MSA
> 
> I suspect there is something going wrong with your input file.  Try to get
> the file parsing right first. E.g.:
> http://biojava.org/wiki/BioJava:CookBook:Core:FastaReadWrite
> 
> Andreas
> 
> 
> On Sun, May 8, 2011 at 10:20 PM, Muhammad Tariq Pervez <tariq_cp at hotmail.com
> > wrote:
> 
> >  Dear concerns,
> > I want to develop an application for phylogenetic analysis. To get started,
> > I took some lines of code from BioJava cookbook, modified them as per my
> > requirement and have been trying to get the results for a few days but in
> > vain. The code is as follows.
> >
> >
> > package biojavademo;
> >
> >
> > import java.io.File;
> > import java.util.ArrayList;
> > import java.util.LinkedHashMap;
> > import java.util.List;
> > import java.util.Map.Entry;
> >
> > import org.biojava3.alignment.template.Profile;
> > import org.biojava3.alignment.Alignments;
> > import org.biojava3.alignment.template.AlignedSequence;
> > import org.biojava3.core.sequence.MultipleSequenceAlignment;
> > import org.biojava3.core.sequence.ProteinSequence;
> > import org.biojava3.core.sequence.compound.AminoAcidCompound;
> > import org.biojava3.core.sequence.io.FastaReaderHelper;
> > import org.biojava3.core.sequence.template.Compound;
> > import org.biojava3.core.sequence.template.Sequence;
> > import org.biojava3.core.util.ConcurrencyTools;
> > import org.biojava3.phylo.ProgessListenerStub;
> > import org.biojava3.phylo.TreeConstructionAlgorithm;
> > import org.biojava3.phylo.TreeConstructor;
> > import org.biojava3.phylo.TreeType;
> >
> > public class MSA {
> >
> >
> >     MSA(){
> >               multipleSequenceAlignment = new MultipleSequenceAlignment
> > <ProteinSequence, AminoAcidCompound>();
> > }
> >     public void multipleSequenceAlignment(List<String> ids) throws
> > Exception {
> >         List<ProteinSequence> lst = new ArrayList<ProteinSequence>();
> >
> >         for (String id : ids) {
> >             lst.add(getSequenceForId(id));
> >
> >         }
> >
> >         profile = Alignments.getMultipleSequenceAlignment(lst);
> >         System.out.println("Compound == "+ profile.getCompoundSet());
> >         seq=new
> > ProteinSequence(profile.toString(),profile.getCompoundSet());
> >         multipleSequenceAlignment.addAlignedSequence(seq);
> >         TreeConstructor<ProteinSequence, AminoAcidCompound> treeConstructor
> > = new TreeConstructor<ProteinSequence,
> > AminoAcidCompound>(multipleSequenceAlignment,  TreeType.NJ,
> > TreeConstructionAlgorithm.PID, new ProgessListenerStub());
> >            treeConstructor.process();
> >            String newick = treeConstructor.getNewickString(true, true);
> >         System.out.println("Clustalw:\n Multisequence Alignment\n"+
> > profile.toString(Profile.StringFormat.CLUSTALW));
> >        System.out.println("Tree === "+ newick);
> >               ConcurrencyTools.shutdown();
> >     }
> >
> >       private static ProteinSequence getSequenceForId(String fileName)
> > throws Exception {
> >
> >         LinkedHashMap<String, ProteinSequence> a =
> > FastaReaderHelper.readFastaProteinSequence(new File(fileName));
> >
> >                 String seqStr;
> >                 ProteinSequence seq=null;
> >         for (  Entry<String, ProteinSequence> entry : a.entrySet() ) {
> >                         seqStr=entry.getValue().getSequenceAsString();
> >                         seq=new ProteinSequence(seqStr);//entry.getValue();
> >
> >         }
> >         return seq;
> >     }
> >     public Profile<ProteinSequence, AminoAcidCompound> getMSAProfile(){
> >         return profile;
> >     }
> >
> > Profile<ProteinSequence, AminoAcidCompound> profile;
> > MultipleSequenceAlignment<ProteinSequence, AminoAcidCompound>
> > multipleSequenceAlignment;
> >  ProteinSequence seq=null;
> > }
> >
> > When I run this code the following exception is thrown
> >
> > Exception in thread "AWT-EventQueue-0"
> > org.biojava3.core.exceptions.CompoundNotFoundError: Compound not found for:
> > Cannot find compound for:
> >         at
> > org.biojava3.core.sequence.storage.ArrayListSequenceReader.setContents(ArrayListSequenceReader.java:196)
> >         at
> > org.biojava3.core.sequence.template.AbstractSequence.<init>(AbstractSequence.java:88)
> >         at
> > org.biojava3.core.sequence.ProteinSequence.<init>(ProteinSequence.java:52)
> >         at biojavademo.MSA.multipleSequenceAlignment(MSA.java:41)
> >         at
> > biojavademo.MSAJFrame.jButton2ActionPerformed(MSAJFrame.java:160)
> >         at biojavademo.MSAJFrame.access$100(MSAJFrame.java:27)
> >         at biojavademo.MSAJFrame$2.actionPerformed(MSAJFrame.java:72)
> >         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.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
> >         at java.awt.Component.processMouseEvent(Component.java:6038)
> >         at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
> >         at java.awt.Component.processEvent(Component.java:5803)
> >         at java.awt.Container.processEvent(Container.java:2058)
> >         at java.awt.Component.dispatchEventImpl(Component.java:4410)
> >         at java.awt.Container.dispatchEventImpl(Container.java:2116)
> >         at java.awt.Component.dispatchEvent(Component.java:4240)
> >         at
> > java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
> >         at
> > java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
> >         at
> > java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
> >         at java.awt.Container.dispatchEventImpl(Container.java:2102)
> >         at java.awt.Window.dispatchEventImpl(Window.java:2429)
> >         at java.awt.Component.dispatchEvent(Component.java:4240)
> >         at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
> >         at
> > java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
> >         at
> > java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
> >         at
> > java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
> >         at
> > java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
> >         at
> > java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
> >         at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
> >
> > Actually I don't know how to construct the multiple sequence alignment
> > object which is given as a parameter while constructing the
> > 'TreeConstructor' object.
> >
> > Kindly guide/help me to resolve this issue.
> >
> >
> > Muhammad Tariq Pervez
> > Ph.D (Scholar) - Bioinformatics,
> > University of Veterinary and Animal Science, Lahore, Pakistan
> >
> >
> >
> >
> >
> 
> 
> ------------------------------
> 
> _______________________________________________
> Biojava-l mailing list  -  Biojava-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/biojava-l
> 
> 
> End of Biojava-l Digest, Vol 100, Issue 4
> *****************************************
 		 	   		  



More information about the Biojava-l mailing list