[Biojava-l] QBlast in BioJava3

Sylvain Foisy Ph. D. sylvain.foisy at diploide.net
Wed Dec 29 21:15:57 UTC 2010


Hi Matthew,

Let me dive in this code again and I'll find the bug. Any rush on this? I am planning to do this early next week/year ;-) You are actually the first reported user of this module beside me! I mostly tested it with nucleotide sequences on the old architecture. Not much work done wince moving to the new code base...

Back to you ASAP

Best regards

Sylvain

On 2010-12-29, at 4:01 PM, Matthew Busse wrote:

> Hello Sylvain, et al., 
> 
> I think I may have found another similar issue. 
> 
> Here's my program:
> 
> package com.multiBLAST.model;
> 
> import java.io.BufferedReader;
> import java.io.InputStream;
> import java.io.InputStreamReader;
> import java.util.Set;
> 
> import org.biojava3.ws.alignment.qblast.NCBIQBlastAlignmentProperties;
> import org.biojava3.ws.alignment.qblast.NCBIQBlastOutputFormat;
> import org.biojava3.ws.alignment.qblast.NCBIQBlastOutputProperties;
> import org.biojava3.ws.alignment.qblast.NCBIQBlastService;
> 
> public class BLASTExample {
>     
>     public static void main(String [] args) {
>         
>         NCBIQBlastService blaster;
>         NCBIQBlastOutputProperties outputProperties;
>         InputStream is;
>         String request = "";
>         final String TESTSEQUENCE = "MAQGTLIRVTPEQPTHAVCV";
>         String rid = new String();
>         
>         try {
>             blaster = new NCBIQBlastService();
>             NCBIQBlastAlignmentProperties alignmentProperties = new NCBIQBlastAlignmentProperties();
>             alignmentProperties.setBlastProgram("blastp");
>             alignmentProperties.setBlastDatabase("nr");
>             
>             request = blaster.sendAlignmentRequest(TESTSEQUENCE, alignmentProperties);
>             
>             System.out.println("Trying to get BLAST results for RID " + rid);
>             
>             boolean wasBlasted = false;
>             
>             while (!wasBlasted) {
>                 wasBlasted = blaster.isReady(rid, System.currentTimeMillis());
>             }
>             
>             outputProperties = new NCBIQBlastOutputProperties();
>             outputProperties.setOutputFormat(NCBIQBlastOutputFormat.TEXT);
>             outputProperties.setAlignmentOutputFormat(NCBIQBlastOutputFormat.PAIRWISE);
>             outputProperties.setDescriptionNumber(10);
>             outputProperties.setAlignmentNumber(10);
>             
>             //to show that output options were followed
>             
>             Set<String> test = outputProperties.getOutputOptions();
>             
>             for(String str : test) {
>                 System.out.println(str);
>             }
>             
>             is = blaster.getAlignmentResults(request, outputProperties);
>             
>             BufferedReader br = new BufferedReader(new InputStreamReader(is));
>             
>             String line = null;
>             
>             while ((line = br.readLine()) != null)    {
>                 System.out.println(line);
>             }
>             
>         } catch (Exception ex) {
>             ex.printStackTrace();
>         } 
>     }
> }
> 
> When I run it, it throws an exception:
> java.lang.Exception: The key named PROGRAM is not set in this RemoteQBlastOutputProperties object
>     at org.biojava3.ws.alignment.qblast.NCBIQBlastAlignmentProperties.getAlignmentOption(NCBIQBlastAlignmentProperties.java:173)
>     at org.biojava3.ws.alignment.qblast.NCBIQBlastService.sendActualAlignementRequest(NCBIQBlastService.java:132)
>     at org.biojava3.ws.alignment.qblast.NCBIQBlastService.sendAlignmentRequest(NCBIQBlastService.java:210)
>     at com.multiBLAST.model.BLASTExample.main(BLASTExample.java:30)
> 
> Because RemoteQBlastOutputProperties is the terminology used in the pre-BJ3 APIs, I'm guessing this is another conversion problem? Or am I missing something else?
> 
> Many thanks for all your help.
> 
> Best,
> Matthew
> 
> On Wed, Dec 29, 2010 at 9:58 AM, Andreas Prlic <andreas at sdsc.edu> wrote:
> Thanks Sylvain,
> 
> Matthew, a workaround until we have a fix for this is to add the
> http://biojava.org/download/maven/org/biojava/core/1.8/core-1.8.jar
> from the biojava-legacy project to your classpath. This should allow
> your example to work...
> 
> Andreas
> 
> 
> On Wed, Dec 29, 2010 at 9:22 AM, Sylvain Foisy Ph. D.
> <sylvain.foisy at diploide.net> wrote:
> > Hi,
> >
> > I am the author/main culprit for the QBlast code in BJ. I have to fix the problem that you found ASAP to remove the dependency on the old BJ architecture about representing Sequence objects. I'll work on this early next week, as soon as I'll have finish with my grading... I am more of a teacher than a coder nowadays.
> >
> > Best regards
> >
> > Sylvain
> >
> >
> >
> > _______________________________________________
> > 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