本文整理汇总了C++中ParameterList::Add方法的典型用法代码示例。如果您正苦于以下问题:C++ ParameterList::Add方法的具体用法?C++ ParameterList::Add怎么用?C++ ParameterList::Add使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParameterList
的用法示例。
在下文中一共展示了ParameterList::Add方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: execute
// Dump the specified Bam Index file.
int DumpIndex::execute(int argc, char **argv)
{
// Extract command line arguments.
static const int UNSPECIFIED_INT = -1;
String indexFile = "";
int refID = UNSPECIFIED_INT;
bool summary = false;
bool params = false;
ParameterList inputParameters;
BEGIN_LONG_PARAMETERS(longParameterList)
LONG_STRINGPARAMETER("bamIndex", &indexFile)
LONG_INTPARAMETER("refID", &refID)
LONG_PARAMETER("summary", &summary)
LONG_PARAMETER("params", ¶ms)
END_LONG_PARAMETERS();
inputParameters.Add(new LongParameters ("Input Parameters",
longParameterList));
inputParameters.Read(argc-1, &(argv[1]));
// Check to see if the index file was specified, if not, report an error.
if(indexFile == "")
{
usage();
inputParameters.Status();
// mandatory argument was not specified.
std::cerr << "Missing mandatory argument: --bamIndex" << std::endl;
return(-1);
}
if(params)
{
inputParameters.Status();
}
// Read the index.
BamIndex bamIndex;
SamStatus status;
status = bamIndex.readIndex(indexFile);
if(status != SamStatus::SUCCESS)
{
// Failed to read the index, return.
fprintf(stderr, "%s\n", status.getStatusMessage());
return(status.getStatus());
}
// Print the index file.
bamIndex.printIndex(refID, summary);
return(status.getStatus());
}
示例2: if
int Bam2FastQ::execute(int argc, char **argv)
{
// Extract command line arguments.
String inFile = "";
bool readName = false;
String refFile = "";
String firstOut = "";
String secondOut = "";
String unpairedOut = "";
bool interleave = false;
bool noeof = false;
bool gzip = false;
bool params = false;
myOutBase = "";
myNumMateFailures = 0;
myNumPairs = 0;
myNumUnpaired = 0;
mySplitRG = false;
myQField = "";
myNumQualTagErrors = 0;
myReverseComp = true;
myRNPlus = false;
myFirstRNExt = DEFAULT_FIRST_EXT;
mySecondRNExt = DEFAULT_SECOND_EXT;
myCompression = InputFile::DEFAULT;
ParameterList inputParameters;
BEGIN_LONG_PARAMETERS(longParameterList)
LONG_PARAMETER_GROUP("Required Parameters")
LONG_STRINGPARAMETER("in", &inFile)
LONG_PARAMETER_GROUP("Optional Parameters")
LONG_PARAMETER("readName", &readName)
LONG_PARAMETER("splitRG", &mySplitRG)
LONG_STRINGPARAMETER("qualField", &myQField)
LONG_PARAMETER("merge", &interleave)
LONG_STRINGPARAMETER("refFile", &refFile)
LONG_STRINGPARAMETER("firstRNExt", &myFirstRNExt)
LONG_STRINGPARAMETER("secondRNExt", &mySecondRNExt)
LONG_PARAMETER("rnPlus", &myRNPlus)
LONG_PARAMETER("noReverseComp", &myReverseComp)
LONG_PARAMETER("gzip", &gzip)
LONG_PARAMETER("noeof", &noeof)
LONG_PARAMETER("params", ¶ms)
LONG_PARAMETER_GROUP("Optional OutputFile Names")
LONG_STRINGPARAMETER("outBase", &myOutBase)
LONG_STRINGPARAMETER("firstOut", &firstOut)
LONG_STRINGPARAMETER("secondOut", &secondOut)
LONG_STRINGPARAMETER("unpairedOut", &unpairedOut)
LONG_PHONEHOME(VERSION)
END_LONG_PARAMETERS();
inputParameters.Add(new LongParameters ("Input Parameters",
longParameterList));
// parameters start at index 2 rather than 1.
inputParameters.Read(argc, argv, 2);
// If no eof block is required for a bgzf file, set the bgzf file type to
// not look for it.
if(noeof)
{
// Set that the eof block is not required.
BgzfFileType::setRequireEofBlock(false);
}
if(gzip)
{
myCompression = InputFile::GZIP;
}
// Check to see if the in file was specified, if not, report an error.
if(inFile == "")
{
usage();
inputParameters.Status();
// In file was not specified but it is mandatory.
std::cerr << "--in is a mandatory argument, "
<< "but was not specified" << std::endl;
return(-1);
}
// Cannot specify both interleaved & secondOut since secondOut would be N/A.
if(interleave && !secondOut.IsEmpty())
{
usage();
inputParameters.Status();
std::cerr << "ERROR: Cannot specify --merge & --secondOut.\n";
return(-1);
}
// Cannot specify both interleaved & secondOut since secondOut would be N/A.
if(interleave && !secondOut.IsEmpty())
{
usage();
inputParameters.Status();
std::cerr << "ERROR: Cannot specify --merge & --secondOut.\n";
return(-1);
}
//.........这里部分代码省略.........
示例3: execute
int ClipOverlap::execute(int argc, char **argv)
{
// Extract command line arguments.
String inFile = "";
String outFile = "";
String storeOrig = "";
bool readName = false;
bool noRNValidate = false;
bool stats = false;
int poolSize = DEFAULT_POOL_SIZE;
bool unmapped = false;
bool noeof = false;
bool params = false;
String excludeFlags = "0xF0C";
// TODO, cleanup legacy parameters
ParameterList inputParameters;
BEGIN_LONG_PARAMETERS(longParameterList)
LONG_PARAMETER_GROUP("Required Parameters")
LONG_STRINGPARAMETER("in", &inFile)
LONG_STRINGPARAMETER("out", &outFile)
LONG_PARAMETER_GROUP("Optional Parameters")
LONG_STRINGPARAMETER("storeOrig", &storeOrig)
LONG_PARAMETER("readName", &readName)
LONG_PARAMETER ("noRNValidate", &noRNValidate)
LONG_PARAMETER ("stats", &stats)
LONG_PARAMETER ("overlapsOnly", &myOverlapsOnly)
LONG_STRINGPARAMETER ("excludeFlags", &excludeFlags)
LONG_PARAMETER("unmapped", &unmapped)
LONG_PARAMETER("noeof", &noeof)
LONG_PARAMETER("params", ¶ms)
LONG_PARAMETER_GROUP("Coordinate Processing Optional Parameters")
LONG_INTPARAMETER("poolSize", &poolSize)
LONG_PARAMETER("poolSkipOverlap", &myPoolSkipOverlap)
LONG_PHONEHOME(VERSION)
BEGIN_LEGACY_PARAMETERS()
LONG_PARAMETER ("clipsOnly", &myOverlapsOnly)
LONG_PARAMETER("poolSkipClip", &myPoolSkipOverlap)
END_LONG_PARAMETERS();
inputParameters.Add(new LongParameters ("Input Parameters",
longParameterList));
// parameters start at index 2 rather than 1.
inputParameters.Read(argc, argv, 2);
// If no eof block is required for a bgzf file, set the bgzf file type to
// not look for it.
if(noeof)
{
// Set that the eof block is not required.
BgzfFileType::setRequireEofBlock(false);
}
// Check to see if the in file was specified, if not, report an error.
if(inFile == "")
{
printUsage(std::cerr);
inputParameters.Status();
// In file was not specified but it is mandatory.
std::cerr << "--in is a mandatory argument, "
<< "but was not specified" << std::endl;
return(-1);
}
// Check to see if the out file was specified, if not, report an error.
if(outFile == "")
{
printUsage(std::cerr);
inputParameters.Status();
// Out file was not specified but it is mandatory.
std::cerr << "--out is a mandatory argument, "
<< "but was not specified" << std::endl;
return(-1);
}
if((storeOrig.Length() != 0) && (storeOrig.Length() != 2))
{
printUsage(std::cerr);
inputParameters.Status();
std::cerr << "--storeOrig tag name must be 2 characters.\n";
return(-1);
}
myOverlapHandler = new OverlapClipLowerBaseQual();
if(myOverlapHandler == NULL)
{
printUsage(std::cerr);
inputParameters.Status();
std::cerr << "Failed to allocate the overlap handler\n";
return(-1);
}
if(unmapped)
{
myOverlapHandler->markAsUnmapped();
}
// Setup the overlap handler.
myOverlapHandler->keepStats(stats);
//.........这里部分代码省略.........
示例4: execute
int VcfMac::execute(int argc, char **argv)
{
String inputVcf = "";
int minAC = -1;
String sampleSubset = "";
String filterList = "";
bool params = false;
IntervalTree<int> regions;
std::vector<int> intersection;
// Read in the parameters.
ParameterList inputParameters;
BEGIN_LONG_PARAMETERS(longParameterList)
LONG_PARAMETER_GROUP("Required Parameters")
LONG_STRINGPARAMETER("in", &inputVcf)
LONG_PARAMETER_GROUP("Optional Parameters")
LONG_STRINGPARAMETER("sampleSubset", &sampleSubset)
LONG_INTPARAMETER("minAC", &minAC)
LONG_STRINGPARAMETER("filterList", &filterList)
LONG_PARAMETER("params", ¶ms)
LONG_PHONEHOME(VERSION)
END_LONG_PARAMETERS();
inputParameters.Add(new LongParameters ("Input Parameters",
longParameterList));
inputParameters.Read(argc-1, &(argv[1]));
// Check that all files were specified.
if(inputVcf == "")
{
usage();
inputParameters.Status();
std::cerr << "Missing \"--in\", a required parameter.\n\n";
return(-1);
}
if(params)
{
inputParameters.Status();
}
// Open the two input files.
VcfFileReader inFile;
VcfHeader header;
VcfRecord record;
// Open the file
if(sampleSubset.IsEmpty())
{
inFile.open(inputVcf, header);
}
else
{
inFile.open(inputVcf, header, sampleSubset, NULL, NULL);
}
// Add the discard rule for minor allele count.
if(minAC >= 0)
{
inFile.addDiscardMinMinorAlleleCount(minAC, NULL);
}
if(!filterList.IsEmpty())
{
// Open the filter list.
IFILE regionFile = ifopen(filterList, "r");
String regionLine;
StringArray regionColumn;
int start;
int end;
int intervalVal = 1;
if(regionFile == NULL)
{
std::cerr << "Failed to open " << filterList
<< ", so keeping all positions\n";
filterList.Clear();
}
else
{
while( regionFile->isOpen() && !regionFile->ifeof())
{
// Read the next interval
regionLine.Clear();
regionLine.ReadLine(regionFile);
if(regionLine.IsEmpty())
{
// Nothing on this line, continue to the next.
continue;
}
regionColumn.ReplaceColumns(regionLine, ' ');
if(regionColumn.Length() != 2)
{
std::cerr << "Improperly formatted region line: "
<< regionLine << "; skipping to the next line.\n";
continue;
}
// Convert the columns to integers.
if(!regionColumn[0].AsInteger(start))
//.........这里部分代码省略.........
示例5: execute
int Dedup_LowMem::execute(int argc, char** argv)
{
/* --------------------------------
* process the arguments
* -------------------------------*/
String inFile, outFile, logFile;
myDoRecab = false;
bool removeFlag = false;
bool verboseFlag = false;
myForceFlag = false;
myNumMissingMate = 0;
myMinQual = DEFAULT_MIN_QUAL;
String excludeFlags = "0xB04";
uint16_t intExcludeFlags = 0;
bool noeof = false;
bool params = false;
LongParamContainer parameters;
parameters.addGroup("Required Parameters");
parameters.addString("in", &inFile);
parameters.addString("out", &outFile);
parameters.addGroup("Optional Parameters");
parameters.addInt("minQual", & myMinQual);
parameters.addString("log", &logFile);
parameters.addBool("oneChrom", &myOneChrom);
parameters.addBool("recab", &myDoRecab);
parameters.addBool("rmDups", &removeFlag);
parameters.addBool("force", &myForceFlag);
parameters.addString("excludeFlags", &excludeFlags);
parameters.addBool("verbose", &verboseFlag);
parameters.addBool("noeof", &noeof);
parameters.addBool("params", ¶ms);
parameters.addPhoneHome(VERSION);
myRecab.addRecabSpecificParameters(parameters);
ParameterList inputParameters;
inputParameters.Add(new LongParameters ("Input Parameters",
parameters.getLongParameterList()));
// parameters start at index 2 rather than 1.
inputParameters.Read(argc, argv, 2);
// If no eof block is required for a bgzf file, set the bgzf file type to
// not look for it.
if(noeof)
{
// Set that the eof block is not required.
BgzfFileType::setRequireEofBlock(false);
}
if(inFile.IsEmpty())
{
printUsage(std::cerr);
inputParameters.Status();
std::cerr << "Specify an input file" << std::endl;
return EXIT_FAILURE;
}
if(outFile.IsEmpty())
{
printUsage(std::cerr);
inputParameters.Status();
std::cerr << "Specify an output file" << std::endl;
return EXIT_FAILURE;
}
intExcludeFlags = excludeFlags.AsInteger();
if(myForceFlag && SamFlag::isDuplicate(intExcludeFlags))
{
printUsage(std::cerr);
inputParameters.Status();
std::cerr << "Cannot specify --force and Duplicate in the excludeFlags. Since --force indicates to override"
<< " previous duplicate setting and the excludeFlags says to skip those, you can't do both.\n";
return EXIT_FAILURE;
}
if(!SamFlag::isSecondary(intExcludeFlags))
{
printUsage(std::cerr);
inputParameters.Status();
std::cerr << "ERROR: Secondary reads must be excluded, edit --excludeFlags to include 0x0100\n";
return EXIT_FAILURE;
}
if(!(intExcludeFlags & SamFlag::SUPPLEMENTARY_ALIGNMENT))
{
printUsage(std::cerr);
inputParameters.Status();
std::cerr << "ERROR: Supplementary reads must be excluded, edit --excludeFlags to include 0x0800\n";
return EXIT_FAILURE;
}
if(logFile.IsEmpty())
{
logFile = outFile + ".log";
}
if(myDoRecab)
{
//.........这里部分代码省略.........
示例6: execute
int Revert::execute(int argc, char **argv)
{
// Extract command line arguments.
String inFile = "";
String outFile = "";
bool cigar = false;
bool qual = false;
bool noeof = false;
bool params = false;
bool rmBQ = false;
String rmTags = "";
myKeepTags = false;
ParameterList inputParameters;
BEGIN_LONG_PARAMETERS(longParameterList)
LONG_STRINGPARAMETER("in", &inFile)
LONG_STRINGPARAMETER("out", &outFile)
LONG_PARAMETER("cigar", &cigar)
LONG_PARAMETER("qual", &qual)
LONG_PARAMETER("keepTags", &myKeepTags)
LONG_PARAMETER("rmBQ", &rmBQ)
LONG_STRINGPARAMETER("rmTags", &rmTags)
LONG_PARAMETER("noeof", &noeof)
LONG_PARAMETER("params", ¶ms)
LONG_PHONEHOME(VERSION)
END_LONG_PARAMETERS();
inputParameters.Add(new LongParameters ("Input Parameters",
longParameterList));
// parameters start at index 2 rather than 1.
inputParameters.Read(argc, argv, 2);
// If no eof block is required for a bgzf file, set the bgzf file type to
// not look for it.
if(noeof)
{
// Set that the eof block is not required.
BgzfFileType::setRequireEofBlock(false);
}
// Check to see if the in file was specified, if not, report an error.
if(inFile == "")
{
usage();
inputParameters.Status();
// In file was not specified but it is mandatory.
std::cerr << "--in is a mandatory argument, "
<< "but was not specified" << std::endl;
return(-1);
}
if(outFile == "")
{
usage();
inputParameters.Status();
// In file was not specified but it is mandatory.
std::cerr << "--out is a mandatory argument, "
<< "but was not specified" << std::endl;
return(-1);
}
if(params)
{
inputParameters.Status();
}
// Open the input file for reading.
SamFile samIn;
samIn.OpenForRead(inFile);
// Open the output file for writing.
SamFile samOut;
samOut.OpenForWrite(outFile);
// Read the sam header.
SamFileHeader samHeader;
samIn.ReadHeader(samHeader);
// Write the sam header.
samOut.WriteHeader(samHeader);
SamRecord samRecord;
// Set returnStatus to success. It will be changed to the
// failure reason if any of the writes or updates fail.
SamStatus::Status returnStatus = SamStatus::SUCCESS;
// Keep reading records until ReadRecord returns false.
while(samIn.ReadRecord(samHeader, samRecord))
{
// Update the cigar & position.
if(cigar)
{
if(!updateCigar(samRecord))
{
// Failed to update the cigar & position.
fprintf(stderr, "%s\n", samIn.GetStatusMessage());
returnStatus = samIn.GetStatus();
}
//.........这里部分代码省略.........
示例7: main
int main(int argc, char ** argv)
{
printf("glfMerge V1.0.2 -- Merge SNP calls based on .glf or .glz files\n");
printf("(c) 2009 Goncalo Abecasis, Sebastian Zoellner, Yun Li\n\n");
ParameterList pl;
String qualities = "30,30";
String minDepths = "1,1";
String maxDepths = "200,200";
String outfile = "merged.glf";
bool verbose = false;
IntArray qualityFilter;
IntArray lowDepthFilter;
IntArray highDepthFilter;
BEGIN_LONG_PARAMETERS(longParameters)
LONG_PARAMETER_GROUP("Map Quality Filter")
LONG_STRINGPARAMETER("qualities", &qualities)
LONG_PARAMETER_GROUP("Depth Filters")
LONG_STRINGPARAMETER("minDepths", &minDepths)
LONG_STRINGPARAMETER("maxDepths", &maxDepths)
LONG_PARAMETER_GROUP("Output")
LONG_STRINGPARAMETER("outfile", &outfile)
LONG_PARAMETER("verbose", &verbose)
END_LONG_PARAMETERS();
pl.Add(new LongParameters("Options", longParameters));
int argstart = pl.ReadWithTrailer(argc, argv) + 1;
pl.Status();
time_t t;
time(&t);
printf("Analysis started on %s\n", ctime(&t));
fflush(stdout);
int n = argc - argstart;
argv += argstart;
if (n == 0)
error("No glf files listed at the end of command line\n");
StringToArray(qualities, qualityFilter, n);
StringToArray(minDepths, lowDepthFilter, n);
StringToArray(maxDepths, highDepthFilter, n);
glfHandler * glf = new glfHandler[n];
for (int i = 0; i < n; i++)
if (!glf[i].Open(argv[i]))
error("Failed to open genotype likelihood file [%s]\n", argv[i]);
printf("Calling genotypes for files ...\n");
for (int i = 0; i < n; i++)
if (glf[i].isOpen())
printf(" %s\n", argv[i]);
printf("\n");
glfHandler output;
output.Create(outfile);
long long depth = 0, originalDepth = 0;
long long sites = 0, originalSites = 0;
while (glf[0].NextSection())
{
for (int i = 1; i < n; i++)
{
glf[i].NextSection();
if (glf[0].maxPosition != glf[i].maxPosition || glf[0].label != glf[i].label)
{
error("Genotype files '%s' and '%s' are not compatible ...\n"
" File '%s' has section %s with %d entries ...\n"
" File '%s' section %s with %d entries ...\n",
argv[0], argv[i],
argv[0], (const char *) glf[0].label, glf[0].maxPosition,
argv[i], (const char *) glf[i].label, glf[i].maxPosition);
}
}
printf("Processing section %s with %d entries\n", (const char *) glf[0].label, glf[0].maxPosition);
output.BeginSection(glf[0].label, glf[0].maxPosition);
for (int i = 0; i < n; i++)
glf[i].NextBaseEntry();
int position = glf[0].position;
char refBase = glf[0].data.refBase;
for (int i = 1; i < n; i++)
if (position > glf[i].position)
{
position = glf[i].position;
refBase = glf[i].data.refBase;
}
//.........这里部分代码省略.........
示例8: execute
int Convert::execute(int argc, char **argv)
{
// Extract command line arguments.
String inFile = "";
String outFile = "";
String refFile = "";
bool lshift = false;
bool noeof = false;
bool params = false;
bool useBases = false;
bool useEquals = false;
bool useOrigSeq = false;
bool recover = false;
ParameterList inputParameters;
BEGIN_LONG_PARAMETERS(longParameterList)
LONG_STRINGPARAMETER("in", &inFile)
LONG_STRINGPARAMETER("out", &outFile)
LONG_STRINGPARAMETER("refFile", &refFile)
LONG_PARAMETER("lshift", &lshift)
LONG_PARAMETER("noeof", &noeof)
LONG_PARAMETER("recover", &recover)
LONG_PARAMETER("params", ¶ms)
LONG_PARAMETER_GROUP("SequenceConversion")
EXCLUSIVE_PARAMETER("useBases", &useBases)
EXCLUSIVE_PARAMETER("useEquals", &useEquals)
EXCLUSIVE_PARAMETER("useOrigSeq", &useOrigSeq)
LONG_PHONEHOME(VERSION)
END_LONG_PARAMETERS();
inputParameters.Add(new LongParameters ("Input Parameters",
longParameterList));
// parameters start at index 2 rather than 1.
inputParameters.Read(argc, argv, 2);
// If no eof block is required for a bgzf file, set the bgzf file type to
// not look for it.
if(noeof)
{
// Set that the eof block is not required.
BgzfFileType::setRequireEofBlock(false);
}
// Check to see if the in file was specified, if not, report an error.
if(inFile == "")
{
printUsage(std::cerr);
inputParameters.Status();
// In file was not specified but it is mandatory.
std::cerr << "--in is a mandatory argument, "
<< "but was not specified" << std::endl;
return(-1);
}
if(outFile == "")
{
printUsage(std::cerr);
inputParameters.Status();
// In file was not specified but it is mandatory.
std::cerr << "--out is a mandatory argument, "
<< "but was not specified" << std::endl;
return(-1);
}
// Check to see if the ref file was specified.
// Open the reference.
GenomeSequence* refPtr = NULL;
if(refFile != "")
{
refPtr = new GenomeSequence(refFile);
}
SamRecord::SequenceTranslation translation;
if((useBases) && (refPtr != NULL))
{
translation = SamRecord::BASES;
}
else if((useEquals) && (refPtr != NULL))
{
translation = SamRecord::EQUAL;
}
else
{
useOrigSeq = true;
translation = SamRecord::NONE;
}
if(params)
{
inputParameters.Status();
}
// Open the input file for reading.
SamFile samIn;
if(recover) samIn.setAttemptRecovery(true);
samIn.OpenForRead(inFile);
//.........这里部分代码省略.........
示例9: execute
// main function of verifyBamID
int execute(int argc, char** argv) {
printf("verifyBamID %s -- verify identity and purity of sequence data\n"
"(c) 2010-2014 Hyun Min Kang, Goo Jun, and Goncalo Abecasis\n\n", VERSION);
VerifyBamIDArgs args;
ParameterList pl;
BEGIN_LONG_PARAMETERS(longParameters)
LONG_PARAMETER_GROUP("Input Files")
LONG_STRINGPARAMETER("vcf",&args.sVcfFile)
LONG_STRINGPARAMETER("bam",&args.sBamFile)
LONG_STRINGPARAMETER("subset",&args.sSubsetInds)
LONG_STRINGPARAMETER("smID",&args.sSMID)
LONG_PARAMETER_GROUP("VCF analysis options")
LONG_DOUBLEPARAMETER("genoError",&args.genoError)
LONG_DOUBLEPARAMETER("minAF",&args.minAF)
LONG_DOUBLEPARAMETER("minCallRate",&args.minCallRate)
LONG_PARAMETER_GROUP("Individuals to compare with chip data")
EXCLUSIVE_PARAMETER("site",&args.bSiteOnly)
EXCLUSIVE_PARAMETER("self",&args.bSelfOnly)
EXCLUSIVE_PARAMETER("best",&args.bFindBest)
LONG_PARAMETER_GROUP("Chip-free optimization options")
EXCLUSIVE_PARAMETER("free-none",&args.bFreeNone)
EXCLUSIVE_PARAMETER("free-mix",&args.bFreeMixOnly)
EXCLUSIVE_PARAMETER("free-refBias",&args.bFreeRefBiasOnly)
EXCLUSIVE_PARAMETER("free-full",&args.bFreeFull)
LONG_PARAMETER_GROUP("With-chip optimization options")
EXCLUSIVE_PARAMETER("chip-none",&args.bChipNone)
EXCLUSIVE_PARAMETER("chip-mix",&args.bChipMixOnly)
EXCLUSIVE_PARAMETER("chip-refBias",&args.bChipRefBiasOnly)
EXCLUSIVE_PARAMETER("chip-full",&args.bChipFull)
LONG_PARAMETER_GROUP("BAM analysis options")
LONG_PARAMETER("ignoreRG",&args.bIgnoreRG)
LONG_PARAMETER("ignoreOverlapPair",&args.bIgnoreOverlapPair)
LONG_PARAMETER("noEOF",&args.bNoEOF)
LONG_PARAMETER("precise",&args.bPrecise)
LONG_INTPARAMETER("minMapQ",&args.minMapQ)
LONG_INTPARAMETER("maxDepth",&args.maxDepth)
LONG_INTPARAMETER("minQ",&args.minQ)
LONG_INTPARAMETER("maxQ",&args.maxQ)
LONG_DOUBLEPARAMETER("grid",&args.grid)
LONG_PARAMETER_GROUP("Modeling Reference Bias")
LONG_DOUBLEPARAMETER("refRef",&args.pRefRef)
LONG_DOUBLEPARAMETER("refHet",&args.pRefHet)
LONG_DOUBLEPARAMETER("refAlt",&args.pRefAlt)
LONG_PARAMETER_GROUP("Output options")
LONG_STRINGPARAMETER("out",&args.sOutFile)
LONG_PARAMETER("verbose",&args.bVerbose)
LONG_PHONEHOME(VERSION)
END_LONG_PARAMETERS();
pl.Add(new LongParameters("Available Options",longParameters));
pl.Read(argc, argv);
pl.Status();
// check the validity of input files
if ( args.sVcfFile.IsEmpty() ) {
error("--vcf [vcf file] required");
}
if ( args.sBamFile.IsEmpty() ) {
error("--bam [bam file] is required");
}
if ( args.sOutFile.IsEmpty() ) {
error("--out [output prefix] is required");
}
Logger::gLogger = new Logger((args.sOutFile + ".log").c_str(), args.bVerbose);
if ( ! ( args.bSiteOnly || args.bSelfOnly || args.bFindBest ) ) {
warning("--self option was autotomatically turned on by default. Specify --best option if you wanted to check across all possible samples in the VCF");
args.bSelfOnly = true;
}
if ( ( args.maxDepth > 20 ) && ( !args.bPrecise ) ) {
warning("--precise option is not turned on at --maxDepth %d : may be prone to precision errors",args.maxDepth);
}
if ( ( args.bChipRefBiasOnly ) && ( !args.bSelfOnly ) ) {
error("--self must be set for --chip-refBias to work. Skipping..");
}
// check timestamp
time_t t;
time(&t);
Logger::gLogger->writeLog("Analysis started on %s",ctime(&t));
// load arguments
VerifyBamID vbid(&args);
// load input VCF and BAM files
Logger::gLogger->writeLog("Opening Input Files");
//.........这里部分代码省略.........
示例10: main
int main(int argc, char * argv[])
{
printf("PedWipe - (c) 2000 Goncalo Abecasis\n"
"Automatically wipe out genotypes from a pedigree file\n\n");
String pedfile("merlin.ped");
String datafile("merlin.dat");
String errorfile("merlin.err");
bool showTallies = false;
ParameterList pl;
pl.Add(new StringParameter('d', "Data File", datafile));
pl.Add(new StringParameter('p', "Pedigree File", pedfile));
pl.Add(new StringParameter('e', "Errors File", errorfile));
pl.Add(new SwitchParameter('t', "Show Tallies", showTallies));
pl.Read(argc, argv);
pl.Status();
Pedigree ped;
ped.Prepare(datafile);
ped.Load(pedfile);
StringArray errors, tokens;
errors.Read(errorfile);
int count = 0;
StringIntMap perMarker, perFamily, perPerson;
for (int i = 1; i < errors.Length(); i++)
{
tokens.Clear();
tokens.AddTokens(errors[i]);
if (tokens.Length() < 3) continue;
Person * person = ped.FindPerson(tokens[0], tokens[1]);
int markerid = ped.LookupMarker(tokens[2]);
if (person == NULL)
{
printf("Person %s.%s not found ... \n",
(const char *) tokens[0], (const char *) tokens[1]);
continue;
}
if (markerid == -1)
{
printf("Marker %s not found ... \n",
(const char *) tokens[2]);
continue;
}
printf("Person %s.%s, marker %s wiped.\n",
(const char *) tokens[0], (const char *) tokens[1],
(const char *) tokens[2]);
person->markers[markerid].one = 0;
person->markers[markerid].two = 0;
perPerson.IncrementCount(tokens[0] + "." + tokens[1]);
perFamily.IncrementCount(tokens[0]);
perMarker.IncrementCount(tokens[2]);
count++;
}
if (perMarker.Length() == 0)
{
printf("No errors found in merlin.err\n");
}
else if (showTallies && count)
{
printf("\nSummary of Errors\n");
printf("=================\n\n");
QuickIndex index;
printf("Per Marker: (average = %.2f)\n"
"-----------------------------\n",
(double) count / (double) ped.markerCount);
index.IndexCounts(perMarker);
index.Reverse();
for (int i = 0; i < perMarker.Length(); i++)
printf(" %3d errors for marker %s\n",
perMarker.GetCount(index[i]),
(const char *) perMarker[index[i]]);
printf("\nPer Family: (average = %.2f)\n"
"----------------------------\n",
(double) count / (double) ped.familyCount);
index.IndexCounts(perFamily);
index.Reverse();
for (int i = 0; i < perFamily.Length(); i++)
printf(" %3d errors for family %s\n",
perFamily.GetCount(index[i]), (const char *) perFamily[index[i]]);
//.........这里部分代码省略.........
示例11: execute
int Stats::execute(int argc, char **argv)
{
// Extract command line arguments.
String inFile = "";
String indexFile = "";
bool basic = false;
bool noeof = false;
bool params = false;
bool qual = false;
bool phred = false;
int maxNumReads = -1;
bool unmapped = false;
String pBaseQC = "";
String cBaseQC = "";
String regionList = "";
int excludeFlags = 0;
int requiredFlags = 0;
bool withinRegion = false;
int minMapQual = 0;
String dbsnp = "";
PosList *dbsnpListPtr = NULL;
bool baseSum = false;
int bufferSize = PileupHelper::DEFAULT_WINDOW_SIZE;
ParameterList inputParameters;
BEGIN_LONG_PARAMETERS(longParameterList)
LONG_PARAMETER_GROUP("Required Parameters")
LONG_STRINGPARAMETER("in", &inFile)
LONG_PARAMETER_GROUP("Types of Statistics")
LONG_PARAMETER("basic", &basic)
LONG_PARAMETER("qual", &qual)
LONG_PARAMETER("phred", &phred)
LONG_STRINGPARAMETER("pBaseQC", &pBaseQC)
LONG_STRINGPARAMETER("cBaseQC", &cBaseQC)
LONG_PARAMETER_GROUP("Optional Parameters")
LONG_INTPARAMETER("maxNumReads", &maxNumReads)
LONG_PARAMETER("unmapped", &unmapped)
LONG_STRINGPARAMETER("bamIndex", &indexFile)
LONG_STRINGPARAMETER("regionList", ®ionList)
LONG_INTPARAMETER("excludeFlags", &excludeFlags)
LONG_INTPARAMETER("requiredFlags", &requiredFlags)
LONG_PARAMETER("noeof", &noeof)
LONG_PARAMETER("params", ¶ms)
LONG_PARAMETER_GROUP("Optional phred/qual Only Parameters")
LONG_PARAMETER("withinRegion", &withinRegion)
LONG_PARAMETER_GROUP("Optional BaseQC Only Parameters")
LONG_PARAMETER("baseSum", &baseSum)
LONG_INTPARAMETER("bufferSize", &bufferSize)
LONG_INTPARAMETER("minMapQual", &minMapQual)
LONG_STRINGPARAMETER("dbsnp", &dbsnp)
END_LONG_PARAMETERS();
inputParameters.Add(new LongParameters ("Input Parameters",
longParameterList));
inputParameters.Read(argc-1, &(argv[1]));
// If no eof block is required for a bgzf file, set the bgzf file type to
// not look for it.
if(noeof)
{
// Set that the eof block is not required.
BgzfFileType::setRequireEofBlock(false);
}
// Check to see if the in file was specified, if not, report an error.
if(inFile == "")
{
usage();
inputParameters.Status();
// In file was not specified but it is mandatory.
std::cerr << "--in is a mandatory argument for stats, "
<< "but was not specified" << std::endl;
return(-1);
}
// Use the index file if unmapped or regionList is not empty.
bool useIndex = (unmapped|| (!regionList.IsEmpty()));
// IndexFile is required, so check to see if it has been set.
if(useIndex && (indexFile == ""))
{
// In file was not specified, so set it to the in file
// + ".bai"
indexFile = inFile + ".bai";
}
////////////////////////////////////////
// Setup in case pileup is used.
Pileup<PileupElementBaseQCStats> pileup(bufferSize);
// Initialize start/end positions.
myStartPos = 0;
myEndPos = -1;
// Open the output qc file if applicable.
IFILE baseQCPtr = NULL;
if(!pBaseQC.IsEmpty() && !cBaseQC.IsEmpty())
{
usage();
inputParameters.Status();
// Cannot specify both types of baseQC.
//.........这里部分代码省略.........
示例12: main
int main(int argc, char ** argv)
{
ParameterList inputParameters;
String filename;
int minReadLength = 10;
int printableErrors = 20;
int maxErrors = -1;
String testParam;
BaseAsciiMap::SPACE_TYPE myBaseType = BaseAsciiMap::UNKNOWN;
// Read the parameters from the command line.
bool baseSpace = false;
bool colorSpace = false;
bool autoDetect = false;
bool ignoreErrors = false;
bool baseComposition = false;
bool avgQual = false;
bool quiet = false;
bool noeof = false;
bool params = false;
bool disableSeqIDCheck = false;
bool interleaved = false;
BEGIN_LONG_PARAMETERS(longParameterList)
LONG_STRINGPARAMETER("file", &filename)
LONG_PARAMETER("baseComposition", &baseComposition)
LONG_PARAMETER("avgQual", &avgQual)
LONG_PARAMETER("disableSeqIDCheck", &disableSeqIDCheck)
LONG_PARAMETER("interleaved", &interleaved)
LONG_PARAMETER("noeof", &noeof)
LONG_PARAMETER("quiet", &quiet)
LONG_PARAMETER("params", ¶ms)
LONG_INTPARAMETER("minReadLen", &minReadLength)
LONG_INTPARAMETER("maxErrors", &maxErrors)
LONG_PARAMETER_GROUP("Space Type")
EXCLUSIVE_PARAMETER("baseSpace", &baseSpace)
EXCLUSIVE_PARAMETER("colorSpace", &colorSpace)
EXCLUSIVE_PARAMETER("auto", &autoDetect)
LONG_PARAMETER_GROUP("Errors")
EXCLUSIVE_PARAMETER("ignoreErrors", &ignoreErrors)
LONG_SMARTINTPARAMETER("printableErrors", &printableErrors)
BEGIN_LEGACY_PARAMETERS()
LONG_PARAMETER("printBaseComp", &baseComposition)
LONG_PARAMETER("disableAllMessages", &quiet)
LONG_INTPARAMETER("quitAfterErrorNum", &maxErrors)
LONG_PARAMETER_GROUP("Space Type")
EXCLUSIVE_PARAMETER("baseSpace", &baseSpace)
EXCLUSIVE_PARAMETER("colorSpace", &colorSpace)
EXCLUSIVE_PARAMETER("autoDetect", &autoDetect)
LONG_PARAMETER_GROUP("Errors")
EXCLUSIVE_PARAMETER("ignoreAllErrors", &ignoreErrors)
LONG_SMARTINTPARAMETER("maxReportedErrors", &printableErrors)
END_LONG_PARAMETERS();
inputParameters.Add(new LongParameters ("Input Parameters", longParameterList));
inputParameters.Read(argc, argv);
if(ignoreErrors)
{
// Ignore all errors, so set printableErrors to 0.
printableErrors = 0;
}
// Set the base type based on the passed in parameters.
if(baseSpace)
{
// Base Space
myBaseType = BaseAsciiMap::BASE_SPACE;
}
else if(colorSpace)
{
myBaseType = BaseAsciiMap::COLOR_SPACE;
}
else
{
myBaseType = BaseAsciiMap::UNKNOWN;
// Set autoDetect
autoDetect = true;
}
// If no eof block is required for a bgzf file, set the bgzf file type to
// not look for it.
if(noeof)
{
// Set that the eof block is not required.
BgzfFileType::setRequireEofBlock(false);
}
// DO not print status if set to quiet.
if((!quiet) && params)
{
inputParameters.Status();
}
if(filename == "")
{
if(quiet)
{
return(-1);
//.........这里部分代码省略.........
示例13: execute
int Dump::execute(int argc, char **argv)
{
// Extract command line arguments.
String inFile = "";
bool params = false;
ParameterList inputParameters;
BEGIN_LONG_PARAMETERS(longParameterList)
LONG_PARAMETER_GROUP("Required Parameters")
LONG_STRINGPARAMETER("in", &inFile)
LONG_PARAMETER_GROUP("Optional Other Parameters")
LONG_PARAMETER("params", ¶ms)
END_LONG_PARAMETERS();
inputParameters.Add(new LongParameters ("Input Parameters",
longParameterList));
inputParameters.Read(argc-1, &(argv[1]));
// Check to see if the in file was specified, if not, report an error.
if(inFile == "")
{
usage();
// mandatory argument was not specified.
inputParameters.Status();
std::cerr << "Missing mandatory argument: --in" << std::endl;
return(-1);
}
if(params)
{
inputParameters.Status();
}
GlfFile glfIn;
GlfHeader glfHeader;
// Open the file for reading.
glfIn.openForRead(inFile);
// Read the glf header.
glfIn.readHeader(glfHeader);
// Output the glf header.
std::string headerText = "";
glfHeader.getHeaderTextString(headerText);
std::cout << "GlfHeader:\n";
std::cout << headerText << std::endl;
int numSections = 0;
// Set returnStatus to success. It will be changed
// to the failure reason if any of the writes fail.
GlfStatus::Status returnStatus = GlfStatus::SUCCESS;
GlfRefSection refSection;
while(glfIn.getNextRefSection(refSection))
{
++numSections;
std::string refName;
refSection.getName(refName);
std::cout << "\tRefName = " << refName
<< "; RefLen = " << refSection.getRefLen() << "\n";
int64_t numSectionRecords = 0;
GlfRecord record;
int pos = 0;
while(glfIn.getNextRecord(record))
{
// Print the position.
pos += record.getOffset();
std::cout << "position: " << pos << "\n\t";
record.print();
++numSectionRecords;
}
}
// // Keep reading records until they aren't anymore.
// while(glfIn.ReadRecord(glfHeader, glfRecord))
// {
// if(!readName.IsEmpty())
// {
// // Check for readname.
// if(strcmp(glfRecord.getReadName(), readName.c_str()) != 0)
// {
// // not a matching read name, so continue to the next record.
// continue;
// }
// }
// // Check to see if the read has already been processed.
// if(myPrevEnd != UNSPECIFIED_INT)
// {
// // Because we already know that the bed was sorted,
// // we know that the previous section started before
// // this one, so if the previous end is greater than
// // this record's end position we know that it
// // was already written in the previous section.
// // Note: can't be equal to the previous end since
// // the end range was exclusive, while
// // get0BasedAlignmentEnd is inclusive.
// // myPrevEnd is reset by getNextSection when a new
// // chromosome is hit.
//.........这里部分代码省略.........
示例14: execute
int GapInfo::execute(int argc, char **argv)
{
// Extract command line arguments.
String inFile = "";
String outFile = "";
String refFile = "";
bool detailed = false;
bool checkFirst = false;
bool checkStrand = false;
bool noeof = false;
bool params = false;
ParameterList inputParameters;
BEGIN_LONG_PARAMETERS(longParameterList)
LONG_PARAMETER_GROUP("Required Parameters")
LONG_STRINGPARAMETER("in", &inFile)
LONG_STRINGPARAMETER("out", &outFile)
LONG_PARAMETER_GROUP("Optional Parameters")
LONG_STRINGPARAMETER("refFile", &refFile)
LONG_PARAMETER("detailed", &detailed)
LONG_PARAMETER_GROUP("Optional Detailed Parameters")
LONG_PARAMETER("checkFirst", &checkFirst)
LONG_PARAMETER("checkStrand", &checkStrand)
LONG_PARAMETER("noeof", &noeof)
LONG_PARAMETER("params", ¶ms)
END_LONG_PARAMETERS();
inputParameters.Add(new LongParameters ("Input Parameters",
longParameterList));
inputParameters.Read(argc-1, &(argv[1]));
// If no eof block is required for a bgzf file, set the bgzf file type to
// not look for it.
if(noeof)
{
// Set that the eof block is not required.
BgzfFileType::setRequireEofBlock(false);
}
// Check to see if the in file was specified, if not, report an error.
if(inFile == "")
{
usage();
inputParameters.Status();
// In file was not specified but it is mandatory.
std::cerr << "--in is a mandatory argument, "
<< "but was not specified" << std::endl;
return(-1);
}
// Check to see if the out file was specified, if not, report an error.
if(outFile == "")
{
usage();
inputParameters.Status();
// Out file was not specified but it is mandatory.
std::cerr << "--out is a mandatory argument, "
<< "but was not specified" << std::endl;
return(-1);
}
if(params)
{
inputParameters.Status();
}
return(processFile(inFile.c_str(), outFile.c_str(),
refFile, detailed,
checkFirst, checkStrand));
}
示例15: execute
int WriteRegion::execute(int argc, char **argv)
{
// Extract command line arguments.
String inFile = "";
String outFile = "";
String indexFile = "";
String readName = "";
String bed = "";
myStart = UNSPECIFIED_INT;
myEnd = UNSPECIFIED_INT;
myPrevStart = UNSPECIFIED_INT;
myPrevEnd = UNSPECIFIED_INT;
myRefID = UNSET_REF;
myRefName.Clear();
myPrevRefName.Clear();
myBedRefID = SamReferenceInfo::NO_REF_ID;
bool lshift = false;
bool noeof = false;
bool params = false;
myWithinReg = false;
myWroteReg = false;
ParameterList inputParameters;
BEGIN_LONG_PARAMETERS(longParameterList)
LONG_PARAMETER_GROUP("Required Parameters")
LONG_STRINGPARAMETER("in", &inFile)
LONG_STRINGPARAMETER("out", &outFile)
LONG_PARAMETER_GROUP("Optional Region Parameters")
LONG_STRINGPARAMETER("bamIndex", &indexFile)
LONG_STRINGPARAMETER("refName", &myRefName)
LONG_INTPARAMETER("refID", &myRefID)
LONG_INTPARAMETER("start", &myStart)
LONG_INTPARAMETER("end", &myEnd)
LONG_STRINGPARAMETER("bed", &bed)
LONG_PARAMETER("withinReg", &myWithinReg)
LONG_STRINGPARAMETER("readName", &readName)
LONG_PARAMETER_GROUP("Optional Other Parameters")
LONG_PARAMETER("lshift", &lshift)
LONG_PARAMETER("noeof", &noeof)
LONG_PARAMETER("params", ¶ms)
END_LONG_PARAMETERS();
inputParameters.Add(new LongParameters ("Input Parameters",
longParameterList));
inputParameters.Read(argc-1, &(argv[1]));
// If no eof block is required for a bgzf file, set the bgzf file type to
// not look for it.
if(noeof)
{
// Set that the eof block is not required.
BgzfFileType::setRequireEofBlock(false);
}
// Check to see if the in file was specified, if not, report an error.
if(inFile == "")
{
usage();
// mandatory argument was not specified.
inputParameters.Status();
std::cerr << "Missing mandatory argument: --in" << std::endl;
return(-1);
}
if(outFile == "")
{
usage();
// mandatory argument was not specified.
inputParameters.Status();
std::cerr << "Missing mandatory argument: --out" << std::endl;
return(-1);
}
if(indexFile == "")
{
// In file was not specified, so set it to the in file
// + ".bai"
indexFile = inFile + ".bai";
}
if(myRefID != UNSET_REF && myRefName.Length() != 0)
{
std::cerr << "Can't specify both refID and refName" << std::endl;
inputParameters.Status();
return(-1);
}
if(myRefID != UNSET_REF && bed.Length() != 0)
{
std::cerr << "Can't specify both refID and bed" << std::endl;
inputParameters.Status();
return(-1);
}
if(myRefName.Length() != 0 && bed.Length() != 0)
{
std::cerr << "Can't specify both refName and bed" << std::endl;
inputParameters.Status();
return(-1);
}
if(!bed.IsEmpty())
//.........这里部分代码省略.........