From dc02154357020fabcd43817f8526b4eae2f9a751 Mon Sep 17 00:00:00 2001 From: Aaron <aaronquinlan@gmail.com> Date: Sat, 26 Jan 2013 14:09:29 -0500 Subject: [PATCH] [DOCS] update window docs --- .../images/tool-glyphs/window-glyph.png | Bin 0 -> 25915 bytes docs/content/tools/window.rst | 185 +++++++++++------- 2 files changed, 118 insertions(+), 67 deletions(-) create mode 100644 docs/content/images/tool-glyphs/window-glyph.png diff --git a/docs/content/images/tool-glyphs/window-glyph.png b/docs/content/images/tool-glyphs/window-glyph.png new file mode 100644 index 0000000000000000000000000000000000000000..38e0cf50ff92eeedc0e8eafcd6c2aedb706f0f1b GIT binary patch literal 25915 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 IqM!Z$A39!^DF6Tf literal 0 HcmV?d00001 diff --git a/docs/content/tools/window.rst b/docs/content/tools/window.rst index 3c0c4311..496a9341 100755 --- a/docs/content/tools/window.rst +++ b/docs/content/tools/window.rst @@ -2,156 +2,207 @@ *window* ############### -Similar to **intersectBed**, **windowBed** searches for overlapping features in A and B. However, -**windowBed** adds a specified number (1000, by default) of base pairs upstream and downstream of -each feature in A. In effect, this allows features in B that are "near" features in A to be detected. +| -========================================================================== +.. image:: ../images/tool-glyphs/window-glyph.png + :width: 600pt + +| + +Similar to ``bedtools intersect``, ``window`` searches for overlapping features +in A and B. However, ``window`` adds a specified number (1000, by default) of +base pairs upstream and downstream of each feature in A. In effect, this allows +features in B that are "near" features in A to be detected. + +=============================== Usage and option summary -========================================================================== -**Usage:** +=============================== +**Usage**: :: - windowBed [OPTIONS] -a <BED/GFF/VCF> -b <BED/GFF/VCF> + + bedtools window [OPTIONS] [-a|-abam] -b <BED/GFF/VCF> + +**(or)**: +:: + + bedtools window [OPTIONS] [-a|-abam] -b <BED/GFF/VCF> + =========================== ========================================================================================================================================================= Option Description =========================== ========================================================================================================================================================= -**-abam** BAM file A. Each BAM alignment in A is compared to B in search of overlaps. Use "stdin" if passing A with a UNIX pipe: For example: samtools view -b <BAM> | windowBed -abam stdin -b genes.bed +**-abam** BAM file A. Each BAM alignment in A is compared to B in search of overlaps. Use "stdin" if passing A with a UNIX pipe: For example: samtools view -b <BAM> | bedtools window -abam stdin -b genes.bed **-ubam** Write uncompressed BAM output. The default is write compressed BAM output. -**-bed** When using BAM input (-abam), write output as BED. The default is to write output in BAM when using -abam. For example: windowBed -abam reads.bam -b genes.bed -bed +**-bed** When using BAM input (-abam), write output as BED. The default is to write output in BAM when using -abam. For example: bedtools window -abam reads.bam -b genes.bed -bed **-w** Base pairs added upstream and downstream of each entry in A when searching for overlaps in B. *Default is 1000 bp*. **-l** Base pairs added upstream (left of) of each entry in A when searching for overlaps in B. *Allows one to create assymetrical "windows". Default is 1000bp*. **-r** Base pairs added downstream (right of) of each entry in A when searching for overlaps in B. *Allows one to create assymetrical "windows". Default is 1000bp*. **-sw** Define -l and -r based on strand. For example if used, -l 500 for a negative-stranded feature will add 500 bp downstream. *By default, this is disabled*. **-sm** Only report hits in B that overlap A on the same strand. *By default, overlaps are reported without respect to strand*. +**-Sm** Only report hits in B that overlap A on the same strand. *By default, overlaps are reported without respect to strand*. **-u** Write original A entry once if any overlaps found in B. In other words, just report the fact at least one overlap was found in B. **-c** For each entry in A, report the number of hits in B while restricting to -f. Reports 0 for A entries that have no overlap with B. +**-v** Only report those entries in A that have *no overlaps* with B. +**-header** Print the header from the A file prior to results. =========================== ========================================================================================================================================================= + ========================================================================== Default behavior ========================================================================== -By default, **windowBed** adds 1000 bp upstream and downstream of each A feature and searches for -features in B that overlap this "window". If an overlap is found in B, both the *original* A feature and the -*original* B feature are reported. For example, in the figure below, feature B1 would be found, but B2 -would not. -:: - Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - "window" = 10 - BED File A <----------*************----------> - - BED File B ^^^^^^^^ ^^^^^^ - - Result ======== - -For example: -:: - cat A.bed +By default, ``bedtools window`` adds 1000 bp upstream and downstream of each A +feature and searches for features in B that overlap this "window". If an overlap +is found in B, both the *original* A feature and the *original* B feature are +reported. + +.. code-block:: bash + + $ cat A.bed chr1 100 200 - cat B.bed + $ cat B.bed chr1 500 1000 chr1 1300 2000 - windowBed -a A.bed -b B.bed + $ bedtools window -a A.bed -b B.bed chr1 100 200 chr1 500 1000 ========================================================================== ``-w`` Defining a custom window size ========================================================================== -Instead of using the default window size of 1000bp, one can define a custom, *symmetric* window around -each feature in A using the **-w** option. One should specify the window size in base pairs. For example, -a window of 5kb should be defined as **-w 5000**. +Instead of using the default window size of 1000bp, one can define a custom, +*symmetric* window around each feature in A using the **-w** option. One should +specify the window size in base pairs. For example, a window of 5kb should be +defined as ``-w 5000``. -For example (note that in contrast to the default behavior, the second B entry is reported): -:: - cat A.bed +For example (note that in contrast to the default behavior, +the second B entry is reported): + +.. code-block:: bash + + $ cat A.bed chr1 100 200 - cat B.bed + $ cat B.bed chr1 500 1000 chr1 1300 2000 - windowBed -a A.bed -b B.bed -w 5000 + $ bedtools window -a A.bed -b B.bed -w 5000 chr1 100 200 chr1 500 1000 chr1 100 200 chr1 1300 2000 + ========================================================================== -``-l and -r`` Defining assymteric windows +``-l and -r`` Defining *assymteric* windows ========================================================================== -One can also define asymmetric windows where a differing number of bases are added upstream and -downstream of each feature using the **-l (upstream)** and **-r (downstream)** options. +One can also define asymmetric windows where a differing number of bases are +added upstream and downstream of each feature using the ``-l`` (upstream) +and ``-r`` (downstream)** options. + +.. note:: + By default, the ``-l`` and ``-r`` options ignore. If you want to define + *upstream* and *downstream* based on strand, use the ``-sw`` option (below) + with the ``-l`` and ``-r`` options. + For example (note the difference between -l 200 and -l 300): -:: - cat A.bed + + +.. code-block:: bash + + $ cat A.bed chr1 1000 2000 - cat B.bed + $ cat B.bed chr1 500 800 chr1 10000 20000 - windowBed -a A.bed -b B.bed -l 200 -r 20000 + $ bedtools window -a A.bed -b B.bed -l 200 -r 20000 chr1 100 200 chr1 10000 20000 - windowBed -a A.bed -b B.bed -l 300 -r 20000 + $ bedtools window -a A.bed -b B.bed -l 300 -r 20000 chr1 100 200 chr1 500 800 chr1 100 200 chr1 10000 20000 + ========================================================================== ``-sw`` Defining assymteric windows based on strand ========================================================================== -Especially when dealing with gene annotations or RNA-seq experiments, you may want to define -asymmetric windows based on "strand". For example, you may want to screen for overlaps that occur -within 5000 bp upstream of a gene (e.g. a promoter region) while screening only 1000 bp downstream of -the gene. By enabling the **-sw** ("stranded" windows) option, the windows are added upstream or -downstream according to strand. For example, imagine one specifies **-l 5000 -r 1000** as well as the **- -sw** option. In this case, forward stranded ("+") features will screen 5000 bp to the *left* (that is, *lower* -genomic coordinates) and 1000 bp to the *right* (that is, *higher* genomic coordinates). By contrast, -reverse stranded ("-") features will screen 5000 bp to the *right* (that is, *higher* genomic coordinates) and -1000 bp to the *left* (that is, *lower* genomic coordinates). +Especially when dealing with gene annotations or RNA-seq experiments, you may +want to define asymmetric windows based on "strand". For example, you may want +to screen for overlaps that occur within 5000 bp upstream of a gene (e.g. a +promoter region) while screening only 1000 bp downstream of the gene. +By enabling the ``-sw`` ("stranded" windows) option, the windows are added +upstream or downstream according to strand. For example, imagine one +specifies ``-l 5000``, ``-r 1000`` as well as the ``-sw`` option. In this case, +forward stranded ("+") features will screen 5000 bp to the *left* (that is, +*lower* genomic coordinates) and 1000 bp to the *right* (that is, *higher* +genomic coordinates). By contrast, reverse stranded ("-") features will screen +5000 bp to the *right* (that is, *higher* genomic coordinates) and 1000 bp to +the *left* (that is, *lower* genomic coordinates). -For example (note the difference between -l 200 and -l 300): -:: - cat A.bed +For example (note the difference between ``-l 200`` and ``-l 300``): + +.. code-block:: bash + + $ cat A.bed chr1 10000 20000 A.forward 1 + chr1 10000 20000 A.reverse 1 - - cat B.bed + $ cat B.bed chr1 1000 8000 B1 chr1 24000 32000 B2 - windowBed -a A.bed -b B.bed -l 5000 -r 1000 -sw + $ bedtools window -a A.bed -b B.bed -l 5000 -r 1000 -sw chr1 10000 20000 A.forward 1 + chr1 1000 8000 B1 chr1 10000 20000 A.reverse 1 - chr1 24000 32000 B2 ========================================================================== -``-sm`` Enforcing "strandedness" +``-sm`` Enforcing matches with the *same* "strandedness" +========================================================================== +This option behaves the same as the ``-s`` option for ``bedtools intersect`` +while scanning for overlaps within the "window" surrounding A. That is, overlaps +in B will only be included if the B interval is on the *same* strand as the A +interval. + +========================================================================== +``-Sm`` Enforcing matches with the *same* "strandedness" ========================================================================== -This option behaves the same as the -s option for intersectBed while scanning for overlaps within the -"window" surrounding A. See the discussion in the intersectBed section for details. +This option behaves the same as the ``-S`` option for ``bedtools intersect`` while +scanning for overlaps within the "window" surrounding A. That is, overlaps in +B will only be included if the B interval is on the *opposite* strand as the A +interval. + ========================================================================== -``-u`` Reporting the presence of at least one overlapping feature +``-u`` Reporting the presence/absence of at least one overlapping feature ========================================================================== -This option behaves the same as for intersectBed while scanning for overlaps within the "window" -surrounding A. See the discussion in the intersectBed section for details. +This option behaves the same as for ``bedtools intersect``. That is, even if +multiple overlaps exist, each A interval will only be reported once. ========================================================================== ``-c`` Reporting the number of overlapping features ========================================================================== -This option behaves the same as for intersectBed while scanning for overlaps within the "window" -surrounding A. See the discussion in the intersectBed section for details. +This option behaves the same as for ``bedtools intersect``. That is, it will +report the *count* of intervals in B that overlap each A interval. + ========================================================================== ``-v`` Reporting the absence of any overlapping features ========================================================================== -This option behaves the same as for intersectBed while scanning for overlaps within the "window" -surrounding A. See the discussion in the intersectBed section for details. +This option behaves the same as for ``bedtools intersect``. That is, it will +only report those intervals in A that have have *zero* overlaps in B. + +========================================================================== +``-header`` Print the header for the A file before reporting results. +========================================================================== +By default, if your A file has a header, it is ignored when reporting results. +This option will instead tell bedtools to first print the header for the +A file prior to reporting results. -- GitLab