| 1363 | } |
| 1364 | |
| 1365 | void printUsageString() |
| 1366 | { |
| 1367 | const char* useString = |
| 1368 | "Author: Greg Faust (gf4ea@virginia.edu)\n" |
| 1369 | "Tool to mark duplicates and optionally output split reads and/or discordant pairs.\n" |
| 1370 | "Input sam file must contain sequence header and be grouped by read ids (QNAME).\n" |
| 1371 | "Input typicallly contains paired-end data, although singleton data is allowed with --ignoreUnmated option.\n" |
| 1372 | "Output will be all alignments in the same order as input, with duplicates marked with FLAG 0x400.\n\n" |
| 1373 | |
| 1374 | "Usage:\n" |
| 1375 | "For use as a post process on an aligner (eg. bwa mem):\n" |
| 1376 | " bwa mem <idxbase> samp.r1.fq samp.r2.fq | samblaster [-e] [-d samp.disc.sam] [-s samp.split.sam] | samtools view -Sb - > samp.out.bam\n" |
| 1377 | " bwa mem -M <idxbase> samp.r1.fq samp.r2.fq | samblaster -M [-e] [-d samp.disc.sam] [-s samp.split.sam] | samtools view -Sb - > samp.out.bam\n" |
| 1378 | "For use with a pre-existing bam file to pull split, discordant and/or unmapped reads without marking duplicates:\n" |
| 1379 | " samtools view -h samp.bam | samblaster -a [-e] [-d samp.disc.sam] [-s samp.split.sam] [-u samp.umc.fasta] -o /dev/null\n" |
| 1380 | "For use with a bam file of singleton long reads to pull split and/or unmapped reads with/without marking duplicates:\n" |
| 1381 | " samtools view -h samp.bam | samblaster --ignoreUnmated [-e] --maxReadLength 100000 [-s samp.split.sam] [-u samp.umc.fasta] | samtools view -Sb - > samp.out.bam\n" |
| 1382 | " samtools view -h samp.bam | samblaster --ignoreUnmated -a [-e] [-s samp.split.sam] [-u samp.umc.fasta] -o /dev/null\n" |
| 1383 | |
| 1384 | "Input/Output Options:\n" |
| 1385 | "-i --input FILE Input sam file [stdin].\n" |
| 1386 | "-o --output FILE Output sam file for all input alignments [stdout].\n" |
| 1387 | "-d --discordantFile FILE Output discordant read pairs to this file. [no discordant file output]\n" |
| 1388 | "-s --splitterFile FILE Output split reads to this file abiding by paramaters below. [no splitter file output]\n" |
| 1389 | "-u --unmappedFile FILE Output unmapped/clipped reads as FASTQ to this file abiding by parameters below. [no unmapped file output].\n" |
| 1390 | " Requires soft clipping in input file. Will output FASTQ if QUAL information available, otherwise FASTA.\n\n" |
| 1391 | |
| 1392 | "Other Options:\n" |
| 1393 | "-a --acceptDupMarks Accept duplicate marks already in input file instead of looking for duplicates in the input.\n" |
| 1394 | "-e --excludeDups Exclude reads marked as duplicates from discordant, splitter, and/or unmapped file.\n" |
| 1395 | "-r --removeDups Remove duplicates reads from all output files. (Implies --excludeDups).\n" |
| 1396 | " --addMateTags Add MC and MQ tags to all output paired-end SAM lines.\n" |
| 1397 | " --ignoreUnmated Suppress abort on unmated alignments. Use only when sure input is read-id grouped,\n" |
| 1398 | " and either paired-end alignments have been filtered or the input file contains singleton reads.\n" |
| 1399 | "-M Run in compatibility mode; both 0x100 and 0x800 are considered chimeric. Similar to BWA MEM -M option.\n" |
| 1400 | " --maxReadLength INT Maximum allowed length of the SEQ/QUAL string in the input file. [500]\n" |
| 1401 | " Primarily useful for marking duplicates in files containing singleton long reads.\n" |
| 1402 | " --maxSplitCount INT Maximum number of split alignments for a read to be included in splitter file. [2]\n" |
| 1403 | " --maxUnmappedBases INT Maximum number of un-aligned bases between two alignments to be included in splitter file. [50]\n" |
| 1404 | " --minIndelSize INT Minimum structural variant feature size for split alignments to be included in splitter file. [50]\n" |
| 1405 | " --minNonOverlap INT Minimum non-overlaping base pairs between two alignments for a read to be included in splitter file. [20]\n" |
| 1406 | " --minClipSize INT Minumum number of bases a mapped read must be clipped to be included in unmapped file. [20]\n" |
| 1407 | "-q --quiet Output fewer statistics.\n"; |
| 1408 | |
| 1409 | printVersionString(); |
| 1410 | fprintf(stderr, "%s", useString); |
| 1411 | } |
| 1412 | |
| 1413 | void printUsageStringAbort() |
| 1414 | { |
no test coverage detected