1
Vote

BioHPCBlastHandler: The Email parameter is required.Parameter \"EMAIL\" is not valid for BioHPC QBLAST.

description

Hi MBF Team,
 
I was creating a test program to submit a sequence to BioHPC QBLAST:
 
using System;
using System.Collections.Generic;
using System.Threading;
using System.Web;
using MBF;
using MBF.IO.Fasta;
using MBF.Web;
using MBF.Web.Blast;
using MBF.Web.BioHPC;
using System.Diagnostics;
 
namespace PrototypePivotGenomeAnnotationPipeline
{
class Program
{
    static void Main(string[] args)
    {
        FastaParser parser = new FastaParser();

        // A file with one sequence for debugging.
        IList<ISequence> proteinList = parser.Parse(args[0]);

        ConfigParameters configParams = new ConfigParameters();
        configParams.UseBrowserProxy = true;

        BlastParameters searchParams = new BlastParameters();
        searchParams.Add("Program", "blastp");
        searchParams.Add("Database", "nr");
        searchParams.Add("Expect", "1e-20");
        searchParams.Add("Email", "t-vinfor@microsoft.com");

        BioHPCBlastHandler blastService = new BioHPCBlastHandler();

        blastService.Configuration = configParams;

        string jobId;
        jobId = blastService.SubmitRequest(proteinList, searchParams);
        Thread.Sleep(20000);
        ServiceRequestInformation info = blastService.GetRequestStatus(jobId);

        string result = blastService.GetResult(jobId, searchParams);

        Debug.WriteLine(result);
    }
 
}
}
 
And got the following Exception:
 
System.Exception was unhandled
Message=The Email parameter is required.Parameter \"EMAIL\" is not valid for BioHPC QBLAST.
Source=MBF.WebServiceHandlers
StackTrace:
   at MBF.Web.Blast.BioHPCBlastHandler.SubmitRequest(IList`1 sequences, BlastParameters parameters) in C:\Users\t-vinfor\Desktop\mbf-60502\MBF\MBF.WebServiceHandlers\BioHPC\Blast\BioHPCBlastHandler.cs:line 438
   at PrototypePivotGenomeAnnotationPipeline.Program.Main(String[] args) in C:\Users\t-vinfor\documents\visual studio 2010\Projects\PrototypePivotGenomeAnnotationPipeline\BioHPCBLASTp\Program.cs:line 37
   at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
InnerException:
 
When I remove "searchParams.Add("Email", "t-vinfor@microsoft.com");" I get the following Exception:
 
System.Exception was unhandled
Message=The Email parameter is required.
Source=MBF.WebServiceHandlers
StackTrace:
   at MBF.Web.Blast.BioHPCBlastHandler.SubmitRequest(IList`1 sequences, BlastParameters parameters) in C:\Users\t-vinfor\Desktop\mbf-60502\MBF\MBF.WebServiceHandlers\BioHPC\Blast\BioHPCBlastHandler.cs:line 438
   at PrototypePivotGenomeAnnotationPipeline.Program.Main(String[] args) in C:\Users\t-vinfor\documents\visual studio 2010\Projects\PrototypePivotGenomeAnnotationPipeline\BioHPCBLASTp\Program.cs:line 37
   at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
InnerException:
 
Somewhat circular logic, or is the process to submit a job to BioHPCBlastHandler different than NCBIBlastHandler?
 
Thanks.
 
Vince

comments

wrote Jun 28, 2010 at 6:05 PM

Som -
 
Can you please investigate this one and let us know what you think is going on.  thx.

wrote Jun 29, 2010 at 5:40 AM

Unlike Ebi-Wu blast which takes email address as BlastParameter, BioHPC blast accepts “EmailAddress” for login information.
So when invoking BioHPC Blast, MBF expects  “ConfigParameters.EmailAddress”. “ConfigParameters.Password”.
Setting ‘BlastParameters [“Email”]’ / Empty “ConfigParameters.EmailAddress” throws a validation message.

bukowski wrote Jun 29, 2010 at 2:37 PM

Som is right - for BioHPC BLAST web service, e-mail (and the optional password) is a part of service configuration rather than a BLAST paramneter. At some point, it would probably make sense to change the other BLAST handlers in this way as well. After all, a BLAST search result does not depend on the e-mail address, so why call it a "BLAST parameter"? Service configuration seems to be a better place for it.

Robert

wrote Jun 29, 2010 at 3:05 PM

Thanks for the input!
 
As such, I recommend we declare this a v2 feature and move to the V2 milestone.

wrote Jun 29, 2010 at 5:25 PM

Moving to v2 for task level work to pull Blast param for email into upper level config stack.