Grassroots Infrastructure
The Grassroots Infrastructure is a suite of computing tools to help users and developers use scientific data infrastructure that can easily be interconnected.
ExternalBlastTool Class Referenceabstract

A class that will run Blast using an external application such as blastn rather than calling Blast library routines directly. More...

#include <external_blast_tool.hpp>

Inheritance diagram for ExternalBlastTool:
[legend]
Collaboration diagram for ExternalBlastTool:
[legend]

Public Member Functions

 ExternalBlastTool (BlastServiceJob *job_p, const char *name_s, const char *factory_s, const BlastServiceData *data_p, const char *blast_program_name_s, const bool async_flag)
 Create a ExternalBlastTool for a given ServiceJob. More...
 
 ExternalBlastTool (BlastServiceJob *job_p, const BlastServiceData *data_p, const json_t *json_p)
 Create a ExternalBlastTool for a given ServiceJob using the configuration details from a serialised JSON fragment. More...
 
virtual ~ExternalBlastTool ()
 The ExternalBlastTool destructor. More...
 
virtual bool ParseParameters (ParameterSet *param_set_p, BlastAppParameters *app_params_p)
 Parse a ParameterSet to configure a ExternalBlastTool prior to it being ran. More...
 
virtual bool SetInputFilename (const char *const filename_s)
 Set the input filename for the BlastTool to use. More...
 
virtual bool SetUpOutputFile ()
 Set the output file parameter. More...
 
virtual char * GetResults (BlastFormatter *formatter_p)
 Get the results after the ExternalBlastTool has finished running. More...
 
virtual char * GetLog ()
 Get a copy of the log data from the run of this ExternalBlastTool's run. More...
 
- Public Member Functions inherited from BlastTool
 BlastTool (BlastServiceJob *job_p, const char *name_s, const char *factory_s, const BlastServiceData *data_p, const uint32 output_format, const char *custom_output_s)
 Create a BlastTool for a given ServiceJob. More...
 
 BlastTool (BlastServiceJob *job_p, const BlastServiceData *data_p, const json_t *json_p)
 Create a BlastTool for a given ServiceJob. More...
 
virtual ~BlastTool ()
 The BlastTool destructor,. More...
 
uint32 GetOutputFormat () const
 Get the output format code that this BlastTool will produce its results in. More...
 
virtual OperationStatus Run ()=0
 Run this BlastTool. More...
 
virtual bool PreRun ()
 Any custom functionality required before running a BlastTool. More...
 
virtual void PostRun ()
 Any custom functionality required after running a BlastTool. More...
 
virtual OperationStatus GetStatus (bool update_flag=true)
 Get the status of a BlastTool. More...
 
virtual bool AddErrorDetails ()
 
const uuid_tGetUUID () const
 Get the uuid for the ServiceJob that this BlastTool is linked with. More...
 
const char * GetName () const
 Get the name asssociated with this BlastTool. More...
 
json_t * GetAsJSON ()
 Get the JSON-based persistent description of this BlastTool. More...
 
const char * GetFactoryName () const
 Get the name of the BlastToolFactory that created this BlastTool. More...
 
bool SetCustomOutputColumns (const char *custom_columns_s)
 
void FreeBlastTool (BlastTool *tool_p)
 Free a BlastTool. More...
 
OperationStatus RunBlast (BlastTool *tool_p)
 Run Blast using the parameters that have been previously using ConvertArguments. More...
 
OperationStatus GetBlastStatus (BlastTool *tool_p)
 Get the current OperationStatus of a BlastTool. More...
 
bool IsBlastToolSynchronous (BlastTool *tool_p)
 Is the BlastTool going to run asynchronously? More...
 

Static Public Attributes

static const char *const EBT_INPUT_SUFFIX_S
 This is the string that will get appended to each input file used by the ExternalBlastTool. More...
 
static const char *const EBT_ASYNC_S
 This is the string that will get appended to each log file created when an ExternalBlastTool is ran. More...
 

Protected Member Functions

virtual ArgsProcessorGetArgsProcessor ()=0
 Get the ArgsProcessor that this BlastTool will use to parse the input ParameterSet prior to running its job. More...
 
virtual bool AddBlastArg (const char *const arg_s, const bool hyphen_flag)
 Add the argument to the command line arguments that this BlastTool will run with. More...
 
virtual bool AddBlastArgsPair (const char *key_s, const char *value_s)
 Add a pair of arguments to the command line arguments that this BlastTool will run with. More...
 
char * GetJobFilename (const char *const prefix_s, const char *const suffix_s)
 Create the filename to use for a ServiceJob. More...
 
virtual bool AddToJSON (json_t *root_p)
 This method is used to serialise this ExternalBlastTool so that it can be recreated from another calling process when required. More...
 

Protected Attributes

char * ebt_results_filename_s
 The filename which the Blast results will be written to if the job runs successfully. More...
 
char * ebt_working_directory_s
 The working directory where all of the input, output and log files will be created. More...
 
char * ebt_blast_s
 The name of the blast command line executable to use. More...
 
bool ebt_async_flag
 If this is true, then the ExternalBlastTool will run asynchronously. More...
 
- Protected Attributes inherited from BlastTool
uint32 bt_output_format
 The output format code to use. More...
 
char * bt_custom_output_columns_s
 Any custom columns for tabular output formats. More...
 

Detailed Description

A class that will run Blast using an external application such as blastn rather than calling Blast library routines directly.

Constructor & Destructor Documentation

◆ ExternalBlastTool() [1/2]

ExternalBlastTool ( BlastServiceJob job_p,
const char *  name_s,
const char *  factory_s,
const BlastServiceData data_p,
const char *  blast_program_name_s,
const bool  async_flag 
)

Create a ExternalBlastTool for a given ServiceJob.

Parameters
job_pThe ServiceJob to associate with this ExternalBlastTool.
name_sThe name to give to this ExternalBlastTool.
factory_sThe name of the BlastToolFactory that is creating this ExternalBlastTool.
data_pThe BlastServiceData for the Service that will run this ExternalBlastTool.
blast_program_name_sThe name of blast command line executable that this ExternalBlastTool will call to run its blast job.

◆ ExternalBlastTool() [2/2]

ExternalBlastTool ( BlastServiceJob job_p,
const BlastServiceData data_p,
const json_t *  json_p 
)

Create a ExternalBlastTool for a given ServiceJob using the configuration details from a serialised JSON fragment.

Parameters
job_pThe ServiceJob to associate with this ExternalBlastTool.
data_pThe BlastServiceData for the Service that will run this ExternalBlastTool.
json_pThe JSON fragment to fill in the serialised values such as job name, etc.

◆ ~ExternalBlastTool()

virtual ~ExternalBlastTool ( )
virtual

The ExternalBlastTool destructor.

Member Function Documentation

◆ ParseParameters()

virtual bool ParseParameters ( ParameterSet param_set_p,
BlastAppParameters app_params_p 
)
virtual

Parse a ParameterSet to configure a ExternalBlastTool prior to it being ran.

Parameters
param_set_pThe ParameterSet to parse.
app_params_pThe BlastAppParameters to use process the values from the given ParameterSet.
Returns
true if the BlastTool was configured successfully and is ready to be ran, false otherwise.
See also
BlastTool::ParseParameters

Implements BlastTool.

Reimplemented in SystemBlastTool.

◆ SetInputFilename()

virtual bool SetInputFilename ( const char *const  filename_s)
virtual

Set the input filename for the BlastTool to use.

Parameters
filename_sThe filename.
Returns
true if the input filename was set successfully, false otherwise.

Implements BlastTool.

◆ SetUpOutputFile()

virtual bool SetUpOutputFile ( )
virtual

Set the output file parameter.

Returns
true if the input filename was set successfully, false otherwise.

Implements BlastTool.

Reimplemented in DrmaaBlastTool.

◆ GetResults()

virtual char* GetResults ( BlastFormatter formatter_p)
virtual

Get the results after the ExternalBlastTool has finished running.

Parameters
formatter_pThe BlastFormatter to convert the results into a different format. If this is 0, then the results will be returned without any conversion.
Returns
The results as a c-style string or 0 upon error.

Implements BlastTool.

Reimplemented in AsyncSystemBlastTool, and ThreadedBlastTool.

◆ GetLog()

virtual char* GetLog ( )
virtual

Get a copy of the log data from the run of this ExternalBlastTool's run.

Returns
The log data or 0 upon error. If a valid value is returned, this will need to be freed by FreeCopiedString to avoid a memory leak.
See also
FreeCopiedString

Implements BlastTool.

◆ GetArgsProcessor()

virtual ArgsProcessor* GetArgsProcessor ( )
protectedpure virtual

Get the ArgsProcessor that this BlastTool will use to parse the input ParameterSet prior to running its job.

Returns
The ArgsProcessor for this BlastTool or 0 upon error.

Implemented in DrmaaBlastTool, and SystemBlastTool.

◆ AddBlastArg()

virtual bool AddBlastArg ( const char *const  arg_s,
const bool  hyphen_flag 
)
protectedvirtual

Add the argument to the command line arguments that this BlastTool will run with.

Parameters
arg_sThe argument to add.
hyphen_flagIf this is true then a hyphen will be prefixed the given value e.g. turning "foo" into "-foo" before being added, if this is false then the argument is added unaltered.
Returns
true if the argument was added successfully, false otherwise.

Reimplemented in DrmaaBlastTool.

◆ AddBlastArgsPair()

virtual bool AddBlastArgsPair ( const char *  key_s,
const char *  value_s 
)
protectedvirtual

Add a pair of arguments to the command line arguments that this BlastTool will run with.

Parameters
key_sThe first argument to add.
value_sThe second argument to add.
Returns
true if the arguments were added successfully, false otherwise.

◆ GetJobFilename()

char* GetJobFilename ( const char *const  prefix_s,
const char *const  suffix_s 
)
protected

Create the filename to use for a ServiceJob.

Parameters
prefix_sThe prefix to use for the filename.
suffix_sThe suffix to use from a set of constants.
Returns
The filename or 0 upon error.
See also
EBT_INPUT_SUFFIX_S
EBT_LOG_SUFFIX_S
BS_OUTPUT_SUFFIX_S

◆ AddToJSON()

virtual bool AddToJSON ( json_t *  root_p)
protectedvirtual

This method is used to serialise this ExternalBlastTool so that it can be recreated from another calling process when required.

This is used to store the ExternalBlastTool in the JobsManager.

Parameters
root_pThe json object to add the serialisation of this ExternalBlastTool to.
Returns
true if the ExternalBlastTool was serialised successfully, false otherwise.

Reimplemented from BlastTool.

Reimplemented in DrmaaBlastTool, and AsyncSystemBlastTool.

Field Documentation

◆ EBT_INPUT_SUFFIX_S

const char* const EBT_INPUT_SUFFIX_S
static

This is the string that will get appended to each input file used by the ExternalBlastTool.

◆ EBT_ASYNC_S

const char* const EBT_ASYNC_S
static

This is the string that will get appended to each log file created when an ExternalBlastTool is ran.

This is the string identifier to use to set whether the ExternalBlastTool will run synchronously or asynchronously.

◆ ebt_results_filename_s

char* ebt_results_filename_s
protected

The filename which the Blast results will be written to if the job runs successfully.

◆ ebt_working_directory_s

char* ebt_working_directory_s
protected

The working directory where all of the input, output and log files will be created.

◆ ebt_blast_s

char* ebt_blast_s
protected

The name of the blast command line executable to use.

◆ ebt_async_flag

bool ebt_async_flag
protected

If this is true, then the ExternalBlastTool will run asynchronously.

If it is false, then the ExternalBlastTool will run synchronously.


The documentation for this class was generated from the following file: