bool ShellCommandService::executeService(TasCommandModel& model, TasResponse& response) { if(model.service() == serviceName() ){ TasCommand* command = getCommandParameters(model, "shellCommand"); if(command && !command->text().isEmpty()){ if (command->parameter("detached") == "true"){ detachedShellCommand(command->text(), response); } else if (command->parameter("threaded") == "true") { shellTask(command->text(), response); } else if (command->parameter("status") == "true") { TasCommand* command = getCommandParameters(model, "shellCommand"); if(command && !command->text().isEmpty()){ qint64 pid = command->text().toInt(); if (command->parameter("kill") == "true") { killTask(pid, response); } else { shellStatus(pid, response); } } } else{ shellCommand(command->text(), response); } } else{ response.setErrorMessage(NO_COMMAND_TO_EXECUTE); } return true; } else{ return false; } }
bool RegisterService::executeService(TasCommandModel& model, TasResponse& response) { if(model.service() == serviceName() ){ TasCommand* command = getCommandParameters(model, COMMAND_REGISTER); if(command){ ClientDetails client; bool ok; //this should not really ever fail (app pid used to generate in client side) quint64 clientPid = command->parameter(PLUGIN_ID).toULongLong(&ok); client.processId = clientPid; client.processName = command->parameter(PLUGIN_NAME); #ifdef Q_OS_SYMBIAN client.applicationUid = command->parameter(APP_UID); #endif client.pluginType = command->parameter(PLUGIN_TYPE); client.socket = response.requester(); registerPlugin(client); } else{ command = getCommandParameters(model, COMMAND_UNREGISTER); if(command){ unRegisterPlugin(*command); } } return true; } else{ return false; } }
//********************************************************************************************************************** string AlignCommand::getHelpString(){ try { string helpString = "\n"; helpString += "The align.seqs command reads a file containing sequences and creates an alignment file and a report file.\n"; helpString += "The align.seqs command parameters are " + getCommandParameters() + ".\n"; helpString += "The reference and fasta parameters are required. You may leave fasta blank if you have a valid fasta file.\n"; helpString += "The search parameter allows you to specify the method to find most similar reference sequence. Your options are: suffix, kmer and blast. The default is kmer.\n"; helpString += "The align parameter allows you to specify the alignment method to use. Your options are: gotoh, needleman, blast and noalign. The default is needleman.\n"; helpString += "The ksize parameter allows you to specify the kmer size for finding most similar reference to a given sequence. The default is 8.\n"; helpString += "The match parameter allows you to specify the bonus for having the same base. Default=1.0.\n"; helpString += "The mistmatch parameter allows you to specify the penalty for having different bases. Default=-1.0.\n"; helpString += "The gapopen parameter allows you to specify the penalty for opening a gap in an alignment. Default=-5.0.\n"; helpString += "The gapextend parameter allows you to specify the penalty for extending a gap in an alignment. Default=-2.0.\n"; helpString += "If the flip parameter is set to true the reverse complement of the sequence is aligned and the better alignment is reported."; helpString += " By default, mothur will align the reverse compliment of your sequences when the alignment process removes more than 50% of the bases indicating the read may be flipped. This process assembles the best possible alignment, and downstream analysis will remove any poor quality reads remaining.\n"; helpString += "The threshold is used to specify a cutoff at which an alignment is deemed 'bad' and the reverse complement may be tried. The default threshold is 0.50, meaning 50% of the bases are removed in the alignment.\n"; helpString += "The align.seqs command should be in the following format: "; helpString += "align.seqs(reference=yourTemplateFile, fasta=yourUnalignedFastaFile)\n"; helpString += "Example: align.seqs(fasta=water.fasta, template=silva.v4.fasta)\n\n"; getCommonQuestions(); return helpString; } catch(exception& e) { m->errorOut(e, "AlignCommand", "getHelpString"); exit(1); } }
//********************************************************************************************************************** string ClassifySeqsCommand::getHelpString(){ try { string helpString = ""; helpString += "The classify.seqs command reads a fasta file containing sequences and creates a .taxonomy file and a .tax.summary file.\n"; helpString += "The classify.seqs command parameters are " + getCommandParameters() + ". The reference, fasta and taxonomy parameters are required.\n"; helpString += "The search parameter allows you to specify the method to find most similar reference sequence. Your options are: suffix, kmer, blast, align and distance. The default is kmer.\n"; helpString += "The name parameter allows you add a names file with your fasta file.\n"; helpString += "The group parameter allows you add a group file so you can have the summary totals broken up by group.\n"; helpString += "The count parameter allows you add a count file so you can have the summary totals broken up by group.\n"; helpString += "The method parameter allows you to specify classification method to use. Your options are: wang, knn and zap. The default is wang.\n"; helpString += "The ksize parameter allows you to specify the kmer size for finding most similar template to candidate. The default is 8.\n"; helpString += "The processors parameter allows you to specify the number of processors to use. The default is all available.\n"; helpString += "The match parameter allows you to specify the bonus for having the same base. The default is 1.0.\n"; helpString += "The mistmatch parameter allows you to specify the penalty for having different bases. The default is -1.0.\n"; helpString += "The gapopen parameter allows you to specify the penalty for opening a gap in an alignment. The default is -2.0.\n"; helpString += "The gapextend parameter allows you to specify the penalty for extending a gap in an alignment. The default is -1.0.\n"; helpString += "The numwanted parameter allows you to specify the number of sequence matches you want with the knn method. The default is 10.\n"; helpString += "The cutoff parameter allows you to specify a bootstrap confidence threshold for your taxonomy. The default is 80.\n"; helpString += "The probs parameter shuts off the bootstrapping results for the wang and zap method. The default is true, meaning you want the bootstrapping to be shown.\n"; helpString += "The relabund parameter allows you to indicate you want the summary file values to be relative abundances rather than raw abundances. Default=F. \n"; helpString += "The iters parameter allows you to specify how many iterations to do when calculating the bootstrap confidence score for your taxonomy with the wang method. The default is 100.\n"; helpString += "The output parameter allows you to specify format of your summary file. Options are simple and detail. The default is detail.\n"; helpString += "The printlevel parameter allows you to specify taxlevel of your summary file to print to. Options are 1 to the max level in the file. The default is the max level. If you select a level greater than the level your sequences classify to, mothur will print all possible levels. \n"; helpString += "The classify.seqs command should be in the following format: \n"; helpString += "classify.seqs(reference=yourReferenceFile, fasta=yourFastaFile, taxonomy=yourTaxonomyFile) \n"; helpString += "Example classify.seqs(fasta=amazon.fasta, reference=trainset9_032012.pds.fasta, taxonomy=trainset9_032012.pds.tax)\n"; helpString += "The .taxonomy file consists of 2 columns: 1 = your sequence name, 2 = the taxonomy for your sequence. \n"; helpString += "The .tax.summary is a summary of the different taxonomies represented in your fasta file. \n"; getCommonQuestions(); return helpString; } catch(exception& e) { m->errorOut(e, "ClassifySeqsCommand", "getHelpString"); exit(1); } }