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: [email protected]
> Subject: Biojava-l Digest, Vol 100, Issue 4
> To: [email protected]
> Date: Tue, 10 May 2011 12:00:04 -0400
> 
> Send Biojava-l mailing list submissions to
>       [email protected]
> 
> 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
>       [email protected]
> 
> You can reach the person managing the list at
>       [email protected]
> 
> 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 <[email protected]>
> Subject: Re: [Biojava-l] An exception is being thrown while using the
>       code related to phylogeny from BioJava cookbook
> To: Muhammad Tariq Pervez <[email protected]>
> Cc: [email protected]
> Message-ID: <[email protected]>
> 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 <[email protected]
> > 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  -  [email protected]
> http://lists.open-bio.org/mailman/listinfo/biojava-l
> 
> 
> End of Biojava-l Digest, Vol 100, Issue 4
> *****************************************
                                          
_______________________________________________
Biojava-l mailing list  -  [email protected]
http://lists.open-bio.org/mailman/listinfo/biojava-l

Reply via email to