Re: Biojava-l Digest, Vol 100, Issue 4

Andreas Prlic <[email protected]>
Newsgroups gmane.comp.java.bio.general
Message-ID <[email protected]>
Hi Muhammad,

I am not sure how to convert a profile from the alignment module into a
sequence alignment that can be used in the phylo module. Perhaps Andy,
Scooter, or Mark have a suggestion on that? It would be good if there was a
convenience method for that.

Looking at your code it seems you are doing a profile.toString() when
creating the ProteinSequence. This seems wrong, since you would dump the
whole alignment representation into a single sequence object. I suspect a
better approach would be to get an aligned sequence from the profile and use
that instead, however I have never tried that myself...

Perhaps one of the over developers has a better suggestion here?

Andreas


On Tue, May 10, 2011 at 11:00 PM, Muhammad Tariq Pervez <
[email protected]> wrote:

>
>
>
> 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
>
_______________________________________________
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.