File: primerdesigncommand.h

package info (click to toggle)
mothur 1.48.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 13,684 kB
  • sloc: cpp: 161,854; makefile: 122; sh: 31
file content (59 lines) | stat: -rwxr-xr-x 2,021 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//
//  primerdesigncommand.h
//  Mothur
//
//  Created by Sarah Westcott on 1/18/13.
//  Copyright (c) 2013 Schloss Lab. All rights reserved.
//

#ifndef Mothur_primerdesigncommand_h
#define Mothur_primerdesigncommand_h

#include "command.hpp"
#include "listvector.hpp"
#include "inputdata.h"
#include "sequence.hpp"
#include "alignment.hpp"
#include "needlemanoverlap.hpp"

/**************************************************************************************************/

class PrimerDesignCommand : public Command {
public:
    PrimerDesignCommand(string);
    ~PrimerDesignCommand(){}
    
    vector<string> setParameters();
    string getCommandName()			{ return "primer.design";		}
    string getCommandCategory()		{ return "OTU-Based Approaches";		} 
    
    string getOutputPattern(string);
	string getHelpString();	
    string getCitation() { return "http://www.mothur.org/wiki/Primer.design"; }
    string getDescription()		{ return "identify sequence fragments that are specific to particular OTUs"; }
    
    int execute(); 
    void help() { m->mothurOut(getHelpString()); }	
    
private:
    
    bool abort, allLines, large;
    int cutoff, pdiffs, length, processors, alignedLength;
    string  listfile, otulabel, namefile, countfile, fastafile, label;
    double minTM, maxTM;
    vector<string> outputNames;

    char getBase(vector<unsigned int> counts, int size);
    ListVector* getListVector();
    set<string> getPrimer(Sequence);
    int findMeltingPoint(string primer, double&, double&);
    set<int> createProcesses(string, vector<double>&, vector<double>&, set<string>&, vector<Sequence>&, int, vector<string>&);
    map<string, int> getSequenceBinAssignments(ListVector* list, map<string, int>& nameMap);
    vector<Sequence> createProcessesConSeqs(map<string, int>&, map<string, int>&, vector<string>&);
    int findIndex(string binLabel, vector<string> binLabels);
    
};

/**************************************************************************************************/

#endif