Mercurial > repos > nilesh > rseqc
changeset 3:71ed55a3515a draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/rseqc commit 37fb1988971807c6a072e1afd98eeea02329ee83
line wrap: on
line diff
--- a/.hgignore Thu Jul 18 11:01:08 2013 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -# use glob syntax -syntax: regexp - -^test-data/.* \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FPKM_count.xml Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,132 @@ +<tool id="rseqc_FPKM_count" name="FPKM Count" version="@WRAPPER_VERSION@"> + <description>calculates raw read count, FPM, and FPKM for each gene</description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[FPKM_count.py --version]]></version_command> + + <command><![CDATA[ + ln -sf '${input}' 'local_input.bam' && + ln -sf '${input.metadata.bam_index}' 'local_input.bam.bai' && + FPKM_count.py -i 'local_input.bam' -o output -r '${refgene}' + + #if str($strand_type.strand_specific) == "pair" + -d + #if str($strand_type.pair_type) == "sd" + '1++,1--,2+-,2-+' + #else + '1+-,1-+,2++,2--' + #end if + #end if + + #if str($strand_type.strand_specific) == "single" + -d + #if str($strand_type.single_type) == "s" + '++,--' + #else + '+-,-+' + #end if + #end if + + @MULTIHITS@ + + $onlyexonic + --single-read="${singleread}" + ]]> + </command> + + <inputs> + <expand macro="bam_param" /> + <expand macro="refgene_param" /> + <expand macro="strand_type_param" /> + <expand macro="multihits_param" /> + <param name="onlyexonic" type="boolean" value="false" truevalue="--only-exonic" falsevalue="" label="Only use exonic (UTR exons and CDS exons) reads, otherwise use all reads" help="(--only-exonic)"/> + <param name="singleread" type="select" label="How should read-pairs that only have one end mapped be counted?" help="(--single-read)"> + <option value="1" selected="true">Treat it as a whole fragment (1)</option> + <option value="0.5">Treat it as a half fragment (0.5)</option> + <option value="0">Ignore it (0)</option> + </param> + </inputs> + + <outputs> + <data format="xls" name="outputxls" from_work_dir="output.FPKM.xls"/> + </outputs> + + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam"/> + <param name="refgene" value="hg19_RefSeq_chr1_1-100000.bed"/> + <output name="outputxls" file="output.FPKM.xls"/> + </test> + </tests> + + <help><![CDATA[ +FPKM_count.py ++++++++++++++ + +Given a BAM file and reference gene model, this program will calculate the raw +read count, FPM (fragments per million), and FPKM (fragments per million +mapped reads per kilobase exon) for each gene in a BED file. For strand +specific RNA-seq data, program will assign read to its parental gene according +to strand rule, if you don't know the strand rule, run infer_experiment.py. +Please note that chromosome ID, genome cooridinates should be concordant +between BAM and BED files. + +Inputs +++++++++++++++ + +Input BAM/SAM file + Alignment file in BAM/SAM format. + +Reference gene model + Gene model in BED format. + +Strand sequencing type (default=none) + See Infer Experiment tool if uncertain. + +Options +++++++++++++++ + +Skip Multiple Hit Reads + Use Multiple hit reads or use only uniquely mapped reads. + +Minimum mapping quality + Minimum mapping quality (phred scaled) for an alignment to be called + "uniquely mapped". default=30 + +Only use exonic reads + Renders program only used exonic (UTR exons and CDS exons) reads, + otherwise use all reads. + +Single Reads + How to count read-pairs that only have one end mapped. 0: ignore it. 0.5: + treat it as half fragment. 1: treat it as whole fragment. default=1 + +Sample Output +++++++++++++++ + +====== ========= ========= ========= ========= =========== ========== ============ ============ +#chrom st end accession mRNA_size gene_strand Frag_count FPM FPKM +====== ========= ========= ========= ========= =========== ========== ============ ============ +chr1 100652477 100715409 NM_001918 10815.0 ‘-‘ 5498.0 191.73788949 17.728884835 +chr1 175913961 176176380 NM_022457 2789.0 ‘-‘ 923.0 32.188809021 11.541344217 +chr1 150980972 151008189 NM_021222 2977.0 ‘+’ 687.0 23.958517657 8.0478729115 +chr1 6281252 6296044 NM_012405 4815.0 ‘-‘ 1396.0 48.684265866 10.11095864 +chr1 20959947 20978004 NM_032409 2660.0 ‘+’ 509.0 17.750925018 6.6732800821 +chr1 32479294 32509482 NM_006559 2891.0 ‘+’ 2151.0 75.014223408 25.947500314 +====== ========= ========= ========= ========= =========== ========== ============ ============ + +@ABOUT@ + +]]> + </help> + + <expand macro="citations" /> + +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.txt Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,23 @@ +== RSeQC Galaxy Wrapper == + +This is a Galaxy wrapper for the RSeQC RNA-Seq QC package. + +** Installation ** + +Installation from a tool shed provides the necessary tool dependencies, R, numpy, and RSeQC. + +Otherwise, make sure that R and the RSeQC scripts are in the path and run under the Galaxy environment. +Move the xml files to a subdirectory of your tools directory and add lines in tool_conf.xml to point to them. +Restart the Galaxy server. + +Requires Python 2.7 + +** Attribution ** + +The RSeQC package and associated documentation can be found at: http://rseqc.sourceforge.net/ + +The galaxy wrapper code was written by + Nilesh Kavthekar, School of Engineering and Applied Sciences, University of Pennsylvania, Class of 2016 +Modified by + Lance Parsons, Lewis-Sigler Institute for Integrative Genomics, Princeton University, + Bjorn Gruning, University of Freiburg, bjoern.gruening@gmail.com
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/RNA_fragment_size.xml Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,76 @@ +<tool id="rseqc_RNA_fragment_size" name="RNA fragment size" version="@WRAPPER_VERSION@"> + <description> + calculates the fragment size for each gene/transcript + </description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[RNA_fragment_size.py --version]]></version_command> + + <command><![CDATA[ + ln -sf '${input}' 'input.bam' && + ln -sf '$input.metadata.bam_index' 'input.bam.bai' && + RNA_fragment_size.py -i 'input.bam' --refgene='${refgene}' --mapq=${mapq} --frag-num=${fragnum} > '${output}' + ]]> + </command> + + <inputs> + <expand macro="bam_param" /> + <expand macro="refgene_param" /> + <expand macro="mapq_param" /> + <param name="fragnum" type="integer" value="3" label="Minimum number of fragments (default: 3)" help="(--frag-num)" /> + </inputs> + + <outputs> + <data format="tabular" name="output" /> + </outputs> + + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam" /> + <param name="refgene" value="hg19_RefSeq_chr1_1-100000.bed" /> + <output name="output" file="output.RNA_fragment_size.txt" /> + </test> + </tests> + + <help><![CDATA[ +RNA_fragment_size.py +++++++++++++++++++++ + +Calculate fragment size for each gene/transcript. For each transcript, it will +report : 1) Number of fragment that was used to estimate mean, median, std (see +below). 2) mean of fragment size 3) median of fragment size 4) stdev of fragment +size. + +Inputs +++++++ + +Input BAM/SAM file + Alignment file in BAM/SAM format. + +Reference gene model + Reference gene model in BED format. Must be strandard 12-column BED file. + [required] + +Minimum mapping quality + Minimum mapping quality for an alignment to be considered as "uniquely + mapped". default=30 + +Minimum number of fragments + Minimum number of fragments. default=3 + +@ABOUT@ + +]]> + + </help> + + <expand macro="citations" /> + +</tool>
--- a/RPKM_count.xml Thu Jul 18 11:01:08 2013 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ -<tool id="RPKM_count" name="RPKM Count"> - <description>calculates raw count and RPKM values for transcript at exon, intron, and mRNA level</description> - <requirements> - <requirement type="package" version="0.1.18">samtools</requirement> - <requirement type="package" version="2.3.7">rseqc</requirement> - </requirements> - <command interpreter="python"> samtoolshelper.py RPKM_count.py -i $input -o output -r $refgene - - #if $nx - -x - #end if - - #if str($strand_type.strand_specific) == "pair" - -d - #if str($strand_type.pair_type) == "sd" - '1++,1--,2+-,2-+' - #else - '1+-,1-+,2++,2--' - #end if - #end if - - #if str($strand_type.strand_specific) == "single" - -d - #if str($strand_type.single_type) == "s" - '++,--' - #else - '+-,-+' - #end if - #end if - - #if $skiphits - -u - #end if - - #if $onlyexonic - -e - #end if - - </command> - <inputs> - <param name="input" type="data" format="bam" label="input bam/sam file" /> - <param name="refgene" type="data" format="bed" label="Reference gene model" /> - <conditional name="strand_type"> - <param name="strand_specific" type="select" label="Strand-specific?" value="None"> - <option value="none">None</option> - <option value="pair">Pair-End RNA-seq</option> - <option value="single">Single-End RNA-seq</option> - </param> - <when value="pair"> - <param name="pair_type" type="select" display="radio" label="Pair-End Read Type (format: mapped --> parent)" value="sd"> - <option value="sd"> read1 (positive --> positive; negative --> negative), read2 (positive --> negative; negative --> positive)</option> - <option value="ds">read1 (positive --> negative; negative --> positive), read2 (positive --> positive; negative --> negative)</option> - </param> - </when> - <when value="single"> - <param name="single_type" type="select" display="radio" label="Single-End Read Type (format: mapped --> parent)" value="s"> - <option value="s">positive --> positive; negative --> negative</option> - <option value="d">positive --> negative; negative --> positive</option> - </param> - </when> - <when value="none"></when> - </conditional> - <param name="skiphits" type="boolean" value="false" label="Skip Multiple Hit Reads" /> - <param name="onlyexonic" type="boolean" value="false" label="Only use exonic (UTR exons and CDS exons) reads, otherwise use all reads" /> - </inputs> - <outputs> - <data format="xls" name="outputxls" from_work_dir="output_read_count.xls"/> - </outputs> - <tests> - <test> - <param name="input" value="Pairend_nonStrandSpecific_36mer_Human_hg19.bam" /> - <param name="refgene" value="hg19_RefSeq.bed" /> - <output name="outputxls" file="rpkmctout_read_count.xls" /> - </test> - </tests> - <help> -.. image:: https://code.google.com/p/rseqc/logo?cct=1336721062 - ------ - -About RSeQC -+++++++++++ - -The RSeQC package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data. “Basic modules” quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC bias, while “RNA-seq specific modules” investigate sequencing saturation status of both splicing junction detection and expression estimation, mapped reads clipping profile, mapped reads distribution, coverage uniformity over gene body, reproducibility, strand specificity and splice junction annotation. - -The RSeQC package is licensed under the GNU GPL v3 license. - -Inputs -++++++++++++++ - -Input BAM/SAM file - Alignment file in BAM/SAM format. - -Reference gene model - Gene model in BED format. - -Strand sequencing type (default=none) - See Infer Experiment tool if uncertain. - -Options -++++++++++++++ - -Skip Multiple Hit Reads - Use Multiple hit reads or use only uniquely mapped reads. - -Only use exonic reads - Renders program only used exonic (UTR exons and CDS exons) reads, otherwise use all reads. - - </help> -</tool>
--- a/RPKM_saturation.xml Thu Jul 18 11:01:08 2013 -0500 +++ b/RPKM_saturation.xml Tue Mar 14 10:22:57 2017 -0400 @@ -1,108 +1,130 @@ -<tool id="RPKM_saturation" name="RPKM Saturation"> - <description>calculates raw count and RPKM values for transcript at exon, intron, and mRNA level</description> - <requirements> - <requirement type="package" version="2.15.1">R</requirement> - <requirement type="package" version="2.3.7">rseqc</requirement> - </requirements> - <command interpreter="python"> RPKM_saturation.py -i $input -o output -r $refgene +<tool id="rseqc_RPKM_saturation" name="RPKM Saturation" version="@WRAPPER_VERSION@"> + <description>calculates raw count and RPKM values for transcript at exon, intron, and mRNA level</description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[RPKM_saturation.py --version]]></version_command> + + <command><![CDATA[ + RPKM_saturation.py -i '${input}' -o output -r '${refgene}' + + #if str($strand_type.strand_specific) == "pair" + -d + #if str($strand_type.pair_type) == "sd" + '1++,1--,2+-,2-+' + #else + '1+-,1-+,2++,2--' + #end if + #end if - #if str($strand_type.strand_specific) == "pair" - -d - #if str($strand_type.pair_type) == "sd" - '1++,1--,2+-,2-+' - #else - '1+-,1-+,2++,2--' - #end if - #end if + #if str($strand_type.strand_specific) == "single" + -d + #if str($strand_type.single_type) == "s" + '++,--' + #else + '+-,-+' + #end if + #end if - #if str($strand_type.strand_specific) == "single" - -d - #if str($strand_type.single_type) == "s" - '++,--' - #else - '+-,-+' - #end if - #end if + -l ${percentileFloor} -u ${percentileCeiling} -s ${percentileStep} -c ${rpkmCutoff} + ]]> + </command> - -l $percentileFloor -u $percentileCeiling -s $percentileStep -c $rpkmCutoff + <inputs> + <expand macro="bam_param" /> + <expand macro="refgene_param" /> + <expand macro="strand_type_param" /> + <param name="percentileFloor" type="integer" value="5" label="Begin sampling from this percentile (default=5)" help="(--percentile-floor)"/> + <param name="percentileCeiling" type="integer" value="100" label="End sampling at this percentile (default=100)" help="(--percentile-ceiling)" /> + <param name="percentileStep" type="integer" value="5" label="Sampling step size (default=5)" help="(--percentile-step)" /> + <param name="rpkmCutoff" type="text" value="0.01" label="Ignore transcripts with RPKM smaller than this number (default=0.01)" help="(--rpkm-cutoff)" /> + <expand macro="mapq_param" /> + <expand macro="rscript_output_param" /> + </inputs> - </command> - <inputs> - <param name="input" type="data" format="bam" label="input bam/sam file" /> - <param name="refgene" type="data" format="bed" label="Reference gene model" /> - <conditional name="strand_type"> - <param name="strand_specific" type="select" label="Strand-specific?" value="None"> - <option value="none">None</option> - <option value="pair">Pair-End RNA-seq</option> - <option value="single">Single-End RNA-seq</option> - </param> - <when value="pair"> - <param name="pair_type" type="select" display="radio" label="Pair-End Read Type (format: mapped --> parent)" value="sd"> - <option value="sd"> read1 (positive --> positive; negative --> negative), read2 (positive --> negative; negative --> positive)</option> - <option value="ds">read1 (positive --> negative; negative --> positive), read2 (positive --> positive; negative --> negative)</option> - </param> - </when> - <when value="single"> - <param name="single_type" type="select" display="radio" label="Single-End Read Type (format: mapped --> parent)" value="s"> - <option value="s">positive --> positive; negative --> negative</option> - <option value="d">positive --> negative; negative --> positive</option> - </param> - </when> - <when value="none"></when> - </conditional> - <param name="percentileFloor" type="integer" value="5" label="Begin sampling from this percentile (default=5)" /> - <param name="percentileCeiling" type="integer" value="100" label="End sampling at this percentile (default=100)" /> - <param name="percentileStep" type="integer" value="5" label="Sampling step size (default=5)" /> - <param name="rpkmCutoff" type="text" value="0.01" label="Ignore transcripts with RPKM smaller than this number (default=0.01)" /> - </inputs> - <outputs> - <data format="xls" name="outputxls" from_work_dir="output.eRPKM.xls"/> - <data format="xls" name="outputrawxls" from_work_dir="output.rawCount.xls"/> - <data format="r" name="outputr" from_work_dir="output.saturation.r"/> - <data format="pdf" name="outputpdf" from_work_dir="output.saturation.pdf"/> - </outputs> - <tests> - <test> - <param name="input" value="Pairend_nonStrandSpecific_36mer_Human_hg19.bam" /> - <param name="refgene" value="hg19_RefSeq.bed" /> - <output name="outputxls" file="rpkmsatout.eRPKM.xls" /> - <output name="outputrawxls" file="rpkmsatout.rawCount.xls" /> - <output name="outputr" file="rpkmsatout.saturation.r" /> - <output name="outputpdf" file="rpkmsatout.saturation.pdf" /> - </test> - </tests> - <help> -.. image:: https://code.google.com/p/rseqc/logo?cct=1336721062 + <outputs> + <expand macro="pdf_output_data" filename="output.saturation.pdf" /> + <data format="xls" name="outputxls" from_work_dir="output.eRPKM.xls" label="${tool.name} on ${on_string} (RPKM xls)"/> + <data format="xls" name="outputrawxls" from_work_dir="output.rawCount.xls" label="${tool.name} on ${on_string} (Raw Count xls)"/> + <expand macro="rscript_output_data" filename="output.saturation.r" /> + </outputs> ------ + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_random.bam"/> + <param name="refgene" value="hg19.HouseKeepingGenes_30.bed"/> + <param name="rscript_output" value="true" /> + <output name="outputxls"> + <assert_contents> + <has_n_columns n="26" /> + <has_line_matching expression="chr1\t16174358\t16266950\tNM_015001.*" /> + </assert_contents> + </output> + <output name="outputrawxls"> + <assert_contents> + <has_n_columns n="26" /> + <has_line_matching expression="chr1\t16174358\t16266950\tNM_015001.*" /> + </assert_contents> + </output> + <output name="outputr"> + <assert_contents> + <has_text text="pdf('output.saturation.pdf')" /> + <has_line_matching expression="S5=c\(\d+\.\d+\)" /> + </assert_contents> + </output> + <output name="outputpdf" file="output.saturation.pdf" compare="sim_size" /> + </test> + </tests> -About RSeQC -+++++++++++ + <help><![CDATA[ +RPKM_saturation.py +++++++++++++++++++ -The RSeQC package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data. “Basic modules” quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC bias, while “RNA-seq specific modules” investigate sequencing saturation status of both splicing junction detection and expression estimation, mapped reads clipping profile, mapped reads distribution, coverage uniformity over gene body, reproducibility, strand specificity and splice junction annotation. +The precision of any sample statitics (RPKM) is affected by sample size (sequencing depth); +\'resampling\' or \'jackknifing\' is a method to estimate the precision of sample statistics by +using subsets of available data. This module will resample a series of subsets from total RNA +reads and then calculate RPKM value using each subset. By doing this we are able to check if +the current sequencing depth was saturated or not (or if the RPKM values were stable or not) +in terms of genes' expression estimation. If sequencing depth was saturated, the estimated +RPKM value will be stationary or reproducible. By default, this module will calculate 20 +RPKM values (using 5%, 10%, ... , 95%,100% of total reads) for each transcripts. -The RSeQC package is licensed under the GNU GPL v3 license. +In the output figure, Y axis is "Percent Relative Error" or "Percent Error" which is used +to measures how the RPKM estimated from subset of reads (i.e. RPKMobs) deviates from real +expression level (i.e. RPKMreal). However, in practice one cannot know the RPKMreal. As a +proxy, we use the RPKM estimated from total reads to approximate RPKMreal. + +.. image:: $PATH_TO_IMAGES/RelativeError.png + :height: 80 px + :width: 400 px + :scale: 100 % Inputs ++++++++++++++ Input BAM/SAM file - Alignment file in BAM/SAM format. + Alignment file in BAM/SAM format. Reference gene model - Gene model in BED format. + Gene model in BED format. Strand sequencing type (default=none) - See Infer Experiment tool if uncertain. + See Infer Experiment tool if uncertain. Options ++++++++++++++ Skip Multiple Hit Reads - Use Multiple hit reads or use only uniquely mapped reads. + Use Multiple hit reads or use only uniquely mapped reads. -Only use exonic reads - Renders program only used exonic (UTR exons and CDS exons) reads, otherwise use all reads. +Only use exonic reads + Renders program only used exonic (UTR exons and CDS exons) reads, otherwise use all reads. Output ++++++++++++++ @@ -112,17 +134,35 @@ 3. output.saturation.r: R script to generate plot 4. output.saturation.pdf: -.. image:: http://dldcc-web.brc.bcm.edu/lilab/liguow/RSeQC/figure/saturation.png +.. image:: $PATH_TO_IMAGES/saturation.png + :height: 600 px + :width: 600 px + :scale: 80 % - All transcripts were sorted in ascending order according to expression level (RPKM). Then they are divided into 4 groups: - 1. Q1 (0-25%): Transcripts with expression level ranked below 25 percentile. - 2. Q2 (25-50%): Transcripts with expression level ranked between 25 percentile and 50 percentile. - 3. Q3 (50-75%): Transcripts with expression level ranked between 50 percentile and 75 percentile. - 4. Q4 (75-100%): Transcripts with expression level ranked above 75 percentile. + 1. Q1 (0-25%): Transcripts with expression level ranked below 25 percentile. + 2. Q2 (25-50%): Transcripts with expression level ranked between 25 percentile and 50 percentile. + 3. Q3 (50-75%): Transcripts with expression level ranked between 50 percentile and 75 percentile. + 4. Q4 (75-100%): Transcripts with expression level ranked above 75 percentile. - BAM/SAM file containing more than 100 million alignments will make module very slow. - Follow example below to visualize a particular transcript (using R console):: -- output example -.. image:: http://dldcc-web.brc.bcm.edu/lilab/liguow/RSeQC/figure/saturation_eg.png + + pdf("xxx.pdf") #starts the graphics device driver for producing PDF graphics + x <- seq(5,100,5) #resampling percentage (5,10,15,...,100) + rpkm <- c(32.95,35.43,35.15,36.04,36.41,37.76,38.96,38.62,37.81,38.14,37.97,38.58,38.59,38.54,38.67, 38.67,38.87,38.68, 38.42, 38.23) #Paste RPKM values calculated from each subsets + scatter.smooth(x,100*abs(rpkm-rpkm[length(rpkm)])/(rpkm[length(rpkm)]),type="p",ylab="Precent Relative Error",xlab="Resampling Percentage") + dev.off() #close graphical device - </help> +.. image:: $PATH_TO_IMAGES/saturation_eg.png + :height: 600 px + :width: 600 px + :scale: 80 % + +@ABOUT@ + +]]> + </help> + + <expand macro="citations" /> + </tool>
--- a/bam2wig.xml Thu Jul 18 11:01:08 2013 -0500 +++ b/bam2wig.xml Tue Mar 14 10:22:57 2017 -0400 @@ -1,124 +1,130 @@ -<tool id="bam2wig" name="BAM to Wiggle"> - <description> - converts all types of RNA-seq data from .bam to .wig - </description> - <requirements> - <requirement type="package" version="2.15.1">R</requirement> - <requirement type="package" version="0.1.18">samtools</requirement> - <requirement type="package" version="2.3.7">rseqc</requirement> - </requirements> - <command interpreter="python"> - samtoolshelper.py /home/nilesh/RSeQC-2.3.3/scripts/bam2wig.py -i $input -s $chromsize -o outfile +<tool id="rseqc_bam2wig" name="BAM to Wiggle" version="@WRAPPER_VERSION@"> + <description> + converts all types of RNA-seq data from .bam to .wig + </description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[bam2wig.py --version]]></version_command> + + <command><![CDATA[ + ln -sf '${input}' 'input.bam' && + ln -sf '${input.metadata.bam_index}' 'input.bam.bai' && + bam2wig.py -i 'input.bam' -s '${chromsize}' -o outfile - #if str($strand_type.strand_specific) == "pair" - -d - #if str($strand_type.pair_type) == "sd" - '1++,1--,2+-,2-+' - #else - '1+-,1-+,2++,2--' - #end if - #end if + #if str($strand_type.strand_specific) == "pair" + -d + #if str($strand_type.pair_type) == "sd" + '1++,1--,2+-,2-+' + #else + '1+-,1-+,2++,2--' + #end if + #end if - #if str($strand_type.strand_specific) == "single" - -d - #if str($strand_type.single_type) == "s" - '++,--' - #else - '+-,-+' - #end if - #end if + #if str($strand_type.strand_specific) == "single" + -d + #if str($strand_type.single_type) == "s" + '++,--' + #else + '+-,-+' + #end if + #end if - #if $wigsum.wigsum_type - -t $wigsum.totalwig - #end if + #if str($wigsum_type.wigsum_type_selector) == "normalize": + -t ${wigsum.totalwig} + #end if - #if $skipmultihits - -u - #end if - </command> - <inputs> - <param name="input" type="data" label="Input .bam File" format="bam" /> - <param name="chromsize" type="data" label="Chromosome size file (tab or space separated)" format="txt,tabular" /> - <param name="skipmultihits" type="boolean" label="Skip Multiple Hit Reads/Only Use Uniquely Mapped Reads" value="false" /> - <conditional name="wigsum"> - <param name="wigsum_type" type="boolean" label="Specify wigsum?" value="false"> - </param> - <when value="true"> - <param name="totalwig" value="0" type="integer" label="specified wigsum" /> - </when> - <when value="false"></when> - </conditional> - <conditional name="strand_type"> - <param name="strand_specific" type="select" label="Strand-specific?" value="none"> - <option value="none">none</option> - <option value="pair">Pair-End RNA-seq</option> - <option value="single">Single-End RNA-seq</option> - </param> - <when value="pair"> - <param name="pair_type" type="select" display="radio" label="Pair-End Read Type (format: mapped --> parent)" value="sd"> - <option value="sd"> read1 (positive --> positive; negative --> negative), read2 (positive --> negative; negative --> positive)</option> - <option value="ds">read1 (positive --> negative; negative --> positive), read2 (positive --> positive; negative --> negative)</option> - </param> - </when> - <when value="single"> - <param name="single_type" type="select" display="radio" label="Single-End Read Type (format: mapped --> parent)" value="s"> - <option value="s">positive --> positive; negative --> negative</option> - <option value="d">positive --> negative; negative --> positive</option> - </param> - </when> - <when value="none"></when> - </conditional> - </inputs> - <outputs> - <data format="wig" name="output" from_work_dir="outfile.wig"> - <filter>strand_type['strand_specific'] == 'none'</filter> - </data> - <data format="wig" name="outputfwd" from_work_dir="outfile_Forward.wig"> - <filter>strand_type['strand_specific'] != 'none'</filter> - </data> - <data format="wig" name="outputrv" from_work_dir="outfile_Reverse.wig"> - <filter>strand_type['strand_specific'] != 'none'</filter> - </data> - </outputs> - <tests> - <test> - <param name="input" value="Pairend_nonStrandSpecific_36mer_Human_hg19.bam" /> - <param name="chromsize" value="sample.hg19.chrom.sizes.txt" /> - <param name="skipmultihits" value="false" /> - <param name="wigsum.wigsum_type" value="false" /> - <param name="strand_type.strand_specific" value="none" /> - <output name="output" file="outfile.wig" /> - </test> - </tests> - <help> -.. image:: https://code.google.com/p/rseqc/logo?cct=1336721062 + @MULTIHITS@ + ]]> + </command> + <inputs> + <expand macro="bam_param" /> + <param name="chromsize" type="data" label="Chromosome size file (tab or space separated)" format="txt,tabular" help="(--chromSize)"/> + <expand macro="multihits_param" /> + <conditional name="wigsum_type"> + <param name="wigsum_type_selector" type="select" label="Normalization"> + <option value="normalize">Normalize to specified sum</option> + <option value="raw" selected="true">Do not normalize</option> + </param> + <when value="normalize"> + <param name="totalwig" value="" type="integer" label="specified wigsum" help="(--wigsum)"/> + </when> + <when value="raw"/> + </conditional> + <expand macro="strand_type_param" /> + </inputs> + + <outputs> + <data format="wig" name="output" from_work_dir="outfile.wig"> + <filter>strand_type['strand_specific'] == 'none'</filter> + </data> + <data format="wig" name="outputfwd" from_work_dir="outfile.Forward.wig" label="${tool.name} on ${on_string} (Forward Reads)"> + <filter>strand_type['strand_specific'] != 'none'</filter> + </data> + <data format="wig" name="outputrv" from_work_dir="outfile.Reverse.wig" label="${tool.name} on ${on_string} (Reverse Reads)"> + <filter>strand_type['strand_specific'] != 'none'</filter> + </data> + </outputs> ------ + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam"/> + <param name="chromsize" value="hg19.chrom.sizes"/> + <output name="output" file="testwig.wig"/> + </test> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam"/> + <param name="chromsize" value="hg19.chrom.sizes"/> + <param name="multihits_type.multihits_type_selector" value="skipmultihits"/> + <param name="multihits_type.mapq" value="20"/> + <output name="output" file="testwig.wig"/> + </test> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam"/> + <param name="chromsize" value="hg19.chrom.sizes"/> + <param name="strand_specific" value="pair"/> + <param name="pair_type" value="sd"/> + <output name="outputfwd" file="testwig.Forward.wig"/> + <output name="outputrv" file="testwig.Reverse.wig"/> + </test> + </tests> -About RSeQC -+++++++++++ + <help><![CDATA[ +bam2wig.py +++++++++++ -The RSeQC package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data. “Basic modules” quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC bias, while “RNA-seq specific modules” investigate sequencing saturation status of both splicing junction detection and expression estimation, mapped reads clipping profile, mapped reads distribution, coverage uniformity over gene body, reproducibility, strand specificity and splice junction annotation. - -The RSeQC package is licensed under the GNU GPL v3 license. +Visualization is the most straightforward and effective way to QC your RNA-seq +data. For example, change of expression or new splicing can be easily checked +by visually comparing two RNA-seq tracks using genome browser such as UCSC_, +IGB_ and IGV_. `bam2wig.py` converts all types of RNA-seq data from BAM_ +format into wiggle_ format in one-stop. wiggle_ files can then be easily +converted into bigwig_. Bigwig is indexed, binary format of wiggle file, and +it's particular useful to display large, continuous dataset on genome +browser. Inputs ++++++++++++++ Input BAM file - Alignment file in BAM format (SAM is not supported). BAM file will be sorted and indexed using samTools. + Alignment file in BAM format (SAM is not supported). BAM file will be sorted and indexed using samTools. Chromosome size file - Tab or space separated text file with 2 columns: first column is chromosome name, second column is size of the chromosome. Chromosome names (such as "chr1") should be consistent between this file and BAM file. + Tab or space separated text file with 2 columns: first column is chromosome name, second column is size of the chromosome. Chromosome names (such as "chr1") should be consistent between this file and BAM file. Specified wigsum (default=none) - Specified wigsum. Wigsum of 100000000 equals to coverage achieved by 1 million 100nt reads. Ignore this option to disable normalization. + Specified wigsum. Wigsum of 100000000 equals to coverage achieved by 1 million 100nt reads. Ignore this option to disable normalization. Skip multiple Hit reads - skips multiple hit reads or only use uniquely mapped reads + skips multiple hit reads or only use uniquely mapped reads Strand-specific (default=none) - How read(s) were stranded during sequencing. If you are not sure about the strand rule, run infer_experiment.py + How read(s) were stranded during sequencing. If you are not sure about the strand rule, run infer_experiment.py Outputs ++++++++++++++ @@ -126,6 +132,17 @@ If RNA-seq is not strand specific, one wig file will be generated, if RNA-seq is strand specific, two wig files corresponding to Forward and Reverse will be generated. +@ABOUT@ - </help> -</tool> \ No newline at end of file +.. _UCSC: http://genome.ucsc.edu/index.html +.. _IGB: http://bioviz.org/igb/ +.. _IGV: http://software.broadinstitute.org/software/igv/ +.. _BAM: http://genome.ucsc.edu/goldenPath/help/bam.html +.. _wiggle: http://genome.ucsc.edu/goldenPath/help/wiggle.html +.. _bigwig: http://genome.ucsc.edu/FAQ/FAQformat.html#format6.1 +]]> + </help> + + <expand macro="citations" /> + +</tool>
--- a/bam_stat.xml Thu Jul 18 11:01:08 2013 -0500 +++ b/bam_stat.xml Tue Mar 14 10:22:57 2017 -0400 @@ -1,46 +1,58 @@ -<tool id="bam_stat" name="BAM/SAM Mapping Stats"> - <description> - reads mapping statistics for a provided BAM or SAM file. - </description> - <requirements> - <requirement type="package" version="2.3.7">rseqc</requirement> - </requirements>s - <command interpreter="python"> - bam_stat.py -i $input -q $mapqual &> $output - </command> - <inputs> - <param name="input" type="data" label="Input .bam/.sam File" format="bam,sam" /> - <param label="Minimum mapping quality (default=30" type="integer" value="30" name="mapqual" /> - </inputs> - <outputs> - <data format="txt" name="output" /> - </outputs> - <tests> - <test> - <param name="input" value="Pairend_nonStrandSpecific_36mer_Human_hg19.bam" /> - <output name="bamstatout.txt" - </test> - </tests> - <help> -.. image:: https://code.google.com/p/rseqc/logo?cct=1336721062 +<tool id="rseqc_bam_stat" name="BAM/SAM Mapping Stats" version="@WRAPPER_VERSION@"> + <description> + reads mapping statistics for a provided BAM or SAM file. + </description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[bam_stat.py --version]]></version_command> ------ + <command><![CDATA[ + bam_stat.py -i '${input}' -q ${mapq} > '${output}' + ]]> + </command> + + <inputs> + <expand macro="bam_param" /> + <expand macro="mapq_param" /> + </inputs> -About RSeQC + <outputs> + <data format="txt" name="output" /> + </outputs> + + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam" /> + <output name="output" file="output.bamstats.txt" /> + </test> + </tests> + + <help><![CDATA[ +bam_stat.py +++++++++++ -The RSeQC package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data. “Basic modules” quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC bias, while “RNA-seq specific modules” investigate sequencing saturation status of both splicing junction detection and expression estimation, mapped reads clipping profile, mapped reads distribution, coverage uniformity over gene body, reproducibility, strand specificity and splice junction annotation. - -The RSeQC package is licensed under the GNU GPL v3 license. +This program is used to calculate reads mapping statistics from provided BAM +file. This script determines "uniquely mapped reads" from `mapping quality +<http://genome.sph.umich.edu/wiki/Mapping_Quality_Scores>`_, +which quality the probability that a read is misplaced (Do NOT confused with +sequence quality, sequence quality measures the probability that a base-calling +was wrong) . Inputs ++++++++++++++ Input BAM/SAM file - Alignment file in BAM/SAM format. + Alignment file in BAM/SAM format. Minimum mapping quality - Minimum mapping quality for an alignment to be called “uniquely mapped” (default=30) + Minimum mapping quality for an alignment to be called "uniquely mapped" (default=30) Output ++++++++++++++ @@ -50,6 +62,10 @@ - Uniquely mapped Reads = {Reads map to '+'} + {Reads map to '-'} - Uniquely mapped Reads = {Splice reads} + {Non-splice reads} +@ABOUT@ - </help> -</tool> \ No newline at end of file +]]> + </help> + + <expand macro="citations" /> +</tool>
--- a/clipping_profile.xml Thu Jul 18 11:01:08 2013 -0500 +++ b/clipping_profile.xml Tue Mar 14 10:22:57 2017 -0400 @@ -1,54 +1,85 @@ -<tool id="clipping_profile" name="Clipping Profile"> - <description> - estimates clipping profile of RNA-seq reads from BAM or SAM file - </description> - <requirements> - <requirement type="package" version="2.15.1">R</requirement> - <requirement type="package" version="2.3.7">rseqc</requirement> - </requirements> - <command> - clipping_profile.py -i $input -o output - </command> - <inputs> - <param name="input" type="data" label="Input .bam/.sam File" format="bam,sam" /> - </inputs> - <outputs> - <data format="xls" name="outputxls" from_work_dir="output.clipping_profile.xls" /> - <data format="r" name="outputr" from_work_dir="output.clipping_profile.r" /> - <data format="pdf" name="outputpdf" from_work_dir="clipping_profile.pdf" /> - </outputs> - <tests> - <test> - <param name="input" value="Pairend_StrandSpecific_51mer_Human_hg19.bam" /> - <output name="outputxls" file="clipprofout.clipping_profile.xls" /> - <output name="outputr" file="clipprofout.clipping_profile.r" /> - <output name="outputpdf" file="clipping_profile.pdf" /> - </test> - </tests> - <help> -.. image:: https://code.google.com/p/rseqc/logo?cct=1336721062 +<tool id="rseqc_clipping_profile" name="Clipping Profile" version="@WRAPPER_VERSION@"> + <description> + estimates clipping profile of RNA-seq reads from BAM or SAM file + </description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[clipping_profile.py --version]]></version_command> + + <command><![CDATA[ + clipping_profile.py -i '${input}' -o output -q ${mapq} -s "${layout}" + ]]> + </command> + + <inputs> + <expand macro="bam_param" /> + <expand macro="mapq_param" /> + <expand macro="layout_param" /> + <expand macro="rscript_output_param" /> + </inputs> ------ + <outputs> + <expand macro="pdf_output_data" filename="output.clipping_profile.pdf" /> + <expand macro="xls_output_data" filename="output.clipping_profile.xls" /> + <expand macro="rscript_output_data" filename="output.clipping_profile.r" /> + </outputs> -About RSeQC -+++++++++++ + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam" /> + <output name="outputpdf" file="output.clipping_profile.pdf" compare="sim_size" /> + <output name="outputxls" file="output.clipping_profile.xls" /> + </test> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam" /> + <param name="rscript_output" value="true" /> + <output name="outputpdf" file="output.clipping_profile.pdf" compare="sim_size" /> + <output name="outputxls" file="output.clipping_profile.xls" /> + <output name="outputr" file="output.clipping_profile.r" /> + </test> + </tests> -The RSeQC package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data. “Basic modules” quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC bias, while “RNA-seq specific modules” investigate sequencing saturation status of both splicing junction detection and expression estimation, mapped reads clipping profile, mapped reads distribution, coverage uniformity over gene body, reproducibility, strand specificity and splice junction annotation. + <help><![CDATA[ +clipping_profile.py ++++++++++++++++++++ -The RSeQC package is licensed under the GNU GPL v3 license. +This program is used to estimate clipping profile of RNA-seq reads from BAM or SAM file. +Note that to use this funciton, CIGAR strings within SAM/BAM file should have 'S' operation +(This means your reads aligner should support clipped mapping). Inputs ++++++++++++++ Input BAM/SAM file - Alignment file in BAM/SAM format. + Alignment file in BAM/SAM format. +Minimum mapping quality + Minimum mapping quality for an alignment to be considered as "uniquely + mapped". default=30 + +Sequencing layout + Denotes whether the sequecing was single-end (SE) or paired-end (PE). Sample Output ++++++++++++++ -.. image:: http://dldcc-web.brc.bcm.edu/lilab/liguow/RSeQC/figure/clipping_good.png +.. image:: $PATH_TO_IMAGES/clipping_good.png + :height: 600 px + :width: 600 px + :scale: 80 % +@ABOUT@ - </help> -</tool> \ No newline at end of file +]]> + </help> + + <expand macro="citations" /> + +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deletion_profile.xml Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,87 @@ +<tool id="rseqc_deletion_profile" name="Deletion Profile" version="@WRAPPER_VERSION@"> + <description> + calculates the distributions of deleted nucleotides across reads + </description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[deletion_profile.py --version]]></version_command> + + <command><![CDATA[ + deletion_profile.py -i '${input}' -o output -l ${readlength} -n ${readnum} -q ${mapq} + ]]> + </command> + + <inputs> + <expand macro="bam_param" /> + <expand macro="readlength_param" /> + <expand macro="readnum_param" /> + <expand macro="mapq_param" /> + <expand macro="rscript_output_param" /> + </inputs> + + <outputs> + <expand macro="pdf_output_data" filename="output.deletion_profile.pdf" /> + <expand macro="xls_output_data" filename="output.deletion_profile.txt" /> + <expand macro="rscript_output_data" filename="output.deletion_profile.r" /> + </outputs> + + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam" /> + <param name="readlength" value="101" /> + <param name="rscript_output" value="true" /> + <output name="outputpdf" file="output.deletion_profile.pdf" compare="sim_size" /> + <output name="outputxls" file="output.deletion_profile.txt" /> + <output name="outputr" file="output.deletion_profile.r" /> + </test> + </tests> + + <help><![CDATA[ +deletion_profile.py ++++++++++++++++++++ + +Calculate the distributions of deleted nucleotides across reads. + +Inputs +++++++ + +Input BAM/SAM file + Alignment file in BAM/SAM format. + +Alignment length of read + It is usually set to the orignial read length. For example, all these cigar + strings ("101M", "68M140N33M", "53M1D48M") suggest the read alignment + length is 101. [required] + +Number of aligned reads used + Number of aligned reads with deletions used to calculate the deletion + profile. default=1000000 + +Minimum mapping quality + Minimum mapping quality for an alignment to be considered as "uniquely + mapped". default=30 + +Sample Output +++++++++++++++ + +.. image:: $PATH_TO_IMAGES/out.deletion_profile.png + :height: 600 px + :width: 600 px + :scale: 80 % + +@ABOUT@ + +]]> + + </help> + + <expand macro="citations" /> + +</tool>
--- a/geneBody_coverage.xml Thu Jul 18 11:01:08 2013 -0500 +++ b/geneBody_coverage.xml Tue Mar 14 10:22:57 2017 -0400 @@ -1,63 +1,126 @@ -<tool id="geneBody_coverage" name="Gene Body Converage (BAM)"> - <description> - Read coverage over gene body. - </description> - <requirements> - <requirement type="package" version="2.15.1">R</requirement> - <requirement type="package" version="2.3.7">rseqc</requirement> - </requirements> - <command interpreter="python"> - geneBody_coverage.py -i $input -r $refgene -o output - </command> - <inputs> - <param name="input" type="data" label="Input .bam file" format="bam" /> - <param name="refgene" type="data" label="Reference Genome" format="bed" /> - </inputs> - <outputs> - <data name="outputpdf" format="pdf" from_work_dir="output.geneBodyCoverage.pdf" /> - <data name="outputr" format="r" from_work_dir="output.geneBodyCoverage_plot.r" /> - <data name="outputtxt" format="txt" from_work_dir="output.geneBodyCoverage.txt" /> - </outputs> - <tests> - <test> - <param name="input" value="Pairend_nonStrandSpecific_36mer_Human_hg19.bam" /> - <param name="refgene" value="hg19_RefSeq.bed" /> - <output name="outputpdf" file="gbcout.geneBodyCoverage.pdf" /> - <output name="outputr" file="gbcout.geneBodyCoverage_plot.r" /> - <output name="outputtxt" file="gbcout.geneBodyCoverage.txt" /> - </test> - </tests> - <help> -.. image:: https://code.google.com/p/rseqc/logo?cct=1336721062 +<tool id="rseqc_geneBody_coverage" name="Gene Body Converage (BAM)" version="@WRAPPER_VERSION@"> + <description> + Read coverage over gene body. + </description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[geneBody_coverage.py --version]]></version_command> + + <command><![CDATA[ + #import re + #set $input_list = [] + #for $i, $input in enumerate($inputs): + #set $safename = re.sub('[^\w\-_]', '_', $input.element_identifier) + #if $safename in $input_list: + #set $safename = str($safename) + "." + str($i) + #end if + $input_list.append($safename) + ln -sf '${input}' '${safename}.bam' && + ln -sf '${input.metadata.bam_index}' '${safename}.bam.bai' && + echo '${safename}.bam' >> 'input_list.txt' && + #end for + geneBody_coverage.py -i 'input_list.txt' -r '${refgene}' --minimum_length ${minimum_length} -o output + ]]> + </command> + + <inputs> + <param name="inputs" type="data" label="Input .bam file(s)" format="bam" help="(--input-file)" multiple="true"/> + <expand macro="refgene_param" /> + <param name="minimum_length" type="integer" value="100" label="Minimum mRNA length (default: 100)" help="Minimum mRNA length in bp, mRNA that are shorter than this value will be skipped (--minimum_length)." /> + <expand macro="rscript_output_param" /> + </inputs> ------ - -About RSeQC -+++++++++++ + <outputs> + <data name="outputcurvespdf" format="pdf" from_work_dir="output.geneBodyCoverage.curves.pdf" label="${tool.name} on ${on_string} (Curves pdf)" /> + <data name="outputheatmappdf" format="pdf" from_work_dir="output.geneBodyCoverage.heatMap.pdf" label="${tool.name} on ${on_string} (HeatMap pdf)"> + <filter>len(inputs) >= 3</filter> + </data> + <expand macro="rscript_output_data" filename="output.geneBodyCoverage.r" /> + <data name="outputtxt" format="txt" from_work_dir="output.geneBodyCoverage.txt" label="${tool.name} on ${on_string} (text)" /> + </outputs> -The RSeQC package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data. “Basic modules” quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC bias, while “RNA-seq specific modules” investigate sequencing saturation status of both splicing junction detection and expression estimation, mapped reads clipping profile, mapped reads distribution, coverage uniformity over gene body, reproducibility, strand specificity and splice junction annotation. + <!-- PDF Files contain R version, must avoid checking for diff --> + <tests> + <test> + <param name="inputs" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam" /> + <param name="refgene" value="hg19_RefSeq_chr1_1-100000.bed" /> + <param name="rscript_output" value="true" /> + <output name="outputcurvespdf" file="output.geneBodyCoverage.curves.pdf" compare="sim_size" /> + <output name="outputr" file="output.geneBodyCoverage.r" /> + <output name="outputtxt" file="output.geneBodyCoverage.txt" /> + </test> + <test> + <param name="inputs" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam,pairend_strandspecific_51mer_hg19_chr1_1-100000.bam,pairend_strandspecific_51mer_hg19_chr1_1-100000.bam" /> + <param name="refgene" value="hg19_RefSeq_chr1_1-100000.bed" /> + <param name="rscript_output" value="true" /> + <output name="outputcurvespdf" file="output2.geneBodyCoverage.curves.pdf" compare="sim_size" /> + <output name="outputheatmappdf" file="output2.geneBodyCoverage.heatMap.pdf" compare="sim_size" /> + <output name="outputr" file="output2.geneBodyCoverage.r" /> + <output name="outputtxt" file="output2.geneBodyCoverage.txt" /> + </test> -The RSeQC package is licensed under the GNU GPL v3 license. + </tests> + + <help><![CDATA[ +## geneBody_coverage.py + +Read coverage over gene body. This module is used to check if read coverage is uniform and if there is any 5\'/3\' bias. This module scales all transcripts to 100 nt and calculates the number of reads covering each nucleotide position. Finally, it generates plots illustrating the coverage profile along the gene body. + +If 3 or more BAM files were provided. This program generates a lineGraph and a heatmap. If fewer than 3 BAM files were provided, only lineGraph is generated. See below for examples. -Inputs -++++++++++++++ +When heatmap is generated, samples are ranked by the "skewness" of the coverage: Sample with best (worst) coverage will be displayed at the top (bottom) of the heatmap. +Coverage skewness was measured by `Pearson’s skewness coefficients <http://en.wikipedia.org/wiki/Skewness#Pearson.27s_skewness_coefficients>`_ + +.. image:: $PATH_TO_IMAGES/geneBody_workflow.png +:width: 800 px +:scale: 80 % + + +## Inputs Input BAM/SAM file - Alignment file in BAM/SAM format. + Alignment file in BAM/SAM format. Reference gene model - Gene Model in BED format. + Gene Model in BED format. +Minimum mRNA length + Minimum mRNA length (bp). mRNA that are shorter than this value will be skipped (default is 100). + + ## Outputs -Outputs -++++++++++++++ +Text + Table that includes the data used to generate the plots -Read coverage over gene body. This module is used to check if reads coverage is uniform and if there is any 5’/3’ bias. This module scales all transcripts to 100 nt and calculates the number of reads covering each nucleotide position. Finally, it generates a plot illustrating the coverage profile along the gene body. NOTE: this module requires lots of memory for large BAM files, because it load the entire BAM file into memory. We add another script "geneBody_coverage2.py" into v2.3.1 which takes bigwig (instead of BAM) as input. It only use 200M RAM, but users need to convert BAM into WIG, and then WIG into BigWig. +R Script + R script file that reads the data and generates the plot + +PDF + The final plot, in PDF format -Example output: - .. image:: http://dldcc-web.brc.bcm.edu/lilab/liguow/RSeQC/figure/geneBody_coverage.png - +Example plots: +.. image:: $PATH_TO_IMAGES/Aug_26.geneBodyCoverage.curves.png +:height: 600 px +:width: 600 px +:scale: 80 % +.. image:: $PATH_TO_IMAGES/Aug_26.geneBodyCoverage.heatMap.png +:height: 600 px +:width: 600 px +:scale: 80 % - </help> -</tool> \ No newline at end of file +@ABOUT@ + + ]]> + </help> + + <expand macro="citations" /> + +</tool>
--- a/geneBody_coverage2.xml Thu Jul 18 11:01:08 2013 -0500 +++ b/geneBody_coverage2.xml Tue Mar 14 10:22:57 2017 -0400 @@ -1,43 +1,61 @@ -<tool id="geneBody_coverage" name="Gene Body Converage (Bigwig)"> - <description> - Read coverage over gene body. - </description> - <requirements> - <requirement type="package" version="2.15.1">R</requirement> - <requirement type="package" version="2.3.7">rseqc</requirement> - </requirements> - <command interpreter="python"> - geneBody_coverage2.py -i $input -r $refgene -o output - </command> - <inputs> - <param name="input" type="data" label="Input bigwig file" format="bigwig" /> - <param name="refgene" type="data" label="Reference Genome" format="bed" /> - </inputs> - <outputs> - <data name="outputpdf" format="pdf" from_work_dir="output.geneBodyCoverage.pdf" /> - <data name="outputr" format="r" from_work_dir="output.geneBodyCoverage_plot.r" /> - <data name="outputtxt" format="txt" from_work_dir="output.geneBodyCoverage.txt" /> - </outputs> - <help> -.. image:: https://code.google.com/p/rseqc/logo?cct=1336721062 +<tool id="rseqc_geneBody_coverage2" name="Gene Body Converage (Bigwig)" version="@WRAPPER_VERSION@"> + <description> + Read coverage over gene body + </description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[geneBody_coverage2.py --version]]></version_command> + + <command><![CDATA[ + geneBody_coverage2.py -i '${input}' -r '${refgene}' -o output + ]]> + </command> + + <inputs> + <param name="input" type="data" label="Input bigwig file" format="bigwig" /> + <expand macro="refgene_param" /> + </inputs> ------ + <outputs> + <expand macro="pdf_output_data" filename="output.geneBodyCoverage.pdf" /> + <data name="outputtxt" format="txt" from_work_dir="output.geneBodyCoverage.txt" label="${tool.name} on ${on_string} (text)" /> + <expand macro="rscript_output_data" filename="output.geneBodyCoverage_plot.r" /> + </outputs> -About RSeQC -+++++++++++ + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bigwig" /> + <param name="refgene" value="hg19_RefSeq_chr1_1-100000.bed" /> + <param name="rscript_output" value="true" /> + <output name="outputpdf" file="output.geneBodyCoverage2.curves.pdf" compare="sim_size" /> + <output name="outputr" file="output.geneBodyCoverage2.r" /> + <output name="outputtxt" file="output.geneBodyCoverage2.txt" /> + </test> + </tests> -The RSeQC package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data. “Basic modules” quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC bias, while “RNA-seq specific modules” investigate sequencing saturation status of both splicing junction detection and expression estimation, mapped reads clipping profile, mapped reads distribution, coverage uniformity over gene body, reproducibility, strand specificity and splice junction annotation. + <help><![CDATA[ +geneBody_coverage2.py ++++++++++++++++++++++ -The RSeQC package is licensed under the GNU GPL v3 license. +Similar to geneBody_coverage.py. This module takes bigwig instead of BAM as input, and thus +requires much less memory. The BigWig file could be arbitrarily large. + Inputs ++++++++++++++ Input BAM/SAM file - Alignment file in BAM/SAM format. + Alignment file in BAM/SAM format. Reference gene model - Gene Model in BED format. + Gene Model in BED format. Outputs @@ -46,9 +64,16 @@ Read coverage over gene body. This module is used to check if reads coverage is uniform and if there is any 5’/3’ bias. This module scales all transcripts to 100 nt and calculates the number of reads covering each nucleotide position. Finally, it generates a plot illustrating the coverage profile along the gene body. NOTE: this module requires lots of memory for large BAM files, because it load the entire BAM file into memory. We add another script "geneBody_coverage2.py" into v2.3.1 which takes bigwig (instead of BAM) as input. It only use 200M RAM, but users need to convert BAM into WIG, and then WIG into BigWig. Example output: - .. image:: http://dldcc-web.brc.bcm.edu/lilab/liguow/RSeQC/figure/geneBody_coverage.png + .. image:: $PATH_TO_IMAGES/geneBody_coverage.png + :height: 600 px + :width: 600 px + :scale: 80 % +@ABOUT@ +]]> + </help> - </help> -</tool> \ No newline at end of file + <expand macro="citations" /> + +</tool>
--- a/infer_experiment.xml Thu Jul 18 11:01:08 2013 -0500 +++ b/infer_experiment.xml Tue Mar 14 10:22:57 2017 -0400 @@ -1,124 +1,141 @@ -<tool id="infer_experiment" name="Infer Experiment"> - <description>speculates how RNA-seq were configured</description> - <requirements> - <requirement type="package" version="2.3.7">rseqc</requirement> - </requirements> - <command interpreter="python"> infer_experiment.py -i $input -r $refgene - - #if $sample_size.boolean - -s $sample_size.size - #end if - - > $output - </command> - <inputs> - <param name="input" type="data" format="bam,sam" label="Input BAM/SAM file" /> - <param name="refgene" type="data" format="bed" label="Reference gene model in bed format" /> - <conditional name="sample_size"> - <param name="boolean" type="boolean" label="Modify usable sampled reads" value="false" /> - <when value="true"> - <param name="size" type="integer" label="Number of usable sampled reads (default = 200000)" value="200000" /> - </when> - </conditional> - </inputs> - <outputs> - <data format="txt" name="output" /> - </outputs> - <tests> - <test> - <param name="input" value="Pairend_nonStrandSpecific_36mer_Human_hg19.bam" /> - <param name="refgene" value="hg19_RefSeq.bed" /> - <output name="output" file="inferexpout.txt" /> - </test> - </tests> - <help> -.. image:: https://code.google.com/p/rseqc/logo?cct=1336721062 +<tool id="rseqc_infer_experiment" name="Infer Experiment" version="@WRAPPER_VERSION@"> + <description>speculates how RNA-seq were configured</description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[infer_experiment.py --version]]></version_command> + + <command><![CDATA[ + infer_experiment.py -i '${input}' -r '${refgene}' + --sample-size ${sample_size} + --mapq ${mapq} + > '${output}' + ]]> + </command> ------ + <inputs> + <expand macro="bam_param" /> + <expand macro="refgene_param" /> + <expand macro="sample_size_param" /> + <expand macro="mapq_param" /> + </inputs> + + <outputs> + <data format="txt" name="output" /> + </outputs> -About RSeQC -+++++++++++ + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam"/> + <param name="refgene" value="hg19_RefSeq_chr1_1-100000.bed"/> + <output name="output" file="output.infer_experiment.txt"/> + </test> + </tests> -The RSeQC package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data. “Basic modules” quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC bias, while “RNA-seq specific modules” investigate sequencing saturation status of both splicing junction detection and expression estimation, mapped reads clipping profile, mapped reads distribution, coverage uniformity over gene body, reproducibility, strand specificity and splice junction annotation. + <help><![CDATA[ +infer_experiment.py ++++++++++++++++++++ -The RSeQC package is licensed under the GNU GPL v3 license. +This program is used to speculate how RNA-seq sequencing were configured, especially how +reads were stranded for strand-specific RNA-seq data, through comparing reads' mapping +information to the underneath gene model. + Inputs ++++++++++++++ Input BAM/SAM file - Alignment file in BAM/SAM format. + Alignment file in BAM/SAM format. Reference gene model - Gene model in BED format. + Gene model in BED format. Number of usable sampled reads (default=200000) - Number of usable reads sampled from SAM/BAM file. More reads will give more accurate estimation, but make program little slower. + Number of usable reads sampled from SAM/BAM file. More reads will give more accurate estimation, but make program little slower. +Outputs ++++++++ -Output -++++++++++++++ -This program is used to speculate how RNA-seq sequencing were configured, especially how reads were stranded for strand-specific RNA-seq data, through comparing reads' mapping information to the underneath gene model. Generally, strand specific RNA-seq data should be handled differently in both visualization and RPKM calculation. +For pair-end RNA-seq, there are two different +ways to strand reads (such as Illumina ScriptSeq protocol): -For pair-end RNA-seq, there are two different ways to strand reads: +1. 1++,1--,2+-,2-+ -1) 1++,1--,2+-,2-+ - - read1 mapped to '+' strand indicates parental gene on '+' strand - - read1 mapped to '-' strand indicates parental gene on '-' strand - - read2 mapped to '+' strand indicates parental gene on '-' strand - - read2 mapped to '-' strand indicates parental gene on '+' strand -2) 1+-,1-+,2++,2-- - - read1 mapped to '+' strand indicates parental gene on '-' strand - - read1 mapped to '-' strand indicates parental gene on '+' strand - - read2 mapped to '+' strand indicates parental gene on '+' strand - - read2 mapped to '-' strand indicates parental gene on '-' strand +* read1 mapped to '+' strand indicates parental gene on '+' strand +* read1 mapped to '-' strand indicates parental gene on '-' strand +* read2 mapped to '+' strand indicates parental gene on '-' strand +* read2 mapped to '-' strand indicates parental gene on '+' strand + +2. 1+-,1-+,2++,2-- + +* read1 mapped to '+' strand indicates parental gene on '-' strand +* read1 mapped to '-' strand indicates parental gene on '+' strand +* read2 mapped to '+' strand indicates parental gene on '+' strand +* read2 mapped to '-' strand indicates parental gene on '-' strand For single-end RNA-seq, there are also two different ways to strand reads: -1) ++,-- - -read mapped to '+' strand indicates parental gene on '+' strand - - read mapped to '-' strand indicates parental gene on '-' strand -2) +-,-+ - - read mapped to '+' strand indicates parental gene on '-' strand - - read mapped to '-' strand indicates parental gene on '+' strand +1. ++,-- + +* read mapped to '+' strand indicates parental gene on '+' strand +* read mapped to '-' strand indicates parental gene on '-' strand + +2. +-,-+ + +* read mapped to '+' strand indicates parental gene on '-' strand +* read mapped to '-' strand indicates parental gene on '+' strand + Example Output ++++++++++++++ **Example1** :: - ========================================================= - This is PairEnd Data :: + ========================================================= + This is PairEnd Data :: - Fraction of reads explained by "1++,1--,2+-,2-+": 0.4992 - Fraction of reads explained by "1+-,1-+,2++,2--": 0.5008 - Fraction of reads explained by other combinations: 0.0000 - ========================================================= + Fraction of reads explained by "1++,1--,2+-,2-+": 0.4992 + Fraction of reads explained by "1+-,1-+,2++,2--": 0.5008 + Fraction of reads explained by other combinations: 0.0000 + ========================================================= *Conclusion*: We can infer that this is NOT a strand specific because 50% of reads can be explained by "1++,1--,2+-,2-+", while the other 50% can be explained by "1+-,1-+,2++,2--". **Example2** :: - ============================================================ - This is PairEnd Data + ============================================================ + This is PairEnd Data - Fraction of reads explained by "1++,1--,2+-,2-+": 0.9644 :: - Fraction of reads explained by "1+-,1-+,2++,2--": 0.0356 - Fraction of reads explained by other combinations: 0.0000 - ============================================================ - + Fraction of reads explained by "1++,1--,2+-,2-+": 0.9644 :: + Fraction of reads explained by "1+-,1-+,2++,2--": 0.0356 + Fraction of reads explained by other combinations: 0.0000 + ============================================================ + *Conclusion*: We can infer that this is a strand-specific RNA-seq data. strandness of read1 is consistent with that of gene model, while strandness of read2 is opposite to the strand of reference gene model. **Example3** :: - ========================================================= - This is SingleEnd Data :: + ========================================================= + This is SingleEnd Data :: - Fraction of reads explained by "++,--": 0.9840 :: - Fraction of reads explained by "+-,-+": 0.0160 - Fraction of reads explained by other combinations: 0.0000 - ========================================================= + Fraction of reads explained by "++,--": 0.9840 :: + Fraction of reads explained by "+-,-+": 0.0160 + Fraction of reads explained by other combinations: 0.0000 + ========================================================= *Conclusion*: This is single-end, strand specific RNA-seq data. Strandness of reads are concordant with strandness of reference gene. - </help> -</tool> \ No newline at end of file + +@ABOUT@ + +]]> + </help> + + <expand macro="citations" /> + +</tool>
--- a/inner_distance.xml Thu Jul 18 11:01:08 2013 -0500 +++ b/inner_distance.xml Tue Mar 14 10:22:57 2017 -0400 @@ -1,105 +1,113 @@ -<tool id="inner_distance" name="Inner Distance"> - <description>calculate the inner distance (or insert size) between two paired RNA reads</description> - <requirements> - <requirement type="package" version="2.15.1">R</requirement> - <requirement type="package" version="2.3.7">rseqc</requirement> - </requirements> - <command> inner_distance.py -i $input -o output -r $refgene +<tool id="rseqc_inner_distance" name="Inner Distance" version="@WRAPPER_VERSION@"> + <description>calculate the inner distance (or insert size) between two paired RNA reads</description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[inner_distance.py --version]]></version_command> - #if $bounds.hasLowerBound - -l $bounds.lowerBound - #end if + <command><![CDATA[ + inner_distance.py -i '${input}' -o output -r '${refgene}' + --sample-size ${sample_size} + --lower-bound ${lowerBound} + --upper-bound ${upperBound} + --step ${step} + --mapq ${mapq} + ]]> + </command> - #if $bounds2.hasUpperBound - -u $bounds2.upperBound - #end if + <inputs> + <expand macro="bam_sam_param" /> + <expand macro="refgene_param" /> + <expand macro="sample_size_param" /> + <param name="lowerBound" type="integer" value="-250" label="Lower bound (bp, default=-250)" help="Used for plotting histogram (--lower-bound)"/> + <param name="upperBound" type="integer" value="250" label="Upper bound (bp, default=250)" help="Used for plotting histogram (--upper-bound)"/> + <param name="step" type="integer" value="5" label="Step size of histogram (bp, default=5)" help="(--step)"/> + <expand macro="mapq_param" /> + <expand macro="rscript_output_param" /> + </inputs> - #if $steps.step - -s $steps.stepSize - #end if - </command> - <inputs> - <param name="input" type="data" format="bam,sam" label="input bam/sam file" /> - <param name="refgene" type="data" format="bed" label="reference gene model" /> - <conditional name="bounds"> - <param name="hasLowerBound" type="boolean" label="Specify lower bound" value="false"/> - <when value="true"> - <param name="lowerBound" type="integer" value="-250" label="Estimated Lower Bound (bp, default=-250)" /> - </when> - </conditional> - <conditional name="bounds2"> - <param name="hasUpperBound" type="boolean" label="Specify upper bound" value="false" /> - <when value="true"> - <param name="upperBound" type="integer" value="250" label="Estimated Upper Bound (bp, default=250)" /> - </when> - </conditional> - <conditional name="steps"> - <param name="step" type="boolean" label="Specify step size" value="false" /> - <when value="true"> - <param name="stepSize" type="integer" value="5" label="Step size (bp, default=5)" /> - </when> - </conditional> - </inputs> - <outputs> - <data format="txt" name="outputtxt" from_work_dir="output.inner_distance.txt"/> - <data format="txt" name="outputfreqtxt" from_work_dir="output.inner_distance_freq.txt" /> - <data format="pdf" name="outputpdf" from_work_dir="output.inner_distance_plot.pdf" /> - <data format="r" name="outputr" from_work_dir="output.inner_distance_plot.r" /> - </outputs> - <tests> - <test> - <param name="input" value="Pairend_nonStrandSpecific_36mer_Human_hg19.bam" /> - <param name="refgene" value="hg19_RefSeq.bed" /> - <output name="outputpdf" file="innerdisout.inner_distance_plot.pdf" /> - <output name="outputr" file="innerdisout.inner_distance_plot.r" /> - <output name="outputfreqtxt" file="innerdisout.inner_distance_freq.txt" /> - <output name="outputtxt" file="innerdisout.inner_distance.txt" /> - </test> - </tests> - <help> -.. image:: https://code.google.com/p/rseqc/logo?cct=1336721062 + <outputs> + <expand macro="pdf_output_data" filename="output.inner_distance_plot.pdf" /> + <data format="txt" name="outputtxt" from_work_dir="output.inner_distance.txt" label="${tool.name} on ${on_string} (text)"/> + <data format="txt" name="outputfreqtxt" from_work_dir="output.inner_distance_freq.txt" label="${tool.name} on ${on_string} (frequency text)" /> + <expand macro="rscript_output_data" filename="output.inner_distance_plot.r" /> + </outputs> ------ + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam"/> + <param name="refgene" value="hg19_RefSeq_chr1_1-100000.bed"/> + <param name="rscript_output" value="true" /> + <output name="outputtxt" file="output.inner_distance.txt" /> + <output name="outputfreqtxt" file="output.inner_distance_freq.txt" /> + <output name="outputpdf" file="output.inner_distance_plot.pdf" compare="sim_size"/> + <output name="outputr" file="output.inner_distance_plot.r" /> + </test> + </tests> -About RSeQC -+++++++++++ + <help><![CDATA[ +inner_distance.py ++++++++++++++++++ + +This module is used to calculate the inner distance (or insert size) between two paired RNA +reads. The distance is the mRNA length between two paired fragments. We first determine the +genomic (DNA) size between two paired reads: D_size = read2_start - read1_end, then -The RSeQC package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data. “Basic modules” quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC bias, while “RNA-seq specific modules” investigate sequencing saturation status of both splicing junction detection and expression estimation, mapped reads clipping profile, mapped reads distribution, coverage uniformity over gene body, reproducibility, strand specificity and splice junction annotation. +* if two paired reads map to the same exon: inner distance = D_size +* if two paired reads map to different exons:inner distance = D_size - intron_size +* if two paired reads map non-exonic region (such as intron and intergenic region): inner distance = D_size +* The inner_distance might be a negative value if two fragments were overlapped. -The RSeQC package is licensed under the GNU GPL v3 license. +NOTE: Not all read pairs were used to estimate the inner distance distribution. Those low +quality, PCR duplication, multiple mapped reads were skipped. Inputs ++++++++++++++ Input BAM/SAM file - Alignment file in BAM/SAM format. + Alignment file in BAM/SAM format. Reference gene model - Gene model in BED format. + Gene model in BED format. Estimated Upper/Lower Bounds (defaults=250 and -250) - Estimated upper/lower bounds of inner distance (bp). + Estimated upper/lower bounds of inner distance (bp). Step size (default=5) - Step size of histogram + Step size of histogram Output ++++++++++++++ 1. output.inner_distance.txt: -- first column is read ID --second column is inner distance. Could be negative value if PE reads were overlapped or mapping error (e.g. Read1_start < Read2_start, while Read1_end >> Read2_end due to spliced mapping of read1) -- third column indicates how paired reads were mapped: PE_within_same_exon, PE_within_diff_exon,PE_reads_overlap + - first column is read ID + -second column is inner distance. Could be negative value if PE reads were overlapped or mapping error (e.g. Read1_start < Read2_start, while Read1_end >> Read2_end due to spliced mapping of read1) + - third column indicates how paired reads were mapped: PE_within_same_exon, PE_within_diff_exon,PE_reads_overlap 2. output..inner_distance_freq.txt: -- inner distance starts -- inner distance ends -- number of read pairs -- note the first 2 columns are left side half open interval + - inner distance starts + - inner distance ends + - number of read pairs + - note the first 2 columns are left side half open interval 3. output.inner_distance_plot.r: R script to generate histogram 4. output.inner_distance_plot.pdf: histogram plot -.. image:: http://dldcc-web.brc.bcm.edu/lilab/liguow/RSeQC/figure/inner_distance.png +.. image:: $PATH_TO_IMAGES/inner_distance.png + :height: 600 px + :width: 600 px + :scale: 80 % + +@ABOUT@ - </help> +]]> + </help> + + <expand macro="citations" /> + </tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/insertion_profile.xml Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,88 @@ +<tool id="rseqc_insertion_profile" name="Insertion Profile" version="@WRAPPER_VERSION@"> + <description> + calculates the distribution of inserted nucleotides across reads + </description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[insertion_profile.py --version]]></version_command> + + <command><![CDATA[ + insertion_profile.py -i '${input}' -o output -q ${mapq} -s "${layout}" + ]]> + </command> + + <inputs> + <expand macro="bam_param" /> + <expand macro="mapq_param" /> + <expand macro="layout_param" /> + <expand macro="rscript_output_param" /> + </inputs> + + <outputs> + <expand macro="pdf_output_data" filename="output.insertion_profile.pdf" /> + <expand macro="xls_output_data" filename="output.insertion_profile.xls" /> + <expand macro="rscript_output_data" filename="output.insertion_profile.r" /> + </outputs> + + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam" /> + <param name="rscript_output" value="true" /> + <output name="outputpdf" file="output.insertion_profile.pdf" compare="sim_size" /> + <output name="outputxls" file="output.insertion_profile.xls" /> + <output name="outputr" file="output.insertion_profile.r" /> + </test> + </tests> + + <help><![CDATA[ +insertion_profile.py +++++++++++++++++++++ + +Calculate the distributions of inserted nucleotides across reads. Note that to +use this funciton, CIGAR strings within SAM/BAM file should have ‘I’ operation. + +Inputs +++++++ + +Input BAM/SAM file + Alignment file in BAM/SAM format. + +Minimum mapping quality + Minimum mapping quality for an alignment to be considered as "uniquely + mapped". default=30 + +Sequencing layout + Denotes whether the sequecing was single-end (SE) or paired-end (PE). + +Sample Output +++++++++++++++ + +Read-1 insertion profile: + +.. image:: $PATH_TO_IMAGES/out.insertion_profile.R1.png + :height: 600 px + :width: 600 px + :scale: 80 % + +Read-2 insertion profile: + +.. image:: $PATH_TO_IMAGES/out.insertion_profile.R2.png + :height: 600 px + :width: 600 px + :scale: 80 % + +@ABOUT@ + +]]> + </help> + + <expand macro="citations" /> + +</tool>
--- a/junction_annotation.xml Thu Jul 18 11:01:08 2013 -0500 +++ b/junction_annotation.xml Tue Mar 14 10:22:57 2017 -0400 @@ -1,83 +1,107 @@ -<tool id="junction_annotation" name="Junction Annotation"> - <description>compares detected splice junctions to reference gene model</description> - <requirements> - <requirement type="package" version="2.15.1">R</requirement> - <requirement type="package" version="2.3.7">rseqc</requirement> - </requirements> - <command interpreter="python"> junction_annotation.py -i $input -o output -r $refgene +<tool id="rseqc_junction_annotation" name="Junction Annotation" version="@WRAPPER_VERSION@"> + <description>compares detected splice junctions to reference gene model</description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[junction_annotation.py --version]]></version_command> - #if $intron.hasIntron - -m $intron.min_Intron - #end if + <command><![CDATA[ + junction_annotation.py + --input-file '${input}' + --refgene '${refgene}' + --out-prefix output + --min-intron ${min_intron} + --mapq ${mapq} + ]]> + </command> + + <inputs> + <expand macro="bam_sam_param" /> + <expand macro="refgene_param" /> + <expand macro="min_intron_param" /> + <expand macro="mapq_param" /> + <expand macro="rscript_output_param" /> + </inputs> - </command> - <inputs> - <param name="input" type="data" format="bam,sam" label="input bam/sam file" /> - <param name="refgene" type="data" format="bed" label="reference gene model" /> - <conditional name="intron"> - <param name="hasIntron" type="boolean" label="Specify minimum intron length" value="false"/> - <when value="true"> - <param name="min_Intron" type="integer" value="50" label="Minimum intron length (bp, default=50)" /> - </when> - </conditional> - </inputs> - <outputs> - <data format="xls" name="outputxls" from_work_dir="output.junction.xls"/> - <data format="r" name="outputr" from_work_dir="output.junction_plot.r" /> - <data format="pdf" name="outputpdf" from_work_dir="output.splice_events.pdf"/> - <data format="pdf" name="outputjpdf" from_work_dir="output.splice_junction.pdf" /> - </outputs> - <tests> - <test> - <param name="input" value="Pairend_nonStrandSpecific_36mer_Human_hg19.bam" /> - <param name="refgene" value="hg19_RefSeq.bed" /> - <output name="outputxls" file="junannout.junction.xls" /> - <output name="outputr" file="junannout.junction_plot.r" /> - <output name="outputpdf" file="junannout.splice_events.pdf" /> - <output name="outputjpdf" file="junannout.splice_junction.pdf" /> - </test> - </tests> - <help> -.. image:: https://code.google.com/p/rseqc/logo?cct=1336721062 + <outputs> + <data format="pdf" name="outputpdf" from_work_dir="output.splice_events.pdf" label="${tool.name} on ${on_string} (Splice Events pdf)"/> + <data format="pdf" name="outputjpdf" from_work_dir="output.splice_junction.pdf" label="${tool.name} on ${on_string} (Splice Junction pdf)" /> + <expand macro="xls_output_data" filename="output.junction.xls" /> + <expand macro="rscript_output_data" filename="output.junction_plot.r" /> + </outputs> ------ + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam" /> + <param name="refgene" value="hg19_RefSeq_chr1_1-100000.bed" /> + <param name="rscript_output" value="true" /> + <output name="outputxls" file="output.junction.xls" /> + <output name="outputr" file="output.junction_plot.r" /> + <output name="outputpdf" file="output.splice_events.pdf" compare="sim_size" /> + <output name="outputjpdf" file="output.splice_junction.pdf" compare="sim_size" /> + </test> + </tests> -About RSeQC -+++++++++++ + <help><![CDATA[ +junction_annotation.py +++++++++++++++++++++++ + +For a given alignment file (-i) in BAM or SAM format and a reference gene model (-r) in BED +format, this program will compare detected splice junctions to reference gene model. splicing +annotation is performed in two levels: splice event level and splice junction level. -The RSeQC package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data. “Basic modules” quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC bias, while “RNA-seq specific modules” investigate sequencing saturation status of both splicing junction detection and expression estimation, mapped reads clipping profile, mapped reads distribution, coverage uniformity over gene body, reproducibility, strand specificity and splice junction annotation. +* splice event: An RNA read, especially long read, can be spliced 2 or more times, each time is called a splicing event; In this sense, 100 spliced reads can produce >= 100 splicing events. +* splice junction: multiple splicing events spanning the same intron can be consolidated into one splicing junction. + +All detected junctions can be grouped to 3 exclusive categories: -The RSeQC package is licensed under the GNU GPL v3 license. +1. Annotated: The junction is part of the gene model. Both splice sites, 5' splice site + (5'SS) and 3'splice site (3'SS) can be annotated by reference gene model. +2. complete_novel: Complete new junction. Neither of the two splice sites cannot be annotated by gene model +3. partial_novel: One of the splice site (5'SS or 3'SS) is new, while the other splice site is annotated (known) Inputs ++++++++++++++ Input BAM/SAM file - Alignment file in BAM/SAM format. + Alignment file in BAM/SAM format. Reference gene model - Gene model in BED format. + Gene model in BED format. Minimum intron length (default=50) - Minimum intron length (bp). + Minimum intron length (bp). Output ++++++++++++++ 1. output.junc.anno.junction.xls: -- chrom ID -- start position of junction (coordinate is 0 based) -- end position of junction (coordinate is 1 based) -- number of splice events supporting this junction -- 'annotated', 'complete_novel' or 'partial_novel'. + - chrom ID + - start position of junction (coordinate is 0 based) + - end position of junction (coordinate is 1 based) + - number of splice events supporting this junction + - 'annotated', 'complete_novel' or 'partial_novel'. 2. output.anno.junction_plot.r: R script to generate pie chart 3. output.splice_junction.pdf: plot of splice junctions 4. output.splice_events.pdf: plot of splice events -.. image:: http://dldcc-web.brc.bcm.edu/lilab/liguow/RSeQC/figure/junction.png - +.. image:: $PATH_TO_IMAGES/junction.png + :height: 400 px + :width: 850 px + :scale: 80 % +@ABOUT@ - </help> +]]> + </help> + + <expand macro="citations" /> + </tool>
--- a/junction_saturation.xml Thu Jul 18 11:01:08 2013 -0500 +++ b/junction_saturation.xml Tue Mar 14 10:22:57 2017 -0400 @@ -1,71 +1,110 @@ -<tool id="junction_saturation" name="Junction Saturation"> - <description>detects splice junctions from each subset and compares them to reference gene model</description> - <requirements> - <requirement type="package" version="2.15.1">R</requirement> - <requirement type="package" version="2.3.7">rseqc</requirement> - </requirements> - <command interpreter="python"> junction_saturation.py -i $input -o output -r $refgene -m $intronSize -v $minSplice +<tool id="rseqc_junction_saturation" name="Junction Saturation" version="@WRAPPER_VERSION@"> + <description>detects splice junctions from each subset and compares them to reference gene model</description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[junction_saturation.py --version]]></version_command> - #if $percentiles.specifyPercentiles - -l $percentiles.lowBound -u $percentiles.upBound -s $percentiles.percentileStep - #end if + <command><![CDATA[ + junction_saturation.py + --input-file '${input}' + --refgene '${refgene}' + --out-prefix output + --min-intron ${min_intron} + --min-coverage ${min_coverage} + --mapq ${mapq} + #if str($percentiles_type.percentiles_type_selector) == "specify": + --percentile-floor ${percentiles_type.lowBound} + --percentile-ceiling ${percentiles_type.upBound} + --percentile-step ${percentiles_type.percentileStep} + #end if + ]]> + </command> - </command> - <inputs> - <param name="input" type="data" format="bam,sam" label="input bam/sam file" /> - <param name="refgene" type="data" format="bed" label="reference gene model" /> - <param name="intronSize" type="integer" label="Minimum intron size (bp, default=50)" value="50"/> - <param name="minSplice" type="integer" label="Minimum coverage (default=1)" value="1" /> - <conditional name="percentiles"> - <param name="specifyPercentiles" type="boolean" label="Specify sampling bounds and frequency" value="false"/> - <when value="true"> - <param name="lowBound" type="integer" value="5" label="Lower Bound Sampling Frequency (bp, default=5)" /> - <param name="upBound" type="integer" value="100" label="Upper Bound Sampling Frequency (bp, default=100)" /> - <param name="percentileStep" type="integer" value="5" label="Sampling increment (default=5)" /> - </when> - </conditional> - </inputs> - <outputs> - <data format="r" name="outputr" from_work_dir="output.junctionSaturation_plot.r"/> - <data format="pdf" name="outputpdf" from_work_dir="output.junctionSaturation_plot.pdf"/> - </outputs> - <tests> - <test> - <param name="input" value="Pairend_nonStrandSpecific_36mer_Human_hg19.bam" /> - <param name="refgene" value="hg19_RefSeq.bed" /> - <output name="outputr" file="junsatout.junctionSaturation_plot.r" /> - <output name="outputpdf" file="junsatout.junctionSaturation_plot.pdf" /> - </test> - </tests> - <help> -.. image:: https://code.google.com/p/rseqc/logo?cct=1336721062 + <inputs> + <expand macro="bam_sam_param" /> + <expand macro="refgene_param" /> + <expand macro="min_intron_param" /> + <param name="min_coverage" type="integer" label="Minimum number of supporting reads to call a junction (default=1)" value="1" help="(--min-coverage)" /> + <expand macro="mapq_param" /> + <conditional name="percentiles_type"> + <param name="percentiles_type_selector" type="select" label="Sampling bounds and frequency"> + <option value="default" selected="true">Default sampling bounds and frequency</option> + <option value="specify">Specify sampling bounds and frequency</option> + </param> + <when value="specify"> + <param name="lowBound" type="integer" value="5" label="Lower Bound Sampling Frequency (bp, default=5)" help="(--percentile-floor)"> + <validator type="in_range" min="0" max="100" /> + </param> + <param name="upBound" type="integer" value="100" label="Upper Bound Sampling Frequency (bp, default=100)" help="(--percentile-ceiling)"> + <validator type="in_range" min="0" max="100" /> + </param> + <param name="percentileStep" type="integer" value="5" label="Sampling increment (default=5)" help="(--percentile-step)"> + <validator type="in_range" min="0" max="100" /> + </param> + </when> + <when value="default"/> + </conditional> + <expand macro="rscript_output_param" /> + </inputs> ------ + <outputs> + <expand macro="pdf_output_data" filename="output.junctionSaturation_plot.pdf" /> + <expand macro="rscript_output_data" filename="output.junctionSaturation_plot.r" /> + </outputs> -About RSeQC -+++++++++++ + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam" /> + <param name="refgene" value="hg19_RefSeq_chr1_1-100000.bed" /> + <param name="rscript_output" value="true" /> + <output name="outputr" file="output.junctionSaturation_plot.r" compare="sim_size"> + <assert_contents> + <has_line line="pdf('output.junctionSaturation_plot.pdf')" /> + <has_line line="x=c(5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100)" /> + </assert_contents> + </output> + <output name="outputpdf" file="output.junctionSaturation_plot.pdf" compare="sim_size" /> + </test> + </tests> -The RSeQC package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data. “Basic modules” quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC bias, while “RNA-seq specific modules” investigate sequencing saturation status of both splicing junction detection and expression estimation, mapped reads clipping profile, mapped reads distribution, coverage uniformity over gene body, reproducibility, strand specificity and splice junction annotation. + <help><![CDATA[ +junction_saturation.py +++++++++++++++++++++++ -The RSeQC package is licensed under the GNU GPL v3 license. +It's very important to check if current sequencing depth is deep enough to perform +alternative splicing analyses. For a well annotated organism, the number of expressed genes +in particular tissue is almost fixed so the number of splice junctions is also fixed. The fixed +splice junctions can be predetermined from reference gene model. All (annotated) splice +junctions should be rediscovered from a saturated RNA-seq data, otherwise, downstream +alternative splicing analysis is problematic because low abundance splice junctions are +missing. This module checks for saturation by resampling 5%, 10%, 15%, ..., 95% of total +alignments from BAM or SAM file, and then detects splice junctions from each subset and +compares them to reference gene model. Inputs ++++++++++++++ Input BAM/SAM file - Alignment file in BAM/SAM format. + Alignment file in BAM/SAM format. Reference gene model - Gene model in BED format. + Gene model in BED format. Sampling Percentiles - Upper Bound, Lower Bound, Sampling Increment (defaults= 100, 5, and 5) - Sampling starts from the Lower Bound and increments to the Upper Bound at the rate of the Sampling Increment. + Sampling starts from the Lower Bound and increments to the Upper Bound at the rate of the Sampling Increment. Minimum intron length (default=50) - Minimum intron length (bp). + Minimum intron length (bp). Minimum coverage (default=1) - Minimum number of supportting reads to call a junction. + Minimum number of supportting reads to call a junction. Output ++++++++++++++ @@ -73,10 +112,18 @@ 1. output.junctionSaturation_plot.r: R script to generate plot 2. output.junctionSaturation_plot.pdf -.. image:: http://dldcc-web.brc.bcm.edu/lilab/liguow/RSeQC/figure/junction_saturation.png +.. image:: $PATH_TO_IMAGES/junction_saturation.png + :height: 600 px + :width: 600 px + :scale: 80 % In this example, current sequencing depth is almost saturated for "known junction" (red line) detection because the number of "known junction" reaches a plateau. In other words, nearly all "known junctions" (expressed in this particular tissue) have already been detected, and continue sequencing will not detect additional "known junction" and will only increase junction coverage (i.e. junction covered by more reads). While current sequencing depth is not saturated for novel junctions (green). +@ABOUT@ - </help> -</tool> \ No newline at end of file +]]> + </help> + + <expand macro="citations" /> + +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mismatch_profile.xml Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,89 @@ +<tool id="rseqc_mismatch_profile" name="Mismatch Profile" version="@WRAPPER_VERSION@"> + <description> + calculates the distribution of mismatches across reads + </description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[mismatch_profile.py --version]]></version_command> + + <command><![CDATA[ + mismatch_profile.py -i '${input}' -o output -l ${readlength} -n ${readnum} -q ${mapq} + ]]> + </command> + + <inputs> + <expand macro="bam_param" /> + <expand macro="readlength_param" /> + <expand macro="readnum_param" /> + <expand macro="mapq_param" /> + <expand macro="rscript_output_param" /> + </inputs> + + <outputs> + <expand macro="pdf_output_data" filename="output.mismatch_profile.pdf" /> + <expand macro="xls_output_data" filename="output.mismatch_profile.xls" /> + <expand macro="rscript_output_data" filename="output.mismatch_profile.r" /> + </outputs> + + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam"/> + <param name="readlength" value="101" /> + <param name="rscript_output" value="true" /> + <output name="outputpdf" file="output.mismatch_profile.pdf" compare="sim_size" /> + <output name="outputxls" file="output.mismatch_profile.xls"/> + <output name="outputr" file="output.mismatch_profile.r"/> + </test> + </tests> + + <help><![CDATA[ +mismatch_profile.py ++++++++++++++++++++ + +Calculate the distribution of mismatches across reads. + +Note that the “MD” tag must exist in BAM file. + +Inputs +++++++ + +Input BAM/SAM file + Alignment file in BAM/SAM format. + +Alignment length of read + It is usually set to the orignial read length. For example, all these cigar + strings ("101M", "68M140N33M", "53M1D48M") suggest the read alignment + length is 101. [required] + +Number of aligned reads used + Number of aligned reads with deletions used to calculate the deletion + profile. default=1000000 + +Minimum mapping quality + Minimum mapping quality for an alignment to be considered as "uniquely + mapped". default=30 + +Sample Output +++++++++++++++ + +.. image:: $PATH_TO_IMAGES/mismatch_profile.png + :height: 600 px + :width: 600 px + :scale: 80 % + +@ABOUT@ + +]]> + + </help> + + <expand macro="citations" /> + +</tool>
--- a/read_GC.xml Thu Jul 18 11:01:08 2013 -0500 +++ b/read_GC.xml Tue Mar 14 10:22:57 2017 -0400 @@ -1,53 +1,74 @@ -<tool id="read_GC" name="Read GC"> - <description>determines GC% and read count</description> - <requirements> - <requirement type="package" version="2.15.1">R</requirement> - <requirement type="package" version="2.3.7">rseqc</requirement> - </requirements> - <command interpreter="python"> read_GC.py -i $input -o output - </command> - <inputs> - <param name="input" type="data" format="bam,sam" label="input bam/sam file" /> - </inputs> - <outputs> - <data format="xls" name="outputxls" from_work_dir="output.GC.xls"/> - <data format="r" name="outputr" from_work_dir="output.GC_plot.r" /> - <data format="pdf" name="outputpdf" from_work_dir="output.GC_plot.pdf" /> - </outputs> - <tests> - <test> - <param name="input" value="Pairend_nonStrandSpecific_36mer_Human_hg19.bam" /> - <output name-"outputxls" file="Pairend_nonStrandSpecific_36mer_Human_hg19.bam" /> - <output name="outputr" file="readgcout.GC_plot.r" /> - <output name="outputpdf" file="readgcout.GC_plot.pdf" /> - </test> - </tests> - <help> - .. image:: https://code.google.com/p/rseqc/logo?cct=1336721062 +<tool id="rseqc_read_GC" name="Read GC" version="@WRAPPER_VERSION@"> + <description>determines GC% and read count</description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[read_GC.py --version]]></version_command> + + <command><![CDATA[ + read_GC.py + --input-file '${input}' + --out-prefix output + --mapq ${mapq} + ]]> + </command> ------ + <inputs> + <expand macro="bam_sam_param" /> + <expand macro="mapq_param" /> + <expand macro="rscript_output_param" /> + </inputs> + + <outputs> + <expand macro="pdf_output_data" filename="output.GC_plot.pdf" /> + <expand macro="xls_output_data" filename="output.GC.xls" /> + <expand macro="rscript_output_data" filename="output.GC_plot.r" /> + </outputs> -About RSeQC -+++++++++++ + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam" /> + <param name="rscript_output" value="true" /> + <output name="outputxls" file="output.GC.xls" /> + <output name="outputr" file="output.GC_plot.r" /> + <output name="outputpdf" file="output.GC_plot.pdf" compare="sim_size" /> + </test> + </tests> -The RSeQC package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data. “Basic modules” quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC bias, while “RNA-seq specific modules” investigate sequencing saturation status of both splicing junction detection and expression estimation, mapped reads clipping profile, mapped reads distribution, coverage uniformity over gene body, reproducibility, strand specificity and splice junction annotation. + <help><![CDATA[ +read_GC.py +++++++++++ -The RSeQC package is licensed under the GNU GPL v3 license. Inputs ++++++++++++++ Input BAM/SAM file - Alignment file in BAM/SAM format. + Alignment file in BAM/SAM format. Output ++++++++++++++ 1. output.GC.xls: Two column, plain text file, first column is GC%, second column is read count 2. output.GC_plot.r: R script to generate pdf file. -3. output.GC_plot.pdf: graphical output generated from R script. +3. output.GC_plot.pdf: graphical output generated from R script. + +.. image:: $PATH_TO_IMAGES/read_gc.png + :height: 600 px + :width: 600 px + :scale: 80 % -.. image:: http://dldcc-web.brc.bcm.edu/lilab/liguow/RSeQC/figure/read_gc.png +@ABOUT@ - </help> +]]> + </help> + + <expand macro="citations" /> + </tool>
--- a/read_NVC.xml Thu Jul 18 11:01:08 2013 -0500 +++ b/read_NVC.xml Tue Mar 14 10:22:57 2017 -0400 @@ -1,52 +1,69 @@ -<tool id="read_NVC" name="Read NVC"> - <description>to check the nucleotide composition bias</description> - <requirements> - <requirement type="package" version="2.15.1">R</requirement> - <requirement type="package" version="2.3.7">rseqc</requirement> - </requirements> - <command interpreter="python"> read_NVC.py -i $input -o output +<tool id="rseqc_read_NVC" name="Read NVC" version="@WRAPPER_VERSION@"> + <description>to check the nucleotide composition bias</description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[read_NVC.py --version]]></version_command> + + <command><![CDATA[ + read_NVC.py + --input-file '${input}' + --out-prefix output + ${nx} + --mapq ${mapq} + ]]> + </command> - #if $nx - -x - #end if - </command> - <inputs> - <param name="input" type="data" format="bam,sam" label="input bam/sam file" /> - <param name="nx" type="boolean" label="Include N,X in NVC plot" value="false" /> - </inputs> - <outputs> - <data format="xls" name="outputxls" from_work_dir="output.NVC.xls"/> - <data format="r" name="outputr" from_work_dir="output.NVC_plot.r" /> - <data format="pdf" name="outputpdf" from_work_dir="output.NVC_plot.pdf" /> - </outputs> - <tests> - <test> - <param name="input" value="Pairend_nonStrandSpecific_36mer_Human_hg19.bam" /> - <output name="outputxls" file="readnvcout.NVC.xls" /> - <output name="outputr" file="readnvcout.NVC_plot.r" /> - <output name="outputpdf" file="readnvcout.NVC_plot.pdf" /> - </test> - </tests> - <help> -.. image:: https://code.google.com/p/rseqc/logo?cct=1336721062 + <inputs> + <expand macro="bam_sam_param" /> + <param name="nx" type="boolean" value="false" truevalue="--nx" falsevalue="" label="Include N,X in NVC plot" help="(--nx)"/> + <expand macro="mapq_param" /> + <expand macro="rscript_output_param" /> + </inputs> + + <outputs> + <expand macro="pdf_output_data" filename="output.NVC_plot.pdf" /> + <expand macro="xls_output_data" filename="output.NVC.xls" /> + <expand macro="rscript_output_data" filename="output.NVC_plot.r" /> + </outputs> ------ + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam" /> + <param name="rscript_output" value="true" /> + <output name="outputxls" file="output.NVC.xls" /> + <output name="outputr" file="output.NVC_plot.r" /> + <output name="outputpdf" file="output.NVC_plot.pdf" compare="sim_size" /> + </test> + </tests> -About RSeQC + <help><![CDATA[ +read_NVC.py +++++++++++ -The RSeQC package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data. “Basic modules” quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC bias, while “RNA-seq specific modules” investigate sequencing saturation status of both splicing junction detection and expression estimation, mapped reads clipping profile, mapped reads distribution, coverage uniformity over gene body, reproducibility, strand specificity and splice junction annotation. +This module is used to check the nucleotide composition bias. Due to random priming, certain +patterns are over represented at the beginning (5'end) of reads. This bias could be easily +examined by NVC (Nucleotide versus cycle) plot. NVC plot is generated by overlaying all +reads together, then calculating nucleotide composition for each position of read +(or each sequencing cycle). In ideal condition (genome is random and RNA-seq reads is +randomly sampled from genome), we expect A%=C%=G%=T%=25% at each position of reads. -The RSeQC package is licensed under the GNU GPL v3 license. +NOTE: this program expect a fixed read length Inputs ++++++++++++++ Input BAM/SAM file - Alignment file in BAM/SAM format. + Alignment file in BAM/SAM format. Include N,X in NVC plot - Plots N and X alongside A, T, C, and G in plot. + Plots N and X alongside A, T, C, and G in plot. Output ++++++++++++++ @@ -59,7 +76,16 @@ 3. output.NVC_plot.pdf: NVC plot. -.. image:: http://dldcc-web.brc.bcm.edu/lilab/liguow/RSeQC/figure/NVC_plot.png +.. image:: $PATH_TO_IMAGES/NVC_plot.png + :height: 600 px + :width: 600 px + :scale: 80 % + +@ABOUT@ - </help> +]]> + </help> + + <expand macro="citations" /> + </tool>
--- a/read_distribution.xml Thu Jul 18 11:01:08 2013 -0500 +++ b/read_distribution.xml Tue Mar 14 10:22:57 2017 -0400 @@ -1,69 +1,96 @@ -<tool id="read_distribution" name="Read Distribution"> - <description>calculates how mapped reads were distributed over genome feature</description> - <requirements> - <requirement type="package" version="2.3.7">rseqc</requirement> - </requirements> - <command interpreter="python"> read_distribution.py -i $input -r $refgene > $output - </command> - <inputs> - <param name="input" type="data" format="bam,sam" label="input bam/sam file" /> - <param name="refgene" type="data" format="bed" label="reference gene model" /> - </inputs> - <outputs> - <data format="txt" name="output" /> - </outputs> - <help> -.. image:: https://code.google.com/p/rseqc/logo?cct=1336721062 +<tool id="rseqc_read_distribution" name="Read Distribution" version="@WRAPPER_VERSION@"> + <description>calculates how mapped reads were distributed over genome feature</description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[read_distribution.py --version]]></version_command> + + <command><![CDATA[ + read_distribution.py -i '${input}' -r '${refgene}' > '${output}' + ]]> + </command> + + <inputs> + <expand macro="bam_sam_param" /> + <expand macro="refgene_param" /> + </inputs> + + <outputs> + <data format="txt" name="output" /> + </outputs> ------ + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam"/> + <param name="refgene" value="hg19_RefSeq_chr1_1-100000.bed"/> + <output name="output" file="output.read_distribution.txt"/> + </test> + </tests> + + <help><![CDATA[ +read_distribution.py +++++++++++++++++++++ -About RSeQC -+++++++++++ +Provided a BAM/SAM file and reference gene model, this module will calculate how mapped +reads were distributed over genome feature (like CDS exon, 5'UTR exon, 3' UTR exon, Intron, +Intergenic regions). When genome features are overlapped (e.g. a region could be annotated +as both exon and intron by two different transcripts) , they are prioritize as: +CDS exons > UTR exons > Introns > Intergenic regions, for example, if a read was mapped to +both CDS exon and intron, it will be assigned to CDS exons. -The RSeQC package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data. “Basic modules” quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC bias, while “RNA-seq specific modules” investigate sequencing saturation status of both splicing junction detection and expression estimation, mapped reads clipping profile, mapped reads distribution, coverage uniformity over gene body, reproducibility, strand specificity and splice junction annotation. +* "Total Reads": This does NOT include those QC fail,duplicate and non-primary hit reads +* "Total Tags": reads spliced once will be counted as 2 tags, reads spliced twice will be counted as 3 tags, etc. And because of this, "Total Tags" >= "Total Reads" +* "Total Assigned Tags": number of tags that can be unambiguously assigned the 10 groups (see below table). +* Tags assigned to "TSS_up_1kb" were also assigned to "TSS_up_5kb" and "TSS_up_10kb", tags assigned to "TSS_up_5kb" were also assigned to "TSS_up_10kb". Therefore, "Total Assigned Tags" = CDS_Exons + 5'UTR_Exons + 3'UTR_Exons + Introns + TSS_up_10kb + TES_down_10kb. +* When assign tags to genome features, each tag is represented by its middle point. -The RSeQC package is licensed under the GNU GPL v3 license. +RSeQC cannot assign those reads that: + +* hit to intergenic regions that beyond region starting from TSS upstream 10Kb to TES downstream 10Kb. +* hit to regions covered by both 5'UTR and 3' UTR. This is possible when two head-to-tail transcripts are overlapped in UTR regions. +* hit to regions covered by both TSS upstream 10Kb and TES downstream 10Kb. + Inputs ++++++++++++++ Input BAM/SAM file - Alignment file in BAM/SAM format. + Alignment file in BAM/SAM format. Reference gene model - Gene model in BED format. + Gene model in BED format. Sample Output ++++++++++++++ -:: - - Total Read: 44,826,454 :: - - Total Tags: 50,023,249 :: - - Total Assigned Tags: 36,057,402 :: +Output: - Group Total_bases Tag_count Tags/Kb - CDS_Exons 33302033 20022538 601.24 - 5'UTR_Exons 21717577 4414913 203.29 - 3'UTR_Exons 15347845 3641689 237.28 - Introns 1132597354 6312099 5.57 - TSS_up_1kb 17957047 215220 11.99 - TSS_up_5kb 81621382 392192 4.81 - TSS_up_10kb 149730983 769210 5.14 - TES_down_1kb 18298543 266157 14.55 - TES_down_5kb 78900674 730072 9.25 - TES_down_10kb 140361190 896953 6.39 +=============== ============ =========== =========== +Group Total_bases Tag_count Tags/Kb +=============== ============ =========== =========== +CDS_Exons 33302033 20002271 600.63 +5'UTR_Exons 21717577 4408991 203.01 +3'UTR_Exons 15347845 3643326 237.38 +Introns 1132597354 6325392 5.58 +TSS_up_1kb 17957047 215331 11.99 +TSS_up_5kb 81621382 392296 4.81 +TSS_up_10kb 149730983 769231 5.14 +TES_down_1kb 18298543 266161 14.55 +TES_down_5kb 78900674 729997 9.25 +TES_down_10kb 140361190 896882 6.39 +=============== ============ =========== =========== -Note: -- "Total Reads": This does NOT include those QC fail,duplicate and non-primary hit reads -- "Total Tags": reads spliced once will be counted as 2 tags, reads spliced twice will be counted as 3 tags, etc. And because of this, "Total Fragments" >= "Total Reads" -- "Total Assigned Tags": number of tags that can be unambiguously assigned the 10 groups (above table). -- Tags assigned to "TSS_up_1kb" were also assigned to "TSS_up_5kb" and "TSS_up_10kb", tags assigned to "TSS_up_5kb" were also assigned to "TSS_up_10kb". Therefore, "Total Assigned Tags" = CDS_Exons + 5'UTR_Exons + 3'UTR_Exons + Introns + TSS_up_10kb + TES_down_10kb. -- When assigning tags to genome features, each tag is represented by its middle point. -- RSeQC cannot assign those reads that: 1) hit to intergenic regions that beyond region starting from TSS upstream 10Kb to TES downstream 10Kb. 2) hit to regions covered by both 5'UTR and 3' UTR. This is possible when two head-to-tail transcripts are overlapped in UTR regions. 3) hit to regions covered by both TSS upstream 10Kb and TES downstream 10Kb. +@ABOUT@ +]]> + </help> - </help> + <expand macro="citations" /> + </tool>
--- a/read_duplication.xml Thu Jul 18 11:01:08 2013 -0500 +++ b/read_duplication.xml Tue Mar 14 10:22:57 2017 -0400 @@ -1,50 +1,63 @@ -<tool id="read_duplication" name="Read Duplication"> - <description>determines reads duplication rate with sequence-based and mapping-based strategies</description> - <requirements> - <requirement type="package" version="2.15.1">R</requirement> - <requirement type="package" version="2.3.7">rseqc</requirement> - </requirements> - <command interpreter="python"> read_duplication.py -i $input -o output -u $upLimit - </command> - <inputs> - <param name="input" type="data" format="bam,sam" label="input bam/sam file" /> - <param name="upLimit" type="integer" label="Upper Limit of Plotted Duplicated Times (default=500)" value="500" /> - </inputs> - <outputs> - <data format="xls" name="outputxls" from_work_dir="output.dup.pos.DupRate.xls"/> - <data format="xls" name="outputseqxls" from_work_dir="output.dup.seq.DupRate.xls"/> - <data format="r" name="outputr" from_work_dir="output.DupRate_plot.r" /> - <data format="pdf" name="outputpdf" from_work_dir="output.DupRate_plot.pdf" /> - </outputs> - <tests> - <test> - <param name="input" value="Pairend_StrandSpecific_51mer_Human_hg19.bam" /> - <output name="outputxls" file="readdupout.pos.DupRate.xls" /> - <output name="outputseqxls" file="readdupout.seq.DupRate.xls" /> - <output name="outputr" file="readdupout.DupRate_plot.r" /> - <output name="outputpdf" file="readdupout.DupRate_plot.pdf" /> - </test> - </tests> - <help> -.. image:: https://code.google.com/p/rseqc/logo?cct=1336721062 +<tool id="rseqc_read_duplication" name="Read Duplication" version="@WRAPPER_VERSION@"> + <description>determines reads duplication rate with sequence-based and mapping-based strategies</description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[read_duplication.py --version]]></version_command> + + <command><![CDATA[ + read_duplication.py -i '${input}' -o output -u ${upLimit} -q ${mapq} + ]]> + </command> + + <inputs> + <expand macro="bam_sam_param" /> + <param name="upLimit" type="integer" label="Upper Limit of Plotted Duplicated Times (default=500)" value="500" help="(--up-limit)"/> + <expand macro="mapq_param" /> + <expand macro="rscript_output_param" /> + </inputs> ------ + <outputs> + <expand macro="pdf_output_data" filename="output.DupRate_plot.pdf" /> + <data format="xls" name="outputxls" from_work_dir="output.pos.DupRate.xls" label="${tool.name} on ${on_string} (Position xls)"/> + <data format="xls" name="outputseqxls" from_work_dir="output.seq.DupRate.xls" label="${tool.name} on ${on_string} (Sequence xls)"/> + <expand macro="rscript_output_data" filename="output.DupRate_plot.r" /> + </outputs> -About RSeQC -+++++++++++ + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam" /> + <param name="rscript_output" value="true" /> + <output name="outputxls" file="output.pos.DupRate.xls" /> + <output name="outputseqxls" file="output.seq.DupRate.xls" /> + <output name="outputr" file="output.DupRate_plot.r" /> + <output name="outputpdf" file="output.DupRate_plot.pdf" compare="sim_size" /> + </test> + </tests> -The RSeQC package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data. “Basic modules” quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC bias, while “RNA-seq specific modules” investigate sequencing saturation status of both splicing junction detection and expression estimation, mapped reads clipping profile, mapped reads distribution, coverage uniformity over gene body, reproducibility, strand specificity and splice junction annotation. + <help><![CDATA[ +read_duplication.py ++++++++++++++++++++ -The RSeQC package is licensed under the GNU GPL v3 license. +Two strategies were used to determine reads duplication rate: + +* Sequence based: reads with exactly the same sequence content are regarded as duplicated reads. +* Mapping based: reads mapped to the same genomic location are regarded as duplicated reads. For splice reads, reads mapped to the same starting position and splice the same way are regarded as duplicated reads. Inputs ++++++++++++++ Input BAM/SAM file - Alignment file in BAM/SAM format. + Alignment file in BAM/SAM format. Upper Limit of Plotted Duplicated Times (default=500) - Only used for plotting. + Only used for plotting. Output ++++++++++++++ @@ -54,7 +67,16 @@ 3. output.DupRate_plot.r: R script to generate pdf file 4. output.DupRate_plot.pdf: graphical output generated from R script -.. image:: http://dldcc-web.brc.bcm.edu/lilab/liguow/RSeQC/figure/duplicate.png +.. image:: $PATH_TO_IMAGES/duplicate.png + :height: 600 px + :width: 600 px + :scale: 80 % + +@ABOUT@ - </help> +]]> + </help> + + <expand macro="citations" /> + </tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/read_hexamer.xml Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,137 @@ +<tool id="rseqc_read_hexamer" name="Hexamer frequency" version="@WRAPPER_VERSION@"> + <description> + calculates hexamer (6mer) frequency for reads, genomes, and mRNA sequences + </description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[read_hexamer.py --version]]></version_command> + + <command><![CDATA[ + #import re + #set $input_list = [] + #for $i, $input in enumerate($inputs): + + #set $safename = re.sub('[^\w\-_]', '_', $input.element_identifier) + #if $safename in $input_list: + #set $safename = str($safename) + "." + str($i) + #end if + $input_list.append($safename) + + #if $input.is_of_type("fastq.gz", "fastqsanger.gz"): + gunzip -c '${input}' > "${safename}" && + #else: + ln -sf '${input}' "${safename}" && + #end if + #end for + read_hexamer.py -i '${ ','.join( [ $name for $name in $input_list ] ) }' + #if $refgenome: + -r '${refgenome}' + #end if + #if $refgene: + -g '${refgene}' + #end if + > '${output}' + ]]> + </command> + + <inputs> + <param name="inputs" type="data" label="Read sequences in fasta or fastq format" format="fasta,fastq,fastqsanger,fastq.gz,fastqsanger.gz" help="(--input)" multiple="true" /> + <param name="refgenome" type="data" label="Reference genome seqeunce (fasta)" format="fasta" optional="true" help="(--refgenome)" /> + <param name="refgene" type="data" label="Reference mRNA sequence (fasta)" format="fasta" optional="true" help="(--refgene)" /> + </inputs> + + <outputs> + <data name="output" format="tabular" label="${tool.name} on ${on_string}" /> + </outputs> + + <tests> + <test> + <param name="inputs" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.R1.fastq"/> + <output name="output"> + <assert_contents> + <has_line line="Hexamer	pairend_strandspecific_51mer_hg19_chr1_1-100000_R1_fastq" /> + <has_line line="AAAAAA	0.00217391304348" /> + </assert_contents> + </output> + </test> + <test> + <param name="inputs" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.R1.fastq.gz" ftype="fastqsanger.gz"/> + <output name="output"> + <assert_contents> + <has_line line="Hexamer	pairend_strandspecific_51mer_hg19_chr1_1-100000_R1_fastq_gz" /> + <has_line line="AAAAAA	0.00217391304348" /> + </assert_contents> + </output> + </test> + <test> + <param name="inputs" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.R1.fastq,pairend_strandspecific_51mer_hg19_chr1_1-100000.R2.fastq"/> + <output name="output"> + <assert_contents> + <has_line line="Hexamer	pairend_strandspecific_51mer_hg19_chr1_1-100000_R1_fastq	pairend_strandspecific_51mer_hg19_chr1_1-100000_R2_fastq" /> + <has_line line="AAAAAA	0.00217391304348	0.00534759358289" /> + </assert_contents> + </output> + </test> + <test> + <param name="inputs" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.R1.fastq,pairend_strandspecific_51mer_hg19_chr1_1-100000.R1.fastq"/> + <output name="output"> + <assert_contents> + <has_line line="Hexamer	pairend_strandspecific_51mer_hg19_chr1_1-100000_R1_fastq	pairend_strandspecific_51mer_hg19_chr1_1-100000_R1_fastq.1" /> + <has_line line="AAAAAA	0.00217391304348	0.00217391304348" /> + </assert_contents> + </output> + </test> + <!-- Unable to test with collections at the moment (requires type="data_collection" on the input) + <test> + <param name="inputs"> + <collection type="list"> + <element name="read_1" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.R1.fastq" /> + <element name="read_2" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.R2.fastq" /> + </collection> + </param> + <output name="output" file="output.read_hexamer.2.txt" /> + </test> + --> + </tests> + + <help><![CDATA[ +read_hexamer.py ++++++++++++++++++++++ + +Calculate hexamer (6mer) frequency. If ‘-r’ was specified, hexamer frequency +is also calculated for the reference genome. If ‘-g’ was provided, hexamer +frequency is also calculated for the mRNA sequences. + +Inputs +++++++++++++++ + +Input reads file + Read sequences in fasta or fastq format. + +Reference Genome + Reference genome sequence in fasta format. + +Reference Gene + Reference mRNA sequences in fasta format. + + +Outputs +++++++++++++++ + +Tabular file of hexamer frequences in for each input. + +@ABOUT@ + +]]> + </help> + + <expand macro="citations" /> + +</tool>
--- a/read_quality.xml Thu Jul 18 11:01:08 2013 -0500 +++ b/read_quality.xml Tue Mar 14 10:22:57 2017 -0400 @@ -1,58 +1,92 @@ -<tool id="read_quality" name="Read Quality"> - <description>determines Phred quality score</description> - <requirements> - <requirement type="package" version="2.15.1">R</requirement> - <requirement type="package" version="2.3.7">rseqc</requirement> - </requirements> - <command interpreter="python"> read_quality.py -i $input -o output -r $reduce - </command> - <inputs> - <param name="input" type="data" format="bam,sam" label="input bam/sam file" /> - <param name="reduce" type="integer" label="Ignore Phred scores less than this amount (only applies to 'boxplot', default=1000)" value="1000" /> - </inputs> - <outputs> - <data format="r" name="outputr" from_work_dir="output.qual.r" /> - <data format="pdf" name="outputpdf" from_work_dir="output.qual.heatmap.pdf" /> - <data format="pdf" name="outputbxpdf" from_work_dir="output.qual.boxplot.pdf" /> - </outputs> - <tests> - <test> - <param name="input" value="Pairend_nonStrandSpecific_36mer_Human_hg19.bam" /> - <output name="outputr" file="readqualout.qual.r" /> - <output name="outputpdf" file="readqualout.qual.heatmap.pdf" /> - <output name="outputbxpdf" file="readqualout.qual.boxplot.pdf" /> - </test> - </tests> - <help> -.. image:: https://code.google.com/p/rseqc/logo?cct=1336721062 +<tool id="rseqc_read_quality" name="Read Quality" version="@WRAPPER_VERSION@"> + <description>determines Phred quality score</description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[read_quality.py --version]]></version_command> + + <command><![CDATA[ + read_quality.py + --input-file '${input}' + --out-prefix output + -r ${reduce} + --mapq ${mapq} + ]]> + </command> + + <inputs> + <expand macro="bam_sam_param" /> + <param name="reduce" type="integer" label="Ignore Phred scores less than this amount (only applies to 'boxplot', default=1000)" value="1000" help="(--reduce)"/> + <expand macro="mapq_param" /> + <expand macro="rscript_output_param" /> + </inputs> ------ + <outputs> + <data format="pdf" name="outputheatpdf" from_work_dir="output.qual.heatmap.pdf" label="${tool.name} on ${on_string} (Heatmap pdf)" /> + <data format="pdf" name="outputboxpdf" from_work_dir="output.qual.boxplot.pdf" label="${tool.name} on ${on_string} (Boxplot pdf)" /> + <expand macro="rscript_output_data" filename="output.qual.r" /> + </outputs> -About RSeQC -+++++++++++ + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_random.bam"/> + <param name="rscript_output" value="true" /> + <output name="outputr" file="output.qual.r"/> + <output name="outputheatpdf" file="output.qual.heatmap.pdf" compare="sim_size" /> + <output name="outputboxpdf" file="output.qual.boxplot.pdf" compare="sim_size" /> + </test> + </tests> -The RSeQC package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data. “Basic modules” quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC bias, while “RNA-seq specific modules” investigate sequencing saturation status of both splicing junction detection and expression estimation, mapped reads clipping profile, mapped reads distribution, coverage uniformity over gene body, reproducibility, strand specificity and splice junction annotation. + <help><![CDATA[ +read_quality.py ++++++++++++++++ -The RSeQC package is licensed under the GNU GPL v3 license. +According to SAM specification, if Q is the character to represent "base calling quality" +in SAM file, then Phred Quality Score = ord(Q) - 33. Here ord() is python function that +returns an integer representing the Unicode code point of the character when the argument +is a unicode object, for example, ord('a') returns 97. Phred quality score is widely used +to measure "reliability" of base-calling, for example, phred quality score of 20 means +there is 1/100 chance that the base-calling is wrong, phred quality score of 30 means there +is 1/1000 chance that the base-calling is wrong. In general: Phred quality score = -10xlog(10)P, +here P is probability that base-calling is wrong. Inputs ++++++++++++++ Input BAM/SAM file - Alignment file in BAM/SAM format. + Alignment file in BAM/SAM format. Ignore phred scores less than this number (default=1000) - To avoid making huge vector in R, nucleotide with certain phred score represented less than this number will be ignored. Increase this number save more memory while reduce precision. This option only applies to the 'boxplot'. + To avoid making huge vector in R, nucleotide with certain phred score represented less than this number will be ignored. Increase this number save more memory while reduce precision. This option only applies to the 'boxplot'. Output ++++++++++++++ 1. output.qual.r 2. output.qual.boxplot.pdf -.. image:: http://dldcc-web.brc.bcm.edu/lilab/liguow/RSeQC/figure/36mer.qual.plot.png + .. image:: $PATH_TO_IMAGES/36mer.qual.plot.png + :height: 600 px + :width: 600 px + :scale: 80 % 3. output.qual.heatmap.pdf -.. image:: http://dldcc-web.brc.bcm.edu/lilab/liguow/RSeQC/figure/36mer.qual.heatmap.png -use different color to represent nucleotide density ("blue"=low density,"orange"=median density,"red"=high density") + .. image:: $PATH_TO_IMAGES/36mer.qual.heatmap.png + :height: 600 px + :width: 600 px + :scale: 80 % + +Heatmap: use different color to represent nucleotide density ("blue"=low density,"orange"=median density,"red"=high density") - </help> +@ABOUT@ + +]]> + </help> + + <expand macro="citations" /> + </tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rseqc_macros.xml Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,155 @@ +<macros> + + <token name="@WRAPPER_VERSION@">2.6.4</token> + + <xml name="requirements"> + <requirements> + <requirement type="package" version="2.6.4">rseqc</requirement> + </requirements> + </xml> + + <xml name="stdio"> + <stdio> + <exit_code range="1:" level="fatal" description="An error occured during execution, see stderr and stdout for more information" /> + <regex match="[Ee]rror" source="both" description="An error occured during execution, see stderr and stdout for more information" /> + </stdio> + </xml> + + <!-- Params --> + <xml name="bam_param"> + <param name="input" type="data" label="Input .bam file" format="bam" help="(--input-file)"/> + </xml> + + <xml name="bam_sam_param"> + <param name="input" type="data" label="Input .bam/.sam file" format="bam,sam" help="(--input-file)"/> + </xml> + + <xml name="refgene_param"> + <param name="refgene" type="data" format="bed" label="Reference gene model" help="(--refgene)"/> + </xml> + + <xml name="mapq_param"> + <param name="mapq" type="integer" label="Minimum mapping quality" value="30" help="Minimum mapping quality for an alignment to be considered as "uniquely mapped" (--mapq)"/> + </xml> + + <xml name="readlength_param"> + <param name="readlength" type="integer" value="" label="Alignment length" optional="false" help="Alignment length of read, usually set to the orignial read length (--read-align-length)"/> + </xml> + + <xml name="readnum_param"> + <param name="readnum" type="integer" label="Number of aligned reads" value="1000000" help="Number of aligned reads with mismatches used to calculate the mismatch profile (--read-num)"/> + </xml> + + <xml name="sample_size_param"> + <param name="sample_size" type="integer" label="Number of reads sampled from SAM/BAM file (default = 200000)" value="200000" min="1" help="(--sample-size)"/> + </xml> + + <xml name="min_intron_param"> + <param name="min_intron" type="integer" value="50" label="Minimum intron length (bp, default=50)" help="(--min-intron)" /> + </xml> + + <xml name="layout_param"> + <param name="layout" type="select" label="Sequencing layout" help="(--sequencing)"> + <option value="SE" selected="true">Single-end</option> + <option value="PE">Paired-end</option> + </param> + </xml> + + <xml name="strand_type_param"> + <conditional name="strand_type"> + <param name="strand_specific" type="select" label="Strand-specific?"> + <option value="none" selected="true">None</option> + <option value="pair">Pair-End RNA-seq</option> + <option value="single">Single-End RNA-seq</option> + </param> + <when value="pair"> + <param name="pair_type" type="select" display="radio" label="Pair-End Read Type (format: mapped --> parent)" help="(--strand)"> + <option value="sd" selected="true"> read1 (positive --> positive; negative --> negative), read2 (positive --> negative; negative --> positive)</option> + <option value="ds">read1 (positive --> negative; negative --> positive), read2 (positive --> positive; negative --> negative)</option> + </param> + </when> + <when value="single"> + <param name="single_type" type="select" display="radio" label="Single-End Read Type (format: mapped --> parent)" help="(--strand)"> + <option value="s" selected="true">positive --> positive; negative --> negative</option> + <option value="d">positive --> negative; negative --> positive</option> + </param> + </when> + <when value="none"></when> + </conditional> + </xml> + + <xml name="multihits_param"> + <conditional name="multihits_type"> + <param name="multihits_type_selector" type="select" label="Reads with multiple hits" help="(--skip-multi-hits)"> + <option value="use_multihits" selected="true">Count Mutliple Hit Reads</option> + <option value="skip_multihits">Skip Multiple Hit Reads/Only Use Uniquely Mapped Reads</option> + </param> + <when value="skip_multihits"> + <expand macro="mapq_param" /> + </when> + <when value="use_multihits" /> + </conditional> + </xml> + + <xml name="rscript_output_param"> + <param name="rscript_output" type="boolean" value="false" label="Output R-Script" + help="Output the R-Script used to generate the plots" /> + </xml> + + + <!-- Output --> + + <xml name="pdf_output_data" token_filename="output.pdf"> + <data format="pdf" name="outputpdf" from_work_dir="@FILENAME@" label="${tool.name} on ${on_string} (pdf)" /> + </xml> + + <xml name="xls_output_data" token_filename="output.xls"> + <data format="xls" name="outputxls" from_work_dir="@FILENAME@" label="${tool.name} on ${on_string} (xls)" /> + </xml> + + <xml name="rscript_output_data" token_filename="output.r"> + <data format="txt" name="outputr" from_work_dir="@FILENAME@" label="${tool.name} on ${on_string} (rscript)"> + <filter>rscript_output</filter> + </data> + </xml> + + <!-- Command --> + <token name="@MULTIHITS@"> +<![CDATA[ +#if str($multihits_type.multihits_type_selector) == "skip_multihits" + --skip-multi-hits + --mapq=${multihits_type.mapq} +#end if +]]> + </token> + + <token name="@ABOUT@"> + +----- + +About RSeQC ++++++++++++ + +The RSeQC_ package provides a number of useful modules that can comprehensively +evaluate high throughput sequence data especially RNA-seq data. "Basic modules" +quickly inspect sequence quality, nucleotide composition bias, PCR bias and GC +bias, while "RNA-seq specific modules" investigate sequencing saturation status +of both splicing junction detection and expression estimation, mapped reads +clipping profile, mapped reads distribution, coverage uniformity over gene +body, reproducibility, strand specificity and splice junction annotation. + +The RSeQC package is licensed under the GNU GPL v3 license. + +.. image:: $PATH_TO_IMAGES/logo.png + +.. _RSeQC: http://rseqc.sourceforge.net/ + + + </token> + + <xml name="citations"> + <citations> + <citation type="doi">10.1093/bioinformatics/bts356</citation> + </citations> + </xml> +</macros>
--- a/samtoolshelper.py Thu Jul 18 11:01:08 2013 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -import sys -import subprocess as sp -import os - -# Creates the sorted and indexed bam/bai files that are requried for both bam2wig and RSEQC_count -def samtools_sorted(bam): - sortedbam = bam + ".sorted" - indexedbam = ".".join([sortedbam,"bam.bai"]) - sp.call(['samtools', 'sort', '-m 1000000000', bam, sortedbam]) - sortedbam = sortedbam + '.bam' - sp.call(['samtools', 'index', sortedbam, indexedbam]) - return sortedbam - -def main(args): - args[2] = samtools_sorted(args[2]) - sp.call(args) - - -if __name__ == "__main__": - main(sys.argv[1:]) \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/hg19.HouseKeepingGenes_30.bed Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,30 @@ +chr1 100652477 100715409 NM_001918 0 - 100661810 100715376 0 11 9501,72,192,78,167,217,122,182,76,124,84, 0,19308,19523,23772,27895,29061,31704,43811,48514,53839,62848, +chr1 175913961 176176380 NM_022457 0 - 175914288 176176114 0 20 345,45,161,125,118,117,82,109,144,136,115,58,77,60,69,120,77,98,60,673, 0,2369,42117,43462,44536,82746,98360,98884,101355,136326,140950,171798,190184,191662,204180,218043,218989,231084,239807,261746, +chr1 150980972 151008189 NM_021222 0 + 150981108 151006710 0 8 175,93,203,185,159,95,159,1908, 0,9315,9970,16114,17018,18736,20289,25309, +chr1 6281252 6296044 NM_012405 0 - 6285139 6295971 0 5 4070,218,170,89,268, 0,10709,12281,13693,14524, +chr1 20959947 20978004 NM_032409 0 + 20960041 20977184 0 8 481,288,101,183,164,128,237,1078, 0,4387,6437,11035,12105,15050,15540,16979, +chr1 32479294 32509482 NM_006559 0 + 32479596 32508225 0 9 684,125,117,147,134,202,68,59,1355, 0,16604,17830,19494,23216,24141,24858,25821,28833, +chr1 27248212 27273362 NM_006600 0 + 27248339 27272672 0 9 208,78,204,66,117,195,84,119,742, 0,2367,19735,20031,20938,21149,23668,23846,24408, +chr1 31404352 31538564 NM_014676 0 - 31406057 31532413 0 22 1837,193,122,126,138,129,130,268,237,297,144,139,152,102,94,271,167,179,109,69,374,102, 0,5137,9645,10492,13840,18627,20728,22208,33168,34476,35661,36848,43145,48556,49806,60884,63548,74347,75488,97290,127698,134110, +chr1 36690016 36770957 NM_005119 0 + 36748164 36769618 0 12 90,103,168,903,705,173,112,85,188,199,144,1561, 0,34966,58117,61952,64644,66958,68182,69435,72167,76470,77137,79380, +chr1 46092975 46152302 NM_021639 0 - 46093927 46124759 0 13 1105,103,125,159,141,194,73,287,130,115,1042,45,219, 0,2272,3178,6185,6792,12906,15123,27239,27886,31724,32880,58272,59108, +chr1 44870959 45117396 NM_018150 0 + 44877769 45116447 0 15 243,742,133,46,102,43,44,133,97,87,56,79,109,75,1021, 0,6693,208877,217454,221009,227055,230257,230742,239410,239707,239933,240122,244373,244595,245416, +chr1 54519273 54565416 NM_153035 0 + 54520095 54562146 0 5 158,144,142,194,3459, 0,780,15155,34996,42684, +chr1 50906934 51425936 NM_007051 0 - 50907111 51425483 0 19 261,216,78,81,89,137,155,82,64,127,96,87,106,92,92,206,47,69,498, 0,34201,49325,50458,94106,98329,125814,141355,142389,143422,154858,214179,264523,297600,303421,346737,360368,416666,518504, +chr1 77554666 77685132 NM_005482 0 - 77558058 77685087 0 11 3509,85,173,111,118,97,112,136,92,54,138, 0,33293,65467,72313,72612,74864,77737,80278,117658,121454,130328, +chr1 94352589 94375012 NM_002061 0 - 94354545 94374719 0 7 2126,115,203,60,85,66,419, 0,7580,9584,10805,14551,17489,22004, +chr1 112162404 112259317 NM_002884 0 + 112233982 112251857 0 8 152,84,69,57,141,144,116,4265, 0,71551,75558,77658,83553,84560,89366,92648, +chr1 118472371 118503049 NM_006784 0 + 118475942 118502070 0 27 34,203,210,119,79,96,114,102,98,108,231,94,102,86,136,57,101,112,135,51,66,93,48,44,129,94,1135, 0,3539,4724,7020,8731,9728,11078,11375,12001,12688,13647,16337,18656,20002,20246,21085,22227,22548,22779,23197,23727,24258,24831,25566,27319,29161,29543, +chr1 156219014 156252620 NM_015327 0 - 156220377 156252471 0 22 1447,139,75,91,160,60,159,176,76,176,600,138,209,69,126,79,90,90,157,124,99,223, 0,1634,2179,3190,3695,4225,9781,11227,12109,14171,16557,17317,18246,18891,19066,23096,24137,25373,27861,28701,29712,33383, +chr1 180257351 180472022 NM_032360 0 - 180257497 180471401 0 8 301,31,90,106,83,97,65,843, 0,26475,109299,125149,141963,204052,207244,213828, +chr1 183441505 183523328 NM_173156 0 + 183441755 183521066 0 22 279,32,118,133,172,72,151,136,163,157,71,61,120,427,145,383,372,81,160,171,146,2376, 0,40466,43503,45317,54225,55585,56521,57027,60793,61305,64774,66009,68613,69705,71982,72559,73595,76837,77393,78380,78674,79447, +chr1 220141941 220220000 NM_004446 0 - 220142147 220219730 0 32 357,65,79,161,174,198,156,102,80,73,210,52,263,234,360,118,113,208,137,111,60,85,234,172,193,127,95,140,157,100,85,316, 0,458,3469,4638,9946,10818,11485,12156,12778,14172,14589,15606,18542,19990,28383,32538,36648,37506,38602,42346,49849,50395,51388,53747,55664,56532,61786,63787,64902,66314,71585,77743, +chr1 229577043 229644088 NM_018230 0 - 229577650 229643996 0 26 744,89,65,81,119,136,159,134,252,100,123,225,95,164,92,158,148,148,71,156,171,135,108,104,119,274, 0,3617,7829,9228,11228,16864,19314,22246,23327,24123,25337,29283,34341,36300,42757,45074,46169,48658,54198,54595,56839,58387,59459,60702,64743,66771, +chr1 1309109 1310818 NM_017900 0 - 1309180 1310136 0 4 173,446,86,285, 0,270,975,1424, +chr1 9908333 9970316 NM_020248 0 - 9910775 9932122 0 6 2501,91,120,85,34,164, 0,22911,23693,29629,35429,61819, +chr1 10093040 10241296 NM_006048 0 + 10093728 10240014 0 27 712,187,136,88,145,229,142,101,115,84,57,117,99,114,199,139,100,128,99,236,127,145,135,192,175,147,1344, 0,39045,62478,68125,69965,72533,84476,86530,88979,93811,96409,97517,97732,99386,102005,104084,111957,113980,116201,118343,125373,128159,135153,138155,145661,146433,146912, +chr1 11126675 11159938 NM_002685 0 - 11126774 11159888 0 24 130,77,62,172,74,85,96,107,79,51,112,51,149,157,191,144,111,76,115,166,105,124,137,161, 0,1389,2026,2940,4281,5468,7612,10223,10746,10982,13092,13880,14145,14463,16069,20829,21181,21504,23935,24395,24874,29139,31401,33102, +chr1 10535002 10690815 NM_004565 0 + 10535023 10690044 0 9 57,48,85,129,86,103,98,92,1228, 0,20328,61267,124292,143386,148073,149394,152326,154585, +chr1 16576558 16678948 NM_018994 0 - 16577164 16641913 0 10 1722,117,57,97,111,154,135,117,267,199, 0,2224,3032,3571,5647,6542,44719,55739,65105,102191, +chr1 16174358 16266950 NM_015001 0 + 16174562 16265922 0 15 287,321,477,161,201,152,126,114,114,101,8176,483,195,159,1160, 0,24952,28338,61457,63237,68264,71062,71540,73006,74385,80227,89299,89948,90854,91432, +chr1 17866329 18024370 NM_018125 0 + 17907090 18023875 0 29 116,80,186,34,92,84,176,117,109,107,78,180,117,93,174,146,15,182,116,128,101,122,87,224,155,149,175,123,1028, 0,40718,47625,48611,62292,63673,67967,73223,76259,79504,82029,83161,84552,86121,87495,92486,94713,95000,98053,98727,100367,108719,114801,116044,116719,124612,147738,155323,157013,
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/hg19.chrom.sizes Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,93 @@ +chr1 249250621 +chr2 243199373 +chr3 198022430 +chr4 191154276 +chr5 180915260 +chr6 171115067 +chr7 159138663 +chrX 155270560 +chr8 146364022 +chr9 141213431 +chr10 135534747 +chr11 135006516 +chr12 133851895 +chr13 115169878 +chr14 107349540 +chr15 102531392 +chr16 90354753 +chr17 81195210 +chr18 78077248 +chr20 63025520 +chrY 59373566 +chr19 59128983 +chr22 51304566 +chr21 48129895 +chr6_ssto_hap7 4928567 +chr6_mcf_hap5 4833398 +chr6_cox_hap2 4795371 +chr6_mann_hap4 4683263 +chr6_apd_hap1 4622290 +chr6_qbl_hap6 4611984 +chr6_dbb_hap3 4610396 +chr17_ctg5_hap1 1680828 +chr4_ctg9_hap1 590426 +chr1_gl000192_random 547496 +chrUn_gl000225 211173 +chr4_gl000194_random 191469 +chr4_gl000193_random 189789 +chr9_gl000200_random 187035 +chrUn_gl000222 186861 +chrUn_gl000212 186858 +chr7_gl000195_random 182896 +chrUn_gl000223 180455 +chrUn_gl000224 179693 +chrUn_gl000219 179198 +chr17_gl000205_random 174588 +chrUn_gl000215 172545 +chrUn_gl000216 172294 +chrUn_gl000217 172149 +chr9_gl000199_random 169874 +chrUn_gl000211 166566 +chrUn_gl000213 164239 +chrUn_gl000220 161802 +chrUn_gl000218 161147 +chr19_gl000209_random 159169 +chrUn_gl000221 155397 +chrUn_gl000214 137718 +chrUn_gl000228 129120 +chrUn_gl000227 128374 +chr1_gl000191_random 106433 +chr19_gl000208_random 92689 +chr9_gl000198_random 90085 +chr17_gl000204_random 81310 +chrUn_gl000233 45941 +chrUn_gl000237 45867 +chrUn_gl000230 43691 +chrUn_gl000242 43523 +chrUn_gl000243 43341 +chrUn_gl000241 42152 +chrUn_gl000236 41934 +chrUn_gl000240 41933 +chr17_gl000206_random 41001 +chrUn_gl000232 40652 +chrUn_gl000234 40531 +chr11_gl000202_random 40103 +chrUn_gl000238 39939 +chrUn_gl000244 39929 +chrUn_gl000248 39786 +chr8_gl000196_random 38914 +chrUn_gl000249 38502 +chrUn_gl000246 38154 +chr17_gl000203_random 37498 +chr8_gl000197_random 37175 +chrUn_gl000245 36651 +chrUn_gl000247 36422 +chr9_gl000201_random 36148 +chrUn_gl000235 34474 +chrUn_gl000239 33824 +chr21_gl000210_random 27682 +chrUn_gl000231 27386 +chrUn_gl000229 19913 +chrM 16571 +chrUn_gl000226 15008 +chr18_gl000207_random 4262
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/hg19_RefSeq_chr1_1-100000.bed Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,7 @@ +chr1 11873 14409 NR_046018 0 + 14409 14409 0 3 354,109,1189, 0,739,1347, +chr1 14361 29370 NR_024540 0 - 29370 29370 0 11 468,69,152,159,198,136,137,147,99,154,50, 0,608,1434,2245,2496,2871,3244,3553,3906,10376,14959, +chr1 17368 17436 NR_106918 0 - 17436 17436 0 1 68, 0, +chr1 17368 17436 NR_107062 0 - 17436 17436 0 1 68, 0, +chr1 34610 36081 NR_026818 0 - 36081 36081 0 3 564,205,361, 0,666,1110, +chr1 34610 36081 NR_026820 0 - 36081 36081 0 3 564,205,361, 0,666,1110, +chr1 69090 70008 NM_001005484 0 + 69090 70008 0 1 918, 0,
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.DupRate_plot.r Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,14 @@ +pdf('output.DupRate_plot.pdf') +par(mar=c(5,4,4,5),las=0) +seq_occ=c(1) +seq_uniqRead=c(40) +pos_occ=c(1) +pos_uniqRead=c(40) +plot(pos_occ,log10(pos_uniqRead),ylab='Number of Reads (log10)',xlab='Occurrence of read',pch=4,cex=0.8,col='blue',xlim=c(1,500),yaxt='n') +points(seq_occ,log10(seq_uniqRead),pch=20,cex=0.8,col='red') +ym=floor(max(log10(pos_uniqRead))) +legend(300,ym,legend=c('Sequence-based','Mapping-based'),col=c('blue','red'),pch=c(4,20)) +axis(side=2,at=0:ym,labels=0:ym) +axis(side=4,at=c(log10(pos_uniqRead[1]),log10(pos_uniqRead[2]),log10(pos_uniqRead[3]),log10(pos_uniqRead[4])), labels=c(round(pos_uniqRead[1]*100/sum(pos_uniqRead*pos_occ)),round(pos_uniqRead[2]*100/sum(pos_uniqRead*pos_occ)),round(pos_uniqRead[3]*100/sum(pos_uniqRead*pos_occ)),round(pos_uniqRead[4]*100/sum(pos_uniqRead*pos_occ)))) +mtext(4, text = "Reads %", line = 2) +dev.off()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.FPKM.xls Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,8 @@ +#chrom st end accession mRNA_size gene_strand Frag_count FPM FPKM +chr1 11873 14409 NR_046018 1652.0 + 1.0 50000.0 30266.3438257 +chr1 14361 29370 NR_024540 1769.0 - 2.0 100000.0 56529.1124929 +chr1 17368 17436 NR_106918 68.0 - 0.0 0.0 0.0 +chr1 17368 17436 NR_107062 68.0 - 0.0 0.0 0.0 +chr1 34610 36081 NR_026818 1130.0 - 0.0 0.0 0.0 +chr1 34610 36081 NR_026820 1130.0 - 0.0 0.0 0.0 +chr1 69090 70008 NM_001005484 918.0 + 0.0 0.0 0.0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.GC.xls Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,19 @@ +GC% read_count +60.78 3 +41.18 3 +47.06 5 +56.86 7 +29.41 1 +27.45 2 +37.25 2 +78.43 1 +58.82 1 +50.98 3 +49.02 2 +62.75 1 +68.63 1 +54.90 1 +52.94 3 +35.29 1 +43.14 2 +39.22 1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.GC_plot.r Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,4 @@ +pdf("output.GC_plot.pdf") +gc=rep(c(60.78,41.18,47.06,56.86,29.41,27.45,37.25,78.43,58.82,50.98,49.02,62.75,68.63,54.90,52.94,35.29,43.14,39.22),times=c(3,3,5,7,1,2,2,1,1,3,2,1,1,1,3,1,2,1)) +hist(gc,probability=T,breaks=100,xlab="GC content (%)",ylab="Density of Reads",border="blue",main="") +dev.off()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.NVC.xls Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,52 @@ +Position A C G T N X +0 5 7 18 10 0 0 +1 6 7 15 8 4 0 +2 5 9 18 5 3 0 +3 11 9 14 4 2 0 +4 5 9 12 14 0 0 +5 4 11 19 6 0 0 +6 11 7 12 10 0 0 +7 9 8 12 9 2 0 +8 12 9 11 8 0 0 +9 8 9 8 10 5 0 +10 9 8 9 14 0 0 +11 9 6 11 14 0 0 +12 14 8 12 6 0 0 +13 10 6 9 15 0 0 +14 9 9 7 15 0 0 +15 10 10 9 9 2 0 +16 8 4 6 14 8 0 +17 9 9 10 9 3 0 +18 7 5 11 12 5 0 +19 12 8 4 10 6 0 +20 10 6 9 15 0 0 +21 9 9 15 7 0 0 +22 14 6 11 9 0 0 +23 13 11 11 5 0 0 +24 12 8 7 10 3 0 +25 9 13 4 8 6 0 +26 11 16 7 6 0 0 +27 11 8 13 8 0 0 +28 13 6 9 12 0 0 +29 9 9 12 10 0 0 +30 8 6 15 11 0 0 +31 7 9 11 13 0 0 +32 7 8 14 11 0 0 +33 11 11 10 8 0 0 +34 6 12 13 9 0 0 +35 8 17 11 4 0 0 +36 9 8 7 16 0 0 +37 11 9 12 8 0 0 +38 8 9 10 13 0 0 +39 8 12 11 9 0 0 +40 12 9 10 9 0 0 +41 9 13 11 7 0 0 +42 10 12 9 9 0 0 +43 7 13 11 9 0 0 +44 10 12 6 12 0 0 +45 10 10 9 11 0 0 +46 7 10 10 13 0 0 +47 9 9 12 10 0 0 +48 10 6 14 10 0 0 +49 8 10 13 9 0 0 +50 7 8 9 16 0 0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.NVC_plot.r Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,17 @@ +position=c(0,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) +A_count=c(5,6,5,11,5,4,11,9,12,8,9,9,14,10,9,10,8,9,7,12,10,9,14,13,12,9,11,11,13,9,8,7,7,11,6,8,9,11,8,8,12,9,10,7,10,10,7,9,10,8,7) +C_count=c(7,7,9,9,9,11,7,8,9,9,8,6,8,6,9,10,4,9,5,8,6,9,6,11,8,13,16,8,6,9,6,9,8,11,12,17,8,9,9,12,9,13,12,13,12,10,10,9,6,10,8) +G_count=c(18,15,18,14,12,19,12,12,11,8,9,11,12,9,7,9,6,10,11,4,9,15,11,11,7,4,7,13,9,12,15,11,14,10,13,11,7,12,10,11,10,11,9,11,6,9,10,12,14,13,9) +T_count=c(10,8,5,4,14,6,10,9,8,10,14,14,6,15,15,9,14,9,12,10,15,7,9,5,10,8,6,8,12,10,11,13,11,8,9,4,16,8,13,9,9,7,9,9,12,11,13,10,10,9,16) +N_count=c(0,4,3,2,0,0,0,2,0,5,0,0,0,0,0,2,8,3,5,6,0,0,0,0,3,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) +X_count=c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) +total= A_count + C_count + G_count + T_count +ym=max(A_count/total,C_count/total,G_count/total,T_count/total) + 0.05 +yn=min(A_count/total,C_count/total,G_count/total,T_count/total) +pdf("output.NVC_plot.pdf") +plot(position,A_count/total,type="o",pch=20,ylim=c(yn,ym),col="dark green",xlab="Position of Read",ylab="Nucleotide Frequency") +lines(position,T_count/total,type="o",pch=20,col="red") +lines(position,G_count/total,type="o",pch=20,col="blue") +lines(position,C_count/total,type="o",pch=20,col="cyan") +legend(41,ym,legend=c("A","T","G","C"),col=c("dark green","red","blue","cyan"),lwd=2,pch=20,text.col=c("dark green","red","blue","cyan")) +dev.off()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.RNA_fragment_size.txt Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,8 @@ +chrom tx_start tx_end symbol frag_count frag_mean frag_median frag_std +chr1 11873 14409 NR_046018 1 0 0 0 +chr1 14361 29370 NR_024540 14 66.5 51.0 41.1195990809 +chr1 17368 17436 NR_106918 0 0 0 0 +chr1 17368 17436 NR_107062 0 0 0 0 +chr1 34610 36081 NR_026818 0 0 0 0 +chr1 34610 36081 NR_026820 0 0 0 0 +chr1 69090 70008 NM_001005484 0 0 0 0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.bamstats.txt Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,22 @@ + +#================================================== +#All numbers are READ count +#================================================== + +Total records: 40 + +QC failed: 0 +Optical/PCR duplicate: 0 +Non primary hits 0 +Unmapped reads: 0 +mapq < mapq_cut (non-unique): 0 + +mapq >= mapq_cut (unique): 40 +Read-1: 20 +Read-2: 20 +Reads map to '+': 20 +Reads map to '-': 20 +Non-splice reads: 36 +Splice reads: 4 +Reads mapped in proper pairs: 39 +Proper-paired reads map to different chrom:0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.clipping_profile.r Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,6 @@ +pdf("output.clipping_profile.pdf") +read_pos=c(0,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) +clip_count=c(16.0,12.0,11.0,8.0,7.0,6.0,1.0,1.0,1.0,1.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0,1.0,1.0,2.0,3.0,4.0,4.0) +nonclip_count= 40 - clip_count +plot(read_pos, nonclip_count*100/(clip_count+nonclip_count),col="blue",main="clipping profile",xlab="Position of read",ylab="Non-clipped %",type="b") +dev.off()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.clipping_profile.xls Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,52 @@ +Position Clipped_nt Non_clipped_nt +0 16.0 24.0 +1 12.0 28.0 +2 11.0 29.0 +3 8.0 32.0 +4 7.0 33.0 +5 6.0 34.0 +6 1.0 39.0 +7 1.0 39.0 +8 1.0 39.0 +9 1.0 39.0 +10 0 40.0 +11 0 40.0 +12 0 40.0 +13 0 40.0 +14 0 40.0 +15 0 40.0 +16 0 40.0 +17 0 40.0 +18 0 40.0 +19 0 40.0 +20 0 40.0 +21 0 40.0 +22 0 40.0 +23 0 40.0 +24 0 40.0 +25 0 40.0 +26 0 40.0 +27 0 40.0 +28 0 40.0 +29 0 40.0 +30 0 40.0 +31 0 40.0 +32 0 40.0 +33 0 40.0 +34 0 40.0 +35 0 40.0 +36 0 40.0 +37 0 40.0 +38 0 40.0 +39 0 40.0 +40 0 40.0 +41 0 40.0 +42 0 40.0 +43 0 40.0 +44 1.0 39.0 +45 1.0 39.0 +46 1.0 39.0 +47 2.0 38.0 +48 3.0 37.0 +49 4.0 36.0 +50 4.0 36.0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.deletion_profile.r Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,5 @@ +pdf("output.deletion_profile.pdf") +pos=c(0,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,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100) +value=c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) +plot(pos,value,type='b', col='blue',xlab="Read position (5'->3')", ylab='Deletion count') +dev.off()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.deletion_profile.txt Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,102 @@ +read_position deletion_count +0 0 +1 0 +2 0 +3 0 +4 0 +5 0 +6 0 +7 0 +8 0 +9 0 +10 0 +11 0 +12 0 +13 0 +14 0 +15 0 +16 0 +17 0 +18 0 +19 0 +20 0 +21 0 +22 0 +23 0 +24 0 +25 0 +26 0 +27 0 +28 0 +29 0 +30 0 +31 0 +32 0 +33 0 +34 0 +35 0 +36 0 +37 0 +38 0 +39 0 +40 0 +41 0 +42 0 +43 0 +44 0 +45 0 +46 0 +47 0 +48 0 +49 0 +50 0 +51 0 +52 0 +53 0 +54 0 +55 0 +56 0 +57 0 +58 0 +59 0 +60 0 +61 0 +62 0 +63 0 +64 0 +65 0 +66 0 +67 0 +68 0 +69 0 +70 0 +71 0 +72 0 +73 0 +74 0 +75 0 +76 0 +77 0 +78 0 +79 0 +80 0 +81 0 +82 0 +83 0 +84 0 +85 0 +86 0 +87 0 +88 0 +89 0 +90 0 +91 0 +92 0 +93 0 +94 0 +95 0 +96 0 +97 0 +98 0 +99 0 +100 0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.geneBodyCoverage.r Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,8 @@ +pairend_strandspecific_51mer_hg19_chr1_1_100000_bam <- c(0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0) + + +pdf("output.geneBodyCoverage.curves.pdf") +x=1:100 +icolor = colorRampPalette(c("#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f"))(1) +plot(x,pairend_strandspecific_51mer_hg19_chr1_1_100000_bam,type='l',xlab="Gene body percentile (5'->3')", ylab="Coverage",lwd=0.8,col=icolor[1]) +dev.off()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.geneBodyCoverage.txt Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,2 @@ +Percentile 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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 +pairend_strandspecific_51mer_hg19_chr1_1_100000_bam 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.geneBodyCoverage2.r Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,5 @@ +pdf('output.geneBodyCoverage.pdf') +x=1:100 +y=c(0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0) +plot(x,y/7,xlab="percentile of gene body (5'->3')",ylab='average wigsum',type='s') +dev.off()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.geneBodyCoverage2.txt Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,101 @@ +percentile count +0 0.0 +1 0.0 +2 0.0 +3 0.0 +4 0.0 +5 0.0 +6 0.0 +7 0.0 +8 0.0 +9 0.0 +10 0.0 +11 0.0 +12 0.0 +13 0.0 +14 0.0 +15 0.0 +16 0.0 +17 0.0 +18 0.0 +19 0.0 +20 0.0 +21 0.0 +22 0.0 +23 0.0 +24 0.0 +25 1.0 +26 0.0 +27 0.0 +28 1.0 +29 0.0 +30 0.0 +31 0.0 +32 0.0 +33 0.0 +34 0.0 +35 0.0 +36 0.0 +37 0.0 +38 1.0 +39 1.0 +40 1.0 +41 0.0 +42 0.0 +43 1.0 +44 1.0 +45 1.0 +46 0.0 +47 0.0 +48 0.0 +49 0.0 +50 0.0 +51 0.0 +52 0.0 +53 0.0 +54 0.0 +55 0.0 +56 0.0 +57 0.0 +58 0.0 +59 0.0 +60 0.0 +61 0.0 +62 0.0 +63 0.0 +64 0.0 +65 0.0 +66 0.0 +67 0.0 +68 0.0 +69 0.0 +70 0.0 +71 0.0 +72 0.0 +73 0.0 +74 0.0 +75 0.0 +76 0.0 +77 0.0 +78 0.0 +79 1.0 +80 1.0 +81 1.0 +82 0.0 +83 1.0 +84 1.0 +85 1.0 +86 0.0 +87 0.0 +88 0.0 +89 0.0 +90 0.0 +91 0.0 +92 0.0 +93 0.0 +94 0.0 +95 0.0 +96 0.0 +97 0.0 +98 0.0 +99 0.0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.infer_experiment.txt Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,6 @@ + + +This is PairEnd Data +Fraction of reads failed to determine: 0.0000 +Fraction of reads explained by "1++,1--,2+-,2-+": 1.0000 +Fraction of reads explained by "1+-,1-+,2++,2--": 0.0000
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.inner_distance.txt Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,20 @@ +seq.11990047 235 sameTranscript=No,dist=genomic +seq.14614493 31 sameTranscript=Yes,sameExon=Yes,dist=mRNA +seq.24018133 2 sameTranscript=Yes,nonExonic=Yes,dist=genomic +seq.10608403 158 sameTranscript=Yes,sameExon=No,dist=mRNA +seq.10820209 146 sameTranscript=Yes,nonExonic=Yes,dist=genomic +seq.1537155 33 sameTranscript=Yes,nonExonic=Yes,dist=genomic +seq.25274725 17 sameTranscript=Yes,nonExonic=Yes,dist=genomic +seq.26326595 211 sameTranscript=Yes,nonExonic=Yes,dist=genomic +seq.28833653 55 sameTranscript=Yes,nonExonic=Yes,dist=genomic +seq.25049090 61 sameTranscript=Yes,nonExonic=Yes,dist=genomic +seq.23476912 69 sameTranscript=Yes,nonExonic=Yes,dist=genomic +seq.28059536 225 sameTranscript=Yes,nonExonic=Yes,dist=genomic +seq.13270875 200 sameTranscript=Yes,nonExonic=Yes,dist=genomic +seq.2214586 132 sameTranscript=Yes,nonExonic=Yes,dist=genomic +seq.31061198 -31 readPairOverlap +seq.13539256 208 sameTranscript=No,dist=genomic +seq.13835843 -7 sameTranscript=No,dist=genomic +seq.5556605 88 sameTranscript=No,dist=genomic +seq.20367385 17 sameTranscript=No,dist=genomic +seq.17373919 146394 sameTranscript=No,dist=genomic
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.inner_distance_freq.txt Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,100 @@ +-250 -245 0 +-245 -240 0 +-240 -235 0 +-235 -230 0 +-230 -225 0 +-225 -220 0 +-220 -215 0 +-215 -210 0 +-210 -205 0 +-205 -200 0 +-200 -195 0 +-195 -190 0 +-190 -185 0 +-185 -180 0 +-180 -175 0 +-175 -170 0 +-170 -165 0 +-165 -160 0 +-160 -155 0 +-155 -150 0 +-150 -145 0 +-145 -140 0 +-140 -135 0 +-135 -130 0 +-130 -125 0 +-125 -120 0 +-120 -115 0 +-115 -110 0 +-110 -105 0 +-105 -100 0 +-100 -95 0 +-95 -90 0 +-90 -85 0 +-85 -80 0 +-80 -75 0 +-75 -70 0 +-70 -65 0 +-65 -60 0 +-60 -55 0 +-55 -50 0 +-50 -45 0 +-45 -40 0 +-40 -35 0 +-35 -30 1 +-30 -25 0 +-25 -20 0 +-20 -15 0 +-15 -10 0 +-10 -5 1 +-5 0 0 +0 5 1 +5 10 0 +10 15 0 +15 20 2 +20 25 0 +25 30 0 +30 35 2 +35 40 0 +40 45 0 +45 50 0 +50 55 1 +55 60 0 +60 65 1 +65 70 1 +70 75 0 +75 80 0 +80 85 0 +85 90 1 +90 95 0 +95 100 0 +100 105 0 +105 110 0 +110 115 0 +115 120 0 +120 125 0 +125 130 0 +130 135 1 +135 140 0 +140 145 0 +145 150 1 +150 155 0 +155 160 1 +160 165 0 +165 170 0 +170 175 0 +175 180 0 +180 185 0 +185 190 0 +190 195 0 +195 200 1 +200 205 0 +205 210 1 +210 215 1 +215 220 0 +220 225 1 +225 230 0 +230 235 1 +235 240 0 +240 245 0 +245 250 0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.inner_distance_plot.r Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,11 @@ +out_file = 'output' +pdf('output.inner_distance_plot.pdf') +fragsize=rep(c(-248,-243,-238,-233,-228,-223,-218,-213,-208,-203,-198,-193,-188,-183,-178,-173,-168,-163,-158,-153,-148,-143,-138,-133,-128,-123,-118,-113,-108,-103,-98,-93,-88,-83,-78,-73,-68,-63,-58,-53,-48,-43,-38,-33,-28,-23,-18,-13,-8,-3,2,7,12,17,22,27,32,37,42,47,52,57,62,67,72,77,82,87,92,97,102,107,112,117,122,127,132,137,142,147,152,157,162,167,172,177,182,187,192,197,202,207,212,217,222,227,232,237,242,247),times=c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,2,0,0,2,0,0,0,1,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,1,0,1,0,1,0,0,0)) +frag_sd = sd(fragsize) +frag_mean = mean(fragsize) +frag_median = median(fragsize) +write(x=c("Name","Mean","Median","sd"), sep=" ", file=stdout(),ncolumns=4) +write(c(out_file,frag_mean,frag_median,frag_sd),sep=" ", file=stdout(),ncolumns=4) +hist(fragsize,probability=T,breaks=100,xlab="mRNA insert size (bp)",main=paste(c("Mean=",frag_mean,";","SD=",frag_sd),collapse=""),border="blue") +lines(density(fragsize,bw=10),col='red') +dev.off()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.insertion_profile.r Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,6 @@ +pdf("output.insertion_profile.pdf") +read_pos=c(0,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) +insert_count=c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) +noninsert_count= 40 - insert_count +plot(read_pos, insert_count*100/(insert_count+noninsert_count),col="blue",main="Insertion profile",xlab="Position of read",ylab="Insertion %",type="b") +dev.off()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.insertion_profile.xls Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,52 @@ +Position Insert_nt Non_insert_nt +0 0 40.0 +1 0 40.0 +2 0 40.0 +3 0 40.0 +4 0 40.0 +5 0 40.0 +6 0 40.0 +7 0 40.0 +8 0 40.0 +9 0 40.0 +10 0 40.0 +11 0 40.0 +12 0 40.0 +13 0 40.0 +14 0 40.0 +15 0 40.0 +16 0 40.0 +17 0 40.0 +18 0 40.0 +19 0 40.0 +20 0 40.0 +21 0 40.0 +22 0 40.0 +23 0 40.0 +24 0 40.0 +25 0 40.0 +26 0 40.0 +27 0 40.0 +28 0 40.0 +29 0 40.0 +30 0 40.0 +31 0 40.0 +32 0 40.0 +33 0 40.0 +34 0 40.0 +35 0 40.0 +36 0 40.0 +37 0 40.0 +38 0 40.0 +39 0 40.0 +40 0 40.0 +41 0 40.0 +42 0 40.0 +43 0 40.0 +44 0 40.0 +45 0 40.0 +46 0 40.0 +47 0 40.0 +48 0 40.0 +49 0 40.0 +50 0 40.0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.junction.xls Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,4 @@ +chrom intron_st(0-based) intron_end(1-based) read_count annotation +chr1 17055 17232 1 annotated +chr1 21768 22000 1 complete_novel +chr1 12697 13220 1 partial_novel
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.junctionSaturation_plot.r Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,12 @@ +pdf('output.junctionSaturation_plot.pdf') +x=c(5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100) +y=c(0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1) +z=c(0,0,0,0,0,0,1,1,1,1,1,1,1,2,2,2,2,2,2,3) +w=c(0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2) +m=max(0,0,0) +n=min(0,0,0) +plot(x,z/1000,xlab='percent of total reads',ylab='Number of splicing junctions (x1000)',type='o',col='blue',ylim=c(n,m)) +points(x,y/1000,type='o',col='red') +points(x,w/1000,type='o',col='green') +legend(5,0, legend=c("All junctions","known junctions", "novel junctions"),col=c("blue","red","green"),lwd=1,pch=1) +dev.off()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.junction_plot.r Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,8 @@ +pdf("output.splice_events.pdf") +events=c(25.0,25.0,25.0) +pie(events,col=c(2,3,4),init.angle=30,angle=c(60,120,150),density=c(70,70,70),main="splicing events",labels=c("partial_novel 25%","complete_novel 25%","known 25%")) +dev.off() +pdf("output.splice_junction.pdf") +junction=c(33.3333333333,33.3333333333,33.3333333333) +pie(junction,col=c(2,3,4),init.angle=30,angle=c(60,120,150),density=c(70,70,70),main="splicing junctions",labels=c("partial_novel 33%","complete_novel 33%","known 33%")) +dev.off()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.mismatch_profile.xls Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,1 @@ +Total reads used: 0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.pos.DupRate.xls Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,2 @@ +Occurrence UniqReadNumber +1 40
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.qual.heatmap.pdf Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,62 @@ +pdf('output.qual.boxplot.pdf') +p0<-rep(c(33,37,38,39,40,41,42,43,44,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(119,2,3,2,5,6,8,6,2,3,11,16,6,26,11,13,25,39,7,40,33,33,58,51,116,87,55,256,54,323,263,140,812,654,1119)/1000) +p1<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(105,2,2,2,4,8,6,21,3,1,1,8,13,13,16,16,14,29,32,18,50,30,57,66,73,97,105,60,253,57,330,270,142,801,630,1069)/1000) +p2<-rep(c(33,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(109,1,1,3,2,7,11,14,13,2,4,3,8,14,21,27,17,14,26,39,11,37,28,74,64,55,86,106,62,234,56,326,269,147,787,645,1081)/1000) +p3<-rep(c(33,37,38,39,40,41,42,43,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(108,1,6,4,2,9,12,7,3,3,9,14,13,24,20,8,24,46,14,43,28,59,67,75,88,107,51,285,56,293,239,139,802,660,1084)/1000) +p4<-rep(c(33,35,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(97,1,1,3,9,8,11,5,4,2,4,10,16,19,24,7,8,35,43,19,49,29,51,67,51,93,107,43,306,65,345,223,123,789,661,1075)/1000) +p5<-rep(c(33,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(96,3,2,5,11,6,8,2,7,2,12,17,15,16,12,11,25,31,12,32,36,59,70,69,74,99,56,277,59,343,249,111,845,650,1081)/1000) +p6<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(86,2,4,2,6,12,8,10,1,7,7,9,11,14,26,14,9,14,53,17,34,41,55,71,76,76,117,62,238,62,339,229,155,798,607,1131)/1000) +p7<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(76,1,4,4,6,11,9,13,5,5,6,6,17,19,20,17,8,19,45,15,30,33,60,68,58,76,99,59,291,54,349,251,129,818,602,1120)/1000) +p8<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(74,1,2,3,1,5,6,6,7,7,2,4,11,11,16,24,13,9,24,48,19,33,39,63,67,68,78,104,66,284,62,329,240,147,749,649,1132)/1000) +p9<-rep(c(33,37,38,39,40,41,42,43,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(98,1,2,2,6,11,19,10,5,3,8,18,19,24,14,5,18,53,21,41,39,56,79,64,70,93,57,291,42,334,259,143,795,616,1087)/1000) +p10<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(71,3,3,4,3,5,6,7,2,3,5,13,14,6,17,21,12,27,40,16,34,39,46,64,78,103,103,63,279,37,314,239,118,805,674,1129)/1000) +p11<-rep(c(33,34,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(76,1,4,3,3,7,10,11,8,5,6,3,12,13,18,21,16,18,21,46,21,32,41,77,56,77,103,105,54,269,40,320,247,144,796,621,1098)/1000) +p12<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(87,3,2,1,7,12,8,6,5,13,8,11,9,16,23,13,14,22,40,21,53,48,51,59,77,84,126,75,282,48,306,254,151,808,586,1074)/1000) +p13<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(76,5,1,3,6,3,7,8,4,3,10,12,14,13,23,12,19,25,43,17,52,42,63,57,92,91,114,61,281,45,342,256,132,812,586,1073)/1000) +p14<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(81,1,5,4,4,10,11,9,3,5,5,6,18,21,29,26,14,27,51,17,54,47,51,65,84,84,118,66,291,46,316,244,149,782,579,1080)/1000) +p15<-rep(c(33,36,37,38,39,40,41,42,43,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(87,1,2,5,2,10,17,12,9,7,2,10,10,12,20,18,21,27,50,17,50,54,42,82,57,84,103,54,285,41,342,265,115,822,582,1085)/1000) +p16<-rep(c(33,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(118,4,3,7,7,11,10,5,6,8,11,18,19,30,34,13,34,47,14,62,49,55,83,82,96,101,51,283,45,346,249,152,843,521,985)/1000) +p17<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(73,2,5,6,7,9,11,7,5,4,11,19,13,15,33,18,17,42,57,25,46,65,67,94,68,93,117,67,279,53,306,295,132,844,504,993)/1000) +p18<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(72,1,2,3,5,4,16,13,14,2,8,2,18,19,27,37,27,18,29,57,21,47,57,62,87,81,89,111,57,293,49,319,270,142,858,495,990)/1000) +p19<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(78,1,1,5,3,3,13,10,13,5,7,5,14,15,24,30,23,23,24,57,19,72,49,70,70,72,91,124,60,298,52,347,270,147,841,486,980)/1000) +p20<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(71,4,5,3,10,9,10,12,5,9,6,23,14,19,33,27,21,34,60,16,47,57,55,82,84,109,117,44,305,45,335,265,146,856,510,954)/1000) +p21<-rep(c(33,37,38,39,40,41,42,43,44,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(80,5,4,5,4,6,10,7,4,11,14,19,18,32,25,29,32,75,19,58,56,66,81,79,102,133,52,332,44,306,260,152,879,486,917)/1000) +p22<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(80,2,5,2,11,11,13,4,4,5,8,12,15,21,34,27,18,44,58,26,72,62,72,90,84,97,137,51,324,54,332,254,143,857,492,881)/1000) +p23<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(78,3,4,1,9,9,3,8,9,9,5,12,20,19,37,30,23,38,69,29,64,51,71,95,92,99,133,52,320,51,340,275,152,868,467,856)/1000) +p24<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(73,1,2,3,6,14,19,7,3,3,10,24,15,26,38,27,15,34,71,17,62,72,75,86,84,108,128,65,304,41,356,239,139,864,494,876)/1000) +p25<-rep(c(33,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,60,61,62,63,64,65,66,67,68,69,70,71),times=c(100,1,1,6,3,6,14,19,11,9,7,11,5,8,25,21,35,16,18,39,61,19,65,42,62,91,83,80,105,38,318,50,372,289,135,847,504,884)/1000) +p26<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(72,1,1,4,2,12,10,17,11,5,3,3,21,25,29,34,34,19,38,55,20,55,59,82,96,99,106,133,45,299,71,339,265,157,822,474,882)/1000) +p27<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(73,1,2,5,3,17,16,6,5,7,11,7,16,14,30,31,16,45,71,29,50,62,72,78,77,107,132,62,273,47,366,277,161,892,462,877)/1000) +p28<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(91,3,2,2,7,10,6,9,9,6,11,15,17,19,33,20,10,30,54,20,68,48,73,84,72,114,131,60,321,60,356,270,159,874,496,840)/1000) +p29<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(92,1,5,5,4,6,8,7,10,4,7,7,16,26,24,33,20,22,36,49,15,53,65,71,79,80,112,127,63,320,49,359,292,141,837,455,900)/1000) +p30<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(105,1,2,5,4,2,15,8,13,8,6,7,19,24,21,30,22,17,35,53,13,52,61,45,93,74,87,120,60,302,41,331,272,131,877,513,931)/1000) +p31<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(117,3,5,3,11,23,24,10,5,7,6,8,13,12,40,18,18,40,41,12,45,57,72,86,71,75,125,68,299,55,302,264,154,874,464,973)/1000) +p32<-rep(c(33,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(120,1,7,3,4,9,13,19,8,5,3,10,17,25,13,19,18,23,33,49,25,41,51,72,74,56,95,112,60,291,58,281,267,145,916,463,993)/1000) +p33<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(89,1,4,9,13,7,8,7,8,6,8,8,18,20,12,34,26,14,31,50,17,45,65,58,68,77,84,110,66,289,54,284,282,164,871,489,1003)/1000) +p34<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(162,1,3,4,4,14,15,24,17,2,6,9,16,15,20,37,20,12,34,49,12,42,50,54,66,62,81,121,56,265,50,292,258,127,878,506,1015)/1000) +p35<-rep(c(33,37,38,39,40,41,42,43,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(79,5,1,3,3,13,8,6,7,11,15,19,11,17,25,16,34,49,16,37,45,69,72,76,79,101,48,303,38,326,254,140,811,619,1043)/1000) +p36<-rep(c(33,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(78,3,4,3,8,5,6,8,6,5,13,18,18,32,19,22,39,43,17,39,45,68,77,74,69,118,47,272,47,332,262,139,833,562,1068)/1000) +p37<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(96,1,3,1,5,5,6,6,8,4,7,3,12,9,18,35,15,24,27,57,20,40,53,70,81,89,91,117,46,262,44,298,251,130,817,588,1059)/1000) +p38<-rep(c(33,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(102,5,5,4,10,11,12,3,3,7,8,18,15,22,20,17,20,50,21,46,43,71,70,80,91,110,51,239,34,339,258,119,820,614,1058)/1000) +p39<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(100,3,5,3,6,10,12,12,5,5,10,6,21,18,28,14,16,33,38,18,45,56,58,71,65,79,109,57,253,47,310,263,129,854,616,1017)/1000) +p40<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(97,1,4,3,1,5,14,7,11,2,5,2,9,6,19,21,18,21,30,37,22,37,64,40,69,53,89,104,66,281,42,355,233,137,771,615,1095)/1000) +p41<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(130,5,2,6,10,10,19,20,5,5,4,12,16,17,28,14,12,25,42,16,42,39,57,61,73,84,110,49,261,48,315,254,125,761,643,1028)/1000) +p42<-rep(c(33,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,60,61,62,63,64,65,66,67,68,69,70,71),times=c(108,2,1,2,1,5,4,12,13,7,6,7,3,6,14,19,20,22,15,22,52,14,50,45,57,67,72,78,119,51,272,45,284,226,127,831,604,1054)/1000) +p43<-rep(c(33,35,36,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(124,2,2,1,2,5,13,17,10,1,6,4,14,11,19,31,14,14,24,30,12,42,41,54,64,74,82,112,68,250,49,308,261,142,775,557,1060)/1000) +p44<-rep(c(33,35,37,38,39,40,41,42,43,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(106,1,1,4,4,10,9,9,7,9,6,8,8,16,21,12,18,24,50,14,43,43,56,55,100,87,109,51,261,51,308,217,139,759,562,1041)/1000) +p45<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(120,3,3,2,9,7,12,9,6,4,1,10,9,15,26,11,16,22,35,16,26,45,50,60,56,67,74,62,247,50,282,243,123,747,618,1061)/1000) +p46<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(116,1,2,3,2,10,15,10,1,2,6,6,10,9,13,8,14,29,26,12,31,42,59,41,57,88,92,58,257,43,304,236,133,707,612,1016)/1000) +p47<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(130,1,2,4,2,6,8,18,21,3,5,5,7,12,15,17,7,7,23,43,9,28,32,44,42,56,68,83,54,225,38,289,181,133,713,594,991)/1000) +p48<-rep(c(33,35,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(105,1,5,2,6,9,10,23,1,5,3,3,9,9,30,13,7,18,27,12,28,24,49,42,63,75,81,45,226,43,274,217,147,676,571,925)/1000) +p49<-rep(c(33,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(99,3,1,3,5,5,16,3,3,6,7,4,13,15,11,3,10,34,16,20,37,46,41,52,66,85,35,201,45,253,201,119,685,497,913)/1000) +p50<-rep(c(33,43,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(82,2,3,5,3,4,5,13,9,5,11,14,3,35,17,21,41,34,67,67,31,184,49,241,167,93,639,515,797)/1000) +boxplot(p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,xlab="Position of Read(5'->3')",ylab="Phred Quality Score",outline=F) +dev.off() + + +pdf('output.qual.heatmap.pdf') +qual=c(119,0,0,0,2,3,2,5,6,8,6,2,0,3,11,16,6,26,11,13,25,39,7,40,33,33,58,51,116,87,55,256,54,323,263,140,812,654,1119,105,0,0,0,2,2,2,4,8,6,21,3,1,1,8,13,13,16,16,14,29,32,18,50,30,57,66,73,97,105,60,253,57,330,270,142,801,630,1069,109,0,1,0,1,3,2,7,11,14,13,2,4,3,8,14,21,27,17,14,26,39,11,37,28,74,64,55,86,106,62,234,56,326,269,147,787,645,1081,108,0,0,0,1,6,4,2,9,12,7,0,3,3,9,14,13,24,20,8,24,46,14,43,28,59,67,75,88,107,51,285,56,293,239,139,802,660,1084,97,0,1,0,1,0,3,9,8,11,5,4,2,4,10,16,19,24,7,8,35,43,19,49,29,51,67,51,93,107,43,306,65,345,223,123,789,661,1075,96,0,0,0,3,0,2,5,11,6,8,2,7,2,12,17,15,16,12,11,25,31,12,32,36,59,70,69,74,99,56,277,59,343,249,111,845,650,1081,86,0,0,0,2,4,2,6,12,8,10,1,7,7,9,11,14,26,14,9,14,53,17,34,41,55,71,76,76,117,62,238,62,339,229,155,798,607,1131,76,0,0,0,1,4,4,6,11,9,13,5,5,6,6,17,19,20,17,8,19,45,15,30,33,60,68,58,76,99,59,291,54,349,251,129,818,602,1120,74,0,0,1,2,3,1,5,6,6,7,7,2,4,11,11,16,24,13,9,24,48,19,33,39,63,67,68,78,104,66,284,62,329,240,147,749,649,1132,98,0,0,0,1,2,2,6,11,19,10,0,5,3,8,18,19,24,14,5,18,53,21,41,39,56,79,64,70,93,57,291,42,334,259,143,795,616,1087,71,0,0,0,3,3,4,3,5,6,7,2,3,5,13,14,6,17,21,12,27,40,16,34,39,46,64,78,103,103,63,279,37,314,239,118,805,674,1129,76,1,0,0,4,3,3,7,10,11,8,5,6,3,12,13,18,21,16,18,21,46,21,32,41,77,56,77,103,105,54,269,40,320,247,144,796,621,1098,87,0,0,0,3,2,1,7,12,8,6,5,13,8,11,9,16,23,13,14,22,40,21,53,48,51,59,77,84,126,75,282,48,306,254,151,808,586,1074,76,0,0,0,5,1,3,6,3,7,8,4,3,10,12,14,13,23,12,19,25,43,17,52,42,63,57,92,91,114,61,281,45,342,256,132,812,586,1073,81,0,0,0,1,5,4,4,10,11,9,3,5,5,6,18,21,29,26,14,27,51,17,54,47,51,65,84,84,118,66,291,46,316,244,149,782,579,1080,87,0,0,1,2,5,2,10,17,12,9,0,7,2,10,10,12,20,18,21,27,50,17,50,54,42,82,57,84,103,54,285,41,342,265,115,822,582,1085,118,0,0,0,0,4,3,7,7,11,10,5,6,8,11,18,19,30,34,13,34,47,14,62,49,55,83,82,96,101,51,283,45,346,249,152,843,521,985,73,0,0,0,2,5,6,7,9,11,7,5,4,11,19,13,15,33,18,17,42,57,25,46,65,67,94,68,93,117,67,279,53,306,295,132,844,504,993,72,0,0,1,2,3,5,4,16,13,14,2,8,2,18,19,27,37,27,18,29,57,21,47,57,62,87,81,89,111,57,293,49,319,270,142,858,495,990,78,0,0,1,1,5,3,3,13,10,13,5,7,5,14,15,24,30,23,23,24,57,19,72,49,70,70,72,91,124,60,298,52,347,270,147,841,486,980,71,0,0,0,4,5,3,10,9,10,12,5,9,6,23,14,19,33,27,21,34,60,16,47,57,55,82,84,109,117,44,305,45,335,265,146,856,510,954,80,0,0,0,5,4,5,4,6,10,7,4,0,11,14,19,18,32,25,29,32,75,19,58,56,66,81,79,102,133,52,332,44,306,260,152,879,486,917,80,0,0,0,2,5,2,11,11,13,4,4,5,8,12,15,21,34,27,18,44,58,26,72,62,72,90,84,97,137,51,324,54,332,254,143,857,492,881,78,0,0,0,3,4,1,9,9,3,8,9,9,5,12,20,19,37,30,23,38,69,29,64,51,71,95,92,99,133,52,320,51,340,275,152,868,467,856,73,0,0,0,1,2,3,6,14,19,7,3,3,10,24,15,26,38,27,15,34,71,17,62,72,75,86,84,108,128,65,304,41,356,239,139,864,494,876,100,0,1,1,6,3,6,14,19,11,9,7,11,5,8,25,21,35,16,18,39,61,19,65,42,62,91,83,80,105,38,318,50,372,289,135,847,504,884,72,0,0,1,1,4,2,12,10,17,11,5,3,3,21,25,29,34,34,19,38,55,20,55,59,82,96,99,106,133,45,299,71,339,265,157,822,474,882,73,0,0,0,1,2,5,3,17,16,6,5,7,11,7,16,14,30,31,16,45,71,29,50,62,72,78,77,107,132,62,273,47,366,277,161,892,462,877,91,0,0,0,3,2,2,7,10,6,9,9,6,11,15,17,19,33,20,10,30,54,20,68,48,73,84,72,114,131,60,321,60,356,270,159,874,496,840,92,0,0,1,5,5,4,6,8,7,10,4,7,7,16,26,24,33,20,22,36,49,15,53,65,71,79,80,112,127,63,320,49,359,292,141,837,455,900,105,0,0,1,2,5,4,2,15,8,13,8,6,7,19,24,21,30,22,17,35,53,13,52,61,45,93,74,87,120,60,302,41,331,272,131,877,513,931,117,0,0,0,3,5,3,11,23,24,10,5,7,6,8,13,12,40,18,18,40,41,12,45,57,72,86,71,75,125,68,299,55,302,264,154,874,464,973,120,0,1,0,7,3,4,9,13,19,8,5,3,10,17,25,13,19,18,23,33,49,25,41,51,72,74,56,95,112,60,291,58,281,267,145,916,463,993,89,0,0,1,4,9,13,7,8,7,8,6,8,8,18,20,12,34,26,14,31,50,17,45,65,58,68,77,84,110,66,289,54,284,282,164,871,489,1003,162,0,0,1,3,4,4,14,15,24,17,2,6,9,16,15,20,37,20,12,34,49,12,42,50,54,66,62,81,121,56,265,50,292,258,127,878,506,1015,79,0,0,0,5,1,3,3,13,8,6,0,7,11,15,19,11,17,25,16,34,49,16,37,45,69,72,76,79,101,48,303,38,326,254,140,811,619,1043,78,0,0,0,3,0,4,3,8,5,6,8,6,5,13,18,18,32,19,22,39,43,17,39,45,68,77,74,69,118,47,272,47,332,262,139,833,562,1068,96,0,0,1,3,1,5,5,6,6,8,4,7,3,12,9,18,35,15,24,27,57,20,40,53,70,81,89,91,117,46,262,44,298,251,130,817,588,1059,102,0,0,0,5,0,5,4,10,11,12,3,3,7,8,18,15,22,20,17,20,50,21,46,43,71,70,80,91,110,51,239,34,339,258,119,820,614,1058,100,0,0,0,3,5,3,6,10,12,12,5,5,10,6,21,18,28,14,16,33,38,18,45,56,58,71,65,79,109,57,253,47,310,263,129,854,616,1017,97,0,0,1,4,3,1,5,14,7,11,2,5,2,9,6,19,21,18,21,30,37,22,37,64,40,69,53,89,104,66,281,42,355,233,137,771,615,1095,130,0,0,0,5,2,6,10,10,19,20,5,5,4,12,16,17,28,14,12,25,42,16,42,39,57,61,73,84,110,49,261,48,315,254,125,761,643,1028,108,0,2,1,2,1,5,4,12,13,7,6,7,3,6,14,19,20,22,15,22,52,14,50,45,57,67,72,78,119,51,272,45,284,226,127,831,604,1054,124,0,2,2,0,1,2,5,13,17,10,1,6,4,14,11,19,31,14,14,24,30,12,42,41,54,64,74,82,112,68,250,49,308,261,142,775,557,1060,106,0,1,0,1,4,4,10,9,9,7,0,9,6,8,8,16,21,12,18,24,50,14,43,43,56,55,100,87,109,51,261,51,308,217,139,759,562,1041,120,0,0,0,3,3,2,9,7,12,9,6,4,1,10,9,15,26,11,16,22,35,16,26,45,50,60,56,67,74,62,247,50,282,243,123,747,618,1061,116,0,0,0,1,2,3,2,10,15,10,1,2,6,6,10,9,13,8,14,29,26,12,31,42,59,41,57,88,92,58,257,43,304,236,133,707,612,1016,130,0,0,1,2,4,2,6,8,18,21,3,5,5,7,12,15,17,7,7,23,43,9,28,32,44,42,56,68,83,54,225,38,289,181,133,713,594,991,105,0,1,0,0,5,2,6,9,10,23,1,5,3,3,9,9,30,13,7,18,27,12,28,24,49,42,63,75,81,45,226,43,274,217,147,676,571,925,99,0,0,0,0,3,1,3,5,5,16,3,3,6,7,4,13,15,11,3,10,34,16,20,37,46,41,52,66,85,35,201,45,253,201,119,685,497,913,82,0,0,0,0,0,0,0,0,0,2,0,3,5,3,4,5,13,9,5,11,14,3,35,17,21,41,34,67,67,31,184,49,241,167,93,639,515,797) +mat=matrix(qual,ncol=51,byrow=F) +Lab.palette <- colorRampPalette(c("blue", "orange", "red3","red2","red1","red"), space = "rgb",interpolate=c('spline')) +heatmap(mat,Rowv=NA,Colv=NA,xlab="Position of Read",ylab="Phred Quality Score",labRow=seq(from=33,to=71),col = Lab.palette(256),scale="none" ) +dev.off()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.qual.r Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,62 @@ +pdf('output.qual.boxplot.pdf') +p0<-rep(c(33,37,38,39,40,41,42,43,44,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(119,2,3,2,5,6,8,6,2,3,11,16,6,26,11,13,25,39,7,40,33,33,58,51,116,87,55,256,54,323,263,140,812,654,1119)/1000) +p1<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(105,2,2,2,4,8,6,21,3,1,1,8,13,13,16,16,14,29,32,18,50,30,57,66,73,97,105,60,253,57,330,270,142,801,630,1069)/1000) +p2<-rep(c(33,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(109,1,1,3,2,7,11,14,13,2,4,3,8,14,21,27,17,14,26,39,11,37,28,74,64,55,86,106,62,234,56,326,269,147,787,645,1081)/1000) +p3<-rep(c(33,37,38,39,40,41,42,43,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(108,1,6,4,2,9,12,7,3,3,9,14,13,24,20,8,24,46,14,43,28,59,67,75,88,107,51,285,56,293,239,139,802,660,1084)/1000) +p4<-rep(c(33,35,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(97,1,1,3,9,8,11,5,4,2,4,10,16,19,24,7,8,35,43,19,49,29,51,67,51,93,107,43,306,65,345,223,123,789,661,1075)/1000) +p5<-rep(c(33,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(96,3,2,5,11,6,8,2,7,2,12,17,15,16,12,11,25,31,12,32,36,59,70,69,74,99,56,277,59,343,249,111,845,650,1081)/1000) +p6<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(86,2,4,2,6,12,8,10,1,7,7,9,11,14,26,14,9,14,53,17,34,41,55,71,76,76,117,62,238,62,339,229,155,798,607,1131)/1000) +p7<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(76,1,4,4,6,11,9,13,5,5,6,6,17,19,20,17,8,19,45,15,30,33,60,68,58,76,99,59,291,54,349,251,129,818,602,1120)/1000) +p8<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(74,1,2,3,1,5,6,6,7,7,2,4,11,11,16,24,13,9,24,48,19,33,39,63,67,68,78,104,66,284,62,329,240,147,749,649,1132)/1000) +p9<-rep(c(33,37,38,39,40,41,42,43,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(98,1,2,2,6,11,19,10,5,3,8,18,19,24,14,5,18,53,21,41,39,56,79,64,70,93,57,291,42,334,259,143,795,616,1087)/1000) +p10<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(71,3,3,4,3,5,6,7,2,3,5,13,14,6,17,21,12,27,40,16,34,39,46,64,78,103,103,63,279,37,314,239,118,805,674,1129)/1000) +p11<-rep(c(33,34,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(76,1,4,3,3,7,10,11,8,5,6,3,12,13,18,21,16,18,21,46,21,32,41,77,56,77,103,105,54,269,40,320,247,144,796,621,1098)/1000) +p12<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(87,3,2,1,7,12,8,6,5,13,8,11,9,16,23,13,14,22,40,21,53,48,51,59,77,84,126,75,282,48,306,254,151,808,586,1074)/1000) +p13<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(76,5,1,3,6,3,7,8,4,3,10,12,14,13,23,12,19,25,43,17,52,42,63,57,92,91,114,61,281,45,342,256,132,812,586,1073)/1000) +p14<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(81,1,5,4,4,10,11,9,3,5,5,6,18,21,29,26,14,27,51,17,54,47,51,65,84,84,118,66,291,46,316,244,149,782,579,1080)/1000) +p15<-rep(c(33,36,37,38,39,40,41,42,43,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(87,1,2,5,2,10,17,12,9,7,2,10,10,12,20,18,21,27,50,17,50,54,42,82,57,84,103,54,285,41,342,265,115,822,582,1085)/1000) +p16<-rep(c(33,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(118,4,3,7,7,11,10,5,6,8,11,18,19,30,34,13,34,47,14,62,49,55,83,82,96,101,51,283,45,346,249,152,843,521,985)/1000) +p17<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(73,2,5,6,7,9,11,7,5,4,11,19,13,15,33,18,17,42,57,25,46,65,67,94,68,93,117,67,279,53,306,295,132,844,504,993)/1000) +p18<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(72,1,2,3,5,4,16,13,14,2,8,2,18,19,27,37,27,18,29,57,21,47,57,62,87,81,89,111,57,293,49,319,270,142,858,495,990)/1000) +p19<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(78,1,1,5,3,3,13,10,13,5,7,5,14,15,24,30,23,23,24,57,19,72,49,70,70,72,91,124,60,298,52,347,270,147,841,486,980)/1000) +p20<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(71,4,5,3,10,9,10,12,5,9,6,23,14,19,33,27,21,34,60,16,47,57,55,82,84,109,117,44,305,45,335,265,146,856,510,954)/1000) +p21<-rep(c(33,37,38,39,40,41,42,43,44,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(80,5,4,5,4,6,10,7,4,11,14,19,18,32,25,29,32,75,19,58,56,66,81,79,102,133,52,332,44,306,260,152,879,486,917)/1000) +p22<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(80,2,5,2,11,11,13,4,4,5,8,12,15,21,34,27,18,44,58,26,72,62,72,90,84,97,137,51,324,54,332,254,143,857,492,881)/1000) +p23<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(78,3,4,1,9,9,3,8,9,9,5,12,20,19,37,30,23,38,69,29,64,51,71,95,92,99,133,52,320,51,340,275,152,868,467,856)/1000) +p24<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(73,1,2,3,6,14,19,7,3,3,10,24,15,26,38,27,15,34,71,17,62,72,75,86,84,108,128,65,304,41,356,239,139,864,494,876)/1000) +p25<-rep(c(33,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,60,61,62,63,64,65,66,67,68,69,70,71),times=c(100,1,1,6,3,6,14,19,11,9,7,11,5,8,25,21,35,16,18,39,61,19,65,42,62,91,83,80,105,38,318,50,372,289,135,847,504,884)/1000) +p26<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(72,1,1,4,2,12,10,17,11,5,3,3,21,25,29,34,34,19,38,55,20,55,59,82,96,99,106,133,45,299,71,339,265,157,822,474,882)/1000) +p27<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(73,1,2,5,3,17,16,6,5,7,11,7,16,14,30,31,16,45,71,29,50,62,72,78,77,107,132,62,273,47,366,277,161,892,462,877)/1000) +p28<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(91,3,2,2,7,10,6,9,9,6,11,15,17,19,33,20,10,30,54,20,68,48,73,84,72,114,131,60,321,60,356,270,159,874,496,840)/1000) +p29<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(92,1,5,5,4,6,8,7,10,4,7,7,16,26,24,33,20,22,36,49,15,53,65,71,79,80,112,127,63,320,49,359,292,141,837,455,900)/1000) +p30<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(105,1,2,5,4,2,15,8,13,8,6,7,19,24,21,30,22,17,35,53,13,52,61,45,93,74,87,120,60,302,41,331,272,131,877,513,931)/1000) +p31<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(117,3,5,3,11,23,24,10,5,7,6,8,13,12,40,18,18,40,41,12,45,57,72,86,71,75,125,68,299,55,302,264,154,874,464,973)/1000) +p32<-rep(c(33,35,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(120,1,7,3,4,9,13,19,8,5,3,10,17,25,13,19,18,23,33,49,25,41,51,72,74,56,95,112,60,291,58,281,267,145,916,463,993)/1000) +p33<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(89,1,4,9,13,7,8,7,8,6,8,8,18,20,12,34,26,14,31,50,17,45,65,58,68,77,84,110,66,289,54,284,282,164,871,489,1003)/1000) +p34<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(162,1,3,4,4,14,15,24,17,2,6,9,16,15,20,37,20,12,34,49,12,42,50,54,66,62,81,121,56,265,50,292,258,127,878,506,1015)/1000) +p35<-rep(c(33,37,38,39,40,41,42,43,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(79,5,1,3,3,13,8,6,7,11,15,19,11,17,25,16,34,49,16,37,45,69,72,76,79,101,48,303,38,326,254,140,811,619,1043)/1000) +p36<-rep(c(33,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(78,3,4,3,8,5,6,8,6,5,13,18,18,32,19,22,39,43,17,39,45,68,77,74,69,118,47,272,47,332,262,139,833,562,1068)/1000) +p37<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(96,1,3,1,5,5,6,6,8,4,7,3,12,9,18,35,15,24,27,57,20,40,53,70,81,89,91,117,46,262,44,298,251,130,817,588,1059)/1000) +p38<-rep(c(33,37,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(102,5,5,4,10,11,12,3,3,7,8,18,15,22,20,17,20,50,21,46,43,71,70,80,91,110,51,239,34,339,258,119,820,614,1058)/1000) +p39<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(100,3,5,3,6,10,12,12,5,5,10,6,21,18,28,14,16,33,38,18,45,56,58,71,65,79,109,57,253,47,310,263,129,854,616,1017)/1000) +p40<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(97,1,4,3,1,5,14,7,11,2,5,2,9,6,19,21,18,21,30,37,22,37,64,40,69,53,89,104,66,281,42,355,233,137,771,615,1095)/1000) +p41<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(130,5,2,6,10,10,19,20,5,5,4,12,16,17,28,14,12,25,42,16,42,39,57,61,73,84,110,49,261,48,315,254,125,761,643,1028)/1000) +p42<-rep(c(33,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,60,61,62,63,64,65,66,67,68,69,70,71),times=c(108,2,1,2,1,5,4,12,13,7,6,7,3,6,14,19,20,22,15,22,52,14,50,45,57,67,72,78,119,51,272,45,284,226,127,831,604,1054)/1000) +p43<-rep(c(33,35,36,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(124,2,2,1,2,5,13,17,10,1,6,4,14,11,19,31,14,14,24,30,12,42,41,54,64,74,82,112,68,250,49,308,261,142,775,557,1060)/1000) +p44<-rep(c(33,35,37,38,39,40,41,42,43,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(106,1,1,4,4,10,9,9,7,9,6,8,8,16,21,12,18,24,50,14,43,43,56,55,100,87,109,51,261,51,308,217,139,759,562,1041)/1000) +p45<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(120,3,3,2,9,7,12,9,6,4,1,10,9,15,26,11,16,22,35,16,26,45,50,60,56,67,74,62,247,50,282,243,123,747,618,1061)/1000) +p46<-rep(c(33,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(116,1,2,3,2,10,15,10,1,2,6,6,10,9,13,8,14,29,26,12,31,42,59,41,57,88,92,58,257,43,304,236,133,707,612,1016)/1000) +p47<-rep(c(33,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(130,1,2,4,2,6,8,18,21,3,5,5,7,12,15,17,7,7,23,43,9,28,32,44,42,56,68,83,54,225,38,289,181,133,713,594,991)/1000) +p48<-rep(c(33,35,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(105,1,5,2,6,9,10,23,1,5,3,3,9,9,30,13,7,18,27,12,28,24,49,42,63,75,81,45,226,43,274,217,147,676,571,925)/1000) +p49<-rep(c(33,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(99,3,1,3,5,5,16,3,3,6,7,4,13,15,11,3,10,34,16,20,37,46,41,52,66,85,35,201,45,253,201,119,685,497,913)/1000) +p50<-rep(c(33,43,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71),times=c(82,2,3,5,3,4,5,13,9,5,11,14,3,35,17,21,41,34,67,67,31,184,49,241,167,93,639,515,797)/1000) +boxplot(p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,xlab="Position of Read(5'->3')",ylab="Phred Quality Score",outline=F) +dev.off() + + +pdf('output.qual.heatmap.pdf') +qual=c(119,0,0,0,2,3,2,5,6,8,6,2,0,3,11,16,6,26,11,13,25,39,7,40,33,33,58,51,116,87,55,256,54,323,263,140,812,654,1119,105,0,0,0,2,2,2,4,8,6,21,3,1,1,8,13,13,16,16,14,29,32,18,50,30,57,66,73,97,105,60,253,57,330,270,142,801,630,1069,109,0,1,0,1,3,2,7,11,14,13,2,4,3,8,14,21,27,17,14,26,39,11,37,28,74,64,55,86,106,62,234,56,326,269,147,787,645,1081,108,0,0,0,1,6,4,2,9,12,7,0,3,3,9,14,13,24,20,8,24,46,14,43,28,59,67,75,88,107,51,285,56,293,239,139,802,660,1084,97,0,1,0,1,0,3,9,8,11,5,4,2,4,10,16,19,24,7,8,35,43,19,49,29,51,67,51,93,107,43,306,65,345,223,123,789,661,1075,96,0,0,0,3,0,2,5,11,6,8,2,7,2,12,17,15,16,12,11,25,31,12,32,36,59,70,69,74,99,56,277,59,343,249,111,845,650,1081,86,0,0,0,2,4,2,6,12,8,10,1,7,7,9,11,14,26,14,9,14,53,17,34,41,55,71,76,76,117,62,238,62,339,229,155,798,607,1131,76,0,0,0,1,4,4,6,11,9,13,5,5,6,6,17,19,20,17,8,19,45,15,30,33,60,68,58,76,99,59,291,54,349,251,129,818,602,1120,74,0,0,1,2,3,1,5,6,6,7,7,2,4,11,11,16,24,13,9,24,48,19,33,39,63,67,68,78,104,66,284,62,329,240,147,749,649,1132,98,0,0,0,1,2,2,6,11,19,10,0,5,3,8,18,19,24,14,5,18,53,21,41,39,56,79,64,70,93,57,291,42,334,259,143,795,616,1087,71,0,0,0,3,3,4,3,5,6,7,2,3,5,13,14,6,17,21,12,27,40,16,34,39,46,64,78,103,103,63,279,37,314,239,118,805,674,1129,76,1,0,0,4,3,3,7,10,11,8,5,6,3,12,13,18,21,16,18,21,46,21,32,41,77,56,77,103,105,54,269,40,320,247,144,796,621,1098,87,0,0,0,3,2,1,7,12,8,6,5,13,8,11,9,16,23,13,14,22,40,21,53,48,51,59,77,84,126,75,282,48,306,254,151,808,586,1074,76,0,0,0,5,1,3,6,3,7,8,4,3,10,12,14,13,23,12,19,25,43,17,52,42,63,57,92,91,114,61,281,45,342,256,132,812,586,1073,81,0,0,0,1,5,4,4,10,11,9,3,5,5,6,18,21,29,26,14,27,51,17,54,47,51,65,84,84,118,66,291,46,316,244,149,782,579,1080,87,0,0,1,2,5,2,10,17,12,9,0,7,2,10,10,12,20,18,21,27,50,17,50,54,42,82,57,84,103,54,285,41,342,265,115,822,582,1085,118,0,0,0,0,4,3,7,7,11,10,5,6,8,11,18,19,30,34,13,34,47,14,62,49,55,83,82,96,101,51,283,45,346,249,152,843,521,985,73,0,0,0,2,5,6,7,9,11,7,5,4,11,19,13,15,33,18,17,42,57,25,46,65,67,94,68,93,117,67,279,53,306,295,132,844,504,993,72,0,0,1,2,3,5,4,16,13,14,2,8,2,18,19,27,37,27,18,29,57,21,47,57,62,87,81,89,111,57,293,49,319,270,142,858,495,990,78,0,0,1,1,5,3,3,13,10,13,5,7,5,14,15,24,30,23,23,24,57,19,72,49,70,70,72,91,124,60,298,52,347,270,147,841,486,980,71,0,0,0,4,5,3,10,9,10,12,5,9,6,23,14,19,33,27,21,34,60,16,47,57,55,82,84,109,117,44,305,45,335,265,146,856,510,954,80,0,0,0,5,4,5,4,6,10,7,4,0,11,14,19,18,32,25,29,32,75,19,58,56,66,81,79,102,133,52,332,44,306,260,152,879,486,917,80,0,0,0,2,5,2,11,11,13,4,4,5,8,12,15,21,34,27,18,44,58,26,72,62,72,90,84,97,137,51,324,54,332,254,143,857,492,881,78,0,0,0,3,4,1,9,9,3,8,9,9,5,12,20,19,37,30,23,38,69,29,64,51,71,95,92,99,133,52,320,51,340,275,152,868,467,856,73,0,0,0,1,2,3,6,14,19,7,3,3,10,24,15,26,38,27,15,34,71,17,62,72,75,86,84,108,128,65,304,41,356,239,139,864,494,876,100,0,1,1,6,3,6,14,19,11,9,7,11,5,8,25,21,35,16,18,39,61,19,65,42,62,91,83,80,105,38,318,50,372,289,135,847,504,884,72,0,0,1,1,4,2,12,10,17,11,5,3,3,21,25,29,34,34,19,38,55,20,55,59,82,96,99,106,133,45,299,71,339,265,157,822,474,882,73,0,0,0,1,2,5,3,17,16,6,5,7,11,7,16,14,30,31,16,45,71,29,50,62,72,78,77,107,132,62,273,47,366,277,161,892,462,877,91,0,0,0,3,2,2,7,10,6,9,9,6,11,15,17,19,33,20,10,30,54,20,68,48,73,84,72,114,131,60,321,60,356,270,159,874,496,840,92,0,0,1,5,5,4,6,8,7,10,4,7,7,16,26,24,33,20,22,36,49,15,53,65,71,79,80,112,127,63,320,49,359,292,141,837,455,900,105,0,0,1,2,5,4,2,15,8,13,8,6,7,19,24,21,30,22,17,35,53,13,52,61,45,93,74,87,120,60,302,41,331,272,131,877,513,931,117,0,0,0,3,5,3,11,23,24,10,5,7,6,8,13,12,40,18,18,40,41,12,45,57,72,86,71,75,125,68,299,55,302,264,154,874,464,973,120,0,1,0,7,3,4,9,13,19,8,5,3,10,17,25,13,19,18,23,33,49,25,41,51,72,74,56,95,112,60,291,58,281,267,145,916,463,993,89,0,0,1,4,9,13,7,8,7,8,6,8,8,18,20,12,34,26,14,31,50,17,45,65,58,68,77,84,110,66,289,54,284,282,164,871,489,1003,162,0,0,1,3,4,4,14,15,24,17,2,6,9,16,15,20,37,20,12,34,49,12,42,50,54,66,62,81,121,56,265,50,292,258,127,878,506,1015,79,0,0,0,5,1,3,3,13,8,6,0,7,11,15,19,11,17,25,16,34,49,16,37,45,69,72,76,79,101,48,303,38,326,254,140,811,619,1043,78,0,0,0,3,0,4,3,8,5,6,8,6,5,13,18,18,32,19,22,39,43,17,39,45,68,77,74,69,118,47,272,47,332,262,139,833,562,1068,96,0,0,1,3,1,5,5,6,6,8,4,7,3,12,9,18,35,15,24,27,57,20,40,53,70,81,89,91,117,46,262,44,298,251,130,817,588,1059,102,0,0,0,5,0,5,4,10,11,12,3,3,7,8,18,15,22,20,17,20,50,21,46,43,71,70,80,91,110,51,239,34,339,258,119,820,614,1058,100,0,0,0,3,5,3,6,10,12,12,5,5,10,6,21,18,28,14,16,33,38,18,45,56,58,71,65,79,109,57,253,47,310,263,129,854,616,1017,97,0,0,1,4,3,1,5,14,7,11,2,5,2,9,6,19,21,18,21,30,37,22,37,64,40,69,53,89,104,66,281,42,355,233,137,771,615,1095,130,0,0,0,5,2,6,10,10,19,20,5,5,4,12,16,17,28,14,12,25,42,16,42,39,57,61,73,84,110,49,261,48,315,254,125,761,643,1028,108,0,2,1,2,1,5,4,12,13,7,6,7,3,6,14,19,20,22,15,22,52,14,50,45,57,67,72,78,119,51,272,45,284,226,127,831,604,1054,124,0,2,2,0,1,2,5,13,17,10,1,6,4,14,11,19,31,14,14,24,30,12,42,41,54,64,74,82,112,68,250,49,308,261,142,775,557,1060,106,0,1,0,1,4,4,10,9,9,7,0,9,6,8,8,16,21,12,18,24,50,14,43,43,56,55,100,87,109,51,261,51,308,217,139,759,562,1041,120,0,0,0,3,3,2,9,7,12,9,6,4,1,10,9,15,26,11,16,22,35,16,26,45,50,60,56,67,74,62,247,50,282,243,123,747,618,1061,116,0,0,0,1,2,3,2,10,15,10,1,2,6,6,10,9,13,8,14,29,26,12,31,42,59,41,57,88,92,58,257,43,304,236,133,707,612,1016,130,0,0,1,2,4,2,6,8,18,21,3,5,5,7,12,15,17,7,7,23,43,9,28,32,44,42,56,68,83,54,225,38,289,181,133,713,594,991,105,0,1,0,0,5,2,6,9,10,23,1,5,3,3,9,9,30,13,7,18,27,12,28,24,49,42,63,75,81,45,226,43,274,217,147,676,571,925,99,0,0,0,0,3,1,3,5,5,16,3,3,6,7,4,13,15,11,3,10,34,16,20,37,46,41,52,66,85,35,201,45,253,201,119,685,497,913,82,0,0,0,0,0,0,0,0,0,2,0,3,5,3,4,5,13,9,5,11,14,3,35,17,21,41,34,67,67,31,184,49,241,167,93,639,515,797) +mat=matrix(qual,ncol=51,byrow=F) +Lab.palette <- colorRampPalette(c("blue", "orange", "red3","red2","red1","red"), space = "rgb",interpolate=c('spline')) +heatmap(mat,Rowv=NA,Colv=NA,xlab="Position of Read",ylab="Phred Quality Score",labRow=seq(from=33,to=71),col = Lab.palette(256),scale="none" ) +dev.off()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.read_distribution.txt Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,16 @@ +Total Reads 40 +Total Tags 44 +Total Assigned Tags 38 +===================================================================== +Group Total_bases Tag_count Tags/Kb +CDS_Exons 918 0 0.00 +5'UTR_Exons 1652 3 1.81 +3'UTR_Exons 2967 4 1.35 +Introns 14397 27 1.88 +TSS_up_1kb 4000 0 0.00 +TSS_up_5kb 20000 4 0.20 +TSS_up_10kb 35240 4 0.11 +TES_down_1kb 2000 0 0.00 +TES_down_5kb 12512 0 0.00 +TES_down_10kb 22752 0 0.00 +=====================================================================
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.seq.DupRate.xls Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,2 @@ +Occurrence UniqReadNumber +1 40
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.tin.summary.txt Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,2 @@ +Bam_file TIN(mean) TIN(median) TIN(stdev) +input.bam 8.87096774194 8.87096774194 0.0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output.tin.xls Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,8 @@ +geneID chrom tx_start tx_end TIN +NR_046018 chr1 11873 14409 0.0 +NR_024540 chr1 14361 29370 8.87096774194 +NR_106918 chr1 17368 17436 0.0 +NR_107062 chr1 17368 17436 0.0 +NR_026818 chr1 34610 36081 0.0 +NR_026820 chr1 34610 36081 0.0 +NM_001005484 chr1 69090 70008 0.0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output2.geneBodyCoverage.r Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,21 @@ +pairend_strandspecific_51mer_hg19_chr1_1_100000_bam <- c(0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0) +pairend_strandspecific_51mer_hg19_chr1_1_100000_bam.1 <- c(0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0) +pairend_strandspecific_51mer_hg19_chr1_1_100000_bam.2 <- c(0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0) +data_matrix <- matrix(c(pairend_strandspecific_51mer_hg19_chr1_1_100000_bam,pairend_strandspecific_51mer_hg19_chr1_1_100000_bam.1,pairend_strandspecific_51mer_hg19_chr1_1_100000_bam.2), byrow=T, ncol=100) +rowLabel <- c("pairend_strandspecific_51mer_hg19_chr1_1_100000_bam","pairend_strandspecific_51mer_hg19_chr1_1_100000_bam.1","pairend_strandspecific_51mer_hg19_chr1_1_100000_bam.2") + + +pdf("output.geneBodyCoverage.heatMap.pdf") +rc <- cm.colors(ncol(data_matrix)) +heatmap(data_matrix, scale=c("none"),keep.dendro=F, labRow = rowLabel ,Colv = NA,Rowv = NA,labCol=NA,col=cm.colors(256),margins = c(6, 8),ColSideColors = rc,cexRow=1,cexCol=1,xlab="Gene body percentile (5'->3')", add.expr=x_axis_expr <- axis(side=1,at=c(1,10,20,30,40,50,60,70,80,90,100),labels=c("1","10","20","30","40","50","60","70","80","90","100"))) +dev.off() + + +pdf("output.geneBodyCoverage.curves.pdf") +x=1:100 +icolor = colorRampPalette(c("#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f"))(3) +plot(x,pairend_strandspecific_51mer_hg19_chr1_1_100000_bam,type='l',xlab="Gene body percentile (5'->3')", ylab="Coverage",lwd=0.8,col=icolor[1]) +lines(x,pairend_strandspecific_51mer_hg19_chr1_1_100000_bam.1,type='l',col=icolor[2]) +lines(x,pairend_strandspecific_51mer_hg19_chr1_1_100000_bam.2,type='l',col=icolor[3]) +legend(0,1,fill=icolor[1:3], legend=c('pairend_strandspecific_51mer_hg19_chr1_1_100000_bam','pairend_strandspecific_51mer_hg19_chr1_1_100000_bam.1','pairend_strandspecific_51mer_hg19_chr1_1_100000_bam.2')) +dev.off()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output2.geneBodyCoverage.txt Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,4 @@ +Percentile 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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 +pairend_strandspecific_51mer_hg19_chr1_1_100000_bam 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +pairend_strandspecific_51mer_hg19_chr1_1_100000_bam.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +pairend_strandspecific_51mer_hg19_chr1_1_100000_bam.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/pairend_strandspecific_51mer_hg19_chr1_1-100000.R1.fastq Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,80 @@ +@seq.11990047/1 +ACGGCCGACTTGGATCACACTCTTGCAGGGCCATCAGGCACCAAAGGGATT ++ +hgffghhhhfhhchfhghhhhhhhggahh[chffhfhghhhhhhafehfeh +@seq.14614493/1 +AGAGGAGGACGAGGACGACTGGGAATCGTAGGGGGCTCCATGACACCTTCC ++ +hhgghehehghgghhaffffcggchghhhhgfhfhahghhhghhghhhhhe +@seq.24018133/1 +CGGGTGGATTTTCTGTGGGTTTGTTAAGTGGTCAGAAATTCTCAATTTTTT ++ +`aggggecfffa\\^Ua``\af`fffcffffafaffcffffec``fWfffe +@seq.10608403/1 +GTATGGCCAGAGGGCAGGGCCGAGGGGTGTGGGCGGGAGGCCCGGCCTGGC ++ +_dd_]bfggfgcg[egdbdbdXc`cfggaagdgggf^ggfdfggggggggg +@seq.10820209/1 +GTGCTGGCCCCAGTTTTCTAACCAGGTGTTGAATGAACTGGATGGACTCTG ++ +ghhccgfgghhhdhfhhghhhfffdf_hfhhhffhhhgdchhhhhgfhahh +@seq.1537155/1 +GGGAGTGTGCAGAGACTGGAGGGGATGACAGTCACCCTCTGTTTTCTGTGG ++ +aag`hhhhhgghhhhhhfhhchgfacchhhhah]hhdcafhhhhffachhg +@seq.25274725/1 +AGGGTGTGGGGCAAGGCAGTGAGTGAAGAGTTGGGATGAGTGAGTTAGGGC ++ +hhhhdhhhhhhffffcfdffff_fdffffffhchahhhhchgfhhfhfhhh +@seq.26326595/1 +GGGAAGGGGGTGCTTCTGCATGGGAAGCACAGACAGCGCTGCCTCTCCCTT ++ +Wbfdf]ddggggdgggdfdfWggdggf]fffadfffffVfffgfgfdgggg +@seq.28833653/1 +TGGGGCCAGGGGACTATGACACACCACTTGGCTTAGACTGAGGAGCTCTGT ++ +_cffafhdghhhhhhhhhhhghhaffhhhhdhfhhehhhhhhgghfhghhh +@seq.25049090/1 +AGGGCGAGATTGATTGTTAATTGCTAGCATGAACCGCGTGGGCTTCTCAGG ++ +fdffbfdddb[_afffacdggafdbc[fcfcgggfgffccfgagggggfgc +@seq.23476912/1 +GGCCTCTCCACCATGTGCTCCACCTCGTGCTGGACCTTAAGAGATACCAAT ++ +fgggggeggecfefffd^^aY]fdfcaggggfdefdggggggggggggggg +@seq.28059536/1 +GGGATGAGGAGAGGGCAGGAAGGCATTTCCTGGGTAGTGGAGTGCTGTGTT ++ +B_bbea[_V[WZVY`\Pacaaebecd]]fddbaed[decbe]fd`fggggg +@seq.13270875/1 +TGCCCCGAGTTTGTCAAGAATGTCCCAGTAACCAGGGGACACACAGTGAAG ++ +ffffafgagcggggfgfcfffccfcffg]ggggfgcgggggggggggggcf +@seq.2214586/1 +GTGGGAGGGGCTGAAGTGAGAGCCCAACTTGGAAGCTTTTACTCCTGGGAG ++ +gghghghhhhhhhhhhffefafhfhhhhhgghhhghhehhhhehhhhhhhh +@seq.31061198/1 +GAGGAGCTAGGGTTTCTCATAAAACTCCCTGATAGAAGACGACTTTTGATA ++ +cd\WaaaRcaacJdd[dff_f_ffcfddfff_dafffcd[cd\aW\eedcc +@seq.13835843/1 +GGGGAGGCAGAGGTTGCAGTGAGCCGAGATCATGTCACTGCACTCCAGGCT ++ +ggcgafggfgggggggfgggagggagggefgdffffdadeggggggggegg +@seq.13539256/1 +GTGGGGAAACCTAGAATTGCTGTAGAGAAAATGCCCTAGAGCAGCTCTAGA ++ +hfhhchfhhhfhghhhhhhhhghghhhgfhhhhhhhhhghhhhfhhhhfhh +@seq.5556605/1 +GGGATGAGGCCAAATCTTTCTGAATCTGAGATAGCCTCTCAGCCTATGCAT ++ +hfhchhchhhehhhhhhhhdhh_hghchgfhdhhhhhhhhhchhghhhhhh +@seq.32597077/1 +GAGAGACGGGGTTTCACCATGTTGGCCAGGATGGTCTTGATCTCTTGACCT ++ +dcba]fffcdfdWccf\``S_da_cdc_fdafggggfffcfcfcfddafff +@seq.20367385/1 +TTAAGTGCACTCAAATAATGTGATTTTATGAGGCTATAGGAGAAAAAAATT ++ +fdddZ`dc[cdadJ_ddScad[[^\^ddadad__daa^a^\]QY\T^ZZZY
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/pairend_strandspecific_51mer_hg19_chr1_1-100000.R2.fastq Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,80 @@ +@seq.11990047/2 +CCCGTGGGCAGAGCAAAGGAAGGGCACAGCGCCAGGCAGTGGTGCAGCTGC ++ +hfadfddd`]f[fa_fh]hhcagffhWhhhh]eeehhhha^hfhhhhghhf +@seq.14614493/2 +TCCCCTCCCAAGGAAGTAGGTCTGAGCAGCTTGTCCTGGCTGTGTCCATGT ++ +hhhhhhhhhehhhhehehhhghhehfhahhdhfdhhfhhhdf]f_ffbdfa +@seq.24018133/2 +TACCACTATTTTATGAACCAAGTATAACAAGATACTTGAAATGGAAACTAT ++ +fLffddhhhhag_gefafffhaefhfffffchffhhggahhhhRhhgccgh +@seq.10608403/2 +GGGACCTGCTGTTCCATCGGCTCTCTCTTGCTGATGGACAAGGGGGCATCA ++ +hefchhhfda`]]b]a^aLa^[Za^WdWb[faff]fd]defQacffdRd]f +@seq.10820209/2 +GCCCGGGGAAAACATGCATCACAGTTCATCTCGAGTCAGCAGGATTTTGAC ++ +ffcddeed]eaTfccfffffceee]ffdcdcee[efdaffffdSfhhdc]d +@seq.1537155/2 +TNNATCAATCAGCAGGNNNCGTGCACTCTCTTTGAGCCACCACAGAAAACA ++ +VBBVT^WZ^^I[]V]YBBBIVS[W[eeKceccaccUfaffff_afghg`gd +@seq.25274725/2 +GGCNCCTCCNTGCCCTNCTNAAAANNCAATCACAGCTCCCTAACAGTCCTG ++ +^UZB]]]Y]B][IS[[B]]BW][XBB\WaadddddhhghgffffaGVV[Se +@seq.26326595/2 +CATGCGTGCCCTGCTCGANATCCAATCACAGCTCCCTAACACTCCTGAATC ++ +^K^K_YT[YVe_eLe[INBTYZUV^S`babhacfhhccghhahghhdaghW +@seq.28833653/2 +CAGCAGCTATTTCCTGNTNACTCAANCAATGGCCCCATTTCCCTGGTGGAA ++ +fLdYfeYdddXbbabSBWBTY[[[]BdeedfffffghhhghdfgLfbfddg +@seq.25049090/2 +CTNCCCTTANTCCGAANGCNGCTCNNCTGATTGGTTAATTTTTGCGTAGCT ++ +VVBNZT[]]BSHZWS[BZHBTQPOBBZUZO]bZ^^hfehffff[fcfd_]g +@seq.23476912/2 +TNACTGATTNCTCTCCACTNTAGANNCTGAGAAGCCCACGCTGTTCATGCT ++ +`Ba_a^]^\Bbab\aa`b`BV]^VBBZV[Z`a^abffYfaa^e^dedbdd] +@seq.28059536/2 +CGTNTGACTCTAGACCNTNNGAAGCCCACGCGGTTCATTCTAGCAAGTAAC ++ +ZXZBY`\`]][dcKcUBVBBWNVV]ghchfdcc]ecccLa`edecf_cfdf +@seq.13270875/2 +TAGATTATCAACAGGGGAGAGATAGCATTTCCTGAAGGCTTCCTAGGTGCC ++ +eghggd_hhhfahhg\K^[[ffafchehg_ffWffhgceghhhhhffLfcY +@seq.2214586/2 +GNNTGCANANATAGANNTTNCCACACTGCCTTGCACAGGAGCACTGCGGGG ++ +VBBSITZBVBTTRHXBBZYBVUUVHH[QV[chhghacKaa_eeeeghgghg +@seq.31061198/2 +GNCGGAAAAAAAAATTNNNNAAAATNCGTCTGCTATCAGGGAGTTTTATGA ++ +VB[NV^\_]_`hfccXBBBBTUT[TBa_aLTRNQQaYcaeaKa^adcS\Vd +@seq.13539256/2 +CCTATTTTTTTTTTTTTTTTTGACACAGGTTCTCTGTCACCCAGCCTGGGG ++ +hhhhhhhhhhhghhhghhghfccWKVVYZRd[_[aZQYZ^``WT`[L^^Q\ +@seq.13835843/2 +TCCATCTTTTTTTTTTTTTTTTTGACACAGGTTCTCTGTCACCCAGCCTGG ++ +ghhhggffhhhhhhhhhhhghhh]fMPLPVW^^WXUZ\WXL[VVJY`\Wbb +@seq.5556605/2 +GCAGCTANGNCCATCNNNTTTGAAANCCAGATTTCGTTTTAAACCAGAGGA ++ +fLfLf]VBTBI]]]]BBB[^WW[]XBdede`eedeffhhehffhhhhahee +@seq.20367385/2 +ATTTGGCAGAGAAGCAAACACCAGTCGGAGAGCTGGGGCCCTCCCAGCCCT ++ +W_\_^W___WdcfceVIW[T^aa\[aaacaQYYSZY`KK````^[GaQZ\Y +@seq.17373919/2 +TTTTTGTTTTTTTTTTTTTTTGAGTCAGAATCTCGCTCTGTTGCCCAGGCT ++ +hgghhhhhhSfffffhgh`h__Wb`ZZZ_]PVPUSVYVQVaWWacaQa^BB
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/testwig.Forward.wig Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,127 @@ +variableStep chrom=chr13 +variableStep chrom=chr12 +variableStep chrom=chr11 +variableStep chrom=chr10 +variableStep chrom=chr17 +variableStep chrom=chr16 +variableStep chrom=chr15 +variableStep chrom=chr14 +variableStep chrom=chr19 +variableStep chrom=chr18 +variableStep chrom=chr8 +variableStep chrom=chr3 +variableStep chrom=chr1 +12674 1.00 +12675 1.00 +12676 1.00 +12677 1.00 +12678 1.00 +12679 1.00 +12680 1.00 +12681 1.00 +12682 1.00 +12683 1.00 +12684 1.00 +12685 1.00 +12686 1.00 +12687 1.00 +12688 1.00 +12689 1.00 +12690 1.00 +12691 1.00 +12692 1.00 +12693 1.00 +12694 1.00 +12695 1.00 +12696 1.00 +12697 1.00 +13221 1.00 +13222 1.00 +13223 1.00 +13224 1.00 +13225 1.00 +13226 1.00 +13227 1.00 +13228 1.00 +13229 1.00 +13230 1.00 +13231 1.00 +13232 1.00 +13233 1.00 +13234 1.00 +13235 1.00 +13236 1.00 +13237 1.00 +13238 1.00 +13239 1.00 +13240 1.00 +13241 1.00 +13242 1.00 +13243 1.00 +13244 1.00 +13245 1.00 +13246 1.00 +13247 1.00 +13483 1.00 +13484 1.00 +13485 1.00 +13486 1.00 +13487 1.00 +13488 1.00 +13489 1.00 +13490 1.00 +13491 1.00 +13492 1.00 +13493 1.00 +13494 1.00 +13495 1.00 +13496 1.00 +13497 1.00 +13498 1.00 +13499 1.00 +13500 1.00 +13501 1.00 +13502 1.00 +13503 1.00 +13504 1.00 +13505 1.00 +13506 1.00 +13507 1.00 +13508 1.00 +13509 1.00 +13510 1.00 +13511 1.00 +13512 1.00 +13513 1.00 +13514 1.00 +13515 1.00 +13516 1.00 +13517 1.00 +13518 1.00 +13519 1.00 +13520 1.00 +13521 1.00 +13522 1.00 +13523 1.00 +13524 1.00 +13525 1.00 +13526 1.00 +13527 1.00 +13528 1.00 +13529 1.00 +13530 1.00 +13531 1.00 +13532 1.00 +13533 1.00 +variableStep chrom=chrY +variableStep chrom=chrX +variableStep chrom=chr9 +variableStep chrom=chrM +variableStep chrom=chr22 +variableStep chrom=chr20 +variableStep chrom=chr21 +variableStep chrom=chr7 +variableStep chrom=chr6 +variableStep chrom=chr5 +variableStep chrom=chr4 +variableStep chrom=chr2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/testwig.Reverse.wig Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,1686 @@ +variableStep chrom=chr13 +variableStep chrom=chr12 +variableStep chrom=chr11 +variableStep chrom=chr10 +variableStep chrom=chr17 +variableStep chrom=chr16 +variableStep chrom=chr15 +variableStep chrom=chr14 +variableStep chrom=chr19 +variableStep chrom=chr18 +variableStep chrom=chr8 +variableStep chrom=chr3 +variableStep chrom=chr1 +14596 -1.00 +14597 -1.00 +14598 -1.00 +14599 -1.00 +14600 -1.00 +14601 -1.00 +14602 -1.00 +14603 -1.00 +14604 -1.00 +14605 -1.00 +14606 -1.00 +14607 -1.00 +14608 -1.00 +14609 -1.00 +14610 -1.00 +14611 -1.00 +14612 -1.00 +14613 -1.00 +14614 -1.00 +14615 -1.00 +14616 -1.00 +14617 -1.00 +14618 -1.00 +14619 -1.00 +14620 -1.00 +14621 -1.00 +14622 -1.00 +14623 -1.00 +14624 -1.00 +14625 -1.00 +14626 -1.00 +14627 -1.00 +14628 -1.00 +14629 -1.00 +14630 -1.00 +14631 -1.00 +14632 -1.00 +14633 -1.00 +14634 -1.00 +14635 -1.00 +14636 -1.00 +14637 -1.00 +14638 -1.00 +14639 -1.00 +14640 -1.00 +14641 -1.00 +14642 -1.00 +14643 -1.00 +14644 -1.00 +14645 -1.00 +14676 -1.00 +14677 -1.00 +14678 -1.00 +14679 -1.00 +14680 -1.00 +14681 -1.00 +14682 -1.00 +14683 -1.00 +14684 -1.00 +14685 -1.00 +14686 -1.00 +14687 -1.00 +14688 -1.00 +14689 -1.00 +14690 -1.00 +14691 -1.00 +14692 -1.00 +14693 -1.00 +14694 -1.00 +14695 -1.00 +14696 -1.00 +14697 -1.00 +14698 -1.00 +14699 -1.00 +14700 -1.00 +14701 -1.00 +14702 -1.00 +14703 -1.00 +14704 -1.00 +14705 -1.00 +14706 -1.00 +14707 -1.00 +14708 -1.00 +14709 -1.00 +14710 -1.00 +14711 -1.00 +14712 -1.00 +14713 -1.00 +14714 -1.00 +14715 -1.00 +14716 -1.00 +14717 -1.00 +14718 -1.00 +14719 -1.00 +14720 -1.00 +14721 -1.00 +14722 -1.00 +14723 -1.00 +14724 -1.00 +14725 -1.00 +14726 -1.00 +16455 -1.00 +16456 -1.00 +16457 -1.00 +16458 -1.00 +16459 -1.00 +16460 -1.00 +16461 -1.00 +16462 -1.00 +16463 -1.00 +16464 -1.00 +16465 -1.00 +16466 -1.00 +16467 -1.00 +16468 -1.00 +16469 -1.00 +16470 -1.00 +16471 -1.00 +16472 -1.00 +16473 -1.00 +16474 -1.00 +16475 -1.00 +16476 -1.00 +16477 -1.00 +16478 -1.00 +16479 -1.00 +16480 -1.00 +16481 -1.00 +16482 -1.00 +16483 -1.00 +16484 -1.00 +16485 -1.00 +16486 -1.00 +16487 -1.00 +16488 -1.00 +16489 -1.00 +16490 -1.00 +16491 -1.00 +16492 -1.00 +16493 -1.00 +16494 -1.00 +16495 -1.00 +16496 -1.00 +16497 -1.00 +16498 -1.00 +16499 -1.00 +16500 -1.00 +16501 -1.00 +16502 -1.00 +16503 -1.00 +16504 -1.00 +16506 -1.00 +16507 -1.00 +16508 -1.00 +16509 -1.00 +16510 -1.00 +16511 -1.00 +16512 -1.00 +16513 -1.00 +16514 -1.00 +16515 -1.00 +16516 -1.00 +16517 -1.00 +16518 -1.00 +16519 -1.00 +16520 -1.00 +16521 -1.00 +16522 -1.00 +16523 -1.00 +16524 -1.00 +16525 -1.00 +16526 -1.00 +16527 -1.00 +16528 -1.00 +16529 -1.00 +16530 -1.00 +16531 -1.00 +16532 -1.00 +16533 -1.00 +16534 -1.00 +16535 -1.00 +16536 -1.00 +16537 -1.00 +16538 -1.00 +16539 -1.00 +16540 -1.00 +16541 -1.00 +16542 -1.00 +16543 -1.00 +16544 -1.00 +16545 -1.00 +16546 -1.00 +16547 -1.00 +16548 -1.00 +16549 -1.00 +16550 -1.00 +16551 -1.00 +16552 -1.00 +16553 -1.00 +16554 -1.00 +16555 -1.00 +16556 -1.00 +17051 -1.00 +17052 -1.00 +17053 -1.00 +17054 -1.00 +17055 -1.00 +17233 -1.00 +17234 -1.00 +17235 -1.00 +17236 -1.00 +17237 -1.00 +17238 -1.00 +17239 -1.00 +17240 -1.00 +17241 -1.00 +17242 -1.00 +17243 -1.00 +17244 -1.00 +17245 -1.00 +17246 -1.00 +17247 -1.00 +17248 -1.00 +17249 -1.00 +17250 -1.00 +17251 -1.00 +17252 -1.00 +17253 -1.00 +17254 -1.00 +17255 -1.00 +17256 -1.00 +17257 -1.00 +17258 -1.00 +17259 -1.00 +17260 -1.00 +17261 -1.00 +17262 -1.00 +17263 -1.00 +17264 -1.00 +17265 -1.00 +17266 -1.00 +17267 -1.00 +17268 -1.00 +17269 -1.00 +17270 -1.00 +17271 -1.00 +17272 -1.00 +17273 -1.00 +17274 -1.00 +17275 -1.00 +17276 -1.00 +17277 -1.00 +17278 -1.00 +17555 -1.00 +17556 -1.00 +17557 -1.00 +17558 -1.00 +17559 -1.00 +17560 -1.00 +17561 -1.00 +17562 -1.00 +17563 -1.00 +17564 -1.00 +17565 -1.00 +17566 -1.00 +17567 -1.00 +17568 -1.00 +17569 -1.00 +17570 -1.00 +17571 -1.00 +17572 -1.00 +17573 -1.00 +17574 -1.00 +17575 -1.00 +17576 -1.00 +17577 -1.00 +17578 -1.00 +17579 -1.00 +17580 -1.00 +17581 -1.00 +17582 -1.00 +17583 -1.00 +17584 -1.00 +17585 -1.00 +17586 -1.00 +17587 -1.00 +17588 -1.00 +17589 -1.00 +17590 -1.00 +17591 -1.00 +17592 -1.00 +17593 -1.00 +17594 -1.00 +17595 -1.00 +17596 -1.00 +17597 -1.00 +17598 -1.00 +17599 -1.00 +17600 -1.00 +17601 -1.00 +17602 -1.00 +17603 -1.00 +17604 -1.00 +17605 -1.00 +20203 -1.00 +20204 -1.00 +20205 -1.00 +20206 -1.00 +20207 -1.00 +20208 -1.00 +20209 -1.00 +20210 -1.00 +20211 -1.00 +20212 -1.00 +20213 -1.00 +20214 -1.00 +20215 -1.00 +20216 -1.00 +20217 -1.00 +20218 -1.00 +20219 -1.00 +20220 -1.00 +20221 -1.00 +20222 -1.00 +20223 -1.00 +20224 -1.00 +20225 -1.00 +20226 -1.00 +20227 -1.00 +20228 -1.00 +20229 -1.00 +20230 -1.00 +20231 -1.00 +20232 -1.00 +20233 -1.00 +20234 -1.00 +20235 -1.00 +20236 -1.00 +20237 -1.00 +20238 -1.00 +20239 -1.00 +20240 -1.00 +20241 -1.00 +20242 -1.00 +20243 -1.00 +20244 -1.00 +20245 -1.00 +20246 -1.00 +20247 -1.00 +20248 -1.00 +20249 -1.00 +20250 -1.00 +20251 -1.00 +20252 -1.00 +20253 -1.00 +20400 -1.00 +20401 -1.00 +20402 -1.00 +20403 -1.00 +20404 -1.00 +20405 -1.00 +20406 -1.00 +20407 -1.00 +20408 -1.00 +20409 -1.00 +20410 -1.00 +20411 -1.00 +20412 -1.00 +20413 -1.00 +20414 -1.00 +20415 -1.00 +20416 -1.00 +20417 -1.00 +20418 -1.00 +20419 -1.00 +20420 -1.00 +20421 -1.00 +20422 -1.00 +20423 -1.00 +20424 -1.00 +20425 -1.00 +20426 -1.00 +20427 -1.00 +20428 -1.00 +20429 -1.00 +20430 -1.00 +20431 -1.00 +20432 -1.00 +20433 -1.00 +20434 -1.00 +20435 -1.00 +20436 -1.00 +20437 -1.00 +20438 -1.00 +20439 -1.00 +20440 -1.00 +20441 -1.00 +20442 -1.00 +20443 -1.00 +20444 -1.00 +20445 -1.00 +20446 -1.00 +20447 -1.00 +20448 -1.00 +20449 -1.00 +20450 -1.00 +20773 -1.00 +20774 -1.00 +20775 -1.00 +20776 -1.00 +20777 -1.00 +20778 -1.00 +20779 -1.00 +20780 -1.00 +20781 -1.00 +20782 -1.00 +20783 -1.00 +20784 -1.00 +20785 -1.00 +20786 -1.00 +20787 -1.00 +20788 -1.00 +20789 -1.00 +20790 -1.00 +20791 -1.00 +20792 -1.00 +20793 -1.00 +20794 -1.00 +20795 -1.00 +20796 -1.00 +20797 -1.00 +20798 -1.00 +20799 -1.00 +20800 -1.00 +20801 -1.00 +20802 -1.00 +20803 -1.00 +20804 -1.00 +20805 -1.00 +20806 -1.00 +20807 -1.00 +20808 -1.00 +20809 -1.00 +20810 -1.00 +20811 -1.00 +20812 -1.00 +20813 -1.00 +20814 -1.00 +20815 -1.00 +20816 -1.00 +20817 -1.00 +20818 -1.00 +20819 -1.00 +20849 -1.00 +20850 -1.00 +20851 -1.00 +20852 -1.00 +20853 -1.00 +20854 -1.00 +20855 -1.00 +20856 -1.00 +20857 -1.00 +20858 -1.00 +20859 -1.00 +20860 -1.00 +20861 -1.00 +20862 -1.00 +20863 -1.00 +20864 -1.00 +20865 -1.00 +20866 -1.00 +20867 -1.00 +20868 -1.00 +20869 -1.00 +20870 -1.00 +20871 -1.00 +20872 -1.00 +20873 -1.00 +20874 -1.00 +20875 -1.00 +20876 -1.00 +20877 -1.00 +20878 -1.00 +20879 -1.00 +20880 -1.00 +20881 -1.00 +20882 -1.00 +20883 -1.00 +20884 -1.00 +20885 -1.00 +20886 -1.00 +20887 -1.00 +20888 -1.00 +20889 -1.00 +20890 -1.00 +20891 -1.00 +20892 -1.00 +20893 -1.00 +20894 -1.00 +20895 -1.00 +20896 -1.00 +20897 -1.00 +20898 -1.00 +20899 -1.00 +21469 -1.00 +21470 -1.00 +21471 -1.00 +21472 -1.00 +21473 -2.00 +21474 -2.00 +21475 -2.00 +21476 -2.00 +21477 -2.00 +21478 -2.00 +21479 -2.00 +21480 -2.00 +21481 -2.00 +21482 -2.00 +21483 -2.00 +21484 -2.00 +21485 -2.00 +21486 -2.00 +21487 -2.00 +21488 -2.00 +21489 -2.00 +21490 -2.00 +21491 -2.00 +21492 -2.00 +21493 -2.00 +21494 -2.00 +21495 -2.00 +21496 -2.00 +21497 -2.00 +21498 -2.00 +21499 -2.00 +21500 -2.00 +21501 -2.00 +21502 -2.00 +21503 -2.00 +21504 -2.00 +21505 -2.00 +21506 -2.00 +21507 -2.00 +21508 -1.00 +21509 -1.00 +21510 -1.00 +21511 -1.00 +21512 -1.00 +21513 -1.00 +21514 -1.00 +21515 -1.00 +21516 -1.00 +21517 -1.00 +21526 -1.00 +21527 -1.00 +21528 -1.00 +21529 -1.00 +21530 -1.00 +21531 -1.00 +21543 -1.00 +21544 -1.00 +21545 -1.00 +21546 -1.00 +21547 -1.00 +21548 -1.00 +21549 -1.00 +21550 -1.00 +21551 -1.00 +21552 -1.00 +21553 -1.00 +21554 -1.00 +21555 -1.00 +21556 -1.00 +21557 -1.00 +21558 -1.00 +21559 -1.00 +21560 -1.00 +21561 -1.00 +21562 -1.00 +21563 -1.00 +21564 -1.00 +21565 -1.00 +21566 -1.00 +21567 -1.00 +21568 -1.00 +21569 -1.00 +21570 -1.00 +21571 -1.00 +21572 -1.00 +21573 -1.00 +21574 -1.00 +21575 -1.00 +21576 -1.00 +21577 -1.00 +21578 -1.00 +21579 -1.00 +21580 -1.00 +21581 -1.00 +21582 -1.00 +21583 -1.00 +21584 -1.00 +21585 -1.00 +21586 -1.00 +21587 -1.00 +21588 -1.00 +21589 -1.00 +21590 -1.00 +21591 -1.00 +21592 -1.00 +21593 -1.00 +21723 -1.00 +21724 -1.00 +21725 -1.00 +21726 -1.00 +21727 -1.00 +21728 -1.00 +21729 -1.00 +21730 -1.00 +21731 -1.00 +21732 -1.00 +21733 -1.00 +21734 -1.00 +21735 -1.00 +21736 -1.00 +21737 -1.00 +21738 -1.00 +21739 -1.00 +21740 -1.00 +21741 -1.00 +21742 -1.00 +21743 -1.00 +21744 -1.00 +21745 -1.00 +21746 -1.00 +21747 -1.00 +21748 -1.00 +21749 -1.00 +21750 -1.00 +21751 -1.00 +21752 -1.00 +21753 -1.00 +21754 -1.00 +21755 -1.00 +21756 -1.00 +21757 -1.00 +21758 -1.00 +21759 -1.00 +21760 -1.00 +21761 -1.00 +21762 -1.00 +21763 -1.00 +21764 -1.00 +21765 -1.00 +21766 -1.00 +21767 -1.00 +21768 -1.00 +21963 -1.00 +21964 -1.00 +21965 -1.00 +21966 -1.00 +21967 -1.00 +21968 -1.00 +21969 -1.00 +21970 -1.00 +21971 -1.00 +21972 -1.00 +21973 -1.00 +21974 -1.00 +21975 -1.00 +21976 -1.00 +21977 -1.00 +21978 -1.00 +21979 -1.00 +21980 -1.00 +21981 -1.00 +21982 -1.00 +21983 -1.00 +21984 -1.00 +21985 -1.00 +21986 -1.00 +21987 -1.00 +21988 -1.00 +21989 -1.00 +21990 -1.00 +21991 -1.00 +21992 -1.00 +21993 -1.00 +21994 -1.00 +21995 -1.00 +21996 -1.00 +21997 -1.00 +21998 -1.00 +21999 -1.00 +22000 -1.00 +22001 -2.00 +22002 -2.00 +22003 -2.00 +22004 -2.00 +22005 -2.00 +22006 -1.00 +22062 -1.00 +22063 -1.00 +22064 -1.00 +22065 -1.00 +22066 -1.00 +22067 -1.00 +22068 -1.00 +22069 -1.00 +22070 -1.00 +22071 -1.00 +22072 -1.00 +22073 -1.00 +22074 -1.00 +22075 -1.00 +22076 -1.00 +22077 -1.00 +22078 -1.00 +22079 -1.00 +22080 -1.00 +22081 -1.00 +22082 -1.00 +22083 -1.00 +22084 -1.00 +22085 -1.00 +22086 -1.00 +22087 -1.00 +22088 -1.00 +22089 -1.00 +22090 -1.00 +22091 -1.00 +22092 -1.00 +22093 -1.00 +22094 -1.00 +22095 -1.00 +22096 -1.00 +22097 -1.00 +22098 -1.00 +22099 -1.00 +22100 -1.00 +22101 -1.00 +22102 -1.00 +22103 -1.00 +22104 -1.00 +22105 -1.00 +22106 -1.00 +22107 -1.00 +22108 -1.00 +22109 -1.00 +22110 -1.00 +22111 -1.00 +22112 -1.00 +22343 -1.00 +22344 -1.00 +22345 -1.00 +22346 -1.00 +22347 -1.00 +22348 -1.00 +22349 -1.00 +22350 -1.00 +22351 -1.00 +22352 -1.00 +22353 -1.00 +22354 -1.00 +22355 -1.00 +22356 -1.00 +22357 -1.00 +22358 -1.00 +22359 -1.00 +22360 -1.00 +22361 -1.00 +22362 -1.00 +22363 -1.00 +22364 -1.00 +22365 -1.00 +22366 -1.00 +22367 -1.00 +22368 -1.00 +22369 -1.00 +22370 -1.00 +22371 -1.00 +22372 -1.00 +22373 -1.00 +22374 -1.00 +22375 -1.00 +22376 -1.00 +22377 -1.00 +22378 -1.00 +22379 -1.00 +22380 -1.00 +22381 -1.00 +22382 -1.00 +22383 -1.00 +22384 -1.00 +22385 -1.00 +22386 -1.00 +22387 -1.00 +22388 -1.00 +22389 -1.00 +22390 -1.00 +22434 -1.00 +22435 -1.00 +22436 -1.00 +22437 -1.00 +22438 -1.00 +22439 -1.00 +22440 -1.00 +22441 -1.00 +22442 -1.00 +22443 -1.00 +22444 -1.00 +22445 -1.00 +22446 -2.00 +22447 -2.00 +22448 -2.00 +22449 -3.00 +22450 -3.00 +22451 -3.00 +22452 -3.00 +22453 -3.00 +22454 -3.00 +22455 -3.00 +22456 -3.00 +22457 -3.00 +22458 -3.00 +22459 -3.00 +22460 -3.00 +22461 -3.00 +22462 -3.00 +22463 -3.00 +22464 -3.00 +22465 -3.00 +22466 -3.00 +22467 -3.00 +22468 -3.00 +22469 -3.00 +22470 -3.00 +22471 -3.00 +22472 -3.00 +22473 -3.00 +22474 -3.00 +22475 -3.00 +22476 -3.00 +22477 -3.00 +22478 -3.00 +22479 -3.00 +22480 -2.00 +22481 -2.00 +22482 -2.00 +22483 -2.00 +22484 -2.00 +22485 -2.00 +22486 -2.00 +22487 -2.00 +22488 -2.00 +22489 -2.00 +22490 -2.00 +22491 -1.00 +22492 -1.00 +22493 -1.00 +22494 -1.00 +22495 -1.00 +22496 -1.00 +22497 -1.00 +22498 -1.00 +22499 -1.00 +22544 -1.00 +22545 -1.00 +22546 -1.00 +22547 -1.00 +22548 -1.00 +22549 -1.00 +22550 -1.00 +22551 -1.00 +22552 -1.00 +22553 -1.00 +22554 -1.00 +22555 -1.00 +22556 -1.00 +22557 -1.00 +22558 -1.00 +22559 -1.00 +22560 -1.00 +22561 -1.00 +22562 -1.00 +22563 -1.00 +22564 -1.00 +22565 -1.00 +22566 -1.00 +22567 -1.00 +22568 -1.00 +22569 -1.00 +22570 -1.00 +22571 -1.00 +22572 -1.00 +22573 -1.00 +22574 -1.00 +22575 -1.00 +22576 -1.00 +22577 -1.00 +22578 -1.00 +22579 -1.00 +22580 -1.00 +22581 -1.00 +22582 -1.00 +22583 -1.00 +22584 -1.00 +22585 -1.00 +22586 -1.00 +22587 -1.00 +22588 -1.00 +22589 -1.00 +22590 -1.00 +22591 -1.00 +22710 -1.00 +22711 -1.00 +22712 -1.00 +22713 -1.00 +22714 -1.00 +22715 -1.00 +22716 -1.00 +22717 -1.00 +22718 -1.00 +22719 -1.00 +22720 -1.00 +22721 -1.00 +22722 -1.00 +22723 -1.00 +22724 -1.00 +22725 -1.00 +22726 -1.00 +22727 -1.00 +22728 -1.00 +22729 -1.00 +22730 -1.00 +22731 -1.00 +22732 -1.00 +22733 -1.00 +22734 -1.00 +22735 -1.00 +22736 -1.00 +22737 -1.00 +22738 -1.00 +22739 -1.00 +22740 -1.00 +22741 -1.00 +22742 -1.00 +22743 -1.00 +22744 -1.00 +22745 -1.00 +22746 -1.00 +22747 -1.00 +22748 -1.00 +22749 -1.00 +22750 -1.00 +22751 -1.00 +22752 -1.00 +22753 -1.00 +22754 -1.00 +22755 -1.00 +22756 -1.00 +22757 -1.00 +22758 -1.00 +22759 -1.00 +22760 -1.00 +23105 -1.00 +23106 -1.00 +23107 -1.00 +23108 -1.00 +23109 -1.00 +23110 -1.00 +23111 -1.00 +23112 -1.00 +23113 -1.00 +23114 -1.00 +23115 -1.00 +23116 -1.00 +23117 -1.00 +23118 -1.00 +23119 -1.00 +23120 -1.00 +23121 -1.00 +23122 -1.00 +23123 -1.00 +23124 -1.00 +23125 -1.00 +23126 -1.00 +23127 -1.00 +23128 -1.00 +23129 -1.00 +23130 -1.00 +23131 -1.00 +23132 -1.00 +23133 -1.00 +23134 -1.00 +23135 -1.00 +23136 -1.00 +23137 -1.00 +23138 -1.00 +23139 -1.00 +23140 -1.00 +23141 -1.00 +23142 -1.00 +23143 -1.00 +23144 -1.00 +23145 -1.00 +23146 -1.00 +23147 -1.00 +23148 -1.00 +23149 -1.00 +23150 -1.00 +23151 -1.00 +23152 -1.00 +23153 -1.00 +23154 -1.00 +23354 -1.00 +23355 -1.00 +23356 -1.00 +23357 -1.00 +23358 -1.00 +23359 -1.00 +23360 -1.00 +23361 -1.00 +23362 -1.00 +23363 -1.00 +23364 -1.00 +23365 -1.00 +23366 -1.00 +23367 -1.00 +23368 -1.00 +23369 -1.00 +23370 -1.00 +23371 -1.00 +23372 -1.00 +23373 -1.00 +23374 -1.00 +23375 -1.00 +23376 -1.00 +23377 -1.00 +23378 -1.00 +23379 -1.00 +23380 -1.00 +23381 -1.00 +23382 -1.00 +23383 -1.00 +23384 -1.00 +23385 -1.00 +23386 -1.00 +23387 -1.00 +23388 -1.00 +23389 -1.00 +23390 -1.00 +23391 -1.00 +23392 -1.00 +23393 -1.00 +23394 -1.00 +23395 -1.00 +23396 -1.00 +23397 -1.00 +23398 -1.00 +23399 -1.00 +23400 -1.00 +23401 -1.00 +23402 -1.00 +23403 -1.00 +23404 -1.00 +24395 -1.00 +24396 -1.00 +24397 -1.00 +24398 -1.00 +24399 -1.00 +24400 -1.00 +24401 -1.00 +24402 -1.00 +24403 -1.00 +24404 -1.00 +24405 -1.00 +24406 -1.00 +24407 -1.00 +24408 -1.00 +24409 -1.00 +24410 -1.00 +24411 -1.00 +24412 -1.00 +24413 -1.00 +24414 -1.00 +24415 -1.00 +24416 -1.00 +24417 -1.00 +24418 -1.00 +24419 -1.00 +24420 -1.00 +24421 -1.00 +24422 -1.00 +24423 -1.00 +24424 -1.00 +24425 -1.00 +24426 -1.00 +24427 -1.00 +24428 -1.00 +24429 -1.00 +24430 -1.00 +24431 -1.00 +24432 -1.00 +24433 -1.00 +24434 -1.00 +24435 -1.00 +24558 -1.00 +24559 -1.00 +24560 -1.00 +24561 -1.00 +24562 -1.00 +24563 -1.00 +24564 -1.00 +24565 -1.00 +24566 -1.00 +24567 -1.00 +24568 -1.00 +24569 -1.00 +24570 -1.00 +24571 -1.00 +24572 -1.00 +24573 -1.00 +24574 -1.00 +24575 -1.00 +24576 -1.00 +24577 -1.00 +24578 -1.00 +24579 -1.00 +24580 -1.00 +24581 -1.00 +24582 -1.00 +24583 -1.00 +24584 -1.00 +24585 -1.00 +24586 -1.00 +24587 -1.00 +24588 -1.00 +24589 -1.00 +24590 -1.00 +24591 -1.00 +24592 -1.00 +24593 -1.00 +24594 -1.00 +24595 -1.00 +24596 -1.00 +24597 -1.00 +24598 -1.00 +24599 -1.00 +24600 -1.00 +24601 -1.00 +24602 -1.00 +24603 -1.00 +24604 -1.00 +24605 -1.00 +24606 -1.00 +24607 -1.00 +24608 -1.00 +28411 -1.00 +28412 -1.00 +28413 -1.00 +28414 -1.00 +28415 -1.00 +28416 -1.00 +28417 -1.00 +28418 -1.00 +28419 -1.00 +28420 -1.00 +28421 -1.00 +28422 -1.00 +28423 -1.00 +28424 -1.00 +28425 -1.00 +28426 -1.00 +28427 -1.00 +28428 -1.00 +28429 -1.00 +28430 -1.00 +28431 -2.00 +28432 -2.00 +28433 -2.00 +28434 -2.00 +28435 -2.00 +28436 -2.00 +28437 -2.00 +28438 -2.00 +28439 -2.00 +28440 -2.00 +28441 -2.00 +28442 -2.00 +28443 -2.00 +28444 -2.00 +28445 -2.00 +28446 -2.00 +28447 -2.00 +28448 -2.00 +28449 -2.00 +28450 -2.00 +28451 -2.00 +28452 -2.00 +28453 -2.00 +28454 -2.00 +28455 -2.00 +28456 -2.00 +28457 -2.00 +28458 -2.00 +28459 -2.00 +28460 -1.00 +28461 -1.00 +28462 -1.00 +28463 -1.00 +28464 -1.00 +28465 -1.00 +28466 -1.00 +28467 -1.00 +28468 -1.00 +28469 -1.00 +28470 -1.00 +28471 -1.00 +28472 -1.00 +28473 -1.00 +28474 -1.00 +28475 -1.00 +28476 -1.00 +28477 -1.00 +40638 -1.00 +40639 -1.00 +40640 -1.00 +40641 -1.00 +40642 -1.00 +40643 -1.00 +40644 -1.00 +40645 -1.00 +40646 -1.00 +40647 -1.00 +40648 -2.00 +40649 -2.00 +40650 -2.00 +40651 -2.00 +40652 -2.00 +40653 -2.00 +40654 -2.00 +40655 -2.00 +40656 -2.00 +40657 -2.00 +40658 -2.00 +40659 -2.00 +40660 -2.00 +40661 -2.00 +40662 -2.00 +40663 -2.00 +40664 -2.00 +40665 -2.00 +40666 -2.00 +40667 -2.00 +40668 -2.00 +40669 -2.00 +40670 -2.00 +40671 -2.00 +40672 -2.00 +40673 -2.00 +40674 -2.00 +40675 -2.00 +40676 -2.00 +40677 -2.00 +40678 -2.00 +40679 -2.00 +40680 -3.00 +40681 -3.00 +40682 -3.00 +40683 -3.00 +40684 -3.00 +40685 -3.00 +40686 -3.00 +40687 -2.00 +40688 -2.00 +40689 -2.00 +40690 -2.00 +40691 -2.00 +40692 -2.00 +40693 -1.00 +40694 -1.00 +40695 -1.00 +40696 -1.00 +40697 -1.00 +40698 -1.00 +40699 -1.00 +40700 -1.00 +40701 -1.00 +40702 -1.00 +40703 -1.00 +40704 -1.00 +40705 -1.00 +40706 -1.00 +40707 -1.00 +40708 -1.00 +40709 -1.00 +40710 -1.00 +40711 -1.00 +40712 -1.00 +40713 -1.00 +40714 -1.00 +40715 -1.00 +40716 -1.00 +40717 -1.00 +40718 -1.00 +40719 -1.00 +40720 -1.00 +40721 -1.00 +40722 -1.00 +40723 -1.00 +40724 -1.00 +40725 -1.00 +40726 -1.00 +40727 -1.00 +40728 -1.00 +40729 -1.00 +40730 -1.00 +40895 -1.00 +40896 -1.00 +40897 -1.00 +40898 -1.00 +40899 -1.00 +40900 -1.00 +40901 -1.00 +40902 -1.00 +40903 -1.00 +40904 -1.00 +40905 -1.00 +40906 -1.00 +40907 -1.00 +40908 -1.00 +40909 -1.00 +40910 -1.00 +40911 -1.00 +40912 -1.00 +40913 -1.00 +40914 -1.00 +40915 -1.00 +40916 -1.00 +40917 -1.00 +40918 -1.00 +40919 -1.00 +40920 -1.00 +40921 -1.00 +40922 -1.00 +40923 -1.00 +40924 -1.00 +40925 -1.00 +40926 -1.00 +40927 -1.00 +40928 -1.00 +40929 -1.00 +40930 -1.00 +40931 -1.00 +40932 -1.00 +40933 -1.00 +40934 -1.00 +40935 -1.00 +40936 -1.00 +40937 -1.00 +40938 -1.00 +40939 -1.00 +40940 -1.00 +40941 -1.00 +40942 -1.00 +40943 -1.00 +40944 -1.00 +40945 -1.00 +57998 -1.00 +57999 -1.00 +58000 -1.00 +58001 -1.00 +58002 -1.00 +58003 -1.00 +58004 -1.00 +58005 -1.00 +58006 -1.00 +58007 -1.00 +58008 -1.00 +58009 -1.00 +58010 -1.00 +58011 -1.00 +58012 -1.00 +58013 -1.00 +58014 -1.00 +58015 -1.00 +58016 -1.00 +58017 -1.00 +58018 -1.00 +58019 -1.00 +58020 -1.00 +58021 -1.00 +58022 -1.00 +58023 -1.00 +58024 -1.00 +58025 -1.00 +58026 -1.00 +58027 -1.00 +58028 -1.00 +58029 -1.00 +58030 -1.00 +58031 -1.00 +58032 -1.00 +58033 -1.00 +58034 -1.00 +58035 -1.00 +58036 -1.00 +58037 -1.00 +58038 -1.00 +58039 -1.00 +58040 -1.00 +58041 -1.00 +58042 -1.00 +58043 -1.00 +58044 -1.00 +58045 -1.00 +58046 -1.00 +58047 -1.00 +58135 -1.00 +58136 -1.00 +58137 -1.00 +58138 -1.00 +58139 -1.00 +58140 -1.00 +58141 -1.00 +58142 -1.00 +58143 -1.00 +58144 -1.00 +58145 -1.00 +58146 -1.00 +58147 -1.00 +58148 -1.00 +58149 -1.00 +58150 -1.00 +58151 -1.00 +58152 -1.00 +58153 -1.00 +58154 -1.00 +58155 -1.00 +58156 -1.00 +58157 -1.00 +58158 -1.00 +58159 -1.00 +58160 -1.00 +58161 -1.00 +58162 -1.00 +58163 -1.00 +58164 -1.00 +58165 -1.00 +58166 -1.00 +58167 -1.00 +58168 -1.00 +58169 -1.00 +58170 -1.00 +58171 -1.00 +58172 -1.00 +58173 -1.00 +58174 -1.00 +58175 -1.00 +58176 -1.00 +58177 -1.00 +58178 -1.00 +58179 -1.00 +58180 -1.00 +58181 -1.00 +58182 -1.00 +58183 -1.00 +58184 -1.00 +58185 -1.00 +80866 -1.00 +80867 -1.00 +80868 -1.00 +80869 -1.00 +80870 -1.00 +80871 -1.00 +80872 -1.00 +80873 -1.00 +80874 -1.00 +80875 -1.00 +80876 -1.00 +80877 -1.00 +80878 -1.00 +80879 -1.00 +80880 -1.00 +80881 -1.00 +80882 -1.00 +80883 -1.00 +80884 -1.00 +80885 -1.00 +80886 -1.00 +80887 -1.00 +80888 -1.00 +80889 -1.00 +80890 -1.00 +80891 -1.00 +80892 -1.00 +80893 -1.00 +80894 -1.00 +80895 -1.00 +80896 -1.00 +80897 -1.00 +80898 -1.00 +80899 -1.00 +80900 -1.00 +80901 -1.00 +80902 -1.00 +80903 -1.00 +80904 -1.00 +80905 -1.00 +80906 -1.00 +80907 -1.00 +80908 -1.00 +80909 -1.00 +80910 -1.00 +80911 -1.00 +80912 -1.00 +80913 -1.00 +80914 -1.00 +80915 -1.00 +80916 -1.00 +87735 -1.00 +87736 -1.00 +87737 -1.00 +87738 -1.00 +87739 -1.00 +87740 -1.00 +87741 -1.00 +87742 -1.00 +87743 -1.00 +87744 -1.00 +87745 -1.00 +87746 -1.00 +87747 -1.00 +87748 -1.00 +87749 -1.00 +87750 -1.00 +87751 -1.00 +87752 -1.00 +87753 -1.00 +87754 -1.00 +87755 -1.00 +87756 -1.00 +87757 -1.00 +87758 -1.00 +87759 -1.00 +87760 -1.00 +87761 -1.00 +87762 -1.00 +87763 -1.00 +87764 -1.00 +87765 -1.00 +87766 -1.00 +87767 -1.00 +87768 -1.00 +87769 -1.00 +87770 -1.00 +87771 -1.00 +87772 -1.00 +87773 -1.00 +87774 -1.00 +87775 -1.00 +87776 -1.00 +87777 -1.00 +87778 -1.00 +87779 -1.00 +87780 -1.00 +87781 -1.00 +87782 -1.00 +87800 -1.00 +87801 -1.00 +87802 -1.00 +87803 -1.00 +87804 -1.00 +87805 -1.00 +87806 -1.00 +87807 -1.00 +87808 -1.00 +87809 -1.00 +87810 -1.00 +87811 -1.00 +87812 -1.00 +87813 -1.00 +87814 -1.00 +87815 -1.00 +87816 -1.00 +87817 -1.00 +87818 -1.00 +87819 -1.00 +87820 -1.00 +87821 -1.00 +87822 -1.00 +87823 -1.00 +87824 -1.00 +87825 -1.00 +87826 -1.00 +87827 -1.00 +87828 -1.00 +87829 -1.00 +87830 -1.00 +87831 -1.00 +87832 -1.00 +87833 -1.00 +87834 -1.00 +87835 -1.00 +87836 -1.00 +87837 -1.00 +87838 -1.00 +87839 -1.00 +87840 -1.00 +87841 -1.00 +94827 -1.00 +94828 -1.00 +94829 -1.00 +94830 -1.00 +94831 -1.00 +94832 -1.00 +94833 -1.00 +94834 -1.00 +94835 -1.00 +94836 -1.00 +94837 -1.00 +94838 -1.00 +94839 -1.00 +94840 -1.00 +94841 -1.00 +94842 -1.00 +94843 -1.00 +94844 -1.00 +94845 -1.00 +94846 -1.00 +94847 -1.00 +94848 -1.00 +94849 -1.00 +94850 -1.00 +94851 -1.00 +94852 -1.00 +94853 -1.00 +94854 -1.00 +94855 -1.00 +94856 -1.00 +94857 -1.00 +94858 -1.00 +94859 -1.00 +94860 -1.00 +94861 -1.00 +94862 -1.00 +94863 -1.00 +94864 -1.00 +94865 -1.00 +94866 -1.00 +94867 -1.00 +94868 -1.00 +94869 -1.00 +94870 -1.00 +94871 -1.00 +94872 -1.00 +94873 -1.00 +94874 -1.00 +94875 -1.00 +94876 -1.00 +94877 -1.00 +variableStep chrom=chrY +variableStep chrom=chrX +variableStep chrom=chr9 +variableStep chrom=chrM +variableStep chrom=chr22 +variableStep chrom=chr20 +variableStep chrom=chr21 +variableStep chrom=chr7 +variableStep chrom=chr6 +variableStep chrom=chr5 +variableStep chrom=chr4 +variableStep chrom=chr2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/testwig.wig Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,1788 @@ +variableStep chrom=chr13 +variableStep chrom=chr12 +variableStep chrom=chr11 +variableStep chrom=chr10 +variableStep chrom=chr17 +variableStep chrom=chr16 +variableStep chrom=chr15 +variableStep chrom=chr14 +variableStep chrom=chr19 +variableStep chrom=chr18 +variableStep chrom=chr8 +variableStep chrom=chr3 +variableStep chrom=chr1 +12674 1.00 +12675 1.00 +12676 1.00 +12677 1.00 +12678 1.00 +12679 1.00 +12680 1.00 +12681 1.00 +12682 1.00 +12683 1.00 +12684 1.00 +12685 1.00 +12686 1.00 +12687 1.00 +12688 1.00 +12689 1.00 +12690 1.00 +12691 1.00 +12692 1.00 +12693 1.00 +12694 1.00 +12695 1.00 +12696 1.00 +12697 1.00 +13221 1.00 +13222 1.00 +13223 1.00 +13224 1.00 +13225 1.00 +13226 1.00 +13227 1.00 +13228 1.00 +13229 1.00 +13230 1.00 +13231 1.00 +13232 1.00 +13233 1.00 +13234 1.00 +13235 1.00 +13236 1.00 +13237 1.00 +13238 1.00 +13239 1.00 +13240 1.00 +13241 1.00 +13242 1.00 +13243 1.00 +13244 1.00 +13245 1.00 +13246 1.00 +13247 1.00 +13483 1.00 +13484 1.00 +13485 1.00 +13486 1.00 +13487 1.00 +13488 1.00 +13489 1.00 +13490 1.00 +13491 1.00 +13492 1.00 +13493 1.00 +13494 1.00 +13495 1.00 +13496 1.00 +13497 1.00 +13498 1.00 +13499 1.00 +13500 1.00 +13501 1.00 +13502 1.00 +13503 1.00 +13504 1.00 +13505 1.00 +13506 1.00 +13507 1.00 +13508 1.00 +13509 1.00 +13510 1.00 +13511 1.00 +13512 1.00 +13513 1.00 +13514 1.00 +13515 1.00 +13516 1.00 +13517 1.00 +13518 1.00 +13519 1.00 +13520 1.00 +13521 1.00 +13522 1.00 +13523 1.00 +13524 1.00 +13525 1.00 +13526 1.00 +13527 1.00 +13528 1.00 +13529 1.00 +13530 1.00 +13531 1.00 +13532 1.00 +13533 1.00 +14596 1.00 +14597 1.00 +14598 1.00 +14599 1.00 +14600 1.00 +14601 1.00 +14602 1.00 +14603 1.00 +14604 1.00 +14605 1.00 +14606 1.00 +14607 1.00 +14608 1.00 +14609 1.00 +14610 1.00 +14611 1.00 +14612 1.00 +14613 1.00 +14614 1.00 +14615 1.00 +14616 1.00 +14617 1.00 +14618 1.00 +14619 1.00 +14620 1.00 +14621 1.00 +14622 1.00 +14623 1.00 +14624 1.00 +14625 1.00 +14626 1.00 +14627 1.00 +14628 1.00 +14629 1.00 +14630 1.00 +14631 1.00 +14632 1.00 +14633 1.00 +14634 1.00 +14635 1.00 +14636 1.00 +14637 1.00 +14638 1.00 +14639 1.00 +14640 1.00 +14641 1.00 +14642 1.00 +14643 1.00 +14644 1.00 +14645 1.00 +14676 1.00 +14677 1.00 +14678 1.00 +14679 1.00 +14680 1.00 +14681 1.00 +14682 1.00 +14683 1.00 +14684 1.00 +14685 1.00 +14686 1.00 +14687 1.00 +14688 1.00 +14689 1.00 +14690 1.00 +14691 1.00 +14692 1.00 +14693 1.00 +14694 1.00 +14695 1.00 +14696 1.00 +14697 1.00 +14698 1.00 +14699 1.00 +14700 1.00 +14701 1.00 +14702 1.00 +14703 1.00 +14704 1.00 +14705 1.00 +14706 1.00 +14707 1.00 +14708 1.00 +14709 1.00 +14710 1.00 +14711 1.00 +14712 1.00 +14713 1.00 +14714 1.00 +14715 1.00 +14716 1.00 +14717 1.00 +14718 1.00 +14719 1.00 +14720 1.00 +14721 1.00 +14722 1.00 +14723 1.00 +14724 1.00 +14725 1.00 +14726 1.00 +16455 1.00 +16456 1.00 +16457 1.00 +16458 1.00 +16459 1.00 +16460 1.00 +16461 1.00 +16462 1.00 +16463 1.00 +16464 1.00 +16465 1.00 +16466 1.00 +16467 1.00 +16468 1.00 +16469 1.00 +16470 1.00 +16471 1.00 +16472 1.00 +16473 1.00 +16474 1.00 +16475 1.00 +16476 1.00 +16477 1.00 +16478 1.00 +16479 1.00 +16480 1.00 +16481 1.00 +16482 1.00 +16483 1.00 +16484 1.00 +16485 1.00 +16486 1.00 +16487 1.00 +16488 1.00 +16489 1.00 +16490 1.00 +16491 1.00 +16492 1.00 +16493 1.00 +16494 1.00 +16495 1.00 +16496 1.00 +16497 1.00 +16498 1.00 +16499 1.00 +16500 1.00 +16501 1.00 +16502 1.00 +16503 1.00 +16504 1.00 +16506 1.00 +16507 1.00 +16508 1.00 +16509 1.00 +16510 1.00 +16511 1.00 +16512 1.00 +16513 1.00 +16514 1.00 +16515 1.00 +16516 1.00 +16517 1.00 +16518 1.00 +16519 1.00 +16520 1.00 +16521 1.00 +16522 1.00 +16523 1.00 +16524 1.00 +16525 1.00 +16526 1.00 +16527 1.00 +16528 1.00 +16529 1.00 +16530 1.00 +16531 1.00 +16532 1.00 +16533 1.00 +16534 1.00 +16535 1.00 +16536 1.00 +16537 1.00 +16538 1.00 +16539 1.00 +16540 1.00 +16541 1.00 +16542 1.00 +16543 1.00 +16544 1.00 +16545 1.00 +16546 1.00 +16547 1.00 +16548 1.00 +16549 1.00 +16550 1.00 +16551 1.00 +16552 1.00 +16553 1.00 +16554 1.00 +16555 1.00 +16556 1.00 +17051 1.00 +17052 1.00 +17053 1.00 +17054 1.00 +17055 1.00 +17233 1.00 +17234 1.00 +17235 1.00 +17236 1.00 +17237 1.00 +17238 1.00 +17239 1.00 +17240 1.00 +17241 1.00 +17242 1.00 +17243 1.00 +17244 1.00 +17245 1.00 +17246 1.00 +17247 1.00 +17248 1.00 +17249 1.00 +17250 1.00 +17251 1.00 +17252 1.00 +17253 1.00 +17254 1.00 +17255 1.00 +17256 1.00 +17257 1.00 +17258 1.00 +17259 1.00 +17260 1.00 +17261 1.00 +17262 1.00 +17263 1.00 +17264 1.00 +17265 1.00 +17266 1.00 +17267 1.00 +17268 1.00 +17269 1.00 +17270 1.00 +17271 1.00 +17272 1.00 +17273 1.00 +17274 1.00 +17275 1.00 +17276 1.00 +17277 1.00 +17278 1.00 +17555 1.00 +17556 1.00 +17557 1.00 +17558 1.00 +17559 1.00 +17560 1.00 +17561 1.00 +17562 1.00 +17563 1.00 +17564 1.00 +17565 1.00 +17566 1.00 +17567 1.00 +17568 1.00 +17569 1.00 +17570 1.00 +17571 1.00 +17572 1.00 +17573 1.00 +17574 1.00 +17575 1.00 +17576 1.00 +17577 1.00 +17578 1.00 +17579 1.00 +17580 1.00 +17581 1.00 +17582 1.00 +17583 1.00 +17584 1.00 +17585 1.00 +17586 1.00 +17587 1.00 +17588 1.00 +17589 1.00 +17590 1.00 +17591 1.00 +17592 1.00 +17593 1.00 +17594 1.00 +17595 1.00 +17596 1.00 +17597 1.00 +17598 1.00 +17599 1.00 +17600 1.00 +17601 1.00 +17602 1.00 +17603 1.00 +17604 1.00 +17605 1.00 +20203 1.00 +20204 1.00 +20205 1.00 +20206 1.00 +20207 1.00 +20208 1.00 +20209 1.00 +20210 1.00 +20211 1.00 +20212 1.00 +20213 1.00 +20214 1.00 +20215 1.00 +20216 1.00 +20217 1.00 +20218 1.00 +20219 1.00 +20220 1.00 +20221 1.00 +20222 1.00 +20223 1.00 +20224 1.00 +20225 1.00 +20226 1.00 +20227 1.00 +20228 1.00 +20229 1.00 +20230 1.00 +20231 1.00 +20232 1.00 +20233 1.00 +20234 1.00 +20235 1.00 +20236 1.00 +20237 1.00 +20238 1.00 +20239 1.00 +20240 1.00 +20241 1.00 +20242 1.00 +20243 1.00 +20244 1.00 +20245 1.00 +20246 1.00 +20247 1.00 +20248 1.00 +20249 1.00 +20250 1.00 +20251 1.00 +20252 1.00 +20253 1.00 +20400 1.00 +20401 1.00 +20402 1.00 +20403 1.00 +20404 1.00 +20405 1.00 +20406 1.00 +20407 1.00 +20408 1.00 +20409 1.00 +20410 1.00 +20411 1.00 +20412 1.00 +20413 1.00 +20414 1.00 +20415 1.00 +20416 1.00 +20417 1.00 +20418 1.00 +20419 1.00 +20420 1.00 +20421 1.00 +20422 1.00 +20423 1.00 +20424 1.00 +20425 1.00 +20426 1.00 +20427 1.00 +20428 1.00 +20429 1.00 +20430 1.00 +20431 1.00 +20432 1.00 +20433 1.00 +20434 1.00 +20435 1.00 +20436 1.00 +20437 1.00 +20438 1.00 +20439 1.00 +20440 1.00 +20441 1.00 +20442 1.00 +20443 1.00 +20444 1.00 +20445 1.00 +20446 1.00 +20447 1.00 +20448 1.00 +20449 1.00 +20450 1.00 +20773 1.00 +20774 1.00 +20775 1.00 +20776 1.00 +20777 1.00 +20778 1.00 +20779 1.00 +20780 1.00 +20781 1.00 +20782 1.00 +20783 1.00 +20784 1.00 +20785 1.00 +20786 1.00 +20787 1.00 +20788 1.00 +20789 1.00 +20790 1.00 +20791 1.00 +20792 1.00 +20793 1.00 +20794 1.00 +20795 1.00 +20796 1.00 +20797 1.00 +20798 1.00 +20799 1.00 +20800 1.00 +20801 1.00 +20802 1.00 +20803 1.00 +20804 1.00 +20805 1.00 +20806 1.00 +20807 1.00 +20808 1.00 +20809 1.00 +20810 1.00 +20811 1.00 +20812 1.00 +20813 1.00 +20814 1.00 +20815 1.00 +20816 1.00 +20817 1.00 +20818 1.00 +20819 1.00 +20849 1.00 +20850 1.00 +20851 1.00 +20852 1.00 +20853 1.00 +20854 1.00 +20855 1.00 +20856 1.00 +20857 1.00 +20858 1.00 +20859 1.00 +20860 1.00 +20861 1.00 +20862 1.00 +20863 1.00 +20864 1.00 +20865 1.00 +20866 1.00 +20867 1.00 +20868 1.00 +20869 1.00 +20870 1.00 +20871 1.00 +20872 1.00 +20873 1.00 +20874 1.00 +20875 1.00 +20876 1.00 +20877 1.00 +20878 1.00 +20879 1.00 +20880 1.00 +20881 1.00 +20882 1.00 +20883 1.00 +20884 1.00 +20885 1.00 +20886 1.00 +20887 1.00 +20888 1.00 +20889 1.00 +20890 1.00 +20891 1.00 +20892 1.00 +20893 1.00 +20894 1.00 +20895 1.00 +20896 1.00 +20897 1.00 +20898 1.00 +20899 1.00 +21469 1.00 +21470 1.00 +21471 1.00 +21472 1.00 +21473 2.00 +21474 2.00 +21475 2.00 +21476 2.00 +21477 2.00 +21478 2.00 +21479 2.00 +21480 2.00 +21481 2.00 +21482 2.00 +21483 2.00 +21484 2.00 +21485 2.00 +21486 2.00 +21487 2.00 +21488 2.00 +21489 2.00 +21490 2.00 +21491 2.00 +21492 2.00 +21493 2.00 +21494 2.00 +21495 2.00 +21496 2.00 +21497 2.00 +21498 2.00 +21499 2.00 +21500 2.00 +21501 2.00 +21502 2.00 +21503 2.00 +21504 2.00 +21505 2.00 +21506 2.00 +21507 2.00 +21508 1.00 +21509 1.00 +21510 1.00 +21511 1.00 +21512 1.00 +21513 1.00 +21514 1.00 +21515 1.00 +21516 1.00 +21517 1.00 +21526 1.00 +21527 1.00 +21528 1.00 +21529 1.00 +21530 1.00 +21531 1.00 +21543 1.00 +21544 1.00 +21545 1.00 +21546 1.00 +21547 1.00 +21548 1.00 +21549 1.00 +21550 1.00 +21551 1.00 +21552 1.00 +21553 1.00 +21554 1.00 +21555 1.00 +21556 1.00 +21557 1.00 +21558 1.00 +21559 1.00 +21560 1.00 +21561 1.00 +21562 1.00 +21563 1.00 +21564 1.00 +21565 1.00 +21566 1.00 +21567 1.00 +21568 1.00 +21569 1.00 +21570 1.00 +21571 1.00 +21572 1.00 +21573 1.00 +21574 1.00 +21575 1.00 +21576 1.00 +21577 1.00 +21578 1.00 +21579 1.00 +21580 1.00 +21581 1.00 +21582 1.00 +21583 1.00 +21584 1.00 +21585 1.00 +21586 1.00 +21587 1.00 +21588 1.00 +21589 1.00 +21590 1.00 +21591 1.00 +21592 1.00 +21593 1.00 +21723 1.00 +21724 1.00 +21725 1.00 +21726 1.00 +21727 1.00 +21728 1.00 +21729 1.00 +21730 1.00 +21731 1.00 +21732 1.00 +21733 1.00 +21734 1.00 +21735 1.00 +21736 1.00 +21737 1.00 +21738 1.00 +21739 1.00 +21740 1.00 +21741 1.00 +21742 1.00 +21743 1.00 +21744 1.00 +21745 1.00 +21746 1.00 +21747 1.00 +21748 1.00 +21749 1.00 +21750 1.00 +21751 1.00 +21752 1.00 +21753 1.00 +21754 1.00 +21755 1.00 +21756 1.00 +21757 1.00 +21758 1.00 +21759 1.00 +21760 1.00 +21761 1.00 +21762 1.00 +21763 1.00 +21764 1.00 +21765 1.00 +21766 1.00 +21767 1.00 +21768 1.00 +21963 1.00 +21964 1.00 +21965 1.00 +21966 1.00 +21967 1.00 +21968 1.00 +21969 1.00 +21970 1.00 +21971 1.00 +21972 1.00 +21973 1.00 +21974 1.00 +21975 1.00 +21976 1.00 +21977 1.00 +21978 1.00 +21979 1.00 +21980 1.00 +21981 1.00 +21982 1.00 +21983 1.00 +21984 1.00 +21985 1.00 +21986 1.00 +21987 1.00 +21988 1.00 +21989 1.00 +21990 1.00 +21991 1.00 +21992 1.00 +21993 1.00 +21994 1.00 +21995 1.00 +21996 1.00 +21997 1.00 +21998 1.00 +21999 1.00 +22000 1.00 +22001 2.00 +22002 2.00 +22003 2.00 +22004 2.00 +22005 2.00 +22006 1.00 +22062 1.00 +22063 1.00 +22064 1.00 +22065 1.00 +22066 1.00 +22067 1.00 +22068 1.00 +22069 1.00 +22070 1.00 +22071 1.00 +22072 1.00 +22073 1.00 +22074 1.00 +22075 1.00 +22076 1.00 +22077 1.00 +22078 1.00 +22079 1.00 +22080 1.00 +22081 1.00 +22082 1.00 +22083 1.00 +22084 1.00 +22085 1.00 +22086 1.00 +22087 1.00 +22088 1.00 +22089 1.00 +22090 1.00 +22091 1.00 +22092 1.00 +22093 1.00 +22094 1.00 +22095 1.00 +22096 1.00 +22097 1.00 +22098 1.00 +22099 1.00 +22100 1.00 +22101 1.00 +22102 1.00 +22103 1.00 +22104 1.00 +22105 1.00 +22106 1.00 +22107 1.00 +22108 1.00 +22109 1.00 +22110 1.00 +22111 1.00 +22112 1.00 +22343 1.00 +22344 1.00 +22345 1.00 +22346 1.00 +22347 1.00 +22348 1.00 +22349 1.00 +22350 1.00 +22351 1.00 +22352 1.00 +22353 1.00 +22354 1.00 +22355 1.00 +22356 1.00 +22357 1.00 +22358 1.00 +22359 1.00 +22360 1.00 +22361 1.00 +22362 1.00 +22363 1.00 +22364 1.00 +22365 1.00 +22366 1.00 +22367 1.00 +22368 1.00 +22369 1.00 +22370 1.00 +22371 1.00 +22372 1.00 +22373 1.00 +22374 1.00 +22375 1.00 +22376 1.00 +22377 1.00 +22378 1.00 +22379 1.00 +22380 1.00 +22381 1.00 +22382 1.00 +22383 1.00 +22384 1.00 +22385 1.00 +22386 1.00 +22387 1.00 +22388 1.00 +22389 1.00 +22390 1.00 +22434 1.00 +22435 1.00 +22436 1.00 +22437 1.00 +22438 1.00 +22439 1.00 +22440 1.00 +22441 1.00 +22442 1.00 +22443 1.00 +22444 1.00 +22445 1.00 +22446 2.00 +22447 2.00 +22448 2.00 +22449 3.00 +22450 3.00 +22451 3.00 +22452 3.00 +22453 3.00 +22454 3.00 +22455 3.00 +22456 3.00 +22457 3.00 +22458 3.00 +22459 3.00 +22460 3.00 +22461 3.00 +22462 3.00 +22463 3.00 +22464 3.00 +22465 3.00 +22466 3.00 +22467 3.00 +22468 3.00 +22469 3.00 +22470 3.00 +22471 3.00 +22472 3.00 +22473 3.00 +22474 3.00 +22475 3.00 +22476 3.00 +22477 3.00 +22478 3.00 +22479 3.00 +22480 2.00 +22481 2.00 +22482 2.00 +22483 2.00 +22484 2.00 +22485 2.00 +22486 2.00 +22487 2.00 +22488 2.00 +22489 2.00 +22490 2.00 +22491 1.00 +22492 1.00 +22493 1.00 +22494 1.00 +22495 1.00 +22496 1.00 +22497 1.00 +22498 1.00 +22499 1.00 +22544 1.00 +22545 1.00 +22546 1.00 +22547 1.00 +22548 1.00 +22549 1.00 +22550 1.00 +22551 1.00 +22552 1.00 +22553 1.00 +22554 1.00 +22555 1.00 +22556 1.00 +22557 1.00 +22558 1.00 +22559 1.00 +22560 1.00 +22561 1.00 +22562 1.00 +22563 1.00 +22564 1.00 +22565 1.00 +22566 1.00 +22567 1.00 +22568 1.00 +22569 1.00 +22570 1.00 +22571 1.00 +22572 1.00 +22573 1.00 +22574 1.00 +22575 1.00 +22576 1.00 +22577 1.00 +22578 1.00 +22579 1.00 +22580 1.00 +22581 1.00 +22582 1.00 +22583 1.00 +22584 1.00 +22585 1.00 +22586 1.00 +22587 1.00 +22588 1.00 +22589 1.00 +22590 1.00 +22591 1.00 +22710 1.00 +22711 1.00 +22712 1.00 +22713 1.00 +22714 1.00 +22715 1.00 +22716 1.00 +22717 1.00 +22718 1.00 +22719 1.00 +22720 1.00 +22721 1.00 +22722 1.00 +22723 1.00 +22724 1.00 +22725 1.00 +22726 1.00 +22727 1.00 +22728 1.00 +22729 1.00 +22730 1.00 +22731 1.00 +22732 1.00 +22733 1.00 +22734 1.00 +22735 1.00 +22736 1.00 +22737 1.00 +22738 1.00 +22739 1.00 +22740 1.00 +22741 1.00 +22742 1.00 +22743 1.00 +22744 1.00 +22745 1.00 +22746 1.00 +22747 1.00 +22748 1.00 +22749 1.00 +22750 1.00 +22751 1.00 +22752 1.00 +22753 1.00 +22754 1.00 +22755 1.00 +22756 1.00 +22757 1.00 +22758 1.00 +22759 1.00 +22760 1.00 +23105 1.00 +23106 1.00 +23107 1.00 +23108 1.00 +23109 1.00 +23110 1.00 +23111 1.00 +23112 1.00 +23113 1.00 +23114 1.00 +23115 1.00 +23116 1.00 +23117 1.00 +23118 1.00 +23119 1.00 +23120 1.00 +23121 1.00 +23122 1.00 +23123 1.00 +23124 1.00 +23125 1.00 +23126 1.00 +23127 1.00 +23128 1.00 +23129 1.00 +23130 1.00 +23131 1.00 +23132 1.00 +23133 1.00 +23134 1.00 +23135 1.00 +23136 1.00 +23137 1.00 +23138 1.00 +23139 1.00 +23140 1.00 +23141 1.00 +23142 1.00 +23143 1.00 +23144 1.00 +23145 1.00 +23146 1.00 +23147 1.00 +23148 1.00 +23149 1.00 +23150 1.00 +23151 1.00 +23152 1.00 +23153 1.00 +23154 1.00 +23354 1.00 +23355 1.00 +23356 1.00 +23357 1.00 +23358 1.00 +23359 1.00 +23360 1.00 +23361 1.00 +23362 1.00 +23363 1.00 +23364 1.00 +23365 1.00 +23366 1.00 +23367 1.00 +23368 1.00 +23369 1.00 +23370 1.00 +23371 1.00 +23372 1.00 +23373 1.00 +23374 1.00 +23375 1.00 +23376 1.00 +23377 1.00 +23378 1.00 +23379 1.00 +23380 1.00 +23381 1.00 +23382 1.00 +23383 1.00 +23384 1.00 +23385 1.00 +23386 1.00 +23387 1.00 +23388 1.00 +23389 1.00 +23390 1.00 +23391 1.00 +23392 1.00 +23393 1.00 +23394 1.00 +23395 1.00 +23396 1.00 +23397 1.00 +23398 1.00 +23399 1.00 +23400 1.00 +23401 1.00 +23402 1.00 +23403 1.00 +23404 1.00 +24395 1.00 +24396 1.00 +24397 1.00 +24398 1.00 +24399 1.00 +24400 1.00 +24401 1.00 +24402 1.00 +24403 1.00 +24404 1.00 +24405 1.00 +24406 1.00 +24407 1.00 +24408 1.00 +24409 1.00 +24410 1.00 +24411 1.00 +24412 1.00 +24413 1.00 +24414 1.00 +24415 1.00 +24416 1.00 +24417 1.00 +24418 1.00 +24419 1.00 +24420 1.00 +24421 1.00 +24422 1.00 +24423 1.00 +24424 1.00 +24425 1.00 +24426 1.00 +24427 1.00 +24428 1.00 +24429 1.00 +24430 1.00 +24431 1.00 +24432 1.00 +24433 1.00 +24434 1.00 +24435 1.00 +24558 1.00 +24559 1.00 +24560 1.00 +24561 1.00 +24562 1.00 +24563 1.00 +24564 1.00 +24565 1.00 +24566 1.00 +24567 1.00 +24568 1.00 +24569 1.00 +24570 1.00 +24571 1.00 +24572 1.00 +24573 1.00 +24574 1.00 +24575 1.00 +24576 1.00 +24577 1.00 +24578 1.00 +24579 1.00 +24580 1.00 +24581 1.00 +24582 1.00 +24583 1.00 +24584 1.00 +24585 1.00 +24586 1.00 +24587 1.00 +24588 1.00 +24589 1.00 +24590 1.00 +24591 1.00 +24592 1.00 +24593 1.00 +24594 1.00 +24595 1.00 +24596 1.00 +24597 1.00 +24598 1.00 +24599 1.00 +24600 1.00 +24601 1.00 +24602 1.00 +24603 1.00 +24604 1.00 +24605 1.00 +24606 1.00 +24607 1.00 +24608 1.00 +28411 1.00 +28412 1.00 +28413 1.00 +28414 1.00 +28415 1.00 +28416 1.00 +28417 1.00 +28418 1.00 +28419 1.00 +28420 1.00 +28421 1.00 +28422 1.00 +28423 1.00 +28424 1.00 +28425 1.00 +28426 1.00 +28427 1.00 +28428 1.00 +28429 1.00 +28430 1.00 +28431 2.00 +28432 2.00 +28433 2.00 +28434 2.00 +28435 2.00 +28436 2.00 +28437 2.00 +28438 2.00 +28439 2.00 +28440 2.00 +28441 2.00 +28442 2.00 +28443 2.00 +28444 2.00 +28445 2.00 +28446 2.00 +28447 2.00 +28448 2.00 +28449 2.00 +28450 2.00 +28451 2.00 +28452 2.00 +28453 2.00 +28454 2.00 +28455 2.00 +28456 2.00 +28457 2.00 +28458 2.00 +28459 2.00 +28460 1.00 +28461 1.00 +28462 1.00 +28463 1.00 +28464 1.00 +28465 1.00 +28466 1.00 +28467 1.00 +28468 1.00 +28469 1.00 +28470 1.00 +28471 1.00 +28472 1.00 +28473 1.00 +28474 1.00 +28475 1.00 +28476 1.00 +28477 1.00 +40638 1.00 +40639 1.00 +40640 1.00 +40641 1.00 +40642 1.00 +40643 1.00 +40644 1.00 +40645 1.00 +40646 1.00 +40647 1.00 +40648 2.00 +40649 2.00 +40650 2.00 +40651 2.00 +40652 2.00 +40653 2.00 +40654 2.00 +40655 2.00 +40656 2.00 +40657 2.00 +40658 2.00 +40659 2.00 +40660 2.00 +40661 2.00 +40662 2.00 +40663 2.00 +40664 2.00 +40665 2.00 +40666 2.00 +40667 2.00 +40668 2.00 +40669 2.00 +40670 2.00 +40671 2.00 +40672 2.00 +40673 2.00 +40674 2.00 +40675 2.00 +40676 2.00 +40677 2.00 +40678 2.00 +40679 2.00 +40680 3.00 +40681 3.00 +40682 3.00 +40683 3.00 +40684 3.00 +40685 3.00 +40686 3.00 +40687 2.00 +40688 2.00 +40689 2.00 +40690 2.00 +40691 2.00 +40692 2.00 +40693 1.00 +40694 1.00 +40695 1.00 +40696 1.00 +40697 1.00 +40698 1.00 +40699 1.00 +40700 1.00 +40701 1.00 +40702 1.00 +40703 1.00 +40704 1.00 +40705 1.00 +40706 1.00 +40707 1.00 +40708 1.00 +40709 1.00 +40710 1.00 +40711 1.00 +40712 1.00 +40713 1.00 +40714 1.00 +40715 1.00 +40716 1.00 +40717 1.00 +40718 1.00 +40719 1.00 +40720 1.00 +40721 1.00 +40722 1.00 +40723 1.00 +40724 1.00 +40725 1.00 +40726 1.00 +40727 1.00 +40728 1.00 +40729 1.00 +40730 1.00 +40895 1.00 +40896 1.00 +40897 1.00 +40898 1.00 +40899 1.00 +40900 1.00 +40901 1.00 +40902 1.00 +40903 1.00 +40904 1.00 +40905 1.00 +40906 1.00 +40907 1.00 +40908 1.00 +40909 1.00 +40910 1.00 +40911 1.00 +40912 1.00 +40913 1.00 +40914 1.00 +40915 1.00 +40916 1.00 +40917 1.00 +40918 1.00 +40919 1.00 +40920 1.00 +40921 1.00 +40922 1.00 +40923 1.00 +40924 1.00 +40925 1.00 +40926 1.00 +40927 1.00 +40928 1.00 +40929 1.00 +40930 1.00 +40931 1.00 +40932 1.00 +40933 1.00 +40934 1.00 +40935 1.00 +40936 1.00 +40937 1.00 +40938 1.00 +40939 1.00 +40940 1.00 +40941 1.00 +40942 1.00 +40943 1.00 +40944 1.00 +40945 1.00 +57998 1.00 +57999 1.00 +58000 1.00 +58001 1.00 +58002 1.00 +58003 1.00 +58004 1.00 +58005 1.00 +58006 1.00 +58007 1.00 +58008 1.00 +58009 1.00 +58010 1.00 +58011 1.00 +58012 1.00 +58013 1.00 +58014 1.00 +58015 1.00 +58016 1.00 +58017 1.00 +58018 1.00 +58019 1.00 +58020 1.00 +58021 1.00 +58022 1.00 +58023 1.00 +58024 1.00 +58025 1.00 +58026 1.00 +58027 1.00 +58028 1.00 +58029 1.00 +58030 1.00 +58031 1.00 +58032 1.00 +58033 1.00 +58034 1.00 +58035 1.00 +58036 1.00 +58037 1.00 +58038 1.00 +58039 1.00 +58040 1.00 +58041 1.00 +58042 1.00 +58043 1.00 +58044 1.00 +58045 1.00 +58046 1.00 +58047 1.00 +58135 1.00 +58136 1.00 +58137 1.00 +58138 1.00 +58139 1.00 +58140 1.00 +58141 1.00 +58142 1.00 +58143 1.00 +58144 1.00 +58145 1.00 +58146 1.00 +58147 1.00 +58148 1.00 +58149 1.00 +58150 1.00 +58151 1.00 +58152 1.00 +58153 1.00 +58154 1.00 +58155 1.00 +58156 1.00 +58157 1.00 +58158 1.00 +58159 1.00 +58160 1.00 +58161 1.00 +58162 1.00 +58163 1.00 +58164 1.00 +58165 1.00 +58166 1.00 +58167 1.00 +58168 1.00 +58169 1.00 +58170 1.00 +58171 1.00 +58172 1.00 +58173 1.00 +58174 1.00 +58175 1.00 +58176 1.00 +58177 1.00 +58178 1.00 +58179 1.00 +58180 1.00 +58181 1.00 +58182 1.00 +58183 1.00 +58184 1.00 +58185 1.00 +80866 1.00 +80867 1.00 +80868 1.00 +80869 1.00 +80870 1.00 +80871 1.00 +80872 1.00 +80873 1.00 +80874 1.00 +80875 1.00 +80876 1.00 +80877 1.00 +80878 1.00 +80879 1.00 +80880 1.00 +80881 1.00 +80882 1.00 +80883 1.00 +80884 1.00 +80885 1.00 +80886 1.00 +80887 1.00 +80888 1.00 +80889 1.00 +80890 1.00 +80891 1.00 +80892 1.00 +80893 1.00 +80894 1.00 +80895 1.00 +80896 1.00 +80897 1.00 +80898 1.00 +80899 1.00 +80900 1.00 +80901 1.00 +80902 1.00 +80903 1.00 +80904 1.00 +80905 1.00 +80906 1.00 +80907 1.00 +80908 1.00 +80909 1.00 +80910 1.00 +80911 1.00 +80912 1.00 +80913 1.00 +80914 1.00 +80915 1.00 +80916 1.00 +87735 1.00 +87736 1.00 +87737 1.00 +87738 1.00 +87739 1.00 +87740 1.00 +87741 1.00 +87742 1.00 +87743 1.00 +87744 1.00 +87745 1.00 +87746 1.00 +87747 1.00 +87748 1.00 +87749 1.00 +87750 1.00 +87751 1.00 +87752 1.00 +87753 1.00 +87754 1.00 +87755 1.00 +87756 1.00 +87757 1.00 +87758 1.00 +87759 1.00 +87760 1.00 +87761 1.00 +87762 1.00 +87763 1.00 +87764 1.00 +87765 1.00 +87766 1.00 +87767 1.00 +87768 1.00 +87769 1.00 +87770 1.00 +87771 1.00 +87772 1.00 +87773 1.00 +87774 1.00 +87775 1.00 +87776 1.00 +87777 1.00 +87778 1.00 +87779 1.00 +87780 1.00 +87781 1.00 +87782 1.00 +87800 1.00 +87801 1.00 +87802 1.00 +87803 1.00 +87804 1.00 +87805 1.00 +87806 1.00 +87807 1.00 +87808 1.00 +87809 1.00 +87810 1.00 +87811 1.00 +87812 1.00 +87813 1.00 +87814 1.00 +87815 1.00 +87816 1.00 +87817 1.00 +87818 1.00 +87819 1.00 +87820 1.00 +87821 1.00 +87822 1.00 +87823 1.00 +87824 1.00 +87825 1.00 +87826 1.00 +87827 1.00 +87828 1.00 +87829 1.00 +87830 1.00 +87831 1.00 +87832 1.00 +87833 1.00 +87834 1.00 +87835 1.00 +87836 1.00 +87837 1.00 +87838 1.00 +87839 1.00 +87840 1.00 +87841 1.00 +94827 1.00 +94828 1.00 +94829 1.00 +94830 1.00 +94831 1.00 +94832 1.00 +94833 1.00 +94834 1.00 +94835 1.00 +94836 1.00 +94837 1.00 +94838 1.00 +94839 1.00 +94840 1.00 +94841 1.00 +94842 1.00 +94843 1.00 +94844 1.00 +94845 1.00 +94846 1.00 +94847 1.00 +94848 1.00 +94849 1.00 +94850 1.00 +94851 1.00 +94852 1.00 +94853 1.00 +94854 1.00 +94855 1.00 +94856 1.00 +94857 1.00 +94858 1.00 +94859 1.00 +94860 1.00 +94861 1.00 +94862 1.00 +94863 1.00 +94864 1.00 +94865 1.00 +94866 1.00 +94867 1.00 +94868 1.00 +94869 1.00 +94870 1.00 +94871 1.00 +94872 1.00 +94873 1.00 +94874 1.00 +94875 1.00 +94876 1.00 +94877 1.00 +variableStep chrom=chrY +variableStep chrom=chrX +variableStep chrom=chr9 +variableStep chrom=chrM +variableStep chrom=chr22 +variableStep chrom=chr20 +variableStep chrom=chr21 +variableStep chrom=chr7 +variableStep chrom=chr6 +variableStep chrom=chr5 +variableStep chrom=chr4 +variableStep chrom=chr2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tin.xml Tue Mar 14 10:22:57 2017 -0400 @@ -0,0 +1,144 @@ +<tool id="rseqc_tin" name="Transcript Integrity Number" version="@WRAPPER_VERSION@"> + <description> + evaluates RNA integrity at a transcript level + </description> + + <macros> + <import>rseqc_macros.xml</import> + </macros> + + <expand macro="requirements" /> + + <expand macro="stdio" /> + + <version_command><![CDATA[tin.py --version]]></version_command> + + <!-- Generate output files here because tin.py removes all instances of "bam" + in the filename --> + <command><![CDATA[ + #import re + ln -sf '${input}' 'input.bam' && + ln -sf '${input.metadata.bam_index}' 'input.bam.bai' && + tin.py -i 'input.bam' --refgene='${refgene}' --minCov=${minCov} + --sample-size=${samplesize} ${subtractbackground} + ]]> + </command> + + <inputs> + <expand macro="bam_param" /> + <expand macro="refgene_param" /> + <param name="minCov" type="integer" value="10" label="Minimum coverage (default=10)" + help="Minimum number of reads mapped to a transcript (--minCov)." /> + <param name="samplesize" type="integer" value="100" label="Sample size (default=100)" + help="Number of equal-spaced nucleotide positions picked from mRNA. + Note: if this number is larger than the length of mRNA (L), it will + be halved until is's smaller than L. (--sample-size)." /> + <param name="subtractbackground" type="boolean" value="false" falsevalue="" + truevalue="--subtract-background" label="Subtract background noise + (default=No)" help="Subtract background noise (estimated from + intronic reads). Only use this option if there are substantial + intronic reads (--subtract-background)." /> + </inputs> + + <outputs> + <data name="outputsummary" format="tabular" from_work_dir="input.summary.txt" label="TIN on ${on_string} (summary)" /> + <data name="outputxls" format="xls" from_work_dir="input.tin.xls" label="TIN on ${on_string} (tin)" /> + </outputs> + + <!-- PDF Files contain R version, must avoid checking for diff --> + <tests> + <test> + <param name="input" value="pairend_strandspecific_51mer_hg19_chr1_1-100000.bam"/> + <param name="refgene" value="hg19_RefSeq_chr1_1-100000.bed"/> + <output name="outputsummary" file="output.tin.summary.txt"/> + <output name="outputxls" file="output.tin.xls"/> + </test> + </tests> + + <help><![CDATA[ +## tin.py + +This program is designed to evaluate RNA integrity at transcript level. TIN +(transcript integrity number) is named in analogous to RIN (RNA integrity +number). RIN (RNA integrity number) is the most widely used metric to +evaluate RNA integrity at sample (or transcriptome) level. It is a very +useful preventive measure to ensure good RNA quality and robust, +reproducible RNA sequencing. However, it has several weaknesses: + +* RIN score (1 <= RIN <= 10) is not a direct measurement of mRNA quality. + RIN score heavily relies on the amount of 18S and 28S ribosome RNAs, which + was demonstrated by the four features used by the RIN algorithm: the + “total RNA ratio” (i.e. the fraction of the area in the region of 18S and + 28S compared to the total area under the curve), 28S-region height, 28S + area ratio and the 18S:28S ratio24. To a large extent, RIN score was a + measure of ribosome RNA integrity. However, in most RNA-seq experiments, + ribosome RNAs were depleted from the library to enrich mRNA through either + ribo-minus or polyA selection procedure. + +* RIN only measures the overall RNA quality of an RNA sample. However, in real + situation, the degradation rate may differs significantly among + transcripts, depending on factors such as “AU-rich sequence”, “transcript + length”, “GC content”, “secondary structure” and the “RNA-protein + complex”. Therefore, RIN is practically not very useful in downstream + analysis such as adjusting the gene expression count. + +* RIN has very limited sensitivity to measure substantially degraded RNA + samples such as preserved clinical tissues. (ref: + http://www.illumina.com/documents/products/technotes/technote-truseq-rna-access.pdf). + +To overcome these limitations, we developed TIN, an algorithm that is able +to measure RNA integrity at transcript level. TIN calculates a score (0 <= +TIN <= 100) for each expressed transcript, however, the medTIN (i.e. +meidan TIN score across all the transcripts) can also be used to measure +the RNA integrity at sample level. Below plots demonstrated TIN is a +useful metric to measure RNA integrity in both transcriptome-wise and +transcript-wise, as demonstrated by the high concordance with both RIN and +RNA fragment size (estimated from RNA-seq read pairs). + + +## Inputs + +Input BAM/SAM file + Alignment file in BAM/SAM format. + +Reference gene model + Gene Model in BED format. Must be standard 12-column BED file. + +Minimum coverage + Minimum number of reads mapped to a tracript (default is 10). + +Sample size + Number of equal-spaced nucleotide positions picked from mRNA. Note: if + this number is larger than the length of mRNA (L), it will be halved until + it’s smaller than L (default is 100). + +Subtract background + Subtract background noise (estimated from intronic reads). Only use this + option if there are substantial intronic reads. + + +## Outputs + +Text + Table that includes the gene identifier (geneID), chromosome (chrom), + transcript start (tx_start), transcript end (tx_end), and transcript + integrity number (TIN). + +Example output: + +------ ----- ---------- --------- ------------- +geneID chrom tx_start tx_end TIN +------ ----- ---------- --------- ------------- +ABCC2 chr10 101542354 101611949 67.6446525761 +IPMK chr10 59951277 60027694 86.383618429 +RUFY2 chr10 70100863 70167051 43.8967503948 +------ ----- ---------- --------- ------------- + +@ABOUT@ + +]]> + </help> + + <expand macro="citations" /> + +</tool>
--- a/tool_dependencies.xml Thu Jul 18 11:01:08 2013 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -<?xml version="1.0"?> -<tool_dependency> - - <package name="rseqc" version="2.3.7"> - <install version = "1.0"> - <actions> - <action type="download_by_url">https://sourceforge.net/projects/rseqc/files/RSeQC-2.3.7.tar.gz</action> - <action type="shell_command">python setup.py install --root $INSTALL_DIR/lib/rseqc</action> - <action type="set_environment"> - <environment_variable name="PYTHONPATH" action="prepend_to">$INSTALL_DIR/lib/rseqc/usr/local/lib/python2.7/site-packages</environment_variable> - </action> - <action type="set_environment"> - <environment_variable name="PATH" action="prepend_to">$INSTALL_DIR/lib/rseqc/usr/local/bin</environment_variable> - </action> - </actions> - </install> - <readme> - RSeQC version 2.3.7, documentation available at http://dldcc-web.brc.bcm.edu/lilab/liguow/CGI/rseqc/_build/html/index.html#. - </readme> - </package> - -</tool_dependency>