From 356dc38afc67043572e70f8dc29b15f126c23fd9 Mon Sep 17 00:00:00 2001 From: Aaron <aaronquinlan@gmail.com> Date: Sat, 21 Jul 2012 11:04:06 -0400 Subject: [PATCH] first cut at sphinx-based docs --- docs/Makefile | 130 + .../doctrees/content/advanced-usage.doctree | Bin 0 -> 19402 bytes .../doctrees/content/annotateBed.doctree | Bin 0 -> 19621 bytes docs/_build/doctrees/content/bamToBed.doctree | Bin 0 -> 25234 bytes .../doctrees/content/bed12ToBed6.doctree | Bin 0 -> 10081 bytes docs/_build/doctrees/content/bedToBam.doctree | Bin 0 -> 14826 bytes docs/_build/doctrees/content/bedToIgv.doctree | Bin 0 -> 18370 bytes .../doctrees/content/bedtools-suite.doctree | Bin 0 -> 5766 bytes .../doctrees/content/closestBed.doctree | Bin 0 -> 23571 bytes .../doctrees/content/complementBed.doctree | Bin 0 -> 7982 bytes .../doctrees/content/coverageBed.doctree | Bin 0 -> 36649 bytes .../doctrees/content/example-usage.doctree | Bin 0 -> 47886 bytes .../doctrees/content/fastafromBed.doctree | Bin 0 -> 18553 bytes .../doctrees/content/general-usage.doctree | Bin 0 -> 118074 bytes .../content/genomecoverageBed.doctree | Bin 0 -> 27087 bytes docs/_build/doctrees/content/groupBy.doctree | Bin 0 -> 41416 bytes .../doctrees/content/installation.doctree | Bin 0 -> 6156 bytes .../doctrees/content/intersectBed.doctree | Bin 0 -> 69383 bytes docs/_build/doctrees/content/linksBed.doctree | Bin 0 -> 14379 bytes .../doctrees/content/maskfastafromBed.doctree | Bin 0 -> 12557 bytes docs/_build/doctrees/content/mergeBed.doctree | Bin 0 -> 19686 bytes docs/_build/doctrees/content/overlap.doctree | Bin 0 -> 10450 bytes docs/_build/doctrees/content/overview.doctree | Bin 0 -> 110071 bytes .../_build/doctrees/content/pairToBed.doctree | Bin 0 -> 61156 bytes .../doctrees/content/pairToPair.doctree | Bin 0 -> 20533 bytes .../doctrees/content/quick-start.doctree | Bin 0 -> 9397 bytes .../doctrees/content/shuffleBed.doctree | Bin 0 -> 25403 bytes docs/_build/doctrees/content/slopBed.doctree | Bin 0 -> 16258 bytes docs/_build/doctrees/content/sortBed.doctree | Bin 0 -> 14950 bytes .../doctrees/content/subtractBed.doctree | Bin 0 -> 13559 bytes .../doctrees/content/unionBedGraphs.doctree | Bin 0 -> 23131 bytes .../_build/doctrees/content/windowBed.doctree | Bin 0 -> 36219 bytes docs/_build/doctrees/environment.pickle | Bin 0 -> 1374009 bytes docs/_build/doctrees/index.doctree | Bin 0 -> 4596 bytes docs/_build/html/.buildinfo | 4 + .../html/_sources/content/advanced-usage.txt | 92 + .../html/_sources/content/annotateBed.txt | 99 + .../_build/html/_sources/content/bamToBed.txt | 88 + .../html/_sources/content/bed12ToBed6.txt | 49 + .../_build/html/_sources/content/bedToBam.txt | 71 + .../_build/html/_sources/content/bedToIgv.txt | 68 + .../html/_sources/content/bedtools-suite.txt | 45 + .../html/_sources/content/closestBed.txt | 130 + .../html/_sources/content/complementBed.txt | 48 + .../html/_sources/content/coverageBed.txt | 184 + .../html/_sources/content/example-usage.txt | 331 + .../html/_sources/content/fastafromBed.txt | 126 + .../html/_sources/content/general-usage.txt | 213 + .../_sources/content/genomecoverageBed.txt | 122 + docs/_build/html/_sources/content/groupBy.txt | 194 + .../html/_sources/content/installation.txt | 25 + .../html/_sources/content/intersectBed.txt | 371 ++ .../_build/html/_sources/content/linksBed.txt | 74 + .../_sources/content/maskfastafromBed.txt | 70 + .../_build/html/_sources/content/mergeBed.txt | 120 + docs/_build/html/_sources/content/overlap.txt | 41 + .../_build/html/_sources/content/overview.txt | 348 ++ .../html/_sources/content/pairToBed.txt | 378 ++ .../html/_sources/content/pairToPair.txt | 103 + .../html/_sources/content/quick-start.txt | 60 + .../html/_sources/content/shuffleBed.txt | 155 + docs/_build/html/_sources/content/slopBed.txt | 84 + docs/_build/html/_sources/content/sortBed.txt | 77 + .../html/_sources/content/subtractBed.txt | 88 + .../html/_sources/content/unionBedGraphs.txt | 163 + .../html/_sources/content/windowBed.txt | 157 + docs/_build/html/_sources/index.txt | 31 + docs/_build/html/_static/ajax-loader.gif | Bin 0 -> 673 bytes docs/_build/html/_static/basic.css | 540 ++ docs/_build/html/_static/bedtools.png | Bin 0 -> 14929 bytes docs/_build/html/_static/comment-bright.png | Bin 0 -> 3500 bytes docs/_build/html/_static/comment-close.png | Bin 0 -> 3578 bytes docs/_build/html/_static/comment.png | Bin 0 -> 3445 bytes docs/_build/html/_static/default.css | 256 + docs/_build/html/_static/doctools.js | 247 + docs/_build/html/_static/down-pressed.png | Bin 0 -> 368 bytes docs/_build/html/_static/down.png | Bin 0 -> 363 bytes docs/_build/html/_static/file.png | Bin 0 -> 392 bytes docs/_build/html/_static/jquery.js | 154 + docs/_build/html/_static/minus.png | Bin 0 -> 199 bytes docs/_build/html/_static/plus.png | Bin 0 -> 199 bytes docs/_build/html/_static/pygments.css | 62 + docs/_build/html/_static/rtd.css | 1438 +++++ docs/_build/html/_static/searchtools.js | 560 ++ docs/_build/html/_static/sidebar.js | 151 + docs/_build/html/_static/underscore.js | 23 + docs/_build/html/_static/up-pressed.png | Bin 0 -> 372 bytes docs/_build/html/_static/up.png | Bin 0 -> 363 bytes docs/_build/html/_static/websupport.js | 808 +++ docs/_build/html/objects.inv | Bin 0 -> 207 bytes docs/_build/html/searchindex.js | 1 + docs/_build/latex/Makefile | 66 + docs/_build/latex/bedtools.aux | 463 ++ docs/_build/latex/bedtools.idx | 0 docs/_build/latex/bedtools.ilg | 5 + docs/_build/latex/bedtools.ind | 0 docs/_build/latex/bedtools.log | 1131 ++++ docs/_build/latex/bedtools.out | 10 + docs/_build/latex/bedtools.tex | 5394 ++++++++++++++++ docs/_build/latex/bedtools.toc | 203 + docs/_build/latex/fncychap.sty | 683 ++ docs/_build/latex/python.ist | 11 + docs/_build/latex/sphinx.sty | 481 ++ docs/_build/latex/sphinxhowto.cls | 81 + docs/_build/latex/sphinxmanual.cls | 122 + docs/_build/latex/tabulary.sty | 452 ++ docs/_build/man/bedtools.1 | 5506 +++++++++++++++++ docs/bedtools.ai | 1426 +++++ docs/bedtools.png | Bin 0 -> 14929 bytes docs/build.sh | 2 + docs/conf.py | 220 + docs/content/advanced-usage.rst | 92 + docs/content/annotateBed.rst | 99 + docs/content/bamToBed.rst | 88 + docs/content/bed12ToBed6.rst | 49 + docs/content/bedToBam.rst | 71 + docs/content/bedToIgv.rst | 68 + docs/content/bedtools-suite.rst | 45 + docs/content/closestBed.rst | 130 + docs/content/complementBed.rst | 48 + docs/content/coverageBed.rst | 184 + docs/content/example-usage.rst | 331 + docs/content/fastafromBed.rst | 126 + docs/content/general-usage.rst | 213 + docs/content/genomecoverageBed.rst | 122 + docs/content/groupBy.rst | 194 + docs/content/installation.rst | 25 + docs/content/intersectBed.rst | 371 ++ docs/content/linksBed.rst | 74 + docs/content/maskfastafromBed.rst | 70 + docs/content/mergeBed.rst | 120 + docs/content/overlap.rst | 41 + docs/content/overview.rst | 348 ++ docs/content/pairToBed.rst | 378 ++ docs/content/pairToPair.rst | 103 + docs/content/quick-start.rst | 60 + docs/content/shuffleBed.rst | 155 + docs/content/slopBed.rst | 84 + docs/content/sortBed.rst | 77 + docs/content/subtractBed.rst | 88 + docs/content/unionBedGraphs.rst | 163 + docs/content/windowBed.rst | 157 + docs/index.rst | 31 + docs/make.bat | 188 + docs/themes/rtd/static/rtd.css_t | 1438 +++++ docs/themes/rtd/theme.conf | 64 + 146 files changed, 30730 insertions(+) create mode 100755 docs/Makefile create mode 100644 docs/_build/doctrees/content/advanced-usage.doctree create mode 100644 docs/_build/doctrees/content/annotateBed.doctree create mode 100644 docs/_build/doctrees/content/bamToBed.doctree create mode 100644 docs/_build/doctrees/content/bed12ToBed6.doctree create mode 100644 docs/_build/doctrees/content/bedToBam.doctree create mode 100644 docs/_build/doctrees/content/bedToIgv.doctree create mode 100644 docs/_build/doctrees/content/bedtools-suite.doctree create mode 100644 docs/_build/doctrees/content/closestBed.doctree create mode 100644 docs/_build/doctrees/content/complementBed.doctree create mode 100644 docs/_build/doctrees/content/coverageBed.doctree create mode 100644 docs/_build/doctrees/content/example-usage.doctree create mode 100644 docs/_build/doctrees/content/fastafromBed.doctree create mode 100644 docs/_build/doctrees/content/general-usage.doctree create mode 100644 docs/_build/doctrees/content/genomecoverageBed.doctree create mode 100644 docs/_build/doctrees/content/groupBy.doctree create mode 100644 docs/_build/doctrees/content/installation.doctree create mode 100644 docs/_build/doctrees/content/intersectBed.doctree create mode 100644 docs/_build/doctrees/content/linksBed.doctree create mode 100644 docs/_build/doctrees/content/maskfastafromBed.doctree create mode 100644 docs/_build/doctrees/content/mergeBed.doctree create mode 100644 docs/_build/doctrees/content/overlap.doctree create mode 100644 docs/_build/doctrees/content/overview.doctree create mode 100644 docs/_build/doctrees/content/pairToBed.doctree create mode 100644 docs/_build/doctrees/content/pairToPair.doctree create mode 100644 docs/_build/doctrees/content/quick-start.doctree create mode 100644 docs/_build/doctrees/content/shuffleBed.doctree create mode 100644 docs/_build/doctrees/content/slopBed.doctree create mode 100644 docs/_build/doctrees/content/sortBed.doctree create mode 100644 docs/_build/doctrees/content/subtractBed.doctree create mode 100644 docs/_build/doctrees/content/unionBedGraphs.doctree create mode 100644 docs/_build/doctrees/content/windowBed.doctree create mode 100644 docs/_build/doctrees/environment.pickle create mode 100644 docs/_build/doctrees/index.doctree create mode 100644 docs/_build/html/.buildinfo create mode 100644 docs/_build/html/_sources/content/advanced-usage.txt create mode 100644 docs/_build/html/_sources/content/annotateBed.txt create mode 100644 docs/_build/html/_sources/content/bamToBed.txt create mode 100644 docs/_build/html/_sources/content/bed12ToBed6.txt create mode 100644 docs/_build/html/_sources/content/bedToBam.txt create mode 100644 docs/_build/html/_sources/content/bedToIgv.txt create mode 100644 docs/_build/html/_sources/content/bedtools-suite.txt create mode 100644 docs/_build/html/_sources/content/closestBed.txt create mode 100644 docs/_build/html/_sources/content/complementBed.txt create mode 100644 docs/_build/html/_sources/content/coverageBed.txt create mode 100644 docs/_build/html/_sources/content/example-usage.txt create mode 100644 docs/_build/html/_sources/content/fastafromBed.txt create mode 100644 docs/_build/html/_sources/content/general-usage.txt create mode 100644 docs/_build/html/_sources/content/genomecoverageBed.txt create mode 100644 docs/_build/html/_sources/content/groupBy.txt create mode 100644 docs/_build/html/_sources/content/installation.txt create mode 100644 docs/_build/html/_sources/content/intersectBed.txt create mode 100644 docs/_build/html/_sources/content/linksBed.txt create mode 100644 docs/_build/html/_sources/content/maskfastafromBed.txt create mode 100644 docs/_build/html/_sources/content/mergeBed.txt create mode 100644 docs/_build/html/_sources/content/overlap.txt create mode 100644 docs/_build/html/_sources/content/overview.txt create mode 100644 docs/_build/html/_sources/content/pairToBed.txt create mode 100644 docs/_build/html/_sources/content/pairToPair.txt create mode 100644 docs/_build/html/_sources/content/quick-start.txt create mode 100644 docs/_build/html/_sources/content/shuffleBed.txt create mode 100644 docs/_build/html/_sources/content/slopBed.txt create mode 100644 docs/_build/html/_sources/content/sortBed.txt create mode 100644 docs/_build/html/_sources/content/subtractBed.txt create mode 100644 docs/_build/html/_sources/content/unionBedGraphs.txt create mode 100644 docs/_build/html/_sources/content/windowBed.txt create mode 100644 docs/_build/html/_sources/index.txt create mode 100644 docs/_build/html/_static/ajax-loader.gif create mode 100644 docs/_build/html/_static/basic.css create mode 100644 docs/_build/html/_static/bedtools.png create mode 100644 docs/_build/html/_static/comment-bright.png create mode 100644 docs/_build/html/_static/comment-close.png create mode 100644 docs/_build/html/_static/comment.png create mode 100644 docs/_build/html/_static/default.css create mode 100644 docs/_build/html/_static/doctools.js create mode 100644 docs/_build/html/_static/down-pressed.png create mode 100644 docs/_build/html/_static/down.png create mode 100644 docs/_build/html/_static/file.png create mode 100644 docs/_build/html/_static/jquery.js create mode 100644 docs/_build/html/_static/minus.png create mode 100644 docs/_build/html/_static/plus.png create mode 100644 docs/_build/html/_static/pygments.css create mode 100644 docs/_build/html/_static/rtd.css create mode 100644 docs/_build/html/_static/searchtools.js create mode 100644 docs/_build/html/_static/sidebar.js create mode 100644 docs/_build/html/_static/underscore.js create mode 100644 docs/_build/html/_static/up-pressed.png create mode 100644 docs/_build/html/_static/up.png create mode 100644 docs/_build/html/_static/websupport.js create mode 100644 docs/_build/html/objects.inv create mode 100644 docs/_build/html/searchindex.js create mode 100644 docs/_build/latex/Makefile create mode 100644 docs/_build/latex/bedtools.aux create mode 100644 docs/_build/latex/bedtools.idx create mode 100644 docs/_build/latex/bedtools.ilg create mode 100644 docs/_build/latex/bedtools.ind create mode 100644 docs/_build/latex/bedtools.log create mode 100644 docs/_build/latex/bedtools.out create mode 100644 docs/_build/latex/bedtools.tex create mode 100644 docs/_build/latex/bedtools.toc create mode 100644 docs/_build/latex/fncychap.sty create mode 100644 docs/_build/latex/python.ist create mode 100644 docs/_build/latex/sphinx.sty create mode 100644 docs/_build/latex/sphinxhowto.cls create mode 100644 docs/_build/latex/sphinxmanual.cls create mode 100644 docs/_build/latex/tabulary.sty create mode 100644 docs/_build/man/bedtools.1 create mode 100644 docs/bedtools.ai create mode 100644 docs/bedtools.png create mode 100755 docs/build.sh create mode 100755 docs/conf.py create mode 100755 docs/content/advanced-usage.rst create mode 100755 docs/content/annotateBed.rst create mode 100755 docs/content/bamToBed.rst create mode 100755 docs/content/bed12ToBed6.rst create mode 100755 docs/content/bedToBam.rst create mode 100755 docs/content/bedToIgv.rst create mode 100755 docs/content/bedtools-suite.rst create mode 100755 docs/content/closestBed.rst create mode 100755 docs/content/complementBed.rst create mode 100755 docs/content/coverageBed.rst create mode 100755 docs/content/example-usage.rst create mode 100755 docs/content/fastafromBed.rst create mode 100755 docs/content/general-usage.rst create mode 100755 docs/content/genomecoverageBed.rst create mode 100755 docs/content/groupBy.rst create mode 100755 docs/content/installation.rst create mode 100755 docs/content/intersectBed.rst create mode 100755 docs/content/linksBed.rst create mode 100755 docs/content/maskfastafromBed.rst create mode 100755 docs/content/mergeBed.rst create mode 100755 docs/content/overlap.rst create mode 100755 docs/content/overview.rst create mode 100755 docs/content/pairToBed.rst create mode 100755 docs/content/pairToPair.rst create mode 100755 docs/content/quick-start.rst create mode 100755 docs/content/shuffleBed.rst create mode 100755 docs/content/slopBed.rst create mode 100755 docs/content/sortBed.rst create mode 100755 docs/content/subtractBed.rst create mode 100755 docs/content/unionBedGraphs.rst create mode 100755 docs/content/windowBed.rst create mode 100755 docs/index.rst create mode 100755 docs/make.bat create mode 100755 docs/themes/rtd/static/rtd.css_t create mode 100755 docs/themes/rtd/theme.conf diff --git a/docs/Makefile b/docs/Makefile new file mode 100755 index 00000000..071223ba --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,130 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest + +help: + @echo "Please use \`make <target>' where <target> is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/track.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/track.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/track" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/track" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + make -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/docs/_build/doctrees/content/advanced-usage.doctree b/docs/_build/doctrees/content/advanced-usage.doctree new file mode 100644 index 0000000000000000000000000000000000000000..3f51c816304266e5f6cd1eb7e4bdf928a04b674e GIT binary patch literal 19402 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/annotateBed.doctree b/docs/_build/doctrees/content/annotateBed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..97b0fc521092645e1f3c194c055660f7405354ca GIT binary patch literal 19621 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 bvjI9TpM#^hfV>uqi|677FPd<y<+J|>JoESS literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/bamToBed.doctree b/docs/_build/doctrees/content/bamToBed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..ee5d9153bb4fb3767c32febac4ceb026c17ccc37 GIT binary patch literal 25234 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 Wzo|vkNw^3f!i%pzjNj^H^8W!@NAd6g literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/bed12ToBed6.doctree b/docs/_build/doctrees/content/bed12ToBed6.doctree new file mode 100644 index 0000000000000000000000000000000000000000..1ef4dbb0efad6fdbb3a9d7faa9f0808f2aad1522 GIT binary patch literal 10081 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 B1Q!4R literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/bedToBam.doctree b/docs/_build/doctrees/content/bedToBam.doctree new file mode 100644 index 0000000000000000000000000000000000000000..bcc97557355721ce19748659c4eca660789deeaf GIT binary patch literal 14826 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/bedToIgv.doctree b/docs/_build/doctrees/content/bedToIgv.doctree new file mode 100644 index 0000000000000000000000000000000000000000..822a77ee2282a9dcf07faabd08ede1cf119b054d GIT binary patch literal 18370 zcmeHPd7K<Y_0P4*?j+e{2NI4DXd;l^B|Dph4M`SEIFevo*dT0&MOen3ncnH1%vIGr z*{oU$DoVUiQM?gRycJIr6>mlH#uIP6@ILXt`}<yX_w*dQKS;!npO3$Prn;-%UGKd* zd#;?9%~i5B-z|EnawTVb33@HrWj`V2_FX0BDKWp->?&I&+n=u5o>-tnNALJibLPz1 zl-jsHwb97glUA+h8yVZN_PZ4+7LJae5H@cxYMzz14Xd0pDplXDlnt*|Dp_(`EE*kO z8h`;e=U3ePe$hEPzCOe~4Y+POZ&*>Yk+J-&V|ZEVR()g2^&Pit04*iDMr&q|SIc<5 z>qD7JISsKqkx*i>*<H1yXQxZHN1}LQ$%I(i+pM)W?fG^o1WJf*=)O#e<<MPPQ(mPe zv$p6l=a>sY4b~CK77BKj7$?LLKs{246}=ANouotWE0s7Ze4l474Co!*OhejLSu49) zbVNcNGk!iyF=%?W^ad>{HXRt;5%i5Wcri<KE&vBb%`F$L^58i;cZ^jkMQ;#2=nZBo zWgl`5!n9+R-LR4Ld~xj6SBX_h9G5W{`Bt7fRjf7_d0KLDyqU0kU%Hu^4>O&hgwbnu z=4w@f^Tdf0=AvxT@;p4RnJ_yuR(78xBR_1yobTp5angi18P#D|o?@9D8guQ0=yf`+ znz^9pmTl2DG9P3EO+>#l&+N=PZZQY5ic=@Vx|Y5{pB7<{0oXC6#31b0;5n?GSPx6D zbdGjbIjhYM#t<7E=&-TZIdQ^SGvPdJ!Z~TeSvyg4Ab<n54w#+R+yi6w0eJpU8wQ(T zyVI4}4E7E&OVu(~Ez^t-@38XHsyYd=1@dlHVwmLJJ9o~U{{FBp`umNnv@KW}fnn@E zZ?Dno_<nVGaBymBDwUBHE9aKAE8D4x%n!oH2m2bmzt^+vVIx3G%z~$5X0jp?slJ6c z??VV8ihRfN5nJ20du6NYITe5Vc7#;1h-fo>YoA><&~96RoP?+~31Ja!Rw8&aCf%Z) zGR7Pi^&Udio~#uOi#4(*C*7<I?=woaRrU;G4lm8_D^45PO0h`(hQM}96puz_(x^&2 z%V{HL`4+MD?ESX1iiu(+>oPWlwk>Kz647tlW#F$fY(JZdb$eH2d~pVK{h95$enHsv z4{z}^&zF^QJ|VWD<F+et7IoYbgkZemi0;{~bd%0ja;I~gq47>&gdHu;h12X%Vkby( zF4zvIfrBp8ti-Nb1{giSXmJQ}9#9{l#BP$JEd(^*+UkG^NgI)rMZi1~dW<M>K2cZ$ z9{;zGi3>=-(Oz>Q$ke3kTtG2{$k8E0!4qh@2Xa3^nioQmM=5bpXoC@LgRV$YaWR`= z1w?G?<YEjIOeOY`A~Qm1b2y~*B}$AF?4r8T;!@J=(RIx(ok_FHpjjO8axkAz;)+oG zOIUnI%lubx_#X~Fk%n;|ql87){vWr6_CFi0Oo>0EM3#)Q0S?mNKe}gZ=diJ-Y#XJT z=ToxetdAt;(UfRIYLkH!>9~2vmZ|=Jkpr<{FmpJS*{vz3Z=@?sWs?r2th^EqSUNfK zbhi~D>0~HJ72w|kkm^CnB=(`Bi%OKjD9Gz5Kmx-c=p4zDoU#&?usxLicoL@CAdC>^ z@?g?95KS7Tg`rt^&O(dE=e40`ey>Breocw}WX;&Lb4T;Ea|$*q>j{9vBmaR0uEEG3 zQJ#hwW+V4lDEv4j9#0k}(lxCq^{rCk2_#JdR@~+0F*FV*hKFP9xyzo|j(u;a*p)$+ z3Gl^LVD}^?o=kKp`vmnMs+e)}JfrCPG(x5`7$Wy2#8V*F)k-{-(9ghJBOHK?0hb5W zL0R(lrJVeREvc*{H*QD)z<9jj*jCOM*qR8Z06ScXvAKegI5n8aSNw{>(8F6dZ`iu| z^eqEhH*egqW$VTWzI}75icz!yd*g<!>o*bhrcGPgU^g_k!6q!m-nw~nD{m$mHn+h( zef`D_)V%ey^>s}n$v4KE3A^5p=F$c$i>Hw<UxO9Ffl_hUt6EqQ95g$tm>Jn}zb&5L zGNSa2^oRZZ4D|Q^cTA&G#4X>ZTjR~tG2)qsk!LCKY&bbjrmp75po~jPtZS8cPT10r zeV*G8h~jx>FRv>HEMy<O>>S`Z@_=4f4(N5|04+za<E-?2r;D@FaM+nI&{^qvC0<AY z7hAEK^%W~GOB(0w!HN|V{*-tT{OsCzx_WVgm_fRVSiS`Qb4Yw%3ZuPDiI+oAhj?CJ z&to?z@d}b(Am8l4j4@n{G_0~6OzAV2a0e6A951_#_>_2^;rg@$@Z3@r6MV}kVHIgh zn%847OEYx>n3R=LB4&V?`kXFrY^VMip~YX>3;hQlyqw}DsQ)S@UQK!)0zRa?0sck9 z>&;5MhN!e#5xlllcp%bf`#Q+oup)Rp1bTxKZv-iJ;+xSQ&T2=m1Wt#Bhh|RkCeVGe z5^o_951owGH=M-WqQqN?UWx`JOi=6t7P{D8hqWJe69SLGLeg$<^I$Lxotu02ZLJ3C z8`&22?%QFcQy&};@eb(wP9@$&@;yjgD0z#H0va}NRpQ-5WD^8<K*Q!Xg9lUEcj8Ei zc`}a>@9A|8I_(C7vqF7ugT9B%PP`YIzfXzxLumG(Tk8>hyAmHDU7iVD#vHr64x4VY zkjL&@(W;es)!*1z9GBr%8YL#ZqUVhOw^XuoF19IX*=~iCR!j;qcHS)~ut`9%9nKwi zAwP|6DMQjq9ouO+JmoRJ^-|)4F(a`<e5jp6oD&-8!!Xc)oem#?-9M_t$6#QG^tqkw zj#!~^;f*JUXS*M7P)&ToJev1F2ha-xdJl9U+ylLX$Cpn!i+Frl7OMX#J-*zj#HXn@ zW4o#5OuMO{fj~#bhm+4XND&Mt5r@ygzz>A%=b`f#l=vd)Of2rK``TSfe2Jv%g0Hby zLEMK@a5sOsofOMMJ--4e7Dnjet6=suCB9Bn>($_TS3O$qR^l7fPV1^DS})sk;n?my zqZd!mboWf`gASgzYuDi3b9Zeswi#zefx0bbBaYN>&J?N1P{MCP!b4&uz71u*qr`V1 zEJx|xtV8oO-nTNewfQ~dp?j40eh3`c5F44)E`C50&mXoi<!C79k6H-lWu;b4h#!OU zy-NH<QwEuz_BKsZ%>~$!^G4>;*3LaNWc{pVV~hZ*b~Yh?4r;$p;+GM%U$s!{1n`ub z^PQ1ZMDbow#D>?RfQ0xpVuh&uMv31>RDL%zl?#^6t&?$p-J&S1VG`o^pn0DXe~4)Q zvDI8!8u6!Q60$Ot5Pt@N`<3`hMBuOO2;4^o`df>EurDd66XNfn@ed{b8Pbq*uoP=Y z=6;ZobJ0k91#%u9l$_77+Vl7DQHfkY5J~4BL0nTr$qoi<-O^r3Bo`8bj;VmeBGg=c zmFz^JWEbQ16g1re@nx^1Ey)hnK_<A)fhKY><1EoQ@L@1t$}i2#lMd_CjYigI86z&& zh~tY9sXJ^vx5i)~dk8F9AnI|wk__HVx^IN_I)Z?QT1Xv<YACk?g_0|oKu;l{PeO#s z6|`11)SQpbmPhF}(i)Q&D<_ZUie|s?GnL$QLLP%gnB!O!O0L3h)V;^?OS8<{&E#rs zgj>nu8S{iVrqLd=KuoA3Pvmy$g*A9m@?rc=nFPIX62G*tEf60<KAB2#tW)ry<XQ&T ziMqdkplbO}f4}S{pk#r_$Gf4AftzXfjT}vc`w19xVR<SZlw8NKJq0EOxdz(eCJQ76 zp{J-E8t;HZuoQ9-73jb9D3siQUv1fBf#{?2^t>1wOn3_VkUeuFBb*i?fcFr;G|Qcg zY_bXMY?IR&ceBPF-wjzXQ8I9LQ8dUh2BtStjvLIB=xC-szri6%t(e2?$C#2XmN?~< z(I0F>4P(QkALb;<;^y4Ke451y%(;~thsMu5Od;ej2*HlDzo6uqOtt5*sX`mFRcpqz zOI0iiT`wUYj&^v%Hs-rM;7f<Pjb=gjoW+gJcF-KiHO@wR6ySWGOcs^rpc;yui$cjA zOoK<$0<mPbFgrtW<W8=`WUTHji1>mIc83CS7t=W}q65Jm!7r_Xg@L%6+bIwq$;cyd z<nw1hCO)Lq1yoWXj^aVdJq#WNA`VhL1mcARlq?YWxaT~Iftv;E8##suUqrwZh!^8Q z$uWlQDKIH0Wwyml7Dx<2r_;zV5J?Jo2`XUcaTH2kir+90iT*5s_-IDBEJ6V9%lV~Q z?qngf$pqTjCRZ?STH}u2-!2AlIBFkoaS)1S28SYKrTua`dZa)_Bo=X2iiHLa5V1Z* zRr8{x9-_2GK?jlL3XT^wody!LNTQ`IPPl6&eN_P%d`gN{jbRmWVw;;baLGY$-q%-F zS_InLFoN|@(cW+2sFIH}BhkXm5MmPFV(G^jW`Qgj@BYWIU7F1pbic)oL*siNGNZ{1 zSimE)D3r`GKb&GeWc*+O@`qZc5abk_8BYd`Z;IuV|K5J2u{qBYH}{*?jzZ5tJ3{Y9 zC={Mx{I~k0bRjEzpnyWjeXN+yzSKE7&FY*Bg-|mm1>hnBmo%`hjrw-B)Ldq~ipJB^ zoGQPxnlenyg4-!IOGftM$o>q-#E1H!MkS@@{diDvioxrtxgvd}<^u$jED-s4Y)&(9 zvtWHA#}eVk5-_Fa$KgTA$1`kCfl0wXR9oC+fy5y6Cr}y8kvvEtpNI<B^-2^<UWMN< zH52_=QuC7-;mHvKct3?-n&nOwLYrKTcDBh=8TV-#cl<VVEzObW{ugcPo^$pE28l*l znKI)P&x(rfKF-Njl{SHqS^4S+U-3W=?%!(_-CTsGw?Q!a4IBL#%fpUhwc@#SeQKS7 zs}V@W>u_NNDE>4mf=x$C(3FGEqm``@iyko3Tq(5&g3;ZUVv$oTSt8zj*RWpAW(d0P zAU6(;Z$Esc<<mh6UH1$WN<Nbb_xw8u!zHPQ^uDxw7L$K=K>irWJ)^ZLL0!v$&Dv{< z<bcmXI~<U%S+wml`CI@%tLLFm@;aubvjPbcIV4ET1BqcnK3~JXfZ?y#@IhOoNSO6s z$UrX&fUY229#Z!pgS?oz&1{gDpdH#=4q+ZjS>#K>2X=iK3MF68LTS5_QD(@tH!$!k zG;ow{wR6mtZEs|}S86<+ZExb2Rx^az_Ep?Y+4j|pd~+Q6H8UU+A9AYKQc2nNb$C$n z^$Z?m+ibB)6X7=yP_jVe<Kg;725uItZ)6n_eiH#xwtX`mlza=r_7s>D`u3K#xXA*E zLFjL#GRU?hg?t+-&<Srxq2xR88)jRgA31mHiu9d~@U92}yl>@~X1SAv&?fIjJKN+v zjC-5L9Up_Aor^nixRZx`O7qd8n=kWTx|Q=<Cc0L%K5d-oA}5wBIHCzCaUvuk<Cc9d zvuu_yu<ZM|acF$=q01xR4;rxM?I@J|02Ayv9D?u;GFE+-_(7)pp@8ynlrI{`g$5f? zw11dkn|0Q7$s<03c6h|GAT={3`B6YYv5%op^5aZW$0`XlL#%#+f$z}3QLJixW{cHN zGTx^&o{rT!`K48fFjha!?G&q@VdT%okv}&BGVvh`e4a{*)i2;d$uBZ^6svTj7qNO5 z0VNAWKJHOpV&G=M`bLf;!e1s}iq)^+LCLQ&Y)^qnp=Z9<7B^WSF$n$ZR0gq1Qpmee zfll}a3MIdZ-!N8*{w%TjEk^iugaF>(;g@E)lZDVG-$gsy<a>;JkH#I(!%J{Io5OSs z$+QMbQyW`Ey@<P7sca1O@shJX6<UimC>E~-+Y+yIz(xVT26t|TJ>Qc40A@ugTu5HS z;Y)JIjs1O=qFLy`*gxP#+&MWs5#<j-2S)x83MGHcL~+CD@QA{3$d2_ezL%;0B%n^G zxlLg_n`tPjf6A!MrqFE2cYcO;_)Z@vH%9d=gyqkH1l50mLdjn;2OZ=j?hHZxD+d0x z29APUYdc$z|Az5?tMPP@|Bhc;bqa(0_uNiFejg+MA&&gV8IXw&8RSn?Qjq@{4@%z8 z;8Bo!#Yz=H{ucsD7KnV@@BYfb&4TrftR}*LBVY>hzvDs4e=uxMfk~mG{@E5cSs*b8 zeGVp#VUUv)axN;+3G-0khy=f3kQ4n`f_woZbVLZ?y^vp;<xUntn=C>*+oY3myEHCO z*hg!njK0w_i7zeq*qi2p*fGXM2m?D(6t_it(l<^qByMr~v`(Trz5bC2BAqOdP;pBx zW){s71(sYwz<MEaxa^mL6pYx7Ldj*!w5JfrM9RXB+Mg3_)TUk2<&4&&(X?+S`K4L# zWORIS1h<oK9?8fn;>as!Kqfxq14mIwzIikrlstyPd-xU&jxXF&9<F&T!6XYrJ#Nrd z4BISM-^lSq_c#J3*IbPUC68y=o&uACdz{b~H(4Ml2;HD^XnX;32niui#5;_-1_jP% z@Edw2k)OpgPhy0VBLuKMg<qP*P8LFotVKIpq?d8~H17Dt5M>Nb7B0-$*@Ash{e4NU zzVwbSxpA2eA5T<0tgZLw<11-2^rvJ$u}c<6(716=Wwy;y2F6{-jYH!nJ`kDY0H9&J z6bdB=8MWtup+YV)La_E-&jdCE1bV<bT>D1q((tg60h%S(l&EV@Lp!>bPA>GCH^7!d zXn>rXP$+piQ_({JF^>8esCcEd?q-yL--1HPt@wpc1Z|Pv;aYc?fzAkkjwjh??H5wy zOopCWk%yxl($GYBHd=BU;2`IA6gZn<qFOH!N~eOIoC-h;CGYH=&A{hq;Am*moiW4E zMhC7Pe2Oa1Wx`ak(C4cOa))LWyFO!fH-3dDcLIde-o;Gu0a^z(*6rfRTz!Qh{EiOa zeBt}9wG;aLvXLHh0Y!wlVE5>*J@PzagDd4d!Bq+Q2qH@9Wj7v_d?eE*?ZIe-Us~+z zEF&*DpAd(}Ct;5ZD>y*F%?yJ-G&5@DoGt0wwsnX;>_Iu$gyM-G4FL?2N{rD5U%_2S zT&b)`eBwo)Jo%X4;UGibuX24%5WRpxN?rht=%!H=I6Y$7bT^Uc+WpQzfndPrit<7R zdsH1Pybx3f?RXKl)$KTcRy!sGJ9g~6=%PIr$%~0++>m3aU_+XCP;xI54-9z;zqA;# zKr)goDJWn|x`1z%?E|=6Lf6Gy*s<)xOqFs<UJ4K>|7a9SUWVT=zY@C^<u7Nji8`1Q zd<zgMe+9SIm7m>-`n2+e(0%$s_ep~cYyBAJXhj_1KAC_;<L8FS0trW2XQ}*;dQc7= zVMH5+l9TuijY!hB7%|UaP93bph%UF)jX1jp^#?`_T_-YP0c6;S`<P=f;s_&_0v63i zB;m-2Wh!TPoeDspbrpq@0>7cw#I8ka$zWa`EWDQ;xsK0mb**Q2o$XDovpsa38pyEL z`<dfZ#1UE_2v{_0O~R4Z(^URPUFWgj2qQiY1&%TB8yb<MZ!w}`uqV{PT8#KaZmSz{ zcGo$p$#o(lUI{X6#H*O&lOm2V;*$dw%|;~Q$cRs&a(36b8X(a6sVJ0u8h%5qiCtW4 z+w9KPBz+2=)?ahWYXC87CUSPRA~}c2gItreYJO$1Qt`1FWv6*zFQ1N<k-6p~+6ch6 z)AAX3#~A^Bd!2=jbQU>xIGxTZPM33CjU;~-TAY;@-6b>^(*cQxqipPf$Y-Nr)La^o zr!TVQwM^|f_%%CGK}<aPT&{c`RWA3YOPNYB9b$R%I#f@{=Tl=(gSbrZ1>AZ)wI11o znr46(GQf)npeyU@4DQJnbL~s;OA%l$3GGEArF<!>N6loUOZe%%Ctt>BFUK!QU&UAo zJ#S#}PB#}A@D+H60hh*w_2i9=`bt7w8p@$1ya{zmzKU9wW0>LZoYL51$=kjsU(IMY zQ)8!R`!q~@@-=vkUG&5E3-m#KE`b>$ZZ{|7Ytdejufs1kv<cQshW1R;xAD+&pC{jd z7RY%7zN^BJkAEe=eQXSJ_&VB?Z$#UuxkOH8fq;J~sL7&y6Y9)W!I!$2OyF-BT-%@I zufQF@R2-CVCWtQBEo<{9_;1l1x~q1TRMj8<dh!+~-i^~Vx0=pYaFx3ZP2bA3OZ^J5 z3}t*9D*1X9K6tXq`5L~;1_q`yZ%2bU&o0Y%&_frlGvHb`PUGY|namR1J87Pj$#<b{ z1icI$>BfeRfLj?b;aEjK0DCuqb(l*7!So*r$oCMOvtiUc4t-sbX;`R&2~s|-UmcwN z74di*z|7?&xd%iC{EIMyd@ogZ<m^l>FW*O$%;h!~?BpxcMcZ?1+n4W0{XuherRG;_ z{!H|5Cqndbwwv|k2k2!f{W(IpR!SeBfRi6Y9lCQ_4p&6dk?(r)L#Rg>;$IEi@?<3d z{;&q_p0Xr;1p{d?2Q0~tFzgEIFWL*FZcpRCC!h)({iA5aH)VEp;N<l~Ir%Yq?ZG7& zWEq52%?qsfaU$JeF2uh)OuBjb2`0&%o%PfEU7V#>q`ZS`S7dQVW?$Ma;oJYTmBZgG z&|f&nPonV}b2U^gMR}m^KWYBFO@0bM2hI6*dB41qiD|`gG*Qbz%TiH(nyZ&%3Ri&# zy9g0kwu+wo4A&>gdiZvq=fHtgKFc&0>!g{cD3PCI;BE?pm<NBJYnL_knEV2&&5oKs zIj}{3k)9I)DGHyvG$pqj?_~KU0_$Rw0T1T-GQBTL=Uk7jSHsuYh+kpcE~FTI(l_ZI zkY6P*iZv^f<}1zeYp5CNG`ky}RDPWRJIt|N5b17uUKEZA-=Mei|DFHgA-_o^mmzP_ z%7G#qA0qnlTd2Lp?8@6ntrm6uw^1=_cC(|_yX8AvyM%l%N;%&pf+xiO9H2VwJD7pf zA5Y}${euAZ2Icn%>bOS3Hbv(>04Z?PbW>VR*Dd*dLZ0X5<PYef8(|Xnh##Wzpt(wC z1iNT+s)EIRCmsCZi2M;i5MM!8aol+F$Eci;_Y%pK97*`o3>)_n@b53!VMovA<WJCu zcwLPDaEa=Es_T}rX`*!hGt`dOGUkfr0ZtFtKPRL){6{D97kI{wFn)WT>oCu`0}HKF z@V&Nl$~7|ycd!2ojUIY`#R$K~FK)E<(?at%jEwaW|Gh%<Lbhghg+qxae+$qF`8)jb TzcSEl;rDn^@;?05GO2$7tjFhK literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/bedtools-suite.doctree b/docs/_build/doctrees/content/bedtools-suite.doctree new file mode 100644 index 0000000000000000000000000000000000000000..e0948ee3afd0fe654b75a2535af39a9802c39b2b GIT binary patch literal 5766 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 IKdR>c2O)9z9{>OV literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/closestBed.doctree b/docs/_build/doctrees/content/closestBed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..7ff121e6886ed7e8872f1c3cafffc298556a3b65 GIT binary patch literal 23571 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 BHERF> literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/complementBed.doctree b/docs/_build/doctrees/content/complementBed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..7e4e5bd2d32e63de7a5ea7f29199f32931a300af GIT binary patch literal 7982 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 K$Q*wCT=HM0#~u9u literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/coverageBed.doctree b/docs/_build/doctrees/content/coverageBed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..5c848c40afb8231f31bd5669fd88c092e4661ac7 GIT binary patch literal 36649 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/example-usage.doctree b/docs/_build/doctrees/content/example-usage.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c6822d5e80c10a72660bb7f8070721e21b069d6e GIT binary patch literal 47886 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 HUB&+auttrv literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/fastafromBed.doctree b/docs/_build/doctrees/content/fastafromBed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..d6c12aa9001de3811296673d033948b088df7c89 GIT binary patch literal 18553 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/general-usage.doctree b/docs/_build/doctrees/content/general-usage.doctree new file mode 100644 index 0000000000000000000000000000000000000000..3d9efcc0472f1cc24a8191eeda480b357f667c99 GIT binary patch literal 118074 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/genomecoverageBed.doctree b/docs/_build/doctrees/content/genomecoverageBed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..ff2ff1fd1a5b9808ef75bb09148647d0aacb052e GIT binary patch literal 27087 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/groupBy.doctree b/docs/_build/doctrees/content/groupBy.doctree new file mode 100644 index 0000000000000000000000000000000000000000..222166fe0f1c0088c5469e45c5a109f7bfe13b91 GIT binary patch literal 41416 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	E7 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/installation.doctree b/docs/_build/doctrees/content/installation.doctree new file mode 100644 index 0000000000000000000000000000000000000000..00f7911f34847654fa55e5c1ba831a258db1c32d GIT binary patch literal 6156 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/intersectBed.doctree b/docs/_build/doctrees/content/intersectBed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..5b4172496177a01873648b26abe0c4b23210f2c5 GIT binary patch literal 69383 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 W#&2{wBLKSo05`7sA%2U4P5%!I_3jz~ literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/linksBed.doctree b/docs/_build/doctrees/content/linksBed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..919731d870be856bd978e77781d763083d762b86 GIT binary patch literal 14379 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 Z1L&9>!BuajkVK)d4-eRQ#?{ZJ{|8<Y754xD literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/maskfastafromBed.doctree b/docs/_build/doctrees/content/maskfastafromBed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..927c9727f0d2f205c50d1272fefcdd105afdf700 GIT binary patch literal 12557 zcmeHN378y3^$$t*nq)W0l5m({nvjrX&F+#w2nhiVNjAXZ1e0x8#dYkN>DlhhO!w65 z?(DAG2r5GGK*1YSybn}VR7CMa#Tz{F07dae#ryc*zxVo>*_mNKK0)|@e(v{e_jJ{( zcl_#A)vKy^@%%#3Ed;(@_68ldXnGm`teB3UQHPyyiJBj(1$}y#V^mCkrfPa>VW`^r z#*UmfZ{Fs?jhhBHX+^VS1Z7{#o0f6Vc1g8o$Bs*?PtrWM<PTH~?||)0Xuf4?CByR# ztz?(YLDi8RTM?6LOe1wAaw~bWs5-M_s}nvOwZJnbOwDkLnp^d4*U`M7QZZ;ob!7v6 znHS_e-}YgL>*S!3r!t{hr1w+}^2}Vt^tiRB7LTj$zD9$+8P7K>2~kG%!0aWVS_-qt znDX3!3Z`17&(qt%4Zx`0CJttS1!vUZXu3R9EBY+ZTfNqNy*+M!L}ME=s}wkP0hnjh zkz=E<bV&D1@`emjo2Q3%#ogcy?H3Jpf^bL$wo^8op)+^y8g<>WH-ygeh6=9ZL$9G( z2%c#c2g&o*QI}q#jt<ph@_L7FOmIJ{m3oI4X{=W18N>I<&Idl=IVMz(?bADpL6zw| zwR&9dD3lG)!*6X|@5~#81H|ASJFYLVi=J9Du8z}}&XUVLx7N_xA`a`u)$vxR5$Frc zwqvUGBMZPjwoLT_pU#41my3W^oiMKYoB9TQS_VFk1FjoFH2_>^JIpXU(=Z$c=Bhy; zzT7&(I@(&Pw@FJiWWlBr`>fUDmNsr3J8rERx7LjZ78J1{-h$ALjXg7JPQ&>(%^~O{ zV0v<>HbWhYg>DG)Mv!mh18*@V$f#Nwbqe&~5~@>K|H}@WH?O~+F{@X;zh4G`r+KCd zOs8Oan(b(YHoRm1=nfezTHf$Xc)x=R-=u>^+2gSXSc?&9$u#_cFu-_dX`_~zu}q@~ zkK$?`dA3sx{CbX+!1Fb8+9>$t8Ho1_me3U}0P1>f#ncLJIjFG2Xy`Ubu)R#hn8C=$ z=rl_~S;NrP3Ir-1>@)CN&7E?@Feo`;I?R&QtJzY33T_4C+Hrj}a~)4}Nh{%>5n?t* zxtxJ}M(lipCQM%=b3#a`EE6D=?Fok|6X>*}!7~hu0Dw^oh%XpbfybP#nq>0~SMM)f zX>X~m>@(Y1`OLz^XHIK!RL>{ZnaHT^=;_l#bq4qJa*XL#J<a?d-^{<)+QR<$1Z&gS zQnYOJ5VZqdcV?(|g0)O8r^D;u>FtqdwJXS@r3dd4=>F|VkEAE5-RPX*Q0?J<|92le zTBCVOkT)?5co{w`RA(n6C0-P)RXp;}nKkm%h<=oW76S+^2BOenAPFtbHLzHyCt6(w zuNaGy(Vy+JctP45s`I$J>w*;hfr6ALVU;*5TAD0bllINhB3_eH3HvdU9}L@3c%2@q z^Pz^tBKFEcWbtxyL8!)9yDm&6qSm&|wrzD<$Sn8dR$6o?c0L7Kw5QG0g%I}CP>nO! zS}|B&&~o`J+gPQHaxPzX3kNdlY0xPbs;6`7eJ!Rp?ZUn1jh?+XyMJ68DB0Tfy2a`Y zZ2(b)wjEK=(4OJpq4ReRqp0L++uguVm$Wl##_8R&ge!ylJ&$;9x>DZeRSm>*1--LM zCgQDwrYdq&fY=}k5~A>6Ndkfi5dJy(suBR52o)qn6MC-Jdv>TM8L6#6D!X@d_cmV7 z;{{w|;5x%)MfEgU%&`;~?NZ6)ICW4Rs6k>$f0tYJ_p-#)3QT=y0v%Z7hN=qHEf#LK z^bFs~b5N(?5fmyfF+Uz32;I0|`P^wi3x%_Zz6Tp4E`NgDpqf!r;5;3wnTRvkJfp9n zi}i(wY`l^A0hA<Ob)VU^qBB9&EM(NPz%2~bMJcyuH*xC(@swTkt&x??aT*-4GIzu* z)Ww*Sn9C)hdQQsaxpQ#2y~f2t<0d;fu*<0Df#s#4dVb3CvSzd*Wz^-3EXbY8s6$|I zMW|koGI(Jt2A48EFKWUE9!4`6^<wb2GE^@~dAzh0k1LqRRWdPM9jcdsSf-G@vXxUW z2WD5sv!nRwE1G$%A6d>kUK!6xam!c1;a(l8*MOnLT&@;}<FKer^i$UWdRFn;P`x%) z@paAYdo5A%^`hc+p?U+WxCo<fm+2MAj`VyZBwSms=bM@t#d^LOdNwwH3zU6psNTlP zGOOznWi4oFLgxkO74>$Mvi^wJjiP!-i{8(>MF9U!Sap4<-j!PQ?q+4;-hYq9J$*x{ z-kTD?uNCq2jPU#W1h5-J^?{W7gRQ7<VCoMEU^j*8!yuN$roVrH_x%0+>Sow@V?A6S zX=by2<OpW-QHulTTSE0Qu(59Dq5tt_;$G_}CjJDlZ9~_H9Q8?{`l(QTI#RaRx<&A_ z5DsHc1|%6=vFO%NeI~W&v#q#`MV}LkZVT1t*`h;`vp+e)(E5DK@HN}pfQ^xJ&?H~; zU9Id+nKV$q?o75d-U+f-iZ*V^mSj-tKXWEID%qe}1{Kpokw&H-wl>T+3r@DDVYh<q zP{l0v52`N!(Oc^g{bI8jF`{4U14_FeF74Hqf$~>E^;O2?VdDyGZfo{$vr@GT4|_{> zJAC4fP<@Ss?u0211BUEbUvCBtim+#W1DNfApoiR7>YKppTcP@P<Z!*#9nq-nOpH@^ z!Yen8VYfDK5TxG;)pyxS`Ho;gARBuxrUomW6?pKg??v-Pd$i!G?~AV|k?&ohx;qg& zEAsupEW6bY^`-II9m1>l?Cu_kcz<NIOT?=sEA5Y?i1*%5{e-owJN?_$c>4EKXn$Ai zq7v!;Y?jnG(oH%493afa?iT>(m!bL<#9GYyUNKdM=zXF3HEVMfdq%4Rl_|Simc8%; zoTEf%BFR~b9Je6Eteu}|jyWX<Bi;eCn5jF7!Kj=f+sC0Bk5gt-ABaW_>R^y1?KiDp zI5q+Jw|z1J-XE&pu}O2C9Q?kSQLl9$d+#5BWy_O;KLW%*h3d~>Ehh)}N3Io}7+eJS zv_};x^%v;(*HHb9O@H*&LC@V6?IU>~_4iQy2kW&2Fb(5a3dd!YYT1l;Q;DZb7yoB- z&#WI=n{@Gip?4NHFj4;v%l{`-|H~2@E1}2VBX7sviRNKy2<b39nf6XFDqtzXsjWX) zGBRi2%x+_5NBp<5{%_CD(H%QS_cZ-wGARS>t}@I(+pKLoF@rO`*=LioA&VtNTQT|I zJsI!9;+jE>fjXWgLkj8?%kp1Mvj@_vZs72~jpmEV1*_FA?f4j6S^y&8`!5U&Erf}e zUP5hnh14#f$Y`Eq&!}Gjs6$9PYb433xEz2`msHf9h*Jh7`pWv7ngL8|19BUK&3M_Q zMWEoNffnP3)gi0HDGB)9!VpIy)Pr9kEs^hK^|wH22$kFd)n?N{TFN|oCt2;fg@cv} zn>sz?wIh|=%MCU?XfcO_8~`rIE2I^|eA#3yn-x!27CJ&mj*Ljg&cRsIy+rXeyp8Xn zHsC}a=j4VHf8)4%Mq86&xuz}{l!JLX3T$Uv%aaEkEz+8;-IAdE7$Mj+mYJmvtwb@b zT7_3g#|X``1{z3Xix6-i$fm~%<?5J{kB3r|SPxAq8uf@cV3DC?Q4i45_?y<C016z3 zS4eB6b>x>UsD7c@0#W}cXzL;&$BU5lk&v;6z%Ye`gC<P#)F+%zh&i{M?CTv=x~yNQ z8=+c1vNh?l$AO^5tWO(I4#)=Z3TaTdw3_}WS*h9zFeKzB#^iSc&2$3)|FZ&UvMHN$ z9WV@|P<SxwKt15H6l@gRTQ3EtC7^Et5kUW!$A?aWq41)U@d|0PKobo-c9dj6VE>M8 zM0;l6bJHoH;sL)!TH>m=t!y4N%Omrnqq5}Y8n>yqIbAm%-QbQKrZ40?0KMaa9s9Cp zXZO&lEUfN6m9`2$9#h-!E2Pupn>B;5?eft$WO}V7JhhyTO7z^(@a$2(_tji%vH9K@ zQMRjjmP`I1odF_P{dl}WdV;WvtY&G^bh8yUbI7zqXwHmi#x{fPakKw2oWdYGg!-%4 z%xt3LSnr*}q?PBzy6*x3bpMBi&~7k*UBh^Vv`556cCi(aT{zF+?nHh9oh4*v*T|CF zg~_B_&yl)Xw;ncUxAw%{y727m@Ln2Wk?7N&WK5ll0+}YCh#w(kg?HSgd*!34OD9=H z?$z`7y=klj_|J1a&&JuVCYSSC;NW(e`*%aFgXQX%cT_?$m>ErOlWku!_(rd2JIMM# z&^gU1Cj|pH&zkM8$8~4wB2R)uK)DaEkoMz=h?)02ldOH}B0y8192GLXM%D!7`BGPd za>1NXE{UOR+r4k!-hFfd%dE$e_xOV4lkp>@rwH>H%M0bB8B5lYv3x4OqYbm}@I`jP zM-XlUM<=>HAEa@R!1$-(6;ck*#CR6hWc<^G%&3tid-v3j@={kber`Wn7a2d9c+k4U zg9>0HRu@I0nM%aqD#apZr)cy}vT|(o1iv3q53(Q;Ali6^G>K;dB5U6S;sGHm*T|Yc ztVmrA#JN4__!z{*by5%=un`blkyuS70z?&yXatd!V-ShobGr`TTf=G}uaE*f6RTNV zlhp@>Y^si|7Qm<8GcDCM!{_#%Z4KVDE%BZiuo1(bAwr*-3Wed%ibXUU&ib+8A-^9{ z@3{yPf#b9B3h81z6C7FlCLAvjvgg#1wZQSYQeDGwZU;K8!GTg7p9eOA<E0|>`KeIg zcv&o>5l7aKalD-0b34!>kihUO@CxY#cqWFkxO&4)y{8ZmUsC3x{5X0cD6)E{Xck<O zJRo|Jl=K>b@0MKGM}Cl*L$Vk7^kUQ?5b59)Gi0IBmG}<nC3yB(?bbb3$K)dXwmPk~ zR+n{dz{<ar3zi$a4(N+~G8|9N)QPS_MON=lC2)EhU5&z!UWTXMi2_MwqnAtJE4Xl} zH&e;G<y_LrqgSGMoL<G1%VudT{9Y}!ui@I|4NY@GaE%aL%LH8oJ5Ge6*GlQ@@Z@oz zFHRuiC6iu{;;i1A+LGiidUTyMdjp=VeHBrYN%Te`@3f0ChHt_*Fzl{Z)}uE|)3<Qb z?nIAB!?&U=q_=U+Qmi*NVd=?5xm6y$U7EdvD?2^Y=j<<!-ign;OGBh%ah75+bG}gy zkY-BPqu!-=;Th7qnO5&j@XT?dA*?*$(R)w>Jr9RGto=ystbzyf<80HT8&H?k7gMQ# z21xS^s7&ugnZDBU{pz-%A%u-cYqd?kH0aXAkmXm(L-anT=mKs9Q}P+#A4%w`npHNH zug;NuM>h)d9wb-U)m*`?aKe~JACS^+-(``Bjvqv!bq$gZ3}+%ho+-!?*n9}3`h3%& zoA^f;a?)^ChqFWau<%$Mbxlr!Zn_y|Bj{onh&)y&8UY^>!i;5<{g~{dOxC7%$67_H znRE-&SwmTU6*}6b91L&~CQam`PYVeHIKrWiflOb@YI|sCL4Fw+(8syBt!U<h3Hk(c z(wCZ?e+x&MDVv^Unm&CJ<%jfRqEqe%;{PdT#Mx+e!KY92M>nULIzc5j&7+NOMH%{X zNinEYbE)Hc^cj?63?eVoc1mtc{Mm@OXUZT>?t?an1S|A8p<Th9#m6b!=Q(8W!W4M< zZKy<Ehglt1cjC!K`aFLwGpB9LG8j{V7o+$EX5FT@;|{N6PtX^IrSvp>`k?LEzDx8a zDP2)0yT*Z>SuyN#&L|>Lm6KuV%c#6uKL(~&(n+A^JUK}*p|61GkiNil4$@bJS!8(C zGlL?mtd!|?DPD>|&V~C*TBn1wPP#+Ndl@|>HcKQNqw+Q3xhR@6b38=o>q6YaqoB@x zzagbd8hVVriDJDi@Jj=y(zp0`CT7KB=i3n{$-GHBneJq=E@?900j}@x_mW)E_Bc%g zzAhksSK4-AenDDI$)2X~F&PguBcGGh2>L!sMmqJL*-lD#F=3lNIt-QW=HDI3n(zbu z8vSQvMbi(N^%A6#@;-uxH<E&Ux(B6~>s?4xMdlJa!H-ao)qBKYYu)o>DP7Dyn9e)* zGQ-vJyfZa5HCUbTE!UBGr)VA=0<kwlKVhm>vjJ`xr9TD9q>P>(o||(uM1RJO=i5d4 zIsfRvaH;o<U!d?14sm6^GRvmSS3uska&Zbb{SqV?XK|Ow`0?mhC>*EznB@^NqHG6Q zQIbb*I^4rW`ZX#sZWkdN9&Qnp{U$2w7HHBr|F<a326=r&<0=;|-1l>%d6GI#zr*j4 zevfCLbuPACYjH?@k9C(U-E!~~=)JSD`lD6&57O+9c;ZsDkGJN35*FAqNfKA%u|=SF fC98@@e+KC|{RL0GoxK#X!(Z_c(%<k5@`L{eaGsxl literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/mergeBed.doctree b/docs/_build/doctrees/content/mergeBed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..8ec8c517faf720591cde0f35c99a9d0bb25530a2 GIT binary patch literal 19686 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 E0on0>2mk;8 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/overlap.doctree b/docs/_build/doctrees/content/overlap.doctree new file mode 100644 index 0000000000000000000000000000000000000000..bd3aaab28681af8373ae1a4d435b96d001a091a5 GIT binary patch literal 10450 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 C%S%cC literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/overview.doctree b/docs/_build/doctrees/content/overview.doctree new file mode 100644 index 0000000000000000000000000000000000000000..086d8f6e38074f08e8277338ad1e27e0489f5d9e GIT binary patch literal 110071 zcmeEP2b>$l^`;lmO9F%dOAEG<bUxd-QEeYK&S9UyK2VB-b$7axWSw*x>3lX}6G%dO zhZGXhJ87i%-h1zz^xoS)?f-q>%&b-`$ru9(B<G(`v%B-&yf<&&v^O(vuHI{OtTsB` zEL9rWYHh60Nbz;DP;I8_d(OS4zE@b^d(QBI)%;|kxnru(sP7Zj_nniQyT=}T^k)|Z zrOByEfzbJ8sa6g0)v+L7nW&jkvp88A4XU+fp^>fcw?20O5Ng{BW?QK+Q{R7mu1^Up z%=Rx1iiP}G!8C%rDFC@rn<<P1rD`xSKCbje@H$?qfb;?DbMrjff?z6NGKH~B0VE@k zU=ALq3Ko8DwtnFH+#H8-mJ)0<^QH+>KmwwrS*sQ@Bl$*QEL%^l&z<2ZEDL6kjZ$?Y zn68f2CZ|lH0hnMUKN-}fn^V)xZ2h1XLra74LcTeTEQr@&a=Ot3UqLfJk{K&hN|U7~ z2^_pWcd94QAIuc<&7cG>f?KY>aiUPIO%`ss`Z-GB{Q4p5b9)06VyGWFxMyyeM>{KM z77Kwg5=_+^U=f1%<jy%aXx0Qkx%lX8{jl}9b9@4pETwHpdd{s_inSS)1c>YiOo7=( z@fOC;uOGfXcY@M5E2xx43)KdSi{-s7U#jFsN|jP`N49>%`rO%$&?1$KmpI5>Suiy# z>8N146~d7=<J(5Z>qjBur@7=72lx_<)@o*~RLw)L#AdAUj$WVJ?DM!ZXiQH{)l4%O zuNg|WF$Ml8+}7)8VT>PGp!rH^qDnQkG64KYr8c_N0Z;*L;Wp~`Sf4vWL>32=$T!ua zQffdK?irKt{9v-C;vZ|)YL$i*393*mlng}Ln67{hiV32rj^)i*q)*4J&#mz}SQ1QJ zS(@_MSWa1{slsWBA?*d|bUhf&SE+4OBVbL5@%piz*Ch~JwP{Kt)6JSeeLQY`Zn>kg z5K)s;dBcqOOtSV-i<w-WB4RQ74<q=Ht>0^XZm~;YiH#beB3Ejt%B;P}-DF|1W_AQ~ zB#PR&l(JcxETCE*-^%AQR(WR5N=o&=#R!tIxtc23JO$fI`Ig*DRaL`#ug{$%W)?tP zlaqN+1wE&i$cB>6)=y~F)&&9EqDp>hiuvv%!)SpDqpI#+4B7gL>vLIO9t(qMC_E&R zDN-a<t74%t70jTigMfDUJY?%9t<Np>Shf!M6m2y{qp0%8L(J8}1X|8*g{Z2cbb|G{ z<1BtKJ`Dv?^I9RwXkn@efRk+nfzaxwpn@DK;C?9b=++5S14{i=2a%twpEkJX^zadl z>5)dW)I>X9t6niy7;n^159{|CJ`^S2C|og#rY%2#7WRzI^*M8r9YSMAqgj~rK&kp% zbPMys`kCk!On#<On>M3`dU|+|;r);r>QFt?kpd-KtETE%p!S9J`E!bZFJ_8-?+@z> z{QF+R`?>TMCevV3G+ix?qK`_|7v(NSru&8)D7C)4sh_pIZ@_h1jlPZIXcYka>eHoa zC134ZdEvk&*2F$^ZjC-x2JqSE`=hLBH0x(wdrf_DSYI+Syni!4!Tzqkba;R1M6Ft1 zHk`^gZ4H8$mWTDT=L{b(Ha$hSM*W=4!~2g`^5`EL^>a55AHb3@6!LkShxaaxHR|VY zu3s>GfTveqkssdIVy@g=Usc>cKRvt;nvz0&U~pd~>vB@Ru(;Ro0i(rIWej4iuiji= z(@{1k(+cEq5#+cwtlt-MR8KqPd)h$=xxcuuxVX4<cwYh6FD`=pb#sd6Y%ZR=xp>~@ z;`y74D>qLULAwZwMbKHF6#k~dc8mvx+SA?uiCq%bF9p#e>8za|$xn|I`&6nM!}=y) zs*Zu;GEyFHqg=mi_+GBgW@_V^sLp0oXX}^e!CF06JRwj1PWAlVZ%&apzJFMM0CVgs z|HhqE{s)4=jaCpvNnmpuA5H=hg$EUfb}88_AcHMoJx>{s#Qi0Mr1(%T@)IUMRZP`K z!1riaA0yw-gARMm^bI}60%%gk3W3R2CkkxGYEuQH(N#l@j%}+<jqL{7E;h}R`D$ru zx?(@5Psh;9w>jBh6NU>IhM*xFDPVNv+Q`zC80&E);Tm4sivtL)5<fSlF=ENq3oW?~ z9~kAMKF*??=qAF`eIXSg!n;EbODMu}Sl`MbWNt^h7NG=~s#j2alVQCIU^QS)rBJsh z;ChW>nd%~z^<FCVq;53XWKX5)1}Qhfdef$iWTxk^W}<%Din?<1@IIqx!Up%629uMl zrrSE20|HDHMpN|}q_#b*?}$>nvLm$v01QoQ76*@KiVdWQMq+=LME$|2%1q^|upUOK zJY*-SyttK05y&0+<S;)~e<+f?I;>w4CHb&UX<26K4^JjxYBQ<&BapzgVf~R&0*~sJ zz}1w`qdVk-R^RMM)gOa29vjvl7p3v|ZfRW0G@ejojeTNRe-eOm`=iDVW3GguZvDv+ z+GAadqU!LJ&O`<V=Q5F}qAJ8uuY<~6AJ(6SB#TVuiBh>d+h}oEe>#LuCZ7@3pBXWE zLudM#qL_S^n0$6vzmZHH1SSUxjZssYVy|0&4k$b$&ggSH6LO3`4~!<!pATkV5Y}Hv zW|`EpJ+nn{Spd&_qg?7Q!dLY%Eav))yOjS(Z49D+33Bz)u>P_rS1<2m#+Cmo<`h}j zH-+_AM$oV72K`dX_|<bHvDbw4*GAAccZ0r((65ukULV%q0N~u=kl4I=(I9YTVQk*K z`Wung*Tlv4rq0v`2G3+_Z%%4zqiJf@iB$b9;Qy^*{cRvpd?VY2w|AzIDZZX*yaS>? z7<|OJsJ|1ke^*$4x6M(e_*N_B{cQU6_r!}r*?(_Xe_xdS_je<v?0-Pn|6o}E5VOy@ z_@xC*UaJj1E^eT&XwDQ0=nH0Q0XnI^HLF+mUAAhq2KyL;ei+huZ(KSb=_KZ)^HJn% zcSw8;ng4iL{{)3cavzN67K&Gd&PhW)8P-1)W%|>dd}NB!kk42R`D|GKTm=33ZqT1( zd3-@4`eIoB5=C@~G=wIHO*N|?Uj|2?jSJu_ok<N0rkT`Ni`0X!h4rs9D_^D_e4`UM zQ~V-<zX@p_2x<|n`nMp5Z-@2oSf(?@uSp4torVA1u>QR$XSZ~tpqzbQIr~9a{~>d> zerJWBk6T%w1$L^ZSwAMS6Bu(CDF+mT3Zm$2{YMbZcjKb@aVIZMG(SOZ?*tBh3X%OR ztpA+yCO1Fmr8>U|>%WXd_Nz`do$CDBs?Kl1`fnrX-*toj1&i?a67V0w`X4D^R_b~4 zU}f-{^CvL$o49!X+?mqAV1_CEMVj;1u>OC{$)Bh>f9nL!6#qcrzeAQZvw2eWe?SWV z4D0{0EN6;;?V&hkk3IL;BQ$&B*XPdcrI+L!AyZ@q&EAM)9?d>N+}9#%*1M`!#oPn- zjg>3b#my?1$wPk@r}^8zAWbt2o;F;_G3{i&nKk<{%}klB#AIXkSK3KFta!`;1RlD5 zbPq%t*Ir{%2tsp^sHMw}8D_7C=9q(paEL{~Sa5l04%JJNSF1wiFh!zMH-`)Jh&bkv z-7(7~LV+K}kODs%523k-z$4Wvj6t>Xlk?`8dlD{FCWW{Vj}d&5v4O!X(>|8KXrRn- zcnHnC1e-1^DP-#SuDF>pIU)MJ89K#tjF=Pf4Kh6uL1<3GuhYOXN%T^}K+q>g(4c*a zUXpxgBC(u`c!}jS;ht`Bb7@q9mLA6YE@#D~@s0ZFb?-h*CsQT|aj~7D^pfPA*ya#; z=(f|E3p~hX9)i%EDGKSbV}RM{rEh5=WGsT!x2#^0{5gH=QzZ3mzA*dam<zgNmPv$# zx{x9DZ4n+qbC$r<xx;KzRv7DFpvG)5RBkarGi4Hq%WjEKlDrKJ_A&XT1g6R@!$WA6 z3pQO=QYiMbyW(cbWQOSHFth_z*uXq5=3IP+WY0qon)C7NwT@JJY25{aUJ*fq{7Stf zS<ghmS%r8BXF#|YT3p%JBdt5d*^f`L?Oik*r{;~7Fg7nV3u+Lfn5<dNbTegg6qn>0 zrJrQSN%A5B58Zy+Ymp9QcV7gd85G5I*)hay_R`9Wg|N;dSgl;Imn6SVD~A+Gt=u5Y zOX8T9cE>D}2+MsVLu%zFJcMRg;BBqo+KFvY$;$|rDU(86ke3TS$=JZ)e5RcvFjew? zcnHn?1)DA_Dd@xly5eTa<b>!CWEg7&!HC(6Z;<JO5QOFm{Ca&PiC+4+MbP;O8nj3B zlH@xRiDeY=63duy3l=wbDO*8<77r^WYu8)`^Kf&t7}#l{H6=CkTWLa?#Ck*t%XmSf znxASEYv{bkO>L6u*&6k`mNRR{Ni9<*pK;+%h-#8aC)^@|hwdznN=O}YE+YudR`HQ8 zJ2okjUb<Tm!lXs8x?9ytG8ayFYl@`qP6@Lf$28qB%OpYtX)vVjHt`UeX@UC|b(EH2 z7~nOtFxv>4DU(QC!ZSii@-{Ho&*ZlgnCiO&523kIu<5drf(kvjD{iJtW{7?jL))Up zcrhV9L$VJ+5SoYL*K07T^wQv~1$|8f4e}4uOOo|WB%FsMUcz~VaIdwvx$B|9)}~8i zrL2-;SOMX33)W$w+Av<xLh4!Ovp0LvjES{DDsceeHm0G}zW1L~$WEkTWv!0YW*X_B zu)S7g&>YRq4X`!>L%bHC^H``U7VHEkKKsp@N0Q%6nK_M@(4)k6GMlc19!=n(yKbHy z1O8Cfk3|rg$0;Z2vdbuorB^L_ybzvX5o|4bqF$16aJA@3iexQ%vM`?#$9!sc%rc2k zPp@OhT68@gLi03%`&y)S4CCNcHFg3|CupWjBJnbMhES5c4Gb<|^3NnNYtapO2+gwu zn=UIUsPVJA;%3TZhUhmkw6!S4i+K({L$c3B5Sr)V*ViIa=~auKFX$IU&>;Upy(C%B zM8bIy;w79H3-=`!H&@bVc$#b5jY568fK|j+jo~t8)c*VJ0+|LD&h1tQtcN!Pnv_f9 zSX027c&V+1wD%EMGBz(I6PYsEkBj|fVkXJE6Z^{vJoIm7^c5hAQn?91XkIDy(q+dz z1=vg9UnPWBTLi1`uhB~~b57r1t4Qkm&BA<L9P{<vG0P-Ejd}w^>iZk<5Slj$Je^Bv z9FAp5JL`Khp)zHrAD8)C1f67SU~nN*ek*~g>TknCXx=W^bXiG3*WS?;H&Z4bM1Lp4 zq1=98#Ij-Dg)fljyAg!uJ^1xnP6EBO{JnyHUjz-x@7GI`>r5n)4<KG5`Jiw=WN~ww zz{!d#T5P*B#7^(Hhe7M}qu7mu5e-;{iK<Y+#vg6?K@ZU~cnYv>%)?Db=EJ0yDU;K< za6cltNj9BuKT6=CJCCQ2A$`dD;|N0Y32~AxJ4Pv%Ub_29A$-arSl#`!UXuB6y89VL zQg=Tq%+JL!Ki?g*Od?c~FEFI;ei09$`I5lx>cqTx)#=fS9qoLXV3{%r#O3=HfhYMI z7+l1pze->#@7M4Uny(8sT~<<1p>K4>&6LRq(Z9*iuE;n(%(w6f68$!U(0m8KUVBNQ zm-c>F(BF%oLHZWGB-zeHLis-8C6pfs_lFi&^S2GAX19)U^_6@TYE3Q#yWI*L+-PlJ zTOK=#FuKVH<9X~LlFilpi0Nj^<R~u1A1nPNJ5Gu}A+Vi0-Y(idMLLk(&k%&>=c1S{ zJBFCeUfTEzA^g%JSZ(~3UXuJeZTz(&sg1u8=5OPezw3@!CJ~nT?-^1X|A2?k{88ZP z+&$Ei+I?^sH^fHae<DJrOj2=){#l4g4hII$B9Xrkn0onFJcQ=|1e-1^DJaL^y5eTa zWQpj1XE>z&WgQ%ue;^W4{wIRa{0qNcLrJTbhVHQ!q4&hEg$5IQ=_Q$gOeCni5iddQ zBiwy0Zf*kv<!6%xY<a@CI3E<T^R0%B4U;nKuDNu@hKpp`%?GDo(}LRAQ@Dqa`|zN? zZo8o$uEXX_TCn*t&>oc{7gEjsqM2mT$@l;Q58XNZ9Eh|b;}ineg2e@F!6cX|QyjfC z`CuU&ViBw+AF7vR9-Jm0rbue?;ley3j(KEv%rc2kOO9elO+FeAumuY|ojX#Rj2%+7 zDjL=`+-=gJMVQdA2s4O@_!wa&*&7&KObW*mm}-0+9$*m`EG)wOjN&<7?@3%(gc%R? zdovu;wzPJ3%n68rd{0CGyD)ye4wFzX9S#J2as&+yPSHyz2VO*{B3>doO}M99+}s3p zxHdV030|W$>h;n(Uo9z{R@msU$q=Ry3?JAeW49%@CDT^ob+^w>4c*?!1}2cL1=C_- zGHdQb7GP3l5R>~EVkODBllvS35B*!&oC}gDk$DJUjTUpTMw5?BnZoO(@o6DsEP~be ztX`5?a~j{LNNW6iVfM!{7j(xglL!@RAwz2XB0RtvEpR{U%ez6J9Zf7ID6G*8Vq#w+ zlq7EhgG-qFQUX)mm*D}{Xu-l7&CgJ_v-O_Dg*BS-KtG3}o%O|dG3VklBzqnLSflal zb)8gt>G}nNUJ*fq{7SualJ~+{g?I^PK)4rL+}wH4_11XUSwgsgAFb2ckum!`?1ObC zKkOvK-dVQp4cMcZGVIX|VzOK#3Q2~XEH5JP&>ca2EmDH~?u!5xY0-p5n#pI%%xW*q zyjTe9EP~a{^?FHi>@;&ok<`o$!n`Dod1-gdGKsM4H!`GVZo&gB(gOEmTy5-Hxq}92 zg25ooASTJn1)k(<U~nmu&Jmbec|SbBAT3xJr1=?Y@c_Liabb{VJkTG=(2j8(A7(Q? zL81>r0DClky+)EkFOA$H=zIhX(j$85B<+PVig*cSOt=M$t9|?fJWnu+DcV>zSdXoU zZm%I4*&22ljBbSu6c%RU!@|rUCanpjlO*e;RV47xuG1(19<nGSfX!Gb!)DAxGG(&e zOS>vUn6wC1yQ+Fg^5wLvrbuenlrZaYOw%2+Od>49219CB6A!Q%3*2j$tGLjvZ3Kh8 zm_bZlGXhWYH88l0NpB}GwQC0+U@sOd?8W?yB7U&mlen-KGal$yF|^v{_%I<pL81>q z09!GBy>^j8FYUTo(APxJApJ1CbdvT$c{t)Flt&2nT8o<-LVM@;Fxd&z<OqhK7<F={ z-_Sl5>~6w#THD|SBYiX4+Z0)aVGAH)13S8Lq@xN&d?ZQ1%*!Aq*hh(El0zrhM-zDH zPGRRUNE#A;ECN_)#RM$0q?ajE7`=4%@j`flMX);iM7<=l;B@v$ilojyS(s0WV?MPz zW|>5&8P_qS&R&lPSZD>F)?jenJiDi919nl-Kubs%Xc@$$`wU?uSsNH!&eWetV5;p6 zcz}UcurSc_Gj!+KdQalQK+AZb-^g%C=Cc+n<~jHZxjq*G?6dgwnoA<RH23*}enA8c z>MztwCv`8H7a?Avd9iR`VsUc|VwxNE#_`>EWYryX<7$SC1X=S^rUpYRgP8bUrc{$m zIPtxlz(c!B@fE;^oNht@i>c_qV#*{lWoD_D{=G^FueJzQ|6Ze)B$rPAUaLsz-_62& zT^#fE-7(7~!XkbHL+alf@c@gdz`g#BR%&Pqns%u8W<tVh${;4dw+JK2+Q8u1O#Q6{ zrvAMR53rgF7FJV!h6cPt?@3%(O&JgLcQUm4*J8!I3tu7EcO!u16u(~oNTiqky;soh zi=aXM{d(!7?nUzf#7i_E6z+#CZtjAZ{;>gcocZN4?pP?~v2v`P$=2|cw324chnY64 zqzq!h{D^2IS#rYsD1nFW82TSWT9Dz#5x^oUs<4QXK&H&>_R`Hy3gJ^0!RqFx^^)Y- z>E>q?N!|RcFh3W^{Cs!JGKsMGzrc{X`9(ayA}Vk{kHHD8rpb>w<@_>1VHIT%ljm22 zlH_e*@Ej)pRRU8vzlH}`MFk71C_h6zzM=OdF07)A2l_V|+IdWj7xOKAhGf5u0G3hw zdhH~YUfTIxL4PlT2Kig`(n;P6=lh74aDE`%A6nepT50Db8b-SSOj{C69PG()<k1^M z(R16Aw5|cgVZmTz2O#V;-SzQV^CJ?0nUq0HtUng9ByUcvKOykY9n8p2ktn44GX$`i ziaczlq?9RB0KN3}7ee@@MX>t%E4?I{cl!EkMN(gXBh25%F@M(`vrHn?h~G1$zWxCZ zu$c<n?}fI@=e8;R69Hi>We^kVpM{X*Y+&$QCjJ)!Q(OOv2iQsl3tK5aLtXx+_arWC zrHlvq-x=DS(h(=-ANUBV{u2Rgr1<r^N*cX%b&tIXy(fMxG>Gq|mrmkdFnc3jg4sv7 z`&!(cZ)EoS=;KrH*fLa}$4d>4irei6HczmSk`gSW3}TYqUlfxJI>{bD;9J>Ny?fjo zh?F7U6av^s#RKf4BnSH_f?isCun-Qh2v%zk)k`u5PHPWSB(?T%VIC33JhD4xnM9}= zM=_+<9*qasM+NS8iA@%a-)3`9!of1iAST*l1fOJVVDLPqeJp{gw8!BAmQlgNGRn`; zo8$GK#D!&)@j$;fL%U1NGh$A_H^}rv1h9$X*Xt}v^wQZt&?iUGpnZy7I%#{coQimf z<uu`*ZgDjhTt}fqM?Z8VI+_(Ftf6)b4a}QN4dzV-G2xw|RFh0N;mski9ewTw#ks(S zoaP~brBZZYsbrF{R3hl5dubtLEP~a&tX`5_I^FA2Bz14TF#F?}3%X;LNrVNwkRf$% z5guTv6nI)II`ihySZtkTI9nxwVXI^ili?B}CAk|IJf8%X5||3O3=gnX3Kq6Xeufg9 zt@k7@Y?X`$`Z)}Tbeg4&8*?rqAl>s2z*>o4uZ5)3OA9X$^oj@?46M{kCj(wUs}L^% z4G8x_i<`SBHU_0X0N<}S=s^VgPheQJJvs-dG2IOE9Xn89w<HbNEg8h*x<<5;tU0+} zMBt%2mXEba6EeLo0$4Cb9TrRyf&~*nFO9ue2<t3@)!6lVN%HPAc1V%b*bTzGB#wD$ zcg!-0P$M=nq{eQ-11y*V_b1}Cz`PoJL9N1GMp&3J8N>v8xp0!q4Gdnu^y$My3VT01 zz>Fzam@)Yo`tkt1CvjoMWIWIx$j}~)i!)<3<2z*gAOx^w;@9gd$@J3KErQNR(4aq} zmrnX#Jfn!0c*cZVu(-Ju&{w}2x_ZUNO)H|URk1F;rNmmT@0>J^GjSL?8N}o{AtFhh zoIHyJ9=d}VC?PROv5Wv#P?3cdloVhEMbJw_D?*sG2v$R@dPy?vG_<BjYUq?O>v2re z9kWa#RDlLVYG@M=u!0IaojV#uFmK*uzOi*Rw?VYDbQ|Ge4rLIN>WuJ`3=RygAdT$= zX0y5j4={%c7UocXhL${7?@3&kLm3bBs~8UH7-^Cr6Cw^Weh32CMe*x3m85!U>eYh2 zCV~bJ57SF04_-_UN4&)J2;p99adkdr9fX99e1X+e+K*b>pJ-8v`P6~Ylj*?d$si`a zM=8A|c_+R{6WE@GxlObl13bv)u?S$%6a`o`nHVgZ2zu$?<Av}9i(vKdiF!%$=k)JM zilqKMS(s0WV?MPzW|>4-xYseH{#}m;STqIhElQ2z^!RwiZQOo3Az{&E5EI=qgpp)z zU~nZ<e<p#cc{ktz7EQszqRG!F^=Ioni3^J+<AHu7Lu*lLv0|QsuaN6=5x}B}U$1i{ z(o5%_FX$IU(4hW8y>wFdqInVGC7Krt_azoLcP@K#?9r}GR(1r~2r@a%GYIUuv4PaN zvf%t(o3o{k`AHm?#s|AY1jbFI1WA&mxFlbO_s-*wPLeMt@X#GV{1r$D(z^)(?3^MA zJ10|zofAPXt$dXbUTqPqR=!3r9Rk#OWb;}@QY&v3=Ii2^ukVgoCJ`3=8yHe6--rj; zIR)<5h8mUHlrwS?3`R}{F_nCaz>|Cp46b6*ZzV8Q@@;s4kyEfRa`H2j;vITV;=;(u zc%Z+Np<Nqte3*CP6D0a>1h8=8*XtuG^wP)o3i^E!G)TW+FP)^lP(FZo3FU*r{gB0# zL$VcPW$XcMSW_k&J!{USkqA4Kuq_%sj>fR<F1~7H7mZ-tWU?@BGKdNBBT7EWjT7QW z2|RSWNq-E<Kyn{P0K29L!mi1*Vb?^^OBX*Wgil!ntBar3OOjpJLViY()Wy#V^K)^` z&v(ZxlL$-v3k<1?U&I6KngaJT?s52E+G>^Y%Y=hblR-?5UlDwgv4Oz>ru|g{QyIU8 z2N*R43!^4KLnFSS_arWinv4hfHyPR)w`atB3*R8qZzF(36Te;?NurlFepk@ni=aXK z7QJ-R_G0-y;w6?J2=|8;H@7l2b`($CSJWCSa!0=G?QWXW%i{hcrVdjkgP1UXEGkK+ zoG^bv;GsK;gP$Tb$nj?gV8aw$*f2=~HcSM)bn_QN_@za#y7?=;B)N9F`D;Z|H-96{ z-^MY2*B!G=B2<9iGo)_*0S~ZY3Os5jVNABF`6q(Gg2^Bz%|8n~$=AT(g-rS{1g2{K z6%Vjr3KkYjeujGdP47uuSTGq6^uIH7?WE<y`~#mL(SIU<{Sv=kGfAPBX6~^Mq4&hE zg$C)p^wLS%3uSM_ODOvYcVCN}TLsPB2v#^&WD{veiaUbQBBp?8cHq^7-^pw+gs&!; z$?pIX932)a6&Nj<JdBnMV#3^CWRhGtVIDx>p*xI)1CbmgnL+?dr3k}PNgA+JBIu=? z2Mgg4i(qy0P`xDCcDi|(BB`5)3-gFL=8@eo%OpY#IEo>4^JqN4QYmoXZek0<)`nHi zdlC+oN(M1`9wYc9V*`V$nf9>+rg9#K2Uscv3ri(GLqm?&dlDCxO2z~I-VANK=@~I6 z;2UImA_7<{@$0pdBzkFQAn21LXwW`IFP*f#SWZQ}#B!Q&Pq(<*Q|9N~So*nW)4GeT zhGHlw9=TG<LFVwPjjQNiA|JS8A0u#31milamP{E|O9nAPo*@cJhMXYh5ZLZ$yPeeM zA|=Rg9s*b}MH3cGCJzfHf-X8q_e%RV={d=y1;G#dS(jlZ<8cb`g9A^BCW{ZD>BFxp z8SnZ}p7+drMZ~gc`tfD>=$Mnq3=SK}$)s6;C_3LW3-M4qS^oDnI45Riky3&SK64hH zLbF)!>Bw#6>TYf;%@U@RDU(YleLCVZONAU`%lYDqs4XMH(5)oC96%86*$6^&j*?85 z9Yr!J;Yv#93gkQsf-2s|5nU9T^A#84$XtLg!)MW5Zw4+dGj^Ji@rK9@<~kYp%~c#U za7QNQH`lBHt|Yk<55>bJ$&Fr;t3-;D9Kcg(F4TKE=B)Q}u55y+-#zb%>JV&CXT4@M ziDk;nY+TrDlzuF0PS_Dc7ZJf83hB?nJ#(;|^w%OCl*fG$!1yVuFn%&|7(Wr%@?hh4 zu|U>YkQ@(nY(jrCJyC?0Wz=VQmBp^q>3jtzc6pi$)?qqOm~J!z<{ovPep%67$-yVz zBX@|{xNSFRJ4eNht$_ymSU=WQFn1mSK3%;~>Dx9~BS*|FGqdxpi)tb-ruj-xux9*5 zz>~yTxaBQiNBLYEHcO*$=33bS=eJW}e$oM@Hm=`*L&j^@4_tULLNrhC;Wa%9r&~yG z8~pF)aX=GEAi}O$yS>EXRjb>@Jlw>N&?Oi1&xLMGSO7kXBy?JHhgT7I%#-6v?fpb% zjgNC}p^L}{YjKchY)nq1#Xnq7cjVkPqe+fZT7VxbZ7YqTcmnu<CLQ{V&YMw=3hZKL zB&Eq6u;y<oR3t8fx@^zQn)OyOV%n;MAVX4$PHo-ftIr1F4b3Xe|D@7fg2G1=b18z* zY?P{`%TANnsI;1xO#&IVAh|7SVq^nFT^%jLIqN9gKjSP@X;kfkw?p}g;QgW7fpD$C zIs)}=jONG3YZX+&DqO0Uutkca4?k@~tAeV41AGlMDjGb?=qj5+8%D}wI8W(wO4&kI zNg)Y+Ljq_Sm^k;cCQ|U&@}%B|i!Uuqv^Mmb(3RD~cH|w^RD?nFOrSA?c+B7rw24ak zbXv@<H}Q;?u%{M|7U;%)3QpEX=?FDzE`zY!`ybWl%T)%QH9F^ObdGpKvt^W2r#qvJ z?gv?;0^J`0R^n7LSeau1U;z$6s{%bxAe${n?qXMgxQRsG-RZCxre1W!@Dne8Zq~s} zGz?N#l;~DDrlB5jra5P&9ij&pZii>?Mv2af2lCDQTxlLX3(i5WjMJHwV71+X5UduR zxt?COH3XQ!L=-nrOyHJ)3b^7e4oH+EgPEGy3U?o)mFWh2t}~9#+ubn0RU}-1A>XMZ z$P2*Ghk7P$&e8$A=m(`{Py`uu$2iddV<J+6lWf#E;DHo6!ATq+Z;%M7`qSm<fVp9P zYB|$153({(c7In$-kp`@0lu<qA>PnzdEC+Ek%wGSF-8!CW>lq+F1tcvRcKX=F@Y2; zNbc>Z7#FfJrP{=YOEl_HjjXDvlhIKtdDg(%h#O)S@{JM{25xDp(M<}fAJiA<P0FgE zb<f1~G}T4TV2|Xg&@ETr&|u5GNgltWkIxC_6r0Vd<$ZmYhwSudV>DYBo9-K(C}nUY zvadKHl*aiOGlRLYbJh3EWk(=)P^5=+S58;91_O>m_HF2oCJIsN#R<=ScC=AwQSo0J z*<y3DGB+{sMB1qfaiPd0D}H-^bp9PzC7^q;C;c=c#)>*!@~qhepQCCB7;xmj!+I-$ zOnrW5W@fUytORLiYi6RaR2{GNjiGVr8*fhGZLF}}^3<if8dt$~*1!k(8aN?<q1>}z zI=kzZyeWcBD0B%yXv*R_eHZ5$rNPS8=|~zED`4saGeyd51psD{6=iGEW$P>y#crv( zsUii=|7%QXcs~%DHl?z@wtHfSr*kn!OW72WhH|@4wT=W(HU>dx8YFFf%a@rgv^22z z92n)<H1!b#c>~ifS57kxG!WT_AT%@h1(Dm9L{uJSC-v=0YlllK(~|nGH38;IU{cx- zW(twC^|iOOuOiY=?zU44fd~OS1Oc{Tkff6`vmq&$BheNp+J8q2Wv;edT_dg@X1U7! z+sJnm>BGgxBOD*}+3hOQuC}4(THvx!AIUVLLe<yah59HWSs&rImENO)ieh~Xg3vsc zL|w5mD~V!7=e);U06$K^kGH@%eT^gmQ>wS7K0#nlv|wHBgilgjtamU^#+Tuf{UHR5 z0y0|Ib2ke`21D}{z{w`~R6G<<ludBV_bJyYS=t1z#}js(=sg|XeYPMNvS%1~dU=s~ zI+M<nnT@yw@EJ-i#<a5lM&zGKgrVC??FL{$w$DO<T`Qu2T`Wurn^h3BhD<jK<T(~3 z_eT`UCd?!3sKn2n*?Y5zN2iVfx>`S4yD+ZCpc{h_KUU}bR<rX)zNBa;dJbA5$p@IB zVt|2>0jBye1vY~U23qh)f?2C3)EG=~%u}moQ!s~doHJgU;8kwAFC`sKIaajNZ0PbJ z9h~<Ql9kcSV62AW2RE)pEO_WBsa09?Tq~Sd`DljxJPD?=d<tGYo=?1?|6#$s00Mxj zy%0fYUL<j)%TAh9u9m93SRgO4Ai3kAYV+o88X6c{9!yp8qfs%#R$0J-)RzLTy~3zK zUMBR;0x9|ec{%a8)b<KIgytr}W5*CbqbYo)-jn#)O2l{!AYR3AD0d7iLU-QGs{w)> zzXm~QUW;Gf%8{a4Id>a?Z@X?5<m+OPSv<RDKx-VYS6qxM^9FnwKEoQ!*>d?hh9)e- zmEcT1gIR%n95HVMv|6w?G2wfu1*>?8yjh8}1$zsgLi1L=r(>7St=j3Ob1OKl;G9P* z(42JOL)N^Fq_CNZfnC1S0@B-+dMqohMT^*Z2N8yDFZFjK6%@j|5QOI4qM0r`mYB_! z+Pz00@3kN~`sCV#HU*v!wv}q|L+b7ng9p=6VI0#vv=XK^HjV2Dv1A!rjH9)U6G^Pe zZG(Y<r`}{?L38DoJF>w>=bMqH4*98x;?R(xsk7x7nI$pR#N}t0PJtNGp#=x437D^r z;-*CUyR(fgTUs`cl0TYUrwd@c$>ujIAGVe5h#hy8c0#J)a03;rgIdVJb!^PA8d<fD z*mtEv`V>wRIdH}m_&BS{!cu}^($wga7+53^lDJkdn_9sMAxtiL9;!&QjVHr1SVplO zMWt5Ts!1UiUV=Hw$%?sFD884FQAX}x9l%Piz%ZHGH0-)uSc;l(EX8}qVf1zGfH2{N zRciV2cCA#i@jexQr&dn-O7eaHKr88NZdN`1tJTAN07Z?a<AVr7^C2lldbZ$sGu?l8 zyMShaeSvz0<P}l4LyY$9D|Asn%6u4b=r2Da75S)B5zg`38lYRQz7C$rs#A?D&C_@r zvEHls+SUdQAJUe-`502<VC3UWdHBHXla=K-RW({LpTLLV19Z!;!K~twgiFrU1_q~m zqxC7qTjRqnGiE*wB&h#q5QOHl`1QjV=C;*seopb9xAD1aIUeH3%&xwnqk`cc-oNdF zICuI$cg%F9usrCWi(Lw|@S`{Ky_4E|Y8N`o=%x?5hz5{M9+%{BkWo{D_Fh(N@uzE| z)tElGo@M!R^969!CS2>K@QY%!vw=5WR$n6CQ0@_Tk&KuxgC7*bR}h5etN2AR+-10f zfLZ?1hO(;+UlXTacbqQjRvA!?_LiZ-*ro6Xk9vU*JE<3CUlG2+RLj)<au1zv`f~gx zfKZOROW%A8_>lXz5n#VDe!coLe=YU@uHwIE<8wvib_GVj3+752?IoQvst+}ep*Tv> z^~cfJ%xiqLP{0~gOVvv;Jx7J$5HhLZw}5CD4gbD)>D2ITUNS!*o^@FGZ{pSb5F{bY zA0Y_MkHuhG9uxmf3_wgQs5U+QiJ1ARV}^G(`_tW2#S(_pQ&_ZAo82bmNEv@d)SW8h zb}#au0~8|PDG~Dv06|E<L=c)^F>z-VBd22BPZWPGkl(~Wk`u+>DlVo3=6Coqya=sj z#_m|qwzt;Z?wTbsmOBy@2VJ$-zMJ0zRkOxF;GuY=W{p?*to>1xIBWb9o<j3yy{BXM z$#bdL?UJA+r$tkfMaF6u1mhx_S@Rdt%9NSa__Xn_N<Nk`H*Jjg`9C7qBOKfcw}>;V z-5~!rB!j~EJA%;sLqyYM#}hN!Y61Q!kbhZ_+@bJU;pcg*wFVO&WQ@B{c#XPda^sp1 z;t&hFK5W8PC<#d-kOn7L<lE2Yl}5BK&!(V#1{tSl&usNtV^sf-CH8=8X|kimCaR!1 zX>XSyXO<&>y+APEYJ*s0G}(+I`)%a%z^~sW*DF`AxTFt%be6NVajFga=hAX#XQEhc zAHxp2C?nz%0~|~t-2g%CuvNrex6_l@0LO)V&a`=ldZR#pTX1bW!7Xf<LvwSFbuJSV zTQn8Kw70D_we4<eh8UAQ+X3#5<4p{ae_06*Gkfi^w_A()&(=O0&gaQ+KW4~;(kwHk z#F}O9u`erkrxJ(0Qtc^#q1->vDn%msU(_bE7bJmtxHp2(>?5(HXT^esk<HHZh+o#* zSMu4<$%j|z^;k^pS`W?sK;%T@045ME0O@OTT45>E1bQHm?D^r_L@Wh76zM?-LUS-F zx_*wCK)YI8+FI260dn%c&`Ov?tWXY>P!6*~$^Eb7K2m24aQrmla7p3_CyA4w2WV{j zgCLlXKmFqiY@Mdjyn-!l+h8FYq#elwb~;GA+BdpK0TlYY3#81^0EG(Q13_r+NfJ(l z$#rXJaE#)Qweh)iuo+%nME|g(HXTf&r@{$=#@6#;Pr+<?Y#VH#+>(Pn81DHEJGQ9z z*Q}WX1<V9wAI6kIt6x*o+O)(Dr&6d+*o(Dbj<&n)tW|UpCurdp9R^pdr8#$X>Y{A_ z9_<oBf1V94=hU6aB|3lCzo%1-8_icnafz^O+t%hff~`c23bRz%F&DcFkqAxLmBMzn zKXndLw*$|)XZB;2ep7K8y}i$9th;3fkxOP4Ylkqe+y0-aP2-jr*by*x8JRX?g=*Fu z2g$Y-yPf0TO9JogULWR5`gr0E%@&9X`Hn1*dqc3O7bhSH&50_8blH^>D?{5X<|IJ{ z7OLw~{mF`p6{I-@UxrVf7$1*jG0-dMR&vU6D&RC_ISmiRl%_0?^2L9;lI4`;K6nbv z8G29W=Ae<`oZ&3(_LOkATrt*lelmv%XUfb(e10-lX~kG}^OK19JR%I;Hd<!_2VzYl z2u(&5(q+d0v(RdBvI6O|Ai4XX#lZ-hi$?})=XPYuovd#69Y&Omz*TKPVF-@hxAgkJ zZFwUYn8%s|%7K+XKJ0JA_V1$7=4UjA<GMZHfRK0R_lfA|3WymU6{(2|R)mr>05*<e zwJJ75HUk<(v@O>+Tm7v~jqMGTHfI9WsOX}GllcH`+#%(*5rZ%`{&L%|-`cAKNLe!< zB5N;Bjnw-k$<E?@wAZBt#2cEG^sY;KAtVN6UW5R?)+FC_*@>U(+tx-b7Ss|8)wPXS zs<>DQnPvDge8RTTah!{cR61eOSPmGq4`<_{c(mGwC-^cwM@h1MI2TW$IZyBD+-a_T zSgc*(vBWh!kJ&EHXQG)hnUA*(7bu+=tFCQ`2(KW5^@q=P=vL{h1Uy8!3PETFlzO`C zh?DhJyKtdER$GwV-;j|_sFK>uZa3ogY6`LemTX~;N2?K^o!><&yE0%0JGRl<waUH* za%e9fRrZS{p3d@lqF0Qy#2fmb7vFs$2B_U2g3w$np{2`Crc|`H8oW+W>n&8*8a$-9 znApt*d>M9oRx+hV#%`<UuDn`ivVh^`jtoz*WNPCX6nKV)HFF7YRHHA&L-Bak=<9sJ zZ4?RC=uLQn!#usGbBkS#UJ|V4PKcEpU`KoS(Pvm<!5p2JaVMxq4Tm2uBbiK@*^Afl z%aw90Gp>$DtmKF=bbBb@4=F(W_eX#OK%$2OKui_~fDp85{R0KE*@EQgDxWKE1*{la zUlHv4G*Cysjd3<s>$n`DzSMW2(TW83gxH-WU1fxk09;PA4K$LAdQ+x`;XF?p@uCKL zdREABg4^#hW_x9nsh`52R_jvhYzplab`)}E!Ez~8OOv=>*cZ@r15+nE-N9AZ+y&w` zodk_Z?6E<9ec?rUg!zzkRw_^Mhyjio`AP|PKEH@)XIpkAgQLE<E{drDW`g^0qFY&c zqp@Q%pTe<T>~e1g1M6GP1u+ECPD#x2T4y1$b`Fctj|NMln7~?5cciZsqB&@SHA`~m zrzSB!($QibydqnZIAX0uRy_N%3+6C~5u-|Zl7`H==@gDWLg5(?OKqGpTgE!E-A14Z zxi(N%ZQ7yj*0BuWfEBc3ri3jx$TP~o3fYPX5?5YUL?&dCMo;3tugsbUSuKuLDmBbk zNP{~o)%Cu9Zz0~$tcIgFTeWyr!|#F`o`<HQ@g6~dLu%4%98#nDX3A`?+xpHiK@}`i z*S>RHaj}|VCh%qWRM!Nk4{c;<0?Le_qs))MS9t|ZC$`&}A|TacmhezKSUu*meT^zB zVfL6?@f4bh-qZ3-$+79uXj8Q9GUk!SJgmszy51O(teIruIC#S#w*9lJ^kR&=ellX9 zCV(M%4DCkHOaTCrtRo1G5w!I$+7-G10I<Q#bRJGBOitlkXsMAhO~fP5(+EPd4Zkq# z>Aqx}KQn_*G?Z^wRFZw0K5gSW2sf02jeZXb#$1VaF#BKxp}9)PX%#3bq0Dhy=m5`! z3H1%=ydAQONFRcDB=%4Qp}88rWU>eBHHeP#&GlnC?|7InAMP-3)NBClHvYpY1sBj7 zh01uQupRrYVGrQOO>EU+e_`8q%;fE1U$pV)UE$9|U6Y0m_yir$E~S>L$q9&hlQG;$ z?#|lMe;=;Mp}xT9gjGtcmfDG=DHLG;%kzrH<>nDK4>1)|uW+sSPnN;J;Ei5~A4$BS z++99@j{=`4&qpH&&100SblGK^MWr?&xf87buZP%*hKhVe1$%*0=COc8**;FGJl>`v z6>G_D_^<?)c>>_5&rc-$@O};WMJ;VNPr}>qp4n(i+3<c?0%gRL8L>z4+|8)1P*||g z+yPgiPvPhN;E`dZG-{rTm+9ib;B$R3T!#;HlI)Y`E6@y0rp)z-2jfpe5SphG80t)a zdl*q#C804K)9aR+1SD(6OKwz25RS~L#C~)*mNm~na!`K?#kM}f2S$|5Gx-&nzd<xR z6luNBz_SR)dh={Ngyu$pr^_yF^6gqSspWGN-H{sPfp+1!1h&5X?tt7q52-<Mo{u0j zFA&{`E%GYG$zx5$iTH&Ae31o|YpzZ4##+NOjK@$ZWx|Ksh^o#bqf*;d`r-9!a{<;I zuuZX4z-5y!MpA9!Eqj^1L_|8I5XtnV#H37LhKJC+T;S=lOOTAlW%>$5cceD>Jj(PY z0$X2Sw=+AhL`sn7s}O|d)uI`(L_U-9e2oBKYXNhwgUZUds)mq<!`-fZ+Z=LSjG;0% zE;O5_gdOvoS#T!<tf-r4Fx83)JaKrpyD-UUHHbStTWzT?B%DZK1h2%!`VL!dJ3C?z zjFyx8>2*$B-W0~Lm#GTlE~}9S{p1Xe53;H5rFXNk)FJPv^j?Q}mEP+mfj2k_+<Z5b zfO#YHk}0z+<0|(i<*7pigU_eRy_vv6xw~b4-vZvD<Znd~nzt#J>9P|7i_<GP1`B?_ z+1myC4h!3L9Qsbh#iV84g)hU)p?w&5j%g!gMq`E62_+bFFeaTU;o7Inwo;xeI@Phf z8H1e%YklV3NI=8W_u!#;Zw*gh?3?8GiXMlj@52*(4C_6eTLTT`_-|RT0xrj*tuvzB znitza3hWaiPQwQ1bIDWm?GDYX`2gu=%FMh|3>{qhph(5C>PD^+ZyzGU&>hOkhmj=8 z>>~(5^HDL7E<64x0F{|4<i`Z^aSM{$Y8QZb<OWWUaG!fLVq<rT7qmINSUYyFws*-! zvrM-}AJPF{Yl&A47I(Evn6&6v*GUk0FZrje{HO9V2H^#**JQUMfK|qAnsxITYe1m! z1I=6uKkq4ZON5pqw#03xv0!{^V-U?R_@L3KfJPc4U}veo`jMViG8%boG|`G`Ypw}S z$(+)*iA-C)V%nn7z$a7^o!atJugRYT0JNn%TT-&|{d-Evd<s%Wh59st(0oQ^l%6ev zX$%PdZM6kWD;p~{U4GNgXH_1bbLBCC#vH?;*3p@(*!W;eEmm+>VtixI)v!kLF?OgX zb*osJ1V&psA8j7`JQ>;P=AoN>HU0uXQH}qNESoQaBy{*o2txB^vg$S=QHre|;VX*& zs*TTm7BYp=x#c~wtr^tjBDYt_&(GOYOycaR?G|lwD8q85q?frE*P^XQV~z<ansV;C zWe1L#SPI>XHZswM-`>5t<NW~=nZm>oyQ9(Qq7{a59X9^<vkrEm*V>)S2?~t|+w$1- z)a=^qeofi!Y<6Gm%j@d^KzV)UzfT<I8^{{;;+qIU^DPM?{oj~T)LH6wTLbcKW%@fV z(@Q%WkcM^I&gx%+N}}yZHWm(|dyDX0ro7V@;byO4-vcN#?Dp_rZb2F-%I_lx%@0W1 zRdME18TUi<9}470F_7eukRK~9Rwc|&@MU<BR#KxeI{og!P+TmO4E!NCrYp@x1_O0p zc{6bD%fb0ifvUmz&+t$@MuYP=`JDe;lsGv51)f6lOTEY3BhL@kVfoe%+AuLDQH}z! zh2Ig?aLf<LEzzv`6^Uia%xio^{%fTl%b6RIM-2Uj2r>7_yG#GKNC(C7I|QNmy{M+k zjwxof)#&~~Ab+$Vxd&lzx5?W|@9dFxN{iLe)Cb2GH1L;jtsuL|Htj9HIy!-|ZeFJu ztS<+w^0m(CYoHtzSkOu_j$xN#X#$}U0|gt%a)bf2M$>5EVfmF`W{#yBJ0?f45RKUL z_zLP{7>n1ksmq}kGVI~CT^H=qCR`Qgp`mlt1;n&MBkw;+_?=quX0N7y1^~2T^K9YV zxrJl?0zsqN{1pK%+)%NkXT^SJ*9kO~Y=zpo$G@ov{_ct(MEBTbK;8YIdP>{x`{&Qc z|3E>1U>XY+E?jihA{)2B#wlRjqD70BEM02j7TP!kj9a|uEJU`o<<Y47A7pQ*eeBzP z75*ncQHB5G88QC?BT(@@_M?jLiC^DQQ{t^|VK2q+ZR2xCLH@BO4*T|DImXfTeGuO! z8oRB1U!iq2Xz%gT*pGO2)vz;Jvp-_N;sFRkbD+|)tA?GhAWlx(R3|08gB;$=Z;R># z=h-P-shXAB7WzF%wT4}7pZ{%Ib})0YQ!RU+m+K(_g<S7Wc{YcFXO#9~2tso>^Xf*9 zEJqcrA2}W&kRxLt$&uqxii;_pIT~Mv@1dJDustsyU9AEAHTOWAhKBdVL-7y|4L|Nh zd5n_c(C}D1h2}WDr*o%5pJ=!3cUM<nCYa}dz#b#zsDO3jd~+|RnJJU!_z3WLB@^S& zjQ}IM_a?&7E|WO{;E>*l2ykhR5>J;MZ8F}f(SbltwjjCr*kZR)j^?em^=K5<x^e=s ztLVuH8`faMuy<WV_e<kQjJ*VKZnXD(YnAt9U<B3Rez)4VJ%Pi!opkQhFPJ0BOysM$ zx<V`H*0a4f#JASwIdA4kDW3D;0iu?p?AU4Hlyg3u4!mn$4Cb({K3~aicW0Nd_zJ5p zy>!D5uk63hlfHM1+~*wwj!c&-V><6d+H|Rn;heQG@q~}v>yO-_xVi2hiOZT}N41XC zO%br6K(70pse((ocBdI#-D`&$B*va6lF}R`?_K}n<WZqHnze4q?W{w><t97IhewGU zbF-;6&iA?2^R&#C+}>gjIUsBPS`b*JxSdU|rr^IyIioH|KChI|Rass}g5qk}p=(T? zHFP~i>eQ*upYYY_Q~*Go`)1V*%h18Bx^WZEuBn?j4XT5t?Q{g8xsMbrJ*!CAmNctK zx2fGiFU-ELZH#z^lxmJss%7ZY(FCsz`p=rbWWk~Z{cMoe@^!(IWeXQ9Ol7lKe#!;? zOP2I6U25kM>w^A;OO`Ea>*S-U!CWT2(?Q$keG@qkplBj*7Zc`8B!bG4Mu3BNB<@C0 z%xP;7kX3x2jnCC#P-yjJRoq*FyD8{M(%!5z<~v7@Xl%b%oQ6w6^(B+oWK9=A>hYb^ z{|1~r(prLjc!*JQV<`s`(V;&`?JB`0aGcq3mqW3Wj&|^?J6sDt`hGao=)>MS@{r$_ zFIBYDCprzx5rOXj{WTvmg^>mgb?nP=h7WGNh|{(P+A{q3s{@pi;za*4>nwxx?HU4i ztSnDC&jG!>k5AyHo<em4b|vDbgZ^c@0f1d}UzC|_6WdrOu58m6J71cw^62bEzv@+_ zUjXonHd|m&zg;Xavj9><omhw<G>arcIHjKz;jW7iy2=)#<-Ox9$#Sui<wa;W@2F~F zmLO5?aa_v8BhMcC+UePYTycBTGKNFBJCu>-NE2#vHUeDrh+p57GV^FkBd;H^eMjdC z_`Dc!a%y_M;$n5&T!1gbx^2rkv*Pw6w+$XoQw95MRsc-1)RlNB9;jLBcYMRJN~v;| zI)EqK@2K~dFZcch!3N9`ECJ41)S_VkhQ|#T+7}!VTg{|#n<InR*7r3^EylB(tVZN7 zB0|fT`z}&j3oHouz6fx4qiEpnMka;38xgd+tBVD)&Vu9~i>iBh!Ja1aJrr#Dg&EsS zV_r6iC0&~}c;e-rq3S43_+a|y?_8oc;&Kh9#Hed?XEHILoyHAo`9{i5kl?*R7YJI9 zkeHNlvgHKX<)jilQlR6g*#kwEJ+4iVJImNeVKna+8B)4#iwg!U61nK~Q1+HIeC~&9 zzR1%%x<^c|WdhBpL*bMf9QxfxqNiIHu}5<q)}=Xdw>~hGluv!UP^d(E=RsGyFXf|y zi#_yitVIoXLsftSc=RTv6X<da$TK@)7h7uA+Y*Z@ji!V{Dy>eX`L5U54a6IoEzP@D zX<mX-L8ZJD0d6}~8RE7>7FDLqYN$%-EpeL!HEf}}ZnL~haWO40m*dOuNvHssVg@xL zQ!G@bGSn<M^xNULUK$=@QEPWUJQPn-YxiTXIrmqhZ0#O^r_el5@9A9D+vFAo!>E6- z#$}2cI-=H+j8$M>-h|4)qoi50naO9$%t*Y&dyrC$vF%#Ch=nVNFtj@qw*V6Y&LarT zi0Gutjtyp~)#{B3WXyu(o`=j`>JGcWIR;(VKzwju0pl1}J87A6tx7B7&h4z~Z7kbx z;0_1y*aCy?^3&Y0?VQje0T}sk-zscE(E!_~fv!T$L+kEEw~Gb_Cc9t@Bb_OL*LG>D zDHvB4I;Hs&U!W7j8@gL$u?SXCd?f_9;z}7ymtDSDU~TndtDq_ts%!n2R9s9nriw4a z^EC!=eUd#5hl@UVZ8n|iXR0v8HF33ICUQ|?YCuzknZg4)Fdk_6rI&AAR9ImQo^bt> z-qYIZAtSbRIvE|qmFbW-i#USlzAV9(Pn4`_k`NA%F^CNorj>RqN3QBb%xoiq-Da}e zv}ce8N?|*K(CiS!blEY)EVe4ql>&LN1<8E^mB`h7c4w#pEz__mlrd+ugCp;uL7T&N zB7|TqZVTYm2<U@(A{vHT+!oFA>gg2dU}zPU5VoXg6R^&C*Mdwxd)UYvEkf*j(Nt-x zGF=3*YHFu2hiH~1?l_x<M=2fY&YG)`ul6!fg$tG4&NBFwSBQrYZ|J{H91lgdpcYpn z2+cJTLb~i^L`7(;oDUP!!!1<T%J~Sz#l&c?#h2kMEb!KwQ&j(22Ucrx@PN{b;>;s~ zq^kKSJQNR8)%?9LiAReDtL9_ygv+J$o|YL%)#EIjwV}B_kInF2nY<(M;GA=*Mc}8+ z%Td-mj+8QGW-(qjAFsq?8FF<q;^qlNur{dOC;mhvf>L-Ag3vr!B-3Tb5i{AUoKF$R zQ!PmDfgP2zTa`pN1ZxhnoRA4>#)Q^ioIBM{sayv_?NU)~xnA@;rSb<~Mo%N&(4EiU z(?JJ<dj^8gJX2hy%Z_P^s!e@w5Y)3QR9E$Vw&G&>GB@JOFs{7Hk6}-;91Lkff!Pc? z75XSc*Wa3cn&$vqiu+tV6c3Q%{>2OBc}ks%`+Pj%G@ssKnfHUR#lc0EkTt(?=7Pm0 zm;rg@jAINmkap&2UdZ$_Wo9X^t}jxOu?#qMjd*x55$ug_QrFu+@+ClptY3;CG%pjO zblLI247HT><pOzy1<C!kLrLuhU<@!NRo?qW%^NA;V&E#Lc4)+zQ|352Y?lo#LmNKk zkmOc`&VhmA#;7R_UQgxN)owMjCQ;q+iwHR*Mx@p`NsPXTIqDm+*Bc`$VdErFYdf+V z?%9Kr*ppluOL^`wq!hOZB4)K&Emk(FG&e~eon`Y^uOF`j0Ltb!|AX=}uR`9TT(3qD zn%78D>HkSdpi;B?s51E@6R(w2Zgx^x3S*A+S=%?ybt9WA(2$QgYmKhXIQNvb6&yW< zx4+1r4M7@Eb*{*q#SLEg7o24S#`WVRIMc>1Sh!Tt2p1EK@e6{*^Mgz(b*j#?a?Lv! z&o@TtP>|J@?#3}zyS=HqD%t9~!R>+t%lk9fbvA$g?MuC_$&8kqUPsC9bjj%-zK*^g zps1s>Ww87DW8MH6qOQLYL1^AY*}D}t>Ump_{bqr@B?gi-4!>1#u}0Or4PS;APh44= z$~2~@xG`G&Gy7`#3v~UpGZJU8e;Lskg5!*;c{`BRf4>6{#beojuRCZ@U-<77F?QhZ z!V~VA(|hYgYX6d8&HdMIfI(Drm$P5cweo4Y;e!pqcHz!^?C%ywFXYIhYMS?uaHh<h z$2<1-ic~D0wquVm_da5@j-=iZyu2StqM$y2AT%Eo2kEk7kP>M1_#YC;hb>6%Z5=(B z^WYG;jJ69VAs6`~WcS;^MjzfBj*HxAUY@S<^gPZE(7l)zR<pqxTW<E%j+&-%lwk}< zjYf6d9Bv8Ns_pD~*|T87(G1-$qgvNvYcLq7RdI1$BR`%sA3-kKOF-TCN0qtG5;!<g zkB<>?=x(0-k0TQ(^G_fM%_o)TblHi7rQB9OKP9M7Td1xh>dz=HCN=X}d>J0_Rg?D2 z#uR)_WZVNTTf{vRlQ>9@QKCGV*(zJ9jc#QW{=Ct}d=5#ewtgND#e1l>9vKzK7et!1 z^^154&6o6!UFm+fy)@WpD=KaL91MyPR6?2*+$-4O2i{cG;z$b1!J}nL034Y+8;JQb z*~yeCop>GoiWrE=!qwpx%U>l1jw{^h9DWUiP|9CN5Snj@uXNe5O=-1i_BRFcEen#n zC&nHtWM#Pw^C9d*2o_|QX6L6-0k^@?o<CSVXUmrOrt>XZ(!rK3qpdBG_JiH{8QUp| zh2Q2Lu{D+^-;VvC6{g|Yqx`nGt>mbq#-(V)O74c4bn!N=gWC{}uXC=Zro_oCA( z5o}KRZ5*=Xt0`cvX9=!ayJp3uxOR*VcaSmd9PG1-kSOOl`K_`sah=JRdA7a0)na^G zLhCH=qaqdkjv%Zz*j*8;`7RJpZr?)?np=czeb(*@Hdth7cKXJ0H`1ld_YsZy@&hIR zLzn#F(8gqWa=H0Oice<G(%=g7j}Z@LJ{ah6WiUU%cjV!x2txBSC1U+#kt`GsezNv= z9GRc%6H>u0$USg?=@)nh?k^GG{v`Zj=-}d_+?8D}el4KiIH1Fni#8o(CVs2v-kJCv z;z9l(V8?LH@9`OY`~g8|{-`u;9!OMqC?{F}lSTQnQ2t_3da?dj0sWr?x`$ZrQd^jT zzX_;!2L6tCWZ(#-(UF4r2O^P;e<BFYzm$^A1{vs<jg;AAf1&J&AT)d7H!1=8nX&ri zOJHvS?c;!`2=UrY?)Oz(Z|?U)Jh(pqsJ>Y+`{Ns!J^%p@IVb_kG|45HMmC@}Y(-4U zq8%i(gDqOF72m=9Ap$(q0b2EGYlz7IVT$g}|KW&t>J!5?N8mHEa3q4z9HlgD7DzOa zg=ZiOchNS_9BuP)59Q;YHXpgWFvC$Hb2*ltsg4on$2!i};2=-3rR&mj*-ojWHf`Br z*GKH~pZ3moc20IAQ5{3i!k#D5v%qCZYs3DQEp}vtbZwH(hm;m!MztX#YFE)E8w_mi znFAWQvB=2LGCWYh#S1*Fq&URkpgJ1G5W_E#xQz*1o8i)py-0v-pg8&oEX?#R2iB<8 zqS_ac^ml~N9e}0k31S}vc7NCoI$vc^3-ewtPSC_--OQjzZ)lXEX@ETxA)JZ)6s>;E znL?qOD&)EE#E%m@@{=&=l_v8r78bPZD?f$#;L`OgGT4wJ+Xj+{9TJza07&k+xJ^<A zG0K>D=pGdEt=mrFvCx9g(6H{t8j$)#0sO+n0rq(YlStgT&XxaNoC%TixXZ;Sk}6_x znAfAKycW(M90~I9l+g5dr)d3{B9Lu|_7>-u*sWl|9T*s>j<yJJJ&aRcj?Ao>Q^K|G z8;I>!KXj=Mma%J99kjp@Dv#w$vfqwxX~*zK^VvYGax)>e{1kAnr{yPQ@tG!bKn;Ya z<i=FZx+Sv%EN)@Nz{~54y)_Rm(<Wfj-HIz_<YPiZvtY^Mktva%yF9gU{<?WMSvY_F zyhV%Gb&;zV4rdHr*BVr|h4Ysz4o0SMBagkJJg82ORtmKyTvWCun(#CMF@ma<mNx82 z)=Ww|&ZNi>HY-KdqJW`kqKfjYkE?{JUVN-jW24;qg@4UBAnlZ^9pn<3g}XOjZY{;m z1{b*nQfuj^LhLeOF4(I6$95ff;=ZJ#nkH4T^}uqjI_IuoFJ-X}c;S3-N!@~;S=~Wn zm|8^M@s*rO2j+Gg4j-phHrZDWtUD$e4&RFqe(-R-n&x}Ern%Q3^n|X7X3A{XIS4(G zVV6PZN%)Q)I6x4Zlkw|qP$Zk^f!)~i6pM1IP)@TbtpOYfVz;Lod!8<!`#7K;W6v`b zofJrm_c@4ng9oowm=>A2_zc$PAqdTxO2ZBwNHoEEYkXtU7A+&RtVL@d|FmbJPk{3s z;7-S&{Q~Npkp+lHM!Jtd7a|hbS%d(0g(xMP9Ws!}&U%c6?$}P&EVksAi2PDZK6l5{ z!N{Xsyvsyzxg(fD##(inBg?ZD(_5zJARaPh0oyjnoQp3I<ar1}bH326AW14A$Q$;C zAZJGvZX_~0s?c=@v!e>zh1rokM{EC?QH8m{*5nnc$t!J5&dpX?cRE_bjM*wXTV?M; z6M>HIeU<9&fUCQm-TQ@#>D|4rMtpnsz6M{=y<dbNG;4)!yLXaGbni8ell+w3j~zKd zzVl`z=DwD{LGgF7<uCUiV5Flc)`_F_j-$?^7*b5{qS%1=_M*51Ur-d6BEXJ+q1&P$ zsYFrG8g?s1@t>NbnN2ny!^+2HHXkzI-9;IWiq@O&E*IxH$N5(v>fr`$2b_r7QL)R3 zojH3GGFFhV@xNj11X?KSi<bT(dy-a-<FjU%b+EwIzksGR9GA-C#Kg{Mwbra+<l60h zIQ8Y%kDLuCvJb##A&4#JRGqZU{g6jw|5F(6yCp>}G2LHTPwMW#x-+6V^#h1Fl>2X% z%>$7|RL9K-Lh~R=Bwcm_qlTbHw)~u5A*d}Ds_T+<UU4y*nh|^%K552!s>{UpA!w=E z`o}Y)fYNI87#@lTX*D_%l|w<Pay5D!PobI6dpdUplvX=2mj&KQQ=EY8#g;(U6oCUJ zU>4%*$|WTgW7w@Lw}_XCF?5?~Z3PO1T0sz+Nl{3b9RtjPgen_)RUkDBl6wh{8q)KO z^8{mSUOuSg4Q{^XIy$#*I5T%%MrvLm%{~5{jp2xq%yRjFe%t%3eKGAWrHO9P#tC{l z7^in|?Cp<j3t{>#cZD(#$IO&iG@gJTT4zVc);L`-XT8egaV#IEL-K$tMp8JUfH$AA z?2%YR!qqlz3kttDLOM?`!>di+TUe{Se4*V(y*(TOGh4Heim@usL9ppXhIN>E>=OA5 zjyu$5^y*Fz(N&P`*|oyp{O9x#LaJ>w0Yx_1T1;qHB()|}D#K1i%0^mT7X+?0oGoQH zTfVKOYz#z*iq$|6nx^E5ODbpOxtsEY8nXdvnO>(Q*lkX*z3j#_ichM#O^bHp?TAN< z*|B+H2fm~9u0#-;2P+Xf^ds5C(9hY8ud*niP#$7YT6W`h<{v7cs~ylG=o_|diM0VV z3|^zi-kd)S@!<SG;6|9{;rIx)AAuk=*D3|eHVG!!J|CF3v#~LcwDcY&dXKjBa(6(& z9i{ykQFyGQz)Zu8Y8yHV>v4+cEv&~Q9>T)9?;gT3PrwHV>WK(K^CV$gL6J~GP~4T^ z+TyHvvPFD~5T9xhwQs>gM66rq2mV0tbwaq_B5*uX?00?pGG^duiil;vJRM(#Pb*DM zS&wqstfVb+`N{;AFPp{5(r5-td4+~~20%3;c_to;`)Ne7G-}IlP|_TcJPS{udA8o+ z=L6a5&n^nqwvo^#iWrGNB(mm4CY>oW8}Tv8bCg(&Z#O1sk$)~R;F#q$QF|VcP(05^ zfb%n=kuEzHm<yDUTiJi1Kwe})a#_^HXm{ES+_y#Yvj=Qeoq47*IGNvyc>y|ZT)D~} zZ9E^0Apv)`xBS0h9TsDO@oC&7!{x?&B^Aj9zJBNjpYxB6-kb3zT>4i*j~`rI8Zmh| z_?feD)5UY)Y=GyBIo<#;R!X@v?+VZ!Gm#s=U>eJ(1W8$|WPqz&bVeoujyyEzq!1Hx zi`bPQ=JGG_4t}Qc*x?q;8RYN=W3GH99bjMm0=UB41XMfz((?ESme`rL&P{SmQ>tQh z7`Fq8*Q7+0?NKCZaIUjan>JXK)*fA&QKz|bjl)bBG^I>_3a5BT2Z?Vhz!jpFY$;LP zU{$H@&@04(5;8DX@YM=jtI1l4ho^@4&P_k4M5#7XlQ>hvqXX{tLbwN<o+t(bSSQ~a ztjwEgq1n9U>KjnTa?aNbSn?}2ti>D+cL?Kz6*nJZ42pZtpgQe}tufL|q*0xUy)3F% zFC`)ly3eYdJzIrg`mD<BlFGddnuFHu<p@Ia3Mm@yrlUG#%52Zny7`XdCPBT@LUnc= zuTn%zPtB|GW%yW{JF0LcfeM##E(>_o-wyK{M60uSEgp(TsIwS|l=@~R$Ijw)cnZzy z^`6e1pyvB5v~5b(_7c_;f|AXeH!!(One4_ph&L*M7=NyVXpwvqF@|=5!kYmIvAqRB zXx^%H(`84N+_pM}w+ZC!79=+g-lI+dOFiSbkrX?MTaFyi!t>}sux9;muwi-xqKoo5 z=Q6+l85@P0k&iQM@>3I<ov76&Dwr*f6|$Hzw&!2%$UDSDXZ|mYME*`eSQkxq6r1K< zNEEVqH-gZ-M-<X>0(D1GKvpT`mgB4Uiq!iYsS_b{=lH6JtjzlX%AwB(h!VN8($`LR zR;0!8`Ue>f<#r+Y4*?Pq_%MRdd<4IK=LZ?JBfKW=^p(ZP*R_ud_+u^L_Ceam6%i{- z^9g(zJ{VW(;Ig!d41L#{PvVp6*QfAMyr=5d#Zh5@T1l{eeFjgV`K;d4+B4CgU5vqk zlENmb2CRXfV-lG%*^1Yx&kHHWhpSU9GG8Eu-HFke>K73S$$SX`E*nx>>9Qk5u3Giz zD+2kd1(8pL74#1^I*o1@!<7kix>MR^WbK(WmW)hKz|}*(LGQo;wp%rvcPKmlaYF&t zHVg#Zpa_F6ZfcyIoUWpQB64b`fc;DuzHxIQFE3&;NKd|^yax&{+D5)uVs%qoHC)YP zt?bj6KCg!vmxFe}s<M7fIqekex~TlVE(m)O@m*OK<{MxXh5StfxH(8%r*(buU72eX z301DusC--Of5)-k*J@ODwUEtsfy-9rdrTv0W%RYPl_7DqGPf|ar{`TGw#)Rs4^+tg z2M9v*L;U(?hgs>-?EFZ;KW+iHH#<L3L`*BqPw{2=U~S>$?Xxx0Fh9d5H9J4YL-9B@ zJHwIM{z6Hx+4&`&aHK--zS&t4tm1B9msHmLnn`5JWGmk6{6<JIK3ucYBJ*2f_+}@W z>hBN<$^0HcX#SwI(q%`AT(z2=KMLee79@8q2G~6I0!wYi%{Ush@h1E`VW(}>oyoxk zdi9Y)71vv1Dq&|TK3{0AaJ??)4A^^Z_pe56k)|Cmp`xevO_J^0>97v_MKQ~P^Cz`f zXqV8SU@!3W#Dr_wxE0h1Pej<T0R~e+n0ftuz-X)B{U+u41}DvFY?+0@+s=OM%m;2e zc7O%$-Nimj+hSG=1?%pHd1`Md?dIDx8iAk$#|o)AYgWyLb9u}`dCMCeA|YY*B}|Sk zb+(nprt>hp&lGFcO<=@4CPnVPOebUxYPgmRqC8HCjkLBwPFbGW9&;AzM1?Koe5)4n z*ls?}+}WGrQEZ%4dVau;OP*Z@SfwXiJM#_Jtg^ggO$-M$(I)_JJU`0uC8yQn(*_jS zQ^dqAr-F21J35U$$kiq^08W75%9hBwdI%aZs!jAWcACEiQ(JT^DeQbzC#K|Tm>yd< z^e8F1cj7K$cXknifzGU1l{J5cMz+@r^%{SXqITAc%cAP{S0WD0YVxcm-$gX}|Dcd) zi~oioG=G==rpr#f+4`z2wgybs1ISAG4?)H>-TV_@hEpT?(XH$ut7GP0_@I7h5137h zr?MX!JkTGk-xJ^F6xj{!g{RQ$t@m{9P|Ys;VU>x}*@x&ExQdQBP}^7FG4i$pYNfv) zk%qb@w?AT#;R6uhFqzUxmo1Gld1-Y%DS;ehL2@T!9|;X+aT^wz(x}^^jd2pE47Q<# zQaeG1rg-AO6+SbX>0lhoo+aBLam`a62W?Y>7K$AOTQ9q6ip5d&Kr#WAMpJ&%09F^P z4V*z?lN&QfVr1MvbBn_<t#P)Jk9?=9ZHCiQn89E$R*Q=3*XStKjjQRe75tBt#(DRL z`Y&(=&=l|VK)3@$cu)jjKq0$2YJ`~9{eEhLbwno5PTBWd(@nPA^u_Pm_ikoN_LlZO zlEAqn*X$vh0Dw?r!n3)Fjrrk;oxZ<N9``Lx1~hfb<TqKX)<7Azil7N+XUMKp3(j+J z%tIDY+XvyW2kf)0Qy26E1RX}c^GzKI0!vu=ryl|*Njcc6q1>h?N6>$8D4@eTZHwTx zFrAkaxZc8u1ZRzr2)Ys1O<^6}A4Lh^!k`F-YZDMvHnkCJ)kuK8-qB&T_)+f~<DF$O zN$K&LZpR)*MX=?%%U<EBGQhcYm}xNzfbklpY0lXw3&^xfS;#UBJ9q^gpqZjFaBQPX z#mB7P5)(Z#&x+v?75K9h=@l2*!<iOX)J@*4guoF4l|jeR@L*B$4IB--0ru!<=0=Te zdHa=|(*aGiuqLw)x5i^E!edw4Ow|tS8lw>CXweRUu)N=-mqFj5C#&a_EIJq%7}$bU znAqXNoHV9Xqi_!oEaS^;V!nKQVnx=SZMDiaFl09XfRCu&6}H3TS>nkoJAlJMI=hgd z<Z%xL&cyLLo7VEYQ%EE)7Aj~WQaezIE%m5bv0w#_WLSSRoWUJ4sAVd66lAN;Bg3x6 zunQPEm&V3NLssOvqyZ7M1&U}1MTLkZ4c##b{SZT~N^5TgfbyWm+pMGVM0cjk&L456 z7@ZL7(|!(~qH56BBb`55J!N6Kb8{%w*szX19d()zW;fN6Je)Z0z_u;!sc6)6n9k|9 zh+??`;&7ujZFJ<&+Hcap@Xa?^x2hef)&Q?jtI#C47=A?IOQ{-cK}iJX__?3%4$4lC zHb%3BvFX0mD=y)m-LiG64f@a9a)n(8$p-V{EsEAy8q*`T!gG9z`<kIlj<!0AF3z$c z_j%v~+gv;s@RFj+k+p3X$W9cpSmx*h<<vaO1#Ks&mMz<f??G&G^jqeWv&&37&(uO@ zDjm#2@wRVhBiES1fLwKKUTO=R-bCrn%*<rzamuFO$b!wjnbOu$-wG9LsnK^?-jvW_ zoW5ZGDikP!)k>_7UVG$Eyb5=&h@lT;5Xrczm{}wlyPVF8uVb;(!5z|^BY3TEIWL8} zlo~|{0PP`?<K5J#Fz{#vzvH-l9ETRs%t2Stw4kkOZ@Z~N&?wX#Oqu{)us&uYU+Jvo zBL(`H04ijWYBg)<r?rNKeTK~)N?N;=Tn*=@Le44M{LSG`E3yaWXxim0Y&=q>Y@%6} ztgYNDZD=VjpJ8$qEeo<u(b-ept!`U!wA4jS#Mo@>xWiZtT^O1twCm8839f<CPcmj_ zTs82$gdMxE8|Mn9x<u;WR!pJT^)UMoG<$eR)Ky!21rZiWv^u9jiErB?pUkQmeo_~; zX6XP6-e{!*I-wT@kC;kY9@D|L5@wJBvf{jOd!CEg(TF29H?~vDIr8HSS&nVXqt#|7 zgJPI#-34MzSbb(~t9Mmch1W9(DTNAP39R<3zL(=NG`4b6K*u4-Xq>7E;lUa_c8*gI z^5ft`1Td82y~CRz#M#m1?C6pWH-|~Hqf6U@%#JQ+N0)Zo`(HP@G>4-7hc)6b1h~;v zok4oGGl)j+vz@_gXTY&#G)tW|HDJg;Yigi9=)bNrz=9G@&aE}?Bh)J#>3W5;U>e^o zYXld)k76Rj`|u{^+}=nCQz^d$ZjMG=E*)D@-xVu|xd*U{oeSs80T<5i$#BTiGRNQ* z{oJt#a6dSH{bD%t7+(w@<$M(O;zqWLRYx59;VGhK%G?WZSS>hS3EbNzAV2z%y<u1E z82#r_7$*?jXTR(+Vot=@;k~gp#GHhueDS=^MLTg@x!DBxQalAq7`BLzLHI1(&+=wY zMkMwiTc>s2^kYuJSLFCq1fe+%zsRxO9_~EZwu-xn$sh7|x<K#aKrcdp+)?%;X8H`J zo1BV9`7v`4k36gf**nH+W#%G9NMIfUxUCU+yR)7dwPhY6=Mo)G!|V|NI4$6e1<vVf zOHNy{OAB(!3Z~D&a69=fo5v`K`9zFYg%#_{ssaI0a)!R1CN|R#?479n0!BNvU$M?C z#4B>O2mxH(;Mc1?^AK12veWOyf?Q%Db+dh>-#vMfPA?@&q|=T|vkYIM)A>oW98c{! zeKx)nPixoda-_=?eG06f1E|oPi(l%mzP1X)DeifKIp4vY2FzWtLb5C_5KeEUT!DCq z^Asc*85(=qHO)#ugXL8SLNlPGt-_JP9twA%fLB}K9tyWcFc&!(wZpq(KxKy4GLe|_ zAswrHx3T?QXzq)YcA|)bjJAph8s=iWLNx0Tgl0W{y&^Ji-4t<1kQ*%IZEt87N+~ZP zdZd(&V{<9K4(|>3>}DgL+Ldw>z7!AbrIhTsV1_osfI@CALlBzF@k`xwksaE}MmIF~ zb5JKyJ9lozW;xwo;Jp>|0f>iqxfyz=iJ1oi5Ug%SfTPMv)#@bK>Y|gZb5{s>iv>>B zIoAm01vBDcD&XVaX?&-MMoBxS%CP-gRUQR1t{uHI*8t2I7}!Y-C@|XA0I+7p@e0{a zAP7wnzrF@glHF=RNswg=sjcHtQ+#J;OBH7;sYVsYWz<ygb$D;Aj+jY2wO5=fz7&t@ zRdIaxS_4#Qrts@q^Pr=?)CFT43<BSp&ts`K^u2e*Xd)g`r<XF@Vw-7vf#A0x2+fSp zZ4DryL=AX6cKFS%=jir!tcA|5=V0ppA6?He+pY5Mkn&z>l{Yu5rG9k{i+i(LN(0q@ zR7;~KJibqF_|V3VMzb(^#Uwl{V{Otr7~0Dg{3>bjIh%*~t#C)p;9j;59p2AwCnzp1 zp1T>_>4x{=exkwshxg&a?(qJXuefym+VyKp2=unCd=F82^sW6+JcZ_Jy|al2v1|0w z(Oneh(MIqvM53=a4t>R@QWHCM<*dr>VhS2X>^94qhXV-R$0HEnAiI*Y-3O_u`zVgX zWb$D<H+-bP9%aFDoQj+q{Y&*{;~NW8QN+3A^wGrG$(2wU%kyIZ2A+2{W%F3TgZ;-L z2+iY3!(DwuPHpe^F|cmk)y#zupCHI5Mv!3bNqX7U5<A(JSlJd7#QbETvw)tWw4WMJ z`#P643mp~@7<5){rkR6mu#B!}cxz?!Gyox!Pe%}%XW-Xok_0=-=$Qh$!Gh&3Z!4o# znYbqu+5(*Y#SS-a569+$XuFu*0~0I74qO)Nvq)xV#Tw=G*?>e&??isgjUWLzJqJN( zo=eW0GEgLK%1~TdW_^WiggWs&Aw0i@P~2#D!wQJme1YP2Peld>PxadoUZ`ZKDlZbr z7e^#P<0XzpQdP(uRpq4&Z%tKR1|W#w<p^-%6~A5tB-o)UHwo;O7VOR}8p`lhB(qah z@i~1pAn#;Vc@0QFPOn7}nw!a)Qx%G&O;wzZyiSm>k3pV`b|s-EZ&38Es>vm7Ey=*( zMz1DsR5DbPH;L+-BdQSNTO5s~nvg-N$y*uTnwq=~K*;{v5rpO)`1RQ*!45Tfr@-E2 z!E!gDMak^eKQuNA(MMeF_bpkIa?52Kw>oi)A@?+)*VmS4ZUN<{*Yi`mMKVLpdp9}X zspfg%y$6sG-rXyU=Dpw=rTIPtp?N<u>y()V*G-u}Ajl6!kdV=b^s=j}JJP1Q(7F!` zohthgrTx)(+8=XiCsmegP-Q>P@YYoJ697UcKZzhTpTe)tBnft??573x84H%%wyP>D z4P6inVJjr=8JOZZfIjSK#AZS5@x!a%=$YL$eWdz*mR#&q{k$MP2S^CwKgX{5JUD=q zzknb#UnJvBl_=0QRch}-za)e&#}J;-**tzl(YvQ(1A}9}dHkx9p{{*RRKFfkg|NTj zXe4!w3{uy=$?(>6?OOnX6uylhG~dCmmjVfP=-PJ$_B{*sA1plT+AZW_r@H0^@qIx4 zXLaod-~dwoAp%@}M#i14QJ`(Q=KA0t3-TusB=Y-Hz3i$=m6OfZ&xB4@`nl5nMLg|a zy0nw3L^h~OzhZc6s`P6BA(OvBfXmVF>oZA$9jf#@f&Jcs<*wh=X3KSrYP}ZXgeuQE z=?qhJgddx(=_L}z^cCDq%bwPMScwn2*qS*yRJ1>k$DJyg7t<dB2{GMOGh_Y){!l`H zMi836Fk4OySr~0<*xuy*RS5qVL%6xK$@`n4cTYbD1}nbF`@52%p8i8r{~1w5QT)r% zNa`sWq@L~pFK)N0r+WejQrHUtjtk<~OMwJC^mHGA?Q6mAvPDZh-H$x(R8PH__6Ou$ zSx*lDe<+~?5rihiY&kt;VYKO~Yc3BG<iQanq;ZH|c2ym(Og5K?3Y}_rn9@Exp7s$g z?W7u#4XWXh3~#NuJPJU_<k1L1a}WIbOp;)S8s1Z2$5^o3%Wh+H8BHkEZZ6_kQ~0FA zK}Vc1!wlrgf~mPfiEJ(zTfi9>#o?fsjk;|OXGD>jc`Vu9sb+e~9S2BA?rxMnb1$%r zay%YEXztCNI%Q>%wJB?Rqk4i6PK+V^y0cL|NzuEf#RG#^`9?KRGSudiMfH@3DoW>6 zM<c1tWRTi?8pB)D=F<TLDclDEb_n6uOMwJCw0Vxe=3213Q)yG1=aKE5YO|NznSi{T zX>%GZqZ~5`LX%}qoi?+`+O*j<y?uh5A3;Ju{d(C|rF}}W>0KanD(ga}y(pgcSuX9Q zvXTud>tcqtrmRZ<giJ0)5SnH9^_e8W4rN^~u(K^#?uECj>0J`6=HPTC+)d&nHGIeL zh#j_|P8M)x74AKCa2CdCt_0DUIDBhHE$MA}pq`#Xj(4i3UTEh65<<IsWX+rhZc%#Y zBf!2dX40uB3#v^;+Z)^!LRc9?Scgr63A^ShMem;O4h&xB8{7dULmj?QR98n-Q7~&9 zjie5fLF({D3~x<`*8&JqxG#dx4C2>Ifdo5r_+o*rvtW0Vf~F3yC&xS0VK1~HK;C_H zcmuda>0N>#G?y}y|6ks921rq4VNnUovdglH36K@T;VG;rBA}?~ir~5n3N35Eadu~R zXPVuerFsSyb<{IsI&(O4I6d{u;mrBW;f$xAo_gk-&Ul9VzSmXFbT`b5V?gjvz3J+& zs@{9`)tj#Ankvm<c9f69I?PTN<O~l9-&k@{ELG17hS^=DI4L?)>gKlJt`?|!S6z3I zqEv$v-HoykMRx}XM(zQTRkM&9BiUexqI(J~;=-ElE;Y=WC@D|6<NRkR=s)|Lp9&Cn zaYze(DByV!^4HtBN$%B*XJDKojKGX-3QCN>MhkLyFPfB>!^W#oAmP<z#CFvTbI|`S z5Lp$Y7c|M))jpE@19e;qwB{7JDIBQV<aTN7udBbn1nPuT!%>iwR&B3U^xSOSMsO5R zL5_lU%0i={10Z;z6C$fpNR1cRU}zL{32crFTUMCBQJ`p2-cew@>HxV6je<1HLH}nU zvT829php3_+BXVxsGlduZVw6P&6kT}$$m{R)bB0DN%DQ9?tOFX&g!~@B&QlA`F@mz zNWMQnF!BHhEY(43jAVl$k{>9rgIw5;eg(NvO+yOXQ<yy+YIxX^yj5MeofQA&<;8V< zBvNS)*7BD1U}~P1%f@+!014;)*te{|tcmJSXpP=H3<ArUXso6zJI+U0f8bsq1&+um z@On6KA1Sv><8od7btZ5hCDoAAM@y^6c&%c*{86_N<TMo|r;nv9#OdPzf)|d5$f^^N z8ZWTH5T{QR*hwyIDeG{?=aZ><UQQe5odV?2$LUj{HG1<j2(0Czv6|EDI3K5V7(QK) zXLv~X=uEjNmb&)`!|+*BoRmFV>OLp8?sIkBLCR7MQuaK`LX<rpAQ*W81XfugHAb?* z5M?hE*hMa^$;$J@Ef3S9^m-QjbP?rKv%98+@7VZ$ZSkvC$gaPzk-Y3Oc3uo5?EKlZ zQJ0_r_~=pytkj}jnh11<j|l$Yc9|5oJg2|_??gp!_1qP5yEKN>)jw#0+m%ucnR1o1 zdbQUoe0hy-BghmgNTys%S%@ju0R%5x4}pbNNR1cRV2CL<2<%1|_Ve`(nQ{{w$;%XD z=gmO=tW3ED4ZugYLSSVT_0mkCJA6#hA>(#I-r*r(&Yf~mEFoSDhK#$UIEiq#)O}BG z-GA402Z=y6NQ8SS3lZTyfMDeP5LxvAQez|=3=!c$fj#8Hn$mefhM56Vy5VEvnrTsP z4mtwwmgF51!-i8c91m{OwsZgOT;$K4<jKR-Aumsi8y*1?Zdg*vsz=d2Jp330R!C88 zO(QzfM<aj0d0YxSkyBtoIN&@fw@c$!UHwZY;5;SOkY`UztIv3?!qxxOZ3KBn1<A8# zDGTxJIe_4W=OM6k390b{8w~O61%bWj!j@Rqk!Sy=4taTI-0%{ROOj_VqkVYz6$q@3 zqS~5gbf%AII$XUf$k#k1tbJWBilx)L!Ep746eo?|l)B%_t@~|VcaTO@gEV@FvJj2l z1qepI2a#3pBQ-{{!4Qo;5ZH$<tm&*G!&PqRGQrDzXKt26)^ubr<K(99+%yz>;$w&A zHtcVUEe~Y}dTx<e$}fi`+(*<lFX4>CJ_ZsF`}LcpK7pp_wND|io{9!)YO;fT)bxkI z&!oWTIR$2iL*N&3yEM+$)xU2-;FnSjx%-v0`nA_8I^}=5jUacaAi4VuWg+f<3lO~U z9R!v#AvIoLgCXuN*O#y!NC8_4I+@&Ep4#T+u5s83KrS8JT@jk1*Lp%=jTH^l++_#( zxU0izZ$b9)knl^HTog;ukAq>guM{UW%cbsqxpi0Qx`WiD8l+|=Wg%+z2M9)1L1fhc zq{c`#7@}siz*cf$P3M*rR`o;Srq~V_+h%huk{3GN=!#b}TTI{&cYGJlM@AD_O9`y< zv)#&6I4?Vm&jtbspDh)Zsa2pX`fgPSEVZJInxO0^A3^=Wb#*DQMoxhP!@+fs+%Ao| zb@iW`;5t~UA%llVt803#Vss4EZ3G!i1<BwV%0dk0sS5DIFbFJZLTbFg215*9M_}u^ zu%)A)8DH0<!g(2NeD*saml_5ShqCCq^&zmliZ*HnvzvSj)**HSL2l?F;hGV0Q7lnE z4~E#0Qk(>>mAW^|t$UQNJ4jHfL4s~fS%{#U00bjPLtqCdq{c`#7$WExfo<l(nhyFQ zA=aI3kExj)$ND0iKgAWE^5)y!&zl<#nN^-L126tX2q`$0D&?i1@ya+L;gw&B?rJ>L zf&Vv$z}hHUp-Dzp`$*;wlM|%CmN^AZ3x~<A<aTN7tE>OggvqU?8nSSrw7QMgDm=ff zZX?J-Do7UAQ5It1b^yT(lOV7V390b{8w{~<vcRUeuwP40l7%}^rMxUOUa1H2SH!{{ zp$`1t0D;v_v_i9xuJ*A|hq|ePoaP~6{7!OFB-t9udIV$L&QhK%n=X~l$gSMcl?Pcy zJ;<_MC=0P{CP1*V2?A@0kQyu5V2EYA32b*4_7kmn7`0i=_Pb4)X3oSI&mSB&tU>JC zum*cLxhEei{NWKtcz5cxKy7;`yWG`4#m7be4+icPS-J;J%F9yY)mcEot3S=kpCxX) z+7srW|057s|3oinmb0sUEceISs1#_<DR6x_*0#v)66s&pQ0^U}7n6!O4&u^otJg02 zu1&WR90yd9;~+s<XdEN~f*))MtR_Ng{J;i7<Dgw&9WHEH;R44&Cr!#b4vbe*KrTb$ zpbO@p|K~tp1r)uY#{s+AHx6{PcLbUCkZ@i`E{dglRVdoemGWfyJgK}pxAOVA@*vBp z2U)&1Wg(XD0}!m-7b2^&NR5?jFvRlx1h&5mYx?4cJlQTP&Ia<_hu^W-=%tHi%*iP^ zcvtOo;lLTbs>Y!@`VvRAFoWkI;Xs|XP99x@hh_ZG06_3;BE4kv$9*LPROQGxfNsb; zGE7hW0Z8=3Z`fbzK)3)rI|w4H4yNbyXd<P2qsjlRa)=Z-G^fBL;cu10<aUX}tgfNj z`&KzzD&lxsAnhLEwTu2fQnwNuZ&Z=v?I_AZ<LzjG;D=)%u+#~u@dFzSjkjY3cAN|Q zE%S%t?RdH&?|3skaRQLP@$q&dTmYV(1cCKo^qd}Vq?B*G>2I%71bM25gu_phi(-e> z2BB}SKS_CxrqiYJGjc0GQ&%1wP1J*<=`6}Zqv>pbVC6Xw*!>Erv62mjM$>r$JKu#h zC5!m>a=($r)y%}QRPI!OL)@@y0XF;L8KC_3DRw<7`FjBy&dXn8`=5b??Z2po>OwRM zUtR=(HDA<KGlp*SF~%REFO~wA<P?bD%-_IYvo4j}B~q!bVT2c<|0)%cQ<q7*mwWBP z!&m55f}Em?<kXdvg*bH;K=8xW5LmB;)cAo7hB$Stz^-#)zif|@Q`fWMyqq$&{|(4r zoKrWTQTXyk2&@jHu9{PHn~zgE3f(NoTRbF8yj3oWrOud86uM2ylQFkT<#*&(ey6TH z$QbHD#@t0&h%t8q1S{`>zz$VNjg@RL#F%>pcApDt${-4bwk%v!213#3nkhWakPo}= z;k|s|jkdR?5S<boINlhG8hB>#qKb#|$e#PDL|*n7KRf^={IJBdRS!Y|`1m0RtRJJ^ znn`r0k4gUM^oSIAG^fA`;pp_3+%Az~bq!;^==2Y%h+KPI+I_-n7v6qSw-V$URV3G* zqAbL<rvZW=o`JyPE~Lf}Y%s*NX9f103tMu%N3K0jCGv93_~BnbE>W(%00rRV7a_2Q zjCyOX(Vaf7VZ&CdQlAkWad*yDF9FnO^^M^yS)59Z)kNxL$*GQJ(y7)|D$P+Ek+<gR z72K)sVfE&TJjs}&{)6kRdKKyLL@)akGPQSNVxo_ICMP{*_C$)l_S*bsM!DU>`~B<$ zuPW?;yjN*Y=XN^%?L&E0Wl!X`6a(zbiLACi<<&}d2O%rl<5_N?{Wy`U*bfu3s{J-I zSF>+o=IZu4%v{61mgNT7JMrFN`!<RpiJ6Ht?c;c3sLhSu6F8xjVl8`PW)8E5vX!;% z?^(q<_IU2kLzce=;}WBy^r%&i)4@9(?hqeW>UG>`v?@Fgsd%fS-VlepiPY+Y4Eo7Y zZ%O9c%&c<ecQmKkBc_z2-a+;(^)7D?@OfP7dr$7Z&$}xJibe$RfdD=vpsdB5d#*l` z+>ep+ZI9K@bU8OiR-Yid(W>@rF?%gL>QgE9U!=oj2iMQ=DXTu0YrQq{7jm&M^z_KP z4|BQuI>1_SO5>!d>PwUrpMHf82}Yf-@c|2-q)y$yH*yi$d)cNg?2m6Lr#7vR@1e=q z;#t9@*){H&Mm5854$?4gcfi$ha1Rb7<te!%)psa_5%N7mRxMY)aD-3+FA7Edp|}Td zSZ3s*5foOCiyvsc?b*E|ii_PnrRrX}Rrl6a2cs>upxu2a7i)L4W07{3p%Cou3z1dj zNKIs*0*kY|pP(x|H0-XFi<0f`kK$r?l~g?-x9VzLb<l2VLAzI?T%6rFj%AT{uZ%*l zdmuzst%B6pO$8Qb_o{+k%|pZP)#ajOyVpQ*v3rnIJvg`OA-d|I-PD41uSvN$yK$Pv zBJCcELa@6ABCFOyYV4*0i?BP+D8=6{5zmGJ(rEQb#&oP-8`p^S6}dslQR^UgmRc97 zRbk?d8;RCK9=7A*ovLJK46E;3(h+xHI%>ESTc0=kIPo+mr;hqPE{88XI;~Y<eJd7U z_1z`fp1~n%Y6IL)sSS~0$px`iwTYXN=4i`o4t+<B#2x6l6530tSR@wjLLC_QNkraS z+-tP@sn!-0aN?1SYF8T}&l;qUdU3boPR7%%a?*Pu-O*mFMiEhl_}CI>GiqbEh03mY z7fp4eila7>$}63;N_Iss&z2u`)o97BNT=AO(Q#8`CQi00+M}Iq8Ek70IF?I{L9VrY zyi;w)4`s0^o`%yn0bGrhI{LX?6Oj$?)i~tUBb38H2kvvfsmBYjZz9^B*09Y9>uFVJ zt#FvS13zp*Tw=#YYcM)Gr6O=oDuzCYxR(h$n78BO1i-8+s_md)0`0fM2Wm@Z_l(7x zGi_=s)?`)1I}mC?l==8qMIs(gtF4j0z#8KIzOcCZC$gemRIMegw&6tuH-PQTbVR!O zt*W*~9{RF>EYr~y@xGuORfl|h*W#4DWM^wigST_RmGh#ileVDVIL-{4B-nxMEG{`= zpGR<_089bPx5rJZ5AKavccalUHJO(K;@!zKNuSO*+KW?Ibx*4oR$R9x+tdzHrSvp7 zEvL4pl&Y89fi2iuXLcms5lyy7qOq9#*y5-iar1C%2u$tpzU&v0C*pL`u?+w%uvUn7 z&Q*<4nQM5L6VJq8Wk<W3D%n*yJu?OR%9gn}r`}Q1B)^*8b280oo<pF$vXj(V?mpZ_ zI7HOW0<PpJ$f56a$?YHLF*O6(R?kejb;MX@@pE5Y701plZcVaVh1bbyCShe#WP}5E zHSxNC1n1pHo1vF>;;vG*4Dkg&NVO)r)oz4wphcS_^OCW2LhX*6`aV{rpQLIJ0()9B zCPAfH{M_3-yY9)W9cwKIYmaK9YR;zJwRJd&QAT3z^i)Q*#J9yrtDTccc4F++n*VLr zf=Ny-*VAKeTFV0*<|gCwMk-J!!YcdY^u~0&JI!H@o=U5|kbAgQhQA@k@sNzpk0PVd zsuZFw?3QN9?MLo;@ur0p4$V1Qs%w5ak?NFq6N}HS1=y)oF`@?h9UB;(aX@StH8^T4 zor)~<WGf3VpNy$CeyD_Txr|64bAdI;jR<jfKJLKd=|rSO$A=^!7+<=pWZXE)M&>Lv zn^mqNBPrPlKXZnFu4m82R6A~Byq2rzJTI@q&8raCc(J|{xs91-Yhdsx)}2_SSO~{N zaZ=HR&sjAG>2P`Gx5wZCUY^<Q8GK@&m>4B<2s_4nKHb~gvqL5uHvhIHkNGxtN|xD$ zJr&RLG6%7T631zZ%~`cf7wk9qiBk+a$%Io6`w}LcpxFH1rA#F32A1VC#pcpgnQ_=$ zF(9)PTlUkNnV2qf51U(-%DloJ$xoaO*<8sb^BbF6+`IFPTA9Dt{O7vNMr{7&KxQ~L zUmMAs#2!SoINh=DXTn*O&7Uk~j$)6&-HcU@D1fhpG!7v}_qfvzC4O{}CdOhKfXA6M peaiDe<pk8=*(n*T%zV8%Dg)>&H5aKI=*51Shl{N0Mw)3J`F~A;ldS*% literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/pairToBed.doctree b/docs/_build/doctrees/content/pairToBed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..e47b8c02f11ab5b2b9423413df061c147d7aefd6 GIT binary patch literal 61156 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 VYkVrh7qWf{H=g=3u9cy-{|DNU=CuF- literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/pairToPair.doctree b/docs/_build/doctrees/content/pairToPair.doctree new file mode 100644 index 0000000000000000000000000000000000000000..d1b3945f4f1ce87f3bd73797d8fa3dbb0e2b9389 GIT binary patch literal 20533 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 b0O+`!h4-iCe2PrW7Y;xLYvK5>=d=F@D9ZqX literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/quick-start.doctree b/docs/_build/doctrees/content/quick-start.doctree new file mode 100644 index 0000000000000000000000000000000000000000..d00a93bfef665e6d4770c3f179bd8b51fe87bf29 GIT binary patch literal 9397 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 DDP2Z| literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/shuffleBed.doctree b/docs/_build/doctrees/content/shuffleBed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..1bdfc48c6853b7cae0e5da71339b2097581bfec6 GIT binary patch literal 25403 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/slopBed.doctree b/docs/_build/doctrees/content/slopBed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..5dc021dd1670735850cf3f5f0591fddd10ee8768 GIT binary patch literal 16258 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/sortBed.doctree b/docs/_build/doctrees/content/sortBed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..93f3442d6dc2e2f04c5faca49ea8231f4e5a6d5d GIT binary patch literal 14950 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/subtractBed.doctree b/docs/_build/doctrees/content/subtractBed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..cf0171b0c6d0d876621e1a8f55b1c3520851afb3 GIT binary patch literal 13559 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 GllliS#HZ;1 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/unionBedGraphs.doctree b/docs/_build/doctrees/content/unionBedGraphs.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c93d8fdb02cb8b3311e2a4914ff57a86f67edaf6 GIT binary patch literal 23131 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/content/windowBed.doctree b/docs/_build/doctrees/content/windowBed.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a3ba55b88f36a469cdf7f7120fb55bedd1c0e7cc GIT binary patch literal 36219 zcmeHQcYGYh^*1(d=ZYzJfPuw^APY-p8%z<^#&$3YGO>Li5`=QPTWN27y3@|ySvFw_ zB%vjwLJAN_LP$a&38|2fkdQ)p@4ffl8!5l<_s!1U-rh+VYzX{5(I1-Io!8%+H?uRd zvzJaS6sv`LtyK2AE7hXyr+7JPS86G5uVt5cQv+{WM{af{KWf)@j@iDqci>I$=s#}C zlqsvbS9hOab#xV$DSND{YNg7ERdZ~sQXd_%l~o<Ks@rW<&X0|;X4uZx>IwvA^hMaK zf$fhkE84@Q3SsiTzjL%^t5U%lFI9@wao-xs`*zW)RxH1!@|B`Dv#)=7$op7emo411 zy3}MeyjgwyOGBLF$Z>R;T^X*b0$DE6bnRlr_WdQ^?7seWA?Wb{ttV6)g93J?U{kq# z%_`e@zXsuO-KwdV>gzu#q;(=_ZBNk34>d?tcDAG7dvp5w4-HAIwCa9-#1?(4W3>`Z zQXd`7tDWB5zW$>^sAIq=ZcwXG_iNSB(43ZEy2$qC_4Uuw;Nk5dyXejD>pvi*vC4u& z^7V4f8nT`I_EJ@O3;OE0ef;{6Un|uRE7i&%Kzwgu;O&!}KbBX%Jva*cK|bGGG~n&q zkqjz-r(d&24N%J4523Yx;2nU_Qu%SeT2}?zOXsHKW`G)k&&#w>unT0I@(u**L4kL0 zhXZ&g<M4WM;2mPFr{-pa^bSqZK%A<2rBpzir@X`Z&xXR;oNp^Xn^)fI9ocnZ==<3% zBGDND%zE`wrJS#1*REf;wOTFvSu_woTc}oQkTa{}bgf<NR({R1F2Bq>Jn)tb<!09M zBWyI@(%ej6i|!qfOXX`dRT`?-V5cJk?+G2bS;hJo;e79?f!xeO8BGAcI|g#IhVq4N zidJ4WkegO2`d;UNcXV#HW=NMU&*!FV)UE-q+nJxQ=k_j_Dz=yHod&w0F5U`fYHn7+ zDV2*bthaK&Th-znc(n|R90N-p8+fZ>$wY)eKkqo$da-k;bGWlKH(fBi;~gk*LWgtI zfYUMHEE{k-2b`{fx&r|muyw%f#H0_l+B=Y1dfG5J3C24)@J<1Hhs=(x59RAaNqodd zenjQRoRoJe<UK9$PN%%f_L?$fOKG%J&MT`{wK_XX@DJj$P=oB9oy&12a#d%i<=c5x zaBSZ~9%$S2tWw2VBaLlsw{>Q9+(rXmo@yqNFBW|(Z~0?(p)_1VnhG;t$I2BeRxG!M zcAAE?jQN6@%o@v=lyB9?kag_*sL)56tAv-;;gp>(I3`z$4Bghoie(QELzCr5uO)CS zmzfz&LM7B%)F2<B=~zoDP;E(5?HXES$c8jEP(i51JUKhEr?-aQT-(l@(~URJ=x}=a z=b+idOzo|M-_{4-2D%|p2S%s0x)9n{D<diIiSXZ<fwz%}3qdsLG|F>Ut305|$m)eC zbAc6iwD%;)a(3YLfutmdGZ90G*BP3nx2Zk^tf|0SZh7Yb_Q`>_ne6o~Ev`ekwglc* zRxndGd7VP#CKT#ike>~dDAv65z@<O%&NmWm5s4fv$q4{`xUuLx1(cr}co$I2-60gy zdLZyFoKWk*3AKJ&i`IF_HWYXTqxC>s>wBp6<F@g5Md)S+-Y^aI_*O-G-bSN1NV?IH zz;lep!c^}Z!GJF{x!!Yg3&SBoS2RS}mPhLM%Fcp3^Zyc)F-AKab}N;@tI}SLF~+*& z7-J05jOhNwk&eY{Vj6ZV5n+Xxn}nJVC)EP44yFz%SEMs>*kx=Fym88M2D*&3QI1ab z5E7qE<kryGBnjJ+guTY(TgmA0&L!0*O^1U;oz0i%RIvnk9%IUi>5MES`r&FFgIlI| zbSBlBBctoisw$0?D*19J`lpb%aK+F&6{}p^s6?-zN9aiX)&_KV_Ky7MSlM1q+8nVD zmqsu&M;C#PWqE|RcBM65t(S}JIz$vmQLkBRSEcmrO10LV>gkEOO?r?W?cBE1#KTVZ zAWYkF%X=5WTTc(Xi|LkRCFpNQgfb}yfp-Z(+9u^^wDJWedx}e2($i(&_sqb17KlkV z5yaEe^-+3y47%TYHblQX@UEa89@CO)za@un_UM?C_e*}tyAlq)D)6qRA}N@>5xdMd z&zaDh&xJQ<0p7F&?;2R-d4czQ<IJnXnYmepmG=Va_4lP)TbqpcLZH7W@Lo(gCV&Y; zkP=@Tc-OU;_$3oc{L-YvF9XY$2j2BY;%jyIX*owI=cChly&E9Nje++HYV;`b)%HZc zlZ=jX34`{0d2py)Eo@79H^JaH2i_|wUKZK<3`bQ*tA2IVwyaBb^DkxX(w|As)+yG? z6)8LeS{q7b8*!BUJGm?R>x}<Jce_qaHSpKQ(Ju`D;`b*1tr1eG&9=|y^u*sO;UCN# zcBr{|O_udu#U}P@JbdpME%*3ic|3gIlA9&78*01ly@n5Rc%0MEb^3{}!({MV5zYT| zM$F{9<_zz(Xlt(vyw{sXe{*9*a$DfNfib=SO+VH@_q6F<Z*R>q+1?e#H+R4{>_6i~ zyf=dJn*#66<dCdHh}@>-U|YL0@ZLhGOF^Q5=gBqQm}f{89JSIy^slh2RV!AcQmk1U zt69w&c9jP57~B9PK%>VXt1GXmSzSX-$cC(CX*LnDM({ckt#9pcZgJWL<|?E7+o1eo zL2~cyF!(zH@14fecZ!8M%;sFxU4eJEsc9NyzpKf$-n(;$jdx*~EmNai`7S+^*QHI` zB{O;V$e8;*&O8}&pJoj4UOnc%H}Kv^Z#K^jV%!~0wziuad_T;7S9}nDUz1SbAUxvq z0hs)ukpCbo^P#}|FvN1m>fS~hxIgedLTRTW&u_$ph@Ho@?=U7k&9rj(#1Ws$Bme_% zXl%L6!WJ-o7K>q;G}I2mddw+f@*0!Mod!3rII?b?Yl(5|?CcuHJdvJh?Y1^yj@Nf& zG_0q4cFMq6J42>bIhJlr@idRKQ+dM~0<YdSWJt-J4BUaKqr8t9s;+Sh@xP+8lQT5N z4Kk?yXgfEYZXEtG4yrkuxknA>eH`BUMBsgrZrS71q2c{#5gb!}D)2r{9-KUid5eA2 zXIk|J9tZWGh02_1iM;E54&r`3@V)?2GN}I)g3DRz=uy?t05wk71^0Vj1hFp#-j^xY zL&Oa=;{(fA0`IG&FoT*&L{X`)O{mn@p%ka0y2ib4K!9%s-nWc4U(woZlCkV4wRtpS z)B85W`A*<{m)bn)++!B~Uf_M7GDxg68Vt?)g9*+0Lzs1@m{r=B_ai9t<G}lgvF-Qb zwnhG#(hY#02HwxeNv^d7OyQhC_<7*{f>nb6jditF2Of!SBnEVl$Oc>@P+TCw>?@zL zO#(AhCY;ViR<QwB#DE{G32G-F`^~fZvatVeN(8@bRWjSV&Lo0gLD35yVWGTV!#KYQ zyx-CSk2Evb{pY%m;P~Wsf%kiIy&Wn((&G~=OvYwV6Apix#wksso&>;3j)G(u1RabE zWhC>5iAFLTj2r(5H$J{}^!|jP_;cX>1@4jL`#bTP8T0%#@cw3Mn#MeTZwhDcAGxLF zF0ANwso2OTS`-e)KEC&WjC=m+%#v}>7Gt)5>2c4$1MfeKlI4gJu2DCw6E}uG5!tX? z@YNJFbvWy<vGI@E3-_9242M95sp5DA?s~|~rUCEr%hcW|0ySN@q}@=0f9sG(s!=nf zex|PPzZ)uXD8hkGzU)_{(N5G08fC0;$HtUi-YS-`cBD9nYOKq1oPu>E))$Kye8ktI zu>K!gkJ8hdW}2}v7(-`PwmJ;nGK`eC4v)La>Sz$)ecem>9MKrVazvwMiAt?2hg(B$ zs@Ve2(|`G6MQ4?QL~z+06oHy6;-w!u;yD?Y!GbOdBM&uCgq$A=xesjE;xc++fdC}E zpebRLr52(d(LE3NO%7N4paQm7gd$M;3KePiE*ZzW)9FB!;86Q%l>G(e0FBZgRX2;D z7NATB#A&%Uu|)+A6p)D(I0*GnfKS$m*i;9j3Mwo{5vW6ij#h!p<0^2N8O5<WRHGdx zXqHBkk!S=GsS=JC)ZqfVB!oQ;<l2oIFhY>FDjQ6O?Ao|(S1ec^kJ4g5{6wE(Mg>ic zX{nG-S|Qteo@q=+003q<c{f?BBS8l?djg6;9VJ}TyG<4LqJ?zQLqD%Ngglq@naA1Q z+Vu8e?>fPJgmpq=J_3(adO~9I83|)+#0h6FqUj9w<Kl#Hih@s^A@c_($Wg$95tKO( zt6AcSS;i76hZCw(%+!8v<b31*qX7i}|Id^%WHa7V%V8FTa~Fz0b&DZ&3Sb0EJcc6} z#Tm~)t!RLly)d#ss#Z!xtO2T3xRdMl<5M`%h{FtIx@31-SGCfG{R!wm)iFTg*hU?T zAI?k}-js|FR|^lUrmExcD^SPFbvn75ZjupBayOkifow7^m5UF0P87;9ZNfoMBuWnv zdUl8NNuU7BpNt|<rwG5a8;V2qbTZ%w=u`nYO@s7%)22*WFH<ns2D6i+98US<vF~XF zLm#Y>j@TF<<tum+%X7b&Z(+T2bKjaS-}bQXIfkJSH#hprt)11nHJS&Bd_^A7^u$pr z-#U~MFL4iIxLFWuwXyu&O35!Mrtaa!)*@d&6jlp`y27L=w((TtNwjHg8FNE<Eq;gH zJ<^SfF)nvtMFfw8BhY0T)aBxXrcaHl71)6Jh=dyBF3gLi_-sjAbX!<ywJZ4{F%j>g zC-phE)e-G|Tw+Fz*r+613-zO^p51CYP^_x>I5A%+R8>(X>Z;*J&4h_cqj@Y^W1l4F z(Zc;wGUHX&c0h`x8XQOZ*0^29zE0XqgiVRGX0~G^m#p!WT)-F>Yt>aXo>#??DTcBg zOO9T$%q(GpR0*U)e{gDzb_yTIJInTP4OY;P>j;QWtbW_7GX<+vN3jL9P!*-}*sQlq zI$&dHLjVi$PBR4ucR+%MZy_O$FmnRSQ;Ivvup>;je386sS0#UFj4696Df<M<x0k#* zMab~|bZL*RDZ(|`YK;K&^t0jqufZ}QJnROm*20EJmfWxssC8o4^#2UI`<W1N&E6$^ zWLhug-4L3W^Mzri<S6TjayuFC8lMkJXQCcGB6_DO$gXN5F5$7WPz0)1aP`1~OybWL z&jP|@AQP)6X@Socf%~+;{f`mhn%%TXL_8-HF?=*kb|ZAzlLcgAmu*HpTqci(&G>2y zs^Gq@C<2ueI@*0?9(NzNttPuHb*{!fPp~<E%%_-kkj;vnFYr$Z;km^H@h6=hwRx)C zpIDm<P!DbPW&i?74d5CoT!<o2gMzG8Ae*=fo2kMc?_Jf?H2=KtAJY8$9~oW^Gh#JK z6@+6k<R~jI(%I37w%ncAh{LE4jYu3df@>JjK@q5uAZsI%i8i8MUgB~@Y$%~zjkrw^ z%NkMEEMh>-Vvh=FB?Oi1qsJqZyDGOQmU|5Kkeib!f}}j$fZz&6pnSpBf|E^L@MS>R z<q?mnX|i=8yIqs*e@G;nl^z#DJ3>ODv>w|~>78<WVx=!aeW<h`si)%xl)e~6paQ|x zN|Q}o>7=(V(TL9w#7i~e<leeWK%W_cN?Q%bew6%Ka(`mUpN)D*&e+sg>T=wH=vSZ! z)Rls+MJJ=U=v;DYKS<*^e~%0=)m2)Ut3{aSXklcn>k($$92?IS_Sb~$6S46;xjnIk zpO5;c*mwbMz`!p=5vUglwl*-?#0{K`jTdXgYX$K-jW~I1yhK1>8iFQc<7IMxV#!~Q z`sUcU9(N%64JZP2qo8Zi$tW&58)91*wR-|kuh3*~60$dIveK4!nMAX{UMYlL6%uOB zyRVkJ6DxfS>Y+3{FUh;F!8KIA6-A(4E67@9GKs64^w#S%;_C(RHjOyBx85M2w}+sK zynBb-o>=ZTqCN~Wop;}a8xZ`>C<1k-U~9q2CN4O)uD3OGw|a}F@m8VnHcdmey0?dq zykKUV-!6#n2od+lY;$~uNFM**Db$mO$@bRF<KJBXfMs@j!uf8{fkEGeB2e!Zu6ty{ znMQ&?F!bky^F2cTJt6sHP_~<JUZK}>QLO1U6A#u(%R0KTMjTBH6UIE^6Q-+mo?0Hs zW!e`Mt+gvdDyxo_>E&ZM2aVgSCf!BHIcu5M2q#c1JbX+bO_RiC8G8a5css6blO_f? zDJTLl3(JKQi843+Ua@HVx#{gDRPH5GPyhd{{;;gB-Usucg}fg{pzafc>y*QwmJl~{ z*dGv(4>mxW=deE{6|pw0K8!oL1O3si=zZyMqFTQ$t?oy?OjmydKb+YzU44ad>qmtg zr>j4PUxE6#T&I(-Vy~azRc!SM(#*INIzBi3Ng)%HGMt-^_<o8AJ-f{2(*TG0K7%4q zpB3V1H{?yhb&}vj^ydWR^BSc8-ALeDIT5KJo%FlXSXGxjJ$RwlOkj3J5S$N=zpNO| z=3=&*b3?2TUk&2KrA!ioS}NLt?$?!UTqN+CZflFpy+&L$^szV8#{{u?pQnjS`1Y}o z#~Yw|zUi;N04<u0D{1|UqFk$SuQX2m67hN-=gNN>O2Fk`K@q60ipps>v<RKt)M&mY zP+!+jvb80?fkk~oDq<E>-^88V$@Q-2P=qcxsmq)k&{ZAo%GbK&<Nz%E*j=%c1G>U} z7V29dA?@nh_~E3aU0q{b@EzgEcJ*ES3e@-HI-NMTU~|)v42C;5%wlueq~{i>?~`f9 zrQ-31_XFV*(==>&kzhY0LeHL)<42$eH~knzpnf9U({3mnRd2M+p9;v&G)Vs)yU;Qp zW?QsOTTJc2w)k_%-E41Zi@y+cTJ8Nj69~T~UeDuB-Csd$xb@d40`(hFGVO*opd*`F z-){x#cN(g-_5EHdVm4BLz@1!oA<_Eu)+e^THqFgfe*}`Ww?E;BGeg?jwZ_bU79MPG zf5ERn{Z+0T%dYwel;-x<*lHEy7p+REzmZMGrE>8W_IIHi(<W?TktqKlLSxzWVQ_u` z6kz;+q6pN#gkRbX#i4qQHuY}-`Hu#9+y&Vb?4oYAu(YYYaJ$`ZzUz#$rxNe+*QTaH zY`ArA6xd8CN@6o1b;-DNWK)}(Ay6|lRBM}>B^9wKRI_m>cg*%gn+ngbkq)i0vwg!# z0aF^*9Q<(RNW;3p*m|xoV#At;UxAu0*XhKeIn51g7Y@x)3&;yw*jUJMCGtACS}5dW zdWEekl4l<x^z1hKMIZxT?295$`w7#u8_GmQ8%=C~0XaZ}JnouU8ge(AS(;cz)M+*I zjmGT<67TWX#14YkaO=S+0<~C_OuL~C=t$GV_^_p;jwdImLj*Er4s|H*<T7%YlWcX? z&ktSUVNU8WR7;bw@WYuaO=ga<-QhxwO=byx1!}2Wr(=gi<t8{JN*zIR865NwYZ6Ba zdQ7;mNksgfK%|~sA%7GgVV({Yfm$YX)2`;}Qr1S)cM8bS8YFy`U!?Bo?9?wj8W|;? zmJ493jB|}mx&R<sUb}^GHY6;sly@4!bj6Cclrk;_;u7vkmU>oRqp4N61Er2Z5vXJF zKitFak`**^mhv1IGl{fXz>d>k{i`twZM^>Y)J^AX-MFc5%K%@5JQ=SMXP>xXL-yP= zHk`^ABAaf+oFsE7#|y#sb13tT5l#RQWPjL9)rlYgReMkb>Lg*QXA!8C=$L$0yM`@A zc1oR$dc@-?f_Q2J(L@@~iXxyo4OR5Q=>pQ?&pxBc8q~M28o_h#SW2x$9eACA0{b9@ z5QPNQ^>Wet)^cv|0*>qIomxkhqImT22ErxD6AXKjQtFAQ1^qKo1ZpEe<!uJgKT9qW z^k)Hayi}|?y$6#A#R3l;H#9S(sCsd$KIDdUpM<MGoh_t7x%=c|Lb{)8qU&mMN%8S` znJ=c)CXj;g=LnN0$C+%Fi=@dTfz=k&CyA=+cuH+W1xV&l1nOL&63Ts^T(puTciNe6 zv9;J)-f&8(^HB$?PeFlYZ2}rAUmzE)R4D+d4zT1@%!T-YRc!&+Z`W;-eQWAzgvhw0 z9VR+SB6)#K63+H6BGn-R>vkVfDc}woLlFhmj0HFChNQ__+5^v(nl37-VY%mqij4@G zqtSGDmgFMIKjRw3T-1wV+XT0)ab@9RosI2lC9T~k!7?rx#I>skc#?XkU6sK4(5^VC zG2DiV9*RIIA&_=M`V_*b=xW_;C_4=?p?qCO-6if+O>QK^r#4hA?o6pVD&el}C;~N( z|B<VA$VF1-MojKxy&DGLMS}nIIR3>G;FA@d8nE7Y<Puy2>KTF(2JoeF(aN8!h<_PN zhT1dn11q`$o|b+7*p-nV%8zz-s%H}@<C1*bAD0Vol6JOtKN7xzz<fjFO8f}aRRWuK zg%lFa)opPzF2x}Fb6Dz?evv{w7dPO@YfuF0dH8SoDAI=)qdp41LT4JYJYR5L5aEFR z3*{mydd4+oc@gTxEH4(^Yc+2Fedz4gt~nbA3Gr-<ZfiYHvEvPF%pIw4!!4&K*YNGe zLUoi!JQlePb1m=c(~>wdWhOtnEgZ_o&9>N5y2L6C<J3G%Z*tO8rbV$aHrKbY-x@28 z**)={xILET=SOQiq|w@5vd4ATy5{Utt&4%k^F(nLAUa?;58Ez5oB-S->+>`Nbsdy} zH))l)H(!G5cF&CB&6g6m=l_TPFM}?Kq?e-z)b*lu+6|3DcekblS7!s$Om7g(8#Sg* ze6Ns;)_5|_^d{Duc)VHgUm3@L)dcut#pdv8mTacC;76cdBj8apg~V*8w-PAhl6>5; zuNB~=Y}wxZN%(aHW;1;~egx_^fla$Y3hm?#ZE-U$#UT3aEW>6>DbyXf0pq?AMWEh< z|E8Ie{^ZT{&4P1hgah_(k&C408P}NQt*95XyiIW5u5tU%LNh&2;fx)tUST`LX|_CF zmkqUAuZ`7f-PTqvD1=9|p|y?+bbDC!4syx3lrL`AcM7+paG_oAB5=>1mgH_wg>~PB z0;|NrKkbI%(F6|~y7vg?do-pF-S^5xQjLsjLib+Qo6voq;J-hPf8PZ7WW^Bq0857M z2k|3N9}@7i9BqXj1_=p~`(eUlTvCr)_<n&+ik9s?fOJ1XU`Fmo@gq<l6WFvXq!2nE zZ;P98DFx9#!7|)O$gKEDT*I`VLJ_D><G%@9lAk<qKO;Dwjc~yIb8?ZCJmVUpd>-{; zlrISG7d3AGtqfeg>Y?92Wx$pyh*z9;%xu1Fc^IfVin;WLN351$MvtT8IRrxoKuYos zi6$)6nqFN%pOWl4aB^!AJq9|Fc=v$|SnEraKjTvKxWm3IdL-2j9rhIh_dI@d{3_%{ zM0^cJpuR4erQJ|*y6r(5+cyOBn;KI$wr|Nr(m;*I_HEXi#`Yb-|85-rdlTT36{Gt5 zEZNw8fFFVSp@7HF<xoE&M8+lUxaWQ>kV(O^y=hYY34z(veu^J~`kBC{T_J^F|9M;7 zj7u4a{tK4ozz_9HT*0irLJ_E6<G*QWBtCgV`;FlIHo^h#-^oQ%?u=^;@_W>aLH;1P zf7H1BJ_mA*gNj>U4{v_UNWUH~4?%i>Cv8cO=vtPv+1$FVPQ0Hchl`_kk=-XlV?6H0 zr4Dh!|4AfDDi9j}&r;dbf8ir8uKEjD!7YD95vacj-}Ixv7Z#ysFqwEI;_L6i{U0Is z{h)O_Gjby20f9-HO%r3x{S)<wxkVt+>In5O)I!;RqX^W0gcP5bGA;$sF{t-DV@-jF zq^K!);UQ3a;Xk6aU+zYdV<xom%z+2U#AtD<pia}MIt%PA7p=mZE_XWXO%|9T_%q}9 zvnIeND=I&mC9^;ZKLRyJz@scsMu$6>5Li24p(jdZ{$QR!CI!p(W=M5Dftdvs;76bq z3T)aHQt-$=ZE-U$Wgz+@mSGkst9@|=yY7b~Q2XP*$pR!kc@{W8aMBSDcxU7yDR;&- z200M*VvvIb_h60Nf5W8Bs)JiJ@w_Idn#=LG4=n+#(dU=*RY3H}cvli{*rChDdzW%b zSH5gk*?qidnF!J_Sy0uue-?}2Nj*dV93quH{pUZDTB$?91&%umMW8HUnSNwhB2MYH zFhv|LjF*IrPlv9ZyJ={qlchp0X;{se!FvSi5xl2@-R^NyM}iXU_XHF;SwPt8)I-JE zrJfFfT&5wT)T1r(AgQNQP><HAI`u4<i&jNV>gi&=Nj=?ypN-?Mm;j%wXsDGenR-^? zN1%=o@F?{tq@H65k#R{o9@?t~GAUTL_drrTj=)Sk$Kyw!P7v6%E2QAP6WiiuT*^T7 z9+qM1QR*aI!2>6wz$@AKZ&DA5Po8>C6`a!|9PmC}E|PL%wFURddksq(WG#LK>I?x- z_utg6k;dL^?vPhK{=3<S+Qwb9PGnE28oFq`RO(~7T1HlTP%*UujNrZ}q6pNP!d0Ko z^+<9>z|wzV4%#TZ&kA|(sT|ZR^pfV)j2TH!Lj9h}L1%*!OxTAaP@9CU&OubHT@E@& zAfK!uqa36y@*p{Av!HI#s5%F2m5WwIO%BSj-sGTj1^>J_KHolVovF;YWJN=r&yr2< zDfoe<7XeSp$#~(LuId7UWLy%DNBDq%CMC=E9z?Pi5|~M75I+L-G=WXKLJEl>-xe2Z zG(-dX5X;7!vjtqj2SpTEd%=H`g-Ct!EHo@QBM}amJ93c}ykU|O>cu3k;BM2na<Do^ z9z3xC8|-<s753Lh$3W;;_M4^&I7?l}T-x$*L%!^`&07_F1gB7Jx1(*-W)B!96?n!$ zvB=%~&4)MO5h;E)z8rRdXC>_N<vMCn9+s$S+&^WJJE>;qpHZpo>Awi6^}nZ-sz3}l zwu&N9V<J=fzbq3Xoqi9q7mpUfT39IAp|IBEj^Oyn7wDwnHCYCC4fP1_#q8B$pPEQI zRn-9p<7`KPg)$+kGY^Gomw9#w<W3D4Wge}~gJhnI1oi0}RcD@y<)T#$lX(Kxo6K{G z;6Eddf9VAHWJNPv#*&%mnfQU#Gy!j99$8Bx2-ebA#Gbq^7to|++1`Um_6h<s^IVA^ zSW6RFtflcboO88YCvmZs#(JPXho#9pqw2Z1gb%Jkft57;H<^djC(k_37n~PFIAH!l zxoBl>O!6Ysi%DKAxYugj{&7UgCZ6h|w~t#+spfNPCH%ruxI|{H;c+xrfaQXhIYT6o zILvCAob#utVXmL=6=3=k<hkWR4!+UpO!5l#h+F?Ukt(S~X#JN+Wl#T!yCbrCDX75e zFGCTimkY`C?vX?k(WYUmzFr955E4Em*{UC^l^9ny3bCYBG*`yeD^QQP;>Z8ujs79B zQa6DNEORr8K)q6U>YPB8+U0~-3FNCaWRw%MEgmE%+#;y2(Wp8n+$tBXTAG~jTGpGK z@H)YNeH{O`3Gm5^R(b<V=7ihvBT#n;c=SY6#}m;T36XJ0J06s863C=r+1|yZ`ep(% zCEST0SSS<Nv@4|Gy0^B)&A60-=x<{gJ`vT`+i?XCyaPp`-iiMvBaryy8R0I$xjVuE z?{~>XQf{mn;y!u5n<Wi$4}JvdJp!KYzYJld7wya!Ptf}Hj7ycDqQuA}-}ruH{HsCo z={S5h2nR@w<0vB>apdA_kS4P*dkp810@}S0f>W`YD5>{SxQt7+;=Z_7giPub`r>^A z?s<$T@O}sbU*3lzP#+Mn({8904GwpTM;jYn67!WG6wD84Ox;92EEh@b8><%gv)(k3 zj|l!p<M<z&0H3TF5g%vCi1-A41nQFl9yO5yn#iXJk#R{o?v_srWKytf?;)i683MD3 zd=@{jBqy+GS4bgDKi?KN<5C8qe}QG#L<;JQxPn=~gd$L1#(&d9NPO}p@)g1PYJ>yc zUz3ZZ+*q8%ee(V~OB&=G_z|dY3b<|}8}RmAVlr}hJk%SnWHh=|eViJ)LVg`Uf4{bB zbq#l0degaYt&nlNZf+%cxetv6-$cbnZmVXyigc-1*-+o2a2c0s#eMN@5i+S$=!@?V zST~XXz5?HcF!1H~Pz37xB6ivhwW7f%Y$DtpHeI%SsUHX&Z_KF4u1)nrgNZIk+a))@ z`E#)9M*v~R`eT%QfXz)W<8-ug?_T;lH0Fb@`1B|~GukzvKXckUFSj>8Nu1kzW8a2N z>L+A_FVD?08%cjkqKuWF;RhDugf=@+F#3gDBz=-`Wb4N-iP+OWjJ$hJ6&sK6)Md%{ zPO)pEhz}a$sSxMmRdLdtgRdS-gfN#1NOx*0=d-!?RYGRv>4Vs3gpc%EHGKCJFNqfN zcuYjyQND%an}tHR`V~0B@V`cZSE58V-P2Qa-H6tR@g00OSN&GNe%AmqTWwuq$KOj` z!;aG?wd4HIj?>p~-n?nE`U82!4f#jh5JUb6KLYh<As!m?FLKdhNS89Q!TyzHPk$P= z%vE^&BELV1@oW(tn4Hhpt^NiODF1g9f%*sjn+!sBEy_P2VE=4@nNJ)=%KuC1c2)Tf zt-NcrKFWm8zd=T{{*Q2+g0m^KU<jYR<f2t;3P-J{qW(d&o(2$Ty*CQHu_N@f%gL@q z>lp$zvjNtk^(?7tXgzt;Ss7|=8qG?h^=yz4ty98rPQ(#f&kb2Lf9n^EWyFEj^H@Hr z?PfkW!iWn{VBHP>P3Tbi79;K>V2c`HEk@i|>KaCzyxpuygid6{{Xj;HxW8~bAmRuk zrb8A<BT_gTF~f5526G@lp!Gp00(CI{8?DK%MeD@^c1Q!ve2gG!Fo#NAL+i;yXMG}c z)|=2d3}i%WOE?}LafH@OLKaD_DIB$4%JNYSog=^zMm!Qlpq_yL#)y=@#fV1<SVse_ z#fZzKu3^N<LuW%GbRr{mf{YmPXyLd#;s_&lg)EXrq;NE1H_ORGCkqg0y#hs`R^q?W zn(SJ%UL|11G{DRW{!!>0D|HR6Cl8(eMCkOJ&{+*KqV;jY@%V@%v_2tZk<^;PQR@>~ zKB}S91CB7_Nhkt!GX5JQQu-Dno+4nUHo#hpc$(BTj5vAdoSz7t$cU$dj2Ll^a9kU4 zgb~jOStN}};b_ElEGG}0^#Fm^8&KdhO#C-mlU<9}XA0QH7+B+Im?(PAlIn)ylSdD} zZqMPKYx=CZiJo4N5yhV*OwW#(Lh-(kMN)CfN5wa>d{m?79B_mkpNt|<oAKY+k<z!= zaf^U$je)hXV@|3YcAPwbwkHB8vg5fRBX&GbnDR6(EgS53e#jzeN6JS#K85Av0rXUW zK=BJu1Zn{PjpAe%SKQ9c$1&LoBg8?!T2}>IT?mN2T&jpqB`Fy-szJH4C||EthpW{Z zzq>T(*Yc{So`#y<y>c@vm>4Y;eU-;`poZ|j!<pgoO@C*m%d>`@S<VB_Y?o))I4PG$ zZa8z?6!tkebKS#O%yaH><~z%s1<tlQbu55}vpCO}m2z`<Ub~M|Bt~teim2$z&5Hz4 z_OP#P;X91~xmmbDaeOr*Hyz$wi2W`@)$*Xh@>L192b9aoeVP;#dfTM7%-a1DsDlD9 zDgYG%%r2C|)6Z2^?vCL<n@eu4u`Hirl!x1WxkZsKgOHK$kNQdpnvegKehkk!(6c7s zvr5I#)OB3L)cE>f!wbIJE~w)~ooD3G67Ik~9P7xMg?I!gDLf4f!f7LR%~ux*+S6G% z%eQNMg!0wJxQx9<HmvYTEgPp<pPMh&Z9k;~)K}Fd_>b3n2%B4E>^V4;FKmOB+kAB? zY9Qyn;D^Vt!J<6|8u-cvp6JzOsO!tkRl@}!`1W93mDMwGFL$t0tBv(!v+_Dgcgd~| zcURR&)~St_v+7xdm<_uXY_d_$)*R-K*<(}{U*5sYoUbky;`2GZFgA!y^m6jNx<c;G zt5wO;$ap1g%G47+)tax2)ZqnS;BoURROF`G6?HX#%r5dc@)|zht)3%f=4$T@$^)}{ zF7EZh%h1t>1$A4wMgUVzzFZ5zo=33hxp|>rWo*8Jw9hA;b9`TJF??NBgV3SML){1U zrGsTqyvM0t0I=LbO6~*E0sk`0pkBz^(~I^{eMG&8lyVF0QEZ7utn4h?zGGu^*Nbug z>f9lE`}IWhuO*=wdP+uJ$BTJ9!U*#>gFD#Z)Jt#=?p#o;kB$vSvFods;y#*Tv05nM zOsNp~Wg2)sPKoCsOOOW7=cDT70=qx`#dntI_Q4uH7+r>W)%B>v*KqBzt|M0*TU0mj zavys~3Hb=ks_utYypg1*=Vsv0O?*IIy+TNevk}(YOMa<VRq7_WyMLiv&2JmDM{)Yn zAXa_l#S35EjLNHWhafygqdd@vpF#OBuX-hbuFg%fE8EqpgqT)*%(v@BXgOL|ua?^j z@pxTD1k2%1_&&U^Zjt+oXg$9^B=ZxYRbC@B=jil0$X23m72x@72(bu$t=wIZ@R)iX zZs(@gYr|b9sMqs%DkR0`bDO3l8}uV5t2YpAwxHnSr6cNgUN0C7m$eb=V#GTHcQ#TC zUQQV<?NDzd7~5KYXi(m@Rd2$b-dVZ%%|WW(Ou*^6ts5ZHo%}u1^d4{F)!A9RQ>OfE zUU{o`WY<*-b!m**Ez-lBftHr_>ZJ<WUKXzoY~?#-Swxbb<&moBin7sL0Nn~P^j6Yb zfW*aV9X4%zL%F8jhPzkgX7iOY^i%Nu+i{~WH(w&P;g@&F-MI|DDCfMB1P=>y&iMFv z_t;J>)Kw(s6z%O<0Q*^W7oiq6TQ<==?*@n~&1OFH@?gW1?;`TlQc=B|KjuTbcu3rX zn^)%!)+xa*+hQJ=yygrR!UXXifS`eezLJLHtM}sOK<)r(MWqUC%&%_1?Xp=x-HTeZ z)j29Z9^HGNzBf;-5~ce0lX!h7w|}y8)7|=gM4FPD#xDH>_#LPZ;(v#9*mBf|bnW^` zod+<)-iC+!<<4U1*X1ZH>GS1)Lh175Tshs(AB2AXu6k|}+6a<ntu6}a{`y10>BIPs z*C<zT=J0-U<%hB5o$chzWIZ?A^gq7(2tWtaNAW*5gTV~RKZXmuf`k9{q3-_!874hz literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..154ea3ff621d0e2f86cdd61974be2a3724da7b55 GIT binary patch literal 1374009 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�$Da!Iyt+b-D?F{rudab&^a(Ia}_0iVSWW*1JuROpNl^(Q?4W8 z{wGngt0u%F=4y(#-aI?PWL-UhTxPDJARAQ+E+g!k32ez+OTjiY50ePjwG(2~Tt^Y_ zlwWFH+|DFMcijYG%=I=Dkwkv4pCFEz8z{s^71A*l(hUJaRA|#Csg8Eqdn3h+I84$d z=O|0yjR8c^X49r+SxDc6rFL_ZwIkE#VA639KMQ1uJPt?%4>nCsnwu(Am$+)zxz1$b z&mRwYtUYYnRGY6iOjTO9F*j43h?47;i>WeGbpo*1)R|xx8*|ID#By^*-Xp)0GhjuK zojBnq0*>|kO<T=Liq~uBn;dC98RD3mZ`yRYy0Bz!p#WXNp<Rp2sxbw(1SF`3s5|CX ziWE`xbLt`fnaEp<x|@zy8Vd^&bwH5m6#3y5=2TdN02^P}IZav8J-T;0e6#&3Z!fkf z#UTQ5x=1%|AhT@dmlvzDe0>{h#2H}PaKTbT>=x@J(s$c68FFT4LsGp>WWti$iMCC( z1mlj%HX(E7nqX&ihIz3J>GmSLZ2LJxLhQ2=<__|+E6iCy+T3WFl~S{{*fMuiR_qnd zDh<d~4^<_QU#V_}XNRZ8t%SeycwSZ^Wkr3H<w<&-KC8nf!MLF6^6WxQf?|D&+hvek z3s)ZOfIP9AfyK5d>~QfBz_S&3GA6|f61SGc#8O$R$x4$KJ!jLLGKfEic)Rz>W%w3_ zkIL|-Y-Et7UX)nJ>`wKG-U>91P&O81Z`H9SdC(gJp6n-;Y&cihP>9KbRHUN`9XPb* zJlJx)Fl4MiPjEz@d$11`ln|*j+mtn33M9Eswoysvg4t5&$e<<X!x9W%c1fyrxOAvt z7R`2Lz}N<4M+hK&2j~d+AFdvotIgM1W~U;L$B<*{A_+v_31|$Ucsyagj*ie($2%(v zreZ9}tBwjnBQAguR~JBY83WK=6uQgUy|ykO7>4c&BwRk}khZuK?^4*P(vIr!9Du3q z2O4V(90gq48&LSDBF|}i83Or(;3KzPRU1;=s17%#s#$qLhXKXD&a^X>(pWSjiXPSD z#L%-Gnz0*Zz~KpMs@bD#h${F%pkuce{5#>JgxhC@O0yU#&4mgc)$QjLd!SGDUa(Q= z<g1Okv~pPzE4R#;qEE|j<c{(&*`LACh;bN!e$H-vo2wo&6N(>|`usLWeS#+ewoA7Q zwTi6Wm?_2G9h2^yTyHvUGB09cWhikS%(Q}TP-3Z1Z~@?KQ>z><8&g#H|A(dq4$YW> z88|{EyP&G|xvDsYKJ)h}L!yS3oXpn{TCpEipyd5hvpJyPQH?#O#(Mz42LZ;w+B}TI zGj_Gt_IMX71Bx+KFU9}`q9J#KAsFfAs+EQ*w`5KI?#hIyJjic#34rK(0FC{D)}6bj zqIL-eq{Dj9jdtv2p-fzfDV51jNp`|4FPeKP=4ec2=Tx;so!m0G*Fz4=?(dRBHJ293 zD`r-qqcS-M9Rf(NfNpE}A=k~!DR9()o?p5(Cr@k@SoAV>n`u?tHs{71QuK>ray*}& zrO=3Z7=b=UJNM?WGNVf-^e}fIzXm=^9<!&U<S$X|jVSpLK>DSiV@!9w3r_?tDEx+v z=@|@-ScDN6)3J}pw)48;Z`3g7^$BhOjDGECP3CJhX0fEmQ5m0K_Ywfnmod%wE~bjc zD00-4C8x1doYW?%v$eW&-CK$pHD!nyN=P7j8ED+bnZ~e6oLe-_5oJcyh?bN1P9R!y z6xJYkQ=1b<wsxo{+tH3G8@j{_(!nJrD^dpWE5M`TEicKw#0o<9mn-^&{Og9e(Fua^ zdjpQJu#a=!N0Fl(*}OqD8|J<ONDMII$0E35?%NA9r@Xy3lX*WdZLcD`plpcv{tCKb zb^VYh5d8q4F{ZfVV$!peWul4z@dK3!QA1l^UTX@?co59+xsJRu4_5T3lFrX{{05m1 z0TVS_g1Hh%$I-ioD(Xf!P>DLZ4+9szvZ*eVZ5Ytk?uRRS)J!2S#}$M|JOV}_!)?D? zJ7gZI;2V+QUYpEEfr)A^rC?{}=FtkeVbz=jq8|e^$~tkK%wrXMQ2uq5UTiHs6N!%l z5swU6FBUmrs)ws}yWIMCg^u!Baw>N_hL$`5mS6yB9<Ci~*(kVqqOzci!<Y^rIToby zBtHpc<oZITv{03OOU6987ch=n%0j2@8r}YiY_L0#C-^A<!&7xmoMgS+$zh(V*ik)N z%%~YsXu{Kyw8L3Opw~QI@i(G(v7R#2$$bX7I4|cM#b+vRRAJ}!D~UY8&jJ{&+nNM7 z@!5*I5pE*INqr8fRk?s-NtUF{bN?Tx6esn0pxP!SL7u9c3O-+PqjEW~NhR_mzkuW< z{LnNnROF~$6g^V+#mkgH_=^C)z7%oh%jU(3A2n`eBsvB=GQU9+UIG)YD<;e}q(7N+ zOJ^@t21Gfe8TpO|1PJ0^Mmz%U46?mk;iJ+Y)2{>&8t@7jfItM>r;jqeQrQrd1$nj4 zFSj}bEqE0yfKOg_L&>WZc|`tcm2otBC~?vxz6L}LBjx4!mQ2K|E%RChjcRPnvelN4 z6M2GP2QY>anSxf2NoR^fEavr!-6gU|$H9HG)6f+v6Z-~Y{p}}i`uj$O-LTOsq|k&n z!31>X$7HI4YGU53@Eg&YQ=HVdfQo{aWy*8h*!5P0-Jl>x0wDTrK%+-Tw@@~<rtH&s zyJAOGvYa-R%9H#KkkO)Xn6Wmy+^V`x?VXC=#UanHW?5~b-vu=Cdr6k6U4Fk?QKQnF z*RT?Kg5Lu$dT~4B_iKaiRp_WlT26Kc`eeTkY?O3uu{<xAo6U-6_I`!lxOhs!ApQfu zqfc2fIOu7YiK^y<%7Cb9o|E<vK>CN6_?22!cErf~$fEhMVn-Eu4m*`6`6D1>*g#)6 zS2Z71)QuQ6oHU6a0}+*Mp}aUdS9Y6RKCZAEQON>*vOfVfS{B;7^Zq}n$fNSF>m4T( zb#gxiE-H6gKIYR3yb<M_%9H#VkTGJ&0PQ-k&nj-j>6X>UNvaa}IpE-mRu^ozN^S&@ zA=-RiF}u{N{7y3?P4E{0M*H=94pF#^=8KBE5$!hwkp3mm5w?+QgJhfGiutkvcNrz3 zy)Um#=2yV9b$LOC3A^a=RYi?TE-GvH8He4-5Uz244QMoBQ<bZ+>TZbodN1(2Au0ec z-QNJ5vz;_}^G$`1nr)@+rQ=KkS(6aR{}vN3bLqvhY*dr8^XA)%9&wk}>WwN8CiFXi zs)c;JpW?d;9JTBbGsy`S^1}@k--97=i?TZ^&G(fZ8!^$zBA69FfCXsjvUMj}kTpM4 z{3ur;zv_n!8t@|+fU<yn!60LP+=~r4RZuZ#!%tuXTA;f_%(cLuDt=V+&uf7JfbgFI z?pmO%eASoT)?f2;g^#KNdH6~rK+u3+zyLTc%We|%OGWN7yhQi5PMXADfr#yjM{9F( z8PTs5Fyd;H)tkGOB<ME)VI<)~`fn9#BSsRhP3G^wM2kwMBa%zz_X-?Un{sM%2q66r zpksdyuER2aRMajVX>?ISn6y8EhJuu+LSxDNS>d8;PF|h0(ggkmK(tibq565nUln#E z+}%K*?7xA1W3X+AM6MOA^Jv-Ml?72@i=5JJqtK3jzz!5~OD@?m|5WIRGnK119w-v? zFJRyirK_d?R;;K>oIfli0HXf`G#q?;Z=~yv|Et(hg`8KnQhlQT$5e}}QgPSiT<I3s zL%1=Ar)&-B6begZ3B0nX+iaEt8xn?U96DsKqJZmLv`chJyef!jLoUqd0{d4}%&4Nx z%iaJ$_|*YN(IV{Y+wV0Ldn4v<sXWQo1R2N8q(i~lzr@wm*#&bgWyr<y+qtvXyi8aX zN5ifS!_b~>pyE2phK=a5AxzqJLBo)U&0W~9eLV$?%KiLC?d6HRJ`;%}Ddq->xvowN zip1Oy7*sFWK_vd9oyXls!6KT|>OEwtOXQ7##CR{~(V7*xW6JJrxru^CwWquhApnqm z91|@2ySP+yQ^k(*-eYDlDTDaqfyV?U*+J{Nlbb0MqP*9f<Yy7I-~?Cz@6|7w++2~P zJiNR%?6iqI5lD2P_JT%#P2)+58?_a`)sUlpN2&|BqS);g={R!^IJDtp*x)L<92Rsp zMczW05VhkX(ga+?<uJ71maxG3ehX;Qw^HzRIq_vk5_D^TkllFDf?KgqQMf2~Ag6)_ z`edI9HnJH99V7z~20KlmqdLqybRtjk=^&$@mR2njb2-bbuu(lqOsn<)g3kch#yI8B zFU&T#RpgCW6_b|$tT?H+0~HzVg6ekf@0p4lRmOQuIn^in_CPZPCZ|>9VHupLxPzi^ zR0u2~kbf5V*q!K1OKXa`qcS0C%{~2o$G${EXvHR2f!U2**1RCs)Y)UBcC<5n%8V`* zK0n^vCQk!4!vNH~dZXnwrJk+08&U5lPU<<JVwO{FR?2c`arH8@MPZ}Hu9$|FAPC<I zI6Ob;T^G!`in}hS2#Um<2MpTQtUUU1shdu1Q?LzbTd6+L=Mx=FmbWYPy8N+Jm&hGN z%DHiRL^~C7!#tvtLHwP7$7ofnAFi63dy?kPiXT;_@_p<8LHq?wef5Z3Vc`6NyD0ib z`UNS57TgsU*a=2e&TGkj<6R0L)r|AH@k36W(0)MSj4U;d%2M}$LJrHn<WA&rI!>!h z-XM7Jdu9KatWn8BO705XAq9@|0%Q7)EQe+c!wdw^Q`=qh9#M8gjU0J-t{^mGH;h1m zyKS0>%pL`ga=}yaj>DGMCUX=_v@*FJW>zY?^%pKw+$awzFVO*j@V$Uz%&@13tWP-B z3p&4nCjg?yiB8vQCjNiW34rKHpt0B676oii7W2%MvLUL6i7D|6hL&6eOW-L;@9VaW zO)GwsuNKqnNFcfZG`yr_i@m?zq-l!EhAty2y`(vjPp-Ml?)Glerv)>x0F}?)2w;yY z?Nj8a(IqDJ34-wbfFtMOzT1OC2NXN1bI&Pxij#T}RAf3g3#8}NE>`%B2)wsZXvf`P z2RfZ#HP_r-SrFCJ#$<i~p#k@R0f==hx{2966+3FZB`5QpG>Ih;k@Xnh?5Qfb(8qZd z_fqhK@>{uMY-F^djYfOQ%mIJWVpbW^rO~AeTrs)t^ogwii$>?Si_7ipbBY`_*yQ*4 z34rJ-&~V=6njd-@hZK9m+}V^t{5(^R5!S`_4lDWwr91%;T>~1;O~Ul@+L{~VFX;uI zH^v75!Y?J<UaI1EP%bF=hPCwoLIW0I0M6&mSLJO%L?mpRcUOCvy0Ro{qe@Q8?*yVX z4OpWbP51$3Nf{DV6>|(p|JhbJ+He_cz~D0{0aNSn83i9jGwJ-^YuftrDg)JtZ32r1 zc=Rx0pcdRx;3$71zwxI8!j}QRnZRY9JLj)14C}!WWyrpm97yxGqpRH+MT?FyJC+*K z9l0xqjwvgmDnU#yoHB@C5!A9>ZdqE{>0YkGZIhSFkFPNIh8=deI<~mbH`iF~E3DL8 z<zvHgn*Tn^#)#+&MGm(X7f$DgM3EL<A;Jgb&SrTqueLDTIMz2Tm*W_@J8)2T5*`+` z#1ikT;9Ul4`i4}qaDHf)rWN;t71t9hn$3m2LSf8t@2|M$u3kOJ#rG{U6e8sTpkNJk zuu(r$o1ZEh>6!cRKRGkvkPlSIh+v^qI1!Tx2gEFURe2inAQ*yn(VSnzqs)DU-Q#1{ z9B0LYl@&2-_Fl;)zN0MZ4*}h}1G9^LRa?RjRlsxdb9zp`Y+?9|RiXaFppR^BF1D6z z>c)#x1>Cq~rmKhKdf_?qaK-Bq;Ydo>i@5}@rc4_i0UNBdyIe0X_ql9+q@s4Y5;vjR zuRCU{M9QN;!6=tB<z`<|HlaA&qZKY9QW)r1X7D-DCHygfqs=TdWK&bsr}4208u3z~ z|Gou=S_C}~AdFng%*e+p$Y%M+RYopmq<q%`s6p{3KwSQWS-7{lGTV@smPg^Wn`L<` z^oa`C#Ze|O$U2>sZTd9kNigOFF^1jcXkFrvwYdUrT#!OFPgZtB6e*>w5&WQZ$$tv? zn6Jo+EtV|%rsbJ)SDBuw$PohoMJ$;g5=Anf2Ij4O0ZQiejY?<)%Sh6T)!l8#Hu>i1 z%7Tb8K%Ic3wSXU1(WgDnfIYVndosPKtqMyGT*lC-56SbferS58GHS*rWasA15}s)G zEv?8KboIW5ncvKck<(wVLZW%kf_cXUMYKnXsA^mxJzH55@v<q)B~wU&Cb`c67dO)e z^?F}<VcGXJ&sF3u`)-&Ifslm<pHpGtp9efzM(|tv<vd5@XwxPA`O1I@A0d#^287Zy z;RP@O{oUN`VR23T$n`?Sjp*<E_boHjBIrc`p@`|XjM&ZnE}bt{yoe&Ej0N&Tph@ma zz(qe>ne&Nzse(oHv+`Zbp$5fY264ncmui(urDvJ4|8r@2xxz&BEndZ<+7$_X1)y*) zgQD)2Ri(r7wqUK|;ICBhF0-JBnyb`l$g5xoT2EaLCRh3<@ZZ4SdbP44qEMZXO@BvC zl3xSz&4tYFZ@Su)y)w<}M5Beic*VR{!6TY3wJe?=v@k7r9W20NPqR_EwA$*!8#E1h znf3LGyTcpVrR($x7MoQg><xgy@49HYx-34);!<nHyit)N{I1LF*DWYeBIQk>poIqY zs#u<N73$537U4VxG8P$prYzBK0a|w1W{0PVM!^l0&V;ur6S~BhSf_JFr7VEPybZ?O zGMf)G^;)GdR~@d~|61?<?Q1tD$N`-r?Esqdj>H`Fa;^_+_PN0<Xl?IQ=5z`8Gk2<? zpff1^iAK<%cfp{r@eP*ivV{V35%(4IZe>fajZX{Hg7?4z%=Cf`oso&+{<4t`kMrie ziXSl%3Y6N4CRL^Z?}Gv8_t{N&*K=li%)DR0BR0KJ#gh3Ul_d28pkiVKhqqZi)>r61 zFnp{cejCCaA5`33-n=e74|Ob;A3{-*KLoPMaPc_h##`4kKdjj6%kV&%27Cktgbre% zCHqzu9sQ$<9x>2#bPxkgaz6$x+@s2}L?W8rgZQ`tMz}}*`!=UTErLD)5GE<h2C<7R zeS3<<DVMxYDq4giK@p4NheVOgPl1VEH>mu>^&>UYunz<{`ll5=B6btVSp$O4TArqS z2BxSAHeOw9m=$NmXO$J}t6+gL4fq@kK#LBHWq0y<1&=t-9jNFm@TvrV0bs;+g0J-3 z#SLlHF7aPf{4VRMN!QM9!AEmf6{i_rf*EIs8LLkalPISIFTboz+9%&c$JM2?$r+0? zGsFNz1HS?TG3v1C4%*!Y_Ei&?O<z?uMT|PsvSq{%T9_7m4Hj5uKMiqmj{0@Qj%cG{ zY}5bU4(D#xOXxQMMF%A7Dsm5;?|{Cka1kAl|GrIWs727X0CG{1*}4qqD}59A??idt zd|S~XMzmJhi};*Xl7xN-&{HIJ4B<>P#v5~T)oaCuB>ESy+W@f|^Ic^_g!4yDYXU#4 z2B1aXgGKP`<y=F#S*g{01n~Qce<%5soC=>PSObzzwz3lU1K?1rg9f^ri+jVz<cXLc zDsY#LQxT0nqfH}z1S3=zBr#?8*pq8pKUP+(uM5hG(~O_M47xX1sF{#U-<wOa?-&)} zr^<p|`31l-&sKmyl;od*jFx@KMb@ft@Jra0ykdT?xDhSet5|HiBB8$k6w?ekd@=>V zD^Knm+K2=yr72X+FBLyxCQm_Y06%n8r!BvNEeMh{=;HiZVIzVh@?A@$2E~5^aYVUl zjlP+BQ*I^_zp*+uX*bowbN#JiMf5KsWm&6868$@%QLuxJ#-+7tpZlMy(!W>Kh=Q#+ z6-#bcB=iq};_LwKS*kXce4qVC#fyjxP{1WMR3qz8U}4p%(mdjOsy{1E#Htg%Y#E6P z_5T8W_}wn)(!=zPH5fhrt0G1CMX8MA*$mC7lKeN2PZ4s^Gx|w#(Uj{=30nIo?cbFd zT~?YSddQ9p8ubqtg{sW1MdD2bR%rB6|5Ud0x|E@G$^RGl*mrQrQgz<ftA8uxR{7_g zk;#7B7C@>)#D9Rmh?FLAsN5<CL-BtVFv8EGmSyt8L?bIq3;qWS<WIKb?K4VaSd??k z_e#=ro_Wc`uPk}-2>H)}h=r4&CRsy*&ogzUPh+ku7`t#1{PL7UIwZ^>3np?N+&U_p zDO^PvRmd-kKvx^JDu>2h6~>`D%qPpm=4#4>i0WX!ZQ-d75myHSJ*f1w1G0{JsU&=K z(iOoq6e^}iOZ#o5M&LC8484G%$?;*%X3Vt|a#wx^v$|#KUMNcPwL!*onBUkVFAkJV z<?zaMRU)TN#5&A%lmQX$809hsbkL?9*M%K$`H#&Rbd4^vucyEfF2Dc2;|5v;T^}Ij zd``;s6|#ZnsDs`>K_gPzr9Nl0X~Yd-1m+!eIn#*bPE0WHaU(^)AiuCFV$;kIi6WUd z22(k_zTam{zKLS5&*9CA(~RR_20A*s;T!)cdGDyNC?7^7+$*~}ZmKMa2z^*Rn+4sJ zX~yv|<Bnp+>Qn#mn#{B7^OH8x=&Huelv(%4FPybR0NRN(_XL=W4&w6Kl3mUp!_BxC z*OuTio0}`McIBHz9h+hN5Q>s~BFL(}6lC}ED7Hb{80<-kzP|R7(WVh6!w7W9xZ<F^ z&^L;eC%;mD3x&TRKk;70roCN}&|3m}ny6)}$k4JhSQ!ATnPr+=DI+4rz?_QFkwepN z4bzSj(~=4Hs4UW8A|<7Ain3)_eugA6HcOIEsVKpx0xW+*H>HD1aGEk9B5={A3vCC` zoYP?rMvZcPCG`ewqv#Q%hX1}zeyByz836SOXmNR=Rg+yU73@E*&-Y0w`mHT}{mU(R z@<CRkZL@G4#%+};v-xGA3Dze4!|qsGeLGlvBSA76E=x7et}~Tgch0wq8rB|updg92 z2N4aGUCKatPI@VHS>_Ik88PFfie>UcDoN^Dq-FvSQcAK}{EmuxL4HbC4P{tGLN@`5 zjR4`^L^$^@hx-&aVxCALn_7M-$d1QEmF&%6yD5IK{nUZaR^W))SWZ`Db%{O)Xl%q7 z40paxG{RwWi!vc%nv!EeMxUl^g((Q%XV!GbZ3~r)BE&#{Et$)hbCp#Q;rooREtbqr zRzuOi^I#yV2;)(9H7fDzw<&`nstARwE&PyCCHs7^L&x4Ptq#gFrt<8R9X-u<WkJNy z-O;h{piMh=zz(>b_@ZCGbu0KuKI~LhL^yjCv-!XevWS~irVV$34Qg_Ian&@2YDetN zX0CqRS(y=0Yr70uZTd9k0vH3|zlmMIb2W)~9`R9)yC@4HdPs`6P!>NWl7!wBP{eRp zXJ+b`)*DCbQ|KcrjRmtyp(A<?N@ePz(j~tid@OYym5UeT2#Rb+&4k(q6h3074V5gO zAF{Hf4}y-6L8Y;@;`4e)5hFqd_S+Vh>JTvugx#MO?j{+)4ajnFv#Veu3K>(uLN$xd zbU+z>nz9?Fpw|g%XJMr&H}=@Il|9Oeh)7l-<ZNKmZOXY43KKsHJR3Y#G)C*PQNN$h z9Y|J~3zZ3x4IW~a&pxP4nKtZ&4W~#Jv`+<PZ(C#8RH{SOdQB#pW6G3>m4<E;&8#}j z8HYKy5_7a0H?Vw2nnAJADBvMwGog%`mam|dby;B6iZ*}r53?9rH3_S1Kp?DS<Koy# z1mD%zDP>U1K8R4Py~c*}G~^-}f*vvBzDa#uGSkX{2tRdI?+t=P7J$69&t3#ze7|L* z>{29l&zt!7rl<^vXtUk=MXgVJW?+vki?nG?FUw?NvC81gK4r=Jf-_lhnz0{dU=?Rh zUdl)(RG9IFVdowB^^yX%2Jk}_ON?Y41PgQ6pm&ku6t3c3tcVfgK_KI*U7C}WCHiha zBc>r!3R!-Xrq?Hvlwb#zxx3;=>_JbpEI$31m8K2%fDM?N9j(sJ8rl3VN4{Lz@2S`k zJG%l63lBb9O+rh6!YOp~H(45#b20T6J0Qoum*PjH-OE{a7ipSNh8ge%WUbGJKS#&= zr_Sw@&24jyx-37>Dhnb?pGwvQe#pv_UIG2OLLV<zCJR2(=M*wxWAS3S!qwkEiIgfR z;gXW~k^3tM9Y{`_Lkbx&5Od(OspJPOObg~=0fHkE&yn-&KB0#dH6l3Tzi*+T7C|+D z&}*RUw+BD%Ug1j=DWcb)fJN~`rUqXM7J3b)UKR~U;AJ647Zfp~<xnP*qk$&VxCkyX zQ{E$MEOARxT>&F9(|_OcLM?(C0Kt1>^2Hdt_uVzlB}I&wGg2s%sTozWF9SPVh8o2) zD}~zSb~B1m=v`uDj(5^AcSBK<n;;{gu_PCP%5Yq@n^9Z@r=_?T<a51>O>w&-q04}V z({qU|;egt5bF5acnj?xEk<}fC{){TwN5RJClUl`3NRBC7#O4$Eu1z8}D82%56|)~% z#vNpICN5X7h>3rf@in7OBkm0&&@0$UZn7ifK8hUCD^S3ul^<*kA?pgTFs=ngqMFH> zcPvr3rgL9Kj&WvFAHu@B$kUYj!4&xV!S70A6X$}voSZfHSJsTnS8`fYps20sK%hYn zfI*o2y3;Qs%W}iw0~P$-e0bY28VHf`ATYwgZm6*+`z^(RX6Nx>MeKF3)55giA+SJA zdTmGJa{Hlc$9Ku?RG9dO0gw1f@GZao=?r+dG9bdK3Z!&#htf3R5ikK$h;Rj%@f~Nx zBb5;m^KOb+3-|$R%Nb?b@F>_If5L1SS!hTjtj|y3nha;hqm>=&TOMi$(45D>91Pk` zdE6`6NBmetj~KN5_iZMGS_C}~AUL!^nT^RdujM6|;KwUuM8*e7y7U8O8t?=dpn80_ zpPW7Z6O{?;>+v(%G~!9jg|MDXV?(LSg(oW$BHVf^wN<}Vmh`89E`KuXF+9mQ%#PeV zRT&Wx@ZnO7EB@fVh&FZF@-*0jwz#xnZ#0+XufC}j?6H@>xy*RFvLj+TABb5~g3noT zn(+*naa%DXvsUAG8Tj?<;DES!rm|_jd^KlG%2~Hrl|>Vu1rx(dW8`?^a^>*2n@PB= zdbTnvqVHVA=hf1*;yJM56iF={R=-FgLu$IqF{wV!RklQQUDUK?#t*Vq(Gft4o(GFC zp0Nd>&rQ|=&GVHR5xyyf+L}_LO7;uDMsLPz8HXB`qTic?du(5*;1TVZN*2x!Sy|Fw z1UlMILjsXpADJu^`tf&HAzrKuh-ky1m^C8&K}MZ+yaaY&N)q(MlLcqMOO*i;*&nD_ ze(>3=68tiN;W+b*bk$C$U#^(j<u`H~Ck1eA6aQ|-h<XK3C~264dDos|=JudhDrQ7U zQ^_WhAF{HfzY27f!`x>1YDHdO4trICUjr~kOZMzoWS2e?J2_kdzgFQR+*NAXg!6+I zrUkEq1&BXqdgjb=FlWf?l_6bj+LQ8=otrD0bGqbq2#tCJj6!TB8$WZ^?~Tfkh}a5c zY>x1Qi^*kb;hVrkKu$u=eFJl|7cI*Xpf@XC#QGe*Zdrj2)AklHFwU?Wv_5QAp4zO- zEYaolTNN^5oS~Y<@<Y2ct#})(XwTvDELMNsuJG&2VXH~*JHVAcnF>EGH+C=8B=t>M zHMMtXy;E5b(XX<ix7GSKb=vYS*n&JbwB%kS?URA9f5JV@{cdH!F8RHjPA-wLCM2Iy zQG(wCFgiQGMOd0%W`D?g6+5EK>9E;YsS^G^z%i-?{eHM6D#uITulNxjVIXExAAHV= z(~J+m49tk+wMmJ#`_R(|6**!?<iBsJp%y_O0!Yn>{93Uc%|5J<>zfe;$~5339Sm^m zpsulhbVCgYlxe`nU;tuLba!Uza^IwkFmkptaVI~ntcaMEQO;&PKXlNh9iL!E_{()> z>h>=(BX=3`No7JrweN6ck5VQ4Q-H&lsV&aieap7vH=kC_9r7DF&71-@+5BMD$odRe z*A}IEjR*QZt2hzI!tiCwNK~l*Ip`xg&NI_;2_?2txorHrLhZ^=5_Mc7^7pibq9lKT z<e+`yoTwvzQIR9I?gTm(9(+!83I7t{n2E5fhflMoy5N2BFDrUP^`VeO^Fv0J?5}i4 zc-nZrs?h68c%n=A*8oR|e$HP&W4^9{5g~f{u1zL2DE<wIV-yUse&4vCUVKw=BHZpk zMwcjMiT)PQaJ&8T({8(><?7P675M`BwVa08VL>ZUB=kFgYX7S!J2D#ZSsnbl3ceoy zD=SSaz6UE%q^9bJzV9n$M3KsOZ5C65;y-|R7zE!hcZ$r*BzGC7n<a_nhYA)ktLV6b zriE$2k6-~p{YT43c#G$c6*Iz*w%@i%Om&F(2@vQ6!>ihovE-);7U9Bn7)z#bp&T^{ z{u#ljj+m;7gD1Wgrfjl}>*or*ODxQ(x74u-<%dv|<X?b{6&;p^UvLjEZ9wV%QrQr( zzC=Z913z?@r!~KVHE<+pa(Z8sKe1<itqh6qttghsj5cN3@Eh3BwqZ+-wlA9BD)xFd zY(bF7-vNoLeR;AxY<{m;5mnoM+a@yAA>t1};1&$yw+Q+!;*Sb*C!hIUcI71s7L|Oe z!u2KYPr%v533r*E{YUd>1&eUS8QBS<JQ>hm0Mcs%@*J0JO!YUy{#8LEywEP=jVz(3 z+Dz@=IvC+LTycTo?;C1FMw>?b14g)Tm+M2)15UU=(fm`H5Hap{Y&cn2(*FfIVm_hE z)9KLAzm*vgdk!gS>l;77rRtzhd;SA^<WJ~=_=UxxYI^10f0Z>65$`UQqa8qV{s(iE zM>IS+B0a0jjjtsAZ@2?7qGY-lL0O`&Eb8`A2j7(D%W?=B*sCb)&itm|p*2#DxT^w( zE<6c~8Xb7OngU0}0#Nk+N+nwhRu!iiSBDw413J9il1mm{PG3WjV>%%BeOLDaErPBI zP+Kg(zegasd@Y5H7_Yh%Zij2Mt_=h96lOS?gkMMT*E5AlRGIkef~|VrfpW8&{Gz#@ z!mqFQ&1lnz>%$0aHszGFSoWu9Z=m22<25yGdGiAWNxUJ5@+Z^T6=YLY)eO~|5~B8w z+l>@I!f9gn=IUFp9NR8WYi<l{Py=PMvLuh(^vMimO8(EW=O)UEi0*|-)(U>e%94H@ z=qCsr9-eEW5}-J?ROU9qn<{+7M0RP#30V9py5t`ZKKh$O2tO_KwQra(H&Yfw%uKwP zHDFa?ns5S4zzM8&Q-_feuJ5_IvLd3_%gKjSoR*vjOXQC_H0Vw}xZ`8C>pw}^5_7>0 zR-K*G$Qua5pZKE>DT5}R43kdvnUk(QO9Z_!Uzg37LA>x5%BqN6W5{ucCN-rifi~R| zHlfZ2J*_`8;L7S&%94o5dLU(u2|kC?G~w1T0aMNLa;vd>bPNZq@qfoZMe%pZFTxq? z;*~>ZUP{QqJBgBfD#?|WJi*cI>o@b9!^?1Wnj%L`a=nfPchV&Ibdg@R58G9C0&Q+1 zKe)o20is<Yn_3yK$}<FWL)Am(w#ts}tLH#vQ+cVj+1-FBEBL;424XbecB1L$K;^kv zdpb!r;a1F<Yh}Uu#_T1Gl!Rhr-5x9~`%SGBs;$Y{OQdr$cTk`%5nG=qxrf~5YoJ2H zSs)<#Jhf7^>mBa-i90Grm)(z!QLEPyNFYSaCSVX%k_Q26Ex85K^eIAaDr)W&icJVr zD8Cu<E}vxW*5}jNYbMl_BqS;%oCAXO1grBE*-YQEWxhorw&m5YOqn+WDRQ=ggUI95 zid%&?xUa$$%DIZxWl5mDP_!C>=K+X71uBQ^V69iGuKhI4HpS~Qt9QIi>e}>3JRd|? zSaR*8FRbl~m0KO;1v*yhM1_PMDPeGAxh`*e%WZ-?6`_Z|AQ2<zP5}AVBbT03ePZsc zQ0L`V3w)W$DW*!~TmTMgpKM~QE-ZM=T@<EEaL1KTMZQZ)szb<KQ%F&|CJ))QRtPEq zA*l`_{eWCkQc|m5wp=qSW?-%Q^A%o(WV-^dL;XSM-_YiiTQ6s29#Wj##-l28Mvb)L zl;(FXnvsR_eAA35T9;X|D;jb7R}R<a4>RX7a>VV<;^b94Ur2itE;n)RCLHhaxSf%S z8fl}TVMa8y!baqA7b;wC$8g9uLZ&XON8nxn5nYt7!|sgtxG{z6GT(NY>GstV7HSbS z4ipwbCGF*<=Ca(qGNCB>t;v0n7_URZBnWWL5<+Q6HVERfW^s_F6zneYi>tV1zUg*^ z1(M`m1g`5{_mz#$!D)r-q3=t?2r2-CA$@AaQ;Ld`+wHmR2)!+*M8pgbuG<@`RXDEi zQ<&U>nv?Iclu{i+_5<SjaJ<6U^ohX)C=93NCZ>Wf6B8(ra}XR~<vinJ#mG%brD0vb zgp$p!yMf>u?09);NtTD$`Q2TCa=Rnd`DNvpqI-bnM<uzU!zb#ViWQNlxn#f?Omqk- zr4U@?<{|f5E5z=s@J?{5Lr57Aj2cJfy`*a3)XyqTZpWI*IHg8fB~4NZ+aqLaS-oQB z6e>60LYF($A*2e3tJXG{;WO@#qU2WVLpYnl3KuAmGY<|{ou=GAei=s0VFk&ZJ*eTx z9taR2GHPJJX($~sjmxWbbBO|+E&tZF`^-!poCw7)4H7UjF*-OoG;9`>er^Jm-8(?c zr;-;UV-XDJmH6nsFOIqb<<>6+%BYdn0L`__F<D;ss3nEUtzQfBT_z~iA>=YZTz6J- z4aOKn*pgQ&?t5f-83LL?D&+NOpNf`Z<flTuOTt*9L&!2yfm@E;obHGs<hBsykS0oG z90kLT$nwC*tVDMuGI2~%dKi%tF@jbAa!r1~#wFwcTBT_&SEyX~Dbt5dtpr*m-5Vr$ zY8AOE%ax*?58p?ja#NK-WyQ$40xUN{9aw2q`;95n;kd8DU65PhM4$`-)(E9Y=KYvH zrry`S`zv5>R%UCs%Soq2)B}J*W0jErdu`?NXbC1gP=RtYQdPoGjHCyN=CW<F@*MV} zjggrL%g?U(Ki<9q%#q{T+MyR_CTGKOK&B*)oy1wTH(tul+J3PU%bJm9R$k3$T+;0B zILyq<%>2U4%*@Qp^g{nRxB9fYuUhIF+wcEA@2*;&Ip=hBb=9qVZ`}$HA)9#}=Ju^D z?Qd+dzq^Ch5a-D~)JaJQe?%0UZN~v6=V8D#mu^)Q4re<fLXIQU+nu>yc({|Wd-8Ku zhCj*cLVYC?$$A83T^$6AgD&$ZHg{XSz7???1{48%q?59~UP=aJ%~1&|>PL~96*R{q z0Qe@mn=NsVG{VolldXwDc(l`WM!lw*n7}kTseKI9UK><xRC;9<p2qOJ?$Ug}u`-<N z&(9BV>f>XbumlHq4ra}jUwLSWcpODs2O_ewvzD<}p@&1p`8V?Q15Pszk9R6gsc)VV zTI|R1oUaOeNqGXL+?egrou6mV$=zwK;oLryu7ST}ZhzA%0*5C$O$nhB!N!KE=a8-^ zQI~b-tn^5>aj-Gh<5>7)rz9b=Te)+vgevZ*ko&5m$8)gDLu?!Skh<0hPj$>ECO?<r z6DdN9_GzSLWCm~U0+vCI>`g)W9NaUy#nT;iLNrlO#;ps7EB<GYp9`_9(AL(yyBqkG z?oxQBBc9?p(MVQNtSiS8;j>6cXTu_zcDAwO<VFvs&V0Yu#*7l4?MP3oZ|I0)_gV!h z-sh0_T7b)6RDNi52RNRov%lS14bOGl35g3iR_y5-T^zC`JdYCC#g@B_Loun9M}VN} z@bYSSzGI(aAgH+`j8Ru0iuDC#T?f`!YY^uVu_9a}i(fWc?RIk?(xo~fywFM5gI}7k zRFQ--rb#J(HBKX4FQP6QORd4`66~pAW4?<a83kU#i=B`Y>xJYXrXjx)q)1;vQjRdg z;r<3}&IN?e2D7cu7$Egw7+&g#6CMJAjI$C^ye}g!gTgQpuy?K(YjqtO;@K}^w(K;A z{b8%u#Q8Yk<xazn`kNQ1>CgqzX@{LE25EYQ+G4N|3)n{d8@UhAvL6fAS2`UDfzb$I zDk?F>{3<eY&_k_KmU2MMW6)?bq=WWAz$(1jaVI3v6roH(@rwesG`xly*!}q2_J&U9 zK(}+SF^hs%;kAx^%1T%7L8%v%(8TvT^6}*_Z=H-|?du(5LR$;Q?o}6YJEmcZ_YLG- z2VN%Hv>VJKjF~kJTJPxn&1^&n|Kmg?ChuhDir2wQ&l{<SZ(x>Mm;ICF5QR565$o}j zHDgdkj$Rp5)Ndv=%^tiO^W6nY-3X06t%Id&?xdSv4sUTn_SOr*Jpi_7%9ntvi6ri= z6vw2d*+CmSU+wRHbfNC=tPaB4oSyaddLoi_kZMqIzn$FI1>msL!=dGzm-pHyE8^Ge zV7>_99ZtZudI2Li6EV6RLzj|wQVFwa<1B*6DbJ<o2c&rElX)t`yPTStdNm%>H2E(b zk9578y0|8ofqSmk`R^Uu_w3%3y+;*ah0X$unodCQA4{<T6SXkLH5FSLg!ef4_o<gZ zFlH=w!txyKLM*`Jyi-A6@l~B7-ROIHqx1k_ixd8v>-E9)KBsnyw@d?KVW*T}MDc!7 z*a(2NM!PZK-;8QCu&)OF>;sN0VJtL=*c$Pp!xZxe$;>5~pCj8S9p3KP)B2F3Pgw|N zbGmh?$<R{qVXB}dnr&>4tDENR^6ctT+&BFZr(r#QxMmRayXD6~#r{#Ub1huR^<<Qx zfti2Ne173$jy}N<7Fc}Gv(1mlA}u3J!^f$CbD?jn#nz$l3CEuB`~_3_0DvjpPm-5b z81B_<qn)UFwl_P9&y0{>_J6{soQec1OrWMh7ZVwz>C@E2aX&iy;@@!lXBF4NXPl7r z_|claP;eVogNpmJ<Ypdctnzvc>bS!OgA*F+o3Sz$0>Gbh3KH@-g=bBniz;v_`8<{I z%?$H%cR1#le02gLSfJnxF~ncL;B+K(%M8tAOh%T7FH!_eLU|1qS^ktK#)U6A?u3Pb zK#W`$IifhfOinWkaX1}ZzJqPM*!l-ry_HV*ieo*Y{@E8!74>kU{3<E&=djR=!7Plr zSdV1q4cUssP9FN2W8YcNUPO$IK9xd>zD`A)^-+t}%%?^?e<ZWe*c(^4Xbs<RlD5}N z${|fpepO8%LEogHn^I7rY7ss+t%MOgy$8B;SgXMC3-8?^e9Or?H9=MZI4UcAF_B67 zzD<4C2TN)365m)F8pw=Yz>NAGrz_!&sb0u<Wa;=Wb#O8nf4S%bX%5c|-*Xxga?z*1 zwHdG^e4i3-4hi%`TV`~0HOCDw@_NnVB%kcm%^x^HXVyO~4{Z<3e`$%#<9yQjL+ZRW zxO_Q()U09G9yGYu11^a}tBqzp0{qB{J-c44$2YP5%W0%i{9`Jnr>?xZ<dBR&$4{KH z_4UexV~TVUm#h&~%s&-#OjK#&Ou<?E*cmjN;b)FH!3{hZwi&+5a$c%XMg4P9(=}0a zU@Wf;_BG={6X6%<gWdcqcGnY7#r{jOS53&#L)S#c$KoLT%1OAO6LJw;N`6fxG}33! zJEpPmjAP7@<I<S^@Im;ElaMeU63E)15>dRrCGR@$`W}0?l@8oP%PYesPP%EKq}1=6 zgoFjU$E<ucJdu?Bp2`?V#+t4%+Z{H0ouvg7%lU)Tk>DpUcgHfG=>AALIx7wi7P>rR z2a^q=jM+G$ai%%nL*ER4avBn1G&w9c8s`_2Ii%~))Wy|{Oqv~t)wH|8Y{q#kB*I^u zn1m5uSn+`rf<HxIDflZDFpUQ`VIvlu3V(B)Q=;8kp_U)Q2un17*NtXnp?0_C_QOzG z#y@CvWEzG4b)*TQnTirqW4IFV4+`Mqs^!h*Y@NB(N1?MGwi1PZIt2+6yuhrfbuor4 z4gaDBx&zogh_d&vLJj|RtWzTXlN&n&6VZQ2#AQ$x&&*<Fm=~~qTRjvGgLzoYaZDKW zGbFpwYE+S51mHI4;An0fjE!)>CVjw&8y4Y7--ig%;FxexCnI55m}5pE0-nGiNf)Ce zKK!zq6rt+b><H^{ai=BWJ)7(*EdWcxB`ASYfE8Cj7r_#N;gUuibN<WGpNOBVS(v(d z4IWa&mn88KfYZv+j>O|WKA1;zS;HSlra=>OmJvJXgiARw2^P4(?Xl>hmPr~fO^xfI zkz4C=C>FX2ibr)1bl~zG^x;mysBT|{%Q$HXepADY-K7RyaxP0b$3l*u;+FgUUc-O6 zn_seHcb8zLhs!yI3&5#)k{;2-`Y#i>rT_BO&+c9bL!(P#r8T>PmCS)oFI>T?Oz7?t z;?ZSbNw^{<jE_Jtb%*`g{xDq0@n4`3NT?#eGRbX6Z9L>01=!+rvtl2z3Fj(KLPA)q zV#2A!mXNDb2(6sO_U#({v$D(uSGby^zI{R;!EeWYQGycF)yYI>92Zi^!0DjIQA`+O z{7j!4cv#^Yjy!S67D16m!HP{rU~+2tr0|+l$PI2;9H!aq_6Ga9^Fu5`uH__6*<%jl ztrNIe?MSp_YY}gBwzFv*R?OEXGlyO*e6lcIV|RZU`^c6NF%8#o<O#1r0mvGma6JMR z{dGxCrxd*bGs9I3XEC<LdePT&<O%j}$*JJ*#Cd()GHuAY#pMP}KmHRsJkcv0?pPDv zJ^|VN>Y{`y?i-N%y13tB%~$rk;`p=9DM)zv1ZN6#!FsX|TRLti9o{ZuL>G2M6Xtoi z(b{zg&UEMkvoF@*J<ImVu%+Y1)NvEE$GBUk)$1)XNern<aoIQsH*taz79Z0+JmVY^ zc2f$Y-z$dgn1zd{ge1`TFB}EKfS2=TYgbeTw1z5w<v671=2S#~fg&IZdcbXMtD##s zEeVSRL756&I9%}`L4HmggVjasRmPjD4QsX_gRR(tgYuS6M1l>H<C%*5ssde7Zbd0a zLkb7j7zI~h41AM?#kVZAQA3Z;81%n9E%eq--#vj+V}Ycng;p_2^KGb^c1Nsw%LKf* zB^-;LCe~PtvN~-E@BIiYK0@2AUV$wYM^Z&;qCu~wuLphkC`W&RCYl^p%tw<Mf6R=X z8^DmA3pQQ0dU!sVssaXJ{8l)|$w){J;jaVInjrf;30`uJr5tWP;j7cINPqM<-PY0H zslJ1h*Y^%kgtsH%rA0{pR=B;RO0aY)s0byJ<4AHFkhBrTVsWNHV~&d{I!hXx7<sWz zxYPa3&Y{lSioM9;4o=7!lkYhPJ`$B7%vnUQPX28Qox~nbu?&LE_sqG1th}Xm6B`DH z;RGirVcic9d;Vi!qPrvME(to0<IMfLlOwt9<h!2WT!=s-xHAcE1`upVLeLk%O&)%+ zr-O~OLnc3>rVO$(I_<6SI?=p2(ecmJ^XJHRtNGPb9?824<(Z}DlOYzDv7=$VQ*)Pk zHPezIh$-d`WTw&MXBZ?6axH7K*G9*mGWccD|2XuyRDc4ubZnvy8k@x$q<ArK%<OX5 z?D!L$43kQbW{{%YLRyCSI9oApgn#+c;>VcX6F;F-Zs!cz30s|z|E_-!0?tsaJ@nmF zGD$p%5^3#Z-YcdoEThc(Ui{0*^g?ThWc_fmla>$;sBn!{gG<UbO1TB3R2xND-C(d+ zA~8MV;jT{Al+jD?aT(j%tNfL0uyH!+JcT-GV!_BLC28S$(@ERnS6L#0eCT+{NOoXC zRkNLy_qB5d!*+KI2kW0X0QhLj8Cn;D7Tw<t-k+r?bQb$z)pAyceM^tn>C`5?D&=_# z**|4Sk?tZXZQSuJ!uf8%#IV~@CoImU<|Z1d*zZPmw?iQwv9ZU|Cagp!c!WyFYs`=k z?r5_>(Kk`eF+WcR!F4W$S?(_Eb@T})5p7x`THn@1HN0;BRNa1Ydm4w7aGK*!$PSsX z+l_GIJDq%V0FAs8OLTb9N-R3yr*y9bhX*0Wcy}_=`b7!uJ)H$r3TePa5zcU|$7hda zN?ou*L2rj9!ZS(8Iky}Y=q@gH+Wr0E9*%Q;J!i#unguX2P*LBL)cAAQ4xR<i9sHqD z_-MNjX8Y~caF!F1kbJWU$e0`(`&R+C@G+;5q$VZRTc_M7Vis!b7vXFtaLV|e+o5Z) zP92@ZwkQ^VM$yNUwZjCVA`IimUxTM@5N4gcgq?KNLC9)+>6xP*ro(Dt&!V(Ci(PX} zcL6~=F3(Tjhi5*3bGH-PPU3uhKl3aln<AZB>N`|Vm-i-|ZrSZv21@o30nT=qcM226 z^|^>-!m3e4zCdyxNTylCm%>us_c{6mH)r)T%mT^+mVz!7a9$gn+r$4mwy_C2ClOnk z@4&$YCsa7c2}tnW2+A5j7Y<ka`^itsSE_epLeZ5&&vD<SzIO=5xOGv$6z?K=Z)A^s z%07rVlq@+J3Cp4AD$e{pSx2bjk+eRgH6Se?Gb-1vG}#J+(I6~4nP*OJtsHp`qmk#6 z+;b_HGf6p{3B_DjmbhoasY-Z%1Z3@|i|mxOh$`*@x!HT7x5@HU8?8B(D(i%yW1ccw z%lgh>jJN_)v@4|LN<cXyabH4aK{rmHIceKW+?~KiLv5dMz-dWH)DgCc(M27R6dt5P zE^M<M?5w;R+AI>hwcF{nH`xxeLrzpent#RS_$p}0Sfvd5vaC2sAz|n|N4;iWmID;w zy-0W+5W?+do_%=m>|aF>kjs5<$DMH7LbGR~i*abFxDQp(Ax$Sj2lF7-Rmg9Q4wr$# ziT7Q*j))h#=M-q^xF2=k&!lay1I7yAlMVNGQtpP|sqsC>RcW?wE*e|quVj<7#3EG> zpejx|J~1C&BXhSt(5XonGNz>aXQ*O-5ZM{m@peQhclBT^EU{r8?4+#0<snnVo>mH( z6h4FsxfUp=z0AS~86N8NB;*`U&UYcANFP>gmUe$Jk3C}^&O*|IjjMZG3p`CLJlx4h zsPMrSAa33qbtF>u2r6TDDX&z9eH^Mx$9Q<86Eh_`pmBckS|x`S{i8^KbI_N3n%iL- zV%b6qkuJ``R%}+m={elO^=Kz2VW`ict#R@zB2Olgz{gPF4Iwb@{NHL-1Q__r7XtKR zF7dHF)=5iQ5Lkr*(^ZQvMUSH*+E&Ua+SGz$7gZ3n62Ppu7Ynui$}l|MNlIAb2{krW z;3>byAX#k^g;YI(su<?Vi@F4OFyQU6?f>TKeWDYSVr<8<GqHhGg2n?&!jmY0^Fqwn z<ia;wtS)s9Hn}3=nDb<(BEhFJ!ZRVG%W-&Vc?z{~rp)5d8?eO)X=SXr)v#o9_&c8J zlq959Rz$TckR{@26mcv>aCDdwF6E$O3r5VjdBF7PPF)i?HIvp_0;W}*()|qTE;)!= zvrNl>rjs<q<g9lP8KfAWMMhfLuF3_BOJr+?XFKA%B(#MU;IRHui7DpikeMEM**(ba zvyFqpeseI_l?m}&rywD`E<n?ui%N89c^<XU@Ggy!o3Lr5foh&G`ElBrIlPv4SQVc^ zc)pW$YJJ1x*rqGL;%GdDNfKW`i5zCKIi^^GXkWM8Mp)p5PE*1QUIH^+rEg*dr3fz} zFQO0z{bYOK-z*F>3hrQ<*xG3g8T5OxQ+4<HmJ)JmbZ5jSkuRahtAVN2ou6yiU-+TL z7Mvfbg!57-DZ$z?2y37!MA5#Cv^UP$CZ@<$<=w@SOD}gS?wQsw=PUEh7^U(RRLM~W z^CfaIuxLN0kCfW*N+&46=U<L;l<`FOD$>#JEHAk&u<~k0Ib~pzjU^O&7`n)cb6}DY z>ubnL7nmOa&RuCO4VmEoTF0F*D+|lGb)k_(z*6u!D!2?3EH1W|vkCe2j+1j#&D>(Y zZG<BnQM^GnSvKiuq+w?*He`nXafB&uws^{(QBJ~@fHzVApKTt|VDbe@-eA&tlcSzu zKi5xMIjor9OlEdsE9=Z)9o&rA!1Wf#y5>$?#uMFJNyi9DMg50K!Oyr-Ln6Ix{0?t( z%9iV&eRRukfGtNo&$kHO&f9rAoK4h;H)s9~I2g}aLGZg1-r?jX7-<44y&hx8((q1d zppz}{JILN0^sxIEo#$PSeM-Nr?>r-1alf0~_;VP1Xxt;V8|P~bS9kL>jOXrvGY>-w z;XO`A!kn5xS|ilJOU`>Khp*A%3QQpEDd68LOSV1!eNI7wODq0<95coM#rb}6*2kvI z6+A!^C{hqO1b@KExsYR1j!t4fNU@yHz3bhA86R?**5e23M%64F5F07GkUyWGV*W6h zOC~w8%+WzV;y9<wT=gB)AjSAmGV;OD44S-nK@#IC-mQGu@-ZhU!OmL4vc<7U>&L0} z2tF62e08&QdS+who1k&X;M|V54cn>_hEF)131*K6&w6$uqqKgKS{ae!rVFc7TKW(^ z<%CTca%79-0H!FvDt!?Br%BHtH_O+Y!LEtc;+~ic6%#=};}j%VBpI0TPXv~P&r$;Y z1l6fO&E^t^-p@G|JMjxOZ&Ml1#FW2Mc2T5|p3hScU2yQCTY=8)_!r|Z?3YdZu=6#1 z!AVJYB!V&#x^TGS|04Mr&CtXpQx3nE?+N&l(~yv+C%D)vvYE94TROf>9Yx0$%N59} z#inl}-qjDyrKP3t6(=X*=~OzlCR0e&SE-5?^k}CFa^e;{2uBTvc*h6fYfj60{BTWA zso1Vk1{M3)$!;My3rL`n5F#F7Wyuan_=Y1+Sip^iI7*0O{U%v&iQC}VJ8=PLo2Zz( zOMgZ9mJ`#iZ-o*1+ICQth^6`4)JzvnA=z{rD=_2q(0w6%$H_~GdI-q+uP*ks!U$E| z-xW7%<DdrLwq5L2R@n}gR6l&raVOX=g(5rSfTI0AX>WpC)(f5mMFx$T)d601y*shQ z+7FzHgqd*+w=|qgW0S-mQep!V^O*R=XnS{QuD5~`Y1ltC2tRUS&z#(wa^y8e+lzdX z`(w&w@}tg-WiiXfzD}<ne&Q4*yleuoR?|g}D9)dflOYhk4h-8YqhuKW-MnkZmIK&V z7^g^12X+~L=9Eln8_m!j+7$UOC-6z<	BWjoHe!g`KtPH|ZjJ#aB^9dzr;%e&IwW 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�)>R=rO+FR#Kc&nWigV7 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/index.doctree b/docs/_build/doctrees/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..0024245b8ff3aacf3153d7b442954d2060d05db0 GIT binary patch literal 4596 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 literal 0 HcmV?d00001 diff --git a/docs/_build/html/.buildinfo b/docs/_build/html/.buildinfo new file mode 100644 index 00000000..3460d23e --- /dev/null +++ b/docs/_build/html/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 74474c7b4889e5875af2f21f963837f1 +tags: fbb0d17656682115ca4d033fb2f83ba1 diff --git a/docs/_build/html/_sources/content/advanced-usage.txt b/docs/_build/html/_sources/content/advanced-usage.txt new file mode 100644 index 00000000..8f706807 --- /dev/null +++ b/docs/_build/html/_sources/content/advanced-usage.txt @@ -0,0 +1,92 @@ +############### +Advanced usage +############### + + +========================================================================== +7.1 Mask all regions in a genome except for targeted capture regions. +========================================================================== +# Add 500 bp up and downstream of each probe +:: + slopBed -i probes.bed -b 500 > probes.500bp.bed + +# Get a BED file of all regions not covered by the probes (+500 bp up/down) +:: + complementBed -i probes.500bp.bed -g hg18.genome > probes.500bp.complement.bed + +# Create a masked genome where all bases are masked except for the probes +500bp +:: + maskFastaFromBed -in hg18.fa -bed probes.500bp.complement.bed -fo hg18.probecomplement. + masked.fa + + +========================================================================== +7.2 Screening for novel SNPs. +========================================================================== +# Find all SNPs that are not in dbSnp and not in the latest 1000 genomes calls +:: + intersectBed -a snp.calls.bed -b dbSnp.bed -v | intersectBed -a stdin -b 1KG.bed + -v > snp.calls.novel.bed + + + +========================================================================== +7.3 Computing the coverage of features that align entirely within an +interval. +========================================================================== +# By default, coverageBed counts any feature in A that overlaps B by >= 1 bp. If +you want to require that a feature align entirely within B for it to be counted, +you can first use intersectBed with the "-f 1.0" option. +:: + intersectBed -a features.bed -b windows.bed -f 1.0 | coverageBed -a stdin -b + windows.bed > windows.bed.coverage + + +========================================================================== +7.4 Computing the coverage of BAM alignments on exons. +========================================================================== +# One can combine SAMtools with BEDtools to compute coverage directly from the BAM +data by using bamToBed. +:: + bamToBed -i reads.bam | coverageBed -a stdin -b exons.bed > exons.bed.coverage + +# Take it a step further and require that coverage be from properly-paired reads. +:: + samtools view -bf 0x2 reads.bam | bamToBed -i stdin | coverageBed -a stdin -b + exons.bed > exons.bed.proper.coverage + + + +========================================================================== +7.5 Computing coverage separately for each strand. +========================================================================== +# Use grep to only look at forward strand features (i.e. those that end in "+"). +:: + bamToBed -i reads.bam | grep \+$ | coverageBed -a stdin -b genes.bed > + genes.bed.forward.coverage + +# Use grep to only look at reverse strand features (i.e. those that end in "-"). +:: + bamToBed -i reads.bam | grep \-$ | coverageBed -a stdin -b genes.bed > + genes.bed.forward.coverage + + + +========================================================================== +7.6 Find structural variant calls that are private to one sample. +========================================================================== +# : +:: + pairToPair -a sample1.sv.bedpe -b othersamples.sv.bedpe -type neither > + sample1.sv.private.bedpe + + + +================================================================================== +7.7 Exclude SV deletions that appear to be ALU insertions in the reference genome. +================================================================================== +# We'll require that 90% of the inner span of the deletion be overlapped by a +recent ALU. +:: + pairToBed -a deletions.sv.bedpe -b ALUs.recent.bed -type notispan -f 0.80 > + deletions.notALUsinRef.bedpe \ No newline at end of file diff --git a/docs/_build/html/_sources/content/annotateBed.txt b/docs/_build/html/_sources/content/annotateBed.txt new file mode 100644 index 00000000..9a55b3b8 --- /dev/null +++ b/docs/_build/html/_sources/content/annotateBed.txt @@ -0,0 +1,99 @@ +############### +5.24 annotateBed +############### +**annotateBed** annotates one BED/VCF/GFF file with the coverage and number of overlaps observed +from multiple other BED/VCF/GFF files. In this way, it allows one to ask to what degree one feature +coincides with multiple other feature types with a single command. + +========================================================================== +5.24.1 Usage and option summary +========================================================================== +Usage: +:: + annotateBed [OPTIONS] -i <BED/GFF/VCF> -files FILE1 FILE2 FILE3 ... FILEn + + +=========================== =============================================================================================================================================================================================================== + Option Description + +=========================== =============================================================================================================================================================================================================== +**-namesr** A list of names (one per file) to describe each file in -i. These names will be printed as a header line. +**-counts** Report the count of features in each file that overlap -i. Default behavior is to report the fraction of -i covered by each file. +**-both** Report the count of features followed by the % coverage for each annotation file. Default is to report solely the fraction of -i covered by each file. +**-s** Force strandedness. That is, only include hits in A that overlap B on the same strand. By default, hits are included without respect to strand. +=========================== =============================================================================================================================================================================================================== + + + + + +========================================================================== +5.24.2 Default behavior - annotate one file with coverage from others. +========================================================================== +By default, the fraction of each feature covered by each annotation file is reported after the complete +feature in the file to be annotated. +:: + cat variants.bed + chr1 100 200 nasty 1 - + chr2 500 1000 ugly 2 + + chr3 1000 5000 big 3 - + + cat genes.bed + chr1 150 200 geneA 1 + + chr1 175 250 geneB 2 + + chr3 0 10000 geneC 3 - + + cat conserve.bed + chr1 0 10000 cons1 1 + + chr2 700 10000 cons2 2 - + chr3 4000 10000 cons3 3 + + + cat known_var.bed + chr1 0 120 known1 - + chr1 150 160 known2 - + chr2 0 10000 known3 + + + annotateBed -i variants.bed -files genes.bed conserv.bed known_var.bed + chr1 100 200 nasty 1 - 0.500000 1.000000 0.300000 + chr2 500 1000 ugly 2 + 0.000000 0.600000 1.000000 + chr3 1000 5000 big 3 - 1.000000 0.250000 0.000000 + + +========================================================================== +5.24.3 Report the count of hits from the annotation files +========================================================================== +Figure: +:: + annotateBed -counts -i variants.bed -files genes.bed conserv.bed known_var.bed + chr1 100 200 nasty 1 - 2 1 2 + chr2 500 1000 ugly 2 + 0 1 1 + chr3 1000 5000 big 3 - 1 1 0 + + + +========================================================================== +5.24.4 Report both the count of hits and the fraction covered from the annotation files +========================================================================== +Figure: +:: + annotateBed -both -i variants.bed -files genes.bed conserv.bed known_var.bed + #chr start end name score +/- cnt1 pct1 cnt2 pct2 cnt3 pct3 + chr1 100 200 nasty 1 - 2 0.500000 1 1.000000 2 0.300000 + chr2 500 1000 ugly 2 + 0 0.000000 1 0.600000 1 1.000000 + chr3 1000 5000 big 3 - 1 1.000000 1 0.250000 0 0.000000 + + + + +========================================================================== +5.24.5 Restrict the reporting to overlaps on the same strand. +========================================================================== +Note: Compare with the result from 5.24.3 +:: + annotateBed -s -i variants.bed -files genes.bed conserv.bed known_var.bed + chr1 100 200 nasty var1 - 0.000000 0.000000 0.000000 + chr2 500 1000 ugly var2 + 0.000000 0.000000 0.000000 + chr3 1000 5000 big var3 - 1.000000 0.000000 0.000000 + + + diff --git a/docs/_build/html/_sources/content/bamToBed.txt b/docs/_build/html/_sources/content/bamToBed.txt new file mode 100644 index 00000000..8647e920 --- /dev/null +++ b/docs/_build/html/_sources/content/bamToBed.txt @@ -0,0 +1,88 @@ +############### +5.4 bamToBed +############### + +**bamToBed** is a general purpose tool that will convert sequence alignments in BAM format to either +BED6, BED12 or BEDPE format. This enables one to convert BAM files for use with all of the other +BEDTools. The CIGAR string is used to compute the alignment end coordinate in an "ungapped" +fashion. That is, match ("M"), deletion ("D"), and splice ("N") operations are observed when computing +alignment ends. + +============================================ +5.4.1 Usage and option summary +============================================ +**Usage:** +:: + bamToBed [OPTIONS] -i <BAM> + + +====================== ========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================= +Option Description +====================== ========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================= +**-bedpe** Write BAM alignments in BEDPE format. Only one alignment from paired-end reads will be reported. Specifically, it each mate is aligned to the same chromosome, the BAM alignment reported will be the one where the BAM insert size is greater than zero. When the mate alignments are interchromosomal, the lexicographically lower chromosome will be reported first. Lastly, when an end is unmapped, the chromosome and strand will be set to "." and the start and end coordinates will be set to -1. *By default, this is disabled and the output will be reported in BED format*. + **NOTE: When using this option, it is required that the BAM file is sorted/grouped by the read name. This allows bamToBed to extract correct alignment coordinates for each end based on their respective CIGAR strings. It also assumes that the alignments for a given pair come in groups of twos. There is not yet a standard method for reporting multiple alignments using BAM. bamToBed will fail if an aligner does not report alignments in pairs**. + BAM files may be piped to bamToBed by specifying "-i stdin". See example below. +**-bed12** Write "blocked" BED (a.k.a. BED12) format. This will convert "spliced" BAM alignments (denoted by the "N" CIGAR operation) to BED12. +**-ed** Use the "edit distance" tag (NM) for the BED score field. Default for BED is to use mapping quality. Default for BEDPE is to use the *minimum* of the two mapping qualities for the pair. When -ed is used with -bedpe, the total edit distance from the two mates is reported. +**-tag** Use other *numeric* BAM alignment tag for BED score. Default for BED is to use mapping quality. Disallowed with BEDPE output. +**-color** An R,G,B string for the color used with BED12 format. Default is (255,0,0). +**-split** Report each portion of a "split" BAM (i.e., having an "N" CIGAR operation) alignment as a distinct BED intervals. +====================== ========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================= + +By default, each alignment in the BAM file is converted to a 6 column BED. The BED "name" field is +comprised of the RNAME field in the BAM alignment. If mate information is available, the mate (e.g., +"/1" or "/2") field will be appended to the name. The "score" field is the mapping quality score from the +BAM alignment, unless the **-ed** option is used. + +Examples: +:: + bamToBed -i reads.bam | head -5 + chr7 118970079 118970129 TUPAC_0001:3:1:0:1452#0/1 37 - + chr7 118965072 118965122 TUPAC_0001:3:1:0:1452#0/2 37 + + chr11 46769934 46769984 TUPAC_0001:3:1:0:1472#0/1 37 - + + bamToBed -i reads.bam -tag NM | head -5 + chr7 118970079 118970129 TUPAC_0001:3:1:0:1452#0/1 1 - + chr7 118965072 118965122 TUPAC_0001:3:1:0:1452#0/2 3 + + chr11 46769934 46769984 TUPAC_0001:3:1:0:1472#0/1 1 - + + bamToBed -i reads.bam -bedpe | head -3 + chr7 118965072 118965122 chr7 118970079 118970129 + TUPAC_0001:3:1:0:1452#0 37 + - + chr11 46765606 46765656 chr11 46769934 46769984 + TUPAC_0001:3:1:0:1472#0 37 + - + chr20 54704674 54704724 chr20 54708987 54709037 + TUPAC_0001:3:1:1:1833#0 37 + + + +One can easily use samtools and bamToBed together as part of a UNIX pipe. In this example, we will +only convert properly-paired (BAM flag == 0x2) reads to BED format. +:: + samtools view -bf 0x2 reads.bam | bamToBed -i stdin | head + chr7 118970079 118970129 TUPAC_0001:3:1:0:1452#0/1 37 - + chr7 118965072 118965122 TUPAC_0001:3:1:0:1452#0/2 37 + + chr11 46769934 46769984 TUPAC_0001:3:1:0:1472#0/1 37 - + chr11 46765606 46765656 TUPAC_0001:3:1:0:1472#0/2 37 + + chr20 54704674 54704724 TUPAC_0001:3:1:1:1833#0/1 37 + + chr20 54708987 54709037 TUPAC_0001:3:1:1:1833#0/2 37 - + chrX 9380413 9380463 TUPAC_0001:3:1:1:285#0/1 0 - + chrX 9375861 9375911 TUPAC_0001:3:1:1:285#0/2 0 + + chrX 131756978 131757028 TUPAC_0001:3:1:2:523#0/1 37 + + chrX 131761790 131761840 TUPAC_0001:3:1:2:523#0/2 37 - + + +================================================================== +5.4.2 (-split)Creating BED12 features from "spliced" BAM entries. +================================================================== +bamToBed will, by default, create a BED6 feature that represents the entire span of a spliced/split +BAM alignment. However, when using the **-split** command, a BED12 feature is reported where BED +blocks will be created for each aligned portion of the sequencing read. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Exons *************** ********** + + BED/BAM A ^^^^^^^^^^^^....................................^^^^ + + Result =============== ==== + diff --git a/docs/_build/html/_sources/content/bed12ToBed6.txt b/docs/_build/html/_sources/content/bed12ToBed6.txt new file mode 100644 index 00000000..d9159e3b --- /dev/null +++ b/docs/_build/html/_sources/content/bed12ToBed6.txt @@ -0,0 +1,49 @@ +############### +5.21 bed12ToBed6 +############### +**bed12ToBed6** is a convenience tool that converts BED features in BED12 (a.k.a. "blocked" BED +features such as genes) to discrete BED6 features. For example, in the case of a gene with six exons, +bed12ToBed6 would create six separate BED6 features (i.e., one for each exon). + + +========================================================================== +5.21.1 Usage and option summary +========================================================================== +Usage: +:: + bed12ToBed6 [OPTIONS] -i <BED12> + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-i** The BED12 file that should be split into discrete BED6 features. *Use "stdin" when using piped input*. +=========================== =============================================================================================================================================================================================================== + + + + +========================================================================== +5.21.2 Default behavior +========================================================================== +Figure: +:: + head data/knownGene.hg18.chr21.bed | tail -n 3 + chr21 10079666 10120808 uc002yiv.1 0 - 10081686 1 0 1 2 0 6 0 8 + 0 4 528,91,101,215, 0,1930,39750,40927, + chr21 10080031 10081687 uc002yiw.1 0 - 10080031 1 0 0 8 0 0 3 1 + 0 2 200,91, 0,1565, + chr21 10081660 10120796 uc002yix.2 0 - 10081660 1 0 0 8 1 6 6 0 + 0 3 27,101,223,0,37756,38913, + + head data/knownGene.hg18.chr21.bed | tail -n 3 | bed12ToBed6 -i stdin + chr21 10079666 10080194 uc002yiv.1 0 - + chr21 10081596 10081687 uc002yiv.1 0 - + chr21 10119416 10119517 uc002yiv.1 0 - + chr21 10120593 10120808 uc002yiv.1 0 - + chr21 10080031 10080231 uc002yiw.1 0 - + chr21 10081596 10081687 uc002yiw.1 0 - + chr21 10081660 10081687 uc002yix.2 0 - + chr21 10119416 10119517 uc002yix.2 0 - + chr21 10120573 10120796 uc002yix.2 0 - + + diff --git a/docs/_build/html/_sources/content/bedToBam.txt b/docs/_build/html/_sources/content/bedToBam.txt new file mode 100644 index 00000000..c0f1d6ac --- /dev/null +++ b/docs/_build/html/_sources/content/bedToBam.txt @@ -0,0 +1,71 @@ +############### +5.18 bedToBam +############### +**bedToBam** converts features in a feature file to BAM format. This is useful as an efficient means of +storing large genome annotations in a compact, indexed format for visualization purposes. + +========================================================================== +5.18.1 Usage and option summary +========================================================================== +Usage: +:: + bedToBam [OPTIONS] -i <BED/GFF/VCF> -g <GENOME> > <BAM> + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-mapq** Set a mapping quality (SAM MAPQ field) value for all BED entries. *Default: 255* +**-ubam** Write uncompressed BAM output. The default is write compressed BAM output. +**-bed12** Indicate that the input BED file is in BED12 (a.k.a "blocked" BED) format. In this case, bedToBam will convert blocked BED features (e.g., gene annotaions) into "spliced" BAM alignments by creating an appropriate CIGAR string. +=========================== =============================================================================================================================================================================================================== + + + + +========================================================================== +5.18.2 Default behavior +========================================================================== +The default behavior is to assume that the input file is in unblocked format. For example: +:: + head -5 rmsk.hg18.chr21.bed + chr21 9719768 9721892 ALR/Alpha 1004 + + chr21 9721905 9725582 ALR/Alpha 1010 + + chr21 9725582 9725977 L1PA3 3288 + + chr21 9726021 9729309 ALR/Alpha 1051 + + chr21 9729320 9729809 L1PA3 3897 - + + bedToBam -i rmsk.hg18.chr21.bed -g human.hg18.genome > rmsk.hg18.chr21.bam + + samtools view rmsk.hg18.chr21.bam | head -5 + ALR/Alpha 0 chr21 9719769 255 2124M * 0 0 * * + ALR/Alpha 0 chr21 9721906 255 3677M * 0 0 * * + L1PA3 0 chr21 9725583 255 395M * 0 0 * * + ALR/Alpha 0 chr21 9726022 255 3288M * 0 0 * * + L1PA3 16 chr21 9729321 255 489M * 0 0 * * + + +========================================================================== +5.18.3 Creating "spliced" BAM entries from "blocked" BED features +========================================================================== +Optionally, **bedToBam** will create spliced BAM entries from "blocked" BED features by using the +-bed12 option. This will create CIGAR strings in the BAM output that will be displayed as "spliced" +alignments. The image illustrates this behavior, as the top track is a BAM representation (using +bedToBam) of a BED file of UCSC genes. + +For example: +:: + bedToBam -i knownGene.hg18.chr21.bed -g human.hg18.genome -bed12 > knownGene.bam + + samtools view knownGene.bam | head -2 + uc002yip.1 16 chr21 9928614 2 5 5 + + 298M1784N71M1411N93M3963N80M1927N106M3608N81M1769N62M11856N89M98N82M816N61M6910N65M + 738N64M146N100M1647N120M6478N162M1485N51M6777N60M9274N54M880N54M1229N54M2377N54M112 + 68N58M2666N109M2885N158M * 0 0 * * + uc002yiq.1 16 chr21 9928614 2 5 5 + + 298M1784N71M1411N93M3963N80M1927N106M3608N81M1769N62M11856N89M98N82M816N61M6910N65M + 738N64M146N100M1647N120M6478N162M1485N51M6777N60M10208N54M1229N54M2377N54M11268N58M + 2666N109M2885N158M * 0 0 * * + + diff --git a/docs/_build/html/_sources/content/bedToIgv.txt b/docs/_build/html/_sources/content/bedToIgv.txt new file mode 100644 index 00000000..64d7578e --- /dev/null +++ b/docs/_build/html/_sources/content/bedToIgv.txt @@ -0,0 +1,68 @@ +############### +5.20 bedToIgv +############### +**bedToIgv** creates an IGV (http://www.broadinstitute.org/igv/) batch script (see: http:// +www.broadinstitute.org/igv/batch for details) such that a ¡°snapshot¡± will be taken at each features in a +feature file. This is useful as an efficient means for quickly collecting images of primary data at several +loci for subsequent screening, etc. + +**NOTE: One must use IGV version 1.5 or higher.** + + + +========================================================================== +5.20.1 Usage and option summary +========================================================================== +Usage: +:: + bedToIgv [OPTIONS] -i <BED/GFF/VCF> > <igv.batch> + + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-path** The full path to which the IGV snapshots should be written. *Default: ./* +**-sess** The full path to an existing IGV session file to be loaded prior to taking snapshots. *Default is for no session to be loaded and the assumption is that you already have IGV open and loaded with your relevant data prior to running the batch script*. +**-sort** The type of BAM sorting you would like to apply to each image. **Valid sorting options**: *base, position, strand, quality, sample, and readGroup Default is to apply no sorting at all*. +**-clps** Collapse the aligned reads prior to taking a snapshot. *Default is to not collapse*. +**-name** Use the "name" field (column 4) for each image's filename. *Default is to use the "chr:start-pos.ext"*. +**-slop** Number of flanking base pairs on the left & right of the image. +**-img** The type of image to be created. **Valid options**: *png, eps, svg Default is png*. +=========================== =============================================================================================================================================================================================================== + + + + + +========================================================================== +5.20.2 Default behavior +========================================================================== +Figure: +:: + bedToIgv -i data/rmsk.hg18.chr21.bed | head -9 + snapshotDirectory ./ + goto chr21:9719768-9721892 + snapshot chr21:9719768-9721892.png + goto chr21:9721905-9725582 + snapshot chr21:9721905-9725582.png + goto chr21:9725582-9725977 + snapshot chr21:9725582-9725977.png + goto chr21:9726021-9729309 + snapshot chr21:9726021-9729309.png + + + + +========================================================================== +5.20.3 Using a bedToIgv batch script within IGV. +========================================================================== +Once an IGV batch script has been created with **bedToIgv**, it is simply a matter of running it from +within IGV. + +For example, first create the batch script: +:: + bedToIgv -i data/rmsk.hg18.chr21.bed > rmsk.igv.batch + +Then, open and launch the batch script from within IGV. This will immediately cause IGV to begin +taking snapshots of your requested regions. + diff --git a/docs/_build/html/_sources/content/bedtools-suite.txt b/docs/_build/html/_sources/content/bedtools-suite.txt new file mode 100644 index 00000000..bbe1802d --- /dev/null +++ b/docs/_build/html/_sources/content/bedtools-suite.txt @@ -0,0 +1,45 @@ +############### +The BEDTools suite +############### + +This section covers the functionality and default / optional usage for each of the available BEDTools. +Example "figures" are provided in some cases in an effort to convey the purpose of the tool. The +behavior of each available parameter is discussed for each tool in abstract terms. More concrete usage +examples are provided in **Section 6**. + + +================= +Table of contents +================= +.. toctree:: + :maxdepth: 1 + + intersectBed + pairToBed + pairToPair + bamToBed + windowBed + closestBed + subtractBed + mergeBed + coverageBed + genomecoverageBed + fastafromBed + maskfastafromBed + shuffleBed + slopBed + sortBed + linksBed + complementBed + bedToBam + overlap + bedToIgv + bed12ToBed6 + groupBy + unionBedGraphs + annotateBed + + + + + \ No newline at end of file diff --git a/docs/_build/html/_sources/content/closestBed.txt b/docs/_build/html/_sources/content/closestBed.txt new file mode 100644 index 00000000..3276718c --- /dev/null +++ b/docs/_build/html/_sources/content/closestBed.txt @@ -0,0 +1,130 @@ +############### +5.6 closestBed +############### +Similar to **intersectBed, closestBed** searches for overlapping features in A and B. In the event that +no feature in B overlaps the current feature in A, **closestBed** will report the *closest* (that is, least +genomic distance from the start or end of A) feature in B. For example, one might want to find which +is the closest gene to a significant GWAS polymorphism. Note that **closestBed** will report an +overlapping feature as the closest---that is, it does not restrict to closest *non-overlapping* feature. + +========================================================================== +5.6.1 Usage and option summary +========================================================================== +**Usage:** +:: + closestBed [OPTIONS] -a <BED/GFF/VCF> -b <BED/GFF/VCF> + + +=========================== =============================================================================================================================================================================================================== +Option Description +=========================== =============================================================================================================================================================================================================== +**-s** Force strandedness. That is, find the closest feature in B overlaps A on the same strand. *By default, this is disabled*. +**-d** In addition to the closest feature in B, report its distance to A as an extra column. The reported distance for overlapping features will be 0. +**-t** How ties for closest feature should be handled. This occurs when two features in B have exactly the same overlap with a feature in A. *By default, all such features in B are reported*. + + Here are the other choices controlling how ties are handled: + + *all-* Report all ties (default). + + *first-* Report the first tie that occurred in the B file. + + *last-* Report the last tie that occurred in the B file. +=========================== =============================================================================================================================================================================================================== + + + + +========================================================================== +5.6.2 Default behavior +========================================================================== +**closestBed** first searches for features in B that overlap a feature in A. If overlaps are found, the feature +in B that overlaps the highest fraction of A is reported. If no overlaps are found, **closestBed** looks for +the feature in B that is *closest* (that is, least genomic distance to the start or end of A) to A. For +example, in the figure below, feature B1 would be reported as the closest feature to A1. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BED FILE A ************* + + BED File B ^^^^^^^^ ^^^^^^ + + Result ====== + + +For example: +:: + cat A.bed + chr1 100 200 + + cat B.bed + chr1 500 1000 + chr1 1300 2000 + + closestBed -a A.bed -b B.bed + chr1 100 200 chr1 500 1000 + + + +========================================================================== +5.6.3 (-s)Enforcing "strandedness" +========================================================================== +This option behaves the same as the -s option for intersectBed while scanning for the closest +(overlapping or not) feature in B. See the discussion in the intersectBed section for details. + + + +========================================================================== +5.6.4 (-t)Controlling how ties for "closest" are broken +========================================================================== +When there are two or more features in B that overlap the *same fraction* of A, **closestBed** will, by +default, report both features in B. Imagine feature A is a SNP and file B contains genes. It can often +occur that two gene annotations (e.g. opposite strands) in B will overlap the SNP. As mentioned, the +default behavior is to report both such genes in B. However, the -t option allows one to optionally +choose the just first or last feature (in terms of where it occurred in the input file, not chromosome +position) that occurred in B. + +For example (note the difference between -l 200 and -l 300): +:: + cat A.bed + chr1 100 101 rs1234 + + cat B.bed + chr1 0 1000 geneA 100 + + chr1 0 1000 geneB 100 - + + closestBed -a A.bed -b B.bed + chr1 100 101 rs1234 chr1 0 1000 geneA 100 + + chr1 100 101 rs1234 chr1 0 1000 geneB 100 - + + closestBed -a A.bed -b B.bed -t all + chr1 100 101 rs1234 chr1 0 1000 geneA 100 + + chr1 100 101 rs1234 chr1 0 1000 geneB 100 - + + closestBed -a A.bed -b B.bed -t first + chr1 100 101 rs1234 chr1 0 1000 geneA 100 + + + closestBed -a A.bed -b B.bed -t last + chr1 100 101 rs1234 chr1 0 1000 geneB 100 - + + + + + + +========================================================================== +5.6.5 (-d)Reporting the distance to the closest feature in base pairs +========================================================================== +ClosestBed will optionally report the distance to the closest feature in the B file using the **-d** option. +When a feature in B overlaps a feature in A, a distance of 0 is reported. +:: + cat A.bed + chr1 100 200 + chr1 500 600 + + cat B.bed + chr1 500 1000 + chr1 1300 2000 + + closestBed -a A.bed -b B.bed -d + chr1 100 200 chr1 500 1000 300 + chr1 500 600 chr1 500 1000 0 diff --git a/docs/_build/html/_sources/content/complementBed.txt b/docs/_build/html/_sources/content/complementBed.txt new file mode 100644 index 00000000..1951d0d4 --- /dev/null +++ b/docs/_build/html/_sources/content/complementBed.txt @@ -0,0 +1,48 @@ +############### +5.17 complementBed +############### +**complementBed** returns the intervals in a genome that are not by the features in a feature file. An +example usage of this tool would be to return the intervals of the genome that are not annotated as a +repeat. + + +========================================================================== +5.17.1 Usage and option summary +========================================================================== +Usage: +:: + complementBed [OPTIONS] -i <BED/GFF/VCF> -g <GENOME> + +**No additional options.** + + + + +========================================================================== +5.17.2 Default behavior +========================================================================== +Figure: +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BED FILE A ************* *************** ****************** + + Result === === ===== ======= + + +For example: +:: + cat A.bed + chr1 100 200 + chr1 400 500 + chr1 500 800 + + cat my.genome + chr1 1000 + + complementBed -i A.bed -g my.genome + chr1 0 100 + chr1 200 400 + chr1 800 1000 + + diff --git a/docs/_build/html/_sources/content/coverageBed.txt b/docs/_build/html/_sources/content/coverageBed.txt new file mode 100644 index 00000000..ccd5acd2 --- /dev/null +++ b/docs/_build/html/_sources/content/coverageBed.txt @@ -0,0 +1,184 @@ +############### +5.9 coverageBed +############### +**coverageBed** computes both the *depth* and *breadth* of coverage of features in file A across the features +in file B. For example, **coverageBed** can compute the coverage of sequence alignments (file A) across 1 +kilobase (arbitrary) windows (file B) tiling a genome of interest. One advantage that **coverageBed** +offers is that it not only *counts* the number of features that overlap an interval in file B, it also +computes the fraction of bases in B interval that were overlapped by one or more features. Thus, +**coverageBed** also computes the *breadth* of coverage for each interval in B. + +========================================================================== +5.9.1 Usage and option summary +========================================================================== +Usage: +:: + coverageBed [OPTIONS] -a <BED/GFF/VCF> -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> | intersectBed -abam stdin -b genes.bed + +**-s** Force strandedness. That is, only features in A are only counted towards coverage in B if they are the same strand. *By default, this is disabled and coverage is counted without respect to strand*. +**-hist** Report a histogram of coverage for each feature in B as well as a summary histogram for _all_ features in B. + + | Output (tab delimited) after each feature in B: + + | 1) depth + | 2) # bases at depth + | 3) size of B + | 4) % of B at depth +**-d** Report the depth at each position in each B feature. Positions reported are one based. Each position and depth follow the complete B feature. +**-split** Treat "split" BAM or BED12 entries as distinct BED intervals when computing coverage. For BAM files, this uses the CIGAR "N" and "D" operations to infer the blocks for computing coverage. For BED12 files, this uses the BlockCount, BlockStarts, and BlockEnds fields (i.e., columns 10,11,12). +=========================== =============================================================================================================================================================================================================== + + + + + + +========================================================================== +5.9.2 Default behavior +========================================================================== +After each interval in B, **coverageBed** will report: + +1) The number of features in A that overlapped (by at least one base pair) the B interval. +2) The number of bases in B that had non-zero coverage from features in A. +3) The length of the entry in B. +4) The fraction of bases in B that had non-zero coverage from features in A. + +Below are the number of features in A (N=...) overlapping B and fraction of bases in B with coverage. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BED FILE B *************** *************** ****** ************** + + BED File A ^^^^ ^^^^ ^^ ^^^^^^^^^ ^^^ ^^ ^^^^ + ^^^^^^^^ ^^^^^ ^^^^^ ^^ + + Result [ N=3, 10/15 ] [ N=1, 2/16 ] [N=1,6/6] [N=5, 11/12 ] + + +For example: +:: + cat A.bed + chr1 10 20 + chr1 20 30 + chr1 30 40 + chr1 100 200 + + cat B.bed + chr1 0 100 + chr1 100 200 + chr2 0 100 + + coverageBed -a A.bed -b B.bed + chr1 0 100 3 30 100 0.3000000 + chr1 100 200 1 100 100 1.0000000 + chr2 0 100 0 0 100 0.0000000 + + + +========================================================================== +5.9.4 (-s)Calculating coverage by strand +========================================================================== +Use the "**-s**" option if one wants to only count coverage if features in A are on the same strand as the +feature / window in B. This is especially useful for RNA-seq experiments. + +For example (note the difference in coverage with and without **-s**: +:: + cat A.bed + chr1 10 20 a1 1 - + chr1 20 30 a2 1 - + chr1 30 40 a3 1 - + chr1 100 200 a4 1 + + + cat B.bed + chr1 0 100 b1 1 + + chr1 100 200 b2 1 - + chr2 0 100 b3 1 + + + coverageBed -a A.bed -b B.bed + chr1 0 100 b1 1 + 3 30 100 0.3000000 + chr1 100 200 b2 1 - 1 100 100 1.0000000 + chr2 0 100 b3 1 + 0 0 100 0.0000000 + + coverageBed -a A.bed -b B.bed -s + chr1 0 100 b1 1 + 0 0 100 0.0000000 + chr1 100 200 b2 1 - 0 0 100 0.0000000 + chr2 0 100 b3 1 + 0 0 100 0.0000000 + +========================================================================== +5.9.5 (-hist)Creating a histogram of coverage for each feature in the B file +========================================================================== +One should use the "**-hist**" option to create, for each interval in B, a histogram of coverage of the +features in A across B. + +In this case, each entire feature in B will be reported, followed by the depth of coverage, the number of +bases at that depth, the size of the feature, and the fraction covered. After all of the features in B have +been reported, a histogram summarizing the coverage among all features in B will be reported. +:: + cat A.bed + chr1 10 20 a1 1 - + chr1 20 30 a2 1 - + chr1 30 40 a3 1 - + chr1 100 200 a4 1 + + + cat B.bed + chr1 0 100 b1 1 + + chr1 100 200 b2 1 - + chr2 0 100 b3 1 + + + coverageBed -a A.bed -b B.bed -hist + chr1 0 100 b1 1 + 0 70 100 0.7000000 + chr1 0 100 b1 1 + 1 30 100 0.3000000 + chr1 100 200 b2 1 - 1 100 100 1.0000000 + chr2 0 100 b3 1 + 0 100 100 1.0000000 + all 0 170 300 0.5666667 + all 1 130 300 0.4333333 + + + +========================================================================== +5.9.6 (-hist)Reporting the per-base of coverage for each feature in the B file +========================================================================== +One should use the "**-d**" option to create, for each interval in B, a detailed list of coverage at each of the +positions across each B interval. + +The output will consist of a line for each one-based position in each B feature, followed by the coverage +detected at that position. +:: + cat A.bed + chr1 0 5 + chr1 3 8 + chr1 4 8 + chr1 5 9 + + cat B.bed + chr1 0 10 + + coverageBed -a A.bed -b B.bed -d + chr1 0 10 B 1 1 + chr1 0 10 B 2 1 + chr1 0 10 B 3 1 + chr1 0 10 B 4 2 + chr1 0 10 B 5 3 + chr1 0 10 B 6 3 + chr1 0 10 B 7 3 + chr1 0 10 B 8 3 + chr1 0 10 B 9 1 + chr1 0 10 B 10 0 + + + +========================================================================== +5.9.7 (-split)Reporting coverage with spliced alignments or blocked BED features +========================================================================== +As described in section 1.3.19, coverageBed will, by default, screen for overlaps against the entire span +of a spliced/split BAM alignment or blocked BED12 feature. When dealing with RNA-seq reads, for +example, one typically wants to only tabulate coverage for the portions of the reads that come from +exons (and ignore the interstitial intron sequence). The **-split** command allows for such coverage to be +performed. diff --git a/docs/_build/html/_sources/content/example-usage.txt b/docs/_build/html/_sources/content/example-usage.txt new file mode 100644 index 00000000..3fe5edf3 --- /dev/null +++ b/docs/_build/html/_sources/content/example-usage.txt @@ -0,0 +1,331 @@ +############### +Example usage +############### +Below are several examples of basic BEDTools usage. Example BED files are provided in the +/data directory of the BEDTools distribution. + + + +========================================================================== +6.1 intersectBed +========================================================================== + + +6.1.1 Report the base-pair overlap between sequence alignments and genes. +:: + intersectBed -a reads.bed -b genes.bed + + + +6.1.2 Report whether each alignment overlaps one or more genes. If not, the alignment is not reported. +:: + intersectBed -a reads.bed -b genes.bed -u + + + +6.1.3 Report those alignments that overlap NO genes. Like "grep -v" +:: + intersectBed -a reads.bed -b genes.bed -v + + +6.1.4 Report the number of genes that each alignment overlaps. +:: + intersectBed -a reads.bed -b genes.bed -c + + + +6.1.5 Report the entire, original alignment entry for each overlap with a gene. +:: + intersectBed -a reads.bed -b genes.bed -wa + + + +6.1.6 Report the entire, original gene entry for each overlap with a gene. +:: + intersectBed -a reads.bed -b genes.bed -wb + + + +6.1.7 Report the entire, original alignment and gene entries for each overlap. +:: + intersectBed -a reads.bed -b genes.bed -wa -wb + + + +6.1.8 Only report an overlap with a repeat if it spans at least 50% of the exon. +:: + intersectBed -a exons.bed -b repeatMasker.bed -f 0.50 + + + +6.1.9 Only report an overlap if comprises 50% of the structural variant and 50% of the segmental duplication. Thus, it is reciprocally at least a 50% overlap. +:: + intersectBed -a SV.bed -b segmentalDups.bed -f 0.50 -r + + + + +6.1.10 Read BED A from stdin. For example, find genes that overlap LINEs but not SINEs. +:: + intersectBed -a genes.bed -b LINES.bed | intersectBed -a stdin -b SINEs.bed -v + + + + +6.1.11 Retain only single-end BAM alignments that overlap exons. +:: + intersectBed -abam reads.bam -b exons.bed > reads.touchingExons.bam + + + + + +6.1.12 Retain only single-end BAM alignments that do not overlap simple sequence +repeats. +:: + intersectBed -abam reads.bam -b SSRs.bed -v > reads.noSSRs.bam + + + +========================================================================== +6.2 pairToBed +========================================================================== + + + +6.2.1 Return all structural variants (in BEDPE format) that overlap with genes on either +end. +:: + pairToBed -a sv.bedpe -b genes > sv.genes + + + +6.2.2 Return all structural variants (in BEDPE format) that overlap with genes on both +end. +:: + pairToBed -a sv.bedpe -b genes -type both > sv.genes + + + + +6.2.3 Retain only paired-end BAM alignments where neither end overlaps simple +sequence repeats. +:: + pairToBed -abam reads.bam -b SSRs.bed -type neither > reads.noSSRs.bam + + + +6.2.4 Retain only paired-end BAM alignments where both ends overlap segmental +duplications. +:: + pairToBed -abam reads.bam -b segdups.bed -type both > reads.SSRs.bam + + + + +6.2.5 Retain only paired-end BAM alignments where neither or one and only one end +overlaps segmental duplications. +:: + pairToBed -abam reads.bam -b segdups.bed -type notboth > reads.notbothSSRs.bam + + + + + + +========================================================================== +6.3 pairToPair +========================================================================== + + +6.3.1 Find all SVs (in BEDPE format) in sample 1 that are also in sample 2. +:: + pairToPair -a 1.sv.bedpe -b 2.sv.bedpe | cut -f 1-10 > 1.sv.in2.bedpe + + + +6.3.2 Find all SVs (in BEDPE format) in sample 1 that are not in sample 2. +:: + pairToPair -a 1.sv.bedpe -b 2.sv.bedpe -type neither | cut -f 1-10 > +1.sv.notin2.bedpe + + + + + +========================================================================== +6.4 bamToBed +========================================================================== + + +6.4.1 Convert BAM alignments to BED format. +:: + bamToBed -i reads.bam > reads.bed + + +6.4.2 Convert BAM alignments to BED format using the BAM edit distance (NM) as the +BED "score". +:: + bamToBed -i reads.bam -ed > reads.bed + + +6.4.3 Convert BAM alignments to BEDPE format. +:: + bamToBed -i reads.bam -bedpe > reads.bedpe + + + + + +========================================================================== +6.5 windowBed +========================================================================== + + + +6.5.1 Report all genes that are within 10000 bp upstream or downstream of CNVs. +:: + windowBed -a CNVs.bed -b genes.bed -w 10000 + + + +6.5.2 Report all genes that are within 10000 bp upstream or 5000 bp downstream of +CNVs. +:: + windowBed -a CNVs.bed -b genes.bed -l 10000 -r 5000 + + +6.5.3 Report all SNPs that are within 5000 bp upstream or 1000 bp downstream of genes. +Define upstream and downstream based on strand. +:: + windowBed -a genes.bed -b snps.bed -l 5000 -r 1000 -sw + + + + + +========================================================================== +6.6 closestBed +========================================================================== +Note: By default, if there is a tie for closest, all ties will be reported. **closestBed** allows overlapping +features to be the closest. + + + +6.6.1 Find the closest ALU to each gene. +:: + closestBed -a genes.bed -b ALUs.bed + + +6.6.2 Find the closest ALU to each gene, choosing the first ALU in the file if there is a +tie. +:: + closestBed -a genes.bed -b ALUs.bed -t first + + + +6.6.3 Find the closest ALU to each gene, choosing the last ALU in the file if there is a +tie. +:: + closestBed -a genes.bed -b ALUs.bed -t last + + + + + +========================================================================== +6.7 subtractBed +========================================================================== +Note: If a feature in A is entirely "spanned" by any feature in B, it will not be reported. + + + +6.7.1 Remove introns from gene features. Exons will (should) be reported. +:: + subtractBed -a genes.bed -b introns.bed + + +========================================================================== +6.8 mergeBed +========================================================================== + + +6.8.1 Merge overlapping repetitive elements into a single entry. +:: + mergeBed -i repeatMasker.bed + + + +6.8.2 Merge overlapping repetitive elements into a single entry, returning the number of +entries merged. +:: + mergeBed -i repeatMasker.bed -n + + +6.8.3 Merge nearby (within 1000 bp) repetitive elements into a single entry. +:: + mergeBed -i repeatMasker.bed -d 1000 + + +========================================================================== +6.9 coverageBed +========================================================================== + + +6.9.1 Compute the coverage of aligned sequences on 10 kilobase "windows" spanning the +genome. +:: + coverageBed -a reads.bed -b windows10kb.bed | head + chr1 0 10000 0 10000 0.00 + chr1 10001 20000 33 10000 0.21 + chr1 20001 30000 42 10000 0.29 + chr1 30001 40000 71 10000 0.36 + + + +6.9.2 Compute the coverage of aligned sequences on 10 kilobase "windows" spanning the +genome and created a BEDGRAPH of the number of aligned reads in each window for +display on the UCSC browser. +:: + coverageBed -a reads.bed -b windows10kb.bed | cut -f 1-4 > windows10kb.cov.bedg + + + +6.9.3 Compute the coverage of aligned sequences on 10 kilobase "windows" spanning the +genome and created a BEDGRAPH of the fraction of each window covered by at least +one aligned read for display on the UCSC browser. +:: + coverageBed -a reads.bed -b windows10kb.bed | awk ¡®{OFS="\t"; print $1,$2,$3,$6}¡¯ + > windows10kb.pctcov.bedg + + + + +========================================================================== +6.10 complementBed +========================================================================== + + +6.10.1 Report all intervals in the human genome that are not covered by repetitive +elements. +:: + complementBed -i repeatMasker.bed -g hg18.genome + + + +========================================================================== +6.11 shuffleBed +========================================================================== + + +6.11.1 Randomly place all discovered variants in the genome. However, prevent them +from being placed in know genome gaps. +:: + shuffleBed -i variants.bed -g hg18.genome -excl genome_gaps.bed + + +6.11.2 Randomly place all discovered variants in the genome. However, prevent them +from being placed in know genome gaps and require that the variants be randomly +placed on the same chromosome. +:: + shuffleBed -i variants.bed -g hg18.genome -excl genome_gaps.bed -chrom diff --git a/docs/_build/html/_sources/content/fastafromBed.txt b/docs/_build/html/_sources/content/fastafromBed.txt new file mode 100644 index 00000000..6e2b4ca0 --- /dev/null +++ b/docs/_build/html/_sources/content/fastafromBed.txt @@ -0,0 +1,126 @@ +############### +5.11 fastaFromBed +############### +**fastaFromBed** extracts sequences from a FASTA file for each of the intervals defined in a BED file. +The headers in the input FASTA file must exactly match the chromosome column in the BED file. + +========================================================================== +5.11.1 Usage and option summary +========================================================================== +Usage: +:: + fastaFromBed [OPTIONS] -fi <input FASTA> -bed <BED/GFF/VCF> -fo <output FASTA> + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-name** Use the "name" column in the BED file for the FASTA headers in the output FASTA file. +**-tab** Report extract sequences in a tab-delimited format instead of in FASTA format. +**-s** Force strandedness. If the feature occupies the antisense strand, the sequence will be reverse complemented. *Default: strand information is ignored*. +=========================== =============================================================================================================================================================================================================== + + + + + + + +========================================================================== +5.11.2 Default behavior +========================================================================== +**fastaFromBed** will extract the sequence defined by the coordinates in a BED interval and create a +new FASTA entry in the output file for each extracted sequence. By default, the FASTA header for each +extracted sequence will be formatted as follows: "<chrom>:<start>-<end>". + +For example: +:: + $ cat test.fa + >chr1 + AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + + cat test.bed + chr1 5 10 + + fastaFromBed -fi test.fa -bed test.bed -fo test.fa.out + + cat test.fa.out + >chr1:5-10 + AAACC + + + + +========================================================================== +5.11.3 Using the BED "name" column as a FASTA header. +========================================================================== +Using the **-name** option, one can set the FASTA header for each extracted sequence to be the "name" +columns from the BED feature. + +For example: +:: + cat test.fa + >chr1 + AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + + cat test.bed + chr1 5 10 myseq + + fastaFromBed -fi test.fa -bed test.bed -fo test.fa.out -name + + cat test.fa.out + >myseq + AAACC + + + + + + + + + + +========================================================================== +5.11.4 Creating a tab-delimited output file in lieu of FASTA output. +========================================================================== +Using the **-tab** option, the **-fo** output file will be tab-delimited instead of in FASTA format. + +For example: +:: + cat test.fa + >chr1 + AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + + cat test.bed + chr1 5 10 myseq + + fastaFromBed -fi test.fa -bed test.bed -fo test.fa.out.tab -name -tab + + cat test.fa.out + myseq AAACC + + + +========================================================================== +5.11.5 (-s)Forcing the extracted sequence to reflect the requested strand +========================================================================== +**fastaFromBed** will extract the sequence in the orientation defined in the strand column when the "-s" +option is used. + +For example: +:: + cat test.fa + >chr1 + AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + + cat test.bed + chr1 20 25 forward 1 + + chr1 20 25 reverse 1 - + + fastaFromBed -fi test.fa -bed test.bed -s -name -fo test.fa.out + + cat test.fa.out + >forward + CGCTA + >reverse + TAGCG diff --git a/docs/_build/html/_sources/content/general-usage.txt b/docs/_build/html/_sources/content/general-usage.txt new file mode 100644 index 00000000..7047cc55 --- /dev/null +++ b/docs/_build/html/_sources/content/general-usage.txt @@ -0,0 +1,213 @@ +############### +General usage +############### + +======================= +4.1 Supported file formats +======================= + +---------------------- +4.1.1 BED format +---------------------- +As described on the UCSC Genome Browser website (see link below), the BED format is a concise and +flexible way to represent genomic features and annotations. The BED format description supports up to +12 columns, but only the first 3 are required for the UCSC browser, the Galaxy browser and for +BEDTools. BEDTools allows one to use the "BED12" format (that is, all 12 fields listed below). +However, only intersectBed, coverageBed, genomeCoverageBed, and bamToBed will obey the BED12 +"blocks" when computing overlaps, etc., via the **"-split"** option. For all other tools, the last six columns +are not used for any comparisons by the BEDTools. Instead, they will use the entire span (start to end) +of the BED12 entry to perform any relevant feature comparisons. The last six columns will be reported +in the output of all comparisons. + +The file description below is modified from: http://genome.ucsc.edu/FAQ/FAQformat#format1. + +1. **chrom** - The name of the chromosome on which the genome feature exists. + - *Any string can be used*. For example, "chr1", "III", "myChrom", "contig1112.23". + - *This column is required*. +2. **start** - The zero-based starting position of the feature in the chromosome. + - *The first base in a chromosome is numbered 0*. + - *The start position in each BED feature is therefore interpreted to be 1 greater than the start position listed in the feature. For example, start=9, end=20 is interpreted to span bases 10 through 20,inclusive*. + - *This column is required*. +3. **end** - The one-based ending position of the feature in the chromosome. + - *The end position in each BED feature is one-based. See example above*. + - *This column is required*. +4. **name** - Defines the name of the BED feature. + - *Any string can be used*. For example, "LINE", "Exon3", "HWIEAS_0001:3:1:0:266#0/1", or "my_Feature". + - *This column is optional*. +5. **score** - The UCSC definition requires that a BED score range from 0 to 1000, inclusive. However, BEDTools allows any string to be stored in this field in order to allow greater flexibility in annotation features. For example, strings allow scientific notation for p-values, mean enrichment values, etc. It should be noted that this flexibility could prevent such annotations from being correctly displayed on the UCSC browser. + - *Any string can be used*. For example, 7.31E-05 (p-value), 0.33456 (mean enrichment value), "up", "down", etc. + - *This column is optional*. +6. **strand** - Defines the strand - either '+' or '-'. + - *This column is optional*. +7. **thickStart** - The starting position at which the feature is drawn thickly. + - *Allowed yet ignored by BEDTools*. +8. **thickEnd** - The ending position at which the feature is drawn thickly. + - *Allowed yet ignored by BEDTools*. +9. **itemRgb** - An RGB value of the form R,G,B (e.g. 255,0,0). + - *Allowed yet ignored by BEDTools*. +10. **blockCount** - The number of blocks (exons) in the BED line. + - *Allowed yet ignored by BEDTools*. +11. **blockSizes** - A comma-separated list of the block sizes. + - *Allowed yet ignored by BEDTools*. +12. **blockStarts** - A comma-separated list of block starts. + - *Allowed yet ignored by BEDTools*. + + +BEDTools requires that all BED input files (and input received from stdin) are **tab-delimited**. The following types of BED files are supported by BEDTools: + + +1. | **BED3**: A BED file where each feature is described by **chrom**, **start**, and **end**. + | For example: chr1 11873 14409 +2. | **BED4**: A BED file where each feature is described by **chrom**, **start**, **end**, and **name**. + | For example: chr1 11873 14409 uc001aaa.3 +3. | **BED5**: A BED file where each feature is described by **chrom**, **start**, **end**, **name**, and **score**. + | For example: chr1 11873 14409 uc001aaa.3 0 +4. | **BED6**: A BED file where each feature is described by **chrom**, **start**, **end**, **name**, **score**, and **strand**. + | For example: chr1 11873 14409 uc001aaa.3 0 + +5. | **BED12**: A BED file where each feature is described by all twelve columns listed above. + | For example: chr1 11873 14409 uc001aaa.3 0 + 11873 + | 11873 0 3 354,109,1189, 0,739,1347, + +---------------------- +4.1.2 BEDPE format +---------------------- +We have defined a new file format (BEDPE) in order to concisely describe disjoint genome features, +such as structural variations or paired-end sequence alignments. We chose to define a new format +because the existing "blocked" BED format (a.k.a. BED12) does not allow inter-chromosomal feature +definitions. In addition, BED12 only has one strand field, which is insufficient for paired-end sequence +alignments, especially when studying structural variation. + +The BEDPE format is described below. The description is modified from: http://genome.ucsc.edu/FAQ/FAQformat#format1. + +1. **chrom1** - The name of the chromosome on which the **first** end of the feature exists. + - *Any string can be used*. For example, "chr1", "III", "myChrom", "contig1112.23". + - *This column is required*. + - *Use "." for unknown*. +2. **start1** - The zero-based starting position of the **first** end of the feature on **chrom1**. + - *The first base in a chromosome is numbered 0*. + - *As with BED format, the start position in each BEDPE feature is therefore interpreted to be 1 greater than the start position listed in the feature. This column is required*. + - *Use -1 for unknown*. +3. **end1** - The one-based ending position of the first end of the feature on **chrom1**. + - *The end position in each BEDPE feature is one-based*. + - *This column is required*. + - *Use -1 for unknown*. +4. **chrom2** - The name of the chromosome on which the **second** end of the feature exists. + - *Any string can be used*. For example, "chr1", "III", "myChrom", "contig1112.23". + - *This column is required*. + - *Use "." for unknown*. +5. **start2** - The zero-based starting position of the **second** end of the feature on **chrom2**. + - *The first base in a chromosome is numbered 0*. + - *As with BED format, the start position in each BEDPE feature is therefore interpreted to be 1 greater than the start position listed in the feature. This column is required*. + - *Use -1 for unknown*. +6. **end2** - The one-based ending position of the **second** end of the feature on **chrom2**. + - *The end position in each BEDPE feature is one-based*. + - *This column is required*. + - *Use -1 for unknown*. +7. **name** - Defines the name of the BEDPE feature. + - *Any string can be used*. For example, "LINE", "Exon3", "HWIEAS_0001:3:1:0:266#0/1", or "my_Feature". + - *This column is optional*. +8. **score** - The UCSC definition requires that a BED score range from 0 to 1000, inclusive. *However, BEDTools allows any string to be stored in this field in order to allow greater flexibility in annotation features*. For example, strings allow scientific notation for p-values, mean enrichment values, etc. It should be noted that this flexibility could prevent such annotations from being correctly displayed on the UCSC browser. + - *Any string can be used*. For example, 7.31E-05 (p-value), 0.33456 (mean enrichment value), "up", "down", etc. + - *This column is optional*. +9. **strand1** - Defines the strand for the first end of the feature. Either '+' or '-'. + - *This column is optional*. + - *Use "." for unknown*. +10. **strand2** - Defines the strand for the second end of the feature. Either '+' or '-'. + - *This column is optional*. + - *Use "." for unknown*. +11. **Any number of additional, user-defined fields** - BEDTools allows one to add as many additional fields to the normal, 10-column BEDPE format as necessary. These columns are merely "passed through" **pairToBed** and **pairToPair** and are not part of any analysis. One would use these additional columns to add extra information (e.g., edit distance for each end of an alignment, or "deletion", "inversion", etc.) to each BEDPE feature. + - *These additional columns are optional*. + + +Entries from an typical BEDPE file: +:: + chr1 100 200 chr5 5000 5100 bedpe_example1 30 + - + chr9 1000 5000 chr9 3000 3800 bedpe_example2 100 + - + + +Entries from a BEDPE file with two custom fields added to each record: +:: + chr1 10 20 chr5 50 60 a1 30 + - 0 1 + chr9 30 40 chr9 80 90 a2 100 + - 2 1 + + + +---------------------- +4.1.3 GFF format +---------------------- +The GFF format is described on the Sanger Institute's website (http://www.sanger.ac.uk/resources/software/gff/spec.html). The GFF description below is modified from the definition at this URL. All nine columns in the GFF format description are required by BEDTools. + +1. **seqname** - The name of the sequence (e.g. chromosome) on which the feature exists. + - *Any string can be used*. For example, "chr1", "III", "myChrom", "contig1112.23". + - *This column is required*. +2. **source** - The source of this feature. This field will normally be used to indicate the program making the prediction, or if it comes from public database annotation, or is experimentally verified, etc. + - *This column is required*. +3. **feature** - The feature type name. Equivalent to BED's **name** field. + - *Any string can be used*. For example, "exon", etc. + - *This column is required*. +4. **start** - The one-based starting position of feature on **seqname**. + - *This column is required*. + - *BEDTools accounts for the fact the GFF uses a one-based position and BED uses a zero-based start position*. +5. **end** - The one-based ending position of feature on **seqname**. + - *This column is required*. +6. **score** - A score assigned to the GFF feature. Like BED format, BEDTools allows any string to be stored in this field in order to allow greater flexibility in annotation features. We note that this differs from the GFF definition in the interest of flexibility. + - *This column is required*. +7. **strand** - Defines the strand. Use '+', '-' or '.' + - *This column is required*. +8. **frame** - The frame of the coding sequence. Use '0', '1', '2', or '.'. + - *This column is required*. +9. **attribute** - Taken from http://www.sanger.ac.uk/resources/software/gff/spec.html: From version 2 onwards, the attribute field must have an tag value structure following the syntax used within objects in a .ace file, flattened onto one line by semicolon separators. Tags must be standard identifiers ([A-Za-z][AZa-z0-9_]*). Free text values must be quoted with double quotes. *Note: all non-printing characters in such free text value strings (e.g. newlines, tabs, control characters, etc) must be explicitly represented by their C (UNIX) style backslash-escaped representation (e.g. newlines as '\n', tabs as '\t')*. As in ACEDB, multiple values can follow a specific tag. The aim is to establish consistent use of particular tags, corresponding to an underlying implied ACEDB model if you want to think that way (but acedb is not required). + - *This column is required*. + +An entry from an example GFF file : +:: + seq1 BLASTX similarity 101 235 87.1 + 0 Target "HBA_HUMAN" 11 55 ; + E_value 0.0003 dJ102G20 GD_mRNA coding_exon 7105 7201 . - 2 Sequence + "dJ102G20.C1.1" + + + +---------------------- +4.1.3 GFF format +---------------------- +Some of the BEDTools (e.g., genomeCoverageBed, complementBed, slopBed) need to know the size of +the chromosomes for the organism for which your BED files are based. When using the UCSC Genome +Browser, Ensemble, or Galaxy, you typically indicate which which species/genome build you are +working. The way you do this for BEDTools is to create a "genome" file, which simply lists the names of +the chromosomes (or scaffolds, etc.) and their size (in basepairs). + + +Genome files must be **tab-delimited** and are structured as follows (this is an example for *C. elegans*): +:: + chrI 15072421 + chrII 15279323 + ... + chrX 17718854 + chrM 13794 + +BEDTools includes pre-defined genome files for human and mouse in the **/genomes** directory included +in the BEDTools distribution. + + +---------------------- +4.1.5 SAM/BAM format +---------------------- +The SAM / BAM format is a powerful and widely-used format for storing sequence alignment data (see +http://samtools.sourceforge.net/ for more details). It has quickly become the standard format to which +most DNA sequence alignment programs write their output. Currently, the following BEDTools +support inout in BAM format: *intersectBed, windowBed, coverageBed, genomeCoverageBed, +pairToBed, bamToBed*. Support for the BAM format in BEDTools allows one to (to name a few): +compare sequence alignments to annotations, refine alignment datasets, screen for potential mutations +and compute aligned sequence coverage. + +The details of how these tools work with BAM files are addressed in **Section 5** of this manual. + + +---------------------- +4.1.6 VCF format +---------------------- +The Variant Call Format (VCF) was conceived as part of the 1000 Genomes Project as a standardized +means to report genetic variation calls from SNP, INDEL and structural variant detection programs +(see http://www.1000genomes.org/wiki/doku.php?id=1000_genomes:analysis:vcf4.0 for details). +BEDTools now supports the latest version of this format (i.e, Version 4.0). As a result, BEDTools can +be used to compare genetic variation calls with other genomic features. diff --git a/docs/_build/html/_sources/content/genomecoverageBed.txt b/docs/_build/html/_sources/content/genomecoverageBed.txt new file mode 100644 index 00000000..3c5d6919 --- /dev/null +++ b/docs/_build/html/_sources/content/genomecoverageBed.txt @@ -0,0 +1,122 @@ +############### +5.10 genomeCoverageBed +############### +**genomeCoverageBed** computes a histogram of feature coverage (e.g., aligned sequences) for a given +genome. Optionally, by using the **-d** option, it will report the depth of coverage at *each base* on each +chromosome in the genome file (**-g**). + +========================================================================== +5.10.1 Usage and option summary +========================================================================== +Usage: +:: + genomeCoverageBed [OPTIONS] -i <BED> -g <GENOME> + +NOTE: genomeCoverageBed requires that the input BED file be sorted by +chromosome. A simple sort -k1,1 will suffice. + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-ibam** BAM file as input for coverage. Each BAM alignment in A added to the total coverage for the genome. Use "stdin" if passing it with a UNIX pipe: For example: + | samtools view -b <BAM> | genomeCoverageBed -ibam stdin -g hg18.genome +**-d** Report the depth at each genome position. *Default behavior is to report a histogram*. +**-max** Combine all positions with a depth >= max into a single bin in the histogram. +**-bg** Report depth in BedGraph format. For details, see: http://genome.ucsc.edu/goldenPath/help/bedgraph.html +**-bga** Report depth in BedGraph format, as above (i.e., -bg). However with this option, regions with zero coverage are also reported. This allows one to quickly extract all regions of a genome with 0 coverage by applying: "grep -w 0$" to the output. +**-split** Treat "split" BAM or BED12 entries as distinct BED intervals when computing coverage. For BAM files, this uses the CIGAR "N" and "D" operations to infer the blocks for computing coverage. For BED12 files, this uses the BlockCount, BlockStarts, and BlockEnds fields (i.e., columns 10,11,12). +**-strand** Calculate coverage of intervals from a specific strand. With BED files, requires at least 6 columns (strand is column 6). +=========================== =============================================================================================================================================================================================================== + + + + +========================================================================== +5.10.2 Default behavior +========================================================================== +By default, **genomeCoverageBed** will compute a histogram of coverage for the genome file provided. +The default output format is as follows: +1. chromosome (or entire genome) +2. depth of coverage from features in input file +3. number of bases on chromosome (or genome) with depth equal to column 2. +4. size of chromosome (or entire genome) in base pairs +5. fraction of bases on chromosome (or entire genome) with depth equal to column 2. + +For example: +:: + cat A.bed + chr1 10 20 + chr1 20 30 + chr2 0 500 + + cat my.genome + chr1 1000 + chr2 500 + + genomeCoverageBed -i A.bed -g my.genome + chr1 0 980 1000 0.98 + chr1 1 20 1000 0.02 + chr2 1 500 500 1 + genome 0 980 1500 0.653333 + genome 1 520 1500 0.346667 + + + + +========================================================================== +5.10.3 (-max)Controlling the histogram's maximum depth +========================================================================== +Using the **-max** option, **genomeCoverageBed** will "lump" all positions in the genome having feature +coverage greather than or equal to **max** into the **max** histogram bin. For example, if one sets **-max** +equal to 50, the max depth reported in the output will be 50 and all positions with a depth >= 50 will +be represented in bin 50. + +========================================================================== +5.10.4 (-d)Reporting "per-base" genome coverage +========================================================================== +Using the **-d** option, **genomeCoverageBed** will compute the depth of feature coverage for each base +on each chromosome in genome file provided. + +The "per-base" output format is as follows: +1. chromosome +2. chromosome position +3. depth (number) of features overlapping this chromosome position. + +For example: +:: + cat A.bed + chr1 10 20 + chr1 20 30 + chr2 0 500 + + cat my.genome + chr1 1000 + chr2 500 + + genomeCoverageBed -i A.bed -g my.genome -d | head -15 | tail -n 10 + chr1 6 0 + chr1 7 0 + chr1 8 0 + chr1 9 0 + chr1 10 0 + chr1 11 1 + chr1 12 1 + chr1 13 1 + chr1 14 1 + chr1 15 1 + + + +========================================================================== +5.1.13 (-split)Reporting coverage with spliced alignments or blocked BED features +========================================================================== +As described in section 1.3.19, genomeCoverageBed will, by default, screen for overlaps against the +entire span of a spliced/split BAM alignment or blocked BED12 feature. When dealing with RNA-seq +reads, for example, one typically wants to only screen for overlaps for the portions of the reads that +come from exons (and ignore the interstitial intron sequence). The **-split** command allows for such +overlaps to be performed. + +For additional details, please visit the Usage From The Wild site and have a look at example 5, +contributed by Assaf Gordon. + + diff --git a/docs/_build/html/_sources/content/groupBy.txt b/docs/_build/html/_sources/content/groupBy.txt new file mode 100644 index 00000000..178f8282 --- /dev/null +++ b/docs/_build/html/_sources/content/groupBy.txt @@ -0,0 +1,194 @@ +############### +5.22 groupBy +############### +**groupBy** is a useful tool that mimics the "groupBy" clause in database systems. Given a file or stream +that is sorted by the appropriate "grouping columns", groupBy will compute summary statistics on +another column in the file or stream. This will work with output from all BEDTools as well as any other +tab-delimited file or stream. + +**NOTE: When using groupBy, the input data must be ordered by the same +columns as specified with the -grp argument. For example, if -grp is 1,2,3, the the +data should be pre-grouped accordingly. When groupBy detects changes in the +group columns it then summarizes all lines with that group**. + + +========================================================================== +5.22.1 Usage and option summary +========================================================================== +Usage: +:: + groupBy [OPTIONS] -i <input> -opCol <input column> + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-i** The input file that should be grouped and summarized. *Use "stdin" when using piped input*. + **Note: if -i is omitted, input is assumed to come from standard input (stdin)** +**-g OR -grp** Specifies which column(s) (1-based) should be used to group the input. The columns must be comma-separated and each column must be explicitly listed. No ranges (e.g. 1-4) yet allowed. *Default: 1,2,3* +**-c OR -opCol** Specify the column (1-based) that should be summarized. *Required*. +**-o OR -op** Specify the operation that should be applied to **opCol**. + + | Valid operations: + + | **sum** - *numeric only* + | **count** - *numeric or text* + | **min** - *numeric only* + | **max** - *numeric only* + | **mean** - *numeric only* + | **stdev** - *numeric only* + | **median** - *numeric only* + | **mode** - *numeric or text* + | **antimode** - *numeric or text* + | **collapse** (i.e., print a comma separated list) - *numeric or text* + | **freqasc** - *print a comma separated list of values observed and the number of times they were observed. Reported in ascending order of frequency* + | **freqdesc** - *print a comma separated list of values observed and the number of times they were observed. Reported in descending order of frequency* + + | *Default: sum* +=========================== =============================================================================================================================================================================================================== + + + + + +========================================================================== +5.22.2 Default behavior. +========================================================================== +Let's imagine we have three incredibly interesting genetic variants that we are studying and we are +interested in what annotated repeats these variants overlap. +:: + cat variants.bed + chr21 9719758 9729320 variant1 + chr21 9729310 9757478 variant2 + chr21 9795588 9796685 variant3 + + intersectBed -a variants.bed -b repeats.bed -wa -wb > variantsToRepeats.bed + cat variantsToRepeats.bed + chr21 9719758 9729320 variant1 chr21 9719768 9721892 ALR/Alpha 1004 + + chr21 9719758 9729320 variant1 chr21 9721905 9725582 ALR/Alpha 1010 + + chr21 9719758 9729320 variant1 chr21 9725582 9725977 L1PA3 3288 + + chr21 9719758 9729320 variant1 chr21 9726021 9729309 ALR/Alpha 1051 + + chr21 9729310 9757478 variant2 chr21 9729320 9729809 L1PA3 3897 - + chr21 9729310 9757478 variant2 chr21 9729809 9730866 L1P1 8367 + + chr21 9729310 9757478 variant2 chr21 9730866 9734026 ALR/Alpha 1036 - + chr21 9729310 9757478 variant2 chr21 9734037 9757471 ALR/Alpha 1182 - + chr21 9795588 9796685 variant3 chr21 9795589 9795713 (GAATG)n 308 + + chr21 9795588 9796685 variant3 chr21 9795736 9795894 (GAATG)n 683 + + chr21 9795588 9796685 variant3 chr21 9795911 9796007 (GAATG)n 345 + + chr21 9795588 9796685 variant3 chr21 9796028 9796187 (GAATG)n 756 + + chr21 9795588 9796685 variant3 chr21 9796202 9796615 (GAATG)n 891 + + chr21 9795588 9796685 variant3 chr21 9796637 9796824 (GAATG)n 621 + + + +We can see that variant1 overlaps with 3 repeats, variant2 with 4 and variant3 with 6. We can use +groupBy to summarize the hits for each variant in several useful ways. The default behavior is to +compute the *sum* of the opCol. +:: + groupBy -i variantsToRepeats.bed -grp 1,2,3 -opCol 9 + chr21 9719758 9729320 6353 + chr21 9729310 9757478 14482 + chr21 9795588 9796685 3604 + + + +========================================================================== +5.22.3 Computing the min and max. +========================================================================== +Now let's find the *min* and *max* repeat score for each variant. We do this by "grouping" on the variant +coordinate columns (i.e. cols. 1,2 and 3) and ask for the min and max of the repeat score column (i.e. +col. 9). +:: + groupBy -i variantsToRepeats.bed -g 1,2,3 -c 9 -o min + chr21 9719758 9729320 1004 + chr21 9729310 9757478 1036 + chr21 9795588 9796685 308 + +We can also group on just the *name* column with similar effect. +:: + groupBy -i variantsToRepeats.bed -grp 4 -opCol 9 -op min + variant1 1004 + variant2 1036 + variant3 308 + +What about the *max* score? Let's keep the coordinates and the name of the variants so that we +stay in BED format. +:: + groupBy -i variantsToRepeats.bed -grp 1,2,3,4 -opCol 9 -op max + chr21 9719758 9729320 variant1 3288 + chr21 9729310 9757478 variant2 8367 + chr21 9795588 9796685 variant3 891 + + + +========================================================================== +5.22.4 Computing the mean and median. +========================================================================== +Now let's find the *mean* and *median* repeat score for each variant. +:: + cat variantsToRepeats.bed | groupBy -g 1,2,3,4 -c 9 -o mean + chr21 9719758 9729320 variant1 1588.25 + chr21 9729310 9757478 variant2 3620.5 + chr21 9795588 9796685 variant3 600.6667 + + groupBy -i variantsToRepeats.bed -grp 1,2,3,4 -opCol 9 -op median + chr21 9719758 9729320 variant1 1030.5 + chr21 9729310 9757478 variant2 2539.5 + chr21 9795588 9796685 variant3 652 + + +========================================================================== +5.22.5 Computing the mode and "antimode". +========================================================================== +Now let's find the *mode* and *antimode* (i.e., the least frequent) repeat score for each variant (in this case +they are identical). +:: + groupBy -i variantsToRepeats.bed -grp 1,2,3,4 -opCol 9 -op mode + chr21 9719758 9729320 variant1 1004 + chr21 9729310 9757478 variant2 1036 + chr21 9795588 9796685 variant3 308 + + groupBy -i variantsToRepeats.bed -grp 1,2,3,4 -opCol 9 -op antimode + chr21 9719758 9729320 variant1 1004 + chr21 9729310 9757478 variant2 1036 + chr21 9795588 9796685 variant3 308 + + + +========================================================================== +5.22.6 Computing the count of lines for a given group. +========================================================================== +Figure: +:: + groupBy -i variantsToRepeats.bed -g 1,2,3,4 -c 9 -c count + chr21 9719758 9729320 variant1 4 + chr21 9729310 9757478 variant2 4 + chr21 9795588 9796685 variant3 6 + + + + +========================================================================== +5.22.7 Collapsing: listing all of the values in the opCol for a given group. +========================================================================== +Now for something different. What if we wanted all of the names of the repeats listed on the same line +as the variants? Use the collapse option. This "denormalizes" things. Now you have a list of all the +repeats on a single line. +:: + groupBy -i variantsToRepeats.bed -grp 1,2,3,4 -opCol 9 -op collapse + chr21 9719758 9729320 variant1 ALR/Alpha,ALR/Alpha,L1PA3,ALR/Alpha, + chr21 9729310 9757478 variant2 L1PA3,L1P1,ALR/Alpha,ALR/Alpha, + chr21 9795588 9796685 variant3 (GAATG)n,(GAATG)n,(GAATG)n,(GAATG)n,(GAATG)n,(GAATG)n, + + + +========================================================================== +5.22.8 Computing frequencies: freqasc and freqdesc. +========================================================================== +Now for something different. What if we wanted all of the names of the repeats listed on the same line +as the variants? Use the collapse option. This "denormalizes" things. Now you have a list of all the +repeats on a single line. +:: + cat variantsToRepeats.bed | groupBy -g 1 -c 8 -o freqdesc + chr21 (GAATG)n:6,ALR/Alpha:5,L1PA3:2,L1P1:1, + + cat variantsToRepeats.bed | groupBy -g 1 -c 8 -o freqasc + chr21 L1P1:1,L1PA3:2,ALR/Alpha:5,(GAATG)n:6, \ No newline at end of file diff --git a/docs/_build/html/_sources/content/installation.txt b/docs/_build/html/_sources/content/installation.txt new file mode 100644 index 00000000..675cb33d --- /dev/null +++ b/docs/_build/html/_sources/content/installation.txt @@ -0,0 +1,25 @@ +############ +Installation +############ + +BEDTools is intended to run in a "command line" environment on UNIX, LINUX and Apple OS X +operating systems. Installing BEDTools involves downloading the latest source code archive followed by +compiling the source code into binaries on your local system. The following commands will install +BEDTools in a local directory on a NIX or OS X machine. Note that the **"<version>"** refers to the +latest posted version number on http://bedtools.googlecode.com/. + +Note: *The BEDTools "makefiles" use the GCC compiler. One should edit the Makefiles accordingly if +one wants to use a different compiler.*:: + + curl http://bedtools.googlecode.com/files/BEDTools.<version>.tar.gz > BEDTools.tar.gz + tar -zxvf BEDTools.tar.gz + cd BEDTools-<version> + make clean + make all + ls bin + +At this point, one should copy the binaries in BEDTools/bin/ to either usr/local/bin/ or some +other repository for commonly used UNIX tools in your environment. You will typically require +administrator (e.g. "root" or "sudo") privileges to copy to usr/local/bin/. If in doubt, contact you +system administrator for help. + diff --git a/docs/_build/html/_sources/content/intersectBed.txt b/docs/_build/html/_sources/content/intersectBed.txt new file mode 100644 index 00000000..8c048566 --- /dev/null +++ b/docs/_build/html/_sources/content/intersectBed.txt @@ -0,0 +1,371 @@ +################ +5.1 intersectBed +################ + +By far, the most common question asked of two sets of genomic features is whether or not any of the +features in the two sets "overlap" with one another. This is known as feature intersection. **intersectBed** +allows one to screen for overlaps between two sets of genomic features. Moreover, it allows one to have +fine control as to how the intersections are reported. **intersectBed** works with both BED/GFF/VCF +and BAM files as input. + +=============================== +5.1.1 Usage and option summary +=============================== +**Usage**: +:: + + intersectBed [OPTIONS] [-a <BED/GFF/VCF> || -abam <BAM>] -b <BED/GFF/VCF> + + + +=========================== ========================================================================================================================================================= +Option Description +=========================== ========================================================================================================================================================= +**-a** BED/GFF/VCF file A. Each feature in A is compared to B in search of overlaps. Use "stdin" if passing A with a UNIX pipe. +**-b** BED/GFF/VCF file B. Use "stdin" if passing B with a UNIX pipe. +**-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> | intersectBed -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: intersectBed -abam reads.bam -b genes.bed -bed +**-wa** Write the original entry in A for each overlap. +**-wb** Write the original entry in B for each overlap. Useful for knowing what A overlaps. Restricted by -f and -r. +**-wo** Write the original A and B entries plus the number of base pairs of overlap between the two features. Only A features with overlap are reported. Restricted by -f and -r. +**-wao** Write the original A and B entries plus the number of base pairs of overlap between the two features. However, A features w/o overlap are also reported with a NULL B feature and overlap = 0. Restricted by -f and -r. +**-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. Restricted by -f and -r. +**-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. Restricted by -f and -r. +**-v** Only report those entries in A that have no overlap in B. Restricted by -f and -r. +**-f** Minimum overlap required as a fraction of A. Default is 1E-9 (i.e. 1bp). +**-r** Require that the fraction of overlap be reciprocal for A and B. In other words, if -f is 0.90 and -r is used, this requires that B overlap at least 90% of A and that A also overlaps at least 90% of B. +**-s** Force "strandedness". That is, only report hits in B that overlap A on the same strand. By default, overlaps are reported without respect to strand. +**-split** Treat "split" BAM (i.e., having an "N" CIGAR operation) or BED12 entries as distinct BED intervals. +=========================== ========================================================================================================================================================= + + +=============================== +5.1.2 Default behavior +=============================== +By default, if an overlap is found, **intersectBed** reports the shared interval between the two +overlapping features. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BED/BAM A ******************* ************* + + BED File B ^^^^^^^^ + + Result ======== + +For example: +:: + cat A.bed + chr1 100 200 + chr1 1000 2000 + + cat B.bed + chr1 150 250 + + intersectBed -a A.bed -b B.bed + chr1 150 200 + + +============================================= +5.1.3 (-wa)Reporting the original A feature +============================================= +Instead, one can force **intersectBed** to report the *original* **"A"** feature when an overlap is found. As +shown below, the entire "A" feature is reported, not just the portion that overlaps with the "B" feature. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BED/BAM A ******************* ************* + + BED File B ^^^^^^^^ + + Result =================== + +For example (compare with example from default behavior): +:: + cat A.bed + chr1 100 200 + chr1 1000 2000 + + cat B.bed + chr1 150 250 + + intersectBed -a A.bed -b B.bed -wa + chr1 100 200 + +============================================= +5.1.4 (-wb)Reporting the original B feature +============================================= +Similarly, one can force **intersectBed** to report the *original* **"B"** feature when an overlap is found. If +just -wb is used, the overlapping portion of A will be reported followed by the *original* **"B"**. If both -wa +and -wb are used, the *originals* of both **"A"** and **"B"** will be reported. + +For example (-wb alone): +:: + cat A.bed + chr1 100 200 + chr1 1000 2000 + + cat B.bed + chr1 150 250 + + intersectBed -a A.bed -b B.bed -wb + chr1 150 200 chr1 150 250 + +Now -wa and -wb: +:: + cat A.bed + chr1 100 200 + chr1 1000 2000 + + cat B.bed + chr1 150 250 + + intersectBed -a A.bed -b B.bed -wa -wb + chr1 100 200 chr1 150 250 + +======================================================================= +5.1.5 (-u)Reporting the presence of *at least one* overlapping feature +======================================================================= +Frequently a feature in "A" will overlap with multiple features in "B". By default, **intersectBed** will +report each overlap as a separate output line. However, one may want to simply know that there is at +least one overlap (or none). When one uses the -u option, "A" features that overlap with one or more +"B" features are reported once. Those that overlap with no "B" features are not reported at all. + + +For example: +:: + cat A.bed + chr1 100 200 + chr1 1000 2000 + + cat B.bed + chr1 101 201 + chr1 120 220 + + intersectBed -a A.bed -b B.bed -u + chr1 100 200 + +======================================================================= +5.1.6 (-c)Reporting the number of overlapping features +======================================================================= +The -c option reports a column after each "A" feature indicating the *number* (0 or more) of overlapping +features found in "B". Therefore, *each feature in A is reported once*. + +For example: +:: + cat A.bed + chr1 100 200 + chr1 1000 2000 + + cat B.bed + chr1 101 201 + chr1 120 220 + + intersectBed -a A.bed -b B.bed -c + chr1 100 200 2 + chr1 1000 2000 0 + + +======================================================================= +5.1.6 (-c)Reporting the number of overlapping features +======================================================================= +The -c option reports a column after each "A" feature indicating the *number* (0 or more) of overlapping +features found in "B". Therefore, *each feature in A is reported once*. + +For example: +:: + cat A.bed + chr1 100 200 + chr1 1000 2000 + + cat B.bed + chr1 101 201 + chr1 120 220 + + intersectBed -a A.bed -b B.bed -c + chr1 100 200 2 + chr1 1000 2000 0 + + +======================================================================= +5.1.7 (-v)Reporting the absence of any overlapping features +======================================================================= +There will likely be cases where you'd like to know which "A" features do not overlap with any of the +"B" features. Perhaps you'd like to know which SNPs don't overlap with any gene annotations. The -v +(an homage to "grep -v") option will only report those "A" features that have no overlaps in "B". + +For example: +:: + cat A.bed + chr1 100 200 + chr1 1000 2000 + + cat B.bed + chr1 101 201 + chr1 120 220 + + intersectBed -a A.bed -b B.bed -v + chr1 1000 2000 + + +======================================================================= +5.1.8 (-f)Requiring a minimal overlap fraction +======================================================================= +By default, **intersectBed** will report an overlap between A and B so long as there is at least one base +pair is overlapping. Yet sometimes you may want to restrict reported overlaps between A and B to cases +where the feature in B overlaps at least X% (e.g. 50%) of the A feature. The -f option does exactly +this. + +For example (note that the second B entry is not reported): +:: + cat A.bed + chr1 100 200 + + cat B.bed + chr1 130 201 + chr1 180 220 + + intersectBed -a A.bed -b B.bed -f 0.50 -wa -wb + chr1 100 200 chr1 130 201 + +========================================================================== +5.1.9 (-r, combined with -f)Requiring reciprocal minimal overlap fraction +========================================================================== +Similarly, you may want to require that a minimal fraction of both the A and the B features is +overlapped. For example, if feature A is 1kb and feature B is 1Mb, you might not want to report the +overlap as feature A can overlap at most 1% of feature B. If one set -f to say, 0.02, and one also +enable the -r (reciprocal overlap fraction required), this overlap would not be reported. + +For example (note that the second B entry is not reported): +:: + cat A.bed + chr1 100 200 + + cat B.bed + chr1 130 201 + chr1 130 200000 + + intersectBed -a A.bed -b B.bed -f 0.50 -r -wa -wb + chr1 100 200 chr1 130 201 + +========================================================================== +5.1.10 (-s)Enforcing "strandedness" +========================================================================== +By default, **intersectBed** will report overlaps between features even if the features are on opposite +strands. However, if strand information is present in both BED files and the "-s" option is used, overlaps +will only be reported when features are on the same strand. + +For example (note that the second B entry is not reported): +:: + cat A.bed + chr1 100 200 a1 100 + + + cat B.bed + chr1 130 201 b1 100 - + chr1 130 201 b2 100 + + + intersectBed -a A.bed -b B.bed -wa -wb -s + chr1 100 200 a1 100 + chr1 130 201 b2 100 + + + +========================================================================== +5.1.11 (-abam)Default behavior when using BAM input +========================================================================== +When comparing alignments in BAM format (**-abam**) to features in BED format (**-b**), **intersectBed** +will, **by default**, write the output in BAM format. That is, each alignment in the BAM file that meets +the user's criteria will be written (to standard output) in BAM format. This serves as a mechanism to +create subsets of BAM alignments are of biological interest, etc. Note that only the mate in the BAM +alignment is compared to the BED file. Thus, if only one end of a paired-end sequence overlaps with a +feature in B, then that end will be written to the BAM output. By contrast, the other mate for the +pair will not be written. One should use **pairToBed(Section 5.2)** if one wants each BAM alignment +for a pair to be written to BAM output. + +For example: +:: + intersectBed -abam reads.unsorted.bam -b simreps.bed | samtools view - | head -3 + + BERTHA_0001:3:1:15:1362#0 99 chr4 9236904 0 50M = 9242033 5 1 7 9 + AGACGTTAACTTTACACACCTCTGCCAAGGTCCTCATCCTTGTATTGAAG W c T U ] b \ g c e g X g f c b f c c b d d g g V Y P W W _ + \c`dcdabdfW^a^gggfgd XT:A:R NM:i:0 SM:i:0 AM:i:0 X0:i:19 X1:i:2 XM:i:0 XO:i:0 XG:i:0 MD:Z:50 + BERTHA _0001:3:1:16:994#0 83 chr6 114221672 37 25S6M1I11M7S = + 114216196 -5493 G A A A G G C C A G A G T A T A G A A T A A A C A C A A C A A T G T C C A A G G T A C A C T G T T A + gffeaaddddggggggedgcgeggdegggggffcgggggggegdfggfgf XT:A:M NM:i:3 SM:i:37 AM:i:37 XM:i:2 X O : i : + 1 XG:i:1 MD:Z:6A6T3 + BERTHA _0001:3:1:16:594#0 147 chr8 43835330 0 50M = + 43830893 -4487 CTTTGGGAGGGCTTTGTAGCCTATCTGGAAAAAGGAAATATCTTCCCATG U + \e^bgeTdg_Kgcg`ggeggg_gggggggggddgdggVg\gWdfgfgff XT:A:R NM:i:2 SM:i:0 AM:i:0 X0:i:10 X1:i:7 X M : i : + 2 XO:i:0 XG:i:0 MD:Z:1A2T45 + + +========================================================================== +5.1.12 (-bed)Output BED format when using BAM input +========================================================================== +When comparing alignments in BAM format (**-abam**) to features in BED format (**-b**), **intersectBed** +will **optionally** write the output in BED format. That is, each alignment in the BAM file is converted +to a 6 column BED feature and if overlaps are found (or not) based on the user's criteria, the BAM +alignment will be reported in BED format. The BED "name" field is comprised of the RNAME field in +the BAM alignment. If mate information is available, the mate (e.g., "/1" or "/2") field will be +appended to the name. The "score" field is the mapping quality score from the BAM alignment. + +For example: +:: + intersectBed -abam reads.unsorted.bam -b simreps.bed -bed | head -20 + + chr4 9236903 9236953 BERTHA_0001:3:1:15:1362#0/1 0 + + chr6 114221671 114221721 BERTHA_0001:3:1:16:994#0/1 37 - + chr8 43835329 43835379 BERTHA_0001:3:1:16:594#0/2 0 - + chr4 49110668 49110718 BERTHA_0001:3:1:31:487#0/1 23 + + chr19 27732052 27732102 BERTHA_0001:3:1:32:890#0/2 46 + + chr19 27732012 27732062 BERTHA_0001:3:1:45:1135#0/1 37 + + chr10 117494252 117494302 BERTHA_0001:3:1:68:627#0/1 37 - + chr19 27731966 27732016 BERTHA_0001:3:1:83:931#0/2 9 + + chr8 48660075 48660125 BERTHA_0001:3:1:86:608#0/2 37 - + chr9 34986400 34986450 BERTHA_0001:3:1:113:183#0/2 37 - + chr10 42372771 42372821 BERTHA_0001:3:1:128:1932#0/1 3 - + chr19 27731954 27732004 BERTHA_0001:3:1:130:1402#0/2 0 + + chr10 42357337 42357387 BERTHA_0001:3:1:137:868#0/2 9 + + chr1 159720631 159720681 BERTHA_0001:3:1:147:380#0/2 37 - + chrX 58230155 58230205 BERTHA_0001:3:1:151:656#0/2 37 - + chr5 142612746 142612796 BERTHA_0001:3:1:152:1893#0/1 37 - + chr9 71795659 71795709 BERTHA_0001:3:1:177:387#0/1 37 + + chr1 106240854 106240904 BERTHA_0001:3:1:194:928#0/1 37 - + chr4 74128456 74128506 BERTHA_0001:3:1:221:724#0/1 37 - + chr8 42606164 42606214 BERTHA_0001:3:1:244:962#0/1 37 + + +================================================================================== +5.1.13 (-split)Reporting overlaps with spliced alignments or blocked BED features +================================================================================== +As described in section 1.3.19, intersectBed will, by default, screen for overlaps against the entire span +of a spliced/split BAM alignment or blocked BED12 feature. When dealing with RNA-seq reads, for +example, one typically wants to only screen for overlaps for the portions of the reads that come from +exons (and ignore the interstitial intron sequence). The **-split** command allows for such overlaps to be +performed. + +For example, the diagram below illustrates the *default* behavior. The blue dots represent the "split/ +spliced" portion of the alignment (i.e., CIGAR "N" operation). In this case, the two exon annotations +are reported as overlapping with the "split" BAM alignment, but in addition, a third feature that +overlaps the "split" portion of the alignment is also reported. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Exons --------------- ---------- + + BED/BAM A ************.......................................**** + + BED File B ^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ + + Result =============== ======== ========== + + +In contrast, when using the **-split** option, only the exon overlaps are reported. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Exons --------------- ---------- + + BED/BAM A ************.......................................**** + + BED File B ^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ + + Result =============== ========== \ No newline at end of file diff --git a/docs/_build/html/_sources/content/linksBed.txt b/docs/_build/html/_sources/content/linksBed.txt new file mode 100644 index 00000000..ca32e8b2 --- /dev/null +++ b/docs/_build/html/_sources/content/linksBed.txt @@ -0,0 +1,74 @@ +############### +5.16 linksBed +############### +Creates an HTML file with links to an instance of the UCSC Genome Browser for all features / +intervals in a file. This is useful for cases when one wants to manually inspect through a large set of +annotations or features. + +========================================================================== +5.16.1 Usage and option summary +========================================================================== +Usage: +:: + linksBed [OPTIONS] -i <BED/GFF/VCF> > <HTML file> + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-base** The "basename" for the UCSC browser. *Default: http://genome.ucsc.edu* +**-org** The organism (e.g. mouse, human). *Default: human* +**-db** The genome build. *Default: hg18* +=========================== =============================================================================================================================================================================================================== + + + + +========================================================================== +5.16.2 Default behavior +========================================================================== +By default, **linksBed** creates links to the public UCSC Genome Browser. + +For example: +:: + head genes.bed + chr21 9928613 10012791 uc002yip.1 0 - + chr21 9928613 10012791 uc002yiq.1 0 - + chr21 9928613 10012791 uc002yir.1 0 - + chr21 9928613 10012791 uc010gkv.1 0 - + chr21 9928613 10061300 uc002yis.1 0 - + chr21 10042683 10120796 uc002yit.1 0 - + chr21 10042683 10120808 uc002yiu.1 0 - + chr21 10079666 10120808 uc002yiv.1 0 - + chr21 10080031 10081687 uc002yiw.1 0 - + chr21 10081660 10120796 uc002yix.2 0 - + + linksBed -i genes.bed > genes.html + +When genes.html is opened in a web browser, one should see something like the following, where each +link on the page is built from the features in genes.bed: + + + + + +========================================================================== +5.16.3 Creating HTML links to a local UCSC Browser installation +========================================================================== +Optionally, **linksBed** will create links to a local copy of the UCSC Genome Browser. + +For example: +:: + head -3 genes.bed + chr21 9928613 10012791 uc002yip.1 0 - + chr21 9928613 10012791 uc002yiq.1 0 - + + linksBed -i genes.bed -base http://mirror.uni.edu > genes.html + +One can point the links to the appropriate organism and genome build as well: +:: + head -3 genes.bed + chr21 9928613 10012791 uc002yip.1 0 - + chr21 9928613 10012791 uc002yiq.1 0 - + + linksBed -i genes.bed -base http://mirror.uni.edu -org mouse -db mm9 > genes.html + diff --git a/docs/_build/html/_sources/content/maskfastafromBed.txt b/docs/_build/html/_sources/content/maskfastafromBed.txt new file mode 100644 index 00000000..1a8530e0 --- /dev/null +++ b/docs/_build/html/_sources/content/maskfastafromBed.txt @@ -0,0 +1,70 @@ +############### +5.12 maskFastaFromBed +############### +**maskFastaFromBed** masks sequences in a FASTA file based on intervals defined in a feature file. The +headers in the input FASTA file must exactly match the chromosome column in the feature file. This +may be useful fro creating your own masked genome file based on custom annotations or for masking all +but your target regions when aligning sequence data from a targeted capture experiment. + + +========================================================================== +5.12.1 Usage and option summary +========================================================================== +Usage: +:: + maskFastaFromBed [OPTIONS] -fi <input FASTA> -bed <BED/GFF/VCF> -fo <output FASTA> + +NOTE: The input and output FASTA files must be different. + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-soft** Soft-mask (that is, convert to lower-case bases) the FASTA sequence. *By default, hard-masking (that is, conversion to Ns) is performed*. +=========================== =============================================================================================================================================================================================================== + + + + + + +========================================================================== +5.12.2 Default behavior +========================================================================== +**maskFastaFromBed** will mask a FASTA file based on the intervals in a BED file. The newly masked +FASTA file is written to the output FASTA file. + +For example: +:: + cat test.fa + >chr1 + AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + + cat test.bed + chr1 5 10 + + maskFastaFromBed -fi test.fa -bed test.bed -fo test.fa.out + + cat test.fa.out + >chr1 + AAAAANNNNNCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + + +========================================================================== +5.12.3 Soft-masking the FASTA file. +========================================================================== +Using the **-soft** option, one can optionally "soft-mask" the FASTA file. + +For example: +:: + cat test.fa + >chr1 + AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + + cat test.bed + chr1 5 10 + + maskFastaFromBed -fi test.fa -bed test.bed -fo test.fa.out -soft + + cat test.fa.out + >chr1 + AAAAAaaaccCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG diff --git a/docs/_build/html/_sources/content/mergeBed.txt b/docs/_build/html/_sources/content/mergeBed.txt new file mode 100644 index 00000000..16f73cc0 --- /dev/null +++ b/docs/_build/html/_sources/content/mergeBed.txt @@ -0,0 +1,120 @@ +############### +5.8 mergeBed +############### +**mergeBed** combines overlapping or "book-ended" (that is, one base pair away) features in a feature file +into a single feature which spans all of the combined features. + +========================================================================== +5.8.1 Usage and option summary +========================================================================== +Usage: +:: + mergeBed [OPTIONS] -i <BED/GFF/VCF> + +=========================== =============================================================================================================================================================================================================== +Option Description +=========================== =============================================================================================================================================================================================================== +**-s** Force strandedness. That is, only merge features that are the same strand. *By default, this is disabled*. +**-n** Report the number of BED entries that were merged. *1 is reported if no merging occurred*. +**-d** Maximum distance between features allowed for features to be merged. *Default is 0. That is, overlapping and/or book-ended features are merged*. +**-nms** Report the names of the merged features separated by semicolons. +=========================== =============================================================================================================================================================================================================== + + + + + +========================================================================== +5.8.2 Default behavior +========================================================================== +Figure: +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BED FILE ************* *************** ********************** + ******** + + Result =============================== ====================== + + + +For example: +:: + cat A.bed + chr1 100 200 + chr1 180 250 + chr1 250 500 + chr1 501 1000 + + mergeBed -i A.bed + chr1 100 500 + chr1 501 1000 + + + + + + +========================================================================== +5.8.3 (-s)Enforcing "strandedness" +========================================================================== +This option behaves the same as the -s option for intersectBed while scanning for features that should +be merged. Only features on the same strand will be merged. See the discussion in the intersectBed +section for details. + +========================================================================== +5.8.4 (-n)Reporting the number of features that were merged +========================================================================== +The -n option will report the number of features that were combined from the original file in order to +make the newly merged feature. If a feature in the original file was not merged with any other features, +a "1" is reported. + +For example: +:: + cat A.bed + chr1 100 200 + chr1 180 250 + chr1 250 500 + chr1 501 1000 + + mergeBed -i A.bed -n + chr1 100 500 3 + chr1 501 1000 1 + + +========================================================================== +5.8.5 (-d)Controlling how close two features must be in order to merge +========================================================================== +By default, only overlapping or book-ended features are combined into a new feature. However, one can +force mergeBed to combine more distant features with the -d option. For example, were one to set -d to +1000, any features that overlap or are within 1000 base pairs of one another will be combined. + +For example: +:: + cat A.bed + chr1 100 200 + chr1 501 1000 + + mergeBed -i A.bed + chr1 100 200 + chr1 501 1000 + + mergeBed -i A.bed -d 1000 + chr1 100 200 1000 + +========================================================================== +5.8.6 (-nms)Reporting the names of the features that were merged +========================================================================== +Occasionally, one might like to know that names of the features that were merged into a new feature. +The -nms option will add an extra column to the mergeBed output which lists (separated by +semicolons) the names of the merged features. + +For example: +:: + cat A.bed + chr1 100 200 A1 + chr1 150 300 A2 + chr1 250 500 A3 + + mergeBed -i A.bed -nms + chr1 100 500 A1;A2;A3 diff --git a/docs/_build/html/_sources/content/overlap.txt b/docs/_build/html/_sources/content/overlap.txt new file mode 100644 index 00000000..418c4c8a --- /dev/null +++ b/docs/_build/html/_sources/content/overlap.txt @@ -0,0 +1,41 @@ +############### +5.19 overlap +############### +**overlap** computes the amount of overlap (in the case of positive values) or distance (in the case of +negative values) between feature coordinates occurring on the same input line and reports the result at +the end of the same line. In this way, it is a useful method for computing custom overlap scores from +the output of other BEDTools. + +========================================================================== +5.19.1 Usage and option summary +========================================================================== +Usage: +:: + overlap [OPTIONS] -i <input> -cols s1,e1,s2,e2 + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-i** Input file. Use "stdin" for pipes. +**-cols** Specify the columns (1-based) for the starts and ends of the features for which you'd like to compute the overlap/distance. The columns must be listed in the following order: *start1,end1,start2,end2* +=========================== =============================================================================================================================================================================================================== + + + +========================================================================== +5.19.2 Default behavior +========================================================================== +The default behavior is to compute the amount of overlap between the features you specify based on the +start and end coordinates. For example: +:: + windowBed -a A.bed -b B.bed -w 10 + chr1 10 20 A chr1 15 25 B + chr1 10 20 C chr1 25 35 D + +# Now let's say we want to compute the number of base pairs of overlap +# between the overlapping features from the output of windowBed. +:: + windowBed -a A.bed -b B.bed -w 10 | overlap -i stdin -cols 2,3,6,7 + chr1 10 20 A chr1 15 25 B 5 + chr1 10 20 C chr1 25 35 D -5 + diff --git a/docs/_build/html/_sources/content/overview.txt b/docs/_build/html/_sources/content/overview.txt new file mode 100644 index 00000000..a836365e --- /dev/null +++ b/docs/_build/html/_sources/content/overview.txt @@ -0,0 +1,348 @@ +.. role:: red + +############ +Overview +############ + +========== +1.1 Background +========== + +The development of BEDTools was motivated by a need for fast, flexible tools with which to compare large sets of genomic +features. Answering fundamental research questions with existing tools was either too slow or required modifications to the +way they reported or computed their results. We were aware of the utilities on the UCSC Genome Browser and Galaxy websites, as +well as the elegant tools available as part of Jim Kent’s monolithic suite of tools (“Kent sourceâ€). However, we found that +the web-based tools were too cumbersome when working with large datasets generated by current sequencing technologies. +Similarly, we found that the Kent source command line tools often required a local installation of the UCSC Genome Browser. +These limitations, combined with the fact that we often wanted an extra option here or there that wasn’t available with +existing tools, led us to develop our own from scratch. The initial version of BEDTools was publicly released in the spring of +2009. The current version has evolved from our research experiences and those of the scientists using the suite over the last +year. The BEDTools suite enables one to answer common questions of genomic data in a fast and reliable manner. The fact that +almost all the utilities accept input from “stdin†allows one to “stream / pipe†several commands together to facilitate more +complicated analyses. Also, the tools allow fine control over how output is reported. The initial version of BEDTools +supported solely 6-column `BED <http://genome.ucsc.edu/FAQ/FAQformat#format1>`_ files. *However, we have subsequently added support for sequence alignments in* `BAM <http://samtools.sourceforge.net/>`_ +*format, as well as for features in* `GFF <http://genome.ucsc.edu/FAQ/FAQformat#format3>`_ , *“blocked†BED format, and* +`VCF <http://www.1000genomes.org/wiki/Analysis/Variant%20Call%20Format/vcf-variant-call-format-version-41>`_ *format*. +The tools are quite fast and typically finish in a matter of a few seconds, even for large datasets. This manual seeks to describe the behavior and +available functionality for each BEDTool. Usage examples are scattered throughout the text, and formal examples are +provided in the last two sections, we hope that this document will give you a sense of the flexibility of +the toolkit and the types of analyses that are possible with BEDTools. If you have further questions, please join the BEDTools +discussion group, visit the Usage Examples on the Google Code site (usage, advanced usage), or take a look at the nascent +“Usage From the Wild†page. + +=========================== +1.2 Summary of available tools. +=========================== + +BEDTools support a wide range of operations for interrogating and manipulating genomic features. The table below summarizes +the tools available in the suite. + +=========================== ========================================================================================================================================================= +Utility Description +=========================== ========================================================================================================================================================= +**intersectBed** Returns overlaps between two BED/GFF/VCF files. +**pairToBed** Returns overlaps between a paired-end BED file and a regular BED/VCF/GFF file. +**bamToBed** Converts BAM alignments to BED6, BED12, or BEDPE format. +**bedToBam** Converts BED/GFF/VCF features to BAM format. +**bed12ToBed6** Converts "blocked" BED12 features to discrete BED6 features. +**bedToIgv** Creates IGV batch scripts for taking multiple snapshots from BED/GFF/VCF features. +**coverageBed** Summarizes the depth and breadth of coverage of features in one BED versus features (e.g, windows, exons, etc.) defined in another BED/GFF/VCF file. +**multiBamCov** Counts sequence coverage for multiple position-sorted bams at specific loci defined in a BED/GFF/VCF file +**tagBam** Annotates a BAM file with custom tag fields based on overlaps with BED/GFF/VCF files +**nuclBed** Profiles the nucleotide content of intervals in a fasta file +**genomeCoverageBed** Creates either a histogram, BEDGRAPH, or a "per base" report of genome coverage. +**unionBedGraphs** Combines multiple BedGraph? files into a single file, allowing coverage/other comparisons between them. +**annotateBed** Annotates one BED/VCF/GFF file with overlaps from many others. +**groupBy** Deprecated. Now in the filo package. +**overlap** Returns the number of bases pairs of overlap b/w two features on the same line. +**pairToPair** Returns overlaps between two paired-end BED files. +**closestBed** Returns the closest feature to each entry in a BED/GFF/VCF file. +**subtractBed** Removes the portion of an interval that is overlapped by another feature. +**windowBed** Returns overlaps between two BED/VCF/GFF files based on a user-defined window. +**mergeBed** Merges overlapping features into a single feature. +**complementBed** Returns all intervals not spanned by the features in a BED/GFF/VCF file. +**fastaFromBed** Creates FASTA sequences based on intervals in a BED/GFF/VCF file. +**maskFastaFromBed** Masks a FASTA file based on BED coordinates. +**shuffleBed** Randomly permutes the locations of a BED file among a genome. +**slopBed** Adjusts each BED entry by a requested number of base pairs. +**flankBed** Creates flanking intervals for each feature in a BED/GFF/VCF file. +**sortBed** Sorts a BED file by chrom, then start position. Other ways as well. +**linksBed** Creates an HTML file of links to the UCSC or a custom browser. +=========================== ========================================================================================================================================================= + + + + + + +=========================== +1.3 Fundamental concepts. +=========================== +------------------------------------------------------ +1.3.1 What are genome features and how are they represented? +------------------------------------------------------ +Throughout this manual, we will discuss how to use BEDTools to manipulate, compare and ask questions of genome “featuresâ€. Genome features can be functional elements (e.g., genes), genetic polymorphisms (e.g. +SNPs, INDELs, or structural variants), or other annotations that have been discovered or curated by genome sequencing groups or genome browser groups. In addition, genome features can be custom annotations that +an individual lab or researcher defines (e.g., my novel gene or variant). + +The basic characteristics of a genome feature are the chromosome or scaffold on which the feature “residesâ€, the base pair on which the +feature starts (i.e. the “startâ€), the base pair on which feature ends (i.e. the “endâ€), the strand on which the feature exists (i.e. “+†or “-“), and the name of the feature if one is applicable. + +The two most widely used formats for representing genome features are the BED (Browser Extensible Data) and GFF (General Feature Format) formats. BEDTools was originally written to work exclusively with genome features +described using the BED format, but it has been recently extended to seamlessly work with BED, GFF and VCF files. + +Existing annotations for the genomes of many species can be easily downloaded in BED and GFF +format from the UCSC Genome Browser’s “Table Browser†(http://genome.ucsc.edu/cgi-bin/hgTables?command=start) or from the “Bulk Downloads†page (http://hgdownload.cse.ucsc.edu/downloads.html). In addition, the +Ensemble Genome Browser contains annotations in GFF/GTF format for many species (http://www.ensembl.org/info/data/ftp/index.html) + +------------------------------------- +1.3.2 Overlapping / intersecting features. +------------------------------------- +Two genome features (henceforth referred to as “featuresâ€) are said to overlap or intersect if they share at least one base in common. +In the figure below, Feature A intersects/overlaps Feature B, but it does not intersect/overlap Feature C. + +**TODO: place figure here** + +-------------------------------------------- +1.3.3 Comparing features in file “A†and file “Bâ€. +-------------------------------------------- +The previous section briefly introduced a fundamental naming convention used in BEDTools. Specifically, all BEDTools that compare features contained in two distinct files refer to one file as feature set “A†and the other file as feature set “Bâ€. This is mainly in the interest of brevity, but it also has its roots in set theory. +As an example, if one wanted to look for SNPs (file A) that overlap with exons (file B), one would use intersectBed in the following manner:: + + intersectBed –a snps.bed –b exons.bed + +There are two exceptions to this rule: 1) When the “A†file is in BAM format, the “-abam†option must bed used. For example:: + + intersectBed –abam alignedReads.bam –b exons.bed + +And 2) For tools where only one input feature file is needed, the “-i†option is used. For example:: + + mergeBed –i repeats.bed + +----------------------------------------------------- +1.3.4 BED starts are zero-based and BED ends are one-based. +----------------------------------------------------- +BEDTools users are sometimes confused by the way the start and end of BED features are represented. Specifically, BEDTools uses the UCSC Genome Browser’s internal database convention of making the start position 0-based and the end position 1-based: (http://genome.ucsc.edu/FAQ/FAQtracks#tracks1) +In other words, BEDTools interprets the “start†column as being 1 basepair higher than what is represented in the file. For example, the following BED feature represents a single base on chromosome 1; namely, the 1st base:: + + chr1 0 1 first_base + +Why, you might ask? The advantage of storing features this way is that when computing the length of a feature, one must simply subtract the start from the end. Were the start position 1-based, +the calculation would be (slightly) more complex (i.e. (end-start)+1). Thus, storing BED features this way reduces the computational burden. + +----------------------------------------------------- +1.3.5 GFF starts and ends are one-based. +----------------------------------------------------- +In contrast, the GFF format uses 1-based coordinates for both the start and the end positions. BEDTools is aware of this and adjusts the positions accordingly. +In other words, you don’t need to subtract 1 from the start positions of your GFF features for them to work correctly with BEDTools. + +----------------------------------------------------- +1.3.6 VCF coordinates are one-based. +----------------------------------------------------- +The VCF format uses 1-based coordinates. As in GFF, BEDTools is aware of this and adjusts the positions accordingly. +In other words, you don’t need to subtract 1 from the start positions of your VCF features for them to work correctly with BEDTools. + +----------------------------------------------------- +1.3.7 File B is loaded into memory (most of the time). +----------------------------------------------------- +Whenever a BEDTool compares two files of features, the “B†file is loaded into memory. By contrast, the “A†file is processed line by line and compared with the features from B. +Therefore to minimize memory usage, one should set the smaller of the two files as the B file. One salient example is the comparison of aligned sequence reads from a +current DNA sequencer to gene annotations. In this case, the aligned sequence file (in BED format) may have tens of millions of features (the sequence alignments), +while the gene annotation file will have tens of thousands of features. In this case, it is wise to sets the reads as file A and the genes as file B. + +----------------------------------------------------- +1.3.8 Feature files *must* be tab-delimited. +----------------------------------------------------- +This is rather self-explanatory. While it is possible to allow BED files to be space-delimited, we have decided to require tab delimiters for three reasons: + +1. By requiring one delimiter type, the processing time is minimized. +2. Tab-delimited files are more amenable to other UNIX utilities. +3. GFF files can contain spaces within attribute columns. This complicates the use of space-delimited files as spaces must therefore be treated specially depending on the context. + +------------------------------------------------------------- +1.3.9 All BEDTools allow features to be “piped†via standard input. +------------------------------------------------------------- + +In an effort to allow one to combine multiple BEDTools and other UNIX utilities into more complicated “pipelinesâ€, all BEDTools allow features +to be passed to them via standard input. Only one feature file may be passed to a BEDTool via standard input. +The convention used by all BEDTools is to set either file A or file B to “stdin†or "-". For example:: + + cat snps.bed | intersectBed –a stdin –b exons.bed + cat snps.bed | intersectBed –a - –b exons.bed + +In addition, all BEDTools that simply require one main input file (the -i file) will assume that input is +coming from standard input if the -i parameter is ignored. For example, the following are equivalent:: + + cat snps.bed | sortBed –i stdin + cat snps.bed | sortBed + +------------------------------------------------------ +1.3.10 Most BEDTools write their results to standard output. +------------------------------------------------------ +To allow one to combine multiple BEDTools and other UNIX utilities into more complicated “pipelinesâ€, +most BEDTools report their output to standard output, rather than to a named file. If one wants to write the output to a named file, one can use the UNIX “file redirection†symbol “>†to do so. +Writing to standard output (the default):: + + intersectBed –a snps.bed –b exons.bed + chr1 100100 100101 rs233454 + chr1 200100 200101 rs446788 + chr1 300100 300101 rs645678 + +Writing to a file:: + + intersectBed –a snps.bed –b exons.bed > snps.in.exons.bed + + cat snps.in.exons.bed + chr1 100100 100101 rs233454 + chr1 200100 200101 rs446788 + chr1 300100 300101 rs645678 + +------------------------ +1.3.11 What is a “genome†file? +------------------------ +Some of the BEDTools (e.g., genomeCoverageBed, complementBed, slopBed) need to know the size of +the chromosomes for the organism for which your BED files are based. When using the UCSC Genome +Browser, Ensemble, or Galaxy, you typically indicate which species / genome build you are working. +The way you do this for BEDTools is to create a “genome†file, which simply lists the names of the +chromosomes (or scaffolds, etc.) and their size (in basepairs). +Genome files must be tab-delimited and are structured as follows (this is an example for C. elegans):: + + chrI 15072421 + chrII 15279323 + ... + chrX 17718854 + chrM 13794 + +BEDTools includes predefined genome files for human and mouse in the /genomes directory included +in the BEDTools distribution. Additionally, the “chromInfo†files/tables available from the UCSC +Genome Browser website are acceptable. For example, one can download the hg19 chromInfo file here: +http://hgdownload.cse.ucsc.edu/goldenPath/hg19/database/chromInfo.txt.gz + +------------------------------------ +1.3.12 Paired-end BED files (BEDPE files). +------------------------------------ +We have defined a new file format (BEDPE) to concisely describe disjoint genome features, such as +structural variations or paired-end sequence alignments. We chose to define a new format because the +existing BED block format (i.e. BED12) does not allow inter-chromosomal feature definitions. Moreover, +the BED12 format feels rather bloated when one want to describe events with only two blocks. + +------------------------------------------ +1.3.13 Use “-h†for help with any BEDTool. +------------------------------------------ +Rather straightforward. If you use the “-h†option with any BEDTool, a full menu of example usage +and available options (when applicable) will be reported. + +-------------------------------------------------- +1.3.14 BED features must not contain negative positions. +-------------------------------------------------- +BEDTools will typically reject BED features that contain negative positions. In special cases, however, +BEDPE positions may be set to -1 to indicate that one or more ends of a BEDPE feature is unaligned. + +--------------------------------------------------- +1.3.15 The start position must be <= to the end position. +--------------------------------------------------- +BEDTools will reject BED features where the start position is greater than the end position. + +----------------------------------------- +1.3.16 Headers are allowed in GFF and BED files +----------------------------------------- +BEDTools will ignore headers at the beginning of BED and GFF files. Valid header lines begin with a +“#†symbol, the work “trackâ€, or the word “browserâ€. For example, the following examples are valid +headers for BED or GFF files:: + + track name=aligned_read description="Illumina aligned reads†+ chr5 100000 500000 read1 50 + + chr5 2380000 2386000 read2 60 - + + #This is a fascinating dataset + chr5 100000 500000 read1 50 + + chr5 2380000 2386000 read2 60 - + + browser position chr22:1-20000 + chr5 100000 500000 read1 50 + + chr5 2380000 2386000 read2 60 - + +------------------------------------------------------------- +1.3.17 GZIP support: BED, GFF, VCF, and BEDPE file can be “gzipped†+------------------------------------------------------------- +BEDTools will process gzipped BED, GFF, VCF and BEDPE files in the same manner as +uncompressed files. Gzipped files are auto-detected thanks to a helpful contribution from Gordon +Assaf. + +---------------------------------------------------------------------------- +1.3.18 Support for “split†or “spliced†BAM alignments and “blocked†BED features +---------------------------------------------------------------------------- +As of Version 2.8.0, five BEDTools (``intersectBed``, ``coverageBed``, ``genomeCoverageBed``, +``bamToBed``, and ``bed12ToBed6``) can properly handle “splitâ€/â€spliced†BAM alignments (i.e., having an +“N†CIGAR operation) and/or “blocked†BED (aka BED12) features. + +``intersectBed``, ``coverageBed``, and ``genomeCoverageBed`` will optionally handle “split†BAM and/or +“blocked†BED by using the ``-split`` option. This will cause intersects or coverage to be computed only +for the alignment or feature blocks. In contrast, without this option, the intersects/coverage would be +computed for the entire “span†of the alignment or feature, regardless of the size of the gaps between +each alignment or feature block. For example, imagine you have a RNA-seq read that originates from +the junction of two exons that were spliced together in a mRNA. In the genome, these two exons +happen to be 30Kb apart. Thus, when the read is aligned to the reference genome, one portion of the +read will align to the first exon, while another portion of the read will align ca. 30Kb downstream to the +other exon. The corresponding CIGAR string would be something like (assuming a 76bp read): +30M*3000N*46M. In the genome, this alignment “spans†3076 bp, yet the nucleotides in the sequencing +read only align “cover†76bp. Without the ``-split`` option, coverage or overlaps would be reported for the +entire 3076bp span of the alignment. However, with the ``-split`` option, coverage or overlaps will only +be reported for the portions of the read that overlap the exons (i.e. 30bp on one exon, and +46bp on the other). + + +Using the -split option with bamToBed causes “spliced/split†alignments to be reported in BED12 +format. Using the -split option with bed12ToBed6 causes “blocked†BED12 features to be reported in +BED6 format. + +-------------------------------- +1.3.19 Writing uncompressed BAM output. +-------------------------------- +When working with a large BAM file using a complex set of tools in a pipe/stream, it is advantageous +to pass uncompressed BAM output to each downstream program. This minimizes the amount of time +spent compressing and decompressing output from one program to the next. All BEDTools that create +BAM output (e.g. ``intersectBed``, ``windowBed``) will now optionally create uncompressed BAM output +using the ``-ubam`` option. + + + +===================================== +1.4 Implementation and algorithmic notes. +===================================== +BEDTools was implemented in C++ and makes extensive use of data structures and fundamental +algorithms from the Standard Template Library (STL). Many of the core algorithms are based upon the +genome binning algorithm described in the original UCSC Genome Browser paper (Kent et al, 2002). +The tools have been designed to inherit core data structures from central source files, thus allowing +rapid tool development and deployment of improvements and corrections. Support for BAM files is +made possible through Derek Barnett’s elegant C++ API called BamTools. + + + +===================================== +1.5 License and availability. +===================================== +BEDTools is freely available under a GNU Public License (Version 2) at: +http://bedtools.googlecode.com + + + +===================================== +1.6 Mailing list. +===================================== +A discussion group for reporting bugs, asking questions of the developer and of the user community, as +well as for requesting new features is available at: +http://groups.google.com/group/bedtools-discuss + + + +===================================== +1.7 Contributors. +===================================== +As open-source software, BEDTools greatly benefits from contributions made by other developers and +users of the tools. We encourage and welcome suggestions, contributions and complaints. This is how +software matures, improves and stays on top of the needs of its user community. The Google Code +(GC) site maintains a list of individuals who have contributed either source code or useful ideas for +improving the tools. In the near future, we hope to maintain a source repository on the GC site in +order to facilitate further contributions. We are currently unable to do so because we use Git for +version control, which is not yet supported by GC. \ No newline at end of file diff --git a/docs/_build/html/_sources/content/pairToBed.txt b/docs/_build/html/_sources/content/pairToBed.txt new file mode 100644 index 00000000..75db129a --- /dev/null +++ b/docs/_build/html/_sources/content/pairToBed.txt @@ -0,0 +1,378 @@ +############### +5.2 pairToBed +############### +**pairToBed** compares each end of a BEDPE feature or a paired-end BAM alignment to a feature file in +search of overlaps. + +**NOTE: pairToBed requires that the BAM file is sorted/grouped by the read name. This +allows pairToBed to extract correct alignment coordinates for each end based on their +respective CIGAR strings. It also assumes that the alignments for a given pair come in +groups of twos. There is not yet a standard method for reporting multiple alignments +using BAM. pairToBed will fail if an aligner does not report alignments in pairs.** + +========================================================================== +5.2.1 Usage and option summary +========================================================================== +**Usage:** +:: + pairToBed [OPTIONS] [-a <BEDPE> || -abam <BAM>] -b <BED/GFF/VCF> + + +=========================== ========================================================================================================================================================= +Option Description +=========================== ========================================================================================================================================================= +**-a** BEDPE file A. Each feature in A is compared to B in search of overlaps. Use "stdin" if passing A with a UNIX pipe. Output will be in BEDPE format. +**-b** BED file B. Use "stdin" if passing B with a UNIX pipe. +**-abam** BAM file A. Each end of 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 ¨Cb <BAM> | pairToBed ¨Cabam stdin ¨Cb genes.bed | samtools view - +**-ubam** Write uncompressed BAM output. The default is write compressed BAM output. +**-bedpe** When using BAM input (-abam), write output as BEDPE. The default is to write output in BAM when using -abam. For example: pairToBed ¨Cabam reads.bam ¨Cb genes.bed ¨Cbedpe +**-ed** Use BAM total edit distance (NM tag) for BEDPE score. Default for BEDPE is to use the *minimum* of the two mapping qualities for the pair. When -ed is used the *total* edit distance from the two mates is reported as the score. +**-f** Minimum overlap required as a fraction of A. Default is 1E-9 (i.e. 1bp). +**-s** Force "strandedness". That is, only report hits in B that overlap A on the **same** strand. By default, overlaps are reported without respect to strand. +**-type** + Approach to reporting overlaps between BEDPE and BED. + + + **either-** Report overlaps if either end of A overlaps B. + + - *Default* + + **neither-** Report A if neither end of A overlaps B. + + **xor-** Report overlaps if one and only one end of A overlaps B. + + **both-** Report overlaps if both ends of A overlap B. + + **notboth-** Report overlaps if neither end or one and only one end of A overlap B. + + **ispan-** Report overlaps between [end1, start2] of A and B. + + - Note: If chrom1 <> chrom2, entry is ignored. + + **ospan-** Report overlaps between [start1, end2] of A and B. + + - Note: If chrom1 <> chrom2, entry is ignored. + + **notispan-** Report A if ispan of A doesn't overlap B. + - Note: If chrom1 <> chrom2, entry is ignored. + + **notospan-** Report A if ospan of A doesn't overlap B. + - Note: If chrom1 <> chrom2, entry is ignored. +=========================== ========================================================================================================================================================= + + + +========================================================================== +5.2.2 Default behavior +========================================================================== +By default, a BEDPE / BAM feature will be reported if *either* end overlaps a feature in the BED file. +In the example below, the left end of the pair overlaps B yet the right end does not. Thus, BEDPE/ +BAM A is reported since the default is to report A if either end overlaps B. + +Default: Report A if *either* end overlaps B. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ ^^^^^^ + + Result =====.................................===== + + +========================================================================== +5.2.3 (-type)Optional overlap requirements +========================================================================== +Using then **-type** option, **pairToBed** provides several other overlap requirements for controlling how +overlaps between BEDPE/BAM A and BED B are reported. The examples below illustrate how each +option behaves. + +**-type both**: Report A only if *both* ends overlap B. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ ^^^^^^ + + Result + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ ^^^^^^ + + Result =====.................................===== + + +**-type neither**: Report A only if *neither* end overlaps B. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ ^^^^^^ + + Result + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^ ^^^^^^ + + Result =====.................................===== + + +**-type xor**: Report A only if *one and only one* end overlaps B. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ ^^^^^^ + + Result =====.................................===== + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^ ^^^^^^ + + Result + + +**-type notboth**: Report A only if *neither end* **or** *one and only one* end overlaps B. Thus "notboth" +includes what would be reported by "neither" and by "xor". +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ ^^^^^^ + + Result =====.................................===== + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^ ^^^^^^ + + Result =====.................................===== + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^ ^^^^^^ + + Result + + +**-type ispan**: Report A if it's "*inner span*" overlaps B. Applicable only to intra-chromosomal features. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Inner span |-------------------------------| + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ + + Result =====.................................===== + + + + BEDPE/BAM A =====.................................===== + + BED File B ==== + + Result + + +**-type ospan**: Report A if it's "*outer span*" overlaps B. Applicable only to intra-chromosomal features. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Outer span |-----------------------------------------| + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^^^^^ + + Result =====.................................===== + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^ + + Result + + +**-type notispan**: Report A only if it's "*inner span*" does not overlap B. Applicable only to intrachromosomal +features. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Inner span |-------------------------------| + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ + + Result + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^ + + Result =====.................................===== + + +**-type notospan**: Report A if it's "*outer span*" overlaps B. Applicable only to intra-chromosomal +features. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Outer span |-----------------------------------------| + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^^^^^ + + Result + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^ + + Result =====.................................===== + + + +========================================================================== +5.2.4 (-f)Requiring a minimum overlap fraction +========================================================================== +By default, **pairToBed** will report an overlap between A and B so long as there is at least one base +pair is overlapping on either end. Yet sometimes you may want to restrict reported overlaps between A +and B to cases where the feature in B overlaps at least X% (e.g. 50%) of A. The **¨Cf** option does exactly +this. The **-f** option may also be combined with the -type option for additional control. For example, +combining **-f 0.50** with **-type both** requires that both ends of A have at least 50% overlap with a +feature in B. + +For example, report A only at least 50% of one of the two ends is overlapped by B. +:: + pairToBed -a A.bedpe -b B.bed -f 0.5 + + + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A *****.................................***** + + BED File B ^^ ^^^^^^ + + Result + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^ ^^^^^^ + + Result =====.................................===== + + + +========================================================================== +5.2.5 (-s)Enforcing "strandedness" +========================================================================== +By default, **pairToBed** will report overlaps between features even if the features are on opposing +strands. However, if strand information is present in both files and the **"-s"** option is used, overlaps will +only be reported when features are on the same strand. + +For example, report A only at least 50% of one of the two ends is overlapped by B. +:: + pairToBed -a A.bedpe -b B.bed -s + + + + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A >>>>>.................................<<<<< + + BED File B << >>>>> + + Result + + + + BEDPE/BAM A >>>>>.................................<<<<< + + BED File B >> >>>>> + + Result >>>>>.................................<<<<< + + +========================================================================== +5.2.6 (-abam)Default is to write BAM output when using BAM input +========================================================================== +When comparing *paired* alignments in BAM format (**-abam**) to features in BED format (**-b**), +**pairToBed** will , by default, write the output in BAM format. That is, each alignment in the BAM +file that meets the user's criteria will be written (to standard output) in BAM format. This serves as a +mechanism to create subsets of BAM alignments are of biological interest, etc. Note that both +alignments for each aligned pair will be written to the BAM output. + +For example: +:: + pairToBed ¨Cabam pairedReads.bam ¨Cb simreps.bed | samtools view - | head -4 + + JOBU_0001:3:1:4:1060#0 99 chr10 42387928 29 50M = 42393091 5 2 1 3 + AA A A A C G G A A T T A T C G A A T G G A A T C G A A G A G A A T C T T C G A A C G G A C C C G A + dcgggggfbgfgdgggggggfdfgggcggggfcggcggggggagfgbggc XT:A:R NM:i:5 SM:i:0 AM:i:0 X0:i:3 X 1 : i : + 3 XM:i:5 XO:i:0 XG:i:0 MD:Z:0T0C33A5T4T3 + JOBU_0001:3:1:4:1060#0 147 chr10 42393091 0 50M = 42387928 - 5 2 1 3 + AAATGGAATCGAATGGAATCAACATCAAATGGAATCAAATGGAATCATTG K g d c g g d e c d g + \d`ggfcgcggffcgggc^cgfgccgggfc^gcdgg\bg XT:A:R NM:i:2 SM:i:0 AM:i:0 X0:i:3 X1:i:13 XM:i:2 X O : i : + 0 XG:i:0 MD:Z:21T14G13 + JOBU_0001:3:1:8:446#0 99 chr10 42388091 9 50M = 42392738 4 6 9 7 + GAATCGACTGGAATCATCATCGGATGGAAATGAATGGAATAATCATCGAA f _ O f f ` ] I e Y f f ` f f e d d c f e f c P ` c _ W \ \ R _ ] + _BBBBBBBBBBBBBBBB XT:A:U NM:i:4 SM:i:0 AM:i:0 X0:i:1 X1:i:3 XM:i:4 XO:i:0 XG:i:0 M D : Z : + 7A22C9C2T6 + JOBU_0001:3:1:8:446#0 147 chr10 42392738 9 50M = 42388091 - 4 6 9 7 + TTATCGAATGCAATCGAATGGAATTATCGAATGCAATCGAATAGAATCAT df^ffec_JW[`MWceRec``fee`dcecfeeZae`c] + f^cNeecfccf^ XT:A:R NM:i:1 SM:i:0 AM:i:0 X0:i:2 X1:i:2 XM:i:1 XO:i:0 XG:i:0 MD:Z:38A11 + + + +========================================================================== +5.2.7 (-bedpe)Output BEDPE format when using BAM input +========================================================================== +When comparing *paired* alignments in BAM format (**-abam**) to features in BED format (**-b**), +**pairToBed** will optionally write the output in BEDPE format. That is, each alignment in the BAM +file is converted to a 10 column BEDPE feature and if overlaps are found (or not) based on the user's +criteria, the BAM alignment will be reported in BEDPE format. The BEDPE "name" field is comprised +of the RNAME field in the BAM alignment. The "score" field is the mapping quality score from the +BAM alignment. + +For example: +:: + pairToBed ¨Cabam pairedReads.bam ¨Cb simreps.bed -bedpe | head -5 + chr10 42387927 42387977 chr10 42393090 42393140 + JOBU_0001:3:1:4:1060#0 29 + - + chr10 42388090 42388140 chr10 42392737 42392787 + JOBU_0001:3:1:8:446#0 9 + - + chr10 42390552 42390602 chr10 42396045 42396095 + JOBU_0001:3:1:10:1865#0 9 + - + chrX 139153741 139153791 chrX 139159018 139159068 + JOBU_0001:3:1:14:225#0 37 + - + chr4 9236903 9236953 chr4 9242032 9242082 + JOBU_0001:3:1:15:1362#0 0 + - diff --git a/docs/_build/html/_sources/content/pairToPair.txt b/docs/_build/html/_sources/content/pairToPair.txt new file mode 100644 index 00000000..7be68197 --- /dev/null +++ b/docs/_build/html/_sources/content/pairToPair.txt @@ -0,0 +1,103 @@ +############### +5.3 pairToPair +############### +**pairToPair** compares two BEDPE files in search of overlaps where each end of a BEDPE feature in A +overlaps with the ends of a feature in B. For example, using pairToPair, one could screen for the exact +same discordant paired-end alignment in two files. This could suggest (among other things) that the +discordant pair suggests the same structural variation in each file/sample. + + +================================ +5.3.1 Usage and option summary +================================ +**Usage:** +:: + pairToPair [OPTIONS] -a <BEDPE> -b <BEDPE> + + +=========================== ========================================================================================================================================================= +Option Description +=========================== ========================================================================================================================================================= +**-a** BEDPE file A. Each feature in A is compared to B in search of overlaps. Use "stdin" if passing A with a UNIX pipe. +**-b** BEDPE file B. Use "stdin" if passing B with a UNIX pipe. +**-f** Minimum overlap required as a fraction of A. Default is 1E-9 (i.e. 1bp). +**-is** Force "strandedness". That is, only report hits in B that overlap A on the same strand. By default, overlaps are reported without respect to strand. +**-type** Approach to reporting overlaps between BEDPE and BED. + | **either** Report overlaps if either ends of A overlap B. + + + | **neither** Report A if neither end of A overlaps B. + + + | **both** Report overlaps if both ends of A overlap B. -*Default behavior.* +=========================== ========================================================================================================================================================= + + + + + +================================ +5.3.2 Default behavior +================================ +By default, a BEDPE feature from A will be reported if *both* ends overlap a feature in the BEDPE B +file. If strand information is present for the two BEDPE files, it will be further required that the +overlaps on each end be on the same strand. This way, an otherwise overlapping (in terms of genomic +locations) F/R alignment will not be matched with a R/R alignment. + +Default: Report A if *both* ends overlaps B. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ ^^^^^^ + + Result =====.................................===== + + +Default when strand information is present in both BEDPE files: Report A if *both* ends overlaps B *on +the same strands*. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE A >>>>>.................................>>>>> + + BEDPE B <<<<<.............................>>>>> + + Result + + + + BEDPE A >>>>>.................................>>>>> + + BEDPE B >>>>>.............................>>>>> + + Result >>>>>.................................>>>>> + + + +================================================== +5.3.3 (-type neither)Optional overlap requirements +================================================== +Using then **-type neither, pairToPair** will only report A if *neither* end overlaps with a BEDPE +feature in B. + +**-type neither**: Report A only if *neither* end overlaps B. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^......................................^^^^^^ + + Result + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^................................................^^^^^^ + + Result =====.................................===== + + \ No newline at end of file diff --git a/docs/_build/html/_sources/content/quick-start.txt b/docs/_build/html/_sources/content/quick-start.txt new file mode 100644 index 00000000..64f2df32 --- /dev/null +++ b/docs/_build/html/_sources/content/quick-start.txt @@ -0,0 +1,60 @@ +########### +Quick start +########### + +================ +Install BEDTools +================ +:: + + curl http://bedtools.googlecode.com/files/BEDTools.<version>.tar.gz > BEDTools.tar.gz + tar -zxvf BEDTools.tar.gz + cd BEDTools + make clean + make all + sudo cp bin/* /usr/local/bin/ + +=============== +Use BEDTools +=============== +Below are examples of typical BEDTools usage. **Additional usage examples are described in +section 6 of this manual.** Using the "-h" option with any BEDTools will report a list of all command +line options. + +A. Report the base-pair overlap between the features in two BED files. +:: + + intersectBed -a reads.bed -b genes.bed + +B. Report those entries in A that overlap NO entries in B. Like "grep -v" +:: + + intersectBed -a reads.bed -b genes.bed ¨Cv + +C. Read BED A from stdin. Useful for stringing together commands. For example, find genes that overlap LINEs +but not SINEs. +:: + + intersectBed -a genes.bed -b LINES.bed | intersectBed -a stdin -b SINEs.bed ¨Cv + +D. Find the closest ALU to each gene. +:: + + closestBed -a genes.bed -b ALUs.bed + +E. Merge overlapping repetitive elements into a single entry, returning the number of entries merged. +:: + + mergeBed -i repeatMasker.bed -n + +F. Merge nearby repetitive elements into a single entry, so long as they are within 1000 bp of one another. +:: + + mergeBed -i repeatMasker.bed -d 1000 + + + + + + + \ No newline at end of file diff --git a/docs/_build/html/_sources/content/shuffleBed.txt b/docs/_build/html/_sources/content/shuffleBed.txt new file mode 100644 index 00000000..d840277e --- /dev/null +++ b/docs/_build/html/_sources/content/shuffleBed.txt @@ -0,0 +1,155 @@ +############### +5.13 shuffleBed +############### +**shuffleBed** will randomly permute the genomic locations of a fearure file among a genome defined in a +genome file. One can also provide an "exclusions" BED/GFF/VCF file that lists regions where you do +not want the permuted features to be placed. For example, one might want to prevent features from +being placed in known genome gaps. **shuffleBed** is useful as a *null* basis against which to test the +significance of associations of one feature with another. + + + +========================================================================== +5.13.1 Usage and option summary +========================================================================== +Usage: +:: + shuffleBed [OPTIONS] -i <BED/GFF/VCF> -g <GENOME> + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-excl** A BED file of coordinates in which features from -i should *not* be placed (e.g., genome gaps). +**-chrom** Keep features in -i on the same chromosome. Solely permute their location on the chromosome. *By default, both the chromosome and position are randomly chosen*. +**-seed** Supply an integer seed for the shuffling. This will allow feature shuffling experiments to be recreated exactly as the seed for the pseudo-random number generation will be constant. *By default, the seed is chosen automatically*. +=========================== =============================================================================================================================================================================================================== + + + + +========================================================================== +5.13.2 Default behavior +========================================================================== +By default, **shuffleBed** will reposition each feature in the input BED file on a random chromosome at a +random position. The size and strand of each feature are preserved. + +For example: +:: + cat A.bed + chr1 0 100 a1 1 + + chr1 0 1000 a2 2 - + + cat my.genome + chr1 10000 + chr2 8000 + chr3 5000 + chr4 2000 + + shuffleBed -i A.bed -g my.genome + chr4 1498 1598 a1 1 + + chr3 2156 3156 a2 2 - + + + + + +========================================================================== +5.13.3 (-chrom)Requiring that features be shuffled on the same chromosome +========================================================================== +The "**-chrom**" option behaves the same as the default behavior except that features are randomly +placed on the same chromosome as defined in the BED file. + +For example: +:: + cat A.bed + chr1 0 100 a1 1 + + chr1 0 1000 a2 2 - + + cat my.genome + chr1 10000 + chr2 8000 + chr3 5000 + chr4 2000 + + shuffleBed -i A.bed -g my.genome -chrom + chr1 9560 9660 a1 1 + + chr1 7258 8258 a2 2 - + + + + +========================================================================== +5.13.4 Excluding certain genome regions from shuffleBed +========================================================================== +One may want to prevent BED features from being placed in certain regions of the genome. For +example, one may want to exclude genome gaps from permutation experiment. The "**-excl**" option +defines a BED file of regions that should be excluded. **shuffleBed** will attempt to permute the +locations of all features while adhering to the exclusion rules. However it will stop looking for an +appropriate location if it cannot find a valid spot for a feature after 1,000,000 tries. + +For example (*note that the exclude file excludes all but 100 base pairs of the chromosome*): +:: + cat A.bed + chr1 0 100 a1 1 + + chr1 0 1000 a2 2 - + + cat my.genome + chr1 10000 + + cat exclude.bed + chr1 100 10000 + + shuffleBed -i A.bed -g my.genome -excl exclude.bed + chr1 0 100 a1 1 + + Error, line 2: tried 1000000 potential loci for entry, but could not avoid excluded + regions. Ignoring entry and moving on. + + +For example (*now the exclusion file only excludes the first 100 bases of the chromosome*): +:: + cat A.bed + chr1 0 100 a1 1 + + chr1 0 1000 a2 2 - + + cat my.genome + chr1 10000 + + cat exclude.bed + chr1 0 100 + + shuffleBed -i A.bed -g my.genome -excl exclude.bed + chr1 147 247 a1 1 + + chr1 2441 3441 a2 2 - + + +========================================================================== +5.13.5 Defining a "seed" for the random replacement. +========================================================================== +**shuffleBed** uses a pseudo-random number generator to permute the locations of BED features. +Therefore, each run should produce a different result. This can be problematic if one wants to exactly +recreate an experiment. By using the "**-seed**" option, one can supply a custom integer seed for +**shuffleBed**. In turn, each execution of **shuffleBed** with the same seed and input files should produce +identical results. + +For example (*note that the exclude file below excludes all but 100 base pairs of the chromosome*): +:: + cat A.bed + chr1 0 100 a1 1 + + chr1 0 1000 a2 2 - + + cat my.genome + chr1 10000 + + shuffleBed -i A.bed -g my.genome -seed 927442958 + chr1 6177 6277 a1 1 + + chr1 8119 9119 a2 2 - + + shuffleBed -i A.bed -g my.genome -seed 927442958 + chr1 6177 6277 a1 1 + + chr1 8119 9119 a2 2 - + + . . . + + shuffleBed -i A.bed -g my.genome -seed 927442958 + chr1 6177 6277 a1 1 + + chr1 8119 9119 a2 2 - diff --git a/docs/_build/html/_sources/content/slopBed.txt b/docs/_build/html/_sources/content/slopBed.txt new file mode 100644 index 00000000..0646afca --- /dev/null +++ b/docs/_build/html/_sources/content/slopBed.txt @@ -0,0 +1,84 @@ +############### +5.14 slopBed +############### +**slopBed** will increase the size of each feature in a feature file be a user-defined number of bases. While +something like this could be done with an "**awk '{OFS="\t" print $1,$2-<slop>,$3+<slop>}'**", +**slopBed** will restrict the resizing to the size of the chromosome (i.e. no start < 0 and no end > +chromosome size). + + +========================================================================== +5.14.1 Usage and option summary +========================================================================== +Usage: +:: + slopBed [OPTIONS] -i <BED/GFF/VCF> -g <GENOME> [-b or (-l and -r)] + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-b** Increase the BED/GFF/VCF entry by the same number base pairs in each direction. *Integer*. +**-l** The number of base pairs to subtract from the start coordinate. *Integer*. +**-r** The number of base pairs to add to the end coordinate. *Integer*. +**-s** Define -l and -r based on strand. For example. if used, -l 500 for a negative-stranded feature, it will add 500 bp to the *end* coordinate. +=========================== =============================================================================================================================================================================================================== + + + +========================================================================== +5.14.2 Default behavior +========================================================================== +By default, **slopBed** will either add a fixed number of bases in each direction (**-b**) or an asymmetric +number of bases in each direction (**-l** and **-r**). + +For example: +:: + cat A.bed + chr1 5 100 + chr1 800 980 + + cat my.genome + chr1 1000 + + slopBed -i A.bed -g my.genome -b 5 + chr1 0 105 + chr1 795 985 + + slopBed -i A.bed -g my.genome -l 2 -r 3 + chr1 3 103 + chr1 798 983 + + +However, if the requested number of bases exceeds the boundaries of the chromosome, **slopBed** will +"clip" the feature accordingly. +:: + cat A.bed + chr1 5 100 + chr1 800 980 + + cat my.genome + chr1 1000 + + slopBed -i A.bed -g my.genome -b 5000 + chr1 0 1000 + chr1 0 1000 + + + +========================================================================== +5.14.3 Resizing features according to strand +========================================================================== +**slopBed** will optionally increase the size of a feature based on strand. + +For example: +:: + cat A.bed + chr1 100 200 a1 1 + + chr1 100 200 a2 2 - + + cat my.genome + chr1 1000 + + slopBed -i A.bed -g my.genome -l 50 -r 80 -s + chr1 50 280 a1 1 + + chr1 20 250 a2 2 - diff --git a/docs/_build/html/_sources/content/sortBed.txt b/docs/_build/html/_sources/content/sortBed.txt new file mode 100644 index 00000000..7ea16667 --- /dev/null +++ b/docs/_build/html/_sources/content/sortBed.txt @@ -0,0 +1,77 @@ +############### +5.15 sortBed +############### +**sortBed** sorts a feature file by chromosome and other criteria. + +========================================================================== +5.15.1 Usage and option summary +========================================================================== +Usage: +:: + sortBed [OPTIONS] -i <BED/GFF/VCF> + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-sizeA** Sort by feature size in ascending order. +**-sizeD** Sort by feature size in descending order. +**-chrThenSizeA** Sort by chromosome, then by feature size (asc). +**-chrThenSizeD** Sort by chromosome, then by feature size (desc). +**-chrThenScoreA** Sort by chromosome, then by score (asc). +**-chrThenScoreD** Sort by chromosome, then by score (desc). +=========================== =============================================================================================================================================================================================================== + + + +========================================================================== +5.15.2 Default behavior +========================================================================== +By default, **sortBed** sorts a BED file by chromosome and then by start position in ascending order. + +For example: +:: + cat A.bed + chr1 800 1000 + chr1 80 180 + chr1 1 10 + chr1 750 10000 + + sortBed -i A.bed + chr1 1 10 + chr1 80 180 + chr1 750 10000 + chr1 800 1000 + + + + +========================================================================== +5.15.3 Optional sorting behavior +========================================================================== +**sortBed** will also sorts a BED file by chromosome and then by other criteria. + +For example, to sort by chromosome and then by feature size (in descending order): +:: + cat A.bed + chr1 800 1000 + chr1 80 180 + chr1 1 10 + chr1 750 10000 + + sortBed -i A.bed -sizeD + chr1 750 10000 + chr1 800 1000 + chr1 80 180 + chr1 1 10 + + +**Disclaimer:** it should be noted that **sortBed** is merely a convenience utility, as the UNIX sort utility +will sort BED files more quickly while using less memory. For example, UNIX sort will sort a BED file +by chromosome then by start position in the following manner: +:: + sort -k 1,1 -k2,2 -n a.bed + chr1 1 10 + chr1 80 180 + chr1 750 10000 + chr1 800 1000 + diff --git a/docs/_build/html/_sources/content/subtractBed.txt b/docs/_build/html/_sources/content/subtractBed.txt new file mode 100644 index 00000000..81dfb0e7 --- /dev/null +++ b/docs/_build/html/_sources/content/subtractBed.txt @@ -0,0 +1,88 @@ +############### +5.7 subtractBed +############### +**subtractBed** searches for features in B that overlap A. If an overlapping feature is found in B, the +overlapping portion is removed from A and the remaining portion of A is reported. If a feature in B +overlaps all of a feature in A, the A feature will not be reported. + + +========================================================================== +5.7.1 Usage and option summary +========================================================================== +Usage: +:: + subtractBed [OPTIONS] -a <BED/GFF/VCF> -b <BED/GFF/VCF> + +=========================== =============================================================================================================================================================================================================== +Option Description +=========================== =============================================================================================================================================================================================================== +**-f** Minimum overlap required as a fraction of A. Default is 1E-9 (i.e. 1bp). +**-s** Force strandedness. That is, find the closest feature in B overlaps A on the same strand. *By default, this is disabled*. +=========================== =============================================================================================================================================================================================================== + + + +========================================================================== +5.7.2 Default behavior +========================================================================== +Figure: +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BED FILE A ************* ****** + + BED File B ^^^^^^^^ ^^^^^^^^^^^ + + Result ========= + +For example: +:: + cat A.bed + chr1 100 200 + chr1 10 20 + + cat B.bed + chr1 0 30 + chr1 180 300 + + subtractBed -a A.bed -b B.bed + chr1 100 180 + + + + + + +========================================================================== +5.7.3 (-f)Requiring a minimal overlap fraction before subtracting +========================================================================== +This option behaves the same as the -f option for intersectBed. In this case, subtractBed will only +subtract an overlap with B if it covers at least the fraction of A defined by -f. If an overlap is found, +but it does not meet the overlap fraction, the original A feature is reported without subtraction. + +For example: +:: + cat A.bed + chr1 100 200 + + cat B.bed + chr1 180 300 + + subtractBed -a A.bed -b B.bed -f 0.10 + chr1 100 180 + + subtractBed -a A.bed -b B.bed -f 0.80 + chr1 100 200 + + + + +========================================================================== +5.7.4 (-s)Enforcing "strandedness" +========================================================================== +This option behaves the same as the -s option for intersectBed while scanning for features in B that +should be subtracted from A. See the discussion in the intersectBed section for details. + + + + diff --git a/docs/_build/html/_sources/content/unionBedGraphs.txt b/docs/_build/html/_sources/content/unionBedGraphs.txt new file mode 100644 index 00000000..b1e34a18 --- /dev/null +++ b/docs/_build/html/_sources/content/unionBedGraphs.txt @@ -0,0 +1,163 @@ +############### +5.23 unionBedGraphs +############### +**unionBedGraphs** combines multiple BEDGRAPH files into a single file such that one can directly +compare coverage (and other text-values such as genotypes) across multiple sample + + +========================================================================== +5.23.1 Usage and option summary +========================================================================== +Usage: +:: + unionBedGraphs [OPTIONS] -i FILE1 FILE2 FILE3 ... FILEn + +=========================== =============================================================================================================================================================================================================== + Option Description + +=========================== =============================================================================================================================================================================================================== +**-header** Print a header line, consisting of chrom, start, end followed by the names of each input BEDGRAPH file. +**-names** A list of names (one per file) to describe each file in -i. These names will be printed in the header line. +**-empty** Report empty regions (i.e., start/end intervals w/o values in all files). *Requires the '-g FILE' parameter (see below)*. +**-g** The genome file to be used to calculate empty regions. +**-filler TEXT** Use TEXT when representing intervals having no value. Default is '0', but you can use 'N/A' or any other text. +**-examples** Show detailed usage examples. +=========================== =============================================================================================================================================================================================================== + + + + +========================================================================== +5.23.2 Default behavior +========================================================================== +Figure: +:: + cat 1.bg + chr1 1000 1500 10 + chr1 2000 2100 20 + + cat 2.bg + chr1 900 1600 60 + chr1 1700 2050 50 + + cat 3.bg + chr1 1980 2070 80 + chr1 2090 2100 20 + + cat sizes.txt + chr1 5000 + + unionBedGraphs -i 1.bg 2.bg 3.bg + chr1 900 1000 0 60 0 + chr1 1000 1500 10 60 0 + chr1 1500 1600 0 60 0 + chr1 1700 1980 0 50 0 + chr1 1980 2000 0 50 80 + chr1 2000 2050 20 50 80 + chr1 2050 2070 20 0 80 + chr1 2070 2090 20 0 0 + chr1 2090 2100 20 0 20 + +========================================================================== +5.23.3 Add a header line to the output +========================================================================== +Figure: +:: + unionBedGraphs -i 1.bg 2.bg 3.bg -header + chrom start end 1 2 3 + chr1 900 1000 0 60 0 + chr1 1000 1500 10 60 0 + chr1 1500 1600 0 60 0 + chr1 1700 1980 0 50 0 + chr1 1980 2000 0 50 80 + chr1 2000 2050 20 50 80 + chr1 2050 2070 20 0 80 + chr1 2070 2090 20 0 0 + chr1 2090 2100 20 0 20 + + +========================================================================== +5.23.4 Add a header line with custom file names to the output +========================================================================== +Figure: +:: + unionBedGraphs -i 1.bg 2.bg 3.bg -header -names WT-1 WT-2 KO-1 + chrom start end WT-1 WT-2 KO-1 + chr1 900 1000 0 60 0 + chr1 1000 1500 10 60 0 + chr1 1500 1600 0 60 0 + chr1 1700 1980 0 50 0 + chr1 1980 2000 0 50 80 + chr1 2000 2050 20 50 80 + chr1 2050 2070 20 0 80 + chr1 2070 2090 20 0 0 + chr1 2090 2100 20 0 20 + + + + +========================================================================== +5.23.5 Include regions that have zero coverage in all BEDGRAPH files. +========================================================================== +Figure: +:: + unionBedGraphs -i 1.bg 2.bg 3.bg -empty -g sizes.txt -header + chrom start end WT-1 WT-2 KO-1 + chrom start end 1 2 3 + chr1 0 900 0 0 0 + chr1 900 1000 0 60 0 + chr1 1000 1500 10 60 0 + chr1 1500 1600 0 60 0 + chr1 1600 1700 0 0 0 + chr1 1700 1980 0 50 0 + chr1 1980 2000 0 50 80 + chr1 2000 2050 20 50 80 + chr1 2050 2070 20 0 80 + chr1 2070 2090 20 0 0 + chr1 2090 2100 20 0 20 + chr1 2100 5000 0 0 0 + + +========================================================================== +5.23.6 Use a custom value for missing values. +========================================================================== +Figure: +:: + unionBedGraphs -i 1.bg 2.bg 3.bg -empty -g sizes.txt -header -filler N/A + chrom start end WT-1 WT-2 KO-1 + chrom start end 1 2 3 + chr1 0 900 N/A N/A N/A + chr1 900 1000 N/A 60 N/A + chr1 1000 1500 10 60 N/A + chr1 1500 1600 N/A 60 N/A + chr1 1600 1700 N/A N/A N/A + chr1 1700 1980 N/A 50 N/A + chr1 1980 2000 N/A 50 80 + chr1 2000 2050 20 50 80 + chr1 2050 2070 20 N/A 80 + chr1 2070 2090 20 N/A N/A + chr1 2090 2100 20 N/A 20 + chr1 2100 5000 N/A N/A N/A + + +========================================================================== +5.23.7 Use BEDGRAPH files with non-numeric values. +========================================================================== +Figure: +:: + cat 1.snp.bg + chr1 0 1 A/G + chr1 5 6 C/T + + cat 2.snp.bg + chr1 0 1 C/C + chr1 7 8 T/T + + cat 3.snp.bg + chr1 0 1 A/G + chr1 5 6 C/T + + unionBedGraphs -i 1.snp.bg 2.snp.bg 3.snp.bg -filler -/- + chr1 0 1 A/G C/C A/G + chr1 5 6 C/T -/- C/T + chr1 7 8 -/- T/T -/- \ No newline at end of file diff --git a/docs/_build/html/_sources/content/windowBed.txt b/docs/_build/html/_sources/content/windowBed.txt new file mode 100644 index 00000000..30d231ea --- /dev/null +++ b/docs/_build/html/_sources/content/windowBed.txt @@ -0,0 +1,157 @@ +############### +5.5 windowBed +############### + +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. + +========================================================================== +5.5.1 Usage and option summary +========================================================================== +**Usage:** +:: + windowBed [OPTIONS] -a <BED/GFF/VCF> -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 +**-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 +**-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*. +**-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. +=========================== ========================================================================================================================================================= + +========================================================================== +5.5.2 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 + chr1 100 200 + + cat B.bed + chr1 500 1000 + chr1 1300 2000 + + windowBed -a A.bed -b B.bed + chr1 100 200 chr1 500 1000 + + +========================================================================== +5.5.3 (-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**. + +For example (note that in contrast to the default behavior, the second B entry is reported): +:: + cat A.bed + chr1 100 200 + + cat B.bed + chr1 500 1000 + chr1 1300 2000 + + windowBed -a A.bed -b B.bed -w 5000 + chr1 100 200 chr1 500 1000 + chr1 100 200 chr1 1300 2000 + +========================================================================== +5.5.4 (-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. + +For example (note the difference between -l 200 and -l 300): +:: + cat A.bed + chr1 1000 2000 + + cat B.bed + chr1 500 800 + chr1 10000 20000 + + windowBed -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 + chr1 100 200 chr1 500 800 + chr1 100 200 chr1 10000 20000 + +========================================================================== +5.5.5 (-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). + +For example (note the difference between -l 200 and -l 300): +:: + cat A.bed + chr1 10000 20000 A.forward 1 + + chr1 10000 20000 A.reverse 1 - + + cat B.bed + chr1 1000 8000 B1 + chr1 24000 32000 B2 + + windowBed -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 + + + +========================================================================== +5.5.6 (-sm)Enforcing "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. + +========================================================================== +5.5.7 (-u)Reporting the presence 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. + + +========================================================================== +5.5.8 (-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. + + +========================================================================== +5.5.9 (-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. + diff --git a/docs/_build/html/_sources/index.txt b/docs/_build/html/_sources/index.txt new file mode 100644 index 00000000..0ed81653 --- /dev/null +++ b/docs/_build/html/_sources/index.txt @@ -0,0 +1,31 @@ +================================================================ +**bedtools**: *a powerful toolset for genome arithmetic* +================================================================ + +================= +Overview +================= + +Brief paragraph of the software. + + +================= +Table of contents +================= +.. toctree:: + :maxdepth: 1 + + content/overview + content/installation + content/quick-start + content/general-usage + content/bedtools-suite + content/example-usage + content/advanced-usage + + +================= +Mailing list +================= +Refer to the mailing list. + diff --git a/docs/_build/html/_static/ajax-loader.gif b/docs/_build/html/_static/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nno%(3)e{?)x>&1u}A`t?OF7Z|1gRivOgXi&7IyQd1Pl zGfOfQ60;I3a`F>X^fL3(@);C=vM_KlFfb_o=k{|A33hf2a5d61U}gjg=>Rd%XaNQW zW@C<Bcm5fi^2`=a=CI<BoWt%nBaPE_qv4@lA~O$e(@QvVsPKYrw1nl|W$cy`JnUZC z&pm)ff{kWGHpc{Hj$e<Wf^-Yd?hVhnTne26LlO)n6%u@0qor2V$ZRdW|29#Ay+Pr+ z#G^K6$xW&%T0&5Rn2-%J<Je`StbNMy#Dp_b!t~i%lV$k6Ncw&BbV{7Dx<KXw*O|?G zWsa@TW{P|({)e&oFu&2t6sh_9S)fKSBO3+uTav2wDWkTDZ{~!>w{|b%Y*pl8F?4B9 zlo4Fz*0kZGJabY|>}Okf0}CCg{u4`zEPY^pV?j2@h+|igy0+Kz6p;@SpM4s6)XEMg z#3Y4GX>Hjlml5ftdH$4x0JGdn8~MX(U~_^d!Hi)=HU{V%g+mi8#UGbE-*ao8f#h+S z2a0-5+vc7MU$e-NhmBjLIC1v|)9+Im8x1yacJ7{^tLX(ZhYi^rpmXm0`@ku9b53aN zEXH@Y3JaztblgpxbJt{AtE1ad1Ca>{v$rwwvK(>{m~Gf_=-Ro7Fk{#;i~+{{>QtvI yb2P8Zac~?~=sRA>$6{!(^3;ZP0TPFR(G_-UDU(8Jl0?(IXu$~#4A!880|o%~Al1tN literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/basic.css b/docs/_build/html/_static/basic.css new file mode 100644 index 00000000..f0379f35 --- /dev/null +++ b/docs/_build/html/_static/basic.css @@ -0,0 +1,540 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar input[type="text"] { + width: 170px; +} + +div.sphinxsidebar input[type="submit"] { + width: 30px; +} + +img { + border: 0; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- general body styles --------------------------------------------------- */ + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.refcount { + color: #060; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs/_build/html/_static/bedtools.png b/docs/_build/html/_static/bedtools.png new file mode 100644 index 0000000000000000000000000000000000000000..2d44356e6b4858b57e94c811db8e827d4ce72a72 GIT binary patch literal 14929 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 G1^gfT33g`y literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/comment-bright.png b/docs/_build/html/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..551517b8c83b76f734ff791f847829a760ad1903 GIT binary patch literal 3500 zcmV;d4O8-oP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV000V4X+uL$P-t&- zZ*ypGa3D!TLm+T+Z)Rz1WdHzp+MQEpR8#2|J@?-9LQ9B%luK_?6$l_wLW_VDktQl3 z2@pz%A)(n7QNa;KMFbnjpojyGj)066Q7jCK3fKqaA)=0hqlk*i`{8?|Yu3E?=FR@K z*FNX0^PRKL2fzpnmPj*EHGmAMLLL#|gU7_i;p8qrfeIvW01ybXWFd3?BLM*Temp!Y zBESc}00DT@3kU$fO`E_l9Ebl8>Oz@Z0f2-7z;ux~O9+4z06=<<LZ$#fMgf4Gm?l#I zpacM5%VT2W08lLeU?+d((*S^-_?deF09%wH6#<};03Z`(h(rKrI{>WDR*FRcSTFz- zW=q650N5=6FiBTtNC2?60Km==3$g$R3;-}uh=nNt1bYBr$Ri_o0EC$U6h`t_Jn<{8 z5a%iY0C<_QJh>z}MS)ugEpZ1|S1ukX&Pf+56gFW3VVXcL!g-k)GJ!M?;PcD?0HBc- z5#WRK{dmp}uFlRjj<yb8E$Y7p{~}^y<NoE(t8hR70O53g(f%wivl@Uq27qn;q9yJG zXkH7Tb@z*AvJXJD0HEpGSMzZAemp!yp^&-R+2!Qq*h<7gTVcvqeg0>{U%*%WZ25jX z{P*?XzTzZ-GF^d31o+^>%=Ap99M6&ogks$0k4OBs3;+Bb(;~!4V!2o<6ys46agIcq zjPo+3B8fthDa9qy|77CdEc*jK-!%ZRYCZvbku9iQV*~a}ClFY4z~c7+0P?$U!PF=S z1Au6Q;m>#f??3%Vpd|o+W=WE9003S@Bra6Svp>fO002awfhw>;8}z{#EWidF!3EsG z3;bX<ghC|5!a@*23S@vBa$qT}f<h>U&9EIRU@z1_9W=mEXoiz;4lcq~xDGvV5BgyU zp1~-*fe8db$Osc*A=-!mVv1NJjtCc-h4>-CNCXm#Bp}I%6j35eku^v$Qi@a{RY)E3 zJ#qp$hg?Rwkvqr$GJ^buyhkyVfwECO)C{#lxu`c9ghrwZ&}4KmnvWKso6vH!8a<3Q zq36)6Xb;+tK10Vaz~~qUGsJ8#F2=(`u{bOVlVi)VBCHIn#u~6ztOL7=^<&SmcLWlF zMZgI*1b0FpVIDz9SWH+>*hr`#93(Um+6gxa1B6k+CnA%mOSC4s5&6UzVlpv@SV$}* z))J2sFA#f(L&P^E5{W}HC%KRUNwK6<(h|}}(r!{C=`5+6G)NjFlgZj-YqAG9lq?`C z$c5yc<iq4M<QwE6@>>d>VnA`E_*3F2Qp##d8RZb=H01_mm@+|Cqnc9PsG(F5HIG_C zt)aG3uTh7n6Et<2In9F>NlT@zqLtGcXcuVrX|L#Xx)I%#9!{6gSJKPrN9dR61N3(c z4Tcqi$B1Vr8Jidf7-t!G7_XR2rWw<V8OKyGH!<s&=a~<gZ&g?-wkmuTk;)2{N|h#+ z8!9hUsj8-`-l_{#^Hs}KkEvc$eXd4TGgITK3DlOWRjQp(>r)$3XQ?}=hpK0&Z&W{| zep&sA23f;Q!%st`QJ}G3<GjWo3u76xcq}1n4XcKAfi=V?vCY|hb}GA={T;iDJ*ugp zIYTo_Ggq@x^OR;k2jiG=_?&c33Fj!Mm-Bv#-W2aC;wc-ZG)%cMWn62jmY0@Tt4OO+ zt4Hg-Hm>cbou<7-yIK2z4nfCCCtN2-XOGSWo##{8Q{ATurxr~;I`ytDs%xbip}RzP zziy}Qn4Z2~fSycmr`~zJ=lUFdFa1>gZThG6M+{g7vkW8#+YHVaJjFF}Z#*3@$J_By zLtVo_L#1JrVVB{Ak-5=4qt!-@Mh}c>#$4kh<88)m#-k<%CLtzEP3leVno>=<rYWX7 zOgl`+&CJcB&DNPUn>{htGUuD;o7bD)w_sX$S}eAxwzy?UvgBH(S?;#HZiQMoS*2K2 zT3xe7t(~nU*1N5{rxB;QPLocnp4Ml>u<^FZwyC!nu;thW+pe~4wtZn|Vi#w(#jeBd zlf9FDx_yoPJqHbk*$%56S{;6Kv~m<WRyy9A&YbQ)eZ};a=`Uwk&k)bpGvl@s%PGWZ zol~3BM`ssjxpRZ_h>M9!g3B(KJ}#RZ#@)!h<Vtk)ab4kh()FF2vzx;0sN1jZHtuQe zhuojcG@mJ+Su=Cc!^lJ6QRUG;3!jxRYu~JXPeV_EXSL@eFJmu}SFP8ux21Qg_hIiB zKK4FxpW{B`JU8Al-dSJFH^8^Zx64n%Z=PR;-$Q>R|78Dq|Iq-afF%KE1Brn_fm;Im z_<DRHzm7jT+hz8$+3i7$pt(U6L63s1g5|-jA!x|#kgXy2=a|ls&S?&XP=4sv&<A1W zVT;3l3@3$$g;$0@j&O)r8qqPAHFwe6Lv!Cm`b3sQ-kWDJPdTqGN;N7zsxE3g+Bdp1 zx<AG)W?9VDSe;l&Y)c$DE-J1zZfw5a{O$9H;+^6P<9ipFFUVbRd7;k2^o6GusV)*M zI+j38h)y_^@IeqNs1}SR@)LI@jtY6g9l~cKFVQy9h}c71DjrVqNGeTwlI)SZHF+e( zGo>u$xr8UFki1L{Ox>G0o)(&RAZ;=|I=wN2l97;cLaHH6leTB-XXa*h%dBOEvi`+x zi?=Txl?TadvyiL>SuF~-LZ;|cS}4~l2eM~nS7yJ>iOM;atDY;(?aZ^v+mJV$@1Ote z62cPUlD4IWOIIx&SmwQ~YB{nzae3Pc;}r!fhE@iwJh+OsDs9zItL;~pu715HdQEGA zUct(O!L<Qv>kCy1<%NCg+}G`0PgpNm-?d@-hMgNe6^V+j6x$b<6@S<$+<4_1hi}Ti zncS4LsjI}fWY1>OX6feMEuLErma3QLmkw?X+1j)X-&VBk_4Y;EFPF_I+q;9dL%E~B zJh;4Nr^(LEJ3myURP<E(R5tF?-L+xY_-@he8+*L=H0;&eTfF!EKFPk@RRL8^)n?UY z`$_w=_dl+Qs_FQa`)ysVPHl1R#{<#>{Rblsw%57T)g973R8o)DE9*xN#~;4_o$q%o z4K@u`jhx2fBXC4{<mvYb-}fF3I@)%Od#vFH(;s#nXB{tULYnfLMw?Tb`&(jLx=+kL z(bnqTdi+P*9}k=~JXv{4^Hj-c+UbJRlV|eJjGdL8eSR+a++f?HwtMGe&fjVeZ|}Mg zbm7uP|BL54ygSZZ^0;*JvfJeoSGZT2uR33C>U8Qn{*%*B$Ge=nny$HAYq{=vy|sI0 z_vss+H_qMky?OB#|JK!>IX&II^LlUh#rO5!7TtbwC;iULyV-Xq?ybB}ykGP{?LpZ? z-G|jbTmIbG@7#ZCz;~eY(cDM(28Dyq{*m>M4?_iynUBkc4TkHUI6gT!;y-fz>HMcd z&t%Ugo)`Y2{>!cx7B7DI)$7;J(U{Spm-3gBzioV_{p!H$8L!*M!p0uH$#^p{Ui4P` z?ZJ24cOCDe-w#jZd?0@)|7iKK^;6KN`;!@ylm7$*nDhK&GcDTy000JJOGiWi{{a60 z|De66lK=n!32;bRa{vGf6951U69E94oEQKA00(qQO+^RV2niQ93PPz|JOBU!-bqA3 zR5;6pl1pe^WfX<Kz5jFWy@@exLEFUIU=wPB&uCjMh(#zyMT!)`VL_Y}A)sPOtDxY> zkSdl!omi0~*ntl;2q{jA^;J@WT8O!=A(Gck8fa>hn{#u{`Ty<UmZ;$48*SK&#a@do zTxVzB&kXn91MHApZ+y|w(yUuEv9>g)!KXI6l>4dj==iVKK6+%4zaRizy(5eryC3d2 z+5Y_D$4}k5v2=Siw{=O)SWY2HJwR3xX1*M*9G^XQ*TCNXF$Vj(kbMJXK0DaS_Sa^1 z?CEa!cFWDhcwxy%a?i@DN|G6-M#uuWU>lss@I>;$xmQ|`u3f;MQ|<i+pZFzHDa=;| z5kbrooMO2V416$4J>pYuHxxvMeq4TW;>|7Z2*AsqT=`-1O~nTm6O&pNEK?^cf9CX= zkq5|qAoE7<gSlXrhR#lIk9r2?Ha9f5_RCesJZPj+QjqAngNL9-76eTdm0)Hf-qX^# zt+gfcDw~#4X?AfC7ds+_xacq^Xn+ub1&{bp&zq_g3|6vGQel0Rq`s777Og8PQ4EEm z;v$G0bpwMeQ#1ky7!XWxYTk0mqQ&3+LheIVB)Tz<4W}Y;<cNz7mAU~dz8=MasVArz z7Oq~c)n;}2;^@@))ar~YI7FQ|=d2Jzp%DsAP-+UqO^!GgM4hRsxme`Vbn^Yk>un3V z^yy=@%6zqN^x`#qW+;e7j>th{6GV}sf*}g7{(R#T)yg-AZh0C&U;WA`AL$qz8()5^ zGFi2`g&L7!c?x+A2oOaG0c*Bg&YZt8cJ{jq_W{uTdA-<;`@iP$$=$H?gYIYc_q^*$ z#k(Key`d40R3?+GmgK8hHJcwiQ~r4By@w9*PuzR>x3#(F?YW_W5pPc(t(@-Y{psOt zz2!UE_5S)bLF)<rmD^sL?0WXY#py@is+^|tc+=mv&+)&s9XQ{z^}x9<ibo0nY&!9u a`ab|E?o=hKA+1LM0000<MNUMnLSTYql%5L! literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/comment-close.png b/docs/_build/html/_static/comment-close.png new file mode 100644 index 0000000000000000000000000000000000000000..09b54be46da3f0d4a5061da289dc91d8a2cdbc9c GIT binary patch literal 3578 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 A2LJ#7 literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/comment.png b/docs/_build/html/_static/comment.png new file mode 100644 index 0000000000000000000000000000000000000000..92feb52b8824c6b0f59b658b1196c61de9162a95 GIT binary patch literal 3445 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 Xn!ZpXD%P(H00000NkvXXu0mjf<Culu literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/default.css b/docs/_build/html/_static/default.css new file mode 100644 index 00000000..21f3f509 --- /dev/null +++ b/docs/_build/html/_static/default.css @@ -0,0 +1,256 @@ +/* + * default.css_t + * ~~~~~~~~~~~~~ + * + * Sphinx stylesheet -- default theme. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: sans-serif; + font-size: 100%; + background-color: #11303d; + color: #000; + margin: 0; + padding: 0; +} + +div.document { + background-color: #1c4e63; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +div.body { + background-color: #ffffff; + color: #000000; + padding: 0 20px 30px 20px; +} + +div.footer { + color: #ffffff; + width: 100%; + padding: 9px 0 9px 0; + text-align: center; + font-size: 75%; +} + +div.footer a { + color: #ffffff; + text-decoration: underline; +} + +div.related { + background-color: #133f52; + line-height: 30px; + color: #ffffff; +} + +div.related a { + color: #ffffff; +} + +div.sphinxsidebar { +} + +div.sphinxsidebar h3 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.4em; + font-weight: normal; + margin: 0; + padding: 0; +} + +div.sphinxsidebar h3 a { + color: #ffffff; +} + +div.sphinxsidebar h4 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.3em; + font-weight: normal; + margin: 5px 0 0 0; + padding: 0; +} + +div.sphinxsidebar p { + color: #ffffff; +} + +div.sphinxsidebar p.topless { + margin: 5px 10px 10px 10px; +} + +div.sphinxsidebar ul { + margin: 10px; + padding: 0; + color: #ffffff; +} + +div.sphinxsidebar a { + color: #98dbcc; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + + + +/* -- hyperlink styles ------------------------------------------------------ */ + +a { + color: #355f7c; + text-decoration: none; +} + +a:visited { + color: #355f7c; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + + + +/* -- body styles ----------------------------------------------------------- */ + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: 'Trebuchet MS', sans-serif; + background-color: #f2f2f2; + font-weight: normal; + color: #20435c; + border-bottom: 1px solid #ccc; + margin: 20px -20px 10px -20px; + padding: 3px 0 3px 10px; +} + +div.body h1 { margin-top: 0; font-size: 200%; } +div.body h2 { font-size: 160%; } +div.body h3 { font-size: 140%; } +div.body h4 { font-size: 120%; } +div.body h5 { font-size: 110%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #c60f0f; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + background-color: #c60f0f; + color: white; +} + +div.body p, div.body dd, div.body li { + text-align: justify; + line-height: 130%; +} + +div.admonition p.admonition-title + p { + display: inline; +} + +div.admonition p { + margin-bottom: 5px; +} + +div.admonition pre { + margin-bottom: 5px; +} + +div.admonition ul, div.admonition ol { + margin-bottom: 5px; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.topic { + background-color: #eee; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre { + padding: 5px; + background-color: #eeffcc; + color: #333333; + line-height: 120%; + border: 1px solid #ac9; + border-left: none; + border-right: none; +} + +tt { + background-color: #ecf0f3; + padding: 0 1px 0 1px; + font-size: 0.95em; +} + +th { + background-color: #ede; +} + +.warning tt { + background: #efc2c2; +} + +.note tt { + background: #d6d6d6; +} + +.viewcode-back { + font-family: sans-serif; +} + +div.viewcode-block:target { + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} \ No newline at end of file diff --git a/docs/_build/html/_static/doctools.js b/docs/_build/html/_static/doctools.js new file mode 100644 index 00000000..d4619fdf --- /dev/null +++ b/docs/_build/html/_static/doctools.js @@ -0,0 +1,247 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +} + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * small function to check if an array contains + * a given item. + */ +jQuery.contains = function(arr, item) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] == item) + return true; + } + return false; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('<a class="headerlink">\u00B6</a>'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('<a class="headerlink">\u00B6</a>'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('<p class="highlight-link"><a href="javascript:Documentation.' + + 'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/docs/_build/html/_static/down-pressed.png b/docs/_build/html/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..6f7ad782782e4f8e39b0c6e15c7344700cdd2527 GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*yM+OLB!qm#z$3ZNi+iKnkC`z>}Z23@f-Ava~9&<9T!#}JFtXD=!G zGdl{fK6ro2OGiOl+hKvH6i=D3%%Y^j`yIkRn!8O>@bG)IQR0{Kf+mxNd=_WScA8u_ z3;8(7x2){m9`nt+U(Nab&1G)!{`SPVpDX$w8McLTzAJ39wprG3p4XLq$06M`%}2Yk zRPPsb<eOBuJzzJtaBsDHruj&MO}CkI9@oM{u93MWs^*chA=$e7rUh<GoTlU#?wGGz z*_K*(>ES*dnYm1wkGL;iioAUB*Or2kz6(-M_r_#Me-<g+a_(*JjN&U*z02OX#~$%( z6#3ZLekrlFz3AKX``cC&$K^ccDa(j?XLM8b!=w9;#rq6gQ-fH_ZUFtx;OXk;vd$@? F2>`{mj$Z%( literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/down.png b/docs/_build/html/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..3003a88770de3977d47a2ba69893436a2860f9e7 GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*yM+OLB!qm#z$3ZNi+iKnkC`z>}xaV3tUZ$qnrLa#kt978NlpS`ru z&)HFc^}^>{UOEce+71h5nn>6&w6A!ie<Ab_+oUB-{c$>Nbu1wh)UGh{8~et^#oZ1# z>T7oM=FZ~xXWnTo{qnXm$ZLOlqGswI_m2{XwVK)IJmBjW{J3-B3x@C=M{ShWt#<pw z+y29?H~r3Ic5@5&Ry#4lLZ0TfgDn1@D+(sA?zAeN{MGSl)<;wKn{AaYbJjJ-X;-#| zTD>fYS9M?R;8K$~YwlIqwf>VA7q=YKcwf2DS4Zj5inDKXXB1zl=(YO3ST6~rDq)&z z*o>z)=hxrfG-cDBW0G$!?6{M<$@{_4{m1o%Ub!naEtn|@^frU1tDnm{r-UW|!^@B8 literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/file.png b/docs/_build/html/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..d18082e397e7e54f20721af768c4c2983258f1b4 GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP$Hy<xMqvo~{83qPMQBN1g5R21mCvNmQ;vmqr-?K<V zU4kQ;TS-l(;>OL$D9)yc9|lc|nKf<9@eUiWd>3GuTC!a5vdfWYEazjncPj5ZQX%+1 zt8B*4=d)!cdDz4wr^#OMYfqGz$1LDFF>|#>*O?<HXR=hzTfCLc!DZQEwT&GKx6RhQ zo))l-Eh>AGil(WEs?wLLy{Gj2J_@opDm%`dlax3yA*@*N$G&*ukFv>P8+2CBWO(qz zD0k1@kN>hhb1_6`&wrCswzINE(evt-5C1B^STi2@P<G<wTm_|``|B7th)+*kX+Pib z*M}qKJqcfCd_2yP9QQKsOSb)vO-|{xyF)I_-07lx@Zvo#rJ$WIhTj)AKCk@a+86Xn ktMBn$GheTj#{azILsys7Te#I72ZkAgr>mdKI;Vst0PQB6!2kdN literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/jquery.js b/docs/_build/html/_static/jquery.js new file mode 100644 index 00000000..7c243080 --- /dev/null +++ b/docs/_build/html/_static/jquery.js @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i? +e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r= +j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g, +"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e= +true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)|| +c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded", +L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype, +"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+ +a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f], +d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]=== +a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&& +!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari= +true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ", +i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ", +" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className= +this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i= +e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!= +null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), +fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| +d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this, +"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent= +a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y, +isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit= +{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}}; +if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&& +!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}}, +toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector, +u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "), +function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q]; +if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[]; +for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length- +1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/, +CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}}, +relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]= +l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[]; +h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m= +m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition|| +!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m= +h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>"; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/, +gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length; +c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)? +a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&& +this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]|| +u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length=== +1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay"); +this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a], +"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)}, +animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing= +j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]); +this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length|| +c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement? +function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b= +this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle; +k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&& +f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>"; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/docs/_build/html/_static/minus.png b/docs/_build/html/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..da1c5620d10c047525a467a425abe9ff5269cfc2 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1SHkYJtzcHoCO|{#XvD(5N2eUHAey{$X?>< z>&kweokM_|(Po{+Q=kw>iEBiObAE1aYF-J$w=>iB1I2<oT^vIsE+^X*KjUGJJ8<a0 zfdz{eHHE&rzrX(bySvGUL|lavlN4AuRwpzDOq(`sMv;5Joa+jUx<3|oWPN;mPUJ0` pW__Wi<5+59Lc)&n_i}Q^3>R$WLpMkF=>bh=@O1TaS?83{1OVknK<NMg literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/plus.png b/docs/_build/html/_static/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..b3cb37425ea68b39ffa7b2e5fb69161275a87541 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1SHkYJtzcHoCO|{#XvD(5N2eUHAey{$X?>< z>&kweokM`jkU7Va11Q8%;u=xnoS&PUnpeW`?aZ|OK(QcC7sn8Z%gHvy&v=;Q4jejg zV8NnAO`-4Z@2~&<?ryS^@YXF`T!a&o6j(S`Cmb}9IcHb(MZ@Xn$H&JXUMl#uzyAM< o7knL=1-mEi3=josIGoJJAh%tCVFz!`HlXPYp00i_>zopr02WF_WB>pF literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/pygments.css b/docs/_build/html/_static/pygments.css new file mode 100644 index 00000000..1a14f2ae --- /dev/null +++ b/docs/_build/html/_static/pygments.css @@ -0,0 +1,62 @@ +.highlight .hll { background-color: #ffffcc } +.highlight { background: #eeffcc; } +.highlight .c { color: #408090; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #303030 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0040D0 } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000 } /* Keyword.Type */ +.highlight .m { color: #208050 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mf { color: #208050 } /* Literal.Number.Float */ +.highlight .mh { color: #208050 } /* Literal.Number.Hex */ +.highlight .mi { color: #208050 } /* Literal.Number.Integer */ +.highlight .mo { color: #208050 } /* Literal.Number.Oct */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/_build/html/_static/rtd.css b/docs/_build/html/_static/rtd.css new file mode 100644 index 00000000..a8cedebf --- /dev/null +++ b/docs/_build/html/_static/rtd.css @@ -0,0 +1,1438 @@ +/* + * rtd.css + * ~~~~~~~~~~~~~~~ + * + * Sphinx stylesheet -- sphinxdoc theme. Originally created by + * Armin Ronacher for Werkzeug. + * + * Customized for ReadTheDocs by Eric Pierce & Eric Holscher + * + * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* RTD colors + * light blue: #e8ecef + * medium blue: #8ca1af + * dark blue: #465158 + * dark grey: #444444 + * + * white hover: #d1d9df; + * medium blue hover: #697983; + * green highlight: #8ecc4c + * light blue (project bar): #e8ecef + */ + +@import url("basic.css"); + +/* PAGE LAYOUT -------------------------------------------------------------- */ + +body { + font: 100%/1.5 "ff-meta-web-pro-1","ff-meta-web-pro-2",Arial,"Helvetica Neue",sans-serif; + text-align: center; + color: black; + background-color: #465158; + padding: 0; + margin: 0; +} + +div.document { + text-align: left; + background-color: #e8ecef; +} + +div.bodywrapper { + background-color: #ffffff; + border-left: 1px solid #ccc; + border-bottom: 1px solid #ccc; + margin: 0 0 0 16em; +} + +div.body { + margin: 0; + padding: 0.5em 1.3em; + max-width: 55em; + min-width: 20em; +} + +div.related { + font-size: 1em; + background-color: #465158; +} + +div.documentwrapper { + float: left; + width: 100%; + background-color: #e8ecef; +} + + +/* HEADINGS --------------------------------------------------------------- */ + +h1 { + margin: 0; + padding: 0.7em 0 0.3em 0; + font-size: 1.5em; + line-height: 1.15; + color: #111; + clear: both; +} + +h2 { + margin: 2em 0 0.2em 0; + font-size: 1.35em; + padding: 0; + color: #465158; +} + +h3 { + margin: 1em 0 -0.3em 0; + font-size: 1.2em; + color: #6c818f; +} + +div.body h1 a, div.body h2 a, div.body h3 a, div.body h4 a, div.body h5 a, div.body h6 a { + color: black; +} + +h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor { + display: none; + margin: 0 0 0 0.3em; + padding: 0 0.2em 0 0.2em; + color: #aaa !important; +} + +h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, +h5:hover a.anchor, h6:hover a.anchor { + display: inline; +} + +h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover, +h5 a.anchor:hover, h6 a.anchor:hover { + color: #777; + background-color: #eee; +} + + +/* LINKS ------------------------------------------------------------------ */ + +/* Normal links get a pseudo-underline */ +a { + color: #444; + text-decoration: none; + border-bottom: 1px solid #ccc; +} + +/* Links in sidebar, TOC, index trees and tables have no underline */ +.sphinxsidebar a, +.toctree-wrapper a, +.indextable a, +#indices-and-tables a { + color: #444; + text-decoration: none; + border-bottom: none; +} + +/* Most links get an underline-effect when hovered */ +a:hover, +div.toctree-wrapper a:hover, +.indextable a:hover, +#indices-and-tables a:hover { + color: #111; + text-decoration: none; + border-bottom: 1px solid #111; +} + +/* Footer links */ +div.footer a { + color: #86989B; + text-decoration: none; + border: none; +} +div.footer a:hover { + color: #a6b8bb; + text-decoration: underline; + border: none; +} + +/* Permalink anchor (subtle grey with a red hover) */ +div.body a.headerlink { + color: #ccc; + font-size: 1em; + margin-left: 6px; + padding: 0 4px 0 4px; + text-decoration: none; + border: none; +} +div.body a.headerlink:hover { + color: #c60f0f; + border: none; +} + + +/* NAVIGATION BAR --------------------------------------------------------- */ + +div.related ul { + height: 2.5em; +} + +div.related ul li { + margin: 0; + padding: 0.65em 0; + float: left; + display: block; + color: white; /* For the >> separators */ + font-size: 0.8em; +} + +div.related ul li.right { + float: right; + margin-right: 5px; + color: transparent; /* Hide the | separators */ +} + +/* "Breadcrumb" links in nav bar */ +div.related ul li a { + order: none; + background-color: inherit; + font-weight: bold; + margin: 6px 0 6px 4px; + line-height: 1.75em; + color: #ffffff; + padding: 0.4em 0.8em; + border: none; + border-radius: 3px; +} +/* previous / next / modules / index links look more like buttons */ +div.related ul li.right a { + margin: 0.375em 0; + background-color: #697983; + text-shadow: 0 1px rgba(0, 0, 0, 0.5); + border-radius: 3px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; +} +/* All navbar links light up as buttons when hovered */ +div.related ul li a:hover { + background-color: #8ca1af; + color: #ffffff; + text-decoration: none; + border-radius: 3px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; +} +/* Take extra precautions for tt within links */ +a tt, +div.related ul li a tt { + background: inherit !important; + color: inherit !important; +} + + +/* SIDEBAR ---------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 0; +} + +div.sphinxsidebar { + margin: 0; + margin-left: -100%; + float: left; + top: 3em; + left: 0; + padding: 0 1em; + width: 14em; + font-size: 1em; + text-align: left; + background-color: #e8ecef; +} + +div.sphinxsidebar img { + max-width: 12em; +} + +div.sphinxsidebar h3, div.sphinxsidebar h4 { + margin: 1.2em 0 0.3em 0; + font-size: 1em; + padding: 0; + color: #222222; + font-family: "ff-meta-web-pro-1", "ff-meta-web-pro-2", "Arial", "Helvetica Neue", sans-serif; +} + +div.sphinxsidebar h3 a { + color: #444444; +} + +div.sphinxsidebar ul, +div.sphinxsidebar p { + margin-top: 0; + padding-left: 0; + line-height: 130%; + background-color: #e8ecef; +} + +/* No bullets for nested lists, but a little extra indentation */ +div.sphinxsidebar ul ul { + list-style-type: none; + margin-left: 1.5em; + padding: 0; +} + +/* A little top/bottom padding to prevent adjacent links' borders + * from overlapping each other */ +div.sphinxsidebar ul li { + padding: 1px 0; +} + +/* A little left-padding to make these align with the ULs */ +div.sphinxsidebar p.topless { + padding-left: 0 0 0 1em; +} + +/* Make these into hidden one-liners */ +div.sphinxsidebar ul li, +div.sphinxsidebar p.topless { + white-space: nowrap; + overflow: hidden; +} +/* ...which become visible when hovered */ +div.sphinxsidebar ul li:hover, +div.sphinxsidebar p.topless:hover { + overflow: visible; +} + +/* Search text box and "Go" button */ +#searchbox { + margin-top: 2em; + margin-bottom: 1em; + background: #ddd; + padding: 0.5em; + border-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; +} +#searchbox h3 { + margin-top: 0; +} + +/* Make search box and button abut and have a border */ +input, +div.sphinxsidebar input { + border: 1px solid #999; + float: left; +} + +/* Search textbox */ +input[type="text"] { + margin: 0; + padding: 0 3px; + height: 20px; + width: 144px; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + -moz-border-radius-topleft: 3px; + -moz-border-radius-bottomleft: 3px; + -webkit-border-top-left-radius: 3px; + -webkit-border-bottom-left-radius: 3px; +} +/* Search button */ +input[type="submit"] { + margin: 0 0 0 -1px; /* -1px prevents a double-border with textbox */ + height: 22px; + color: #444; + background-color: #e8ecef; + padding: 1px 4px; + font-weight: bold; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + -moz-border-radius-topright: 3px; + -moz-border-radius-bottomright: 3px; + -webkit-border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; +} +input[type="submit"]:hover { + color: #ffffff; + background-color: #8ecc4c; +} + +div.sphinxsidebar p.searchtip { + clear: both; + padding: 0.5em 0 0 0; + background: #ddd; + color: #666; + font-size: 0.9em; +} + +/* Sidebar links are unusual */ +div.sphinxsidebar li a, +div.sphinxsidebar p a { + background: #e8ecef; /* In case links overlap main content */ + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border: 1px solid transparent; /* To prevent things jumping around on hover */ + padding: 0 5px 0 5px; +} +div.sphinxsidebar li a:hover, +div.sphinxsidebar p a:hover { + color: #111; + text-decoration: none; + border: 1px solid #888; +} + +/* Tweak any link appearing in a heading */ +div.sphinxsidebar h3 a { +} + + + + +/* OTHER STUFF ------------------------------------------------------------ */ + +cite, code, tt { + font-family: 'Consolas', 'Deja Vu Sans Mono', + 'Bitstream Vera Sans Mono', monospace; + font-size: 0.95em; + letter-spacing: 0.01em; +} + +tt { + background-color: #f2f2f2; + color: #444; +} + +tt.descname, tt.descclassname, tt.xref { + border: 0; +} + +hr { + border: 1px solid #abc; + margin: 2em; +} + +pre, #_fontwidthtest { + font-family: 'Consolas', 'Deja Vu Sans Mono', + 'Bitstream Vera Sans Mono', monospace; + margin: 1em 2em; + font-size: 0.95em; + letter-spacing: 0.015em; + line-height: 120%; + padding: 0.5em; + border: 1px solid #ccc; + background-color: #eee; + border-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; +} + +pre a { + color: inherit; + text-decoration: underline; +} + +td.linenos pre { + padding: 0.5em 0; +} + +div.quotebar { + background-color: #f8f8f8; + max-width: 250px; + float: right; + padding: 2px 7px; + border: 1px solid #ccc; +} + +div.topic { + background-color: #f8f8f8; +} + +table { + border-collapse: collapse; + margin: 0 -0.5em 0 -0.5em; +} + +table td, table th { + padding: 0.2em 0.5em 0.2em 0.5em; +} + + +/* ADMONITIONS AND WARNINGS ------------------------------------------------- */ + +/* Shared by admonitions, warnings and sidebars */ +div.admonition, +div.warning, +div.sidebar { + font-size: 0.9em; + margin: 2em; + padding: 0; + /* + border-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + */ +} +div.admonition p, +div.warning p, +div.sidebar p { + margin: 0.5em 1em 0.5em 1em; + padding: 0; +} +div.admonition pre, +div.warning pre, +div.sidebar pre { + margin: 0.4em 1em 0.4em 1em; +} +div.admonition p.admonition-title, +div.warning p.admonition-title, +div.sidebar p.sidebar-title { + margin: 0; + padding: 0.1em 0 0.1em 0.5em; + color: white; + font-weight: bold; + font-size: 1.1em; + text-shadow: 0 1px rgba(0, 0, 0, 0.5); +} +div.admonition ul, div.admonition ol, +div.warning ul, div.warning ol, +div.sidebar ul, div.sidebar ol { + margin: 0.1em 0.5em 0.5em 3em; + padding: 0; +} + + +/* Admonitions and sidebars only */ +div.admonition, div.sidebar { + border: 1px solid #609060; + background-color: #e9ffe9; +} +div.admonition p.admonition-title, +div.sidebar p.sidebar-title { + background-color: #70A070; + border-bottom: 1px solid #609060; +} + + +/* Warnings only */ +div.warning { + border: 1px solid #900000; + background-color: #ffe9e9; +} +div.warning p.admonition-title { + background-color: #b04040; + border-bottom: 1px solid #900000; +} + + +/* Sidebars only */ +div.sidebar { + max-width: 200px; +} + + + +div.versioninfo { + margin: 1em 0 0 0; + border: 1px solid #ccc; + background-color: #DDEAF0; + padding: 8px; + line-height: 1.3em; + font-size: 0.9em; +} + +.viewcode-back { + font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', + 'Verdana', sans-serif; +} + +div.viewcode-block:target { + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} + +dl { + margin: 1em 0 2.5em 0; +} + +/* Highlight target when you click an internal link */ +dt:target { + background: #ffe080; +} +/* Don't highlight whole divs */ +div.highlight { + background: transparent; +} +/* But do highlight spans (so search results can be highlighted) */ +span.highlight { + background: #ffe080; +} + +div.footer { + background-color: #465158; + color: #eeeeee; + padding: 0 2em 2em 2em; + clear: both; + font-size: 0.8em; + text-align: center; +} + +p { + margin: 0.8em 0 0.5em 0; +} + +.section p img { + margin: 1em 2em; +} + + +/* MOBILE LAYOUT -------------------------------------------------------------- */ + +@media screen and (max-width: 600px) { + + h1, h2, h3, h4, h5 { + position: relative; + } + + ul { + padding-left: 1.25em; + } + + div.bodywrapper a.headerlink, #indices-and-tables h1 a { + color: #e6e6e6; + font-size: 80%; + float: right; + line-height: 1.8; + position: absolute; + right: -0.7em; + visibility: inherit; + } + + div.bodywrapper h1 a.headerlink, #indices-and-tables h1 a { + line-height: 1.5; + } + + pre { + font-size: 0.7em; + overflow: auto; + word-wrap: break-word; + white-space: pre-wrap; + } + + div.related ul { + height: 2.5em; + padding: 0; + text-align: left; + } + + div.related ul li { + clear: both; + color: #465158; + padding: 0.2em 0; + } + + div.related ul li:last-child { + border-bottom: 1px dotted #8ca1af; + padding-bottom: 0.4em; + margin-bottom: 1em; + width: 100%; + } + + div.related ul li a { + color: #465158; + padding-right: 0; + } + + div.related ul li a:hover { + background: inherit; + color: inherit; + } + + div.related ul li.right { + clear: none; + padding: 0.65em 0; + margin-bottom: 0.5em; + } + + div.related ul li.right a { + color: #fff; + padding-right: 0.8em; + } + + div.related ul li.right a:hover { + background-color: #8ca1af; + } + + div.body { + clear: both; + min-width: 0; + word-wrap: break-word; + } + + div.bodywrapper { + margin: 0 0 0 0; + } + + div.sphinxsidebar { + float: none; + margin: 0; + width: auto; + } + + div.sphinxsidebar input[type="text"] { + height: 2em; + line-height: 2em; + width: 70%; + } + + div.sphinxsidebar input[type="submit"] { + height: 2em; + margin-left: 0.5em; + width: 20%; + } + + div.sphinxsidebar p.searchtip { + background: inherit; + margin-bottom: 1em; + } + + div.sphinxsidebar ul li, div.sphinxsidebar p.topless { + white-space: normal; + } + + .bodywrapper img { + display: block; + margin-left: auto; + margin-right: auto; + max-width: 100%; + } + + div.documentwrapper { + float: none; + } + + div.admonition, div.warning, pre, blockquote { + margin-left: 0em; + margin-right: 0em; + } + + .body p img { + margin: 0; + } + + #searchbox { + background: transparent; + } + + .related:not(:first-child) li { + display: none; + } + + .related:not(:first-child) li.right { + display: block; + } + + div.footer { + padding: 1em; + } + + .rtd_doc_footer .badge { + float: none; + margin: 1em auto; + position: static; + } + + .rtd_doc_footer .badge.revsys-inline { + margin-right: auto; + margin-bottom: 2em; + } + + table.indextable { + display: block; + width: auto; + } + + .indextable tr { + display: block; + } + + .indextable td { + display: block; + padding: 0; + width: auto !important; + } + + .indextable td dt { + margin: 1em 0; + } + + ul.search { + margin-left: 0.25em; + } + + ul.search li div.context { + font-size: 90%; + line-height: 1.1; + margin-bottom: 1; + margin-left: 0; + } + +} + +/* Links in sidebar, TOC, index trees and tables have no underline */ +.sphinxsidebar a, +.toctree-wrapper a, +.indextable a, +#indices-and-tables a { + color: #444444; + text-decoration: none; + border-bottom: none; +} + +/* Most links get an underline-effect when hovered */ +a:hover, +div.toctree-wrapper a:hover, +.indextable a:hover, +#indices-and-tables a:hover { + color: #111111; + text-decoration: none; + border-bottom: 1px solid #111111; +} + +/* Footer links */ +div.footer a { + color: #86989b; + text-decoration: none; + border: none; +} +div.footer a:hover { + color: #a6b8bb; + text-decoration: underline; + border: none; +} + +/* Permalink anchor (subtle grey with a red hover) */ +div.body a.headerlink { + color: #cccccc; + font-size: 1em; + margin-left: 6px; + padding: 0 4px 0 4px; + text-decoration: none; + border: none; +} +div.body a.headerlink:hover { + color: #c60f0f; + border: none; +} + + +/* NAVIGATION BAR --------------------------------------------------------- */ + +div.related ul { + height: 2.5em; +} + +div.related ul li { + margin: 0; + padding: 0.65em 0; + float: left; + display: block; + color: #ffffff; /* For the >> separators */ + font-size: 0.8em; +} + +div.related ul li.right { + float: right; + margin-right: 5px; + color: transparent; /* Hide the | separators */ +} + +/* "Breadcrumb" links in nav bar */ +div.related ul li a { + order: none; + background-color: inherit; + font-weight: bold; + margin: 6px 0 6px 4px; + line-height: 1.75em; + color: #ffffff; + text-shadow: 0 1px rgba(0, 0, 0, 0.5); + padding: 0.4em 0.8em; + border: none; + border-radius: 3px; +} +/* previous / next / modules / index links look more like buttons */ +div.related ul li.right a { + margin: 0.375em 0; + background-color: #697983; + text-shadow: 0 1px rgba(0, 0, 0, 0.5); + border-radius: 3px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; +} +/* All navbar links light up as buttons when hovered */ +div.related ul li a:hover { + background-color: #8ca1af; + color: #ffffff; + text-decoration: none; + border-radius: 3px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; +} +/* Take extra precautions for tt within links */ +a tt, +div.related ul li a tt { + background: inherit !important; + color: inherit !important; +} + + +/* SIDEBAR ---------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 0; +} + +div.sphinxsidebar { + margin: 0; + margin-left: -100%; + float: left; + top: 3em; + left: 0; + padding: 0 1em; + width: 14em; + font-size: 1em; + text-align: left; + background-color: #e8ecef; +} + +div.sphinxsidebar img { + max-width: 12em; +} + +div.sphinxsidebar h3, div.sphinxsidebar h4 { + margin: 1.2em 0 0.3em 0; + font-size: 1em; + padding: 0; + color: #222222; + font-family: "ff-meta-web-pro-1", "ff-meta-web-pro-2", "Arial", "Helvetica Neue", sans-serif; +} + +div.sphinxsidebar h3 a { + color: ; +} + +div.sphinxsidebar ul, +div.sphinxsidebar p { + margin-top: 0; + padding-left: 0; + line-height: 130%; + background-color: #e8ecef; +} + +/* No bullets for nested lists, but a little extra indentation */ +div.sphinxsidebar ul ul { + list-style-type: none; + margin-left: 1.5em; + padding: 0; +} + +/* A little top/bottom padding to prevent adjacent links' borders + * from overlapping each other */ +div.sphinxsidebar ul li { + padding: 1px 0; +} + +/* A little left-padding to make these align with the ULs */ +div.sphinxsidebar p.topless { + padding-left: 0 0 0 1em; +} + +/* Make these into hidden one-liners */ +div.sphinxsidebar ul li, +div.sphinxsidebar p.topless { + white-space: nowrap; + overflow: hidden; +} +/* ...which become visible when hovered */ +div.sphinxsidebar ul li:hover, +div.sphinxsidebar p.topless:hover { + overflow: visible; +} + +/* Search text box and "Go" button */ +#searchbox { + margin-top: 2em; + margin-bottom: 1em; + background: #dddddd; + padding: 0.5em; + border-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; +} +#searchbox h3 { + margin-top: 0; +} + +/* Make search box and button abut and have a border */ +input, +div.sphinxsidebar input { + border: 1px solid #999999; + float: left; +} + +/* Search textbox */ +input[type="text"] { + margin: 0; + padding: 0 3px; + height: 20px; + width: 144px; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + -moz-border-radius-topleft: 3px; + -moz-border-radius-bottomleft: 3px; + -webkit-border-top-left-radius: 3px; + -webkit-border-bottom-left-radius: 3px; +} +/* Search button */ +input[type="submit"] { + margin: 0 0 0 -1px; /* -1px prevents a double-border with textbox */ + height: 22px; + color: #444444; + background-color: #e8ecef; + padding: 1px 4px; + font-weight: bold; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + -moz-border-radius-topright: 3px; + -moz-border-radius-bottomright: 3px; + -webkit-border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; +} +input[type="submit"]:hover { + color: #ffffff; + background-color: #8ecc4c; +} + +div.sphinxsidebar p.searchtip { + clear: both; + padding: 0.5em 0 0 0; + background: #dddddd; + color: #666666; + font-size: 0.9em; +} + +/* Sidebar links are unusual */ +div.sphinxsidebar li a, +div.sphinxsidebar p a { + background: #e8ecef; /* In case links overlap main content */ + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border: 1px solid transparent; /* To prevent things jumping around on hover */ + padding: 0 5px 0 5px; +} +div.sphinxsidebar li a:hover, +div.sphinxsidebar p a:hover { + color: #111111; + text-decoration: none; + border: 1px solid #888888; +} + +/* Tweak any link appearing in a heading */ +div.sphinxsidebar h3 a { +} + + + + +/* OTHER STUFF ------------------------------------------------------------ */ + +cite, code, tt { + font-family: 'Consolas', 'Deja Vu Sans Mono', + 'Bitstream Vera Sans Mono', monospace; + font-size: 0.95em; + letter-spacing: 0.01em; +} + +tt { + background-color: ; + color: #444444; +} + +tt.descname, tt.descclassname, tt.xref { + border: 0; +} + +hr { + border: 1px solid #abc; + margin: 2em; +} + +pre, #_fontwidthtest { + font-family: 'Consolas', 'Deja Vu Sans Mono', + 'Bitstream Vera Sans Mono', monospace; + margin: 1em 2em; + font-size: 0.95em; + letter-spacing: 0.015em; + line-height: 120%; + padding: 0.5em; + border: 1px solid #cccccc; + background-color: ; + border-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; +} + +pre a { + color: inherit; + text-decoration: underline; +} + +td.linenos pre { + padding: 0.5em 0; +} + +div.quotebar { + background-color: #f8f8f8; + max-width: 250px; + float: right; + padding: 2px 7px; + border: 1px solid #cccccc; +} + +div.topic { + background-color: #f8f8f8; +} + +table { + border-collapse: collapse; + margin: 0 -0.5em 0 -0.5em; +} + +table td, table th { + padding: 0.2em 0.5em 0.2em 0.5em; +} + + +/* ADMONITIONS AND WARNINGS ------------------------------------------------- */ + +/* Shared by admonitions, warnings and sidebars */ +div.admonition, +div.warning, +div.sidebar { + font-size: 0.9em; + margin: 2em; + padding: 0; + /* + border-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + */ +} +div.admonition p, +div.warning p, +div.sidebar p { + margin: 0.5em 1em 0.5em 1em; + padding: 0; +} +div.admonition pre, +div.warning pre, +div.sidebar pre { + margin: 0.4em 1em 0.4em 1em; +} +div.admonition p.admonition-title, +div.warning p.admonition-title, +div.sidebar p.sidebar-title { + margin: 0; + padding: 0.1em 0 0.1em 0.5em; + color: white; + font-weight: bold; + font-size: 1.1em; + text-shadow: 0 1px rgba(0, 0, 0, 0.5); +} +div.admonition ul, div.admonition ol, +div.warning ul, div.warning ol, +div.sidebar ul, div.sidebar ol { + margin: 0.1em 0.5em 0.5em 3em; + padding: 0; +} + + +/* Admonitions and sidebars only */ +div.admonition, div.sidebar { + border: 1px solid #609060; + background-color: #e9ffe9; +} +div.admonition p.admonition-title, +div.sidebar p.sidebar-title { + background-color: #70a070; + border-bottom: 1px solid #609060; +} + + +/* Warnings only */ +div.warning { + border: 1px solid #900000; + background-color: #ffe9e9; +} +div.warning p.admonition-title { + background-color: #b04040; + border-bottom: 1px solid #900000; +} + + +/* Sidebars only */ +div.sidebar { + max-width: 200px; +} + + + +div.versioninfo { + margin: 1em 0 0 0; + border: 1px solid #cccccc; + background-color: #DDEAF0; + padding: 8px; + line-height: 1.3em; + font-size: 0.9em; +} + +.viewcode-back { + font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', + 'Verdana', sans-serif; +} + +div.viewcode-block:target { + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} + +dl { + margin: 1em 0 2.5em 0; +} + +/* Highlight target when you click an internal link */ +dt:target { + background: #ffe080; +} +/* Don't highlight whole divs */ +div.highlight { + background: transparent; +} +/* But do highlight spans (so search results can be highlighted) */ +span.highlight { + background: #ffe080; +} + +div.footer { + background-color: #465158; + color: #eeeeee; + padding: 0 2em 2em 2em; + clear: both; + font-size: 0.8em; + text-align: center; +} + +p { + margin: 0.8em 0 0.5em 0; +} + +.section p img { + margin: 1em 2em; +} + + +/* MOBILE LAYOUT -------------------------------------------------------------- */ + +@media screen and (max-width: 600px) { + + h1, h2, h3, h4, h5 { + position: relative; + } + + ul { + padding-left: 1.75em; + } + + div.bodywrapper a.headerlink, #indices-and-tables h1 a { + color: #e6e6e6; + font-size: 80%; + float: right; + line-height: 1.8; + position: absolute; + right: -0.7em; + visibility: inherit; + } + + div.bodywrapper h1 a.headerlink, #indices-and-tables h1 a { + line-height: 1.5; + } + + pre { + font-size: 0.7em; + overflow: auto; + word-wrap: break-word; + white-space: pre-wrap; + } + + div.related ul { + height: 2.5em; + padding: 0; + text-align: left; + } + + div.related ul li { + clear: both; + color: #465158; + padding: 0.2em 0; + } + + div.related ul li:last-child { + border-bottom: 1px dotted #8ca1af; + padding-bottom: 0.4em; + margin-bottom: 1em; + width: 100%; + } + + div.related ul li a { + color: #465158; + padding-right: 0; + } + + div.related ul li a:hover { + background: inherit; + color: inherit; + } + + div.related ul li.right { + clear: none; + padding: 0.65em 0; + margin-bottom: 0.5em; + } + + div.related ul li.right a { + color: #ffffff; + padding-right: 0.8em; + } + + div.related ul li.right a:hover { + background-color: #8ca1af; + } + + div.body { + clear: both; + min-width: 0; + word-wrap: break-word; + } + + div.bodywrapper { + margin: 0 0 0 0; + } + + div.sphinxsidebar { + float: none; + margin: 0; + width: auto; + } + + div.sphinxsidebar input[type="text"] { + height: 2em; + line-height: 2em; + width: 70%; + } + + div.sphinxsidebar input[type="submit"] { + height: 2em; + margin-left: 0.5em; + width: 20%; + } + + div.sphinxsidebar p.searchtip { + background: inherit; + margin-bottom: 1em; + } + + div.sphinxsidebar ul li, div.sphinxsidebar p.topless { + white-space: normal; + } + + .bodywrapper img { + display: block; + margin-left: auto; + margin-right: auto; + max-width: 100%; + } + + div.documentwrapper { + float: none; + } + + div.admonition, div.warning, pre, blockquote { + margin-left: 0em; + margin-right: 0em; + } + + .body p img { + margin: 0; + } + + #searchbox { + background: transparent; + } + + .related:not(:first-child) li { + display: none; + } + + .related:not(:first-child) li.right { + display: block; + } + + div.footer { + padding: 1em; + } + + .rtd_doc_footer .badge { + float: none; + margin: 1em auto; + position: static; + } + + .rtd_doc_footer .badge.revsys-inline { + margin-right: auto; + margin-bottom: 2em; + } + + table.indextable { + display: block; + width: auto; + } + + .indextable tr { + display: block; + } + + .indextable td { + display: block; + padding: 0; + width: auto !important; + } + + .indextable td dt { + margin: 1em 0; + } + + ul.search { + margin-left: 0.25em; + } + + ul.search li div.context { + font-size: 90%; + line-height: 1.1; + margin-bottom: 1; + margin-left: 0; + } + +} \ No newline at end of file diff --git a/docs/_build/html/_static/searchtools.js b/docs/_build/html/_static/searchtools.js new file mode 100644 index 00000000..663be4c9 --- /dev/null +++ b/docs/_build/html/_static/searchtools.js @@ -0,0 +1,560 @@ +/* + * searchtools.js_t + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for the full-text search. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words, hlwords is the list of normal, unstemmed + * words. the first one is used to find the occurance, the + * latter for highlighting it. + */ + +jQuery.makeSearchSummary = function(text, keywords, hlwords) { + var textLower = text.toLowerCase(); + var start = 0; + $.each(keywords, function() { + var i = textLower.indexOf(this.toLowerCase()); + if (i > -1) + start = i; + }); + start = Math.max(start - 120, 0); + var excerpt = ((start > 0) ? '...' : '') + + $.trim(text.substr(start, 240)) + + ((start + 240 - text.length) ? '...' : ''); + var rv = $('<div class="context"></div>').text(excerpt); + $.each(hlwords, function() { + rv = rv.highlightText(this, 'highlighted'); + }); + return rv; +} + + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + loadIndex : function(url) { + $.ajax({type: "GET", url: url, data: null, success: null, + dataType: "script", cache: true}); + }, + + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (var i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out); + this.dots = $('<span></span>').appendTo(this.title); + this.status = $('<p style="display: none"></p>').appendTo(this.out); + this.output = $('<ul class="search"/>').appendTo(this.out); + + $('#search-progress').text(_('Preparing search...')); + this.startPulse(); + + // index already loaded, the browser was quick! + if (this.hasIndex()) + this.query(query); + else + this.deferQuery(query); + }, + + query : function(query) { + var stopwords = ["and","then","into","it","as","are","in","if","for","no","there","their","was","is","be","to","that","but","they","not","such","with","by","a","on","these","of","will","this","near","the","or","at"]; + + // Stem the searchterms and add them to the correct list + var stemmer = new Stemmer(); + var searchterms = []; + var excluded = []; + var hlterms = []; + var tmp = query.split(/\s+/); + var objectterms = []; + for (var i = 0; i < tmp.length; i++) { + if (tmp[i] != "") { + objectterms.push(tmp[i].toLowerCase()); + } + + if ($u.indexOf(stopwords, tmp[i]) != -1 || tmp[i].match(/^\d+$/) || + tmp[i] == "") { + // skip this "word" + continue; + } + // stem the word + var word = stemmer.stemWord(tmp[i]).toLowerCase(); + // select the correct list + if (word[0] == '-') { + var toAppend = excluded; + word = word.substr(1); + } + else { + var toAppend = searchterms; + hlterms.push(tmp[i].toLowerCase()); + } + // only add if not already in the list + if (!$.contains(toAppend, word)) + toAppend.push(word); + }; + var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" ")); + + // console.debug('SEARCH: searching for:'); + // console.info('required: ', searchterms); + // console.info('excluded: ', excluded); + + // prepare search + var filenames = this._index.filenames; + var titles = this._index.titles; + var terms = this._index.terms; + var fileMap = {}; + var files = null; + // different result priorities + var importantResults = []; + var objectResults = []; + var regularResults = []; + var unimportantResults = []; + $('#search-progress').empty(); + + // lookup as object + for (var i = 0; i < objectterms.length; i++) { + var others = [].concat(objectterms.slice(0,i), + objectterms.slice(i+1, objectterms.length)) + var results = this.performObjectSearch(objectterms[i], others); + // Assume first word is most likely to be the object, + // other words more likely to be in description. + // Therefore put matches for earlier words first. + // (Results are eventually used in reverse order). + objectResults = results[0].concat(objectResults); + importantResults = results[1].concat(importantResults); + unimportantResults = results[2].concat(unimportantResults); + } + + // perform the search on the required terms + for (var i = 0; i < searchterms.length; i++) { + var word = searchterms[i]; + // no match but word was a required one + if ((files = terms[word]) == null) + break; + if (files.length == undefined) { + files = [files]; + } + // create the mapping + for (var j = 0; j < files.length; j++) { + var file = files[j]; + if (file in fileMap) + fileMap[file].push(word); + else + fileMap[file] = [word]; + } + } + + // now check if the files don't contain excluded terms + for (var file in fileMap) { + var valid = true; + + // check if all requirements are matched + if (fileMap[file].length != searchterms.length) + continue; + + // ensure that none of the excluded terms is in the + // search result. + for (var i = 0; i < excluded.length; i++) { + if (terms[excluded[i]] == file || + $.contains(terms[excluded[i]] || [], file)) { + valid = false; + break; + } + } + + // if we have still a valid result we can add it + // to the result list + if (valid) + regularResults.push([filenames[file], titles[file], '', null]); + } + + // delete unused variables in order to not waste + // memory until list is retrieved completely + delete filenames, titles, terms; + + // now sort the regular results descending by title + regularResults.sort(function(a, b) { + var left = a[1].toLowerCase(); + var right = b[1].toLowerCase(); + return (left > right) ? -1 : ((left < right) ? 1 : 0); + }); + + // combine all results + var results = unimportantResults.concat(regularResults) + .concat(objectResults).concat(importantResults); + + // print the results + var resultCount = results.length; + function displayNextItem() { + // results left, load the summary and display it + if (results.length) { + var item = results.pop(); + var listItem = $('<li style="display:none"></li>'); + if (DOCUMENTATION_OPTIONS.FILE_SUFFIX == '') { + // dirhtml builder + var dirname = item[0] + '/'; + if (dirname.match(/\/index\/$/)) { + dirname = dirname.substring(0, dirname.length-6); + } else if (dirname == 'index/') { + dirname = ''; + } + listItem.append($('<a/>').attr('href', + DOCUMENTATION_OPTIONS.URL_ROOT + dirname + + highlightstring + item[2]).html(item[1])); + } else { + // normal html builders + listItem.append($('<a/>').attr('href', + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX + + highlightstring + item[2]).html(item[1])); + } + if (item[3]) { + listItem.append($('<span> (' + item[3] + ')</span>')); + Search.output.append(listItem); + listItem.slideDown(5, function() { + displayNextItem(); + }); + } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) { + $.get(DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + + item[0] + '.txt', function(data) { + if (data != '') { + listItem.append($.makeSearchSummary(data, searchterms, hlterms)); + Search.output.append(listItem); + } + listItem.slideDown(5, function() { + displayNextItem(); + }); + }, "text"); + } else { + // no source available, just display title + Search.output.append(listItem); + listItem.slideDown(5, function() { + displayNextItem(); + }); + } + } + // search finished, update title and status message + else { + Search.stopPulse(); + Search.title.text(_('Search Results')); + if (!resultCount) + Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.')); + else + Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount)); + Search.status.fadeIn(500); + } + } + displayNextItem(); + }, + + performObjectSearch : function(object, otherterms) { + var filenames = this._index.filenames; + var objects = this._index.objects; + var objnames = this._index.objnames; + var titles = this._index.titles; + + var importantResults = []; + var objectResults = []; + var unimportantResults = []; + + for (var prefix in objects) { + for (var name in objects[prefix]) { + var fullname = (prefix ? prefix + '.' : '') + name; + if (fullname.toLowerCase().indexOf(object) > -1) { + var match = objects[prefix][name]; + var objname = objnames[match[1]][2]; + var title = titles[match[0]]; + // If more than one term searched for, we require other words to be + // found in the name/title/description + if (otherterms.length > 0) { + var haystack = (prefix + ' ' + name + ' ' + + objname + ' ' + title).toLowerCase(); + var allfound = true; + for (var i = 0; i < otherterms.length; i++) { + if (haystack.indexOf(otherterms[i]) == -1) { + allfound = false; + break; + } + } + if (!allfound) { + continue; + } + } + var descr = objname + _(', in ') + title; + anchor = match[3]; + if (anchor == '') + anchor = fullname; + else if (anchor == '-') + anchor = objnames[match[1]][1] + '-' + fullname; + result = [filenames[match[0]], fullname, '#'+anchor, descr]; + switch (match[2]) { + case 1: objectResults.push(result); break; + case 0: importantResults.push(result); break; + case 2: unimportantResults.push(result); break; + } + } + } + } + + // sort results descending + objectResults.sort(function(a, b) { + return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0); + }); + + importantResults.sort(function(a, b) { + return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0); + }); + + unimportantResults.sort(function(a, b) { + return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0); + }); + + return [importantResults, objectResults, unimportantResults] + } +} + +$(document).ready(function() { + Search.init(); +}); \ No newline at end of file diff --git a/docs/_build/html/_static/sidebar.js b/docs/_build/html/_static/sidebar.js new file mode 100644 index 00000000..a45e1926 --- /dev/null +++ b/docs/_build/html/_static/sidebar.js @@ -0,0 +1,151 @@ +/* + * sidebar.js + * ~~~~~~~~~~ + * + * This script makes the Sphinx sidebar collapsible. + * + * .sphinxsidebar contains .sphinxsidebarwrapper. This script adds + * in .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton + * used to collapse and expand the sidebar. + * + * When the sidebar is collapsed the .sphinxsidebarwrapper is hidden + * and the width of the sidebar and the margin-left of the document + * are decreased. When the sidebar is expanded the opposite happens. + * This script saves a per-browser/per-session cookie used to + * remember the position of the sidebar among the pages. + * Once the browser is closed the cookie is deleted and the position + * reset to the default (expanded). + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +$(function() { + // global elements used by the functions. + // the 'sidebarbutton' element is defined as global after its + // creation, in the add_sidebar_button function + var bodywrapper = $('.bodywrapper'); + var sidebar = $('.sphinxsidebar'); + var sidebarwrapper = $('.sphinxsidebarwrapper'); + + // for some reason, the document has no sidebar; do not run into errors + if (!sidebar.length) return; + + // original margin-left of the bodywrapper and width of the sidebar + // with the sidebar expanded + var bw_margin_expanded = bodywrapper.css('margin-left'); + var ssb_width_expanded = sidebar.width(); + + // margin-left of the bodywrapper and width of the sidebar + // with the sidebar collapsed + var bw_margin_collapsed = '.8em'; + var ssb_width_collapsed = '.8em'; + + // colors used by the current theme + var dark_color = $('.related').css('background-color'); + var light_color = $('.document').css('background-color'); + + function sidebar_is_collapsed() { + return sidebarwrapper.is(':not(:visible)'); + } + + function toggle_sidebar() { + if (sidebar_is_collapsed()) + expand_sidebar(); + else + collapse_sidebar(); + } + + function collapse_sidebar() { + sidebarwrapper.hide(); + sidebar.css('width', ssb_width_collapsed); + bodywrapper.css('margin-left', bw_margin_collapsed); + sidebarbutton.css({ + 'margin-left': '0', + 'height': bodywrapper.height() + }); + sidebarbutton.find('span').text('»'); + sidebarbutton.attr('title', _('Expand sidebar')); + document.cookie = 'sidebar=collapsed'; + } + + function expand_sidebar() { + bodywrapper.css('margin-left', bw_margin_expanded); + sidebar.css('width', ssb_width_expanded); + sidebarwrapper.show(); + sidebarbutton.css({ + 'margin-left': ssb_width_expanded-12, + 'height': bodywrapper.height() + }); + sidebarbutton.find('span').text('«'); + sidebarbutton.attr('title', _('Collapse sidebar')); + document.cookie = 'sidebar=expanded'; + } + + function add_sidebar_button() { + sidebarwrapper.css({ + 'float': 'left', + 'margin-right': '0', + 'width': ssb_width_expanded - 28 + }); + // create the button + sidebar.append( + '<div id="sidebarbutton"><span>«</span></div>' + ); + var sidebarbutton = $('#sidebarbutton'); + light_color = sidebarbutton.css('background-color'); + // find the height of the viewport to center the '<<' in the page + var viewport_height; + if (window.innerHeight) + viewport_height = window.innerHeight; + else + viewport_height = $(window).height(); + sidebarbutton.find('span').css({ + 'display': 'block', + 'margin-top': (viewport_height - sidebar.position().top - 20) / 2 + }); + + sidebarbutton.click(toggle_sidebar); + sidebarbutton.attr('title', _('Collapse sidebar')); + sidebarbutton.css({ + 'color': '#FFFFFF', + 'border-left': '1px solid ' + dark_color, + 'font-size': '1.2em', + 'cursor': 'pointer', + 'height': bodywrapper.height(), + 'padding-top': '1px', + 'margin-left': ssb_width_expanded - 12 + }); + + sidebarbutton.hover( + function () { + $(this).css('background-color', dark_color); + }, + function () { + $(this).css('background-color', light_color); + } + ); + } + + function set_position_from_cookie() { + if (!document.cookie) + return; + var items = document.cookie.split(';'); + for(var k=0; k<items.length; k++) { + var key_val = items[k].split('='); + var key = key_val[0]; + if (key == 'sidebar') { + var value = key_val[1]; + if ((value == 'collapsed') && (!sidebar_is_collapsed())) + collapse_sidebar(); + else if ((value == 'expanded') && (sidebar_is_collapsed())) + expand_sidebar(); + } + } + } + + add_sidebar_button(); + var sidebarbutton = $('#sidebarbutton'); + set_position_from_cookie(); +}); diff --git a/docs/_build/html/_static/underscore.js b/docs/_build/html/_static/underscore.js new file mode 100644 index 00000000..5d899143 --- /dev/null +++ b/docs/_build/html/_static/underscore.js @@ -0,0 +1,23 @@ +// Underscore.js 0.5.5 +// (c) 2009 Jeremy Ashkenas, DocumentCloud Inc. +// Underscore is freely distributable under the terms of the MIT license. +// Portions of Underscore are inspired by or borrowed from Prototype.js, +// Oliver Steele's Functional, and John Resig's Micro-Templating. +// For all details and documentation: +// http://documentcloud.github.com/underscore/ +(function(){var j=this,n=j._,i=function(a){this._wrapped=a},m=typeof StopIteration!=="undefined"?StopIteration:"__break__",b=j._=function(a){return new i(a)};if(typeof exports!=="undefined")exports._=b;var k=Array.prototype.slice,o=Array.prototype.unshift,p=Object.prototype.toString,q=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;b.VERSION="0.5.5";b.each=function(a,c,d){try{if(a.forEach)a.forEach(c,d);else if(b.isArray(a)||b.isArguments(a))for(var e=0,f=a.length;e<f;e++)c.call(d, +a[e],e,a);else{var g=b.keys(a);f=g.length;for(e=0;e<f;e++)c.call(d,a[g[e]],g[e],a)}}catch(h){if(h!=m)throw h;}return a};b.map=function(a,c,d){if(a&&b.isFunction(a.map))return a.map(c,d);var e=[];b.each(a,function(f,g,h){e.push(c.call(d,f,g,h))});return e};b.reduce=function(a,c,d,e){if(a&&b.isFunction(a.reduce))return a.reduce(b.bind(d,e),c);b.each(a,function(f,g,h){c=d.call(e,c,f,g,h)});return c};b.reduceRight=function(a,c,d,e){if(a&&b.isFunction(a.reduceRight))return a.reduceRight(b.bind(d,e),c); +var f=b.clone(b.toArray(a)).reverse();b.each(f,function(g,h){c=d.call(e,c,g,h,a)});return c};b.detect=function(a,c,d){var e;b.each(a,function(f,g,h){if(c.call(d,f,g,h)){e=f;b.breakLoop()}});return e};b.select=function(a,c,d){if(a&&b.isFunction(a.filter))return a.filter(c,d);var e=[];b.each(a,function(f,g,h){c.call(d,f,g,h)&&e.push(f)});return e};b.reject=function(a,c,d){var e=[];b.each(a,function(f,g,h){!c.call(d,f,g,h)&&e.push(f)});return e};b.all=function(a,c,d){c=c||b.identity;if(a&&b.isFunction(a.every))return a.every(c, +d);var e=true;b.each(a,function(f,g,h){(e=e&&c.call(d,f,g,h))||b.breakLoop()});return e};b.any=function(a,c,d){c=c||b.identity;if(a&&b.isFunction(a.some))return a.some(c,d);var e=false;b.each(a,function(f,g,h){if(e=c.call(d,f,g,h))b.breakLoop()});return e};b.include=function(a,c){if(b.isArray(a))return b.indexOf(a,c)!=-1;var d=false;b.each(a,function(e){if(d=e===c)b.breakLoop()});return d};b.invoke=function(a,c){var d=b.rest(arguments,2);return b.map(a,function(e){return(c?e[c]:e).apply(e,d)})};b.pluck= +function(a,c){return b.map(a,function(d){return d[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);var e={computed:-Infinity};b.each(a,function(f,g,h){g=c?c.call(d,f,g,h):f;g>=e.computed&&(e={value:f,computed:g})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);var e={computed:Infinity};b.each(a,function(f,g,h){g=c?c.call(d,f,g,h):f;g<e.computed&&(e={value:f,computed:g})});return e.value};b.sortBy=function(a,c,d){return b.pluck(b.map(a, +function(e,f,g){return{value:e,criteria:c.call(d,e,f,g)}}).sort(function(e,f){e=e.criteria;f=f.criteria;return e<f?-1:e>f?1:0}),"value")};b.sortedIndex=function(a,c,d){d=d||b.identity;for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?(e=g+1):(f=g)}return e};b.toArray=function(a){if(!a)return[];if(a.toArray)return a.toArray();if(b.isArray(a))return a;if(b.isArguments(a))return k.call(a);return b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=function(a,c,d){return c&&!d?k.call(a, +0,c):a[0]};b.rest=function(a,c,d){return k.call(a,b.isUndefined(c)||d?1:c)};b.last=function(a){return a[a.length-1]};b.compact=function(a){return b.select(a,function(c){return!!c})};b.flatten=function(a){return b.reduce(a,[],function(c,d){if(b.isArray(d))return c.concat(b.flatten(d));c.push(d);return c})};b.without=function(a){var c=b.rest(arguments);return b.select(a,function(d){return!b.include(c,d)})};b.uniq=function(a,c){return b.reduce(a,[],function(d,e,f){if(0==f||(c===true?b.last(d)!=e:!b.include(d, +e)))d.push(e);return d})};b.intersect=function(a){var c=b.rest(arguments);return b.select(b.uniq(a),function(d){return b.all(c,function(e){return b.indexOf(e,d)>=0})})};b.zip=function(){for(var a=b.toArray(arguments),c=b.max(b.pluck(a,"length")),d=new Array(c),e=0;e<c;e++)d[e]=b.pluck(a,String(e));return d};b.indexOf=function(a,c){if(a.indexOf)return a.indexOf(c);for(var d=0,e=a.length;d<e;d++)if(a[d]===c)return d;return-1};b.lastIndexOf=function(a,c){if(a.lastIndexOf)return a.lastIndexOf(c);for(var d= +a.length;d--;)if(a[d]===c)return d;return-1};b.range=function(a,c,d){var e=b.toArray(arguments),f=e.length<=1;a=f?0:e[0];c=f?e[0]:e[1];d=e[2]||1;e=Math.ceil((c-a)/d);if(e<=0)return[];e=new Array(e);f=a;for(var g=0;1;f+=d){if((d>0?f-c:c-f)>=0)return e;e[g++]=f}};b.bind=function(a,c){var d=b.rest(arguments,2);return function(){return a.apply(c||j,d.concat(b.toArray(arguments)))}};b.bindAll=function(a){var c=b.rest(arguments);if(c.length==0)c=b.functions(a);b.each(c,function(d){a[d]=b.bind(a[d],a)}); +return a};b.delay=function(a,c){var d=b.rest(arguments,2);return setTimeout(function(){return a.apply(a,d)},c)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(b.rest(arguments)))};b.wrap=function(a,c){return function(){var d=[a].concat(b.toArray(arguments));return c.apply(c,d)}};b.compose=function(){var a=b.toArray(arguments);return function(){for(var c=b.toArray(arguments),d=a.length-1;d>=0;d--)c=[a[d].apply(this,c)];return c[0]}};b.keys=function(a){if(b.isArray(a))return b.range(0,a.length); +var c=[];for(var d in a)q.call(a,d)&&c.push(d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=function(a){return b.select(b.keys(a),function(c){return b.isFunction(a[c])}).sort()};b.extend=function(a,c){for(var d in c)a[d]=c[d];return a};b.clone=function(a){if(b.isArray(a))return a.slice(0);return b.extend({},a)};b.tap=function(a,c){c(a);return a};b.isEqual=function(a,c){if(a===c)return true;var d=typeof a;if(d!=typeof c)return false;if(a==c)return true;if(!a&&c||a&&!c)return false; +if(a.isEqual)return a.isEqual(c);if(b.isDate(a)&&b.isDate(c))return a.getTime()===c.getTime();if(b.isNaN(a)&&b.isNaN(c))return true;if(b.isRegExp(a)&&b.isRegExp(c))return a.source===c.source&&a.global===c.global&&a.ignoreCase===c.ignoreCase&&a.multiline===c.multiline;if(d!=="object")return false;if(a.length&&a.length!==c.length)return false;d=b.keys(a);var e=b.keys(c);if(d.length!=e.length)return false;for(var f in a)if(!b.isEqual(a[f],c[f]))return false;return true};b.isEmpty=function(a){return b.keys(a).length== +0};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=function(a){return!!(a&&a.concat&&a.unshift)};b.isArguments=function(a){return a&&b.isNumber(a.length)&&!b.isArray(a)&&!r.call(a,"length")};b.isFunction=function(a){return!!(a&&a.constructor&&a.call&&a.apply)};b.isString=function(a){return!!(a===""||a&&a.charCodeAt&&a.substr)};b.isNumber=function(a){return p.call(a)==="[object Number]"};b.isDate=function(a){return!!(a&&a.getTimezoneOffset&&a.setUTCFullYear)};b.isRegExp=function(a){return!!(a&& +a.test&&a.exec&&(a.ignoreCase||a.ignoreCase===false))};b.isNaN=function(a){return b.isNumber(a)&&isNaN(a)};b.isNull=function(a){return a===null};b.isUndefined=function(a){return typeof a=="undefined"};b.noConflict=function(){j._=n;return this};b.identity=function(a){return a};b.breakLoop=function(){throw m;};var s=0;b.uniqueId=function(a){var c=s++;return a?a+c:c};b.template=function(a,c){a=new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+a.replace(/[\r\t\n]/g, +" ").replace(/'(?=[^%]*%>)/g,"\t").split("'").join("\\'").split("\t").join("'").replace(/<%=(.+?)%>/g,"',$1,'").split("<%").join("');").split("%>").join("p.push('")+"');}return p.join('');");return c?a(c):a};b.forEach=b.each;b.foldl=b.inject=b.reduce;b.foldr=b.reduceRight;b.filter=b.select;b.every=b.all;b.some=b.any;b.head=b.first;b.tail=b.rest;b.methods=b.functions;var l=function(a,c){return c?b(a).chain():a};b.each(b.functions(b),function(a){var c=b[a];i.prototype[a]=function(){var d=b.toArray(arguments); +o.call(d,this._wrapped);return l(c.apply(b,d),this._chain)}});b.each(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var c=Array.prototype[a];i.prototype[a]=function(){c.apply(this._wrapped,arguments);return l(this._wrapped,this._chain)}});b.each(["concat","join","slice"],function(a){var c=Array.prototype[a];i.prototype[a]=function(){return l(c.apply(this._wrapped,arguments),this._chain)}});i.prototype.chain=function(){this._chain=true;return this};i.prototype.value=function(){return this._wrapped}})(); diff --git a/docs/_build/html/_static/up-pressed.png b/docs/_build/html/_static/up-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..8bd587afee2fe38989383ff82010147ea56b93dd GIT binary patch literal 372 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*yM+OLB!qm#z$3ZNi+iKnkC`z>}Z1|5lxjZvvUp)Z~;jv*GO&raT- z#pEb(tbY1#Ey4dH;Y+=<pEBRLsjGAOCY!v|CyvUA4wrPfZ{O_DPe^{q91)qJXqI&@ zO~JiL+CN7oqU^@cvS+{3Bz9yAOB-!e{LTNlK+)ab|H>wAPPMA->(Ug=YM6W%tgKtA zI`O=0Laf#Y-Y4f~`^K_)D_mvj{B=4?=t!I41ZLNlI~j_4kE*^nvF$)|>mH^X%(>6c z8XimFvvIAOoRJf!>6jzIa5w(S%7lxdZ{*qJxhxpj6S#UB!oTuMX^Z^6%)IfT_v-!3 z=PEaM_iSh6_`s$!$NaEMP6gw<x#pX-zc1lmBOrZAdYY~+^N*K~{#DY`%7Ol8@O1Ta JS?83{1OR?3hMxcc literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/up.png b/docs/_build/html/_static/up.png new file mode 100644 index 0000000000000000000000000000000000000000..b94625680b4a4b9647c3a6f3f283776930696aa9 GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*yM+OLB!qm#z$3ZNi+iKnkC`z>}xaYa3wv(2tRq1T=+jv*GO&raUx z$K)u`w*Tuor>1}ySNCesuPuG-8#b%jw0sn-5fpk^!623V@1GR6+<`78?&Rhov&jx6 z*R7KttIVGJ=8yH~|HhI(uB&NIpYp$LXT}M`Z<Dv|Q9O9-{p!t<9#srg4(I=_Xg%_r zaf7X90Rxxu?X9UB7>)D=?%dxpN#UiKM#HZsJK4DUm#Y3a5!dMF634rTxz_l%hvABb z(=Pc<$5*Xj@eE$@$89c0_oa>Y5;`&;INvn7C-9xQbH92`*_(~*lcvS}m5Z2pGdgKc z>;tJC%=6B^QS*>ubT+QGD)v`9z&&Y`y-xHu*7vDC$|9@xfdY)d)78&qol`;+01iQm A<^TWy literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/websupport.js b/docs/_build/html/_static/websupport.js new file mode 100644 index 00000000..e9bd1b85 --- /dev/null +++ b/docs/_build/html/_static/websupport.js @@ -0,0 +1,808 @@ +/* + * websupport.js + * ~~~~~~~~~~~~~ + * + * sphinx.websupport utilties for all documentation. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +(function($) { + $.fn.autogrow = function() { + return this.each(function() { + var textarea = this; + + $.fn.autogrow.resize(textarea); + + $(textarea) + .focus(function() { + textarea.interval = setInterval(function() { + $.fn.autogrow.resize(textarea); + }, 500); + }) + .blur(function() { + clearInterval(textarea.interval); + }); + }); + }; + + $.fn.autogrow.resize = function(textarea) { + var lineHeight = parseInt($(textarea).css('line-height'), 10); + var lines = textarea.value.split('\n'); + var columns = textarea.cols; + var lineCount = 0; + $.each(lines, function() { + lineCount += Math.ceil(this.length / columns) || 1; + }); + var height = lineHeight * (lineCount + 1); + $(textarea).css('height', height); + }; +})(jQuery); + +(function($) { + var comp, by; + + function init() { + initEvents(); + initComparator(); + } + + function initEvents() { + $('a.comment-close').live("click", function(event) { + event.preventDefault(); + hide($(this).attr('id').substring(2)); + }); + $('a.vote').live("click", function(event) { + event.preventDefault(); + handleVote($(this)); + }); + $('a.reply').live("click", function(event) { + event.preventDefault(); + openReply($(this).attr('id').substring(2)); + }); + $('a.close-reply').live("click", function(event) { + event.preventDefault(); + closeReply($(this).attr('id').substring(2)); + }); + $('a.sort-option').live("click", function(event) { + event.preventDefault(); + handleReSort($(this)); + }); + $('a.show-proposal').live("click", function(event) { + event.preventDefault(); + showProposal($(this).attr('id').substring(2)); + }); + $('a.hide-proposal').live("click", function(event) { + event.preventDefault(); + hideProposal($(this).attr('id').substring(2)); + }); + $('a.show-propose-change').live("click", function(event) { + event.preventDefault(); + showProposeChange($(this).attr('id').substring(2)); + }); + $('a.hide-propose-change').live("click", function(event) { + event.preventDefault(); + hideProposeChange($(this).attr('id').substring(2)); + }); + $('a.accept-comment').live("click", function(event) { + event.preventDefault(); + acceptComment($(this).attr('id').substring(2)); + }); + $('a.delete-comment').live("click", function(event) { + event.preventDefault(); + deleteComment($(this).attr('id').substring(2)); + }); + $('a.comment-markup').live("click", function(event) { + event.preventDefault(); + toggleCommentMarkupBox($(this).attr('id').substring(2)); + }); + } + + /** + * Set comp, which is a comparator function used for sorting and + * inserting comments into the list. + */ + function setComparator() { + // If the first three letters are "asc", sort in ascending order + // and remove the prefix. + if (by.substring(0,3) == 'asc') { + var i = by.substring(3); + comp = function(a, b) { return a[i] - b[i]; }; + } else { + // Otherwise sort in descending order. + comp = function(a, b) { return b[by] - a[by]; }; + } + + // Reset link styles and format the selected sort option. + $('a.sel').attr('href', '#').removeClass('sel'); + $('a.by' + by).removeAttr('href').addClass('sel'); + } + + /** + * Create a comp function. If the user has preferences stored in + * the sortBy cookie, use those, otherwise use the default. + */ + function initComparator() { + by = 'rating'; // Default to sort by rating. + // If the sortBy cookie is set, use that instead. + if (document.cookie.length > 0) { + var start = document.cookie.indexOf('sortBy='); + if (start != -1) { + start = start + 7; + var end = document.cookie.indexOf(";", start); + if (end == -1) { + end = document.cookie.length; + by = unescape(document.cookie.substring(start, end)); + } + } + } + setComparator(); + } + + /** + * Show a comment div. + */ + function show(id) { + $('#ao' + id).hide(); + $('#ah' + id).show(); + var context = $.extend({id: id}, opts); + var popup = $(renderTemplate(popupTemplate, context)).hide(); + popup.find('textarea[name="proposal"]').hide(); + popup.find('a.by' + by).addClass('sel'); + var form = popup.find('#cf' + id); + form.submit(function(event) { + event.preventDefault(); + addComment(form); + }); + $('#s' + id).after(popup); + popup.slideDown('fast', function() { + getComments(id); + }); + } + + /** + * Hide a comment div. + */ + function hide(id) { + $('#ah' + id).hide(); + $('#ao' + id).show(); + var div = $('#sc' + id); + div.slideUp('fast', function() { + div.remove(); + }); + } + + /** + * Perform an ajax request to get comments for a node + * and insert the comments into the comments tree. + */ + function getComments(id) { + $.ajax({ + type: 'GET', + url: opts.getCommentsURL, + data: {node: id}, + success: function(data, textStatus, request) { + var ul = $('#cl' + id); + var speed = 100; + $('#cf' + id) + .find('textarea[name="proposal"]') + .data('source', data.source); + + if (data.comments.length === 0) { + ul.html('<li>No comments yet.</li>'); + ul.data('empty', true); + } else { + // If there are comments, sort them and put them in the list. + var comments = sortComments(data.comments); + speed = data.comments.length * 100; + appendComments(comments, ul); + ul.data('empty', false); + } + $('#cn' + id).slideUp(speed + 200); + ul.slideDown(speed); + }, + error: function(request, textStatus, error) { + showError('Oops, there was a problem retrieving the comments.'); + }, + dataType: 'json' + }); + } + + /** + * Add a comment via ajax and insert the comment into the comment tree. + */ + function addComment(form) { + var node_id = form.find('input[name="node"]').val(); + var parent_id = form.find('input[name="parent"]').val(); + var text = form.find('textarea[name="comment"]').val(); + var proposal = form.find('textarea[name="proposal"]').val(); + + if (text == '') { + showError('Please enter a comment.'); + return; + } + + // Disable the form that is being submitted. + form.find('textarea,input').attr('disabled', 'disabled'); + + // Send the comment to the server. + $.ajax({ + type: "POST", + url: opts.addCommentURL, + dataType: 'json', + data: { + node: node_id, + parent: parent_id, + text: text, + proposal: proposal + }, + success: function(data, textStatus, error) { + // Reset the form. + if (node_id) { + hideProposeChange(node_id); + } + form.find('textarea') + .val('') + .add(form.find('input')) + .removeAttr('disabled'); + var ul = $('#cl' + (node_id || parent_id)); + if (ul.data('empty')) { + $(ul).empty(); + ul.data('empty', false); + } + insertComment(data.comment); + var ao = $('#ao' + node_id); + ao.find('img').attr({'src': opts.commentBrightImage}); + if (node_id) { + // if this was a "root" comment, remove the commenting box + // (the user can get it back by reopening the comment popup) + $('#ca' + node_id).slideUp(); + } + }, + error: function(request, textStatus, error) { + form.find('textarea,input').removeAttr('disabled'); + showError('Oops, there was a problem adding the comment.'); + } + }); + } + + /** + * Recursively append comments to the main comment list and children + * lists, creating the comment tree. + */ + function appendComments(comments, ul) { + $.each(comments, function() { + var div = createCommentDiv(this); + ul.append($(document.createElement('li')).html(div)); + appendComments(this.children, div.find('ul.comment-children')); + // To avoid stagnating data, don't store the comments children in data. + this.children = null; + div.data('comment', this); + }); + } + + /** + * After adding a new comment, it must be inserted in the correct + * location in the comment tree. + */ + function insertComment(comment) { + var div = createCommentDiv(comment); + + // To avoid stagnating data, don't store the comments children in data. + comment.children = null; + div.data('comment', comment); + + var ul = $('#cl' + (comment.node || comment.parent)); + var siblings = getChildren(ul); + + var li = $(document.createElement('li')); + li.hide(); + + // Determine where in the parents children list to insert this comment. + for(i=0; i < siblings.length; i++) { + if (comp(comment, siblings[i]) <= 0) { + $('#cd' + siblings[i].id) + .parent() + .before(li.html(div)); + li.slideDown('fast'); + return; + } + } + + // If we get here, this comment rates lower than all the others, + // or it is the only comment in the list. + ul.append(li.html(div)); + li.slideDown('fast'); + } + + function acceptComment(id) { + $.ajax({ + type: 'POST', + url: opts.acceptCommentURL, + data: {id: id}, + success: function(data, textStatus, request) { + $('#cm' + id).fadeOut('fast'); + $('#cd' + id).removeClass('moderate'); + }, + error: function(request, textStatus, error) { + showError('Oops, there was a problem accepting the comment.'); + } + }); + } + + function deleteComment(id) { + $.ajax({ + type: 'POST', + url: opts.deleteCommentURL, + data: {id: id}, + success: function(data, textStatus, request) { + var div = $('#cd' + id); + if (data == 'delete') { + // Moderator mode: remove the comment and all children immediately + div.slideUp('fast', function() { + div.remove(); + }); + return; + } + // User mode: only mark the comment as deleted + div + .find('span.user-id:first') + .text('[deleted]').end() + .find('div.comment-text:first') + .text('[deleted]').end() + .find('#cm' + id + ', #dc' + id + ', #ac' + id + ', #rc' + id + + ', #sp' + id + ', #hp' + id + ', #cr' + id + ', #rl' + id) + .remove(); + var comment = div.data('comment'); + comment.username = '[deleted]'; + comment.text = '[deleted]'; + div.data('comment', comment); + }, + error: function(request, textStatus, error) { + showError('Oops, there was a problem deleting the comment.'); + } + }); + } + + function showProposal(id) { + $('#sp' + id).hide(); + $('#hp' + id).show(); + $('#pr' + id).slideDown('fast'); + } + + function hideProposal(id) { + $('#hp' + id).hide(); + $('#sp' + id).show(); + $('#pr' + id).slideUp('fast'); + } + + function showProposeChange(id) { + $('#pc' + id).hide(); + $('#hc' + id).show(); + var textarea = $('#pt' + id); + textarea.val(textarea.data('source')); + $.fn.autogrow.resize(textarea[0]); + textarea.slideDown('fast'); + } + + function hideProposeChange(id) { + $('#hc' + id).hide(); + $('#pc' + id).show(); + var textarea = $('#pt' + id); + textarea.val('').removeAttr('disabled'); + textarea.slideUp('fast'); + } + + function toggleCommentMarkupBox(id) { + $('#mb' + id).toggle(); + } + + /** Handle when the user clicks on a sort by link. */ + function handleReSort(link) { + var classes = link.attr('class').split(/\s+/); + for (var i=0; i<classes.length; i++) { + if (classes[i] != 'sort-option') { + by = classes[i].substring(2); + } + } + setComparator(); + // Save/update the sortBy cookie. + var expiration = new Date(); + expiration.setDate(expiration.getDate() + 365); + document.cookie= 'sortBy=' + escape(by) + + ';expires=' + expiration.toUTCString(); + $('ul.comment-ul').each(function(index, ul) { + var comments = getChildren($(ul), true); + comments = sortComments(comments); + appendComments(comments, $(ul).empty()); + }); + } + + /** + * Function to process a vote when a user clicks an arrow. + */ + function handleVote(link) { + if (!opts.voting) { + showError("You'll need to login to vote."); + return; + } + + var id = link.attr('id'); + if (!id) { + // Didn't click on one of the voting arrows. + return; + } + // If it is an unvote, the new vote value is 0, + // Otherwise it's 1 for an upvote, or -1 for a downvote. + var value = 0; + if (id.charAt(1) != 'u') { + value = id.charAt(0) == 'u' ? 1 : -1; + } + // The data to be sent to the server. + var d = { + comment_id: id.substring(2), + value: value + }; + + // Swap the vote and unvote links. + link.hide(); + $('#' + id.charAt(0) + (id.charAt(1) == 'u' ? 'v' : 'u') + d.comment_id) + .show(); + + // The div the comment is displayed in. + var div = $('div#cd' + d.comment_id); + var data = div.data('comment'); + + // If this is not an unvote, and the other vote arrow has + // already been pressed, unpress it. + if ((d.value !== 0) && (data.vote === d.value * -1)) { + $('#' + (d.value == 1 ? 'd' : 'u') + 'u' + d.comment_id).hide(); + $('#' + (d.value == 1 ? 'd' : 'u') + 'v' + d.comment_id).show(); + } + + // Update the comments rating in the local data. + data.rating += (data.vote === 0) ? d.value : (d.value - data.vote); + data.vote = d.value; + div.data('comment', data); + + // Change the rating text. + div.find('.rating:first') + .text(data.rating + ' point' + (data.rating == 1 ? '' : 's')); + + // Send the vote information to the server. + $.ajax({ + type: "POST", + url: opts.processVoteURL, + data: d, + error: function(request, textStatus, error) { + showError('Oops, there was a problem casting that vote.'); + } + }); + } + + /** + * Open a reply form used to reply to an existing comment. + */ + function openReply(id) { + // Swap out the reply link for the hide link + $('#rl' + id).hide(); + $('#cr' + id).show(); + + // Add the reply li to the children ul. + var div = $(renderTemplate(replyTemplate, {id: id})).hide(); + $('#cl' + id) + .prepend(div) + // Setup the submit handler for the reply form. + .find('#rf' + id) + .submit(function(event) { + event.preventDefault(); + addComment($('#rf' + id)); + closeReply(id); + }) + .find('input[type=button]') + .click(function() { + closeReply(id); + }); + div.slideDown('fast', function() { + $('#rf' + id).find('textarea').focus(); + }); + } + + /** + * Close the reply form opened with openReply. + */ + function closeReply(id) { + // Remove the reply div from the DOM. + $('#rd' + id).slideUp('fast', function() { + $(this).remove(); + }); + + // Swap out the hide link for the reply link + $('#cr' + id).hide(); + $('#rl' + id).show(); + } + + /** + * Recursively sort a tree of comments using the comp comparator. + */ + function sortComments(comments) { + comments.sort(comp); + $.each(comments, function() { + this.children = sortComments(this.children); + }); + return comments; + } + + /** + * Get the children comments from a ul. If recursive is true, + * recursively include childrens' children. + */ + function getChildren(ul, recursive) { + var children = []; + ul.children().children("[id^='cd']") + .each(function() { + var comment = $(this).data('comment'); + if (recursive) + comment.children = getChildren($(this).find('#cl' + comment.id), true); + children.push(comment); + }); + return children; + } + + /** Create a div to display a comment in. */ + function createCommentDiv(comment) { + if (!comment.displayed && !opts.moderator) { + return $('<div class="moderate">Thank you! Your comment will show up ' + + 'once it is has been approved by a moderator.</div>'); + } + // Prettify the comment rating. + comment.pretty_rating = comment.rating + ' point' + + (comment.rating == 1 ? '' : 's'); + // Make a class (for displaying not yet moderated comments differently) + comment.css_class = comment.displayed ? '' : ' moderate'; + // Create a div for this comment. + var context = $.extend({}, opts, comment); + var div = $(renderTemplate(commentTemplate, context)); + + // If the user has voted on this comment, highlight the correct arrow. + if (comment.vote) { + var direction = (comment.vote == 1) ? 'u' : 'd'; + div.find('#' + direction + 'v' + comment.id).hide(); + div.find('#' + direction + 'u' + comment.id).show(); + } + + if (opts.moderator || comment.text != '[deleted]') { + div.find('a.reply').show(); + if (comment.proposal_diff) + div.find('#sp' + comment.id).show(); + if (opts.moderator && !comment.displayed) + div.find('#cm' + comment.id).show(); + if (opts.moderator || (opts.username == comment.username)) + div.find('#dc' + comment.id).show(); + } + return div; + } + + /** + * A simple template renderer. Placeholders such as <%id%> are replaced + * by context['id'] with items being escaped. Placeholders such as <#id#> + * are not escaped. + */ + function renderTemplate(template, context) { + var esc = $(document.createElement('div')); + + function handle(ph, escape) { + var cur = context; + $.each(ph.split('.'), function() { + cur = cur[this]; + }); + return escape ? esc.text(cur || "").html() : cur; + } + + return template.replace(/<([%#])([\w\.]*)\1>/g, function() { + return handle(arguments[2], arguments[1] == '%' ? true : false); + }); + } + + /** Flash an error message briefly. */ + function showError(message) { + $(document.createElement('div')).attr({'class': 'popup-error'}) + .append($(document.createElement('div')) + .attr({'class': 'error-message'}).text(message)) + .appendTo('body') + .fadeIn("slow") + .delay(2000) + .fadeOut("slow"); + } + + /** Add a link the user uses to open the comments popup. */ + $.fn.comment = function() { + return this.each(function() { + var id = $(this).attr('id').substring(1); + var count = COMMENT_METADATA[id]; + var title = count + ' comment' + (count == 1 ? '' : 's'); + var image = count > 0 ? opts.commentBrightImage : opts.commentImage; + var addcls = count == 0 ? ' nocomment' : ''; + $(this) + .append( + $(document.createElement('a')).attr({ + href: '#', + 'class': 'sphinx-comment-open' + addcls, + id: 'ao' + id + }) + .append($(document.createElement('img')).attr({ + src: image, + alt: 'comment', + title: title + })) + .click(function(event) { + event.preventDefault(); + show($(this).attr('id').substring(2)); + }) + ) + .append( + $(document.createElement('a')).attr({ + href: '#', + 'class': 'sphinx-comment-close hidden', + id: 'ah' + id + }) + .append($(document.createElement('img')).attr({ + src: opts.closeCommentImage, + alt: 'close', + title: 'close' + })) + .click(function(event) { + event.preventDefault(); + hide($(this).attr('id').substring(2)); + }) + ); + }); + }; + + var opts = { + processVoteURL: '/_process_vote', + addCommentURL: '/_add_comment', + getCommentsURL: '/_get_comments', + acceptCommentURL: '/_accept_comment', + deleteCommentURL: '/_delete_comment', + commentImage: '/static/_static/comment.png', + closeCommentImage: '/static/_static/comment-close.png', + loadingImage: '/static/_static/ajax-loader.gif', + commentBrightImage: '/static/_static/comment-bright.png', + upArrow: '/static/_static/up.png', + downArrow: '/static/_static/down.png', + upArrowPressed: '/static/_static/up-pressed.png', + downArrowPressed: '/static/_static/down-pressed.png', + voting: false, + moderator: false + }; + + if (typeof COMMENT_OPTIONS != "undefined") { + opts = jQuery.extend(opts, COMMENT_OPTIONS); + } + + var popupTemplate = '\ + <div class="sphinx-comments" id="sc<%id%>">\ + <p class="sort-options">\ + Sort by:\ + <a href="#" class="sort-option byrating">best rated</a>\ + <a href="#" class="sort-option byascage">newest</a>\ + <a href="#" class="sort-option byage">oldest</a>\ + </p>\ + <div class="comment-header">Comments</div>\ + <div class="comment-loading" id="cn<%id%>">\ + loading comments... <img src="<%loadingImage%>" alt="" /></div>\ + <ul id="cl<%id%>" class="comment-ul"></ul>\ + <div id="ca<%id%>">\ + <p class="add-a-comment">Add a comment\ + (<a href="#" class="comment-markup" id="ab<%id%>">markup</a>):</p>\ + <div class="comment-markup-box" id="mb<%id%>">\ + reStructured text markup: <i>*emph*</i>, <b>**strong**</b>, \ + <tt>``code``</tt>, \ + code blocks: <tt>::</tt> and an indented block after blank line</div>\ + <form method="post" id="cf<%id%>" class="comment-form" action="">\ + <textarea name="comment" cols="80"></textarea>\ + <p class="propose-button">\ + <a href="#" id="pc<%id%>" class="show-propose-change">\ + Propose a change ▹\ + </a>\ + <a href="#" id="hc<%id%>" class="hide-propose-change">\ + Propose a change ▿\ + </a>\ + </p>\ + <textarea name="proposal" id="pt<%id%>" cols="80"\ + spellcheck="false"></textarea>\ + <input type="submit" value="Add comment" />\ + <input type="hidden" name="node" value="<%id%>" />\ + <input type="hidden" name="parent" value="" />\ + </form>\ + </div>\ + </div>'; + + var commentTemplate = '\ + <div id="cd<%id%>" class="sphinx-comment<%css_class%>">\ + <div class="vote">\ + <div class="arrow">\ + <a href="#" id="uv<%id%>" class="vote" title="vote up">\ + <img src="<%upArrow%>" />\ + </a>\ + <a href="#" id="uu<%id%>" class="un vote" title="vote up">\ + <img src="<%upArrowPressed%>" />\ + </a>\ + </div>\ + <div class="arrow">\ + <a href="#" id="dv<%id%>" class="vote" title="vote down">\ + <img src="<%downArrow%>" id="da<%id%>" />\ + </a>\ + <a href="#" id="du<%id%>" class="un vote" title="vote down">\ + <img src="<%downArrowPressed%>" />\ + </a>\ + </div>\ + </div>\ + <div class="comment-content">\ + <p class="tagline comment">\ + <span class="user-id"><%username%></span>\ + <span class="rating"><%pretty_rating%></span>\ + <span class="delta"><%time.delta%></span>\ + </p>\ + <div class="comment-text comment"><#text#></div>\ + <p class="comment-opts comment">\ + <a href="#" class="reply hidden" id="rl<%id%>">reply ▹</a>\ + <a href="#" class="close-reply" id="cr<%id%>">reply ▿</a>\ + <a href="#" id="sp<%id%>" class="show-proposal">proposal ▹</a>\ + <a href="#" id="hp<%id%>" class="hide-proposal">proposal ▿</a>\ + <a href="#" id="dc<%id%>" class="delete-comment hidden">delete</a>\ + <span id="cm<%id%>" class="moderation hidden">\ + <a href="#" id="ac<%id%>" class="accept-comment">accept</a>\ + </span>\ + </p>\ + <pre class="proposal" id="pr<%id%>">\ +<#proposal_diff#>\ + </pre>\ + <ul class="comment-children" id="cl<%id%>"></ul>\ + </div>\ + <div class="clearleft"></div>\ + </div>\ + </div>'; + + var replyTemplate = '\ + <li>\ + <div class="reply-div" id="rd<%id%>">\ + <form id="rf<%id%>">\ + <textarea name="comment" cols="80"></textarea>\ + <input type="submit" value="Add reply" />\ + <input type="button" value="Cancel" />\ + <input type="hidden" name="parent" value="<%id%>" />\ + <input type="hidden" name="node" value="" />\ + </form>\ + </div>\ + </li>'; + + $(document).ready(function() { + init(); + }); +})(jQuery); + +$(document).ready(function() { + // add comment anchors for all paragraphs that are commentable + $('.sphinx-has-comment').comment(); + + // highlight search words in search results + $("div.context").each(function() { + var params = $.getQueryParameters(); + var terms = (params.q) ? params.q[0].split(/\s+/) : []; + var result = $(this); + $.each(terms, function() { + result.highlightText(this.toLowerCase(), 'highlighted'); + }); + }); + + // directly open comment window if requested + var anchor = document.location.hash; + if (anchor.substring(0, 9) == '#comment-') { + $('#ao' + anchor.substring(9)).click(); + document.location.hash = '#s' + anchor.substring(9); + } +}); diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..f31ecc12cc0f481582c27d23b772de7f01fe64c5 GIT binary patch literal 207 zcmY#Z2rkIT%&Sny%qvUHE6FdaR47X=D$dN$Q!wIERtPA{&q_@$u~JA%O)1IG&nX6q zg+b)46pZu?&GbO3LNZbnic)hEGxJhXixl$H6iPBOixtu`b5a$6baH-fK~ZXPacYV} zX>n#=x<XY>W|AIP#jVq4{ZF3p_FNmFq35~rl&6o^*}w~?AsQ>LoNe`bkviqcGY#z@ z&z4VlwnVF<sb$Bd;LjT}nmV0I9j1saR})iBU!c{};W(AmS%gJp+43SrhWpP9B?0uH BQJw$* literal 0 HcmV?d00001 diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js new file mode 100644 index 00000000..51d314aa --- /dev/null +++ b/docs/_build/html/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({objects:{},terms:{genome_gap:8,represent:[27,23],all:[18,7,8,21,24,30,10,11,2,9,3,23,1,15,25,26,27,5,17,19],code:[27,1,11],breadth:[9,11],illustr:[23,24,31],scratch:11,signific:[26,10],unblock:23,per:[29,9,7,19,11],edu:[27,30,7,11],follow:[30,7,12,1,11,29,9,14,24,4,27,19],alu:[2,21,8],alr:[23,5],ctttgggagggctttgtagcctatctggaaaaaggaaatatcttcccatg:24,compact:23,content:[6,20,11],privat:2,tagcg:12,depend:11,gff:[18,30,31,0,24,12,10,11,29,26,9,23,3,15,25,4,27,16,28],iii:27,intron:[9,7,24,8],slopb:[0,2,20,27,11],greather:7,descript:[0,24,29,3,4,5,7,9,10,11,12,13,14,15,16,17,18,19,22,23,25,26,27,30,31],tail:[13,7],concret:20,fastafromb:[20,12,11],under:11,sens:11,spec:27,introduc:11,"case":[18,20,30,3,5,9,13,14,24,31,23,16,11],sourc:[27,1,11],aaaaaaaaccccccccccccgctactgggggggggggggggggg:3,string:[21,11,23,31,27,17],downstream:[2,16,8,11],without:[18,24,11,29,9,22,31,16],far:24,faq:[27,11],account:27,mous:[27,30,11],faqformat:27,novel:[2,11],mechan:[24,31],upstream:[16,8],join:11,assaf:[7,11],exact:22,relev:[27,15],strand:[18,2,7,8,0,31,12,10,11,29,9,22,24,15,25,26,27,16,17],tri:26,cons1:29,cons2:29,cons3:29,administr:1,complic:11,list:[6,19,21,5,29,9,14,25,26,27,11],"21t14g13":31,previou:11,adjust:11,larg:[30,23,11],sine:[21,8],aaaaannnnnccccccccccgctactgggggggggggggggggg:3,quick:[6,21],bed6:[27,13,17,11],path:15,refer:[2,6,1,11],bedgraph:[8,7,19,11],pleas:[7,11],prevent:[26,27,8],impli:27,work:[27,5,24,11],snapshotdirectori:15,othersampl:2,ten:11,speci:[27,11],rs645678:11,"0x2":[2,17],"500bp":2,among:[26,9,22,11],direct:0,maintain:11,known2:29,zero:[19,11,9,27,17,7],design:11,bed12:[7,24,11,9,13,23,27,17],pass:[7,24,11,9,22,31,27,16],download:[1,11],further:[2,22,11],append:[24,17],slop:[0,15],even:[31,24,11],index:[23,11],what:[29,31,5,24,11],xor:31,appear:2,compar:[19,24,11,29,9,22,31,27,16],filler:19,neg:[0,16,14,11],section:[18,20,7,21,10,11,9,24,25,27,16],brief:6,unsort:24,current:[27,10,11],delet:[2,27,17],version:[27,21,15,1,11],indel:[27,11],intersect:[24,11],"new":[27,12,25,11],net:27,method:[14,17,31],contrast:[16,24,11],redirect:11,full:[15,11],led:11,chose:[27,11],variat:[27,22,11],gener:[26,6,27,17,11],error:26,genet:[27,5,11],decid:11,here:[10,11],disclaim:4,explicitli:[27,5],let:[14,5],splice:[7,24,11,9,23,17],address:27,genea:[29,10],coincid:29,genec:29,modifi:27,sinc:31,interpret:[27,11],unionbedgraph:[20,19,11],either:[8,0,1,11,22,31,27,17],convert:[8,3,11,13,23,24,31,17],produc:26,convers:3,conceiv:27,technolog:11,"6a6t3":24,prior:15,amount:[14,11],behav:[18,25,10,31,26,16],"_all_":9,dcecfeeza:31,typic:[7,21,24,11,9,1,27],gene:[2,8,21,30,10,11,29,9,13,23,24,31,16],commonli:1,promot:16,intern:11,via:[27,11],notbothssr:8,"489m":23,extra:[27,25,10,11],curat:11,appli:[7,15,5],dcdabdfw:24,opcol:5,filenam:15,unix:[7,1,11,9,22,24,31,4,27,16,17],api:11,subtractb:[18,20,8,11],instal:[6,30,21,1,11],total:[7,17,31],establish:27,blockend:[9,7],"1000genom":27,notispan:[2,31],fee:31,from:[0,24,2,3,5,7,8,9,10,11,12,14,15,17,18,21,22,23,25,26,27,29,30,31],describ:[7,21,24,11,29,9,27,19],would:[24,11,13,10,15,31,27,16,28],memori:[4,11],distinct:[24,9,7,17,11],doubl:27,visit:[7,11],two:[31,21,24,11,22,10,25,27,17],coverag:[2,7,8,11,29,9,27,19],next:11,websit:[27,11],few:[27,11],chr:[29,15],doubt:1,call:[2,27,11],usr:[21,1],criteria:[4,24,31],taken:[27,15],pctcov:8,repres:[19,24,11,27,17,7],type:[2,8,11,29,22,15,31,27],exampl:[0,24,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,22,23,25,26,27,28,20,30,31],more:[20,8,24,11,9,10,25,4,27],sort:[7,5,15,31,4,11,17],aaaaaaaacccccccccccccgctactgggggggggggggggggg:[12,3],sudo:[21,1],itemrgb:27,comparison:[27,11],detail:[18,7,10,9,15,25,27,16,19],claus:5,e_valu:27,toolkit:11,multibamcov:11,flag:17,exce:0,accept:11,particular:27,known:[26,24],excl:[26,8],given:[31,7,17,5],effort:[20,11],must:[3,5,12,14,15,25,27,11],none:24,word:[16,24,11],notin2:8,monolith:11,local:[30,21,1,11],ubam:[16,31,23,24,11],bedtoigv:[20,15,11],annot:[24,3,5,29,30,23,10,27,16,11,28],cumbersom:11,cat:[18,7,0,24,12,10,11,29,26,9,3,25,4,16,5,28,19],other:[31,19,24,10,5,29,22,14,1,25,4,27,16,11,17],remain:18,minimum:[18,22,24,17,31],nine:27,can:[30,19,24,12,3,5,2,9,10,25,26,27,16,11,17],tabul:9,meet:[18,24,31],purpos:[20,23,17],root:[1,11],scatter:11,problemat:26,control:[7,31,24,11,10,25,27],tab:[27,9,5,12,11],tar:[21,1],scan:[18,16,10,25],predict:27,dcgggggfbgfgdgggggggfdfgggcggggfcggcggggggagfgbggc:31,loci:[26,15,11],share:[24,11],backslash:27,indic:[27,23,24,11],tag:[27,31,17,11],want:[7,30,10,5,24,9,14,1,31,26,27,16,11],dbsnp:2,faqtrack:11,concept:11,gcc:1,shuffleb:[26,20,8,11],multipl:[19,24,11,29,31,27,17],newlin:27,manipul:11,quot:27,cse:11,anoth:[21,24,5,25,26,11],six:[27,13],length:[9,11],chrx:[27,31,24,17,11],write:[24,11,23,31,27,16,17],how:[31,24,11,10,25,27],need:[27,11],mapq:23,reject:11,answer:11,instead:[27,12,16,24],chrm:[27,11],simpl:[7,8],chri:[27,11],collaps:[15,5],map:[23,24,17,31],resourc:27,bedpe_example2:27,bedpe_example1:27,max:[7,5],after:[29,26,9,24],variant:[2,8,5,29,27,11],cbedp:31,lump:7,reflect:12,befor:18,orient:12,snp:[19,8,24,11,2,10,27],mai:[24,11,3,31,26,16,17],end:[2,19,8,0,31,10,11,29,12,22,14,24,25,27,17],ssr:8,data:[8,3,5,2,13,15,27,11],chr7:17,chr6:24,chr5:[27,24,11],chr4:[26,24,31],chr3:[29,26],chr2:[29,26,9,7],chr1:[18,7,8,0,24,12,10,11,29,26,9,14,3,25,4,27,16,28,19],read:[7,8,21,24,11,2,9,15,31,16,17],confus:11,stdin:[7,8,21,24,5,2,9,13,14,31,22,27,16,11,17],correspond:[27,11],chr9:[27,24],exclud:[2,26],caus:[15,11],inform:[24,12,22,31,27,17],segmentaldup:8,combin:[7,31,24,11,2,25,19],frequent:[24,5],allow:[7,8,31,10,11,29,9,24,25,26,27,16,5,17],ensembl:[27,11],exclus:[26,11],region:[7,3,2,15,26,16,19],element:[8,21,11],order:[5,14,25,4,27,11],thickend:27,oper:[7,1,5,9,24,11,17],alignedread:11,help:[7,1,11],file2:[29,19],over:11,thickstart:27,becaus:[27,11],galaxi:[27,11],report:[18,31,7,8,21,12,10,11,29,9,22,14,24,25,27,16,5,17,19],chr11:17,chr10:[24,31],through:[27,30,11],same:[18,8,0,31,10,11,29,9,22,14,24,25,26,16,5,17],chr19:24,flexibl:[27,11],mainli:11,paramet:[20,19,11],style:27,occur:[16,14,10,25],group:[31,5,17,11],thank:11,gtf:11,concis:[27,11],chosen:26,fix:0,jim:11,window:[2,9,8,16,11],flank:[15,11],opposit:[24,10],creat:[30,8,12,3,11,2,9,13,23,24,15,31,27,16,17],mail:[6,11],main:11,assymetr:16,split:[7,24,11,9,13,27,17],non:[27,9,19,10],lastli:17,junction:11,greater:[27,17,11],var3:29,var2:29,handl:[10,11],auto:11,gaatg:5,ggfcgcggffcgggc:31,initi:11,number:[7,8,0,21,1,11,29,9,14,24,15,25,26,27,16,5],segdup:8,tile:9,rs1234:10,exon:[7,8,24,11,2,9,13,27,17],facilit:11,verifi:27,complement:[2,12],studi:[27,5],now:[24,5,14,26,27,11],discuss:[18,20,10,11,25,16],"68n58m2666n109m2885n158m":23,term:[20,22,10],"3677m":23,name:[19,31,24,5,29,12,15,25,27,11,17],edit:[27,31,17,1,8],rmsk:[23,15],revers:[2,12,16],notboth:[31,8],separ:[24,5,2,13,25,27],easili:[17,11],alreadi:15,mode:5,compris:[31,24,17,8],genom:[6,7,8,0,24,30,10,11,2,9,22,23,3,26,27,16,28,19],found:[18,24,11,10,31,16],doku:27,complet:[29,9],mean:[27,23,15,5],compil:1,mwcerec:31,nossr:8,mm9:30,first_bas:11,individu:11,hard:3,idea:11,antimod:5,each:[0,24,2,5,7,8,9,11,12,13,15,16,17,19,20,21,22,26,27,29,30,31],rs446788:11,year:11,our:11,happen:11,extract:[12,7,17,31],event:[10,11],special:11,out:[12,3],merg:[25,8,21,11],ftp:11,shown:24,closest:[18,8,21,10,11],vcf:[18,30,31,0,24,12,10,11,29,26,9,23,3,15,25,4,27,16,28],space:11,start2:[27,14,31],open:[30,15,11],newli:[3,25],start1:[27,14,31],research:11,profil:11,bamtool:11,mate:[24,17,31],kent:11,print:[19,8,0,5,29,27],size:[7,0,11,26,9,4,27,16,17,19],correct:[31,17,11],statist:5,cigar:[7,24,11,9,23,31,17],"goto":15,exon3:27,advanc:[2,6,11],spot:26,million:11,differ:[3,5,9,10,1,26,27,16],free:27,standard:[24,5,31,27,11,17],asc:4,cut:8,reason:11,base:[31,7,8,0,21,24,30,10,11,2,9,14,3,15,25,26,27,16,5,17],variantstorepeat:5,lab:11,ospan:31,ibam:7,ask:[29,5,24,11],org:[27,30,15,11],dna:[27,11],featur:[0,24,2,3,4,7,8,9,10,11,12,13,14,15,16,17,18,21,22,23,25,26,27,28,29,30,31],basi:26,diagram:24,your:[27,15,3,1,11],launch:15,frequenc:5,could:[0,26,22,27],omit:5,keep:[26,5],thing:[22,5],perhap:24,enforc:[18,25,24,10,31,16],place:[26,8,11],unabl:11,retain:8,"30bp":11,onto:27,broadinstitut:15,assymter:16,first:[8,10,11,2,15,26,27,17],origin:[18,8,24,11,25,16],softwar:[6,27,11],rang:[27,5,11],directli:[2,19],feel:11,onc:[16,24,15],refin:27,qualiti:[24,23,17,15,31],denorm:5,system:[1,5],restrict:[0,24,29,10,31,16],nucleotid:11,smaller:11,done:0,"long":[21,24,31],mask:[2,3,11],wasn:11,oppos:31,miss:19,primari:15,suffic:7,vcf4:27,avail:[20,24,17,11],freqasc:5,annotateb:[29,20,11],breviti:11,convent:11,script:[15,11],unknown:27,top:[23,11],sometim:[31,24,11],least:[18,7,8,10,5,9,24,31,16,11],binari:1,just:[16,24,10,5],too:11,similarli:[24,11],toolset:6,dj102g20:27,conveni:[4,13],store:[27,23,11],unalign:11,chrii:[27,11],adher:26,assign:27,option:[0,24,2,3,4,5,7,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,25,26,27,28,29,30,31],especi:[27,9,16],maskfastafromb:[2,20,3,11],tool:[20,1,5,13,28,27,11,17],copi:[30,1],lower:[16,17,3],specifi:[16,14,17,5],probecompl:2,part:[27,17,11],conserv:29,attempt:26,exactli:[31,24,12,3,10,26],than:[27,7,17,11],png:15,serv:[24,31],wide:[27,11],"738n64m146n100m1647n120m6478n162m1485n51m6777n60m9274n54m880n54m1229n54m2377n54m112":23,unmap:17,third:24,whenev:11,provid:[20,7,8,11,31,26],remov:[18,8,11],eleg:11,biolog:[24,31],bed:[0,24,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17,18,21,22,23,25,26,27,28,29,30,31],charact:27,project:27,coverageb:[20,8,11,2,9,27],becom:27,were:[25,9,5,11],posit:[7,10,11,26,9,14,15,4,27],knowngen:[13,23],toward:9,reposit:26,randomli:[26,8,11],uc002yiq:[30,23],sai:[14,24],fashion:17,comput:[7,8,5,2,9,14,27,11,17],uc002yiu:30,sam:[27,23],uc002yiw:[30,13],uc002yix:[30,13],argument:5,inout:27,"return":[8,28,21,11],packag:11,bertha:24,seed:26,manner:[4,11],have:[7,10,5,9,24,15,31,27,16,11,17,19],tabl:[6,20,11],disjoint:[27,11],fasta:[12,3,11],chr8:24,windows10kb:8,tupac_0001:17,henceforth:11,bed12tobed6:[20,13,11],imagin:[16,5,10,11],built:30,equival:[27,11],min:5,"0t0c33a5t4t3":31,moreov:[24,11],agacgttaactttacacacctctgccaaggtcctcatccttgtattgaag:24,note:[7,8,24,10,11,29,26,9,3,1,15,31,4,27,16,5,17],also:[7,8,24,5,26,9,31,4,16,11,17],chromosom:[18,7,8,0,31,12,10,11,24,26,9,22,3,25,4,27,16,28,17],"2666n109m2885n158m":23,derek:11,take:[2,15,11],which:[24,5,14,10,15,25,26,27,11],neither:[2,31,22,8],environ:1,known_var:29,tracks1:11,singl:[7,8,21,5,29,25,11,19],said:11,therefor:[26,27,24,11],pipelin:11,unless:17,distribut:[27,8,11],notospan:31,normal:27,track:[23,11],who:11,compress:[16,31,23,24,11],discov:[8,11],most:[27,24,11],regular:11,awk:[0,8],portion:[18,7,24,11,9,17],pair:[31,7,8,0,21,10,11,2,9,22,14,24,15,25,26,27,16,17],alpha:[23,5],segment:8,why:11,l1pa3:[23,5],don:[24,11],correctli:[27,11],url:27,closestb:[20,8,21,10,11],gggfgd:24,stranded:[18,31,12,10,29,9,22,24,25,16],request:[0,12,15,11],tagbam:11,doe:[18,24,11,10,31,27,17],pipe:[7,24,5,9,13,14,31,22,16,11,17],pct2:29,ext:15,snapshot:[15,11],clean:[21,1],aligned_read:11,windowb:[20,8,11,14,27,16],effect:[16,5],latest:[2,27,1],scaffold:[27,11],dot:24,ungap:17,think:27,set:[7,30,24,11,12,23,25,17],rs233454:11,show:19,text:[27,5,19,11],ttatcgaatgcaatcgaatggaattatcgaatgcaatcgaatagaatcat:31,random:26,pct3:29,syntax:27,mychrom:27,sequenc:[7,8,9,3,11,12,24,27,17],session:15,identifi:27,uc002yi:30,fine:[24,11],find:[18,8,21,10,5,2,26],involv:1,depth:[9,7,11],onli:[18,2,7,8,31,24,11,29,9,22,25,26,27,16,5,17],slow:11,locat:[26,22,11],thei:[27,9,5,21,11],illumina:11,menu:11,discord:22,releas:11,figur:[18,20,19,10,5,29,13,15,25,16,11,28],should:[18,8,30,10,11,24,26,9,13,1,15,25,4,27,16,5],experiment:27,templat:11,occupi:12,mergeb:[20,25,8,21,11],analys:11,hope:11,count:[29,9,5,11],move:26,hit:[24,5,29,22,31,16],contribut:[7,11],get:2,pairtob:[20,8,24,11,2,31,27],nasti:29,comma:[27,5],stop:26,"1000bp":16,theori:11,cannot:26,mention:10,fearur:26,increas:0,grep:[2,21,7,24,8],chrom:[19,8,11,12,26,27],symmetr:16,requir:[18,7,8,1,5,2,22,24,31,26,27,11,17,19],target:[2,27,3],igv:[15,11],characterist:11,enabl:[16,24,17,11],organ:[27,30,11],homag:24,bloat:11,median:5,"public":[27,30,11],sum:5,stl:11,twelv:27,common:[24,11],contain:[10,11],privileg:1,bam:[7,8,24,11,2,9,22,23,15,31,27,16,17],where:[8,10,11,2,30,22,24,31,26,27,16,17],seamlessli:11,summari:[0,24,29,3,4,5,7,9,10,11,12,13,14,15,16,17,18,19,22,23,25,26,28,30,31],wiki:27,end2:[27,14,31],cnt1:29,seq:[9,16,7,24,11],frame:27,"_0001":24,assumpt:15,displai:[27,23,8],see:[18,7,10,5,30,15,25,27,16,17,19],result:[18,31,10,11,29,9,22,14,24,25,26,27,16,28,17],fail:[17,31],close:25,institut:27,notalusinref:2,awar:11,detect:[27,9,5,16,11],kilobas:[9,8],give:11,chrthenscorea:4,matter:[15,11],databas:[27,5,11],boundari:0,sortb:[4,20,11],hist:9,written:[24,31,15,3,11],score:[8,24,5,29,14,31,4,27,17],between:[8,21,10,11,22,14,24,25,31,16],drawn:27,awai:25,experi:[26,9,16,3,11],approach:[22,31],across:[9,19],attribut:[27,11],accord:[0,16],predefin:11,extend:11,amen:11,numer:[19,17,5],screen:[7,24,2,9,22,15,27,16],sole:[29,26,11],disallow:17,extens:11,entir:[7,8,24,11,9,27,17],"_bbbbbbbbbbbbbbbb":31,stdev:5,genomecoverageb:[27,20,7,11],outer:31,come:[7,24,5,9,31,27,11,17],blockcount:[27,9,7],"31e":27,addit:[7,21,24,11,10,31,27,28],both:[8,10,11,29,9,22,24,31,26,16],blastx:27,img:15,hgdownload:11,someth:[0,30,5,11],howev:[7,8,0,31,10,11,24,25,26,27,16,17],alon:24,groupbi:[20,5,11],against:[26,9,7,24],nearbi:[21,8],etc:[27,31,24,15,11],instanc:30,context:11,chrthensizea:4,browser:[27,30,8,11],com:[21,1,11],col:[14,5],incred:5,load:[15,11],uc002yip:[30,23],onward:27,simpli:[27,24,15,11],publicli:11,stream:[5,11],point:[30,1],color:17,had:9,format:[7,8,24,5,12,23,31,27,11,17],"50m":[24,31],uc002yir:30,"46m":11,header:[29,12,19,3,11],permut:[26,11],bamtob:[20,8,11,2,27,17],suppli:26,"3000n":11,uc002yit:30,sanger:27,throughout:11,assum:[31,5,23,17,11],gcdgg:31,duplic:8,quit:11,sess:15,strong:6,uc002yiv:[30,13],second:[27,16,24,11],addition:11,receiv:27,fro:3,add:[19,0,2,25,27,16],been:[9,15,11],insuffici:27,valu:[23,14,19,27,5],interest:[24,5,9,31,27,11],modif:11,gd_mrna:27,immedi:15,quickli:[4,27,7,15],probe:2,rather:11,nuclb:11,uc010gkv:30,imag:[23,15],shuffl:26,search:[18,24,9,22,10,31,16],cnt3:29,ani:[19,8,21,24,5,25,27,16,11],bulk:11,coordin:[0,5,12,14,31,26,16,11,17],repeatmask:[21,8],togeth:[21,17,11],turn:26,gwa:10,repetit:[21,8],"1mb":24,present:[22,24,31],delimit:[27,9,5,12,11],known1:29,ugli:29,known3:29,ident:[26,5],look:[2,26,7,10,11],gnu:11,clp:15,align:[7,8,3,11,2,9,22,23,24,15,31,27,16,17],cov:8,sourceforg:27,aim:27,defin:[18,8,0,3,11,12,26,27,16],calcul:[9,7,19,11],bertha_0001:24,invers:27,abov:[27,7],cgcta:12,wild:[7,11],exist:[27,15,11],cneecfccf:31,chrom1:[27,31],observ:[29,17,5],chrom2:[27,31],program:[27,11],advantag:[9,11],almost:11,"2124m":23,site:[7,11],equal:7,pairedread:31,archiv:1,motiv:11,clip:0,myseq:12,var1:29,mani:[27,11],sever:[31,8,5,15,11],"null":[26,24],develop:11,welcom:11,minim:[18,24,11],perform:[24,27,9,7,3],suggest:[22,11],make:[27,25,21,1,11],interstiti:[9,7,24],hgtabl:11,"while":[18,0,10,11,26,24,25,4,16],cgfgccgggfc:31,complex:11,descend:[4,5],enrich:27,document:11,infer:[9,7],file3:[29,19],higher:[16,15,11],"1bp":[18,22,24,31],finish:11,http:[7,21,1,11,30,15,27],structur:[2,27,22,8,11],bedtool:[6,8,21,1,5,2,14,20,27,11,17],denot:17,interrog:11,blue:24,upon:11,hwieas_0001:27,decompress:11,read1:11,nix:1,read2:11,user:[0,27,31,24,11],uni:30,pairtopair:[20,8,11,2,22,27],end1:[27,14,31],php:27,aka:11,recent:[2,11],gordon:[7,11],appropri:[26,30,23,5],linksb:[20,30,11],"38a11":31,entri:[31,7,8,0,21,12,24,11,9,23,25,26,27,16,17],thu:[31,9,8,24,11],touchingexon:8,well:[30,9,5,16,11],spent:11,inherit:11,thickli:27,contact:1,command:[7,21,1,11,29,9,24,17],thi:[0,24,29,3,5,7,10,11,9,14,15,16,17,18,21,22,23,1,25,26,27,28,20,30,31],choos:[10,8],gzip:11,salient:11,model:27,self:11,left:[16,15,31],distanc:[8,31,10,14,25,27,17],gffeaaddddggggggedgcgeggdegggggffcgggggggegdfggfgf:24,background:11,execut:26,less:4,paragraph:6,abam:[8,24,11,9,31,16],bed4:27,distant:25,cnt2:29,human:[27,30,8,23,11],variant1:5,regardless:11,variant3:5,variant2:5,yet:[24,5,31,27,11,17],cabam:31,"46bp":11,web:[30,11],versu:11,rapid:11,aaacc:12,bedtobam:[20,23,11],field:[7,24,11,9,23,15,31,27,17],complementb:[20,8,11,2,27,28],mutat:27,makefil:1,except:[2,26,11],bgetdg_kgcg:24,format1:27,rgb:27,discret:[13,11],inner:[2,31],overview:[6,11],samtool:[7,24,2,9,23,31,27,16,17],subsequ:[15,11],explanatori:11,match:[12,22,17,3],build:[27,30,11],bin:[21,7,1,11],applic:[31,11],complaint:11,around:16,recreat:26,last:[27,8,10,11],preserv:26,big:29,rna:[9,16,7,24,11],goldenpath:[7,11],choic:10,intrachromosom:31,five:11,know:[27,25,8,24,11],burden:11,chr20:17,blockstart:[27,9,7],apart:11,lexicograph:17,associ:26,scientist:11,licens:11,desc:4,linux:1,insert:[2,17],resid:11,like:[8,0,21,24,11,30,14,15,25,27],specif:[27,7,17,11],deprec:11,seek:11,arbitrari:9,manual:[27,30,21,11],html:[27,30,7,11],integ:[0,26],collect:15,benefit:11,sample1:2,sizea:4,chr21:[30,13,23,15,5],view:[7,24,2,9,23,31,16,17],output:[7,27,31,9,3,5,12,14,24,25,23,16,11,17,19],resiz:0,inter:[27,11],soft:3,page:[30,11],underli:27,www:[27,15,11],right:[16,15,31],often:[10,11],convei:20,captur:[2,3],spring:11,interv:[30,7,8,9,3,11,12,24,28,17,19],"1st":11,some:[27,20,1,11],begin:[15,11],ffec_jw:31,certain:26,chrthenscor:4,sampl:[2,22,19,15,8],flatten:27,"395m":23,respect:[24,29,9,22,31,16,17],proper:2,seq1:27,process:11,gwdfgfgff:24,librari:11,cnv:8,elegan:[27,11],txt:[19,11],"function":[20,11],avoid:26,deploy:11,definit:[27,11],aaatggaatcgaatggaatcaacatcaaatggaatcaaatggaatcattg:31,overlap:[18,2,31,7,8,21,10,11,29,9,22,14,24,20,25,27,16,5],summar:[9,5,11],filen:[29,19],ucsc:[7,8,11,30,23,27],evolv:11,readgroup:15,coding_exon:27,"1kb":24,l1p1:5,necessari:27,three:[5,11],straightforward:11,"25s6m1i11m7":24,blocksiz:27,cgi:11,core:11,encourag:11,object:27,run:[26,15,1],mrna:11,flankb:11,uncompress:[16,31,23,24,11],inspect:30,usag:[0,24,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,25,26,27,28,29,30,31],paper:11,broken:10,step:2,obei:27,repositori:[1,11],contig1112:27,geneb:[29,10],hba_human:27,post:1,subtract:[0,18,11],inclus:27,bga:7,about:5,central:11,greatli:11,pre:[27,5],column:[7,31,12,3,5,24,9,14,10,15,25,27,11,17],simrep:[24,31],commun:11,slightli:11,briefli:11,surround:16,degre:29,jobu_0001:31,hg18:[7,8,2,30,13,23,15],hg19:11,disabl:[18,10,9,25,16,17],my_featur:27,zxvf:[21,1],ispan:31,subset:[24,31],file1:[29,19],own:[3,11],effici:[23,15],antisens:12,acedb:27,basenam:30,within:[8,21,11,15,25,27,16],automat:26,dataset:[27,11],down:[2,27],empti:19,lieu:12,contributor:11,chang:5,batch:[15,11],mere:[4,27],annotaion:23,wao:24,freqdesc:5,accordingli:[0,5,1,11],git:11,span:[7,8,31,24,11,2,9,25,27,17],deal:[9,16,7,24],wai:[5,29,22,14,27,11],uc001aaa:27,"3288m":23,support:[27,11],question:[24,11],limit:11,fast:11,custom:[19,3,11,14,26,27,16],book:25,start:[6,19,0,21,10,11,29,12,14,15,4,27,17],fascin:11,appl:1,arithmet:6,includ:[29,27,31,19,11],fraction:[18,7,8,10,29,9,22,24,31],replac:26,forward:[2,12,16],interchromosom:17,machin:1,strand2:27,strand1:27,treat:[9,7,24,11],analysi:27,reduc:11,head:[7,8,24,30,13,23,15,31,17],basepair:[27,11],namesr:29,form:27,offer:9,forc:[18,31,12,10,29,9,22,24,25],ascend:[4,5],"3076bp":11,basic:[8,11],histogram:[9,7,11],link:[27,30,11],seqnam:27,might:[26,25,24,10,11],line:[19,8,21,1,5,29,9,14,24,26,27,11],highest:10,bug:11,info:11,notat:27,made:11,wise:11,input:[7,31,3,5,24,12,13,14,10,27,26,23,16,11,19],consist:[27,9,19],possibl:11,whether:[24,8],aza:27,directori:[27,8,1,11],googlecod:[21,1,11],maximum:[7,25],record:27,below:[19,8,21,10,11,9,24,31,26,27,16,17],those:[2,8,24,21,11],absenc:[16,24],fundament:11,otherwis:22,"298m1784n71m1411n93m3963n80m1927n106m3608n81m1769n62m11856n89m98n82m816n61m6910n65m":23,similar:[27,16,10,5],reliabl:11,"30m":11,block:[7,24,11,9,13,23,27,17],rname:[24,17,31],reciproc:[24,8],constant:26,semicolon:[27,25],cover:[18,2,8,11,29,9,20],"abstract":20,mirror:30,"1000_genom":27,doesn:31,nascent:11,barnett:11,implement:11,intersectb:[18,20,8,21,10,5,2,9,24,25,27,16,11],file:[0,1,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17,18,19,21,22,23,24,25,26,27,28,29,30,31],behavior:[0,24,29,3,4,5,7,9,10,11,12,13,14,15,16,18,19,22,23,25,26,28,20,30,31],chrthensiz:4,curl:[21,1],improv:11,filo:11,intra:31,chrominfo:11,ggeggg_gggggggggddgdggvg:24,freeli:11,"76bp":11,grp:5,todo:11,"1a2t45":24,when:[30,7,12,3,5,24,9,13,22,10,31,27,16,11,17,19],pct1:29,"738n64m146n100m1647n120m6478n162m1485n51m6777n60m10208n54m1229n54m2377n54m11268n58m":23,power:[6,27],"default":[0,24,29,3,4,5,7,8,9,10,11,12,13,14,15,16,17,18,19,22,23,25,26,28,20,30,31],valid:[26,5,15,11],futur:11,bed5:27,presenc:[16,24],test:[26,12,3],tie:[10,8],you:[19,1,5,2,14,24,15,31,26,27,16,11],thousand:11,asymmetr:[0,16],gaatcgactggaatcatcatcggatggaaatgaatggaataatcatcgaa:31,matur:11,repeat:[8,5,28,11],intend:1,polymorph:[10,11],symbol:11,"7a22c9c2t6":31,"1kg":2,in2:8,googl:11,properli:[2,17,11],chr22:11,"30kb":11,occasion:25,formal:11,gap:[26,8,11],stai:[5,11],genotyp:19,bed3:27,bedg:8,algorithm:11,scientif:27,util:[4,11],svg:15,suit:[6,20,11],pseudo:26,visual:23,rule:[26,11],them:[8,11],mimic:5,bedp:[8,11,2,22,31,27,17],ignor:[7,12,24,11,9,31,26,27],fact:[27,16,24,11],potenti:[26,27],time:[5,11],plu:24,escap:27,"5kb":16},objtypes:{},titles:["5.14 slopBed","Installation","Advanced usage","5.12 maskFastaFromBed","5.15 sortBed","5.22 groupBy","<strong>bedtools</strong>: <em>a powerful toolset for genome arithmetic</em>","5.10 genomeCoverageBed","Example usage","5.9 coverageBed","5.6 closestBed","Overview","5.11 fastaFromBed","5.21 bed12ToBed6","5.19 overlap","5.20 bedToIgv","5.5 windowBed","5.4 bamToBed","5.7 subtractBed","5.23 unionBedGraphs","The BEDTools suite","Quick start","5.3 pairToPair","5.18 bedToBam","5.1 intersectBed","5.8 mergeBed","5.13 shuffleBed","General usage","5.17 complementBed","5.24 annotateBed","5.16 linksBed","5.2 pairToBed"],objnames:{},filenames:["content/slopBed","content/installation","content/advanced-usage","content/maskfastafromBed","content/sortBed","content/groupBy","index","content/genomecoverageBed","content/example-usage","content/coverageBed","content/closestBed","content/overview","content/fastafromBed","content/bed12ToBed6","content/overlap","content/bedToIgv","content/windowBed","content/bamToBed","content/subtractBed","content/unionBedGraphs","content/bedtools-suite","content/quick-start","content/pairToPair","content/bedToBam","content/intersectBed","content/mergeBed","content/shuffleBed","content/general-usage","content/complementBed","content/annotateBed","content/linksBed","content/pairToBed"]}) \ No newline at end of file diff --git a/docs/_build/latex/Makefile b/docs/_build/latex/Makefile new file mode 100644 index 00000000..76e7c3e2 --- /dev/null +++ b/docs/_build/latex/Makefile @@ -0,0 +1,66 @@ +# Makefile for Sphinx LaTeX output + +ALLDOCS = $(basename $(wildcard *.tex)) +ALLPDF = $(addsuffix .pdf,$(ALLDOCS)) +ALLDVI = $(addsuffix .dvi,$(ALLDOCS)) + +# Prefix for archive names +ARCHIVEPRREFIX = +# Additional LaTeX options +LATEXOPTS = + +all: $(ALLPDF) +all-pdf: $(ALLPDF) +all-dvi: $(ALLDVI) +all-ps: all-dvi + for f in *.dvi; do dvips $$f; done + +all-pdf-ja: + for f in *.pdf *.png *.gif *.jpg *.jpeg; do ebb $$f; done + for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done + for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done + for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done + for f in *.idx; do mendex -U -f -d "`basename $$f .idx`.dic" -s python.ist $$f; done + for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done + for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done + for f in *.dvi; do dvipdfmx $$f; done + +zip: all-$(FMT) + mkdir $(ARCHIVEPREFIX)docs-$(FMT) + cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT) + zip -q -r -9 $(ARCHIVEPREFIX)docs-$(FMT).zip $(ARCHIVEPREFIX)docs-$(FMT) + rm -r $(ARCHIVEPREFIX)docs-$(FMT) + +tar: all-$(FMT) + mkdir $(ARCHIVEPREFIX)docs-$(FMT) + cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT) + tar cf $(ARCHIVEPREFIX)docs-$(FMT).tar $(ARCHIVEPREFIX)docs-$(FMT) + rm -r $(ARCHIVEPREFIX)docs-$(FMT) + +bz2: tar + bzip2 -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar + +# The number of LaTeX runs is quite conservative, but I don't expect it +# to get run often, so the little extra time won't hurt. +%.dvi: %.tex + latex $(LATEXOPTS) '$<' + latex $(LATEXOPTS) '$<' + latex $(LATEXOPTS) '$<' + -makeindex -s python.ist '$(basename $<).idx' + latex $(LATEXOPTS) '$<' + latex $(LATEXOPTS) '$<' + +%.pdf: %.tex + pdflatex $(LATEXOPTS) '$<' + pdflatex $(LATEXOPTS) '$<' + pdflatex $(LATEXOPTS) '$<' + -makeindex -s python.ist '$(basename $<).idx' + pdflatex $(LATEXOPTS) '$<' + pdflatex $(LATEXOPTS) '$<' + +clean: + rm -f *.dvi *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla + +.PHONY: all all-pdf all-dvi all-ps clean +.PHONY: all-pdf-ja + diff --git a/docs/_build/latex/bedtools.aux b/docs/_build/latex/bedtools.aux new file mode 100644 index 00000000..fb18bc9e --- /dev/null +++ b/docs/_build/latex/bedtools.aux @@ -0,0 +1,463 @@ +\relax +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand\HyField@AuxAddToFields[1]{} +\select@language{english} +\@writefile{toc}{\select@language{english}} +\@writefile{lof}{\select@language{english}} +\@writefile{lot}{\select@language{english}} +\newlabel{index::doc}{{}{1}{\relax }{section*.2}{}} +\@writefile{toc}{\contentsline {chapter}{\numberline {1}Overview}{1}{chapter.1}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{index:bedtools-a-powerful-toolset-for-genome-arithmetic}{{1}{1}{Overview\relax }{chapter.1}{}} +\newlabel{index:overview}{{1}{1}{Overview\relax }{chapter.1}{}} +\@writefile{toc}{\contentsline {chapter}{\numberline {2}Table of contents}{3}{chapter.2}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{index:table-of-contents}{{2}{3}{Table of contents\relax }{chapter.2}{}} +\@writefile{toc}{\contentsline {section}{\numberline {2.1}Overview}{3}{section.2.1}} +\newlabel{content/overview:overview}{{2.1}{3}{Overview\relax }{section.2.1}{}} +\newlabel{content/overview::doc}{{2.1}{3}{Overview\relax }{section.2.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.1}1.1 Background}{3}{subsection.2.1.1}} +\newlabel{content/overview:background}{{2.1.1}{3}{1.1 Background\relax }{subsection.2.1.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.2}1.2 Summary of available tools.}{3}{subsection.2.1.2}} +\newlabel{content/overview:summary-of-available-tools}{{2.1.2}{3}{1.2 Summary of available tools}{subsection.2.1.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.3}1.3 Fundamental concepts.}{4}{subsection.2.1.3}} +\newlabel{content/overview:fundamental-concepts}{{2.1.3}{4}{1.3 Fundamental concepts}{subsection.2.1.3}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.1 What are genome features and how are they represented?}{4}{subsubsection*.3}} +\newlabel{content/overview:what-are-genome-features-and-how-are-they-represented}{{2.1.3}{4}{1.3.1 What are genome features and how are they represented?\relax }{subsubsection*.3}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.2 Overlapping / intersecting features.}{5}{subsubsection*.4}} +\newlabel{content/overview:overlapping-intersecting-features}{{2.1.3}{5}{1.3.2 Overlapping / intersecting features}{subsubsection*.4}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.3 Comparing features in file \IeC {\textquotedblleft }A\IeC {\textquotedblright } and file \IeC {\textquotedblleft }B\IeC {\textquotedblright }.}{5}{subsubsection*.5}} +\newlabel{content/overview:comparing-features-in-file-a-and-file-b}{{2.1.3}{5}{1.3.3 Comparing features in file “A†and file “Bâ€}{subsubsection*.5}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.4 BED starts are zero-based and BED ends are one-based.}{5}{subsubsection*.6}} +\newlabel{content/overview:bed-starts-are-zero-based-and-bed-ends-are-one-based}{{2.1.3}{5}{1.3.4 BED starts are zero-based and BED ends are one-based}{subsubsection*.6}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.5 GFF starts and ends are one-based.}{5}{subsubsection*.7}} +\newlabel{content/overview:gff-starts-and-ends-are-one-based}{{2.1.3}{5}{1.3.5 GFF starts and ends are one-based}{subsubsection*.7}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.6 VCF coordinates are one-based.}{6}{subsubsection*.8}} +\newlabel{content/overview:vcf-coordinates-are-one-based}{{2.1.3}{6}{1.3.6 VCF coordinates are one-based}{subsubsection*.8}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.7 File B is loaded into memory (most of the time).}{6}{subsubsection*.9}} +\newlabel{content/overview:file-b-is-loaded-into-memory-most-of-the-time}{{2.1.3}{6}{1.3.7 File B is loaded into memory (most of the time)}{subsubsection*.9}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.8 Feature files \emph {must} be tab-delimited.}{6}{subsubsection*.10}} +\newlabel{content/overview:feature-files-must-be-tab-delimited}{{2.1.3}{6}{1.3.8 Feature files \emph {must} be tab-delimited}{subsubsection*.10}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.9 All BEDTools allow features to be \IeC {\textquotedblleft }piped\IeC {\textquotedblright } via standard input.}{6}{subsubsection*.11}} +\newlabel{content/overview:all-bedtools-allow-features-to-be-piped-via-standard-input}{{2.1.3}{6}{1.3.9 All BEDTools allow features to be “piped†via standard input}{subsubsection*.11}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.10 Most BEDTools write their results to standard output.}{6}{subsubsection*.12}} +\newlabel{content/overview:most-bedtools-write-their-results-to-standard-output}{{2.1.3}{6}{1.3.10 Most BEDTools write their results to standard output}{subsubsection*.12}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.11 What is a \IeC {\textquotedblleft }genome\IeC {\textquotedblright } file?}{7}{subsubsection*.13}} +\newlabel{content/overview:what-is-a-genome-file}{{2.1.3}{7}{1.3.11 What is a “genome†file?\relax }{subsubsection*.13}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.12 Paired-end BED files (BEDPE files).}{7}{subsubsection*.14}} +\newlabel{content/overview:paired-end-bed-files-bedpe-files}{{2.1.3}{7}{1.3.12 Paired-end BED files (BEDPE files)}{subsubsection*.14}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.13 Use \IeC {\textquotedblleft }-h\IeC {\textquotedblright } for help with any BEDTool.}{7}{subsubsection*.15}} +\newlabel{content/overview:use-h-for-help-with-any-bedtool}{{2.1.3}{7}{1.3.13 Use “-h†for help with any BEDTool}{subsubsection*.15}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.14 BED features must not contain negative positions.}{7}{subsubsection*.16}} +\newlabel{content/overview:bed-features-must-not-contain-negative-positions}{{2.1.3}{7}{1.3.14 BED features must not contain negative positions}{subsubsection*.16}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.15 The start position must be \textless {}= to the end position.}{7}{subsubsection*.17}} +\newlabel{content/overview:the-start-position-must-be-to-the-end-position}{{2.1.3}{7}{1.3.15 The start position must be \textless {}= to the end position}{subsubsection*.17}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.16 Headers are allowed in GFF and BED files}{7}{subsubsection*.18}} +\newlabel{content/overview:headers-are-allowed-in-gff-and-bed-files}{{2.1.3}{7}{1.3.16 Headers are allowed in GFF and BED files\relax }{subsubsection*.18}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.17 GZIP support: BED, GFF, VCF, and BEDPE file can be \IeC {\textquotedblleft }gzipped\IeC {\textquotedblright }}{8}{subsubsection*.19}} +\newlabel{content/overview:gzip-support-bed-gff-vcf-and-bedpe-file-can-be-gzipped}{{2.1.3}{8}{1.3.17 GZIP support: BED, GFF, VCF, and BEDPE file can be “gzippedâ€\relax }{subsubsection*.19}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.18 Support for \IeC {\textquotedblleft }split\IeC {\textquotedblright } or \IeC {\textquotedblleft }spliced\IeC {\textquotedblright } BAM alignments and \IeC {\textquotedblleft }blocked\IeC {\textquotedblright } BED features}{8}{subsubsection*.20}} +\newlabel{content/overview:support-for-split-or-spliced-bam-alignments-and-blocked-bed-features}{{2.1.3}{8}{1.3.18 Support for “split†or “spliced†BAM alignments and “blocked†BED features\relax }{subsubsection*.20}{}} +\@writefile{toc}{\contentsline {subsubsection}{1.3.19 Writing uncompressed BAM output.}{8}{subsubsection*.21}} +\newlabel{content/overview:writing-uncompressed-bam-output}{{2.1.3}{8}{1.3.19 Writing uncompressed BAM output}{subsubsection*.21}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.4}1.4 Implementation and algorithmic notes.}{8}{subsection.2.1.4}} +\newlabel{content/overview:implementation-and-algorithmic-notes}{{2.1.4}{8}{1.4 Implementation and algorithmic notes}{subsection.2.1.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.5}1.5 License and availability.}{9}{subsection.2.1.5}} +\newlabel{content/overview:license-and-availability}{{2.1.5}{9}{1.5 License and availability}{subsection.2.1.5}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.6}1.6 Mailing list.}{9}{subsection.2.1.6}} +\newlabel{content/overview:mailing-list}{{2.1.6}{9}{1.6 Mailing list}{subsection.2.1.6}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.7}1.7 Contributors.}{9}{subsection.2.1.7}} +\newlabel{content/overview:contributors}{{2.1.7}{9}{1.7 Contributors}{subsection.2.1.7}{}} +\@writefile{toc}{\contentsline {section}{\numberline {2.2}Installation}{9}{section.2.2}} +\newlabel{content/installation:installation}{{2.2}{9}{Installation\relax }{section.2.2}{}} +\newlabel{content/installation::doc}{{2.2}{9}{Installation\relax }{section.2.2}{}} +\@writefile{toc}{\contentsline {section}{\numberline {2.3}Quick start}{9}{section.2.3}} +\newlabel{content/quick-start:quick-start}{{2.3}{9}{Quick start\relax }{section.2.3}{}} +\newlabel{content/quick-start::doc}{{2.3}{9}{Quick start\relax }{section.2.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3.1}Install BEDTools}{9}{subsection.2.3.1}} +\newlabel{content/quick-start:install-bedtools}{{2.3.1}{9}{Install BEDTools\relax }{subsection.2.3.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3.2}Use BEDTools}{10}{subsection.2.3.2}} +\newlabel{content/quick-start:use-bedtools}{{2.3.2}{10}{Use BEDTools\relax }{subsection.2.3.2}{}} +\@writefile{toc}{\contentsline {section}{\numberline {2.4}General usage}{10}{section.2.4}} +\newlabel{content/general-usage::doc}{{2.4}{10}{General usage\relax }{section.2.4}{}} +\newlabel{content/general-usage:general-usage}{{2.4}{10}{General usage\relax }{section.2.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.1}4.1 Supported file formats}{10}{subsection.2.4.1}} +\newlabel{content/general-usage:supported-file-formats}{{2.4.1}{10}{4.1 Supported file formats\relax }{subsection.2.4.1}{}} +\@writefile{toc}{\contentsline {subsubsection}{4.1.1 BED format}{10}{subsubsection*.22}} +\newlabel{content/general-usage:bed-format}{{2.4.1}{10}{4.1.1 BED format\relax }{subsubsection*.22}{}} +\@writefile{toc}{\contentsline {subsubsection}{4.1.2 BEDPE format}{12}{subsubsection*.23}} +\newlabel{content/general-usage:bedpe-format}{{2.4.1}{12}{4.1.2 BEDPE format\relax }{subsubsection*.23}{}} +\@writefile{toc}{\contentsline {subsubsection}{4.1.3 GFF format}{13}{subsubsection*.24}} +\newlabel{content/general-usage:gff-format}{{2.4.1}{13}{4.1.3 GFF format\relax }{subsubsection*.24}{}} +\@writefile{toc}{\contentsline {subsubsection}{4.1.3 GFF format}{14}{subsubsection*.25}} +\newlabel{content/general-usage:id1}{{2.4.1}{14}{4.1.3 GFF format\relax }{subsubsection*.25}{}} +\@writefile{toc}{\contentsline {subsubsection}{4.1.5 SAM/BAM format}{15}{subsubsection*.26}} +\newlabel{content/general-usage:sam-bam-format}{{2.4.1}{15}{4.1.5 SAM/BAM format\relax }{subsubsection*.26}{}} +\@writefile{toc}{\contentsline {subsubsection}{4.1.6 VCF format}{15}{subsubsection*.27}} +\newlabel{content/general-usage:vcf-format}{{2.4.1}{15}{4.1.6 VCF format\relax }{subsubsection*.27}{}} +\@writefile{toc}{\contentsline {section}{\numberline {2.5}The BEDTools suite}{15}{section.2.5}} +\newlabel{content/bedtools-suite:the-bedtools-suite}{{2.5}{15}{The BEDTools suite\relax }{section.2.5}{}} +\newlabel{content/bedtools-suite::doc}{{2.5}{15}{The BEDTools suite\relax }{section.2.5}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.5.1}Table of contents}{15}{subsection.2.5.1}} +\newlabel{content/bedtools-suite:table-of-contents}{{2.5.1}{15}{Table of contents\relax }{subsection.2.5.1}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.1 intersectBed}{15}{subsubsection*.28}} +\newlabel{content/intersectBed:intersectbed}{{2.5.1}{15}{5.1 intersectBed\relax }{subsubsection*.28}{}} +\newlabel{content/intersectBed::doc}{{2.5.1}{15}{5.1 intersectBed\relax }{subsubsection*.28}{}} +\@writefile{toc}{\contentsline {paragraph}{5.1.1 Usage and option summary}{15}{paragraph*.29}} +\newlabel{content/intersectBed:usage-and-option-summary}{{2.5.1}{15}{5.1.1 Usage and option summary\relax }{paragraph*.29}{}} +\@writefile{toc}{\contentsline {paragraph}{5.1.2 Default behavior}{16}{paragraph*.30}} +\newlabel{content/intersectBed:default-behavior}{{2.5.1}{16}{5.1.2 Default behavior\relax }{paragraph*.30}{}} +\@writefile{toc}{\contentsline {paragraph}{5.1.3 (-wa)Reporting the original A feature}{17}{paragraph*.31}} +\newlabel{content/intersectBed:wa-reporting-the-original-a-feature}{{2.5.1}{17}{5.1.3 (-wa)Reporting the original A feature\relax }{paragraph*.31}{}} +\@writefile{toc}{\contentsline {paragraph}{5.1.4 (-wb)Reporting the original B feature}{17}{paragraph*.32}} +\newlabel{content/intersectBed:wb-reporting-the-original-b-feature}{{2.5.1}{17}{5.1.4 (-wb)Reporting the original B feature\relax }{paragraph*.32}{}} +\@writefile{toc}{\contentsline {paragraph}{5.1.5 (-u)Reporting the presence of \emph {at least one} overlapping feature}{18}{paragraph*.33}} +\newlabel{content/intersectBed:u-reporting-the-presence-of-at-least-one-overlapping-feature}{{2.5.1}{18}{5.1.5 (-u)Reporting the presence of \emph {at least one} overlapping feature\relax }{paragraph*.33}{}} +\@writefile{toc}{\contentsline {paragraph}{5.1.6 (-c)Reporting the number of overlapping features}{18}{paragraph*.34}} +\newlabel{content/intersectBed:c-reporting-the-number-of-overlapping-features}{{2.5.1}{18}{5.1.6 (-c)Reporting the number of overlapping features\relax }{paragraph*.34}{}} +\@writefile{toc}{\contentsline {paragraph}{5.1.6 (-c)Reporting the number of overlapping features}{18}{paragraph*.35}} +\newlabel{content/intersectBed:id1}{{2.5.1}{18}{5.1.6 (-c)Reporting the number of overlapping features\relax }{paragraph*.35}{}} +\@writefile{toc}{\contentsline {paragraph}{5.1.7 (-v)Reporting the absence of any overlapping features}{19}{paragraph*.36}} +\newlabel{content/intersectBed:v-reporting-the-absence-of-any-overlapping-features}{{2.5.1}{19}{5.1.7 (-v)Reporting the absence of any overlapping features\relax }{paragraph*.36}{}} +\@writefile{toc}{\contentsline {paragraph}{5.1.8 (-f)Requiring a minimal overlap fraction}{19}{paragraph*.37}} +\newlabel{content/intersectBed:f-requiring-a-minimal-overlap-fraction}{{2.5.1}{19}{5.1.8 (-f)Requiring a minimal overlap fraction\relax }{paragraph*.37}{}} +\@writefile{toc}{\contentsline {paragraph}{5.1.9 (-r, combined with -f)Requiring reciprocal minimal overlap fraction}{19}{paragraph*.38}} +\newlabel{content/intersectBed:r-combined-with-f-requiring-reciprocal-minimal-overlap-fraction}{{2.5.1}{19}{5.1.9 (-r, combined with -f)Requiring reciprocal minimal overlap fraction\relax }{paragraph*.38}{}} +\@writefile{toc}{\contentsline {paragraph}{5.1.10 (-s)Enforcing ``strandedness''}{20}{paragraph*.39}} +\newlabel{content/intersectBed:s-enforcing-strandedness}{{2.5.1}{20}{5.1.10 (-s)Enforcing ``strandedness''\relax }{paragraph*.39}{}} +\@writefile{toc}{\contentsline {paragraph}{5.1.11 (-abam)Default behavior when using BAM input}{20}{paragraph*.40}} +\newlabel{content/intersectBed:abam-default-behavior-when-using-bam-input}{{2.5.1}{20}{5.1.11 (-abam)Default behavior when using BAM input\relax }{paragraph*.40}{}} +\@writefile{toc}{\contentsline {paragraph}{5.1.12 (-bed)Output BED format when using BAM input}{20}{paragraph*.41}} +\newlabel{content/intersectBed:bed-output-bed-format-when-using-bam-input}{{2.5.1}{20}{5.1.12 (-bed)Output BED format when using BAM input\relax }{paragraph*.41}{}} +\@writefile{toc}{\contentsline {paragraph}{5.1.13 (-split)Reporting overlaps with spliced alignments or blocked BED features}{21}{paragraph*.42}} +\newlabel{content/intersectBed:split-reporting-overlaps-with-spliced-alignments-or-blocked-bed-features}{{2.5.1}{21}{5.1.13 (-split)Reporting overlaps with spliced alignments or blocked BED features\relax }{paragraph*.42}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.2 pairToBed}{22}{subsubsection*.43}} +\newlabel{content/pairToBed::doc}{{2.5.1}{22}{5.2 pairToBed\relax }{subsubsection*.43}{}} +\newlabel{content/pairToBed:pairtobed}{{2.5.1}{22}{5.2 pairToBed\relax }{subsubsection*.43}{}} +\@writefile{toc}{\contentsline {paragraph}{5.2.1 Usage and option summary}{22}{paragraph*.44}} +\newlabel{content/pairToBed:usage-and-option-summary}{{2.5.1}{22}{5.2.1 Usage and option summary\relax }{paragraph*.44}{}} +\@writefile{toc}{\contentsline {paragraph}{5.2.2 Default behavior}{24}{paragraph*.45}} +\newlabel{content/pairToBed:default-behavior}{{2.5.1}{24}{5.2.2 Default behavior\relax }{paragraph*.45}{}} +\@writefile{toc}{\contentsline {paragraph}{5.2.3 (-type)Optional overlap requirements}{24}{paragraph*.46}} +\newlabel{content/pairToBed:type-optional-overlap-requirements}{{2.5.1}{24}{5.2.3 (-type)Optional overlap requirements\relax }{paragraph*.46}{}} +\@writefile{toc}{\contentsline {paragraph}{5.2.4 (-f)Requiring a minimum overlap fraction}{27}{paragraph*.47}} +\newlabel{content/pairToBed:f-requiring-a-minimum-overlap-fraction}{{2.5.1}{27}{5.2.4 (-f)Requiring a minimum overlap fraction\relax }{paragraph*.47}{}} +\@writefile{toc}{\contentsline {paragraph}{5.2.5 (-s)Enforcing ``strandedness''}{27}{paragraph*.48}} +\newlabel{content/pairToBed:s-enforcing-strandedness}{{2.5.1}{27}{5.2.5 (-s)Enforcing ``strandedness''\relax }{paragraph*.48}{}} +\@writefile{toc}{\contentsline {paragraph}{5.2.6 (-abam)Default is to write BAM output when using BAM input}{28}{paragraph*.49}} +\newlabel{content/pairToBed:abam-default-is-to-write-bam-output-when-using-bam-input}{{2.5.1}{28}{5.2.6 (-abam)Default is to write BAM output when using BAM input\relax }{paragraph*.49}{}} +\@writefile{toc}{\contentsline {paragraph}{5.2.7 (-bedpe)Output BEDPE format when using BAM input}{28}{paragraph*.50}} +\newlabel{content/pairToBed:bedpe-output-bedpe-format-when-using-bam-input}{{2.5.1}{28}{5.2.7 (-bedpe)Output BEDPE format when using BAM input\relax }{paragraph*.50}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.3 pairToPair}{29}{subsubsection*.51}} +\newlabel{content/pairToPair:pairtopair}{{2.5.1}{29}{5.3 pairToPair\relax }{subsubsection*.51}{}} +\newlabel{content/pairToPair::doc}{{2.5.1}{29}{5.3 pairToPair\relax }{subsubsection*.51}{}} +\@writefile{toc}{\contentsline {paragraph}{5.3.1 Usage and option summary}{29}{paragraph*.52}} +\newlabel{content/pairToPair:usage-and-option-summary}{{2.5.1}{29}{5.3.1 Usage and option summary\relax }{paragraph*.52}{}} +\@writefile{toc}{\contentsline {paragraph}{5.3.2 Default behavior}{29}{paragraph*.53}} +\newlabel{content/pairToPair:default-behavior}{{2.5.1}{29}{5.3.2 Default behavior\relax }{paragraph*.53}{}} +\@writefile{toc}{\contentsline {paragraph}{5.3.3 (-type neither)Optional overlap requirements}{30}{paragraph*.54}} +\newlabel{content/pairToPair:type-neither-optional-overlap-requirements}{{2.5.1}{30}{5.3.3 (-type neither)Optional overlap requirements\relax }{paragraph*.54}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.4 bamToBed}{30}{subsubsection*.55}} +\newlabel{content/bamToBed:bamtobed}{{2.5.1}{30}{5.4 bamToBed\relax }{subsubsection*.55}{}} +\newlabel{content/bamToBed::doc}{{2.5.1}{30}{5.4 bamToBed\relax }{subsubsection*.55}{}} +\@writefile{toc}{\contentsline {paragraph}{5.4.1 Usage and option summary}{30}{paragraph*.56}} +\newlabel{content/bamToBed:usage-and-option-summary}{{2.5.1}{30}{5.4.1 Usage and option summary\relax }{paragraph*.56}{}} +\@writefile{toc}{\contentsline {paragraph}{5.4.2 (-split)Creating BED12 features from ``spliced'' BAM entries.}{32}{paragraph*.57}} +\newlabel{content/bamToBed:split-creating-bed12-features-from-spliced-bam-entries}{{2.5.1}{32}{5.4.2 (-split)Creating BED12 features from ``spliced'' BAM entries}{paragraph*.57}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.5 windowBed}{32}{subsubsection*.58}} +\newlabel{content/windowBed:windowbed}{{2.5.1}{32}{5.5 windowBed\relax }{subsubsection*.58}{}} +\newlabel{content/windowBed::doc}{{2.5.1}{32}{5.5 windowBed\relax }{subsubsection*.58}{}} +\@writefile{toc}{\contentsline {paragraph}{5.5.1 Usage and option summary}{32}{paragraph*.59}} +\newlabel{content/windowBed:usage-and-option-summary}{{2.5.1}{32}{5.5.1 Usage and option summary\relax }{paragraph*.59}{}} +\@writefile{toc}{\contentsline {paragraph}{5.5.2 Default behavior}{33}{paragraph*.60}} +\newlabel{content/windowBed:default-behavior}{{2.5.1}{33}{5.5.2 Default behavior\relax }{paragraph*.60}{}} +\@writefile{toc}{\contentsline {paragraph}{5.5.3 (-w)Defining a custom window size}{33}{paragraph*.61}} +\newlabel{content/windowBed:w-defining-a-custom-window-size}{{2.5.1}{33}{5.5.3 (-w)Defining a custom window size\relax }{paragraph*.61}{}} +\@writefile{toc}{\contentsline {paragraph}{5.5.4 (-l and -r)Defining assymteric windows}{34}{paragraph*.62}} +\newlabel{content/windowBed:l-and-r-defining-assymteric-windows}{{2.5.1}{34}{5.5.4 (-l and -r)Defining assymteric windows\relax }{paragraph*.62}{}} +\@writefile{toc}{\contentsline {paragraph}{5.5.5 (-sw)Defining assymteric windows based on strand}{34}{paragraph*.63}} +\newlabel{content/windowBed:sw-defining-assymteric-windows-based-on-strand}{{2.5.1}{34}{5.5.5 (-sw)Defining assymteric windows based on strand\relax }{paragraph*.63}{}} +\@writefile{toc}{\contentsline {paragraph}{5.5.6 (-sm)Enforcing ``strandedness''}{35}{paragraph*.64}} +\newlabel{content/windowBed:sm-enforcing-strandedness}{{2.5.1}{35}{5.5.6 (-sm)Enforcing ``strandedness''\relax }{paragraph*.64}{}} +\@writefile{toc}{\contentsline {paragraph}{5.5.7 (-u)Reporting the presence of at least one overlapping feature}{35}{paragraph*.65}} +\newlabel{content/windowBed:u-reporting-the-presence-of-at-least-one-overlapping-feature}{{2.5.1}{35}{5.5.7 (-u)Reporting the presence of at least one overlapping feature\relax }{paragraph*.65}{}} +\@writefile{toc}{\contentsline {paragraph}{5.5.8 (-c)Reporting the number of overlapping features}{35}{paragraph*.66}} +\newlabel{content/windowBed:c-reporting-the-number-of-overlapping-features}{{2.5.1}{35}{5.5.8 (-c)Reporting the number of overlapping features\relax }{paragraph*.66}{}} +\@writefile{toc}{\contentsline {paragraph}{5.5.9 (-v)Reporting the absence of any overlapping features}{35}{paragraph*.67}} +\newlabel{content/windowBed:v-reporting-the-absence-of-any-overlapping-features}{{2.5.1}{35}{5.5.9 (-v)Reporting the absence of any overlapping features\relax }{paragraph*.67}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.6 closestBed}{35}{subsubsection*.68}} +\newlabel{content/closestBed:closestbed}{{2.5.1}{35}{5.6 closestBed\relax }{subsubsection*.68}{}} +\newlabel{content/closestBed::doc}{{2.5.1}{35}{5.6 closestBed\relax }{subsubsection*.68}{}} +\@writefile{toc}{\contentsline {paragraph}{5.6.1 Usage and option summary}{35}{paragraph*.69}} +\newlabel{content/closestBed:usage-and-option-summary}{{2.5.1}{35}{5.6.1 Usage and option summary\relax }{paragraph*.69}{}} +\@writefile{toc}{\contentsline {paragraph}{5.6.2 Default behavior}{36}{paragraph*.70}} +\newlabel{content/closestBed:default-behavior}{{2.5.1}{36}{5.6.2 Default behavior\relax }{paragraph*.70}{}} +\@writefile{toc}{\contentsline {paragraph}{5.6.3 (-s)Enforcing ``strandedness''}{36}{paragraph*.71}} +\newlabel{content/closestBed:s-enforcing-strandedness}{{2.5.1}{36}{5.6.3 (-s)Enforcing ``strandedness''\relax }{paragraph*.71}{}} +\@writefile{toc}{\contentsline {paragraph}{5.6.4 (-t)Controlling how ties for ``closest'' are broken}{37}{paragraph*.72}} +\newlabel{content/closestBed:t-controlling-how-ties-for-closest-are-broken}{{2.5.1}{37}{5.6.4 (-t)Controlling how ties for ``closest'' are broken\relax }{paragraph*.72}{}} +\@writefile{toc}{\contentsline {paragraph}{5.6.5 (-d)Reporting the distance to the closest feature in base pairs}{37}{paragraph*.73}} +\newlabel{content/closestBed:d-reporting-the-distance-to-the-closest-feature-in-base-pairs}{{2.5.1}{37}{5.6.5 (-d)Reporting the distance to the closest feature in base pairs\relax }{paragraph*.73}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.7 subtractBed}{37}{subsubsection*.74}} +\newlabel{content/subtractBed:subtractbed}{{2.5.1}{37}{5.7 subtractBed\relax }{subsubsection*.74}{}} +\newlabel{content/subtractBed::doc}{{2.5.1}{37}{5.7 subtractBed\relax }{subsubsection*.74}{}} +\@writefile{toc}{\contentsline {paragraph}{5.7.1 Usage and option summary}{38}{paragraph*.75}} +\newlabel{content/subtractBed:usage-and-option-summary}{{2.5.1}{38}{5.7.1 Usage and option summary\relax }{paragraph*.75}{}} +\@writefile{toc}{\contentsline {paragraph}{5.7.2 Default behavior}{38}{paragraph*.76}} +\newlabel{content/subtractBed:default-behavior}{{2.5.1}{38}{5.7.2 Default behavior\relax }{paragraph*.76}{}} +\@writefile{toc}{\contentsline {paragraph}{5.7.3 (-f)Requiring a minimal overlap fraction before subtracting}{38}{paragraph*.77}} +\newlabel{content/subtractBed:f-requiring-a-minimal-overlap-fraction-before-subtracting}{{2.5.1}{38}{5.7.3 (-f)Requiring a minimal overlap fraction before subtracting\relax }{paragraph*.77}{}} +\@writefile{toc}{\contentsline {paragraph}{5.7.4 (-s)Enforcing ``strandedness''}{39}{paragraph*.78}} +\newlabel{content/subtractBed:s-enforcing-strandedness}{{2.5.1}{39}{5.7.4 (-s)Enforcing ``strandedness''\relax }{paragraph*.78}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.8 mergeBed}{39}{subsubsection*.79}} +\newlabel{content/mergeBed:mergebed}{{2.5.1}{39}{5.8 mergeBed\relax }{subsubsection*.79}{}} +\newlabel{content/mergeBed::doc}{{2.5.1}{39}{5.8 mergeBed\relax }{subsubsection*.79}{}} +\@writefile{toc}{\contentsline {paragraph}{5.8.1 Usage and option summary}{39}{paragraph*.80}} +\newlabel{content/mergeBed:usage-and-option-summary}{{2.5.1}{39}{5.8.1 Usage and option summary\relax }{paragraph*.80}{}} +\@writefile{toc}{\contentsline {paragraph}{5.8.2 Default behavior}{39}{paragraph*.81}} +\newlabel{content/mergeBed:default-behavior}{{2.5.1}{39}{5.8.2 Default behavior\relax }{paragraph*.81}{}} +\@writefile{toc}{\contentsline {paragraph}{5.8.3 (-s)Enforcing ``strandedness''}{39}{paragraph*.82}} +\newlabel{content/mergeBed:s-enforcing-strandedness}{{2.5.1}{39}{5.8.3 (-s)Enforcing ``strandedness''\relax }{paragraph*.82}{}} +\@writefile{toc}{\contentsline {paragraph}{5.8.4 (-n)Reporting the number of features that were merged}{40}{paragraph*.83}} +\newlabel{content/mergeBed:n-reporting-the-number-of-features-that-were-merged}{{2.5.1}{40}{5.8.4 (-n)Reporting the number of features that were merged\relax }{paragraph*.83}{}} +\@writefile{toc}{\contentsline {paragraph}{5.8.5 (-d)Controlling how close two features must be in order to merge}{40}{paragraph*.84}} +\newlabel{content/mergeBed:d-controlling-how-close-two-features-must-be-in-order-to-merge}{{2.5.1}{40}{5.8.5 (-d)Controlling how close two features must be in order to merge\relax }{paragraph*.84}{}} +\@writefile{toc}{\contentsline {paragraph}{5.8.6 (-nms)Reporting the names of the features that were merged}{40}{paragraph*.85}} +\newlabel{content/mergeBed:nms-reporting-the-names-of-the-features-that-were-merged}{{2.5.1}{40}{5.8.6 (-nms)Reporting the names of the features that were merged\relax }{paragraph*.85}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.9 coverageBed}{41}{subsubsection*.86}} +\newlabel{content/coverageBed:coveragebed}{{2.5.1}{41}{5.9 coverageBed\relax }{subsubsection*.86}{}} +\newlabel{content/coverageBed::doc}{{2.5.1}{41}{5.9 coverageBed\relax }{subsubsection*.86}{}} +\@writefile{toc}{\contentsline {paragraph}{5.9.1 Usage and option summary}{41}{paragraph*.87}} +\newlabel{content/coverageBed:usage-and-option-summary}{{2.5.1}{41}{5.9.1 Usage and option summary\relax }{paragraph*.87}{}} +\@writefile{toc}{\contentsline {paragraph}{5.9.2 Default behavior}{41}{paragraph*.88}} +\newlabel{content/coverageBed:default-behavior}{{2.5.1}{41}{5.9.2 Default behavior\relax }{paragraph*.88}{}} +\@writefile{toc}{\contentsline {paragraph}{5.9.4 (-s)Calculating coverage by strand}{42}{paragraph*.89}} +\newlabel{content/coverageBed:s-calculating-coverage-by-strand}{{2.5.1}{42}{5.9.4 (-s)Calculating coverage by strand\relax }{paragraph*.89}{}} +\@writefile{toc}{\contentsline {paragraph}{5.9.5 (-hist)Creating a histogram of coverage for each feature in the B file}{43}{paragraph*.90}} +\newlabel{content/coverageBed:hist-creating-a-histogram-of-coverage-for-each-feature-in-the-b-file}{{2.5.1}{43}{5.9.5 (-hist)Creating a histogram of coverage for each feature in the B file\relax }{paragraph*.90}{}} +\@writefile{toc}{\contentsline {paragraph}{5.9.6 (-hist)Reporting the per-base of coverage for each feature in the B file}{43}{paragraph*.91}} +\newlabel{content/coverageBed:hist-reporting-the-per-base-of-coverage-for-each-feature-in-the-b-file}{{2.5.1}{43}{5.9.6 (-hist)Reporting the per-base of coverage for each feature in the B file\relax }{paragraph*.91}{}} +\@writefile{toc}{\contentsline {paragraph}{5.9.7 (-split)Reporting coverage with spliced alignments or blocked BED features}{44}{paragraph*.92}} +\newlabel{content/coverageBed:split-reporting-coverage-with-spliced-alignments-or-blocked-bed-features}{{2.5.1}{44}{5.9.7 (-split)Reporting coverage with spliced alignments or blocked BED features\relax }{paragraph*.92}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.10 genomeCoverageBed}{44}{subsubsection*.93}} +\newlabel{content/genomecoverageBed:genomecoveragebed}{{2.5.1}{44}{5.10 genomeCoverageBed\relax }{subsubsection*.93}{}} +\newlabel{content/genomecoverageBed::doc}{{2.5.1}{44}{5.10 genomeCoverageBed\relax }{subsubsection*.93}{}} +\@writefile{toc}{\contentsline {paragraph}{5.10.1 Usage and option summary}{44}{paragraph*.94}} +\newlabel{content/genomecoverageBed:usage-and-option-summary}{{2.5.1}{44}{5.10.1 Usage and option summary\relax }{paragraph*.94}{}} +\@writefile{toc}{\contentsline {paragraph}{5.10.2 Default behavior}{45}{paragraph*.95}} +\newlabel{content/genomecoverageBed:default-behavior}{{2.5.1}{45}{5.10.2 Default behavior\relax }{paragraph*.95}{}} +\@writefile{toc}{\contentsline {paragraph}{5.10.3 (-max)Controlling the histogram's maximum depth}{46}{paragraph*.96}} +\newlabel{content/genomecoverageBed:max-controlling-the-histogram-s-maximum-depth}{{2.5.1}{46}{5.10.3 (-max)Controlling the histogram's maximum depth\relax }{paragraph*.96}{}} +\@writefile{toc}{\contentsline {paragraph}{5.10.4 (-d)Reporting ``per-base'' genome coverage}{46}{paragraph*.97}} +\newlabel{content/genomecoverageBed:d-reporting-per-base-genome-coverage}{{2.5.1}{46}{5.10.4 (-d)Reporting ``per-base'' genome coverage\relax }{paragraph*.97}{}} +\@writefile{toc}{\contentsline {paragraph}{5.1.13 (-split)Reporting coverage with spliced alignments or blocked BED features}{46}{paragraph*.98}} +\newlabel{content/genomecoverageBed:split-reporting-coverage-with-spliced-alignments-or-blocked-bed-features}{{2.5.1}{46}{5.1.13 (-split)Reporting coverage with spliced alignments or blocked BED features\relax }{paragraph*.98}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.11 fastaFromBed}{46}{subsubsection*.99}} +\newlabel{content/fastafromBed:fastafrombed}{{2.5.1}{46}{5.11 fastaFromBed\relax }{subsubsection*.99}{}} +\newlabel{content/fastafromBed::doc}{{2.5.1}{46}{5.11 fastaFromBed\relax }{subsubsection*.99}{}} +\@writefile{toc}{\contentsline {paragraph}{5.11.1 Usage and option summary}{47}{paragraph*.100}} +\newlabel{content/fastafromBed:usage-and-option-summary}{{2.5.1}{47}{5.11.1 Usage and option summary\relax }{paragraph*.100}{}} +\@writefile{toc}{\contentsline {paragraph}{5.11.2 Default behavior}{47}{paragraph*.101}} +\newlabel{content/fastafromBed:default-behavior}{{2.5.1}{47}{5.11.2 Default behavior\relax }{paragraph*.101}{}} +\@writefile{toc}{\contentsline {paragraph}{5.11.3 Using the BED ``name'' column as a FASTA header.}{47}{paragraph*.102}} +\newlabel{content/fastafromBed:using-the-bed-name-column-as-a-fasta-header}{{2.5.1}{47}{5.11.3 Using the BED ``name'' column as a FASTA header}{paragraph*.102}{}} +\@writefile{toc}{\contentsline {paragraph}{5.11.4 Creating a tab-delimited output file in lieu of FASTA output.}{48}{paragraph*.103}} +\newlabel{content/fastafromBed:creating-a-tab-delimited-output-file-in-lieu-of-fasta-output}{{2.5.1}{48}{5.11.4 Creating a tab-delimited output file in lieu of FASTA output}{paragraph*.103}{}} +\@writefile{toc}{\contentsline {paragraph}{5.11.5 (-s)Forcing the extracted sequence to reflect the requested strand}{48}{paragraph*.104}} +\newlabel{content/fastafromBed:s-forcing-the-extracted-sequence-to-reflect-the-requested-strand}{{2.5.1}{48}{5.11.5 (-s)Forcing the extracted sequence to reflect the requested strand\relax }{paragraph*.104}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.12 maskFastaFromBed}{48}{subsubsection*.105}} +\newlabel{content/maskfastafromBed:maskfastafrombed}{{2.5.1}{48}{5.12 maskFastaFromBed\relax }{subsubsection*.105}{}} +\newlabel{content/maskfastafromBed::doc}{{2.5.1}{48}{5.12 maskFastaFromBed\relax }{subsubsection*.105}{}} +\@writefile{toc}{\contentsline {paragraph}{5.12.1 Usage and option summary}{48}{paragraph*.106}} +\newlabel{content/maskfastafromBed:usage-and-option-summary}{{2.5.1}{48}{5.12.1 Usage and option summary\relax }{paragraph*.106}{}} +\@writefile{toc}{\contentsline {paragraph}{5.12.2 Default behavior}{49}{paragraph*.107}} +\newlabel{content/maskfastafromBed:default-behavior}{{2.5.1}{49}{5.12.2 Default behavior\relax }{paragraph*.107}{}} +\@writefile{toc}{\contentsline {paragraph}{5.12.3 Soft-masking the FASTA file.}{49}{paragraph*.108}} +\newlabel{content/maskfastafromBed:soft-masking-the-fasta-file}{{2.5.1}{49}{5.12.3 Soft-masking the FASTA file}{paragraph*.108}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.13 shuffleBed}{49}{subsubsection*.109}} +\newlabel{content/shuffleBed:shufflebed}{{2.5.1}{49}{5.13 shuffleBed\relax }{subsubsection*.109}{}} +\newlabel{content/shuffleBed::doc}{{2.5.1}{49}{5.13 shuffleBed\relax }{subsubsection*.109}{}} +\@writefile{toc}{\contentsline {paragraph}{5.13.1 Usage and option summary}{49}{paragraph*.110}} +\newlabel{content/shuffleBed:usage-and-option-summary}{{2.5.1}{49}{5.13.1 Usage and option summary\relax }{paragraph*.110}{}} +\@writefile{toc}{\contentsline {paragraph}{5.13.2 Default behavior}{50}{paragraph*.111}} +\newlabel{content/shuffleBed:default-behavior}{{2.5.1}{50}{5.13.2 Default behavior\relax }{paragraph*.111}{}} +\@writefile{toc}{\contentsline {paragraph}{5.13.3 (-chrom)Requiring that features be shuffled on the same chromosome}{50}{paragraph*.112}} +\newlabel{content/shuffleBed:chrom-requiring-that-features-be-shuffled-on-the-same-chromosome}{{2.5.1}{50}{5.13.3 (-chrom)Requiring that features be shuffled on the same chromosome\relax }{paragraph*.112}{}} +\@writefile{toc}{\contentsline {paragraph}{5.13.4 Excluding certain genome regions from shuffleBed}{51}{paragraph*.113}} +\newlabel{content/shuffleBed:excluding-certain-genome-regions-from-shufflebed}{{2.5.1}{51}{5.13.4 Excluding certain genome regions from shuffleBed\relax }{paragraph*.113}{}} +\@writefile{toc}{\contentsline {paragraph}{5.13.5 Defining a ``seed'' for the random replacement.}{51}{paragraph*.114}} +\newlabel{content/shuffleBed:defining-a-seed-for-the-random-replacement}{{2.5.1}{51}{5.13.5 Defining a ``seed'' for the random replacement}{paragraph*.114}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.14 slopBed}{52}{subsubsection*.115}} +\newlabel{content/slopBed:slopbed}{{2.5.1}{52}{5.14 slopBed\relax }{subsubsection*.115}{}} +\newlabel{content/slopBed::doc}{{2.5.1}{52}{5.14 slopBed\relax }{subsubsection*.115}{}} +\@writefile{toc}{\contentsline {paragraph}{5.14.1 Usage and option summary}{52}{paragraph*.116}} +\newlabel{content/slopBed:usage-and-option-summary}{{2.5.1}{52}{5.14.1 Usage and option summary\relax }{paragraph*.116}{}} +\@writefile{toc}{\contentsline {paragraph}{5.14.2 Default behavior}{52}{paragraph*.117}} +\newlabel{content/slopBed:default-behavior}{{2.5.1}{52}{5.14.2 Default behavior\relax }{paragraph*.117}{}} +\@writefile{toc}{\contentsline {paragraph}{5.14.3 Resizing features according to strand}{53}{paragraph*.118}} +\newlabel{content/slopBed:resizing-features-according-to-strand}{{2.5.1}{53}{5.14.3 Resizing features according to strand\relax }{paragraph*.118}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.15 sortBed}{53}{subsubsection*.119}} +\newlabel{content/sortBed::doc}{{2.5.1}{53}{5.15 sortBed\relax }{subsubsection*.119}{}} +\newlabel{content/sortBed:sortbed}{{2.5.1}{53}{5.15 sortBed\relax }{subsubsection*.119}{}} +\@writefile{toc}{\contentsline {paragraph}{5.15.1 Usage and option summary}{53}{paragraph*.120}} +\newlabel{content/sortBed:usage-and-option-summary}{{2.5.1}{53}{5.15.1 Usage and option summary\relax }{paragraph*.120}{}} +\@writefile{toc}{\contentsline {paragraph}{5.15.2 Default behavior}{54}{paragraph*.121}} +\newlabel{content/sortBed:default-behavior}{{2.5.1}{54}{5.15.2 Default behavior\relax }{paragraph*.121}{}} +\@writefile{toc}{\contentsline {paragraph}{5.15.3 Optional sorting behavior}{54}{paragraph*.122}} +\newlabel{content/sortBed:optional-sorting-behavior}{{2.5.1}{54}{5.15.3 Optional sorting behavior\relax }{paragraph*.122}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.16 linksBed}{54}{subsubsection*.123}} +\newlabel{content/linksBed:linksbed}{{2.5.1}{54}{5.16 linksBed\relax }{subsubsection*.123}{}} +\newlabel{content/linksBed::doc}{{2.5.1}{54}{5.16 linksBed\relax }{subsubsection*.123}{}} +\@writefile{toc}{\contentsline {paragraph}{5.16.1 Usage and option summary}{54}{paragraph*.124}} +\newlabel{content/linksBed:usage-and-option-summary}{{2.5.1}{54}{5.16.1 Usage and option summary\relax }{paragraph*.124}{}} +\@writefile{toc}{\contentsline {paragraph}{5.16.2 Default behavior}{55}{paragraph*.125}} +\newlabel{content/linksBed:default-behavior}{{2.5.1}{55}{5.16.2 Default behavior\relax }{paragraph*.125}{}} +\@writefile{toc}{\contentsline {paragraph}{5.16.3 Creating HTML links to a local UCSC Browser installation}{55}{paragraph*.126}} +\newlabel{content/linksBed:creating-html-links-to-a-local-ucsc-browser-installation}{{2.5.1}{55}{5.16.3 Creating HTML links to a local UCSC Browser installation\relax }{paragraph*.126}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.17 complementBed}{55}{subsubsection*.127}} +\newlabel{content/complementBed:complementbed}{{2.5.1}{55}{5.17 complementBed\relax }{subsubsection*.127}{}} +\newlabel{content/complementBed::doc}{{2.5.1}{55}{5.17 complementBed\relax }{subsubsection*.127}{}} +\@writefile{toc}{\contentsline {paragraph}{5.17.1 Usage and option summary}{56}{paragraph*.128}} +\newlabel{content/complementBed:usage-and-option-summary}{{2.5.1}{56}{5.17.1 Usage and option summary\relax }{paragraph*.128}{}} +\@writefile{toc}{\contentsline {paragraph}{5.17.2 Default behavior}{56}{paragraph*.129}} +\newlabel{content/complementBed:default-behavior}{{2.5.1}{56}{5.17.2 Default behavior\relax }{paragraph*.129}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.18 bedToBam}{56}{subsubsection*.130}} +\newlabel{content/bedToBam::doc}{{2.5.1}{56}{5.18 bedToBam\relax }{subsubsection*.130}{}} +\newlabel{content/bedToBam:bedtobam}{{2.5.1}{56}{5.18 bedToBam\relax }{subsubsection*.130}{}} +\@writefile{toc}{\contentsline {paragraph}{5.18.1 Usage and option summary}{56}{paragraph*.131}} +\newlabel{content/bedToBam:usage-and-option-summary}{{2.5.1}{56}{5.18.1 Usage and option summary\relax }{paragraph*.131}{}} +\@writefile{toc}{\contentsline {paragraph}{5.18.2 Default behavior}{57}{paragraph*.132}} +\newlabel{content/bedToBam:default-behavior}{{2.5.1}{57}{5.18.2 Default behavior\relax }{paragraph*.132}{}} +\@writefile{toc}{\contentsline {paragraph}{5.18.3 Creating ``spliced'' BAM entries from ``blocked'' BED features}{57}{paragraph*.133}} +\newlabel{content/bedToBam:creating-spliced-bam-entries-from-blocked-bed-features}{{2.5.1}{57}{5.18.3 Creating ``spliced'' BAM entries from ``blocked'' BED features\relax }{paragraph*.133}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.19 overlap}{57}{subsubsection*.134}} +\newlabel{content/overlap::doc}{{2.5.1}{57}{5.19 overlap\relax }{subsubsection*.134}{}} +\newlabel{content/overlap:overlap}{{2.5.1}{57}{5.19 overlap\relax }{subsubsection*.134}{}} +\@writefile{toc}{\contentsline {paragraph}{5.19.1 Usage and option summary}{57}{paragraph*.135}} +\newlabel{content/overlap:usage-and-option-summary}{{2.5.1}{57}{5.19.1 Usage and option summary\relax }{paragraph*.135}{}} +\@writefile{toc}{\contentsline {paragraph}{5.19.2 Default behavior}{58}{paragraph*.136}} +\newlabel{content/overlap:default-behavior}{{2.5.1}{58}{5.19.2 Default behavior\relax }{paragraph*.136}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.20 bedToIgv}{58}{subsubsection*.137}} +\newlabel{content/bedToIgv:bedtoigv}{{2.5.1}{58}{5.20 bedToIgv\relax }{subsubsection*.137}{}} +\newlabel{content/bedToIgv::doc}{{2.5.1}{58}{5.20 bedToIgv\relax }{subsubsection*.137}{}} +\@writefile{toc}{\contentsline {paragraph}{5.20.1 Usage and option summary}{58}{paragraph*.138}} +\newlabel{content/bedToIgv:usage-and-option-summary}{{2.5.1}{58}{5.20.1 Usage and option summary\relax }{paragraph*.138}{}} +\@writefile{toc}{\contentsline {paragraph}{5.20.2 Default behavior}{59}{paragraph*.139}} +\newlabel{content/bedToIgv:default-behavior}{{2.5.1}{59}{5.20.2 Default behavior\relax }{paragraph*.139}{}} +\@writefile{toc}{\contentsline {paragraph}{5.20.3 Using a bedToIgv batch script within IGV.}{59}{paragraph*.140}} +\newlabel{content/bedToIgv:using-a-bedtoigv-batch-script-within-igv}{{2.5.1}{59}{5.20.3 Using a bedToIgv batch script within IGV}{paragraph*.140}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.21 bed12ToBed6}{59}{subsubsection*.141}} +\newlabel{content/bed12ToBed6::doc}{{2.5.1}{59}{5.21 bed12ToBed6\relax }{subsubsection*.141}{}} +\newlabel{content/bed12ToBed6:bed12tobed6}{{2.5.1}{59}{5.21 bed12ToBed6\relax }{subsubsection*.141}{}} +\@writefile{toc}{\contentsline {paragraph}{5.21.1 Usage and option summary}{59}{paragraph*.142}} +\newlabel{content/bed12ToBed6:usage-and-option-summary}{{2.5.1}{59}{5.21.1 Usage and option summary\relax }{paragraph*.142}{}} +\@writefile{toc}{\contentsline {paragraph}{5.21.2 Default behavior}{59}{paragraph*.143}} +\newlabel{content/bed12ToBed6:default-behavior}{{2.5.1}{59}{5.21.2 Default behavior\relax }{paragraph*.143}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.22 groupBy}{60}{subsubsection*.144}} +\newlabel{content/groupBy::doc}{{2.5.1}{60}{5.22 groupBy\relax }{subsubsection*.144}{}} +\newlabel{content/groupBy:groupby}{{2.5.1}{60}{5.22 groupBy\relax }{subsubsection*.144}{}} +\@writefile{toc}{\contentsline {paragraph}{5.22.1 Usage and option summary}{60}{paragraph*.145}} +\newlabel{content/groupBy:usage-and-option-summary}{{2.5.1}{60}{5.22.1 Usage and option summary\relax }{paragraph*.145}{}} +\@writefile{toc}{\contentsline {paragraph}{5.22.2 Default behavior.}{61}{paragraph*.146}} +\newlabel{content/groupBy:default-behavior}{{2.5.1}{61}{5.22.2 Default behavior}{paragraph*.146}{}} +\@writefile{toc}{\contentsline {paragraph}{5.22.3 Computing the min and max.}{62}{paragraph*.147}} +\newlabel{content/groupBy:computing-the-min-and-max}{{2.5.1}{62}{5.22.3 Computing the min and max}{paragraph*.147}{}} +\@writefile{toc}{\contentsline {paragraph}{5.22.4 Computing the mean and median.}{62}{paragraph*.148}} +\newlabel{content/groupBy:computing-the-mean-and-median}{{2.5.1}{62}{5.22.4 Computing the mean and median}{paragraph*.148}{}} +\@writefile{toc}{\contentsline {paragraph}{5.22.5 Computing the mode and ``antimode''.}{63}{paragraph*.149}} +\newlabel{content/groupBy:computing-the-mode-and-antimode}{{2.5.1}{63}{5.22.5 Computing the mode and ``antimode''}{paragraph*.149}{}} +\@writefile{toc}{\contentsline {paragraph}{5.22.6 Computing the count of lines for a given group.}{63}{paragraph*.150}} +\newlabel{content/groupBy:computing-the-count-of-lines-for-a-given-group}{{2.5.1}{63}{5.22.6 Computing the count of lines for a given group}{paragraph*.150}{}} +\@writefile{toc}{\contentsline {paragraph}{5.22.7 Collapsing: listing all of the values in the opCol for a given group.}{63}{paragraph*.151}} +\newlabel{content/groupBy:collapsing-listing-all-of-the-values-in-the-opcol-for-a-given-group}{{2.5.1}{63}{5.22.7 Collapsing: listing all of the values in the opCol for a given group}{paragraph*.151}{}} +\@writefile{toc}{\contentsline {paragraph}{5.22.8 Computing frequencies: freqasc and freqdesc.}{63}{paragraph*.152}} +\newlabel{content/groupBy:computing-frequencies-freqasc-and-freqdesc}{{2.5.1}{63}{5.22.8 Computing frequencies: freqasc and freqdesc}{paragraph*.152}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.23 unionBedGraphs}{64}{subsubsection*.153}} +\newlabel{content/unionBedGraphs:unionbedgraphs}{{2.5.1}{64}{5.23 unionBedGraphs\relax }{subsubsection*.153}{}} +\newlabel{content/unionBedGraphs::doc}{{2.5.1}{64}{5.23 unionBedGraphs\relax }{subsubsection*.153}{}} +\@writefile{toc}{\contentsline {paragraph}{5.23.1 Usage and option summary}{64}{paragraph*.154}} +\newlabel{content/unionBedGraphs:usage-and-option-summary}{{2.5.1}{64}{5.23.1 Usage and option summary\relax }{paragraph*.154}{}} +\@writefile{toc}{\contentsline {paragraph}{5.23.2 Default behavior}{64}{paragraph*.155}} +\newlabel{content/unionBedGraphs:default-behavior}{{2.5.1}{64}{5.23.2 Default behavior\relax }{paragraph*.155}{}} +\@writefile{toc}{\contentsline {paragraph}{5.23.3 Add a header line to the output}{65}{paragraph*.156}} +\newlabel{content/unionBedGraphs:add-a-header-line-to-the-output}{{2.5.1}{65}{5.23.3 Add a header line to the output\relax }{paragraph*.156}{}} +\@writefile{toc}{\contentsline {paragraph}{5.23.4 Add a header line with custom file names to the output}{65}{paragraph*.157}} +\newlabel{content/unionBedGraphs:add-a-header-line-with-custom-file-names-to-the-output}{{2.5.1}{65}{5.23.4 Add a header line with custom file names to the output\relax }{paragraph*.157}{}} +\@writefile{toc}{\contentsline {paragraph}{5.23.5 Include regions that have zero coverage in all BEDGRAPH files.}{65}{paragraph*.158}} +\newlabel{content/unionBedGraphs:include-regions-that-have-zero-coverage-in-all-bedgraph-files}{{2.5.1}{65}{5.23.5 Include regions that have zero coverage in all BEDGRAPH files}{paragraph*.158}{}} +\@writefile{toc}{\contentsline {paragraph}{5.23.6 Use a custom value for missing values.}{65}{paragraph*.159}} +\newlabel{content/unionBedGraphs:use-a-custom-value-for-missing-values}{{2.5.1}{65}{5.23.6 Use a custom value for missing values}{paragraph*.159}{}} +\@writefile{toc}{\contentsline {paragraph}{5.23.7 Use BEDGRAPH files with non-numeric values.}{66}{paragraph*.160}} +\newlabel{content/unionBedGraphs:use-bedgraph-files-with-non-numeric-values}{{2.5.1}{66}{5.23.7 Use BEDGRAPH files with non-numeric values}{paragraph*.160}{}} +\@writefile{toc}{\contentsline {subsubsection}{5.24 annotateBed}{66}{subsubsection*.161}} +\newlabel{content/annotateBed::doc}{{2.5.1}{66}{5.24 annotateBed\relax }{subsubsection*.161}{}} +\newlabel{content/annotateBed:annotatebed}{{2.5.1}{66}{5.24 annotateBed\relax }{subsubsection*.161}{}} +\@writefile{toc}{\contentsline {paragraph}{5.24.1 Usage and option summary}{66}{paragraph*.162}} +\newlabel{content/annotateBed:usage-and-option-summary}{{2.5.1}{66}{5.24.1 Usage and option summary\relax }{paragraph*.162}{}} +\@writefile{toc}{\contentsline {paragraph}{5.24.2 Default behavior - annotate one file with coverage from others.}{67}{paragraph*.163}} +\newlabel{content/annotateBed:default-behavior-annotate-one-file-with-coverage-from-others}{{2.5.1}{67}{5.24.2 Default behavior - annotate one file with coverage from others}{paragraph*.163}{}} +\@writefile{toc}{\contentsline {paragraph}{5.24.3 Report the count of hits from the annotation files}{67}{paragraph*.164}} +\newlabel{content/annotateBed:report-the-count-of-hits-from-the-annotation-files}{{2.5.1}{67}{5.24.3 Report the count of hits from the annotation files\relax }{paragraph*.164}{}} +\@writefile{toc}{\contentsline {paragraph}{5.24.4 Report both the count of hits and the fraction covered from the annotation files}{67}{paragraph*.165}} +\newlabel{content/annotateBed:report-both-the-count-of-hits-and-the-fraction-covered-from-the-annotation-files}{{2.5.1}{67}{5.24.4 Report both the count of hits and the fraction covered from the annotation files\relax }{paragraph*.165}{}} +\@writefile{toc}{\contentsline {paragraph}{5.24.5 Restrict the reporting to overlaps on the same strand.}{68}{paragraph*.166}} +\newlabel{content/annotateBed:restrict-the-reporting-to-overlaps-on-the-same-strand}{{2.5.1}{68}{5.24.5 Restrict the reporting to overlaps on the same strand}{paragraph*.166}{}} +\@writefile{toc}{\contentsline {section}{\numberline {2.6}Example usage}{68}{section.2.6}} +\newlabel{content/example-usage:example-usage}{{2.6}{68}{Example usage\relax }{section.2.6}{}} +\newlabel{content/example-usage::doc}{{2.6}{68}{Example usage\relax }{section.2.6}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.6.1}6.1 intersectBed}{68}{subsection.2.6.1}} +\newlabel{content/example-usage:intersectbed}{{2.6.1}{68}{6.1 intersectBed\relax }{subsection.2.6.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.6.2}6.2 pairToBed}{69}{subsection.2.6.2}} +\newlabel{content/example-usage:pairtobed}{{2.6.2}{69}{6.2 pairToBed\relax }{subsection.2.6.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.6.3}6.3 pairToPair}{69}{subsection.2.6.3}} +\newlabel{content/example-usage:pairtopair}{{2.6.3}{69}{6.3 pairToPair\relax }{subsection.2.6.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.6.4}6.4 bamToBed}{69}{subsection.2.6.4}} +\newlabel{content/example-usage:bamtobed}{{2.6.4}{69}{6.4 bamToBed\relax }{subsection.2.6.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.6.5}6.5 windowBed}{70}{subsection.2.6.5}} +\newlabel{content/example-usage:windowbed}{{2.6.5}{70}{6.5 windowBed\relax }{subsection.2.6.5}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.6.6}6.6 closestBed}{70}{subsection.2.6.6}} +\newlabel{content/example-usage:closestbed}{{2.6.6}{70}{6.6 closestBed\relax }{subsection.2.6.6}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.6.7}6.7 subtractBed}{70}{subsection.2.6.7}} +\newlabel{content/example-usage:subtractbed}{{2.6.7}{70}{6.7 subtractBed\relax }{subsection.2.6.7}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.6.8}6.8 mergeBed}{70}{subsection.2.6.8}} +\newlabel{content/example-usage:mergebed}{{2.6.8}{70}{6.8 mergeBed\relax }{subsection.2.6.8}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.6.9}6.9 coverageBed}{71}{subsection.2.6.9}} +\newlabel{content/example-usage:coveragebed}{{2.6.9}{71}{6.9 coverageBed\relax }{subsection.2.6.9}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.6.10}6.10 complementBed}{71}{subsection.2.6.10}} +\newlabel{content/example-usage:complementbed}{{2.6.10}{71}{6.10 complementBed\relax }{subsection.2.6.10}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.6.11}6.11 shuffleBed}{71}{subsection.2.6.11}} +\newlabel{content/example-usage:shufflebed}{{2.6.11}{71}{6.11 shuffleBed\relax }{subsection.2.6.11}{}} +\@writefile{toc}{\contentsline {section}{\numberline {2.7}Advanced usage}{71}{section.2.7}} +\newlabel{content/advanced-usage::doc}{{2.7}{71}{Advanced usage\relax }{section.2.7}{}} +\newlabel{content/advanced-usage:advanced-usage}{{2.7}{71}{Advanced usage\relax }{section.2.7}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.1}7.1 Mask all regions in a genome except for targeted capture regions.}{71}{subsection.2.7.1}} +\newlabel{content/advanced-usage:mask-all-regions-in-a-genome-except-for-targeted-capture-regions}{{2.7.1}{71}{7.1 Mask all regions in a genome except for targeted capture regions}{subsection.2.7.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.2}7.2 Screening for novel SNPs.}{72}{subsection.2.7.2}} +\newlabel{content/advanced-usage:screening-for-novel-snps}{{2.7.2}{72}{7.2 Screening for novel SNPs}{subsection.2.7.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.3}7.4 Computing the coverage of BAM alignments on exons.}{72}{subsection.2.7.3}} +\newlabel{content/advanced-usage:computing-the-coverage-of-bam-alignments-on-exons}{{2.7.3}{72}{7.4 Computing the coverage of BAM alignments on exons}{subsection.2.7.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.4}7.5 Computing coverage separately for each strand.}{72}{subsection.2.7.4}} +\newlabel{content/advanced-usage:computing-coverage-separately-for-each-strand}{{2.7.4}{72}{7.5 Computing coverage separately for each strand}{subsection.2.7.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.5}7.6 Find structural variant calls that are private to one sample.}{72}{subsection.2.7.5}} +\newlabel{content/advanced-usage:find-structural-variant-calls-that-are-private-to-one-sample}{{2.7.5}{72}{7.6 Find structural variant calls that are private to one sample}{subsection.2.7.5}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.6}7.7 Exclude SV deletions that appear to be ALU insertions in the reference genome.}{73}{subsection.2.7.6}} +\newlabel{content/advanced-usage:exclude-sv-deletions-that-appear-to-be-alu-insertions-in-the-reference-genome}{{2.7.6}{73}{7.7 Exclude SV deletions that appear to be ALU insertions in the reference genome}{subsection.2.7.6}{}} +\@writefile{toc}{\contentsline {chapter}{\numberline {3}Mailing list}{75}{chapter.3}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{index:mailing-list}{{3}{75}{Mailing list\relax }{chapter.3}{}} diff --git a/docs/_build/latex/bedtools.idx b/docs/_build/latex/bedtools.idx new file mode 100644 index 00000000..e69de29b diff --git a/docs/_build/latex/bedtools.ilg b/docs/_build/latex/bedtools.ilg new file mode 100644 index 00000000..37d9dd58 --- /dev/null +++ b/docs/_build/latex/bedtools.ilg @@ -0,0 +1,5 @@ +This is makeindex, version 2.15 [TeX Live 2011] (kpathsea + Thai support). +Scanning style file ./python.ist......done (6 attributes redefined, 0 ignored). +Scanning input file bedtools.idx...done (0 entries accepted, 0 rejected). +Nothing written in bedtools.ind. +Transcript written in bedtools.ilg. diff --git a/docs/_build/latex/bedtools.ind b/docs/_build/latex/bedtools.ind new file mode 100644 index 00000000..e69de29b diff --git a/docs/_build/latex/bedtools.log b/docs/_build/latex/bedtools.log new file mode 100644 index 00000000..ea7d0c75 --- /dev/null +++ b/docs/_build/latex/bedtools.log @@ -0,0 +1,1131 @@ +This is pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011) (format=pdflatex 2011.7.3) 21 JUL 2012 11:01 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**bedtools.tex +(./bedtools.tex +LaTeX2e <2009/09/24> +Babel <v3.8l> and hyphenation patterns for english, dumylang, nohyphenation, ge +rman-x-2009-06-19, ngerman-x-2009-06-19, afrikaans, ancientgreek, ibycus, arabi +c, armenian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danis +h, dutch, ukenglish, usenglishmax, esperanto, estonian, ethiopic, farsi, finnis +h, french, galician, german, ngerman, swissgerman, monogreek, greek, hungarian, + icelandic, assamese, bengali, gujarati, hindi, kannada, malayalam, marathi, or +iya, panjabi, tamil, telugu, indonesian, interlingua, irish, italian, kurmanji, + lao, latin, latvian, lithuanian, mongolian, mongolianlmc, bokmal, nynorsk, pol +ish, portuguese, romanian, russian, sanskrit, serbian, serbianc, slovak, sloven +ian, spanish, swedish, turkish, turkmen, ukrainian, uppersorbian, welsh, loaded +. +(./sphinxmanual.cls +Document Class: sphinxmanual 2009/06/02 Document class (Sphinx manual) +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/report.cls +Document Class: report 2007/10/19 v1.4h Standard LaTeX document class +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option) +) +\c@part=\count79 +\c@chapter=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +)) +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2008/03/30 v1.1d Input encoding file +\inpenc@prehook=\toks14 +\inpenc@posthook=\toks15 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/utf8.def +File: utf8.def 2008/04/05 v1.1m UTF-8 support for inputenc +Now handling font encoding OML ... +... no UTF-8 mapping file for font encoding OML +Now handling font encoding T1 ... +... processing UTF-8 mapping file for font encoding T1 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/t1enc.dfu +File: t1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc + defining Unicode char U+00A1 (decimal 161) + defining Unicode char U+00A3 (decimal 163) + defining Unicode char U+00AB (decimal 171) + defining Unicode char U+00BB (decimal 187) + defining Unicode char U+00BF (decimal 191) + defining Unicode char U+00C0 (decimal 192) + defining Unicode char U+00C1 (decimal 193) + defining Unicode char U+00C2 (decimal 194) + defining Unicode char U+00C3 (decimal 195) + defining Unicode char U+00C4 (decimal 196) + defining Unicode char U+00C5 (decimal 197) + defining Unicode char U+00C6 (decimal 198) + defining Unicode char U+00C7 (decimal 199) + defining Unicode char U+00C8 (decimal 200) + defining Unicode char U+00C9 (decimal 201) + defining Unicode char U+00CA (decimal 202) + defining Unicode char U+00CB (decimal 203) + defining Unicode char U+00CC (decimal 204) + defining Unicode char U+00CD (decimal 205) + defining Unicode char U+00CE (decimal 206) + defining Unicode char U+00CF (decimal 207) + defining Unicode char U+00D0 (decimal 208) + defining Unicode char U+00D1 (decimal 209) + defining Unicode char U+00D2 (decimal 210) + defining Unicode char U+00D3 (decimal 211) + defining Unicode char U+00D4 (decimal 212) + defining Unicode char U+00D5 (decimal 213) + defining Unicode char U+00D6 (decimal 214) + defining Unicode char U+00D8 (decimal 216) + defining Unicode char U+00D9 (decimal 217) + defining Unicode char U+00DA (decimal 218) + defining Unicode char U+00DB (decimal 219) + defining Unicode char U+00DC (decimal 220) + defining Unicode char U+00DD (decimal 221) + defining Unicode char U+00DE (decimal 222) + defining Unicode char U+00DF (decimal 223) + defining Unicode char U+00E0 (decimal 224) + defining Unicode char U+00E1 (decimal 225) + defining Unicode char U+00E2 (decimal 226) + defining Unicode char U+00E3 (decimal 227) + defining Unicode char U+00E4 (decimal 228) + defining Unicode char U+00E5 (decimal 229) + defining Unicode char U+00E6 (decimal 230) + defining Unicode char U+00E7 (decimal 231) + defining Unicode char U+00E8 (decimal 232) + defining Unicode char U+00E9 (decimal 233) + defining Unicode char U+00EA (decimal 234) + defining Unicode char U+00EB (decimal 235) + defining Unicode char U+00EC (decimal 236) + defining Unicode char U+00ED (decimal 237) + defining Unicode char U+00EE (decimal 238) + defining Unicode char U+00EF (decimal 239) + defining Unicode char U+00F0 (decimal 240) + defining Unicode char U+00F1 (decimal 241) + defining Unicode char U+00F2 (decimal 242) + defining Unicode char U+00F3 (decimal 243) + defining Unicode char U+00F4 (decimal 244) + defining Unicode char U+00F5 (decimal 245) + defining Unicode char U+00F6 (decimal 246) + defining Unicode char U+00F8 (decimal 248) + defining Unicode char U+00F9 (decimal 249) + defining Unicode char U+00FA (decimal 250) + defining Unicode char U+00FB (decimal 251) + defining Unicode char U+00FC (decimal 252) + defining Unicode char U+00FD (decimal 253) + defining Unicode char U+00FE (decimal 254) + defining Unicode char U+00FF (decimal 255) + defining Unicode char U+0102 (decimal 258) + defining Unicode char U+0103 (decimal 259) + defining Unicode char U+0104 (decimal 260) + defining Unicode char U+0105 (decimal 261) + defining Unicode char U+0106 (decimal 262) + defining Unicode char U+0107 (decimal 263) + defining Unicode char U+010C (decimal 268) + defining Unicode char U+010D (decimal 269) + defining Unicode char U+010E (decimal 270) + defining Unicode char U+010F (decimal 271) + defining Unicode char U+0110 (decimal 272) + defining Unicode char U+0111 (decimal 273) + defining Unicode char U+0118 (decimal 280) + defining Unicode char U+0119 (decimal 281) + defining Unicode char U+011A (decimal 282) + defining Unicode char U+011B (decimal 283) + defining Unicode char U+011E (decimal 286) + defining Unicode char U+011F (decimal 287) + defining Unicode char U+0130 (decimal 304) + defining Unicode char U+0131 (decimal 305) + defining Unicode char U+0132 (decimal 306) + defining Unicode char U+0133 (decimal 307) + defining Unicode char U+0139 (decimal 313) + defining Unicode char U+013A (decimal 314) + defining Unicode char U+013D (decimal 317) + defining Unicode char U+013E (decimal 318) + defining Unicode char U+0141 (decimal 321) + defining Unicode char U+0142 (decimal 322) + defining Unicode char U+0143 (decimal 323) + defining Unicode char U+0144 (decimal 324) + defining Unicode char U+0147 (decimal 327) + defining Unicode char U+0148 (decimal 328) + defining Unicode char U+014A (decimal 330) + defining Unicode char U+014B (decimal 331) + defining Unicode char U+0150 (decimal 336) + defining Unicode char U+0151 (decimal 337) + defining Unicode char U+0152 (decimal 338) + defining Unicode char U+0153 (decimal 339) + defining Unicode char U+0154 (decimal 340) + defining Unicode char U+0155 (decimal 341) + defining Unicode char U+0158 (decimal 344) + defining Unicode char U+0159 (decimal 345) + defining Unicode char U+015A (decimal 346) + defining Unicode char U+015B (decimal 347) + defining Unicode char U+015E (decimal 350) + defining Unicode char U+015F (decimal 351) + defining Unicode char U+0160 (decimal 352) + defining Unicode char U+0161 (decimal 353) + defining Unicode char U+0162 (decimal 354) + defining Unicode char U+0163 (decimal 355) + defining Unicode char U+0164 (decimal 356) + defining Unicode char U+0165 (decimal 357) + defining Unicode char U+016E (decimal 366) + defining Unicode char U+016F (decimal 367) + defining Unicode char U+0170 (decimal 368) + defining Unicode char U+0171 (decimal 369) + defining Unicode char U+0178 (decimal 376) + defining Unicode char U+0179 (decimal 377) + defining Unicode char U+017A (decimal 378) + defining Unicode char U+017B (decimal 379) + defining Unicode char U+017C (decimal 380) + defining Unicode char U+017D (decimal 381) + defining Unicode char U+017E (decimal 382) + defining Unicode char U+200C (decimal 8204) + defining Unicode char U+2013 (decimal 8211) + defining Unicode char U+2014 (decimal 8212) + defining Unicode char U+2018 (decimal 8216) + defining Unicode char U+2019 (decimal 8217) + defining Unicode char U+201A (decimal 8218) + defining Unicode char U+201C (decimal 8220) + defining Unicode char U+201D (decimal 8221) + defining Unicode char U+201E (decimal 8222) + defining Unicode char U+2030 (decimal 8240) + defining Unicode char U+2031 (decimal 8241) + defining Unicode char U+2039 (decimal 8249) + defining Unicode char U+203A (decimal 8250) + defining Unicode char U+2423 (decimal 9251) +) +Now handling font encoding OT1 ... +... processing UTF-8 mapping file for font encoding OT1 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/ot1enc.dfu +File: ot1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc + defining Unicode char U+00A1 (decimal 161) + defining Unicode char U+00A3 (decimal 163) + defining Unicode char U+00B8 (decimal 184) + defining Unicode char U+00BF (decimal 191) + defining Unicode char U+00C5 (decimal 197) + defining Unicode char U+00C6 (decimal 198) + defining Unicode char U+00D8 (decimal 216) + defining Unicode char U+00DF (decimal 223) + defining Unicode char U+00E6 (decimal 230) + defining Unicode char U+00EC (decimal 236) + defining Unicode char U+00ED (decimal 237) + defining Unicode char U+00EE (decimal 238) + defining Unicode char U+00EF (decimal 239) + defining Unicode char U+00F8 (decimal 248) + defining Unicode char U+0131 (decimal 305) + defining Unicode char U+0141 (decimal 321) + defining Unicode char U+0142 (decimal 322) + defining Unicode char U+0152 (decimal 338) + defining Unicode char U+0153 (decimal 339) + defining Unicode char U+2013 (decimal 8211) + defining Unicode char U+2014 (decimal 8212) + defining Unicode char U+2018 (decimal 8216) + defining Unicode char U+2019 (decimal 8217) + defining Unicode char U+201C (decimal 8220) + defining Unicode char U+201D (decimal 8221) +) +Now handling font encoding OMS ... +... processing UTF-8 mapping file for font encoding OMS + +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/omsenc.dfu +File: omsenc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc + defining Unicode char U+00A7 (decimal 167) + defining Unicode char U+00B6 (decimal 182) + defining Unicode char U+00B7 (decimal 183) + defining Unicode char U+2020 (decimal 8224) + defining Unicode char U+2021 (decimal 8225) + defining Unicode char U+2022 (decimal 8226) +) +Now handling font encoding OMX ... +... no UTF-8 mapping file for font encoding OMX +Now handling font encoding U ... +... no UTF-8 mapping file for font encoding U + defining Unicode char U+00A9 (decimal 169) + defining Unicode char U+00AA (decimal 170) + defining Unicode char U+00AE (decimal 174) + defining Unicode char U+00BA (decimal 186) + defining Unicode char U+02C6 (decimal 710) + defining Unicode char U+02DC (decimal 732) + defining Unicode char U+200C (decimal 8204) + defining Unicode char U+2026 (decimal 8230) + defining Unicode char U+2122 (decimal 8482) + defining Unicode char U+2423 (decimal 9251) +)) + defining Unicode char U+00A0 (decimal 160) + +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2005/09/27 v1.99g Standard LaTeX package + +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 43. +)) +(/usr/local/texlive/2011/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2008/07/06 v3.8l The Babel package + +(/usr/local/texlive/2011/texmf-dist/tex/generic/babel/english.ldf +Language: english 2005/03/30 v3.3o English support from the babel system + +(/usr/local/texlive/2011/texmf-dist/tex/generic/babel/babel.def +File: babel.def 2008/07/06 v3.8l Babel common definitions +\babel@savecnt=\count88 +\U@D=\dimen103 +) +\l@canadian = a dialect from \language\l@american +\l@australian = a dialect from \language\l@british +\l@newzealand = a dialect from \language\l@british +)) +(/usr/local/texlive/2011/texmf-dist/tex/latex/psnfss/times.sty +Package: times 2005/04/12 PSNFSS-v9.2a (SPQR) +) (./fncychap.sty +Package: fncychap 2007/07/30 v1.34 LaTeX package (Revised chapters) +\RW=\skip43 +\mylen=\skip44 +\myhi=\skip45 +\px=\skip46 +\py=\skip47 +\pyy=\skip48 +\pxx=\skip49 +\c@AlphaCnt=\count89 +\c@AlphaDecCnt=\count90 +) (/usr/local/texlive/2011/texmf-dist/tex/latex/tools/longtable.sty +Package: longtable 2004/02/01 v4.11 Multi-page Table package (DPC) +\LTleft=\skip50 +\LTright=\skip51 +\LTpre=\skip52 +\LTpost=\skip53 +\LTchunksize=\count91 +\LTcapwidth=\dimen104 +\LT@head=\box26 +\LT@firsthead=\box27 +\LT@foot=\box28 +\LT@lastfoot=\box29 +\LT@cols=\count92 +\LT@rows=\count93 +\c@LT@tables=\count94 +\c@LT@chunks=\count95 +\LT@p@ftn=\toks16 +) +(./sphinx.sty +Package: sphinx 2010/01/15 LaTeX package (Sphinx markup) + (/usr/local/texlive/2011/texmf-dist/tex/latex/base/textcomp.sty +Package: textcomp 2005/09/27 v1.99g Standard LaTeX package +Package textcomp Info: Sub-encoding information: +(textcomp) 5 = only ISO-Adobe without \textcurrency +(textcomp) 4 = 5 + \texteuro +(textcomp) 3 = 4 + \textohm +(textcomp) 2 = 3 + \textestimated + \textcurrency +(textcomp) 1 = TS1 - \textcircled - \t +(textcomp) 0 = TS1 (full) +(textcomp) Font families with sub-encoding setting implement +(textcomp) only a restricted character set as indicated. +(textcomp) Family '?' is the default used for unknown fonts. +(textcomp) See the documentation for details. +Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 71. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/ts1enc.def +File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file +Now handling font encoding TS1 ... +... processing UTF-8 mapping file for font encoding TS1 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/ts1enc.dfu +File: ts1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc + defining Unicode char U+00A2 (decimal 162) + defining Unicode char U+00A3 (decimal 163) + defining Unicode char U+00A4 (decimal 164) + defining Unicode char U+00A5 (decimal 165) + defining Unicode char U+00A6 (decimal 166) + defining Unicode char U+00A7 (decimal 167) + defining Unicode char U+00A8 (decimal 168) + defining Unicode char U+00A9 (decimal 169) + defining Unicode char U+00AA (decimal 170) + defining Unicode char U+00AC (decimal 172) + defining Unicode char U+00AE (decimal 174) + defining Unicode char U+00AF (decimal 175) + defining Unicode char U+00B0 (decimal 176) + defining Unicode char U+00B1 (decimal 177) + defining Unicode char U+00B2 (decimal 178) + defining Unicode char U+00B3 (decimal 179) + defining Unicode char U+00B4 (decimal 180) + defining Unicode char U+00B5 (decimal 181) + defining Unicode char U+00B6 (decimal 182) + defining Unicode char U+00B7 (decimal 183) + defining Unicode char U+00B9 (decimal 185) + defining Unicode char U+00BA (decimal 186) + defining Unicode char U+00BC (decimal 188) + defining Unicode char U+00BD (decimal 189) + defining Unicode char U+00BE (decimal 190) + defining Unicode char U+00D7 (decimal 215) + defining Unicode char U+00F7 (decimal 247) + defining Unicode char U+0192 (decimal 402) + defining Unicode char U+02C7 (decimal 711) + defining Unicode char U+02D8 (decimal 728) + defining Unicode char U+02DD (decimal 733) + defining Unicode char U+0E3F (decimal 3647) + defining Unicode char U+2016 (decimal 8214) + defining Unicode char U+2020 (decimal 8224) + defining Unicode char U+2021 (decimal 8225) + defining Unicode char U+2022 (decimal 8226) + defining Unicode char U+2030 (decimal 8240) + defining Unicode char U+2031 (decimal 8241) + defining Unicode char U+203B (decimal 8251) + defining Unicode char U+203D (decimal 8253) + defining Unicode char U+2044 (decimal 8260) + defining Unicode char U+204E (decimal 8270) + defining Unicode char U+2052 (decimal 8274) + defining Unicode char U+20A1 (decimal 8353) + defining Unicode char U+20A4 (decimal 8356) + defining Unicode char U+20A6 (decimal 8358) + defining Unicode char U+20A9 (decimal 8361) + defining Unicode char U+20AB (decimal 8363) + defining Unicode char U+20AC (decimal 8364) + defining Unicode char U+20B1 (decimal 8369) + defining Unicode char U+2103 (decimal 8451) + defining Unicode char U+2116 (decimal 8470) + defining Unicode char U+2117 (decimal 8471) + defining Unicode char U+211E (decimal 8478) + defining Unicode char U+2120 (decimal 8480) + defining Unicode char U+2122 (decimal 8482) + defining Unicode char U+2126 (decimal 8486) + defining Unicode char U+2127 (decimal 8487) + defining Unicode char U+212E (decimal 8494) + defining Unicode char U+2190 (decimal 8592) + defining Unicode char U+2191 (decimal 8593) + defining Unicode char U+2192 (decimal 8594) + defining Unicode char U+2193 (decimal 8595) + defining Unicode char U+2329 (decimal 9001) + defining Unicode char U+232A (decimal 9002) + defining Unicode char U+2422 (decimal 9250) + defining Unicode char U+25E6 (decimal 9702) + defining Unicode char U+25EF (decimal 9711) + defining Unicode char U+266A (decimal 9834) +)) +LaTeX Info: Redefining \oldstylenums on input line 266. +Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 281. +Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 282. +Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 283. +Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 284. +Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 285. +Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 286. +Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 287. +Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 288. +Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 289. +Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 290. +Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 291. +Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 292. +Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 293. +Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 294. +Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 295. +Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 296. +Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 297. +Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 298. +Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 299. +Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 300. +Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 301. +Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 302. +Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 303. +Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 304. + +Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 305. +Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 306. +Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 307. +Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 308. +Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 309. +Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 310. +Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 311. +Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 312. +Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 313. +Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 314. +Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 315. +Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 316. +Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 317. +Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 318. +Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 319. +Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 320. +Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 321. +Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 322. +Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 323. +Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 324. +Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 325. +Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 326. +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +\fancy@headwidth=\skip54 +\f@ncyO@elh=\skip55 +\f@ncyO@erh=\skip56 +\f@ncyO@olh=\skip57 +\f@ncyO@orh=\skip58 +\f@ncyO@elf=\skip59 +\f@ncyO@erf=\skip60 +\f@ncyO@olf=\skip61 +\f@ncyO@orf=\skip62 +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/fancybox/fancybox.sty +Package: fancybox 2010/05/15 1.4 + +Style option: `fancybox' v1.4 <2010/05/15> (tvz) +\@fancybox=\box30 +\shadowsize=\dimen105 +\@Sbox=\box31 +\do@VerbBox=\toks17 +\the@fancyput=\toks18 +\this@fancyput=\toks19 +\EndVerbatimTokens=\toks20 +\Verbatim@Outfile=\write3 +\Verbatim@Infile=\read1 +) (/usr/local/texlive/2011/texmf-dist/tex/latex/titlesec/titlesec.sty +Package: titlesec 2007/08/12 v2.8 Sectioning titles +\ttl@box=\box32 +\beforetitleunit=\skip63 +\aftertitleunit=\skip64 +\ttl@plus=\dimen106 +\ttl@minus=\dimen107 +\ttl@toksa=\toks21 +\titlewidth=\dimen108 +\titlewidthlast=\dimen109 +\titlewidthfirst=\dimen110 +) +(./tabulary.sty +Package: tabulary 2007/10/02 v0.9 tabulary package (DPC) + (/usr/local/texlive/2011/texmf-dist/tex/latex/tools/array.sty +Package: array 2008/09/09 v2.4c Tabular extension package (FMi) +\col@sep=\dimen111 +\extrarowheight=\dimen112 +\NC@list=\toks22 +\extratabsurround=\skip65 +\backup@length=\skip66 +) +\TY@count=\count96 +\TY@linewidth=\dimen113 +\tymin=\dimen114 +\tymax=\dimen115 +\TY@tablewidth=\dimen116 +) (/usr/local/texlive/2011/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2000/07/18 v2.13 AMS math features +\@mathmargin=\skip67 + +For additional information on amsmath, use the `?' option. +(/usr/local/texlive/2011/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 +\@emptytoks=\toks23 +\ex@=\dimen117 +)) +(/usr/local/texlive/2011/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d +\pmbraise@=\dimen118 +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 1999/12/14 v2.01 operator names +) +\inf@bad=\count97 +LaTeX Info: Redefining \frac on input line 211. +\uproot@=\count98 +\leftroot@=\count99 +LaTeX Info: Redefining \overline on input line 307. +\classnum@=\count100 +\DOTSCASE@=\count101 +LaTeX Info: Redefining \ldots on input line 379. +LaTeX Info: Redefining \dots on input line 382. +LaTeX Info: Redefining \cdots on input line 467. +\Mathstrutbox@=\box33 +\strutbox@=\box34 +\big@size=\dimen119 +LaTeX Font Info: Redeclaring font encoding OML on input line 567. +LaTeX Font Info: Redeclaring font encoding OMS on input line 568. +\macc@depth=\count102 +\c@MaxMatrixCols=\count103 +\dotsspace@=\muskip10 +\c@parentequation=\count104 +\dspbrk@lvl=\count105 +\tag@help=\toks24 +\row@=\count106 +\column@=\count107 +\maxfields@=\count108 +\andhelp@=\toks25 +\eqnshift@=\dimen120 +\alignsep@=\dimen121 +\tagshift@=\dimen122 +\tagwidth@=\dimen123 +\totwidth@=\dimen124 +\lineht@=\dimen125 +\@envbody=\toks26 +\multlinegap=\skip68 +\multlinetaggap=\skip69 +\mathdisplay@stack=\toks27 +LaTeX Info: Redefining \[ on input line 2666. +LaTeX Info: Redefining \] on input line 2667. +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/makeidx.sty +Package: makeidx 2000/03/29 v1.0m Standard LaTeX package +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/framed/framed.sty +Package: framed 2007/10/04 v 0.95: framed or shaded text with page breaks +\fb@frw=\dimen126 +\fb@frh=\dimen127 +\FrameRule=\dimen128 +\FrameSep=\dimen129 +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC) +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/graphics/color.sty +Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC) + +(/usr/local/texlive/2011/texmf-dist/tex/latex/latexconfig/color.cfg +File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive +) +Package color Info: Driver file: pdftex.def on input line 130. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/pdftex-def/pdftex.def +File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX + +(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2010/04/08 v1.3 Providing info/warning/message (HO) +) +(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2011/04/18 v1.20 LaTeX kernel commands for general use (HO) +) +\Gread@gobject=\count109 +)) +(/usr/local/texlive/2011/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty +Package: fancyvrb 2008/02/07 + +Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix +<2008/02/07> (tvz) +(/usr/local/texlive/2011/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks28 +) +\FV@CodeLineNo=\count110 +\FV@InFile=\read2 +\FV@TabBox=\box35 +\c@FancyVerbLine=\count111 +\FV@StepNumber=\count112 +\FV@OutFile=\write4 +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/threeparttable/threeparttable.sty +Package: threeparttable 2003/06/13 v 3.0 +\@tempboxb=\box36 +) (/usr/local/texlive/2011/texmf-dist/tex/latex/mdwtools/footnote.sty +Package: footnote 1997/01/28 1.13 Save footnotes around boxes +\fn@notes=\box37 +\fn@width=\dimen130 +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/wrapfig/wrapfig.sty +\wrapoverhang=\dimen131 +\WF@size=\dimen132 +\c@WF@wrappedlines=\count113 +\WF@box=\box38 +\WF@everypar=\toks29 +Package: wrapfig 2003/01/31 v 3.6 +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/parskip/parskip.sty +Package: parskip 2001/04/09 non-zero parskip adjustments +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2011/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2011/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/latexconfig/graphics.cfg +File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live +) +Package graphics Info: Driver file: pdftex.def on input line 91. +) +\Gin@req@height=\dimen133 +\Gin@req@width=\dimen134 +) +(/usr/local/texlive/2011/texmf-dist/tex/plain/misc/pdfcolor.tex) +\distancetoright=\skip70 +\py@argswidth=\skip71 +\py@noticelength=\skip72 +\lineblockindentation=\skip73 +\image@box=\box39 +\image@width=\dimen135 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2011/04/17 v6.82g Hypertext links for LaTeX + +(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +Package: hobsub-hyperref 2011/04/23 v1.4 Bundle oberdiek, subset hyperref (HO) + +(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +Package: hobsub-generic 2011/04/23 v1.4 Bundle oberdiek, subset generic (HO) +Package: hobsub 2011/04/23 v1.4 Subsetting bundle oberdiek (HO) +Package hobsub Info: Skipping package `infwarerr' (already loaded). +Package hobsub Info: Skipping package `ltxcmds' (already loaded). +Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +Package: ifvtex 2010/03/01 v1.5 Switches for detecting VTeX and its modes (HO) +Package ifvtex Info: VTeX not detected. +Package: intcalc 2007/09/27 v1.1 Expandable integer calculations (HO) +Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in PDF mode is detected. +Package: etexcmds 2011/02/16 v1.5 Prefix for e-TeX command names (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +Package: kvsetkeys 2011/04/07 v1.13 Key value parser (HO) +Package: kvdefinekeys 2011/04/07 v1.3 Defining keys (HO) +Package: pdftexcmds 2011/04/22 v0.16 Utilities of pdfTeX for LuaTeX (HO) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +Package: pdfescape 2011/04/04 v1.12 Provides string conversions (HO) +Package: bigintcalc 2011/01/30 v1.2 Expandable big integer calculations (HO) +Package: bitset 2011/01/30 v1.1 Data type bit set (HO) +Package: uniquecounter 2011/01/30 v1.2 Provides unlimited unique counter (HO) +) +Package hobsub Info: Skipping package `hobsub' (already loaded). +Package: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO) +Package: hopatch 2011/01/30 v1.0 Wrapper for package hooks (HO) +Package: xcolor-patch 2011/01/30 xcolor patch +Package: atveryend 2011/04/23 v1.7 Hooks at very end of document (HO) +Package atveryend Info: \enddocument detected (standard). +Package: atbegshi 2011/01/30 v1.15 At begin shipout hook (HO) +Package: refcount 2010/12/01 v3.2 Data extraction from references (HO) +Package: hycolor 2011/01/30 v1.7 Color options of hyperref/bookmark (HO) +) +(/usr/local/texlive/2011/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2010/12/23 v3.10 Keyval support for LaTeX options (HO) +) +\@linkdim=\dimen136 +\Hy@linkcounter=\count114 +\Hy@pagecounter=\count115 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2011/04/17 v6.82g Hyperref: PDFDocEncoding definition (HO) +Now handling font encoding PD1 ... +... no UTF-8 mapping file for font encoding PD1 +) +\Hy@SavedSpaceFactor=\count116 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +Package hyperref Info: Option `colorlinks' set `true' on input line 3905. +Package hyperref Info: Option `breaklinks' set `true' on input line 3905. +Package hyperref Info: Hyper figures OFF on input line 4026. +Package hyperref Info: Link nesting OFF on input line 4031. +Package hyperref Info: Hyper index ON on input line 4034. +Package hyperref Info: Plain pages OFF on input line 4041. +Package hyperref Info: Backreferencing OFF on input line 4046. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4264. +\c@Hy@tempcnt=\count117 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip11 +Package: url 2006/04/12 ver 3.3 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 4617. +\Fld@menulength=\count118 +\Field@Width=\dimen137 +\Fld@charsize=\dimen138 +Package hyperref Info: Hyper figures OFF on input line 5701. +Package hyperref Info: Link nesting OFF on input line 5706. +Package hyperref Info: Hyper index ON on input line 5709. +Package hyperref Info: backreferencing OFF on input line 5716. +Package hyperref Info: Link coloring ON on input line 5719. +Package hyperref Info: Link coloring with OCG OFF on input line 5726. +Package hyperref Info: PDF/A mode OFF on input line 5731. +LaTeX Info: Redefining \ref on input line 5771. +LaTeX Info: Redefining \pageref on input line 5775. +\Hy@abspage=\count119 +\c@Item=\count120 +\c@Hfootnote=\count121 +) + +Package hyperref Message: Driver (autodetected): hpdftex. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2011/04/17 v6.82g Hyperref driver for pdfTeX +\Fld@listcount=\count122 +\c@bookmark@seq@number=\count123 + +(/usr/local/texlive/2011/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +82. +) +\Hy@SectionHShift=\skip74 +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/oberdiek/hypcap.sty +Package: hypcap 2011/02/16 v1.11 Adjusting anchors of captions (HO) +) +\DUlineblockindent=\skip75 +) +(/usr/local/texlive/2011/texmf-dist/tex/latex/multirow/multirow.sty +\bigstrutjot=\dimen139 +) +\@indexfile=\write5 +\openout5 = `bedtools.idx'. + + +Writing index file bedtools.idx +(./bedtools.aux) +\openout1 = `bedtools.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 110. +LaTeX Font Info: ... okay on input line 110. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 110. +LaTeX Font Info: ... okay on input line 110. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 110. +LaTeX Font Info: ... okay on input line 110. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 110. +LaTeX Font Info: ... okay on input line 110. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 110. +LaTeX Font Info: ... okay on input line 110. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 110. +LaTeX Font Info: ... okay on input line 110. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 110. +LaTeX Font Info: Try loading font information for TS1+cmr on input line 110. + + (/usr/local/texlive/2011/texmf-dist/tex/latex/base/ts1cmr.fd +File: ts1cmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: ... okay on input line 110. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 110. +LaTeX Font Info: ... okay on input line 110. +LaTeX Font Info: Try loading font information for T1+ptm on input line 110. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/psnfss/t1ptm.fd +File: t1ptm.fd 2001/06/04 font definitions for T1/ptm. +) +(/usr/local/texlive/2011/texmf-dist/tex/context/base/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count124 +\scratchdimen=\dimen140 +\scratchbox=\box40 +\nofMPsegments=\count125 +\nofMParguments=\count126 +\everyMPshowfont=\toks30 +\MPscratchCnt=\count127 +\MPscratchDim=\dimen141 +\MPnumerator=\count128 +\makeMPintoPDFobject=\count129 +\everyMPtoPDFconversion=\toks31 +) (/usr/local/texlive/2011/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf + +(/usr/local/texlive/2011/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2010/08/19 v1.1 Managing graphics extensions (HO) +) +Package grfext Info: Graphics extension search list: +(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 452. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +\AtBeginShipoutBox=\box41 +Package hyperref Info: Link coloring ON on input line 110. + +(/usr/local/texlive/2011/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2010/04/30 v2.40 Cross-referencing by name of section + +(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO) +) +\c@section@level=\count130 +) +LaTeX Info: Redefining \ref on input line 110. +LaTeX Info: Redefining \pageref on input line 110. +LaTeX Info: Redefining \nameref on input line 110. + +(./bedtools.out) (./bedtools.out) +\@outlinefile=\write6 +\openout6 = `bedtools.out'. + + +Underfull \hbox (badness 10000) in paragraph at lines 113--113 + + [] + +LaTeX Font Info: Try loading font information for T1+phv on input line 113. +(/usr/local/texlive/2011/texmf-dist/tex/latex/psnfss/t1phv.fd +File: t1phv.fd 2001/06/04 scalable font definitions for T1/phv. +) +LaTeX Font Info: Font shape `T1/phv/bx/n' in size <24.88> not available +(Font) Font shape `T1/phv/b/n' tried instead on input line 113. +LaTeX Font Info: Font shape `T1/phv/m/it' in size <17.28> not available +(Font) Font shape `T1/phv/m/sl' tried instead on input line 113. +LaTeX Font Info: Font shape `T1/phv/bx/it' in size <17.28> not available +(Font) Font shape `T1/phv/b/it' tried instead on input line 113. +LaTeX Font Info: Font shape `T1/phv/b/it' in size <17.28> not available +(Font) Font shape `T1/phv/b/sl' tried instead on input line 113. +LaTeX Font Info: Font shape `T1/phv/bx/n' in size <17.28> not available +(Font) Font shape `T1/phv/b/n' tried instead on input line 113. + [1 + +{/usr/local/texlive/2011/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] [2 + +] (./bedtools.toc +LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <10> not available +(Font) Font shape `T1/ptm/b/n' tried instead on input line 2. +) +\tf@toc=\write7 +\openout7 = `bedtools.toc'. + + +Adding blank page after the table of contents. +LaTeX Font Info: Font shape `T1/phv/bx/n' in size <10> not available +(Font) Font shape `T1/phv/b/n' tried instead on input line 113. +pdfTeX warning (ext4): destination with the same identifier (name{page.i}) has +been already used, duplicate ignored +<to be read again> + \relax +l.113 \tableofcontents + [1 + +]pdfTeX warning (ext4): destination with the same identifier (name{page.ii}) ha +s been already used, duplicate ignored +<to be read again> + \relax +l.113 \tableofcontents + [2] +Chapter 1. +LaTeX Font Info: Font shape `T1/phv/bx/n' in size <14.4> not available +(Font) Font shape `T1/phv/b/n' tried instead on input line 118. +[1 + + +] [2 + +] +Chapter 2. +LaTeX Font Info: Font shape `T1/phv/bx/n' in size <12> not available +(Font) Font shape `T1/phv/b/n' tried instead on input line 129. + +Overfull \hbox (0.92122pt too wide) in paragraph at lines 306--306 +[]\T1/ptm/b/n/10 bed12ToBed6| + [] + + +Overfull \hbox (3.86118pt too wide) in paragraph at lines 306--306 +[]\T1/ptm/b/n/10 fastaFromBed| + [] + + +Overfull \hbox (6.3912pt too wide) in paragraph at lines 306--306 +\T1/ptm/b/n/10 FastaFromBed| + [] + +[3] [4] +LaTeX Font Info: Try loading font information for T1+pcr on input line 343. + (/usr/local/texlive/2011/texmf-dist/tex/latex/psnfss/t1pcr.fd +File: t1pcr.fd 2001/06/04 font definitions for T1/pcr. +) [5] +LaTeX Font Info: Font shape `T1/phv/bx/it' in size <10> not available +(Font) Font shape `T1/phv/b/it' tried instead on input line 393. +LaTeX Font Info: Font shape `T1/phv/b/it' in size <10> not available +(Font) Font shape `T1/phv/b/sl' tried instead on input line 393. + +[6] +Underfull \hbox (badness 6268) in paragraph at lines 471--475 +\T1/ptm/m/n/10 Browser web-site are ac-cept-able. For ex-am-ple, one can down-l +oad the hg19 chromInfo file here: + [] + +[7] [8] [9] +LaTeX Font Info: Try loading font information for TS1+ptm on input line 709. + + (/usr/local/texlive/2011/texmf-dist/tex/latex/psnfss/ts1ptm.fd +File: ts1ptm.fd 2001/06/04 font definitions for TS1/ptm. +) +[10] [11] +Underfull \hbox (badness 10000) in paragraph at lines 897--898 +[]\T1/ptm/m/n/10 The BEDPE for-mat is de-scribed be-low. The de-scrip-tion is m +od-i-fied from: + [] + +[12] +Overfull \hbox (13.9989pt too wide) in paragraph at lines 1084--1085 +\T1/ptm/m/n/10 The GFF for-mat is de-scribed on the Sanger In-sti-tute's web-si +te ([][]http://www.sanger.ac.uk/resources/software/gff/spec.html[][]). + [] + +[13] [14] +LaTeX Font Info: Font shape `T1/phv/bx/n' in size <9> not available +(Font) Font shape `T1/phv/b/n' tried instead on input line 1266. + +Overfull \hbox (1.8124pt too wide) in paragraph at lines 1361--1361 +\T1/ptm/b/n/10 abam| + [] + + +Overfull \hbox (2.37233pt too wide) in paragraph at lines 1361--1361 +\T1/ptm/b/n/10 ubam| + [] + +[15] [16] +LaTeX Font Info: Font shape `T1/phv/bx/it' in size <9> not available +(Font) Font shape `T1/phv/b/it' tried instead on input line 1460. +LaTeX Font Info: Font shape `T1/phv/b/it' in size <9> not available +(Font) Font shape `T1/phv/b/sl' tried instead on input line 1460. + [17] [18] [19] [20] [21] +Underfull \hbox (badness 10000) in paragraph at lines 1813--1814 +[]\T1/ptm/m/n/10 Note: If chrom1 <> + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1822--1823 +[]\T1/ptm/m/n/10 Note: If chrom1 <> + [] + + +Overfull \hbox (1.71796pt too wide) in paragraph at lines 1741--1835 +[][] + [] + +[22] +Overfull \vbox (32.96994pt too high) has occurred while \output is active [] + + +[23] [24] [25] [26] [27] [28] +Overfull \hbox (1.71796pt too wide) in paragraph at lines 2180--2229 +[][] + [] + +[29] +LaTeX Font Info: Font shape `T1/ptm/bx/it' in size <10> not available +(Font) Font shape `T1/ptm/b/it' tried instead on input line 2327. + +Overfull \hbox (2266.84943pt too wide) in paragraph at lines 2327--2329 +[] + [] + + +Overfull \hbox (1.71796pt too wide) in paragraph at lines 2316--2361 +[][] + [] + +[30] [31] +Overfull \hbox (1.8124pt too wide) in paragraph at lines 2497--2497 +\T1/ptm/b/n/10 abam| + [] + + +Overfull \hbox (2.37233pt too wide) in paragraph at lines 2497--2497 +\T1/ptm/b/n/10 ubam| + [] + +[32] [33] [34] +Overfull \hbox (1.71796pt too wide) in paragraph at lines 2649--2682 +[][] + [] + +[35] [36] [37] [38] [39] [40] +Overfull \hbox (1.71796pt too wide) in paragraph at lines 3033--3085 +[][] + [] + +[41] [42] [43] +Overfull \hbox (1.71796pt too wide) in paragraph at lines 3261--3310 +[][] + [] + +[44] [45] [46] [47] [48] [49] +Overfull \hbox (5.51234pt too wide) in paragraph at lines 3652--3652 +\T1/ptm/b/n/10 chrom| + [] + +[50] [51] +LaTeX Font Info: Font shape `T1/pcr/bx/n' in size <9> not available +(Font) Font shape `T1/pcr/b/n' tried instead on input line 3797. + [52] [53] [54] [55] +Overfull \hbox (2.37233pt too wide) in paragraph at lines 4176--4176 +\T1/ptm/b/n/10 mapq| + [] + + +Overfull \hbox (2.37233pt too wide) in paragraph at lines 4176--4176 +\T1/ptm/b/n/10 ubam| + [] + + +Overfull \hbox (3.48232pt too wide) in paragraph at lines 4176--4176 +\T1/ptm/b/n/10 bed12| + [] + +[56] [57] +Underfull \hbox (badness 10000) in paragraph at lines 4289--4293 +\T1/ptm/b/n/10 bedToIgv \T1/ptm/m/n/10 cre-ates an IGV ([][]http://www.broadins +titute.org/igv/[][]) batch script (see: [][]http://[][] + [] + + +Overfull \hbox (1.25233pt too wide) in paragraph at lines 4347--4347 +\T1/ptm/b/n/10 name| + [] + +[58] [59] +Overfull \hbox (1.71796pt too wide) in paragraph at lines 4462--4524 +[][] + [] + +[60] [61] [62] [63] [64] [65] +Overfull \hbox (6.12906pt too wide) in paragraph at lines 4915--4915 +\T1/ptm/b/n/10 namesr| + [] + + +Overfull \hbox (2.24905pt too wide) in paragraph at lines 4915--4915 +\T1/ptm/b/n/10 counts| + [] + +[66] [67] [68] [69] [70] [71] [72] [73] [74 + +] +Chapter 3. +(./bedtools.ind) +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 5394. + [75] +Package atveryend Info: Empty hook `AfterLastShipout' on input line 5394. + (./bedtools.aux) +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 5394. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 5394. + +Package rerunfilecheck Info: File `bedtools.out' has not changed. +(rerunfilecheck) Checksum: 5C046F6ADF8B6680025890F98DBD26AC;554. +Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 5394. + ) +Here is how much of TeX's memory you used: + 9283 strings out of 493633 + 136195 string characters out of 3143378 + 242702 words of memory out of 3000000 + 12072 multiletter control sequences out of 15000+200000 + 68623 words of font info for 72 fonts, out of 3000000 for 9000 + 832 hyphenation exceptions out of 8191 + 36i,12n,49p,1133b,403s stack positions out of 5000i,500n,10000p,200000b,50000s +{/usr/local/texlive/2011/texmf-dist/fonts/enc/dvips/base/8r.enc}</usr/local/t +exlive/2011/texmf-dist/fonts/type1/urw/courier/ucrb8a.pfb></usr/local/texlive/2 +011/texmf-dist/fonts/type1/urw/courier/ucrr8a.pfb></usr/local/texlive/2011/texm +f-dist/fonts/type1/urw/helvetic/uhvb8a.pfb></usr/local/texlive/2011/texmf-dist/ +fonts/type1/urw/helvetic/uhvbo8a.pfb></usr/local/texlive/2011/texmf-dist/fonts/ +type1/urw/times/utmb8a.pfb></usr/local/texlive/2011/texmf-dist/fonts/type1/urw/ +times/utmbi8a.pfb></usr/local/texlive/2011/texmf-dist/fonts/type1/urw/times/utm +r8a.pfb></usr/local/texlive/2011/texmf-dist/fonts/type1/urw/times/utmri8a.pfb> +Output written on bedtools.pdf (79 pages, 270556 bytes). +PDF statistics: + 756 PDF objects out of 1000 (max. 8388607) + 660 compressed objects within 7 object streams + 326 named destinations out of 1000 (max. 500000) + 81 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/docs/_build/latex/bedtools.out b/docs/_build/latex/bedtools.out new file mode 100644 index 00000000..383e9302 --- /dev/null +++ b/docs/_build/latex/bedtools.out @@ -0,0 +1,10 @@ +\BOOKMARK [0][-]{chapter.1}{Overview}{}% 1 +\BOOKMARK [0][-]{chapter.2}{Table of contents}{}% 2 +\BOOKMARK [1][-]{section.2.1}{Overview}{chapter.2}% 3 +\BOOKMARK [1][-]{section.2.2}{Installation}{chapter.2}% 4 +\BOOKMARK [1][-]{section.2.3}{Quick start}{chapter.2}% 5 +\BOOKMARK [1][-]{section.2.4}{General usage}{chapter.2}% 6 +\BOOKMARK [1][-]{section.2.5}{The BEDTools suite}{chapter.2}% 7 +\BOOKMARK [1][-]{section.2.6}{Example usage}{chapter.2}% 8 +\BOOKMARK [1][-]{section.2.7}{Advanced usage}{chapter.2}% 9 +\BOOKMARK [0][-]{chapter.3}{Mailing list}{}% 10 diff --git a/docs/_build/latex/bedtools.tex b/docs/_build/latex/bedtools.tex new file mode 100644 index 00000000..1fc68119 --- /dev/null +++ b/docs/_build/latex/bedtools.tex @@ -0,0 +1,5394 @@ +% Generated by Sphinx. +\def\sphinxdocclass{report} +\documentclass[letterpaper,10pt,english]{sphinxmanual} +\usepackage[utf8]{inputenc} +\DeclareUnicodeCharacter{00A0}{\nobreakspace} +\usepackage[T1]{fontenc} +\usepackage{babel} +\usepackage{times} +\usepackage[Bjarne]{fncychap} +\usepackage{longtable} +\usepackage{sphinx} +\usepackage{multirow} + + +\title{Bedtools Documentation} +\date{July 21, 2012} +\release{2.16.2} +\author{Quinlan lab @ UVa} +\newcommand{\sphinxlogo}{} +\renewcommand{\releasename}{Release} +\makeindex + +\makeatletter +\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax% + \let\PYG@ul=\relax \let\PYG@tc=\relax% + \let\PYG@bc=\relax \let\PYG@ff=\relax} +\def\PYG@tok#1{\csname PYG@tok@#1\endcsname} +\def\PYG@toks#1+{\ifx\relax#1\empty\else% + \PYG@tok{#1}\expandafter\PYG@toks\fi} +\def\PYG@do#1{\PYG@bc{\PYG@tc{\PYG@ul{% + \PYG@it{\PYG@bf{\PYG@ff{#1}}}}}}} +\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+\PYG@do{#2}} + +\def\PYG@tok@gd{\def\PYG@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\def\PYG@tok@gu{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\def\PYG@tok@gt{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.25,0.82}{##1}}} +\def\PYG@tok@gs{\let\PYG@bf=\textbf} +\def\PYG@tok@gr{\def\PYG@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\def\PYG@tok@cm{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} +\def\PYG@tok@vg{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} +\def\PYG@tok@m{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\def\PYG@tok@mh{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\def\PYG@tok@cs{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}\def\PYG@bc##1{\colorbox[rgb]{1.00,0.94,0.94}{##1}}} +\def\PYG@tok@ge{\let\PYG@it=\textit} +\def\PYG@tok@vc{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} +\def\PYG@tok@il{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\def\PYG@tok@go{\def\PYG@tc##1{\textcolor[rgb]{0.19,0.19,0.19}{##1}}} +\def\PYG@tok@cp{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@gi{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\def\PYG@tok@gh{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\def\PYG@tok@ni{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.84,0.33,0.22}{##1}}} +\def\PYG@tok@nl{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.13,0.44}{##1}}} +\def\PYG@tok@nn{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}} +\def\PYG@tok@no{\def\PYG@tc##1{\textcolor[rgb]{0.38,0.68,0.84}{##1}}} +\def\PYG@tok@na{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\def\PYG@tok@nb{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@nc{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}} +\def\PYG@tok@nd{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.33,0.33,0.33}{##1}}} +\def\PYG@tok@ne{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@nf{\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.49}{##1}}} +\def\PYG@tok@si{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.44,0.63,0.82}{##1}}} +\def\PYG@tok@s2{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\def\PYG@tok@vi{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} +\def\PYG@tok@nt{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.45}{##1}}} +\def\PYG@tok@nv{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} +\def\PYG@tok@s1{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\def\PYG@tok@gp{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}} +\def\PYG@tok@sh{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\def\PYG@tok@ow{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@sx{\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}} +\def\PYG@tok@bp{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@c1{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} +\def\PYG@tok@kc{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@c{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} +\def\PYG@tok@mf{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\def\PYG@tok@err{\def\PYG@bc##1{\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{##1}}} +\def\PYG@tok@kd{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@ss{\def\PYG@tc##1{\textcolor[rgb]{0.32,0.47,0.09}{##1}}} +\def\PYG@tok@sr{\def\PYG@tc##1{\textcolor[rgb]{0.14,0.33,0.53}{##1}}} +\def\PYG@tok@mo{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\def\PYG@tok@mi{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} +\def\PYG@tok@kn{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@o{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\def\PYG@tok@kr{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@s{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\def\PYG@tok@kp{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@w{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\def\PYG@tok@kt{\def\PYG@tc##1{\textcolor[rgb]{0.56,0.13,0.00}{##1}}} +\def\PYG@tok@sc{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\def\PYG@tok@sb{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\def\PYG@tok@k{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} +\def\PYG@tok@se{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} +\def\PYG@tok@sd{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} + +\def\PYGZbs{\char`\\} +\def\PYGZus{\char`\_} +\def\PYGZob{\char`\{} +\def\PYGZcb{\char`\}} +\def\PYGZca{\char`\^} +\def\PYGZsh{\char`\#} +\def\PYGZpc{\char`\%} +\def\PYGZdl{\char`\$} +\def\PYGZti{\char`\~} +% for compatibility with earlier versions +\def\PYGZat{@} +\def\PYGZlb{[} +\def\PYGZrb{]} +\makeatother + +\begin{document} + +\maketitle +\tableofcontents +\phantomsection\label{index::doc} + + + +\chapter{Overview} +\label{index:bedtools-a-powerful-toolset-for-genome-arithmetic}\label{index:overview} +Brief paragraph of the software. + + +\chapter{Table of contents} +\label{index:table-of-contents} + +\section{Overview} +\label{content/overview:overview}\label{content/overview::doc} + +\subsection{1.1 Background} +\label{content/overview:background} +The development of BEDTools was motivated by a need for fast, flexible tools with which to compare large sets of genomic +features. Answering fundamental research questions with existing tools was either too slow or required modifications to the +way they reported or computed their results. We were aware of the utilities on the UCSC Genome Browser and Galaxy websites, as +well as the elegant tools available as part of Jim Kent’s monolithic suite of tools (“Kent sourceâ€). However, we found that +the web-based tools were too cumbersome when working with large datasets generated by current sequencing technologies. +Similarly, we found that the Kent source command line tools often required a local installation of the UCSC Genome Browser. +These limitations, combined with the fact that we often wanted an extra option here or there that wasn’t available with +existing tools, led us to develop our own from scratch. The initial version of BEDTools was publicly released in the spring of +2009. The current version has evolved from our research experiences and those of the scientists using the suite over the last +year. The BEDTools suite enables one to answer common questions of genomic data in a fast and reliable manner. The fact that +almost all the utilities accept input from “stdin†allows one to “stream / pipe†several commands together to facilitate more +complicated analyses. Also, the tools allow fine control over how output is reported. The initial version of BEDTools +supported solely 6-column \href{http://genome.ucsc.edu/FAQ/FAQformat\#format1}{BED} files. \emph{However, we have subsequently added support for sequence alignments in} \href{http://samtools.sourceforge.net/}{BAM} +\emph{format, as well as for features in} \href{http://genome.ucsc.edu/FAQ/FAQformat\#format3}{GFF} , \emph{“blocked†BED format, and} +\href{http://www.1000genomes.org/wiki/Analysis/Variant\%20Call\%20Format/vcf-variant-call-format-version-41}{VCF} \emph{format}. +The tools are quite fast and typically finish in a matter of a few seconds, even for large datasets. This manual seeks to describe the behavior and +available functionality for each BEDTool. Usage examples are scattered throughout the text, and formal examples are +provided in the last two sections, we hope that this document will give you a sense of the flexibility of +the toolkit and the types of analyses that are possible with BEDTools. If you have further questions, please join the BEDTools +discussion group, visit the Usage Examples on the Google Code site (usage, advanced usage), or take a look at the nascent +“Usage From the Wild†page. + + +\subsection{1.2 Summary of available tools.} +\label{content/overview:summary-of-available-tools} +BEDTools support a wide range of operations for interrogating and manipulating genomic features. The table below summarizes +the tools available in the suite. + +\begin{tabulary}{\linewidth}{|L|L|} +\hline +\textbf{ +Utility +} & \textbf{ +Description +}\\\hline + +\textbf{intersectBed} + & +Returns overlaps between two BED/GFF/VCF files. +\\\hline + +\textbf{pairToBed} + & +Returns overlaps between a paired-end BED file and a regular BED/VCF/GFF file. +\\\hline + +\textbf{bamToBed} + & +Converts BAM alignments to BED6, BED12, or BEDPE format. +\\\hline + +\textbf{bedToBam} + & +Converts BED/GFF/VCF features to BAM format. +\\\hline + +\textbf{bed12ToBed6} + & +Converts ``blocked'' BED12 features to discrete BED6 features. +\\\hline + +\textbf{bedToIgv} + & +Creates IGV batch scripts for taking multiple snapshots from BED/GFF/VCF features. +\\\hline + +\textbf{coverageBed} + & +Summarizes the depth and breadth of coverage of features in one BED versus features (e.g, windows, exons, etc.) defined in another BED/GFF/VCF file. +\\\hline + +\textbf{multiBamCov} + & +Counts sequence coverage for multiple position-sorted bams at specific loci defined in a BED/GFF/VCF file +\\\hline + +\textbf{tagBam} + & +Annotates a BAM file with custom tag fields based on overlaps with BED/GFF/VCF files +\\\hline + +\textbf{nuclBed} + & +Profiles the nucleotide content of intervals in a fasta file +\\\hline + +\textbf{genomeCoverageBed} + & +Creates either a histogram, BEDGRAPH, or a ``per base'' report of genome coverage. +\\\hline + +\textbf{unionBedGraphs} + & +Combines multiple BedGraph? files into a single file, allowing coverage/other comparisons between them. +\\\hline + +\textbf{annotateBed} + & +Annotates one BED/VCF/GFF file with overlaps from many others. +\\\hline + +\textbf{groupBy} + & +Deprecated. Now in the filo package. +\\\hline + +\textbf{overlap} + & +Returns the number of bases pairs of overlap b/w two features on the same line. +\\\hline + +\textbf{pairToPair} + & +Returns overlaps between two paired-end BED files. +\\\hline + +\textbf{closestBed} + & +Returns the closest feature to each entry in a BED/GFF/VCF file. +\\\hline + +\textbf{subtractBed} + & +Removes the portion of an interval that is overlapped by another feature. +\\\hline + +\textbf{windowBed} + & +Returns overlaps between two BED/VCF/GFF files based on a user-defined window. +\\\hline + +\textbf{mergeBed} + & +Merges overlapping features into a single feature. +\\\hline + +\textbf{complementBed} + & +Returns all intervals not spanned by the features in a BED/GFF/VCF file. +\\\hline + +\textbf{fastaFromBed} + & +Creates FASTA sequences based on intervals in a BED/GFF/VCF file. +\\\hline + +\textbf{maskFastaFromBed} + & +Masks a FASTA file based on BED coordinates. +\\\hline + +\textbf{shuffleBed} + & +Randomly permutes the locations of a BED file among a genome. +\\\hline + +\textbf{slopBed} + & +Adjusts each BED entry by a requested number of base pairs. +\\\hline + +\textbf{flankBed} + & +Creates flanking intervals for each feature in a BED/GFF/VCF file. +\\\hline + +\textbf{sortBed} + & +Sorts a BED file by chrom, then start position. Other ways as well. +\\\hline + +\textbf{linksBed} + & +Creates an HTML file of links to the UCSC or a custom browser. +\\\hline +\end{tabulary} + + + +\subsection{1.3 Fundamental concepts.} +\label{content/overview:fundamental-concepts} + +\subsubsection{1.3.1 What are genome features and how are they represented?} +\label{content/overview:what-are-genome-features-and-how-are-they-represented} +Throughout this manual, we will discuss how to use BEDTools to manipulate, compare and ask questions of genome “featuresâ€. Genome features can be functional elements (e.g., genes), genetic polymorphisms (e.g. +SNPs, INDELs, or structural variants), or other annotations that have been discovered or curated by genome sequencing groups or genome browser groups. In addition, genome features can be custom annotations that +an individual lab or researcher defines (e.g., my novel gene or variant). + +The basic characteristics of a genome feature are the chromosome or scaffold on which the feature “residesâ€, the base pair on which the +feature starts (i.e. the “startâ€), the base pair on which feature ends (i.e. the “endâ€), the strand on which the feature exists (i.e. “+†or “-“), and the name of the feature if one is applicable. + +The two most widely used formats for representing genome features are the BED (Browser Extensible Data) and GFF (General Feature Format) formats. BEDTools was originally written to work exclusively with genome features +described using the BED format, but it has been recently extended to seamlessly work with BED, GFF and VCF files. + +Existing annotations for the genomes of many species can be easily downloaded in BED and GFF +format from the UCSC Genome Browser’s “Table Browser†(\href{http://genome.ucsc.edu/cgi-bin/hgTables?command=start}{http://genome.ucsc.edu/cgi-bin/hgTables?command=start}) or from the “Bulk Downloads†page (\href{http://hgdownload.cse.ucsc.edu/downloads.html}{http://hgdownload.cse.ucsc.edu/downloads.html}). In addition, the +Ensemble Genome Browser contains annotations in GFF/GTF format for many species (\href{http://www.ensembl.org/info/data/ftp/index.html}{http://www.ensembl.org/info/data/ftp/index.html}) + + +\subsubsection{1.3.2 Overlapping / intersecting features.} +\label{content/overview:overlapping-intersecting-features} +Two genome features (henceforth referred to as “featuresâ€) are said to overlap or intersect if they share at least one base in common. +In the figure below, Feature A intersects/overlaps Feature B, but it does not intersect/overlap Feature C. + +\textbf{TODO: place figure here} + + +\subsubsection{1.3.3 Comparing features in file “A†and file “Bâ€.} +\label{content/overview:comparing-features-in-file-a-and-file-b} +The previous section briefly introduced a fundamental naming convention used in BEDTools. Specifically, all BEDTools that compare features contained in two distinct files refer to one file as feature set “A†and the other file as feature set “Bâ€. This is mainly in the interest of brevity, but it also has its roots in set theory. +As an example, if one wanted to look for SNPs (file A) that overlap with exons (file B), one would use intersectBed in the following manner: + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed –a snps.bed –b exons.bed +\end{Verbatim} + +There are two exceptions to this rule: 1) When the “A†file is in BAM format, the “-abam†option must bed used. For example: + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed –abam alignedReads.bam –b exons.bed +\end{Verbatim} + +And 2) For tools where only one input feature file is needed, the “-i†option is used. For example: + +\begin{Verbatim}[commandchars=\\\{\}] +mergeBed –i repeats.bed +\end{Verbatim} + + +\subsubsection{1.3.4 BED starts are zero-based and BED ends are one-based.} +\label{content/overview:bed-starts-are-zero-based-and-bed-ends-are-one-based} +BEDTools users are sometimes confused by the way the start and end of BED features are represented. Specifically, BEDTools uses the UCSC Genome Browser’s internal database convention of making the start position 0-based and the end position 1-based: (\href{http://genome.ucsc.edu/FAQ/FAQtracks\#tracks1}{http://genome.ucsc.edu/FAQ/FAQtracks\#tracks1}) +In other words, BEDTools interprets the “start†column as being 1 basepair higher than what is represented in the file. For example, the following BED feature represents a single base on chromosome 1; namely, the 1st base: + +\begin{Verbatim}[commandchars=\\\{\}] +chr1 0 1 first\_base +\end{Verbatim} + +Why, you might ask? The advantage of storing features this way is that when computing the length of a feature, one must simply subtract the start from the end. Were the start position 1-based, +the calculation would be (slightly) more complex (i.e. (end-start)+1). Thus, storing BED features this way reduces the computational burden. + + +\subsubsection{1.3.5 GFF starts and ends are one-based.} +\label{content/overview:gff-starts-and-ends-are-one-based} +In contrast, the GFF format uses 1-based coordinates for both the start and the end positions. BEDTools is aware of this and adjusts the positions accordingly. +In other words, you don’t need to subtract 1 from the start positions of your GFF features for them to work correctly with BEDTools. + + +\subsubsection{1.3.6 VCF coordinates are one-based.} +\label{content/overview:vcf-coordinates-are-one-based} +The VCF format uses 1-based coordinates. As in GFF, BEDTools is aware of this and adjusts the positions accordingly. +In other words, you don’t need to subtract 1 from the start positions of your VCF features for them to work correctly with BEDTools. + + +\subsubsection{1.3.7 File B is loaded into memory (most of the time).} +\label{content/overview:file-b-is-loaded-into-memory-most-of-the-time} +Whenever a BEDTool compares two files of features, the “B†file is loaded into memory. By contrast, the “A†file is processed line by line and compared with the features from B. +Therefore to minimize memory usage, one should set the smaller of the two files as the B file. One salient example is the comparison of aligned sequence reads from a +current DNA sequencer to gene annotations. In this case, the aligned sequence file (in BED format) may have tens of millions of features (the sequence alignments), +while the gene annotation file will have tens of thousands of features. In this case, it is wise to sets the reads as file A and the genes as file B. + + +\subsubsection{1.3.8 Feature files \emph{must} be tab-delimited.} +\label{content/overview:feature-files-must-be-tab-delimited} +This is rather self-explanatory. While it is possible to allow BED files to be space-delimited, we have decided to require tab delimiters for three reasons: +\begin{enumerate} +\item {} +By requiring one delimiter type, the processing time is minimized. + +\item {} +Tab-delimited files are more amenable to other UNIX utilities. + +\item {} +GFF files can contain spaces within attribute columns. This complicates the use of space-delimited files as spaces must therefore be treated specially depending on the context. + +\end{enumerate} + + +\subsubsection{1.3.9 All BEDTools allow features to be “piped†via standard input.} +\label{content/overview:all-bedtools-allow-features-to-be-piped-via-standard-input} +In an effort to allow one to combine multiple BEDTools and other UNIX utilities into more complicated “pipelinesâ€, all BEDTools allow features +to be passed to them via standard input. Only one feature file may be passed to a BEDTool via standard input. +The convention used by all BEDTools is to set either file A or file B to “stdin†or ``-''. For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat snps.bed \textbar{} intersectBed –a stdin –b exons.bed +cat snps.bed \textbar{} intersectBed –a - –b exons.bed +\end{Verbatim} + +In addition, all BEDTools that simply require one main input file (the -i file) will assume that input is +coming from standard input if the -i parameter is ignored. For example, the following are equivalent: + +\begin{Verbatim}[commandchars=\\\{\}] +cat snps.bed \textbar{} sortBed –i stdin +cat snps.bed \textbar{} sortBed +\end{Verbatim} + + +\subsubsection{1.3.10 Most BEDTools write their results to standard output.} +\label{content/overview:most-bedtools-write-their-results-to-standard-output} +To allow one to combine multiple BEDTools and other UNIX utilities into more complicated “pipelinesâ€, +most BEDTools report their output to standard output, rather than to a named file. If one wants to write the output to a named file, one can use the UNIX “file redirection†symbol “\textgreater{}†to do so. +Writing to standard output (the default): + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed –a snps.bed –b exons.bed +chr1 100100 100101 rs233454 +chr1 200100 200101 rs446788 +chr1 300100 300101 rs645678 +\end{Verbatim} + +Writing to a file: + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed –a snps.bed –b exons.bed \textgreater{} snps.in.exons.bed + +cat snps.in.exons.bed +chr1 100100 100101 rs233454 +chr1 200100 200101 rs446788 +chr1 300100 300101 rs645678 +\end{Verbatim} + + +\subsubsection{1.3.11 What is a “genome†file?} +\label{content/overview:what-is-a-genome-file} +Some of the BEDTools (e.g., genomeCoverageBed, complementBed, slopBed) need to know the size of +the chromosomes for the organism for which your BED files are based. When using the UCSC Genome +Browser, Ensemble, or Galaxy, you typically indicate which species / genome build you are working. +The way you do this for BEDTools is to create a “genome†file, which simply lists the names of the +chromosomes (or scaffolds, etc.) and their size (in basepairs). +Genome files must be tab-delimited and are structured as follows (this is an example for C. elegans): + +\begin{Verbatim}[commandchars=\\\{\}] +chrI 15072421 +chrII 15279323 +... +chrX 17718854 +chrM 13794 +\end{Verbatim} + +BEDTools includes predefined genome files for human and mouse in the /genomes directory included +in the BEDTools distribution. Additionally, the “chromInfo†files/tables available from the UCSC +Genome Browser website are acceptable. For example, one can download the hg19 chromInfo file here: +\href{http://hgdownload.cse.ucsc.edu/goldenPath/hg19/database/chromInfo.txt.gz}{http://hgdownload.cse.ucsc.edu/goldenPath/hg19/database/chromInfo.txt.gz} + + +\subsubsection{1.3.12 Paired-end BED files (BEDPE files).} +\label{content/overview:paired-end-bed-files-bedpe-files} +We have defined a new file format (BEDPE) to concisely describe disjoint genome features, such as +structural variations or paired-end sequence alignments. We chose to define a new format because the +existing BED block format (i.e. BED12) does not allow inter-chromosomal feature definitions. Moreover, +the BED12 format feels rather bloated when one want to describe events with only two blocks. + + +\subsubsection{1.3.13 Use “-h†for help with any BEDTool.} +\label{content/overview:use-h-for-help-with-any-bedtool} +Rather straightforward. If you use the “-h†option with any BEDTool, a full menu of example usage +and available options (when applicable) will be reported. + + +\subsubsection{1.3.14 BED features must not contain negative positions.} +\label{content/overview:bed-features-must-not-contain-negative-positions} +BEDTools will typically reject BED features that contain negative positions. In special cases, however, +BEDPE positions may be set to -1 to indicate that one or more ends of a BEDPE feature is unaligned. + + +\subsubsection{1.3.15 The start position must be \textless{}= to the end position.} +\label{content/overview:the-start-position-must-be-to-the-end-position} +BEDTools will reject BED features where the start position is greater than the end position. + + +\subsubsection{1.3.16 Headers are allowed in GFF and BED files} +\label{content/overview:headers-are-allowed-in-gff-and-bed-files} +BEDTools will ignore headers at the beginning of BED and GFF files. Valid header lines begin with a +“\#†symbol, the work “trackâ€, or the word “browserâ€. For example, the following examples are valid +headers for BED or GFF files: + +\begin{Verbatim}[commandchars=\\\{\}] +track name=aligned\_read description="Illumina aligned reads†+chr5 100000 500000 read1 50 + +chr5 2380000 2386000 read2 60 - + +\#This is a fascinating dataset +chr5 100000 500000 read1 50 + +chr5 2380000 2386000 read2 60 - + +browser position chr22:1-20000 +chr5 100000 500000 read1 50 + +chr5 2380000 2386000 read2 60 - +\end{Verbatim} + + +\subsubsection{1.3.17 GZIP support: BED, GFF, VCF, and BEDPE file can be “gzippedâ€} +\label{content/overview:gzip-support-bed-gff-vcf-and-bedpe-file-can-be-gzipped} +BEDTools will process gzipped BED, GFF, VCF and BEDPE files in the same manner as +uncompressed files. Gzipped files are auto-detected thanks to a helpful contribution from Gordon +Assaf. + + +\subsubsection{1.3.18 Support for “split†or “spliced†BAM alignments and “blocked†BED features} +\label{content/overview:support-for-split-or-spliced-bam-alignments-and-blocked-bed-features} +As of Version 2.8.0, five BEDTools (\code{intersectBed}, \code{coverageBed}, \code{genomeCoverageBed}, +\code{bamToBed}, and \code{bed12ToBed6}) can properly handle “splitâ€/â€spliced†BAM alignments (i.e., having an +“N†CIGAR operation) and/or “blocked†BED (aka BED12) features. + +\code{intersectBed}, \code{coverageBed}, and \code{genomeCoverageBed} will optionally handle “split†BAM and/or +“blocked†BED by using the \code{-split} option. This will cause intersects or coverage to be computed only +for the alignment or feature blocks. In contrast, without this option, the intersects/coverage would be +computed for the entire “span†of the alignment or feature, regardless of the size of the gaps between +each alignment or feature block. For example, imagine you have a RNA-seq read that originates from +the junction of two exons that were spliced together in a mRNA. In the genome, these two exons +happen to be 30Kb apart. Thus, when the read is aligned to the reference genome, one portion of the +read will align to the first exon, while another portion of the read will align ca. 30Kb downstream to the +other exon. The corresponding CIGAR string would be something like (assuming a 76bp read): +30M*3000N*46M. In the genome, this alignment “spans†3076 bp, yet the nucleotides in the sequencing +read only align “cover†76bp. Without the \code{-split} option, coverage or overlaps would be reported for the +entire 3076bp span of the alignment. However, with the \code{-split} option, coverage or overlaps will only +be reported for the portions of the read that overlap the exons (i.e. 30bp on one exon, and +46bp on the other). + +Using the -split option with bamToBed causes “spliced/split†alignments to be reported in BED12 +format. Using the -split option with bed12ToBed6 causes “blocked†BED12 features to be reported in +BED6 format. + + +\subsubsection{1.3.19 Writing uncompressed BAM output.} +\label{content/overview:writing-uncompressed-bam-output} +When working with a large BAM file using a complex set of tools in a pipe/stream, it is advantageous +to pass uncompressed BAM output to each downstream program. This minimizes the amount of time +spent compressing and decompressing output from one program to the next. All BEDTools that create +BAM output (e.g. \code{intersectBed}, \code{windowBed}) will now optionally create uncompressed BAM output +using the \code{-ubam} option. + + +\subsection{1.4 Implementation and algorithmic notes.} +\label{content/overview:implementation-and-algorithmic-notes} +BEDTools was implemented in C++ and makes extensive use of data structures and fundamental +algorithms from the Standard Template Library (STL). Many of the core algorithms are based upon the +genome binning algorithm described in the original UCSC Genome Browser paper (Kent et al, 2002). +The tools have been designed to inherit core data structures from central source files, thus allowing +rapid tool development and deployment of improvements and corrections. Support for BAM files is +made possible through Derek Barnett’s elegant C++ API called BamTools. + + +\subsection{1.5 License and availability.} +\label{content/overview:license-and-availability} +BEDTools is freely available under a GNU Public License (Version 2) at: +\href{http://bedtools.googlecode.com}{http://bedtools.googlecode.com} + + +\subsection{1.6 Mailing list.} +\label{content/overview:mailing-list} +A discussion group for reporting bugs, asking questions of the developer and of the user community, as +well as for requesting new features is available at: +\href{http://groups.google.com/group/bedtools-discuss}{http://groups.google.com/group/bedtools-discuss} + + +\subsection{1.7 Contributors.} +\label{content/overview:contributors} +As open-source software, BEDTools greatly benefits from contributions made by other developers and +users of the tools. We encourage and welcome suggestions, contributions and complaints. This is how +software matures, improves and stays on top of the needs of its user community. The Google Code +(GC) site maintains a list of individuals who have contributed either source code or useful ideas for +improving the tools. In the near future, we hope to maintain a source repository on the GC site in +order to facilitate further contributions. We are currently unable to do so because we use Git for +version control, which is not yet supported by GC. + + +\section{Installation} +\label{content/installation:installation}\label{content/installation::doc} +BEDTools is intended to run in a ``command line'' environment on UNIX, LINUX and Apple OS X +operating systems. Installing BEDTools involves downloading the latest source code archive followed by +compiling the source code into binaries on your local system. The following commands will install +BEDTools in a local directory on a NIX or OS X machine. Note that the \textbf{``\textless{}version\textgreater{}''} refers to the +latest posted version number on \href{http://bedtools.googlecode.com/}{http://bedtools.googlecode.com/}. + +Note: \emph{The BEDTools ``makefiles'' use the GCC compiler. One should edit the Makefiles accordingly if +one wants to use a different compiler.}: + +\begin{Verbatim}[commandchars=\\\{\}] +curl http://bedtools.googlecode.com/files/BEDTools.\textless{}version\textgreater{}.tar.gz \textgreater{} BEDTools.tar.gz +tar -zxvf BEDTools.tar.gz +cd BEDTools-\textless{}version\textgreater{} +make clean +make all +ls bin +\end{Verbatim} + +At this point, one should copy the binaries in BEDTools/bin/ to either usr/local/bin/ or some +other repository for commonly used UNIX tools in your environment. You will typically require +administrator (e.g. ``root'' or ``sudo'') privileges to copy to usr/local/bin/. If in doubt, contact you +system administrator for help. + + +\section{Quick start} +\label{content/quick-start:quick-start}\label{content/quick-start::doc} + +\subsection{Install BEDTools} +\label{content/quick-start:install-bedtools} +\begin{Verbatim}[commandchars=\\\{\}] +curl http://bedtools.googlecode.com/files/BEDTools.\textless{}version\textgreater{}.tar.gz \textgreater{} BEDTools.tar.gz +tar -zxvf BEDTools.tar.gz +cd BEDTools +make clean +make all +sudo cp bin/* /usr/local/bin/ +\end{Verbatim} + + +\subsection{Use BEDTools} +\label{content/quick-start:use-bedtools} +Below are examples of typical BEDTools usage. \textbf{Additional usage examples are described in +section 6 of this manual.} Using the ``-h'' option with any BEDTools will report a list of all command +line options. + +A. Report the base-pair overlap between the features in two BED files. + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -a reads.bed -b genes.bed +\end{Verbatim} + +B. Report those entries in A that overlap NO entries in B. Like ``grep -v'' + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -a reads.bed -b genes.bed ?Cv +\end{Verbatim} + +C. Read BED A from stdin. Useful for stringing together commands. For example, find genes that overlap LINEs +but not SINEs. + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -a genes.bed -b LINES.bed \textbar{} intersectBed -a stdin -b SINEs.bed ?Cv +\end{Verbatim} + +D. Find the closest ALU to each gene. + +\begin{Verbatim}[commandchars=\\\{\}] +closestBed -a genes.bed -b ALUs.bed +\end{Verbatim} + +E. Merge overlapping repetitive elements into a single entry, returning the number of entries merged. + +\begin{Verbatim}[commandchars=\\\{\}] +mergeBed -i repeatMasker.bed -n +\end{Verbatim} + +F. Merge nearby repetitive elements into a single entry, so long as they are within 1000 bp of one another. + +\begin{Verbatim}[commandchars=\\\{\}] +mergeBed -i repeatMasker.bed -d 1000 +\end{Verbatim} + + +\section{General usage} +\label{content/general-usage::doc}\label{content/general-usage:general-usage} + +\subsection{4.1 Supported file formats} +\label{content/general-usage:supported-file-formats} + +\subsubsection{4.1.1 BED format} +\label{content/general-usage:bed-format} +As described on the UCSC Genome Browser website (see link below), the BED format is a concise and +flexible way to represent genomic features and annotations. The BED format description supports up to +12 columns, but only the first 3 are required for the UCSC browser, the Galaxy browser and for +BEDTools. BEDTools allows one to use the ``BED12'' format (that is, all 12 fields listed below). +However, only intersectBed, coverageBed, genomeCoverageBed, and bamToBed will obey the BED12 +``blocks'' when computing overlaps, etc., via the \textbf{``-split''} option. For all other tools, the last six columns +are not used for any comparisons by the BEDTools. Instead, they will use the entire span (start to end) +of the BED12 entry to perform any relevant feature comparisons. The last six columns will be reported +in the output of all comparisons. + +The file description below is modified from: \href{http://genome.ucsc.edu/FAQ/FAQformat\#format1}{http://genome.ucsc.edu/FAQ/FAQformat\#format1}. +\begin{enumerate} +\item {} +\textbf{chrom} - The name of the chromosome on which the genome feature exists. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{Any string can be used}. For example, ``chr1'', ``III'', ``myChrom'', ``contig1112.23''. + +\item {} +\emph{This column is required}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{1} +\item {} +\textbf{start} - The zero-based starting position of the feature in the chromosome. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{The first base in a chromosome is numbered 0}. + +\item {} +\emph{The start position in each BED feature is therefore interpreted to be 1 greater than the start position listed in the feature. For example, start=9, end=20 is interpreted to span bases 10 through 20,inclusive}. + +\item {} +\emph{This column is required}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{2} +\item {} +\textbf{end} - The one-based ending position of the feature in the chromosome. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{The end position in each BED feature is one-based. See example above}. + +\item {} +\emph{This column is required}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{3} +\item {} +\textbf{name} - Defines the name of the BED feature. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{Any string can be used}. For example, ``LINE'', ``Exon3'', ``HWIEAS\_0001:3:1:0:266\#0/1'', or ``my\_Feature''. + +\item {} +\emph{This column is optional}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{4} +\item {} +\textbf{score} - The UCSC definition requires that a BED score range from 0 to 1000, inclusive. However, BEDTools allows any string to be stored in this field in order to allow greater flexibility in annotation features. For example, strings allow scientific notation for p-values, mean enrichment values, etc. It should be noted that this flexibility could prevent such annotations from being correctly displayed on the UCSC browser. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{Any string can be used}. For example, 7.31E-05 (p-value), 0.33456 (mean enrichment value), ``up'', ``down'', etc. + +\item {} +\emph{This column is optional}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{5} +\item {} +\textbf{strand} - Defines the strand - either `+' or `-`. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{This column is optional}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{6} +\item {} +\textbf{thickStart} - The starting position at which the feature is drawn thickly. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{Allowed yet ignored by BEDTools}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{7} +\item {} +\textbf{thickEnd} - The ending position at which the feature is drawn thickly. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{Allowed yet ignored by BEDTools}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{8} +\item {} +\textbf{itemRgb} - An RGB value of the form R,G,B (e.g. 255,0,0). + +\end{enumerate} +\begin{itemize} +\item {} +\emph{Allowed yet ignored by BEDTools}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{9} +\item {} +\textbf{blockCount} - The number of blocks (exons) in the BED line. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{Allowed yet ignored by BEDTools}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{10} +\item {} +\textbf{blockSizes} - A comma-separated list of the block sizes. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{Allowed yet ignored by BEDTools}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{11} +\item {} +\textbf{blockStarts} - A comma-separated list of block starts. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{Allowed yet ignored by BEDTools}. + +\end{itemize} + +BEDTools requires that all BED input files (and input received from stdin) are \textbf{tab-delimited}. The following types of BED files are supported by BEDTools: +\begin{enumerate} +\item {} +\begin{DUlineblock}{0em} +\item[] \textbf{BED3}: A BED file where each feature is described by \textbf{chrom}, \textbf{start}, and \textbf{end}. +\item[] For example: chr1 11873 14409 +\end{DUlineblock} + +\item {} +\begin{DUlineblock}{0em} +\item[] \textbf{BED4}: A BED file where each feature is described by \textbf{chrom}, \textbf{start}, \textbf{end}, and \textbf{name}. +\item[] For example: chr1 11873 14409 uc001aaa.3 +\end{DUlineblock} + +\item {} +\begin{DUlineblock}{0em} +\item[] \textbf{BED5}: A BED file where each feature is described by \textbf{chrom}, \textbf{start}, \textbf{end}, \textbf{name}, and \textbf{score}. +\item[] For example: chr1 11873 14409 uc001aaa.3 0 +\end{DUlineblock} + +\item {} +\begin{DUlineblock}{0em} +\item[] \textbf{BED6}: A BED file where each feature is described by \textbf{chrom}, \textbf{start}, \textbf{end}, \textbf{name}, \textbf{score}, and \textbf{strand}. +\item[] For example: chr1 11873 14409 uc001aaa.3 0 + +\end{DUlineblock} + +\item {} +\begin{DUlineblock}{0em} +\item[] \textbf{BED12}: A BED file where each feature is described by all twelve columns listed above. +\item[] For example: chr1 11873 14409 uc001aaa.3 0 + 11873 +\item[] 11873 0 3 354,109,1189, 0,739,1347, +\end{DUlineblock} + +\end{enumerate} + + +\subsubsection{4.1.2 BEDPE format} +\label{content/general-usage:bedpe-format} +We have defined a new file format (BEDPE) in order to concisely describe disjoint genome features, +such as structural variations or paired-end sequence alignments. We chose to define a new format +because the existing ``blocked'' BED format (a.k.a. BED12) does not allow inter-chromosomal feature +definitions. In addition, BED12 only has one strand field, which is insufficient for paired-end sequence +alignments, especially when studying structural variation. + +The BEDPE format is described below. The description is modified from: \href{http://genome.ucsc.edu/FAQ/FAQformat\#format1}{http://genome.ucsc.edu/FAQ/FAQformat\#format1}. +\begin{enumerate} +\item {} +\textbf{chrom1} - The name of the chromosome on which the \textbf{first} end of the feature exists. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{Any string can be used}. For example, ``chr1'', ``III'', ``myChrom'', ``contig1112.23''. + +\item {} +\emph{This column is required}. + +\item {} +\emph{Use ''.'' for unknown}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{1} +\item {} +\textbf{start1} - The zero-based starting position of the \textbf{first} end of the feature on \textbf{chrom1}. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{The first base in a chromosome is numbered 0}. + +\item {} +\emph{As with BED format, the start position in each BEDPE feature is therefore interpreted to be 1 greater than the start position listed in the feature. This column is required}. + +\item {} +\emph{Use -1 for unknown}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{2} +\item {} +\textbf{end1} - The one-based ending position of the first end of the feature on \textbf{chrom1}. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{The end position in each BEDPE feature is one-based}. + +\item {} +\emph{This column is required}. + +\item {} +\emph{Use -1 for unknown}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{3} +\item {} +\textbf{chrom2} - The name of the chromosome on which the \textbf{second} end of the feature exists. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{Any string can be used}. For example, ``chr1'', ``III'', ``myChrom'', ``contig1112.23''. + +\item {} +\emph{This column is required}. + +\item {} +\emph{Use ''.'' for unknown}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{4} +\item {} +\textbf{start2} - The zero-based starting position of the \textbf{second} end of the feature on \textbf{chrom2}. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{The first base in a chromosome is numbered 0}. + +\item {} +\emph{As with BED format, the start position in each BEDPE feature is therefore interpreted to be 1 greater than the start position listed in the feature. This column is required}. + +\item {} +\emph{Use -1 for unknown}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{5} +\item {} +\textbf{end2} - The one-based ending position of the \textbf{second} end of the feature on \textbf{chrom2}. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{The end position in each BEDPE feature is one-based}. + +\item {} +\emph{This column is required}. + +\item {} +\emph{Use -1 for unknown}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{6} +\item {} +\textbf{name} - Defines the name of the BEDPE feature. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{Any string can be used}. For example, ``LINE'', ``Exon3'', ``HWIEAS\_0001:3:1:0:266\#0/1'', or ``my\_Feature''. + +\item {} +\emph{This column is optional}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{7} +\item {} +\textbf{score} - The UCSC definition requires that a BED score range from 0 to 1000, inclusive. \emph{However, BEDTools allows any string to be stored in this field in order to allow greater flexibility in annotation features}. For example, strings allow scientific notation for p-values, mean enrichment values, etc. It should be noted that this flexibility could prevent such annotations from being correctly displayed on the UCSC browser. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{Any string can be used}. For example, 7.31E-05 (p-value), 0.33456 (mean enrichment value), ``up'', ``down'', etc. + +\item {} +\emph{This column is optional}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{8} +\item {} +\textbf{strand1} - Defines the strand for the first end of the feature. Either `+' or `-`. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{This column is optional}. + +\item {} +\emph{Use ''.'' for unknown}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{9} +\item {} +\textbf{strand2} - Defines the strand for the second end of the feature. Either `+' or `-`. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{This column is optional}. + +\item {} +\emph{Use ''.'' for unknown}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{10} +\item {} +\textbf{Any number of additional, user-defined fields} - BEDTools allows one to add as many additional fields to the normal, 10-column BEDPE format as necessary. These columns are merely ``passed through'' \textbf{pairToBed} and \textbf{pairToPair} and are not part of any analysis. One would use these additional columns to add extra information (e.g., edit distance for each end of an alignment, or ``deletion'', ``inversion'', etc.) to each BEDPE feature. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{These additional columns are optional}. + +\end{itemize} + +Entries from an typical BEDPE file: + +\begin{Verbatim}[commandchars=\\\{\}] +chr1 100 200 chr5 5000 5100 bedpe\_example1 30 + - +chr9 1000 5000 chr9 3000 3800 bedpe\_example2 100 + - +\end{Verbatim} + +Entries from a BEDPE file with two custom fields added to each record: + +\begin{Verbatim}[commandchars=\\\{\}] +chr1 10 20 chr5 50 60 a1 30 + - 0 1 +chr9 30 40 chr9 80 90 a2 100 + - 2 1 +\end{Verbatim} + + +\subsubsection{4.1.3 GFF format} +\label{content/general-usage:gff-format} +The GFF format is described on the Sanger Institute's website (\href{http://www.sanger.ac.uk/resources/software/gff/spec.html}{http://www.sanger.ac.uk/resources/software/gff/spec.html}). The GFF description below is modified from the definition at this URL. All nine columns in the GFF format description are required by BEDTools. +\begin{enumerate} +\item {} +\textbf{seqname} - The name of the sequence (e.g. chromosome) on which the feature exists. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{Any string can be used}. For example, ``chr1'', ``III'', ``myChrom'', ``contig1112.23''. + +\item {} +\emph{This column is required}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{1} +\item {} +\textbf{source} - The source of this feature. This field will normally be used to indicate the program making the prediction, or if it comes from public database annotation, or is experimentally verified, etc. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{This column is required}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{2} +\item {} +\textbf{feature} - The feature type name. Equivalent to BED's \textbf{name} field. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{Any string can be used}. For example, ``exon'', etc. + +\item {} +\emph{This column is required}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{3} +\item {} +\textbf{start} - The one-based starting position of feature on \textbf{seqname}. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{This column is required}. + +\item {} +\emph{BEDTools accounts for the fact the GFF uses a one-based position and BED uses a zero-based start position}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{4} +\item {} +\textbf{end} - The one-based ending position of feature on \textbf{seqname}. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{This column is required}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{5} +\item {} +\textbf{score} - A score assigned to the GFF feature. Like BED format, BEDTools allows any string to be stored in this field in order to allow greater flexibility in annotation features. We note that this differs from the GFF definition in the interest of flexibility. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{This column is required}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{6} +\item {} +\textbf{strand} - Defines the strand. Use `+', `-` or `.' + +\end{enumerate} +\begin{itemize} +\item {} +\emph{This column is required}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{7} +\item {} +\textbf{frame} - The frame of the coding sequence. Use `0', `1', `2', or `.'. + +\end{enumerate} +\begin{itemize} +\item {} +\emph{This column is required}. + +\end{itemize} +\begin{enumerate} +\setcounter{enumi}{8} +\item {} +\textbf{attribute} - Taken from \href{http://www.sanger.ac.uk/resources/software/gff/spec.html}{http://www.sanger.ac.uk/resources/software/gff/spec.html}: From version 2 onwards, the attribute field must have an tag value structure following the syntax used within objects in a .ace file, flattened onto one line by semicolon separators. Tags must be standard identifiers ({[}A-Za-z{]}{[}{\color{red}\bfseries{}AZa-z0-9\_}{]}*). Free text values must be quoted with double quotes. \emph{Note: all non-printing characters in such free text value strings (e.g. newlines, tabs, control characters, etc) must be explicitly represented by their C (UNIX) style backslash-escaped representation (e.g. newlines as `n', tabs as `t')}. As in ACEDB, multiple values can follow a specific tag. The aim is to establish consistent use of particular tags, corresponding to an underlying implied ACEDB model if you want to think that way (but acedb is not required). + +\end{enumerate} +\begin{itemize} +\item {} +\emph{This column is required}. + +\end{itemize} + +An entry from an example GFF file : + +\begin{Verbatim}[commandchars=\\\{\}] +seq1 BLASTX similarity 101 235 87.1 + 0 Target "HBA\_HUMAN" 11 55 ; +E\_value 0.0003 dJ102G20 GD\_mRNA coding\_exon 7105 7201 . - 2 Sequence +"dJ102G20.C1.1" +\end{Verbatim} + + +\subsubsection{4.1.3 GFF format} +\label{content/general-usage:id1} +Some of the BEDTools (e.g., genomeCoverageBed, complementBed, slopBed) need to know the size of +the chromosomes for the organism for which your BED files are based. When using the UCSC Genome +Browser, Ensemble, or Galaxy, you typically indicate which which species/genome build you are +working. The way you do this for BEDTools is to create a ``genome'' file, which simply lists the names of +the chromosomes (or scaffolds, etc.) and their size (in basepairs). + +Genome files must be \textbf{tab-delimited} and are structured as follows (this is an example for \emph{C. elegans}): + +\begin{Verbatim}[commandchars=\\\{\}] +chrI 15072421 +chrII 15279323 +... +chrX 17718854 +chrM 13794 +\end{Verbatim} + +BEDTools includes pre-defined genome files for human and mouse in the \textbf{/genomes} directory included +in the BEDTools distribution. + + +\subsubsection{4.1.5 SAM/BAM format} +\label{content/general-usage:sam-bam-format} +The SAM / BAM format is a powerful and widely-used format for storing sequence alignment data (see +\href{http://samtools.sourceforge.net/}{http://samtools.sourceforge.net/} for more details). It has quickly become the standard format to which +most DNA sequence alignment programs write their output. Currently, the following BEDTools +support inout in BAM format: \emph{intersectBed, windowBed, coverageBed, genomeCoverageBed, +pairToBed, bamToBed}. Support for the BAM format in BEDTools allows one to (to name a few): +compare sequence alignments to annotations, refine alignment datasets, screen for potential mutations +and compute aligned sequence coverage. + +The details of how these tools work with BAM files are addressed in \textbf{Section 5} of this manual. + + +\subsubsection{4.1.6 VCF format} +\label{content/general-usage:vcf-format} +The Variant Call Format (VCF) was conceived as part of the 1000 Genomes Project as a standardized +means to report genetic variation calls from SNP, INDEL and structural variant detection programs +(see \href{http://www.1000genomes.org/wiki/doku.php?id=1000\_genomes:analysis:vcf4.0}{http://www.1000genomes.org/wiki/doku.php?id=1000\_genomes:analysis:vcf4.0} for details). +BEDTools now supports the latest version of this format (i.e, Version 4.0). As a result, BEDTools can +be used to compare genetic variation calls with other genomic features. + + +\section{The BEDTools suite} +\label{content/bedtools-suite:the-bedtools-suite}\label{content/bedtools-suite::doc} +This section covers the functionality and default / optional usage for each of the available BEDTools. +Example ``figures'' are provided in some cases in an effort to convey the purpose of the tool. The +behavior of each available parameter is discussed for each tool in abstract terms. More concrete usage +examples are provided in \textbf{Section 6}. + + +\subsection{Table of contents} +\label{content/bedtools-suite:table-of-contents} + +\subsubsection{5.1 intersectBed} +\label{content/intersectBed:intersectbed}\label{content/intersectBed::doc} +By far, the most common question asked of two sets of genomic features is whether or not any of the +features in the two sets ``overlap'' with one another. This is known as feature intersection. \textbf{intersectBed} +allows one to screen for overlaps between two sets of genomic features. Moreover, it allows one to have +fine control as to how the intersections are reported. \textbf{intersectBed} works with both BED/GFF/VCF +and BAM files as input. + + +\paragraph{5.1.1 Usage and option summary} +\label{content/intersectBed:usage-and-option-summary} +\textbf{Usage}: + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed [OPTIONS] [-a \textless{}BED/GFF/VCF\textgreater{} \textbar{}\textbar{} -abam \textless{}BAM\textgreater{}] -b \textless{}BED/GFF/VCF\textgreater{} +\end{Verbatim} + +\begin{tabulary}{\linewidth}{|L|L|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-a} + & +BED/GFF/VCF file A. Each feature in A is compared to B in search of overlaps. Use ``stdin'' if passing A with a UNIX pipe. +\\\hline + +\textbf{-b} + & +BED/GFF/VCF file B. Use ``stdin'' if passing B with a UNIX pipe. +\\\hline + +\textbf{-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 \textless{}BAM\textgreater{} \textbar{} intersectBed -abam stdin -b genes.bed +\\\hline + +\textbf{-ubam} + & +Write uncompressed BAM output. The default is write compressed BAM output. +\\\hline + +\textbf{-bed} + & +When using BAM input (-abam), write output as BED. The default is to write output in BAM when using -abam. For example: intersectBed -abam reads.bam -b genes.bed -bed +\\\hline + +\textbf{-wa} + & +Write the original entry in A for each overlap. +\\\hline + +\textbf{-wb} + & +Write the original entry in B for each overlap. Useful for knowing what A overlaps. Restricted by -f and -r. +\\\hline + +\textbf{-wo} + & +Write the original A and B entries plus the number of base pairs of overlap between the two features. Only A features with overlap are reported. Restricted by -f and -r. +\\\hline + +\textbf{-wao} + & +Write the original A and B entries plus the number of base pairs of overlap between the two features. However, A features w/o overlap are also reported with a NULL B feature and overlap = 0. Restricted by -f and -r. +\\\hline + +\textbf{-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. Restricted by -f and -r. +\\\hline + +\textbf{-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. Restricted by -f and -r. +\\\hline + +\textbf{-v} + & +Only report those entries in A that have no overlap in B. Restricted by -f and -r. +\\\hline + +\textbf{-f} + & +Minimum overlap required as a fraction of A. Default is 1E-9 (i.e. 1bp). +\\\hline + +\textbf{-r} + & +Require that the fraction of overlap be reciprocal for A and B. In other words, if -f is 0.90 and -r is used, this requires that B overlap at least 90\% of A and that A also overlaps at least 90\% of B. +\\\hline + +\textbf{-s} + & +Force ``strandedness''. That is, only report hits in B that overlap A on the same strand. By default, overlaps are reported without respect to strand. +\\\hline + +\textbf{-split} + & +Treat ``split'' BAM (i.e., having an ``N'' CIGAR operation) or BED12 entries as distinct BED intervals. +\\\hline +\end{tabulary} + + + +\paragraph{5.1.2 Default behavior} +\label{content/intersectBed:default-behavior} +By default, if an overlap is found, \textbf{intersectBed} reports the shared interval between the two +overlapping features. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +BED/BAM A ******************* ************* + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result ======== +\end{Verbatim} + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 +chr1 1000 2000 + +cat B.bed +chr1 150 250 + +intersectBed -a A.bed -b B.bed +chr1 150 200 +\end{Verbatim} + + +\paragraph{5.1.3 (-wa)Reporting the original A feature} +\label{content/intersectBed:wa-reporting-the-original-a-feature} +Instead, one can force \textbf{intersectBed} to report the \emph{original} \textbf{``A''} feature when an overlap is found. As +shown below, the entire ``A'' feature is reported, not just the portion that overlaps with the ``B'' feature. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +BED/BAM A ******************* ************* + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result =================== +\end{Verbatim} + +For example (compare with example from default behavior): + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 +chr1 1000 2000 + +cat B.bed +chr1 150 250 + +intersectBed -a A.bed -b B.bed -wa +chr1 100 200 +\end{Verbatim} + + +\paragraph{5.1.4 (-wb)Reporting the original B feature} +\label{content/intersectBed:wb-reporting-the-original-b-feature} +Similarly, one can force \textbf{intersectBed} to report the \emph{original} \textbf{``B''} feature when an overlap is found. If +just -wb is used, the overlapping portion of A will be reported followed by the \emph{original} \textbf{``B''}. If both -wa +and -wb are used, the \emph{originals} of both \textbf{``A''} and \textbf{``B''} will be reported. + +For example (-wb alone): + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 +chr1 1000 2000 + +cat B.bed +chr1 150 250 + +intersectBed -a A.bed -b B.bed -wb +chr1 150 200 chr1 150 250 +\end{Verbatim} + +Now -wa and -wb: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 +chr1 1000 2000 + +cat B.bed +chr1 150 250 + +intersectBed -a A.bed -b B.bed -wa -wb +chr1 100 200 chr1 150 250 +\end{Verbatim} + + +\paragraph{5.1.5 (-u)Reporting the presence of \emph{at least one} overlapping feature} +\label{content/intersectBed:u-reporting-the-presence-of-at-least-one-overlapping-feature} +Frequently a feature in ``A'' will overlap with multiple features in ``B''. By default, \textbf{intersectBed} will +report each overlap as a separate output line. However, one may want to simply know that there is at +least one overlap (or none). When one uses the -u option, ``A'' features that overlap with one or more +``B'' features are reported once. Those that overlap with no ``B'' features are not reported at all. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 +chr1 1000 2000 + +cat B.bed +chr1 101 201 +chr1 120 220 + +intersectBed -a A.bed -b B.bed -u +chr1 100 200 +\end{Verbatim} + + +\paragraph{5.1.6 (-c)Reporting the number of overlapping features} +\label{content/intersectBed:c-reporting-the-number-of-overlapping-features} +The -c option reports a column after each ``A'' feature indicating the \emph{number} (0 or more) of overlapping +features found in ``B''. Therefore, \emph{each feature in A is reported once}. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 +chr1 1000 2000 + +cat B.bed +chr1 101 201 +chr1 120 220 + +intersectBed -a A.bed -b B.bed -c +chr1 100 200 2 +chr1 1000 2000 0 +\end{Verbatim} + + +\paragraph{5.1.6 (-c)Reporting the number of overlapping features} +\label{content/intersectBed:id1} +The -c option reports a column after each ``A'' feature indicating the \emph{number} (0 or more) of overlapping +features found in ``B''. Therefore, \emph{each feature in A is reported once}. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 +chr1 1000 2000 + +cat B.bed +chr1 101 201 +chr1 120 220 + +intersectBed -a A.bed -b B.bed -c +chr1 100 200 2 +chr1 1000 2000 0 +\end{Verbatim} + + +\paragraph{5.1.7 (-v)Reporting the absence of any overlapping features} +\label{content/intersectBed:v-reporting-the-absence-of-any-overlapping-features} +There will likely be cases where you'd like to know which ``A'' features do not overlap with any of the +``B'' features. Perhaps you'd like to know which SNPs don't overlap with any gene annotations. The -v +(an homage to ``grep -v'') option will only report those ``A'' features that have no overlaps in ``B''. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 +chr1 1000 2000 + +cat B.bed +chr1 101 201 +chr1 120 220 + +intersectBed -a A.bed -b B.bed -v +chr1 1000 2000 +\end{Verbatim} + + +\paragraph{5.1.8 (-f)Requiring a minimal overlap fraction} +\label{content/intersectBed:f-requiring-a-minimal-overlap-fraction} +By default, \textbf{intersectBed} will report an overlap between A and B so long as there is at least one base +pair is overlapping. Yet sometimes you may want to restrict reported overlaps between A and B to cases +where the feature in B overlaps at least X\% (e.g. 50\%) of the A feature. The -f option does exactly +this. + +For example (note that the second B entry is not reported): + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 + +cat B.bed +chr1 130 201 +chr1 180 220 + +intersectBed -a A.bed -b B.bed -f 0.50 -wa -wb +chr1 100 200 chr1 130 201 +\end{Verbatim} + + +\paragraph{5.1.9 (-r, combined with -f)Requiring reciprocal minimal overlap fraction} +\label{content/intersectBed:r-combined-with-f-requiring-reciprocal-minimal-overlap-fraction} +Similarly, you may want to require that a minimal fraction of both the A and the B features is +overlapped. For example, if feature A is 1kb and feature B is 1Mb, you might not want to report the +overlap as feature A can overlap at most 1\% of feature B. If one set -f to say, 0.02, and one also +enable the -r (reciprocal overlap fraction required), this overlap would not be reported. + +For example (note that the second B entry is not reported): + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 + +cat B.bed +chr1 130 201 +chr1 130 200000 + +intersectBed -a A.bed -b B.bed -f 0.50 -r -wa -wb +chr1 100 200 chr1 130 201 +\end{Verbatim} + + +\paragraph{5.1.10 (-s)Enforcing ``strandedness''} +\label{content/intersectBed:s-enforcing-strandedness} +By default, \textbf{intersectBed} will report overlaps between features even if the features are on opposite +strands. However, if strand information is present in both BED files and the ``-s'' option is used, overlaps +will only be reported when features are on the same strand. + +For example (note that the second B entry is not reported): + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 a1 100 + + +cat B.bed +chr1 130 201 b1 100 - +chr1 130 201 b2 100 + + +intersectBed -a A.bed -b B.bed -wa -wb -s +chr1 100 200 a1 100 + chr1 130 201 b2 100 + +\end{Verbatim} + + +\paragraph{5.1.11 (-abam)Default behavior when using BAM input} +\label{content/intersectBed:abam-default-behavior-when-using-bam-input} +When comparing alignments in BAM format (\textbf{-abam}) to features in BED format (\textbf{-b}), \textbf{intersectBed} +will, \textbf{by default}, write the output in BAM format. That is, each alignment in the BAM file that meets +the user's criteria will be written (to standard output) in BAM format. This serves as a mechanism to +create subsets of BAM alignments are of biological interest, etc. Note that only the mate in the BAM +alignment is compared to the BED file. Thus, if only one end of a paired-end sequence overlaps with a +feature in B, then that end will be written to the BAM output. By contrast, the other mate for the +pair will not be written. One should use \textbf{pairToBed(Section 5.2)} if one wants each BAM alignment +for a pair to be written to BAM output. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -abam reads.unsorted.bam -b simreps.bed \textbar{} samtools view - \textbar{} head -3 + +BERTHA\_0001:3:1:15:1362\#0 99 chr4 9236904 0 50M = 9242033 5 1 7 9 +AGACGTTAACTTTACACACCTCTGCCAAGGTCCTCATCCTTGTATTGAAG W c T U ] b \PYGZbs{} g c e g X g f c b f c c b d d g g V Y P W W \_ +\PYGZbs{}c{}`dcdabdfW\textasciicircum{}a\textasciicircum{}gggfgd XT:A:R NM:i:0 SM:i:0 AM:i:0 X0:i:19 X1:i:2 XM:i:0 XO:i:0 XG:i:0 MD:Z:50 +BERTHA \_0001:3:1:16:994\#0 83 chr6 114221672 37 25S6M1I11M7S = +114216196 -5493 G A A A G G C C A G A G T A T A G A A T A A A C A C A A C A A T G T C C A A G G T A C A C T G T T A +gffeaaddddggggggedgcgeggdegggggffcgggggggegdfggfgf XT:A:M NM:i:3 SM:i:37 AM:i:37 XM:i:2 X O : i : +1 XG:i:1 MD:Z:6A6T3 +BERTHA \_0001:3:1:16:594\#0 147 chr8 43835330 0 50M = +43830893 -4487 CTTTGGGAGGGCTTTGTAGCCTATCTGGAAAAAGGAAATATCTTCCCATG U +\PYGZbs{}e\textasciicircum{}bgeTdg\_Kgcg{}`ggeggg\_gggggggggddgdggVg\PYGZbs{}gWdfgfgff XT:A:R NM:i:2 SM:i:0 AM:i:0 X0:i:10 X1:i:7 X M : i : +2 XO:i:0 XG:i:0 MD:Z:1A2T45 +\end{Verbatim} + + +\paragraph{5.1.12 (-bed)Output BED format when using BAM input} +\label{content/intersectBed:bed-output-bed-format-when-using-bam-input} +When comparing alignments in BAM format (\textbf{-abam}) to features in BED format (\textbf{-b}), \textbf{intersectBed} +will \textbf{optionally} write the output in BED format. That is, each alignment in the BAM file is converted +to a 6 column BED feature and if overlaps are found (or not) based on the user's criteria, the BAM +alignment will be reported in BED format. The BED ``name'' field is comprised of the RNAME field in +the BAM alignment. If mate information is available, the mate (e.g., ``/1'' or ``/2'') field will be +appended to the name. The ``score'' field is the mapping quality score from the BAM alignment. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -abam reads.unsorted.bam -b simreps.bed -bed \textbar{} head -20 + +chr4 9236903 9236953 BERTHA\_0001:3:1:15:1362\#0/1 0 + +chr6 114221671 114221721 BERTHA\_0001:3:1:16:994\#0/1 37 - +chr8 43835329 43835379 BERTHA\_0001:3:1:16:594\#0/2 0 - +chr4 49110668 49110718 BERTHA\_0001:3:1:31:487\#0/1 23 + +chr19 27732052 27732102 BERTHA\_0001:3:1:32:890\#0/2 46 + +chr19 27732012 27732062 BERTHA\_0001:3:1:45:1135\#0/1 37 + +chr10 117494252 117494302 BERTHA\_0001:3:1:68:627\#0/1 37 - +chr19 27731966 27732016 BERTHA\_0001:3:1:83:931\#0/2 9 + +chr8 48660075 48660125 BERTHA\_0001:3:1:86:608\#0/2 37 - +chr9 34986400 34986450 BERTHA\_0001:3:1:113:183\#0/2 37 - +chr10 42372771 42372821 BERTHA\_0001:3:1:128:1932\#0/1 3 - +chr19 27731954 27732004 BERTHA\_0001:3:1:130:1402\#0/2 0 + +chr10 42357337 42357387 BERTHA\_0001:3:1:137:868\#0/2 9 + +chr1 159720631 159720681 BERTHA\_0001:3:1:147:380\#0/2 37 - +chrX 58230155 58230205 BERTHA\_0001:3:1:151:656\#0/2 37 - +chr5 142612746 142612796 BERTHA\_0001:3:1:152:1893\#0/1 37 - +chr9 71795659 71795709 BERTHA\_0001:3:1:177:387\#0/1 37 + +chr1 106240854 106240904 BERTHA\_0001:3:1:194:928\#0/1 37 - +chr4 74128456 74128506 BERTHA\_0001:3:1:221:724\#0/1 37 - +chr8 42606164 42606214 BERTHA\_0001:3:1:244:962\#0/1 37 + +\end{Verbatim} + + +\paragraph{5.1.13 (-split)Reporting overlaps with spliced alignments or blocked BED features} +\label{content/intersectBed:split-reporting-overlaps-with-spliced-alignments-or-blocked-bed-features} +As described in section 1.3.19, intersectBed will, by default, screen for overlaps against the entire span +of a spliced/split BAM alignment or blocked BED12 feature. When dealing with RNA-seq reads, for +example, one typically wants to only screen for overlaps for the portions of the reads that come from +exons (and ignore the interstitial intron sequence). The \textbf{-split} command allows for such overlaps to be +performed. + +For example, the diagram below illustrates the \emph{default} behavior. The blue dots represent the ``split/ +spliced'' portion of the alignment (i.e., CIGAR ``N'' operation). In this case, the two exon annotations +are reported as overlapping with the ``split'' BAM alignment, but in addition, a third feature that +overlaps the ``split'' portion of the alignment is also reported. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +Exons --------------- ---------- + +BED/BAM A ************.......................................**** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result =============== ======== ========== +\end{Verbatim} + +In contrast, when using the \textbf{-split} option, only the exon overlaps are reported. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +Exons --------------- ---------- + +BED/BAM A ************.......................................**** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result =============== ========== +\end{Verbatim} + + +\subsubsection{5.2 pairToBed} +\label{content/pairToBed::doc}\label{content/pairToBed:pairtobed} +\textbf{pairToBed} compares each end of a BEDPE feature or a paired-end BAM alignment to a feature file in +search of overlaps. + +\textbf{NOTE: pairToBed requires that the BAM file is sorted/grouped by the read name. This +allows pairToBed to extract correct alignment coordinates for each end based on their +respective CIGAR strings. It also assumes that the alignments for a given pair come in +groups of twos. There is not yet a standard method for reporting multiple alignments +using BAM. pairToBed will fail if an aligner does not report alignments in pairs.} + + +\paragraph{5.2.1 Usage and option summary} +\label{content/pairToBed:usage-and-option-summary} +\textbf{Usage:} + +\begin{Verbatim}[commandchars=\\\{\}] +pairToBed [OPTIONS] [-a \textless{}BEDPE\textgreater{} \textbar{}\textbar{} -abam \textless{}BAM\textgreater{}] -b \textless{}BED/GFF/VCF\textgreater{} +\end{Verbatim} + +\begin{tabular}{|p{0.475\linewidth}|p{0.475\linewidth}|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-a} + & +BEDPE file A. Each feature in A is compared to B in search of overlaps. Use ``stdin'' if passing A with a UNIX pipe. Output will be in BEDPE format. +\\\hline + +\textbf{-b} + & +BED file B. Use ``stdin'' if passing B with a UNIX pipe. +\\\hline + +\textbf{-abam} + & +BAM file A. Each end of 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 ?Cb \textless{}BAM\textgreater{} \textbar{} pairToBed ?Cabam stdin ?Cb genes.bed \textbar{} samtools view - +\\\hline + +\textbf{-ubam} + & +Write uncompressed BAM output. The default is write compressed BAM output. +\\\hline + +\textbf{-bedpe} + & +When using BAM input (-abam), write output as BEDPE. The default is to write output in BAM when using -abam. For example: pairToBed ?Cabam reads.bam ?Cb genes.bed ?Cbedpe +\\\hline + +\textbf{-ed} + & +Use BAM total edit distance (NM tag) for BEDPE score. Default for BEDPE is to use the \emph{minimum} of the two mapping qualities for the pair. When -ed is used the \emph{total} edit distance from the two mates is reported as the score. +\\\hline + +\textbf{-f} + & +Minimum overlap required as a fraction of A. Default is 1E-9 (i.e. 1bp). +\\\hline + +\textbf{-s} + & +Force ``strandedness''. That is, only report hits in B that overlap A on the \textbf{same} strand. By default, overlaps are reported without respect to strand. +\\\hline + +\textbf{-type} + & +Approach to reporting overlaps between BEDPE and BED. +\begin{quote} +\begin{quote} + +\textbf{either-} Report overlaps if either end of A overlaps B. +\begin{itemize} +\item {} +\emph{Default} + +\end{itemize} + +\textbf{neither-} Report A if neither end of A overlaps B. + +\textbf{xor-} Report overlaps if one and only one end of A overlaps B. + +\textbf{both-} Report overlaps if both ends of A overlap B. + +\textbf{notboth-} Report overlaps if neither end or one and only one end of A overlap B. + +\textbf{ispan-} Report overlaps between {[}end1, start2{]} of A and B. +\begin{itemize} +\item {} +Note: If chrom1 \textless{}\textgreater{} chrom2, entry is ignored. + +\end{itemize} +\end{quote} + +\textbf{ospan-} Report overlaps between {[}start1, end2{]} of A and B. +\begin{quote} +\begin{itemize} +\item {} +Note: If chrom1 \textless{}\textgreater{} chrom2, entry is ignored. + +\end{itemize} + +\textbf{notispan-} Report A if ispan of A doesn't overlap B. +- Note: If chrom1 \textless{}\textgreater{} chrom2, entry is ignored. + +\textbf{notospan-} Report A if ospan of A doesn't overlap B. +- Note: If chrom1 \textless{}\textgreater{} chrom2, entry is ignored. +\end{quote} +\end{quote} +\\\hline +\end{tabular} + + + +\paragraph{5.2.2 Default behavior} +\label{content/pairToBed:default-behavior} +By default, a BEDPE / BAM feature will be reported if \emph{either} end overlaps a feature in the BED file. +In the example below, the left end of the pair overlaps B yet the right end does not. Thus, BEDPE/ +BAM A is reported since the default is to report A if either end overlaps B. + +Default: Report A if \emph{either} end overlaps B. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result =====.................................===== +\end{Verbatim} + + +\paragraph{5.2.3 (-type)Optional overlap requirements} +\label{content/pairToBed:type-optional-overlap-requirements} +Using then \textbf{-type} option, \textbf{pairToBed} provides several other overlap requirements for controlling how +overlaps between BEDPE/BAM A and BED B are reported. The examples below illustrate how each +option behaves. + +\textbf{-type both}: Report A only if \emph{both} ends overlap B. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result + + + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result =====.................................===== +\end{Verbatim} + +\textbf{-type neither}: Report A only if \emph{neither} end overlaps B. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result + + + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result =====.................................===== +\end{Verbatim} + +\textbf{-type xor}: Report A only if \emph{one and only one} end overlaps B. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result =====.................................===== + + + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result +\end{Verbatim} + +\textbf{-type notboth}: Report A only if \emph{neither end} \textbf{or} \emph{one and only one} end overlaps B. Thus ``notboth'' +includes what would be reported by ``neither'' and by ``xor''. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result =====.................................===== + + + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result =====.................................===== + + + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result +\end{Verbatim} + +\textbf{-type ispan}: Report A if it's ``\emph{inner span}'' overlaps B. Applicable only to intra-chromosomal features. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + + Inner span \textbar{}-------------------------------\textbar{} + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result =====.................................===== + + + +BEDPE/BAM A =====.................................===== + +BED File B ==== + +Result +\end{Verbatim} + +\textbf{-type ospan}: Report A if it's ``\emph{outer span}'' overlaps B. Applicable only to intra-chromosomal features. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + + Outer span \textbar{}-----------------------------------------\textbar{} + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result =====.................................===== + + + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result +\end{Verbatim} + +\textbf{-type notispan}: Report A only if it's ``\emph{inner span}'' does not overlap B. Applicable only to intrachromosomal +features. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + + Inner span \textbar{}-------------------------------\textbar{} + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result + + + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result =====.................................===== +\end{Verbatim} + +\textbf{-type notospan}: Report A if it's ``\emph{outer span}'' overlaps B. Applicable only to intra-chromosomal +features. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + + Outer span \textbar{}-----------------------------------------\textbar{} + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result + + + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result =====.................................===== +\end{Verbatim} + + +\paragraph{5.2.4 (-f)Requiring a minimum overlap fraction} +\label{content/pairToBed:f-requiring-a-minimum-overlap-fraction} +By default, \textbf{pairToBed} will report an overlap between A and B so long as there is at least one base +pair is overlapping on either end. Yet sometimes you may want to restrict reported overlaps between A +and B to cases where the feature in B overlaps at least X\% (e.g. 50\%) of A. The \textbf{?Cf} option does exactly +this. The \textbf{-f} option may also be combined with the -type option for additional control. For example, +combining \textbf{-f 0.50} with \textbf{-type both} requires that both ends of A have at least 50\% overlap with a +feature in B. + +For example, report A only at least 50\% of one of the two ends is overlapped by B. + +\begin{Verbatim}[commandchars=\\\{\}] +pairToBed -a A.bedpe -b B.bed -f 0.5 + + +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result + + + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result =====.................................===== +\end{Verbatim} + + +\paragraph{5.2.5 (-s)Enforcing ``strandedness''} +\label{content/pairToBed:s-enforcing-strandedness} +By default, \textbf{pairToBed} will report overlaps between features even if the features are on opposing +strands. However, if strand information is present in both files and the \textbf{``-s''} option is used, overlaps will +only be reported when features are on the same strand. + +For example, report A only at least 50\% of one of the two ends is overlapped by B. + +\begin{Verbatim}[commandchars=\\\{\}] +pairToBed -a A.bedpe -b B.bed -s + + + +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +BEDPE/BAM A \textgreater{}\textgreater{}\textgreater{}\textgreater{}\textgreater{}.................................\textless{}\textless{}\textless{}\textless{}\textless{} + +BED File B \textless{}\textless{} \textgreater{}\textgreater{}\textgreater{}\textgreater{}\textgreater{} + +Result + + + +BEDPE/BAM A \textgreater{}\textgreater{}\textgreater{}\textgreater{}\textgreater{}.................................\textless{}\textless{}\textless{}\textless{}\textless{} + +BED File B \textgreater{}\textgreater{} \textgreater{}\textgreater{}\textgreater{}\textgreater{}\textgreater{} + +Result \textgreater{}\textgreater{}\textgreater{}\textgreater{}\textgreater{}.................................\textless{}\textless{}\textless{}\textless{}\textless{} +\end{Verbatim} + + +\paragraph{5.2.6 (-abam)Default is to write BAM output when using BAM input} +\label{content/pairToBed:abam-default-is-to-write-bam-output-when-using-bam-input} +When comparing \emph{paired} alignments in BAM format (\textbf{-abam}) to features in BED format (\textbf{-b}), +\textbf{pairToBed} will , by default, write the output in BAM format. That is, each alignment in the BAM +file that meets the user's criteria will be written (to standard output) in BAM format. This serves as a +mechanism to create subsets of BAM alignments are of biological interest, etc. Note that both +alignments for each aligned pair will be written to the BAM output. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +pairToBed ?Cabam pairedReads.bam ?Cb simreps.bed \textbar{} samtools view - \textbar{} head -4 + +JOBU\_0001:3:1:4:1060\#0 99 chr10 42387928 29 50M = 42393091 5 2 1 3 +AA A A A C G G A A T T A T C G A A T G G A A T C G A A G A G A A T C T T C G A A C G G A C C C G A +dcgggggfbgfgdgggggggfdfgggcggggfcggcggggggagfgbggc XT:A:R NM:i:5 SM:i:0 AM:i:0 X0:i:3 X 1 : i : +3 XM:i:5 XO:i:0 XG:i:0 MD:Z:0T0C33A5T4T3 +JOBU\_0001:3:1:4:1060\#0 147 chr10 42393091 0 50M = 42387928 - 5 2 1 3 +AAATGGAATCGAATGGAATCAACATCAAATGGAATCAAATGGAATCATTG K g d c g g d e c d g +\PYGZbs{}d{}`ggfcgcggffcgggc\textasciicircum{}cgfgccgggfc\textasciicircum{}gcdgg\PYGZbs{}bg XT:A:R NM:i:2 SM:i:0 AM:i:0 X0:i:3 X1:i:13 XM:i:2 X O : i : +0 XG:i:0 MD:Z:21T14G13 +JOBU\_0001:3:1:8:446\#0 99 chr10 42388091 9 50M = 42392738 4 6 9 7 +GAATCGACTGGAATCATCATCGGATGGAAATGAATGGAATAATCATCGAA f \_ O f f {}` ] I e Y f f {}` f f e d d c f e f c P {}` c \_ W \PYGZbs{} \PYGZbs{} R \_ ] +\_BBBBBBBBBBBBBBBB XT:A:U NM:i:4 SM:i:0 AM:i:0 X0:i:1 X1:i:3 XM:i:4 XO:i:0 XG:i:0 M D : Z : +7A22C9C2T6 +JOBU\_0001:3:1:8:446\#0 147 chr10 42392738 9 50M = 42388091 - 4 6 9 7 +TTATCGAATGCAATCGAATGGAATTATCGAATGCAATCGAATAGAATCAT df\textasciicircum{}ffec\_JW[{}`MWceRec{}`{}`fee{}`dcecfeeZae{}`c] +f\textasciicircum{}cNeecfccf\textasciicircum{} XT:A:R NM:i:1 SM:i:0 AM:i:0 X0:i:2 X1:i:2 XM:i:1 XO:i:0 XG:i:0 MD:Z:38A11 +\end{Verbatim} + + +\paragraph{5.2.7 (-bedpe)Output BEDPE format when using BAM input} +\label{content/pairToBed:bedpe-output-bedpe-format-when-using-bam-input} +When comparing \emph{paired} alignments in BAM format (\textbf{-abam}) to features in BED format (\textbf{-b}), +\textbf{pairToBed} will optionally write the output in BEDPE format. That is, each alignment in the BAM +file is converted to a 10 column BEDPE feature and if overlaps are found (or not) based on the user's +criteria, the BAM alignment will be reported in BEDPE format. The BEDPE ``name'' field is comprised +of the RNAME field in the BAM alignment. The ``score'' field is the mapping quality score from the +BAM alignment. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +pairToBed ?Cabam pairedReads.bam ?Cb simreps.bed -bedpe \textbar{} head -5 +chr10 42387927 42387977 chr10 42393090 42393140 + JOBU\_0001:3:1:4:1060\#0 29 + - +chr10 42388090 42388140 chr10 42392737 42392787 + JOBU\_0001:3:1:8:446\#0 9 + - +chr10 42390552 42390602 chr10 42396045 42396095 + JOBU\_0001:3:1:10:1865\#0 9 + - +chrX 139153741 139153791 chrX 139159018 139159068 + JOBU\_0001:3:1:14:225\#0 37 + - +chr4 9236903 9236953 chr4 9242032 9242082 + JOBU\_0001:3:1:15:1362\#0 0 + - +\end{Verbatim} + + +\subsubsection{5.3 pairToPair} +\label{content/pairToPair:pairtopair}\label{content/pairToPair::doc} +\textbf{pairToPair} compares two BEDPE files in search of overlaps where each end of a BEDPE feature in A +overlaps with the ends of a feature in B. For example, using pairToPair, one could screen for the exact +same discordant paired-end alignment in two files. This could suggest (among other things) that the +discordant pair suggests the same structural variation in each file/sample. + + +\paragraph{5.3.1 Usage and option summary} +\label{content/pairToPair:usage-and-option-summary} +\textbf{Usage:} + +\begin{Verbatim}[commandchars=\\\{\}] +pairToPair [OPTIONS] -a \textless{}BEDPE\textgreater{} -b \textless{}BEDPE\textgreater{} +\end{Verbatim} + +\begin{tabular}{|p{0.475\linewidth}|p{0.475\linewidth}|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-a} + & +BEDPE file A. Each feature in A is compared to B in search of overlaps. Use ``stdin'' if passing A with a UNIX pipe. +\\\hline + +\textbf{-b} + & +BEDPE file B. Use ``stdin'' if passing B with a UNIX pipe. +\\\hline + +\textbf{-f} + & +Minimum overlap required as a fraction of A. Default is 1E-9 (i.e. 1bp). +\\\hline + +\textbf{-is} + & +Force ``strandedness''. That is, only report hits in B that overlap A on the same strand. By default, overlaps are reported without respect to strand. +\\\hline + +\textbf{-type} + & \begin{quote} + +Approach to reporting overlaps between BEDPE and BED. +\end{quote} + +\begin{DUlineblock}{0em} +\item[] \textbf{either} Report overlaps if either ends of A overlap B. +\end{DUlineblock} +\begin{quote} + +\begin{DUlineblock}{0em} +\item[] \textbf{neither} Report A if neither end of A overlaps B. +\end{DUlineblock} + +\begin{DUlineblock}{0em} +\item[] \textbf{both} Report overlaps if both ends of A overlap B. -\emph{Default behavior.} +\end{DUlineblock} +\end{quote} +\\\hline +\end{tabular} + + + +\paragraph{5.3.2 Default behavior} +\label{content/pairToPair:default-behavior} +By default, a BEDPE feature from A will be reported if \emph{both} ends overlap a feature in the BEDPE B +file. If strand information is present for the two BEDPE files, it will be further required that the +overlaps on each end be on the same strand. This way, an otherwise overlapping (in terms of genomic +locations) F/R alignment will not be matched with a R/R alignment. + +Default: Report A if \emph{both} ends overlaps B. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result =====.................................===== +\end{Verbatim} + +Default when strand information is present in both BEDPE files: Report A if \emph{both} ends overlaps B \emph{on +the same strands}. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +BEDPE A \textgreater{}\textgreater{}\textgreater{}\textgreater{}\textgreater{}.................................\textgreater{}\textgreater{}\textgreater{}\textgreater{}\textgreater{} + +BEDPE B \textless{}\textless{}\textless{}\textless{}\textless{}.............................\textgreater{}\textgreater{}\textgreater{}\textgreater{}\textgreater{} + +Result + + + +BEDPE A \textgreater{}\textgreater{}\textgreater{}\textgreater{}\textgreater{}.................................\textgreater{}\textgreater{}\textgreater{}\textgreater{}\textgreater{} + +BEDPE B \textgreater{}\textgreater{}\textgreater{}\textgreater{}\textgreater{}.............................\textgreater{}\textgreater{}\textgreater{}\textgreater{}\textgreater{} + +Result \textgreater{}\textgreater{}\textgreater{}\textgreater{}\textgreater{}.................................\textgreater{}\textgreater{}\textgreater{}\textgreater{}\textgreater{} +\end{Verbatim} + + +\paragraph{5.3.3 (-type neither)Optional overlap requirements} +\label{content/pairToPair:type-neither-optional-overlap-requirements} +Using then \textbf{-type neither, pairToPair} will only report A if \emph{neither} end overlaps with a BEDPE +feature in B. + +\textbf{-type neither}: Report A only if \emph{neither} end overlaps B. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}......................................\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result + + + +BEDPE/BAM A *****.................................***** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}................................................\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result =====.................................===== +\end{Verbatim} + + +\subsubsection{5.4 bamToBed} +\label{content/bamToBed:bamtobed}\label{content/bamToBed::doc} +\textbf{bamToBed} is a general purpose tool that will convert sequence alignments in BAM format to either +BED6, BED12 or BEDPE format. This enables one to convert BAM files for use with all of the other +BEDTools. The CIGAR string is used to compute the alignment end coordinate in an ``ungapped'' +fashion. That is, match (``M''), deletion (``D''), and splice (``N'') operations are observed when computing +alignment ends. + + +\paragraph{5.4.1 Usage and option summary} +\label{content/bamToBed:usage-and-option-summary} +\textbf{Usage:} + +\begin{Verbatim}[commandchars=\\\{\}] +bamToBed [OPTIONS] -i \textless{}BAM\textgreater{} +\end{Verbatim} + +\begin{tabular}{|p{0.475\linewidth}|p{0.475\linewidth}|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-bedpe} + & \begin{quote} +\begin{description} +\item[{Write BAM alignments in BEDPE format. Only one alignment from paired-end reads will be reported. Specifically, it each mate is aligned to the same chromosome, the BAM alignment reported will be the one where the BAM insert size is greater than zero. When the mate alignments are interchromosomal, the lexicographically lower chromosome will be reported first. Lastly, when an end is unmapped, the chromosome and strand will be set to ''.'' and the start and end coordinates will be set to -1. \emph{By default, this is disabled and the output will be reported in BED format}.}] \leavevmode +\textbf{NOTE: When using this option, it is required that the BAM file is sorted/grouped by the read name. This allows bamToBed to extract correct alignment coordinates for each end based on their respective CIGAR strings. It also assumes that the alignments for a given pair come in groups of twos. There is not yet a standard method for reporting multiple alignments using BAM. bamToBed will fail if an aligner does not report alignments in pairs}. + +\end{description} +\end{quote} + +BAM files may be piped to bamToBed by specifying ``-i stdin''. See example below. +\\\hline + +\textbf{-bed12} + & +Write ``blocked'' BED (a.k.a. BED12) format. This will convert ``spliced'' BAM alignments (denoted by the ``N'' CIGAR operation) to BED12. +\\\hline + +\textbf{-ed} + & +Use the ``edit distance'' tag (NM) for the BED score field. Default for BED is to use mapping quality. Default for BEDPE is to use the \emph{minimum} of the two mapping qualities for the pair. When -ed is used with -bedpe, the total edit distance from the two mates is reported. +\\\hline + +\textbf{-tag} + & +Use other \emph{numeric} BAM alignment tag for BED score. Default for BED is to use mapping quality. Disallowed with BEDPE output. +\\\hline + +\textbf{-color} + & +An R,G,B string for the color used with BED12 format. Default is (255,0,0). +\\\hline + +\textbf{-split} + & +Report each portion of a ``split'' BAM (i.e., having an ``N'' CIGAR operation) alignment as a distinct BED intervals. +\\\hline +\end{tabular} + + +By default, each alignment in the BAM file is converted to a 6 column BED. The BED ``name'' field is +comprised of the RNAME field in the BAM alignment. If mate information is available, the mate (e.g., +``/1'' or ``/2'') field will be appended to the name. The ``score'' field is the mapping quality score from the +BAM alignment, unless the \textbf{-ed} option is used. + +Examples: + +\begin{Verbatim}[commandchars=\\\{\}] +bamToBed -i reads.bam \textbar{} head -5 +chr7 118970079 118970129 TUPAC\_0001:3:1:0:1452\#0/1 37 - +chr7 118965072 118965122 TUPAC\_0001:3:1:0:1452\#0/2 37 + +chr11 46769934 46769984 TUPAC\_0001:3:1:0:1472\#0/1 37 - + +bamToBed -i reads.bam -tag NM \textbar{} head -5 +chr7 118970079 118970129 TUPAC\_0001:3:1:0:1452\#0/1 1 - +chr7 118965072 118965122 TUPAC\_0001:3:1:0:1452\#0/2 3 + +chr11 46769934 46769984 TUPAC\_0001:3:1:0:1472\#0/1 1 - + +bamToBed -i reads.bam -bedpe \textbar{} head -3 +chr7 118965072 118965122 chr7 118970079 118970129 + TUPAC\_0001:3:1:0:1452\#0 37 + - +chr11 46765606 46765656 chr11 46769934 46769984 + TUPAC\_0001:3:1:0:1472\#0 37 + - +chr20 54704674 54704724 chr20 54708987 54709037 + TUPAC\_0001:3:1:1:1833\#0 37 + +\end{Verbatim} + +One can easily use samtools and bamToBed together as part of a UNIX pipe. In this example, we will +only convert properly-paired (BAM flag == 0x2) reads to BED format. + +\begin{Verbatim}[commandchars=\\\{\}] +samtools view -bf 0x2 reads.bam \textbar{} bamToBed -i stdin \textbar{} head +chr7 118970079 118970129 TUPAC\_0001:3:1:0:1452\#0/1 37 - +chr7 118965072 118965122 TUPAC\_0001:3:1:0:1452\#0/2 37 + +chr11 46769934 46769984 TUPAC\_0001:3:1:0:1472\#0/1 37 - +chr11 46765606 46765656 TUPAC\_0001:3:1:0:1472\#0/2 37 + +chr20 54704674 54704724 TUPAC\_0001:3:1:1:1833\#0/1 37 + +chr20 54708987 54709037 TUPAC\_0001:3:1:1:1833\#0/2 37 - +chrX 9380413 9380463 TUPAC\_0001:3:1:1:285\#0/1 0 - +chrX 9375861 9375911 TUPAC\_0001:3:1:1:285\#0/2 0 + +chrX 131756978 131757028 TUPAC\_0001:3:1:2:523\#0/1 37 + +chrX 131761790 131761840 TUPAC\_0001:3:1:2:523\#0/2 37 - +\end{Verbatim} + + +\paragraph{5.4.2 (-split)Creating BED12 features from ``spliced'' BAM entries.} +\label{content/bamToBed:split-creating-bed12-features-from-spliced-bam-entries} +bamToBed will, by default, create a BED6 feature that represents the entire span of a spliced/split +BAM alignment. However, when using the \textbf{-split} command, a BED12 feature is reported where BED +blocks will be created for each aligned portion of the sequencing read. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +Exons *************** ********** + +BED/BAM A \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}....................................\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result =============== ==== +\end{Verbatim} + + +\subsubsection{5.5 windowBed} +\label{content/windowBed:windowbed}\label{content/windowBed::doc} +Similar to \textbf{intersectBed}, \textbf{windowBed} searches for overlapping features in A and B. However, +\textbf{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. + + +\paragraph{5.5.1 Usage and option summary} +\label{content/windowBed:usage-and-option-summary} +\textbf{Usage:} + +\begin{Verbatim}[commandchars=\\\{\}] +windowBed [OPTIONS] -a \textless{}BED/GFF/VCF\textgreater{} -b \textless{}BED/GFF/VCF\textgreater{} +\end{Verbatim} + +\begin{tabulary}{\linewidth}{|L|L|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-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 \textless{}BAM\textgreater{} \textbar{} windowBed -abam stdin -b genes.bed +\\\hline + +\textbf{-ubam} + & +Write uncompressed BAM output. The default is write compressed BAM output. +\\\hline + +\textbf{-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 +\\\hline + +\textbf{-w} + & +Base pairs added upstream and downstream of each entry in A when searching for overlaps in B. \emph{Default is 1000 bp}. +\\\hline + +\textbf{-l} + & +Base pairs added upstream (left of) of each entry in A when searching for overlaps in B. \emph{Allows one to create assymetrical ``windows''. Default is 1000bp}. +\\\hline + +\textbf{-r} + & +Base pairs added downstream (right of) of each entry in A when searching for overlaps in B. \emph{Allows one to create assymetrical ``windows''. Default is 1000bp}. +\\\hline + +\textbf{-sw} + & +Define -l and -r based on strand. For example if used, -l 500 for a negative-stranded feature will add 500 bp downstream. \emph{By default, this is disabled}. +\\\hline + +\textbf{-sm} + & +Only report hits in B that overlap A on the same strand. \emph{By default, overlaps are reported without respect to strand}. +\\\hline + +\textbf{-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. +\\\hline + +\textbf{-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. +\\\hline +\end{tabulary} + + + +\paragraph{5.5.2 Default behavior} +\label{content/windowBed:default-behavior} +By default, \textbf{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 \emph{original} A feature and the +\emph{original} B feature are reported. For example, in the figure below, feature B1 would be found, but B2 +would not. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + "window" = 10 +BED File A \textless{}----------*************----------\textgreater{} + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result ======== +\end{Verbatim} + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 + +cat B.bed +chr1 500 1000 +chr1 1300 2000 + +windowBed -a A.bed -b B.bed +chr1 100 200 chr1 500 1000 +\end{Verbatim} + + +\paragraph{5.5.3 (-w)Defining a custom window size} +\label{content/windowBed:w-defining-a-custom-window-size} +Instead of using the default window size of 1000bp, one can define a custom, \emph{symmetric} window around +each feature in A using the \textbf{-w} option. One should specify the window size in base pairs. For example, +a window of 5kb should be defined as \textbf{-w 5000}. + +For example (note that in contrast to the default behavior, the second B entry is reported): + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 + +cat B.bed +chr1 500 1000 +chr1 1300 2000 + +windowBed -a A.bed -b B.bed -w 5000 +chr1 100 200 chr1 500 1000 +chr1 100 200 chr1 1300 2000 +\end{Verbatim} + + +\paragraph{5.5.4 (-l and -r)Defining assymteric windows} +\label{content/windowBed: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 \textbf{-l (upstream)} and \textbf{-r (downstream)} options. + +For example (note the difference between -l 200 and -l 300): + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 1000 2000 + +cat B.bed +chr1 500 800 +chr1 10000 20000 + +windowBed -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 +chr1 100 200 chr1 500 800 +chr1 100 200 chr1 10000 20000 +\end{Verbatim} + + +\paragraph{5.5.5 (-sw)Defining assymteric windows based on strand} +\label{content/windowBed: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 \textbf{-sw} (``stranded'' windows) option, the windows are added upstream or +downstream according to strand. For example, imagine one specifies \textbf{-l 5000 -r 1000} as well as the \textbf{- +sw} option. In this case, forward stranded (``+'') features will screen 5000 bp to the \emph{left} (that is, \emph{lower} +genomic coordinates) and 1000 bp to the \emph{right} (that is, \emph{higher} genomic coordinates). By contrast, +reverse stranded (``-'') features will screen 5000 bp to the \emph{right} (that is, \emph{higher} genomic coordinates) and +1000 bp to the \emph{left} (that is, \emph{lower} genomic coordinates). + +For example (note the difference between -l 200 and -l 300): + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 10000 20000 A.forward 1 + +chr1 10000 20000 A.reverse 1 - + +cat B.bed +chr1 1000 8000 B1 +chr1 24000 32000 B2 + +windowBed -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 +\end{Verbatim} + + +\paragraph{5.5.6 (-sm)Enforcing ``strandedness''} +\label{content/windowBed:sm-enforcing-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. + + +\paragraph{5.5.7 (-u)Reporting the presence of at least one overlapping feature} +\label{content/windowBed:u-reporting-the-presence-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. + + +\paragraph{5.5.8 (-c)Reporting the number of overlapping features} +\label{content/windowBed: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. + + +\paragraph{5.5.9 (-v)Reporting the absence of any overlapping features} +\label{content/windowBed: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. + + +\subsubsection{5.6 closestBed} +\label{content/closestBed:closestbed}\label{content/closestBed::doc} +Similar to \textbf{intersectBed, closestBed} searches for overlapping features in A and B. In the event that +no feature in B overlaps the current feature in A, \textbf{closestBed} will report the \emph{closest} (that is, least +genomic distance from the start or end of A) feature in B. For example, one might want to find which +is the closest gene to a significant GWAS polymorphism. Note that \textbf{closestBed} will report an +overlapping feature as the closest---that is, it does not restrict to closest \emph{non-overlapping} feature. + + +\paragraph{5.6.1 Usage and option summary} +\label{content/closestBed:usage-and-option-summary} +\textbf{Usage:} + +\begin{Verbatim}[commandchars=\\\{\}] +closestBed [OPTIONS] -a \textless{}BED/GFF/VCF\textgreater{} -b \textless{}BED/GFF/VCF\textgreater{} +\end{Verbatim} + +\begin{tabular}{|p{0.475\linewidth}|p{0.475\linewidth}|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-s} + & +Force strandedness. That is, find the closest feature in B overlaps A on the same strand. \emph{By default, this is disabled}. +\\\hline + +\textbf{-d} + & +In addition to the closest feature in B, report its distance to A as an extra column. The reported distance for overlapping features will be 0. +\\\hline + +\textbf{-t} + & +How ties for closest feature should be handled. This occurs when two features in B have exactly the same overlap with a feature in A. \emph{By default, all such features in B are reported}. +\begin{quote} + +Here are the other choices controlling how ties are handled: + +\emph{all-} Report all ties (default). + +\emph{first-} Report the first tie that occurred in the B file. + +\emph{last-} Report the last tie that occurred in the B file. +\end{quote} +\\\hline +\end{tabular} + + + +\paragraph{5.6.2 Default behavior} +\label{content/closestBed:default-behavior} +\textbf{closestBed} first searches for features in B that overlap a feature in A. If overlaps are found, the feature +in B that overlaps the highest fraction of A is reported. If no overlaps are found, \textbf{closestBed} looks for +the feature in B that is \emph{closest} (that is, least genomic distance to the start or end of A) to A. For +example, in the figure below, feature B1 would be reported as the closest feature to A1. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +BED FILE A ************* + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result ====== +\end{Verbatim} + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 + +cat B.bed +chr1 500 1000 +chr1 1300 2000 + +closestBed -a A.bed -b B.bed +chr1 100 200 chr1 500 1000 +\end{Verbatim} + + +\paragraph{5.6.3 (-s)Enforcing ``strandedness''} +\label{content/closestBed:s-enforcing-strandedness} +This option behaves the same as the -s option for intersectBed while scanning for the closest +(overlapping or not) feature in B. See the discussion in the intersectBed section for details. + + +\paragraph{5.6.4 (-t)Controlling how ties for ``closest'' are broken} +\label{content/closestBed:t-controlling-how-ties-for-closest-are-broken} +When there are two or more features in B that overlap the \emph{same fraction} of A, \textbf{closestBed} will, by +default, report both features in B. Imagine feature A is a SNP and file B contains genes. It can often +occur that two gene annotations (e.g. opposite strands) in B will overlap the SNP. As mentioned, the +default behavior is to report both such genes in B. However, the -t option allows one to optionally +choose the just first or last feature (in terms of where it occurred in the input file, not chromosome +position) that occurred in B. + +For example (note the difference between -l 200 and -l 300): + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 101 rs1234 + +cat B.bed +chr1 0 1000 geneA 100 + +chr1 0 1000 geneB 100 - + +closestBed -a A.bed -b B.bed +chr1 100 101 rs1234 chr1 0 1000 geneA 100 + +chr1 100 101 rs1234 chr1 0 1000 geneB 100 - + +closestBed -a A.bed -b B.bed -t all +chr1 100 101 rs1234 chr1 0 1000 geneA 100 + +chr1 100 101 rs1234 chr1 0 1000 geneB 100 - + +closestBed -a A.bed -b B.bed -t first +chr1 100 101 rs1234 chr1 0 1000 geneA 100 + + +closestBed -a A.bed -b B.bed -t last +chr1 100 101 rs1234 chr1 0 1000 geneB 100 - +\end{Verbatim} + + +\paragraph{5.6.5 (-d)Reporting the distance to the closest feature in base pairs} +\label{content/closestBed:d-reporting-the-distance-to-the-closest-feature-in-base-pairs} +ClosestBed will optionally report the distance to the closest feature in the B file using the \textbf{-d} option. +When a feature in B overlaps a feature in A, a distance of 0 is reported. + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 +chr1 500 600 + +cat B.bed +chr1 500 1000 +chr1 1300 2000 + +closestBed -a A.bed -b B.bed -d +chr1 100 200 chr1 500 1000 300 +chr1 500 600 chr1 500 1000 0 +\end{Verbatim} + + +\subsubsection{5.7 subtractBed} +\label{content/subtractBed:subtractbed}\label{content/subtractBed::doc} +\textbf{subtractBed} searches for features in B that overlap A. If an overlapping feature is found in B, the +overlapping portion is removed from A and the remaining portion of A is reported. If a feature in B +overlaps all of a feature in A, the A feature will not be reported. + + +\paragraph{5.7.1 Usage and option summary} +\label{content/subtractBed:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +subtractBed [OPTIONS] -a \textless{}BED/GFF/VCF\textgreater{} -b \textless{}BED/GFF/VCF\textgreater{} +\end{Verbatim} + +\begin{tabulary}{\linewidth}{|L|L|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-f} + & +Minimum overlap required as a fraction of A. Default is 1E-9 (i.e. 1bp). +\\\hline + +\textbf{-s} + & +Force strandedness. That is, find the closest feature in B overlaps A on the same strand. \emph{By default, this is disabled}. +\\\hline +\end{tabulary} + + + +\paragraph{5.7.2 Default behavior} +\label{content/subtractBed:default-behavior} +Figure: + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +BED FILE A ************* ****** + +BED File B \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + +Result ========= +\end{Verbatim} + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 +chr1 10 20 + +cat B.bed +chr1 0 30 +chr1 180 300 + +subtractBed -a A.bed -b B.bed +chr1 100 180 +\end{Verbatim} + + +\paragraph{5.7.3 (-f)Requiring a minimal overlap fraction before subtracting} +\label{content/subtractBed:f-requiring-a-minimal-overlap-fraction-before-subtracting} +This option behaves the same as the -f option for intersectBed. In this case, subtractBed will only +subtract an overlap with B if it covers at least the fraction of A defined by -f. If an overlap is found, +but it does not meet the overlap fraction, the original A feature is reported without subtraction. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 + +cat B.bed +chr1 180 300 + +subtractBed -a A.bed -b B.bed -f 0.10 +chr1 100 180 + +subtractBed -a A.bed -b B.bed -f 0.80 +chr1 100 200 +\end{Verbatim} + + +\paragraph{5.7.4 (-s)Enforcing ``strandedness''} +\label{content/subtractBed:s-enforcing-strandedness} +This option behaves the same as the -s option for intersectBed while scanning for features in B that +should be subtracted from A. See the discussion in the intersectBed section for details. + + +\subsubsection{5.8 mergeBed} +\label{content/mergeBed:mergebed}\label{content/mergeBed::doc} +\textbf{mergeBed} combines overlapping or ``book-ended'' (that is, one base pair away) features in a feature file +into a single feature which spans all of the combined features. + + +\paragraph{5.8.1 Usage and option summary} +\label{content/mergeBed:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +mergeBed [OPTIONS] -i \textless{}BED/GFF/VCF\textgreater{} +\end{Verbatim} + +\begin{tabulary}{\linewidth}{|L|L|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-s} + & +Force strandedness. That is, only merge features that are the same strand. \emph{By default, this is disabled}. +\\\hline + +\textbf{-n} + & +Report the number of BED entries that were merged. \emph{1 is reported if no merging occurred}. +\\\hline + +\textbf{-d} + & +Maximum distance between features allowed for features to be merged. \emph{Default is 0. That is, overlapping and/or book-ended features are merged}. +\\\hline + +\textbf{-nms} + & +Report the names of the merged features separated by semicolons. +\\\hline +\end{tabulary} + + + +\paragraph{5.8.2 Default behavior} +\label{content/mergeBed:default-behavior} +Figure: + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +BED FILE ************* *************** ********************** + ******** + +Result =============================== ====================== +\end{Verbatim} + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 +chr1 180 250 +chr1 250 500 +chr1 501 1000 + +mergeBed -i A.bed +chr1 100 500 +chr1 501 1000 +\end{Verbatim} + + +\paragraph{5.8.3 (-s)Enforcing ``strandedness''} +\label{content/mergeBed:s-enforcing-strandedness} +This option behaves the same as the -s option for intersectBed while scanning for features that should +be merged. Only features on the same strand will be merged. See the discussion in the intersectBed +section for details. + + +\paragraph{5.8.4 (-n)Reporting the number of features that were merged} +\label{content/mergeBed:n-reporting-the-number-of-features-that-were-merged} +The -n option will report the number of features that were combined from the original file in order to +make the newly merged feature. If a feature in the original file was not merged with any other features, +a ``1'' is reported. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 +chr1 180 250 +chr1 250 500 +chr1 501 1000 + +mergeBed -i A.bed -n +chr1 100 500 3 +chr1 501 1000 1 +\end{Verbatim} + + +\paragraph{5.8.5 (-d)Controlling how close two features must be in order to merge} +\label{content/mergeBed:d-controlling-how-close-two-features-must-be-in-order-to-merge} +By default, only overlapping or book-ended features are combined into a new feature. However, one can +force mergeBed to combine more distant features with the -d option. For example, were one to set -d to +1000, any features that overlap or are within 1000 base pairs of one another will be combined. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 +chr1 501 1000 + +mergeBed -i A.bed +chr1 100 200 +chr1 501 1000 + +mergeBed -i A.bed -d 1000 +chr1 100 200 1000 +\end{Verbatim} + + +\paragraph{5.8.6 (-nms)Reporting the names of the features that were merged} +\label{content/mergeBed:nms-reporting-the-names-of-the-features-that-were-merged} +Occasionally, one might like to know that names of the features that were merged into a new feature. +The -nms option will add an extra column to the mergeBed output which lists (separated by +semicolons) the names of the merged features. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 A1 +chr1 150 300 A2 +chr1 250 500 A3 + +mergeBed -i A.bed -nms +chr1 100 500 A1;A2;A3 +\end{Verbatim} + + +\subsubsection{5.9 coverageBed} +\label{content/coverageBed:coveragebed}\label{content/coverageBed::doc} +\textbf{coverageBed} computes both the \emph{depth} and \emph{breadth} of coverage of features in file A across the features +in file B. For example, \textbf{coverageBed} can compute the coverage of sequence alignments (file A) across 1 +kilobase (arbitrary) windows (file B) tiling a genome of interest. One advantage that \textbf{coverageBed} +offers is that it not only \emph{counts} the number of features that overlap an interval in file B, it also +computes the fraction of bases in B interval that were overlapped by one or more features. Thus, +\textbf{coverageBed} also computes the \emph{breadth} of coverage for each interval in B. + + +\paragraph{5.9.1 Usage and option summary} +\label{content/coverageBed:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +coverageBed [OPTIONS] -a \textless{}BED/GFF/VCF\textgreater{} -b \textless{}BED/GFF/VCF\textgreater{} +\end{Verbatim} + +\begin{tabular}{|p{0.475\linewidth}|p{0.475\linewidth}|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-abam} + & \begin{quote} + +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: +\end{quote} + +\begin{DUlineblock}{0em} +\item[] samtools view -b \textless{}BAM\textgreater{} \textbar{} intersectBed -abam stdin -b genes.bed +\end{DUlineblock} +\\\hline + +\textbf{-s} + & +Force strandedness. That is, only features in A are only counted towards coverage in B if they are the same strand. \emph{By default, this is disabled and coverage is counted without respect to strand}. +\\\hline + +\textbf{-hist} + & +Report a histogram of coverage for each feature in B as well as a summary histogram for \_all\_ features in B. + +\begin{DUlineblock}{0em} +\item[] Output (tab delimited) after each feature in B: +\end{DUlineblock} +\begin{quote} + +\begin{DUlineblock}{0em} +\item[] 1) depth +\item[] 2) \# bases at depth +\item[] 3) size of B +\item[] 4) \% of B at depth +\end{DUlineblock} +\end{quote} +\\\hline + +\textbf{-d} + & +Report the depth at each position in each B feature. Positions reported are one based. Each position and depth follow the complete B feature. +\\\hline + +\textbf{-split} + & +Treat ``split'' BAM or BED12 entries as distinct BED intervals when computing coverage. For BAM files, this uses the CIGAR ``N'' and ``D'' operations to infer the blocks for computing coverage. For BED12 files, this uses the BlockCount, BlockStarts, and BlockEnds fields (i.e., columns 10,11,12). +\\\hline +\end{tabular} + + + +\paragraph{5.9.2 Default behavior} +\label{content/coverageBed:default-behavior} +After each interval in B, \textbf{coverageBed} will report: +\begin{enumerate} +\item {} +The number of features in A that overlapped (by at least one base pair) the B interval. + +\item {} +The number of bases in B that had non-zero coverage from features in A. + +\item {} +The length of the entry in B. + +\item {} +The fraction of bases in B that had non-zero coverage from features in A. + +\end{enumerate} + +Below are the number of features in A (N=...) overlapping B and fraction of bases in B with coverage. + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +BED FILE B *************** *************** ****** ************** + +BED File A \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} + \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{}\textasciicircum{} \textasciicircum{}\textasciicircum{} + +Result [ N=3, 10/15 ] [ N=1, 2/16 ] [N=1,6/6] [N=5, 11/12 ] +\end{Verbatim} + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 10 20 +chr1 20 30 +chr1 30 40 +chr1 100 200 + +cat B.bed +chr1 0 100 +chr1 100 200 +chr2 0 100 + +coverageBed -a A.bed -b B.bed +chr1 0 100 3 30 100 0.3000000 +chr1 100 200 1 100 100 1.0000000 +chr2 0 100 0 0 100 0.0000000 +\end{Verbatim} + + +\paragraph{5.9.4 (-s)Calculating coverage by strand} +\label{content/coverageBed:s-calculating-coverage-by-strand} +Use the ``\textbf{-s}'' option if one wants to only count coverage if features in A are on the same strand as the +feature / window in B. This is especially useful for RNA-seq experiments. + +For example (note the difference in coverage with and without \textbf{-s}: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 10 20 a1 1 - +chr1 20 30 a2 1 - +chr1 30 40 a3 1 - +chr1 100 200 a4 1 + + +cat B.bed +chr1 0 100 b1 1 + +chr1 100 200 b2 1 - +chr2 0 100 b3 1 + + +coverageBed -a A.bed -b B.bed +chr1 0 100 b1 1 + 3 30 100 0.3000000 +chr1 100 200 b2 1 - 1 100 100 1.0000000 +chr2 0 100 b3 1 + 0 0 100 0.0000000 + +coverageBed -a A.bed -b B.bed -s +chr1 0 100 b1 1 + 0 0 100 0.0000000 +chr1 100 200 b2 1 - 0 0 100 0.0000000 +chr2 0 100 b3 1 + 0 0 100 0.0000000 +\end{Verbatim} + + +\paragraph{5.9.5 (-hist)Creating a histogram of coverage for each feature in the B file} +\label{content/coverageBed:hist-creating-a-histogram-of-coverage-for-each-feature-in-the-b-file} +One should use the ``\textbf{-hist}'' option to create, for each interval in B, a histogram of coverage of the +features in A across B. + +In this case, each entire feature in B will be reported, followed by the depth of coverage, the number of +bases at that depth, the size of the feature, and the fraction covered. After all of the features in B have +been reported, a histogram summarizing the coverage among all features in B will be reported. + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 10 20 a1 1 - +chr1 20 30 a2 1 - +chr1 30 40 a3 1 - +chr1 100 200 a4 1 + + +cat B.bed +chr1 0 100 b1 1 + +chr1 100 200 b2 1 - +chr2 0 100 b3 1 + + +coverageBed -a A.bed -b B.bed -hist +chr1 0 100 b1 1 + 0 70 100 0.7000000 +chr1 0 100 b1 1 + 1 30 100 0.3000000 +chr1 100 200 b2 1 - 1 100 100 1.0000000 +chr2 0 100 b3 1 + 0 100 100 1.0000000 +all 0 170 300 0.5666667 +all 1 130 300 0.4333333 +\end{Verbatim} + + +\paragraph{5.9.6 (-hist)Reporting the per-base of coverage for each feature in the B file} +\label{content/coverageBed:hist-reporting-the-per-base-of-coverage-for-each-feature-in-the-b-file} +One should use the ``\textbf{-d}'' option to create, for each interval in B, a detailed list of coverage at each of the +positions across each B interval. + +The output will consist of a line for each one-based position in each B feature, followed by the coverage +detected at that position. + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 0 5 +chr1 3 8 +chr1 4 8 +chr1 5 9 + +cat B.bed +chr1 0 10 + +coverageBed -a A.bed -b B.bed -d +chr1 0 10 B 1 1 +chr1 0 10 B 2 1 +chr1 0 10 B 3 1 +chr1 0 10 B 4 2 +chr1 0 10 B 5 3 +chr1 0 10 B 6 3 +chr1 0 10 B 7 3 +chr1 0 10 B 8 3 +chr1 0 10 B 9 1 +chr1 0 10 B 10 0 +\end{Verbatim} + + +\paragraph{5.9.7 (-split)Reporting coverage with spliced alignments or blocked BED features} +\label{content/coverageBed:split-reporting-coverage-with-spliced-alignments-or-blocked-bed-features} +As described in section 1.3.19, coverageBed will, by default, screen for overlaps against the entire span +of a spliced/split BAM alignment or blocked BED12 feature. When dealing with RNA-seq reads, for +example, one typically wants to only tabulate coverage for the portions of the reads that come from +exons (and ignore the interstitial intron sequence). The \textbf{-split} command allows for such coverage to be +performed. + + +\subsubsection{5.10 genomeCoverageBed} +\label{content/genomecoverageBed:genomecoveragebed}\label{content/genomecoverageBed::doc} +\textbf{genomeCoverageBed} computes a histogram of feature coverage (e.g., aligned sequences) for a given +genome. Optionally, by using the \textbf{-d} option, it will report the depth of coverage at \emph{each base} on each +chromosome in the genome file (\textbf{-g}). + + +\paragraph{5.10.1 Usage and option summary} +\label{content/genomecoverageBed:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +genomeCoverageBed [OPTIONS] -i \textless{}BED\textgreater{} -g \textless{}GENOME\textgreater{} +\end{Verbatim} + +NOTE: genomeCoverageBed requires that the input BED file be sorted by +chromosome. A simple sort -k1,1 will suffice. + +\begin{tabular}{|p{0.475\linewidth}|p{0.475\linewidth}|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-ibam} + & \begin{quote} + +BAM file as input for coverage. Each BAM alignment in A added to the total coverage for the genome. Use ``stdin'' if passing it with a UNIX pipe: For example: +\end{quote} + +\begin{DUlineblock}{0em} +\item[] samtools view -b \textless{}BAM\textgreater{} \textbar{} genomeCoverageBed -ibam stdin -g hg18.genome +\end{DUlineblock} +\\\hline + +\textbf{-d} + & +Report the depth at each genome position. \emph{Default behavior is to report a histogram}. +\\\hline + +\textbf{-max} + & +Combine all positions with a depth \textgreater{}= max into a single bin in the histogram. +\\\hline + +\textbf{-bg} + & +Report depth in BedGraph format. For details, see: \href{http://genome.ucsc.edu/goldenPath/help/bedgraph.html}{http://genome.ucsc.edu/goldenPath/help/bedgraph.html} +\\\hline + +\textbf{-bga} + & +Report depth in BedGraph format, as above (i.e., -bg). However with this option, regions with zero coverage are also reported. This allows one to quickly extract all regions of a genome with 0 coverage by applying: ``grep -w 0\$'' to the output. +\\\hline + +\textbf{-split} + & +Treat ``split'' BAM or BED12 entries as distinct BED intervals when computing coverage. For BAM files, this uses the CIGAR ``N'' and ``D'' operations to infer the blocks for computing coverage. For BED12 files, this uses the BlockCount, BlockStarts, and BlockEnds fields (i.e., columns 10,11,12). +\\\hline + +\textbf{-strand} + & +Calculate coverage of intervals from a specific strand. With BED files, requires at least 6 columns (strand is column 6). +\\\hline +\end{tabular} + + + +\paragraph{5.10.2 Default behavior} +\label{content/genomecoverageBed:default-behavior} +By default, \textbf{genomeCoverageBed} will compute a histogram of coverage for the genome file provided. +The default output format is as follows: +1. chromosome (or entire genome) +2. depth of coverage from features in input file +3. number of bases on chromosome (or genome) with depth equal to column 2. +4. size of chromosome (or entire genome) in base pairs +5. fraction of bases on chromosome (or entire genome) with depth equal to column 2. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 10 20 +chr1 20 30 +chr2 0 500 + +cat my.genome +chr1 1000 +chr2 500 + +genomeCoverageBed -i A.bed -g my.genome +chr1 0 980 1000 0.98 +chr1 1 20 1000 0.02 +chr2 1 500 500 1 +genome 0 980 1500 0.653333 +genome 1 520 1500 0.346667 +\end{Verbatim} + + +\paragraph{5.10.3 (-max)Controlling the histogram's maximum depth} +\label{content/genomecoverageBed:max-controlling-the-histogram-s-maximum-depth} +Using the \textbf{-max} option, \textbf{genomeCoverageBed} will ``lump'' all positions in the genome having feature +coverage greather than or equal to \textbf{max} into the \textbf{max} histogram bin. For example, if one sets \textbf{-max} +equal to 50, the max depth reported in the output will be 50 and all positions with a depth \textgreater{}= 50 will +be represented in bin 50. + + +\paragraph{5.10.4 (-d)Reporting ``per-base'' genome coverage} +\label{content/genomecoverageBed:d-reporting-per-base-genome-coverage} +Using the \textbf{-d} option, \textbf{genomeCoverageBed} will compute the depth of feature coverage for each base +on each chromosome in genome file provided. + +The ``per-base'' output format is as follows: +1. chromosome +2. chromosome position +3. depth (number) of features overlapping this chromosome position. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 10 20 +chr1 20 30 +chr2 0 500 + +cat my.genome +chr1 1000 +chr2 500 + +genomeCoverageBed -i A.bed -g my.genome -d \textbar{} head -15 \textbar{} tail -n 10 +chr1 6 0 +chr1 7 0 +chr1 8 0 +chr1 9 0 +chr1 10 0 +chr1 11 1 +chr1 12 1 +chr1 13 1 +chr1 14 1 +chr1 15 1 +\end{Verbatim} + + +\paragraph{5.1.13 (-split)Reporting coverage with spliced alignments or blocked BED features} +\label{content/genomecoverageBed:split-reporting-coverage-with-spliced-alignments-or-blocked-bed-features} +As described in section 1.3.19, genomeCoverageBed will, by default, screen for overlaps against the +entire span of a spliced/split BAM alignment or blocked BED12 feature. When dealing with RNA-seq +reads, for example, one typically wants to only screen for overlaps for the portions of the reads that +come from exons (and ignore the interstitial intron sequence). The \textbf{-split} command allows for such +overlaps to be performed. + +For additional details, please visit the Usage From The Wild site and have a look at example 5, +contributed by Assaf Gordon. + + +\subsubsection{5.11 fastaFromBed} +\label{content/fastafromBed:fastafrombed}\label{content/fastafromBed::doc} +\textbf{fastaFromBed} extracts sequences from a FASTA file for each of the intervals defined in a BED file. +The headers in the input FASTA file must exactly match the chromosome column in the BED file. + + +\paragraph{5.11.1 Usage and option summary} +\label{content/fastafromBed:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +fastaFromBed [OPTIONS] -fi \textless{}input FASTA\textgreater{} -bed \textless{}BED/GFF/VCF\textgreater{} -fo \textless{}output FASTA\textgreater{} +\end{Verbatim} + +\begin{tabulary}{\linewidth}{|L|L|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-name} + & +Use the ``name'' column in the BED file for the FASTA headers in the output FASTA file. +\\\hline + +\textbf{-tab} + & +Report extract sequences in a tab-delimited format instead of in FASTA format. +\\\hline + +\textbf{-s} + & +Force strandedness. If the feature occupies the antisense strand, the sequence will be reverse complemented. \emph{Default: strand information is ignored}. +\\\hline +\end{tabulary} + + + +\paragraph{5.11.2 Default behavior} +\label{content/fastafromBed:default-behavior} +\textbf{fastaFromBed} will extract the sequence defined by the coordinates in a BED interval and create a +new FASTA entry in the output file for each extracted sequence. By default, the FASTA header for each +extracted sequence will be formatted as follows: ``\textless{}chrom\textgreater{}:\textless{}start\textgreater{}-\textless{}end\textgreater{}''. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +\$ cat test.fa +\textgreater{}chr1 +AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + +cat test.bed +chr1 5 10 + +fastaFromBed -fi test.fa -bed test.bed -fo test.fa.out + +cat test.fa.out +\textgreater{}chr1:5-10 +AAACC +\end{Verbatim} + + +\paragraph{5.11.3 Using the BED ``name'' column as a FASTA header.} +\label{content/fastafromBed:using-the-bed-name-column-as-a-fasta-header} +Using the \textbf{-name} option, one can set the FASTA header for each extracted sequence to be the ``name'' +columns from the BED feature. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat test.fa +\textgreater{}chr1 +AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + +cat test.bed +chr1 5 10 myseq + +fastaFromBed -fi test.fa -bed test.bed -fo test.fa.out -name + +cat test.fa.out +\textgreater{}myseq +AAACC +\end{Verbatim} + + +\paragraph{5.11.4 Creating a tab-delimited output file in lieu of FASTA output.} +\label{content/fastafromBed:creating-a-tab-delimited-output-file-in-lieu-of-fasta-output} +Using the \textbf{-tab} option, the \textbf{-fo} output file will be tab-delimited instead of in FASTA format. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat test.fa +\textgreater{}chr1 +AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + +cat test.bed +chr1 5 10 myseq + +fastaFromBed -fi test.fa -bed test.bed -fo test.fa.out.tab -name -tab + +cat test.fa.out +myseq AAACC +\end{Verbatim} + + +\paragraph{5.11.5 (-s)Forcing the extracted sequence to reflect the requested strand} +\label{content/fastafromBed:s-forcing-the-extracted-sequence-to-reflect-the-requested-strand} +\textbf{fastaFromBed} will extract the sequence in the orientation defined in the strand column when the ``-s'' +option is used. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat test.fa +\textgreater{}chr1 +AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + +cat test.bed +chr1 20 25 forward 1 + +chr1 20 25 reverse 1 - + +fastaFromBed -fi test.fa -bed test.bed -s -name -fo test.fa.out + +cat test.fa.out +\textgreater{}forward +CGCTA +\textgreater{}reverse +TAGCG +\end{Verbatim} + + +\subsubsection{5.12 maskFastaFromBed} +\label{content/maskfastafromBed:maskfastafrombed}\label{content/maskfastafromBed::doc} +\textbf{maskFastaFromBed} masks sequences in a FASTA file based on intervals defined in a feature file. The +headers in the input FASTA file must exactly match the chromosome column in the feature file. This +may be useful fro creating your own masked genome file based on custom annotations or for masking all +but your target regions when aligning sequence data from a targeted capture experiment. + + +\paragraph{5.12.1 Usage and option summary} +\label{content/maskfastafromBed:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +maskFastaFromBed [OPTIONS] -fi \textless{}input FASTA\textgreater{} -bed \textless{}BED/GFF/VCF\textgreater{} -fo \textless{}output FASTA\textgreater{} +\end{Verbatim} + +NOTE: The input and output FASTA files must be different. + +\begin{tabulary}{\linewidth}{|L|L|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-soft} + & +Soft-mask (that is, convert to lower-case bases) the FASTA sequence. \emph{By default, hard-masking (that is, conversion to Ns) is performed}. +\\\hline +\end{tabulary} + + + +\paragraph{5.12.2 Default behavior} +\label{content/maskfastafromBed:default-behavior} +\textbf{maskFastaFromBed} will mask a FASTA file based on the intervals in a BED file. The newly masked +FASTA file is written to the output FASTA file. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat test.fa +\textgreater{}chr1 +AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + +cat test.bed +chr1 5 10 + +maskFastaFromBed -fi test.fa -bed test.bed -fo test.fa.out + +cat test.fa.out +\textgreater{}chr1 +AAAAANNNNNCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG +\end{Verbatim} + + +\paragraph{5.12.3 Soft-masking the FASTA file.} +\label{content/maskfastafromBed:soft-masking-the-fasta-file} +Using the \textbf{-soft} option, one can optionally ``soft-mask'' the FASTA file. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat test.fa +\textgreater{}chr1 +AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + +cat test.bed +chr1 5 10 + +maskFastaFromBed -fi test.fa -bed test.bed -fo test.fa.out -soft + +cat test.fa.out +\textgreater{}chr1 +AAAAAaaaccCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG +\end{Verbatim} + + +\subsubsection{5.13 shuffleBed} +\label{content/shuffleBed:shufflebed}\label{content/shuffleBed::doc} +\textbf{shuffleBed} will randomly permute the genomic locations of a fearure file among a genome defined in a +genome file. One can also provide an ``exclusions'' BED/GFF/VCF file that lists regions where you do +not want the permuted features to be placed. For example, one might want to prevent features from +being placed in known genome gaps. \textbf{shuffleBed} is useful as a \emph{null} basis against which to test the +significance of associations of one feature with another. + + +\paragraph{5.13.1 Usage and option summary} +\label{content/shuffleBed:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +shuffleBed [OPTIONS] -i \textless{}BED/GFF/VCF\textgreater{} -g \textless{}GENOME\textgreater{} +\end{Verbatim} + +\begin{tabulary}{\linewidth}{|L|L|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-excl} + & +A BED file of coordinates in which features from -i should \emph{not} be placed (e.g., genome gaps). +\\\hline + +\textbf{-chrom} + & +Keep features in -i on the same chromosome. Solely permute their location on the chromosome. \emph{By default, both the chromosome and position are randomly chosen}. +\\\hline + +\textbf{-seed} + & +Supply an integer seed for the shuffling. This will allow feature shuffling experiments to be recreated exactly as the seed for the pseudo-random number generation will be constant. \emph{By default, the seed is chosen automatically}. +\\\hline +\end{tabulary} + + + +\paragraph{5.13.2 Default behavior} +\label{content/shuffleBed:default-behavior} +By default, \textbf{shuffleBed} will reposition each feature in the input BED file on a random chromosome at a +random position. The size and strand of each feature are preserved. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 0 100 a1 1 + +chr1 0 1000 a2 2 - + +cat my.genome +chr1 10000 +chr2 8000 +chr3 5000 +chr4 2000 + +shuffleBed -i A.bed -g my.genome +chr4 1498 1598 a1 1 + +chr3 2156 3156 a2 2 - +\end{Verbatim} + + +\paragraph{5.13.3 (-chrom)Requiring that features be shuffled on the same chromosome} +\label{content/shuffleBed:chrom-requiring-that-features-be-shuffled-on-the-same-chromosome} +The ``\textbf{-chrom}'' option behaves the same as the default behavior except that features are randomly +placed on the same chromosome as defined in the BED file. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 0 100 a1 1 + +chr1 0 1000 a2 2 - + +cat my.genome +chr1 10000 +chr2 8000 +chr3 5000 +chr4 2000 + +shuffleBed -i A.bed -g my.genome -chrom +chr1 9560 9660 a1 1 + +chr1 7258 8258 a2 2 - +\end{Verbatim} + + +\paragraph{5.13.4 Excluding certain genome regions from shuffleBed} +\label{content/shuffleBed:excluding-certain-genome-regions-from-shufflebed} +One may want to prevent BED features from being placed in certain regions of the genome. For +example, one may want to exclude genome gaps from permutation experiment. The ``\textbf{-excl}'' option +defines a BED file of regions that should be excluded. \textbf{shuffleBed} will attempt to permute the +locations of all features while adhering to the exclusion rules. However it will stop looking for an +appropriate location if it cannot find a valid spot for a feature after 1,000,000 tries. + +For example (\emph{note that the exclude file excludes all but 100 base pairs of the chromosome}): + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 0 100 a1 1 + +chr1 0 1000 a2 2 - + +cat my.genome +chr1 10000 + +cat exclude.bed +chr1 100 10000 + +shuffleBed -i A.bed -g my.genome -excl exclude.bed +chr1 0 100 a1 1 + +Error, line 2: tried 1000000 potential loci for entry, but could not avoid excluded +regions. Ignoring entry and moving on. +\end{Verbatim} + +For example (\emph{now the exclusion file only excludes the first 100 bases of the chromosome}): + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 0 100 a1 1 + +chr1 0 1000 a2 2 - + +cat my.genome +chr1 10000 + +cat exclude.bed +chr1 0 100 + +shuffleBed -i A.bed -g my.genome -excl exclude.bed +chr1 147 247 a1 1 + +chr1 2441 3441 a2 2 - +\end{Verbatim} + + +\paragraph{5.13.5 Defining a ``seed'' for the random replacement.} +\label{content/shuffleBed:defining-a-seed-for-the-random-replacement} +\textbf{shuffleBed} uses a pseudo-random number generator to permute the locations of BED features. +Therefore, each run should produce a different result. This can be problematic if one wants to exactly +recreate an experiment. By using the ``\textbf{-seed}'' option, one can supply a custom integer seed for +\textbf{shuffleBed}. In turn, each execution of \textbf{shuffleBed} with the same seed and input files should produce +identical results. + +For example (\emph{note that the exclude file below excludes all but 100 base pairs of the chromosome}): + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 0 100 a1 1 + +chr1 0 1000 a2 2 - + +cat my.genome +chr1 10000 + +shuffleBed -i A.bed -g my.genome -seed 927442958 +chr1 6177 6277 a1 1 + +chr1 8119 9119 a2 2 - + +shuffleBed -i A.bed -g my.genome -seed 927442958 +chr1 6177 6277 a1 1 + +chr1 8119 9119 a2 2 - + +. . . + +shuffleBed -i A.bed -g my.genome -seed 927442958 +chr1 6177 6277 a1 1 + +chr1 8119 9119 a2 2 - +\end{Verbatim} + + +\subsubsection{5.14 slopBed} +\label{content/slopBed:slopbed}\label{content/slopBed::doc} +\textbf{slopBed} will increase the size of each feature in a feature file be a user-defined number of bases. While +something like this could be done with an ``\textbf{awk `\{OFS=''t'' print \$1,\$2-\textless{}slop\textgreater{},\$3+\textless{}slop\textgreater{}\}'}'', +\textbf{slopBed} will restrict the resizing to the size of the chromosome (i.e. no start \textless{} 0 and no end \textgreater{} +chromosome size). + + +\paragraph{5.14.1 Usage and option summary} +\label{content/slopBed:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +\PYG{n}{slopBed} \PYG{p}{[}\PYG{n}{OPTIONS}\PYG{p}{]} \PYG{o}{-}\PYG{n}{i} \PYG{o}{\textless{}}\PYG{n}{BED}\PYG{o}{/}\PYG{n}{GFF}\PYG{o}{/}\PYG{n}{VCF}\PYG{o}{\textgreater{}} \PYG{o}{-}\PYG{n}{g} \PYG{o}{\textless{}}\PYG{n}{GENOME}\PYG{o}{\textgreater{}} \PYG{p}{[}\PYG{o}{-}\PYG{n}{b} \PYG{o+ow}{or} \PYG{p}{(}\PYG{o}{-}\PYG{n}{l} \PYG{o+ow}{and} \PYG{o}{-}\PYG{n}{r}\PYG{p}{)}\PYG{p}{]} +\end{Verbatim} + +\begin{tabulary}{\linewidth}{|L|L|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-b} + & +Increase the BED/GFF/VCF entry by the same number base pairs in each direction. \emph{Integer}. +\\\hline + +\textbf{-l} + & +The number of base pairs to subtract from the start coordinate. \emph{Integer}. +\\\hline + +\textbf{-r} + & +The number of base pairs to add to the end coordinate. \emph{Integer}. +\\\hline + +\textbf{-s} + & +Define -l and -r based on strand. For example. if used, -l 500 for a negative-stranded feature, it will add 500 bp to the \emph{end} coordinate. +\\\hline +\end{tabulary} + + + +\paragraph{5.14.2 Default behavior} +\label{content/slopBed:default-behavior} +By default, \textbf{slopBed} will either add a fixed number of bases in each direction (\textbf{-b}) or an asymmetric +number of bases in each direction (\textbf{-l} and \textbf{-r}). + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 5 100 +chr1 800 980 + +cat my.genome +chr1 1000 + +slopBed -i A.bed -g my.genome -b 5 +chr1 0 105 +chr1 795 985 + +slopBed -i A.bed -g my.genome -l 2 -r 3 +chr1 3 103 +chr1 798 983 +\end{Verbatim} + +However, if the requested number of bases exceeds the boundaries of the chromosome, \textbf{slopBed} will +``clip'' the feature accordingly. + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 5 100 +chr1 800 980 + +cat my.genome +chr1 1000 + +slopBed -i A.bed -g my.genome -b 5000 +chr1 0 1000 +chr1 0 1000 +\end{Verbatim} + + +\paragraph{5.14.3 Resizing features according to strand} +\label{content/slopBed:resizing-features-according-to-strand} +\textbf{slopBed} will optionally increase the size of a feature based on strand. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 a1 1 + +chr1 100 200 a2 2 - + +cat my.genome +chr1 1000 + +slopBed -i A.bed -g my.genome -l 50 -r 80 -s +chr1 50 280 a1 1 + +chr1 20 250 a2 2 - +\end{Verbatim} + + +\subsubsection{5.15 sortBed} +\label{content/sortBed::doc}\label{content/sortBed:sortbed} +\textbf{sortBed} sorts a feature file by chromosome and other criteria. + + +\paragraph{5.15.1 Usage and option summary} +\label{content/sortBed:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +sortBed [OPTIONS] -i \textless{}BED/GFF/VCF\textgreater{} +\end{Verbatim} + +\begin{tabulary}{\linewidth}{|L|L|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-sizeA} + & +Sort by feature size in ascending order. +\\\hline + +\textbf{-sizeD} + & +Sort by feature size in descending order. +\\\hline + +\textbf{-chrThenSizeA} + & +Sort by chromosome, then by feature size (asc). +\\\hline + +\textbf{-chrThenSizeD} + & +Sort by chromosome, then by feature size (desc). +\\\hline + +\textbf{-chrThenScoreA} + & +Sort by chromosome, then by score (asc). +\\\hline + +\textbf{-chrThenScoreD} + & +Sort by chromosome, then by score (desc). +\\\hline +\end{tabulary} + + + +\paragraph{5.15.2 Default behavior} +\label{content/sortBed:default-behavior} +By default, \textbf{sortBed} sorts a BED file by chromosome and then by start position in ascending order. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 800 1000 +chr1 80 180 +chr1 1 10 +chr1 750 10000 + +sortBed -i A.bed +chr1 1 10 +chr1 80 180 +chr1 750 10000 +chr1 800 1000 +\end{Verbatim} + + +\paragraph{5.15.3 Optional sorting behavior} +\label{content/sortBed:optional-sorting-behavior} +\textbf{sortBed} will also sorts a BED file by chromosome and then by other criteria. + +For example, to sort by chromosome and then by feature size (in descending order): + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 800 1000 +chr1 80 180 +chr1 1 10 +chr1 750 10000 + +sortBed -i A.bed -sizeD +chr1 750 10000 +chr1 800 1000 +chr1 80 180 +chr1 1 10 +\end{Verbatim} + +\textbf{Disclaimer:} it should be noted that \textbf{sortBed} is merely a convenience utility, as the UNIX sort utility +will sort BED files more quickly while using less memory. For example, UNIX sort will sort a BED file +by chromosome then by start position in the following manner: + +\begin{Verbatim}[commandchars=\\\{\}] +sort -k 1,1 -k2,2 -n a.bed +chr1 1 10 +chr1 80 180 +chr1 750 10000 +chr1 800 1000 +\end{Verbatim} + + +\subsubsection{5.16 linksBed} +\label{content/linksBed:linksbed}\label{content/linksBed::doc} +Creates an HTML file with links to an instance of the UCSC Genome Browser for all features / +intervals in a file. This is useful for cases when one wants to manually inspect through a large set of +annotations or features. + + +\paragraph{5.16.1 Usage and option summary} +\label{content/linksBed:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +linksBed [OPTIONS] -i \textless{}BED/GFF/VCF\textgreater{} \textgreater{} \textless{}HTML file\textgreater{} +\end{Verbatim} + +\begin{tabulary}{\linewidth}{|L|L|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-base} + & +The ``basename'' for the UCSC browser. \emph{Default: http://genome.ucsc.edu} +\\\hline + +\textbf{-org} + & +The organism (e.g. mouse, human). \emph{Default: human} +\\\hline + +\textbf{-db} + & +The genome build. \emph{Default: hg18} +\\\hline +\end{tabulary} + + + +\paragraph{5.16.2 Default behavior} +\label{content/linksBed:default-behavior} +By default, \textbf{linksBed} creates links to the public UCSC Genome Browser. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +head genes.bed +chr21 9928613 10012791 uc002yip.1 0 - +chr21 9928613 10012791 uc002yiq.1 0 - +chr21 9928613 10012791 uc002yir.1 0 - +chr21 9928613 10012791 uc010gkv.1 0 - +chr21 9928613 10061300 uc002yis.1 0 - +chr21 10042683 10120796 uc002yit.1 0 - +chr21 10042683 10120808 uc002yiu.1 0 - +chr21 10079666 10120808 uc002yiv.1 0 - +chr21 10080031 10081687 uc002yiw.1 0 - +chr21 10081660 10120796 uc002yix.2 0 - + +linksBed -i genes.bed \textgreater{} genes.html +\end{Verbatim} + +When genes.html is opened in a web browser, one should see something like the following, where each +link on the page is built from the features in genes.bed: + + +\paragraph{5.16.3 Creating HTML links to a local UCSC Browser installation} +\label{content/linksBed:creating-html-links-to-a-local-ucsc-browser-installation} +Optionally, \textbf{linksBed} will create links to a local copy of the UCSC Genome Browser. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +head -3 genes.bed +chr21 9928613 10012791 uc002yip.1 0 - +chr21 9928613 10012791 uc002yiq.1 0 - + +linksBed -i genes.bed -base http://mirror.uni.edu \textgreater{} genes.html +\end{Verbatim} + +One can point the links to the appropriate organism and genome build as well: + +\begin{Verbatim}[commandchars=\\\{\}] +head -3 genes.bed +chr21 9928613 10012791 uc002yip.1 0 - +chr21 9928613 10012791 uc002yiq.1 0 - + +linksBed -i genes.bed -base http://mirror.uni.edu -org mouse -db mm9 \textgreater{} genes.html +\end{Verbatim} + + +\subsubsection{5.17 complementBed} +\label{content/complementBed:complementbed}\label{content/complementBed::doc} +\textbf{complementBed} returns the intervals in a genome that are not by the features in a feature file. An +example usage of this tool would be to return the intervals of the genome that are not annotated as a +repeat. + + +\paragraph{5.17.1 Usage and option summary} +\label{content/complementBed:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +complementBed [OPTIONS] -i \textless{}BED/GFF/VCF\textgreater{} -g \textless{}GENOME\textgreater{} +\end{Verbatim} + +\textbf{No additional options.} + + +\paragraph{5.17.2 Default behavior} +\label{content/complementBed:default-behavior} +Figure: + +\begin{Verbatim}[commandchars=\\\{\}] +Chromosome \textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{}\textasciitilde{} + +BED FILE A ************* *************** ****************** + +Result === === ===== ======= +\end{Verbatim} + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +cat A.bed +chr1 100 200 +chr1 400 500 +chr1 500 800 + +cat my.genome +chr1 1000 + +complementBed -i A.bed -g my.genome +chr1 0 100 +chr1 200 400 +chr1 800 1000 +\end{Verbatim} + + +\subsubsection{5.18 bedToBam} +\label{content/bedToBam::doc}\label{content/bedToBam:bedtobam} +\textbf{bedToBam} converts features in a feature file to BAM format. This is useful as an efficient means of +storing large genome annotations in a compact, indexed format for visualization purposes. + + +\paragraph{5.18.1 Usage and option summary} +\label{content/bedToBam:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +bedToBam [OPTIONS] -i \textless{}BED/GFF/VCF\textgreater{} -g \textless{}GENOME\textgreater{} \textgreater{} \textless{}BAM\textgreater{} +\end{Verbatim} + +\begin{tabulary}{\linewidth}{|L|L|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-mapq} + & +Set a mapping quality (SAM MAPQ field) value for all BED entries. \emph{Default: 255} +\\\hline + +\textbf{-ubam} + & +Write uncompressed BAM output. The default is write compressed BAM output. +\\\hline + +\textbf{-bed12} + & +Indicate that the input BED file is in BED12 (a.k.a ``blocked'' BED) format. In this case, bedToBam will convert blocked BED features (e.g., gene annotaions) into ``spliced'' BAM alignments by creating an appropriate CIGAR string. +\\\hline +\end{tabulary} + + + +\paragraph{5.18.2 Default behavior} +\label{content/bedToBam:default-behavior} +The default behavior is to assume that the input file is in unblocked format. For example: + +\begin{Verbatim}[commandchars=\\\{\}] +head -5 rmsk.hg18.chr21.bed +chr21 9719768 9721892 ALR/Alpha 1004 + +chr21 9721905 9725582 ALR/Alpha 1010 + +chr21 9725582 9725977 L1PA3 3288 + +chr21 9726021 9729309 ALR/Alpha 1051 + +chr21 9729320 9729809 L1PA3 3897 - + +bedToBam -i rmsk.hg18.chr21.bed -g human.hg18.genome \textgreater{} rmsk.hg18.chr21.bam + +samtools view rmsk.hg18.chr21.bam \textbar{} head -5 +ALR/Alpha 0 chr21 9719769 255 2124M * 0 0 * * +ALR/Alpha 0 chr21 9721906 255 3677M * 0 0 * * +L1PA3 0 chr21 9725583 255 395M * 0 0 * * +ALR/Alpha 0 chr21 9726022 255 3288M * 0 0 * * +L1PA3 16 chr21 9729321 255 489M * 0 0 * * +\end{Verbatim} + + +\paragraph{5.18.3 Creating ``spliced'' BAM entries from ``blocked'' BED features} +\label{content/bedToBam:creating-spliced-bam-entries-from-blocked-bed-features} +Optionally, \textbf{bedToBam} will create spliced BAM entries from ``blocked'' BED features by using the +-bed12 option. This will create CIGAR strings in the BAM output that will be displayed as ``spliced'' +alignments. The image illustrates this behavior, as the top track is a BAM representation (using +bedToBam) of a BED file of UCSC genes. + +For example: + +\begin{Verbatim}[commandchars=\\\{\}] +bedToBam -i knownGene.hg18.chr21.bed -g human.hg18.genome -bed12 \textgreater{} knownGene.bam + +samtools view knownGene.bam \textbar{} head -2 +uc002yip.1 16 chr21 9928614 2 5 5 + +298M1784N71M1411N93M3963N80M1927N106M3608N81M1769N62M11856N89M98N82M816N61M6910N65M +738N64M146N100M1647N120M6478N162M1485N51M6777N60M9274N54M880N54M1229N54M2377N54M112 +68N58M2666N109M2885N158M * 0 0 * * +uc002yiq.1 16 chr21 9928614 2 5 5 + +298M1784N71M1411N93M3963N80M1927N106M3608N81M1769N62M11856N89M98N82M816N61M6910N65M +738N64M146N100M1647N120M6478N162M1485N51M6777N60M10208N54M1229N54M2377N54M11268N58M +2666N109M2885N158M * 0 0 * * +\end{Verbatim} + + +\subsubsection{5.19 overlap} +\label{content/overlap::doc}\label{content/overlap:overlap} +\textbf{overlap} computes the amount of overlap (in the case of positive values) or distance (in the case of +negative values) between feature coordinates occurring on the same input line and reports the result at +the end of the same line. In this way, it is a useful method for computing custom overlap scores from +the output of other BEDTools. + + +\paragraph{5.19.1 Usage and option summary} +\label{content/overlap:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +overlap [OPTIONS] -i \textless{}input\textgreater{} -cols s1,e1,s2,e2 +\end{Verbatim} + +\begin{tabulary}{\linewidth}{|L|L|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-i} + & +Input file. Use ``stdin'' for pipes. +\\\hline + +\textbf{-cols} + & +Specify the columns (1-based) for the starts and ends of the features for which you'd like to compute the overlap/distance. The columns must be listed in the following order: \emph{start1,end1,start2,end2} +\\\hline +\end{tabulary} + + + +\paragraph{5.19.2 Default behavior} +\label{content/overlap:default-behavior} +The default behavior is to compute the amount of overlap between the features you specify based on the +start and end coordinates. For example: + +\begin{Verbatim}[commandchars=\\\{\}] +windowBed -a A.bed -b B.bed -w 10 +chr1 10 20 A chr1 15 25 B +chr1 10 20 C chr1 25 35 D +\end{Verbatim} + +\# Now let's say we want to compute the number of base pairs of overlap +\# between the overlapping features from the output of windowBed. + +\begin{Verbatim}[commandchars=\\\{\}] +windowBed -a A.bed -b B.bed -w 10 \textbar{} overlap -i stdin -cols 2,3,6,7 +chr1 10 20 A chr1 15 25 B 5 +chr1 10 20 C chr1 25 35 D -5 +\end{Verbatim} + + +\subsubsection{5.20 bedToIgv} +\label{content/bedToIgv:bedtoigv}\label{content/bedToIgv::doc} +\textbf{bedToIgv} creates an IGV (\href{http://www.broadinstitute.org/igv/}{http://www.broadinstitute.org/igv/}) batch script (see: \href{http://}{http://} +www.broadinstitute.org/igv/batch for details) such that a ??snapshot?? will be taken at each features in a +feature file. This is useful as an efficient means for quickly collecting images of primary data at several +loci for subsequent screening, etc. + +\textbf{NOTE: One must use IGV version 1.5 or higher.} + + +\paragraph{5.20.1 Usage and option summary} +\label{content/bedToIgv:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +bedToIgv [OPTIONS] -i \textless{}BED/GFF/VCF\textgreater{} \textgreater{} \textless{}igv.batch\textgreater{} +\end{Verbatim} + +\begin{tabulary}{\linewidth}{|L|L|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-path} + & +The full path to which the IGV snapshots should be written. \emph{Default: ./} +\\\hline + +\textbf{-sess} + & +The full path to an existing IGV session file to be loaded prior to taking snapshots. \emph{Default is for no session to be loaded and the assumption is that you already have IGV open and loaded with your relevant data prior to running the batch script}. +\\\hline + +\textbf{-sort} + & +The type of BAM sorting you would like to apply to each image. \textbf{Valid sorting options}: \emph{base, position, strand, quality, sample, and readGroup Default is to apply no sorting at all}. +\\\hline + +\textbf{-clps} + & +Collapse the aligned reads prior to taking a snapshot. \emph{Default is to not collapse}. +\\\hline + +\textbf{-name} + & +Use the ``name'' field (column 4) for each image's filename. \emph{Default is to use the ``chr:start-pos.ext''}. +\\\hline + +\textbf{-slop} + & +Number of flanking base pairs on the left \& right of the image. +\\\hline + +\textbf{-img} + & +The type of image to be created. \textbf{Valid options}: \emph{png, eps, svg Default is png}. +\\\hline +\end{tabulary} + + + +\paragraph{5.20.2 Default behavior} +\label{content/bedToIgv:default-behavior} +Figure: + +\begin{Verbatim}[commandchars=\\\{\}] +bedToIgv -i data/rmsk.hg18.chr21.bed \textbar{} head -9 +snapshotDirectory ./ +goto chr21:9719768-9721892 +snapshot chr21:9719768-9721892.png +goto chr21:9721905-9725582 +snapshot chr21:9721905-9725582.png +goto chr21:9725582-9725977 +snapshot chr21:9725582-9725977.png +goto chr21:9726021-9729309 +snapshot chr21:9726021-9729309.png +\end{Verbatim} + + +\paragraph{5.20.3 Using a bedToIgv batch script within IGV.} +\label{content/bedToIgv:using-a-bedtoigv-batch-script-within-igv} +Once an IGV batch script has been created with \textbf{bedToIgv}, it is simply a matter of running it from +within IGV. + +For example, first create the batch script: + +\begin{Verbatim}[commandchars=\\\{\}] +bedToIgv -i data/rmsk.hg18.chr21.bed \textgreater{} rmsk.igv.batch +\end{Verbatim} + +Then, open and launch the batch script from within IGV. This will immediately cause IGV to begin +taking snapshots of your requested regions. + + +\subsubsection{5.21 bed12ToBed6} +\label{content/bed12ToBed6::doc}\label{content/bed12ToBed6:bed12tobed6} +\textbf{bed12ToBed6} is a convenience tool that converts BED features in BED12 (a.k.a. ``blocked'' BED +features such as genes) to discrete BED6 features. For example, in the case of a gene with six exons, +bed12ToBed6 would create six separate BED6 features (i.e., one for each exon). + + +\paragraph{5.21.1 Usage and option summary} +\label{content/bed12ToBed6:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +bed12ToBed6 [OPTIONS] -i \textless{}BED12\textgreater{} +\end{Verbatim} + +\begin{tabulary}{\linewidth}{|L|L|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-i} + & +The BED12 file that should be split into discrete BED6 features. \emph{Use ``stdin'' when using piped input}. +\\\hline +\end{tabulary} + + + +\paragraph{5.21.2 Default behavior} +\label{content/bed12ToBed6:default-behavior} +Figure: + +\begin{Verbatim}[commandchars=\\\{\}] +head data/knownGene.hg18.chr21.bed \textbar{} tail -n 3 +chr21 10079666 10120808 uc002yiv.1 0 - 10081686 1 0 1 2 0 6 0 8 + 0 4 528,91,101,215, 0,1930,39750,40927, +chr21 10080031 10081687 uc002yiw.1 0 - 10080031 1 0 0 8 0 0 3 1 + 0 2 200,91, 0,1565, +chr21 10081660 10120796 uc002yix.2 0 - 10081660 1 0 0 8 1 6 6 0 + 0 3 27,101,223,0,37756,38913, + +head data/knownGene.hg18.chr21.bed \textbar{} tail -n 3 \textbar{} bed12ToBed6 -i stdin +chr21 10079666 10080194 uc002yiv.1 0 - +chr21 10081596 10081687 uc002yiv.1 0 - +chr21 10119416 10119517 uc002yiv.1 0 - +chr21 10120593 10120808 uc002yiv.1 0 - +chr21 10080031 10080231 uc002yiw.1 0 - +chr21 10081596 10081687 uc002yiw.1 0 - +chr21 10081660 10081687 uc002yix.2 0 - +chr21 10119416 10119517 uc002yix.2 0 - +chr21 10120573 10120796 uc002yix.2 0 - +\end{Verbatim} + + +\subsubsection{5.22 groupBy} +\label{content/groupBy::doc}\label{content/groupBy:groupby} +\textbf{groupBy} is a useful tool that mimics the ``groupBy'' clause in database systems. Given a file or stream +that is sorted by the appropriate ``grouping columns'', groupBy will compute summary statistics on +another column in the file or stream. This will work with output from all BEDTools as well as any other +tab-delimited file or stream. + +\textbf{NOTE: When using groupBy, the input data must be ordered by the same +columns as specified with the -grp argument. For example, if -grp is 1,2,3, the the +data should be pre-grouped accordingly. When groupBy detects changes in the +group columns it then summarizes all lines with that group}. + + +\paragraph{5.22.1 Usage and option summary} +\label{content/groupBy:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +groupBy [OPTIONS] -i \textless{}input\textgreater{} -opCol \textless{}input column\textgreater{} +\end{Verbatim} + +\begin{tabular}{|p{0.475\linewidth}|p{0.475\linewidth}|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-i} + & \begin{quote} + +The input file that should be grouped and summarized. \emph{Use ``stdin'' when using piped input}. +\end{quote} + +\textbf{Note: if -i is omitted, input is assumed to come from standard input (stdin)} +\\\hline + +\textbf{-g OR -grp} + & +Specifies which column(s) (1-based) should be used to group the input. The columns must be comma-separated and each column must be explicitly listed. No ranges (e.g. 1-4) yet allowed. \emph{Default: 1,2,3} +\\\hline + +\textbf{-c OR -opCol} + & +Specify the column (1-based) that should be summarized. \emph{Required}. +\\\hline + +\textbf{-o OR -op} + & +Specify the operation that should be applied to \textbf{opCol}. + +\begin{DUlineblock}{0em} +\item[] Valid operations: +\end{DUlineblock} +\begin{quote} + +\begin{DUlineblock}{0em} +\item[] \textbf{sum} - \emph{numeric only} +\item[] \textbf{count} - \emph{numeric or text} +\item[] \textbf{min} - \emph{numeric only} +\item[] \textbf{max} - \emph{numeric only} +\item[] \textbf{mean} - \emph{numeric only} +\item[] \textbf{stdev} - \emph{numeric only} +\item[] \textbf{median} - \emph{numeric only} +\item[] \textbf{mode} - \emph{numeric or text} +\item[] \textbf{antimode} - \emph{numeric or text} +\item[] \textbf{collapse} (i.e., print a comma separated list) - \emph{numeric or text} +\item[] \textbf{freqasc} - \emph{print a comma separated list of values observed and the number of times they were observed. Reported in ascending order of frequency} +\end{DUlineblock} +\end{quote} + +\begin{DUlineblock}{0em} +\item[] \textbf{freqdesc} - \emph{print a comma separated list of values observed and the number of times they were observed. Reported in descending order of frequency} +\end{DUlineblock} +\begin{quote} + +\begin{DUlineblock}{0em} +\item[] \emph{Default: sum} +\end{DUlineblock} +\end{quote} +\\\hline +\end{tabular} + + + +\paragraph{5.22.2 Default behavior.} +\label{content/groupBy:default-behavior} +Let's imagine we have three incredibly interesting genetic variants that we are studying and we are +interested in what annotated repeats these variants overlap. + +\begin{Verbatim}[commandchars=\\\{\}] +cat variants.bed +chr21 9719758 9729320 variant1 +chr21 9729310 9757478 variant2 +chr21 9795588 9796685 variant3 + +intersectBed -a variants.bed -b repeats.bed -wa -wb \textgreater{} variantsToRepeats.bed +cat variantsToRepeats.bed +chr21 9719758 9729320 variant1 chr21 9719768 9721892 ALR/Alpha 1004 + +chr21 9719758 9729320 variant1 chr21 9721905 9725582 ALR/Alpha 1010 + +chr21 9719758 9729320 variant1 chr21 9725582 9725977 L1PA3 3288 + +chr21 9719758 9729320 variant1 chr21 9726021 9729309 ALR/Alpha 1051 + +chr21 9729310 9757478 variant2 chr21 9729320 9729809 L1PA3 3897 - +chr21 9729310 9757478 variant2 chr21 9729809 9730866 L1P1 8367 + +chr21 9729310 9757478 variant2 chr21 9730866 9734026 ALR/Alpha 1036 - +chr21 9729310 9757478 variant2 chr21 9734037 9757471 ALR/Alpha 1182 - +chr21 9795588 9796685 variant3 chr21 9795589 9795713 (GAATG)n 308 + +chr21 9795588 9796685 variant3 chr21 9795736 9795894 (GAATG)n 683 + +chr21 9795588 9796685 variant3 chr21 9795911 9796007 (GAATG)n 345 + +chr21 9795588 9796685 variant3 chr21 9796028 9796187 (GAATG)n 756 + +chr21 9795588 9796685 variant3 chr21 9796202 9796615 (GAATG)n 891 + +chr21 9795588 9796685 variant3 chr21 9796637 9796824 (GAATG)n 621 + +\end{Verbatim} + +We can see that variant1 overlaps with 3 repeats, variant2 with 4 and variant3 with 6. We can use +groupBy to summarize the hits for each variant in several useful ways. The default behavior is to +compute the \emph{sum} of the opCol. + +\begin{Verbatim}[commandchars=\\\{\}] +groupBy -i variantsToRepeats.bed -grp 1,2,3 -opCol 9 +chr21 9719758 9729320 6353 +chr21 9729310 9757478 14482 +chr21 9795588 9796685 3604 +\end{Verbatim} + + +\paragraph{5.22.3 Computing the min and max.} +\label{content/groupBy:computing-the-min-and-max} +Now let's find the \emph{min} and \emph{max} repeat score for each variant. We do this by ``grouping'' on the variant +coordinate columns (i.e. cols. 1,2 and 3) and ask for the min and max of the repeat score column (i.e. +col. 9). + +\begin{Verbatim}[commandchars=\\\{\}] +groupBy -i variantsToRepeats.bed -g 1,2,3 -c 9 -o min +chr21 9719758 9729320 1004 +chr21 9729310 9757478 1036 +chr21 9795588 9796685 308 +\end{Verbatim} + +We can also group on just the \emph{name} column with similar effect. + +\begin{Verbatim}[commandchars=\\\{\}] +groupBy -i variantsToRepeats.bed -grp 4 -opCol 9 -op min +variant1 1004 +variant2 1036 +variant3 308 +\end{Verbatim} + +What about the \emph{max} score? Let's keep the coordinates and the name of the variants so that we +stay in BED format. + +\begin{Verbatim}[commandchars=\\\{\}] +groupBy -i variantsToRepeats.bed -grp 1,2,3,4 -opCol 9 -op max +chr21 9719758 9729320 variant1 3288 +chr21 9729310 9757478 variant2 8367 +chr21 9795588 9796685 variant3 891 +\end{Verbatim} + + +\paragraph{5.22.4 Computing the mean and median.} +\label{content/groupBy:computing-the-mean-and-median} +Now let's find the \emph{mean} and \emph{median} repeat score for each variant. + +\begin{Verbatim}[commandchars=\\\{\}] +cat variantsToRepeats.bed \textbar{} groupBy -g 1,2,3,4 -c 9 -o mean +chr21 9719758 9729320 variant1 1588.25 +chr21 9729310 9757478 variant2 3620.5 +chr21 9795588 9796685 variant3 600.6667 + +groupBy -i variantsToRepeats.bed -grp 1,2,3,4 -opCol 9 -op median +chr21 9719758 9729320 variant1 1030.5 +chr21 9729310 9757478 variant2 2539.5 +chr21 9795588 9796685 variant3 652 +\end{Verbatim} + + +\paragraph{5.22.5 Computing the mode and ``antimode''.} +\label{content/groupBy:computing-the-mode-and-antimode} +Now let's find the \emph{mode} and \emph{antimode} (i.e., the least frequent) repeat score for each variant (in this case +they are identical). + +\begin{Verbatim}[commandchars=\\\{\}] +groupBy -i variantsToRepeats.bed -grp 1,2,3,4 -opCol 9 -op mode +chr21 9719758 9729320 variant1 1004 +chr21 9729310 9757478 variant2 1036 +chr21 9795588 9796685 variant3 308 + +groupBy -i variantsToRepeats.bed -grp 1,2,3,4 -opCol 9 -op antimode +chr21 9719758 9729320 variant1 1004 +chr21 9729310 9757478 variant2 1036 +chr21 9795588 9796685 variant3 308 +\end{Verbatim} + + +\paragraph{5.22.6 Computing the count of lines for a given group.} +\label{content/groupBy:computing-the-count-of-lines-for-a-given-group} +Figure: + +\begin{Verbatim}[commandchars=\\\{\}] +groupBy -i variantsToRepeats.bed -g 1,2,3,4 -c 9 -c count +chr21 9719758 9729320 variant1 4 +chr21 9729310 9757478 variant2 4 +chr21 9795588 9796685 variant3 6 +\end{Verbatim} + + +\paragraph{5.22.7 Collapsing: listing all of the values in the opCol for a given group.} +\label{content/groupBy:collapsing-listing-all-of-the-values-in-the-opcol-for-a-given-group} +Now for something different. What if we wanted all of the names of the repeats listed on the same line +as the variants? Use the collapse option. This ``denormalizes'' things. Now you have a list of all the +repeats on a single line. + +\begin{Verbatim}[commandchars=\\\{\}] +groupBy -i variantsToRepeats.bed -grp 1,2,3,4 -opCol 9 -op collapse +chr21 9719758 9729320 variant1 ALR/Alpha,ALR/Alpha,L1PA3,ALR/Alpha, +chr21 9729310 9757478 variant2 L1PA3,L1P1,ALR/Alpha,ALR/Alpha, +chr21 9795588 9796685 variant3 (GAATG)n,(GAATG)n,(GAATG)n,(GAATG)n,(GAATG)n,(GAATG)n, +\end{Verbatim} + + +\paragraph{5.22.8 Computing frequencies: freqasc and freqdesc.} +\label{content/groupBy:computing-frequencies-freqasc-and-freqdesc} +Now for something different. What if we wanted all of the names of the repeats listed on the same line +as the variants? Use the collapse option. This ``denormalizes'' things. Now you have a list of all the +repeats on a single line. + +\begin{Verbatim}[commandchars=\\\{\}] +cat variantsToRepeats.bed \textbar{} groupBy -g 1 -c 8 -o freqdesc +chr21 (GAATG)n:6,ALR/Alpha:5,L1PA3:2,L1P1:1, + +cat variantsToRepeats.bed \textbar{} groupBy -g 1 -c 8 -o freqasc +chr21 L1P1:1,L1PA3:2,ALR/Alpha:5,(GAATG)n:6, +\end{Verbatim} + + +\subsubsection{5.23 unionBedGraphs} +\label{content/unionBedGraphs:unionbedgraphs}\label{content/unionBedGraphs::doc} +\textbf{unionBedGraphs} combines multiple BEDGRAPH files into a single file such that one can directly +compare coverage (and other text-values such as genotypes) across multiple sample + + +\paragraph{5.23.1 Usage and option summary} +\label{content/unionBedGraphs:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +unionBedGraphs [OPTIONS] -i FILE1 FILE2 FILE3 ... FILEn +\end{Verbatim} + +\begin{tabulary}{\linewidth}{|L|L|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-header} + & +Print a header line, consisting of chrom, start, end followed by the names of each input BEDGRAPH file. +\\\hline + +\textbf{-names} + & +A list of names (one per file) to describe each file in -i. These names will be printed in the header line. +\\\hline + +\textbf{-empty} + & +Report empty regions (i.e., start/end intervals w/o values in all files). \emph{Requires the `-g FILE' parameter (see below)}. +\\\hline + +\textbf{-g} + & +The genome file to be used to calculate empty regions. +\\\hline + +\textbf{-filler TEXT} + & +Use TEXT when representing intervals having no value. Default is `0', but you can use `N/A' or any other text. +\\\hline + +\textbf{-examples} + & +Show detailed usage examples. +\\\hline +\end{tabulary} + + + +\paragraph{5.23.2 Default behavior} +\label{content/unionBedGraphs:default-behavior} +Figure: + +\begin{Verbatim}[commandchars=\\\{\}] +cat 1.bg +chr1 1000 1500 10 +chr1 2000 2100 20 + +cat 2.bg +chr1 900 1600 60 +chr1 1700 2050 50 + +cat 3.bg +chr1 1980 2070 80 +chr1 2090 2100 20 + +cat sizes.txt +chr1 5000 + +unionBedGraphs -i 1.bg 2.bg 3.bg +chr1 900 1000 0 60 0 +chr1 1000 1500 10 60 0 +chr1 1500 1600 0 60 0 +chr1 1700 1980 0 50 0 +chr1 1980 2000 0 50 80 +chr1 2000 2050 20 50 80 +chr1 2050 2070 20 0 80 +chr1 2070 2090 20 0 0 +chr1 2090 2100 20 0 20 +\end{Verbatim} + + +\paragraph{5.23.3 Add a header line to the output} +\label{content/unionBedGraphs:add-a-header-line-to-the-output} +Figure: + +\begin{Verbatim}[commandchars=\\\{\}] +unionBedGraphs -i 1.bg 2.bg 3.bg -header +chrom start end 1 2 3 +chr1 900 1000 0 60 0 +chr1 1000 1500 10 60 0 +chr1 1500 1600 0 60 0 +chr1 1700 1980 0 50 0 +chr1 1980 2000 0 50 80 +chr1 2000 2050 20 50 80 +chr1 2050 2070 20 0 80 +chr1 2070 2090 20 0 0 +chr1 2090 2100 20 0 20 +\end{Verbatim} + + +\paragraph{5.23.4 Add a header line with custom file names to the output} +\label{content/unionBedGraphs:add-a-header-line-with-custom-file-names-to-the-output} +Figure: + +\begin{Verbatim}[commandchars=\\\{\}] +unionBedGraphs -i 1.bg 2.bg 3.bg -header -names WT-1 WT-2 KO-1 +chrom start end WT-1 WT-2 KO-1 +chr1 900 1000 0 60 0 +chr1 1000 1500 10 60 0 +chr1 1500 1600 0 60 0 +chr1 1700 1980 0 50 0 +chr1 1980 2000 0 50 80 +chr1 2000 2050 20 50 80 +chr1 2050 2070 20 0 80 +chr1 2070 2090 20 0 0 +chr1 2090 2100 20 0 20 +\end{Verbatim} + + +\paragraph{5.23.5 Include regions that have zero coverage in all BEDGRAPH files.} +\label{content/unionBedGraphs:include-regions-that-have-zero-coverage-in-all-bedgraph-files} +Figure: + +\begin{Verbatim}[commandchars=\\\{\}] +unionBedGraphs -i 1.bg 2.bg 3.bg -empty -g sizes.txt -header +chrom start end WT-1 WT-2 KO-1 +chrom start end 1 2 3 +chr1 0 900 0 0 0 +chr1 900 1000 0 60 0 +chr1 1000 1500 10 60 0 +chr1 1500 1600 0 60 0 +chr1 1600 1700 0 0 0 +chr1 1700 1980 0 50 0 +chr1 1980 2000 0 50 80 +chr1 2000 2050 20 50 80 +chr1 2050 2070 20 0 80 +chr1 2070 2090 20 0 0 +chr1 2090 2100 20 0 20 +chr1 2100 5000 0 0 0 +\end{Verbatim} + + +\paragraph{5.23.6 Use a custom value for missing values.} +\label{content/unionBedGraphs:use-a-custom-value-for-missing-values} +Figure: + +\begin{Verbatim}[commandchars=\\\{\}] +unionBedGraphs -i 1.bg 2.bg 3.bg -empty -g sizes.txt -header -filler N/A +chrom start end WT-1 WT-2 KO-1 +chrom start end 1 2 3 +chr1 0 900 N/A N/A N/A +chr1 900 1000 N/A 60 N/A +chr1 1000 1500 10 60 N/A +chr1 1500 1600 N/A 60 N/A +chr1 1600 1700 N/A N/A N/A +chr1 1700 1980 N/A 50 N/A +chr1 1980 2000 N/A 50 80 +chr1 2000 2050 20 50 80 +chr1 2050 2070 20 N/A 80 +chr1 2070 2090 20 N/A N/A +chr1 2090 2100 20 N/A 20 +chr1 2100 5000 N/A N/A N/A +\end{Verbatim} + + +\paragraph{5.23.7 Use BEDGRAPH files with non-numeric values.} +\label{content/unionBedGraphs:use-bedgraph-files-with-non-numeric-values} +Figure: + +\begin{Verbatim}[commandchars=\\\{\}] +cat 1.snp.bg +chr1 0 1 A/G +chr1 5 6 C/T + +cat 2.snp.bg +chr1 0 1 C/C +chr1 7 8 T/T + +cat 3.snp.bg +chr1 0 1 A/G +chr1 5 6 C/T + +unionBedGraphs -i 1.snp.bg 2.snp.bg 3.snp.bg -filler -/- +chr1 0 1 A/G C/C A/G +chr1 5 6 C/T -/- C/T +chr1 7 8 -/- T/T -/- +\end{Verbatim} + + +\subsubsection{5.24 annotateBed} +\label{content/annotateBed::doc}\label{content/annotateBed:annotatebed} +\textbf{annotateBed} annotates one BED/VCF/GFF file with the coverage and number of overlaps observed +from multiple other BED/VCF/GFF files. In this way, it allows one to ask to what degree one feature +coincides with multiple other feature types with a single command. + + +\paragraph{5.24.1 Usage and option summary} +\label{content/annotateBed:usage-and-option-summary} +Usage: + +\begin{Verbatim}[commandchars=\\\{\}] +annotateBed [OPTIONS] -i \textless{}BED/GFF/VCF\textgreater{} -files FILE1 FILE2 FILE3 ... FILEn +\end{Verbatim} + +\begin{tabulary}{\linewidth}{|L|L|} +\hline +\textbf{ +Option +} & \textbf{ +Description +}\\\hline + +\textbf{-namesr} + & +A list of names (one per file) to describe each file in -i. These names will be printed as a header line. +\\\hline + +\textbf{-counts} + & +Report the count of features in each file that overlap -i. Default behavior is to report the fraction of -i covered by each file. +\\\hline + +\textbf{-both} + & +Report the count of features followed by the \% coverage for each annotation file. Default is to report solely the fraction of -i covered by each file. +\\\hline + +\textbf{-s} + & +Force strandedness. That is, only include hits in A that overlap B on the same strand. By default, hits are included without respect to strand. +\\\hline +\end{tabulary} + + + +\paragraph{5.24.2 Default behavior - annotate one file with coverage from others.} +\label{content/annotateBed:default-behavior-annotate-one-file-with-coverage-from-others} +By default, the fraction of each feature covered by each annotation file is reported after the complete +feature in the file to be annotated. + +\begin{Verbatim}[commandchars=\\\{\}] +cat variants.bed +chr1 100 200 nasty 1 - +chr2 500 1000 ugly 2 + +chr3 1000 5000 big 3 - + +cat genes.bed +chr1 150 200 geneA 1 + +chr1 175 250 geneB 2 + +chr3 0 10000 geneC 3 - + +cat conserve.bed +chr1 0 10000 cons1 1 + +chr2 700 10000 cons2 2 - +chr3 4000 10000 cons3 3 + + +cat known\_var.bed +chr1 0 120 known1 - +chr1 150 160 known2 - +chr2 0 10000 known3 + + +annotateBed -i variants.bed -files genes.bed conserv.bed known\_var.bed +chr1 100 200 nasty 1 - 0.500000 1.000000 0.300000 +chr2 500 1000 ugly 2 + 0.000000 0.600000 1.000000 +chr3 1000 5000 big 3 - 1.000000 0.250000 0.000000 +\end{Verbatim} + + +\paragraph{5.24.3 Report the count of hits from the annotation files} +\label{content/annotateBed:report-the-count-of-hits-from-the-annotation-files} +Figure: + +\begin{Verbatim}[commandchars=\\\{\}] +annotateBed -counts -i variants.bed -files genes.bed conserv.bed known\_var.bed +chr1 100 200 nasty 1 - 2 1 2 +chr2 500 1000 ugly 2 + 0 1 1 +chr3 1000 5000 big 3 - 1 1 0 +\end{Verbatim} + + +\paragraph{5.24.4 Report both the count of hits and the fraction covered from the annotation files} +\label{content/annotateBed:report-both-the-count-of-hits-and-the-fraction-covered-from-the-annotation-files} +Figure: + +\begin{Verbatim}[commandchars=\\\{\}] +annotateBed -both -i variants.bed -files genes.bed conserv.bed known\_var.bed +\#chr start end name score +/- cnt1 pct1 cnt2 pct2 cnt3 pct3 +chr1 100 200 nasty 1 - 2 0.500000 1 1.000000 2 0.300000 +chr2 500 1000 ugly 2 + 0 0.000000 1 0.600000 1 1.000000 +chr3 1000 5000 big 3 - 1 1.000000 1 0.250000 0 0.000000 +\end{Verbatim} + + +\paragraph{5.24.5 Restrict the reporting to overlaps on the same strand.} +\label{content/annotateBed:restrict-the-reporting-to-overlaps-on-the-same-strand} +Note: Compare with the result from 5.24.3 + +\begin{Verbatim}[commandchars=\\\{\}] +annotateBed -s -i variants.bed -files genes.bed conserv.bed known\_var.bed +chr1 100 200 nasty var1 - 0.000000 0.000000 0.000000 +chr2 500 1000 ugly var2 + 0.000000 0.000000 0.000000 +chr3 1000 5000 big var3 - 1.000000 0.000000 0.000000 +\end{Verbatim} + + +\section{Example usage} +\label{content/example-usage:example-usage}\label{content/example-usage::doc} +Below are several examples of basic BEDTools usage. Example BED files are provided in the +/data directory of the BEDTools distribution. + + +\subsection{6.1 intersectBed} +\label{content/example-usage:intersectbed} +6.1.1 Report the base-pair overlap between sequence alignments and genes. + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -a reads.bed -b genes.bed +\end{Verbatim} + +6.1.2 Report whether each alignment overlaps one or more genes. If not, the alignment is not reported. + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -a reads.bed -b genes.bed -u +\end{Verbatim} + +6.1.3 Report those alignments that overlap NO genes. Like ``grep -v'' + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -a reads.bed -b genes.bed -v +\end{Verbatim} + +6.1.4 Report the number of genes that each alignment overlaps. + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -a reads.bed -b genes.bed -c +\end{Verbatim} + +6.1.5 Report the entire, original alignment entry for each overlap with a gene. + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -a reads.bed -b genes.bed -wa +\end{Verbatim} + +6.1.6 Report the entire, original gene entry for each overlap with a gene. + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -a reads.bed -b genes.bed -wb +\end{Verbatim} + +6.1.7 Report the entire, original alignment and gene entries for each overlap. + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -a reads.bed -b genes.bed -wa -wb +\end{Verbatim} + +6.1.8 Only report an overlap with a repeat if it spans at least 50\% of the exon. + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -a exons.bed -b repeatMasker.bed -f 0.50 +\end{Verbatim} + +6.1.9 Only report an overlap if comprises 50\% of the structural variant and 50\% of the segmental duplication. Thus, it is reciprocally at least a 50\% overlap. + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -a SV.bed -b segmentalDups.bed -f 0.50 -r +\end{Verbatim} + +6.1.10 Read BED A from stdin. For example, find genes that overlap LINEs but not SINEs. + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -a genes.bed -b LINES.bed \textbar{} intersectBed -a stdin -b SINEs.bed -v +\end{Verbatim} + +6.1.11 Retain only single-end BAM alignments that overlap exons. + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -abam reads.bam -b exons.bed \textgreater{} reads.touchingExons.bam +\end{Verbatim} + +6.1.12 Retain only single-end BAM alignments that do not overlap simple sequence +repeats. + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -abam reads.bam -b SSRs.bed -v \textgreater{} reads.noSSRs.bam +\end{Verbatim} + + +\subsection{6.2 pairToBed} +\label{content/example-usage:pairtobed} +6.2.1 Return all structural variants (in BEDPE format) that overlap with genes on either +end. + +\begin{Verbatim}[commandchars=\\\{\}] +pairToBed -a sv.bedpe -b genes \textgreater{} sv.genes +\end{Verbatim} + +6.2.2 Return all structural variants (in BEDPE format) that overlap with genes on both +end. + +\begin{Verbatim}[commandchars=\\\{\}] +pairToBed -a sv.bedpe -b genes -type both \textgreater{} sv.genes +\end{Verbatim} + +6.2.3 Retain only paired-end BAM alignments where neither end overlaps simple +sequence repeats. + +\begin{Verbatim}[commandchars=\\\{\}] +pairToBed -abam reads.bam -b SSRs.bed -type neither \textgreater{} reads.noSSRs.bam +\end{Verbatim} + +6.2.4 Retain only paired-end BAM alignments where both ends overlap segmental +duplications. + +\begin{Verbatim}[commandchars=\\\{\}] +pairToBed -abam reads.bam -b segdups.bed -type both \textgreater{} reads.SSRs.bam +\end{Verbatim} + +6.2.5 Retain only paired-end BAM alignments where neither or one and only one end +overlaps segmental duplications. + +\begin{Verbatim}[commandchars=\\\{\}] +pairToBed -abam reads.bam -b segdups.bed -type notboth \textgreater{} reads.notbothSSRs.bam +\end{Verbatim} + + +\subsection{6.3 pairToPair} +\label{content/example-usage:pairtopair} +6.3.1 Find all SVs (in BEDPE format) in sample 1 that are also in sample 2. + +\begin{Verbatim}[commandchars=\\\{\}] +pairToPair -a 1.sv.bedpe -b 2.sv.bedpe \textbar{} cut -f 1-10 \textgreater{} 1.sv.in2.bedpe +\end{Verbatim} + +6.3.2 Find all SVs (in BEDPE format) in sample 1 that are not in sample 2. + +\begin{Verbatim}[commandchars=\\\{\}] +pairToPair -a 1.sv.bedpe -b 2.sv.bedpe -type neither \textbar{} cut -f 1-10 \textgreater{} +\end{Verbatim} + +1.sv.notin2.bedpe + + +\subsection{6.4 bamToBed} +\label{content/example-usage:bamtobed} +6.4.1 Convert BAM alignments to BED format. + +\begin{Verbatim}[commandchars=\\\{\}] +bamToBed -i reads.bam \textgreater{} reads.bed +\end{Verbatim} + +6.4.2 Convert BAM alignments to BED format using the BAM edit distance (NM) as the +BED ``score''. + +\begin{Verbatim}[commandchars=\\\{\}] +bamToBed -i reads.bam -ed \textgreater{} reads.bed +\end{Verbatim} + +6.4.3 Convert BAM alignments to BEDPE format. + +\begin{Verbatim}[commandchars=\\\{\}] +bamToBed -i reads.bam -bedpe \textgreater{} reads.bedpe +\end{Verbatim} + + +\subsection{6.5 windowBed} +\label{content/example-usage:windowbed} +6.5.1 Report all genes that are within 10000 bp upstream or downstream of CNVs. + +\begin{Verbatim}[commandchars=\\\{\}] +windowBed -a CNVs.bed -b genes.bed -w 10000 +\end{Verbatim} + +6.5.2 Report all genes that are within 10000 bp upstream or 5000 bp downstream of +CNVs. + +\begin{Verbatim}[commandchars=\\\{\}] +windowBed -a CNVs.bed -b genes.bed -l 10000 -r 5000 +\end{Verbatim} + +6.5.3 Report all SNPs that are within 5000 bp upstream or 1000 bp downstream of genes. +Define upstream and downstream based on strand. + +\begin{Verbatim}[commandchars=\\\{\}] +windowBed -a genes.bed -b snps.bed -l 5000 -r 1000 -sw +\end{Verbatim} + + +\subsection{6.6 closestBed} +\label{content/example-usage:closestbed} +Note: By default, if there is a tie for closest, all ties will be reported. \textbf{closestBed} allows overlapping +features to be the closest. + +6.6.1 Find the closest ALU to each gene. + +\begin{Verbatim}[commandchars=\\\{\}] +closestBed -a genes.bed -b ALUs.bed +\end{Verbatim} + +6.6.2 Find the closest ALU to each gene, choosing the first ALU in the file if there is a +tie. + +\begin{Verbatim}[commandchars=\\\{\}] +closestBed -a genes.bed -b ALUs.bed -t first +\end{Verbatim} + +6.6.3 Find the closest ALU to each gene, choosing the last ALU in the file if there is a +tie. + +\begin{Verbatim}[commandchars=\\\{\}] +closestBed -a genes.bed -b ALUs.bed -t last +\end{Verbatim} + + +\subsection{6.7 subtractBed} +\label{content/example-usage:subtractbed} +Note: If a feature in A is entirely ``spanned'' by any feature in B, it will not be reported. + +6.7.1 Remove introns from gene features. Exons will (should) be reported. + +\begin{Verbatim}[commandchars=\\\{\}] +subtractBed -a genes.bed -b introns.bed +\end{Verbatim} + + +\subsection{6.8 mergeBed} +\label{content/example-usage:mergebed} +6.8.1 Merge overlapping repetitive elements into a single entry. + +\begin{Verbatim}[commandchars=\\\{\}] +mergeBed -i repeatMasker.bed +\end{Verbatim} + +6.8.2 Merge overlapping repetitive elements into a single entry, returning the number of +entries merged. + +\begin{Verbatim}[commandchars=\\\{\}] +mergeBed -i repeatMasker.bed -n +\end{Verbatim} + +6.8.3 Merge nearby (within 1000 bp) repetitive elements into a single entry. + +\begin{Verbatim}[commandchars=\\\{\}] +mergeBed -i repeatMasker.bed -d 1000 +\end{Verbatim} + + +\subsection{6.9 coverageBed} +\label{content/example-usage:coveragebed} +6.9.1 Compute the coverage of aligned sequences on 10 kilobase ``windows'' spanning the +genome. + +\begin{Verbatim}[commandchars=\\\{\}] +coverageBed -a reads.bed -b windows10kb.bed \textbar{} head +chr1 0 10000 0 10000 0.00 +chr1 10001 20000 33 10000 0.21 +chr1 20001 30000 42 10000 0.29 +chr1 30001 40000 71 10000 0.36 +\end{Verbatim} + +6.9.2 Compute the coverage of aligned sequences on 10 kilobase ``windows'' spanning the +genome and created a BEDGRAPH of the number of aligned reads in each window for +display on the UCSC browser. + +\begin{Verbatim}[commandchars=\\\{\}] +coverageBed -a reads.bed -b windows10kb.bed \textbar{} cut -f 1-4 \textgreater{} windows10kb.cov.bedg +\end{Verbatim} + +6.9.3 Compute the coverage of aligned sequences on 10 kilobase ``windows'' spanning the +genome and created a BEDGRAPH of the fraction of each window covered by at least +one aligned read for display on the UCSC browser. + +\begin{Verbatim}[commandchars=\\\{\}] +coverageBed -a reads.bed -b windows10kb.bed \textbar{} awk ??\PYGZob{}OFS="\PYGZbs{}t"; print \$1,\$2,\$3,\$6\PYGZcb{}?? +\textgreater{} windows10kb.pctcov.bedg +\end{Verbatim} + + +\subsection{6.10 complementBed} +\label{content/example-usage:complementbed} +6.10.1 Report all intervals in the human genome that are not covered by repetitive +elements. + +\begin{Verbatim}[commandchars=\\\{\}] +complementBed -i repeatMasker.bed -g hg18.genome +\end{Verbatim} + + +\subsection{6.11 shuffleBed} +\label{content/example-usage:shufflebed} +6.11.1 Randomly place all discovered variants in the genome. However, prevent them +from being placed in know genome gaps. + +\begin{Verbatim}[commandchars=\\\{\}] +shuffleBed -i variants.bed -g hg18.genome -excl genome\_gaps.bed +\end{Verbatim} + +6.11.2 Randomly place all discovered variants in the genome. However, prevent them +from being placed in know genome gaps and require that the variants be randomly +placed on the same chromosome. + +\begin{Verbatim}[commandchars=\\\{\}] +shuffleBed -i variants.bed -g hg18.genome -excl genome\_gaps.bed -chrom +\end{Verbatim} + + +\section{Advanced usage} +\label{content/advanced-usage::doc}\label{content/advanced-usage:advanced-usage} + +\subsection{7.1 Mask all regions in a genome except for targeted capture regions.} +\label{content/advanced-usage:mask-all-regions-in-a-genome-except-for-targeted-capture-regions} +\# Add 500 bp up and downstream of each probe + +\begin{Verbatim}[commandchars=\\\{\}] +slopBed -i probes.bed -b 500 \textgreater{} probes.500bp.bed +\end{Verbatim} + +\# Get a BED file of all regions not covered by the probes (+500 bp up/down) + +\begin{Verbatim}[commandchars=\\\{\}] +complementBed -i probes.500bp.bed -g hg18.genome \textgreater{} probes.500bp.complement.bed +\end{Verbatim} + +\# Create a masked genome where all bases are masked except for the probes +500bp + +\begin{Verbatim}[commandchars=\\\{\}] +maskFastaFromBed -in hg18.fa -bed probes.500bp.complement.bed -fo hg18.probecomplement. +masked.fa +\end{Verbatim} + + +\subsection{7.2 Screening for novel SNPs.} +\label{content/advanced-usage:screening-for-novel-snps} +\# Find all SNPs that are not in dbSnp and not in the latest 1000 genomes calls + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -a snp.calls.bed -b dbSnp.bed -v \textbar{} intersectBed -a stdin -b 1KG.bed +-v \textgreater{} snp.calls.novel.bed +\end{Verbatim} + +you can first use intersectBed with the ``-f 1.0'' option. + +\begin{Verbatim}[commandchars=\\\{\}] +intersectBed -a features.bed -b windows.bed -f 1.0 \textbar{} coverageBed -a stdin -b +windows.bed \textgreater{} windows.bed.coverage +\end{Verbatim} + + +\subsection{7.4 Computing the coverage of BAM alignments on exons.} +\label{content/advanced-usage:computing-the-coverage-of-bam-alignments-on-exons} +\# One can combine SAMtools with BEDtools to compute coverage directly from the BAM +data by using bamToBed. + +\begin{Verbatim}[commandchars=\\\{\}] +bamToBed -i reads.bam \textbar{} coverageBed -a stdin -b exons.bed \textgreater{} exons.bed.coverage +\end{Verbatim} + +\# Take it a step further and require that coverage be from properly-paired reads. + +\begin{Verbatim}[commandchars=\\\{\}] +samtools view -bf 0x2 reads.bam \textbar{} bamToBed -i stdin \textbar{} coverageBed -a stdin -b +exons.bed \textgreater{} exons.bed.proper.coverage +\end{Verbatim} + + +\subsection{7.5 Computing coverage separately for each strand.} +\label{content/advanced-usage:computing-coverage-separately-for-each-strand} +\# Use grep to only look at forward strand features (i.e. those that end in ``+''). + +\begin{Verbatim}[commandchars=\\\{\}] +bamToBed -i reads.bam \textbar{} grep \PYGZbs{}+\$ \textbar{} coverageBed -a stdin -b genes.bed \textgreater{} +genes.bed.forward.coverage +\end{Verbatim} + +\# Use grep to only look at reverse strand features (i.e. those that end in ``-''). + +\begin{Verbatim}[commandchars=\\\{\}] +bamToBed -i reads.bam \textbar{} grep \PYGZbs{}-\$ \textbar{} coverageBed -a stdin -b genes.bed \textgreater{} +genes.bed.forward.coverage +\end{Verbatim} + + +\subsection{7.6 Find structural variant calls that are private to one sample.} +\label{content/advanced-usage:find-structural-variant-calls-that-are-private-to-one-sample} +\# : + +\begin{Verbatim}[commandchars=\\\{\}] +pairToPair -a sample1.sv.bedpe -b othersamples.sv.bedpe -type neither \textgreater{} +sample1.sv.private.bedpe +\end{Verbatim} + + +\subsection{7.7 Exclude SV deletions that appear to be ALU insertions in the reference genome.} +\label{content/advanced-usage:exclude-sv-deletions-that-appear-to-be-alu-insertions-in-the-reference-genome} +\# We'll require that 90\% of the inner span of the deletion be overlapped by a +recent ALU. + +\begin{Verbatim}[commandchars=\\\{\}] +pairToBed -a deletions.sv.bedpe -b ALUs.recent.bed -type notispan -f 0.80 \textgreater{} +deletions.notALUsinRef.bedpe +\end{Verbatim} + + +\chapter{Mailing list} +\label{index:mailing-list} +Refer to the mailing list. + + + +\renewcommand{\indexname}{Index} +\printindex +\end{document} diff --git a/docs/_build/latex/bedtools.toc b/docs/_build/latex/bedtools.toc new file mode 100644 index 00000000..65e06b1d --- /dev/null +++ b/docs/_build/latex/bedtools.toc @@ -0,0 +1,203 @@ +\select@language {english} +\contentsline {chapter}{\numberline {1}Overview}{1}{chapter.1} +\contentsline {chapter}{\numberline {2}Table of contents}{3}{chapter.2} +\contentsline {section}{\numberline {2.1}Overview}{3}{section.2.1} +\contentsline {subsection}{\numberline {2.1.1}1.1 Background}{3}{subsection.2.1.1} +\contentsline {subsection}{\numberline {2.1.2}1.2 Summary of available tools.}{3}{subsection.2.1.2} +\contentsline {subsection}{\numberline {2.1.3}1.3 Fundamental concepts.}{4}{subsection.2.1.3} +\contentsline {subsubsection}{1.3.1 What are genome features and how are they represented?}{4}{subsubsection*.3} +\contentsline {subsubsection}{1.3.2 Overlapping / intersecting features.}{5}{subsubsection*.4} +\contentsline {subsubsection}{1.3.3 Comparing features in file \IeC {\textquotedblleft }A\IeC {\textquotedblright } and file \IeC {\textquotedblleft }B\IeC {\textquotedblright }.}{5}{subsubsection*.5} +\contentsline {subsubsection}{1.3.4 BED starts are zero-based and BED ends are one-based.}{5}{subsubsection*.6} +\contentsline {subsubsection}{1.3.5 GFF starts and ends are one-based.}{5}{subsubsection*.7} +\contentsline {subsubsection}{1.3.6 VCF coordinates are one-based.}{6}{subsubsection*.8} +\contentsline {subsubsection}{1.3.7 File B is loaded into memory (most of the time).}{6}{subsubsection*.9} +\contentsline {subsubsection}{1.3.8 Feature files \emph {must} be tab-delimited.}{6}{subsubsection*.10} +\contentsline {subsubsection}{1.3.9 All BEDTools allow features to be \IeC {\textquotedblleft }piped\IeC {\textquotedblright } via standard input.}{6}{subsubsection*.11} +\contentsline {subsubsection}{1.3.10 Most BEDTools write their results to standard output.}{6}{subsubsection*.12} +\contentsline {subsubsection}{1.3.11 What is a \IeC {\textquotedblleft }genome\IeC {\textquotedblright } file?}{7}{subsubsection*.13} +\contentsline {subsubsection}{1.3.12 Paired-end BED files (BEDPE files).}{7}{subsubsection*.14} +\contentsline {subsubsection}{1.3.13 Use \IeC {\textquotedblleft }-h\IeC {\textquotedblright } for help with any BEDTool.}{7}{subsubsection*.15} +\contentsline {subsubsection}{1.3.14 BED features must not contain negative positions.}{7}{subsubsection*.16} +\contentsline {subsubsection}{1.3.15 The start position must be \textless {}= to the end position.}{7}{subsubsection*.17} +\contentsline {subsubsection}{1.3.16 Headers are allowed in GFF and BED files}{7}{subsubsection*.18} +\contentsline {subsubsection}{1.3.17 GZIP support: BED, GFF, VCF, and BEDPE file can be \IeC {\textquotedblleft }gzipped\IeC {\textquotedblright }}{8}{subsubsection*.19} +\contentsline {subsubsection}{1.3.18 Support for \IeC {\textquotedblleft }split\IeC {\textquotedblright } or \IeC {\textquotedblleft }spliced\IeC {\textquotedblright } BAM alignments and \IeC {\textquotedblleft }blocked\IeC {\textquotedblright } BED features}{8}{subsubsection*.20} +\contentsline {subsubsection}{1.3.19 Writing uncompressed BAM output.}{8}{subsubsection*.21} +\contentsline {subsection}{\numberline {2.1.4}1.4 Implementation and algorithmic notes.}{8}{subsection.2.1.4} +\contentsline {subsection}{\numberline {2.1.5}1.5 License and availability.}{9}{subsection.2.1.5} +\contentsline {subsection}{\numberline {2.1.6}1.6 Mailing list.}{9}{subsection.2.1.6} +\contentsline {subsection}{\numberline {2.1.7}1.7 Contributors.}{9}{subsection.2.1.7} +\contentsline {section}{\numberline {2.2}Installation}{9}{section.2.2} +\contentsline {section}{\numberline {2.3}Quick start}{9}{section.2.3} +\contentsline {subsection}{\numberline {2.3.1}Install BEDTools}{9}{subsection.2.3.1} +\contentsline {subsection}{\numberline {2.3.2}Use BEDTools}{10}{subsection.2.3.2} +\contentsline {section}{\numberline {2.4}General usage}{10}{section.2.4} +\contentsline {subsection}{\numberline {2.4.1}4.1 Supported file formats}{10}{subsection.2.4.1} +\contentsline {subsubsection}{4.1.1 BED format}{10}{subsubsection*.22} +\contentsline {subsubsection}{4.1.2 BEDPE format}{12}{subsubsection*.23} +\contentsline {subsubsection}{4.1.3 GFF format}{13}{subsubsection*.24} +\contentsline {subsubsection}{4.1.3 GFF format}{14}{subsubsection*.25} +\contentsline {subsubsection}{4.1.5 SAM/BAM format}{15}{subsubsection*.26} +\contentsline {subsubsection}{4.1.6 VCF format}{15}{subsubsection*.27} +\contentsline {section}{\numberline {2.5}The BEDTools suite}{15}{section.2.5} +\contentsline {subsection}{\numberline {2.5.1}Table of contents}{15}{subsection.2.5.1} +\contentsline {subsubsection}{5.1 intersectBed}{15}{subsubsection*.28} +\contentsline {paragraph}{5.1.1 Usage and option summary}{15}{paragraph*.29} +\contentsline {paragraph}{5.1.2 Default behavior}{16}{paragraph*.30} +\contentsline {paragraph}{5.1.3 (-wa)Reporting the original A feature}{17}{paragraph*.31} +\contentsline {paragraph}{5.1.4 (-wb)Reporting the original B feature}{17}{paragraph*.32} +\contentsline {paragraph}{5.1.5 (-u)Reporting the presence of \emph {at least one} overlapping feature}{18}{paragraph*.33} +\contentsline {paragraph}{5.1.6 (-c)Reporting the number of overlapping features}{18}{paragraph*.34} +\contentsline {paragraph}{5.1.6 (-c)Reporting the number of overlapping features}{18}{paragraph*.35} +\contentsline {paragraph}{5.1.7 (-v)Reporting the absence of any overlapping features}{19}{paragraph*.36} +\contentsline {paragraph}{5.1.8 (-f)Requiring a minimal overlap fraction}{19}{paragraph*.37} +\contentsline {paragraph}{5.1.9 (-r, combined with -f)Requiring reciprocal minimal overlap fraction}{19}{paragraph*.38} +\contentsline {paragraph}{5.1.10 (-s)Enforcing ``strandedness''}{20}{paragraph*.39} +\contentsline {paragraph}{5.1.11 (-abam)Default behavior when using BAM input}{20}{paragraph*.40} +\contentsline {paragraph}{5.1.12 (-bed)Output BED format when using BAM input}{20}{paragraph*.41} +\contentsline {paragraph}{5.1.13 (-split)Reporting overlaps with spliced alignments or blocked BED features}{21}{paragraph*.42} +\contentsline {subsubsection}{5.2 pairToBed}{22}{subsubsection*.43} +\contentsline {paragraph}{5.2.1 Usage and option summary}{22}{paragraph*.44} +\contentsline {paragraph}{5.2.2 Default behavior}{24}{paragraph*.45} +\contentsline {paragraph}{5.2.3 (-type)Optional overlap requirements}{24}{paragraph*.46} +\contentsline {paragraph}{5.2.4 (-f)Requiring a minimum overlap fraction}{27}{paragraph*.47} +\contentsline {paragraph}{5.2.5 (-s)Enforcing ``strandedness''}{27}{paragraph*.48} +\contentsline {paragraph}{5.2.6 (-abam)Default is to write BAM output when using BAM input}{28}{paragraph*.49} +\contentsline {paragraph}{5.2.7 (-bedpe)Output BEDPE format when using BAM input}{28}{paragraph*.50} +\contentsline {subsubsection}{5.3 pairToPair}{29}{subsubsection*.51} +\contentsline {paragraph}{5.3.1 Usage and option summary}{29}{paragraph*.52} +\contentsline {paragraph}{5.3.2 Default behavior}{29}{paragraph*.53} +\contentsline {paragraph}{5.3.3 (-type neither)Optional overlap requirements}{30}{paragraph*.54} +\contentsline {subsubsection}{5.4 bamToBed}{30}{subsubsection*.55} +\contentsline {paragraph}{5.4.1 Usage and option summary}{30}{paragraph*.56} +\contentsline {paragraph}{5.4.2 (-split)Creating BED12 features from ``spliced'' BAM entries.}{32}{paragraph*.57} +\contentsline {subsubsection}{5.5 windowBed}{32}{subsubsection*.58} +\contentsline {paragraph}{5.5.1 Usage and option summary}{32}{paragraph*.59} +\contentsline {paragraph}{5.5.2 Default behavior}{33}{paragraph*.60} +\contentsline {paragraph}{5.5.3 (-w)Defining a custom window size}{33}{paragraph*.61} +\contentsline {paragraph}{5.5.4 (-l and -r)Defining assymteric windows}{34}{paragraph*.62} +\contentsline {paragraph}{5.5.5 (-sw)Defining assymteric windows based on strand}{34}{paragraph*.63} +\contentsline {paragraph}{5.5.6 (-sm)Enforcing ``strandedness''}{35}{paragraph*.64} +\contentsline {paragraph}{5.5.7 (-u)Reporting the presence of at least one overlapping feature}{35}{paragraph*.65} +\contentsline {paragraph}{5.5.8 (-c)Reporting the number of overlapping features}{35}{paragraph*.66} +\contentsline {paragraph}{5.5.9 (-v)Reporting the absence of any overlapping features}{35}{paragraph*.67} +\contentsline {subsubsection}{5.6 closestBed}{35}{subsubsection*.68} +\contentsline {paragraph}{5.6.1 Usage and option summary}{35}{paragraph*.69} +\contentsline {paragraph}{5.6.2 Default behavior}{36}{paragraph*.70} +\contentsline {paragraph}{5.6.3 (-s)Enforcing ``strandedness''}{36}{paragraph*.71} +\contentsline {paragraph}{5.6.4 (-t)Controlling how ties for ``closest'' are broken}{37}{paragraph*.72} +\contentsline {paragraph}{5.6.5 (-d)Reporting the distance to the closest feature in base pairs}{37}{paragraph*.73} +\contentsline {subsubsection}{5.7 subtractBed}{37}{subsubsection*.74} +\contentsline {paragraph}{5.7.1 Usage and option summary}{38}{paragraph*.75} +\contentsline {paragraph}{5.7.2 Default behavior}{38}{paragraph*.76} +\contentsline {paragraph}{5.7.3 (-f)Requiring a minimal overlap fraction before subtracting}{38}{paragraph*.77} +\contentsline {paragraph}{5.7.4 (-s)Enforcing ``strandedness''}{39}{paragraph*.78} +\contentsline {subsubsection}{5.8 mergeBed}{39}{subsubsection*.79} +\contentsline {paragraph}{5.8.1 Usage and option summary}{39}{paragraph*.80} +\contentsline {paragraph}{5.8.2 Default behavior}{39}{paragraph*.81} +\contentsline {paragraph}{5.8.3 (-s)Enforcing ``strandedness''}{39}{paragraph*.82} +\contentsline {paragraph}{5.8.4 (-n)Reporting the number of features that were merged}{40}{paragraph*.83} +\contentsline {paragraph}{5.8.5 (-d)Controlling how close two features must be in order to merge}{40}{paragraph*.84} +\contentsline {paragraph}{5.8.6 (-nms)Reporting the names of the features that were merged}{40}{paragraph*.85} +\contentsline {subsubsection}{5.9 coverageBed}{41}{subsubsection*.86} +\contentsline {paragraph}{5.9.1 Usage and option summary}{41}{paragraph*.87} +\contentsline {paragraph}{5.9.2 Default behavior}{41}{paragraph*.88} +\contentsline {paragraph}{5.9.4 (-s)Calculating coverage by strand}{42}{paragraph*.89} +\contentsline {paragraph}{5.9.5 (-hist)Creating a histogram of coverage for each feature in the B file}{43}{paragraph*.90} +\contentsline {paragraph}{5.9.6 (-hist)Reporting the per-base of coverage for each feature in the B file}{43}{paragraph*.91} +\contentsline {paragraph}{5.9.7 (-split)Reporting coverage with spliced alignments or blocked BED features}{44}{paragraph*.92} +\contentsline {subsubsection}{5.10 genomeCoverageBed}{44}{subsubsection*.93} +\contentsline {paragraph}{5.10.1 Usage and option summary}{44}{paragraph*.94} +\contentsline {paragraph}{5.10.2 Default behavior}{45}{paragraph*.95} +\contentsline {paragraph}{5.10.3 (-max)Controlling the histogram's maximum depth}{46}{paragraph*.96} +\contentsline {paragraph}{5.10.4 (-d)Reporting ``per-base'' genome coverage}{46}{paragraph*.97} +\contentsline {paragraph}{5.1.13 (-split)Reporting coverage with spliced alignments or blocked BED features}{46}{paragraph*.98} +\contentsline {subsubsection}{5.11 fastaFromBed}{46}{subsubsection*.99} +\contentsline {paragraph}{5.11.1 Usage and option summary}{47}{paragraph*.100} +\contentsline {paragraph}{5.11.2 Default behavior}{47}{paragraph*.101} +\contentsline {paragraph}{5.11.3 Using the BED ``name'' column as a FASTA header.}{47}{paragraph*.102} +\contentsline {paragraph}{5.11.4 Creating a tab-delimited output file in lieu of FASTA output.}{48}{paragraph*.103} +\contentsline {paragraph}{5.11.5 (-s)Forcing the extracted sequence to reflect the requested strand}{48}{paragraph*.104} +\contentsline {subsubsection}{5.12 maskFastaFromBed}{48}{subsubsection*.105} +\contentsline {paragraph}{5.12.1 Usage and option summary}{48}{paragraph*.106} +\contentsline {paragraph}{5.12.2 Default behavior}{49}{paragraph*.107} +\contentsline {paragraph}{5.12.3 Soft-masking the FASTA file.}{49}{paragraph*.108} +\contentsline {subsubsection}{5.13 shuffleBed}{49}{subsubsection*.109} +\contentsline {paragraph}{5.13.1 Usage and option summary}{49}{paragraph*.110} +\contentsline {paragraph}{5.13.2 Default behavior}{50}{paragraph*.111} +\contentsline {paragraph}{5.13.3 (-chrom)Requiring that features be shuffled on the same chromosome}{50}{paragraph*.112} +\contentsline {paragraph}{5.13.4 Excluding certain genome regions from shuffleBed}{51}{paragraph*.113} +\contentsline {paragraph}{5.13.5 Defining a ``seed'' for the random replacement.}{51}{paragraph*.114} +\contentsline {subsubsection}{5.14 slopBed}{52}{subsubsection*.115} +\contentsline {paragraph}{5.14.1 Usage and option summary}{52}{paragraph*.116} +\contentsline {paragraph}{5.14.2 Default behavior}{52}{paragraph*.117} +\contentsline {paragraph}{5.14.3 Resizing features according to strand}{53}{paragraph*.118} +\contentsline {subsubsection}{5.15 sortBed}{53}{subsubsection*.119} +\contentsline {paragraph}{5.15.1 Usage and option summary}{53}{paragraph*.120} +\contentsline {paragraph}{5.15.2 Default behavior}{54}{paragraph*.121} +\contentsline {paragraph}{5.15.3 Optional sorting behavior}{54}{paragraph*.122} +\contentsline {subsubsection}{5.16 linksBed}{54}{subsubsection*.123} +\contentsline {paragraph}{5.16.1 Usage and option summary}{54}{paragraph*.124} +\contentsline {paragraph}{5.16.2 Default behavior}{55}{paragraph*.125} +\contentsline {paragraph}{5.16.3 Creating HTML links to a local UCSC Browser installation}{55}{paragraph*.126} +\contentsline {subsubsection}{5.17 complementBed}{55}{subsubsection*.127} +\contentsline {paragraph}{5.17.1 Usage and option summary}{56}{paragraph*.128} +\contentsline {paragraph}{5.17.2 Default behavior}{56}{paragraph*.129} +\contentsline {subsubsection}{5.18 bedToBam}{56}{subsubsection*.130} +\contentsline {paragraph}{5.18.1 Usage and option summary}{56}{paragraph*.131} +\contentsline {paragraph}{5.18.2 Default behavior}{57}{paragraph*.132} +\contentsline {paragraph}{5.18.3 Creating ``spliced'' BAM entries from ``blocked'' BED features}{57}{paragraph*.133} +\contentsline {subsubsection}{5.19 overlap}{57}{subsubsection*.134} +\contentsline {paragraph}{5.19.1 Usage and option summary}{57}{paragraph*.135} +\contentsline {paragraph}{5.19.2 Default behavior}{58}{paragraph*.136} +\contentsline {subsubsection}{5.20 bedToIgv}{58}{subsubsection*.137} +\contentsline {paragraph}{5.20.1 Usage and option summary}{58}{paragraph*.138} +\contentsline {paragraph}{5.20.2 Default behavior}{59}{paragraph*.139} +\contentsline {paragraph}{5.20.3 Using a bedToIgv batch script within IGV.}{59}{paragraph*.140} +\contentsline {subsubsection}{5.21 bed12ToBed6}{59}{subsubsection*.141} +\contentsline {paragraph}{5.21.1 Usage and option summary}{59}{paragraph*.142} +\contentsline {paragraph}{5.21.2 Default behavior}{59}{paragraph*.143} +\contentsline {subsubsection}{5.22 groupBy}{60}{subsubsection*.144} +\contentsline {paragraph}{5.22.1 Usage and option summary}{60}{paragraph*.145} +\contentsline {paragraph}{5.22.2 Default behavior.}{61}{paragraph*.146} +\contentsline {paragraph}{5.22.3 Computing the min and max.}{62}{paragraph*.147} +\contentsline {paragraph}{5.22.4 Computing the mean and median.}{62}{paragraph*.148} +\contentsline {paragraph}{5.22.5 Computing the mode and ``antimode''.}{63}{paragraph*.149} +\contentsline {paragraph}{5.22.6 Computing the count of lines for a given group.}{63}{paragraph*.150} +\contentsline {paragraph}{5.22.7 Collapsing: listing all of the values in the opCol for a given group.}{63}{paragraph*.151} +\contentsline {paragraph}{5.22.8 Computing frequencies: freqasc and freqdesc.}{63}{paragraph*.152} +\contentsline {subsubsection}{5.23 unionBedGraphs}{64}{subsubsection*.153} +\contentsline {paragraph}{5.23.1 Usage and option summary}{64}{paragraph*.154} +\contentsline {paragraph}{5.23.2 Default behavior}{64}{paragraph*.155} +\contentsline {paragraph}{5.23.3 Add a header line to the output}{65}{paragraph*.156} +\contentsline {paragraph}{5.23.4 Add a header line with custom file names to the output}{65}{paragraph*.157} +\contentsline {paragraph}{5.23.5 Include regions that have zero coverage in all BEDGRAPH files.}{65}{paragraph*.158} +\contentsline {paragraph}{5.23.6 Use a custom value for missing values.}{65}{paragraph*.159} +\contentsline {paragraph}{5.23.7 Use BEDGRAPH files with non-numeric values.}{66}{paragraph*.160} +\contentsline {subsubsection}{5.24 annotateBed}{66}{subsubsection*.161} +\contentsline {paragraph}{5.24.1 Usage and option summary}{66}{paragraph*.162} +\contentsline {paragraph}{5.24.2 Default behavior - annotate one file with coverage from others.}{67}{paragraph*.163} +\contentsline {paragraph}{5.24.3 Report the count of hits from the annotation files}{67}{paragraph*.164} +\contentsline {paragraph}{5.24.4 Report both the count of hits and the fraction covered from the annotation files}{67}{paragraph*.165} +\contentsline {paragraph}{5.24.5 Restrict the reporting to overlaps on the same strand.}{68}{paragraph*.166} +\contentsline {section}{\numberline {2.6}Example usage}{68}{section.2.6} +\contentsline {subsection}{\numberline {2.6.1}6.1 intersectBed}{68}{subsection.2.6.1} +\contentsline {subsection}{\numberline {2.6.2}6.2 pairToBed}{69}{subsection.2.6.2} +\contentsline {subsection}{\numberline {2.6.3}6.3 pairToPair}{69}{subsection.2.6.3} +\contentsline {subsection}{\numberline {2.6.4}6.4 bamToBed}{69}{subsection.2.6.4} +\contentsline {subsection}{\numberline {2.6.5}6.5 windowBed}{70}{subsection.2.6.5} +\contentsline {subsection}{\numberline {2.6.6}6.6 closestBed}{70}{subsection.2.6.6} +\contentsline {subsection}{\numberline {2.6.7}6.7 subtractBed}{70}{subsection.2.6.7} +\contentsline {subsection}{\numberline {2.6.8}6.8 mergeBed}{70}{subsection.2.6.8} +\contentsline {subsection}{\numberline {2.6.9}6.9 coverageBed}{71}{subsection.2.6.9} +\contentsline {subsection}{\numberline {2.6.10}6.10 complementBed}{71}{subsection.2.6.10} +\contentsline {subsection}{\numberline {2.6.11}6.11 shuffleBed}{71}{subsection.2.6.11} +\contentsline {section}{\numberline {2.7}Advanced usage}{71}{section.2.7} +\contentsline {subsection}{\numberline {2.7.1}7.1 Mask all regions in a genome except for targeted capture regions.}{71}{subsection.2.7.1} +\contentsline {subsection}{\numberline {2.7.2}7.2 Screening for novel SNPs.}{72}{subsection.2.7.2} +\contentsline {subsection}{\numberline {2.7.3}7.4 Computing the coverage of BAM alignments on exons.}{72}{subsection.2.7.3} +\contentsline {subsection}{\numberline {2.7.4}7.5 Computing coverage separately for each strand.}{72}{subsection.2.7.4} +\contentsline {subsection}{\numberline {2.7.5}7.6 Find structural variant calls that are private to one sample.}{72}{subsection.2.7.5} +\contentsline {subsection}{\numberline {2.7.6}7.7 Exclude SV deletions that appear to be ALU insertions in the reference genome.}{73}{subsection.2.7.6} +\contentsline {chapter}{\numberline {3}Mailing list}{75}{chapter.3} diff --git a/docs/_build/latex/fncychap.sty b/docs/_build/latex/fncychap.sty new file mode 100644 index 00000000..9a56c04e --- /dev/null +++ b/docs/_build/latex/fncychap.sty @@ -0,0 +1,683 @@ +%%% Copyright Ulf A. Lindgren +%%% +%%% Note Premission is granted to modify this file under +%%% the condition that it is saved using another +%%% file and package name. +%%% +%%% Revision 1.1 (1997) +%%% +%%% Jan. 8th Modified package name base date option +%%% Jan. 22th Modified FmN and FmTi for error in book.cls +%%% \MakeUppercase{#}->{\MakeUppercase#} +%%% Apr. 6th Modified Lenny option to prevent undesired +%%% skip of line. +%%% Nov. 8th Fixed \@chapapp for AMS +%%% +%%% Revision 1.2 (1998) +%%% +%%% Feb. 11th Fixed appendix problem related to Bjarne +%%% Aug. 11th Fixed problem related to 11pt and 12pt +%%% suggested by Tomas Lundberg. THANKS! +%%% +%%% Revision 1.3 (2004) +%%% Sep. 20th problem with frontmatter, mainmatter and +%%% backmatter, pointed out by Lapo Mori +%%% +%%% Revision 1.31 (2004) +%%% Sep. 21th problem with the Rejne definition streched text +%%% caused ugly gaps in the vrule aligned with the title +%%% text. Kindly pointed out to me by Hendri Adriaens +%%% +%%% Revision 1.32 (2005) +%%% Jun. 23th compatibility problem with the KOMA class 'scrbook.cls' +%%% a remedy is a redefinition of '\@schapter' in +%%% line with that used in KOMA. The problem was pointed +%%% out to me by Mikkel Holm Olsen +%%% +%%% Revision 1.33 (2005) +%%% Aug. 9th misspelled ``TWELV'' corrected, the error was pointed +%%% out to me by George Pearson +%%% +%%% Revision 1.34 (2007) +%%% Added an alternative to Lenny provided by Peter +%%% Osborne (2005-11-28) +%%% Corrected front, main and back matter, based on input +%%% from Bas van Gils (2006-04-24) +%%% Jul. 30th Added Bjornstrup option provided by Jean-Marc +%%% Francois (2007-01-05). +%%% Reverted to \MakeUppercase{#} see rev 1.1, solved +%%% problem with MakeUppercase and MakeLowercase pointed +%%% out by Marco Feuerstein (2007-06-06) + + +%%% Last modified Jul. 2007 + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{fncychap} + [2007/07/30 v1.34 + LaTeX package (Revised chapters)] + +%%%% For conditional inclusion of color +\newif\ifusecolor +\usecolorfalse + + + +%%%% DEFINITION OF Chapapp variables +\newcommand{\CNV}{\huge\bfseries} +\newcommand{\ChNameVar}[1]{\renewcommand{\CNV}{#1}} + + +%%%% DEFINITION OF TheChapter variables +\newcommand{\CNoV}{\huge\bfseries} +\newcommand{\ChNumVar}[1]{\renewcommand{\CNoV}{#1}} + +\newif\ifUCN +\UCNfalse +\newif\ifLCN +\LCNfalse +\def\ChNameLowerCase{\LCNtrue\UCNfalse} +\def\ChNameUpperCase{\UCNtrue\LCNfalse} +\def\ChNameAsIs{\UCNfalse\LCNfalse} + +%%%%% Fix for AMSBook 971008 + +\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{} + + +%%%%% Fix for Bjarne and appendix 980211 + +\newif\ifinapp +\inappfalse +\renewcommand\appendix{\par + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \inapptrue% + \renewcommand\@chapapp{\appendixname}% + \renewcommand\thechapter{\@Alph\c@chapter}} + +%%%%% Fix for frontmatter, mainmatter, and backmatter 040920 + +\@ifundefined{@mainmatter}{\newif\if@mainmatter \@mainmattertrue}{} + +%%%%% + + + +\newcommand{\FmN}[1]{% +\ifUCN + {\MakeUppercase{#1}}\LCNfalse +\else + \ifLCN + {\MakeLowercase{#1}}\UCNfalse + \else #1 + \fi +\fi} + + +%%%% DEFINITION OF Title variables +\newcommand{\CTV}{\Huge\bfseries} +\newcommand{\ChTitleVar}[1]{\renewcommand{\CTV}{#1}} + +%%%% DEFINITION OF the basic rule width +\newlength{\RW} +\setlength{\RW}{1pt} +\newcommand{\ChRuleWidth}[1]{\setlength{\RW}{#1}} + +\newif\ifUCT +\UCTfalse +\newif\ifLCT +\LCTfalse +\def\ChTitleLowerCase{\LCTtrue\UCTfalse} +\def\ChTitleUpperCase{\UCTtrue\LCTfalse} +\def\ChTitleAsIs{\UCTfalse\LCTfalse} +\newcommand{\FmTi}[1]{% +\ifUCT + {\MakeUppercase{#1}}\LCTfalse +\else + \ifLCT + {\MakeLowercase{#1}}\UCTfalse + \else {#1} + \fi +\fi} + + + +\newlength{\mylen} +\newlength{\myhi} +\newlength{\px} +\newlength{\py} +\newlength{\pyy} +\newlength{\pxx} + + +\def\mghrulefill#1{\leavevmode\leaders\hrule\@height #1\hfill\kern\z@} + +\newcommand{\DOCH}{% + \CNV\FmN{\@chapapp}\space \CNoV\thechapter + \par\nobreak + \vskip 20\p@ + } +\newcommand{\DOTI}[1]{% + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@ + } +\newcommand{\DOTIS}[1]{% + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@ + } + +%%%%%% SONNY DEF + +\DeclareOption{Sonny}{% + \ChNameVar{\Large\sf} + \ChNumVar{\Huge} + \ChTitleVar{\Large\sf} + \ChRuleWidth{0.5pt} + \ChNameUpperCase + \renewcommand{\DOCH}{% + \raggedleft + \CNV\FmN{\@chapapp}\space \CNoV\thechapter + \par\nobreak + \vskip 40\p@} + \renewcommand{\DOTI}[1]{% + \CTV\raggedleft\mghrulefill{\RW}\par\nobreak + \vskip 5\p@ + \CTV\FmTi{#1}\par\nobreak + \mghrulefill{\RW}\par\nobreak + \vskip 40\p@} + \renewcommand{\DOTIS}[1]{% + \CTV\raggedleft\mghrulefill{\RW}\par\nobreak + \vskip 5\p@ + \CTV\FmTi{#1}\par\nobreak + \mghrulefill{\RW}\par\nobreak + \vskip 40\p@} +} + +%%%%%% LENNY DEF + +\DeclareOption{Lenny}{% + + \ChNameVar{\fontsize{14}{16}\usefont{OT1}{phv}{m}{n}\selectfont} + \ChNumVar{\fontsize{60}{62}\usefont{OT1}{ptm}{m}{n}\selectfont} + \ChTitleVar{\Huge\bfseries\rm} + \ChRuleWidth{1pt} + \renewcommand{\DOCH}{% + \settowidth{\px}{\CNV\FmN{\@chapapp}} + \addtolength{\px}{2pt} + \settoheight{\py}{\CNV\FmN{\@chapapp}} + \addtolength{\py}{1pt} + + \settowidth{\mylen}{\CNV\FmN{\@chapapp}\space\CNoV\thechapter} + \addtolength{\mylen}{1pt} + \settowidth{\pxx}{\CNoV\thechapter} + \addtolength{\pxx}{-1pt} + + \settoheight{\pyy}{\CNoV\thechapter} + \addtolength{\pyy}{-2pt} + \setlength{\myhi}{\pyy} + \addtolength{\myhi}{-1\py} + \par + \parbox[b]{\textwidth}{% + \rule[\py]{\RW}{\myhi}% + \hskip -\RW% + \rule[\pyy]{\px}{\RW}% + \hskip -\px% + \raggedright% + \CNV\FmN{\@chapapp}\space\CNoV\thechapter% + \hskip1pt% + \mghrulefill{\RW}% + \rule{\RW}{\pyy}\par\nobreak% + \vskip -\baselineskip% + \vskip -\pyy% + \hskip \mylen% + \mghrulefill{\RW}\par\nobreak% + \vskip \pyy}% + \vskip 20\p@} + + + \renewcommand{\DOTI}[1]{% + \raggedright + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + + \renewcommand{\DOTIS}[1]{% + \raggedright + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + } + +%%%%%% Peter Osbornes' version of LENNY DEF + +\DeclareOption{PetersLenny}{% + +% five new lengths +\newlength{\bl} % bottom left : orig \space +\setlength{\bl}{6pt} +\newcommand{\BL}[1]{\setlength{\bl}{#1}} +\newlength{\br} % bottom right : orig 1pt +\setlength{\br}{1pt} +\newcommand{\BR}[1]{\setlength{\br}{#1}} +\newlength{\tl} % top left : orig 2pt +\setlength{\tl}{2pt} +\newcommand{\TL}[1]{\setlength{\tl}{#1}} +\newlength{\trr} % top right :orig 1pt +\setlength{\trr}{1pt} +\newcommand{\TR}[1]{\setlength{\trr}{#1}} +\newlength{\blrule} % top right :orig 1pt +\setlength{\trr}{0pt} +\newcommand{\BLrule}[1]{\setlength{\blrule}{#1}} + + + \ChNameVar{\fontsize{14}{16}\usefont{OT1}{phv}{m}{n}\selectfont} + \ChNumVar{\fontsize{60}{62}\usefont{OT1}{ptm}{m}{n}\selectfont} + \ChTitleVar{\Huge\bfseries\rm} + \ChRuleWidth{1pt} +\renewcommand{\DOCH}{% + + +%%%%%%% tweaks for 1--9 and A--Z +\ifcase\c@chapter\relax% +\or\BL{-3pt}\TL{-4pt}\BR{0pt}\TR{-6pt}%1 +\or\BL{0pt}\TL{-4pt}\BR{2pt}\TR{-4pt}%2 +\or\BL{0pt}\TL{-4pt}\BR{2pt}\TR{-4pt}%3 +\or\BL{0pt}\TL{5pt}\BR{2pt}\TR{-4pt}%4 +\or\BL{0pt}\TL{3pt}\BR{2pt}\TR{-4pt}%5 +\or\BL{-1pt}\TL{0pt}\BR{2pt}\TR{-2pt}%6 +\or\BL{0pt}\TL{-3pt}\BR{2pt}\TR{-2pt}%7 +\or\BL{0pt}\TL{-3pt}\BR{2pt}\TR{-2pt}%8 +\or\BL{0pt}\TL{-3pt}\BR{-4pt}\TR{-2pt}%9 +\or\BL{-3pt}\TL{-3pt}\BR{2pt}\TR{-7pt}%10 +\or\BL{-6pt}\TL{-6pt}\BR{0pt}\TR{-9pt}%11 +\or\BL{-6pt}\TL{-6pt}\BR{2pt}\TR{-7pt}%12 +\or\BL{-5pt}\TL{-5pt}\BR{0pt}\TR{-9pt}%13 +\or\BL{-6pt}\TL{-6pt}\BR{0pt}\TR{-9pt}%14 +\or\BL{-3pt}\TL{-3pt}\BR{3pt}\TR{-6pt}%15 +\or\BL{-3pt}\TL{-3pt}\BR{3pt}\TR{-6pt}%16 +\or\BL{-5pt}\TL{-3pt}\BR{-8pt}\TR{-6pt}%17 +\or\BL{-5pt}\TL{-5pt}\BR{0pt}\TR{-9pt}%18 +\or\BL{-3pt}\TL{-3pt}\BR{-6pt}\TR{-9pt}%19 +\or\BL{0pt}\TL{0pt}\BR{0pt}\TR{-5pt}%20 +\fi + +\ifinapp\ifcase\c@chapter\relax% +\or\BL{0pt}\TL{14pt}\BR{5pt}\TR{-19pt}%A +\or\BL{0pt}\TL{-5pt}\BR{-3pt}\TR{-8pt}%B +\or\BL{-3pt}\TL{-2pt}\BR{1pt}\TR{-6pt}\BLrule{0pt}%C +\or\BL{0pt}\TL{-5pt}\BR{-3pt}\TR{-8pt}\BLrule{0pt}%D +\or\BL{0pt}\TL{-5pt}\BR{2pt}\TR{-3pt}%E +\or\BL{0pt}\TL{-5pt}\BR{-10pt}\TR{-1pt}%F +\or\BL{-3pt}\TL{0pt}\BR{0pt}\TR{-7pt}%G +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%H +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%I +\or\BL{2pt}\TL{0pt}\BR{-3pt}\TR{1pt}%J +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%K +\or\BL{0pt}\TL{-5pt}\BR{2pt}\TR{-19pt}%L +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%M +\or\BL{0pt}\TL{-5pt}\BR{-2pt}\TR{-1pt}%N +\or\BL{-3pt}\TL{-2pt}\BR{-3pt}\TR{-11pt}%O +\or\BL{0pt}\TL{-5pt}\BR{-9pt}\TR{-3pt}%P +\or\BL{-3pt}\TL{-2pt}\BR{-3pt}\TR{-11pt}%Q +\or\BL{0pt}\TL{-5pt}\BR{4pt}\TR{-8pt}%R +\or\BL{-2pt}\TL{-2pt}\BR{-2pt}\TR{-7pt}%S +\or\BL{-3pt}\TL{0pt}\BR{-5pt}\TR{4pt}\BLrule{8pt}%T +\or\BL{-7pt}\TL{-11pt}\BR{-5pt}\TR{-7pt}\BLrule{0pt}%U +\or\BL{-14pt}\TL{-5pt}\BR{-14pt}\TR{-1pt}\BLrule{14pt}%V +\or\BL{-10pt}\TL{-9pt}\BR{-13pt}\TR{-3pt}\BLrule{7pt}%W +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}\BLrule{0pt}%X +\or\BL{-6pt}\TL{-4pt}\BR{-7pt}\TR{1pt}\BLrule{7pt}%Y +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}\BLrule{0pt}%Z +\fi\fi +%%%%%%% + \settowidth{\px}{\CNV\FmN{\@chapapp}} + \addtolength{\px}{\tl} %MOD change 2pt to \tl + \settoheight{\py}{\CNV\FmN{\@chapapp}} + \addtolength{\py}{1pt} + + \settowidth{\mylen}{\CNV\FmN{\@chapapp}\space\CNoV\thechapter} + \addtolength{\mylen}{\trr}% MOD change 1pt to \tr + \settowidth{\pxx}{\CNoV\thechapter} + \addtolength{\pxx}{-1pt} + + \settoheight{\pyy}{\CNoV\thechapter} + \addtolength{\pyy}{-2pt} + \setlength{\myhi}{\pyy} + \addtolength{\myhi}{-1\py} + \par + \parbox[b]{\textwidth}{% + \rule[\py]{\RW}{\myhi}% + \hskip -\RW% + \rule[\pyy]{\px}{\RW}% + \hskip -\px% + \raggedright% + \CNV\FmN{\@chapapp}\rule{\blrule}{\RW}\hskip\bl\CNoV\thechapter%MOD +% \CNV\FmN{\@chapapp}\space\CNoV\thechapter %ORIGINAL + \hskip\br% %MOD 1pt to \br + \mghrulefill{\RW}% + \rule{\RW}{\pyy}\par\nobreak% + \vskip -\baselineskip% + \vskip -\pyy% + \hskip \mylen% + \mghrulefill{\RW}\par\nobreak% + \vskip \pyy}% + \vskip 20\p@} + + + \renewcommand{\DOTI}[1]{% + \raggedright + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + + \renewcommand{\DOTIS}[1]{% + \raggedright + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + } + + +% + + +%%%%%% BJORNSTRUP DEF + +\DeclareOption{Bjornstrup}{% + \usecolortrue + % pzc (Zapf Chancelery) is nice. ppl (Palatino) is cool too. + \ChNumVar{\fontsize{76}{80}\usefont{OT1}{pzc}{m}{n}\selectfont} + \ChTitleVar{\raggedleft\Large\sffamily\bfseries} + + \setlength{\myhi}{10pt} % Space between grey box border and text + \setlength{\mylen}{\textwidth} + \addtolength{\mylen}{-2\myhi} + \renewcommand{\DOCH}{% + \settowidth{\py}{\CNoV\thechapter} + \addtolength{\py}{-10pt} % Amount of space by which the +% % number is shifted right + \fboxsep=0pt% + \colorbox[gray]{.85}{\rule{0pt}{40pt}\parbox[b]{\textwidth}{\hfill}}% + \kern-\py\raise20pt% + \hbox{\color[gray]{.5}\CNoV\thechapter}\\% + } + + \renewcommand{\DOTI}[1]{% + \nointerlineskip\raggedright% + \fboxsep=\myhi% + \vskip-1ex% + \colorbox[gray]{.85}{\parbox[t]{\mylen}{\CTV\FmTi{#1}}}\par\nobreak% + \vskip 40\p@% + } + + \renewcommand{\DOTIS}[1]{% + \fboxsep=0pt + \colorbox[gray]{.85}{\rule{0pt}{40pt}\parbox[b]{\textwidth}{\hfill}}\\% + \nointerlineskip\raggedright% + \fboxsep=\myhi% + \colorbox[gray]{.85}{\parbox[t]{\mylen}{\CTV\FmTi{#1}}}\par\nobreak% + \vskip 40\p@% + } +} + + +%%%%%%% GLENN DEF + + +\DeclareOption{Glenn}{% + \ChNameVar{\bfseries\Large\sf} + \ChNumVar{\Huge} + \ChTitleVar{\bfseries\Large\rm} + \ChRuleWidth{1pt} + \ChNameUpperCase + \ChTitleUpperCase + \renewcommand{\DOCH}{% + \settoheight{\myhi}{\CTV\FmTi{Test}} + \setlength{\py}{\baselineskip} + \addtolength{\py}{\RW} + \addtolength{\py}{\myhi} + \setlength{\pyy}{\py} + \addtolength{\pyy}{-1\RW} + + \raggedright + \CNV\FmN{\@chapapp}\space\CNoV\thechapter + \hskip 3pt\mghrulefill{\RW}\rule[-1\pyy]{2\RW}{\py}\par\nobreak} + + \renewcommand{\DOTI}[1]{% + \addtolength{\pyy}{-4pt} + \settoheight{\myhi}{\CTV\FmTi{#1}} + \addtolength{\myhi}{\py} + \addtolength{\myhi}{-1\RW} + \vskip -1\pyy + \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt + \raggedleft\CTV\FmTi{#1}\par\nobreak + \vskip 80\p@} + +\newlength{\backskip} + \renewcommand{\DOTIS}[1]{% +% \setlength{\py}{10pt} +% \setlength{\pyy}{\py} +% \addtolength{\pyy}{\RW} +% \setlength{\myhi}{\baselineskip} +% \addtolength{\myhi}{\pyy} +% \mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak +% \addtolength{}{} +%\vskip -1\baselineskip +% \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt +% \raggedleft\CTV\FmTi{#1}\par\nobreak +% \vskip 60\p@} +%% Fix suggested by Tomas Lundberg + \setlength{\py}{25pt} % eller vad man vill + \setlength{\pyy}{\py} + \setlength{\backskip}{\py} + \addtolength{\backskip}{2pt} + \addtolength{\pyy}{\RW} + \setlength{\myhi}{\baselineskip} + \addtolength{\myhi}{\pyy} + \mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak + \vskip -1\backskip + \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 3pt % + \raggedleft\CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + } + +%%%%%%% CONNY DEF + +\DeclareOption{Conny}{% + \ChNameUpperCase + \ChTitleUpperCase + \ChNameVar{\centering\Huge\rm\bfseries} + \ChNumVar{\Huge} + \ChTitleVar{\centering\Huge\rm} + \ChRuleWidth{2pt} + + \renewcommand{\DOCH}{% + \mghrulefill{3\RW}\par\nobreak + \vskip -0.5\baselineskip + \mghrulefill{\RW}\par\nobreak + \CNV\FmN{\@chapapp}\space \CNoV\thechapter + \par\nobreak + \vskip -0.5\baselineskip + } + \renewcommand{\DOTI}[1]{% + \mghrulefill{\RW}\par\nobreak + \CTV\FmTi{#1}\par\nobreak + \vskip 60\p@ + } + \renewcommand{\DOTIS}[1]{% + \mghrulefill{\RW}\par\nobreak + \CTV\FmTi{#1}\par\nobreak + \vskip 60\p@ + } + } + +%%%%%%% REJNE DEF + +\DeclareOption{Rejne}{% + + \ChNameUpperCase + \ChTitleUpperCase + \ChNameVar{\centering\Large\rm} + \ChNumVar{\Huge} + \ChTitleVar{\centering\Huge\rm} + \ChRuleWidth{1pt} + \renewcommand{\DOCH}{% + \settoheight{\py}{\CNoV\thechapter} + \parskip=0pt plus 1pt % Set parskip to default, just in case v1.31 + \addtolength{\py}{-1pt} + \CNV\FmN{\@chapapp}\par\nobreak + \vskip 20\p@ + \setlength{\myhi}{2\baselineskip} + \setlength{\px}{\myhi} + \addtolength{\px}{-1\RW} + \rule[-1\px]{\RW}{\myhi}\mghrulefill{\RW}\hskip + 10pt\raisebox{-0.5\py}{\CNoV\thechapter}\hskip 10pt\mghrulefill{\RW}\rule[-1\px]{\RW}{\myhi}\par\nobreak + \vskip -3\p@% Added -2pt vskip to correct for streched text v1.31 + } + \renewcommand{\DOTI}[1]{% + \setlength{\mylen}{\textwidth} + \parskip=0pt plus 1pt % Set parskip to default, just in case v1.31 + \addtolength{\mylen}{-2\RW} + {\vrule width\RW}\parbox{\mylen}{\CTV\FmTi{#1}}{\vrule width\RW}\par\nobreak% + \vskip -3pt\rule{\RW}{2\baselineskip}\mghrulefill{\RW}\rule{\RW}{2\baselineskip}% + \vskip 60\p@% Added -2pt in vskip to correct for streched text v1.31 + } + \renewcommand{\DOTIS}[1]{% + \setlength{\py}{\fboxrule} + \setlength{\fboxrule}{\RW} + \setlength{\mylen}{\textwidth} + \addtolength{\mylen}{-2\RW} + \fbox{\parbox{\mylen}{\vskip 2\baselineskip\CTV\FmTi{#1}\par\nobreak\vskip \baselineskip}} + \setlength{\fboxrule}{\py} + \vskip 60\p@ + } + } + + +%%%%%%% BJARNE DEF + +\DeclareOption{Bjarne}{% + \ChNameUpperCase + \ChTitleUpperCase + \ChNameVar{\raggedleft\normalsize\rm} + \ChNumVar{\raggedleft \bfseries\Large} + \ChTitleVar{\raggedleft \Large\rm} + \ChRuleWidth{1pt} + + +%% Note thechapter -> c@chapter fix appendix bug +%% Fixed misspelled 12 + + \newcounter{AlphaCnt} + \newcounter{AlphaDecCnt} + \newcommand{\AlphaNo}{% + \ifcase\number\theAlphaCnt + \ifnum\c@chapter=0 + ZERO\else{}\fi + \or ONE\or TWO\or THREE\or FOUR\or FIVE + \or SIX\or SEVEN\or EIGHT\or NINE\or TEN + \or ELEVEN\or TWELVE\or THIRTEEN\or FOURTEEN\or FIFTEEN + \or SIXTEEN\or SEVENTEEN\or EIGHTEEN\or NINETEEN\fi +} + + \newcommand{\AlphaDecNo}{% + \setcounter{AlphaDecCnt}{0} + \@whilenum\number\theAlphaCnt>0\do + {\addtocounter{AlphaCnt}{-10} + \addtocounter{AlphaDecCnt}{1}} + \ifnum\number\theAlphaCnt=0 + \else + \addtocounter{AlphaDecCnt}{-1} + \addtocounter{AlphaCnt}{10} + \fi + + + \ifcase\number\theAlphaDecCnt\or TEN\or TWENTY\or THIRTY\or + FORTY\or FIFTY\or SIXTY\or SEVENTY\or EIGHTY\or NINETY\fi + } + \newcommand{\TheAlphaChapter}{% + + \ifinapp + \thechapter + \else + \setcounter{AlphaCnt}{\c@chapter} + \ifnum\c@chapter<20 + \AlphaNo + \else + \AlphaDecNo\AlphaNo + \fi + \fi + } + \renewcommand{\DOCH}{% + \mghrulefill{\RW}\par\nobreak + \CNV\FmN{\@chapapp}\par\nobreak + \CNoV\TheAlphaChapter\par\nobreak + \vskip -1\baselineskip\vskip 5pt\mghrulefill{\RW}\par\nobreak + \vskip 20\p@ + } + \renewcommand{\DOTI}[1]{% + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@ + } + \renewcommand{\DOTIS}[1]{% + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@ + } +} + +\DeclareOption*{% + \PackageWarning{fancychapter}{unknown style option} + } + +\ProcessOptions* \relax + +\ifusecolor + \RequirePackage{color} +\fi +\def\@makechapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter%%%%% Fix for frontmatter, mainmatter, and backmatter 040920 + \DOCH + \fi + \fi + \interlinepenalty\@M + \if@mainmatter%%%%% Fix for frontmatter, mainmatter, and backmatter 060424 + \DOTI{#1}% + \else% + \DOTIS{#1}% + \fi + }} + + +%%% Begin: To avoid problem with scrbook.cls (fncychap version 1.32) + +%%OUT: +%\def\@schapter#1{\if@twocolumn +% \@topnewpage[\@makeschapterhead{#1}]% +% \else +% \@makeschapterhead{#1}% +% \@afterheading +% \fi} + +%%IN: +\def\@schapter#1{% +\if@twocolumn% + \@makeschapterhead{#1}% +\else% + \@makeschapterhead{#1}% + \@afterheading% +\fi} + +%%% End: To avoid problem with scrbook.cls (fncychap version 1.32) + +\def\@makeschapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedright + \normalfont + \interlinepenalty\@M + \DOTIS{#1} + \vskip 40\p@ + }} + +\endinput + + diff --git a/docs/_build/latex/python.ist b/docs/_build/latex/python.ist new file mode 100644 index 00000000..9ffa0f95 --- /dev/null +++ b/docs/_build/latex/python.ist @@ -0,0 +1,11 @@ +line_max 100 +headings_flag 1 +heading_prefix " \\bigletter " + +preamble "\\begin{theindex} +\\def\\bigletter#1{{\\Large\\sffamily#1}\\nopagebreak\\vspace{1mm}} + +" + +symhead_positive "{Symbols}" +numhead_positive "{Numbers}" diff --git a/docs/_build/latex/sphinx.sty b/docs/_build/latex/sphinx.sty new file mode 100644 index 00000000..84c1ca1e --- /dev/null +++ b/docs/_build/latex/sphinx.sty @@ -0,0 +1,481 @@ +% +% sphinx.sty +% +% Adapted from the old python.sty, mostly written by Fred Drake, +% by Georg Brandl. +% + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{sphinx}[2010/01/15 LaTeX package (Sphinx markup)] + +\RequirePackage{textcomp} +\RequirePackage{fancyhdr} +\RequirePackage{fancybox} +\RequirePackage{titlesec} +\RequirePackage{tabulary} +\RequirePackage{amsmath} % for \text +\RequirePackage{makeidx} +\RequirePackage{framed} +\RequirePackage{ifthen} +\RequirePackage{color} +% For highlighted code. +\RequirePackage{fancyvrb} +% For table captions. +\RequirePackage{threeparttable} +% Handle footnotes in tables. +\RequirePackage{footnote} +\makesavenoteenv{tabulary} +% For floating figures in the text. +\RequirePackage{wrapfig} +% Separate paragraphs by space by default. +\RequirePackage{parskip} + +% Redefine these colors to your liking in the preamble. +\definecolor{TitleColor}{rgb}{0.126,0.263,0.361} +\definecolor{InnerLinkColor}{rgb}{0.208,0.374,0.486} +\definecolor{OuterLinkColor}{rgb}{0.216,0.439,0.388} +% Redefine these colors to something not white if you want to have colored +% background and border for code examples. +\definecolor{VerbatimColor}{rgb}{1,1,1} +\definecolor{VerbatimBorderColor}{rgb}{1,1,1} + +% Uncomment these two lines to ignore the paper size and make the page +% size more like a typical published manual. +%\renewcommand{\paperheight}{9in} +%\renewcommand{\paperwidth}{8.5in} % typical squarish manual +%\renewcommand{\paperwidth}{7in} % O'Reilly ``Programmming Python'' + +% For graphicx, check if we are compiling under latex or pdflatex. +\ifx\pdftexversion\undefined + \usepackage{graphicx} +\else + \usepackage[pdftex]{graphicx} +\fi + +% for PDF output, use colors and maximal compression +\newif\ifsphinxpdfoutput\sphinxpdfoutputfalse +\ifx\pdfoutput\undefined\else\ifcase\pdfoutput + \let\py@NormalColor\relax + \let\py@TitleColor\relax +\else + \sphinxpdfoutputtrue + \input{pdfcolor} + \def\py@NormalColor{\color[rgb]{0.0,0.0,0.0}} + \def\py@TitleColor{\color{TitleColor}} + \pdfcompresslevel=9 +\fi\fi + +% XeLaTeX can do colors, too +\ifx\XeTeXrevision\undefined\else + \def\py@NormalColor{\color[rgb]{0.0,0.0,0.0}} + \def\py@TitleColor{\color{TitleColor}} +\fi + +% Increase printable page size (copied from fullpage.sty) +\topmargin 0pt +\advance \topmargin by -\headheight +\advance \topmargin by -\headsep + +% attempt to work a little better for A4 users +\textheight \paperheight +\advance\textheight by -2in + +\oddsidemargin 0pt +\evensidemargin 0pt +%\evensidemargin -.25in % for ``manual size'' documents +\marginparwidth 0.5in + +\textwidth \paperwidth +\advance\textwidth by -2in + + +% Style parameters and macros used by most documents here +\raggedbottom +\sloppy +\hbadness = 5000 % don't print trivial gripes + +\pagestyle{empty} % start this way; change for +\pagenumbering{roman} % ToC & chapters + +% Use this to set the font family for headers and other decor: +\newcommand{\py@HeaderFamily}{\sffamily\bfseries} + +% Redefine the 'normal' header/footer style when using "fancyhdr" package: +\@ifundefined{fancyhf}{}{ + % Use \pagestyle{normal} as the primary pagestyle for text. + \fancypagestyle{normal}{ + \fancyhf{} + \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}} + \fancyfoot[LO]{{\py@HeaderFamily\nouppercase{\rightmark}}} + \fancyfoot[RE]{{\py@HeaderFamily\nouppercase{\leftmark}}} + \fancyhead[LE,RO]{{\py@HeaderFamily \@title, \py@release}} + \renewcommand{\headrulewidth}{0.4pt} + \renewcommand{\footrulewidth}{0.4pt} + } + % Update the plain style so we get the page number & footer line, + % but not a chapter or section title. This is to keep the first + % page of a chapter and the blank page between chapters `clean.' + \fancypagestyle{plain}{ + \fancyhf{} + \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}} + \renewcommand{\headrulewidth}{0pt} + \renewcommand{\footrulewidth}{0.4pt} + } +} + +% Some custom font markup commands. +% +\newcommand{\strong}[1]{{\bf #1}} +\newcommand{\code}[1]{\texttt{#1}} +\newcommand{\bfcode}[1]{\code{\bfseries#1}} +\newcommand{\email}[1]{\textsf{#1}} + +% Redefine the Verbatim environment to allow border and background colors. +% The original environment is still used for verbatims within tables. +\let\OriginalVerbatim=\Verbatim +\let\endOriginalVerbatim=\endVerbatim + +% Play with vspace to be able to keep the indentation. +\newlength\distancetoright +\def\mycolorbox#1{% + \setlength\distancetoright{\linewidth}% + \advance\distancetoright -\@totalleftmargin % + \fcolorbox{VerbatimBorderColor}{VerbatimColor}{% + \begin{minipage}{\distancetoright}% + #1 + \end{minipage}% + }% +} +\def\FrameCommand{\mycolorbox} + +\renewcommand{\Verbatim}[1][1]{% + % list starts new par, but we don't want it to be set apart vertically + \bgroup\parskip=0pt% + \smallskip% + % The list environement is needed to control perfectly the vertical + % space. + \list{}{% + \setlength\parskip{0pt}% + \setlength\itemsep{0ex}% + \setlength\topsep{0ex}% + \setlength\partopsep{0pt}% + \setlength\leftmargin{0pt}% + }% + \item\MakeFramed {\FrameRestore}% + \small% + \OriginalVerbatim[#1]% +} +\renewcommand{\endVerbatim}{% + \endOriginalVerbatim% + \endMakeFramed% + \endlist% + % close group to restore \parskip + \egroup% +} + + +% \moduleauthor{name}{email} +\newcommand{\moduleauthor}[2]{} + +% \sectionauthor{name}{email} +\newcommand{\sectionauthor}[2]{} + +% Augment the sectioning commands used to get our own font family in place, +% and reset some internal data items: +\titleformat{\section}{\Large\py@HeaderFamily}% + {\py@TitleColor\thesection}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\subsection}{\large\py@HeaderFamily}% + {\py@TitleColor\thesubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\subsubsection}{\py@HeaderFamily}% + {\py@TitleColor\thesubsubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\paragraph}{\small\py@HeaderFamily}% + {\py@TitleColor}{0em}{\py@TitleColor}{\py@NormalColor} + +% {fulllineitems} is the main environment for object descriptions. +% +\newcommand{\py@itemnewline}[1]{% + \@tempdima\linewidth% + \advance\@tempdima \leftmargin\makebox[\@tempdima][l]{#1}% +} + +\newenvironment{fulllineitems}{ + \begin{list}{}{\labelwidth \leftmargin \labelsep 0pt + \rightmargin 0pt \topsep -\parskip \partopsep \parskip + \itemsep -\parsep + \let\makelabel=\py@itemnewline} +}{\end{list}} + +% \optional is used for ``[, arg]``, i.e. desc_optional nodes. +\newcommand{\optional}[1]{% + {\textnormal{\Large[}}{#1}\hspace{0.5mm}{\textnormal{\Large]}}} + +\newlength{\py@argswidth} +\newcommand{\py@sigparams}[2]{% + \parbox[t]{\py@argswidth}{#1\code{)}#2}} +\newcommand{\pysigline}[1]{\item[#1]\nopagebreak} +\newcommand{\pysiglinewithargsret}[3]{% + \settowidth{\py@argswidth}{#1\code{(}}% + \addtolength{\py@argswidth}{-2\py@argswidth}% + \addtolength{\py@argswidth}{\linewidth}% + \item[#1\code{(}\py@sigparams{#2}{#3}]} + +% Production lists +% +\newenvironment{productionlist}{ +% \def\optional##1{{\Large[}##1{\Large]}} + \def\production##1##2{\\\code{##1}&::=&\code{##2}} + \def\productioncont##1{\\& &\code{##1}} + \parindent=2em + \indent + \begin{tabular}{lcl} +}{% + \end{tabular} +} + +% Notices / Admonitions +% +\newlength{\py@noticelength} + +\newcommand{\py@heavybox}{ + \setlength{\fboxrule}{1pt} + \setlength{\fboxsep}{6pt} + \setlength{\py@noticelength}{\linewidth} + \addtolength{\py@noticelength}{-2\fboxsep} + \addtolength{\py@noticelength}{-2\fboxrule} + %\setlength{\shadowsize}{3pt} + \Sbox + \minipage{\py@noticelength} +} +\newcommand{\py@endheavybox}{ + \endminipage + \endSbox + \fbox{\TheSbox} +} + +\newcommand{\py@lightbox}{{% + \setlength\parskip{0pt}\par + \rule[0ex]{\linewidth}{0.5pt}% + \par\vspace{-0.5ex}% + }} +\newcommand{\py@endlightbox}{{% + \setlength{\parskip}{0pt}% + \par\rule[0.5ex]{\linewidth}{0.5pt}% + \par\vspace{-0.5ex}% + }} + +% Some are quite plain: +\newcommand{\py@noticestart@note}{\py@lightbox} +\newcommand{\py@noticeend@note}{\py@endlightbox} +\newcommand{\py@noticestart@hint}{\py@lightbox} +\newcommand{\py@noticeend@hint}{\py@endlightbox} +\newcommand{\py@noticestart@important}{\py@lightbox} +\newcommand{\py@noticeend@important}{\py@endlightbox} +\newcommand{\py@noticestart@tip}{\py@lightbox} +\newcommand{\py@noticeend@tip}{\py@endlightbox} + +% Others gets more visible distinction: +\newcommand{\py@noticestart@warning}{\py@heavybox} +\newcommand{\py@noticeend@warning}{\py@endheavybox} +\newcommand{\py@noticestart@caution}{\py@heavybox} +\newcommand{\py@noticeend@caution}{\py@endheavybox} +\newcommand{\py@noticestart@attention}{\py@heavybox} +\newcommand{\py@noticeend@attention}{\py@endheavybox} +\newcommand{\py@noticestart@danger}{\py@heavybox} +\newcommand{\py@noticeend@danger}{\py@endheavybox} +\newcommand{\py@noticestart@error}{\py@heavybox} +\newcommand{\py@noticeend@error}{\py@endheavybox} + +\newenvironment{notice}[2]{ + \def\py@noticetype{#1} + \csname py@noticestart@#1\endcsname + \strong{#2} +}{\csname py@noticeend@\py@noticetype\endcsname} + +% Allow the release number to be specified independently of the +% \date{}. This allows the date to reflect the document's date and +% release to specify the release that is documented. +% +\newcommand{\py@release}{} +\newcommand{\version}{} +\newcommand{\shortversion}{} +\newcommand{\releaseinfo}{} +\newcommand{\releasename}{Release} +\newcommand{\release}[1]{% + \renewcommand{\py@release}{\releasename\space\version}% + \renewcommand{\version}{#1}} +\newcommand{\setshortversion}[1]{% + \renewcommand{\shortversion}{#1}} +\newcommand{\setreleaseinfo}[1]{% + \renewcommand{\releaseinfo}{#1}} + +% Allow specification of the author's address separately from the +% author's name. This can be used to format them differently, which +% is a good thing. +% +\newcommand{\py@authoraddress}{} +\newcommand{\authoraddress}[1]{\renewcommand{\py@authoraddress}{#1}} + +% This sets up the fancy chapter headings that make the documents look +% at least a little better than the usual LaTeX output. +% +\@ifundefined{ChTitleVar}{}{ + \ChNameVar{\raggedleft\normalsize\py@HeaderFamily} + \ChNumVar{\raggedleft \bfseries\Large\py@HeaderFamily} + \ChTitleVar{\raggedleft \rm\Huge\py@HeaderFamily} + % This creates chapter heads without the leading \vspace*{}: + \def\@makechapterhead#1{% + {\parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \DOCH + \fi + \interlinepenalty\@M + \DOTI{#1} + } + } +} + +% Redefine description environment so that it is usable inside fulllineitems. +% +\renewcommand{\description}{% + \list{}{\labelwidth\z@% + \itemindent-\leftmargin% + \labelsep5pt% + \let\makelabel=\descriptionlabel}} + +% Definition lists; requested by AMK for HOWTO documents. Probably useful +% elsewhere as well, so keep in in the general style support. +% +\newenvironment{definitions}{% + \begin{description}% + \def\term##1{\item[##1]\mbox{}\\*[0mm]} +}{% + \end{description}% +} + +% Tell TeX about pathological hyphenation cases: +\hyphenation{Base-HTTP-Re-quest-Hand-ler} + + +% The following is stuff copied from docutils' latex writer. +% +\newcommand{\optionlistlabel}[1]{\bf #1 \hfill} +\newenvironment{optionlist}[1] +{\begin{list}{} + {\setlength{\labelwidth}{#1} + \setlength{\rightmargin}{1cm} + \setlength{\leftmargin}{\rightmargin} + \addtolength{\leftmargin}{\labelwidth} + \addtolength{\leftmargin}{\labelsep} + \renewcommand{\makelabel}{\optionlistlabel}} +}{\end{list}} + +\newlength{\lineblockindentation} +\setlength{\lineblockindentation}{2.5em} +\newenvironment{lineblock}[1] +{\begin{list}{} + {\setlength{\partopsep}{\parskip} + \addtolength{\partopsep}{\baselineskip} + \topsep0pt\itemsep0.15\baselineskip\parsep0pt + \leftmargin#1} + \raggedright} +{\end{list}} + +% Redefine includgraphics for avoiding images larger than the screen size +% If the size is not specified. +\let\py@Oldincludegraphics\includegraphics + +\newbox\image@box% +\newdimen\image@width% +\renewcommand\includegraphics[2][\@empty]{% + \ifx#1\@empty% + \setbox\image@box=\hbox{\py@Oldincludegraphics{#2}}% + \image@width\wd\image@box% + \ifdim \image@width>\linewidth% + \setbox\image@box=\hbox{\py@Oldincludegraphics[width=\linewidth]{#2}}% + \box\image@box% + \else% + \py@Oldincludegraphics{#2}% + \fi% + \else% + \py@Oldincludegraphics[#1]{#2}% + \fi% +} + + +% Fix the index and bibliography environments to add an entry to the Table of +% Contents; this is much nicer than just having to jump to the end of the book +% and flip around, especially with multiple indexes. +% +\let\py@OldTheindex=\theindex +\renewcommand{\theindex}{ + \cleardoublepage + \phantomsection + \py@OldTheindex + \addcontentsline{toc}{chapter}{\indexname} +} + +\let\py@OldThebibliography=\thebibliography +\renewcommand{\thebibliography}[1]{ + \cleardoublepage + \phantomsection + \py@OldThebibliography{1} + \addcontentsline{toc}{chapter}{\bibname} +} + +% Include hyperref last. +\RequirePackage[colorlinks,breaklinks, + linkcolor=InnerLinkColor,filecolor=OuterLinkColor, + menucolor=OuterLinkColor,urlcolor=OuterLinkColor, + citecolor=InnerLinkColor]{hyperref} +% Fix anchor placement for figures with captions. +% (Note: we don't use a package option here; instead, we give an explicit +% \capstart for figures that actually have a caption.) +\RequirePackage{hypcap} + +% From docutils.writers.latex2e +\providecommand{\DUspan}[2]{% + {% group ("span") to limit the scope of styling commands + \@for\node@class@name:=#1\do{% + \ifcsname docutilsrole\node@class@name\endcsname% + \csname docutilsrole\node@class@name\endcsname% + \fi% + }% + {#2}% node content + }% close "span" +} + +\providecommand*{\DUprovidelength}[2]{ + \ifthenelse{\isundefined{#1}}{\newlength{#1}\setlength{#1}{#2}}{} +} + +\DUprovidelength{\DUlineblockindent}{2.5em} +\ifthenelse{\isundefined{\DUlineblock}}{ + \newenvironment{DUlineblock}[1]{% + \list{}{\setlength{\partopsep}{\parskip} + \addtolength{\partopsep}{\baselineskip} + \setlength{\topsep}{0pt} + \setlength{\itemsep}{0.15\baselineskip} + \setlength{\parsep}{0pt} + \setlength{\leftmargin}{#1}} + \raggedright + } + {\endlist} +}{} + + +% From footmisc.sty: allows footnotes in titles +\let\FN@sf@@footnote\footnote +\def\footnote{\ifx\protect\@typeset@protect + \expandafter\FN@sf@@footnote + \else + \expandafter\FN@sf@gobble@opt + \fi +} +\edef\FN@sf@gobble@opt{\noexpand\protect + \expandafter\noexpand\csname FN@sf@gobble@opt \endcsname} +\expandafter\def\csname FN@sf@gobble@opt \endcsname{% + \@ifnextchar[%] + \FN@sf@gobble@twobracket + \@gobble +} +\def\FN@sf@gobble@twobracket[#1]#2{} diff --git a/docs/_build/latex/sphinxhowto.cls b/docs/_build/latex/sphinxhowto.cls new file mode 100644 index 00000000..1ebdd434 --- /dev/null +++ b/docs/_build/latex/sphinxhowto.cls @@ -0,0 +1,81 @@ +% +% sphinxhowto.cls for Sphinx (http://sphinx.pocoo.org/) +% + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{sphinxhowto}[2009/06/02 Document class (Sphinx HOWTO)] + +% 'oneside' option overriding the 'twoside' default +\newif\if@oneside +\DeclareOption{oneside}{\@onesidetrue} +% Pass remaining document options to the parent class. +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\sphinxdocclass}} +\ProcessOptions\relax + +% Default to two-side document +\if@oneside +% nothing to do (oneside is the default) +\else +\PassOptionsToClass{twoside}{\sphinxdocclass} +\fi + +\LoadClass{\sphinxdocclass} + +% Set some sane defaults for section numbering depth and TOC depth. You can +% reset these counters in your preamble. +% +\setcounter{secnumdepth}{2} + +% Change the title page to look a bit better, and fit in with the fncychap +% ``Bjarne'' style a bit better. +% +\renewcommand{\maketitle}{ + \rule{\textwidth}{1pt} + \ifsphinxpdfoutput + \begingroup + % These \defs are required to deal with multi-line authors; it + % changes \\ to ', ' (comma-space), making it pass muster for + % generating document info in the PDF file. + \def\\{, } + \def\and{and } + \pdfinfo{ + /Author (\@author) + /Title (\@title) + } + \endgroup + \fi + \begin{flushright} + \sphinxlogo% + {\rm\Huge\py@HeaderFamily \@title} \par + {\em\large\py@HeaderFamily \py@release\releaseinfo} \par + \vspace{25pt} + {\Large\py@HeaderFamily + \begin{tabular}[t]{c} + \@author + \end{tabular}} \par + \vspace{25pt} + \@date \par + \py@authoraddress \par + \end{flushright} + \@thanks + \setcounter{footnote}{0} + \let\thanks\relax\let\maketitle\relax + %\gdef\@thanks{}\gdef\@author{}\gdef\@title{} +} + +\let\py@OldTableofcontents=\tableofcontents +\renewcommand{\tableofcontents}{ + \begingroup + \parskip = 0mm + \py@OldTableofcontents + \endgroup + \rule{\textwidth}{1pt} + \vspace{12pt} +} + +\@ifundefined{fancyhf}{ + \pagestyle{plain}}{ + \pagestyle{normal}} % start this way; change for +\pagenumbering{arabic} % ToC & chapters + +\thispagestyle{empty} diff --git a/docs/_build/latex/sphinxmanual.cls b/docs/_build/latex/sphinxmanual.cls new file mode 100644 index 00000000..57517798 --- /dev/null +++ b/docs/_build/latex/sphinxmanual.cls @@ -0,0 +1,122 @@ +% +% sphinxmanual.cls for Sphinx (http://sphinx.pocoo.org/) +% + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{sphinxmanual}[2009/06/02 Document class (Sphinx manual)] + +% chapters starting at odd pages (overridden by 'openany' document option) +\PassOptionsToClass{openright}{\sphinxdocclass} + +% 'oneside' option overriding the 'twoside' default +\newif\if@oneside +\DeclareOption{oneside}{\@onesidetrue} +% Pass remaining document options to the parent class. +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\sphinxdocclass}} +\ProcessOptions\relax + +% Defaults two-side document +\if@oneside +% nothing to do (oneside is the default) +\else +\PassOptionsToClass{twoside}{\sphinxdocclass} +\fi + +\LoadClass{\sphinxdocclass} + +% Set some sane defaults for section numbering depth and TOC depth. You can +% reset these counters in your preamble. +% +\setcounter{secnumdepth}{2} +\setcounter{tocdepth}{1} + +% Change the title page to look a bit better, and fit in with the fncychap +% ``Bjarne'' style a bit better. +% +\renewcommand{\maketitle}{% + \begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax + \rule{\textwidth}{1pt}% + \ifsphinxpdfoutput + \begingroup + % These \defs are required to deal with multi-line authors; it + % changes \\ to ', ' (comma-space), making it pass muster for + % generating document info in the PDF file. + \def\\{, } + \def\and{and } + \pdfinfo{ + /Author (\@author) + /Title (\@title) + } + \endgroup + \fi + \begin{flushright}% + \sphinxlogo% + {\rm\Huge\py@HeaderFamily \@title \par}% + {\em\LARGE\py@HeaderFamily \py@release\releaseinfo \par} + \vfill + {\LARGE\py@HeaderFamily + \begin{tabular}[t]{c} + \@author + \end{tabular} + \par} + \vfill\vfill + {\large + \@date \par + \vfill + \py@authoraddress \par + }% + \end{flushright}%\par + \@thanks + \end{titlepage}% + \cleardoublepage% + \setcounter{footnote}{0}% + \let\thanks\relax\let\maketitle\relax + %\gdef\@thanks{}\gdef\@author{}\gdef\@title{} +} + + +% Catch the end of the {abstract} environment, but here make sure the abstract +% is followed by a blank page if the 'openright' option is used. +% +\let\py@OldEndAbstract=\endabstract +\renewcommand{\endabstract}{ + \if@openright + \ifodd\value{page} + \typeout{Adding blank page after the abstract.} + \vfil\pagebreak + \fi + \fi + \py@OldEndAbstract +} + +% This wraps the \tableofcontents macro with all the magic to get the spacing +% right and have the right number of pages if the 'openright' option has been +% used. This eliminates a fair amount of crud in the individual document files. +% +\let\py@OldTableofcontents=\tableofcontents +\renewcommand{\tableofcontents}{% + \setcounter{page}{1}% + \pagebreak% + \pagestyle{plain}% + {% + \parskip = 0mm% + \py@OldTableofcontents% + \if@openright% + \ifodd\value{page}% + \typeout{Adding blank page after the table of contents.}% + \pagebreak\hspace{0pt}% + \fi% + \fi% + \cleardoublepage% + }% + \pagenumbering{arabic}% + \@ifundefined{fancyhf}{}{\pagestyle{normal}}% +} + +% This is needed to get the width of the section # area wide enough in the +% library reference. Doing it here keeps it the same for all the manuals. +% +\renewcommand*\l@section{\@dottedtocline{1}{1.5em}{2.6em}} +\renewcommand*\l@subsection{\@dottedtocline{2}{4.1em}{3.5em}} diff --git a/docs/_build/latex/tabulary.sty b/docs/_build/latex/tabulary.sty new file mode 100644 index 00000000..ba83c0af --- /dev/null +++ b/docs/_build/latex/tabulary.sty @@ -0,0 +1,452 @@ +%% +%% This is file `tabulary.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tabulary.dtx (with options: `package') +%% DRAFT VERSION +%% +%% File `tabulary.dtx'. +%% Copyright (C) 1995 1996 2003 David Carlisle +%% This file may be distributed under the terms of the LPPL. +%% See 00readme.txt for details. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{tabulary} + [2007/10/02 v0.9 tabulary package (DPC)] +\RequirePackage{array} +\catcode`\Z=14 +\DeclareOption{debugshow}{\catcode`\Z=9\relax} +\ProcessOptions +\def\arraybackslash{\let\\=\@arraycr} +\def\@finalstrut#1{% + \unskip\ifhmode\nobreak\fi\vrule\@width\z@\@height\z@\@depth\dp#1} +\newcount\TY@count +\def\tabulary{% + \let\TY@final\tabular + \let\endTY@final\endtabular + \TY@tabular} +\def\TY@tabular#1{% + \edef\TY@{\@currenvir}% + {\ifnum0=`}\fi + \@ovxx\TY@linewidth + \@ovyy\TY@tablewidth + \count@\z@ + \@tempswatrue + \@whilesw\if@tempswa\fi{% + \advance\count@\@ne + \expandafter\ifx\csname TY@F\the\count@\endcsname\relax + \@tempswafalse + \else + \expandafter\let\csname TY@SF\the\count@\expandafter\endcsname + \csname TY@F\the\count@\endcsname + \global\expandafter\let\csname TY@F\the\count@\endcsname\relax + \expandafter\let\csname TY@S\the\count@\expandafter\endcsname + \csname TY@\the\count@\endcsname + \fi}% + \global\TY@count\@ne + \TY@width\xdef{0pt}% + \global\TY@tablewidth\z@ + \global\TY@linewidth#1\relax +Z\message{^^J^^JTable^^J% +Z Target Width: \the\TY@linewidth^^J% +Z \string\tabcolsep: \the\tabcolsep\space +Z \string\arrayrulewidth: \the\arrayrulewidth\space +Z \string\doublerulesep: \the\doublerulesep^^J% +Z \string\tymin: \the\tymin\space +Z \string\tymax: \the\tymax^^J}% + \let\@classz\TY@classz + \let\verb\TX@verb + \toks@{}\TY@get@body} +\let\TY@@mkpream\@mkpream +\def\TY@mkpream{% + \def\@addamp{% + \if@firstamp \@firstampfalse \else + \global\advance\TY@count\@ne + \edef\@preamble{\@preamble &}\fi + \TY@width\xdef{0pt}}% + \def\@acol{% + \TY@subwidth\col@sep + \@addtopreamble{\hskip\col@sep}}% + \let\@arrayrule\TY@arrayrule + \let\@classvi\TY@classvi + \def\@classv{\save@decl + \expandafter\NC@ecs\@nextchar\extracolsep{}\extracolsep\@@@ + \sbox\z@{\d@llarbegin\@nextchar\d@llarend}% + \TY@subwidth{\wd\z@}% + \@addtopreamble{\d@llarbegin\the@toks\the\count@\relax\d@llarend}% + \prepnext@tok}% + \global\let\@mkpream\TY@@mkpream + \TY@@mkpream} +\def\TY@arrayrule{% + \TY@subwidth\arrayrulewidth + \@addtopreamble \vline} +\def\TY@classvi{\ifcase \@lastchclass + \@acol \or + \TY@subwidth\doublerulesep + \@addtopreamble{\hskip \doublerulesep}\or + \@acol \or + \@classvii + \fi} +\def\TY@tab{% + \setbox\z@\hbox\bgroup + \let\[$\let\]$% + \let\equation$\let\endequation$% + \col@sep\tabcolsep + \let\d@llarbegin\begingroup\let\d@llarend\endgroup + \let\@mkpream\TY@mkpream + \def\multicolumn##1##2##3{\multispan##1\relax}% + \CT@start\TY@tabarray} +\def\TY@tabarray{\@ifnextchar[{\TY@array}{\@array[t]}} +\def\TY@array[#1]{\@array[t]} +\def\TY@width#1{% + \expandafter#1\csname TY@\the\TY@count\endcsname} +\def\TY@subwidth#1{% + \TY@width\dimen@ + \advance\dimen@-#1\relax + \TY@width\xdef{\the\dimen@}% + \global\advance\TY@linewidth-#1\relax} +\def\endtabulary{% + \gdef\@halignto{}% + \let\TY@footnote\footnote% + \def\footnote{}% prevent footnotes from doing anything + \expandafter\TY@tab\the\toks@ + \crcr\omit + {\xdef\TY@save@row{}% + \loop + \advance\TY@count\m@ne + \ifnum\TY@count>\z@ + \xdef\TY@save@row{\TY@save@row&\omit}% + \repeat}\TY@save@row + \endarray\global\setbox1=\lastbox\setbox0=\vbox{\unvbox1 + \unskip\global\setbox1=\lastbox}\egroup + \dimen@\TY@linewidth + \divide\dimen@\TY@count + \ifdim\dimen@<\tymin + \TY@warn{tymin too large (\the\tymin), resetting to \the\dimen@}% + \tymin\dimen@ + \fi + \setbox\tw@=\hbox{\unhbox\@ne + \loop +\@tempdima=\lastskip +\ifdim\@tempdima>\z@ +Z \message{ecs=\the\@tempdima^^J}% + \global\advance\TY@linewidth-\@tempdima +\fi + \unskip + \setbox\tw@=\lastbox + \ifhbox\tw@ +Z \message{Col \the\TY@count: Initial=\the\wd\tw@\space}% + \ifdim\wd\tw@>\tymax + \wd\tw@\tymax +Z \message{> max\space}% +Z \else +Z \message{ \@spaces\space}% + \fi + \TY@width\dimen@ +Z \message{\the\dimen@\space}% + \advance\dimen@\wd\tw@ +Z \message{Final=\the\dimen@\space}% + \TY@width\xdef{\the\dimen@}% + \ifdim\dimen@<\tymin +Z \message{< tymin}% + \global\advance\TY@linewidth-\dimen@ + \expandafter\xdef\csname TY@F\the\TY@count\endcsname + {\the\dimen@}% + \else + \expandafter\ifx\csname TY@F\the\TY@count\endcsname\z@ +Z \message{***}% + \global\advance\TY@linewidth-\dimen@ + \expandafter\xdef\csname TY@F\the\TY@count\endcsname + {\the\dimen@}% + \else +Z \message{> tymin}% + \global\advance\TY@tablewidth\dimen@ + \global\expandafter\let\csname TY@F\the\TY@count\endcsname + \maxdimen + \fi\fi + \advance\TY@count\m@ne + \repeat}% + \TY@checkmin + \TY@checkmin + \TY@checkmin + \TY@checkmin + \TY@count\z@ + \let\TY@box\TY@box@v + \let\footnote\TY@footnote % restore footnotes + {\expandafter\TY@final\the\toks@\endTY@final}% + \count@\z@ + \@tempswatrue + \@whilesw\if@tempswa\fi{% + \advance\count@\@ne + \expandafter\ifx\csname TY@SF\the\count@\endcsname\relax + \@tempswafalse + \else + \global\expandafter\let\csname TY@F\the\count@\expandafter\endcsname + \csname TY@SF\the\count@\endcsname + \global\expandafter\let\csname TY@\the\count@\expandafter\endcsname + \csname TY@S\the\count@\endcsname + \fi}% + \TY@linewidth\@ovxx + \TY@tablewidth\@ovyy + \ifnum0=`{\fi}} +\def\TY@checkmin{% + \let\TY@checkmin\relax +\ifdim\TY@tablewidth>\z@ + \Gscale@div\TY@ratio\TY@linewidth\TY@tablewidth + \ifdim\TY@tablewidth <\linewidth + \def\TY@ratio{1}% + \fi +\else + \TY@warn{No suitable columns!}% + \def\TY@ratio{1}% +\fi +\count@\z@ +Z \message{^^JLine Width: \the\TY@linewidth, +Z Natural Width: \the\TY@tablewidth, +Z Ratio: \TY@ratio^^J}% +\@tempdima\z@ +\loop +\ifnum\count@<\TY@count +\advance\count@\@ne + \ifdim\csname TY@F\the\count@\endcsname>\tymin + \dimen@\csname TY@\the\count@\endcsname + \dimen@\TY@ratio\dimen@ + \ifdim\dimen@<\tymin +Z \message{Column \the\count@\space ->}% + \global\expandafter\let\csname TY@F\the\count@\endcsname\tymin + \global\advance\TY@linewidth-\tymin + \global\advance\TY@tablewidth-\csname TY@\the\count@\endcsname + \let\TY@checkmin\TY@@checkmin + \else + \expandafter\xdef\csname TY@F\the\count@\endcsname{\the\dimen@}% + \advance\@tempdima\csname TY@F\the\count@\endcsname + \fi + \fi +Z \dimen@\csname TY@F\the\count@\endcsname\message{\the\dimen@, }% +\repeat +Z \message{^^JTotal:\the\@tempdima^^J}% +} +\let\TY@@checkmin\TY@checkmin +\newdimen\TY@linewidth +\def\tyformat{\everypar{{\nobreak\hskip\z@skip}}} +\newdimen\tymin +\tymin=10pt +\newdimen\tymax +\tymax=2\textwidth +\def\@testpach{\@chclass + \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else + \ifnum \@lastchclass=7 5 \else + \ifnum \@lastchclass=8 \tw@ \else + \ifnum \@lastchclass=9 \thr@@ + \else \z@ + \ifnum \@lastchclass = 10 \else + \edef\@nextchar{\expandafter\string\@nextchar}% + \@chnum + \if \@nextchar c\z@ \else + \if \@nextchar l\@ne \else + \if \@nextchar r\tw@ \else + \if \@nextchar C7 \else + \if \@nextchar L8 \else + \if \@nextchar R9 \else + \if \@nextchar J10 \else + \z@ \@chclass + \if\@nextchar |\@ne \else + \if \@nextchar !6 \else + \if \@nextchar @7 \else + \if \@nextchar <8 \else + \if \@nextchar >9 \else + 10 + \@chnum + \if \@nextchar m\thr@@\else + \if \@nextchar p4 \else + \if \@nextchar b5 \else + \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi\fi \fi \fi\fi \fi + \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi} +\def\TY@classz{% + \@classx + \@tempcnta\count@ + \ifx\TY@box\TY@box@v + \global\advance\TY@count\@ne + \fi + \let\centering c% + \let\raggedright\noindent + \let\raggedleft\indent + \let\arraybackslash\relax + \prepnext@tok + \ifnum\@chnum<4 + \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ + \fi + \ifnum\@chnum=6 + \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ + \fi + \@addtopreamble{% + \ifcase\@chnum + \hfil \d@llarbegin\insert@column\d@llarend \hfil \or + \kern\z@ + \d@llarbegin \insert@column \d@llarend \hfil \or + \hfil\kern\z@ \d@llarbegin \insert@column \d@llarend \or + $\vcenter\@startpbox{\@nextchar}\insert@column \@endpbox $\or + \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or + \vbox \@startpbox{\@nextchar}\insert@column \@endpbox \or + \d@llarbegin \insert@column \d@llarend \or% dubious "s" case + \TY@box\centering\or + \TY@box\raggedright\or + \TY@box\raggedleft\or + \TY@box\relax + \fi}\prepnext@tok} +\def\TY@box#1{% + \ifx\centering#1% + \hfil \d@llarbegin\insert@column\d@llarend \hfil \else + \ifx\raggedright#1% + \kern\z@%<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + \d@llarbegin \insert@column \d@llarend \hfil \else + \ifx\raggedleft#1% + \hfil\kern\z@ \d@llarbegin \insert@column \d@llarend \else + \ifx\relax#1% + \d@llarbegin \insert@column \d@llarend + \fi \fi \fi \fi} +\def\TY@box@v#1{% + \vtop \@startpbox{\csname TY@F\the\TY@count\endcsname}% + #1\arraybackslash\tyformat + \insert@column\@endpbox} +\newdimen\TY@tablewidth +\def\Gscale@div#1#2#3{% + \setlength\dimen@{#3}% + \ifdim\dimen@=\z@ + \PackageError{graphics}{Division by 0}\@eha + \dimen@#2% + \fi + \edef\@tempd{\the\dimen@}% + \setlength\dimen@{#2}% + \count@65536\relax + \ifdim\dimen@<\z@ + \dimen@-\dimen@ + \count@-\count@ + \fi + \loop + \ifdim\dimen@<8192\p@ + \dimen@\tw@\dimen@ + \divide\count@\tw@ + \repeat + \dimen@ii=\@tempd\relax + \divide\dimen@ii\count@ + \divide\dimen@\dimen@ii + \edef#1{\strip@pt\dimen@}} +\long\def\TY@get@body#1\end + {\toks@\expandafter{\the\toks@#1}\TY@find@end} +\def\TY@find@end#1{% + \def\@tempa{#1}% + \ifx\@tempa\TY@\def\@tempa{\end{#1}}\expandafter\@tempa + \else\toks@\expandafter + {\the\toks@\end{#1}}\expandafter\TY@get@body\fi} +\def\TY@warn{% + \PackageWarning{tabulary}} +\catcode`\Z=11 +\AtBeginDocument{ +\@ifpackageloaded{colortbl}{% +\expandafter\def\expandafter\@mkpream\expandafter#\expandafter1% + \expandafter{% + \expandafter\let\expandafter\CT@setup\expandafter\relax + \expandafter\let\expandafter\CT@color\expandafter\relax + \expandafter\let\expandafter\CT@do@color\expandafter\relax + \expandafter\let\expandafter\color\expandafter\relax + \expandafter\let\expandafter\CT@column@color\expandafter\relax + \expandafter\let\expandafter\CT@row@color\expandafter\relax + \@mkpream{#1}} +\let\TY@@mkpream\@mkpream +\def\TY@classz{% + \@classx + \@tempcnta\count@ + \ifx\TY@box\TY@box@v + \global\advance\TY@count\@ne + \fi + \let\centering c% + \let\raggedright\noindent + \let\raggedleft\indent + \let\arraybackslash\relax + \prepnext@tok +\expandafter\CT@extract\the\toks\@tempcnta\columncolor!\@nil + \ifnum\@chnum<4 + \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ + \fi + \ifnum\@chnum=6 + \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ + \fi + \@addtopreamble{% + \setbox\z@\hbox\bgroup\bgroup + \ifcase\@chnum + \hskip\stretch{.5}\kern\z@ + \d@llarbegin\insert@column\d@llarend\hskip\stretch{.5}\or + \kern\z@%<<<<<<<<<<<<<<<<<<<<<<<<<<< + \d@llarbegin \insert@column \d@llarend \hfill \or + \hfill\kern\z@ \d@llarbegin \insert@column \d@llarend \or + $\vcenter\@startpbox{\@nextchar}\insert@column \@endpbox $\or + \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or + \vbox \@startpbox{\@nextchar}\insert@column \@endpbox \or + \d@llarbegin \insert@column \d@llarend \or% dubious s case + \TY@box\centering\or + \TY@box\raggedright\or + \TY@box\raggedleft\or + \TY@box\relax + \fi + \egroup\egroup +\begingroup + \CT@setup + \CT@column@color + \CT@row@color + \CT@do@color +\endgroup + \@tempdima\ht\z@ + \advance\@tempdima\minrowclearance + \vrule\@height\@tempdima\@width\z@ +\unhbox\z@ +}\prepnext@tok}% + \def\TY@arrayrule{% + \TY@subwidth\arrayrulewidth + \@addtopreamble{{\CT@arc@\vline}}}% + \def\TY@classvi{\ifcase \@lastchclass + \@acol \or + \TY@subwidth\doublerulesep + \ifx\CT@drsc@\relax + \@addtopreamble{\hskip\doublerulesep}% + \else + \@addtopreamble{{\CT@drsc@\vrule\@width\doublerulesep}}% + \fi\or + \@acol \or + \@classvii + \fi}% +}{% +\let\CT@start\relax +} +} +{\uccode`\*=`\ % +\uppercase{\gdef\TX@verb{% + \leavevmode\null\TX@vwarn + {\ifnum0=`}\fi\ttfamily\let\\\ignorespaces + \@ifstar{\let~*\TX@vb}{\TX@vb}}}} +\def\TX@vb#1{\def\@tempa##1#1{\toks@{##1}\edef\@tempa{\the\toks@}% + \expandafter\TX@v\meaning\@tempa\\ \\\ifnum0=`{\fi}}\@tempa!} +\def\TX@v#1!{\afterassignment\TX@vfirst\let\@tempa= } +\begingroup +\catcode`\*=\catcode`\# +\catcode`\#=12 +\gdef\TX@vfirst{% + \if\@tempa#% + \def\@tempb{\TX@v@#}% + \else + \let\@tempb\TX@v@ + \if\@tempa\space~\else\@tempa\fi + \fi + \@tempb} +\gdef\TX@v@*1 *2{% + \TX@v@hash*1##\relax\if*2\\\else~\expandafter\TX@v@\fi*2} +\gdef\TX@v@hash*1##*2{*1\ifx*2\relax\else#\expandafter\TX@v@hash\fi*2} +\endgroup +\def\TX@vwarn{% + \@warning{\noexpand\verb may be unreliable inside tabularx/y}% + \global\let\TX@vwarn\@empty} +\endinput +%% +%% End of file `tabulary.sty'. diff --git a/docs/_build/man/bedtools.1 b/docs/_build/man/bedtools.1 new file mode 100644 index 00000000..3ea61585 --- /dev/null +++ b/docs/_build/man/bedtools.1 @@ -0,0 +1,5506 @@ +.TH "BEDTOOLS" "1" "July 21, 2012" "2.16.2" "bedtools" +.SH NAME +bedtools \- Bedtools Documentation +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.\" Man page generated from reStructeredText. +. +.sp +Brief paragraph of the software. +.SH OVERVIEW +.SS 1.1 Background +.sp +The development of BEDTools was motivated by a need for fast, flexible tools with which to compare large sets of genomic +features. Answering fundamental research questions with existing tools was either too slow or required modifications to the +way they reported or computed their results. We were aware of the utilities on the UCSC Genome Browser and Galaxy websites, as +well as the elegant tools available as part of Jim Kent’s monolithic suite of tools (“Kent sourceâ€). However, we found that +the web\-based tools were too cumbersome when working with large datasets generated by current sequencing technologies. +Similarly, we found that the Kent source command line tools often required a local installation of the UCSC Genome Browser. +These limitations, combined with the fact that we often wanted an extra option here or there that wasn’t available with +existing tools, led us to develop our own from scratch. The initial version of BEDTools was publicly released in the spring of +2009. The current version has evolved from our research experiences and those of the scientists using the suite over the last +year. The BEDTools suite enables one to answer common questions of genomic data in a fast and reliable manner. The fact that +almost all the utilities accept input from “stdin†allows one to “stream / pipe†several commands together to facilitate more +complicated analyses. Also, the tools allow fine control over how output is reported. The initial version of BEDTools +supported solely 6\-column \fI\%BED\fP files. \fIHowever, we have subsequently added support for sequence alignments in\fP \fI\%BAM\fP +\fIformat, as well as for features in\fP \fI\%GFF\fP , \fI“blocked†BED format, and\fP +\fI\%VCF\fP \fIformat\fP. +The tools are quite fast and typically finish in a matter of a few seconds, even for large datasets. This manual seeks to describe the behavior and +available functionality for each BEDTool. Usage examples are scattered throughout the text, and formal examples are +provided in the last two sections, we hope that this document will give you a sense of the flexibility of +the toolkit and the types of analyses that are possible with BEDTools. If you have further questions, please join the BEDTools +discussion group, visit the Usage Examples on the Google Code site (usage, advanced usage), or take a look at the nascent +“Usage From the Wild†page. +.SS 1.2 Summary of available tools. +.sp +BEDTools support a wide range of operations for interrogating and manipulating genomic features. The table below summarizes +the tools available in the suite. +.TS +center; +|l|l|. +_ +T{ +Utility +T} T{ +Description +T} +_ +T{ +\fBintersectBed\fP +T} T{ +Returns overlaps between two BED/GFF/VCF files. +T} +_ +T{ +\fBpairToBed\fP +T} T{ +Returns overlaps between a paired\-end BED file and a regular BED/VCF/GFF file. +T} +_ +T{ +\fBbamToBed\fP +T} T{ +Converts BAM alignments to BED6, BED12, or BEDPE format. +T} +_ +T{ +\fBbedToBam\fP +T} T{ +Converts BED/GFF/VCF features to BAM format. +T} +_ +T{ +\fBbed12ToBed6\fP +T} T{ +Converts "blocked" BED12 features to discrete BED6 features. +T} +_ +T{ +\fBbedToIgv\fP +T} T{ +Creates IGV batch scripts for taking multiple snapshots from BED/GFF/VCF features. +T} +_ +T{ +\fBcoverageBed\fP +T} T{ +Summarizes the depth and breadth of coverage of features in one BED versus features (e.g, windows, exons, etc.) defined in another BED/GFF/VCF file. +T} +_ +T{ +\fBmultiBamCov\fP +T} T{ +Counts sequence coverage for multiple position\-sorted bams at specific loci defined in a BED/GFF/VCF file +T} +_ +T{ +\fBtagBam\fP +T} T{ +Annotates a BAM file with custom tag fields based on overlaps with BED/GFF/VCF files +T} +_ +T{ +\fBnuclBed\fP +T} T{ +Profiles the nucleotide content of intervals in a fasta file +T} +_ +T{ +\fBgenomeCoverageBed\fP +T} T{ +Creates either a histogram, BEDGRAPH, or a "per base" report of genome coverage. +T} +_ +T{ +\fBunionBedGraphs\fP +T} T{ +Combines multiple BedGraph? files into a single file, allowing coverage/other comparisons between them. +T} +_ +T{ +\fBannotateBed\fP +T} T{ +Annotates one BED/VCF/GFF file with overlaps from many others. +T} +_ +T{ +\fBgroupBy\fP +T} T{ +Deprecated. Now in the filo package. +T} +_ +T{ +\fBoverlap\fP +T} T{ +Returns the number of bases pairs of overlap b/w two features on the same line. +T} +_ +T{ +\fBpairToPair\fP +T} T{ +Returns overlaps between two paired\-end BED files. +T} +_ +T{ +\fBclosestBed\fP +T} T{ +Returns the closest feature to each entry in a BED/GFF/VCF file. +T} +_ +T{ +\fBsubtractBed\fP +T} T{ +Removes the portion of an interval that is overlapped by another feature. +T} +_ +T{ +\fBwindowBed\fP +T} T{ +Returns overlaps between two BED/VCF/GFF files based on a user\-defined window. +T} +_ +T{ +\fBmergeBed\fP +T} T{ +Merges overlapping features into a single feature. +T} +_ +T{ +\fBcomplementBed\fP +T} T{ +Returns all intervals not spanned by the features in a BED/GFF/VCF file. +T} +_ +T{ +\fBfastaFromBed\fP +T} T{ +Creates FASTA sequences based on intervals in a BED/GFF/VCF file. +T} +_ +T{ +\fBmaskFastaFromBed\fP +T} T{ +Masks a FASTA file based on BED coordinates. +T} +_ +T{ +\fBshuffleBed\fP +T} T{ +Randomly permutes the locations of a BED file among a genome. +T} +_ +T{ +\fBslopBed\fP +T} T{ +Adjusts each BED entry by a requested number of base pairs. +T} +_ +T{ +\fBflankBed\fP +T} T{ +Creates flanking intervals for each feature in a BED/GFF/VCF file. +T} +_ +T{ +\fBsortBed\fP +T} T{ +Sorts a BED file by chrom, then start position. Other ways as well. +T} +_ +T{ +\fBlinksBed\fP +T} T{ +Creates an HTML file of links to the UCSC or a custom browser. +T} +_ +.TE +.SS 1.3 Fundamental concepts. +.SS 1.3.1 What are genome features and how are they represented? +.sp +Throughout this manual, we will discuss how to use BEDTools to manipulate, compare and ask questions of genome “featuresâ€. Genome features can be functional elements (e.g., genes), genetic polymorphisms (e.g. +SNPs, INDELs, or structural variants), or other annotations that have been discovered or curated by genome sequencing groups or genome browser groups. In addition, genome features can be custom annotations that +an individual lab or researcher defines (e.g., my novel gene or variant). +.sp +The basic characteristics of a genome feature are the chromosome or scaffold on which the feature “residesâ€, the base pair on which the +feature starts (i.e. the “startâ€), the base pair on which feature ends (i.e. the “endâ€), the strand on which the feature exists (i.e. “+†or “\-“), and the name of the feature if one is applicable. +.sp +The two most widely used formats for representing genome features are the BED (Browser Extensible Data) and GFF (General Feature Format) formats. BEDTools was originally written to work exclusively with genome features +described using the BED format, but it has been recently extended to seamlessly work with BED, GFF and VCF files. +.sp +Existing annotations for the genomes of many species can be easily downloaded in BED and GFF +format from the UCSC Genome Browser’s “Table Browser†(\fI\%http://genome.ucsc.edu/cgi-bin/hgTables?command=start\fP) or from the “Bulk Downloads†page (\fI\%http://hgdownload.cse.ucsc.edu/downloads.html\fP). In addition, the +Ensemble Genome Browser contains annotations in GFF/GTF format for many species (\fI\%http://www.ensembl.org/info/data/ftp/index.html\fP) +.SS 1.3.2 Overlapping / intersecting features. +.sp +Two genome features (henceforth referred to as “featuresâ€) are said to overlap or intersect if they share at least one base in common. +In the figure below, Feature A intersects/overlaps Feature B, but it does not intersect/overlap Feature C. +.sp +\fBTODO: place figure here\fP +.SS 1.3.3 Comparing features in file “A†and file “Bâ€. +.sp +The previous section briefly introduced a fundamental naming convention used in BEDTools. Specifically, all BEDTools that compare features contained in two distinct files refer to one file as feature set “A†and the other file as feature set “Bâ€. This is mainly in the interest of brevity, but it also has its roots in set theory. +As an example, if one wanted to look for SNPs (file A) that overlap with exons (file B), one would use intersectBed in the following manner: +.sp +.nf +.ft C +intersectBed –a snps.bed –b exons.bed +.ft P +.fi +.sp +There are two exceptions to this rule: 1) When the “A†file is in BAM format, the “\-abam†option must bed used. For example: +.sp +.nf +.ft C +intersectBed –abam alignedReads.bam –b exons.bed +.ft P +.fi +.sp +And 2) For tools where only one input feature file is needed, the “\-i†option is used. For example: +.sp +.nf +.ft C +mergeBed –i repeats.bed +.ft P +.fi +.SS 1.3.4 BED starts are zero\-based and BED ends are one\-based. +.sp +BEDTools users are sometimes confused by the way the start and end of BED features are represented. Specifically, BEDTools uses the UCSC Genome Browser’s internal database convention of making the start position 0\-based and the end position 1\-based: (\fI\%http://genome.ucsc.edu/FAQ/FAQtracks#tracks1\fP) +In other words, BEDTools interprets the “start†column as being 1 basepair higher than what is represented in the file. For example, the following BED feature represents a single base on chromosome 1; namely, the 1st base: +.sp +.nf +.ft C +chr1 0 1 first_base +.ft P +.fi +.sp +Why, you might ask? The advantage of storing features this way is that when computing the length of a feature, one must simply subtract the start from the end. Were the start position 1\-based, +the calculation would be (slightly) more complex (i.e. (end\-start)+1). Thus, storing BED features this way reduces the computational burden. +.SS 1.3.5 GFF starts and ends are one\-based. +.sp +In contrast, the GFF format uses 1\-based coordinates for both the start and the end positions. BEDTools is aware of this and adjusts the positions accordingly. +In other words, you don’t need to subtract 1 from the start positions of your GFF features for them to work correctly with BEDTools. +.SS 1.3.6 VCF coordinates are one\-based. +.sp +The VCF format uses 1\-based coordinates. As in GFF, BEDTools is aware of this and adjusts the positions accordingly. +In other words, you don’t need to subtract 1 from the start positions of your VCF features for them to work correctly with BEDTools. +.SS 1.3.7 File B is loaded into memory (most of the time). +.sp +Whenever a BEDTool compares two files of features, the “B†file is loaded into memory. By contrast, the “A†file is processed line by line and compared with the features from B. +Therefore to minimize memory usage, one should set the smaller of the two files as the B file. One salient example is the comparison of aligned sequence reads from a +current DNA sequencer to gene annotations. In this case, the aligned sequence file (in BED format) may have tens of millions of features (the sequence alignments), +while the gene annotation file will have tens of thousands of features. In this case, it is wise to sets the reads as file A and the genes as file B. +.SS 1.3.8 Feature files \fImust\fP be tab\-delimited. +.sp +This is rather self\-explanatory. While it is possible to allow BED files to be space\-delimited, we have decided to require tab delimiters for three reasons: +.INDENT 0.0 +.IP 1. 3 +By requiring one delimiter type, the processing time is minimized. +.IP 2. 3 +Tab\-delimited files are more amenable to other UNIX utilities. +.IP 3. 3 +GFF files can contain spaces within attribute columns. This complicates the use of space\-delimited files as spaces must therefore be treated specially depending on the context. +.UNINDENT +.SS 1.3.9 All BEDTools allow features to be “piped†via standard input. +.sp +In an effort to allow one to combine multiple BEDTools and other UNIX utilities into more complicated “pipelinesâ€, all BEDTools allow features +to be passed to them via standard input. Only one feature file may be passed to a BEDTool via standard input. +The convention used by all BEDTools is to set either file A or file B to “stdin†or "\-". For example: +.sp +.nf +.ft C +cat snps.bed | intersectBed –a stdin –b exons.bed +cat snps.bed | intersectBed –a \- –b exons.bed +.ft P +.fi +.sp +In addition, all BEDTools that simply require one main input file (the \-i file) will assume that input is +coming from standard input if the \-i parameter is ignored. For example, the following are equivalent: +.sp +.nf +.ft C +cat snps.bed | sortBed –i stdin +cat snps.bed | sortBed +.ft P +.fi +.SS 1.3.10 Most BEDTools write their results to standard output. +.sp +To allow one to combine multiple BEDTools and other UNIX utilities into more complicated “pipelinesâ€, +most BEDTools report their output to standard output, rather than to a named file. If one wants to write the output to a named file, one can use the UNIX “file redirection†symbol “>†to do so. +Writing to standard output (the default): +.sp +.nf +.ft C +intersectBed –a snps.bed –b exons.bed +chr1 100100 100101 rs233454 +chr1 200100 200101 rs446788 +chr1 300100 300101 rs645678 +.ft P +.fi +.sp +Writing to a file: +.sp +.nf +.ft C +intersectBed –a snps.bed –b exons.bed > snps.in.exons.bed + +cat snps.in.exons.bed +chr1 100100 100101 rs233454 +chr1 200100 200101 rs446788 +chr1 300100 300101 rs645678 +.ft P +.fi +.SS 1.3.11 What is a “genome†file? +.sp +Some of the BEDTools (e.g., genomeCoverageBed, complementBed, slopBed) need to know the size of +the chromosomes for the organism for which your BED files are based. When using the UCSC Genome +Browser, Ensemble, or Galaxy, you typically indicate which species / genome build you are working. +The way you do this for BEDTools is to create a “genome†file, which simply lists the names of the +chromosomes (or scaffolds, etc.) and their size (in basepairs). +Genome files must be tab\-delimited and are structured as follows (this is an example for C. elegans): +.sp +.nf +.ft C +chrI 15072421 +chrII 15279323 +\&... +chrX 17718854 +chrM 13794 +.ft P +.fi +.sp +BEDTools includes predefined genome files for human and mouse in the /genomes directory included +in the BEDTools distribution. Additionally, the “chromInfo†files/tables available from the UCSC +Genome Browser website are acceptable. For example, one can download the hg19 chromInfo file here: +\fI\%http://hgdownload.cse.ucsc.edu/goldenPath/hg19/database/chromInfo.txt.gz\fP +.SS 1.3.12 Paired\-end BED files (BEDPE files). +.sp +We have defined a new file format (BEDPE) to concisely describe disjoint genome features, such as +structural variations or paired\-end sequence alignments. We chose to define a new format because the +existing BED block format (i.e. BED12) does not allow inter\-chromosomal feature definitions. Moreover, +the BED12 format feels rather bloated when one want to describe events with only two blocks. +.SS 1.3.13 Use “\-h†for help with any BEDTool. +.sp +Rather straightforward. If you use the “\-h†option with any BEDTool, a full menu of example usage +and available options (when applicable) will be reported. +.SS 1.3.14 BED features must not contain negative positions. +.sp +BEDTools will typically reject BED features that contain negative positions. In special cases, however, +BEDPE positions may be set to \-1 to indicate that one or more ends of a BEDPE feature is unaligned. +.SS 1.3.15 The start position must be <= to the end position. +.sp +BEDTools will reject BED features where the start position is greater than the end position. +.SS 1.3.16 Headers are allowed in GFF and BED files +.sp +BEDTools will ignore headers at the beginning of BED and GFF files. Valid header lines begin with a +“#†symbol, the work “trackâ€, or the word “browserâ€. For example, the following examples are valid +headers for BED or GFF files: +.sp +.nf +.ft C +track name=aligned_read description="Illumina aligned reads†+chr5 100000 500000 read1 50 + +chr5 2380000 2386000 read2 60 \- + +#This is a fascinating dataset +chr5 100000 500000 read1 50 + +chr5 2380000 2386000 read2 60 \- + +browser position chr22:1\-20000 +chr5 100000 500000 read1 50 + +chr5 2380000 2386000 read2 60 \- +.ft P +.fi +.SS 1.3.17 GZIP support: BED, GFF, VCF, and BEDPE file can be “gzipped†+.sp +BEDTools will process gzipped BED, GFF, VCF and BEDPE files in the same manner as +uncompressed files. Gzipped files are auto\-detected thanks to a helpful contribution from Gordon +Assaf. +.SS 1.3.18 Support for “split†or “spliced†BAM alignments and “blocked†BED features +.sp +As of Version 2.8.0, five BEDTools (\fBintersectBed\fP, \fBcoverageBed\fP, \fBgenomeCoverageBed\fP, +\fBbamToBed\fP, and \fBbed12ToBed6\fP) can properly handle “splitâ€/â€spliced†BAM alignments (i.e., having an +“N†CIGAR operation) and/or “blocked†BED (aka BED12) features. +.sp +\fBintersectBed\fP, \fBcoverageBed\fP, and \fBgenomeCoverageBed\fP will optionally handle “split†BAM and/or +“blocked†BED by using the \fB\-split\fP option. This will cause intersects or coverage to be computed only +for the alignment or feature blocks. In contrast, without this option, the intersects/coverage would be +computed for the entire “span†of the alignment or feature, regardless of the size of the gaps between +each alignment or feature block. For example, imagine you have a RNA\-seq read that originates from +the junction of two exons that were spliced together in a mRNA. In the genome, these two exons +happen to be 30Kb apart. Thus, when the read is aligned to the reference genome, one portion of the +read will align to the first exon, while another portion of the read will align ca. 30Kb downstream to the +other exon. The corresponding CIGAR string would be something like (assuming a 76bp read): +30M*3000N*46M. In the genome, this alignment “spans†3076 bp, yet the nucleotides in the sequencing +read only align “cover†76bp. Without the \fB\-split\fP option, coverage or overlaps would be reported for the +entire 3076bp span of the alignment. However, with the \fB\-split\fP option, coverage or overlaps will only +be reported for the portions of the read that overlap the exons (i.e. 30bp on one exon, and +46bp on the other). +.sp +Using the \-split option with bamToBed causes “spliced/split†alignments to be reported in BED12 +format. Using the \-split option with bed12ToBed6 causes “blocked†BED12 features to be reported in +BED6 format. +.SS 1.3.19 Writing uncompressed BAM output. +.sp +When working with a large BAM file using a complex set of tools in a pipe/stream, it is advantageous +to pass uncompressed BAM output to each downstream program. This minimizes the amount of time +spent compressing and decompressing output from one program to the next. All BEDTools that create +BAM output (e.g. \fBintersectBed\fP, \fBwindowBed\fP) will now optionally create uncompressed BAM output +using the \fB\-ubam\fP option. +.SS 1.4 Implementation and algorithmic notes. +.sp +BEDTools was implemented in C++ and makes extensive use of data structures and fundamental +algorithms from the Standard Template Library (STL). Many of the core algorithms are based upon the +genome binning algorithm described in the original UCSC Genome Browser paper (Kent et al, 2002). +The tools have been designed to inherit core data structures from central source files, thus allowing +rapid tool development and deployment of improvements and corrections. Support for BAM files is +made possible through Derek Barnett’s elegant C++ API called BamTools. +.SS 1.5 License and availability. +.sp +BEDTools is freely available under a GNU Public License (Version 2) at: +\fI\%http://bedtools.googlecode.com\fP +.SS 1.6 Mailing list. +.sp +A discussion group for reporting bugs, asking questions of the developer and of the user community, as +well as for requesting new features is available at: +\fI\%http://groups.google.com/group/bedtools-discuss\fP +.SS 1.7 Contributors. +.sp +As open\-source software, BEDTools greatly benefits from contributions made by other developers and +users of the tools. We encourage and welcome suggestions, contributions and complaints. This is how +software matures, improves and stays on top of the needs of its user community. The Google Code +(GC) site maintains a list of individuals who have contributed either source code or useful ideas for +improving the tools. In the near future, we hope to maintain a source repository on the GC site in +order to facilitate further contributions. We are currently unable to do so because we use Git for +version control, which is not yet supported by GC. +.SH INSTALLATION +.sp +BEDTools is intended to run in a "command line" environment on UNIX, LINUX and Apple OS X +operating systems. Installing BEDTools involves downloading the latest source code archive followed by +compiling the source code into binaries on your local system. The following commands will install +BEDTools in a local directory on a NIX or OS X machine. Note that the \fB"<version>"\fP refers to the +latest posted version number on \fI\%http://bedtools.googlecode.com/\fP. +.sp +Note: \fIThe BEDTools "makefiles" use the GCC compiler. One should edit the Makefiles accordingly if +one wants to use a different compiler.\fP: +.sp +.nf +.ft C +curl http://bedtools.googlecode.com/files/BEDTools.<version>.tar.gz > BEDTools.tar.gz +tar \-zxvf BEDTools.tar.gz +cd BEDTools\-<version> +make clean +make all +ls bin +.ft P +.fi +.sp +At this point, one should copy the binaries in BEDTools/bin/ to either usr/local/bin/ or some +other repository for commonly used UNIX tools in your environment. You will typically require +administrator (e.g. "root" or "sudo") privileges to copy to usr/local/bin/. If in doubt, contact you +system administrator for help. +.SH QUICK START +.SS Install BEDTools +.sp +.nf +.ft C +curl http://bedtools.googlecode.com/files/BEDTools.<version>.tar.gz > BEDTools.tar.gz +tar \-zxvf BEDTools.tar.gz +cd BEDTools +make clean +make all +sudo cp bin/* /usr/local/bin/ +.ft P +.fi +.SS Use BEDTools +.sp +Below are examples of typical BEDTools usage. \fBAdditional usage examples are described in +section 6 of this manual.\fP Using the "\-h" option with any BEDTools will report a list of all command +line options. +.sp +A. Report the base\-pair overlap between the features in two BED files. +.sp +.nf +.ft C +intersectBed \-a reads.bed \-b genes.bed +.ft P +.fi +.sp +B. Report those entries in A that overlap NO entries in B. Like "grep \-v" +.sp +.nf +.ft C +intersectBed \-a reads.bed \-b genes.bed ?Cv +.ft P +.fi +.sp +C. Read BED A from stdin. Useful for stringing together commands. For example, find genes that overlap LINEs +but not SINEs. +.sp +.nf +.ft C +intersectBed \-a genes.bed \-b LINES.bed | intersectBed \-a stdin \-b SINEs.bed ?Cv +.ft P +.fi +.sp +D. Find the closest ALU to each gene. +.sp +.nf +.ft C +closestBed \-a genes.bed \-b ALUs.bed +.ft P +.fi +.sp +E. Merge overlapping repetitive elements into a single entry, returning the number of entries merged. +.sp +.nf +.ft C +mergeBed \-i repeatMasker.bed \-n +.ft P +.fi +.sp +F. Merge nearby repetitive elements into a single entry, so long as they are within 1000 bp of one another. +.sp +.nf +.ft C +mergeBed \-i repeatMasker.bed \-d 1000 +.ft P +.fi +.SH GENERAL USAGE +.SS 4.1 Supported file formats +.SS 4.1.1 BED format +.sp +As described on the UCSC Genome Browser website (see link below), the BED format is a concise and +flexible way to represent genomic features and annotations. The BED format description supports up to +12 columns, but only the first 3 are required for the UCSC browser, the Galaxy browser and for +BEDTools. BEDTools allows one to use the "BED12" format (that is, all 12 fields listed below). +However, only intersectBed, coverageBed, genomeCoverageBed, and bamToBed will obey the BED12 +"blocks" when computing overlaps, etc., via the \fB"\-split"\fP option. For all other tools, the last six columns +are not used for any comparisons by the BEDTools. Instead, they will use the entire span (start to end) +of the BED12 entry to perform any relevant feature comparisons. The last six columns will be reported +in the output of all comparisons. +.sp +The file description below is modified from: \fI\%http://genome.ucsc.edu/FAQ/FAQformat#format1\fP. +.INDENT 0.0 +.IP 1. 3 +\fBchrom\fP \- The name of the chromosome on which the genome feature exists. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIAny string can be used\fP. For example, "chr1", "III", "myChrom", "contig1112.23". +.IP \(bu 2 +\fIThis column is required\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 2. 3 +\fBstart\fP \- The zero\-based starting position of the feature in the chromosome. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIThe first base in a chromosome is numbered 0\fP. +.IP \(bu 2 +\fIThe start position in each BED feature is therefore interpreted to be 1 greater than the start position listed in the feature. For example, start=9, end=20 is interpreted to span bases 10 through 20,inclusive\fP. +.IP \(bu 2 +\fIThis column is required\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 3. 3 +\fBend\fP \- The one\-based ending position of the feature in the chromosome. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIThe end position in each BED feature is one\-based. See example above\fP. +.IP \(bu 2 +\fIThis column is required\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 4. 3 +\fBname\fP \- Defines the name of the BED feature. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIAny string can be used\fP. For example, "LINE", "Exon3", "HWIEAS_0001:3:1:0:266#0/1", or "my_Feature". +.IP \(bu 2 +\fIThis column is optional\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 5. 3 +\fBscore\fP \- The UCSC definition requires that a BED score range from 0 to 1000, inclusive. However, BEDTools allows any string to be stored in this field in order to allow greater flexibility in annotation features. For example, strings allow scientific notation for p\-values, mean enrichment values, etc. It should be noted that this flexibility could prevent such annotations from being correctly displayed on the UCSC browser. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIAny string can be used\fP. For example, 7.31E\-05 (p\-value), 0.33456 (mean enrichment value), "up", "down", etc. +.IP \(bu 2 +\fIThis column is optional\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 6. 3 +\fBstrand\fP \- Defines the strand \- either \(aq+\(aq or \(aq\-\(aq. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIThis column is optional\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 7. 3 +\fBthickStart\fP \- The starting position at which the feature is drawn thickly. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIAllowed yet ignored by BEDTools\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 8. 3 +\fBthickEnd\fP \- The ending position at which the feature is drawn thickly. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIAllowed yet ignored by BEDTools\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 9. 3 +\fBitemRgb\fP \- An RGB value of the form R,G,B (e.g. 255,0,0). +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIAllowed yet ignored by BEDTools\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 10. 3 +\fBblockCount\fP \- The number of blocks (exons) in the BED line. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIAllowed yet ignored by BEDTools\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 11. 4 +\fBblockSizes\fP \- A comma\-separated list of the block sizes. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIAllowed yet ignored by BEDTools\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 12. 4 +\fBblockStarts\fP \- A comma\-separated list of block starts. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIAllowed yet ignored by BEDTools\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.sp +BEDTools requires that all BED input files (and input received from stdin) are \fBtab\-delimited\fP. The following types of BED files are supported by BEDTools: +.INDENT 0.0 +.IP 1. 3 +.nf +\fBBED3\fP: A BED file where each feature is described by \fBchrom\fP, \fBstart\fP, and \fBend\fP. +For example: chr1 11873 14409 +.fi +.sp +.IP 2. 3 +.nf +\fBBED4\fP: A BED file where each feature is described by \fBchrom\fP, \fBstart\fP, \fBend\fP, and \fBname\fP. +For example: chr1 11873 14409 uc001aaa.3 +.fi +.sp +.IP 3. 3 +.nf +\fBBED5\fP: A BED file where each feature is described by \fBchrom\fP, \fBstart\fP, \fBend\fP, \fBname\fP, and \fBscore\fP. +For example: chr1 11873 14409 uc001aaa.3 0 +.fi +.sp +.IP 4. 3 +.nf +\fBBED6\fP: A BED file where each feature is described by \fBchrom\fP, \fBstart\fP, \fBend\fP, \fBname\fP, \fBscore\fP, and \fBstrand\fP. +For example: chr1 11873 14409 uc001aaa.3 0 + +.fi +.sp +.IP 5. 3 +.nf +\fBBED12\fP: A BED file where each feature is described by all twelve columns listed above. +For example: chr1 11873 14409 uc001aaa.3 0 + 11873 +11873 0 3 354,109,1189, 0,739,1347, +.fi +.sp +.UNINDENT +.SS 4.1.2 BEDPE format +.sp +We have defined a new file format (BEDPE) in order to concisely describe disjoint genome features, +such as structural variations or paired\-end sequence alignments. We chose to define a new format +because the existing "blocked" BED format (a.k.a. BED12) does not allow inter\-chromosomal feature +definitions. In addition, BED12 only has one strand field, which is insufficient for paired\-end sequence +alignments, especially when studying structural variation. +.sp +The BEDPE format is described below. The description is modified from: \fI\%http://genome.ucsc.edu/FAQ/FAQformat#format1\fP. +.INDENT 0.0 +.IP 1. 3 +\fBchrom1\fP \- The name of the chromosome on which the \fBfirst\fP end of the feature exists. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIAny string can be used\fP. For example, "chr1", "III", "myChrom", "contig1112.23". +.IP \(bu 2 +\fIThis column is required\fP. +.IP \(bu 2 +\fIUse "." for unknown\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 2. 3 +\fBstart1\fP \- The zero\-based starting position of the \fBfirst\fP end of the feature on \fBchrom1\fP. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIThe first base in a chromosome is numbered 0\fP. +.IP \(bu 2 +\fIAs with BED format, the start position in each BEDPE feature is therefore interpreted to be 1 greater than the start position listed in the feature. This column is required\fP. +.IP \(bu 2 +\fIUse \-1 for unknown\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 3. 3 +\fBend1\fP \- The one\-based ending position of the first end of the feature on \fBchrom1\fP. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIThe end position in each BEDPE feature is one\-based\fP. +.IP \(bu 2 +\fIThis column is required\fP. +.IP \(bu 2 +\fIUse \-1 for unknown\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 4. 3 +\fBchrom2\fP \- The name of the chromosome on which the \fBsecond\fP end of the feature exists. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIAny string can be used\fP. For example, "chr1", "III", "myChrom", "contig1112.23". +.IP \(bu 2 +\fIThis column is required\fP. +.IP \(bu 2 +\fIUse "." for unknown\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 5. 3 +\fBstart2\fP \- The zero\-based starting position of the \fBsecond\fP end of the feature on \fBchrom2\fP. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIThe first base in a chromosome is numbered 0\fP. +.IP \(bu 2 +\fIAs with BED format, the start position in each BEDPE feature is therefore interpreted to be 1 greater than the start position listed in the feature. This column is required\fP. +.IP \(bu 2 +\fIUse \-1 for unknown\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 6. 3 +\fBend2\fP \- The one\-based ending position of the \fBsecond\fP end of the feature on \fBchrom2\fP. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIThe end position in each BEDPE feature is one\-based\fP. +.IP \(bu 2 +\fIThis column is required\fP. +.IP \(bu 2 +\fIUse \-1 for unknown\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 7. 3 +\fBname\fP \- Defines the name of the BEDPE feature. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIAny string can be used\fP. For example, "LINE", "Exon3", "HWIEAS_0001:3:1:0:266#0/1", or "my_Feature". +.IP \(bu 2 +\fIThis column is optional\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 8. 3 +\fBscore\fP \- The UCSC definition requires that a BED score range from 0 to 1000, inclusive. \fIHowever, BEDTools allows any string to be stored in this field in order to allow greater flexibility in annotation features\fP. For example, strings allow scientific notation for p\-values, mean enrichment values, etc. It should be noted that this flexibility could prevent such annotations from being correctly displayed on the UCSC browser. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIAny string can be used\fP. For example, 7.31E\-05 (p\-value), 0.33456 (mean enrichment value), "up", "down", etc. +.IP \(bu 2 +\fIThis column is optional\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 9. 3 +\fBstrand1\fP \- Defines the strand for the first end of the feature. Either \(aq+\(aq or \(aq\-\(aq. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIThis column is optional\fP. +.IP \(bu 2 +\fIUse "." for unknown\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 10. 3 +\fBstrand2\fP \- Defines the strand for the second end of the feature. Either \(aq+\(aq or \(aq\-\(aq. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIThis column is optional\fP. +.IP \(bu 2 +\fIUse "." for unknown\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 11. 4 +\fBAny number of additional, user\-defined fields\fP \- BEDTools allows one to add as many additional fields to the normal, 10\-column BEDPE format as necessary. These columns are merely "passed through" \fBpairToBed\fP and \fBpairToPair\fP and are not part of any analysis. One would use these additional columns to add extra information (e.g., edit distance for each end of an alignment, or "deletion", "inversion", etc.) to each BEDPE feature. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIThese additional columns are optional\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.sp +Entries from an typical BEDPE file: +.sp +.nf +.ft C +chr1 100 200 chr5 5000 5100 bedpe_example1 30 + \- +chr9 1000 5000 chr9 3000 3800 bedpe_example2 100 + \- +.ft P +.fi +.sp +Entries from a BEDPE file with two custom fields added to each record: +.sp +.nf +.ft C +chr1 10 20 chr5 50 60 a1 30 + \- 0 1 +chr9 30 40 chr9 80 90 a2 100 + \- 2 1 +.ft P +.fi +.SS 4.1.3 GFF format +.sp +The GFF format is described on the Sanger Institute\(aqs website (\fI\%http://www.sanger.ac.uk/resources/software/gff/spec.html\fP). The GFF description below is modified from the definition at this URL. All nine columns in the GFF format description are required by BEDTools. +.INDENT 0.0 +.IP 1. 3 +\fBseqname\fP \- The name of the sequence (e.g. chromosome) on which the feature exists. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIAny string can be used\fP. For example, "chr1", "III", "myChrom", "contig1112.23". +.IP \(bu 2 +\fIThis column is required\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 2. 3 +\fBsource\fP \- The source of this feature. This field will normally be used to indicate the program making the prediction, or if it comes from public database annotation, or is experimentally verified, etc. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIThis column is required\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 3. 3 +\fBfeature\fP \- The feature type name. Equivalent to BED\(aqs \fBname\fP field. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIAny string can be used\fP. For example, "exon", etc. +.IP \(bu 2 +\fIThis column is required\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 4. 3 +\fBstart\fP \- The one\-based starting position of feature on \fBseqname\fP. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIThis column is required\fP. +.IP \(bu 2 +\fIBEDTools accounts for the fact the GFF uses a one\-based position and BED uses a zero\-based start position\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 5. 3 +\fBend\fP \- The one\-based ending position of feature on \fBseqname\fP. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIThis column is required\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 6. 3 +\fBscore\fP \- A score assigned to the GFF feature. Like BED format, BEDTools allows any string to be stored in this field in order to allow greater flexibility in annotation features. We note that this differs from the GFF definition in the interest of flexibility. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIThis column is required\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 7. 3 +\fBstrand\fP \- Defines the strand. Use \(aq+\(aq, \(aq\-\(aq or \(aq.\(aq +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIThis column is required\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 8. 3 +\fBframe\fP \- The frame of the coding sequence. Use \(aq0\(aq, \(aq1\(aq, \(aq2\(aq, or \(aq.\(aq. +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIThis column is required\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.INDENT 0.0 +.IP 9. 3 +\fBattribute\fP \- Taken from \fI\%http://www.sanger.ac.uk/resources/software/gff/spec.html\fP: From version 2 onwards, the attribute field must have an tag value structure following the syntax used within objects in a .ace file, flattened onto one line by semicolon separators. Tags must be standard identifiers ([A\-Za\-z][ +.nf +AZa\-z0\-9_ +.fi +]*). Free text values must be quoted with double quotes. \fINote: all non\-printing characters in such free text value strings (e.g. newlines, tabs, control characters, etc) must be explicitly represented by their C (UNIX) style backslash\-escaped representation (e.g. newlines as \(aqn\(aq, tabs as \(aqt\(aq)\fP. As in ACEDB, multiple values can follow a specific tag. The aim is to establish consistent use of particular tags, corresponding to an underlying implied ACEDB model if you want to think that way (but acedb is not required). +.UNINDENT +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fIThis column is required\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.sp +An entry from an example GFF file : +.sp +.nf +.ft C +seq1 BLASTX similarity 101 235 87.1 + 0 Target "HBA_HUMAN" 11 55 ; +E_value 0.0003 dJ102G20 GD_mRNA coding_exon 7105 7201 . \- 2 Sequence +"dJ102G20.C1.1" +.ft P +.fi +.SS 4.1.3 GFF format +.sp +Some of the BEDTools (e.g., genomeCoverageBed, complementBed, slopBed) need to know the size of +the chromosomes for the organism for which your BED files are based. When using the UCSC Genome +Browser, Ensemble, or Galaxy, you typically indicate which which species/genome build you are +working. The way you do this for BEDTools is to create a "genome" file, which simply lists the names of +the chromosomes (or scaffolds, etc.) and their size (in basepairs). +.sp +Genome files must be \fBtab\-delimited\fP and are structured as follows (this is an example for \fIC. elegans\fP): +.sp +.nf +.ft C +chrI 15072421 +chrII 15279323 +\&... +chrX 17718854 +chrM 13794 +.ft P +.fi +.sp +BEDTools includes pre\-defined genome files for human and mouse in the \fB/genomes\fP directory included +in the BEDTools distribution. +.SS 4.1.5 SAM/BAM format +.sp +The SAM / BAM format is a powerful and widely\-used format for storing sequence alignment data (see +\fI\%http://samtools.sourceforge.net/\fP for more details). It has quickly become the standard format to which +most DNA sequence alignment programs write their output. Currently, the following BEDTools +support inout in BAM format: \fIintersectBed, windowBed, coverageBed, genomeCoverageBed, +pairToBed, bamToBed\fP. Support for the BAM format in BEDTools allows one to (to name a few): +compare sequence alignments to annotations, refine alignment datasets, screen for potential mutations +and compute aligned sequence coverage. +.sp +The details of how these tools work with BAM files are addressed in \fBSection 5\fP of this manual. +.SS 4.1.6 VCF format +.sp +The Variant Call Format (VCF) was conceived as part of the 1000 Genomes Project as a standardized +means to report genetic variation calls from SNP, INDEL and structural variant detection programs +(see \fI\%http://www.1000genomes.org/wiki/doku.php?id=1000_genomes:analysis:vcf4.0\fP for details). +BEDTools now supports the latest version of this format (i.e, Version 4.0). As a result, BEDTools can +be used to compare genetic variation calls with other genomic features. +.SH THE BEDTOOLS SUITE +.sp +This section covers the functionality and default / optional usage for each of the available BEDTools. +Example "figures" are provided in some cases in an effort to convey the purpose of the tool. The +behavior of each available parameter is discussed for each tool in abstract terms. More concrete usage +examples are provided in \fBSection 6\fP. +.SS Table of contents +.SS 5.1 intersectBed +.sp +By far, the most common question asked of two sets of genomic features is whether or not any of the +features in the two sets "overlap" with one another. This is known as feature intersection. \fBintersectBed\fP +allows one to screen for overlaps between two sets of genomic features. Moreover, it allows one to have +fine control as to how the intersections are reported. \fBintersectBed\fP works with both BED/GFF/VCF +and BAM files as input. +.SS 5.1.1 Usage and option summary +.sp +\fBUsage\fP: +.sp +.nf +.ft C +intersectBed [OPTIONS] [\-a <BED/GFF/VCF> || \-abam <BAM>] \-b <BED/GFF/VCF> +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-a\fP +T} T{ +BED/GFF/VCF file A. Each feature in A is compared to B in search of overlaps. Use "stdin" if passing A with a UNIX pipe. +T} +_ +T{ +\fB\-b\fP +T} T{ +BED/GFF/VCF file B. Use "stdin" if passing B with a UNIX pipe. +T} +_ +T{ +\fB\-abam\fP +T} T{ +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> | intersectBed \-abam stdin \-b genes.bed +T} +_ +T{ +\fB\-ubam\fP +T} T{ +Write uncompressed BAM output. The default is write compressed BAM output. +T} +_ +T{ +\fB\-bed\fP +T} T{ +When using BAM input (\-abam), write output as BED. The default is to write output in BAM when using \-abam. For example: intersectBed \-abam reads.bam \-b genes.bed \-bed +T} +_ +T{ +\fB\-wa\fP +T} T{ +Write the original entry in A for each overlap. +T} +_ +T{ +\fB\-wb\fP +T} T{ +Write the original entry in B for each overlap. Useful for knowing what A overlaps. Restricted by \-f and \-r. +T} +_ +T{ +\fB\-wo\fP +T} T{ +Write the original A and B entries plus the number of base pairs of overlap between the two features. Only A features with overlap are reported. Restricted by \-f and \-r. +T} +_ +T{ +\fB\-wao\fP +T} T{ +Write the original A and B entries plus the number of base pairs of overlap between the two features. However, A features w/o overlap are also reported with a NULL B feature and overlap = 0. Restricted by \-f and \-r. +T} +_ +T{ +\fB\-u\fP +T} T{ +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. Restricted by \-f and \-r. +T} +_ +T{ +\fB\-c\fP +T} T{ +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. Restricted by \-f and \-r. +T} +_ +T{ +\fB\-v\fP +T} T{ +Only report those entries in A that have no overlap in B. Restricted by \-f and \-r. +T} +_ +T{ +\fB\-f\fP +T} T{ +Minimum overlap required as a fraction of A. Default is 1E\-9 (i.e. 1bp). +T} +_ +T{ +\fB\-r\fP +T} T{ +Require that the fraction of overlap be reciprocal for A and B. In other words, if \-f is 0.90 and \-r is used, this requires that B overlap at least 90% of A and that A also overlaps at least 90% of B. +T} +_ +T{ +\fB\-s\fP +T} T{ +Force "strandedness". That is, only report hits in B that overlap A on the same strand. By default, overlaps are reported without respect to strand. +T} +_ +T{ +\fB\-split\fP +T} T{ +Treat "split" BAM (i.e., having an "N" CIGAR operation) or BED12 entries as distinct BED intervals. +T} +_ +.TE +.SS 5.1.2 Default behavior +.sp +By default, if an overlap is found, \fBintersectBed\fP reports the shared interval between the two +overlapping features. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BED/BAM A ******************* ************* + +BED File B ^^^^^^^^ + +Result ======== +.ft P +.fi +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 100 200 +chr1 1000 2000 + +cat B.bed +chr1 150 250 + +intersectBed \-a A.bed \-b B.bed +chr1 150 200 +.ft P +.fi +.SS 5.1.3 (\-wa)Reporting the original A feature +.sp +Instead, one can force \fBintersectBed\fP to report the \fIoriginal\fP \fB"A"\fP feature when an overlap is found. As +shown below, the entire "A" feature is reported, not just the portion that overlaps with the "B" feature. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BED/BAM A ******************* ************* + +BED File B ^^^^^^^^ + +Result =================== +.ft P +.fi +.sp +For example (compare with example from default behavior): +.sp +.nf +.ft C +cat A.bed +chr1 100 200 +chr1 1000 2000 + +cat B.bed +chr1 150 250 + +intersectBed \-a A.bed \-b B.bed \-wa +chr1 100 200 +.ft P +.fi +.SS 5.1.4 (\-wb)Reporting the original B feature +.sp +Similarly, one can force \fBintersectBed\fP to report the \fIoriginal\fP \fB"B"\fP feature when an overlap is found. If +just \-wb is used, the overlapping portion of A will be reported followed by the \fIoriginal\fP \fB"B"\fP. If both \-wa +and \-wb are used, the \fIoriginals\fP of both \fB"A"\fP and \fB"B"\fP will be reported. +.sp +For example (\-wb alone): +.sp +.nf +.ft C +cat A.bed +chr1 100 200 +chr1 1000 2000 + +cat B.bed +chr1 150 250 + +intersectBed \-a A.bed \-b B.bed \-wb +chr1 150 200 chr1 150 250 +.ft P +.fi +.sp +Now \-wa and \-wb: +.sp +.nf +.ft C +cat A.bed +chr1 100 200 +chr1 1000 2000 + +cat B.bed +chr1 150 250 + +intersectBed \-a A.bed \-b B.bed \-wa \-wb +chr1 100 200 chr1 150 250 +.ft P +.fi +.SS 5.1.5 (\-u)Reporting the presence of \fIat least one\fP overlapping feature +.sp +Frequently a feature in "A" will overlap with multiple features in "B". By default, \fBintersectBed\fP will +report each overlap as a separate output line. However, one may want to simply know that there is at +least one overlap (or none). When one uses the \-u option, "A" features that overlap with one or more +"B" features are reported once. Those that overlap with no "B" features are not reported at all. +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 100 200 +chr1 1000 2000 + +cat B.bed +chr1 101 201 +chr1 120 220 + +intersectBed \-a A.bed \-b B.bed \-u +chr1 100 200 +.ft P +.fi +.SS 5.1.6 (\-c)Reporting the number of overlapping features +.sp +The \-c option reports a column after each "A" feature indicating the \fInumber\fP (0 or more) of overlapping +features found in "B". Therefore, \fIeach feature in A is reported once\fP. +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 100 200 +chr1 1000 2000 + +cat B.bed +chr1 101 201 +chr1 120 220 + +intersectBed \-a A.bed \-b B.bed \-c +chr1 100 200 2 +chr1 1000 2000 0 +.ft P +.fi +.SS 5.1.6 (\-c)Reporting the number of overlapping features +.sp +The \-c option reports a column after each "A" feature indicating the \fInumber\fP (0 or more) of overlapping +features found in "B". Therefore, \fIeach feature in A is reported once\fP. +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 100 200 +chr1 1000 2000 + +cat B.bed +chr1 101 201 +chr1 120 220 + +intersectBed \-a A.bed \-b B.bed \-c +chr1 100 200 2 +chr1 1000 2000 0 +.ft P +.fi +.SS 5.1.7 (\-v)Reporting the absence of any overlapping features +.sp +There will likely be cases where you\(aqd like to know which "A" features do not overlap with any of the +"B" features. Perhaps you\(aqd like to know which SNPs don\(aqt overlap with any gene annotations. The \-v +(an homage to "grep \-v") option will only report those "A" features that have no overlaps in "B". +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 100 200 +chr1 1000 2000 + +cat B.bed +chr1 101 201 +chr1 120 220 + +intersectBed \-a A.bed \-b B.bed \-v +chr1 1000 2000 +.ft P +.fi +.SS 5.1.8 (\-f)Requiring a minimal overlap fraction +.sp +By default, \fBintersectBed\fP will report an overlap between A and B so long as there is at least one base +pair is overlapping. Yet sometimes you may want to restrict reported overlaps between A and B to cases +where the feature in B overlaps at least X% (e.g. 50%) of the A feature. The \-f option does exactly +this. +.sp +For example (note that the second B entry is not reported): +.sp +.nf +.ft C +cat A.bed +chr1 100 200 + +cat B.bed +chr1 130 201 +chr1 180 220 + +intersectBed \-a A.bed \-b B.bed \-f 0.50 \-wa \-wb +chr1 100 200 chr1 130 201 +.ft P +.fi +.SS 5.1.9 (\-r, combined with \-f)Requiring reciprocal minimal overlap fraction +.sp +Similarly, you may want to require that a minimal fraction of both the A and the B features is +overlapped. For example, if feature A is 1kb and feature B is 1Mb, you might not want to report the +overlap as feature A can overlap at most 1% of feature B. If one set \-f to say, 0.02, and one also +enable the \-r (reciprocal overlap fraction required), this overlap would not be reported. +.sp +For example (note that the second B entry is not reported): +.sp +.nf +.ft C +cat A.bed +chr1 100 200 + +cat B.bed +chr1 130 201 +chr1 130 200000 + +intersectBed \-a A.bed \-b B.bed \-f 0.50 \-r \-wa \-wb +chr1 100 200 chr1 130 201 +.ft P +.fi +.SS 5.1.10 (\-s)Enforcing "strandedness" +.sp +By default, \fBintersectBed\fP will report overlaps between features even if the features are on opposite +strands. However, if strand information is present in both BED files and the "\-s" option is used, overlaps +will only be reported when features are on the same strand. +.sp +For example (note that the second B entry is not reported): +.sp +.nf +.ft C +cat A.bed +chr1 100 200 a1 100 + + +cat B.bed +chr1 130 201 b1 100 \- +chr1 130 201 b2 100 + + +intersectBed \-a A.bed \-b B.bed \-wa \-wb \-s +chr1 100 200 a1 100 + chr1 130 201 b2 100 + +.ft P +.fi +.SS 5.1.11 (\-abam)Default behavior when using BAM input +.sp +When comparing alignments in BAM format (\fB\-abam\fP) to features in BED format (\fB\-b\fP), \fBintersectBed\fP +will, \fBby default\fP, write the output in BAM format. That is, each alignment in the BAM file that meets +the user\(aqs criteria will be written (to standard output) in BAM format. This serves as a mechanism to +create subsets of BAM alignments are of biological interest, etc. Note that only the mate in the BAM +alignment is compared to the BED file. Thus, if only one end of a paired\-end sequence overlaps with a +feature in B, then that end will be written to the BAM output. By contrast, the other mate for the +pair will not be written. One should use \fBpairToBed(Section 5.2)\fP if one wants each BAM alignment +for a pair to be written to BAM output. +.sp +For example: +.sp +.nf +.ft C +intersectBed \-abam reads.unsorted.bam \-b simreps.bed | samtools view \- | head \-3 + +BERTHA_0001:3:1:15:1362#0 99 chr4 9236904 0 50M = 9242033 5 1 7 9 +AGACGTTAACTTTACACACCTCTGCCAAGGTCCTCATCCTTGTATTGAAG W c T U ] b \e g c e g X g f c b f c c b d d g g V Y P W W _ +\ec\(gadcdabdfW^a^gggfgd XT:A:R NM:i:0 SM:i:0 AM:i:0 X0:i:19 X1:i:2 XM:i:0 XO:i:0 XG:i:0 MD:Z:50 +BERTHA _0001:3:1:16:994#0 83 chr6 114221672 37 25S6M1I11M7S = +114216196 \-5493 G A A A G G C C A G A G T A T A G A A T A A A C A C A A C A A T G T C C A A G G T A C A C T G T T A +gffeaaddddggggggedgcgeggdegggggffcgggggggegdfggfgf XT:A:M NM:i:3 SM:i:37 AM:i:37 XM:i:2 X O : i : +1 XG:i:1 MD:Z:6A6T3 +BERTHA _0001:3:1:16:594#0 147 chr8 43835330 0 50M = +43830893 \-4487 CTTTGGGAGGGCTTTGTAGCCTATCTGGAAAAAGGAAATATCTTCCCATG U +\ee^bgeTdg_Kgcg\(gaggeggg_gggggggggddgdggVg\egWdfgfgff XT:A:R NM:i:2 SM:i:0 AM:i:0 X0:i:10 X1:i:7 X M : i : +2 XO:i:0 XG:i:0 MD:Z:1A2T45 +.ft P +.fi +.SS 5.1.12 (\-bed)Output BED format when using BAM input +.sp +When comparing alignments in BAM format (\fB\-abam\fP) to features in BED format (\fB\-b\fP), \fBintersectBed\fP +will \fBoptionally\fP write the output in BED format. That is, each alignment in the BAM file is converted +to a 6 column BED feature and if overlaps are found (or not) based on the user\(aqs criteria, the BAM +alignment will be reported in BED format. The BED "name" field is comprised of the RNAME field in +the BAM alignment. If mate information is available, the mate (e.g., "/1" or "/2") field will be +appended to the name. The "score" field is the mapping quality score from the BAM alignment. +.sp +For example: +.sp +.nf +.ft C +intersectBed \-abam reads.unsorted.bam \-b simreps.bed \-bed | head \-20 + +chr4 9236903 9236953 BERTHA_0001:3:1:15:1362#0/1 0 + +chr6 114221671 114221721 BERTHA_0001:3:1:16:994#0/1 37 \- +chr8 43835329 43835379 BERTHA_0001:3:1:16:594#0/2 0 \- +chr4 49110668 49110718 BERTHA_0001:3:1:31:487#0/1 23 + +chr19 27732052 27732102 BERTHA_0001:3:1:32:890#0/2 46 + +chr19 27732012 27732062 BERTHA_0001:3:1:45:1135#0/1 37 + +chr10 117494252 117494302 BERTHA_0001:3:1:68:627#0/1 37 \- +chr19 27731966 27732016 BERTHA_0001:3:1:83:931#0/2 9 + +chr8 48660075 48660125 BERTHA_0001:3:1:86:608#0/2 37 \- +chr9 34986400 34986450 BERTHA_0001:3:1:113:183#0/2 37 \- +chr10 42372771 42372821 BERTHA_0001:3:1:128:1932#0/1 3 \- +chr19 27731954 27732004 BERTHA_0001:3:1:130:1402#0/2 0 + +chr10 42357337 42357387 BERTHA_0001:3:1:137:868#0/2 9 + +chr1 159720631 159720681 BERTHA_0001:3:1:147:380#0/2 37 \- +chrX 58230155 58230205 BERTHA_0001:3:1:151:656#0/2 37 \- +chr5 142612746 142612796 BERTHA_0001:3:1:152:1893#0/1 37 \- +chr9 71795659 71795709 BERTHA_0001:3:1:177:387#0/1 37 + +chr1 106240854 106240904 BERTHA_0001:3:1:194:928#0/1 37 \- +chr4 74128456 74128506 BERTHA_0001:3:1:221:724#0/1 37 \- +chr8 42606164 42606214 BERTHA_0001:3:1:244:962#0/1 37 + +.ft P +.fi +.SS 5.1.13 (\-split)Reporting overlaps with spliced alignments or blocked BED features +.sp +As described in section 1.3.19, intersectBed will, by default, screen for overlaps against the entire span +of a spliced/split BAM alignment or blocked BED12 feature. When dealing with RNA\-seq reads, for +example, one typically wants to only screen for overlaps for the portions of the reads that come from +exons (and ignore the interstitial intron sequence). The \fB\-split\fP command allows for such overlaps to be +performed. +.sp +For example, the diagram below illustrates the \fIdefault\fP behavior. The blue dots represent the "split/ +spliced" portion of the alignment (i.e., CIGAR "N" operation). In this case, the two exon annotations +are reported as overlapping with the "split" BAM alignment, but in addition, a third feature that +overlaps the "split" portion of the alignment is also reported. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Exons \-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\- + +BED/BAM A ************.......................................**** + +BED File B ^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ + +Result =============== ======== ========== +.ft P +.fi +.sp +In contrast, when using the \fB\-split\fP option, only the exon overlaps are reported. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Exons \-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\- + +BED/BAM A ************.......................................**** + +BED File B ^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ + +Result =============== ========== +.ft P +.fi +.SS 5.2 pairToBed +.sp +\fBpairToBed\fP compares each end of a BEDPE feature or a paired\-end BAM alignment to a feature file in +search of overlaps. +.sp +\fBNOTE: pairToBed requires that the BAM file is sorted/grouped by the read name. This +allows pairToBed to extract correct alignment coordinates for each end based on their +respective CIGAR strings. It also assumes that the alignments for a given pair come in +groups of twos. There is not yet a standard method for reporting multiple alignments +using BAM. pairToBed will fail if an aligner does not report alignments in pairs.\fP +.SS 5.2.1 Usage and option summary +.sp +\fBUsage:\fP +.sp +.nf +.ft C +pairToBed [OPTIONS] [\-a <BEDPE> || \-abam <BAM>] \-b <BED/GFF/VCF> +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-a\fP +T} T{ +BEDPE file A. Each feature in A is compared to B in search of overlaps. Use "stdin" if passing A with a UNIX pipe. Output will be in BEDPE format. +T} +_ +T{ +\fB\-b\fP +T} T{ +BED file B. Use "stdin" if passing B with a UNIX pipe. +T} +_ +T{ +\fB\-abam\fP +T} T{ +BAM file A. Each end of 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 ?Cb <BAM> | pairToBed ?Cabam stdin ?Cb genes.bed | samtools view \- +T} +_ +T{ +\fB\-ubam\fP +T} T{ +Write uncompressed BAM output. The default is write compressed BAM output. +T} +_ +T{ +\fB\-bedpe\fP +T} T{ +When using BAM input (\-abam), write output as BEDPE. The default is to write output in BAM when using \-abam. For example: pairToBed ?Cabam reads.bam ?Cb genes.bed ?Cbedpe +T} +_ +T{ +\fB\-ed\fP +T} T{ +Use BAM total edit distance (NM tag) for BEDPE score. Default for BEDPE is to use the \fIminimum\fP of the two mapping qualities for the pair. When \-ed is used the \fItotal\fP edit distance from the two mates is reported as the score. +T} +_ +T{ +\fB\-f\fP +T} T{ +Minimum overlap required as a fraction of A. Default is 1E\-9 (i.e. 1bp). +T} +_ +T{ +\fB\-s\fP +T} T{ +Force "strandedness". That is, only report hits in B that overlap A on the \fBsame\fP strand. By default, overlaps are reported without respect to strand. +T} +_ +T{ +\fB\-type\fP +T} T{ +Approach to reporting overlaps between BEDPE and BED. +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.INDENT 3.5 +\fBeither\-\fP Report overlaps if either end of A overlaps B. +.INDENT 0.0 +.IP \(bu 2 +\fIDefault\fP +.UNINDENT +.sp +\fBneither\-\fP Report A if neither end of A overlaps B. +.sp +\fBxor\-\fP Report overlaps if one and only one end of A overlaps B. +.sp +\fBboth\-\fP Report overlaps if both ends of A overlap B. +.sp +\fBnotboth\-\fP Report overlaps if neither end or one and only one end of A overlap B. +.sp +\fBispan\-\fP Report overlaps between [end1, start2] of A and B. +.INDENT 0.0 +.IP \(bu 2 +Note: If chrom1 <> chrom2, entry is ignored. +.UNINDENT +.UNINDENT +.UNINDENT +.sp +\fBospan\-\fP Report overlaps between [start1, end2] of A and B. +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +Note: If chrom1 <> chrom2, entry is ignored. +.UNINDENT +.sp +\fBnotispan\-\fP Report A if ispan of A doesn\(aqt overlap B. +\- Note: If chrom1 <> chrom2, entry is ignored. +.sp +\fBnotospan\-\fP Report A if ospan of A doesn\(aqt overlap B. +\- Note: If chrom1 <> chrom2, entry is ignored. +.UNINDENT +.UNINDENT +.UNINDENT +.UNINDENT +T} +_ +.TE +.SS 5.2.2 Default behavior +.sp +By default, a BEDPE / BAM feature will be reported if \fIeither\fP end overlaps a feature in the BED file. +In the example below, the left end of the pair overlaps B yet the right end does not. Thus, BEDPE/ +BAM A is reported since the default is to report A if either end overlaps B. +.sp +Default: Report A if \fIeither\fP end overlaps B. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^^^^^ ^^^^^^ + +Result =====.................................===== +.ft P +.fi +.SS 5.2.3 (\-type)Optional overlap requirements +.sp +Using then \fB\-type\fP option, \fBpairToBed\fP provides several other overlap requirements for controlling how +overlaps between BEDPE/BAM A and BED B are reported. The examples below illustrate how each +option behaves. +.sp +\fB\-type both\fP: Report A only if \fIboth\fP ends overlap B. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^^^^^ ^^^^^^ + +Result + + + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^^^^^ ^^^^^^ + +Result =====.................................===== +.ft P +.fi +.sp +\fB\-type neither\fP: Report A only if \fIneither\fP end overlaps B. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^^^^^ ^^^^^^ + +Result + + + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^ ^^^^^^ + +Result =====.................................===== +.ft P +.fi +.sp +\fB\-type xor\fP: Report A only if \fIone and only one\fP end overlaps B. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^^^^^ ^^^^^^ + +Result =====.................................===== + + + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^ ^^^^^^ + +Result +.ft P +.fi +.sp +\fB\-type notboth\fP: Report A only if \fIneither end\fP \fBor\fP \fIone and only one\fP end overlaps B. Thus "notboth" +includes what would be reported by "neither" and by "xor". +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^^^^^ ^^^^^^ + +Result =====.................................===== + + + +BEDPE/BAM A *****.................................***** + +BED File B ^^^ ^^^^^^ + +Result =====.................................===== + + + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^ ^^^^^^ + +Result +.ft P +.fi +.sp +\fB\-type ispan\fP: Report A if it\(aqs "\fIinner span\fP" overlaps B. Applicable only to intra\-chromosomal features. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Inner span |\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-| + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^^^^^ + +Result =====.................................===== + + + +BEDPE/BAM A =====.................................===== + +BED File B ==== + +Result +.ft P +.fi +.sp +\fB\-type ospan\fP: Report A if it\(aqs "\fIouter span\fP" overlaps B. Applicable only to intra\-chromosomal features. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Outer span |\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-| + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^^^^^^^^^ + +Result =====.................................===== + + + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^ + +Result +.ft P +.fi +.sp +\fB\-type notispan\fP: Report A only if it\(aqs "\fIinner span\fP" does not overlap B. Applicable only to intrachromosomal +features. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Inner span |\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-| + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^^^^^ + +Result + + + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^ + +Result =====.................................===== +.ft P +.fi +.sp +\fB\-type notospan\fP: Report A if it\(aqs "\fIouter span\fP" overlaps B. Applicable only to intra\-chromosomal +features. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Outer span |\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-| + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^^^^^^^^^ + +Result + + + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^ + +Result =====.................................===== +.ft P +.fi +.SS 5.2.4 (\-f)Requiring a minimum overlap fraction +.sp +By default, \fBpairToBed\fP will report an overlap between A and B so long as there is at least one base +pair is overlapping on either end. Yet sometimes you may want to restrict reported overlaps between A +and B to cases where the feature in B overlaps at least X% (e.g. 50%) of A. The \fB?Cf\fP option does exactly +this. The \fB\-f\fP option may also be combined with the \-type option for additional control. For example, +combining \fB\-f 0.50\fP with \fB\-type both\fP requires that both ends of A have at least 50% overlap with a +feature in B. +.sp +For example, report A only at least 50% of one of the two ends is overlapped by B. +.sp +.nf +.ft C +pairToBed \-a A.bedpe \-b B.bed \-f 0.5 + + +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BEDPE/BAM A *****.................................***** + +BED File B ^^ ^^^^^^ + +Result + + + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^ ^^^^^^ + +Result =====.................................===== +.ft P +.fi +.SS 5.2.5 (\-s)Enforcing "strandedness" +.sp +By default, \fBpairToBed\fP will report overlaps between features even if the features are on opposing +strands. However, if strand information is present in both files and the \fB"\-s"\fP option is used, overlaps will +only be reported when features are on the same strand. +.sp +For example, report A only at least 50% of one of the two ends is overlapped by B. +.sp +.nf +.ft C +pairToBed \-a A.bedpe \-b B.bed \-s + + + +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BEDPE/BAM A >>>>>.................................<<<<< + +BED File B << >>>>> + +Result + + + +BEDPE/BAM A >>>>>.................................<<<<< + +BED File B >> >>>>> + +Result >>>>>.................................<<<<< +.ft P +.fi +.SS 5.2.6 (\-abam)Default is to write BAM output when using BAM input +.sp +When comparing \fIpaired\fP alignments in BAM format (\fB\-abam\fP) to features in BED format (\fB\-b\fP), +\fBpairToBed\fP will , by default, write the output in BAM format. That is, each alignment in the BAM +file that meets the user\(aqs criteria will be written (to standard output) in BAM format. This serves as a +mechanism to create subsets of BAM alignments are of biological interest, etc. Note that both +alignments for each aligned pair will be written to the BAM output. +.sp +For example: +.sp +.nf +.ft C +pairToBed ?Cabam pairedReads.bam ?Cb simreps.bed | samtools view \- | head \-4 + +JOBU_0001:3:1:4:1060#0 99 chr10 42387928 29 50M = 42393091 5 2 1 3 +AA A A A C G G A A T T A T C G A A T G G A A T C G A A G A G A A T C T T C G A A C G G A C C C G A +dcgggggfbgfgdgggggggfdfgggcggggfcggcggggggagfgbggc XT:A:R NM:i:5 SM:i:0 AM:i:0 X0:i:3 X 1 : i : +3 XM:i:5 XO:i:0 XG:i:0 MD:Z:0T0C33A5T4T3 +JOBU_0001:3:1:4:1060#0 147 chr10 42393091 0 50M = 42387928 \- 5 2 1 3 +AAATGGAATCGAATGGAATCAACATCAAATGGAATCAAATGGAATCATTG K g d c g g d e c d g +\ed\(gaggfcgcggffcgggc^cgfgccgggfc^gcdgg\ebg XT:A:R NM:i:2 SM:i:0 AM:i:0 X0:i:3 X1:i:13 XM:i:2 X O : i : +0 XG:i:0 MD:Z:21T14G13 +JOBU_0001:3:1:8:446#0 99 chr10 42388091 9 50M = 42392738 4 6 9 7 +GAATCGACTGGAATCATCATCGGATGGAAATGAATGGAATAATCATCGAA f _ O f f \(ga ] I e Y f f \(ga f f e d d c f e f c P \(ga c _ W \e \e R _ ] +_BBBBBBBBBBBBBBBB XT:A:U NM:i:4 SM:i:0 AM:i:0 X0:i:1 X1:i:3 XM:i:4 XO:i:0 XG:i:0 M D : Z : +7A22C9C2T6 +JOBU_0001:3:1:8:446#0 147 chr10 42392738 9 50M = 42388091 \- 4 6 9 7 +TTATCGAATGCAATCGAATGGAATTATCGAATGCAATCGAATAGAATCAT df^ffec_JW[\(gaMWceRec\(ga\(gafee\(gadcecfeeZae\(gac] +f^cNeecfccf^ XT:A:R NM:i:1 SM:i:0 AM:i:0 X0:i:2 X1:i:2 XM:i:1 XO:i:0 XG:i:0 MD:Z:38A11 +.ft P +.fi +.SS 5.2.7 (\-bedpe)Output BEDPE format when using BAM input +.sp +When comparing \fIpaired\fP alignments in BAM format (\fB\-abam\fP) to features in BED format (\fB\-b\fP), +\fBpairToBed\fP will optionally write the output in BEDPE format. That is, each alignment in the BAM +file is converted to a 10 column BEDPE feature and if overlaps are found (or not) based on the user\(aqs +criteria, the BAM alignment will be reported in BEDPE format. The BEDPE "name" field is comprised +of the RNAME field in the BAM alignment. The "score" field is the mapping quality score from the +BAM alignment. +.sp +For example: +.sp +.nf +.ft C +pairToBed ?Cabam pairedReads.bam ?Cb simreps.bed \-bedpe | head \-5 +chr10 42387927 42387977 chr10 42393090 42393140 + JOBU_0001:3:1:4:1060#0 29 + \- +chr10 42388090 42388140 chr10 42392737 42392787 + JOBU_0001:3:1:8:446#0 9 + \- +chr10 42390552 42390602 chr10 42396045 42396095 + JOBU_0001:3:1:10:1865#0 9 + \- +chrX 139153741 139153791 chrX 139159018 139159068 + JOBU_0001:3:1:14:225#0 37 + \- +chr4 9236903 9236953 chr4 9242032 9242082 + JOBU_0001:3:1:15:1362#0 0 + \- +.ft P +.fi +.SS 5.3 pairToPair +.sp +\fBpairToPair\fP compares two BEDPE files in search of overlaps where each end of a BEDPE feature in A +overlaps with the ends of a feature in B. For example, using pairToPair, one could screen for the exact +same discordant paired\-end alignment in two files. This could suggest (among other things) that the +discordant pair suggests the same structural variation in each file/sample. +.SS 5.3.1 Usage and option summary +.sp +\fBUsage:\fP +.sp +.nf +.ft C +pairToPair [OPTIONS] \-a <BEDPE> \-b <BEDPE> +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-a\fP +T} T{ +BEDPE file A. Each feature in A is compared to B in search of overlaps. Use "stdin" if passing A with a UNIX pipe. +T} +_ +T{ +\fB\-b\fP +T} T{ +BEDPE file B. Use "stdin" if passing B with a UNIX pipe. +T} +_ +T{ +\fB\-f\fP +T} T{ +Minimum overlap required as a fraction of A. Default is 1E\-9 (i.e. 1bp). +T} +_ +T{ +\fB\-is\fP +T} T{ +Force "strandedness". That is, only report hits in B that overlap A on the same strand. By default, overlaps are reported without respect to strand. +T} +_ +T{ +\fB\-type\fP +T} T{ +.INDENT 0.0 +.INDENT 3.5 +Approach to reporting overlaps between BEDPE and BED. +.UNINDENT +.UNINDENT +.nf +\fBeither\fP Report overlaps if either ends of A overlap B. +.fi +.sp +.INDENT 0.0 +.INDENT 3.5 +.nf +\fBneither\fP Report A if neither end of A overlaps B. +.fi +.sp +.nf +\fBboth\fP Report overlaps if both ends of A overlap B. \-\fIDefault behavior.\fP +.fi +.sp +.UNINDENT +.UNINDENT +T} +_ +.TE +.SS 5.3.2 Default behavior +.sp +By default, a BEDPE feature from A will be reported if \fIboth\fP ends overlap a feature in the BEDPE B +file. If strand information is present for the two BEDPE files, it will be further required that the +overlaps on each end be on the same strand. This way, an otherwise overlapping (in terms of genomic +locations) F/R alignment will not be matched with a R/R alignment. +.sp +Default: Report A if \fIboth\fP ends overlaps B. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^^^^^ ^^^^^^ + +Result =====.................................===== +.ft P +.fi +.sp +Default when strand information is present in both BEDPE files: Report A if \fIboth\fP ends overlaps B \fIon +the same strands\fP. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BEDPE A >>>>>.................................>>>>> + +BEDPE B <<<<<.............................>>>>> + +Result + + + +BEDPE A >>>>>.................................>>>>> + +BEDPE B >>>>>.............................>>>>> + +Result >>>>>.................................>>>>> +.ft P +.fi +.SS 5.3.3 (\-type neither)Optional overlap requirements +.sp +Using then \fB\-type neither, pairToPair\fP will only report A if \fIneither\fP end overlaps with a BEDPE +feature in B. +.sp +\fB\-type neither\fP: Report A only if \fIneither\fP end overlaps B. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^^^^^......................................^^^^^^ + +Result + + + +BEDPE/BAM A *****.................................***** + +BED File B ^^^^................................................^^^^^^ + +Result =====.................................===== +.ft P +.fi +.SS 5.4 bamToBed +.sp +\fBbamToBed\fP is a general purpose tool that will convert sequence alignments in BAM format to either +BED6, BED12 or BEDPE format. This enables one to convert BAM files for use with all of the other +BEDTools. The CIGAR string is used to compute the alignment end coordinate in an "ungapped" +fashion. That is, match ("M"), deletion ("D"), and splice ("N") operations are observed when computing +alignment ends. +.SS 5.4.1 Usage and option summary +.sp +\fBUsage:\fP +.sp +.nf +.ft C +bamToBed [OPTIONS] \-i <BAM> +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-bedpe\fP +T} T{ +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.TP +.B Write BAM alignments in BEDPE format. Only one alignment from paired\-end reads will be reported. Specifically, it each mate is aligned to the same chromosome, the BAM alignment reported will be the one where the BAM insert size is greater than zero. When the mate alignments are interchromosomal, the lexicographically lower chromosome will be reported first. Lastly, when an end is unmapped, the chromosome and strand will be set to "." and the start and end coordinates will be set to \-1. \fIBy default, this is disabled and the output will be reported in BED format\fP. +\fBNOTE: When using this option, it is required that the BAM file is sorted/grouped by the read name. This allows bamToBed to extract correct alignment coordinates for each end based on their respective CIGAR strings. It also assumes that the alignments for a given pair come in groups of twos. There is not yet a standard method for reporting multiple alignments using BAM. bamToBed will fail if an aligner does not report alignments in pairs\fP. +.UNINDENT +.UNINDENT +.UNINDENT +.sp +BAM files may be piped to bamToBed by specifying "\-i stdin". See example below. +T} +_ +T{ +\fB\-bed12\fP +T} T{ +Write "blocked" BED (a.k.a. BED12) format. This will convert "spliced" BAM alignments (denoted by the "N" CIGAR operation) to BED12. +T} +_ +T{ +\fB\-ed\fP +T} T{ +Use the "edit distance" tag (NM) for the BED score field. Default for BED is to use mapping quality. Default for BEDPE is to use the \fIminimum\fP of the two mapping qualities for the pair. When \-ed is used with \-bedpe, the total edit distance from the two mates is reported. +T} +_ +T{ +\fB\-tag\fP +T} T{ +Use other \fInumeric\fP BAM alignment tag for BED score. Default for BED is to use mapping quality. Disallowed with BEDPE output. +T} +_ +T{ +\fB\-color\fP +T} T{ +An R,G,B string for the color used with BED12 format. Default is (255,0,0). +T} +_ +T{ +\fB\-split\fP +T} T{ +Report each portion of a "split" BAM (i.e., having an "N" CIGAR operation) alignment as a distinct BED intervals. +T} +_ +.TE +.sp +By default, each alignment in the BAM file is converted to a 6 column BED. The BED "name" field is +comprised of the RNAME field in the BAM alignment. If mate information is available, the mate (e.g., +"/1" or "/2") field will be appended to the name. The "score" field is the mapping quality score from the +BAM alignment, unless the \fB\-ed\fP option is used. +.sp +Examples: +.sp +.nf +.ft C +bamToBed \-i reads.bam | head \-5 +chr7 118970079 118970129 TUPAC_0001:3:1:0:1452#0/1 37 \- +chr7 118965072 118965122 TUPAC_0001:3:1:0:1452#0/2 37 + +chr11 46769934 46769984 TUPAC_0001:3:1:0:1472#0/1 37 \- + +bamToBed \-i reads.bam \-tag NM | head \-5 +chr7 118970079 118970129 TUPAC_0001:3:1:0:1452#0/1 1 \- +chr7 118965072 118965122 TUPAC_0001:3:1:0:1452#0/2 3 + +chr11 46769934 46769984 TUPAC_0001:3:1:0:1472#0/1 1 \- + +bamToBed \-i reads.bam \-bedpe | head \-3 +chr7 118965072 118965122 chr7 118970079 118970129 + TUPAC_0001:3:1:0:1452#0 37 + \- +chr11 46765606 46765656 chr11 46769934 46769984 + TUPAC_0001:3:1:0:1472#0 37 + \- +chr20 54704674 54704724 chr20 54708987 54709037 + TUPAC_0001:3:1:1:1833#0 37 + +.ft P +.fi +.sp +One can easily use samtools and bamToBed together as part of a UNIX pipe. In this example, we will +only convert properly\-paired (BAM flag == 0x2) reads to BED format. +.sp +.nf +.ft C +samtools view \-bf 0x2 reads.bam | bamToBed \-i stdin | head +chr7 118970079 118970129 TUPAC_0001:3:1:0:1452#0/1 37 \- +chr7 118965072 118965122 TUPAC_0001:3:1:0:1452#0/2 37 + +chr11 46769934 46769984 TUPAC_0001:3:1:0:1472#0/1 37 \- +chr11 46765606 46765656 TUPAC_0001:3:1:0:1472#0/2 37 + +chr20 54704674 54704724 TUPAC_0001:3:1:1:1833#0/1 37 + +chr20 54708987 54709037 TUPAC_0001:3:1:1:1833#0/2 37 \- +chrX 9380413 9380463 TUPAC_0001:3:1:1:285#0/1 0 \- +chrX 9375861 9375911 TUPAC_0001:3:1:1:285#0/2 0 + +chrX 131756978 131757028 TUPAC_0001:3:1:2:523#0/1 37 + +chrX 131761790 131761840 TUPAC_0001:3:1:2:523#0/2 37 \- +.ft P +.fi +.SS 5.4.2 (\-split)Creating BED12 features from "spliced" BAM entries. +.sp +bamToBed will, by default, create a BED6 feature that represents the entire span of a spliced/split +BAM alignment. However, when using the \fB\-split\fP command, a BED12 feature is reported where BED +blocks will be created for each aligned portion of the sequencing read. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Exons *************** ********** + +BED/BAM A ^^^^^^^^^^^^....................................^^^^ + +Result =============== ==== +.ft P +.fi +.SS 5.5 windowBed +.sp +Similar to \fBintersectBed\fP, \fBwindowBed\fP searches for overlapping features in A and B. However, +\fBwindowBed\fP 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. +.SS 5.5.1 Usage and option summary +.sp +\fBUsage:\fP +.sp +.nf +.ft C +windowBed [OPTIONS] \-a <BED/GFF/VCF> \-b <BED/GFF/VCF> +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-abam\fP +T} T{ +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 +T} +_ +T{ +\fB\-ubam\fP +T} T{ +Write uncompressed BAM output. The default is write compressed BAM output. +T} +_ +T{ +\fB\-bed\fP +T} T{ +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 +T} +_ +T{ +\fB\-w\fP +T} T{ +Base pairs added upstream and downstream of each entry in A when searching for overlaps in B. \fIDefault is 1000 bp\fP. +T} +_ +T{ +\fB\-l\fP +T} T{ +Base pairs added upstream (left of) of each entry in A when searching for overlaps in B. \fIAllows one to create assymetrical "windows". Default is 1000bp\fP. +T} +_ +T{ +\fB\-r\fP +T} T{ +Base pairs added downstream (right of) of each entry in A when searching for overlaps in B. \fIAllows one to create assymetrical "windows". Default is 1000bp\fP. +T} +_ +T{ +\fB\-sw\fP +T} T{ +Define \-l and \-r based on strand. For example if used, \-l 500 for a negative\-stranded feature will add 500 bp downstream. \fIBy default, this is disabled\fP. +T} +_ +T{ +\fB\-sm\fP +T} T{ +Only report hits in B that overlap A on the same strand. \fIBy default, overlaps are reported without respect to strand\fP. +T} +_ +T{ +\fB\-u\fP +T} T{ +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. +T} +_ +T{ +\fB\-c\fP +T} T{ +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. +T} +_ +.TE +.SS 5.5.2 Default behavior +.sp +By default, \fBwindowBed\fP 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 \fIoriginal\fP A feature and the +\fIoriginal\fP B feature are reported. For example, in the figure below, feature B1 would be found, but B2 +would not. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + "window" = 10 +BED File A <\-\-\-\-\-\-\-\-\-\-*************\-\-\-\-\-\-\-\-\-\-> + +BED File B ^^^^^^^^ ^^^^^^ + +Result ======== +.ft P +.fi +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 100 200 + +cat B.bed +chr1 500 1000 +chr1 1300 2000 + +windowBed \-a A.bed \-b B.bed +chr1 100 200 chr1 500 1000 +.ft P +.fi +.SS 5.5.3 (\-w)Defining a custom window size +.sp +Instead of using the default window size of 1000bp, one can define a custom, \fIsymmetric\fP window around +each feature in A using the \fB\-w\fP option. One should specify the window size in base pairs. For example, +a window of 5kb should be defined as \fB\-w 5000\fP. +.sp +For example (note that in contrast to the default behavior, the second B entry is reported): +.sp +.nf +.ft C +cat A.bed +chr1 100 200 + +cat B.bed +chr1 500 1000 +chr1 1300 2000 + +windowBed \-a A.bed \-b B.bed \-w 5000 +chr1 100 200 chr1 500 1000 +chr1 100 200 chr1 1300 2000 +.ft P +.fi +.SS 5.5.4 (\-l and \-r)Defining assymteric windows +.sp +One can also define asymmetric windows where a differing number of bases are added upstream and +downstream of each feature using the \fB\-l (upstream)\fP and \fB\-r (downstream)\fP options. +.sp +For example (note the difference between \-l 200 and \-l 300): +.sp +.nf +.ft C +cat A.bed +chr1 1000 2000 + +cat B.bed +chr1 500 800 +chr1 10000 20000 + +windowBed \-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 +chr1 100 200 chr1 500 800 +chr1 100 200 chr1 10000 20000 +.ft P +.fi +.SS 5.5.5 (\-sw)Defining assymteric windows based on strand +.sp +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 \fB\-sw\fP ("stranded" windows) option, the windows are added upstream or +downstream according to strand. For example, imagine one specifies \fB\-l 5000 \-r 1000\fP as well as the \fB\- +sw\fP option. In this case, forward stranded ("+") features will screen 5000 bp to the \fIleft\fP (that is, \fIlower\fP +genomic coordinates) and 1000 bp to the \fIright\fP (that is, \fIhigher\fP genomic coordinates). By contrast, +reverse stranded ("\-") features will screen 5000 bp to the \fIright\fP (that is, \fIhigher\fP genomic coordinates) and +1000 bp to the \fIleft\fP (that is, \fIlower\fP genomic coordinates). +.sp +For example (note the difference between \-l 200 and \-l 300): +.sp +.nf +.ft C +cat A.bed +chr1 10000 20000 A.forward 1 + +chr1 10000 20000 A.reverse 1 \- + +cat B.bed +chr1 1000 8000 B1 +chr1 24000 32000 B2 + +windowBed \-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 +.ft P +.fi +.SS 5.5.6 (\-sm)Enforcing "strandedness" +.sp +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. +.SS 5.5.7 (\-u)Reporting the presence of at least one overlapping feature +.sp +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. +.SS 5.5.8 (\-c)Reporting the number of overlapping features +.sp +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. +.SS 5.5.9 (\-v)Reporting the absence of any overlapping features +.sp +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. +.SS 5.6 closestBed +.sp +Similar to \fBintersectBed, closestBed\fP searches for overlapping features in A and B. In the event that +no feature in B overlaps the current feature in A, \fBclosestBed\fP will report the \fIclosest\fP (that is, least +genomic distance from the start or end of A) feature in B. For example, one might want to find which +is the closest gene to a significant GWAS polymorphism. Note that \fBclosestBed\fP will report an +overlapping feature as the closest\-\-\-that is, it does not restrict to closest \fInon\-overlapping\fP feature. +.SS 5.6.1 Usage and option summary +.sp +\fBUsage:\fP +.sp +.nf +.ft C +closestBed [OPTIONS] \-a <BED/GFF/VCF> \-b <BED/GFF/VCF> +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-s\fP +T} T{ +Force strandedness. That is, find the closest feature in B overlaps A on the same strand. \fIBy default, this is disabled\fP. +T} +_ +T{ +\fB\-d\fP +T} T{ +In addition to the closest feature in B, report its distance to A as an extra column. The reported distance for overlapping features will be 0. +T} +_ +T{ +\fB\-t\fP +T} T{ +How ties for closest feature should be handled. This occurs when two features in B have exactly the same overlap with a feature in A. \fIBy default, all such features in B are reported\fP. +.INDENT 0.0 +.INDENT 3.5 +Here are the other choices controlling how ties are handled: +.sp +\fIall\-\fP Report all ties (default). +.sp +\fIfirst\-\fP Report the first tie that occurred in the B file. +.sp +\fIlast\-\fP Report the last tie that occurred in the B file. +.UNINDENT +.UNINDENT +T} +_ +.TE +.SS 5.6.2 Default behavior +.sp +\fBclosestBed\fP first searches for features in B that overlap a feature in A. If overlaps are found, the feature +in B that overlaps the highest fraction of A is reported. If no overlaps are found, \fBclosestBed\fP looks for +the feature in B that is \fIclosest\fP (that is, least genomic distance to the start or end of A) to A. For +example, in the figure below, feature B1 would be reported as the closest feature to A1. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BED FILE A ************* + +BED File B ^^^^^^^^ ^^^^^^ + +Result ====== +.ft P +.fi +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 100 200 + +cat B.bed +chr1 500 1000 +chr1 1300 2000 + +closestBed \-a A.bed \-b B.bed +chr1 100 200 chr1 500 1000 +.ft P +.fi +.SS 5.6.3 (\-s)Enforcing "strandedness" +.sp +This option behaves the same as the \-s option for intersectBed while scanning for the closest +(overlapping or not) feature in B. See the discussion in the intersectBed section for details. +.SS 5.6.4 (\-t)Controlling how ties for "closest" are broken +.sp +When there are two or more features in B that overlap the \fIsame fraction\fP of A, \fBclosestBed\fP will, by +default, report both features in B. Imagine feature A is a SNP and file B contains genes. It can often +occur that two gene annotations (e.g. opposite strands) in B will overlap the SNP. As mentioned, the +default behavior is to report both such genes in B. However, the \-t option allows one to optionally +choose the just first or last feature (in terms of where it occurred in the input file, not chromosome +position) that occurred in B. +.sp +For example (note the difference between \-l 200 and \-l 300): +.sp +.nf +.ft C +cat A.bed +chr1 100 101 rs1234 + +cat B.bed +chr1 0 1000 geneA 100 + +chr1 0 1000 geneB 100 \- + +closestBed \-a A.bed \-b B.bed +chr1 100 101 rs1234 chr1 0 1000 geneA 100 + +chr1 100 101 rs1234 chr1 0 1000 geneB 100 \- + +closestBed \-a A.bed \-b B.bed \-t all +chr1 100 101 rs1234 chr1 0 1000 geneA 100 + +chr1 100 101 rs1234 chr1 0 1000 geneB 100 \- + +closestBed \-a A.bed \-b B.bed \-t first +chr1 100 101 rs1234 chr1 0 1000 geneA 100 + + +closestBed \-a A.bed \-b B.bed \-t last +chr1 100 101 rs1234 chr1 0 1000 geneB 100 \- +.ft P +.fi +.SS 5.6.5 (\-d)Reporting the distance to the closest feature in base pairs +.sp +ClosestBed will optionally report the distance to the closest feature in the B file using the \fB\-d\fP option. +When a feature in B overlaps a feature in A, a distance of 0 is reported. +.sp +.nf +.ft C +cat A.bed +chr1 100 200 +chr1 500 600 + +cat B.bed +chr1 500 1000 +chr1 1300 2000 + +closestBed \-a A.bed \-b B.bed \-d +chr1 100 200 chr1 500 1000 300 +chr1 500 600 chr1 500 1000 0 +.ft P +.fi +.SS 5.7 subtractBed +.sp +\fBsubtractBed\fP searches for features in B that overlap A. If an overlapping feature is found in B, the +overlapping portion is removed from A and the remaining portion of A is reported. If a feature in B +overlaps all of a feature in A, the A feature will not be reported. +.SS 5.7.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +subtractBed [OPTIONS] \-a <BED/GFF/VCF> \-b <BED/GFF/VCF> +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-f\fP +T} T{ +Minimum overlap required as a fraction of A. Default is 1E\-9 (i.e. 1bp). +T} +_ +T{ +\fB\-s\fP +T} T{ +Force strandedness. That is, find the closest feature in B overlaps A on the same strand. \fIBy default, this is disabled\fP. +T} +_ +.TE +.SS 5.7.2 Default behavior +.sp +Figure: +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BED FILE A ************* ****** + +BED File B ^^^^^^^^ ^^^^^^^^^^^ + +Result ========= +.ft P +.fi +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 100 200 +chr1 10 20 + +cat B.bed +chr1 0 30 +chr1 180 300 + +subtractBed \-a A.bed \-b B.bed +chr1 100 180 +.ft P +.fi +.SS 5.7.3 (\-f)Requiring a minimal overlap fraction before subtracting +.sp +This option behaves the same as the \-f option for intersectBed. In this case, subtractBed will only +subtract an overlap with B if it covers at least the fraction of A defined by \-f. If an overlap is found, +but it does not meet the overlap fraction, the original A feature is reported without subtraction. +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 100 200 + +cat B.bed +chr1 180 300 + +subtractBed \-a A.bed \-b B.bed \-f 0.10 +chr1 100 180 + +subtractBed \-a A.bed \-b B.bed \-f 0.80 +chr1 100 200 +.ft P +.fi +.SS 5.7.4 (\-s)Enforcing "strandedness" +.sp +This option behaves the same as the \-s option for intersectBed while scanning for features in B that +should be subtracted from A. See the discussion in the intersectBed section for details. +.SS 5.8 mergeBed +.sp +\fBmergeBed\fP combines overlapping or "book\-ended" (that is, one base pair away) features in a feature file +into a single feature which spans all of the combined features. +.SS 5.8.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +mergeBed [OPTIONS] \-i <BED/GFF/VCF> +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-s\fP +T} T{ +Force strandedness. That is, only merge features that are the same strand. \fIBy default, this is disabled\fP. +T} +_ +T{ +\fB\-n\fP +T} T{ +Report the number of BED entries that were merged. \fI1 is reported if no merging occurred\fP. +T} +_ +T{ +\fB\-d\fP +T} T{ +Maximum distance between features allowed for features to be merged. \fIDefault is 0. That is, overlapping and/or book\-ended features are merged\fP. +T} +_ +T{ +\fB\-nms\fP +T} T{ +Report the names of the merged features separated by semicolons. +T} +_ +.TE +.SS 5.8.2 Default behavior +.sp +Figure: +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BED FILE ************* *************** ********************** + ******** + +Result =============================== ====================== +.ft P +.fi +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 100 200 +chr1 180 250 +chr1 250 500 +chr1 501 1000 + +mergeBed \-i A.bed +chr1 100 500 +chr1 501 1000 +.ft P +.fi +.SS 5.8.3 (\-s)Enforcing "strandedness" +.sp +This option behaves the same as the \-s option for intersectBed while scanning for features that should +be merged. Only features on the same strand will be merged. See the discussion in the intersectBed +section for details. +.SS 5.8.4 (\-n)Reporting the number of features that were merged +.sp +The \-n option will report the number of features that were combined from the original file in order to +make the newly merged feature. If a feature in the original file was not merged with any other features, +a "1" is reported. +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 100 200 +chr1 180 250 +chr1 250 500 +chr1 501 1000 + +mergeBed \-i A.bed \-n +chr1 100 500 3 +chr1 501 1000 1 +.ft P +.fi +.SS 5.8.5 (\-d)Controlling how close two features must be in order to merge +.sp +By default, only overlapping or book\-ended features are combined into a new feature. However, one can +force mergeBed to combine more distant features with the \-d option. For example, were one to set \-d to +1000, any features that overlap or are within 1000 base pairs of one another will be combined. +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 100 200 +chr1 501 1000 + +mergeBed \-i A.bed +chr1 100 200 +chr1 501 1000 + +mergeBed \-i A.bed \-d 1000 +chr1 100 200 1000 +.ft P +.fi +.SS 5.8.6 (\-nms)Reporting the names of the features that were merged +.sp +Occasionally, one might like to know that names of the features that were merged into a new feature. +The \-nms option will add an extra column to the mergeBed output which lists (separated by +semicolons) the names of the merged features. +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 100 200 A1 +chr1 150 300 A2 +chr1 250 500 A3 + +mergeBed \-i A.bed \-nms +chr1 100 500 A1;A2;A3 +.ft P +.fi +.SS 5.9 coverageBed +.sp +\fBcoverageBed\fP computes both the \fIdepth\fP and \fIbreadth\fP of coverage of features in file A across the features +in file B. For example, \fBcoverageBed\fP can compute the coverage of sequence alignments (file A) across 1 +kilobase (arbitrary) windows (file B) tiling a genome of interest. One advantage that \fBcoverageBed\fP +offers is that it not only \fIcounts\fP the number of features that overlap an interval in file B, it also +computes the fraction of bases in B interval that were overlapped by one or more features. Thus, +\fBcoverageBed\fP also computes the \fIbreadth\fP of coverage for each interval in B. +.SS 5.9.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +coverageBed [OPTIONS] \-a <BED/GFF/VCF> \-b <BED/GFF/VCF> +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-abam\fP +T} T{ +.INDENT 0.0 +.INDENT 3.5 +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: +.UNINDENT +.UNINDENT +.nf +samtools view \-b <BAM> | intersectBed \-abam stdin \-b genes.bed +.fi +T} +_ +T{ +\fB\-s\fP +T} T{ +Force strandedness. That is, only features in A are only counted towards coverage in B if they are the same strand. \fIBy default, this is disabled and coverage is counted without respect to strand\fP. +T} +_ +T{ +\fB\-hist\fP +T} T{ +Report a histogram of coverage for each feature in B as well as a summary histogram for _all_ features in B. +.nf +Output (tab delimited) after each feature in B: +.fi +.sp +.INDENT 0.0 +.INDENT 3.5 +.nf +1) depth +2) # bases at depth +3) size of B +4) % of B at depth +.fi +.sp +.UNINDENT +.UNINDENT +T} +_ +T{ +\fB\-d\fP +T} T{ +Report the depth at each position in each B feature. Positions reported are one based. Each position and depth follow the complete B feature. +T} +_ +T{ +\fB\-split\fP +T} T{ +Treat "split" BAM or BED12 entries as distinct BED intervals when computing coverage. For BAM files, this uses the CIGAR "N" and "D" operations to infer the blocks for computing coverage. For BED12 files, this uses the BlockCount, BlockStarts, and BlockEnds fields (i.e., columns 10,11,12). +T} +_ +.TE +.SS 5.9.2 Default behavior +.sp +After each interval in B, \fBcoverageBed\fP will report: +.INDENT 0.0 +.IP 1. 3 +The number of features in A that overlapped (by at least one base pair) the B interval. +.IP 2. 3 +The number of bases in B that had non\-zero coverage from features in A. +.IP 3. 3 +The length of the entry in B. +.IP 4. 3 +The fraction of bases in B that had non\-zero coverage from features in A. +.UNINDENT +.sp +Below are the number of features in A (N=...) overlapping B and fraction of bases in B with coverage. +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BED FILE B *************** *************** ****** ************** + +BED File A ^^^^ ^^^^ ^^ ^^^^^^^^^ ^^^ ^^ ^^^^ + ^^^^^^^^ ^^^^^ ^^^^^ ^^ + +Result [ N=3, 10/15 ] [ N=1, 2/16 ] [N=1,6/6] [N=5, 11/12 ] +.ft P +.fi +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 10 20 +chr1 20 30 +chr1 30 40 +chr1 100 200 + +cat B.bed +chr1 0 100 +chr1 100 200 +chr2 0 100 + +coverageBed \-a A.bed \-b B.bed +chr1 0 100 3 30 100 0.3000000 +chr1 100 200 1 100 100 1.0000000 +chr2 0 100 0 0 100 0.0000000 +.ft P +.fi +.SS 5.9.4 (\-s)Calculating coverage by strand +.sp +Use the "\fB\-s\fP" option if one wants to only count coverage if features in A are on the same strand as the +feature / window in B. This is especially useful for RNA\-seq experiments. +.sp +For example (note the difference in coverage with and without \fB\-s\fP: +.sp +.nf +.ft C +cat A.bed +chr1 10 20 a1 1 \- +chr1 20 30 a2 1 \- +chr1 30 40 a3 1 \- +chr1 100 200 a4 1 + + +cat B.bed +chr1 0 100 b1 1 + +chr1 100 200 b2 1 \- +chr2 0 100 b3 1 + + +coverageBed \-a A.bed \-b B.bed +chr1 0 100 b1 1 + 3 30 100 0.3000000 +chr1 100 200 b2 1 \- 1 100 100 1.0000000 +chr2 0 100 b3 1 + 0 0 100 0.0000000 + +coverageBed \-a A.bed \-b B.bed \-s +chr1 0 100 b1 1 + 0 0 100 0.0000000 +chr1 100 200 b2 1 \- 0 0 100 0.0000000 +chr2 0 100 b3 1 + 0 0 100 0.0000000 +.ft P +.fi +.SS 5.9.5 (\-hist)Creating a histogram of coverage for each feature in the B file +.sp +One should use the "\fB\-hist\fP" option to create, for each interval in B, a histogram of coverage of the +features in A across B. +.sp +In this case, each entire feature in B will be reported, followed by the depth of coverage, the number of +bases at that depth, the size of the feature, and the fraction covered. After all of the features in B have +been reported, a histogram summarizing the coverage among all features in B will be reported. +.sp +.nf +.ft C +cat A.bed +chr1 10 20 a1 1 \- +chr1 20 30 a2 1 \- +chr1 30 40 a3 1 \- +chr1 100 200 a4 1 + + +cat B.bed +chr1 0 100 b1 1 + +chr1 100 200 b2 1 \- +chr2 0 100 b3 1 + + +coverageBed \-a A.bed \-b B.bed \-hist +chr1 0 100 b1 1 + 0 70 100 0.7000000 +chr1 0 100 b1 1 + 1 30 100 0.3000000 +chr1 100 200 b2 1 \- 1 100 100 1.0000000 +chr2 0 100 b3 1 + 0 100 100 1.0000000 +all 0 170 300 0.5666667 +all 1 130 300 0.4333333 +.ft P +.fi +.SS 5.9.6 (\-hist)Reporting the per\-base of coverage for each feature in the B file +.sp +One should use the "\fB\-d\fP" option to create, for each interval in B, a detailed list of coverage at each of the +positions across each B interval. +.sp +The output will consist of a line for each one\-based position in each B feature, followed by the coverage +detected at that position. +.sp +.nf +.ft C +cat A.bed +chr1 0 5 +chr1 3 8 +chr1 4 8 +chr1 5 9 + +cat B.bed +chr1 0 10 + +coverageBed \-a A.bed \-b B.bed \-d +chr1 0 10 B 1 1 +chr1 0 10 B 2 1 +chr1 0 10 B 3 1 +chr1 0 10 B 4 2 +chr1 0 10 B 5 3 +chr1 0 10 B 6 3 +chr1 0 10 B 7 3 +chr1 0 10 B 8 3 +chr1 0 10 B 9 1 +chr1 0 10 B 10 0 +.ft P +.fi +.SS 5.9.7 (\-split)Reporting coverage with spliced alignments or blocked BED features +.sp +As described in section 1.3.19, coverageBed will, by default, screen for overlaps against the entire span +of a spliced/split BAM alignment or blocked BED12 feature. When dealing with RNA\-seq reads, for +example, one typically wants to only tabulate coverage for the portions of the reads that come from +exons (and ignore the interstitial intron sequence). The \fB\-split\fP command allows for such coverage to be +performed. +.SS 5.10 genomeCoverageBed +.sp +\fBgenomeCoverageBed\fP computes a histogram of feature coverage (e.g., aligned sequences) for a given +genome. Optionally, by using the \fB\-d\fP option, it will report the depth of coverage at \fIeach base\fP on each +chromosome in the genome file (\fB\-g\fP). +.SS 5.10.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +genomeCoverageBed [OPTIONS] \-i <BED> \-g <GENOME> +.ft P +.fi +.sp +NOTE: genomeCoverageBed requires that the input BED file be sorted by +chromosome. A simple sort \-k1,1 will suffice. +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-ibam\fP +T} T{ +.INDENT 0.0 +.INDENT 3.5 +BAM file as input for coverage. Each BAM alignment in A added to the total coverage for the genome. Use "stdin" if passing it with a UNIX pipe: For example: +.UNINDENT +.UNINDENT +.nf +samtools view \-b <BAM> | genomeCoverageBed \-ibam stdin \-g hg18.genome +.fi +T} +_ +T{ +\fB\-d\fP +T} T{ +Report the depth at each genome position. \fIDefault behavior is to report a histogram\fP. +T} +_ +T{ +\fB\-max\fP +T} T{ +Combine all positions with a depth >= max into a single bin in the histogram. +T} +_ +T{ +\fB\-bg\fP +T} T{ +Report depth in BedGraph format. For details, see: \fI\%http://genome.ucsc.edu/goldenPath/help/bedgraph.html\fP +T} +_ +T{ +\fB\-bga\fP +T} T{ +Report depth in BedGraph format, as above (i.e., \-bg). However with this option, regions with zero coverage are also reported. This allows one to quickly extract all regions of a genome with 0 coverage by applying: "grep \-w 0$" to the output. +T} +_ +T{ +\fB\-split\fP +T} T{ +Treat "split" BAM or BED12 entries as distinct BED intervals when computing coverage. For BAM files, this uses the CIGAR "N" and "D" operations to infer the blocks for computing coverage. For BED12 files, this uses the BlockCount, BlockStarts, and BlockEnds fields (i.e., columns 10,11,12). +T} +_ +T{ +\fB\-strand\fP +T} T{ +Calculate coverage of intervals from a specific strand. With BED files, requires at least 6 columns (strand is column 6). +T} +_ +.TE +.SS 5.10.2 Default behavior +.sp +By default, \fBgenomeCoverageBed\fP will compute a histogram of coverage for the genome file provided. +The default output format is as follows: +1. chromosome (or entire genome) +2. depth of coverage from features in input file +3. number of bases on chromosome (or genome) with depth equal to column 2. +4. size of chromosome (or entire genome) in base pairs +5. fraction of bases on chromosome (or entire genome) with depth equal to column 2. +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 10 20 +chr1 20 30 +chr2 0 500 + +cat my.genome +chr1 1000 +chr2 500 + +genomeCoverageBed \-i A.bed \-g my.genome +chr1 0 980 1000 0.98 +chr1 1 20 1000 0.02 +chr2 1 500 500 1 +genome 0 980 1500 0.653333 +genome 1 520 1500 0.346667 +.ft P +.fi +.SS 5.10.3 (\-max)Controlling the histogram\(aqs maximum depth +.sp +Using the \fB\-max\fP option, \fBgenomeCoverageBed\fP will "lump" all positions in the genome having feature +coverage greather than or equal to \fBmax\fP into the \fBmax\fP histogram bin. For example, if one sets \fB\-max\fP +equal to 50, the max depth reported in the output will be 50 and all positions with a depth >= 50 will +be represented in bin 50. +.SS 5.10.4 (\-d)Reporting "per\-base" genome coverage +.sp +Using the \fB\-d\fP option, \fBgenomeCoverageBed\fP will compute the depth of feature coverage for each base +on each chromosome in genome file provided. +.sp +The "per\-base" output format is as follows: +1. chromosome +2. chromosome position +3. depth (number) of features overlapping this chromosome position. +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 10 20 +chr1 20 30 +chr2 0 500 + +cat my.genome +chr1 1000 +chr2 500 + +genomeCoverageBed \-i A.bed \-g my.genome \-d | head \-15 | tail \-n 10 +chr1 6 0 +chr1 7 0 +chr1 8 0 +chr1 9 0 +chr1 10 0 +chr1 11 1 +chr1 12 1 +chr1 13 1 +chr1 14 1 +chr1 15 1 +.ft P +.fi +.SS 5.1.13 (\-split)Reporting coverage with spliced alignments or blocked BED features +.sp +As described in section 1.3.19, genomeCoverageBed will, by default, screen for overlaps against the +entire span of a spliced/split BAM alignment or blocked BED12 feature. When dealing with RNA\-seq +reads, for example, one typically wants to only screen for overlaps for the portions of the reads that +come from exons (and ignore the interstitial intron sequence). The \fB\-split\fP command allows for such +overlaps to be performed. +.sp +For additional details, please visit the Usage From The Wild site and have a look at example 5, +contributed by Assaf Gordon. +.SS 5.11 fastaFromBed +.sp +\fBfastaFromBed\fP extracts sequences from a FASTA file for each of the intervals defined in a BED file. +The headers in the input FASTA file must exactly match the chromosome column in the BED file. +.SS 5.11.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +fastaFromBed [OPTIONS] \-fi <input FASTA> \-bed <BED/GFF/VCF> \-fo <output FASTA> +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-name\fP +T} T{ +Use the "name" column in the BED file for the FASTA headers in the output FASTA file. +T} +_ +T{ +\fB\-tab\fP +T} T{ +Report extract sequences in a tab\-delimited format instead of in FASTA format. +T} +_ +T{ +\fB\-s\fP +T} T{ +Force strandedness. If the feature occupies the antisense strand, the sequence will be reverse complemented. \fIDefault: strand information is ignored\fP. +T} +_ +.TE +.SS 5.11.2 Default behavior +.sp +\fBfastaFromBed\fP will extract the sequence defined by the coordinates in a BED interval and create a +new FASTA entry in the output file for each extracted sequence. By default, the FASTA header for each +extracted sequence will be formatted as follows: "<chrom>:<start>\-<end>". +.sp +For example: +.sp +.nf +.ft C +$ cat test.fa +>chr1 +AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + +cat test.bed +chr1 5 10 + +fastaFromBed \-fi test.fa \-bed test.bed \-fo test.fa.out + +cat test.fa.out +>chr1:5\-10 +AAACC +.ft P +.fi +.SS 5.11.3 Using the BED "name" column as a FASTA header. +.sp +Using the \fB\-name\fP option, one can set the FASTA header for each extracted sequence to be the "name" +columns from the BED feature. +.sp +For example: +.sp +.nf +.ft C +cat test.fa +>chr1 +AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + +cat test.bed +chr1 5 10 myseq + +fastaFromBed \-fi test.fa \-bed test.bed \-fo test.fa.out \-name + +cat test.fa.out +>myseq +AAACC +.ft P +.fi +.SS 5.11.4 Creating a tab\-delimited output file in lieu of FASTA output. +.sp +Using the \fB\-tab\fP option, the \fB\-fo\fP output file will be tab\-delimited instead of in FASTA format. +.sp +For example: +.sp +.nf +.ft C +cat test.fa +>chr1 +AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + +cat test.bed +chr1 5 10 myseq + +fastaFromBed \-fi test.fa \-bed test.bed \-fo test.fa.out.tab \-name \-tab + +cat test.fa.out +myseq AAACC +.ft P +.fi +.SS 5.11.5 (\-s)Forcing the extracted sequence to reflect the requested strand +.sp +\fBfastaFromBed\fP will extract the sequence in the orientation defined in the strand column when the "\-s" +option is used. +.sp +For example: +.sp +.nf +.ft C +cat test.fa +>chr1 +AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + +cat test.bed +chr1 20 25 forward 1 + +chr1 20 25 reverse 1 \- + +fastaFromBed \-fi test.fa \-bed test.bed \-s \-name \-fo test.fa.out + +cat test.fa.out +>forward +CGCTA +>reverse +TAGCG +.ft P +.fi +.SS 5.12 maskFastaFromBed +.sp +\fBmaskFastaFromBed\fP masks sequences in a FASTA file based on intervals defined in a feature file. The +headers in the input FASTA file must exactly match the chromosome column in the feature file. This +may be useful fro creating your own masked genome file based on custom annotations or for masking all +but your target regions when aligning sequence data from a targeted capture experiment. +.SS 5.12.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +maskFastaFromBed [OPTIONS] \-fi <input FASTA> \-bed <BED/GFF/VCF> \-fo <output FASTA> +.ft P +.fi +.sp +NOTE: The input and output FASTA files must be different. +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-soft\fP +T} T{ +Soft\-mask (that is, convert to lower\-case bases) the FASTA sequence. \fIBy default, hard\-masking (that is, conversion to Ns) is performed\fP. +T} +_ +.TE +.SS 5.12.2 Default behavior +.sp +\fBmaskFastaFromBed\fP will mask a FASTA file based on the intervals in a BED file. The newly masked +FASTA file is written to the output FASTA file. +.sp +For example: +.sp +.nf +.ft C +cat test.fa +>chr1 +AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + +cat test.bed +chr1 5 10 + +maskFastaFromBed \-fi test.fa \-bed test.bed \-fo test.fa.out + +cat test.fa.out +>chr1 +AAAAANNNNNCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG +.ft P +.fi +.SS 5.12.3 Soft\-masking the FASTA file. +.sp +Using the \fB\-soft\fP option, one can optionally "soft\-mask" the FASTA file. +.sp +For example: +.sp +.nf +.ft C +cat test.fa +>chr1 +AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + +cat test.bed +chr1 5 10 + +maskFastaFromBed \-fi test.fa \-bed test.bed \-fo test.fa.out \-soft + +cat test.fa.out +>chr1 +AAAAAaaaccCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG +.ft P +.fi +.SS 5.13 shuffleBed +.sp +\fBshuffleBed\fP will randomly permute the genomic locations of a fearure file among a genome defined in a +genome file. One can also provide an "exclusions" BED/GFF/VCF file that lists regions where you do +not want the permuted features to be placed. For example, one might want to prevent features from +being placed in known genome gaps. \fBshuffleBed\fP is useful as a \fInull\fP basis against which to test the +significance of associations of one feature with another. +.SS 5.13.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +shuffleBed [OPTIONS] \-i <BED/GFF/VCF> \-g <GENOME> +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-excl\fP +T} T{ +A BED file of coordinates in which features from \-i should \fInot\fP be placed (e.g., genome gaps). +T} +_ +T{ +\fB\-chrom\fP +T} T{ +Keep features in \-i on the same chromosome. Solely permute their location on the chromosome. \fIBy default, both the chromosome and position are randomly chosen\fP. +T} +_ +T{ +\fB\-seed\fP +T} T{ +Supply an integer seed for the shuffling. This will allow feature shuffling experiments to be recreated exactly as the seed for the pseudo\-random number generation will be constant. \fIBy default, the seed is chosen automatically\fP. +T} +_ +.TE +.SS 5.13.2 Default behavior +.sp +By default, \fBshuffleBed\fP will reposition each feature in the input BED file on a random chromosome at a +random position. The size and strand of each feature are preserved. +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 0 100 a1 1 + +chr1 0 1000 a2 2 \- + +cat my.genome +chr1 10000 +chr2 8000 +chr3 5000 +chr4 2000 + +shuffleBed \-i A.bed \-g my.genome +chr4 1498 1598 a1 1 + +chr3 2156 3156 a2 2 \- +.ft P +.fi +.SS 5.13.3 (\-chrom)Requiring that features be shuffled on the same chromosome +.sp +The "\fB\-chrom\fP" option behaves the same as the default behavior except that features are randomly +placed on the same chromosome as defined in the BED file. +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 0 100 a1 1 + +chr1 0 1000 a2 2 \- + +cat my.genome +chr1 10000 +chr2 8000 +chr3 5000 +chr4 2000 + +shuffleBed \-i A.bed \-g my.genome \-chrom +chr1 9560 9660 a1 1 + +chr1 7258 8258 a2 2 \- +.ft P +.fi +.SS 5.13.4 Excluding certain genome regions from shuffleBed +.sp +One may want to prevent BED features from being placed in certain regions of the genome. For +example, one may want to exclude genome gaps from permutation experiment. The "\fB\-excl\fP" option +defines a BED file of regions that should be excluded. \fBshuffleBed\fP will attempt to permute the +locations of all features while adhering to the exclusion rules. However it will stop looking for an +appropriate location if it cannot find a valid spot for a feature after 1,000,000 tries. +.sp +For example (\fInote that the exclude file excludes all but 100 base pairs of the chromosome\fP): +.sp +.nf +.ft C +cat A.bed +chr1 0 100 a1 1 + +chr1 0 1000 a2 2 \- + +cat my.genome +chr1 10000 + +cat exclude.bed +chr1 100 10000 + +shuffleBed \-i A.bed \-g my.genome \-excl exclude.bed +chr1 0 100 a1 1 + +Error, line 2: tried 1000000 potential loci for entry, but could not avoid excluded +regions. Ignoring entry and moving on. +.ft P +.fi +.sp +For example (\fInow the exclusion file only excludes the first 100 bases of the chromosome\fP): +.sp +.nf +.ft C +cat A.bed +chr1 0 100 a1 1 + +chr1 0 1000 a2 2 \- + +cat my.genome +chr1 10000 + +cat exclude.bed +chr1 0 100 + +shuffleBed \-i A.bed \-g my.genome \-excl exclude.bed +chr1 147 247 a1 1 + +chr1 2441 3441 a2 2 \- +.ft P +.fi +.SS 5.13.5 Defining a "seed" for the random replacement. +.sp +\fBshuffleBed\fP uses a pseudo\-random number generator to permute the locations of BED features. +Therefore, each run should produce a different result. This can be problematic if one wants to exactly +recreate an experiment. By using the "\fB\-seed\fP" option, one can supply a custom integer seed for +\fBshuffleBed\fP. In turn, each execution of \fBshuffleBed\fP with the same seed and input files should produce +identical results. +.sp +For example (\fInote that the exclude file below excludes all but 100 base pairs of the chromosome\fP): +.sp +.nf +.ft C +cat A.bed +chr1 0 100 a1 1 + +chr1 0 1000 a2 2 \- + +cat my.genome +chr1 10000 + +shuffleBed \-i A.bed \-g my.genome \-seed 927442958 +chr1 6177 6277 a1 1 + +chr1 8119 9119 a2 2 \- + +shuffleBed \-i A.bed \-g my.genome \-seed 927442958 +chr1 6177 6277 a1 1 + +chr1 8119 9119 a2 2 \- + +\&. . . + +shuffleBed \-i A.bed \-g my.genome \-seed 927442958 +chr1 6177 6277 a1 1 + +chr1 8119 9119 a2 2 \- +.ft P +.fi +.SS 5.14 slopBed +.sp +\fBslopBed\fP will increase the size of each feature in a feature file be a user\-defined number of bases. While +something like this could be done with an "\fBawk \(aq{OFS="t" print $1,$2\-<slop>,$3+<slop>}\(aq\fP", +\fBslopBed\fP will restrict the resizing to the size of the chromosome (i.e. no start < 0 and no end > +chromosome size). +.SS 5.14.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +slopBed [OPTIONS] \-i <BED/GFF/VCF> \-g <GENOME> [\-b or (\-l and \-r)] +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-b\fP +T} T{ +Increase the BED/GFF/VCF entry by the same number base pairs in each direction. \fIInteger\fP. +T} +_ +T{ +\fB\-l\fP +T} T{ +The number of base pairs to subtract from the start coordinate. \fIInteger\fP. +T} +_ +T{ +\fB\-r\fP +T} T{ +The number of base pairs to add to the end coordinate. \fIInteger\fP. +T} +_ +T{ +\fB\-s\fP +T} T{ +Define \-l and \-r based on strand. For example. if used, \-l 500 for a negative\-stranded feature, it will add 500 bp to the \fIend\fP coordinate. +T} +_ +.TE +.SS 5.14.2 Default behavior +.sp +By default, \fBslopBed\fP will either add a fixed number of bases in each direction (\fB\-b\fP) or an asymmetric +number of bases in each direction (\fB\-l\fP and \fB\-r\fP). +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 5 100 +chr1 800 980 + +cat my.genome +chr1 1000 + +slopBed \-i A.bed \-g my.genome \-b 5 +chr1 0 105 +chr1 795 985 + +slopBed \-i A.bed \-g my.genome \-l 2 \-r 3 +chr1 3 103 +chr1 798 983 +.ft P +.fi +.sp +However, if the requested number of bases exceeds the boundaries of the chromosome, \fBslopBed\fP will +"clip" the feature accordingly. +.sp +.nf +.ft C +cat A.bed +chr1 5 100 +chr1 800 980 + +cat my.genome +chr1 1000 + +slopBed \-i A.bed \-g my.genome \-b 5000 +chr1 0 1000 +chr1 0 1000 +.ft P +.fi +.SS 5.14.3 Resizing features according to strand +.sp +\fBslopBed\fP will optionally increase the size of a feature based on strand. +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 100 200 a1 1 + +chr1 100 200 a2 2 \- + +cat my.genome +chr1 1000 + +slopBed \-i A.bed \-g my.genome \-l 50 \-r 80 \-s +chr1 50 280 a1 1 + +chr1 20 250 a2 2 \- +.ft P +.fi +.SS 5.15 sortBed +.sp +\fBsortBed\fP sorts a feature file by chromosome and other criteria. +.SS 5.15.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +sortBed [OPTIONS] \-i <BED/GFF/VCF> +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-sizeA\fP +T} T{ +Sort by feature size in ascending order. +T} +_ +T{ +\fB\-sizeD\fP +T} T{ +Sort by feature size in descending order. +T} +_ +T{ +\fB\-chrThenSizeA\fP +T} T{ +Sort by chromosome, then by feature size (asc). +T} +_ +T{ +\fB\-chrThenSizeD\fP +T} T{ +Sort by chromosome, then by feature size (desc). +T} +_ +T{ +\fB\-chrThenScoreA\fP +T} T{ +Sort by chromosome, then by score (asc). +T} +_ +T{ +\fB\-chrThenScoreD\fP +T} T{ +Sort by chromosome, then by score (desc). +T} +_ +.TE +.SS 5.15.2 Default behavior +.sp +By default, \fBsortBed\fP sorts a BED file by chromosome and then by start position in ascending order. +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 800 1000 +chr1 80 180 +chr1 1 10 +chr1 750 10000 + +sortBed \-i A.bed +chr1 1 10 +chr1 80 180 +chr1 750 10000 +chr1 800 1000 +.ft P +.fi +.SS 5.15.3 Optional sorting behavior +.sp +\fBsortBed\fP will also sorts a BED file by chromosome and then by other criteria. +.sp +For example, to sort by chromosome and then by feature size (in descending order): +.sp +.nf +.ft C +cat A.bed +chr1 800 1000 +chr1 80 180 +chr1 1 10 +chr1 750 10000 + +sortBed \-i A.bed \-sizeD +chr1 750 10000 +chr1 800 1000 +chr1 80 180 +chr1 1 10 +.ft P +.fi +.sp +\fBDisclaimer:\fP it should be noted that \fBsortBed\fP is merely a convenience utility, as the UNIX sort utility +will sort BED files more quickly while using less memory. For example, UNIX sort will sort a BED file +by chromosome then by start position in the following manner: +.sp +.nf +.ft C +sort \-k 1,1 \-k2,2 \-n a.bed +chr1 1 10 +chr1 80 180 +chr1 750 10000 +chr1 800 1000 +.ft P +.fi +.SS 5.16 linksBed +.sp +Creates an HTML file with links to an instance of the UCSC Genome Browser for all features / +intervals in a file. This is useful for cases when one wants to manually inspect through a large set of +annotations or features. +.SS 5.16.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +linksBed [OPTIONS] \-i <BED/GFF/VCF> > <HTML file> +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-base\fP +T} T{ +The "basename" for the UCSC browser. \fIDefault: http://genome.ucsc.edu\fP +T} +_ +T{ +\fB\-org\fP +T} T{ +The organism (e.g. mouse, human). \fIDefault: human\fP +T} +_ +T{ +\fB\-db\fP +T} T{ +The genome build. \fIDefault: hg18\fP +T} +_ +.TE +.SS 5.16.2 Default behavior +.sp +By default, \fBlinksBed\fP creates links to the public UCSC Genome Browser. +.sp +For example: +.sp +.nf +.ft C +head genes.bed +chr21 9928613 10012791 uc002yip.1 0 \- +chr21 9928613 10012791 uc002yiq.1 0 \- +chr21 9928613 10012791 uc002yir.1 0 \- +chr21 9928613 10012791 uc010gkv.1 0 \- +chr21 9928613 10061300 uc002yis.1 0 \- +chr21 10042683 10120796 uc002yit.1 0 \- +chr21 10042683 10120808 uc002yiu.1 0 \- +chr21 10079666 10120808 uc002yiv.1 0 \- +chr21 10080031 10081687 uc002yiw.1 0 \- +chr21 10081660 10120796 uc002yix.2 0 \- + +linksBed \-i genes.bed > genes.html +.ft P +.fi +.sp +When genes.html is opened in a web browser, one should see something like the following, where each +link on the page is built from the features in genes.bed: +.SS 5.16.3 Creating HTML links to a local UCSC Browser installation +.sp +Optionally, \fBlinksBed\fP will create links to a local copy of the UCSC Genome Browser. +.sp +For example: +.sp +.nf +.ft C +head \-3 genes.bed +chr21 9928613 10012791 uc002yip.1 0 \- +chr21 9928613 10012791 uc002yiq.1 0 \- + +linksBed \-i genes.bed \-base http://mirror.uni.edu > genes.html +.ft P +.fi +.sp +One can point the links to the appropriate organism and genome build as well: +.sp +.nf +.ft C +head \-3 genes.bed +chr21 9928613 10012791 uc002yip.1 0 \- +chr21 9928613 10012791 uc002yiq.1 0 \- + +linksBed \-i genes.bed \-base http://mirror.uni.edu \-org mouse \-db mm9 > genes.html +.ft P +.fi +.SS 5.17 complementBed +.sp +\fBcomplementBed\fP returns the intervals in a genome that are not by the features in a feature file. An +example usage of this tool would be to return the intervals of the genome that are not annotated as a +repeat. +.SS 5.17.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +complementBed [OPTIONS] \-i <BED/GFF/VCF> \-g <GENOME> +.ft P +.fi +.sp +\fBNo additional options.\fP +.SS 5.17.2 Default behavior +.sp +Figure: +.sp +.nf +.ft C +Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +BED FILE A ************* *************** ****************** + +Result === === ===== ======= +.ft P +.fi +.sp +For example: +.sp +.nf +.ft C +cat A.bed +chr1 100 200 +chr1 400 500 +chr1 500 800 + +cat my.genome +chr1 1000 + +complementBed \-i A.bed \-g my.genome +chr1 0 100 +chr1 200 400 +chr1 800 1000 +.ft P +.fi +.SS 5.18 bedToBam +.sp +\fBbedToBam\fP converts features in a feature file to BAM format. This is useful as an efficient means of +storing large genome annotations in a compact, indexed format for visualization purposes. +.SS 5.18.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +bedToBam [OPTIONS] \-i <BED/GFF/VCF> \-g <GENOME> > <BAM> +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-mapq\fP +T} T{ +Set a mapping quality (SAM MAPQ field) value for all BED entries. \fIDefault: 255\fP +T} +_ +T{ +\fB\-ubam\fP +T} T{ +Write uncompressed BAM output. The default is write compressed BAM output. +T} +_ +T{ +\fB\-bed12\fP +T} T{ +Indicate that the input BED file is in BED12 (a.k.a "blocked" BED) format. In this case, bedToBam will convert blocked BED features (e.g., gene annotaions) into "spliced" BAM alignments by creating an appropriate CIGAR string. +T} +_ +.TE +.SS 5.18.2 Default behavior +.sp +The default behavior is to assume that the input file is in unblocked format. For example: +.sp +.nf +.ft C +head \-5 rmsk.hg18.chr21.bed +chr21 9719768 9721892 ALR/Alpha 1004 + +chr21 9721905 9725582 ALR/Alpha 1010 + +chr21 9725582 9725977 L1PA3 3288 + +chr21 9726021 9729309 ALR/Alpha 1051 + +chr21 9729320 9729809 L1PA3 3897 \- + +bedToBam \-i rmsk.hg18.chr21.bed \-g human.hg18.genome > rmsk.hg18.chr21.bam + +samtools view rmsk.hg18.chr21.bam | head \-5 +ALR/Alpha 0 chr21 9719769 255 2124M * 0 0 * * +ALR/Alpha 0 chr21 9721906 255 3677M * 0 0 * * +L1PA3 0 chr21 9725583 255 395M * 0 0 * * +ALR/Alpha 0 chr21 9726022 255 3288M * 0 0 * * +L1PA3 16 chr21 9729321 255 489M * 0 0 * * +.ft P +.fi +.SS 5.18.3 Creating "spliced" BAM entries from "blocked" BED features +.sp +Optionally, \fBbedToBam\fP will create spliced BAM entries from "blocked" BED features by using the +\-bed12 option. This will create CIGAR strings in the BAM output that will be displayed as "spliced" +alignments. The image illustrates this behavior, as the top track is a BAM representation (using +bedToBam) of a BED file of UCSC genes. +.sp +For example: +.sp +.nf +.ft C +bedToBam \-i knownGene.hg18.chr21.bed \-g human.hg18.genome \-bed12 > knownGene.bam + +samtools view knownGene.bam | head \-2 +uc002yip.1 16 chr21 9928614 2 5 5 + +298M1784N71M1411N93M3963N80M1927N106M3608N81M1769N62M11856N89M98N82M816N61M6910N65M +738N64M146N100M1647N120M6478N162M1485N51M6777N60M9274N54M880N54M1229N54M2377N54M112 +68N58M2666N109M2885N158M * 0 0 * * +uc002yiq.1 16 chr21 9928614 2 5 5 + +298M1784N71M1411N93M3963N80M1927N106M3608N81M1769N62M11856N89M98N82M816N61M6910N65M +738N64M146N100M1647N120M6478N162M1485N51M6777N60M10208N54M1229N54M2377N54M11268N58M +2666N109M2885N158M * 0 0 * * +.ft P +.fi +.SS 5.19 overlap +.sp +\fBoverlap\fP computes the amount of overlap (in the case of positive values) or distance (in the case of +negative values) between feature coordinates occurring on the same input line and reports the result at +the end of the same line. In this way, it is a useful method for computing custom overlap scores from +the output of other BEDTools. +.SS 5.19.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +overlap [OPTIONS] \-i <input> \-cols s1,e1,s2,e2 +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-i\fP +T} T{ +Input file. Use "stdin" for pipes. +T} +_ +T{ +\fB\-cols\fP +T} T{ +Specify the columns (1\-based) for the starts and ends of the features for which you\(aqd like to compute the overlap/distance. The columns must be listed in the following order: \fIstart1,end1,start2,end2\fP +T} +_ +.TE +.SS 5.19.2 Default behavior +.sp +The default behavior is to compute the amount of overlap between the features you specify based on the +start and end coordinates. For example: +.sp +.nf +.ft C +windowBed \-a A.bed \-b B.bed \-w 10 +chr1 10 20 A chr1 15 25 B +chr1 10 20 C chr1 25 35 D +.ft P +.fi +.sp +# Now let\(aqs say we want to compute the number of base pairs of overlap +# between the overlapping features from the output of windowBed. +.sp +.nf +.ft C +windowBed \-a A.bed \-b B.bed \-w 10 | overlap \-i stdin \-cols 2,3,6,7 +chr1 10 20 A chr1 15 25 B 5 +chr1 10 20 C chr1 25 35 D \-5 +.ft P +.fi +.SS 5.20 bedToIgv +.sp +\fBbedToIgv\fP creates an IGV (\fI\%http://www.broadinstitute.org/igv/\fP) batch script (see: \fI\%http://\fP +www.broadinstitute.org/igv/batch for details) such that a ??snapshot?? will be taken at each features in a +feature file. This is useful as an efficient means for quickly collecting images of primary data at several +loci for subsequent screening, etc. +.sp +\fBNOTE: One must use IGV version 1.5 or higher.\fP +.SS 5.20.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +bedToIgv [OPTIONS] \-i <BED/GFF/VCF> > <igv.batch> +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-path\fP +T} T{ +The full path to which the IGV snapshots should be written. \fIDefault: ./\fP +T} +_ +T{ +\fB\-sess\fP +T} T{ +The full path to an existing IGV session file to be loaded prior to taking snapshots. \fIDefault is for no session to be loaded and the assumption is that you already have IGV open and loaded with your relevant data prior to running the batch script\fP. +T} +_ +T{ +\fB\-sort\fP +T} T{ +The type of BAM sorting you would like to apply to each image. \fBValid sorting options\fP: \fIbase, position, strand, quality, sample, and readGroup Default is to apply no sorting at all\fP. +T} +_ +T{ +\fB\-clps\fP +T} T{ +Collapse the aligned reads prior to taking a snapshot. \fIDefault is to not collapse\fP. +T} +_ +T{ +\fB\-name\fP +T} T{ +Use the "name" field (column 4) for each image\(aqs filename. \fIDefault is to use the "chr:start\-pos.ext"\fP. +T} +_ +T{ +\fB\-slop\fP +T} T{ +Number of flanking base pairs on the left & right of the image. +T} +_ +T{ +\fB\-img\fP +T} T{ +The type of image to be created. \fBValid options\fP: \fIpng, eps, svg Default is png\fP. +T} +_ +.TE +.SS 5.20.2 Default behavior +.sp +Figure: +.sp +.nf +.ft C +bedToIgv \-i data/rmsk.hg18.chr21.bed | head \-9 +snapshotDirectory ./ +goto chr21:9719768\-9721892 +snapshot chr21:9719768\-9721892.png +goto chr21:9721905\-9725582 +snapshot chr21:9721905\-9725582.png +goto chr21:9725582\-9725977 +snapshot chr21:9725582\-9725977.png +goto chr21:9726021\-9729309 +snapshot chr21:9726021\-9729309.png +.ft P +.fi +.SS 5.20.3 Using a bedToIgv batch script within IGV. +.sp +Once an IGV batch script has been created with \fBbedToIgv\fP, it is simply a matter of running it from +within IGV. +.sp +For example, first create the batch script: +.sp +.nf +.ft C +bedToIgv \-i data/rmsk.hg18.chr21.bed > rmsk.igv.batch +.ft P +.fi +.sp +Then, open and launch the batch script from within IGV. This will immediately cause IGV to begin +taking snapshots of your requested regions. +.SS 5.21 bed12ToBed6 +.sp +\fBbed12ToBed6\fP is a convenience tool that converts BED features in BED12 (a.k.a. "blocked" BED +features such as genes) to discrete BED6 features. For example, in the case of a gene with six exons, +bed12ToBed6 would create six separate BED6 features (i.e., one for each exon). +.SS 5.21.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +bed12ToBed6 [OPTIONS] \-i <BED12> +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-i\fP +T} T{ +The BED12 file that should be split into discrete BED6 features. \fIUse "stdin" when using piped input\fP. +T} +_ +.TE +.SS 5.21.2 Default behavior +.sp +Figure: +.sp +.nf +.ft C +head data/knownGene.hg18.chr21.bed | tail \-n 3 +chr21 10079666 10120808 uc002yiv.1 0 \- 10081686 1 0 1 2 0 6 0 8 + 0 4 528,91,101,215, 0,1930,39750,40927, +chr21 10080031 10081687 uc002yiw.1 0 \- 10080031 1 0 0 8 0 0 3 1 + 0 2 200,91, 0,1565, +chr21 10081660 10120796 uc002yix.2 0 \- 10081660 1 0 0 8 1 6 6 0 + 0 3 27,101,223,0,37756,38913, + +head data/knownGene.hg18.chr21.bed | tail \-n 3 | bed12ToBed6 \-i stdin +chr21 10079666 10080194 uc002yiv.1 0 \- +chr21 10081596 10081687 uc002yiv.1 0 \- +chr21 10119416 10119517 uc002yiv.1 0 \- +chr21 10120593 10120808 uc002yiv.1 0 \- +chr21 10080031 10080231 uc002yiw.1 0 \- +chr21 10081596 10081687 uc002yiw.1 0 \- +chr21 10081660 10081687 uc002yix.2 0 \- +chr21 10119416 10119517 uc002yix.2 0 \- +chr21 10120573 10120796 uc002yix.2 0 \- +.ft P +.fi +.SS 5.22 groupBy +.sp +\fBgroupBy\fP is a useful tool that mimics the "groupBy" clause in database systems. Given a file or stream +that is sorted by the appropriate "grouping columns", groupBy will compute summary statistics on +another column in the file or stream. This will work with output from all BEDTools as well as any other +tab\-delimited file or stream. +.sp +\fBNOTE: When using groupBy, the input data must be ordered by the same +columns as specified with the \-grp argument. For example, if \-grp is 1,2,3, the the +data should be pre\-grouped accordingly. When groupBy detects changes in the +group columns it then summarizes all lines with that group\fP. +.SS 5.22.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +groupBy [OPTIONS] \-i <input> \-opCol <input column> +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-i\fP +T} T{ +.INDENT 0.0 +.INDENT 3.5 +The input file that should be grouped and summarized. \fIUse "stdin" when using piped input\fP. +.UNINDENT +.UNINDENT +.sp +\fBNote: if \-i is omitted, input is assumed to come from standard input (stdin)\fP +T} +_ +T{ +\fB\-g OR \-grp\fP +T} T{ +Specifies which column(s) (1\-based) should be used to group the input. The columns must be comma\-separated and each column must be explicitly listed. No ranges (e.g. 1\-4) yet allowed. \fIDefault: 1,2,3\fP +T} +_ +T{ +\fB\-c OR \-opCol\fP +T} T{ +Specify the column (1\-based) that should be summarized. \fIRequired\fP. +T} +_ +T{ +\fB\-o OR \-op\fP +T} T{ +Specify the operation that should be applied to \fBopCol\fP. +.nf +Valid operations: +.fi +.sp +.INDENT 0.0 +.INDENT 3.5 +.nf +\fBsum\fP \- \fInumeric only\fP +\fBcount\fP \- \fInumeric or text\fP +\fBmin\fP \- \fInumeric only\fP +\fBmax\fP \- \fInumeric only\fP +\fBmean\fP \- \fInumeric only\fP +\fBstdev\fP \- \fInumeric only\fP +\fBmedian\fP \- \fInumeric only\fP +\fBmode\fP \- \fInumeric or text\fP +\fBantimode\fP \- \fInumeric or text\fP +\fBcollapse\fP (i.e., print a comma separated list) \- \fInumeric or text\fP +\fBfreqasc\fP \- \fIprint a comma separated list of values observed and the number of times they were observed. Reported in ascending order of frequency\fP +.fi +.sp +.UNINDENT +.UNINDENT +.nf +\fBfreqdesc\fP \- \fIprint a comma separated list of values observed and the number of times they were observed. Reported in descending order of frequency\fP +.fi +.sp +.INDENT 0.0 +.INDENT 3.5 +.nf +\fIDefault: sum\fP +.fi +.sp +.UNINDENT +.UNINDENT +T} +_ +.TE +.SS 5.22.2 Default behavior. +.sp +Let\(aqs imagine we have three incredibly interesting genetic variants that we are studying and we are +interested in what annotated repeats these variants overlap. +.sp +.nf +.ft C +cat variants.bed +chr21 9719758 9729320 variant1 +chr21 9729310 9757478 variant2 +chr21 9795588 9796685 variant3 + +intersectBed \-a variants.bed \-b repeats.bed \-wa \-wb > variantsToRepeats.bed +cat variantsToRepeats.bed +chr21 9719758 9729320 variant1 chr21 9719768 9721892 ALR/Alpha 1004 + +chr21 9719758 9729320 variant1 chr21 9721905 9725582 ALR/Alpha 1010 + +chr21 9719758 9729320 variant1 chr21 9725582 9725977 L1PA3 3288 + +chr21 9719758 9729320 variant1 chr21 9726021 9729309 ALR/Alpha 1051 + +chr21 9729310 9757478 variant2 chr21 9729320 9729809 L1PA3 3897 \- +chr21 9729310 9757478 variant2 chr21 9729809 9730866 L1P1 8367 + +chr21 9729310 9757478 variant2 chr21 9730866 9734026 ALR/Alpha 1036 \- +chr21 9729310 9757478 variant2 chr21 9734037 9757471 ALR/Alpha 1182 \- +chr21 9795588 9796685 variant3 chr21 9795589 9795713 (GAATG)n 308 + +chr21 9795588 9796685 variant3 chr21 9795736 9795894 (GAATG)n 683 + +chr21 9795588 9796685 variant3 chr21 9795911 9796007 (GAATG)n 345 + +chr21 9795588 9796685 variant3 chr21 9796028 9796187 (GAATG)n 756 + +chr21 9795588 9796685 variant3 chr21 9796202 9796615 (GAATG)n 891 + +chr21 9795588 9796685 variant3 chr21 9796637 9796824 (GAATG)n 621 + +.ft P +.fi +.sp +We can see that variant1 overlaps with 3 repeats, variant2 with 4 and variant3 with 6. We can use +groupBy to summarize the hits for each variant in several useful ways. The default behavior is to +compute the \fIsum\fP of the opCol. +.sp +.nf +.ft C +groupBy \-i variantsToRepeats.bed \-grp 1,2,3 \-opCol 9 +chr21 9719758 9729320 6353 +chr21 9729310 9757478 14482 +chr21 9795588 9796685 3604 +.ft P +.fi +.SS 5.22.3 Computing the min and max. +.sp +Now let\(aqs find the \fImin\fP and \fImax\fP repeat score for each variant. We do this by "grouping" on the variant +coordinate columns (i.e. cols. 1,2 and 3) and ask for the min and max of the repeat score column (i.e. +col. 9). +.sp +.nf +.ft C +groupBy \-i variantsToRepeats.bed \-g 1,2,3 \-c 9 \-o min +chr21 9719758 9729320 1004 +chr21 9729310 9757478 1036 +chr21 9795588 9796685 308 +.ft P +.fi +.sp +We can also group on just the \fIname\fP column with similar effect. +.sp +.nf +.ft C +groupBy \-i variantsToRepeats.bed \-grp 4 \-opCol 9 \-op min +variant1 1004 +variant2 1036 +variant3 308 +.ft P +.fi +.sp +What about the \fImax\fP score? Let\(aqs keep the coordinates and the name of the variants so that we +stay in BED format. +.sp +.nf +.ft C +groupBy \-i variantsToRepeats.bed \-grp 1,2,3,4 \-opCol 9 \-op max +chr21 9719758 9729320 variant1 3288 +chr21 9729310 9757478 variant2 8367 +chr21 9795588 9796685 variant3 891 +.ft P +.fi +.SS 5.22.4 Computing the mean and median. +.sp +Now let\(aqs find the \fImean\fP and \fImedian\fP repeat score for each variant. +.sp +.nf +.ft C +cat variantsToRepeats.bed | groupBy \-g 1,2,3,4 \-c 9 \-o mean +chr21 9719758 9729320 variant1 1588.25 +chr21 9729310 9757478 variant2 3620.5 +chr21 9795588 9796685 variant3 600.6667 + +groupBy \-i variantsToRepeats.bed \-grp 1,2,3,4 \-opCol 9 \-op median +chr21 9719758 9729320 variant1 1030.5 +chr21 9729310 9757478 variant2 2539.5 +chr21 9795588 9796685 variant3 652 +.ft P +.fi +.SS 5.22.5 Computing the mode and "antimode". +.sp +Now let\(aqs find the \fImode\fP and \fIantimode\fP (i.e., the least frequent) repeat score for each variant (in this case +they are identical). +.sp +.nf +.ft C +groupBy \-i variantsToRepeats.bed \-grp 1,2,3,4 \-opCol 9 \-op mode +chr21 9719758 9729320 variant1 1004 +chr21 9729310 9757478 variant2 1036 +chr21 9795588 9796685 variant3 308 + +groupBy \-i variantsToRepeats.bed \-grp 1,2,3,4 \-opCol 9 \-op antimode +chr21 9719758 9729320 variant1 1004 +chr21 9729310 9757478 variant2 1036 +chr21 9795588 9796685 variant3 308 +.ft P +.fi +.SS 5.22.6 Computing the count of lines for a given group. +.sp +Figure: +.sp +.nf +.ft C +groupBy \-i variantsToRepeats.bed \-g 1,2,3,4 \-c 9 \-c count +chr21 9719758 9729320 variant1 4 +chr21 9729310 9757478 variant2 4 +chr21 9795588 9796685 variant3 6 +.ft P +.fi +.SS 5.22.7 Collapsing: listing all of the values in the opCol for a given group. +.sp +Now for something different. What if we wanted all of the names of the repeats listed on the same line +as the variants? Use the collapse option. This "denormalizes" things. Now you have a list of all the +repeats on a single line. +.sp +.nf +.ft C +groupBy \-i variantsToRepeats.bed \-grp 1,2,3,4 \-opCol 9 \-op collapse +chr21 9719758 9729320 variant1 ALR/Alpha,ALR/Alpha,L1PA3,ALR/Alpha, +chr21 9729310 9757478 variant2 L1PA3,L1P1,ALR/Alpha,ALR/Alpha, +chr21 9795588 9796685 variant3 (GAATG)n,(GAATG)n,(GAATG)n,(GAATG)n,(GAATG)n,(GAATG)n, +.ft P +.fi +.SS 5.22.8 Computing frequencies: freqasc and freqdesc. +.sp +Now for something different. What if we wanted all of the names of the repeats listed on the same line +as the variants? Use the collapse option. This "denormalizes" things. Now you have a list of all the +repeats on a single line. +.sp +.nf +.ft C +cat variantsToRepeats.bed | groupBy \-g 1 \-c 8 \-o freqdesc +chr21 (GAATG)n:6,ALR/Alpha:5,L1PA3:2,L1P1:1, + +cat variantsToRepeats.bed | groupBy \-g 1 \-c 8 \-o freqasc +chr21 L1P1:1,L1PA3:2,ALR/Alpha:5,(GAATG)n:6, +.ft P +.fi +.SS 5.23 unionBedGraphs +.sp +\fBunionBedGraphs\fP combines multiple BEDGRAPH files into a single file such that one can directly +compare coverage (and other text\-values such as genotypes) across multiple sample +.SS 5.23.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +unionBedGraphs [OPTIONS] \-i FILE1 FILE2 FILE3 ... FILEn +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-header\fP +T} T{ +Print a header line, consisting of chrom, start, end followed by the names of each input BEDGRAPH file. +T} +_ +T{ +\fB\-names\fP +T} T{ +A list of names (one per file) to describe each file in \-i. These names will be printed in the header line. +T} +_ +T{ +\fB\-empty\fP +T} T{ +Report empty regions (i.e., start/end intervals w/o values in all files). \fIRequires the \(aq\-g FILE\(aq parameter (see below)\fP. +T} +_ +T{ +\fB\-g\fP +T} T{ +The genome file to be used to calculate empty regions. +T} +_ +T{ +\fB\-filler TEXT\fP +T} T{ +Use TEXT when representing intervals having no value. Default is \(aq0\(aq, but you can use \(aqN/A\(aq or any other text. +T} +_ +T{ +\fB\-examples\fP +T} T{ +Show detailed usage examples. +T} +_ +.TE +.SS 5.23.2 Default behavior +.sp +Figure: +.sp +.nf +.ft C +cat 1.bg +chr1 1000 1500 10 +chr1 2000 2100 20 + +cat 2.bg +chr1 900 1600 60 +chr1 1700 2050 50 + +cat 3.bg +chr1 1980 2070 80 +chr1 2090 2100 20 + +cat sizes.txt +chr1 5000 + +unionBedGraphs \-i 1.bg 2.bg 3.bg +chr1 900 1000 0 60 0 +chr1 1000 1500 10 60 0 +chr1 1500 1600 0 60 0 +chr1 1700 1980 0 50 0 +chr1 1980 2000 0 50 80 +chr1 2000 2050 20 50 80 +chr1 2050 2070 20 0 80 +chr1 2070 2090 20 0 0 +chr1 2090 2100 20 0 20 +.ft P +.fi +.SS 5.23.3 Add a header line to the output +.sp +Figure: +.sp +.nf +.ft C +unionBedGraphs \-i 1.bg 2.bg 3.bg \-header +chrom start end 1 2 3 +chr1 900 1000 0 60 0 +chr1 1000 1500 10 60 0 +chr1 1500 1600 0 60 0 +chr1 1700 1980 0 50 0 +chr1 1980 2000 0 50 80 +chr1 2000 2050 20 50 80 +chr1 2050 2070 20 0 80 +chr1 2070 2090 20 0 0 +chr1 2090 2100 20 0 20 +.ft P +.fi +.SS 5.23.4 Add a header line with custom file names to the output +.sp +Figure: +.sp +.nf +.ft C +unionBedGraphs \-i 1.bg 2.bg 3.bg \-header \-names WT\-1 WT\-2 KO\-1 +chrom start end WT\-1 WT\-2 KO\-1 +chr1 900 1000 0 60 0 +chr1 1000 1500 10 60 0 +chr1 1500 1600 0 60 0 +chr1 1700 1980 0 50 0 +chr1 1980 2000 0 50 80 +chr1 2000 2050 20 50 80 +chr1 2050 2070 20 0 80 +chr1 2070 2090 20 0 0 +chr1 2090 2100 20 0 20 +.ft P +.fi +.SS 5.23.5 Include regions that have zero coverage in all BEDGRAPH files. +.sp +Figure: +.sp +.nf +.ft C +unionBedGraphs \-i 1.bg 2.bg 3.bg \-empty \-g sizes.txt \-header +chrom start end WT\-1 WT\-2 KO\-1 +chrom start end 1 2 3 +chr1 0 900 0 0 0 +chr1 900 1000 0 60 0 +chr1 1000 1500 10 60 0 +chr1 1500 1600 0 60 0 +chr1 1600 1700 0 0 0 +chr1 1700 1980 0 50 0 +chr1 1980 2000 0 50 80 +chr1 2000 2050 20 50 80 +chr1 2050 2070 20 0 80 +chr1 2070 2090 20 0 0 +chr1 2090 2100 20 0 20 +chr1 2100 5000 0 0 0 +.ft P +.fi +.SS 5.23.6 Use a custom value for missing values. +.sp +Figure: +.sp +.nf +.ft C +unionBedGraphs \-i 1.bg 2.bg 3.bg \-empty \-g sizes.txt \-header \-filler N/A +chrom start end WT\-1 WT\-2 KO\-1 +chrom start end 1 2 3 +chr1 0 900 N/A N/A N/A +chr1 900 1000 N/A 60 N/A +chr1 1000 1500 10 60 N/A +chr1 1500 1600 N/A 60 N/A +chr1 1600 1700 N/A N/A N/A +chr1 1700 1980 N/A 50 N/A +chr1 1980 2000 N/A 50 80 +chr1 2000 2050 20 50 80 +chr1 2050 2070 20 N/A 80 +chr1 2070 2090 20 N/A N/A +chr1 2090 2100 20 N/A 20 +chr1 2100 5000 N/A N/A N/A +.ft P +.fi +.SS 5.23.7 Use BEDGRAPH files with non\-numeric values. +.sp +Figure: +.sp +.nf +.ft C +cat 1.snp.bg +chr1 0 1 A/G +chr1 5 6 C/T + +cat 2.snp.bg +chr1 0 1 C/C +chr1 7 8 T/T + +cat 3.snp.bg +chr1 0 1 A/G +chr1 5 6 C/T + +unionBedGraphs \-i 1.snp.bg 2.snp.bg 3.snp.bg \-filler \-/\- +chr1 0 1 A/G C/C A/G +chr1 5 6 C/T \-/\- C/T +chr1 7 8 \-/\- T/T \-/\- +.ft P +.fi +.SS 5.24 annotateBed +.sp +\fBannotateBed\fP annotates one BED/VCF/GFF file with the coverage and number of overlaps observed +from multiple other BED/VCF/GFF files. In this way, it allows one to ask to what degree one feature +coincides with multiple other feature types with a single command. +.SS 5.24.1 Usage and option summary +.sp +Usage: +.sp +.nf +.ft C +annotateBed [OPTIONS] \-i <BED/GFF/VCF> \-files FILE1 FILE2 FILE3 ... FILEn +.ft P +.fi +.TS +center; +|l|l|. +_ +T{ +Option +T} T{ +Description +T} +_ +T{ +\fB\-namesr\fP +T} T{ +A list of names (one per file) to describe each file in \-i. These names will be printed as a header line. +T} +_ +T{ +\fB\-counts\fP +T} T{ +Report the count of features in each file that overlap \-i. Default behavior is to report the fraction of \-i covered by each file. +T} +_ +T{ +\fB\-both\fP +T} T{ +Report the count of features followed by the % coverage for each annotation file. Default is to report solely the fraction of \-i covered by each file. +T} +_ +T{ +\fB\-s\fP +T} T{ +Force strandedness. That is, only include hits in A that overlap B on the same strand. By default, hits are included without respect to strand. +T} +_ +.TE +.SS 5.24.2 Default behavior \- annotate one file with coverage from others. +.sp +By default, the fraction of each feature covered by each annotation file is reported after the complete +feature in the file to be annotated. +.sp +.nf +.ft C +cat variants.bed +chr1 100 200 nasty 1 \- +chr2 500 1000 ugly 2 + +chr3 1000 5000 big 3 \- + +cat genes.bed +chr1 150 200 geneA 1 + +chr1 175 250 geneB 2 + +chr3 0 10000 geneC 3 \- + +cat conserve.bed +chr1 0 10000 cons1 1 + +chr2 700 10000 cons2 2 \- +chr3 4000 10000 cons3 3 + + +cat known_var.bed +chr1 0 120 known1 \- +chr1 150 160 known2 \- +chr2 0 10000 known3 + + +annotateBed \-i variants.bed \-files genes.bed conserv.bed known_var.bed +chr1 100 200 nasty 1 \- 0.500000 1.000000 0.300000 +chr2 500 1000 ugly 2 + 0.000000 0.600000 1.000000 +chr3 1000 5000 big 3 \- 1.000000 0.250000 0.000000 +.ft P +.fi +.SS 5.24.3 Report the count of hits from the annotation files +.sp +Figure: +.sp +.nf +.ft C +annotateBed \-counts \-i variants.bed \-files genes.bed conserv.bed known_var.bed +chr1 100 200 nasty 1 \- 2 1 2 +chr2 500 1000 ugly 2 + 0 1 1 +chr3 1000 5000 big 3 \- 1 1 0 +.ft P +.fi +.SS 5.24.4 Report both the count of hits and the fraction covered from the annotation files +.sp +Figure: +.sp +.nf +.ft C +annotateBed \-both \-i variants.bed \-files genes.bed conserv.bed known_var.bed +#chr start end name score +/\- cnt1 pct1 cnt2 pct2 cnt3 pct3 +chr1 100 200 nasty 1 \- 2 0.500000 1 1.000000 2 0.300000 +chr2 500 1000 ugly 2 + 0 0.000000 1 0.600000 1 1.000000 +chr3 1000 5000 big 3 \- 1 1.000000 1 0.250000 0 0.000000 +.ft P +.fi +.SS 5.24.5 Restrict the reporting to overlaps on the same strand. +.sp +Note: Compare with the result from 5.24.3 +.sp +.nf +.ft C +annotateBed \-s \-i variants.bed \-files genes.bed conserv.bed known_var.bed +chr1 100 200 nasty var1 \- 0.000000 0.000000 0.000000 +chr2 500 1000 ugly var2 + 0.000000 0.000000 0.000000 +chr3 1000 5000 big var3 \- 1.000000 0.000000 0.000000 +.ft P +.fi +.SH EXAMPLE USAGE +.sp +Below are several examples of basic BEDTools usage. Example BED files are provided in the +/data directory of the BEDTools distribution. +.SS 6.1 intersectBed +.sp +6.1.1 Report the base\-pair overlap between sequence alignments and genes. +.sp +.nf +.ft C +intersectBed \-a reads.bed \-b genes.bed +.ft P +.fi +.sp +6.1.2 Report whether each alignment overlaps one or more genes. If not, the alignment is not reported. +.sp +.nf +.ft C +intersectBed \-a reads.bed \-b genes.bed \-u +.ft P +.fi +.sp +6.1.3 Report those alignments that overlap NO genes. Like "grep \-v" +.sp +.nf +.ft C +intersectBed \-a reads.bed \-b genes.bed \-v +.ft P +.fi +.sp +6.1.4 Report the number of genes that each alignment overlaps. +.sp +.nf +.ft C +intersectBed \-a reads.bed \-b genes.bed \-c +.ft P +.fi +.sp +6.1.5 Report the entire, original alignment entry for each overlap with a gene. +.sp +.nf +.ft C +intersectBed \-a reads.bed \-b genes.bed \-wa +.ft P +.fi +.sp +6.1.6 Report the entire, original gene entry for each overlap with a gene. +.sp +.nf +.ft C +intersectBed \-a reads.bed \-b genes.bed \-wb +.ft P +.fi +.sp +6.1.7 Report the entire, original alignment and gene entries for each overlap. +.sp +.nf +.ft C +intersectBed \-a reads.bed \-b genes.bed \-wa \-wb +.ft P +.fi +.sp +6.1.8 Only report an overlap with a repeat if it spans at least 50% of the exon. +.sp +.nf +.ft C +intersectBed \-a exons.bed \-b repeatMasker.bed \-f 0.50 +.ft P +.fi +.sp +6.1.9 Only report an overlap if comprises 50% of the structural variant and 50% of the segmental duplication. Thus, it is reciprocally at least a 50% overlap. +.sp +.nf +.ft C +intersectBed \-a SV.bed \-b segmentalDups.bed \-f 0.50 \-r +.ft P +.fi +.sp +6.1.10 Read BED A from stdin. For example, find genes that overlap LINEs but not SINEs. +.sp +.nf +.ft C +intersectBed \-a genes.bed \-b LINES.bed | intersectBed \-a stdin \-b SINEs.bed \-v +.ft P +.fi +.sp +6.1.11 Retain only single\-end BAM alignments that overlap exons. +.sp +.nf +.ft C +intersectBed \-abam reads.bam \-b exons.bed > reads.touchingExons.bam +.ft P +.fi +.sp +6.1.12 Retain only single\-end BAM alignments that do not overlap simple sequence +repeats. +.sp +.nf +.ft C +intersectBed \-abam reads.bam \-b SSRs.bed \-v > reads.noSSRs.bam +.ft P +.fi +.SS 6.2 pairToBed +.sp +6.2.1 Return all structural variants (in BEDPE format) that overlap with genes on either +end. +.sp +.nf +.ft C +pairToBed \-a sv.bedpe \-b genes > sv.genes +.ft P +.fi +.sp +6.2.2 Return all structural variants (in BEDPE format) that overlap with genes on both +end. +.sp +.nf +.ft C +pairToBed \-a sv.bedpe \-b genes \-type both > sv.genes +.ft P +.fi +.sp +6.2.3 Retain only paired\-end BAM alignments where neither end overlaps simple +sequence repeats. +.sp +.nf +.ft C +pairToBed \-abam reads.bam \-b SSRs.bed \-type neither > reads.noSSRs.bam +.ft P +.fi +.sp +6.2.4 Retain only paired\-end BAM alignments where both ends overlap segmental +duplications. +.sp +.nf +.ft C +pairToBed \-abam reads.bam \-b segdups.bed \-type both > reads.SSRs.bam +.ft P +.fi +.sp +6.2.5 Retain only paired\-end BAM alignments where neither or one and only one end +overlaps segmental duplications. +.sp +.nf +.ft C +pairToBed \-abam reads.bam \-b segdups.bed \-type notboth > reads.notbothSSRs.bam +.ft P +.fi +.SS 6.3 pairToPair +.sp +6.3.1 Find all SVs (in BEDPE format) in sample 1 that are also in sample 2. +.sp +.nf +.ft C +pairToPair \-a 1.sv.bedpe \-b 2.sv.bedpe | cut \-f 1\-10 > 1.sv.in2.bedpe +.ft P +.fi +.sp +6.3.2 Find all SVs (in BEDPE format) in sample 1 that are not in sample 2. +.sp +.nf +.ft C +pairToPair \-a 1.sv.bedpe \-b 2.sv.bedpe \-type neither | cut \-f 1\-10 > +.ft P +.fi +.sp +1.sv.notin2.bedpe +.SS 6.4 bamToBed +.sp +6.4.1 Convert BAM alignments to BED format. +.sp +.nf +.ft C +bamToBed \-i reads.bam > reads.bed +.ft P +.fi +.sp +6.4.2 Convert BAM alignments to BED format using the BAM edit distance (NM) as the +BED "score". +.sp +.nf +.ft C +bamToBed \-i reads.bam \-ed > reads.bed +.ft P +.fi +.sp +6.4.3 Convert BAM alignments to BEDPE format. +.sp +.nf +.ft C +bamToBed \-i reads.bam \-bedpe > reads.bedpe +.ft P +.fi +.SS 6.5 windowBed +.sp +6.5.1 Report all genes that are within 10000 bp upstream or downstream of CNVs. +.sp +.nf +.ft C +windowBed \-a CNVs.bed \-b genes.bed \-w 10000 +.ft P +.fi +.sp +6.5.2 Report all genes that are within 10000 bp upstream or 5000 bp downstream of +CNVs. +.sp +.nf +.ft C +windowBed \-a CNVs.bed \-b genes.bed \-l 10000 \-r 5000 +.ft P +.fi +.sp +6.5.3 Report all SNPs that are within 5000 bp upstream or 1000 bp downstream of genes. +Define upstream and downstream based on strand. +.sp +.nf +.ft C +windowBed \-a genes.bed \-b snps.bed \-l 5000 \-r 1000 \-sw +.ft P +.fi +.SS 6.6 closestBed +.sp +Note: By default, if there is a tie for closest, all ties will be reported. \fBclosestBed\fP allows overlapping +features to be the closest. +.sp +6.6.1 Find the closest ALU to each gene. +.sp +.nf +.ft C +closestBed \-a genes.bed \-b ALUs.bed +.ft P +.fi +.sp +6.6.2 Find the closest ALU to each gene, choosing the first ALU in the file if there is a +tie. +.sp +.nf +.ft C +closestBed \-a genes.bed \-b ALUs.bed \-t first +.ft P +.fi +.sp +6.6.3 Find the closest ALU to each gene, choosing the last ALU in the file if there is a +tie. +.sp +.nf +.ft C +closestBed \-a genes.bed \-b ALUs.bed \-t last +.ft P +.fi +.SS 6.7 subtractBed +.sp +Note: If a feature in A is entirely "spanned" by any feature in B, it will not be reported. +.sp +6.7.1 Remove introns from gene features. Exons will (should) be reported. +.sp +.nf +.ft C +subtractBed \-a genes.bed \-b introns.bed +.ft P +.fi +.SS 6.8 mergeBed +.sp +6.8.1 Merge overlapping repetitive elements into a single entry. +.sp +.nf +.ft C +mergeBed \-i repeatMasker.bed +.ft P +.fi +.sp +6.8.2 Merge overlapping repetitive elements into a single entry, returning the number of +entries merged. +.sp +.nf +.ft C +mergeBed \-i repeatMasker.bed \-n +.ft P +.fi +.sp +6.8.3 Merge nearby (within 1000 bp) repetitive elements into a single entry. +.sp +.nf +.ft C +mergeBed \-i repeatMasker.bed \-d 1000 +.ft P +.fi +.SS 6.9 coverageBed +.sp +6.9.1 Compute the coverage of aligned sequences on 10 kilobase "windows" spanning the +genome. +.sp +.nf +.ft C +coverageBed \-a reads.bed \-b windows10kb.bed | head +chr1 0 10000 0 10000 0.00 +chr1 10001 20000 33 10000 0.21 +chr1 20001 30000 42 10000 0.29 +chr1 30001 40000 71 10000 0.36 +.ft P +.fi +.sp +6.9.2 Compute the coverage of aligned sequences on 10 kilobase "windows" spanning the +genome and created a BEDGRAPH of the number of aligned reads in each window for +display on the UCSC browser. +.sp +.nf +.ft C +coverageBed \-a reads.bed \-b windows10kb.bed | cut \-f 1\-4 > windows10kb.cov.bedg +.ft P +.fi +.sp +6.9.3 Compute the coverage of aligned sequences on 10 kilobase "windows" spanning the +genome and created a BEDGRAPH of the fraction of each window covered by at least +one aligned read for display on the UCSC browser. +.sp +.nf +.ft C +coverageBed \-a reads.bed \-b windows10kb.bed | awk ??{OFS="\et"; print $1,$2,$3,$6}?? +> windows10kb.pctcov.bedg +.ft P +.fi +.SS 6.10 complementBed +.sp +6.10.1 Report all intervals in the human genome that are not covered by repetitive +elements. +.sp +.nf +.ft C +complementBed \-i repeatMasker.bed \-g hg18.genome +.ft P +.fi +.SS 6.11 shuffleBed +.sp +6.11.1 Randomly place all discovered variants in the genome. However, prevent them +from being placed in know genome gaps. +.sp +.nf +.ft C +shuffleBed \-i variants.bed \-g hg18.genome \-excl genome_gaps.bed +.ft P +.fi +.sp +6.11.2 Randomly place all discovered variants in the genome. However, prevent them +from being placed in know genome gaps and require that the variants be randomly +placed on the same chromosome. +.sp +.nf +.ft C +shuffleBed \-i variants.bed \-g hg18.genome \-excl genome_gaps.bed \-chrom +.ft P +.fi +.SH ADVANCED USAGE +.SS 7.1 Mask all regions in a genome except for targeted capture regions. +.sp +# Add 500 bp up and downstream of each probe +.sp +.nf +.ft C +slopBed \-i probes.bed \-b 500 > probes.500bp.bed +.ft P +.fi +.sp +# Get a BED file of all regions not covered by the probes (+500 bp up/down) +.sp +.nf +.ft C +complementBed \-i probes.500bp.bed \-g hg18.genome > probes.500bp.complement.bed +.ft P +.fi +.sp +# Create a masked genome where all bases are masked except for the probes +500bp +.sp +.nf +.ft C +maskFastaFromBed \-in hg18.fa \-bed probes.500bp.complement.bed \-fo hg18.probecomplement. +masked.fa +.ft P +.fi +.SS 7.2 Screening for novel SNPs. +.sp +# Find all SNPs that are not in dbSnp and not in the latest 1000 genomes calls +.sp +.nf +.ft C +intersectBed \-a snp.calls.bed \-b dbSnp.bed \-v | intersectBed \-a stdin \-b 1KG.bed +\-v > snp.calls.novel.bed +.ft P +.fi +.sp +you can first use intersectBed with the "\-f 1.0" option. +.sp +.nf +.ft C +intersectBed \-a features.bed \-b windows.bed \-f 1.0 | coverageBed \-a stdin \-b +windows.bed > windows.bed.coverage +.ft P +.fi +.SS 7.4 Computing the coverage of BAM alignments on exons. +.sp +# One can combine SAMtools with BEDtools to compute coverage directly from the BAM +data by using bamToBed. +.sp +.nf +.ft C +bamToBed \-i reads.bam | coverageBed \-a stdin \-b exons.bed > exons.bed.coverage +.ft P +.fi +.sp +# Take it a step further and require that coverage be from properly\-paired reads. +.sp +.nf +.ft C +samtools view \-bf 0x2 reads.bam | bamToBed \-i stdin | coverageBed \-a stdin \-b +exons.bed > exons.bed.proper.coverage +.ft P +.fi +.SS 7.5 Computing coverage separately for each strand. +.sp +# Use grep to only look at forward strand features (i.e. those that end in "+"). +.sp +.nf +.ft C +bamToBed \-i reads.bam | grep \e+$ | coverageBed \-a stdin \-b genes.bed > +genes.bed.forward.coverage +.ft P +.fi +.sp +# Use grep to only look at reverse strand features (i.e. those that end in "\-"). +.sp +.nf +.ft C +bamToBed \-i reads.bam | grep \e\-$ | coverageBed \-a stdin \-b genes.bed > +genes.bed.forward.coverage +.ft P +.fi +.SS 7.6 Find structural variant calls that are private to one sample. +.sp +# : +.sp +.nf +.ft C +pairToPair \-a sample1.sv.bedpe \-b othersamples.sv.bedpe \-type neither > +sample1.sv.private.bedpe +.ft P +.fi +.SS 7.7 Exclude SV deletions that appear to be ALU insertions in the reference genome. +.sp +# We\(aqll require that 90% of the inner span of the deletion be overlapped by a +recent ALU. +.sp +.nf +.ft C +pairToBed \-a deletions.sv.bedpe \-b ALUs.recent.bed \-type notispan \-f 0.80 > +deletions.notALUsinRef.bedpe +.ft P +.fi +.sp +Refer to the mailing list. +.SH AUTHOR +UVa +.SH COPYRIGHT +2012 +.\" Generated by docutils manpage writer. +.\" +. diff --git a/docs/bedtools.ai b/docs/bedtools.ai new file mode 100644 index 00000000..c962cbd1 --- /dev/null +++ b/docs/bedtools.ai @@ -0,0 +1,1426 @@ +%PDF-1.5 %âãÏÓ +1 0 obj <</Metadata 2 0 R/OCProperties<</D<</ON[7 0 R 32 0 R]/Order 33 0 R/RBGroups[]>>/OCGs[7 0 R 32 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <</Length 53545/Subtype/XML/Type/Metadata>>stream +<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> +<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27 "> + <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> + <rdf:Description rdf:about="" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <dc:format>application/pdf</dc:format> + <dc:title> + <rdf:Alt> + <rdf:li xml:lang="x-default">gemini</rdf:li> + </rdf:Alt> + </dc:title> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xmp="http://ns.adobe.com/xap/1.0/" + xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"> + <xmp:CreatorTool>Adobe Illustrator CS6 (Macintosh)</xmp:CreatorTool> + <xmp:CreateDate>2012-07-21T10:47:59-04:00</xmp:CreateDate> + <xmp:ModifyDate>2012-07-21T10:55:26-04:00</xmp:ModifyDate> + <xmp:MetadataDate>2012-07-21T10:55:26-04:00</xmp:MetadataDate> + <xmp:Thumbnails> + <rdf:Alt> + <rdf:li rdf:parseType="Resource"> + <xmpGImg:width>256</xmpGImg:width> + <xmpGImg:height>240</xmpGImg:height> + <xmpGImg:format>JPEG</xmpGImg:format> + <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA8AEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXm3nvz/AHMN
zNp+mzfV4beq3N2uzFh9pVb9kL0J61/FV5lP5wRpSXmuJm7yVJr/AMEwOW+EWrxQp/4uh8bj8P8A
mrHwSvjB3+LofG4/D/mrHwSvjB3+LofG4/D/AJqx8Er4wd/i6HxuPw/5qx8Er4wd/i6HxuPw/wCa
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
VdirsVdirsVdirsVdirsVdir/9k=</xmpGImg:image> + </rdf:li> + </rdf:Alt> + </xmp:Thumbnails> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" + xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" + xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"> + <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass> + <xmpMM:OriginalDocumentID>uuid:65E6390686CF11DBA6E2D887CEACB407</xmpMM:OriginalDocumentID> + <xmpMM:DocumentID>xmp.did:01801174072068118083B0FA56B130C2</xmpMM:DocumentID> + <xmpMM:InstanceID>uuid:d6a115c1-a2d7-f041-896e-4676d6256103</xmpMM:InstanceID> + <xmpMM:History> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/pdf to <unknown></stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:D47F11740720681191099C3B601C4548</stEvt:instanceID> + <stEvt:when>2008-04-17T14:19:21+05:30</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/pdf to <unknown></stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/pdf to <unknown></stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FD7F11740720681197C1BF14D1759E83</stEvt:instanceID> + <stEvt:when>2008-05-16T17:01:20-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F77F117407206811BC18AC99CBA78E83</stEvt:instanceID> + <stEvt:when>2008-05-19T18:10:15-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:FB7F117407206811B628E3BF27C8C41B</stEvt:instanceID> + <stEvt:when>2008-05-22T14:26:44-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:08C3BD25102DDD1181B594070CEB88D9</stEvt:instanceID> + <stEvt:when>2008-05-28T16:51:46-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F77F11740720681192B0DFFC927805D7</stEvt:instanceID> + <stEvt:when>2008-05-30T21:26:38-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F87F11740720681192B0DFFC927805D7</stEvt:instanceID> + <stEvt:when>2008-05-30T21:27-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>converted</stEvt:action> + <stEvt:params>from application/vnd.adobe.illustrator to application/vnd.adobe.illustrator</stEvt:params> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:F97F1174072068119098B097FDA39BEF</stEvt:instanceID> + <stEvt:when>2008-06-02T13:26:10-07:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed> + <rdf:Bag> + <rdf:li>/</rdf:li> + </rdf:Bag> + </stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:018011740720681197A5BF7539C7D275</stEvt:instanceID> + <stEvt:when>2012-03-21T09:11:02-04:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS4</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stEvt:action>saved</stEvt:action> + <stEvt:instanceID>xmp.iid:01801174072068118083B0FA56B130C2</stEvt:instanceID> + <stEvt:when>2012-07-21T10:47:59-04:00</stEvt:when> + <stEvt:softwareAgent>Adobe Illustrator CS6 (Macintosh)</stEvt:softwareAgent> + <stEvt:changed>/</stEvt:changed> + </rdf:li> + </rdf:Seq> + </xmpMM:History> + <xmpMM:DerivedFrom rdf:parseType="Resource"> + <stRef:instanceID>uuid:f8451fc5-a0f5-ad4e-87c0-17949d94c638</stRef:instanceID> + <stRef:documentID>xmp.did:0180117407206811AFFDDCE015F798CD</stRef:documentID> + <stRef:originalDocumentID>uuid:65E6390686CF11DBA6E2D887CEACB407</stRef:originalDocumentID> + <stRef:renditionClass>proof:pdf</stRef:renditionClass> + </xmpMM:DerivedFrom> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/"> + <illustrator:StartupProfile>Web</illustrator:StartupProfile> + <illustrator:Type>Document</illustrator:Type> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/" + xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" + xmlns:stFnt="http://ns.adobe.com/xap/1.0/sType/Font#" + xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"> + <xmpTPg:NPages>1</xmpTPg:NPages> + <xmpTPg:HasVisibleTransparency>True</xmpTPg:HasVisibleTransparency> + <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint> + <xmpTPg:MaxPageSize rdf:parseType="Resource"> + <stDim:w>260.000000</stDim:w> + <stDim:h>260.000000</stDim:h> + <stDim:unit>Pixels</stDim:unit> + </xmpTPg:MaxPageSize> + <xmpTPg:Fonts> + <rdf:Bag> + <rdf:li rdf:parseType="Resource"> + <stFnt:fontName>CapitalsRegular</stFnt:fontName> + <stFnt:fontFamily>Capitals</stFnt:fontFamily> + <stFnt:fontFace>Regular</stFnt:fontFace> + <stFnt:fontType>TrueType</stFnt:fontType> + <stFnt:versionString>6.0d3e1</stFnt:versionString> + <stFnt:composite>False</stFnt:composite> + <stFnt:fontFileName>Capitals.dfont</stFnt:fontFileName> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stFnt:fontName>CMUSerif-Roman</stFnt:fontName> + <stFnt:fontFamily>CMU Serif</stFnt:fontFamily> + <stFnt:fontFace>Roman</stFnt:fontFace> + <stFnt:fontType>Open Type</stFnt:fontType> + <stFnt:versionString>Version 0.6.3 </stFnt:versionString> + <stFnt:composite>False</stFnt:composite> + <stFnt:fontFileName>cmunrm.otf</stFnt:fontFileName> + </rdf:li> + </rdf:Bag> + </xmpTPg:Fonts> + <xmpTPg:PlateNames> + <rdf:Seq> + <rdf:li>Cyan</rdf:li> + <rdf:li>Magenta</rdf:li> + <rdf:li>Yellow</rdf:li> + <rdf:li>Black</rdf:li> + </rdf:Seq> + </xmpTPg:PlateNames> + <xmpTPg:SwatchGroups> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xmpG:groupName>Default Swatch Group</xmpG:groupName> + <xmpG:groupType>0</xmpG:groupType> + <xmpG:Colorants> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>White</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>255</xmpG:green> + <xmpG:blue>255</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>Black</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>0</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>RGB Red</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>0</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>RGB Yellow</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>255</xmpG:green> + <xmpG:blue>0</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>RGB Green</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>255</xmpG:green> + <xmpG:blue>0</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>RGB Cyan</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>255</xmpG:green> + <xmpG:blue>255</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>RGB Blue</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>255</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>RGB Magenta</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>255</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=193 G=39 B=45</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>193</xmpG:red> + <xmpG:green>39</xmpG:green> + <xmpG:blue>45</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=237 G=28 B=36</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>237</xmpG:red> + <xmpG:green>28</xmpG:green> + <xmpG:blue>36</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=241 G=90 B=36</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>241</xmpG:red> + <xmpG:green>90</xmpG:green> + <xmpG:blue>36</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=247 G=147 B=30</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>247</xmpG:red> + <xmpG:green>147</xmpG:green> + <xmpG:blue>30</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=251 G=176 B=59</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>251</xmpG:red> + <xmpG:green>176</xmpG:green> + <xmpG:blue>59</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=252 G=238 B=33</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>252</xmpG:red> + <xmpG:green>238</xmpG:green> + <xmpG:blue>33</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=217 G=224 B=33</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>217</xmpG:red> + <xmpG:green>224</xmpG:green> + <xmpG:blue>33</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=140 G=198 B=63</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>140</xmpG:red> + <xmpG:green>198</xmpG:green> + <xmpG:blue>63</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=57 G=181 B=74</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>57</xmpG:red> + <xmpG:green>181</xmpG:green> + <xmpG:blue>74</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=0 G=146 B=69</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>146</xmpG:green> + <xmpG:blue>69</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=0 G=104 B=55</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>104</xmpG:green> + <xmpG:blue>55</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=34 G=181 B=115</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>34</xmpG:red> + <xmpG:green>181</xmpG:green> + <xmpG:blue>115</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=0 G=169 B=157</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>169</xmpG:green> + <xmpG:blue>157</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=41 G=171 B=226</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>41</xmpG:red> + <xmpG:green>171</xmpG:green> + <xmpG:blue>226</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=0 G=113 B=188</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>113</xmpG:green> + <xmpG:blue>188</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=46 G=49 B=146</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>46</xmpG:red> + <xmpG:green>49</xmpG:green> + <xmpG:blue>146</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=27 G=20 B=100</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>27</xmpG:red> + <xmpG:green>20</xmpG:green> + <xmpG:blue>100</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=102 G=45 B=145</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>102</xmpG:red> + <xmpG:green>45</xmpG:green> + <xmpG:blue>145</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=147 G=39 B=143</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>147</xmpG:red> + <xmpG:green>39</xmpG:green> + <xmpG:blue>143</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=158 G=0 B=93</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>158</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>93</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=212 G=20 B=90</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>212</xmpG:red> + <xmpG:green>20</xmpG:green> + <xmpG:blue>90</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=237 G=30 B=121</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>237</xmpG:red> + <xmpG:green>30</xmpG:green> + <xmpG:blue>121</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=199 G=178 B=153</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>199</xmpG:red> + <xmpG:green>178</xmpG:green> + <xmpG:blue>153</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=153 G=134 B=117</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>153</xmpG:red> + <xmpG:green>134</xmpG:green> + <xmpG:blue>117</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=115 G=99 B=87</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>115</xmpG:red> + <xmpG:green>99</xmpG:green> + <xmpG:blue>87</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=83 G=71 B=65</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>83</xmpG:red> + <xmpG:green>71</xmpG:green> + <xmpG:blue>65</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=198 G=156 B=109</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>198</xmpG:red> + <xmpG:green>156</xmpG:green> + <xmpG:blue>109</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=166 G=124 B=82</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>166</xmpG:red> + <xmpG:green>124</xmpG:green> + <xmpG:blue>82</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=140 G=98 B=57</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>140</xmpG:red> + <xmpG:green>98</xmpG:green> + <xmpG:blue>57</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=117 G=76 B=36</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>117</xmpG:red> + <xmpG:green>76</xmpG:green> + <xmpG:blue>36</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=96 G=56 B=19</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>96</xmpG:red> + <xmpG:green>56</xmpG:green> + <xmpG:blue>19</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=66 G=33 B=11</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>66</xmpG:red> + <xmpG:green>33</xmpG:green> + <xmpG:blue>11</xmpG:blue> + </rdf:li> + </rdf:Seq> + </xmpG:Colorants> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:groupName>Grays</xmpG:groupName> + <xmpG:groupType>1</xmpG:groupType> + <xmpG:Colorants> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=0 G=0 B=0</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>0</xmpG:red> + <xmpG:green>0</xmpG:green> + <xmpG:blue>0</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=26 G=26 B=26</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>26</xmpG:red> + <xmpG:green>26</xmpG:green> + <xmpG:blue>26</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=51 G=51 B=51</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>51</xmpG:red> + <xmpG:green>51</xmpG:green> + <xmpG:blue>51</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=77 G=77 B=77</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>77</xmpG:red> + <xmpG:green>77</xmpG:green> + <xmpG:blue>77</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=102 G=102 B=102</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>102</xmpG:red> + <xmpG:green>102</xmpG:green> + <xmpG:blue>102</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=128 G=128 B=128</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>128</xmpG:red> + <xmpG:green>128</xmpG:green> + <xmpG:blue>128</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=153 G=153 B=153</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>153</xmpG:red> + <xmpG:green>153</xmpG:green> + <xmpG:blue>153</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=179 G=179 B=179</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>179</xmpG:red> + <xmpG:green>179</xmpG:green> + <xmpG:blue>179</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=204 G=204 B=204</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>204</xmpG:red> + <xmpG:green>204</xmpG:green> + <xmpG:blue>204</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=230 G=230 B=230</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>230</xmpG:red> + <xmpG:green>230</xmpG:green> + <xmpG:blue>230</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=242 G=242 B=242</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>242</xmpG:red> + <xmpG:green>242</xmpG:green> + <xmpG:blue>242</xmpG:blue> + </rdf:li> + </rdf:Seq> + </xmpG:Colorants> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:groupName>Web Color Group</xmpG:groupName> + <xmpG:groupType>1</xmpG:groupType> + <xmpG:Colorants> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=63 G=169 B=245</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>63</xmpG:red> + <xmpG:green>169</xmpG:green> + <xmpG:blue>245</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=122 G=201 B=67</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>122</xmpG:red> + <xmpG:green>201</xmpG:green> + <xmpG:blue>67</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=255 G=147 B=30</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>147</xmpG:green> + <xmpG:blue>30</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=255 G=29 B=37</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>29</xmpG:green> + <xmpG:blue>37</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=255 G=123 B=172</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>255</xmpG:red> + <xmpG:green>123</xmpG:green> + <xmpG:blue>172</xmpG:blue> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <xmpG:swatchName>R=189 G=204 B=212</xmpG:swatchName> + <xmpG:mode>RGB</xmpG:mode> + <xmpG:type>PROCESS</xmpG:type> + <xmpG:red>189</xmpG:red> + <xmpG:green>204</xmpG:green> + <xmpG:blue>212</xmpG:blue> + </rdf:li> + </rdf:Seq> + </xmpG:Colorants> + </rdf:li> + </rdf:Seq> + </xmpTPg:SwatchGroups> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> + <pdf:Producer>Adobe PDF library 9.00</pdf:Producer> + </rdf:Description> + </rdf:RDF> +</x:xmpmeta> + + + + + + + + + + + + + + + + + + + + + +<?xpacket end="w"?> endstream endobj 3 0 obj <</Count 1/Kids[9 0 R]/Type/Pages>> endobj 9 0 obj <</ArtBox[8.6001 0.0 256.767 260.0]/BleedBox[0.0 0.0 260.0 260.0]/Contents 34 0 R/Group 35 0 R/LastModified(D:20120721105525-04'00')/MediaBox[0.0 0.0 260.0 260.0]/Parent 3 0 R/PieceInfo<</Illustrator 36 0 R>>/Resources<</ColorSpace<</CS0 37 0 R>>/ExtGState<</GS0 38 0 R/GS1 39 0 R>>/Font<</T1_0 30 0 R/TT0 31 0 R>>/ProcSet[/PDF/Text]/Properties<</MC0 32 0 R>>/XObject<</Fm0 40 0 R>>>>/Thumb 41 0 R/TrimBox[0.0 0.0 260.0 260.0]/Type/Page>> endobj 34 0 obj <</Filter/FlateDecode/Length 352>>stream +H‰äSÉnƒ0½ÏW̱=`ìÁK¸†¤9¥URUK¥ +A TýýŽ1ÐúšA³½1çô©Àt[H\® +„H$- îêáϥĺC)2¥ÙkíØ…ØÕ\ÝpußÁJ~’É„³Ö¢Ê…&³ÀºP >±Â’ÃĈÌe˜(š†„2)”uCx +¡.×±ƒ4ÅÚ0År")NÃsÊ #Îh”ÑÐ3o›ŒÃ‹¦ˆ!⧄œ¡ä¼§†ìà92T”ÌŠ Ëâ,~£Æ-þSvÂw˜£’9 +êÚ³m‚bTPLúÐH\µ\[V E. o}TW¥^kÕˆh 0¼Æ'¸[ÞWŸ°®"ȯRÿ¥šVÕ„©#¤FgDµ`ßýG߶§. ßœA¹øfJ(ã˜-LžÛa¨?xÜûsÛx|»ûCãûcÝ×±÷ã)×[¾g?�µ endstream endobj 35 0 obj <</CS 42 0 R/I false/K false/S/Transparency>> endobj 41 0 obj <</BitsPerComponent 8/ColorSpace 43 0 R/Filter[/ASCII85Decode/FlateDecode]/Height 32/Length 298/Width 32>>stream +8;W"`gC_CI#Xf&X?PKhqV&9*'+54907e?+hZf@!s_KlWZQ/-(RO<lPMZ#V$u3IG+Q +8F9H;:s9GiM[/1X[)UBA58FFE<"aQ\]EY^Yr9b?rXchfbli&FcI:ha(n%/'M;fr&Z +l<1W%:"(if7o@R,4QOcenFu$3^AQNh$4-f!?-/_SK?j:hnXhmlr8A0<*IepUq34*6 +rgLUY!%.]E]CZ#nr6P@>3SI%cIl)t>*>BFeH#nBBrO:.umk&[S!&jJ!"LW)e"q:Dc +1#K.h;6U!a)noY0Y7H#rg\:Xc!+\p+C]~> endstream endobj 43 0 obj [/Indexed/DeviceRGB 255 44 0 R] endobj 44 0 obj <</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1 +VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH< +PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 40 0 obj <</BBox[46.0 276.0 234.0 -27.0]/Group 45 0 R/Length 42/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ColorSpace<</CS0 46 0 R>>/ExtGState<</GS0 47 0 R>>/ProcSet[/PDF/ImageC/ImageI]/XObject<</Im0 48 0 R>>>>/Subtype/Form>>stream +q +/GS0 gs +188 0 0 303 46 -27 cm +/Im0 Do +Q + endstream endobj 45 0 obj <</I false/K false/S/Transparency/Type/Group>> endobj 48 0 obj <</BitsPerComponent 8/ColorSpace 46 0 R/Decode[0.0 255.0]/Filter/FlateDecode/Height 303/Intent/RelativeColorimetric/Length 5921/Name/X/SMask 49 0 R/Subtype/Image/Type/XObject/Width 188>>stream +H‰ìWwê<,ÐÃBËÖÞmi!Àÿÿ—;#Ù!¼Úï°{¢Ò ÎXFoocŒ1ÆcŒ1ÆcŒ1ÆcŒ1ÆcŒ1ÆcŒ1ÆcŒ1ÆÿKìŸÿ�î·7}xô²ò4䄽Ûí&“‡"ŸL°æ.oâ)ø÷{âVÝN§þȶ ¶Íð§Óí›ð<?s¾›èVÛ™nÞñ€5b>4¸Ñ¾sŶÐmàíqð-銄ot®].ùÄU54Vžõå—.:_ë»ÎZn`’á?;òœ¼ÏK<¯Ö¦ñ§þË¢¹våoèεj|UºDZÖHO«ÿ!Éa}½ÀSš&„ •Øs-{r1ìÒïÈq§jà·Pã€ÿ½ƒ?=ÃCœkUó9x2£'Á_ƒ—ß•òm¸¬’7ÑáOÞ´Ð< +І¨ÆüÃiä73¾³ËGw¢·û¸<¡ùüä73$ßÐÁ®“é\ü@rø”T“¦„Sƒï$üÑñ7ùå««\‰;äpàƒ<sÈѨÚ}î¤ufˆPðSä+Äd¯H€–;\Äîøò;bú!ø‰$ŸA:¸‰à\$ýAPC?€~ÿ¶Cí Jƒ4A-ŸöHû~%þŒž^\¾—ßóý×ÃîãF|ä""�þ +è¡û“»‰ƒJÝÎæK¤üv +ŒøÙNžà¼%GÂy¶Ÿk°=ù¶w¿;Zú½~©=‹õUËÔ߉]©Â: Br¨†ÚŸl/èíâòo†u|f=ï¿×Áèk'ì¼a©nHA͸e™dIÆ™c^då´êO|÷ïü‡¢m€¹ojÊh¿i·÷ñØuóÍb% Å-ážÝˉMåGº^v‘š•9ÇìðáÛ¤Žºêëì>Þ\Î{A'éPmž´t@ï©¿šxí>ØíÖñ܃Dè™ûuæÍÍØOø.Ζ¬Rj®j"» ƃ+d?@/oR?×¹ýãW…ŒZ±5Nnª3!תôâ2zŸÐE2þ{Iiœt¾kY²ò¾s•'Ë:.óvðô=y/ç}Tª.:’a˜Ø\Ån÷Z[È°³ø¹Šëjvb{gÅÞþ¤¯æÆZ„ÁqÜœ¬1·¨¯ôV©TŠZs럞رá›iuð7gþÔÏ8I®H&G\¶|·5éÜÒ¤T|äZñeŽD+ëz,}ZEÚìn“ÊiÉ· H:<+·Ú ñ¼%ë®Ìü%§I÷ø´¿9û±«ùØSþÐø[°Ÿùwºsn@ â%1é§b·ž›xOBþëЙËH>SñöG{¬¹ÇÞÄš£¹‰Ù¯|T�vWô"}Êxùª¸³?V¢â•?BtE"íƒJ…Û˜KP#Ó)6¯*&?c^™v%Rœ+LPGasUpßÂ1Œ,uÂÒ\©‘Ê5÷µžmo£<XÚ Cmtw°„9?!˜ÝuÇN–;îgêBž1…VWBõSkß@¤ÖÜŠkDÉB ìxY{3åßt7ÁÓÎtóNî~ŸŠ¼è‡PÞ–_ `^èrUS”C?ªÞ ¤w”~ž8Å€zÝÜJyO=Jv;Eú±÷M7öÄ(G"Ó±¯Jmø™] ¶Ëù÷We"ЯéÜ°ËO3HD`Þ¶·%žàM+w»ÝdÂ-´]ÑãH´)§MR@GY"¹Ó‹¥j±EͬpéR)…K½]˜} vwh£g‘ø,0ÙÂ'|v[ÿÜ KBšêmÈî*vdà_KSÀØù±åJ.EÜ¥RkîD<°ãoð¯I’ŽRTjŒÕEʸ¨]‰7KÅŽèár“Ýâ3úYp±‡1‹5Ž’'ußè[€¹4y‹yé?vx(²}¦»ëãZID®£bñûÎç¡…µú¾/ñð:›ãaM<xÀ{òŽM«€ý79Þï´ÀDÏæñxŠñ Œ’^ôµ÷'þ-c‡ÐH×ÍI²°ÿž‰7ï]¿¸ŒÔ[3Ÿ‡0kÒÓ[¥æìýÄì0‰=ÛŽ™.?±ßÈñæÄfˆñ2yÞÁxý«UÃî–p(v-]5Áž++ò•õž>_?*…3P{|vwÚïH— yénýHÙ£Z7: ZŽÝfËÙ.OƒM$çØÅØ~FšÇcç|f‰/t*½.¾pXVMz_»%~EV$÷óræNé¹Ñ6êÅí¦æ©Ø¹&¬Yâ%ÆØÒæ'9A½ üs°£YÃ$i1xÒiŒÿÁa +Þ¡òY楰CjÚùêÍ:cÏ‹Šd/.67®ûO`7Ò(“øâƒûÔ1ìØ‚Ùç»mÁ“°OHøÿ(()f¸>¹Û®µþÖû»Ós°¿í¦ÈB±[á² SøÅbßÒMŠµ¡tlÇbî¶(VNO›WÄþ]»ÂK?óÒ[›;«u3ý_Áž~uì‹<qF¿Èý|EÎX*jUÎj5¥2)¼dbp¥) <Z?*éú’òàŠ¼¿ FBßéo3ètÜ›Lî!Étæõz“¶köÌ@¤,¹‚¾ '°Re4EbR¯PíoßthݾvŒ¬,U )+MßË0æÕ§—òÀ{R†V,†¼D?í–t¦](ÿÈûKaW§Œ”)öC +uÔã~™yvºwÕ¯bvýDÜ]1‘÷µD÷Çcc&H{Êpl’^v™OŽÿ?:hä{8ö=ûRË´KãMèX!ÝD’8PH£ÌË`7èºY€Ý'^ðîÆw±¡iÉšÞ¿öý>W`ÙI½•Õ2n™ØÀˆAePæ±Ø úTçKZ¥y<#{¶6)ÔöõLïW™Çb7ÂLuýÅÌG+Ô>è̘¼ø°ÅfH¥>;xK®ëZkð!¤NdŽ¸n¯%Óþdì±óLן³'rºGÕ >RW¨év|AÎ…gC¶?;eeØwo—´·�ðÝD§í;´£q™;h±É–b•ê#Ýo;ˆí?cÏ3Bl¼yO4= +¬‹;°eÚêz±B™Ö¨SŠ`²±#v+…é Gªù mÿ»pH0û-u¥“^ˆÝßNu¶Ñïåg£�-ŒL>lúi‚Ô ýÂ7¼{êø»©³™ØþÄ&œK±îÕ0_,,My1.Ñ%^|xð9MmŒ–ö±{qáášj¡mÛÜm;jfpñ¶¸ûÊ sÀ^V£+¼ïk=#cž‚Ý0øÔ@EÓPWú=_¯O°¯×sœþâK«ºÖ°¤œ=É?^*5{�Ûž+ô¥95fc~Ï»›¢éêcV•~BÐ? Ø•p̓QÇöCgE;UB÷…~»t¸ÙÖ™@ŠÚ‡6'Ñ4ú +T¼ˆ_’,éÒ’J©rr¥gWBˆ’ýg쮓ä+¸ü‚<U¾°pÐí2kH1a9÷¾ +4&¢'uПƒý�žG'ÿMÇ¡x3ZÎm(E²:ÉÁ?Jr™Ç¤À¹÷ è?ò½tp²˜W/Ð{ŠÖŠº©¢ìÜ°xI"'t–éƒ ÿŒ=•¾ÎG'ãE/x‹²4ñ-ü-«ô}…i¦CG7ýÔÇAÿMgJ¥áÙ*šNB =¿#KÉða,Ð%è2ýì’_y„0ñ;"{> »žUzÖ˜ñ›þQÍëƒÕñ:ö|{tq³ç“§m(vž%ßØ©yö¡,Ör¨Wß:›>,í×û*eÃ^’Iã>NkÊ5jç '\·ªéêôÁîÐó‰çƳ!(gYrÓï<zîsS¶¢ìnÍ'8ÓÂK?—ï“w{Ó¯Ù}ùR·¿Cr5€6p›}øa|wÂ{bÅ'v;t¾ûÖÙ”¤ +M½Ô÷vût}ÿUg\iŠÇïE>°ÄT4'XlC¦’çü´f¾Û»I}™ RÔF¶:Õ¸ÇçT×øáàôUÿð˜e‘2žúøÖlɉ“öV¨<À·ïCý§<ì(fƒÓÿ_ö«E;u Ãx-ÉêssC�ãüÿ_nWwË0a{Žúfò�F*—JÕÕ°³šÑõ#Gäcë†6¿þ±ia²eBˆ¡)û*óh#”ú¥LׄŠcð^ù øÇò»…x~—$Þòx±DŸXoÍŸtøC†w:Anº‡™lnÒÙ‰§'rîã?“(¯Ê™èϬ–Ç>[C6Zå£óªU±õƒèGÀ‹Á(Ÿ<@L'ÐÒüïc—D ÖÆ_^Oy_—‘ʲ„qow ÔZhW›LmM¨‡w!6côC=¢šã]º ‹´®xTëº+´wëõæQî?k‘¿kÜÓUcEI•<†Iþ'ìjïŒ9údH§ëšÁ»ü¶<ÛîƒçÜníÁ(·Ó@ðèó°>="ù°‡!2I «þ'ì}¿’ÇÛðs:˜O’Í༚N1Û2ó®ÁÃ> ù°kþŠA¬›HüøzñZx�9œ +ÂqÆË,]¶)!M6žïëñÉÿ„ÝæžÖW—kêß~:^}� /º ,©&exˆ¢É|Ôà©Õ<{ÛJ‚ì7(“á£Ù³njFæ¼´ÒRÒ7ÏÕW@þc^svî%†ý–õ˜{¾›=ƒGðô¸™šfMä£/¼æE°óŠ +¡…‰·Áq\–-*pÛØ›ÿûØ™zêOkÚ6‡³èÏÂæKà‡d`‹‰v0¿* ‡z§¸åqù�â+þØ^":·(u˜¶ë¨r÷ŽUâ—ZÍS°¿‰jÊ£V"ü€¸B1nçöäÿ‘‡|%ì_F<9´Ò`³ã¹êy«i‡¥‰æ9Ø…xq@±óa±‚ñàEÏÏ7{*–‰æIر.¸†å„òx^“ ÷×1ïÅ°3ñû¼1ì,f¨] ‹%ì¼pwØQH¤Œ2â%ë ¼‹Ó,ü³°ÏEãSE´„ù;Ôq™àŸˆ½/ˆƒA£@Žv€Ï÷x*N5[ä·—ÂþÖÓZbbº¦±€Oè¼Û-º¬OÃþ&‚'ÒÏý]l3¶¤ƒÍMûŠ}%rP{õ>Þ\LSüÇÂËúLì}±!\Ö¨sjŒSð&q 誗ÃþÖ<Ž²°•uÈ8,#ð„òAÇ×Ã~bFÅ$iœga¼ÒF¨½I¾ö=kF£d˜wÖD=R Ƕÿìæ‘ê<Q°n豚i“fìñ¥±OÌ\<‘"¦¾WÔÌEœñ.Oô’wuÖ›lµdïQ±sÔ‘“y9ÔLÀØÄðò0ŠDLO|—›WëMrUebE^<›úT>QBø%ë3ðª8Âf(cy¨0f1Zv¨ÏÆN;çs[gÖ™Ì#)x$I¾v“–tÓ0íÔ°½¿ÔìÚ7DïœÃ`.ØAi‹ÄU}!ìlî§u¹£?œÏ/.OC:¾ºšG%6ó$ì_oJ;ôÄNtµ0®ð*F¿Kåþì_ xYiLqî0*ždò ã>.“ûS°:u`“Õ.ä†aµ0`èW|›ë…ßS°t:îÙd~TàI-c(`ïË 6,“Ì°‰³kµHÀt6§q´{v™b‘ËŒØé·°+ëTn‘ ErOãœvÍ2œÂ•]f‚Ý4¿cgònÆþţЩªyÍÐZûo¿¬Ù}áM•ìNMkÚ�5§Ê†ý߶�rZ:P‹¯‘v¬}6 jT.lLjfkUfq&™6¦‡AàГ½ºÇ—#ï©è6b18Go&sVöD-«]àßI¹°—ÐTоñ’ö¾m¡ãAhk€)V”þ·ïÅKòGú#§CUcŽ“ŽÏcÝ·™¼ÿ—9¹‹vÛLŒ _`Äï{è,9Ú°íÜ€ùYõtµú¾G +ÇbÛÆq?%‡ÓkÛ3ü Þ;D™»hW¶±×Šg²SÑiç¼ìf»(aè!ün³-™ùëÐét*øæ°‡]{¤˜ #,wvSE›~«f‹(sOÏ#¡¨�’Žû17¤½(Ùc¤=šf䈦ÜÐúz¡³Ë„×8–º»ÜÊ0/Ë!vi<Z*+ñFÚÅÂV8Û5ù¸JÚîø²ó`6Î2Ó»jÂ#m+*¯c®¤A: ÚÒ9FSŸìc@ÓPÅÜèíB:ŽþHå„ï¨ùp</¶ÂÓ÷»:X>qÓP}ˆ>øÄ"kÁdD.)½"Ô\ èäÿÙ_ê¾›²Úîøt™%çßÙcºò>le)$€õ¦æÆKÎ]’ºÃË|'x!PÎÀ%fÅyÐ#Œü¦0N?x×mÐßú¡Uòf5öÁl€Ø!,÷¿`-Ë‹ŠÃå{Zã?$cCQãEH¦b“؇ˆüxŸb¤]SÝ€§€«Ä ›÷´Œ=&QÞJ[¡s(â¼T&ò›,”ä-Í)hH¢zˆ-†Y¯6Ýí#ÞH¸W^Û¶ØÚ¥c²–¤¨ùUìŸþ¼´oÅ?´™¶c¤“P`‚ 1èBŒáÛ±>Ýì1¬öU±f?ø‹-HI•îl`/HFœ9‹&á¼tÏã!ãD+ã:Bà¡ßš•v–º^NJ¸Ý˜,߃ TMÞë©_(|ڳȃÉ+Zಥe8U[oeT"…~³Ø]14lî£Bä ’8˜ï4‹ñ[a=-õ”`Î’<õì#ò è…ÕŠ0 ÐoÏ1y$ЬÁf`v¥¦¡l¼iCGÑt©t^Å.j&ñ6ýj>›r öÔ£¯î„ìÜ•j~h´=µÄVÙjSIIÛäènÔ†3ÏÅìµùÛmLÎtAMy¼ÇÛìöýì«â¨Aɼ7Ù3\1ÅöñMò–t¹(I\r¸²8QÝly1Y®MÇ×ô®ÐÎØé¸ÇeEÏV.‚Yîpö$‘¾Å+7Õ°Ï/ŠQIáó/¥™²I‹ÃÜ3o\æ]›’&÷oN +ôê&Wi·´íRlõ¨hgÑ!©í%ìßî0 û™Þí®êÑú“ºð¤Bú3\Ý&L‹œCB>ίJŽÀ…‘œöIÇî„nzç€zî3æèÁž Ø|šn«2ˆ7BêP×îªê.LL:Bù4¤r+w’~¯^ûw·›h<í…Ú;Õ« vT뾎}85iý“Ë€yu8vÅýzQì³¾‰«L<aøj-ݨCzùŠÃíû¡ìj /)gr3bäåf ÒïÖ‹‚?Ë3žYáC/p’W4¥A\þ£ôÂ¥JnC1E4™YéÇ Ý +ò“¾úyŽlèFäoš/†DûqéíéÇô¤¡Rg'òïä>>„û‡_Êï<HþÆè㮈ٹ4-]·™¤üÖ6¸ƒF“Ïú…rˆç&Ç|ñÄ£ƒê²l½±øó˜þH§ÃݶðŽ)WäË¡_˜WÑÿH¹K%ïÜŒ]Vlø_MŸŸðq�þörQ ˆ;Ô‘×h»Åv»úwj·ôÛOªö¼üæÈ/ørÏÀ¿Q¿b*º51ê¸Êß),ðšÖÜH÷�üq䊞©çOE¡§Üuëß©®3Ý'$ÜUŸpÿp/^Ù÷ýju»Žo®cÔôö»¸ôXó ÀI1Û¿{†ÿ‰õ$عråÊ•+W®\¹råÊ•+W®\¹råÊ•+W®\¹råÊ•+W®\¹råÊ•+W®\¹råÊ•+W®\¹råÊ•+W®\¹råÊ•+W®\³ú¯��±¬Ü+ endstream endobj 46 0 obj [/Indexed 37 0 R 31 50 0 R] endobj 49 0 obj <</BitsPerComponent 8/ColorSpace/DeviceGray/DecodeParms<</BitsPerComponent 4/Colors 1/Columns 188>>/Filter/FlateDecode/Height 303/Intent/RelativeColorimetric/Length 11592/Name/X/Subtype/Image/Type/XObject/Width 188>>stream +H‰ì—÷W“YÇÇ• ÐBIè"½Žô„"EU„Б�¡!„ª€@i"Å‚Š¢²(;Èè8ŠëXÆÎü{×e€3÷‡=ïçNHÎ{>Ïs¿÷¾Ïýî;ˆÿö|3þ'ÞÛu¾yŸµ÷ràÙM¸OÜûUß@ãÍÃÃËËËÇ…7X}x(/·ˆ/ìªùŽ9/0„Á`B»xLPP@@€ŸSÂì¢>·éÀ\@&A �уä‚@ˆÃA‚`%@èïŽ;Pç˜ #DQâh II©¯^©¿Š¤¤„Z\%Š%À¹ðêïJó9êBÂHZR#§€Åâ¿ ´.Š ‡Å*ÈËÉb¤¥$Ðb($øÿ—þÎÕy€ºˆ(ZJVAQEMCS[[GG÷3zë£ûÍÐÖÖÒÒÔPWUQÂaåee¤$ÄQH®þ®Øw®:J£ ¬®g€76153377·�X¬ÖÂù'øÎ|³M05511ÆîÓÓÑÒPUÆ)ÈÊH¢Å€>LÛ|ŽýNÜAbøaÂ(IYœšŽ±¹•íG'ggWWHtsssÿð™H$\]Á/œ98m‚££ƒý;kK3¼¡¾Ž¦š2Nè£Â ù\û´~µíp$ƒS×Ã[Ø:ººyzùøòóó'‘ƒ‚‚CBBCÂ�œ¿¡!!ÁAA$’¿ŸŸß¡Mðøx{ôtw#8;°µ236Ô×VWÆÊIK€æsí÷îÀ~Ïž½<ü01i5ÝýVö„ƒ‡‚CÃÂ#È‘QÑ1±qñ G)”¤ä”ê*))ÉÉI”Ä„ø¸Ø˜è¨H29"""|SŽ„jƒü}½<ˆÎv–¦x}m5%Œ¤¸(°ççÛAp¸‘B 1JZFöDŸ€ÃÑq ‰”¤jjzFVNî±ZaƒÁd˜LFQ!½ ?/'+#=•šê P7‚Bá~{TE>Dòõ$:}oej¨«¡ŒöHþÕàl×]�.*)¯ªgbëêx$:!‰šžÉ•¦1KXÕÇëꛚ؀¦¦Æõµ5•å¥ÅEô‚c¹9ÙY™›õ™ÌŒô4jrb|9,ÈÏ‹èhg±__SØ‹!á0¾í¦žã.GI)¨ï3·wóJHNÏâ6›QRVQ]×Ànmëèî9ÓÛ×èë=sº«ýdsSýñJV øççÛüü‚N§Òé4°X™iÉ ÑáÁ~ž®,½‚ŒŠÞíå¸ó +£¤°êþaщÔÌNË‹KË«kšÛ:ÏœþatìÊøø•±Ñ†Ïõîhmª¯©(+fÒi´AÚ˜Å%¥e,Vy9‹‹–—I=àM°·2Ö×P’—Ám37ë÷=ŸVÈ,¨©g·uõ½:953{ûÎÛ³·¦&'F/;ÓÑÒX[YV¼YãA×9òÌ’RVEUMm]}}}Ýñªò’Âc™ÉqáÞ„x]5†ÓúϹنûÚ¼§f€ÔÐ¥•uì¶Óg/]Ÿ¹3¿ðュ¥‹ówf® tµ6Ô°ŠA6L|VVvNwAöjO4²›[Z[šÙ µ•¥ôœÔøˆ@oW;3Me9)1Äöäÿ|ÎcâÁvÍÊ£—TÖ·tž˜º»°ôè—§ËËOŸü¼´07=1<ÐÙ\[Î(ÈÉHå5ë1IàhMMÏÌΣ•”W×56Ÿlïìêîê8–¬œ‘—Nòt²Ú¯«ª -Ž„nC~ó=$,<øS31+Nõ MÌÌ/þ¼üüå«W/}öxéÞ«—úÚNTå¦'%ÄFG’×;áÁ±O&GFÇÄM¢fä0ʪëÙ';N÷öô÷v·7×W2r©±¡¾;S}uœÈsvìÖä×¼Wí]Ýú"†‰J æU±»ÎMÍ/=yþêÍ»wo{±üðþñ‹Ý쪢ìä8òáà�ÒïV΋9 ($,":>)-‡VÌ `wß¹‹CCCÏõvµ‚â³(ä�MEZÈo¹ókçk;{Gg0øB£(YŒš–ޑɹO^¼yÿñㇷ¯ž=º7=:ÐVË̦D†ø{{]]Öi8cŽ‹èîé Ö1<&1-·UË>ÕsvpdtlltäbWK]Y~jlˆ·“•‘–’¬„è6b³fŽÔ7Ä›˜™[Ú|ïHð +?š]\ßqaâöâ“o?¬¬|zÿú_ço÷4±ò@ϼvÖ–ëÌ’æÜ1ÔÒÚÆÎÞ‰àáMÉÈ/©a·÷^¹rõúäµñ˃ý`ñ2Â|]ñÚ_ÉoÍ}Íü®¥£«o¸ßÌÚÁÍ/œ’Wþ÷ÞËÓ}óqå÷•÷¯Ÿýt÷Ú…öãtj$ÉÃÁÚo ¯·ÞÏüõ÷âͬì‰^¤°Ø”\fuSGÿÐص›33Ó7¯^¾xæd]I.%Â`³ÈƒÌƒÓfËÿϽIFÜ›•TÔ4u Íìˆþdja]çÐäü£çŸÝ—ܾ2ÐÌʉö´77ÒÕTSQÞ।¤¬¢¦®©£odjmOð$'fíÓyvdâæìݹ»³S#¬üd²?ÑÈcÐH!î×?ÝW¥ÀÍ«¤¡gbçŸ[ÑzvâîÒ³ß>¬üþéý«§?Î\îi`¤Fø:MÆYŒÌº×Wp©•‘ÁÈÊcUÔµ÷[Ù» +‹O§W²»ÏNÎÎÝ»ï³7F/t³+ÀmðZŠ2â¡6{8ò<{˜°ˆ)ŠCKb°jzfŽ>iÅM½£³‹Ë¯ßZùôîå/SÃ]µ‰!î¶x-%9)pÝ�JtB +#¯¨ªµÏÄÆÙ;$&^ÕÜ38>=·°ÞssÓãC=ÍU4j¤?ÁÚH'-&ãßräAl8öüü‚‚0˜¬€¸4VÃÐÆ=„B«ë™þç“—ï8î/ß¿1Ø^•Gr1×S‘“ ¸ÐÀápa„¨˜„´,NUÇÈÒÁ3(&°¦µoäúíû>úiñÞk—þM}™ÇC¹öa<ûÆ`¬c'köF"{¢T'²§"$TZt¦HJ{Hê¤Ç¥QÈÖ&[$£Æ0„œ±3Œ%¼¾÷óÌ´“:5¼Ÿyï?çg¾Ïõ\¿ë¾~y�>Èk£•±–’<¯?žò=/???x¤°¨„œšþ§mûN^Ë.k隘š™¢’je]9ìá`ºBYjþ”@Um#s{çí¡Ç.$Ý.|^Ol§ôôP;[ 5å�þt8dAC )–å„’à~æ+‚Ž£¬cêàu%«¸–Ô=4>5=5>Hm®.ºu9"Èm-NKA*"|¼H RdXÐÌÞyǾ㱿ç”TÈ]½4Z/…ÜTû8/=1æ¿«ƒ™žšœ„ò‡…gÒ3_�zp]‰H*hâÖºE^¾UTÓL„ØéƒbuaFܱÀ¶ÆrÉ<ܦü€‘QÔÐ7³wñ;žÿ¤®¹£§o ŸFm{S[~?-!:Ì×ÙÎDG¸æÇ…ÿœAFNÃØvëîcñ…ÕDÊ }rz’>@!V¤Ç p±1ZŽgþÑ77+ÀÝUUs·€ð3×oUÚºû‡@?jkª)ý3%62Ôg“•‘ø”`\v]ÆJ|„°8VÝÈÆ%ðh\za<“ý-`Å8[v!¯k…à…ZèÙšF–N^Á—Rr×5wц@»ëïn#Tß½q¿ÛÝÑLO+ŽúIá?Áó +‰É.7´vÀǦ|Éž‹÷ìj²bBß׈õ¡Ê$£¬³ùegØÉÄÌ„öžÁѱ±á~*ùuEAæÕ˜ƒ¾Î¶8-E)6…_ÆbWìþøØ´‚ª·ŸØ+Ò.áý·|bÿ¾Ì¾'‚Áªê®^ç¶á÷?×·PûGÆÇéP»«’—â½a¾Ú#.{å?Ùþ-;Ë„H´¤¼º¡åFŸýщYEUo:h#ã}˜Öù¶¦änÒÙð].v@xàxþõÔï±[mñÇ_b›ýÉI+鬲w Ä_L¹ÿ´ÜŠõ$ƒ>ÔÛÖXñ0#!*Ô{ƒ¹žª¬˜0hlL+‹Ý`‘Ø™MŠ®å›¶‡úíN TðÆ&§§cR]Ù½gû9ÛkÈK€äeÃ4‹ÎÎÜ-…D!á׹Oø¢©£Y’F@9}Êi$t[ë(I±gšÅg‡ö3Xxu#ë-~áç’sŸ4´ý5˜~?n<*éeéÝë1vl²ÐWƒLÃûó¦Y +vXx1]ó ÛöC%éeK÷ÐÄôûÙЬ۟åýqñ×�p]ËcØŠø%`_;^DRQÛÄÞ}T4Àe=0>=;7;Eè"Ve&€Š·n•¶¢¤;†_v5iŒm\ð—R¼hêì§OÍÎÍÍ0ÀZPWL³ßÇÉ\WYZ”Ã/ ;롪ú–›}ŸK¾ÿ¬ñmljv~îýä(ýõÓûÉçûn¶üÑçþ/ØaÓ E¥•uÍ|ÂN'å<Ã::9;??;Mïï|óâAê%<ÔñÔá«õ§kÁ±ó@†WÒYíè½ïäowËêɽ#“ïçÿ373ukx/pµ[ÉVÎbçÍZDBAkÕ:ÏÐWï”Öµö3�ûü{ÆP7©¶8ëJT°‡½‰–‚G²#Pòš&öÁQ‰·K^¶|dîi©+½sõD¨§Ã*m AŽdÇÈkâì݃ƒM<‹}r¤·µ®4ûZô^/S8$ÿoØg!öú2Žg‡=ãþwÏŒ€€ž‰†=áìf5äo³:ÜÝò²ävbTˆÇ:ÎœUfF*j›:zí…æóŒ¢6×<ÊLˆÜ㶧ɉ Ø‘h)åf|Âb>»›æ¦ÇºÀsÓãŽnµ5V—ãÄ» jð2ªú›v:›œû”Õ æg§ÆúÞ5>ÏK¹pd×+Cìð¨ +‹c—Z;ûÿzñüŠ¦Ž]¬—üªü^ÒéÛ7®ÑS‘å8vnæ¨jâÖºEÄgV½eu`` +°{Vâ‰P/ÇÕÌʼn£:0\#¡*¶b5Õè« "IvQ°ôU<H=èjF,¬œµ{ÀõXFÍÀró΃gnä<~Ev¾ñÁî–º²{IgîÜle¸®‘œ´óqÁ -© …³ÛVü +Â;Ú(czfzb„ÖÑTYp+!*XfX=رûâ³s1e›‡žùzï½'³U»úÇSSŒ±*©®<çæù#þ.¶+5¡&ƆÝBn²kÛlñ;|öfNy}k÷ 1É õ¶7Vܺrbï6§5új²°e8†FçD‰ÙÍÖ{GƧ?¬ ´÷Ñ'&èôNbmé½çŽøoµ3ÑV)=•CØ:0;BXTZIgëìwèÌõì’Zb'm˜>>6ÜG!Õ?ÉK?ê ÉŽÅ°•2‹Ì£ó!„Ð’òê¼C"ãÓòŸ5´Rû‡GG‡û¨¯+ +²®Åôs¶Åi)JA“úó)³¸ì°a t ¬ª®©½k@øÙ¤ìâê7ïzú‡†û¨dBeqöóø G3=Xvv&u1Ù¹˜^G‰`dUtp¶¿ìØ"!=ÿé+Rgoÿ@ÿ_2¡º4'%62Ôg“•±¦‚’}‰Ù?v¦…ÿ‡"g¢£1²ÊÚÆV½ƒ]L¾WRM Szi´ž®VBuYnêåè0_g»U:*2¬Y:öX¼¿óv`ͯüó�pàAa´„¬²–±ÅzÀð3×2>«'¶Sº»)-�=íÊ©Cþ®fújr"HöÜþmö*ˆ=�°³.on®¯n#„Pb’X-#G·]O&¤æ–U7’Ú;»:Úˆ •¥�=&<Ðc½…¡†T¶²ýûìé±G\lŒÔå ¹âåááþÊááçãD¢Ðiy5cGW¿°¨Øäì¢çuM$r™ÔTWQœ“ +Ðw{:Yk)ɈCdË1ßd'V2÷›•òh$‚Ÿ÷k‡â@ …Phq)¬’º.Îr½«ï¾ÈIYùåU¯ššIÍoªŸÞMI8¾Ûk£5NGE;†=Ùf¤«3â#‚ÜÖšh+I‹¡‚þ/�8„ )ŒB‹a¤°ŠjÚ¦6Nî~û"Î_KÏ-~V󪱉ÐP[Qšûf\ô¡@O]+2†ÍAý&;, ™ ǃ=VëªÊIŠ‰ „„„_ð‹°0 +…ÃHÊÈ)ªiéáÖØoþ/óåýÕTš‡ñÙ3+½:J—Þ«"„¡K'B!¡· ½I‘"„Ž !„f$´ª²"Å^YE]Á,¨Xpþ€}o]WÇÏ~ËáœËç>÷yŸ÷ùú‡ÅeÕ¨ƒã—g¯]¿6;5Áè&וf%`üVFšàaÂüìfÌ.ì i//Ì wVçÆ!Nè•—‘üv`0Q1qIéC‡”ÕuY;ŸDb³Š«›/ô _¼<=såò³·³©ª0=6ÔÇÙ’…~P€‡m³ïÆþl £”ú‚DǦڪ +r2ÒR’ߎ”´´Œ¬ÜEe5M=£cpGÿÐ(|NI ±“ν89yiœÙGm©?{ìåha¨ÁB‡>›fß…ýÝ«•‡7&zΧ`ýœ-uÔU”äå|5òò + +ŠÊ*GÕµt M-lœÜýBp éùeu¤NÚÀðØøØèP_W[c噌„ð@w»cúj +2ÿAßö››ï×WÝšì%•gÅ{9Xšèjij¨=šZÚ:zÆfp;„§_06.%§¸²L¡ 3úº;ˆµ¥§“£Q¾.ÖfºÀ{bCßýÓæû×`=›b´×à±AžŽÖæ¦ÆFߎ±‰©™ùqKk;'·“!ØX|Vay±½«wph˜94@£*Îd&â^Ž–ÆÚ*‡¥DÁ1åúNìŸ>¼Y{:?;Bm,ÍŒôrq´³†[YYY~1à§ÜÚÆÖÞáæé„ÂÆü’‘_ZÝH¾@ëg0‡™ŒþžNR]y~Z&ÐÃÞÂPSYNJTˆsè;²|í–ô–ª‚Ô˜0¤¯—»+áüÕ ..®îž'}N…b£Ór‹[¢3GF‡‡Xèeùi±aîvÇ 4”ä$E8‰¾3ûÆ‹gnNtœ+ÍÁGcB‚ü}}¼½O~9Þ`||ýü‘!hlT|rf^IE}sGwcxtltxN!Ÿ#fćy8Xi)³Ã)¯ïľññÏ?7ß½\Y¼=Ť6Ud$FcÑ!§Aßy*8$4›˜’™WL¨kj£Ò™£cc#CýÝíÄšÒÜä(”ÂÚLOMÜo‚|Ü~û«•Gw§GºIÕÅÙ)ñQX:…B…|1à'*44Ž‹ŠMÀ§ç”VÖ;”0#ÌA:µµ±ª(û—ˆ`og¸)1?}õñÝ™‘ž–š’ÜÔ„èˆð04:ôëA£:6":6Ÿ–_L¨mléè¢÷2ƒ}=È •ÅÙø(6æúÝ!Ï@=fý¾GÝ·„ôØHx¾¼¦¡¹íBÞKï¡v´4V—æ¥Å…#½œ¬LuÕe¡³ÊËÅ1xöü¾exÙ&¿„PÓ@$·wR(”ζ–óu„¢œ”XL—ÜLO]R^€—c¶a#gþ›4A§@Ô°ìé3g+kšHäÖVr±¡†Pœ›öq±=n¨©rDZì ç<ÏV¾C pquu÷ðòö @¢01‰)YyE�ÿÜy"‰ÔLl¬«:[…ôt´2Ña#Á¹Œgã^ݺYàÐÝjçà.WŸ€Sh\LR*tl«ë}‰x¾¾²4?#)åëj{Ü€u·rª°ÙgXf«Ôœ°²±wvóòC¢#â’3óK*j›Émímd⹪Ҽô,tdMtT!ßp¦Ž±×#·ËäV›42=fiãè +J..%ûLym¹ƒB¥RXs:%íïjk®÷¹ïßηÇþþ¹ÄC-^IYUMC[ÏÈ섳g�*2)³�B½¯¿·‡Òz¾ª8; ‡ôt°0€Ö€g[yv÷¦ÏÛXŸAë“Šš–ž‰… ,~ …] Ý€ßKmm ä§Æ XkŸ’¬Œ¶aw_ýŸµUB +¬*º&'ìÝ0ñ™E`kíeŽ_bm~RM18÷~.VÆZ_ÀsžýÃÛË÷g™í•Y‘þfZÐWäçççûËà†‰ŠKÉÊ«hê›Û¸úc²Jë[iC§ffg¦&˜´ö†²Ü$l€+ÜÀσ´aKøÙ—~a´2p>¶ÆêG$AâåáææúëáÃÃÃËÇ/(“’U8ªc +wñOÊ%4Q&®\½qóÆÜÔø�…X‘ǺYøCâùyØ;¯;²?_úušA.O?im¨*+&ÌÇÃuàï»Íàxø„`âÒ‡U´Mஸä‚j2mdêÚí{ówoÎM2A;*H‰rƒk*ʈ ó³6»°ÏO’ËÒ0^p}•C¢‚;A‰Úy~þùgð\<¼Â"’rÊZ&ÖnȨô’sƒ“WïÜð`áÞõ©¹¦0%"ÐÕÊHCAZTˆ›ËïÎÞR–Šñ´ÒS–Øú¾»ô=Ÿ LBVYËÔÖ3$.‡@¢ÍÜ^xôäñâý[3c½�€°4P;"Å:¯ß/ünìW ö0À®$ ã +ým·ÿ²è¹y xs¾°®ƒqùæýÇKËKOþygvÀàÃýœ,ôTå$n¹fØϦ†yl³ïA Ïô\¼œªž"0*£ŒH¿:ÿhyeõ·§ïÎMô’«ó’¼í͵•‰ ñ±!üØ-u·Ù÷ò<@Á¤Ž¨Y{ òk;†¦n?\Z][[]^¼77N'UäƇxÚkÈ×ð|¿ðœf‡è·àEeµÌüpig‰ô‹×ž®>ùâg‹wgG»‰e™ÑA.'ôUåÄ…ùöôA;þ�7Ÿ°¸¬ª¾¥[pB^m'sæÞã•ëë¯Öž-Þ™¦4¥`}¡;OZ„ á÷}žG�&%¯ijï‹K/#õMÞzøìùë7oÖ×–Þº<Ø^“—â7< + ÿÝŽßv¸FHLV’XPO½º°´özãÝÛõ?–®_¤7—eDú;šk³%ü¾°ÿÄr ?LR^ÓÌÑ?2«¢uðʽ'¿¯o¼¿ñê÷'ó3Ôú¤P¸ªœ˜+ãÿØ·…W5€{¢“‹›h—n.®¼ÚøðñÃÛ—¿-ÞúG!o¦ ¢foñûÃØÚv¼¢öq2.¯ŽL³ü<xóý›µ¥ûs£T°„¸Yê)ƒºñ½¦Ù'vè¹\ j«ÛùFdV´2¦çÿµöæçO›ïþM}™ÇC½wqü¥²ÅXÆnì{vÆ’íB¸"RhÑóD¢‹´‰K\7OY®¤R·%E¹*äf‰.Y“}ŸìË`Æ63¨?Ÿóû[wÉód^ϼ^ó|ÿüýqÎûu~Ÿó9çÌŒõ5WÜIŠð´3Þ&·ÖlŅLjàT nÿ<séö/¯šûÇÉ‹ôe:Bw¼y‘s5ÎsEÉ Çf9;#°¤"ˆæ`h\zniCÏèÌ"}e…¾8;ÚÛTñä狧ÿáF€ufÏ*öÏ¢1uð +Š¾’ý¢¶shz¶²ºL¥L[{ž‰Ü5vƈÓ0'x²£¢‘QÃÛî9‘œù¼ºíýÔ<°¯Ð¦‡;ëJrÒb¾óq§Á³;Çæ-ÜüXi}TðU-“sÔ•«ËK³c½Måo^óu±ÔU’bRð,cgDBïr(,þæ“Š·}ã`ÿ°B¥L´Td$œ=²vØ0çð¬dß‚WÐ2s:w=·¬±wŒ¼ì«ôye…Y?EÝc‹WÉ0Ù¬,eçä@šu§÷w±W¾£™]ZþðñÃò"¾öEvjTà^´Y1lÇΰ‹Êj˜Ø{¿’SRß=2»ˆ²/ÍŽt×ÿ +ÍzÜÛÁ¦b4lÇ΃•Q‡Éš]R×52ƒ²¯,‘ÇzK]û!ŒF“mÙEdÔvì ŒJƒïFÙ?®PÉ`4e¹éq!ûÌ´äÅÿ¿ØÇûšÊóÒãB 삼\ìÈþI3>if½ŒÍÙ?÷jZίH¯.}ÒLcYîuÐè5óE\A{uv´§áå£k±Á>;MÙ²Wÿ4›ÒóÊš³ ñ÷™‘.d¡9äeo²¶Œ±;º(éZºøžŒÿùI,ð°|ü¸J_ u¼)¾ùûcž;ŒÔeDØm6¡úû.v6Ùň“s´UØ hsSï[{v7霿»!cg«}•;b3F;<"‚£¯}4O_Ev1òxó«ü[p|¸2ùSYÍŽÜâòZÛ¡UcÒÀ";‡§€}•rïn(› =èl®(!ÄäÁʺ›•¹‡]¸‘WÖˆ®b«VhóSƒí5Å÷S£ƒ¼LaAìء숻«ãm=üÂ3 +*ßõOP¨Ë«pz€dÞUÜI÷÷°Á«1Z•ØµC\IEm3GïãÑ©÷‹jÚ!0ròÑàäëª/ÍMGÎ&+$6œÌØ‹Ø9ÖÊŽS5 ¸> ’)mè™^ ¬,/Q&ˆÕ…÷.ƒdv¹ʴÜYÃΔ‡OXBAËÔ~ï±Èä»O«Þõ“éËË´ùé‘žÆò'·.9âŽH&srg ;‚¾…{«€¨ŒªÁ7»ˆ»–SRÛÄ¥/ÓÉĶšâì´ØκJ æ&KØQt.^VJQ{»ÃÞ€s‰¿T4õŽÎÌSéô¥9Òpwcyþí„ð£žvÆÛäÄ™•ØÄÎÃ/$.§·võ=wõAqMq‚¼H¥QfÇû[«‹ ì¡]¬ôUpL»Ìgvýÿ;£ê<|‚b2ªzNÞ‘IHÙ{†Is‹Têyr°³¾ôñ-¤ìö&šÐ©|LºÌØ »„'Ý}^ýwv‚þ׳s|B•VÒ6µó8rêÂõ‡/jÚÆgæ—(SÃ=o+Ÿe¥Æ#eWÅ1ß©¨™ýÎîž”ù'öêçw“ÂìþÌþßR äà0tEMc×C!ç/g>}eŸ"Ï/,PH£}-Õ/¦ÇŸöó°c”YÉ fÆl{Öî~ç’½ýì™Iá~À®"eüÙusp0oáäæåômx·>A‘‰·ò^ֶǦ)óó”é±öÚÒÇ·“"ƒ|œ,ô@íPö¯(Ê—r¡eâÁˆàT m<ü#’³ +aü‘ÖØÛ=ùœŸ»µ°ó£åùOoÄBÈyø0Âb8%Mü7Î^gÿu=§èusïðä…B&;êË2ScB}ÝlŒ4äµo¨ìŸs!Ù8#–…MuO@dʽ¢šŽ!Ò<ØI°/f%GÀÎa¨n�õÙ¼yÓºo3poáäâæÙÊ/("!«¬eôÓ>ÿSqi÷žV4tÇH³³3ScÄÎÆWÏî_½pÚÏÓ~»¶’4öëËþ©DŒlÈ–×4±ß•š]\Û94 ìÔy8mjŠî¥DÀi£!+&ÈÇÃŹeýÇɉ€óòa±âÒòj:&ç}~'¸|7¿´¶µox‚4==9 +è•…Ò/†óv²ÔW•Ü +RÜÈÌÛÄ€æäâB²ADqÊ:æN>°eç”ÔuÁ–°OuÖg§Fîs0ÕRÄ +ðñòp¯ÿx ¿€VLJNy›¾™‹·ÿÉØ”Œ¼’êæî÷£S“ãÃý€žs#!òø]<(FxM‰_[tT”\Œ—w+dà +‹J)h\}Ã~LÏ-mèY ѩȲWW’“¼ßÙBOUV+ˆáç[ïñóóc…°¢ÒrJê:Æ–önûNŦÜÎ-®jìèìmk¨,|x3ñûàCn¶&ZŠRRÌšp!5Â@2a¬ˆ˜NAMÏÌÁÓ?üÒüŠ·½c³‹4:mqÛ¤ÿvØÍÆXKYVRL+¼ÞÃbEDÅÄ%¥eT4tðæ¶Îž¾AgãRn?*zUßÚCèn©«xžs31*ä°»Ývœ¨àFuÍ}U +c!™„¤NV^YCÏÔÖõ`pôå¬g¯[&ÈèÊ4;ÖÛTÛ^øÑ}Ž–†š* +²8i))É/<)))iiœŒ¬¼¢Šº–ž‘¹µãn¿ˆøÔŒG…µï:ûˆƒƒÄÞŽ·5¥O³o$�º‡½9üIq¡)†180 J iH¦ ¤¬ª®©ƒGÔyôL<À7íï')ÀN_DŽ›ªg™)çC|Ýí-Œt5ÕUU”•¾ü”•UTÕ54uôñ¦–¶Žn^‡OE_ºz'·°¼æm[w_ogK}UI~Öµ‹‘Á‡=ÌõÕä@ìS:®„Å$eä•TÕ·iéèêãMÌ ö»¼üÂbRîä—7t MÍQQv¸jŠs®ÇŸ=¶·ÁÌØP_OWWWço>êééàMÍlì¿u÷ò 8—œž™WXVÝÐÒÞÕÝÕÑÚXS^˜{çJü¹ã¾î€®./‰ÅðnÀcÐcбâ8y m}¼ñvs+ë;]<öû‡F%¤ç¾nîAFY³ßwÔ•>ÉH‰=p`‹ƒ-ÁÊÒÂÂÂü¯¾YXZZ¬míÿÍ~™>5uFq¸¶*EVAQY”Š7T¡Šˆ`� !‘„$YX²@ Ñ‚#È.E¬Q±Š.Õ©8uj£§Ó?¡çÞ( G¿½Ï&áÎ{Ÿ{îÉûþNоR•Îˆ•§š;ìÿùÖÐýû÷îôuµé*åù¬Ô¸}~¸ºÕ‚ѧwŒ~†$˜ZÚ.urùnÖí>»üüˆ!a‘p¿ÌÜ¢c5=÷ž<ý7ä½ÿþ}óòvèÔRƒJŽ‰ØLØ;ø. KN¦aóD%*íé–΋}×nÞ¾=xãZ_wÇ™“*)/“âëé> õYúX½p‰Ó*w¯]þÄÐý‘Q¤8ò¡ÔO¬¬:ÓÙ{ãÁðóWoþyû¢ÇŸ¿=ºÝ¡©ú˜˜—•ž’x0–eèèRl<9‰BË`åeJÍÉú–º/]¾:p}àZÿOÝMuò£鉈ßoq[i¯WŸÒŠbV‹\Ü6{ûí‡2%%Sgd²ró%ŠJ]kWÿàƒ'Ï^¼úÎï×/úËí«=íºJ…Xͤ§Ñ¨)JòD(J +5•––‘™ÅÉÍÉÊÊ«jZ:Î÷\êíëë½Ôs¾½±Ö€··ßß{“«3œzõOÏ1xËÀH°²†—_pdlb +x3ÙÙ\¸¡RSÓØÑÓsèÑð³çp’¼ø6äûƒW.vœ©Q—I +ù9V“ÁÈœƒÁ`2³ØGs¸‚‚"Yéñ +m]}S[ǹ]Ý]:Ï6××h+-1*ØwÛ†5Ë—ÚXšNQw7†ìb¿Ò}ëNbDÜ!Éæ%%JµV×ÔÑÝ708ôðñ¯ÃÃO‡Ÿ<~8tk�µ±î„ªTVTÇçqs'Ëã ò +Db™\©Òhkt M-mííím-õµUå¥b;ý)l¯Ïf7G»…ïÕ§æn2ßr‘êõÛýB¢RéYÙP*a‘´¤ì¸¦úTcÛ¹žÞ+×oÞºswhèî[7¯_éíélm¨R+å2±¨° + + +…EbiI©R¥®Ôž¬Ó®¯¯?«®,WÈ +¹¬ôäØpâ®mÖ:Û/²6Ÿo‚ýL§ÚÁ}®‰©å"/^{öÅ$Ñ2Ù¹üüB¨VIÙ1õ‰“º3-gÏu]„.½|¹ÿ2têÅ®Îöæ†:F¥Ë$E"aád…¢"±DVRª8¦RkNTiµÚªÊ +•R.ò2'ùn/7§%6é â£À§«OR÷|¨˜¤X®8®>Q]«khlnmk?´·µ67ÖŸªÑjÊ•¥ÅÒ–]_xØËKËJ¥RQ&/–ó¸F…è»c³ûêö‹ÍM Æsgúæ8Æ}|¿³³s¹|V|i1¼/Z5€UN£V)ËJ°vÉ|¤Û±†çòø|A^>¼‘^PA/‡Ã¤Ó’ɤˆ½»¶{¸¯qv°³±4Ãúeêêö +-žÉ`²Øœìü°ÚI¤R •JÄEPì<>7'›ÃÆ7C»ÌèN“Åb³9p1ƒž–šœ°ÛÛs£Ûjg‡%¶V£EŸ¢º¡ýý`BR2¾9NKÏ çÈb‹•¾™ôŒô´Ã´Tj +lî†v÷w;<%%%…JM¨TJrRB<)*<”èïë½Íc«Ë +½ù¼éý« çêNˆá‘ðS‘LNHH’�ìo™|0>>.–DŠ‰žìL=[a¸.ê@dxXhPÀ_¯›Ö¹®‚ô¼ØFoŽ}:êóŒ÷ÎÝ{ü!‰AAÁÁ!!!¡cÏÁÁAAD"\Å–‰af4Ò`©Ï;þ{ü|wúìضeÓz·µ.ÎNËìlaæÂÌçL«_Æ~$GºoðزՂ^ÀÀ{<Ø—ð¿íz&dȱYòÝžž[7{l\ïî +y¹ˆ/´2_0Ÿ`üYæ†òûWW<ã¸Æm„‰Ñ}l†w…ëÚ5«Wüv…“ÃR»E6Ö– >ÏÄŸn»ŒÊÌMØ´çèè4vø1Ä$“Ò$899::Ø/[j·Ø¼-ÌL1q£ó高WmÇÍ14 ~[[›…ÖV–æ˜7áñÏ1ÇmƒÙæÍ7]`ffXÌØjæffLqmÜ[/þ™%/mƒÙ›˜„y3¬ˆIÍżGÄ?ß\oÿ5f?{Îœ9sqŒfý‚ Ö ýÞ{fÄõò˜>øƒ=ÂŒƒ¯‹YëµgÎ{Ô^ÿ�_„Y#Ì°÷8ÿ/ÆÒF @ @ @ @ @ @ @ ø€ÿ�|⨠endstream endobj 37 0 obj [/ICCBased 51 0 R] endobj 50 0 obj <</Length 96>>stream +ÿÿÿªªª™™™’’’ŽŽŽŒŒŒ‹‹‹ŠŠŠ‰‰‰ˆˆˆ‡‡‡†††………„„„ƒƒƒ‚‚‚€€€}}}|||{{{zzzyyyxxxwwwvvvtttqqqmmmfffUUU��� endstream endobj 51 0 obj <</Filter/FlateDecode/Length 2574/N 3>>stream +H‰œ–yTSwÇoÉž•°Ãc [€°5la‘QIBHØADED„ª•2ÖmtFOE.®cÖ}êÒõ0êè8´×Ž8GNg¦Óïï÷9÷wïïÝß½÷ó� '¥ªµÕ0�Ö ÏJŒÅb¤ � + �2y.-;!à’ÆK°ZÜ ü‹ž^i½"LÊÀ0ðÿ‰-×é �@8(”µrœ;q®ª7èLöœy¥•&†Qëñq¶4±jž½ç|æ9ÚÄ +V³)gB£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚ó�ÈtÕ;\ú” Ó¥$ÕºF½ZUnÀÜå˜(4TŒ%)ë«”ƒ0C&¯”阤Z£“i˜¿óœ8¦Úbx‘ƒE¡ÁÁBÑ;…ú¯›¿P¦ÞÎӓ̹žAüom?çW= +€x¯Íú·¶Ò-�Œ¯Àòæ[›Ëû�0ñ¾¾øÎ}ø¦y)7ta¾¾õõõ>j¥ÜÇTÐ7úŸ¿@ï¼ÏÇtÜ›ò`qÊ2™±Ê€™ê&¯®ª6ê±ZL®Ä„?â_øóyxg)Ë”z¥ÈçLUáíÖ*ÔuµSkÿSeØO4?׸¸c¯¯Ø°.ò�ò·�åÒ�R´ ßÞô-•’2ð5ßáÞüÜÏ ú÷Sá>Ó£Vš‹“då`r£¾n~ÏôY &à+`œ;ÂA4ˆÉ 䀰ÈA9Ð�=¨- t°lÃ`;»Á~pŒƒÁ ðGp| ®[`Lƒ‡`<¯ "AˆYA+äùCb(Š‡R¡,¨�*T2B-Ð +¨ê‡†¡Ðnè÷ÐQètº}MA ï —0Óal»Á¾°ŽSàx ¬‚kà&¸^Á£ð>ø0|>_ƒ'á‡ð,ÂG!"F$H:Rˆ”!z¤éF‘Qd?r9‹\A&‘GÈ”ˆrQ¢áhš‹ÊÑ´íE‡Ñ]èaô4zBgÐ×Á–àE#H ‹*B=¡‹0HØIøˆp†p0MxJ$ùD1„˜D, V›‰½ÄÄÄãÄKÄ»ÄY‰dEò"EÒI2’ÔEÚBÚGúŒt™4MzN¦‘Èþär!YKî ’÷?%_&ß#¿¢°(®”0J:EAi¤ôQÆ(Ç()Ó”WT6U@ æP+¨íÔ!ê~êêmêæD¥eÒÔ´å´!ÚïhŸÓ¦h/èº']B/¢éëèÒÓ¿¢?a0nŒhF!ÃÀXÇØÍ8ÅøšñÜŒkæc&5S˜µ™˜6»lö˜Iaº2c˜K™MÌAæ!æEæ#…åÆ’°d¬VÖë(ëk–Íe‹Øél »—½‡}Ž}ŸCâ¸qâ9 +N'çÎ)Î].ÂuæJ¸rî +î÷wšGä xR^¯‡÷[ÞoÆœchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â*6X[ݱF=3ë·YŸ±~dó ·‘ÛtÛ´¹iÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö +n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=G</zÁ^Á^j¯^—¼ Þ¡ÞZïQïBº0FX'Ü+œòáû¤útøŒû<öuñ-ôÝà{Ö÷µ__•ß˜ß-G”,ê}çïé/÷ñ¿ÀHh8ðm W 2p[àŸƒ¸AiA«‚Ný#8$X¼?øAˆKHIÈ{!7Ä<q†¸Wüy(!46´-ôãÐaÁa†°ƒa†W†ï ¿¿@°@¹`lÁݧYÄŽˆÉH,²$òýÈÉ(Ç(YÔhÔ7ÑÎÑŠèÑ÷b<b*böÅ<Žõ‹ÕÇ~ûL&Y&9‡Ä%ÆuÇMÄsâsã‡ã¿NpJP%ìM˜IJlN<žDHJIÚtCj'•KwKg’C’—%ŸN¡§d§§|“ꙪO=–§%§mL»½Ðu¡váx:H—¦oL¿“!ȨÉøC&13#s$ó/Y¢¬–¬³ÙÜìâì=ÙOsbsúrnåºçsOæ1óŠòvç=ËËïÏŸ\ä»hÙ¢óÖê‚#…¤Â¼Â…³‹ãoZ<]TÔUt}‰`IÃ’sK—V-ý¤˜Y,+>TB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%—®K7YV³©fFŸ¢ßYÕ.©=bàá?SŒîÆ•Æ©ºÈº‘ºçõyõ‡Ø Ú†žkï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹³mzyâò]íÔöÊö?uøuôw|¿"űN»ÎåwW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝèþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_p߶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMśΠnßLÝlÜ<9”úO�¤[þ˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬ÐD¸®-®¡¯¯‹°�°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ +¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäüå„æ æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ�÷„óû endstream endobj 47 0 obj <</AIS true/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask 52 0 R/Type/ExtGState/ca 1.0/op false>> endobj 52 0 obj <</BC 53 0 R/G 54 0 R/S/Luminosity/Type/Mask>> endobj 53 0 obj [0.0 0.0 0.0] endobj 54 0 obj <</BBox[46.0 276.0 234.0 -27.0]/Group 55 0 R/Length 42/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 56 0 R>>/ProcSet[/PDF/ImageB]/XObject<</Im0 57 0 R>>>>/Subtype/Form>>stream +q +/GS0 gs +188 0 0 303 46 -27 cm +/Im0 Do +Q + endstream endobj 55 0 obj <</CS 37 0 R/I false/K false/S/Transparency/Type/Group>> endobj 57 0 obj <</BitsPerComponent 8/ColorSpace/DeviceGray/DecodeParms<</BitsPerComponent 4/Colors 1/Columns 188>>/Filter/FlateDecode/Height 303/Intent/RelativeColorimetric/Length 11592/Name/X/Subtype/Image/Type/XObject/Width 188>>stream +H‰ì—÷W“YÇÇ• ÐBIè"½Žô„"EU„Б�¡!„ª€@i"Å‚Š¢²(;Èè8ŠëXÆÎü{×e€3÷‡=ïçNHÎ{>Ïs¿÷¾Ïýî;ˆÿö|3þ'ÞÛu¾yŸµ÷ràÙM¸OÜûUß@ãÍÃÃËËËÇ…7X}x(/·ˆ/ìªùŽ9/0„Á`B»xLPP@@€ŸSÂì¢>·éÀ\@&A �уä‚@ˆÃA‚`%@èïŽ;Pç˜ #DQâh II©¯^©¿Š¤¤„Z\%Š%À¹ðêïJó9êBÂHZR#§€Åâ¿ ´.Š ‡Å*ÈËÉb¤¥$Ðb($øÿ—þÎÕy€ºˆ(ZJVAQEMCS[[GG÷3zë£ûÍÐÖÖÒÒÔPWUQÂaåee¤$ÄQH®þ®Øw®:J£ ¬®g€76153377·�X¬ÖÂù'øÎ|³M05511ÆîÓÓÑÒPUÆ)ÈÊH¢Å€>LÛ|ŽýNÜAbøaÂ(IYœšŽ±¹•íG'ggWWHtsssÿð™H$\]Á/œ98m‚££ƒý;kK3¼¡¾Ž¦š2Nè£Â ù\û´~µíp$ƒS×Ã[Ø:ººyzùøòóó'‘ƒ‚‚CBBCÂ�œ¿¡!!ÁAA$’¿ŸŸß¡Mðøx{ôtw#8;°µ236Ô×VWÆÊIK€æsí÷îÀ~Ïž½<ü01i5ÝýVö„ƒ‡‚CÃÂ#È‘QÑ1±qñ G)”¤ä”ê*))ÉÉI”Ä„ø¸Ø˜è¨H29"""|SŽ„jƒü}½<ˆÎv–¦x}m5%Œ¤¸(°ççÛAp¸‘B 1JZFöDŸ€ÃÑq ‰”¤jjzFVNî±ZaƒÁd˜LFQ!½ ?/'+#=•šê P7‚Bá~{TE>Dòõ$:}oej¨«¡ŒöHþÕàl×]�.*)¯ªgbëêx$:!‰šžÉ•¦1KXÕÇëꛚ؀¦¦Æõµ5•å¥ÅEô‚c¹9ÙY™›õ™ÌŒô4jrb|9,ÈÏ‹èhg±__SØ‹!á0¾í¦žã.GI)¨ï3·wóJHNÏâ6›QRVQ]×Ànmëèî9ÓÛ×èë=sº«ýdsSýñJV øççÛüü‚N§Òé4°X™iÉ ÑáÁ~ž®,½‚ŒŠÞíå¸ó +£¤°êþaщÔÌNË‹KË«kšÛ:ÏœþatìÊøø•±Ñ†Ïõîhmª¯©(+fÒi´AÚ˜Å%¥e,Vy9‹‹–—I=àM°·2Ö×P’—Ám37ë÷=ŸVÈ,¨©g·uõ½:953{ûÎÛ³·¦&'F/;ÓÑÒX[YV¼YãA×9òÌ’RVEUMm]}}}Ýñªò’Âc™ÉqáÞ„x]5†ÓúϹنûÚ¼§f€ÔÐ¥•uì¶Óg/]Ÿ¹3¿ðュ¥‹ówf® tµ6Ô°ŠA6L|VVvNwAöjO4²›[Z[šÙ µ•¥ôœÔøˆ@oW;3Me9)1Äöäÿ|ÎcâÁvÍÊ£—TÖ·tž˜º»°ôè—§ËËOŸü¼´07=1<ÐÙ\[Î(ÈÉHå5ë1IàhMMÏÌΣ•”W×56Ÿlïìêîê8–¬œ‘—Nòt²Ú¯«ª -Ž„nC~ó=$,<øS31+Nõ MÌÌ/þ¼üüå«W/}öxéÞ«—úÚNTå¦'%ÄFG’×;áÁ±O&GFÇÄM¢fä0ʪëÙ';N÷öô÷v·7×W2r©±¡¾;S}uœÈsvìÖä×¼Wí]Ýú"†‰J æU±»ÎMÍ/=yþêÍ»wo{±üðþñ‹Ý쪢ìä8òáà�ÒïV΋9 ($,":>)-‡VÌ `wß¹‹CCCÏõvµ‚â³(ä�MEZÈo¹ókçk;{Gg0øB£(YŒš–ޑɹO^¼yÿñㇷ¯ž=º7=:ÐVË̦D†ø{{]]Öi8cŽ‹èîé Ö1<&1-·UË>ÕsvpdtlltäbWK]Y~jlˆ·“•‘–’¬„è6b³fŽÔ7Ä›˜™[Ú|ïHð +?š]\ßqaâöâ“o?¬¬|zÿú_ço÷4±ò@ϼvÖ–ëÌ’æÜ1ÔÒÚÆÎÞ‰àáMÉÈ/©a·÷^¹rõúäµñ˃ý`ñ2Â|]ñÚ_ÉoÍ}Íü®¥£«o¸ßÌÚÁÍ/œ’Wþ÷ÞËÓ}óqå÷•÷¯Ÿýt÷Ú…öãtj$ÉÃÁÚo ¯·ÞÏüõ÷âͬì‰^¤°Ø”\fuSGÿÐص›33Ó7¯^¾xæd]I.%Â`³ÈƒÌƒÓfËÿϽIFÜ›•TÔ4u Íìˆþdja]çÐäü£çŸÝ—ܾ2ÐÌʉö´77ÒÕTSQÞ।¤¬¢¦®©£odjmOð$'fíÓyvdâæìݹ»³S#¬üd²?ÑÈcÐH!î×?ÝW¥ÀÍ«¤¡gbçŸ[ÑzvâîÒ³ß>¬üþéý«§?Î\îi`¤Fø:MÆYŒÌº×Wp©•‘ÁÈÊcUÔµ÷[Ù» +‹O§W²»ÏNÎÎÝ»ï³7F/t³+ÀmðZŠ2â¡6{8ò<{˜°ˆ)ŠCKb°jzfŽ>iÅM½£³‹Ë¯ßZùôîå/SÃ]µ‰!î¶x-%9)pÝ�JtB +#¯¨ªµÏÄÆÙ;$&^ÕÜ38>=·°ÞssÓãC=ÍU4j¤?ÁÚH'-&ãßräAl8öüü‚‚0˜¬€¸4VÃÐÆ=„B«ë™þç“—ï8î/ß¿1Ø^•Gr1×S‘“ ¸ÐÀápa„¨˜„´,NUÇÈÒÁ3(&°¦µoäúíû>úiñÞk—þM}™ÇC¹öa<ûÆ`¬c'köF"{¢T'²§"$TZt¦HJ{Hê¤Ç¥QÈÖ&[$£Æ0„œ±3Œ%¼¾÷óÌ´“:5¼Ÿyï?çg¾Ïõ\¿ë¾~y�>Èk£•±–’<¯?žò=/???x¤°¨„œšþ§mûN^Ë.k隘š™¢’je]9ìá`ºBYjþ”@Um#s{çí¡Ç.$Ý.|^Ol§ôôP;[ 5å�þt8dAC )–å„’à~æ+‚Ž£¬cêàu%«¸–Ô=4>5=5>Hm®.ºu9"Èm-NKA*"|¼H RdXÐÌÞyǾ㱿ç”TÈ]½4Z/…ÜTû8/=1æ¿«ƒ™žšœ„ò‡…gÒ3_�zp]‰H*hâÖºE^¾UTÓL„ØéƒbuaFܱÀ¶ÆrÉ<ܦü€‘QÔÐ7³wñ;žÿ¤®¹£§o ŸFm{S[~?-!:Ì×ÙÎDG¸æÇ…ÿœAFNÃØvëîcñ…ÕDÊ }rz’>@!V¤Ç p±1ZŽgþÑ77+ÀÝUUs·€ð3×oUÚºû‡@?jkª)ý3%62Ôg“•‘ø”`\v]ÆJ|„°8VÝÈÆ%ðh\za<“ý-`Å8[v!¯k…à…ZèÙšF–N^Á—Rr×5wц@»ëïn#Tß½q¿ÛÝÑLO+ŽúIá?Áó +‰É.7´vÀǦ|Éž‹÷ìj²bBß׈õ¡Ê$£¬³ùegØÉÄÌ„öžÁѱ±á~*ùuEAæÕ˜ƒ¾Î¶8-E)6…_ÆbWìþøØ´‚ª·ŸØ+Ò.áý·|bÿ¾Ì¾'‚Áªê®^ç¶á÷?×·PûGÆÇéP»«’—â½a¾Ú#.{å?Ùþ-;Ë„H´¤¼º¡åFŸýщYEUo:h#ã}˜Öù¶¦änÒÙð].v@xàxþõÔï±[mñÇ_b›ýÉI+鬲w Ä_L¹ÿ´ÜŠõ$ƒ>ÔÛÖXñ0#!*Ô{ƒ¹žª¬˜0hlL+‹Ý`‘Ø™MŠ®å›¶‡úíN TðÆ&§§cR]Ù½gû9ÛkÈK€äeÃ4‹ÎÎÜ-…D!á׹Oø¢©£Y’F@9}Êi$t[ë(I±gšÅg‡ö3Xxu#ë-~áç’sŸ4´ý5˜~?n<*éeéÝë1vl²ÐWƒLÃûó¦Y +vXx1]ó ÛöC%éeK÷ÐÄôûÙЬ۟åýqñ×�p]ËcØŠø%`_;^DRQÛÄÞ}T4Àe=0>=;7;Eè"Ve&€Š·n•¶¢¤;†_v5iŒm\ð—R¼hêì§OÍÎÍÍ0ÀZPWL³ßÇÉ\WYZ”Ã/ ;롪ú–›}ŸK¾ÿ¬ñmljv~îýä(ýõÓûÉçûn¶üÑçþ/ØaÓ E¥•uÍ|ÂN'å<Ã::9;??;Mïï|óâAê%<ÔñÔá«õ§kÁ±ó@†WÒYíè½ïäowËêɽ#“ïçÿ373ukx/pµ[ÉVÎbçÍZDBAkÕ:ÏÐWï”Öµö3�ûü{ÆP7©¶8ëJT°‡½‰–‚G²#Pòš&öÁQ‰·K^¶|dîi©+½sõD¨§Ã*m AŽdÇÈkâì݃ƒM<‹}r¤·µ®4ûZô^/S8$ÿoØg!öú2Žg‡=ãþwÏŒ€€ž‰†=áìf5äo³:ÜÝò²ävbTˆÇ:ÎœUfF*j›:zí…æóŒ¢6×<ÊLˆÜ㶧ɉ Ø‘h)åf|Âb>»›æ¦ÇºÀsÓãŽnµ5V—ãÄ» jð2ªú›v:›œû”Õ æg§ÆúÞ5>ÏK¹pd×+Cìð¨ +‹c—Z;ûÿzñüŠ¦Ž]¬—üªü^ÒéÛ7®ÑS‘å8vnæ¨jâÖºEÄgV½eu`` +°{Vâ‰P/ÇÕÌʼn£:0\#¡*¶b5Õè« "IvQ°ôU<H=èjF,¬œµ{ÀõXFÍÀró΃gnä<~Ev¾ñÁî–º²{IgîÜle¸®‘œ´óqÁ -© …³ÛVü +Â;Ú(czfzb„ÖÑTYp+!*XfX=رûâ³s1e›‡žùzï½'³U»úÇSSŒ±*©®<çæù#þ.¶+5¡&ƆÝBn²kÛlñ;|öfNy}k÷ 1É õ¶7Vܺrbï6§5új²°e8†FçD‰ÙÍÖ{GƧ?¬ ´÷Ñ'&èôNbmé½çŽøoµ3ÑV)=•CØ:0;BXTZIgëìwèÌõì’Zb'm˜>>6ÜG!Õ?ÉK?ê ÉŽÅ°•2‹Ì£ó!„Ð’òê¼C"ãÓòŸ5´Rû‡GG‡û¨¯+ +²®Åôs¶Åi)JA“úó)³¸ì°a t ¬ª®©½k@øÙ¤ìâê7ïzú‡†û¨dBeqöóø G3=Xvv&u1Ù¹˜^G‰`dUtp¶¿ìØ"!=ÿé+Rgoÿ@ÿ_2¡º4'%62Ôg“•±¦‚’}‰Ù?v¦…ÿ‡"g¢£1²ÊÚÆV½ƒ]L¾WRM Szi´ž®VBuYnêåè0_g»U:*2¬Y:öX¼¿óv`ͯüó�pàAa´„¬²–±ÅzÀð3×2>«'¶Sº»)-�=íÊ©Cþ®fújr"HöÜþmö*ˆ=�°³.on®¯n#„Pb’X-#G·]O&¤æ–U7’Ú;»:Úˆ •¥�=&<Ðc½…¡†T¶²ýûìé±G\lŒÔå ¹âåááþÊááçãD¢Ðiy5cGW¿°¨Øäì¢çuM$r™ÔTWQœ“ +Ðw{:Yk)ɈCdË1ßd'V2÷›•òh$‚Ÿ÷k‡â@ …Phq)¬’º.Îr½«ï¾ÈIYùåU¯ššIÍoªŸÞMI8¾Ûk£5NGE;†=Ùf¤«3â#‚ÜÖšh+I‹¡‚þ/�8„ )ŒB‹a¤°ŠjÚ¦6Nî~û"Î_KÏ-~V󪱉ÐP[Qšûf\ô¡@O]+2†ÍAý&;, ™ ǃ=VëªÊIŠ‰ „„„_ð‹°0 +…ÃHÊÈ)ªiéáÖØoþ/óåýÕTš‡ñÙ3+½:J—Þ«"„¡K'B!¡· ½I‘"„Ž !„f$´ª²"Å^YE]Á,¨Xpþ€}o]WÇÏ~ËáœËç>÷yŸ÷ùú‡ÅeÕ¨ƒã—g¯]¿6;5Áè&וf%`üVFšàaÂüìfÌ.ì i//Ì wVçÆ!Nè•—‘üv`0Q1qIéC‡”ÕuY;ŸDb³Š«›/ô _¼<=såò³·³©ª0=6ÔÇÙ’…~P€‡m³ïÆþl £”ú‚DǦڪ +r2ÒR’ߎ”´´Œ¬ÜEe5M=£cpGÿÐ(|NI ±“ν89yiœÙGm©?{ìåha¨ÁB‡>›fß…ýÝ«•‡7&zΧ`ýœ-uÔU”äå|5òò + +ŠÊ*GÕµt M-lœÜýBp éùeu¤NÚÀðØøØèP_W[c噌„ð@w»cúj +2ÿAßö››ï×WÝšì%•gÅ{9Xšèjij¨=šZÚ:zÆfp;„§_06.%§¸²L¡ 3úº;ˆµ¥§“£Q¾.ÖfºÀ{bCßýÓæû×`=›b´×à±AžŽÖæ¦ÆFߎ±‰©™ùqKk;'·“!ØX|Vay±½«wph˜94@£*Îd&â^Ž–ÆÚ*‡¥DÁ1åúNìŸ>¼Y{:?;Bm,ÍŒôrq´³†[YYY~1à§ÜÚÆÖÞáæé„ÂÆü’‘_ZÝH¾@ëg0‡™ŒþžNR]y~Z&ÐÃÞÂPSYNJTˆsè;²|í–ô–ª‚Ô˜0¤¯—»+áüÕ ..®îž'}N…b£Ór‹[¢3GF‡‡Xèeùi±aîvÇ 4”ä$E8‰¾3ûÆ‹gnNtœ+ÍÁGcB‚ü}}¼½O~9Þ`||ýü‘!hlT|rf^IE}sGwcxtltxN!Ÿ#fćy8Xi)³Ã)¯ïľññÏ?7ß½\Y¼=Ť6Ud$FcÑ!§Aßy*8$4›˜’™WL¨kj£Ò™£cc#CýÝíÄšÒÜä(”ÂÚLOMÜo‚|Ü~û«•Gw§GºIÕÅÙ)ñQX:…B…|1à'*44Ž‹ŠMÀ§ç”VÖ;”0#ÌA:µµ±ª(û—ˆ`og¸)1?}õñÝ™‘ž–š’ÜÔ„èˆð04:ôëA£:6":6Ÿ–_L¨mléè¢÷2ƒ}=È •ÅÙø(6æúÝ!Ï@=fý¾GÝ·„ôØHx¾¼¦¡¹íBÞKï¡v´4V—æ¥Å…#½œ¬LuÕe¡³ÊËÅ1xöü¾exÙ&¿„PÓ@$·wR(”ζ–óu„¢œ”XL—ÜLO]R^€—c¶a#gþ›4A§@Ô°ìé3g+kšHäÖVr±¡†Pœ›öq±=n¨©rDZì ç<ÏV¾C pquu÷ðòö @¢01‰)YyE�ÿÜy"‰ÔLl¬«:[…ôt´2Ña#Á¹Œgã^ݺYàÐÝjçà.WŸ€Sh\LR*tl«ë}‰x¾¾²4?#)åëj{Ü€u·rª°ÙgXf«Ôœ°²±wvóòC¢#â’3óK*j›Émímd⹪Ҽô,tdMtT!ßp¦Ž±×#·ËäV›42=fiãè +J..%ûLym¹ƒB¥RXs:%íïjk®÷¹ïßηÇþþ¹ÄC-^IYUMC[ÏÈ섳g�*2)³�B½¯¿·‡Òz¾ª8; ‡ôt°0€Ö€g[yv÷¦ÏÛXŸAë“Šš–ž‰… ,~ …] Ý€ßKmm ä§Æ XkŸ’¬Œ¶aw_ýŸµUB +¬*º&'ìÝ0ñ™E`kíeŽ_bm~RM18÷~.VÆZ_ÀsžýÃÛË÷g™í•Y‘þfZÐWäçççûËà†‰ŠKÉÊ«hê›Û¸úc²Jë[iC§ffg¦&˜´ö†²Ü$l€+ÜÀσ´aKøÙ—~a´2p>¶ÆêG$AâåáææúëáÃÃÃËÇ/(“’U8ªc +wñOÊ%4Q&®\½qóÆÜÔø�…X‘ǺYøCâùyØ;¯;²?_úušA.O?im¨*+&ÌÇÃuàï»Íàxø„`âÒ‡U´Mஸä‚j2mdêÚí{ówoÎM2A;*H‰rƒk*ʈ ó³6»°ÏO’ËÒ0^p}•C¢‚;A‰Úy~þùgð\<¼Â"’rÊZ&ÖnȨô’sƒ“WïÜð`áÞõ©¹¦0%"ÐÕÊHCAZTˆ›ËïÎÞR–Šñ´ÒS–Øú¾»ô=Ÿ LBVYËÔÖ3$.‡@¢ÍÜ^xôäñâý[3c½�€°4P;"Å:¯ß/ünìW ö0À®$ ã +ým·ÿ²è¹y xs¾°®ƒqùæýÇKËKOþygvÀàÃýœ,ôTå$n¹fØϦ†yl³ïA Ïô\¼œªž"0*£ŒH¿:ÿhyeõ·§ïÎMô’«ó’¼í͵•‰ ñ±!üØ-u·Ù÷ò<@Á¤Ž¨Y{ òk;†¦n?\Z][[]^¼77N'UäƇxÚkÈ×ð|¿ðœf‡è·àEeµÌüpig‰ô‹×ž®>ùâg‹wgG»‰e™ÑA.'ôUåÄ…ùöôA;þ�7Ÿ°¸¬ª¾¥[pB^m'sæÞã•ëë¯Öž-Þ™¦4¥`}¡;OZ„ á÷}žG�&%¯ijï‹K/#õMÞzøìùë7oÖ×–Þº<Ø^“—â7< + ÿÝŽßv¸FHLV’XPO½º°´özãÝÛõ?–®_¤7—eDú;šk³%ü¾°ÿÄr ?LR^ÓÌÑ?2«¢uðʽ'¿¯o¼¿ñê÷'ó3Ôú¤P¸ªœ˜+ãÿØ·…W5€{¢“‹›h—n.®¼ÚøðñÃÛ—¿-ÞúG!o¦ ¢foñûÃØÚv¼¢öq2.¯ŽL³ü<xóý›µ¥ûs£T°„¸Yê)ƒºñ½¦Ù'vè¹\ j«ÛùFdV´2¦çÿµöæçO›ïþM}™ÇC½wqü¥²ÅXÆnì{vÆ’íB¸"RhÑóD¢‹´‰K\7OY®¤R·%E¹*äf‰.Y“}ŸìË`Æ63¨?Ÿóû[wÉód^ϼ^ó|ÿüýqÎûu~Ÿó9çÌŒõ5WÜIŠð´3Þ&·ÖlŅLjàT nÿ<séö/¯šûÇÉ‹ôe:Bw¼y‘s5ÎsEÉ Çf9;#°¤"ˆæ`h\zniCÏèÌ"}e…¾8;ÚÛTñä狧ÿáF€ufÏ*öÏ¢1uð +Š¾’ý¢¶shz¶²ºL¥L[{ž‰Ü5vƈÓ0'x²£¢‘QÃÛî9‘œù¼ºíýÔ<°¯Ð¦‡;ëJrÒb¾óq§Á³;Çæ-ÜüXi}TðU-“sÔ•«ËK³c½Måo^óu±ÔU’bRð,cgDBïr(,þæ“Š·}ã`ÿ°B¥L´Td$œ=²vØ0çð¬dß‚WÐ2s:w=·¬±wŒ¼ì«ôye…Y?EÝc‹WÉ0Ù¬,eçä@šu§÷w±W¾£™]ZþðñÃò"¾öEvjTà^´Y1lÇΰ‹Êj˜Ø{¿’SRß=2»ˆ²/ÍŽt×ÿ +ÍzÜÛÁ¦b4lÇ΃•Q‡Éš]R×52ƒ²¯,‘ÇzK]û!ŒF“mÙEdÔvì ŒJƒïFÙ?®PÉ`4e¹éq!ûÌ´äÅÿ¿ØÇûšÊóÒãB 삼\ìÈþI3>if½ŒÍÙ?÷jZίH¯.}ÒLcYîuÐè5óE\A{uv´§áå£k±Á>;MÙ²Wÿ4›ÒóÊš³ ñ÷™‘.d¡9äeo²¶Œ±;º(éZºøžŒÿùI,ð°|ü¸J_ u¼)¾ùûcž;ŒÔeDØm6¡úû.v6Ùň“s´UØ hsSï[{v7霿»!cg«}•;b3F;<"‚£¯}4O_Ev1òxó«ü[p|¸2ùSYÍŽÜâòZÛ¡UcÒÀ";‡§€}•rïn(› =èl®(!ÄäÁʺ›•¹‡]¸‘WÖˆ®b«VhóSƒí5Å÷S£ƒ¼LaAìء숻«ãm=üÂ3 +*ßõOP¨Ë«pz€dÞUÜI÷÷°Á«1Z•ØµC\IEm3GïãÑ©÷‹jÚ!0ròÑàäëª/ÍMGÎ&+$6œÌØ‹Ø9ÖÊŽS5 ¸> ’)mè™^ ¬,/Q&ˆÕ…÷.ƒdv¹ʴÜYÃΔ‡OXBAËÔ~ï±Èä»O«Þõ“éËË´ùé‘žÆò'·.9âŽH&srg ;‚¾…{«€¨ŒªÁ7»ˆ»–SRÛÄ¥/ÓÉĶšâì´ØκJ æ&KØQt.^VJQ{»ÃÞ€s‰¿T4õŽÎÌSéô¥9Òpwcyþí„ð£žvÆÛäÄ™•ØÄÎÃ/$.§·võ=wõAqMq‚¼H¥QfÇû[«‹ ì¡]¬ôUpL»Ìgvýÿ;£ê<|‚b2ªzNÞ‘IHÙ{†Is‹Têyr°³¾ôñ-¤ìö&šÐ©|LºÌØ »„'Ý}^ýwv‚þ׳s|B•VÒ6µó8rêÂõ‡/jÚÆgæ—(SÃ=o+Ÿe¥Æ#eWÅ1ß©¨™ýÎîž”ù'öêçw“ÂìþÌþßR äà0tEMc×C!ç/g>}eŸ"Ï/,PH£}-Õ/¦ÇŸöó°c”YÉ fÆl{Öî~ç’½ýì™Iá~À®"eüÙusp0oáäæåômx·>A‘‰·ò^ֶǦ)óó”é±öÚÒÇ·“"ƒ|œ,ô@íPö¯(Ê—r¡eâÁˆàT m<ü#’³ +aü‘ÖØÛ=ùœŸ»µ°ó£åùOoÄBÈyø0Âb8%Mü7Î^gÿu=§èusïðä…B&;êË2ScB}ÝlŒ4äµo¨ìŸs!Ù8#–…MuO@dʽ¢šŽ!Ò<ØI°/f%GÀÎa¨n�õÙ¼yÓºo3poáäâæÙÊ/("!«¬eôÓ>ÿSqi÷žV4tÇH³³3ScÄÎÆWÏî_½pÚÏÓ~»¶’4öëËþ©DŒlÈ–×4±ß•š]\Û94 ìÔy8mjŠî¥DÀi£!+&ÈÇÃŹeýÇɉ€óòa±âÒòj:&ç}~'¸|7¿´¶µox‚4==9 +è•…Ò/†óv²ÔW•Ü +RÜÈÌÛÄ€æäâB²ADqÊ:æN>°eç”ÔuÁ–°OuÖg§Fîs0ÕRÄ +ðñòp¯ÿx ¿€VLJNy›¾™‹·ÿÉØ”Œ¼’êæî÷£S“ãÃý€žs#!òø]<(FxM‰_[tT”\Œ—w+dà +‹J)h\}Ã~LÏ-mèY ѩȲWW’“¼ßÙBOUV+ˆáç[ïñóóc…°¢ÒrJê:Æ–önûNŦÜÎ-®jìèìmk¨,|x3ñûàCn¶&ZŠRRÌšp!5Â@2a¬ˆ˜NAMÏÌÁÓ?üÒüŠ·½c³‹4:mqÛ¤ÿvØÍÆXKYVRL+¼ÞÃbEDÅÄ%¥eT4tðæ¶Îž¾AgãRn?*zUßÚCèn©«xžs31*ä°»Ývœ¨àFuÍ}U +c!™„¤NV^YCÏÔÖõ`pôå¬g¯[&ÈèÊ4;ÖÛTÛ^øÑ}Ž–†š* +²8i))É/<)))iiœŒ¬¼¢Šº–ž‘¹µãn¿ˆøÔŒG…µï:ûˆƒƒÄÞŽ·5¥O³o$�º‡½9üIq¡)†180 J iH¦ ¤¬ª®©ƒGÔyôL<À7íï')ÀN_DŽ›ªg™)çC|Ýí-Œt5ÕUU”•¾ü”•UTÕ54uôñ¦–¶Žn^‡OE_ºz'·°¼æm[w_ogK}UI~Öµ‹‘Á‡=ÌõÕä@ìS:®„Å$eä•TÕ·iéèêãMÌ ö»¼üÂbRîä—7t MÍQQv¸jŠs®ÇŸ=¶·ÁÌØP_OWWWço>êééàMÍlì¿u÷ò 8—œž™WXVÝÐÒÞÕÝÕÑÚXS^˜{çJü¹ã¾î€®./‰ÅðnÀcÐcбâ8y m}¼ñvs+ë;]<öû‡F%¤ç¾nîAFY³ßwÔ•>ÉH‰=p`‹ƒ-ÁÊÒÂÂÂü¯¾YXZZ¬míÿÍ~™>5uFq¸¶*EVAQY”Š7T¡Šˆ`� !‘„$YX²@ Ñ‚#È.E¬Q±Š.Õ©8uj£§Ó?¡çÞ( G¿½Ï&áÎ{Ÿ{îÉûþNоR•Îˆ•§š;ìÿùÖÐýû÷îôuµé*åù¬Ô¸}~¸ºÕ‚ѧwŒ~†$˜ZÚ.urùnÖí>»üüˆ!a‘p¿ÌÜ¢c5=÷ž<ý7ä½ÿþ}óòvèÔRƒJŽ‰ØLØ;ø. KN¦aóD%*íé–΋}×nÞ¾=xãZ_wÇ™“*)/“âëé> õYúX½p‰Ó*w¯]þÄÐý‘Q¤8ò¡ÔO¬¬:ÓÙ{ãÁðóWoþyû¢ÇŸ¿=ºÝ¡©ú˜˜—•ž’x0–eèèRl<9‰BË`åeJÍÉú–º/]¾:p}àZÿOÝMuò£鉈ßoq[i¯WŸÒŠbV‹\Ü6{ûí‡2%%Sgd²ró%ŠJ]kWÿàƒ'Ï^¼úÎï×/úËí«=íºJ…Xͤ§Ñ¨)JòD(J +5•––‘™ÅÉÍÉÊÊ«jZ:Î÷\êíëë½Ôs¾½±Ö€··ßß{“«3œzõOÏ1xËÀH°²†—_pdlb +x3ÙÙ\¸¡RSÓØÑÓsèÑð³çp’¼ø6äûƒW.vœ©Q—I +ù9V“ÁÈœƒÁ`2³ØGs¸‚‚"Yéñ +m]}S[ǹ]Ý]:Ï6××h+-1*ØwÛ†5Ë—ÚXšNQw7†ìb¿Ò}ëNbDÜ!Éæ%%JµV×ÔÑÝ708ôðñ¯ÃÃO‡Ÿ<~8tk�µ±î„ªTVTÇçqs'Ëã ò +Db™\©Òhkt M-mííím-õµUå¥b;ý)l¯Ïf7G»…ïÕ§æn2ßr‘êõÛýB¢RéYÙP*a‘´¤ì¸¦úTcÛ¹žÞ+×oÞºswhèî[7¯_éíélm¨R+å2±¨° + + +…EbiI©R¥®Ôž¬Ó®¯¯?«®,WÈ +¹¬ôäØpâ®mÖ:Û/²6Ÿo‚ýL§ÚÁ}®‰©å"/^{öÅ$Ñ2Ù¹üüB¨VIÙ1õ‰“º3-gÏu]„.½|¹ÿ2têÅ®Îöæ†:F¥Ë$E"aád…¢"±DVRª8¦RkNTiµÚªÊ +•R.ò2'ùn/7§%6é â£À§«OR÷|¨˜¤X®8®>Q]«khlnmk?´·µ67ÖŸªÑjÊ•¥ÅÒ–]_xØËKËJ¥RQ&/–ó¸F…è»c³ûêö‹ÍM Æsgúæ8Æ}|¿³³s¹|V|i1¼/Z5€UN£V)ËJ°vÉ|¤Û±†çòø|A^>¼‘^PA/‡Ã¤Ó’ɤˆ½»¶{¸¯qv°³±4Ãúeêêö +-žÉ`²Øœìü°ÚI¤R •JÄEPì<>7'›ÃÆ7C»ÌèN“Åb³9p1ƒž–šœ°ÛÛs£Ûjg‡%¶V£EŸ¢º¡ýý`BR2¾9NKÏ çÈb‹•¾™ôŒô´Ã´Tj +lî†v÷w;<%%%…JM¨TJrRB<)*<”èïë½Íc«Ë +½ù¼éý« çêNˆá‘ðS‘LNHH’�ìo™|0>>.–DŠ‰žìL=[a¸.ê@dxXhPÀ_¯›Ö¹®‚ô¼ØFoŽ}:êóŒ÷ÎÝ{ü!‰AAÁÁ!!!¡cÏÁÁAAD"\Å–‰af4Ò`©Ï;þ{ü|wúìضeÓz·µ.ÎNËìlaæÂÌçL«_Æ~$GºoðزՂ^ÀÀ{<Ø—ð¿íz&dȱYòÝžž[7{l\ïî +y¹ˆ/´2_0Ÿ`üYæ†òûWW<ã¸Æm„‰Ñ}l†w…ëÚ5«Wüv…“ÃR»E6Ö– >ÏÄŸn»ŒÊÌMØ´çèè4vø1Ä$“Ò$899::Ø/[j·Ø¼-ÌL1q£ó高WmÇÍ14 ~[[›…ÖV–æ˜7áñÏ1ÇmƒÙæÍ7]`ffXÌØjæffLqmÜ[/þ™%/mƒÙ›˜„y3¬ˆIÍżGÄ?ß\oÿ5f?{Îœ9sqŒfý‚ Ö ýÞ{fÄõò˜>øƒ=ÂŒƒ¯‹YëµgÎ{Ô^ÿ�_„Y#Ì°÷8ÿ/ÆÒF @ @ @ @ @ @ @ ø€ÿ�|⨠endstream endobj 56 0 obj <</AIS true/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>> endobj 32 0 obj <</Intent 58 0 R/Name(Layer 1)/Type/OCG/Usage 59 0 R>> endobj 58 0 obj [/View/Design] endobj 59 0 obj <</CreatorInfo<</Creator(Adobe Illustrator 16.0)/Subtype/Artwork>>>> endobj 30 0 obj <</BaseFont/BHXMXD+CMUSerif-Roman/Encoding/WinAnsiEncoding/FirstChar 32/FontDescriptor 60 0 R/LastChar 117/Subtype/Type1/Type/Font/Widths[333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 708 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 444 0 444 0 500 555 277 0 0 0 833 555 500 0 0 391 394 388 555]>> endobj 31 0 obj <</BaseFont/BHXMXD+CapitalsRegular/Encoding/WinAnsiEncoding/FirstChar 98/FontDescriptor 61 0 R/LastChar 116/Subtype/TrueType/Type/Font/Widths[685 0 685 587 0 0 0 0 0 0 524 0 0 667 0 0 0 560 543]>> endobj 61 0 obj <</Ascent 1083/CapHeight 834/Descent -402/Flags 131106/FontBBox[-500 -402 1324 1083]/FontFamily(Capitals Regular)/FontFile2 62 0 R/FontName/BHXMXD+CapitalsRegular/FontStretch/Normal/FontWeight 400/ItalicAngle 0/StemV 168/Type/FontDescriptor/XHeight 667>> endobj 62 0 obj <</Filter/FlateDecode/Length 7072/Length1 15766>>stream +H‰ì— xTÕÇÿÿ™,d_,ÞÌ$aI!¬a3h•]HÈB1A@JU– ZD% „ ˆÅ¥ŠE• +Hš™a/BUeyž™IB ||د_ۜɻ¼ûî{çþçÜIþä'ÒáŽYÐ".57%¯`ñæ�ì¿œ:5_ ,ê]4I¸9#o|î§ák&ž€cÈøœÂŒ·Ö¥Í#‡ï3ÓSÒí(ÊôŠ¬Ñ9S¼vK¸ôC3sóÏ{Ñ]úÓ�§M9SS¶·~+hhGæ¦äi=/�‘3e¾2!%7Ýý‹uK¥¿Rž·<oâ”ü-1Ç1±€Ëóy“ÓóN½Ðè¾GÞï€Üã"E+e�(ßpL°×΃ìµËH{í6Î^{äØk¯©öÚg–ÔÍ¿ùpp¸"WdgœP`[Ùrm&Ö`¶â#|†/påøßà*AG:Óô¦/ýÙ„ÁlÎÔÑÀÖŒ`;Æ°#;³»±ã؇ Ldäƒ|˜C8Œ#8Š£9–)Lgg.§ðIr:gr1/k‚5kÊ5•ÚpíFíNÅ_ T‚”æJˆ¢W•h¥›’ ¬QÖ*tz]¸î%ÝÝR]‰n«n»Î¢;¡;¥;£ûZ¯Ñ;é½ô¾ú }ˆ>BßOŸ¬O7h †–†ÃCQ¨!4,ìð=aûZú]Q¯jTÕº'hT幂ÕX‹Í؆Ýøp8‡‹¸FÒ‰èNOúÐÙ”ÍB…z†² Û2šØI<ewödoÆ‹ç}9€ƒøs(‡s$ã&s3˜ÍN`>83lžhöhŽh*ª<÷SÄófâ¹bó<V</Ï×Û<_XËs“î˜îd-Ï}ô5ž§Ù<½çÏ©þ¤^Q/«'Õ¨±ª©6ú#&¨ß©?W]ýÉj9Æ`F«çÔ³U³²ÕÓHUO«ÅêI?©GÕ¢ŽQM(%Z]¡>£A+õÂÕ/e—¡~¦f©þj‘:¸!4ßxúÚ×*,«,+-%–¥–õ€åYË)––¡–õæls!`ÞeÞc~Ïü¾Ù(íEæ©æs¦i‰i©Èú¦|Ó$ÓXS;S´i´©‡ô;W^ª<ZUÙ§âÍŠ åËG4*qüÀ5v—¨¡+%º…Ú8Q,›yœ{sŸã\ÎG=bgqvýÑ»‡Öj°—z3ânsWLvÛz×B^o$èŽß$l?ƒgY‚%øžÃ( +lÄë˜/1þ{¼„oñžÇ+˜‹]0áŸX‰\Æ÷øA2ÂøKlŒC*" Ÿ"{±O2Ä~œE†ä‰ø+¶`<.a¾’Øù2%z.`²‘…Ç‘‹L›ˆIÈÃdLÁÈÇT<)ù¥@ˆ*ÄS˜éØb<-Yh~'ú|ƒwD!JÞq—hyŠø‡È ÎeVã]&áŽÁ‚£0c6þ‚9m£%׌•¬“ÅIxU"øK¬“L•è'«m§ì£ø¨|‘ÈL•¾Ff¤3ÛŒ|‰Ül‰Ô¶^ +'q²d¬4YÃN‘p”ìé,Äš=Ýäœñ€'¼à øÂþhŒ&hŠ�"Áh&Y&-$tÐÀP„!-Ñ +шDÚ¢¢Ñ1耎è„Îè‚®ˆE7tGôD/<€8ôFÄ#‰HB_ôCü¿•Sa áA<„‡1C0Ã0#0àQŒÂc-Ñ;ÉH‘÷·j™&:fˆj™¢Q¶¨”#:MòD%«Fù¢’U£Ñgš(4]4š)úXÕ™-ÔQÂÒafžpT„BÐxQY„ÅÂÔËøƒðö +–ŠË°¯ s+±J8(ªÖ +}ëðG¬Ç!±¥BéBÙQ&gÐ6¼‰íx*ÞÆ;xïÉ{¿°ŠÖ»ä”Ú=Bæ^ásŸP¹_NÏ…J¡Qt;hãð+FŽ +åø;*…m³ðrÌF‚ö>I@ ÿ#$xßm ÷@¹ÿ gå¹ §Åù_ßþKsÂüdý}€«¸v9w$Á¯„ 'kH8]‹„ 5$œª!áL=® j]èZ—Ñ¡¨ætX(ÜlE |"rÖ%·ä„åB‹•„½B¢„ $4œ6Âï“„†ÿîr:ÐKÿ tä«÷ó‹‘˸üWùÅx§ÿ"ÿÏH †Z¤ÓÉN%?çˆk×%×æ1‰}Ùùt¡ÝéBzV“@úÚI W}èm#a›2€$° WÛH8Á•\ECÙ‚ +×Èž¶´’ÀVŒ¸I#-l϶õI`;Æ°;ÛHèµ|]N#+ §Ø•±r:ô`O!á4ΰ—„‡CìÍ>Œg%‡g1ûá8ûó5!ÁfN¥¢ÍmÌq˜}\=Sw\¼Ýìú¦Þb¢Jµ]—Œ¸MS +ÁÆ^îj§PèЖÃ5¥AS[zëê÷fBr{¡¸TÊ\´lí:F‰Õ|Ñuz±HúÔt–H^Ï•¸«¶yÕžÛf«9;!‘xXH¼Ù/•Ï:ÛxµåÊgd�™%tY÷¸v¨”챋˄´è¸Ø®]:wêØ!¦}t»¶Q‘mZ·jjÐë”!Í›4mÒØßÏ×ÇÛËÓÃÝÍÕ¥‘³“£ƒVCDÒ?²,Ð9"X§Ó=UÕªÛ7jü¿Õá[gRp½›šÕë7¯×©é2ÂߘdˆO°.\†¤ÓFøéo„õ)ô(Oªº)1-Û˜eŒOKN–;ÞŠ1éR»ªW±]ææoˆOwŠD™«›4ݤ%sóʘԋ¶†&)±[™<¢"¾FMX¢µd㊒¥aH•äŠßÍ+;Ôj_‚ÜVÝò³·htŠ7:Ûž«dãRŒ(RÊ"wÎ_ðûUÛÔuÅï}ïÙÏqœø='Ží˜g?uœ@Òb!>ÊG6[„ Ê"9i ¢Z)¦´2ÑULÚ0ý‡¹Ú\DG´n£][MB«*R'¡}°‰©3S¥À´.yÙ¹÷Ý÷â¤ÐýÛ?êëóιßçãwï;oZB3!Ç°:<ôMðÜèøâ›£Ä B™Q¥(Àâôá‡%1ªäTâŽÄhžjf=¶š+úR§×ýEðDQ7ÈÍÇïùù\Âû-…Ts¹ÓJñ'»Rå½òL§Ó^P8—PaAX,1¶ Lñ†×¬ÖmbÎŒ‘=džˆž‰1%wv„êú2ÕMŒB`†þߨ\.1¬&†‡†7é«÷c”¡ý)j ¸.žfMl�ô´'OtgoÝê#Š©Cq¿v³%ÃZ !at*Dƒ-°@Q9¤Ñî” +C;Éc¤åuRðÒfí\˜U´4Iª’{ˆŠ8£–þ¹¸eˆµX›¤‡ˆˆýj&—ëW•þ\&74=?uPU$5÷ÖÖ¹#‰ìº3³¦çyÖ_ì9]”2£x=øž wª×ÓFu§QE�)�V%5¼�ÿ-Œ—Ñ@* €£’©´ü”"ò�È:'@àvBŒ™ÛˆF:M÷ô11 è<;C¡RœÚ•Òë +:è¿‚báÄ#Cz®=î$é™2zÌév¹J/IwÑÖlþR]Mbt}×}I÷ˆÞ_¬éKñ~.KœŸ'’='½»è üT(AøH-J¡¢%uÝßV$n�½=êÖ]ûSJ"g¢@oa–ú~ç]¯…sdd%"òÇ*-œ•ƒ7z…Û¤»7á‘›á›m-Xˆ9Àgçš¹OÎk»ñϬÒùÿ.#ùLÞ{nxóÕ@¦¢¢d¬Íé¬Í;pCC…çk\A[¾ÂÙïØ,s½Nì¬U&ŽúIyº©¡ö¤`Ã…·WHfº¥¹nI+EÂsr×à ê놿«+<Xòu…ÛZ#íQyåZµ# ȵVQ¥�/×ÖEÚAXQ:ÖÔè‹åwß|å︨ñŸ¶gþ¡]¨[[´–e3/q…3²Ú{“Çâ;µ÷µË\A{þT'¤)‘ì_@8jG3Ø!Á;¼5æwC²á’‰î몰g²jÚïbúÖS}K ®¡è"Û‘,!•j§€vºZ·>ÇAí㇟´lÇ.í]SkÐ~«=/ÜŸíœ\Çä|� ÐC˜�=Bè¹k¾X…#êóy½±N½ÞƼӅ]® +´j•ª++eªe½'ïõÚ•–s«V9òöé5.…©»ZšYpoI§Îu½åHXÊÔÏ‘p¨=Zd‰¬®ìX«äH´½Gd*avmÀÑöu¤…Ú&³øÚÇ—ööŒ÷ì½8¿ãä†Ú ÓÄÛþíû´~G³Vmá±öÓW¾!ôŒµ÷‘n+ÿ9Íšzbª×ë:G-"æxò^ìõ +•ÌŽV?®—©-÷@ëÁu~i®}1>ÜA·H|*F;˜ŠÜù–èáôú|ÆÐ+{àÌ\òûÝT•rþŽYN@F^ƒšbnéU«äxÕTOVL»]“<æ¯ÕJKÒ,ì\ê-µµZê�}6Õ ,qyí3íŽa7”Úo´Ïþô·{-ø%¼ ïÄ/h“Ú ÌrG¸Á¹s?ì¿#4Á¾ËÑwb ]O×{jëë={½(4T˲T›¯®A~HÈ7HöÎz®^ôØ…J?—ǸîDå´b=áwååMà#ÿµFÐr¦DJî霖"à2ú$ §«Ÿ®ž|¯»Õf5è®mÄ‚\+¨Á•r¤6�ç)ŒW�xÛùÆ÷ÜƇµ[s×d!ŸF·i?Â÷‹–s7¯]ûŽ6óë¿Fpðþ'¾½öÐò»4•ƒo$ì€Ø6 XL]FOSUUx®ÚÙÚˆå¼$5\ôœ´:òUUè¢ÕÚ¸œÀð(á…'=ZíaótEŸÁ²´ŠnU(6‡=u÷Ÿ¥îÏÙÎ +ñ¬ïðYOOsŸÅÒ{”ÿU|Ü“ZÁ?ŸíµXöéi+BËÜ—8»bŸžKJÙ)Âoˆ·¦fÑì‡ö×löÕ†IÎÁ°Jô"ûk¬}!Ç-ˆÜ¦�¤‚Nd³ä¬ðP�ž!Ky>“|#ígÈNcð$xí0Ð# £@g€â@粬o„gÌA(uÂ#Àßõ9vË)ž$\xè"«ÿEùz–¿ß2ÍÐþo¡ÍºŸõo+›7ö +¥“9dMñRéÚ„d瓺΄[¨î`;åvËÌ'ö~hCÙþìO÷hÓ÷g{$-Ï,Ù? k=yÿ,ß ¼î›¬Ùó‰Í¦MlþãˆèHõ+#Я‘æïݹÅÔm)z3âõ8ÐxZtߘ2±0@pw¡çè8¤÷‰‡tÅ¢¸)ë#ídï7È8˜û¶HÖÍÑq&ÆÄËú|2ÎÀžMŸOýbeû"í£å¾‚ý“⬇LÌš˜4ði]ÐÇΡù#–ä öG¶=ºýås*nëX ±08!Àßz>2ÿ/à}Àÿcø“ùj‘_ V¦L¿PuŽÊx’`™à‰âˆ`DÇ ¦x"X4íÞ¦ÓB¬ðS†ÝIôÐáÂ/Lß&ɹ1×ÖõMš|âÉ3÷6Îâ•'óò½ÀöãQë‡èYëëìì’z3òÁz>Óæ'pzôóMΑݨ?Ó§tɺŒ¢æ9dw9_Šÿ/ó¿IlŸJ²ÛÎéþ¯ØN}øÂIð7ñ}`ÜÆ0L©ÀÚX]dã8¼r@¶—Í7Ö²ê熎£k2"w•U_ûc/:†q†÷E1^£/½"óWáþ8Kî9zוù{©?—Î%÷\ù]÷…ñÆ:FŒ›õ8Ñز˜!4û¦áG‘è¢gž¼Ù‚_™ò"”ßCÂT^^¤å†^¸§¹ã_—¯ËW¿¬P‰(/#¾%èږåP#9cwÅÌã0ÎÈ/mh+“9hÝÃd²çýL`Ì1&[`b²9ÑI&‹¨}ɨ]e²yÑ-]Æ2ô|Êdh8ÃdªÃ“½ÈŽë™ìC¼‚åͲáV]&ëàN&»P ÞHeŠè2³ŸÉ.äÁ‡¨ÌÓuŽë2Œ±áSLv!'ÎQ™xÏŽ_×eºÎ%&»Œß¤²…ø +ÿñjŽ¢:Ãß¿$»›ÝHA²ø! ,TTB!!`H@J&³7»CfgÖÙ(òˆ¢" ¾‘‡ØVUihEB‹`ié©ÒjÕ>¬žZû8}ŸJïÌÝ<íiçœìÿýóÿãÞ¹÷þ7Gv8Ç]lsÞp°ß©ç}·.¶9Ÿ:8àäú\`›ãº¸C}ÅÚq|Wìpƺ˜Ï¡o¢ƒNÀ§ÁÅ<—OÌI‘=v˜sB¾¤‹í\ö÷%þ(¯Ç·U`{~|»\lçÚí|‡!N®vâ|ÓÅ%œÿ*Çp1×ó|'æœ<ß)—ðÚNs<£Î9λ..á1?ˆ–•Ç*Ùø)¥˜’šŽ˜+S¬C’Y$ÆÒJ\‹È“L‹´¯Œ4J:2SW“,‘´X¤&!*ÇÓ”8Sõ®²LŒf·TÉȨS"nŽ)‘ŠòòIãÊ+Ç•G3Æÿâól„§’"¦!ÅXR2:#zG¤:•RY¤^“ËþG!ü)k[¯LÖ“J\2-ƒ¥kôdR×"Y½Z5™¡ñaFl‹©–e¦™ÏÐd ‹)ª*póý¼P…Yç,ˆÈºeHšÉÒMœ'©ƒVÇÚ-–œP9Á²Y5>d™52ñ"#yœ¤¥)ÜÌÔ¤d*ñ¬‡ˆË"ê…/ÌÁ˜/i¶-K0r•Äxmé,9ì‘'-ÆÔ\#÷Šýqjì8i‘÷e|Ñ]RÁ°Ål‘–Kªª¤™é²ì—Ý[»gwoèÞ¼nq÷–î†î¶îîMŸì<µ£~ýëý•7ûN¾öñÁô3ÆÑÏz{z_|©íÀi[ë?sø½“oõ¿cˈ î?üѱçϽ}ø¹Ã/÷·ßÎs~2bø=ç€øєϕ�? +⛵oêüŒbðƒa(†ñÍw ßF—bFòC|?Œ#|³]Ž+p%®âÇô5¸×a®ÇXŒCoå +Tb&"Ê/o“yë¸Sp#nÂ͘Š*TcjxÛ¨ÅÔa&ê1‹·FÌFæ`.nA3o-hÅ|,À¼-Âb,Ám¸KÑ íùø:G +–¡*’Ð #…;` –óV³+± +wâ.¬ÆݼŬÅ:¬G7îÁ~eÛˆMØŒ-¸[qo:`ÄvìÀN<„]xàQ<†ÇñžÄn<…=Ø‹}اq�Ïà+ø*¾†gùeôy|/àx/áeäM«½èÃ!Æ·ðm¼ÂgþUE?Žá;ø.Žã5œÀI¼Žïá¾à œÆ¼‰³äãmîGxoã~ŒŸà¼‹Ÿâ=¼ð3ü¿À/ñ!~…ðküãÞ +‹Oñ;|†ßãø#þÄâŸñüÃßñü“ß›ÿ…ÏqžŸÀD(òÉO +R…(L…TDi ¦b*¡!t ¥at1]BÃéRA#é2E¥¡Ñt9]AWÒUt5]C×Òu4†®§±4ŽÊèKTNã©‚*iM¤(M¢Éôeº¦ÐtÝLSù¥¸š¦Q M§ZšAu4“êi5P#ͦ&šCséj¦yÔB4ŸÐ´ÑbZB·Ñí´”ÚH¢v’)FŒ:(N ¾œZæ¬íNR)I锢;È 4™dÑrꢴ’VÑt¦»i ¥u´žºéÚÀ/èim¦-t/m¥ûè~z€¶Ñƒ´vÐNzˆvÑÃô=JÑãô=I»é)ÚC{ií§§é�OüC ·«’Ü)+†¬²@uR’ ]HBú«Û ¶œù%Gªõ¸®±Î€$¤º,Ù¤˜Ó¹‡djÝLÈPmL7%çÀ±,Ôº¡˜ªVÄ`ŽÖÉâDÆ]¨w£*®T]EH_ý,Ÿ²Ì_¯é<EžÂ‚ ™.ð7J²e2¿êˆ`cÆ®fí¢Õ¡Æ\Ýjú›DMÄhÊÄÐ21šDÍaMJéiÓÐS ˜ãV®Y4'aiqÉ°’ªd™EºWó7‹,†ÈÒœÉbd²4‹,†ó;-Ø-¶™a·šéˆ@«[‡%d~«¡hñ|Ëþ-j½ &Ë«ZÝ·Ü/¶Hd]åˆÐ¢ÜlÊ ¬«º&[FP6¬UL1ô@Šñ–"¥ý†•b,íç*Ÿ[S¤D>_‰Z§?%Å™• +ÊR*êrg¡dz—•êJ(&+HñÉdªªù|¹JFcTY‡r¡Äf>OÍŒ°ëgESj·•¢ŒâóLM\î@GÆô.ͱdÕ€¬kü;ª!Þx™Éì0a¢_O™Š½|Ó¼j6O´¡ðQŒwWäBÕö ðûCÅ„Š‰A{¬vü~ó;í›”cªœ4½ÐÙ–1Eâ7¡XdßøÈ5Ç<~Z…DLJ'œZ²Zv;¥åˆvžáÎ,Ú.)]ÑLþÍM^šWY¸Æ>¬d‡ÊV„åÕ侬œÛµâ``Ž×y|ãߺœo<çw–Lx¦Ç)‘Ãy3Û%#/Áüõ¦¢Æ˜_qDx–‡¿,‡‹=›ŒßµøÚôÏÅ颸y¿´'O‹Ç´ó´Š<–ÂÛÞ<Þ]¼ÐƒWæpá<Ù¾–Š‘¦½J‹W1½JW‰{•F¯¢z•¯ÒéUš¼J³W1<J؃óSzß0ög+Ì$Ó¬ªÊ5‡Îò•÷ÍíkëPÕ +GõQpjïÒ^zÚzR=Ûzú{ò«×$¢U'ªNúª–Сóý—uä b[ö.),Š¦…C‡9¦…%C„4XHNá²jÈ‚PôØ‘1¥‘³åg}ý{©íWµeO0š?jttí|:z$V:µ›6–n\+ݾï²Òü¯j߈‘Ñõkƒ¥ëÖÄJï^S\ºz͌ұãù·´ù44ùÕÔùTTù•”ùùåäù¤edy%$¥xEÅÄy…„Exùyxxùx8¹¸yØØ9x˜YXy™x¤9äù8ä™-9ä,8äŒ7y3x‡8mfÒÁNŒµ½wp0m0ÒöÞÀ±‘‘±/(º©c#CÈ–ŽL@JÈ9*:b£$HºUÈ)ÜÁØÐÚÛ+ gEFjËnHñŽØP ¹ÁĘ É läY™ä)BíââbO[»¤È+Ž’��,ùž endstream endobj 60 0 obj <</Ascent 1094/CapHeight 683/CharSet(/space/B/a/c/e/g/h/i/m/n/o/r/s/t/u)/Descent -387/Flags 34/FontBBox[-1135 -387 1495 1094]/FontFamily(CMU Serif)/FontFile3 63 0 R/FontName/BHXMXD+CMUSerif-Roman/FontStretch/Normal/FontWeight 500/ItalicAngle 0/StemV 68/Type/FontDescriptor/XHeight 431>> endobj 63 0 obj <</Filter/FlateDecode/Length 1799/Subtype/Type1C>>stream +H‰¬“}TSçÇo’K-Fázéš‹÷ItNÛ‚vm;«« 7¤bDàòfB ÷ˆb^nòâ„` @` ïVhÕátl”2ª;_Ž[ÛF=UÎûгtžngm;÷ž{ÎsŸßóù}¿ßçü8˜ãp8¾!á±»cw¼º;ZÂ(ÓSÞØ«K3—w]Çõ’‡ËÏ‹ôC§—^òãöÍùë±÷d¢ÕߌÇ^Œ*ÂÄ5°ÐûC?ÏM>—ÃIÏ Udæ2Ê&Yœ˜/Þž™¬dòÅûÄ{¤™Š\qŠR!ïcbÅ)ŠÌœ£b‰BΈSeùYiGÅR%#NRd¥»O®”…ÈTŒXr$ÿiXÉÈéÑgØÝ’€À0ɾü,F¼EœÌ¤`Çý`0,Ãv`X†…s±H.&áakÝ.±,›ääôq Æ+âM{Tð×òü[•`§áLíÄ“5÷›àÕÖ’OŽ=Ñ|{L0ñí+¤k‡íÈÆGåhš„6Øm¨¿4òd é åEW"¹ü›¿4ŠÅBhfípÒ{í>ÌÁ«ó!_»}]~øòŸ|y?xñêáš7MÝøƒè~àmäK/qeç7êT°tOÕ©·ÑG0²„pN<^èßì·à®ºÀQ¨Ç;Õ#4\+p³œïìÿE\âá„ÚR`w½jñé¿yðs45c%úÿJþx^y}r¸oÄD™I•mÒÊ|íìŸÀe¥R–«34CU4<„÷³½©=toòs©à°C»äͶ¦æÖúS€³íbƒºx%ùM‚Çjwj#äžï¥+câEÄÀMùqÿ>MoÄ_M?—èüVª®7¬œ®9ó9¯ÊH´náЊЫ¶ö8«-ÓiÊut@æÏKS¨ý?€oà Ûýãg®ëS Q[./e7åÙZ›;~ÿÓÞmÈ;ahí +ÊÍ0ıÍÁ²Iž f‘Hôx3Ä¡pòLµ'Œ§Êtå't´ÚVö8u ©£'ÈGÙÉnt,¬y!zy#Ï@ä î8H¸éôkõu-¢’Ý)¢Ä¸÷êȶ¨->¶±¼Ù=0~Ö9•˜·ý„]Ø…pÕ£K·œÅ—bm´mI)XÃI@|i>R™kwˆ*Ù–ÆfZÑ{Ak¢¾˜šºÙSØ£l]ÝÝUM”±ŠÕW�µæ”ºTTÐPz®ÖTÝÒXêH΋/O”ÒÄ×êN©´BE„…m‹·0Ö\7U]R”Ÿ‘&’50ö<úý‚# I"âÁø˜ïð¯z+è_îAöíè6}?ìÒ8p#>v"ÛŽ_Zéúš[uŸÝ˜“¥?R¤¥'rIÔ[ìW-@ÈÚ]/[`Š¹S™â9| ÎKÆ6ªuL§ïv<\Í?š¾|ãz]ô^ã‡Õl8-Ãÿµ0FÉvè”à÷X»¬›n,ÎhŽ¢‚âßO-zøP€üÕ|þIÍÉ8°Ôø” DAîî|;üÞ¢ÏìâÎIâá¬k‰Ì²dÛmV³Ã¡4+dª¬lš¸&]Z" ŽŒç)§ói³]šª^àâáH¼Lýí™ò8€,Ϩ®õ+T÷ÍAîõˆeSî—pþ×Æþç˜p¿x{ÝaŠ9”°[ãÄ,zåy„™ŸiÿwåDçÿ÷>ˆÏÌ|WAçsî¡Ý²2YsîÉÊ ùè5ø\ýðo€ë6.¢ÕÈ{3â oz®†ìe?:?H·˜û¨ÁUB+hM`£Q*Š§«â3P ñæá, d¯u‹„qÿt¸x-rrñÑió5ôŽmTß«íö\|»®®À�|¡ÿÁgÕFVo¤µú¼Òl‘Â\di²Ö;²öÚí#5<¡@î²ðŸŒ| ¶¸Þ1q:Gaá(¯³,`OÖU&m4²Æ&“§tpHo¦ >ü»OÇå¥õ Ñ\#ñ”Ô…7\9[/܃ܪ2#]f8é¶Êâlµú”Ž--¡µšãe§Id‹($dÂ%içm*àȶ•ZìiÑÜ.Ŧ%½”zåî1ºA«¯<N•°'ó0Ʋ¯Ee÷y4¥´B‘•˜1¹üÉ»¨]€Ö|QÚ=m›¾A_Qî÷˙”pö/n¿Ð7Øq·¿ 0B) fôÁrñ&§PmQ/'êót|wMnÔ-Vû&@›ñwÙ-ðõ˃¶ß´Ó[qâô¯ãÛñ'ª/7âhãrrÄÐJv(ëàÏB‚4#c4¼»²'TY\!M0“ë Äzœ6¿ú£gÿîõB³×*ûªO^´TVyyY‡N×TõZí[çŠ ÿ!À�ïÿÞ endstream endobj 38 0 obj <</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>> endobj 39 0 obj <</AIS true/BM/Multiply/CA 0.75/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 0.75/op false>> endobj 36 0 obj <</LastModified(D:20120721105525-04'00')/Private 64 0 R>> endobj 64 0 obj <</AIMetaData 65 0 R/AIPrivateData1 66 0 R/AIPrivateData2 67 0 R/AIPrivateData3 68 0 R/ContainerVersion 11/CreatorVersion 16/NumBlock 3/RoundtripStreamType 1/RoundtripVersion 16>> endobj 65 0 obj <</Length 936>>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 16.0 %%AI8_CreatorVersion: 16.0.0 %%For: (Aaron Quinlan) () %%Title: (bedtools.ai) %%CreationDate: 7/21/12 10:55 AM %%Canvassize: 16383 %%BoundingBox: 8 -27 333 276 %%HiResBoundingBox: 8.6001 -27 333 276 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 12.0 %AI12_BuildNumber: 682 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_Cropmarks: 0 0 260 260 %AI3_TemplateBox: 130.5 129.5 130.5 129.5 %AI3_TileBox: -248 -158 486 418 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 6 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI9_OpenToView: -58.6665 284.667 3 1575 970 18 0 0 442 460 0 1 0 1 1 0 1 1 0 1 %AI5_OpenViewLayers: 7 %%PageOrigin:0 0 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 66 0 obj <</Length 22035>>stream +%%BoundingBox: 8 -27 333 276 %%HiResBoundingBox: 8.6001 -27 333 276 %AI7_Thumbnail: 128 120 8 %%BeginData: 21902 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FDFCFFFDFCFFFDFCFFFDFCFFFD13FFA8A87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA8A8FD24FF7D7D52FD5A7DA8FD %21FFFD047D537D597D537D597D537D597D537D597D537D597D537D597D53 %7D597D537D597D537D597D537D597D537D597D537D597D537D597D537D59 %7D537D597D537D597D537D597D537D597D537D597D537D597D537D597D53 %7D59FD047DA8FD1FFFA87D7D7D2E532E532E532E532E532E532E532E532E %532E532E532E532E532E532E532E532E532E532E532E532E532E532E532E %532E532E532E532E532E532E532E532E532E532E532E532E532E532E532E %532E532E532E532E532E532E53527D52A8FD1EFFA87D7D52595259525952 %595259525952595259525952595259525952595259525952595259525952 %595259525952595259525952595259525952595259525952595259525952 %595259525952595259525952595259525952595259525952597D7D7DFD1E %FF7D7D525352532E5352532E5352532E5352532E5352532E5352532E5352 %532E5352532E5352532E5352532E5352532E5352532E5352532E5352532E %5352532E5352532E5352532E5352532E5352532E5352532E5352532E5352 %532E5352532E7D7D7DFD1EFF7D7D7D2E5952535259525352595253525952 %535259525352595253525952535259525352595253525952535259525352 %595253525952535259525352595253525952535259525352595253525952 %5352595253525952535259525352595253537D7DFD1EFF7D7D52532E532E %532E532E532E532E532E532E532E532E532E532E532E532E532E532E532E %532E532E532E532E532E532E532E532E532E532E532E532E532E532E532E %532E532E532E532E532E532E532E532E532E532E532E532E532E532E597C %7DFD1EFF7D7D7D5259525952595259525952595259525952595359525953 %595259535952595359525953595259535952595359525953595259535952 %5952532E5952595259525952595259525952595259525952595259525952 %595259525952595253537D7DFD1EFF7D7D52532E5352532E5352532E5352 %532E5352532EFD04A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF %A8A8A8FFA8A8A8FFFD04A87D7D52532E532E5352532E5352532E5352532E %5352532E5352532E5352532E5352532E532E597DA8FD1EFF7D7D7D525352 %595253525952535259525352595259A8FFFFFFA8FFFFFFA8FFCAFFA8FFCA %FFA8FFFFFFCFFFFFFFCFFFFFFFCFFFFFFFCAFFFFFFA8FFFFFF7E7D52532E %595253525952535259525352595253525952535259525352595253525959 %7D7DFD1EFF7D7D52532E532E532E532E532E532E532E532E532E847EA87E %A8A8FFA8FFA8FFA8FFA8FFA8FFA8A884A87DA87DA87DA87DA87DA87DA8A8 %FFA8FFA8FFA8FFA8A853522E532E532E532E532E532E532E532E532E532E %532E532E532E532E532E7D7D7DFD1EFF7D7D7D5259525952595259525952 %59525952595259525952532E53527DA8FFA8FFA8FFA8FFA87D2E522E522E %522E532E522E532E522E53527DA8FFFFFFA8FFFFFF7E592E595259525952 %595259525952595259525952595259525952595259597D7DFD1EFF7D7D52 %5352532E5352532E5352532E5352532E5352532E532E5228522752A8FFA8 %FFA8FFA884272E282E2852282E2852282E2852282E2852282E59FFA8FFA8 %FFA8FFA8592E522E5352532E5352532E5352532E5352532E5352532E5352 %532E7D7D7DFD1EFF7D7D7D2E595253525952535259525352595253525952 %532E532E522E522EA8A8FFA8FFA8FF7D2E28522E522E522E522E522E522E %522E522E522E2E52FFFFFFA8FFA8FFA87D2E532E59525352595253525952 %53525952535259525352595253537D7DFD1EFF7D7D52532E532E532E532E %532E532E532E532E532E532E522E522E5228527EFFA8FFA8FFA87D052E27 %52285228522E5228522E5228522E522852282E2EFFA8FFA8FFA8FFA85928 %522E532E532E532E532E532E532E532E532E532E532E532E597C7DFD1EFF %7D7D7D5259525952595259525952595259525952595259525952532E532E %A8CFFFA8FFA8FF7D2E28522E532E5952532E5952532E5952532E5952532E %527DFFA8FFA8FFA8FFA8532E595259525952595259525952595259525952 %5952595253537D7DFD1EFF7D7D52532E5352532E5352532E5352532E5352 %532E532E532E532E532E5384FFA8FFA8FFA87D272E28522E522E532E532E %532E532E532E532E532E522E5284FFA8FFA8FFA8FF7D2E2E532E532E5352 %532E5352532E5352532E5352532E532E597DA8FD1EFF7D7D7D5253525952 %5352595253525952535259525352595253525952532EA8FFFFA8FFA8FF7D %2E2E522E535253525952535259525352595253525952532E7DFFFFA8FFA8 %FFA8FF53522E535253525952535259525352595253525952535259597D7D %FD1EFF7D7D52532E532E532E532E532E532E532E532E532E532E532E532E %532E527DFFA8FFA8FFA87D052E28522E532E532E532E532E532E532E532E %532E532E522EA8A8FFA8FFA8FFA8A827522E532E532E532E532E532E532E %532E532E532E532E7D7D7DFD1EFF7D7D7D52595259525952595259525952 %5952595259525952595259525952A8FFFFA8FFA8FF7D2E2E522E59525952 %59525952595259525952595259525952537DFFA8FFA8FFA8FFA8532E5352 %53525952595259525952595259525952595259597D7DFD1EFF7D7D525352 %532E5352532E5352532E5352532E5352532E5352532E532E537EFFA8FFA8 %FFFF7D055228522E532E532E5352532E5352532E5352532E5352532E7DA8 %FFA8FFA8FFA8FF522E28522E532E5352532E5352532E5352532E5352532E %7D7D7DFD1EFF7D7D7D2E5952535259525352595253525952535259525352 %595253525952A8A8FFA8FFA8FF7D2828522E532E59525352595253525952 %53525952535259525353FFA8FFA8FFA8FFFF7D28522E5352535259525352 %5952535259525352595253537D7DFD1EFF7D7D52532E532E532E532E532E %532E532E532E532E532E532E532E532E537EFFA8FFA8FFA87D272E28522E %522E532E532E532E532E532E532E532E532E532E53A8FFA8FFA8FFA8FF59 %2828522E532E532E532E532E532E532E532E532E532E597C7DFD1EFF7D7D %7D525952595259525952595259525952595259525952595259525952A8CF %FFA8FFA8FF7D2E2852525352595259525952595259525952595259525952 %5353FFFFFFA8FFA8FFFF7E27522E53525952595259525952595259525952 %595253537D7DFD1EFF7D7D52532E5352532E5352532E5352532E5352532E %5352532E5352532E5384FFA8FFA8FFA87D272E28522E532E5352532E5352 %532E5352532E5352532E532E59A8FFA8FFA8FFA8FF532828522E532E532E %5352532E5352532E5352532E532E597DA8FD1EFF7D7D7D52535259525352 %595253525952535259525352595253525952532EA8FFFFA8FFA8FF7D2E2E %522E5352535259525352595253525952535259525352537DFFA8FFA8FFA8 %FFFF5927522E532E5952535259525352595253525952535259597D7DFD1E %FF7D7D52532E532E532E532E532E532E532E532E532E532E532E532E532E %527DFFA8FFA8FFA87D052E28522E532E532E532E532E532E532E532E532E %532E532EA8A8FFA8FFA8FFA8A8272827522E522E532E532E532E532E532E %532E532E532E7D7D7DFD1EFF7D7D7D525952595259525952595259525952 %595259525952595259525952A8FFFFA8FFA8FF7D2E2E522E595259525952 %595259525952595259525952595259A8FFA8FFA8FFA8FF7D2E28522E5352 %5952595259525952595259525952595259597D7DFD1EFF7D7D525352532E %5352532E5352532E5352532E5352532E5352532E532E537EFFA8FFA8FFFF %7D055228522E532E532E5352532E5352532E5352532E53525259FFA8FFA8 %FFA8FFA852272E28522E522E5352532E5352532E5352532E5352532E7D7D %7DFD1EFF7D7D7D2E59525352595253525952535259525352595253525952 %53525952A8A8FFA8FFA8FF7D2828522E532E595253525952535259525352 %595253525952A9A8FFA8FFA8FFFF7D275228522E53525352595253525952 %535259525352595253537D7DFD1EFF7D7D52532E532E532E532E532E532E %532E532E532E532E532E532E532E537EFFA8FFA8FFA87D272E28522E522E %532E532E532E532E532E532E532E532EA8A8FFA8FFA8FFA8842728272E28 %522E532E532E532E532E532E532E532E532E532E597C7DFD1EFF7D7D7D52 %5952595259525952595259525952595259525952595259525952A8CFFFA8 %FFA8FF7D2E28525253525952595259525952595259525952592E84FFFFA8 %FFA8FFFFA8282E28522E532E595259525952595259525952595259525952 %53537D7DFD1EFF7D7D52532E5352532E5352532E5352532E5352532E5352 %532E5352532E5384FFA8FFA8FFA87D272E28522E532E5352532E5352532E %5352532E532E7DA8FFA8FFA8FFA87D272E272E28522E522E5352532E5352 %532E5352532E5352532E532E597DA8FD1EFF7D7D7D525352595253525952 %53525952535259525352595253525952532EA8FFFFA8FFA8FF7D2E2E522E %53525352595253525952535259525352A8FFFFA8FFCAFFA87D272E28522E %522E535253525952535259525352595253525952535259597D7DFD1EFF7D %7D52532E532E532E532E532E532E532E532E532E532E532E532E532E527D %FFA8FFA8FFCA7D052E28522E532E522E532E532E532E522E537DA8A8FFA8 %FFA8FF7D52052E272E27522E522E532E532E532E532E532E532E532E532E %532E532E7D7D7DFD1EFF7D7D7D5259525952595259525952595259525952 %59525952595259525952A8FFFFA8FFA8FF7D522E52525952595259535952 %59597D7DA8A8FFA8FFFFFFA8A8522E28522E522E53525352595259525952 %595259525952595259525952595259597D7DFD1EFF7D7D525352532E5352 %532E5352532E5352532E5352532E5352532E532E537EFFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8532E052E282E275228 %522E532E532E5352532E5352532E5352532E5352532E5352532E7D7D7DFD %1EFF7D7D7D2E595253525952535259525352595253525952535259525352 %5952A8A8FFA8FFA8FFA8A8A8AFA8A8A8FFA8A8A8FFA8A8A8AFA8FFA8FFFF %FFA8A8847D525228522E5352532E59525352595253525952535259525352 %59525352595253537D7DFD1EFF7D7D52532E532E532E532E532E532E532E %532E532E532E532E532E532E537EFFA8FFA8FFA87D272E27522E5228522E %522E522E522E522E52527DA8FFA8FFA8FF7D7D282E28532E532E532E532E %532E532E532E532E532E532E532E532E532E597C7DFD1EFF7D7D7D525952 %595259525952595259525952595259525952595259525952A8CFFFA8FFA8 %FF7D2828522E522E532E522E532E522E532E522E52285259FFFFFFA8FFFF %A85353525952595259525952595259525952595259525952595259525353 %7D7DFD1EFF7D7D52532E5352532E5352532E5352532E5352532E5352532E %5352532E5384FFA8FFA8FFA87D272E27522E522E522E522E522E522E522E %522852282E28A8CAFFA8FFA8FF7D532E532E5352532E5352532E5352532E %5352532E5352532E532E597DA8FD1EFF7D7D7D5253525952535259525352 %5952535259525352595253525952532EA8FFFFA8FFA8FF7D2E28522E532E %532E5352532E5352532E5352532E532E522EA8FFFFA8FFA8FFA8592E532E %595253525952535259525352595253525952535259597D7DFD1EFF7D7D52 %532E532E532E532E532E532E532E532E532E532E532E532E532E527DFFA8 %FFA8FFA87D052E285228522E522E532E522E532E522E532E522E522E2E28 %A8A8FFA8FFA8FFA8532E522E532E532E532E532E532E532E532E532E532E %532E7D7D7DFD1EFF7D7D7D52595259525952595259525952595259525952 %5952595259525952A8FFFFA8FFA8FF7D2E2E522E59525352595259525952 %595259525952595253525353FFA8FFA8FFA8FFA8532E5952595259525952 %59525952595259525952595259597D7DFD1EFF7D7D525352532E5352532E %5352532E5352532E5352532E5352532E532E537EFFA8FFA8FFFF7D055228 %522E532E532E532E532E532E532E532E532E532E532E527DFFA8FFA8FFA8 %FF7D2E2E532E532E5352532E5352532E5352532E5352532E7D7D7DFD1EFF %7D7D7D2E5952535259525352595253525952535259525352595253525952 %A8A8FFA8FFA8FF7D2828522E532E59525352595253525952535259525352 %5952532E7DA8FFA8FFA8FFA8FF53522E5952535259525352595253525952 %5352595253537D7DFD1EFF7D7D52532E532E532E532E532E532E532E532E %532E532E532E532E532E537EFFA8FFA8FFA87D272E28522E522E532E532E %532E532E532E532E532E532E532E5228A8A8FFA8FFA8FFA8A828522E532E %532E532E532E532E532E532E532E532E597C7DFD1EFF7D7D7D5259525952 %59525952595259525952595259525952595259525952A8CFFFA8FFA8FF7D %2E28525253525952595259525952595259525952595259525952537DFFA8 %FFA8FFA8FFFF592853525952595259525952595259525952595253537D7D %FD1EFF7D7D52532E5352532E5352532E5352532E5352532E5352532E5352 %532E5384FFA8FFA8FFA87D272E28522E532E5352532E5352532E5352532E %5352532E5352532E7DA8FFA8FFA8FFA8FF7D2E28532E532E5352532E5352 %532E5352532E532E597DA8FD1EFF7D7D7D52535259525352595253525952 %535259525352595253525952532EA8FFFFA8FFA8FF7D2E2E522E53525352 %5952535259525352595253525952535259525352FFCAFFA8FFA8FFA8A82E %522E5352535259525352595253525952535259597D7DFD1EFF7D7D52532E %532E532E532E532E532E532E532E532E532E532E532E532E527DFFA8FFA8 %FFA87D052E28522E532E532E532E532E532E532E532E532E532E532E532E %53A8FFA8FFA8FFA8FFA85228522E532E532E532E532E532E532E532E532E %7D7D7DFD1EFF7D7D7D525952595259525952595259525952595259525952 %595259525952A8FFFFA8FFA8FF7D2E2E522E595259525952595259525952 %595259525952595259525952A9FFFFA8FFA8FFA8FF2E522E535259525952 %5952595259525952595259597D7DFD1EFF7D7D525352532E5352532E5352 %532E5352532E5352532E5352532E532E537EFFA8FFA8FFFF7D055228522E %532E532E5352532E5352532E5352532E5352532E532E5384FFA8FFA8FFA8 %FFA85228522E532E532E5352532E5352532E5352532E7D7D7DFD1EFF7D7D %7D2E5952535259525352595253525952535259525352595253525952A8A8 %FFA8FFA8FF7D2828522E532E595253525952535259525352595253525952 %53525952AFA8FFA8FFA8FFFFFF28522E532E595253525952535259525352 %595253537D7DFD1EFF7D7D52532E532E532E532E532E532E532E532E532E %532E532E532E532E537EFFA8FFA8FFA87D272E28522E522E532E532E532E %532E532E532E532E532E532E532E59A8FFA8FFA8FFA8FF7E2E27522E522E %532E532E532E532E532E532E532E597C7DFD1EFF7D7D7D52595259525952 %5952595259525952595259525952595259525952A8CFFFA8FFA8FF7D2E28 %525253525952595259525952595259525952595259525952537DFFA8FFA8 %FFA8FFFF8427522E5352595259525952595259525952595253537D7DFD1E %FF7D7D52532E5352532E5352532E5352532E5352532E5352532E5352532E %5384FFA8FFA8FFA87D272E28522E532E5352532E5352532E5352532E5352 %532E5352532EA8A8FFA8FFA8FFA8FF522827522E522E5352532E5352532E %5352532E532E597DA8FD1EFF7D7D7D525352595253525952535259525352 %59525352595253525952532EA8FFFFA8FFA8FF7D2E2E522E535253525952 %5352595253525952535259525352595259A8FFA8FFA8FFA8FFA85228522E %5352535259525352595253525952535259597D7DFD1EFF7D7D52532E532E %532E532E532E532E532E532E532E532E532E532E532E527DFFA8FFA8FFA8 %7D052E28522E532E532E532E532E532E532E532E532E532E532E527DFFA8 %FFA8FFA8FFA859052E28522E532E532E532E532E532E532E532E532E7D7D %7DFD1EFF7D7D7D5259525952595259525952595259525952595259525952 %59525952A8FFFFA8FFA8FF7D2E2E522E5952595259525952595259525952 %5952595259525359FFA8FFA8FFA8FFFFA827522E522E5952595259525952 %595259525952595259597D7DFD1EFF7D7D525352532E5352532E5352532E %5352532E5352532E5352532E532E537EFFA8FFA8FFFF7D055228522E532E %532E5352532E5352532E5352532E5352522EA8A8FFA8FFA8FFA8FF2E2827 %522E522E532E532E5352532E5352532E5352532E7D7D7DFD1EFF7D7D7D2E %5952535259525352595253525952535259525352595253525952A8A8FFA8 %FFA8FF7D2828522E532E595253525952535259525352595253525352A8CA %FFA8FFA8FFFFFF522E28522E535253525952535259525352595253525952 %53537D7DFD1EFF7D7D52532E532E532E532E532E532E532E532E532E532E %532E532E532E53A8FFA8FFA8FFA87D272E28522E522E532E532E532E532E %532E532E532E5252A8A8FFA8FFA8FFA8FF5227272E28522E532E532E532E %532E532E532E532E532E532E597C7DFD1EFF7D7D7D525952595259525952 %595259525952595259525952595259525353FFA8FFA8FFA8FF7D2E28522E %5352595259525952595259525952592E597DFFFFFFA8FFA8FFFFFF522E28 %522E522E59525952595259525952595259525952595253537D7DFD1EFF7D %7D52532E5352532E5352532E5352532E5352532E532E532E53525353A8A8 %FFA8FFA8FFA8FF522E28522E522E532E532E532E532E53525353A8A8FFA8 %FFA8FFA8FFCAA82828272E28522E522E532E532E5352532E5352532E5352 %532E532E597DA8FD1EFF7D7D7D5253525952535259525352595253525952 %597DFD04A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A87EA8A8A884A8A8A884FD %04A8AFA8FFCAFFA8FFA8FFFFFFA87D282E28522E522E5352535259525352 %59525352595253525952535259597D7DFD1EFF7D7D52532E532E532E532E %532E532E532E532E532EA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8522E272E272E27 %522E522E532E532E532E532E532E532E532E532E532E532E7D7D7DFD1EFF %7D7D7D525952595259525952595259525952595259A8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %845953282E28522E522E5352535259525952595259525952595259525952 %5952595259597D7DFD1EFF7D7D525352532E5352532E5352532E5352532E %5352595259525352595253525352522E522E522EFD045253525352595253 %5259525352532E522852272E2752282E28522E522E532E532E5352532E53 %52532E5352532E5352532E5352532E7D7D7DFD1EFF7D7D7D2E5952535259 %52535259525352595253525952532E532E5228522E522852282E2752282E %2852285228522E5228522E5228522E5228522E5228522E5228522E522E53 %52532E5952535259525352595253525952535259525352595253537D7DFD %1EFF7D7D52532E532E532E532E532E532E532E532E532E532E522E522E52 %2852282E2852282E2852282E285228522852285228522852285228522852 %28522852285228522E522E532E532E532E532E532E532E532E532E532E53 %2E532E532E532E597C7DFD1EFF7D7D7D5259525952595259525952595259 %525952595259525952532E5352532E5352532E5352532E5352532E535253 %2E5352532E5352532E5352532E5352532E59525352595259525952595259 %525952595259525952595259525952595253537D7DFD1EFF7D7D52532E53 %52532E5352532E5352532E5352532E532E532E532E522E532E522E532E52 %2E532E522E532E522E532E522E532E522E532E522E532E522E532E532E53 %2E532E5352532E5352532E5352532E5352532E5352532E5352532E532E59 %7DA8FD1EFF7D7D7D52535259525352595253525952535259525352595253 %525952532E5952532E5952532E5952532E5952532E5952532E5952532E59 %52532E595253525952535259525352595253525952535259525352595253 %52595253525952535259597D7DFD1EFF7D7D52532E532E532E532E532E53 %2E532E532E532E532E532E532E522E5228532E5228522E522E522E522853 %2E522E522E522E532E522E532E532E522E522E532E522E532E522E532E53 %2E532E532E532E532E532E532E532E532E532E532E7D7D7DFD1EFF7D7D7D %5259525952595259525952595259525952595259525952597DA87DA87D53 %59A87D847D7D7DA87DA859537DA87D847D7D527E7D7E52592E7D7E845259 %7DA87D7D52597DA87D7D5259525952595259525952595259525952595259 %5259597D7DFD1EFF7D7D525352532E5352532E5352532E5352532E535253 %2E5352532EA8FF7D7DFF5953A8A8527D5384FF7D7DFF537D53FF7D7D53A8 %A859A8842E7DA87D7EA82E7DFFA82E537DA852847D522E5352532E535253 %2E5352532E5352532E5352532E7D7D7DFD1EFF7D7D7D2E59525352595253 %525952535259525352595253525952537DFF7D7EA87D52FF845352537DFF %5959CAA82E59A8A82E7DFF842EA8A859A8A82E7DFF7E52FF7D532EA8CA7D %2E5952535259525352595253525952535259525352595253537D7DFD1EFF %7D7D52532E532E532E532E532E532E532E532E532E532E532E532E7DA884 %A87E2E53A8A87D842E7DA87D2EFF7E5352FF7D2E59FF592E7DFF53FF7E52 %52FF7D53A87E2E5252FFCFA82E532E532E532E532E532E532E532E532E53 %2E532E532E597C7DFD1EFF7D7D7D52595259525952595259525952595259 %52595259525952537DFF5359FFA852FFA87D59537DFF5959A8A82E59CFA8 %2E7EFF842EA8FF7DA8A82E7DFF8453FF7D532E5353A8FFA8525952595259 %52595259525952595259525952595253537D7DFD1EFF7D7D52532E535253 %2E5352532E5352532E5352532E5352532E532E7DA85952FF7D53A8A82853 %527DA85953FF595352FF7D5252FF7D52A8A82EA8A85259FF5353A87E2E7D %53532EA8A8532E532E5352532E5352532E5352532E5352532E532E597DA8 %FD1EFF7D7D7D525352595253525952535259525352595253525952532E59 %A8FF7DA8A85959FFA87E7D847EFF7DA87E532E84A8A8525359A87DA85953 %52A884A87D537DFF84A87E847D84A87D2E59525352595253525952535259 %5253525952535259597D7DFD1EFF7D7D52532E532E532E532E532E532E53 %2E532E532E532E532E532E59525952532E53525952592E59525952532E53 %525352532E5352592E532E532E5952522E59525352532E5952532E532E53 %2E532E532E532E532E532E532E532E532E532E7D7D7DFD1EFF7D7D7D5259 %525952595259525952595259525952595259525952595259525952595259 %525952595259525952595259525952595259525952595259525952595259 %525952595259525952595259525952595259525952595259525952595259 %597D7DFD1EFF7D7D525352532E5352532E5952532E5352532E5352532E53 %52532E5352532E5352532E5352532E5352532E5352532E5352532E535253 %2E5952532E5352532E5352532E532E532E5352532E5352532E5352532E53 %2E532E5352532E5352532E7D7D7DFD1EFF7D7D7D2E5952535259535359A8 %52535259525352595253525952532E595253525952535259525352595253 %5259525352595259595953537DA82E532E595253525952535259527D5359 %52535259525352595253537D52592E59525352595253537D7DFD1EFF7D7D %52532E532E532E7E53537D592E5252532E532E5352532E592E5352532E53 %525352532E5952522E532E532E5352535259527D52A8527D7D532E535253 %52532E532E597D5359592E592E532E53525352595259537D7D522E592E53 %2E532E597C7DFD1EFF7D7D7D525952595259A8A853A87D7E59A87E59527D %7DA87DA87E7E7D847D7D7D8459A87DA87DA859A87E5952597DA859A8847D %7D84A85959A87D7D7E847E847D7D7E847DAF59A853847D8452597D7E59A8 %7D8459A87DA852847E7E2E595253537D7DFD1EFF7D7D52532E5352532E84 %59597D597DA8597D52525284597D7D7D597E5284847D2EA87D7D7D597DA8 %7D7D525352847D7E597D2E7E53A8527D597E597E52A8537E7D84597D7D53 %7D7D7D5352535284FD057D537D7D7D59847D59532E532E597DA8FD1EFF7D %7D7D5253525952537DA87DA859A87D7E595952597E84597E597DA87D8484 %7D7E59A87DA859A87D7E5959527D7D7EA8A87D59847D7D7E7DA87D84847D %7E84847D7D7D53A87DA87D7E7D7D52597D7E7D7D7DA87DA853A87D7E7D7D %52535259597D7DFD1EFF7D7D52532E532E532E5352535253525352532E53 %597D597E2E592E5952532E53525352595253525352532E532E5352535253 %2E5952532E5352532E59525352592E535253525352532E592E532E535253 %2E532E5952532E532E592E532E532E7D7D7DFD1EFF7D7D7D525952595259 %525952595259525952595259597E53535259525952595259525952595259 %525952595259525952595259525952595259525952595259525952595259 %5259525952595259525952595259525952595259525952595259597D7DFD %1EFF7D7D525352532E5352532E5352532E5352532E532E522E5352532E53 %52532E5352532E5352532E5352532E5352532E5352532E5352532E535253 %2E5352532E5352532E5352532E5352532E5352532E5352532E5352532E53 %52532E5352532E7D7D7DFD1EFFA87D7D2E59525352595253525952535259 %525352595253525952535259525352595253525952535259525352595253 %525952535259525352595253525952535259525352595253525952535259 %525352595253525952535259525352595253597D7DFD1EFF7D7D7D532E53 %2E532E532E532E532E532E532E532E532E532E532E532E532E532E532E53 %2E532E532E532E532E532E532E532E532E532E532E532E532E532E532E53 %2E532E532E532E532E532E532E532E532E532E532E532E532E532E53527D %52A8FD1FFFFD047D5359537D5359537D5359537D5359537D5359537D5359 %537D5359537D5359537D5359537D5359537D5359537D5359537D5359537D %5359537D5359537D5359537D5359537D5359537D5359537D5359537D5359 %537D5359537D597D7DA8FD21FFFD5E7DA8FD22FFA8FD5A7DA8FD25FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FDFCFF %FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFD3AFFFF %%EndData endstream endobj 67 0 obj <</Length 65536>>stream +%AI12_CompressedDataxœì½is%Éq øò?`?ÈŒ´2ãÌàŽÙð álñX6)iV6ÖV¡»K* Juêùõëwxä{¨ (ÐIV¡‘ž~…Çßü¿ýö›Ý‹×¼ù&žÎ'ÓßüÍÅÛ›ë÷¯ßþâ„ '¿|õêû÷oô³ßýüd)§34ÚýrýNþÝÍÛw/_ßý‚~E¿¼Â·¶»~ûúîäÿýðòîÕõÝÏO~ösøÍï_¾u¿ûãÍ‹÷¯_¿zwzýòçúIÀqyý~[ÏÂr¶„“eþEÎ'»_aƒë»?]¿{÷òÝàgâvþúÃÝ‹—w?œ¿þ×_œ¬'ß„zc< µÀ/ÿÛËßݼ[œ–y^6Í._?ÿp{s÷þ·o_?¿y÷îâõ«×oßýâäâ§ë»“_]ÿ�¿¹>ù7¯^½þóÉù«ëçÿì^¹z}÷›^¿yùþúÕ»ßÝüðáÕõ[hðž\üêßÞ¼}ùý7¿{}{}G ÿv}÷âÏo_¾‡Þ|syýϯß_øÛŸnÿøúýøû·×ÿt}ùÆ£ú{x‡ðÎAµ¿¾¹yqóâ¯ÖÝ/ówW/_ÝÀlß^¿?YÎýî—KøîüÃËW/~ýáö7Àe Žßqÿð¨ +½ÅŸ\¿ûå-@¾½y]‚q ÿüîoÏý„�žŸý#|û%ñ"ðÊÿü¹ }ûúÍíõÛ~ÇÍB¡ÿóï~sûæð1ÀçÓÝløgÿYZÂ@¨Õ7!/-y=Ik9IËÊ¿ïŒró§—7þÅɯ_ßÝ0 voßËŒ™Ò<óŸü›ß}xuóöw/q~ +‚áW¯_ܼ‚ööþÕ«ëÞé0—þ'7øýõÛnÞ?¿~õá=´U¿�D~výÓ òìÂøÍ››»ß¿þ;êã7˜¾”|Ö?�ãŸ,¹æ“VÿJŸI)œ¤¢\üŸüćØô3æç·0c¿yûò‡—w¿NÖïþöíË}k€IÐ8NW÷ÿ¦ÿçÃØß¿¿¹“�÷\üÊqÃ|ú«oá‹û»¯oqÞáÊ6@}õúþýL¿×?¼™þqŠíì_>¼~óp½º9iå쇷׺i_Ïv/^Þ¼…ß¼;Û½…_Ÿ]<¿yñòÕ«ë³ýõóïoÎ~ýXøæì7Úl:ûƒ½qÍM® ÛÙõó—o7¾uó¯g×½ ¿MÈŸ+òzs:»áWoÜ«7öêKFÿ’Û¼tm^Z›;B?½æ¶¯¹ík×öµµ}Í]ùÀM?pÓ½étöÁÚ¾¸þᇛ·g/ ƒ77gÏÞgïÞß¼}…£xwó¹ïì^½ºyöæú-RàÍgðˆ—|TzK+°½8{þúÍOÀ$?¾?ƒûâ×è÷Á>wz÷úý‹›ïÏvû³ß¼{uýîÇÉ@o`×¹}y÷¡7Ò¿º¹;»ý°Oíôï×o_|¨^ÞÝàÏ·×ïžx…ÿÐ×�—¯ÿˇ›w8ȯÿ|wvó¯Ï_]ßÒÀ]/Ÿ_¿‚ìïa!¿¼;ìÆ ü^Ýܾ†îû÷ý_L ØJ^¾Á‘¿{sýüælÇ“±f“¿ög¯‘Gî^@—Înné/bd 1!Õ0NúW‡3ðÅË?½D1¢Íÿ‡ýôýÛkžÑý‡·¯©§´R¬ßô/B7}ÿ,ì_>{ßyý„溯³?^¿»±Ò? éû_x,2í‹îÝÏ;挽unϤù%ÃéÙõ—Öè—Üè7Üè7ŸŽû7ÜâÜâÍøW/p¦@µ8soóDÜ^?‹ü"Ÿš]?§ÁKšWôtöㇻ®ß~¸}uýá=¬CØþùì9j>Óï÷$Aóÿî÷ï`ïè[FüŽÄÔþîùkÜRqòÝfó>ØÌÿñlÛälû +ï¿ÿÿø =lèn~ÿÓ››ÏïÍ 6lµìË�9Û´çÍäXOH¡ü¢®ª+Ç4èÒ!ôìÈ»H$Ö˜Tq‚ðOgÄ/(dGT4øþðìðÅÇœšðˆŽÝ:�ž¾øÄúÇ¥,²-,5žÁò¾ù—ׯàåìåÝ÷ Þßÿä6 \ÒÔ�ö|°-@^à?¦e]pëýËëW/^~ÿýŒó–ʳ7o_¿øðv¶—€ñ=îÑ€~mg¿¹½ùáúdZZ>ƒ÷“¥Õ³ë7ð¿J/Úzvyó +X,,I„/lÿëæ“flü +ıpÉwÇØ$3‰¿’ÿdòíôë7™Z¿}õ~õ·o_xóË»ï_O?cÛìï`K†]èݼ8ùÍÿ þféÓÈ"ÏüÛÚ€õæçEªØÛ›þ%¼IÿÔ¿?ýöåÍ÷` ô׺¿ûÓÍ«×oZƒÀú<ùûë·o>ú·`AŸÜ0?{ ºÜo¯Rw‡}RÐgß Nó'íÜæià~õº~ÿ#˜°¡¿3Üüϱãû4¾oŸ£Æüöäüí‡w?žüìhC;þÊ°˜ ØþßÇ7~K/ÜýæŽ tø%i°ýLÿî¾ïÿüòß3ö‹kÐJI•ùüØŽü޾ĿûÆ"Á÷òÝmç'ù- +æç¯n¾ý ŒˆÛÏžÜÐAÈݳŒ?ÚæÛ?_¿þã³—|¶ÚÍGWN�l4/€÷¿ýðòýM'ÐëÛ7èj:ùöÇë774Œ÷?^QËo aÆÍ÷o¾ùˆÔñäüÎýþoqçíó'?;õáæäwðOØwüóé8v{@ôŒáÿ:ÍøßO˜ãœàÉð”¹ÎëÜàÙÍçóÅ|9ïç«ù +š-KXâ’–;o…}³-»åž‹årÙ/WažÂBˆ!…J¨a -ìÂy¸—ðìÃUœã¡AŒ1ÅK¬q-îây¼ˆ—ðìãôcI!Å”RžR§¦5µ´Kçé"]¦}ºJWÐÑ%‡sÊ9—éÿÖÁþ·?-ö'[ÿäÿ#øOx&¢ Ó…ÿd +éŸYžb¢]êUú©ÒO+Qþœè/&,þÉ«žÃs ÄÞÏ—0˜žÿ:]]]í¯.¯.®Î¯vW žõª^•«ÃWáj¹š÷Wûýþr±?ßïöm¿îë¾ìó>íã>ìÀ¯_î////.Ï/wÓe»\/ëe¹Ì— ˆ.øäÕÅþâòâââübwÑ.Ö‹zQ.òEºˆáb¹˜Ï¯Î÷ç—çççç»óv¾ž×óržÏÓy<Lþ¼»Úíw—»‹Ýùn·k»uWwe—wiwa·ÀH¯hv®®h88 K¶³Ááð* ‰ÃL4T,Œ"Ùï'9Žý‚Æ@4¢RiÔÈD¤ Ré‚ÏlÔAúÀ É„‚§V¢Ri†TK}0‡ÿí?ó¹Ü>Ó!Hhô9Ïùá3îL:ù›ïÎߘr§Ò³ÂÓàiÌçô�Gàø”0/…½,Öx‰ô$xÿ«e-žÝT€Q +0oS +ëa¡'ÔXaMÓ·Ju…§Á³«çØL€«f]V!k\öh‚? +¶]×µÀhëùz3„Ó}Õh]µ¥…è>v¶Öví¼o㜃\ÁªÑÅRãR`,y˜Í®DHð³ü Ž~ +ô€0ƒ?ýèÉHG”…dd…?Wø:ïèïsøûBäæÉÎËe¯J¤üèa‚@‚ÐÌ$UQ®Vøs%éÚH¢Œ='‹RvBì +»R–emY›AÖb˜d5ù‚«ŽQ)+¨µš!åpV +2Ф4|0ãJš_õ/`vØæ¤N0=&)ÁG°{H¿+\‡0£0· �ã +3^`æ‘"eYy…+øä8fó¶#•’'àªÜ€˜3pÞ8ð¸q]Z‰SHÿc@ô¤ÅVèì;`¾PR†m$ýâ,‰pÓíÒ]Ò\(CÈò sAâá‚ÿ;§gGO›pDŒâ_äùZ2 F‰R¦*>3‰Õ+(\/IÀ¢ˆÅÿvIÚFÒå-JÜBRån"ÙqÂω‹pë Õ¼'A|IÂÅ1 +dÉeÖ‘õäiŸûLÃ?×/zê±g: +.ŸùäçK·œf‹¤ààÿå$ϧµÅ +Phôíô7ß}¼Ñù»i> º†*æb,ó§%�"t…EW#F2Ö֋⨧±-ñ$æÓ–³}íQQ¯JÄØÍiXh^‚&¤:gDS@b¤Œh@'Y“¢YNAÔ¤P‡z‡ˆúr~iŠjœÇUÖ«ë7'ï_Ÿüý¨6O›cÔŽ•T ÎâÒè‡9¤DÂ:ÑÂ’ëøöËM¹¼y¢oÊ€ø…ñ|Ó&|¤ÉCÐä|1‚Ô|ò>Š/™’¿}{ssçí‡ €°Šå B¨‹!/‚¼øaµBÖY3DÝ´CÙ`ï™hãi´éÚt’l8¼Ý\’ƒMh¥m,ƒùayÀFÞ%ˆÖs@Ø`ש°Iâf »'hŒ{Úiw´'Ú¬gØÚQÑF¸¦rœ•0ü÷1mï«ÿ;†•BVóAäÑW©§{Þ‰ÄPhdOTR¿²X"‰Œ• ÏbÏáPî±Æ±šk}{ÓúÒùXßëŸê|»Aá•o2Ou¾2ê|ôUÓÛPk«Ng»4m-�Ï$èV>Z§vÀ_ÀmW°ý-Àƒ82C*l™ wÐsØP/a{½‚ív7ÂFœ¡w¶iÞÉÊ#ÝÔ$V”Ð0MdœfVm#õ'2U™«;2YÏÉl½ÓõrB#’Á"Ö"+…¤¾!N¯nÓPx0«h'ƒº =|Š·Ð"ãï±ýAº$êdu&ws[íÁІ—ÔyÕú fí¦ÁügÀÎ�äX˜CH=c É@ëh1æqÌ%qϹhk ¯ÑË5IrÀ¤�ÏRg`%9PI’YæÿÃÙä™…±y²o\;£Ó«»&”fÞ=±7÷NjÝ’Õì¢`'Å^\\YŒ«õpi ÆTš€žºªVYU¸¢dMáÜЂÒ%…X«-¨QlFíÙŒšÈŽbKŠì(ÒÒÙŒZIuGCŠM)1¦ÄœBeŸéÍ•˜T“XU,ÖT/̾"mpG¼ƒ6Ü@«w|’=y¢m!̉óÕÿ}ÂEþýA[¯“0‰ÄÅ?óÆ#”6þ þg‘eUD‚¯âjìj²ÚøOöáÊ»°¿/Ä(ÙË–0تb›Šu:Á?Ø0UÓTS2Pí)öT÷¬òð¿ÈnÄkùŸœsÀúÌöâ•3\FgÏ°¹08ïÊÕÀÑ°?�K#;'bcdás°Áf$®ÄÌ¥çÄW´U TÈdÞ#2ëñ6'à5Þ'X¬ž«8J²MºKÐ&q)›ÄB›D"«7‰$1ì!Ø{hÿ]ÙÑFŒd;òdnƒaxy¹G— M +à¸üá©d]÷üG“¦«@ŽB¦Jy´3ñí‡éµõóŸáòñGö[v>œ›sQÝŠI‹¸öâf`‡¬ºd‹x¢xØ1»ŸÌu°AøhI=ŸÅMÛ•s¯˜Ù‡i'žx3F¿èæ—GüBeã=C{ÚJ.h[ÙMæ ZaÏaúˆiTì'ZP’½ÏÞ¢KÚÀÎÅg´#Mq%ÏQe"2›)’)+i©,fÙ)°·Ò%¹–ø_JÙÙÓ&vY²®ofç_>üËê]îþeõ.wÿò¬þå‰ÌìbVÿr÷07ó0wsv¾©Á'Åþ¨É¹£Ž8£Žx¢}Qƒ7jâíÅ9¤¼Kʹ¥èiÎ3¥Þ)õO1×åÉÜTj#2ç²·?ƒj?<D©IþÂùùÂ@……*î‹TLÛ`…h¡[=t´G÷âþdç§r6y>'bêÅØùÒ¹)çFu~ŠûóÒÜŸê�¬_ONÁ>T¯wâ]ÉZHÓD‡h$Ís!+ñJ£—ÄçùGÙCº’òZÈOŠžÒÄJ4,¨.°‰& 38ó%3‘NîŽó!˜pè +e[÷¬exÿð¹t&S'Ò2Éš>¤S·Dj_±÷+‰y&¢ÎrH#MˆÂabì…çf€12‰-’Í +!#Wd]\Š—âœÔáF¾Š•ù…<‰Üò €Ð•¯A(z‰š1¨‡ò„7’Õ¶åñÑå'^´>tuhÖ…¬ +^¸Œ.\¸�ˆý'ï<·<«4Ÿ2—8“<‡Èæ"”iâØ·ÏŒ-S…5ÉL‰Œ¬,ÌÓs¹ñé£Þ‰S²è„åÌô!ýÑE¢FŽ„Æ�»!Ø‘'òET³u4†¤¤Yl¶e¼9ßS~/^Šy2K>‰³¢ô\I¢îHÊ^ˆBÊ~ö\Zo]5eå´]ì&ÖPaÊq7P%u¦ ƒUUTVqK)¦°®´í°ÚzÎ"ǵ“ç\ò—†˜“žª³Ež`ŸâÏ¥I¾©ßÕoW ¨®²õq/v²%ž_Ê×8+Ûæž÷PÕ¬ñ±H™<,™’<YÙûe£®´iãC³7‰ZÎìy:ʽ}zßÿ³Ð-ljnf¤'ŒÉ d5±ú/ÅâgGDì@£€©ZúWbåGq™U±î•½¯Œµ±v1¶Ö˜(04»Õîs¬sÎ5ñB™ƒ-NÎǦöÓ…YP³ØP‘ôŒÎªÍëÂo`]$ŒšÄ&e«sG1RŽ‹^‘— +KØÏå=8MBŸárb§—D>ƒ¸òÔ‘Ó]9;qÚQ¶‰yéÈ?G²>kÊÉd.çÔ‘ÜuíDšduðlãæïé$^vžz÷éj.TïDunTqûtÇyS'q¦VçPí> ¦_ê Ðâž Â1 +¥‰¤¤úˆXZª§H½EM¤çNd¨>Ã#+}¢?X>ë”Êdò4²Ž\pÎ]‰³µ÷ê%¹8ˆ×š¬´Éò€x¡é2»pË,ˆ¯ m^ô;8§ƒº.&Ù7tÏàe¥{í²G°?¬1p=ѦàÖ’¬¤IöÝ]H&üû*âu4 +ýQàïÐÁ²yo’%0{$TÜnD¼ S•¡*;IjN&2IÌeqnòÐI@JÃY®¢==ÞJ +ÚDð„›¥¶Ó*JÅl&±–,OéÒRpÔF®–z'ÉYRkh?˜ÊÝX®bò¨¹Ü f ¸‹U3™Ñ<šÍ`?®oë.²E±É·3úx’…O³è&u¯+,‰íjrªmÖõ…ZØô4gdW1´‹,æd涘'ju/«x"-Þ®\piÏ…=çÃÖùn¢?Ètö‘ý1(ß3¹4›K3º$§KŒn5¼‰q&—ßua»´îÚÍåzu‹¼ÚÆŸ]æ—Øç“™èÁ%‚-ªY¸Ô«½³Ú/Ívïö»Øð“h0ÍžÕžNÁbOvO:’†Ü³¸gîÏ&ýk?<—ã3]þw~ðìîyÚáCÚ"M÷‘\CË4¼'Ñ𣩆“)Ÿ6â·füI2;~2ß•.5 )¥!—©{«vbÎWKdJfªÂ™>b«f1êƒ3꽹ʶO7ìÉ`ŽÄÎØnõÑ3µ‹4ãIXoæ‹¡?‰5»Þb‹öܬÚ&F?›ýjú³›ÍÚMÝ0aKLª€OÏ•ó '¥‰œ¦º¦¸À +Ìd9 œ-Âé!œ¢Þ2&V<%WÔè92 QÔLÇ”OgPøB€bÊsÄ–t˜ ±0VKÒhñ4À<÷N=>Îʆ˜×Ó·®ŒkŽ5'è²Ô‚ã+:â€ãìiG'%œF˜x—ó8ø¨o•^%ÁX'˜l ˆ::ÍïÇvŠ[ÒIL˜–ä:õPDÔ›¯a…TNó²`r +ã«-2NÜ%]øõeŽ¹ò(YøC 9Ñ©õG«ã«§€³¦–æxŒêKyž½¼»¡³Q–ɳ…ôü*é!€ãG�îOÿ¿èéÿ ׃6Y&Âîc¹S#ŠNÁS:LÎ’f;º‡Ù†®C¨Ü‡ÉГ³ mèÁŠ&Ç7£ÕVSš¼B“º…6Ž!u ©mî¡f.¢ó!ãc¯YyÆÕS|ˆ8²ØEô±Ulr}vöœ³ª«»½*0ªQIvø=\†Ä=Ùp4)Ä1ÆÁÉÉñÆü‘³!ýdȘ|áS/ˆM&=r”S±ÇG§ËèvÙ8^&³º·™êžwªK®ðþÅeð/’Å<Mª¸rÆ‘“ªqSϧrÕ'ã©Åñ•&P(oQÇ× ‡íŸÉ3(z—ãóù¬pÞ x 1ÈˆÉ ÏÝ‹sŒŽåàÈ¡é#l}o‡Þ·ÿMá¬,צ¸\›în¾Ø!éŸgÓb›c£L]–w<+S\NÆûM–M8ÊÙ±GgÇ(“ã–‘c„gþ£çø8¼Ow‹Ãy·ƒ”·éˆpÛîz£'å3ñž<Î\Ùè05Pv9Κ᜙+ñ]Ê–Aö¼ÆŒ´¡5òUarL$/UÃŒ.à1tKÕµMÀIèŠä‡jÀè +ä{järBw:š*0¦¹ìÁ¾Ât(5rÈ¢O>¤ˆ^ûLúæZ\2KÑTX$ík¤ Fâô˜ÇÑÐ<œ>}ícy†fZlwê¡]w¤E´øã,þ0ËÁQ–~Že:rå±Hòœ¢ëä2¢Ã=9Ñ¥gEãù"Ä—’Ý(׫�{s~ô²ÀrâÄcN;nrœ1÷Lé'Vxb…'Vxb…Vpn¢šas$wŒ6Ò˜¨N6îRäË=Gn¾â]4ØžÞúÔé®/<#óíëïßsÝÇ“¿{ùÃÝÍ{:¼tÚÏÙË€&Фšd@|¤I©÷…Í¿„Øx€§¬§ h¦“OA‹ _NõcHØ÷¹NK^BÊèâXN×2Ç“u=1´¯èÌý¸¾°O-?€Ç׿„¡þpww}{óâäÀZŽ: +&¶¯^¸¼Çh:j=‹ñ|4ka:¬ª`î–%.¬f3uÇÙKÓGS;×ísr\ò‚;Ì-.—éžäM_ÈCþ͹Ͽa3†+?ôLÿ0Ûÿû’Ù•xÐtþ2¹*\á¡—u8w‰ûê+¹”„ý½.çåj6‡I!"‰]MѯfK¯vˆ|g…7úññ+ó²pªö‰ŽŒóañJ2Gçƒô¸øíWÄ>³çóOE)Ö«el©ãwŠ.v,ÍŽ§MöËà~àÝ.‹n:,Ù#?OGéáŒ4ü.ÚA¹þA_íCþž†Æ‡?GÖxÎŽ·?z?†ºâµ•é1Ô¯L¡®xmeúzu…‰>Íz›d½M±v ÖCùW»c«]éŽ!¥z¶ˆdÏ¥> 4• L.›Àåý�ÿî ©`›V@uSí"·€ôYßz;…x|>o¢ñ=§MHÞ…åóšy4:/ñùÉè{ˆþ0HßÃôC Þ%ÓË|Oc¨Þë÷Ÿ +Öj)l_+ŒÆ#ÕiáZˆŽùZf*GZZhSÇ Q:¦K>GWötâ~n-ê¹î�«xÁ˜YÑ$œv\[~’‡i*a=ª©�Øk*œ`"Ç–ÕÙæÿÇ™û¹~¸9mįÉè7oÜ�¢Ûi°-wǹ 5ö…½Ó¨×žNÖÚ‹ÙóGGn7^?Î_#¯ßD»g‘ôµÃÔ5;+'z–ײìœçäbºúç®,wÌòêɼ;KŸ½T§9î4C–¼&J…åXÍí¼.Ìç +|bY2¸*:–åa1£§Óöš¡~xvýJV8š¾¤°Ñ}ÕŒX.~¥¿áˆ»vïéáÛ·_‘ Q·ÄswüBOØ9nÑÏ4+{ }œØ¦7«^ízµìÕ¶Wë^í{µðÉÆ%ãÃÒ8n^WÔ$¸�<6(Ä0ûaå †_ñ®”ƈX;~¿Î¹P°&9N.EO\Ý‘™@÷–éx(ª‡ÉÂxTƱÜ^vOùäSï}$mOEëzß#+VrVû‰Y_Z¡gûƒ—’°‡Â +’®ÊÁä^Zá 盾‹•Ž•å9ÐC¾à™FÅåð¡Õ6*¼_ ï~snÈkÚ»§íîßýv:úJÊòi.-PÆmY\Ü + œœut»ûòwy»ûÒm2.�Zë6ZÅð¿Ûv›Žï·)Ž¦ÇVÞ=¥¶=¥¶=¥¶=¥¶}šžRÛžRÛ¾ü¿§Ô¶§Ô¶§$–ÿØI,O¬ðÄ +O¬ðÄ +÷¥¶O#[ÐîmŸÈ5“F_”™¤'óéŒgľ6INß ÙÝŽ›Ým4»{jÄ=ň7šÌÇt›^@ï²-ôx‹äÓ|X´Ïü§$œtiZP2-hç +UŒµ1» ç«Tì¦MaÌ(…1YC×ò/Ѫb²qÖ-ûäjSÚ=IaLԳو߱‹Ÿ‹b’Ò,¥]TïÕùÑ?—£O`Ÿû3æMÅÉÒhŽÿˆ¾¶½WÇÝ3 ×êT1̪$Z5«™ +ÿW?íÇn:9¼¿à“—L÷\>ð9qŒÃÀDຟþY˹àR‘ŸrÚ~á¾1Ýã¶ýê]cº/Åèp×àDŸÕ –Ô³—¤aÊ +\ZÏa8”ͼ²Œž¯³*…Š¥ê|´tæÆ™<‡Œ"÷Vy’¬¹U9…̹óéZñt/¥…,¹´ã®å‡bGo ’? +lvxP}Žµà-þHv¢óá榽ÏÑûPTÛqòqG/€¡ñÉÑûäè}rô>9zŸ½OŽÞ'Gï“£÷ÉÑûäÒyòî=±Â+<±Âýÿu2’Zju»Áß ·#ø»†{üÃmî"¨Ÿ NMýXP¯|è*Žúj£ýâŽ~—A¿]Oø¢_ÕQ‡ú‡ŸÅÇøc¼Àyƒ9ÃóÅÈž'FŽ*û÷ßý×yÁs½¼À÷�N 7^&×–ÏÖúŒ§€ö9[Eg-ãÌ%Qxµbìvï¯;ÌåÄ“é¦Óî_q3ª«ÝÕ´<z=/]²2.|ÚñŠ +¿üÇS`²zþÇ'û¨�õTLÇEÀ ¶So“ìrÅIX ˆZ}Õ(`VØNñÎÙ½0¶7SºñÒ ›ûI&ß +”¾<`�-|xÞÏ0\ÃÓ™@Kûûw:^U¢<O¾°é½¬PÝþˆèáv§ÍŽð¹Ì°Þ·L"<3Ü'¼$PY ÛÂù糂S�ŽåX÷k9ü¾»~‚¦ å&¶ÒMËîj¢k8]Áèú‹Öèêsº‡¹Äû6ð¶™îÙhtÇF„Ñ\ÑÙ¼[#ã½@zºPc¢;OØÝ£qAdF"³pEò²`E²Q‰¤,Qõ.UÞY‰ŠÓ}Ât á}W•nÏ*‘½¿¸ý—BØãiþPÅêüÎûzž»KÉy§ºïq,nüŠÃ•Ó×ÝI1x£âô‘)î¹âã·¼N¹æu¼‡Â]ôú±{^'¹{Bœr¶$È(娧`é¾:@¢—÷ÑἌÏðé‘Š0:7‚'Föý¾'Vxb…'Vxbc…¯¯‹Õ°`t{@Ú¼}¬2Ÿ¦ØÊ'2—´Õפ.}}e¯‡Ëñeý’RJ÷Änî]W—Ó&†ã×–FpúÏÇÖÖ…]ö¼h)¥mø\nöé+ìX9¥Ã0…h&nm(«äb¿ãµfí ¬Ò•ÜP+p²è®FvǨ®Är×aòYEÇj3ù[Êã&m(j _H#"=.¢‡¦{¦fjÕ&œì&1.¤„[‰ZÄéÊn]žéÀ,—pÒ¸a”+—ÑÖ,t&y"…y•âMçr»Õ¹•nÚ£BÆk m[Ê7Qõ¦D7V +ά Ù¡í«ìºî¼ +”–ÆÑgÊÇŠ8Æ“¶äK8e’"qêZ¼oÜùÉÐÄ.µü)xJõÒËð«¼ižìocf�ÿ“T…òßî¥täyó{_M*1&Wó)Mm\Äxª�õÕÎ^oÜOŸçì=^>ê+néuõƒ.¦^Iʒ϶wôÞÐ;”²’RÓænÞ~3¯/+5–Ú”–‹Kí¦ƒúRc…©hŽåù ÈÔXfJ +MM®ÒTœÊÃUVÇjO}ªþÔ}5¨²¯è0¤I~¬•«Fu¼pÂt¤(U¿6êx]ª^™êHmªi(OåT»LÊÕ¨:z¥<Ó‘RUþf)á½Ï…«j\¼êå4,)#¾Ú„³A«’¸æÔæpOjáC<L/\ËQ½À_x1ÊþS&ÜýyHŠ®ç4¦¥-=-í>D>䈹A‚¹—µøT¼ó“ÑÎÏ œ~2tz¢OÅ`PmÖÐÄáëWâyØÿØÌ8]éúMJ¦6ã+‚ŽóêÃQý[U(>`ëp4ƒ6Ä×Í +O–¼µ½÷øòK’CõêËmn(ÛË=É >Ô'ƒÒ¦'Y îâ:/3ißg¹\Ç`ÎuGt‡ÄÅ=iŽ)³Ó±G¦ïƒ÷&;æ£ÉŽmr™k=ŒxüV¾m’£Ø„c.ŸOí<~v·5¿S†>IFß8zfŠf Ã}ð.™ï`à4øiÈé;–Õ7äóiú'¼ùرª¡AŽæ¸Ö:—ŠC’Ò*ÙÜœ”ðÆ=>fsAwÀâ °•î~½$j% Ï +¿¤Ó4‰Êeá9š+:Cƒ'hLÀ”ª�,[€|»‰Øð +Ô¶Hþ%ï\B×;–ÜJ<s_¤dZÇž>ªd·ûãg÷iØÓ§ò)Ž§SÐàwhxóýC;bA|zxÓ§ÓEŽ gî ¤O púRéSÛ>'æpx®Ê8³·nÅBx¼ËÑË~̪1‚™C£Æk·õÔ %ßX@1¤Û[ÈTr(¡ ßYR‚Y:!·%×?Mˆ'¬’tT9~,„Û°z-·UUÕñ±/¬Eúƒ þÄ‹0äé“4ºp[ðPŽ+lR®µŸ^÷õ=ö™ø‡Ê«+ž¤(ºjÚ\ +½ëÛ~HA<hê=kâçåÛâ7êôr R÷sª¬¡_ŠWpÏgŠz/µ‡IU.Zç¨\û"Þ¾h=u÷Ú¾žþ%y‰uz̬D¯·û>ú^ú~úžú¾úÞ^ùƒþè£ëõÐoßsßwê}ï¡Rqì㦗›~ž9®HIžV<·ÌÕEvRqsayï3ôú3Ζ–0ŸÆXƒ*KJ2«„V +Ù(Ïê¡TdLcý8ªÒv\N?Õƒ$`Ç$ @¿Ð<¿tz7ѹß/ÜQŠ°‘€GNüíî·èï?Y4ZóÞY òx²‹‚¾¾GŸóíÃ=ÀGš·ŽŠ;à¶9ä–½4 +ç!Ž¤I}¦<úkæhη¿øëÓ1¹vøýQ#a‘—en‘. †Å8ó²¬z)uÕÛ„?ºÄ×G‚Êx»sŸ +*K«‡ÉŠ£î8‚üœ”`Nþ¬|àÏJ+Ý9›è㉄Ÿ™šøyè(õ9ù\÷sòXþ=£óî>o´WÍs©üC&-¾;‘ð—7µÓu®\<”GÖÊ|¸*ïoñ 5’Žú»ÓQw÷¨µ¤·²†a}Msl^§¡Xy3Ú«Òþž¤½8¾÷rO’Þ’Ä'žÞp‘vÞË4Òη%egTS¾W3ôÆ$½5ér² Í•]ŸÄ +Ábó[—ÃIžlZ;ÿY&þKLþ³?«ý½Z8¿ ÏnxÀ®ŸÄbéÏüò\ºgßÓô‘=ýíu‡û²ÒöN_êºRÏGÛzÞMCM¯+µ^A,EÍ•ivЙëâW§MZ\rÏ0;†scv䶻¤Íœs¦ 1R‡\xÑUÆ9×Ê8ó¦2ι¿çÄ2N+ãäM)ó e.“É&É&Ã3¨êíûœD²{…ÝäÊ“£¼‹NÞ©ÄÛIiòK–{÷ýwhÕ©–ê£N^WÎÁOv™ZÜ粉Ž:ëâtV¯µ +toÂän©“?ž¶è‹$ôœE`œiL[¼§¬',vÖáL*ô—_ ópa¥ŠGã„{È®¬ÓÈë½wp¶97—p?«¼Ãëè¬2z…ñBªo¯•ù”ò9L9žMÎÀ 8`³Êd¢¢ô8ÛGgú?úqö¿0ÂÃR^Û L¶±i³“ùÜ ñê†õ`ÛÍÛëýà™l÷ê{Wß®Â'¶+^[âÑR‹£_6à.Ø”¹3/ÆŒŸi§!ÇbȬØdTø»½ÆŠ!qb2&Æ{¼Æ‰!1bHˆò ¦1‚£KäQSpØjÒDMʼn².=!g’œœ+I ¹t™9Gìé9ì’“t8MGRu¦![G3vå„áÀèx\t<, +’äéÔñÿþ§Ž-Aâ¸ç`œå¯žçÉe>|¦a®§Ï+ +÷‘¹ÞÌöôUaµÌ÷ôÙµOÎøÆ]×ÌÖšŠaÎäÊ,é!†¸îÍ4ùZµ“ãEA±&è}ÖåCÿs'íí=ùðZÚ{Ÿé�äïZúäëÃ÷ üØ+Çž{zø9Í?®�«ú©’¨úÒGlŒmA¢2¤Ûï$§þÒ+J¬&M 'ES²^´’ù9^vì.:¶ŒùÅ,s¾í˜LëÉìi½êXLd2‡{¶¼^x,órØ£QÆʹÙ$—(1ö(:H}‹dÍòEÚfÐÝFŒ4SèÛ·d®Ìä(ˆr„L6ZV2\eÃ\Xm¯=*mRæ ͘HÛ]‘_Í®Ü>÷gEÊÕÔïÞ&mœ"u¾¸ðÛ…Ù“F$>ô +Ä#qÖq¯è¼CO%¬2Açt”Á….&‹ì4qçHõÄ‹%#M£Qs8£ÆÕÜæN§ñù™c'Ó´‚n“Ô(L‹ +kœÔÒ³ºWfêõkò/ÉÃ¥ñ‚¼…SØ&;}¶#ëÏž-G|ÇŽu_9E§£ÀŸ:C?A÷ŠvÁÅ}W–}Þåe÷^i6}â^³£÷œ}ì9¼ícwŸ}ÆhÓ‘š¿ŸSøÞgº·Lð§žzü™îûÅ=e†éí@%Ž^û§(ÔÖS#o±ˆ¶w– ÿ…WmßÙ6ZhÓç\¶ýù×m_äéÈuÛpáöW^¹½-ÐdŸ>Yž¥×ç° +OßÿN߶t,5uØ®"…U0aåc¤ŠÕÓ¬z<–MNõàpýÕlr4ÒÐ#×ò}ZËÿÌÿºóHÕD¾ÜZ¹O]UwÍF¿’#»™Ž›ÓÕ@ÅF‘t{G/©tò=zÕƒ#‡ÇÞëªøÔ‰÷é NÁ‘Š®€P°Â³ªŠèª´pa‹‰#|7o 1H ° +ÖÒ9ýJüîóp$©R‰.쉧0΄‰ò\8”³´WrÌ3¡®œ{žTÎݦ݃Nµ8…;MD,$×9íR—t!ìL{_HËWÑîä +Ú+Ú$#ÉèB›éŽœ{ åd¾H`ýÏí·ç½ïS7)|ü^èÃËžœüø GNúgºW ¾ï¿Ë{q8ËaDý—ÑýœmòËRì?c“œ/ÿ\ÎçJÕ(’zRXŽSWPL¶ûûKŠñ€|9ÖDó9™ÎiPÇÈ£äq»‰˜‡+wO8fµ?XÀcKÑùûˆ™ +7O|~“߉™å%ðîÞŸzt›:^è@Iæ|ÃÃÑmû«QÈÝëJ *-Äõ‡VÓÌiö3ØöQÍïí¥Ë(øž‡ûÔ•ÇAø ½£S;ê—ç‹>ÝñtGÄÓOwD<ÝñtGÄ#©¾ÿ{žîˆxº#â?½—îéb€'Vxb…'VøK]ü¥-·§á¿ôÝ¿šc¿=’Ù6G2WWöÛ×^,îéI¶Ûâ{i›Ò2 y-þWÇê‰kfË&ÏåPÍïGúÁ‡+R€8a¥¤†‹Å‡Ëâ3‘⮉zùo?oùꢧd/ nN=ƒU¾³r!‹yæÙÕ\È?ÏgÖXÎEk½Åà“¸\Ù˜0ÐðQ*M(”f®¡ñs9` GîK$øD¢À§rãþŸÿß„ñY¥È="qIÞN¯Ó(%kD„m“U©(Sa¦âìbp6“iq|—‰‰*Þ¶—w`+¹áâ:çB®»ÚB–;f霧]å + t¬ò¨Ø)ÃÒø’ÛºânDòOÑa!:DUBÊ1i÷5ï>L-ÏÑÆò’…æÓGOt‹'àÞÞzf:⺺§v÷§+wK¶X)vý4I’²‹Æÿ#ŽèmÀʇ¯æ”DŸÐÞò¸Øó˜%šª©\\ql/é\å£D> +P$°Êœ÷pœ0Šð®+<—Ü®=¥Ó,”`“(å†%5àÇXÑ^«VÕS`væUÄòƒÄݱîGÞgˆ»ûÕËéÓú¥Þ~¾9W2ÖlÝVm=–‘´ß +·®›c#iÈNÚæ'mê·NîˆH»8ZÁ•£[z}RÛŶ‘.VYAî±.V“]´kÒp—DñXeî+±â¼x‹y±"-¦VJ¯ìÛëÔ÷Úìå…où©W:Ô@NÓ"i ¶ŽËå¯ÅÀ¥æ\W'ŬPÚYÒ¼pô¶_ž `´ë¾Mêp}lÇ�Àw¿~}÷Û·/ïÞ¿¼ûá›oÜFâ1ýú þ&òo~{ýþýÍÛ;Øa¾ý—×ooÞìî~xuó6— àdYNSª«üOJ9møoþ;’ο£?ÿáÏð×úQê©žüÃOôÏÿ?þ�ÿ|’N~uòÿs>yÁoüþÚ~àÖÁä#'Ï�¶ùð�ÓwŸÁ‡°;úÜohBZ.¥ò±‘Khå@uf@ˆT]kf¾Àê°R,r¢Ó?\ãà«mÍ'ùÌÔÄÿMߤ߶#yíÙ!&}ÿ+žù‡}F®•¾ °ØN—¶†áõc0}÷Ù|úzH•a +é; ++Ëil5ïƒé»ÏŽàÓïhŸô}O±NS«‹¨Ís;ò_ÞbÓ¯Ðk¥øiQ›~ëÄÍÁ“~€†U“¾{ë@ž²J…c0Ï #6ýõ¸DçôÖÁø•6¼~æùa‹o ÖfNæ'@ß?ó3°Å§ßÁÂK¤9V:A¤•ø`jCåò/’A åìPlÓ´àæ“ßññ¤ +2®Ø0,YŠ6“¦OŽÔµ3)ÿ¸~OþaÇžŽ“?{ÞìÜql¢Ž-Ÿ#«tƒ AdqŸÓ\%)"gîãiâ’¼h#PÇ`šØ*¡ÑmyèöžÙVÜæ»{Œ'¹s%Ré,j)(õdÃq†H<è/÷mà<‘Ç8Béqæ¥Á_ïX&+•85Ç–ùZ�î Os72›SÈ +´aòØËc’Ðä�[‚Gù‰‹·’Õ³`…¹JB“ŒG`~u“ÔšgìpÁ×gy“Gd˜‚ä½g˜e~7RÜv?™Ç¤ß!{dOà‚Zb*s âFþQ®J@Émâ®á¹oÞ:óz:”˜˜ïïŸön»û{ÀããÈc<¦KàWþ�ÿ?Û½}ùòùû—¯ï®ßþtò�ý_ðø_;ùÙÏOþáï§=+’ yŠùUšèÊ¿9ûáÝŠÇ<aþù„j%)•àTÊã +%©“ߤe]Oó X+ÖH]€Rß�?¦Sô;ð³ MBeÑa8³×ï&T(‘U*W+«+ðí#V03qíKùÄÝ/°(w;Ôé )ìpZ€Òš‚ëéà.§`I7"|`¹ÖvœÞµçø~*§3Î+¼Üšoø4œa”tÞÞpŽÛ†BZµ0†ä>Ž†{nñ½ˆ*#º˜Æ¶x<‡) *÷ؙ盞b\Ü8*iûÓføÖÖ“JÚþi©j}ðô×ÞLÔÅôýô‡IWŘ©a,ý)N'è €OÂÀòŸÍð+˜é§ëãÉY7Äóèû@QÒøÙF‚ÖŒp@r¸#y,Î'ìö*üèŠûªeH’Ÿp³´.‰6Ô“±ÃÐr]+²ƒ#QÎYÚ¢ÍÀ™èèÇqBB7ò*0Óø}Ýn§aNË 3%·ÅÒŒ§ks[`-\‚„šÂ*àm“|,Ïá„.i•ñ–:ÎïgØ'ç•;°£â5¼§ËR·]‰`èB-%+mÒ*°‹I:J)Ì�†ÞVOt&Á‚^…¼¹†(À¸,ÚYL¢e¼ŽJ0ÜÜÂ,XÓ\AXuzI‰5¹Úç mkÓÀJW`[VíÁšøýñ³6Ec@€hò3”4íÀ<CƒRt®Ê”Y‘oJŠÏ-Šå4…Y8ô+¢ø +R"êÀ*ò>ã0g²EEÐRV`JYM;ÖÀ–QÎfã1$ÐìŠðˆZF +Ì”9@`Éû8»H_[b"0j§*2¾¼/Ì*«½sÎʲ‹¾_¿L²�žu]AÁ/êZ‰ç˜ÏL|Š«�×TªÐz Å�Gê,M¤Ø +ûMò¹EEm4êh…Ú˜'Koã¼*ÞŠû‚¬æy;Þ²ÎÒª§È@Ì‚—Ê@X+yQ ïŠÅÚel,^Á‹Ò,ICn« H8'Œ"Ç*À£®ò m¿Æh±ï99¢10š$™-ÀPé�K;Ãf Ý—µHÚ¬¼dáø1õ™L2Þ†‡u"@6PÛ†{fnÊŒ<ÚAŠGB.2�Æ0‘ôí(Ö<+ÅQ¸pºÆŠCТ +ا¨i‚Ñ®Òïe`Ê*;ZÓµàe–µOAáâ´¸ÌÙPyé¬,þ©;‹òû–Yætj3‚Œ³¨&›“.Ý Mk)=¨ ‘AŒ¶á�3°äZ•°$ç)÷ÀH€^¶`‡'€@M%×¢Z“nºë¢\Ô +³:cmÌE�ìr’D"K[•Ø¸)‚ýÒ¶ÌÜ Öx²Ý&°œ‚–` ¡k,̸ ~å½Pú©ÄÛ%‚rPf©ë²Û6%�ÇVt%G1�l}½ˆìk°¸ãÚ\ŸÁŠ^c]œËµmÐõ‚–“ÿ!m+ìùºÓ^�Évd]o(iø[°Y‚tT´ö~Fb»Oó;h-K5mŽºæañ Š4£ùL‘A•‡€±VùTŒ‰õ®™®Tk*_ð[�•©…„Ì¢Yˆ(d`²–¦=IeçéšK`š‡ýK”°Êhsj¢ÁâçZdËÇÐF k1¼Õ4–…ã]”ey¿`0-ZÕ#.À?ª-¢’¸Où+6m[çdòAHaJ•å‚,ojÛâªLWJ’¶¡¨2·Î¬)#‚ šFóHÎd»Z"‹ŸÁ ·\²¢P]…‰l¶Ïô‡(^PVe1Æ<3AÍ-Êöi ‹�tJɾ”¶�^kvc`MJš,2v^uûóÌÞ‡E¬”Ám‘}k_RÐ^ÕhhŸ›ŒRP× ÿD€°·+‚Ya,Ùtw+ƒéÆSǶ†%:"2°ò„›µ¢%÷85жªj�Óœ˜`ûQejY AYTNdÒ-Øâ"À’€6%Ý©0oC€L_æ¤Ö"m—°íÖÜ8¯ªò¯RjBVs ¸FU窡ž†¤ô^Qßd�ÎDƒ€×ðȺaÝTÔç(b%xÐOE[7e¥€A@óV·W°JMÀœT¦•0ë,À‚¯ºÙäµÚV̸&Ú ] x›—! E…‡‹o¢ ÌXF±¬=�kZÌʤ°™R m`-%¥ì¬DÄ‘ëÂ#Ò0ê +)y5¬MWHI¬€~4�.³Öd·0°«<°CˆðA°(ЃJô^ôG/<µK4`¬AA(€PÛ0%ØÂàUrÐ6ÆÀšÔi,VôýmP“1ÌÒyØ´Tj,öàݹ)ÕYw�/«*ÄÌIïçÂìŽÀ ˸šÜÄ>™ŒµÎC–¢^p�Y5éXíý²ªÔXÅM‚²Ž>‘r#ŒÙD5"pYtR”sQñ€-mO"íV¬ArEµû™‚#-úˈÛZõT`àÌ+†Z*iŠ²¦¯#f°h„1ÈÆ Eši*‹!H¦à&ñz˜¶yWáâÈ“:NCtRzE¡¡x‰Î²ê…6¸k“‹5Ùhu«B0Úê4¸S>u末�eÅ)'1‚d627‹‚¶ŸÔTF&aEØlÅÕª*Ú’ ÙæUà…¡ú±Ê/l²tÉ +Ý@ à(½-æ(êk`‹râBìï7ÝR +Ê[xë,l_8¤%“ ÁEë"k,‚½ìf yØd£²…‡‚¦»".m.Ig1 +Ï0jK°X’!ˆÅ¶UÞ×&.GœÙ’y+§á.Áï¯ vô}UhAͺ£Ð1°á¾/_Zì}<Ë(ZÙ LAk‘^¡•^t[Ï)ÌúrR晀ÁÕ݃·ZR2¢rldW*~Öœ?ô +£E î(Mö)š¤20³±‹�½–àÊ^S:@ü¦ ÌM>ª¹î7J7n«Š šSÈX$ f»)é6PTGíú6kQi‚™ªÖÕO×%d׃Ř>i›çªÚF`… ‹öÏ¡‚:+ϲӃ€x5è(wpUµÖ\Tã +°¬ª\Å$½ ëcáY—&@ñdÊa† ÌÑ–]VÀRÚƒÈë€d)D¥ˆï&»*ËŠgN¬w’”b%€aU—XO=M¦Sñ&34²l®!òD‹†Êš\ˆt[ã9F€¾wÓ§ƒ†7BÔíÊ<hÛ={YŒ +�†¨jPÿXÛg +6n&21,¢ªkV¼yÖ¨BFÛNñvÍS7ìCQ£‚ö\ù”9iKV!*qÅ븶_51ͨ¶ SÑŽšk@+LõlU}Ø]J« !ƒTU‡B]YQG`L¶µÉœpªødÝm¬{@»€)'m+¡ €¾ïT˜öƲúu*X›ºƒ›(4퀨!Xæ¶áÐÌ1s‘ËͺTXW3Üœ›ú´u¾²*ä¸D;J�XgÓýЪÑ÷‹m"®Úb»0íò¥¨ +¹©Þ¡»ëÚ©Ä{jjÉ÷=×:»šžïHØÝĆú1êâ(@aǶ}˜L;Šgô9m”DJ¨ÝÀîhÈ‘\Û\”¹U'EpéìÝš¬û'‚q‰t«$,…&zæÔ±D`Ý^‰eÙ�ÌZC¨^G»€â¤ »F;‹ +¬Q{~Ö„#7Á¬ SF¨Uî°ÿ @ê®ë¦mXÕQåY_oæ 0º6uч™è¤Ì&„`ÖOXÚ\©º¾ôÆ0ΪÓÓ&¿ˆF ີ;ãÂJ;9m (Q02T£°î@ê›Ä–E!UˆÀjÞ´vùuØãl[k¾,jÃ& +x0,êÉ°Å…Póàé\÷¦4(V‡#Úšf¿TUFœÂ*üÄæ±FU§G`7—»Î`²…°%kÛx^F‘/žW‰qSÛ+›Œ�Ìu±£)ÒÚÌc":FÖîí[Ïê8ƒ3Ø[pîºAcz#PæÄ«�`¡VÅZtu#xÕ¦*8g“¦ïÕL‹ßeA.MñÊž“Š’0Kè€Ù–ÃŒ�Ã,fÜ&1-š8œëBÌ”8¦”æÈê³Ø¢ÝÇ FE,Êä!a<�Õç+ú#ÀL6U¯Ôð«ÆàÂÌÎhºÑâJaÖÌA;¢Œ=š:½‹ø™¢Éoe‰diQ¼µ(ƒ¡»ZË(Χˆ¦BRTƒ—XTCTo@'£¨¬ÐFTö’2xÎú~EË«@ˆšJD`÷nl FjA€¤Õ‰àQ›Á¬i;*¦YãuضUÒìÕÿ—fvV½›¾N³<�lª¨GLô•KÖ3kxÒ-ÒÆa61VÅ;/êúïžû$KˆÁœM,Ÿ+žS™†*€(šÌ¯µ¬èø¿¸÷uìkT5,q¨…ÎfܦÞ+Šçˆ)ŸõõlòLŒÈ4s:,õj¥E÷TZ Ú´k*»á‡‚é–qÕï7s*áDšº‡„m�ƨ=í›"u šqËâÛÎQW—XUiq² ™ +“Ð8Uý6Ά@YP#EØnYtiFÝî{mɧBÕïKü ùµÏ�˜›A…´*ݘÇ3¨}e`X´[ä:eAƒžÄñY{ ~2çÀCŽ„KG°Ô¦»¢DË�Xêl‚DßeE;Ðy ¨pæ9xƒÀ¾ºÅ`ŽªtÛ×\Íí±ˆ?)E áDz‚Ve¶`–f"g§JŒYB€jŸt ¥«½ÆÎ�“°Jɱ hÒ5áê,!A%,KQžpèèŸêZ#éÇ&oJ¼IõYÓ·¦zG‘øû°:»’׺Ofx=FýD™ õ¨`Ÿ‚rs 8©¤GqðL ]K×èGÂÔŒ,£RCö”Að¢9UüZLJ=Iƒò$Ók³÷‘Kí– ”†¤s§2Û®º×$qÚBKàP¢Í¤x[)º/4Õ› 5%e»Èœh0è=ˆ×v»Å\õ�a«KrfRÂ�¥·XÇ(½RF¦ + +€+§òáÈЮb`Yú†—&þ|ߢˆÖ€œÜÀºe¢>yúVÜhy MËbÀ¦ý*NMÓœ�ÆU']B[Ô0ÊDÿ~(:®*.y�¦¨[‹ZVˆÔ\¼I-€v¦Óà"mª$Rä„Ù„‚cp@`,£þI�võ™SJ‘”‹Ýµô8›½h`³±‹·%)‡ú;UÝ3&Žñž§ýœ¡%žDÛ^ mUOy§�£eè‘ôb`Š–qÐY¼¢‡Re~ Š�¯)–ÙU‰ –ô’×>üþª>!?c«SqÈÛÊ@ñ«,c®r\LAH˜\§¡ä9 P‚aØ f;¶µ)#Ÿ¤|,ë*oºéaZÝMBLRIêIõ·êôÚ—”—nX(©î;‹ ·t/ï¬[ÉÑŶ%mÜØvQ?³úÏñSæÕ' #hΙª -©¹ôèÊv'Âu‹µÎ˜?mÚ[\”Þ-s§°å$/R6°jï§ÅÞo¼L>“QÃc‰ÒTo°hEjšþCÖBÔ¶1é&&i'S1ÛcyˆvÑ–œòÏœ‹Jj:I `I%‰’¬gCf/lž5¶$Ñž¾”gMË¥mI0⩦Y7µ«cS;TT´ŠTó’³I¯+MtÇχæ´ùöªÛù,KAµAMÑDZã‹z4Û˜š:këc +æLP±M«æ¤áø{ž9|É+@òÍ ,äk‘ñYv¬a ÐÖJOMÉ|Ø•ó¢îyÝíXªµ˜÷ÁKßy82•Ñwd4\éZtþ‚iÉyáó)ƒŒÏ‹ž$ñháXyY VÍ–£¶êò.âúÉX€;›µ-ÀÐ"H™<[€aÍF.ÿˆš°µIÃ.…°_«%K~öjUŸ¦š*�”]z‘s:Q—žú…z +ƒ¸ÿ˜4…¡K¡¼0å$"3ë|õ<1ÍV‰é%%0˜¯lÑû•Eµ¬Õ|ÈhA™]h)RÐ6-M;¶²ÆÀfÑAcdÐë³Öv3€ömš, :Ÿ}å½$G·ët(€%‰àÆÊtFSö¸uQÝ%–Í%†VåC Ia[ÎÑ +Ý^E`3WŠ$EУ¹Y’V°·kÛˆr—yÁIh[²ú®–¢ï‹·qé)\4ÌO¡^~?q{pzähi£=[ÚB–‘у˜yãËf9,–‚˜³æçh¬ßG§ž2A”G.¼V¥ +€©h¦D÷C¸Ç£µaŽº +–þvMšï2ëVšÑõgùÈâpÀ÷‹.CµÁ±¥-—hºyö$ (ÞaªÓ©â"®"ïZ>²,ï +kÒbÑê¹Ã¦µjš¶ÛàÆ– 4¯Šµ§.k€EÇE~EÛ§f•Ñ•ƒ~Ü-QÉ°eÒìﵩî“1[s|‹(2FXôì %¥3PCÎ’>ÎV;ë$½}&àžyF'ŸØ8m‘Û²M™‘ÉL…îÒ°a„\¿†þ¤gî|HŽ[Jò**wF©åÐK6SF½+ëÐ’1-Šw%Y´¤ºŒ¿z2)‹g37Ë×^OU¢’'ÏÎg¤µ£µÜ)MÇÍ«sªiŠmÆì{=MBÙËŠ@$5¥v׸!£žÅà®JV‚œVQš#P‰¸ZTÕd!:.õYÅ:¿šp¹ª«; ÐÊÎe–ŶÖß·Ó$¼îÈU:0WwG`ߘ¡‹U³ÛIef\4…œ¼Ê¡zN1wíhÅ@J>øX?3ÆÇQx1Ì:Ý®xJ?¦y�ŒAχÑq ‘)2Kèo/sIŽµ3(}*’Ü2bѳ=cÛÚA²iXtÝR§)Ž«QË%v™¢N·îÀhûÚ1€ÔeÖsƒÁ<f$SpSûLÀA’y×.=и;³ï”]gʺ #ÁTÒ%ËÍ€´E2°«<Ó¥H¦ö3Ýåøc5ó“6V=»¡~T�.&8(4§ŠŒ£C +¦º²ú¿ˆ€e`nJ[ÊbTm07=.¥ >h},† u[»–Uûª(´4³Ê¿P¢ä$©ª«Ñð +·ðô¨ƒ¤gp¯œëxûÊÓØZZueBÏ‚ì•O¨ÃBi¬†C7ˆ¤•ÁÀDÃÂ#ç¢sTÖÛÌÅ#™@˜°6sÅÐádK º¾*„ª èÒ“Ô@¡¡zÔ‚}LCÐ'8ëñ4 +Ï|ÃNŬr²[ ×hT¼’g‹ÛC>Ò¬btØ.EÇe‰Oèò¯Oí®«hçÐpS¯ê/¦\ +ÁªAKŒ ˆâQÙÎD |)%b³€Ÿ1¬œØjÁA9øPYSç åj'•C¨ßp„”Ó†�˜5× c$S†Õ?MgÑ\*;74Ê+¦(ŽBr,1 ¼¦¨DŠ„®¢5ßÆ”³Ò‘B¯ßPô¹3jz§žu‰$Œ�X3—ð\oÄ”£�UC‘•/EèÕÅ:%ÇÆ2¦,ÚØ“ ¡Œ•r4_AÏÕTŽ[>0 ]Æ+1|®‚WíÄÛ´=æ„9¢Ô‰×ðJÚèë¦hP|±Cjµ8�ª2˜Z’qV7.¦‹7>`†\6ˆ@p]eÆ4ÎÐ,Ö,â }åœë Á2+ Q¡„½$Ah5à r#XÍ6A«äºõÄŸÁœŒ»TÎQŽ‘r=îÅŠ²Eg‘²ÞA±CéŤ=�ûÆ¢ÜAYqºî‚¥šEÝVÓB`HhÈ ]èOÐu`ZCè‡D*çf<p’“×Å�(MådÑhÔ«‹ 0µšÜ*¥ô�âÒKT²¤F³Áßï)ó«mΕ‹70$„ +Œ`|CéÚÀ¤ÆC*gIÜèâX$Ü…Ý–´>9±.ÀZ«®Z;=ÓóÐ+§F}CÙíêÁí¼‰I÷rX¥²!Ê +È]3ùc è'Ô0m +³¥¿!Þ¬xë"§7²aªœçÉÀu÷ˆ²•üüÌ@ØX:- ÓìUî,ÉœÖ~V%òq&—$Ø๚Þ+Û«–Ù-ûdÇ‚ô 2ì ¢QãQ¥¢L”«æÒÒ &ÙX‚Ž@ô\wª:'Å‚¾Û¦m5A¶#‚ÀPÊF³›ƒ~¶Ï[IÊfí§“fËüý¸¦¨à¥H7!˜›euU oâÉ®¬;°f{ÏÍŠ”ÔÓRú!°™# ª.ð)Ç4¨uû†NÝ©TMן«%Ò»U'5«®JCÿ†ÏüJÝÂÊŸ–àRì$<—sP�¦H�àÂ¥Xé’Ö2>äq!õšÔ¨r¤’³Ò0à& õäpoåÖŠ Ì&â¤@G³3WUY¥aQ -š3£e§1ö«f-Ñ”µØ$` í-vð‚ëXTÞì‹Äf©h†d‡Ð`¹vÀšõƒUèȦá9`À@qúªÅV¦³õ c9(í˜%Nl0Ž(8Ì:V£#ƒˆÑþÖuÑ>Hô@+]HIJq#0«1Tf I÷e)8¥qä”D±c�.[ÄTåÚ:ê˜*⊥:<£Ú&¡X æ"¨’¹AÕ@âT©äj-‰Œ¸L1UýXÕ¡¿ÃrDT§(8çAR$IRò¸ý\Ô)Ñ’ž@'ù#-£‚è‰2.‹šùÅ*%…5ˆ¨+ú°ÜµŒ© –BôVÁÙNŒH†:ù-9Yº†À¬‰1³YAOÄV·´ùoCOäB`ÑdÂÙR4²W§ÐiQtkê“lMäÍthAÍêÕ%pÕpŒu"¸üˆ æšsg•¤‡xŸÉgG +òLÞ +¸Z:oÍ’©YS‡è[Eºs زSõÅt4|¥yn‡¸°ž‰Q¦y)Ú3Ñb‚eA¢ÀÒyc÷êÌ•a9®egñ80¥a bâ·VMÊÛ|_:†I«&ôÒÜ*xÑŽÕYsBÒˆ©÷RÕ,FŽ˜ªÅß#™fØV>ê!¹=IS6Ÿ×~ùt•,B—PÕ ðl› (J3&Ñäž‘¬:z,Y%k†RæC’ųjfN³ÓVeµ°ÿØ+a;ò'ª‡™dÜ€s³£¨pè1Á^Z<ÏŽ#ìs±Â^u¨[«hïç8±å iÉ„¢nËàÂ"Ú¢åYTÊÙZÕpÞa¤È[kî\)æ· +nV;Ï*<Sðªž;úéÙq$Ϩ&àÃ*"ø¤|}5@‘þD 1‘•3~6€ÁÆd·Ê3}ÿâ^½£þ`@¼ñ„/]N±Ì‘j¾ÂŒ*òºÔHÔØVTЧP¾+�’^WR4fɯ¾½®-$ÌfÔó¤…7¨Þ„ÔCÂ4\ÿ¨¡¢=þ\”Œ5±ÝšdŽ�Š«• ¢"hì tð¢õŒ° +뢺ù0µP^¬Ml¼«p™º¤þ"®ÃÂJ +‹¼%³üÕ~Í3{ý’d~“b&m¹K/…áuŽX-O”<—šDx‚îàÊ=”ø»—ÄÁ ÈgžU\RÖî í`ÎAåæRyØZ£ˆ3åÁ¯Œ—ª]¯ç²ÒñP-I*šDÏè!#óUÁÏ6àÊFŒôy¡YÃâ%%iݲ5“ŒVàsÌ7“¶äÚ‚¾#1ºÃê€ÒUâ@C^ÇŽ àÂÓx6%1>†âhÛ/„éüÀΙ\Ë2Šò¹D.á·Â*T'ÿ-ˆë‘¡šfd·Sй@ºÿ¼°þ+Ù8Å‹ã l}.+ +ÔSbS9R óÎ5+HC6~Ê«¶$µf>‡ª^ÉP«‰À$&s‘³'\¤‹gYZ‹taEˆ66“Ù¡Ë'IUK,q˜ÑÛŠÃå0-•H¬”a†¤!—Þs)É‹Š˜·¯ëˆÛò9³' {£Õ+[›Ù\‹Ú.ìðe3f^¤X¨2¬²~TË?œ2\¦åd÷FænŽU8ÌÁÛ¼ÖT¬Œ"Ž ~S®(Åeø\JïR ·mx0››ŽµµŒ ƒ3;;¬X ª¤M¨òLzëÛöáv¬‡4@6ý³ÿçç'gß¾ûòŸ}ûãõ››óW7TkúÇßÿôææç'ÿßÛè——Ü„ªVÏ8˜E6cJ"j¸¥P}qP•ÑâÄD:º:Ì*÷d‹Zqã!‡%z6Û_¼Hâ +ÙÝ"(€ïÙ©D´Eå;uö4o¤·mx¦0–i‡é÷uòœYßb®^QR: ÀçÓÐY߶¶c=¤�Njå˜ó¬QFD¬ +c"<˸×ã¯`Õ* œ¸ŒºÑVòèf‰8ÝnÀRÀ„û«û÷ÂçðxlËÂITâΉýe½mä=ò69¬(=`œ%›ÔcådÂÐ*u¥·¾mWÇzH¡.,ªÄs¦F7tbX/—À‹aæûrP”©H|ÉQT^ÁLJÀíÜP¡Q—‘VŠ¥‰Õº§…c{.«’Ùig-\’·áP: |^I«àÂÅפ@.r"ßW ’VºêÛöA9¬Ò‚!@U©ÁV tM*c+ݘ#]!ˆ†Ü倷$ ù³W\É;U…or’šÛº²ÙÄýëVµ–SE*5Tâ†2DZ-j²lVät©ÂP H`-q¥ +TâJg}Û>,‡uK¦mAm˜ä'ž~…#©Üîß”VŒYß”@ŸéZ²:iÁ¨Ä«ÞnÀ«Äp¹”p¡°ì,•Pxh…É*ð¹ÔÐ…ŽÔM[4áBÜ`í@éNŽ‚Ÿ¯±f>Š8ö@€J\íkÛÇå°Ð@¨›ÐyNÌyå{2*™U3H‹Êû–»W¬°Ø5‚*HfÇÝnÀR›»*uF‘ç(ÀN6U¨„M5.›¶M«÷y¬(=0®paÿãˆ#H&’´TÂjo]Û>.‡õ€LXДf6XaâˆÄ êÊ×´%fOwHµ»Sd'-äæ¥ê„³îb¬J(ºæÓ*†e¼ó¨bQc„€JW1Ü}[L‰Q#Ç°z õ@(¸ð Òl!×*Yµ³®mVGz@¡*nötÓð=yfØë¢P5Èê¯è"X芽-G$QÖï4+ÃïÀU²ä XÙ½@®VÖÅ«M€jp>CäÛ¢A?¯¬(=°i10grX•‡0L‰ª}í-ýX å¨k´©´Øgò¾…hÁj³¿~¨_ÅÞ£lIŠ/'¼Ý@±nò¬“ë p¹ÌÊâs˜ÙqbLø–rqƒGÙüu}½C91àì¬Ö¿Î0%ªöÓ3e¦¡ÜŽývÈîóì?ˆoQüõb*rwȇGs© ŽBÜÖ¨~$²oG0†¦%FK%5YÁ–æÚk/*ðù4†ú]ÛjÙ«µÏ§\8ÇrÀŠåz%¬÷@ŒÀzëÚºáv¬‡4 áôPË+&î™äÞnÀ…ú©J#Ûɉ#‘<®4ÇÕu\’¼ïÛ’÷»y”"ß~> `Ê$XµŒ©žÀã1ŒŸW N¬tÕ·µy¬£«PRVfEo7à‚.* 8dç¢SÕ<¶Pcs@%mYó²i;ëyxµ¥J]÷¢j+Vµ•C±½ +|> ½õmû¸Ö<ŽUÈ©7Ù\1ht`Ì. +JÝÄ©NTÐ:*ç,)z RøeÛ#c-o°v ô@©«`WœÓ°.³Utê=P RWzëÛöq9¬4x$Ã:Ѹp9K”w;´ðIv¿r Y©+µS¨ÔmQy×Ú.zÁcí@¯Ð^|¼#¥u-> +Tâªo˵íÃrX·xÃPÁU}±üàí\Ä ¾rm_µÀZ•EôÎ(òÐV‰Z6mñ8h\6X;Pz ÄUðjuV©<ö@€Œ ÷ÖµíãrXhð`Ã?_W™±5ÙÁ'Þ20. +¤üT»æ ¨„]Dຶòï²ÁÚÒ%¬‚ñš…Y+R+Öf\\¨„ÕÞº¶}\ë j²œâô4ô?anþí\8O…Тò[’à X|;(kPé +«ð°íœër€UÒãxc’ñª“¨Xñ„EØö@€Š@{ëÚöq9¬4x¨iH_—ì´Ö°rÈíXïÉ@`ªjnôQª¨£JQ'Ƶí±J‡µ©61Ö”J‡uµºs®TÚÛ¡m—ú¡Á£X‡¼)ð‘ÒYòùoÀ®büb~´‰…EMé:¯}`" }ËB8@Ùôy}¿ƒõ¤„C:°¼~_€&‹Ìbmý ëžsVÇ¿A´êc6"[,31,ðfbc²ò,5>ƒÕ^,s‹·è#_ÏåTA’´]×vµ;WVf¢—^ÁÛ°b$y‘"ÀÖ2ëoÛ‡[|]ð D'|€…èJ!MÀ}äv£½ÖŠÖÙÖc ‹¯Ý ˜Š£«”òm+‡ëG¬Ô<ŸFpѹŽÓ3¢•|î´& ’U:ëÛöÑv¤x,+Ë¥sI$•¨íßnÀ<ÜÛ&|;ÆÅ°9ƒC<2ôtÖ´i[4Ø!í0ù¾N‚5—Ù#Eÿ´$ïõ(PI+õmû¨Ö +<–ˆ•ä¹òþLG …´ŠgÆÊ Éh«gͨ´Õø\[¼'HikX;pÕôšê)Ò9÷òÎÖ>Ÿ†Îú¶}Xë–f † 9$ˆT N\7;)":å%½qõÌŸ�•¸z¶×µÍzJÅcí@é"Ppñ×+z«å|sÒ[߶Ëa= ÁcÙˆx[„ã+gêÞnÀXy€½<xÙ@Tã@+ÈÐMÇ–Ð<ˆ›¶”D·n°v ôÀxVâ´¦ßR¤…ƒQcŠÅȆκ¶}XéÁBD¡ÄEÀg9�t»¯þ^¹ëyN’’ñ¦…T²Ê?ß‹&*Y kJA[òŽÃ)œ‡çz @¥«öÖµõÃ5¬4x¸…ˆK¦£æY7±^åºXÊ…j³\þùœ»T?0•,rë‡oNQºÖ”(‚^’ÍbŬÒ6= ÒU{;´íÃ5¬4x¸…H†YÙØÕCíDm”ÔJêSÌ*xåòTê ªdRm¥bÓˆµóÚ‰Ò¡rÄßáÄÊÔïPß×¾mû¨Ö#°l¬ú»û™›œÅ”ÖÃ/Ø}>[4ÎsN³Ÿ|c”0§ƒ¶rëÛˆµÇl`-¶4`-t�aúzïkoÙåPnÀv᧬¶¿„ÁFç땺ÁÖÁ‹«ØTÛbE¾"]Öˆñ\|m›¶t#xÞ`5à`°9pW¦:VJψmìõÖ·íÃuXhðpƒ p®U}5XþçvuwM$Ü$–cw]à¹æ5: ’„gÛ´EÏ6X;; TUhÑKÖ:ÎYs‘ý÷Èï[_}Û>ªŽt;þDzÖð®ŠE'+b1¬Û ¸_ŠE-r.Öb?tÍBZGVìÞa׶ږä°V·SRtjúöE•·¬uÒ[߶Ëa= ÁcÙkxÁŸ§d«fÄU(feF¡mHIÏ,ìÍŒT˜(: ÒV«/¸¶XJãiŠ´Ãøó&KZxOljÙnR¼¡_JYé«oÛå°nÇÿhÖ^‡ÒtΨBëíܸŠ÷7F±é‹06ªÁÒJÛ…Ë�û¶…ËŽX;Pz \ûu*k±úÿ®Têjo]Û>.‡õ€ea©š˜ÕUíw€¢Èâ¦EcïR¡–îiɱÃx`Y²º–ŲEJ4Í×Añ�¹Õ +RœÅï`úùâw°ÞS׶ÉaÝÿ,5õ:ƒt–ñv©ÒfÏ·QÍq©¨T¥ã$Û¶ã{¬(=P¬y8¬Å +z»P骽umýp ë n©árYt+Þ÷u»¯¦¨bO¹Ê�µ0lÄ|ê58 ’z³lÚfÓTÖ<¨¯¹õ‰1°_ó‚µpe±4ºJo‡¶}¸†õ€·Ôðë\^†rôCçWž«Þö$µÑª‰Fì5¨¿ƒ€:ªV5Tom3^Ÿ7X °XkQX×~aUïÁj!«¡·®m—ú¡ÁÃÍ5,-Öt®òºv~í`*9*Àb1·>ÙUtÎ:n ¶•K¢G¬H=0–BñÒµ–ƒï#Lßî]u-mLãfø=c-8Z×ä•Û ¸q)Äo¸²-¹kZÈMÏïqÍÂÜê¦msG¢ kzcÍ¥œÙ€u–!‡(Xo}Û>.‡õ€7ÖðÖšu'I²ò#Ü,Š— „žGÖô®-Ä5»(AªVÅɵÅ"²sÚ`í@éNŒ‚¥(GŠÎq¥Šu@JVé¬oÛ‡Õ‘Pà±ìµÔã~+Ÿ »Ý€›«[[3!iq¬¡:¯¨¤Õ÷®íjG–;Ò[í`ß�®ýžCª5$†(ÐHÛÚöQ9¬x,k ‹o–¦ÖJ6Ê*°ñ5¿ÜÛT,¤k—Ù¤4·SÂj-úÞ‹Ú†-ʤ+Yص¨Ž’’©¥¸ˆ}]JVé¨oÛ‡ä°nÿh–^µd‡h¨(Þíܸ)wWj3Îýö¼ä'/‹*e¥Œ”oKUÛkJ‚F§CZpÌë¦TÚjg]Û>¬Žô€e§áT–/Féö�,añ”em÷�ös0Æ5R¯-«^;í0z˜’\äºÃYøFÈñó4º¶6m³K˜3¬ÃCJûZžî:÷BAýÜ\–‹5ð²-¾––ØmVª.uI¨d-\¨Î·ÅcYKÜ`í@鶃µ²˜ÃÚ멺«È0ôÖµõÃ5¬4x¸¡–º›®òm§·0:ßš~_×b·oÍë²t˜Ò4YºcoY—ºEØòq}¿ƒéJÓi¯¡é¾/@%©šÎÖÒÓpþáN'—”Dœó¼A¸Zí):RÇš»¾©&¯çè˜{,3ÔÚ®™<b€³æ`õýXKná 4ªZo]Û>.Ãz@ƒ‡[hX¼+êùxŠÑÞ€íºìĽ›ì& ŽªEÍ_ômK«X;°°VÝ°šXìßo]ªöžZ»>"‡o3úÏ1Ж¿\dF?Š³On`³â{¨W®â@çMË]VB ¢Cî—¤i;*¤Õ1ñ?½=ÆxòÝ|*«vk‚|L`ü5ë•k©}w7c|¤ƒp€¶Xº]ž|»7K÷žriF´�RÓëŠ\G,@Ý 7måjÞkJtÜCó+êªÑæPz @£+÷Ö·Íî±a= Ác™bWŠN[´c/ŒÉU%˜Ïµ~D²Û7Êb¥j’:dñ¦‘Y_kÛôž'µ¥J]×~Ó”a¥ótyì€À”¶ÒWײʡ< ÀcYbxQ‡•Ym1Ê*/Ä™õ¢uQõ»Èñ +“ä@J×4kÇZ¢Ó¼† Î\ÝZîÐ:\ö2«ÝE×-ûÏÈȺZ®¶ìCr8·£4[,c*±ª›Tèâö�ÜôšÁ¢wqÓz.z§(*Í•´TJbl»Ú.î°z VàÀ•oϱ–^¯¶÷@€J]íkÛÇå°Ð౬1¼sÆÎ/QÊöíØúÐáv®,eÅ~T*oNIe© ìÑy}ؾ©û$‹1œ5'OKÃö¯ +Ðè)=tmûHƒQ?‚†w²-*35°۹ä–ëYn“a-j®i¥GÞ¥›F€¬-Þå“·X=z 4Up××Ö~¡ƒë�•°Ú[׶Ëa= ÁÃ0Ü7kÔ$ÔÕ4‚^û5iXw¼Iö€fkà…O1%Tºæv¤íÊ7wz¬(=Pìo¢¬˜³Â¦4º–ƒ¶~¸†õ€·ÅHü¨˜Òn7àµoå˜ÕS,Q¹…ÊJu ’¶òvÐ67-÷ã” V—Ï0€ÅBvH+§#Ž ’U;ëÚúÑ*Ò +<Ò¹·ab1òö�ÚôšÒb'œñZª¨F÷P ³´µ´íÅR«®±¶C©íˆtàâî: QÖüdŽ7û°ë–>÷ö™ÕQ>fóýáߪX +èèñ[7§à<ØÊš�0kÓ + �LÙ¶éÅR�¼à]¶ëØ67WSC±v ³°–5ñX�Šï+–â{ëÛöá:¬4xS‘wUâ¥XÊ�¦Ê&4®Uò’´� +Kcé½X ++‡M˪µ› a‡ôR)lEM:B+~â?í +¥ønú¶6ó`äU>³à4jõj¡”¬%M�ð²xÉåâ'4¶uÖúZ(…¨ Waû¶E¯…ôX;°JÀZÒÄcµâ'¾®PŠïoÛÇå°Ðà±ÊgÂç`GÀ¤PÊ�Ö’&Ô_@B1.~Bc“›O]¡¢C¨›–>òc8;°—IÀZФã´Â'þë®HŠï©oÛÇäpŒÿѪg,³ /R$e€j96¾æÏ +Ÿ�¯ý(Í•²šþèÚ)n>`í@+’2@µœ‰Gj…O|\‘ßY߶ËaÝR౪gâ:¯ªEˆ·h�«,"W÷XášÖõìERˆsØ´Ì®æáôÎ1-‘2€µ˜‰ÃÙì¢'÷õ^ eè©kÛÇäpŒÿ*gâçg5ðµ@Ê�ÖR&¬mä¢'4,Í…îR¬Öˆkr2k-;ÃÚ½@Ê�ÖR&Öf÷¹t«èkÛÇå°Ðàá•3QúwkL +¤`ÕÀœ‘”Û’\Ñ@=üÛ¤¸ÖMËìÊÎìKÏZ)Öµ‰Ã©O†¯÷â(CO]ÛèŒTÃy0þ‡×ÍÄNYéX-Ž²sæ|®ÍWLÑQË-wmËÚÚÖÔâ(0—1°jÁ“¡½8ÊÐÛ¡m—ú¡Á#•ÎDÎXµà‰GÙ€¹’ u‚/ 3«x«‹$ªÖiÅ…m»^åÔ!ì@-²s‡rX@úí^eèæ¸0Ö~•FÉÀÿ…QÀòÊnÕv“°ƒ„ �“ÕùîýsPNªÿãåYsÊcÛÔìêᎵ“Ћ]±Ñ±Z±ßWÅ÷Ö·ÍNðÖ<4u“pòí-“Â(l%L¨§ý…TŒ®€©8º¶¤U-µmBV xÅÚs/Œ2€¥†‰GjÅN|\aßY߶¶#= ÀcY…xÍ|P'‚FÀRÄz»ð1c+vB#“ÄkWÀÑÞ¶…nõ›i‡õÂ(¸_òØ‘Z±ßWÅwÖ·í£rX(ðX6aÎþ“²iª%L¨»`ù(<4½}¹F!2H•5ßïŸÓ8aíÀµß;ä z>Ö#µb'¾®0Šï¬oÛ‡å°n)ðhF!ô¡Zæ›FÀZ€`ܦ2F¡±µ¬gµ0 +ÑÔ¤´i»èuìköÂ(XK˜x¬VìÄ÷ÀFñ½õmû¸Ö<–]˜“\¦Ñ£`-aBý]å<f³+Å�8×eS…†¬fk»àeÖaƒµ{a”,5L¤Zìdè@q—¸Îº¶}XéÁ2D¡TâŸFÀZ„zZ£†Y¹Ø —uõP”¬Ð¯eÓoȲ°¤bíÀ^ežåd‡U‹=è…Q†Þº¶~¸†õ€·qVÒªFÀý +>�㙃ÕØdYp@%K“:ó®-‰ÓDPÃÚ½0Ê +¶m®Ð}È›P骽ÚöáÖ<Ü:įÏfX»zhËA¥@ÑJPk—ÀfJ¦CŠ‹F»{Ë•ÿÊÌƪ–¬\©8¥:Áðu†éëÚO߲ȡÇþÐNîe°{#Š)t;x2b(~Ã8 1IÖL׶f;AÛ±và¸z \Ä€°R©“M¤(ʦ¯½e”C¹!À_ëœèîIn¬µ¶ò%�„ͤ©QÁ…N�¸à=¶HĈMϺ¶ëc¨Ê¦X;p0Ö¸+R«:ñ=pEQ|o}Û>ÜŽõ7Öð”™\5gEQ¨–/áŽÎ·Ñ[Rm©ÈƒBÕP£mÚH¥÷jv¬hEQ¨ûŽsî4öﻢ(¾¯¾mUGºÿcYj oºIQ”¬åK�ˆe!gÑb9-FV¢ÝÐ&EQˆ +=bmßt;êX°EÀZ¾ÄcµB'¾®(ŠïoÛÇå°Ðà±l5À\ƒ–w¢(Tê—Po%ÁÔ +ÐÈjÔXŽE!*ˆ +åÚÆæªR³¢(TË—xœVèÄßEñ}õmû ÖíøÍRÌiUÍ@‹¢`-_BýIõÛ&÷³ÂØô&µ^…èТε…õÔô<“aíÀ^e�kù’«:zЋ¢½umû¸Ö<–¥˜µìEÙ@¹‚ u—¤ùj¥Nhd-©•‘Um(†–³e…8”hZ¯ƒjù’gñ;˜~¾ø¬÷ÔµícrX·Ã+D½æòiQ”¼Ú QÐÓ\Õ3 —&,«U|´( +ï,A}ÖoU¶+kö¢(ÿ?{ïºÉq«‹>ß¡ÿ(Â^±Š®¼TfÖÖ/‘Zöñ9´å°ì½qâÄÅáHÜæe6‡c[ëé> oUÕ$«{xé¦Ê{ب¼!‰�r–ÙA«)ÑÉ`%)Ê`´UÙÝÜêd¾\KÃvqÉëÏǤ(#0¡"%ã½xú2PÅ$p!{ËîTéZ3—U•¤š[UñµëËÂdpÔ]«F}¶Vð•±ì lA+5:™/×Ñ°¦:ñ›”e�Æ“ñ>±×ôŠLFG ñt[RªÍ>ñ©¬B¾½0jµ�KJ”˜1†úr •øáá•F;([ÐZÍÁ—+kTH¹)%Ê,ÉK˜Rúrèœ±Û Ó÷Ó²%TÕj¦”(#°·¹¯ÜhÈ‹]ú)QFC-%N¥Åú¯§ª€ÌÚÑñjNÉKˆ}›rRJš¶Õe[yÒ\‡,%—²SàÜ°Õ +X«j8%/©[ÍiNêT)QêÑÖe^¥Õé|¹ªftN4_R¢À}¾»7HßfO01'V¶ëk LŒnTVãéë”,µZKJ”8f/©ÍiNêT)QêÁÖeZ¹Ñé<•¶fÊ_I‰2�Çì%<ZWÎ06‘lg{SÓÔZ•Þ|Oe5BjÒe]l´‚…êó +œ’—Ôæ4'õ�ª”(õ`벫ÒêtžJW£–JOÝ&=¸¦ü%2Z¹FL‰N1gRÂЬMÐÄ×oKIךÓ}ej²¦”(`‘¡J“9ÍIÝ{•¥h]¶ TZ#ÿdzšmz "¥D€Sòn×¥{ý“Lý$_J‰ÂÓP^Oe5üÇZ?lµ–”(pÌ^2h4¥9 ¤D¶*[ÐÊNgà©´4j¹-(Ä”(#p¼§Ñ½ØäÓ#ä‡Éò3¶‡§ ƒ’ ¹è)š[À +“¬À)yÉ Í”ædÐ}I‰2iU¶ Tµ:Aÿ Ô4œñYˆ’e�NÉKd¨*ådNoZ}êÜ'iZKDn*zù¸Øj,)QF`I^2h5¥9Œ ¤DŒ¶*[£›[ÌÁ—«i¦éJJ”ØGoeš.=Ôå|—¶aߧë�c…óYßMʧ¨՘ò¢ÀÐõ}jÀe÷ɤ$T#•BQ¶*[ðªZÌÁ—+jXU›”Ç”e�Æc뉽&áfN“Z’â10ÍJèó1›Êâ˜ÍzZl´ÀJ^”¸S.ïø>¿Ú¼ Ó¬M¡*[ÍNfàËÕ4ônSÞè”eîâÕ3€ªÜ~Éu.Ë}tÊ‹"`›âãê²mR³ªV0åE%°Ôjï&ý÷…µ–‘ær£ª½ö¯š…ð(¦”ZU«À1£ Á°êœ't\õ):9çF! ŽŒ:‡ +|ö-ÍÍU°ZE«À)³IÝdJ€R÷]R¥Ôƒ,%um.JMN¢P8çbur=ŒéRà>;iì¥äÓ$)P1‰¥¯Ò¥ðÄùº,çÑ0ÃV+`I—2�§Ä&u«9J=‚*]J=Úªl…Wiu:O¥¦iUÙM€©À)±‰Œ7»‘I„3ãf]JF“Ò¥ð<üÒÊÒ¹Òš¥V+`I—2�§Ü&u«) J=€’.¥k)Y!UšœNÀSiiZò•\ )µ 6™¯úÌÛ±Â3RžçS\_.ë'IXÀPvtMÉM¦4(ƒ””)ƒÁ–²Z¥ÕÉ<™®¦Á°SœxJ™2÷ñâF3¿ÎœB®ûTþKÊž‡àS^Ñ\6TÒHju�L)Sà”ÜdÐjJƒ2AI™2m)[áUZÎÁSikºÍ9ŸJÊ”8¡\“§€(`Ö'b,ÁS.‡V.‹µIz˳U@)oÊ�œÒœÚôùê£êßW×$ÕXKÙ +§Òêÿ'PרQ×¥÷ÄRò”¸:ÇtÉS”ˬ$Oa°öÃä)BqØ6ƒVÀ”<e�.B]ÕjJˆ2AIž2m)[áUZÎÁ—«kPÚdÈHÉSàõpŒT%ßÇäÕ¡ÀFÓc.;•á\ɾUÙôšziµ–ä)#pÊYPµš¢FP’§F[ÊÐMNçàËÕ5fDÙË1&O€C>Ø ¨â}uJˆÂXõÙû1%O‘ÝÒ›MUYR^ŸZ´)«Oñ{€Kgej4%D $O¶”`ÎÀÅÅ 6&OA%͉¶Ø®¬IGGQïSò!£,§VeIÒwÃVÀ|ã9€Jš“A£*®,ªRJ˜vE›Ôêdv2yJ*·õrD‡„’šÆÔw5÷b `ÀÞô)D× }räK@žûžNBÕšº,5Ó!…†®[�ãŽ\NŸÁUæ•ž–W‡xq(ïrŒÆ@XÐ$¦¥²ýÉË4µZ€ÕÀÖÍØ †ÆÚ }Ð}'€Wi&Xe¥o$³=apˆ‘�-Z+5{0¡ :{Ø!C·™ ñó7–Á=À÷éäËìD¨H–¢cª(¾2›2ç&ˆ€¿}r>4bÿó؈«±pöNqÚŽ¢ÈvÂåè:yéÍgʇœ%î¹ãØ@zO�ÇogÆã,Y8—…^˜rÉŠ-€�ºì—d%›¥`ÖçÇ U6ÍÒtÑä÷˜.0”ÌMæ¨ZLm ¯ì}¼2Æ2$ZßÇ›"’û ͹ ¦k~b`Ü4Ë&X^¹Š¸É= À‘|—tmEߊ¶D“ÞFmRJšôPîTiVV˜–¥Ïn…q%]Žeì+±•¦!†(Ža´qÿtbITP:…)Ó4uÚÇ•¤Ã9’?MCT\4~†>‘së8 n#!’p„f’m7tð +Ρv®lÉ^Û”Óµ—é%ñŽ9´âœEtä´(.mK“Z«eiSt¾9d¦cÄ£w1\ËÅDp¼~±N˜ÿ÷™õÍûÿº~tûùÓÏÄÅïÎo¯ì�|÷ç›ë¿«¿#nß4>:ÿéâºþpðçø¢ZùôýÿüÃï/.©™ƒßå?éxùÝ:ùóÍûsü98wîýðõê7ÿ¾º¼¦O ëöâÇÏwçŸpÂÐÑu{:*qöóÅåûÛók|׫ßýñú®|ÃÿÝÅì7ªm¿¢ìï×gNY]ôŸ§—Ÿ¥ì¿.ÞßýüpáëÓ+.KC‰¥ÿs—1úùü⧟ïf£”Š¿8Nó1ú÷ldþ½Óxü2_^oþøî›Ë?Ÿ¾Ssñ¹x_ɉ÷`‚2/ŽÊÍÿûüìîèæóõ{ÛÑÍ#T0úÀ¬ŒŠÞ}š½Vƒ:ÿ9£]a“wŸoüL‚ýÙùÜ鑪3ç%õó +XÍÅçöüÓçËù¬2ysØvsqúñôÓùïoÏÿÏgZØùgTëÅ1ÔsÑ»þ|õÝÙÝé?Ïçoкʋ#v}óýÝÅÝÙ#"FÁï—þÛÅåêÌá@÷ ¢@d=£¯8çùßjvòðˆX…æ×Pi}ì¡ì‹Û÷7ŸoÏÎÿp{úñ狳ùhm€Õ+ õØø +&7ÏoOïnngãS*¼Ú®9¾¹úxóéânΦyŽ°ðòhß¿ûöüÃêëEÛÛ=ŒmoWñØmÏ.ÚÞ¯BÛûp{JBðåŸo.>-úÞÎë{³m0û©îÍf:‹º·¨{‹º·¨{‹º·¨{Q9²oNÝÛ�£}Q÷ýV¾M0Ùy•ïèüŸç—ßÿ|úþæ_ÏqÍ·?Ú¬¿•ƒs¶Lýéîý·çÿ¼8Å€6:ëJ/ŽÜ—Ÿ9çŸ@Ë{%™à§Ÿ?}º8½>÷E–žMoïç3ø÷¯Ááç#2Ÿ¿¿ ¿É&Ùunvóáçó»£7¼í¿c÷hëvö óñüìóåéíýûãÍõùõüE™V|yi|S$o®?Ýnd©øâHÎö&ùôùöÃéÙù÷g§—ó-ÁÃJ/ŽÜ%tx³žÝ\ÞÜþý,êöLÙè—M•Ò£ÿ\°¾ûüÈîy.¿+|–4NúÏÜ ùïÙsñ߯¡=w ²ã†�µÉ²lh +x%ä/7×w'ѤôöÈóïãax™öÉC[ÙvýNaCv¼ë§ËÝ&ìö"í›f´É%É®0ƒÙjÃ?æs€¼˜ˆ™ˆyDfÕÿxÄ�T#bw‘GÖ®FDí>ÛÚýÃòM^ÀŸÞ^Üý|u~7£}:://îþrzñ˜µæW~v¹™xãí÷Jù§óÛŸÎ1“{$mº¹ÞâZ<ß�—¡mEZµ¸íËP7¥7n°8;ï1t|ssyt{~þß³¯P–8ŒnoãDÔáìXìÛÓ÷ŸçOI*þJjÚ›rözqy:ÿVsŸ´ÙK´/Á<óiîý|š›énù<ÂèÍíÇŸo.o~úeT“7ÈÖf¶óÌìÍE&ΞZ˜ÙsjoÆeõð°gß›íÍVß,@döúÞyܾ՘ý Hk×·ý|©rO¶};_PÞÏܳ}Ÿ—ÜSG¹vv·íË‘´—Y¾™mÝ>þùôúúüòûóËó³MT¶iŧµ¿Î¾ŒØÉiÅGò®ŠWl�òJ‘ð‡÷-zC2Òl*Ûi>Fûr}{ñéãåéÙùÕùõÝŸN?îÑatuJM;ÊÛí¨]¥ÿ®&ªÁŸs±æ¿æy©ø.ï«]çy³-t{Ãó6K¹<ïá¡Jìc_øÝë°ã{d~¤õ>&,™mfØ0£g`�»²û>lä +õáâòr¡ËWXÖù›«à•»ÿ3&‚£Z¯àú}~:ÛOœTس?ݼŸ^©ð +–¿ëÙ4yzvöùêóãîõÂUU^·ÛsVLf£÷þýÅÝÅ?7@.WØÝðÃíÍÕ|>Â…_^kyD¿¨® ð„Üüë)½»×w7óÊ›W@äôò_§¿Ì^/îNo7G¤üË/ÐlœÞ?T{A|~½ô°§×W§¯–v_óÐ5aq†Ù1ÍîìÍ9ÃÌÇh_¬‹3ÌŽ˜{7 ]ßöoÐæ?¼8?©ãâ³ÎÈøšî0ó÷Û¾J‹;ÌÚ5YÜa^ÉÙšÄ~¸ÃlÀvÞæ IIoÎf>Fûr-î0kVdWÜaÔ¯Åfƒ}µë<ï͹ÃÌÇh_xÞ~ºÃl°;¾GÞ´;ÌÙ›s‡™Ñ¾0€§ºÿÙož ÖpSæñJk¸Y7p,[VáùÜ~Í‹ð|x¥Î÷?iã7|÷-ç…y·™uá9œÎ7íIÖ¢7™3û3½7Ý$OÎÂÑæhî×ÌÑf#¿p´…£-mÇ9ÚÝ`ц¶ë턺𳅟Íág‹€¶ð³…Ÿ-ülÿùY}©ón³;ë7ÆÖf#ÿ$÷«ûq‡·l›9ÛÆÿš·Ílä—mó+ß6]»êfûà ¾ÝÀ ¯ªñâÂq„¿\üûüò/—§¿¼Û,p;xat–—æež¸ºy,‘Ä~åz¹¸~þáâúb¾a÷öüãùéÝ·ÐW5^¿™LeßÙ|úˆT6sq\Ù,‰l–Ü/áóVS¦¨ùµEΔ—Ff¥¾ÖíJuôÿíŠþ÷5ýMÿ~MVÏ +ò*ŠÊü1»"C½Á§_V!~i_Ü ^RßOýMpúµùêïÇMÌ®'oDa;ÎÞß]*½t¤ÇÍÕÇ›O¤ø~÷ùŽõüí•xÂqÂqÂl[Ú?æ󀼘È#îB5"æ5t¹Ùˆ<r¡V#bw‘GÖ®FD½"[Éл~dnÃwýè<½½¸ûùêün¾h³¯GèóçwÜç3t®8¶ZÓ%�p“,×ÉËuòµÁuòfIü–ëäå:y¹N^®“—wQ–ëäå:y¹N^®“ŸRÜÄ…²n¿ÞHô\®wÐüµÛ†¢å +y¹B^®Ÿù¢åýŇŸ?ß\Óùx=ŸÈ&õ^œÚ~9¿¼¼ù×\<//~úùŽ¾7gHà9ÍqµÝ½1“]ÿýF)×u^^–˜Íß?ß~ !~3܆•v›îøA÷ú[;®6Dë ¿×»ÝöÍè¶Éq¶XÞËÛËã¶XÞËÛk[ÞžõñÛWQw¾þéöüüúk’.Ï¿¦3î⧛¯ÿyqsy~÷õíùû¯onO¯š½å“Ü󮘛m=¿¤Y¯ª/¿ÂlÄNÿûâêóÝ#ÖL=•5{Ï·lÏ8|õZ1ߊbre¼="y5_§ÿx~F¢Éíýû# Až¦_áFgS,76¯M+¾‚�÷ˆÂûŒk‹ jOLPi?ìF`Ê®°ÛÅn³Øm»Íb·Yì6‹ÝfÎy¸Øm^åDƒ•Fì6шÃæ›Åns³›Jìb·ù»ÍkToÍéhŒPßGkPo2x xוú·™Dc·LÏÂö1‡ÆüD;žCc>"KóÑÜõ›zÄíü¡ù&ß4yÛ 4./îþrzñØUÙrvî&ƒÛñ³sÉ?µkgç›É?µ•~¶ëçç¦Ìx9:wáè\òN}ÙÜïʱ»ñz.9§6À+u¾ÿ9§¾ùã»ï>}ó¯å‘Ÿ¿ÿ:²2½Á쳊-ÙvKØÓˆüÙk¾„Õ ÿ~ÚšÈ/óùeÇ7É®s³›>ßaKÜž¿ßˆOïÛöÿŽ1ýu(�Û¯ê[ÔveU^æRadQÍvN5S¶ýj.Iþëâý.^±ôË›ìÍ|Œ~>ܬB)qœÕÍÆi¾4øÂà&˜Ì_C,F%ÕôbÔØS5À-FýÔjöÔ¨ÞŠQc>"‹QcÔß}Ûþ‹QãתCïʪ,FŨ±«F ¨fw§8í,ŠÙ^+fnOÏîN/ÿ|s1ß]*Ïœ™ÔÓãuö|Ž</Élɾ$ngçúñôÓùïoÏÿÏçóë³ùÚÀ¨ÖËÛQg{Ú^¾úŽöß?7ˆ1¯«¼8f×7ßß]Ü=bÊ®m(ý·‹Ë ÔÙáí¶$©^’íL²£ å’ëèAô–\GÏÄRÞn®£ùò̇ۛ«ù¬’¿:³_ƒº»™¯Ü¼*o5kÓ³&mzÃÑüÔEÏb4úÛçÛ?_ÒÙ¹vÄ7–{eù{Ç÷J¹òJvÞMâÃSëz+Á›óÛ�£}ñ›Ñn{ÍÇcç}ÇÊaýî‘ÔË5ÅÍÛ¸¦¸«å³7sI¬Þžq¿}ãÖýÙþK‹qŠàȸÿJÂë¢î튺· \¾Eá[¾uä±(|‹Â÷ëPøfË–‹Â·× +ß[õK{›*ßì<û©ñÍFoÑøoÑøoŠÉ¢ñm>€7 ñuoNãÛ�£}ÑøõVt¾M0ÙyïÝܼÿéöt>]T¾½VùÞä³U‡%KÄn(³õïÉw{šñbIãù"KÆ‹/<”_>ãÅ«`øÖ˜Ù—çïxiSö% ²òýÿøñòôì_¯tóñôìâî—ÿ±ýôÓÝ/—ómܱôËûp×·¶›6Bj_6ÓïAˆ{´—¾$¡Í®F7#°?]ßæ{³o_føÄy9ß"¯{Ó¯ÆçDo®ù9óùjĸދSÜ¿~Þ (ÿ2¾ÞÌ`––ãj/o6ߌO|vº˜7¨óò±¨³e×Ï·NÏÎ7ÃmXiQx¿�— _Þ—kÓ‡”ßnÖ7;íÐù%ýØÈÒ\Õxyæifó˜Óÿ¾¸ú¼Á5j.ÿâHñ‘ôš¹†žEÆúö‚ň“xñû^4f'ñÌß'ioöN/àþ׿?Þ\Ÿo ïM+î®,”ƺ±P;¸Hµ‹è÷+ý¶x0ûÓzï +»]ä¥}“—qééÇð}ä {(/½Iÿè-xõ®?oó2`·ÕÅdž¢‘æ.Æ?æs‚¼#˜È#YpjDÌN#òˆDˆÝeÍõ”¬Q¯€È¦6Ó?4ߤïðéíÅÝÏWç<ƱOÇçåÅÝ_N/³ê,gçn2¸?;ç#²œ»†ÈŽŸ[ég»~~nÊŒ—£s9:wüèÜ;ôòJã.ÊBÏÎ÷`-žo�{Do5Ñ|“ýo§ Þ/·7ŸUwy3oI²ô*ìýꔚš‘a»Zµñ¿ëþʹ(ó_óI1ßæ¿ëÇÙ¨ê§Ç}¦öYÑ»¼¹ýSÚ€ûÂ1Þ àô¦Ó”¼h¼Þ+í¤=MñѼ™Ílù|ד|¼ˆ!ê…qúîåw_‰ì]zŒí—f÷¯U6àv}½MO>Ü7€�ÿöɹ÷ùNeÖe×wšÿXô>ÊÚõ’ÍŽnÜ·½´§Âö›;@l?|8¿ýýÅí.˜HveïNœ¿Æû`ÐÔ«Ù—ŒûÿÜÌb9¨óz©¸>_Ÿýu¸É›£²C¿jW¿:ûÃBg¯Hgê×ÂÎŽ^ËÅ„•¤7øÛíéõ§3^‘Øzß2”a×M!ÛÈj».¾]kˆáŽÈÕ‹=$®{Î}sy¹k²+S²±.¾š›à•:ßèù§¯¾ù£jßý×õûü@ ïþ|sýj‚Så4>:ÿéâºþpðç܆•OßÿrõãÍåÁoŽNßÿt¾R«fõ—‹ëüö ]}Cÿûá_Ÿé¿í껃âYóÃ/ôãÿ¦?þ7þµ²«?þßÿ¯]½Gù¿´‡mÛöa¥»Cß®uØZåºh4}ï”[i{ØuÆÐ×ÓwshzçWg9Êê•Ö‡¦E{謦&Õ¡öªt‡Î(ú@€VY‹*ÝaÐÁR™ö°wŠÊ8ê¶ë<L‡ßڻЧßTŪÐõ:—‡ÚËkܪéQ¥U�xxdªE!¡)¥©Ecêh°}o @ÚÞg�*>øAg2L§¼w‚±Q\ÉÐtµ–;§éÄï>¿i-”²‡Âaè#YÕ«•ò‡Â$À™Î”;TÚ¢£C¡Jø·ï¹¾ºR £¶f€UÃE]¿â©2UâQèn%£¢J2L€ú £¢õŠQ“É#ï;µÚ+.£;B›fÕé^1Þ¯xâ{F kNkâû¾sh¶¥"„‘;tžiƒiÀØhB;›êxVL6&ÅÛèÊ´¨Zaå[Õ˜i ˆ>±Ø èÕÒ ßVåß-–¿›ò1ÖnJõØES÷Çєġ6e¬&r"÷8ÛŒtSciiʼĩk깋ÓÛäùÐÔ+À«ÔÔË—²)kW»ÉËH¢©h"ÑMS'’VSh‹é¯ô!R3VÅâ65€yâ&1Ü æ‰;–eæÁh•†â€ƒOÔØ•%ˆ·#ᆭÞ~¼A›É.nêmÌ[½«KEnÐdvÀ³¯â~ˆ<ƒùJg&ŒE8Oà‘˜SS¸Sâ_¹LâpMfqÌ]ÚÂAGÊF¢uaR£©‹3€UAÚ¼‚ +‘æ€y ¨"e¡ûn•ØzüyvÀ¤ß÷ €,f<5Àl·Fî…Ù:7‡‚ÁÓ•Ñ#ãÚ´SLA㹌Læ® ç¹ÃôS¦—€Ø¡N`™¿„D'& ,e§òR“Âjû´Ú`™„b*K�ªDxžíRÆuª¤e½p¿>$úCæë®Ð(“±-›,ñõ¸Ç¸æëvÀšqªì0l§Ðæ}º“ÝdÒæ3«ÑþìääèT½‰eq£Ë‘KƒÔ‰(9¡°é3‡dÈU:.£» "ß‘sš7o.p%00—8XËçšç¥'g;Ö½0v¦lJf–„šÐQ$r£ŒÈ‰Æ;Å•˜#cîÝjȺýªbë5Ç7Q@‰”MœYº•3Ã[AÜ€)qïT1É'<<b׃£‰~óôzãâéeIbãŽ7ëå°§åcí¬’>ˆƒ‘a%småu~5=eÇñø¤žæãó~,$ž]XöX¬ËSÑd,½Œ¤aÓ¾’Æ"ÒX†šŠYcIL˜³‹¢š“9í#-bLÌ—}å=È*¸,0‚,â*ÌwTþÎ|Ië,p2ëêj™4q·ÄÜûKÜ/qÈ M<4ñØ!–_Ç#Iûäàèǃäò~ô3i$¿ùû5´‡÷«ŸnOß_œ“z¢lÿ[j†ÖFüÛ*n7 €Êƒ^Ž~:°ÝaëˆÐ¤Mh;ªŒ ÖLKLäutuðº?:"uá?>cl¡‡4O³£ú–H¾=T֓趨JÚbªsé˜÷4‚N#Z^$0hÔ„&z4 ¯NÚºÒrÒhú‹¦Æº¶ëåØW’`<S:êŒq!Èâ½ÆTÒ¯D”ðŠYNäqÁ:9eLù}L§Œ6 ¯ +‡FõFÎ^ +Aq†“ž‰Ø{ªDDi4„†§Å'ª5-$slt0œ2¦ü>æCÆ8[—è\'gŒêÁ×i@ø�´ÁqsØi9ðHpÂœà§[Çû¯g‘[¢Ö16µb!ˆv1]ÂZf´Í[Ÿ�Ýñ!£±MÒ§F +Û•T–3EaKsN¤IÚ(â,«c‹‡Ùð¸[Þõm`ñ¸¡#‚ðÁªXRé¹ñs9cœæ6ºŒ³Þi#ýôPvnàlÑŽRôx+{F˜$V•‰„X1ÄEZVB‰‚:œ1DS–Ï¢2V\½m¥£H‰ hÓ9Þ’=ƒtUð]´(ÿÌŸ¸²ZåºhS$kÆ]9*™GÀ„¬VyˆLÇ« + J‹PáÙ£À<åËTY»ªfŠg“y¦#™rg›'Ûöy9x5L/Ó”«£=¼ªèŠW4‘UYôŠª„.˜r¬PLS8; +mñ—~•É T‰—i˜û²=“9ƪUÜy°¾¶«jŸ`/¦7Õ;ÞJÆÈï´mVe/b·¶€Ý¬Ÿ Ì>Ò„–ýžÀV‡ÈÀ4tÏ#$¢’S†Ž™Ua+Ìyä¤dXø*q&¬2¸La^`n‰·%Æù^¢¡Â÷L$›™+óÖÌ{ù×ñÁ€€;¡ï\›…Xê@Óú +Ñ¢ƒf07’lr"o¶h‰‰4@ÒÊÙËHBûѦ/ó5$WMTÃsiu)3žla^WëÑŒ—¬-i3YófD͘hš)]5#ÊkÆ”ÙL‰·Ów3Þ�ÂwµªöH3ÞFÍxŸ5ÓØŒwk3ÞÎÍ`Çk©4ä \œ˜y†U锶â˜q±Ö{·J¸aÎd +gj&¼KŽi_¸[S³?Ë=WRpS3ÑND‡ÄdI À…+î¿ÆêM®»hê>â8š28Ô¦ŒUÐij|"ÊM3ÏJS¦%N]SÏ]œß¦Lp}¦%(ǤéãôUg©êÊ™ŸÛLÕ™œé¦)„I«)´é¯© ¦ŽOY.MBŠöj$Å.š\;6d0V ‡×U2KÞVM½¯âÞkêÍgL„6pSíà¸ÇKpo£†…O¬¢’Õ2?É]f9Í„/U‚af^¥TâoY¾dñÑF‘¸ ¨(´•¤*”–¥X£é¡Á~.«U‡…¬ŠâòHœ>>ø=©ßÖR¶ƒ•^C<ÇP5wë•Iö‘Ð1=»>™h5ÔGfÚ¤=™kÅäNjD€G³!̶qèªV£ëO?^BŸ™°Ð`UÆk-ìÁ…Hð²adŸ$ž´‘άÃĤõ^ÌÜXÿh^ØÒÆ8wÉC:*6ÐIAG‰½S!uwÑ°˜\1'bÐóLݦÉdòíl/sêµ›–DËÌ[6`t"»b]‚-€ÄÀðwù«—Ú±º‹82Ž8Ô<ÒˆNMÄ9£œ¦%ÏJš»zêðMŒq~Q»ãÃ0.É2|^§¸š¼˜Z6?¯÷˜$*ŠˆT“J$ºš_E{L¡Þ”2‰† ':¯È“ÚnWö¦4ç•v•¼Äbwù0®„v¡ñ–v©ç ¢u e«¦ïÊàÅú «±‹¥_ „˜êýÉüŒ&p0Á*®ò` ÆË4^ÇéR©aL.SŠÑÓdÈ$9¥Zž>B:öˆð«=1Þ/©fÞQܸõ¶‹Ýç9ܼ~5ÜàZÆ3d>Á³ã]ÍLÒDÊî1z•f:3%nß8¯W<ôeÁ°žÆd(æh_ñHP„Ó¥(ÆwóÍ6ŒLTLu|²DP¢ÊÄÓÝV|?‘v>Ù7õ†hxG~ž|8ø¿üT?¼?p«ßüvõÃÿš¾z§Vß|¤Z:¨¾z—Wùªü/ó`•+:C••hpD¤\cDÈcBoÔ™l—ñvm8®ƒ!Qp<B6}cÀ~Â3PcÌWîáE(Zó©)3:®1@3ß„qs¥){Ÿ�k¦kz”L›u+3=µ&ÇÚ +Xs@ŽOÐDcR|røNÏçñ).§§ýD K i€#éb*Lä”4ýcyf*óŒ%#©)«ÛäåMËߤõŸH}\o*ÖÂã`ËófªØÄwLøj`Y›¢q` *ŽÓ¹)·ŒÛoÄS'\wÌ™¹Úx–'1>¥ñA1>HÆgMd*£i|dÕ4x þ7×m#ŽâˆðÃaÖ<ÒS¼¥ýJTfƒÁvAnî{8ÀáÁÜi�`@±y¯ÏIÃ=‰;ô¤Õ.CUŒì,ÕÚŽÔù¾µ&º!(ÝÂÌÕÛΈê¦p§Öü؊ª© EÑQ $ª‡|["–1ÒqH¶PK<4V¶ˆÚ´B0r“ÓÍ»k±À¸yÂ%Õ6®‡•¹?´Š÷ +7‚tø‚¡cšÅ®R("æùŽud®c´°>å;v¬HSÐ`:Øÿh +0‘MšžÇŠyœÜ`±*G8vZLT@‰‰¡Ã Ë#t,u‚Hµºíxpr½À×ZV .‹½žï‚Hî…¡õi1J‰×Ýвm´)Û:¹3cK«çs€ªF1zÞh®Ü!o7ëô4&Ò…QFõZ.¤Á쓤aZQg‰¾ÅÚÙè¿@J¬a×B4,uö$Gt^iûÎóu[dÔ‘ý{Z]L �*CÙ$�|ûß‹ !‚hïêTFÃ…û%!qmØÏÀ±+ïl,Â5]÷mÐÖQ‘êx•O¤ÝE•“úô,,Ü;¸æT¬Íö^Ô”SŽ¹U*‡¶l´\1é5u‡¦ÕâfC£²½ˆg¬®cØ<giÜ TR†t[3™�è0½reŠš5óØàf¶K)ZÍV¬ïÍžwCÜ×mt)kq¯)KY qÈ.®}k"÷&²kp$Ñçäl¡Z&yØHïlÝB÷Jl†äêB$v#"„îã’‡ð‡•!‚ÚƒŠ¥£#Qµw¬M½H·àT¨FCéãÐ\/X[¢B/»¸éZ:î“-0ZTÜ£2ŽlG»`dÌ5´±±;ÜNeö:à=‰ÿ2nj&y“9yâõMföé@hÒ‰ ®_ì&Å´˜hزqÈ$æ &ÒF»¯>ÇЀ‹ÞRƒsçÎën™ýoÑcи7vþPÃf§Ø‰ÅLo™áNàød´PYà çˆlz!|«ß9Û@R�ñ¥@›äPÑæûá +¨a«¥7`é×Õt<Õìiú‰é¬ŽÎ¶íôhn§†/KM“ Ö;ê3ÞÿÎ÷ß}s{7ð‡¶#>Äpð]ÁkÿóõûÕ§ŸO?ž¯®Ø5ú?©Ô×ô¿=tÆiOkD17 %n*&ˆ¼© ’ìÆ¢ëPTkqªm!0°º±Èkm(4Ð7¨Ò6‚WÛXtàÛ\xøêÝVâÃWï¶ go.Bj[ +DüÛŠ¬ço#HPÅíD ¶l%L`o%N â…TÛB¤@Å„ +TÜJ¬ˆ¶ƒ-érsÑBêm#\ȳ‰x!v›Í¨Á_zTF5zE³å¢¹qm“\¸Ogh²‘ð˜{fhJWßÝž^ÿtþ!3t2åvnÐÄf9j$vV<¢NøÓºŽ]¬h {Ì*»Ûð¿'|sÅ_Sé mÀ¦Omžˆ�gnK;:‹à±W¾s\‚-5ÓŠÛ{j'õÖTÝ¥Á4õ¨âç¦|l&ï$Í„P:ð„¦(íä 'ðä`ØL‹!{CÃ2”4$�¦_ƒßši¨§)}®¾Æ6Jq¥›8þ§ë«ÑÊj”ÊĤy)Ó" 8f™ !Ír +ÕN¡mO††K¦gwúv…í¨a¶Ë릇ó®�šô^¡8¤W(k|B•iá~OÜÌ)8Û+ô«dèžEîZ¸ñ… yHRø„2 àv™öq+9°ù,hA_â_ ÇŸ`˜1’Ä–É\÷ä€xf€Ó5…=`yêßÂC¦g'ZXô˜“»tT ȳ|‚�fN^C¢ä°á?NØ^ãØ= +Ž-²±Q¦’+Dòãž™dx4MÓ•œ‰“ÆKóÙ.˜r!ƾIóÁ´ÉsÔVŸË×ÔÆ î'w“ÆR†"ÓÊx+VRq^*ÌyZVüOèª9L³T&:MRY™£jÁxTÜwhYSö_±,‡ÇuOøâhWi^NšÁç‘éà&l'Û(w‚ ƒ¡0é4“á6S”š)Þ™d +é4ék™À&µQf¹I´S–B(™ˆ´¬W3YÓfºîÍ”8ššvš5´Õ¬!ÁfJ¨ÍrnÖP}³fs4köP³f«5Ç7ظyö«ííë…l +Q5SVÑ$ºªJ³†ïT|é$9ÖÈã·ðê¤x×÷.yQk&eÎ +2HÇ8{¹¸©–9LÈÆË)/SÝ[–5c³²"ÜYî°r¨ó·úSGÕBê¨ô“FQF>ÖcŽ-¤A”€TËsH[QNñü!ÎL][æeÒÃ`‰ðM÷e¤©ï‚Íeîñ<™Î餯YšÁê¾Â¦)“±†„RÊ¿[ÞŽût3>A•`“ á+¯á¬±5d4µ¬¦çŸ@“EúêÝt)10Ƈ¤þ)ˆ8¢¹Œw·†îäÞxHžP.&T,úÔd>ÒV¨>7ÃïS¨úlêN×PBÁ£"2ÝöÕä4ùkâäý¼†²òRUX–t0ºux¬Åxíää¹»®”ª.L/(Í!ì2-«1}Œ@@oŸP†}Tµ:òxöíØ +Sr·K_”VY³Q|ØÉ¥ª^kŒ‹9îN›bÔ esžªlN´lŠÉ6åPÉA²1‘/pÛè¹X¿Íþ˜ˆ$Åì Äãk0@ØÑDÒÇøš2@…)èë°s:Vãpû,±ùZŒ[,?ɽ;þ@€ÆÉAúÈ—Õòb¦Ò:ÂŽB@rlÔËSsr†#è1.Ì*]Ó4CHê¬î%Ö‡ƒ¸¬óцÍK&Œ k)ê +°ª€ÍÕô«ÛiÒ"VÝ5kF•g©|ž¦ +ÇfÍT䉪f,– +&ÁÆó/ÝAð¨èh°šnH”Mš¿Šv›šxûäg]h<o“‡/It0ƾ$Q$„PÅ>ÏjªtÁSYÁ,h`D‡ñØÂÏšC[!Ê€)Ð(áCMóh'‹+ûW8Øh°Žkx1¯©ê‰øa³ ¶%µÊ£³{=šÛ«Qâ6!‚Eë{’Çî9 +§‰f°!¯Ö=â6r§1â7r?2â8R}Äs�œpnÃw˜MoÊyØ“dÌ{˜·¹§ôÏÀ1â{ƒ1bÿxëñ4æC_½[É`²Ÿìzä'Üæö ?‚ãЄ#Éù˜y¿'\‰]”&|‰íÝÎÄ·f”븓äcþ$Fæé4ãQbWs)N×i§ªè´âUIWܪ¢þfHþSŽUo¦Éß?½Ý”ètõ‡Ûóóë§É4Rª!’Vl† æ?p =tÏBk,g à8PÉ4Ô#aäm¼tT¶cq‚ø÷9ÜÂÀCÖH%„<·ZâûR +ع˜éªTCüS2 9¤[‰ßq§lű“Ä1Þ²Ú(Å»XƒI‰†”D³k¹ÀP($ÜÚ 1à,IŒÊ¸^s¨³¾Íˆ1è–È:¦Q qðÁ;É¡Ø˽ÄÿúǪ‰7@_ðyj¸•LCÙ1 ÙÖá–ÿ“2 ñ–kK¾€Î„˜ò‹ó¬1:9™®e>űG2N¿’qóµ‘6g@<{ô~èyÀ¸~ŒÉ7:·OJ‰“hè8TMxeJÖƒE#Fìz+·47F!±ÑgQ!´™)"g'¸™h¢s§ER�•×r™g‘u�”§Mˆ‰†<GAœ:ÆåÏ÷ mLþ /÷,ñc¬Ý”걋¦î#Ž£)‘‘6e¨&ð®Õq®å¦Æ™g¥)Ó§®©ç.ÎoS&8®@S-¯RS/S\É&/e\ë&/v"ˆ¦¢ˆD5M!›HXM¡¬H}òGБf}§bZ¢>;ãC$DH§¶tœh]µ19@ŒÄxͪB€·•ŽhÆ}Å{OräÍGÛSô‡{¸©71oôA)æñ†Œcݘaè´i†”52*b+vÙN¼Ösu–¡Ä˜ãJ%gk2ku˜ÞGzé´äòʤ|:¡*s1RÏ"ËÓ¢²*R§ëcŽ¡@ÇM¤áNr°ôœ¦)2ì:ÉPˆY†hêƒÊ´! ‚b舃eKGÌÓSŒãe&ÇËߧ=À<³XÄ<fŒ¸c¹Ë¥™)I†âÔan%Ó0ù®Ï“¯™³Ø”èïÍy}^E¶ìš˜¶ÁaßÖ †œld úèe\Ÿ|Ÿ;k„륩ʓÝÔWœlV5+5²9™È•dt!~,Ùw\&1ml¤~°£d¥]ƒ²1%¸Ù[[ï^C:eTˆÇN—6•äoÉœÂ0ŸrI“ÇÔÉüf•6l¾ˆÇJ{t¾$Ø<°4ƬÍ{9Ï]<ßûT'€,˜G*9$9ß…pÑ~•hLX-‹ðB‡6òcñê®8vXUܼbôŠØˆ°ò 4}K‚toÛ²Û<õï|Jx€FbÁà½.8(™Þàh1––g—“+ò4tqª,'Ã1-³7™K9[žÚ,†gZ2ŽN×Ñù;>Ÿ§Gøø”‹CIA5„‰±´1HÆ2ËX¨™Ê=‰='sâºSñj,E4¡>ÉQK†!e%3¾ +¶I0̆"Ka–Ó†ø›9’È̘iÅä‡[‹\-±½Äõg,Œ11ÏÄ;sqßøóx,`ϹLîƒØ5¬öì Òѹ 9²BLSidÇŠ—Éé̤²@ͤ‚›%ñÞÉu²ó>„ÈÜFãìä:™6!G¡ñZ-EÏÌ4:')†XuX›ÍN0uH®&»jR†±cÎfgú”Z08Éf×ålv&f³‹g„â€;Éfs� òÞU™z3L4Ä¿%]Jüg8ÑRsæªóÙ嬃F‚%†³_™˜Î.e¯æÂïã˜ÌÎÔ%ê\v.æ²³«ì}v“Ù ÊžàÅ<_1›¤Ëù"c˜iËÎÇ\vzÓ?ŽSÙõ’eHqºKI<æW©nLe×Ǭf«˜5†\´*åMÕ)Ó˜YÅLv9sZL)Ip8·ZvËÒœÇ.3Ú§Üa!¦y41BU[çªðcÎcgb»>æ±S1]P±'”DqAÆÒ«˜ÇΆQ;ž7¡D¶Õa";]ÙÙµ:§ÚÍ5ëì§Ò8g²s«ÜLY–È™ìôªÂ3Ù…UÁ2'²‹AØ’5']“Ðß:‘ïG™ìì(“]Ì1Ä+ÆD¶ÊÅfeÅÝ*/xENV…˜Ä®ê²a”Ä®BZŠd—(©Êa§r»ãa»6¬éó(}SØ%<¼l(g%B›ù‚¤°ëWÕŒÛqØÅüuÝ*íà4•e§Ä¢‰ p».%4îJyf%Uº!†œpV;Î !Ì Ú”G¹Ï<¬°°Äæ—K|0±ÁÄ*§LÜ41Óuií$ç—d�ø>Lmü0a´Oyó\'1úÕ¼«vV¤äJ•�ሇ$T•œ<Œª¤\µ*ÏEt(N §neìR™ñ"Ä—¡Z§f¼”£¬ÑI¬h¡K3&¦È¶úŠÞš1I6cšmÆDÝŒ©¾íŠfºošñÖjF[¯oÍf¼w›áÖn¦{¿°/§R•3'‹_‘ã”,Z1r):®‘K5S>&‡µ/¬®óÂA²hÜm§dÑ…£6#ŽÛT̸3ꦢäT½NúH´\2HÝ…‚OS#qn*¤yVš2-qêšzîâü6e‚ç¡7ešz¡êsµ+“;’C9››Ññ½Ê$Õš&Šî#±:c£Nª»X}¾9O´}Ti¢eWDs@52oC%µ4‰y7õnŠ;®©·œŒi¼m›jßÆ]ÊĽŸ%±Ì *imœ#:¬2£i&ܨ 3Ë*¥WËff}•*i¢]Ucšè”œ{á4щþƒ Ç‘›"Ç4ÑvÕŒ˜y“¸ù’nhI7´¤ZÒ -é†ô’nhI74&Ò%ÝÐ’nhI7´¤Ú•tCˆ“L.½§Þ,ðòHqpU`ˆú+G}²>‚»‰³ ÕŠÍ:›\û‰²‚Ã6g½…tˆWíòòWß•A„òèáܺŅyf9Ç<Î~ã&àª?ûh8ŽÈç\NRis?§¨ny�1º&?ƒ¤9g>îŽZcAÚ¸6ŠUdĤh%–ÖÛÅ=o/ãýÖ?ƦÑJ$/…qnKî›òÙwqL(Îç'ZRýN¼ÄÂ!{Ɖ÷NÌ-ÐS[Ñè£"‰sˆ0«]œ^%qNPñv»mŒº6ñ˜"‘Ü "^I}³äJ©þ°÷ +é‚!ö¾ÁÊ¡×ѪW&òOËp’#,«VdcãžV<…Uš›˜GWv=²3ĆU'iªpØÆÔ–C2Ø6ñ2¾cš+®¸Ì“uã0m¹âñüÜD+ññâ°ÊW0-?ãTÀE´k&ÇÒlnÑ¥!šr©3ÃWwIŽ²¸áµ®Œ™C)ƒ®s1v;#ï’ƒdšX|T|µ"N¡gk») �Þ'žñåø͘!¡Ô2ã,l´ =aÝ[u¦�øBÕ§7ÍR™˜• c)†¦¡kdH Íw%�)ZŒŠNFœË€´Aa©;¼Ö!uبÈ�ô°Š©˜[òF[Z•5º‹yþct»d·¨RF¹ë[Q*Ñòã+ñ©Tÿ]Ê.ÉñÕÔìÔ"™þUô#cvå¢ý>øÆ7º€DòDsg°xdzHÙþ�¦ ÚéÚtû×â`1Ìß"v1é?3¥””ÿŒ³þ‹ÇR•ö_‰äš$ÑgÍ szÌüo}ÕÂ(µ¤ÂPLºvtA£ûèzÃ%¾fŒš ÚœB[Å;Oaö˜¾Á\1[Ñ:±)p‘Öù²Hìí»8]LçÂÆ8†¬¦ØãM_ +Ô]TÿCH¿…acêÂÝ™¢|~ ¦ºüš “*»³å1æ¶àœ.£Ôè1éûÉ‹a½~ @\×b’õ˜=ÿ!þ•9{õ€Kiõ@|Ü…³ƒÁ`bNvXË€ëV9ÓüÙA%Z¦·Xô4e}̦ÎùÕ½JÝÑÊ(Iï"»²^Ù…”UHd"ÑÓɾäIT–FÉŸÓöŸÅ§xò‡o4ü4‘8u¥×Ú–ÙÃÙA™t¾!!HoâìyÂáP$"±”µ–ƒØû$Èd¹)À†nWSIê¡DZmt”˜ÆàÓ:âÚZbðá¡8ž"8w )Ž¶íWÎK¢•QAÕβ“JÍlòèÞ&I܃÷§©šÌkb7¦eÝL¤Œ*×æB¥èPÛˆ•Òå6‚¥ÔÜF´ŒjìÆÂeTÛ¶/Qs+S¢"¶1%Èb!“ +[‰™²¹ C875ã–Â&rLm.n"˜tó«w[‰œÐ¨·:9²hs±“£”6<©Ò¢§ÔÚTøän(~²n3áV[ˆ Xã-„PPÔæb(¨wCA”S£m!Š²áha”™ÁVâ(3 Ò"¾™H*,vS¡T8ú6b©œ"Û¦·h*çó©ä(ÛF<•.·PcŽÍÍETÉ;°¹*òÒæbªÔÛFP +ûûÿîª$]eBýJ®Ó$ +ÉIš×òpbàs]a¢YŽ£¡2«m Y!8c!®ËâŠ,~¸-¿Êè�I‰„~âï(2”NoéE¶PÍ9¨ÃŠ+¿iñˆ/ö»;ì?±ª:ÞFN·œàJDeOd× œk‘WV{4ô¹ÃqYW;:›ÝâÑý-¸„/ª›½_T_³²Ñ¼¼ÉÚr¦‰-V—ïà6__ª¶Í +?@à,j«J°¾âÄ ª¤obj"„GùÉ ÕPˆ×9ñ¥Ax–<\bDpÏ®˜:½²i§×â<¯–Ë�$A)ÉxNž)e E8¾„i”wà80½zz)óÛnÀoË‹mƒW:+¾Í\½°wú‹Fa9�àPt(X}ovÑ›Ðy~‡’ʪèåÍ3+&&Þ„@Í›Ì÷Vz²G´DTUÝ!gD¡Ö;¹€þIçå!—tA‹òæK¥ŽÎæ¶wt_{T€}3Þ¿÷ÖÄêoJv’OxcÂãm´)é1wØœø$?ÍÆäÇ“´9rµÍIð‘ÍÈ1ûÄUI¹8Š\DJ67øÈ”’Q‚#ºd³p¤è`è’0©�°|=$` ‰¤âo)šPâ”ü˜S•:f%½L™:bµ 5,ø5M‘ú˜Jû¬<K9|•2¸Õ@Ì +Ýjh)la`7Ki–ó:éèƒgFT´) (¾`œ’y“ÞjE%äì“ÉÞŠ;P']ïzÙ£°O°"MÓŽï–l-D£à|öÐ͸°â™¨Ë"»üì†îm¸ JrZ~Ȥ6¡¿*ÏÕ(µ6¦A©¶)¦Î6¤Cð7¥ÄXk3Z”™Ý”b̧d¦7ŠbÁá=Û›qÉ}q).Yñ`²ôÐ ÅõQ3ûwt¨S'^K²&–W†]º”`ûÈ€õIL//ØZÀ¯%ò0Äø +Ø=‚„6ŠòB�‰¯€ÚÔj‚Ò–ÛÑÁ¿÷Í$;ˇÖwŒx0‡·;§4âtýݤhßI‰R–÷â¬VîmÕ™A«ìÃéò +pÓ{ã%Nm¸ÈRmãe^KçÈÜD[ÿÞÜMO–KæÓ?Îï)dþãsÌÂùÝò©CœÁE$ø£…W*Ì*Šfäž™©[;„Òy$‹åžø¦§e4°F}[;Ä(\§ˆù©uÞf�‹ó,Ž$çžÔ8D„[% .µJ¿97zì÷g§vïØMSrz¯ ‡{ÂTû-GûÃp–|Ãñ¯ ¢Å¦ ª—´Õëð.ÿæà~Ò8—ð£ü°‰ÐÓ×Å3vR °¦iîEž÷R"õš~‹®qåvÔ‚öq<Ás`XÔþGO•”u_’å{Æß!Dk3ÄZp£>àý*‚†Äѧ6v©×‚W‚˜QfÔÇñWàߌwUâøâ}B°™ÎAƒát™4ãylÆÝK°Þhš1¹á„g3Š<À\f<ÍxƧ˜ót0f#AL™¾š&ÍÁ\i†ªˆµa½ÈH5 ’0Hfc¿Õ4¤¡•"~Ô†ôr<Á7zJ#(ˆïO`8±¤O]qâÆÖŠÉ&åJ„Iž§`%Q2‡r +dZF+w^tðº8]Œd¿ž_,Ï-áaÃ|ˆÏZ4·}�Ç&}t&HúaÓr² U` úñˆ®Òñ‡‹_@OQµOø—Ž©ûr;&~F?éo&\¹4UíÃÐlCRFa1¶0Q±§o¯ÓñpJÁ}ªÁ_Á7IÁ=áÓ²°©<×rü:bò8'#ö|9¨zN×j¢bÝrHz5ºãƒjô'‚›Ë +ïjB¨R5Y'õ<¦òHkD€X<{qoÞs25¢/–Š¯0Qš}‘½BÇà e÷‚kÙ u¶TG@ËÁ©¶ËµŽ%Is¼@Ò†7 "Í4߈BúÃa™™#üªTò’^/c°w@¼gáÔÎ=®Úˆ$©ˆ3´ËõtxÉí’êW¸Â$Ëw ³œ³ÐŽc‡ˆ/a&stÏf<n%€Ö#yíhÏKŒƒðöƒ‡=ÒÌT ‹|½/®„zù7s[*Æ¥„¹,§.¥,I‚xã©´”!U‡–Ç•[Jcãw–â4î{éåèææ’Ÿz19½»;¿½þ¯ëÓ/Ïÿðùâýù'yéE—÷`r¡¼¹½ûÛ/ãc0DO´¶–²V„lkÄ2þ»¿žŸ^þéôîöâßTnÐHÿýåÅÙù÷g§—×?ýáöâýÿsþ‹4×M{ü+‰¦ŸînO1üÒïÆ2íçËËó»U³::=ûÇ¿Noß2$nø´Œâ@ü.æbÖ7åßìÞ¾J ø˦˜BV1m·Ê›añFÙø¤¬ø'o£ªÐ°…\Ob³VÜË`$ƒ’iðÇù/š¬àØÐ"wM±O¼5ͪK‡&< XãK?`ö…Õ¥Å;QúÓ½c"Ó´bãp̘TW’¾“3LåéI“³JßRù¤Mž–œX>6UF +ó²–E-ý5õ@â‚æå\¥7 Ä+…iHþŠiùoþ_ù{³«ØëŠ],DÁ|%J@üJJUpú8àÜ~î$Žâø gËP/nê*þ•»°Î—Þøó2%N]E”ëÁÄ+\ïeþ» ¾5±Íø'Šæï¹J,{–Çw9Ò±ÍñÿC4²Ê»ú‰•ˆ3‰,‡‘àW|LCqp‹¸‰ÈË^�ÆÛp¤d +ü— ²ùGªŸþ(U¸›øó8 "þ–aT)0j®tÅ1i'ã!¦f‘^žéìDnËÏ|Tó3ŽøiYø“NoRCÊÓ)«<Ô1d¾ïsÝü;YØ9~F¥—OäW*[*©Uê¡áþ”�YÝïr烮#î2ݘÎH …žS†÷-s ÎtkÞTÏCµÑ{Œ³ðYN�±Š_Ø´e<¯ÃJú¸ÊU!Ðw1/æCU—'/ζîõhó^[xžõµ)n=x8…8m ð„oÅ·«ì›ä2™vŽdXž»w’Å8îžêçÜý“‡“w?>:sñ\ÙEÕÏÇö‘¼¸×^ÓʼnŠSe†ùàKÓ7™8®ÎÚfÉý¦Ïcßd«EÖªRFô‡·[Âçä~´‰¦ÔÊÎ�¶0ØõÌU¯†€ÈD ØÀîÂò>aLJÃèäã9¯ +4PÅ·5mþWÏÃo\Ù÷¹rÝ6lŒ‰‡V#©Gþ W®@ø-80¸<"‹á½¼Fó“Èœâ•5Ôz×Â)\IžÄŠÅp˜æ!ç—]WÃÁ‘´ïkÎ2³£Ù}Çé¥ +ùÒ'ÿžÅýÏC9½QñyMu(c¸¢5ÅÒìâÜùà°ÑH±ßtzÛjPïÞB^4Z¤>ŒG)µ0æ?tD@ðèbbvC,ŸBÛ)qË F÷âÄ>ZA<ÑõUîŒ<›:<&6ìùh›ž[L.mœê¨€''Z[,oÇ:þÃ{øOp:I¯p‰ÎY$I¾wæ9–WÖNÙ®S¼œ‚ Ðú.>iÂ/D+^ÚQ$`{*#‰X‘à÷Ãømè\Q¾Ã–¨ØX1©±ôfý~Òµõ½ûíêwß“ö{ýÓê7GGßœ}¾úëÍ«±UOŽN9ÖŒ\b½óØK™2ú5õ^3ÒßÕ¿W¿ûóÍÝ_ÏÏnnßåÿ'D®;ÛE/bôDµ?þæˆ{åonn¯äSÄ’6÷û›Ïß}óÇþ âû»_.Ïß•®¥Ô†³Vá¡›¯'3s<¿]âÛ›}É« ¿N‹„á´¸ÄgºžÍwºk-?ü£à©„[ƒ‰ã(gçÔ«”—à2ºGœ\F‹/ÅbžXÌ;džð.JÉ1uÄ@{r¹Y³,W‹Æ[üÒ_C±¹Â(6sݧ—š! ç¢$7[cï!¹jf[ú:¡Öä2‰]Ø÷UñZ@†’ó¬^Žæ÷B:8_<ì¼Fbvâ‰3.óURLc™`'5Láj3> ,!ë@¹&w£K#(GXàaîÖ¥§}‡ãxL÷Au!!¸âLŠHàìMgØó¤ÿ¡ 둬±e7@„•v#ùÞð8¬ªƒç¹Ï¶îóhã>q@‘àþär·IÉŽ7ÜWˆ–Z–§µdóÓcÍJÞ—É zù‰ÌÓóõ¤Q™º®zãkb†N€uSXDádŠU:ÝʨùÕãNÞÖ¹¾—Âõxr?ðW‚jì<Þ¡ç·&µÒƒRÕLMA¹Ë5 ‡ŽH&í—(“¡] €y$;™¥4ã&¡tz\3WÌ9ž5ƒú2m¦P]oƒÇÒè E:÷, +ÍF«Róþ(4¿¿¹]îY—{ÖE‘Y™åžu¹g]îY—{Öåžu¹g]îY÷öžur«zu0½BmÖ\´®¹Ž}É›Vða<ÙqïM+¤^ýX]‹ ĶÛä¢uÚñÑ?Ó=k³æ¢µ¾UmÖܺÞ{ÓÚ¬»j^PÖ˜Ó*ëaÏÙºnðœ*ªºl]ƒÌºŠOc è^´TËë³(NÎ?Ü-7®Ëëb¨XËërãú¼7®xø‡3]´ò< d#$•DñR‚¥;×–Æb´ï”®\«Šk@¥ùªÿ§¾bUÂCXlKÉÁ•%¢ÕØU"$ oXù³{¸ª\2 ïX7éôhãNq"YK‚ó‹Ü-?ø«ß|ÍÄ`éí¤‚¥MÀº z³”î=«Š5¨½”îÜ*P¬G䶃Q–éYÂ4V¾Ök{æ“ZöX[)}¯@e�H\ëÍ:È`®º5ó7î=ìAÕâ)4‹éàX³˜bQ€ÙªúZ`ÁC.ZóìÖýÖ…ÖMÕ¶êJ“˜rž9¢ú€[¨gPS¶ÔRÞÌ5ê_/~úyQS5eQS5eQS5å™Õy\4é1^FwµÆ‘A•^’*®-„=?(!és£;AEÅ +B÷)*üÙ<\U'iMf+*“NǾ wú\Š +;ZƵ‹z +ßôXÖŽ?׊@Š š EÅ`/¾KÞÙu J§I‡ ö>Pn'häëŠÔbŸDP]]¦œ,Ø�Ón‚;CŠð͵ŒM³7ì|-èÙu“ Â)ÄlŒrõ)ÚVk5êU¯Cíe2÷÷ê%¿z…àïm`Ñm`Ñm`ÑžUH’8üΦ(1!¥±.A\ðÊ+ ñ°ò¶¶muXÅ0UKºÂHìðd:†çŒã~b6!&:2¯¯ ×D|˜Òþ�±ÇºœÆ‡=Ò%&=Èiÿ4AŽÚ‘´Y'ð8D ˜¸Iú:H7†p`\vÑÖr½ +”o’8ZR4Zšb“UƒÁ§–“ª¾KGSPlÊó1…äjÜvÝÌt÷�ÔˆãZEÏéc$¯À*~kŠh˨Å8¯d-f1tl8åkÆó%þVä·ÐÎK®Wåè¾ë¨Ùg¸ÇØh9Þ’ÚrwGˆ‹Z}w{zýÓù—Ńy¢<�·éx"‘HÞ!g~5¡;ÚêìZ<ž•�-R©¦Mþœhr©—9>`¯@'\OȤåºßñ båT75_:œ zïÁ§‚±Ö3—Åž¶ë<ùÝÓ€§Im°Á¦ó$`N¼‘Šè@¡¡«¶ @H©/ >\NÐH> +¯Ø°ï£ú& IõÚŽÏB1œëÙ9Ãn·ÊdÕ…È�dqzèeòâÎENM”‰À$ˆÖQó›, Dm"X~ 7ZZÔôwú–j§Ê™âïšL‰¸VW@͸٦Œ(7]Q|îy‚lΪTm…$Ö;¦f৬ .Ž$±rz€‘ÆøʯQ¥rÕž²ô;®4nµîr2 ɘ'ÈOñ¿OÃ,þÅ£aó):An‚~=RªP~žÔ?ËdN'|²,Çõp*¾z·+Ž[œt:ãpˆc„Æ×î¸F=ŠÉüݬ5áάWóÓ™ã¿/…\ò-²˜Ó^ær=¿¦'“â÷²ã^G%4˜Þ®rƒ¥¦×ºq®w¯:~ºFá±$_‰õ¾xÁ´ç÷'»Ã¾¨¡´.Äë´„F=X·ïåob„wx´M‡ÊËÓ‘#λµmAz˜}“æÓb™Ãbt’¾¦'“â‰u9'ðî³æ_%@üMÌ£«Z^xþЄɀi‡TCÌò&U~ ]¿ÓŸê9$aõS‰°$Q…Wx’ôÚ‘0ù“ø% Ä&5\A@×ø£ÉŸSÝ•S³øAgTõK$ÕTpÒLÝÉxÕèªaxT.%6ÈO’G¹ÔxâŸGááù<ê¬<‰,N‡¡x§q¥ê$"Ïrc~-‚îø)®‡+÷àP“ؼÍz>Úªç¶ËÖÁ§‘JóZw|±éÎÓ’ê¸ÞòöoDùGËzË·T•kæ5îäÊeð;Š¡¹p3nª©ûi&£h†£l†HÊ¢g!k¹Ã¢Ð)¯n8•ýö‡Jñëæ "Ê?ð•_6MÕ¥v¡òÁ˜b_ƒ²ã–ên&ƒrˆÃñÁ§Ç„ËzTY²,HÔ#ãeë¡AŽÌ?OêŸeÆFS:n5„4b:¤¦A+“^†ƒŽiŒÁ�¿Ñ•®sÏÍÈ@pìªG%ÓÕ¢âÿrØdFÍÚÞs~Z€8OQq„ÃÞô(tò¬/b(ÙBœ¼PÄ¡³¶»1¾¬çX´Í[w&ÍÛˆ9‹åÇã[«&>.¯Ø—ÑÉïãƒÁn¨ÚÍ ÔLÚmÖõÞLÆØLÐh¦¨6<xâ3MGƒ³m5¯Ó™F¢Œu/C®Y’HÃE!àËŠÌ#õ6\š6iqdOo³<¢'n±@¨¸Ý6“‹¢X?V¿úCyƒJ¶Åm‚ÃcVAeHç%ï°ƒ‰šN¿!¨¤¿þHó‘*7RÛ¯Rûpvài·[UH–íñ wn%XŠ§îSí4¼1Ç”æ'{•eÑ·õ$i-B¯×HJx[Ï9JÒ§øƒ¤Ç +ó •‡Ç‹kÂ*_y*c¾“+L%_OeÍ–Si<üz€Àøwú–j§ÊyââïcÐ^¸ËÒ?ŒÐ‚´~£õôwî:UnÆí7¥ƒ¨VD1sxµSÖE‘Zj^ž†K�îÛ§qÉ·T;U®H"vL¸øó%HÐin¤…ô›çMçI•©r3n¿)L@÷K‡ÒñUõkܳ4ªGˆÉóôCäõj<9eâPz2¯“™Ÿ`‚j“)˜LRAdüŒnçóÉÝ#HY–GIÊlq00iÛ€3=ÉÅPJ÷5$W|š”¸•¢êm|\Ø´vhaÁ[ÜüÐ9^ãƒJ0²ÑéÀfª+ÛV‘º¡|´mØãÑ=ˆñ°=?ñµ4ßÝÉ2àYqÆ:y�:†øsúz2P™†|üÐ×i1y©-ÐFi{\a-èELD¥SßFá'´&âR”‡×Ú,WÿŒr +‹þi-E¿?ýçÍíÅÝØ@ôQ•xú‡³ñ¶9Þmn¼¨:Ü,ÐFsüœhAÇqà¢�àÖÏÔö0r]/ΗÁÁ¤¤{yã’*+N›}0ü¦¶d±Òòûø Azä®7ø±Ã›’¶ž¥ºô_æk8!F<·šÆ&î¥"p.d¢7|j…ß™MÈ;³y'òHâ÷ÀãHF†!~˜ÝV³êøÕÑ8- ÏœéÊÌ5<½8Zªñúôo.Eý’ÌwJ~^·«ðDfs�ŒŽï{¦Rh)cÊBó8{XÆ„YZe$걺€®MBÇ=ò7Ü/¼èî3£W2!4m(`tHØM4†¶õ!µ!o¬ðÛ¤f<! r,Þ€¡íëRŽžÀïÃ@ž66Ôk/IélWJüŽÛàØçñ4 @0}<Ÿrô» yñ“¯]'Σ‡ +W¿4Ûtr'º‘§I]á@ëTMp“y¸\ÄÆ"xÜJr#nâ3µ²–žämÜHú.°Á“‡ªòPÙß3´xÙ8aÃ[U£Ì³bˬ`Þ¼¯æm²ÌÇÓ•¿ß™õ™Ÿyí0üÐ+ýkVoó{¯ÚjQEvë½×ÿëürè'ÏLøÛçbÄØçÚË“IŽý¤´‘гg £m&¬á„t†ß®Í¸F3nwBDŠÕ¹~•�ùwªSª¤fS«©O£‚Œ +OZu7ÎtÄàÂÝb÷§¯$»*2þåÓ6%‘Œ$=µbB’AW f\¼·HåÙŸ„ÊœuÌD" É.ͯTKM7¹íÔqÃix4€i^¿šÔHUÍNúnŠ�ïj„:8#üÒãâËW-Om<8)Ù”X?g`«Ÿ"„Ÿ‹Žù¯½dF;t¨2'íÙï‘ JÎÉtèÃÖqù ÕLór߯°G”|ò +‡cwÇü½aöÃIÕâ)Ê8<x~ŽsÇÁŸn<)›’Vvo4rXk¹›–…P¹K{ØG.³Å'•* Ò{IU +GZËa¬¡œj‚®§¢ñaIƒ¦å8>.x41gD+Ó9‡Ðµˆ'qH¶í)ˆRš= `y0Ü·}—ìI!"Žƒ“§fàÃ[j‡§Cµªã÷Ùñ”7m?~1œôFÎÔy«¿Cn¬å~à7兩ÒÂÙ’'‘t›•pÒð)6gÑ©hW~Ñ^ï€ËñA +ÁzñÉ¥¹ñC@`-þPŒ†´xbiñù>šÆå4¢ûB$C/›c¹àN�ÉIq^Sv…Ãcí aÕû¢‰Z¯[ˆH‹dê¡s�š@¸cú`ÑhÔ´Œ¥óðr`uL¢˜PS�!N:Wzp°†‘ÌÓIBVÓÓ¹?ٌؤËM©ÓJ\â!(è‚l廞SÜ|�¦ ²DD³�rÊо´"º¤ž"„ø +‘%Ü¿Ä"šL[ÚÈ?s/’H# sÆöy2žo•wPp¸¹:êùcã �„ +(:;•1’U¹§Áñ0dZ¹ú:ß‚´Û:ÜÆYÿ§Iâ3w*„ªÛÀÂ4®V\¢@wØéÀ;‘0î} ã–8L€~ @j@íâ®»´<Aø$e?o¥®vÜ؇r'àË0ÄQ¸–MA¹ZÃ-‡°rÎg$/¸ÈDA˜÷|ï’†TòaÏÓm:l‰ÿÐ8F,v¼äPî•ëwp}wûãªY]~n&•¯jîþ`…ŠRfÓW‚�ÌN2ˆóÃ>ìúÌ|º©@ ïJñH-âM ¢M‘bAG +áD鯳ƒñ·<ÂXy<â³·@Æü¶Ü3“BªƒüD¤*Ë0çpgVt¬“H…•ÍÅÜ—6 +ÑÕ’þÎïpÎqR:tO<ßÂV±ìÍÓÓ›ø¢áSA×N£~l§¦uB~èÊ´8 CâW½6C~HèC6¸"í Útª•$�Ér=K´ ¥#¨$†–›¦æ;Výø&$Õ²½‡\Ó•šåwn=ÒRiˆeüÇ.³®!a•Hkù®˜¤i#oÏðí×D#Wô¡½ôƒßž!¯_Ý#Ɖ«Ç!Ò$Qï‡àGˆy/a{Ð…Àˆ¾Àäè´¥ýåz9NùY(È‹LüM3Òž$jV¨ˆ³v|@,u~•Z€VæÓ¬ñ_ÇüžFï|È †kw¥vT=T°8ŒÜŽ3 ?YôðÛE"ÓüÌDͪ@*@I+ª¯ƒýHÞˆmÏŒOúëX˜UW¾%æ”*§ßõtePEj£‘àãĘÈvÄíB«'½^UÀ4´ñÐZy=Âz:/“ÉãzÓI®×@ðâ0ì +ëÉ”Lß4úòÖßeíNóí·áÛM8žÉá0ܲ÷.¶d£4ü¡†$€sÄð«2>Ѻj%RWgMÔÛhfÇXM}e+,2 R*º45ÁmÎá§ìClúYd2ò'b]‘A;ñ3—Ç[2‹Át‡jºÔMŽî"u·µé ð³¢}ArVÚD7 C?L·šCKÂU!Ojjèªv2 vvvPÁò ¹¡>Ù8Ro ¦©8¤\(:74Æí˧›NâûLxú!¹QiÅ$e“(ÚÊÕqÆ%¾>$ðtI‘A=B±¼\-§”AbKƒÙÉ„.d¦‚í]U¦— øÒJ¤žÎ2¡ÑuWZAÂÛÖT=%€L.¦”‰ã-Œpúò™…}! ’R$þÀ̾ÀùjIË0ƒ÷Úzxµò^D\g6&±Â3CŠcÓ›Áô�㘉^fDû´J¬¢± +;c³U†Y6‡¬rS¤ÿt½ ¥»€¹4) +±•1^_>¹©™ÊƇðҚ܎ÖOóƒKVsW5£¨$?ÚÑ^"âĉêª@úCB<‡-° ϘX 2�3É0¤ aCÕNd@ìˆW'C`A\åF;_LJ%�LAq0 T#ÀŒ1zN7@›xqü9&éÚ>¿‡eLk4DpVƒÕáŒqKŸaáà…•»oÙ~¬Dzì f +„¨±'®Ë¦±\JÁ~Y0·”!©?lö#‘ÎèÀ‹[‚-˜9Mî/AÎʨr©<òÜÒ¿§àÀ8C]âÀòru/Nsü˜Œ…ØwÉœb‹j{Vg†}-ל®ëÙhÉ'n'¦›~c‹Q?AÄÓÓ–&2 wsvP`ÄbaNˆÉEܸ£8;HcÉ <þØÈŸ' f:T<æâßxtÇÒjpÌïRx|³Ì1«‹#¦fvņ�Ë7[tb†Þ±¡™Më—}ÆI£C?1ÐŽñˆ'»kæûví“«<ÄMøÄ"8Šü"qà†ØsÆ5É’ÓÇ› 3Öˆ*Ê> ¥pUç±âA‡«<?Äïá¸a9ã‡ò ¥åô+ü‹‡F¬úN\»ø>Ñs¶$óáoz¹=LÛšCÑpe2œ·³{#ˆ:ñk{¯ø:NNìÑö¸£Y3FB-]ú@öÙÄíüDFþcŒ8‹¹x|ˆl8hÙþZP[èdŸ™¾“�#K\Ž¾àºüγH>®ëÑo÷5Ò˜©¼ë%$&"9gضïçu?;¬Uèäš‚ts½¶fg0VÞû œaÞˆ‰Xqs&uŽsöÑ|B9m´,Ïóð²÷´v¦S]²-3(=H€[˜ø^«ð +b'÷h4:ÚþØšìÄÓÛ 7ÿÊÌfóŽmõ-6—ƒS +;ˆéâT?¦†œ„*„SÀ%¯ƒ«Hüîå^¿áPs¶¤Ä³‰4(\´ò³Ü"+óUn¸x]‚,NN2@G‹ÈD|c¦Ct¸Âh™}'ˆcJÞ©±ã]O€"³ "ŒCm�Øáø€¹¤B}f’@‹U™ÎÜvü‘ˆ®g’ì{Çÿ²ž�ßS0Pïð6OŠ¬µBd¸`cÌ1‡æEÇN`ÈÍ¡{EÍ^±¨ÙYäöÐÌ7H×î ÈñLðÔ§‚V?©gI¸pÁ A/÷uG"½x¹¿¡iÆ}ɼ¾Á:¤Nâ;N~KΊü8|Y—îæ1wØQwbíc—Ó/c[Òó¸–‚‚½~}.âkkm'¯ãmu/vêN2.á`6^Ô.>ÎÙ1R±$Q_óv¦;½b/ξĥ$ë£á, òî$?u×–Ù,¡aÍà«B/ª¤râáÍ�›}Õ‡ØO^îÚ‰8Ùñ”ó1@HϸYç·_±½HîI:÷D¢`H↼úҊèÂÎøÑC´-ãæ‘N[É/È6-5!núN< +3·5épñ²4ž6¥ŒxÒÖ!ÄaÔÆ.õÔÙ!«¢ ÚÃh[ý'û/´&É·¡Ø€x«À6äwÃ:Q½Ööe› 5ðqí×Ô&}‘Î~ÌhÅ2êyv¶Çµ—qIkmûy±ÿZ'{*ßYy¬d\¯ÓŠPèA\mÞxIÜq¸eå\†#Ú¾˜ol¼0ÏòZ éJj_›ksºËÝ8›ÊàÚ‰û\èE õ´ìÐSíAVÁØ”‹ý¤{±ž±-Y¶˜êÄcL|¬ÓÁ w¢å�`Tê¡r³n§Ù> |†¨x:vã;m'EØ‹PlÑè$åaÃ"EV¬!Ô{A+äG±Î˜±SA©¶c&E~o—¥žÜäØ‹.ìUvE³I¾^ñò´çt·Õ[‚a‘X ÿF(Ñ©å8MÈj½dDétJ1Z%3£V–ýíiÚ•˜i \:hµ¨1Rá±!„˜ã<4WŠ¨¼36ªÝ©Ž˜8\úˆ·ÂÊ+Ï +³0j<jiBh]ÕuÉÙ¤óâ¾¥Œ^[Õ¹œqÆ#¾ŠkÎ2ñ.ÒšzNÈLôdqù¥ê˦«ó<‡qp/|]6·1qQÔâÅþI8òiÆ%B¡r¾ó®‡<Ô¹~döB§1?žˆstü[n·‚Ø[ ÃÓ‰ølÙeØ©Ø&"†ûzÙ©F¾À‘Ó¶ì3 +áDÅ,‰6pŸleËF‹³?Œ€€E&è…†�é;%¥Œ„´ˆBaw`áMÇì%+&.:[[GXÐo…À�p×Y6Æ'nkaò䡄¬â^†˜Ò‚kG§¶Òh¨_cC1rôH³Õñcâì¨B +b‡]Cz1+ý–„6ÛˆÒvü_F[œÓPÅlCv'•niñ`+¥#•¶œ·.Ù8zp%]ïVÌéõH®Št§XÝÓRë*ºž•^1˱íhîpi±ióˆÈW�m߆/—46[•ç`ponIæ{]þÎyU=7\]Ö».Z-;C»:qÞ%í±g + §)v"ïÄ[0ýÉn´b4üš¹´q}49ô8¯±9¹!®„Ù¹W[=s„ð³MšŠFlŽÆ ’=Nd˜V±ƒ`w:l˜«ixÌ÷Ñ9´løÑ‚aô|ñ +œY¼’5›ipÁxŒk‹–¥ölãe/\ÀÁɘëŒ'qk¹‚³¶âæ‰z6Ò÷àD6ÀÐÇF¼TáoñVGû"ºke3ÇÄëVR7I´¼IÙ +Iý¾×¢›ÀNAo©Ÿ»§¶æ+"ø+zRß9"ëˆ/îŶÁÒû¼¾ðl¦ñ¾ ѸaÍ}Uг§�•¾‹Ž2sܨNìŽAäØ/–.6\£g`œm‚$«×ÖQ–>ÊðÐ?°ÅaÀÆéJû„Šû˜¨’^ˆï°Ü$k³„òFTˆ‡T\¢ƒq‘6r§J‚�Â(𮈘XÀ‡ÙñíVbcøôDüÛÃêe8º‰~¾}1äϹÖáþå8¤“çžÃ[ùbCñýø‰RÄ�8ˆi%ëx{ÈMvÕÓœßKh8¼–Í»ÄÍÀ´ø20˜c‰ßçkk £ïZŽ~ì8ó%õé%æFA\Ó$Î\‚>èh”{n[Ž=°¤Eð¨¶âøf˜ý³lN³ÐKÊ3ãœ0 4¤Iòˆ<Б?Ì/´ˆ–E»6ÈÂñ<Z\ƒàªÌÒñ;¯[ìy‹œBQ>°UyZ±ƒî›²À¼t4w¸¬ÿ̉(ìÿè¿\ÊØ|ežÅ ÑÃ4=7‹ü31‹ì8^?fÒ³kNŒv`Ç®³ç»ì>ŽÑÁÆÉ7ÒŸbX®msíò;u :C„ùdˆÍ _mù“ã™$ö-Bʘcõ ÷îc/—Ù1‡¢–à“â„vDsJ‡ZTÁH ֈԓ䊬`ᎉ¤a;ãÕ#¦'I-X9iyÄ9½ˆâËGmàÈb¨í‰7u½–€ûavÅ »>Ú´k®‹{+w'qûý}h›º¦N ©Î %x£nALòfÐ&äįDoLP[§ó˜E_Ïäó_%ë0Ï“¬C"TÖdtmŸ)FY4F1*ú‚H�÷ŨTß–•½QYÂSR–¼OÙ:QÞ¥²D©ìS”ŠÓF©ÀÛg¤Ð#1*êcTÔœöl„¨Ôˆ=Q„Jß +M?r”Šš¥¢«À‘«VG©¨I”J·G©èö‰¢T¤¡A”J·šD©¨I”Š44Æ퉢Ttœòô#G©|i˜Š‡©øI˜ +_ÂTH‡†©h? S!Ð LÃTü4LÅ¿B˜ŠŽžÑéGSéž2NE£a*O¤2Qážö?BE4Ë:B…!u„ +§ˆÙ•L¡’È*5FO¡³Š4éGŽPé^$B…qF¨ô“•~M„J?ŽP‘ÙÛÕ•^%î+?R„ŠSO¡‚Ì컡ÂYâßD„ +“ÌÃ*~F„Šž¡¥†¡¢F*pŽx’$’úÒä ßÑ /aü„ǃA*]ùÐkê¦ ÿpJ˜×íCA*ƒš©<<â%H嵃T¼jû¤Bu6QñæÑÈ*KŒÊ£²Ä¨l£BS3ŒQ•³ŽQi{7Qi·ŒQƒÕ FEm£ÒbTúIŒJŽQi'1*zÇcT|ŽQ 1lƒ_ +…³¾l&Žñó£TÕSœJX§’ªêÔ̾S ŠJ*òDë´&Ǫ„ù±*£êâS°Ê¸.Á*÷«`o<I°ŠÏæ`•hÑ+Á*f›`–FÁ*º«øI°ŠY¬ÒO‚U¬`õx°Ê`_!XEGs‡’¾ëcFtH1#¡Vá:1òãþXÜãI¬Š®cUº«Òú™ý–XcUôúøĪàå”5±*Œ8†ªx½„ª¼\¨J«†Á*êÑ`; +V±£`•n¬¢GÁ*îñ`~XåybUüã¡*IÞÚ•P%‘*6EªØÏêS̈ê‘*9òcZ5Æ©t!Å©DÁq*Äþ%NeMÅu}–8ãT캊§‚ø9‰Sñ~§òÀ`ÇQ*8¨–(•§ŒRñý3F©Àx9ŒRaGÅG£TÔ$J¥›¥Ò‡WŠRLâ.D©¨¯aÔì(ë××Þ0JåѾïR™T¥r߸—(•Rq¥W“a”Šz<J¥E©týæQ*x€ä¹£TìÆQ*v¥RÏ×+D©^èc”JéRäFx4H…Ö5†}´jZ9©h—‚TœÊA*mƒTì¼^sŒŠŠ1*ëªq„JX òðPS€Š_Tv-@E¼xîP©¾~I€Š(@¥ú¸¨ìs€Ê}¤”T6$¦ûTî#§ ²!A-*kTþúý÷ëãRžá"yQáplg÷²"M Š±–Ãb{^c› ã3àŒåÄ»¥ˆ¶‘Çn䶆Aüô gÑ6Ðý ›ˆob(¹LkndŒ6ÛzûáO'ÿã·D_¿9»¸=£åÖï~»úšŸÄiAô±Zö“°.¥ärþ2’9€A'� ,÷üãå±Ð¦¬¸±ôNž…ìá½=&l£=‡–(JœôÙä¨øHr.ÈY5äAö¡Qì=Í~1?;ˆ÷Xq‰j~Q8ž y^g*DÙºíëRða…ì?‰ÐŠbiùÙi| ^¬S‚7ô‚ƒX"““Þîõx]{õªc¿í^HŽ†s<àÉK<]†Å1+«ðä¯âÙgàNÜÛvë¦ïÏOoÏ~½G-EÏÃG`€GŒ4t䃺bP€qœ ²lÁõ+ܳT¼-ÎjfçŽÍ�“ýÙáI3:²/yNÄÎϽmÅOƒ½‚HÑê\'�8màT€8$@ytÎei‰.¡±Yc;æ'Þ)Ö¤lïZ¶²pŸü4Ʉü\JË› ¬"ѹvÉQ +¬á6(mx¸¿9Ý"înÀ/ûCÞ†gÓÙ¹dšÄ¥ô÷G¨|ŽÿÃú᜽‚*™¬�7^“õp‹¢jÓ5"à6«DÕ¦ëàÆ+µf¶Ðοóìó²|õ®,ÌVCœf{pÀå7/<a'0p8h¾„’°Êµ|¡`uð„‡%äV(á>Ä‚£&ï~àp§4ú¿×oׄ¨Ò<ß»õ=ÔqŤåp]Æ—¼â’Ÿ@ˆ2`‡i˜)@°«ô|FÀ8âñl©‡š…Y܈̿:«øøgm¾Ã¦ËöÃNɱÁ½p@ÁÜ‹'rqw¿!ø†bhl›1ÉWîgsb‘ðTóZhƒ#~iŠÝ&½Sd´K/Ýò»Š“hªÞ •²ìÉÂ’{Ž™ƒñÎö…з&#=BlË4)È‘9ž·©—à,fQ¹«„ú±7ˆ„:kc–}ÒÎxy±oã1Ô Ábv8?)‰éÐãø±Qy-RòâJZrØc®¤ž‘‡[áã;g‹¨Rë°Ñå•`¸õÀÕƒ4,ƒÉñœ{$2ÄÀ—â [©}ô\O‘~óêüW‚à"¦{Ãn犣›[yIW³óÎñ;Iö¿70—Á|ŸÌQbßÖ&ù6w‡k¹’f§>¶ÂI«ø*¸e‘·–ŸÏ”§Ü™UòCíñ]€¼‘×8[Dž5|IDh.K2^µãÉ:>ü¼$¼HiI”îg?^úÉxß“äf=N'ã{|ðÒî +Kw§·«fEÚá/#‰)¿?“¿µ ÚߢGÁŠÏS~‘úä nþ n£-ƒp-©;~+˜…. +ò-{˜xb¾Ý²Þìz‡k¾¯ifÚÙd@e¸s‚±‹Mû[9ä0°Z8àÁê㺳±¥Lãqc9%šø7l™¸s¸ñlá…>(‹Ø´Ùˆ¼Y¹Fƒ«¥ZîµmfKßîH8ð`™¤;’Þñ¡CÁH~u€P€^"H ›ÁOä;v+,\û(—�ÔÊüi~d‹oú\«{žRƒ7§ˆcp$Ó ÛÑÀÌðÆuàwhá(¨82ž@V‚èá6øÉYëØ<ŽÆÆ+ÀTßÉÛ½“ïͤ‘fÚQ3M3r³±f þÍšijÖÌf5Û'%€Îf¸BÛVqg§îOÒ÷Ò)ê¸Y4G>ŸðÆIÉC5¿fܲ¿µö:þ8¨;lwMÏÕÐF?f‹K”ø�ǯÞ銸å`4Äë¡ÒÏ1*hµ`*Òö¸D3j¤w²n¾Ã=9Fƒ[å>pºöJ¼F¸í>¦œ m»®c˜DiiÓG±áê•„ðàñy\ mÙÙÑH” ßù/1q7vÌ–qaó‡6¼jŠ=R¤¯Èï8*Þf?ÿ“xþ5ì˜ßÊ‚±ïKO �: c.Ç›Òâó$J´tÆÆO¾Õ˜8à Q +´ ¼t2©“,ä@™D.~Ñ°ñ¾bâ§OÄ ãì!›[ˆl-î‡x߉iÙ‘±Ã]üh ü€�\]8g2œžä²®jgÅîBÇH+7GGg[÷z4·W\Ey¶…ƒQÁS»¶…ß'•¤3¿]Ý\}¼ù|ý~õéçÓç««›÷õÿ°-} ]‹u|DÙÑ6«¥ÛP·˜ëGô f1¡pR)'4N"Ï”Êy+:g5zBéÒ:³† µGcÿˆÞeF¿fOî7âo°t•M]½ˆŒúÜ¢äšìRŸ¿Tìï—$ÍC’${¯‘$»(IŽ¾ÿÿì½×z"I(¸/ wÀïÊœð�yƒ +(Œ°ÂôLÏŹ8ß¹ÝÛ}–ýöönŸâ¼Å¦©‚ªÂu÷L÷LóÏ?ª*2"322LšÈ=IzíIŠßìJ’xÁU„±!òîx +Þ ³ú€Aµ#«šƒbÔÄʃrŠ^$áÁD†ë§q&¿;§Î‰¤ÐÖ½I¡I:'’R¦Ï;‘4rÛàƽN$ó#œHæ('R[›Ï8‘†öûv°É·ƒ›Ç9‘¢øI'’>äDÒŸp"õ”?ëDòõ˜óé}Fú[|FcUøŒaôá@ú&Ÿž€ù»|FN$ûŒx_äù£|G=ºÏùŽÔ–ï¨åØöá_ìʼnŸõá¸D^s”ëHn\Ço š8’èO÷õÒýiÏñó2þYÏQ/š{<ÇÒ~Ѓ4¢ý¼Iíð õ’ÿOzŸ÷çí¡]ºšÜù.®·ñx:\¸†Y?ñŸò_õµúL(‡fýqJýÕ>3~3Ö V~Âê|ÏÁslp +MâSô@B€Û=›Gp‚àY©Ì D24J€"0xþΚ„ò#¹iùQ~!I"}G‰<‰‚eì’"T[ +ƒâ¥^O>ÀÃßpÃT6‡S§lM3r4t:!^Að@¹¡Pá‚(GD|º +Í/ªÙáZ)N÷Èœ ¾À}ê[üHàí²˜Û(¿�L¦AÀÅQ|²åS Q./‘DË$ÚDA¢Žç· »IÚg”#`‘?ñ¨$ðq†H m¥^†jháF_WߌOŹI +I)â«æžÄÿj_`Ô(=<‡Î©Ñ7.(’Fû’á†A®íÑpcº]ß5 +Ÿi”ʾáqâô†Dù)üLâgž^?"V£¤²J65âÉ@ñF{•i”· +êVj¬mú/:H™p›“JÛ¿eŠ¦sq˜ixáù�ÛÚhù3Œƒ‰q?É:[s›y{ßd)¬îa¦n¥¤5åI[¥-ááKìE 3ÖM`ÍÚ’äŽ%FÀÙe‘²Tà¾ttfŽÆ®Çc×Ì—aèxÂÕÐ,…ËÝ2x˜žò@ÀƒóúD²ð×I_žôåI_þ ú’×àpH - +žd”ÝwhOÄæZ,èÜÃXA˜ÅÏÏ°X}Ñ2‰O+o`2A,À8ð ʱƒ1~”3F~8Mší¸Dè주kÚèŸg¢‘ºB/à_´KEû¾Põ9üM*ÏÁEdà¡¡D,NUGÃ=²4Ìû„<qaœ±‰VÎW*Œ€HT¢ãÕ¡ƒ P§Ò€×Ð)ô±¼˜ž’‚›Ývx¢4B<4'ÓŽÃÓ,T $Ž‹ajBtjOÀ÷d +´@àM* ôæà¹|÷Ü0Ãî,JÒøT/PÃÐEÆã|#ÍÄ‘4 ¸µŠE'–@.êR |t~a‡Xn^~J0a<ûiÑ´5?+œXñ+ž¸-ŸPeÿÞ'EÔ0øI³¤ëÕÔâ•Ø(òx«#•!Ü §Y!OÐ>Gšv‚C†C ÚÑöH4QEßÃë^¡ fUâ9”¾H„9R�jNyr¢´’xN SøY§Aýë<§(CÊÊ‚N:8¿#Jå‚vYÁWh&»_)‡¶!&kE¼mýÃîJvÍ¡ÙdR}VÜ8t )¿ðp5r+D¸E ]™NPoóè¨52‰Ó9£f¥3´%V€®‡Àà¥x™´E°„\¸½¹"<vEpÒ\øš ø†B‡Áa}(Ê!G -zFïDýµwváЖ€LDÙáÁ8'E´SS$vi((a2©pÓÊ—BÃstèæ-x¤EÎ0Ç#‡Ž%ƒÁ2FÞ¡¢<ÅáA)À%ÀEÑU›Ìu‚2¦ˆhvð[©&Ž¥ +Sè"s‚ÂYo´JŠÔ§ Ýá|¨coeþä¨j`kÜÀQ¾5ràËÏà˜|Ëè±5wŒôÒ8‚ÀËãÇöe>3ŠP Ã8ïŒ# ù_ú±_GzgOðÝ‘#jÓÛÆ žÚ§SJYŒvtrÊý +è™…›\ñÝè®— +ÈÅC)fJaÎÔs,Ld§~Q÷ÿ]Ž¼áÍA5†#Cåуû]aþÍ]SnH0˜ó�T˜GæSBGá´-]òÓ0ž¤ž™ÁyjaÒxÝòeÇXŒÐŠ (ÆÃs„ÊØø-ÔÇPãà‚%‹ò½p8ÏgÔƶXàwŸt“ÇgEão Utc‚þܘÐã‚™CX<1‚R”0piÞÑÉ£mòÌï‘pšBÎRpz�N}p8c1ÔŸZƒÙš)6%(E[ð” , :x- ï¥iC§ëi´›J D¤NytÎdWQ†V™ÑPÂÜrÐTÂ(u%Pn¢²å›ª¢dQRC˜^1•GP…VVÀ)U±v×ÉüÑBn”šÏ÷õbÀ2?rñ§!µ€,ì¹+îøµÆM…²|p~ƒS²dÀ}$Ìo[Ò¼bqÊ*˜ƒÝÂ¥”‚ù²1�~Þºñ\¤6”òmáõm‡YŽõ5,«¼wX‰xX‘" ÷ñ˜D8ó(â3¥ÛFc}Þžæñî!xKJ¡|GWIJÄõC¾¨1»9éËÂfxàäpY +2Ä~úsþŸ¤›ø<]šþç +&,F«¢ð¡äÀ<ÎœŽöê–´ïœëØÇAÈãËT`âe“¦Ë•7ɳW ÷Œåj£ Þ¼Pè'ÏP%ÊÀ¯/¶FNïwxDœ´å¬ ÐÁCò +@3Š JeVˆý£’º‘1 +ëgˆ&>M”fàÞ8Rø”˳-Éðݶ,ëÞ~JšmÍòlk~“DƒbF™¯Œ2^m˵öåÑ’ 7RlÉ6dÅ7I7桱®Û®7€,©¹ÙMcž`è +“KÃxc8Ö×ä”±Ílø‰rßs$ÎÏòOéšËod~=þ¥|[x}zÚÊf ]éLÿtprÞñ'ã`òx™(LF°w ã\›’Ä|úÁÁƒ1ˆÇ!0;Mi3>mŠ2.ËøÍhþʉo O¢êïÈÐô§ŒXãd.p×(oà‹ˆïD£I|ozšz†ÃÆâ m9¼aÏП±[ÌIþXaC6…{œ„Ùƒ¬¡Ä±õai–Åw=ê¥í“¤ßDN%òñV¼oñ»©äw“F¿›¶N0¨ydi4jž¶Í+ÕÑ”òmáõmWÒès‘ÇùÝ>8•(hS<N¾E£‡Ô.,ÊÇ€œšÓw-̪C£+éøÍ-!šÒp‘¡>,-rx²TŸdë³´ßD8ïðú7½¾é1NÕ€<~Âβrï¥IõP!˜†yÚ‹J¢‰Öä™ÎÑ€!oéLçŒÀPU箨BÄëg ݇²ê¨¯|[x}[Ä“JÜ £êk‚³n¦Ž(=¦”e×"byñ€ˆá)d§³†s#[ÚƒÖè†òµÇÀƒô‡¥Y˜ç/F~íÄ7ѦЉôgBõ¨8¹kÄþíg„ù±F1Ô¾<Zu•SEú™ß$Œªã¯GÕm=V ;Ãø}“+¹X;ka+¶B•šÀZûJ ¬9cÂiPo^èëƒJþ×·KFNÿµN¥+‘*'Xï+yD`ýÑýõÞ’ßX“;k½,ëÞ~Jš£—g%°þ¬D+5¹X“Ûµ^®µ/–lŽ2ÖŸ–n5°&wÖäGõ7z¸,|l^N'Õù`²Lz>~ü^퇳Ëü"à/ÕÑ +ü´Þäöò§¨4%æ«EßT–&ROž¹#Ï]‡¿™ðǤ4 ÀHõm²1ŽÀמ-ý¦Ê üÞn�@¡…gÂï�E(2#iù!<àk𠇡ØQ€ßW`7„d·K€LªÒ²¯CìKóötÓH�…Pì�mÈ.M©Á—`øa¤ „BšÉs 6ëËùt(ƒŠùqŸ!Ñõø–œ=Œ¢e +|„\‚ÿ'ü/zRv#ªí7߈"MÁ8º&“%ÿ²´¡É4øGm°æŸN³ŽD–5±ªÅÿn¢kC¢$"t¡‰ÆL&ÿº¼É¼‰ÿ,“äØ5&A½Ô‘Ž„1`R½ÀMTÀ¤þ90!v‘~Ê´qHáÜøõ÷õ䞊6tŠÃP]ŠØ]Km׿~|Õ4*paž·©%ܨCòÜzS¢üMp?'øcÔâÛÚðiÁñ5ÿóâ,PœLÿ˜ `æ‘+à2.A£LÞ³@¸�_dõk ©PÌF ˆÕ`bÂ�ø-vŽ +ˆø›ÁbÐ!„ÛêK©=ü.ŸCBZÚ›â¸Ë±¸™*ÝîB6Ü_^)V(™Ætî—f3À4Ü9 ¬°Ï©Cj*VšÒÝ.è;�Ý,: +ÑUæ +0¨à¡ÔचƒcÔùÉb€ÏŠ:ÕŸë¤y©Áb6’¾âGÀ%•Ní¬¡›wDÝéMŠý~’á émÄâ‚ðÄ €2“‘4Ø]|÷L%�Øž«$qDHÉ]SÈt¦¶�ÕÖ+dB 7…Î�+¥ùrGW%Fò¤ó‰ž>ÄÈ�B¶áž W`BtØTS~Oí4$9tVƒå1Ðbùá²%ïñs¸æz!§¿È“J§ƒ¤ ’ØpùÀÔ¶‘Ó›-4gÄvÞm"rxšÏBIûà&?^•Kq{®·Øt了ÿu)üµé,þSn¯`ÐTv—1ÃÒ±6hõÁx6Z4œ˜]qMp$M";ͱp³³�‹èÚCãO¤V$ÔØ⪋¯…:T]Š¥á.jx‘'Ñn’äà-I°º<C’èÖ]�¯ôå鿦4ÜS{r~'WáhÕ}2õ'Sÿ-¦~—}Ç«t$\BÁpO;‡®¯Â ¹OöýgÚwê'ÛwœÜõd†~'3TûÞÚ{âÖÑ)j=™²¿%jýtªù“Uû×·éSVM8YµßϪq<·Á(Ø2¤à}·øÊMZ]G`qâ!žõ÷ ¥N±'“öO™4QÀ™ ŠG¹?YxN6(pŠídÓ~s›&žlÚïeÓN†'“ô3&õû(Nçwµ8pOëÉâœ,ÎÉâœ,ÎßhqŽ9r²<ÿ`›¶N£üÛCÿÚ¶çd9¶çß(Š¡ÑíÔ$Lçˆ.{æhx m®á)–Q*p‚Qf-A�ýü¯'}£ºþÏ([RÀIá xKÊ ŠÕ.Ëî¸Uí“Z÷?¤€?¥ª˜“ªú·©ªo¼ö浪þAU¥$± h†y/‘¦‚Ya9fWb•“®:JW±']õoÓU'·ê××Uª[4KnÜ*š'˜ï_¹û]uÕ/¾Cþ¤«~Öäá¿XÛlÖVŸ‚Ù£~NJã#¥ñ‹ïg>)S0ö«;8ìT"ñî[‚†éÑV%^d|+!ˆ?àÐè請N»VOÚï;µß){Ài½öŸ7"#phã5ÏÃ,Ž(ÿ±H±;2žrÿõmú”I;mZýÍLÚiÑÉ$ý¤Sî¼]ÅSù"mBW2§¬¿û)wŽøµÍÐɈœf…~u½ûQ(@ãH€äáUoðJŠÄsBÅp§ÍEߪ¹N{ð3Ýwr OôOr iJ„wã�šç€e…[ü<°Â;®x>9п—MÌÐïe†NK'3öK›±c–&ÐÝ<$Ã0( ïõA )ðß‘ügäð?Ô¦OÙ´_üˆÙɦB«“MúWÙ¤ 5” á”pʹûÛS¿øÁ“áùõƒ©S¶Ý“Ùúgwy™d‚$p“DŸòtüö!Ô/~œôdÉN!ÔÉý«lѾÊOqI&5�˱4{Š¥~ûXê?ïw²@'t²@ÿ÷Gɱ¦õd+Š§#.¿½úÅOmžìÇö\œ@“"·©r´ÀÀk~ŽYýày’ñÍ!ÐÁ$üäæ†'þù‹›§MÆ;/{Â;‹9À{Óp0ŠaˆïŸ€úéáOé¬Ó±¼ßPëq4ºã›fó„ˆný†›càíôPëqêuõºîït;ÒÉéþ%– Hñˆ,øÅ,Ëà&@ ¹ÓåßݦýâA†žPÁÑå?iANÉÙ>«µ¾•Aßáab#5ŸÎLõ¾Ô™þqØ%€Î/ vû":\kïã°¯Á™y a•Ú`×Å”þs&M‘»Ó¹lº‘çPÞ¥uMV¹Z/%F«ùnàgI‚c`üÄP,Ž±Ö?€/O2<Úí +³ãÇw¥Æ[´G¨R„Ò²öbކϼ)P“%P÷þtþ—®13i0×A|‘çKAê«Ž4*…ÖÖh‚äˆUZ +/?¿~7Iíÿ¨½ù”nþÅÏ_Ÿâ¿eÇà +8ý_hŽDCŸáxAiŠš„?H8»BmæYNÇ)âø"NIèL‹œˆ²2IˆŠ_`HòtÉøopœŽæÿfFí´ô|²I?i陡v?±”Ÿ ÑDú)R¤Nó^¿ûú3:š2C'3t2Có-\…'‚Ñý6œà'ATc{âd…~²"[ùÓqú“:Ù¡“ú'ìAr< ;âý/è +[â´àd‡hþ?]²"§ ?GuÒR,%èÃÁìXèÎPžæ´›ö5Îéôo¦³Ð†Çûi’"y¸›…àŠ±0úY(C{È㵧¬ˆ'—ùç¯j“Ü)+â¯ì@ÿÆì¿uùdÌNÉ©þ£îdÑþ©{Gà>-aEa F=BÒ?àæ‘ÿŒþ‡Úô)‹öï:r²G§Ú¿®6>p@›HÎ+áóÙ ª N·>}«Êú[sJìT85ˆÓ”œÎ'ò|ñ£Žéq'’(õð”¯Õbß <Éû¯+¨Ÿp$↓T´:¥>ÏFk‚ì‘"Íq(A�K,~°4ÍÃJÃU=åßo9šW +jùaÅ*H@ŸCçIšD!*Çò‡*(ªóÆW}iæ#† aa}E‘dPR‘§)µ€ D}ZŸ~RO@’IòÜÁj3ßQk–øǹüÕÏ¥¯¦Üt>øk:Y{ðää)ÓlùäúW¹ó'«r²*Øaj̥ɢ;”w¥AxœgµfÐR-Y•– “…á¬ó¢-ä›fUž·ƒ¯œzÖ}ÊHmP5唵â®M—ÒRn¦äÞ\–wbÌíǘ;€±ü@ ×qÝ‚¹ÜÀõ~×Ë;ø’QŽiÏ“êt€I®§_`ó–œÒ¤3þB=ÌSZàÜ0ªui0Á-j“Õ89 ä½^ëïàodAÿO´š;«DŠ‡-ϑ桘Æ1,‡²2î 94:ù ˆTLÙÑôlÍÉÒœ,Í¿ÐÒl¤ø»3ŠhQ™PDQ…½å×ÙžY'BœðŸïÊôÑS2}P§œÇ«çê`24%ä/òè7ždbÿ©I¦¿‰“Ê>ðßú?Š:”GOÕ¡q÷6YÎtùs¦ÝÅRñÂ'j49è~ÊD8áç8’§QZDšâyP?£.2p<Ã~§¶úuÿžS«{ròLüùM—òß#&i®uÜýE¡ÑF³pZŒ†ÛyöÇçUÇŠ0³ú믯¦²´þ(µ™‘„?Ò=Z¡µƒ–ç_î‰ü²~2€¿î`†Q8ƒÆ1µ7ÿ¦@ç?44ŽrÒ×IOó'+ÿs=㬛ÁþÉéQ·â§Xn?¢ŽF›ci´FŸ†ßÁ5i)iHZê£ü0Eë‰Kµ@jîR–ø(u)›oœ)ùUó#x+FË禳·N 1— HNŠœ€ãJàÿRx!•cÔ6}fcõî‰m[</6Ó“N|¾DÕZÀ7,|Ó¼œNªs�=˜ô|>ü:!ƒ¡R•Fòr)£ªW[GWÖùX¥‘søöìB¾ûëÌøþ¬ÚÞæŠó¶?XÊø۱̑ `S¥bô‹"- +x³¹©e¦šÜQP)ÂëšcI¼AA«°÷òÎrbpŽâ98Ê5.Œ +‡V0–äEeƒI±´(®§B'¿J*° м=ÊÏs"É©½Kh€£•Ê +ŠE¶\� 'èu-6Àe©|.I'9‘C»"E^y”–…â)†EË÷<ƒ~ð,‡uÖfÃ$h%¯ Œ"mÊFhÑ”ˆ0¬Ê¶ïÜÂ�ÐR€AÙ%�´4·î2ž @=Ë <Ò§<‹ŠÞ00 4<›´®¦x•ˆ„Šá?K‡ª)°«ìYàà]ð#n-À‡Ú½ÆëóQ„Ä!…²ÓÒŒÀ³À“4Áb„jêZNÄÙpüMÒ€é +BVV8aE!Ã’´RšFÁ§—Ð;ø¿M6\YG#ÞÑjO‚Èáë;ZäŠFâÎ ¼b–ôèHÔ 5èXt²`jìj‚°PKGàóÁ +ç(|D†€ aõ8ÏÀ$¸u"Ä€¢ÑPìRˆO• +sãcQG RˆðŒ:h8Z@gOHž…‰ƒQMiÐ`WW1Ϧ(ˆPµÈNå?h4Íð,’2G‚BqÇâ~eÈ6øŽ„#E‹Œ€<cÕQÁÃÍȸ@vy3ŸTûpÝ:,È Í¬G’kDÃàó4„€jÅ°<‹¶^Aäqµ8|Üm¬+ÉòªÖy4ÌòX¹�½@à|ËfTCÄŒ±0XTa(JMÏÒˆ7,Å1ìZQùŠ9l ØÎj+BÒ°"‚ r[ƒn–Aä šo î.3¡TR4’ +Rüæ7©ÔŒxÔ>W©kÐ_`|¡1Ç°ÂH®O%©ROcŒŠÔ#¡‡ê‚$ˆµ²ªP¤2˜D,ª%@9a6ÚŠBD‘zJÐ!°fjG2"Ë¢:€–ƒ¶CL€Un0`¢Ný¨zÅ£Ž&^U¿$£Ž& ~ :Ô(ž"„@"¤#”û{”ï+�L°ÅâZi@Ò0‘BVx +ÉŒû û”DÜŠÒ Tþ‰ÄÆâòP]Ã^ u(lì�V¯€”:g¾64êŠT%À±F/C!ý L(ƒ4¯Š‡Ïšk;%"¡ì¯9´2:ÑÊ�œø(PŸ¢rÝ�t8‡ß"…Áà‹ŽTŽAÓÂÂÑɯU#;pnÀm<€‘Þ^›*U‘ÓZS³DS»TX#åYäˆ�d‰î0ÀB¶ÖiJ‡PXc¤¬*±»f#Çcí&Ð"ƒMp؃‚‡øHç`ý9JÓ;P‰°&ªÒ¤IVD‹ŒH +XqÓÀz!ñ‘ÀFa0X¬¯’Rðrp“È䔊–£h,ÿ<C ´C€ßÈBp$êlÕòЪUl‡Öò óV~4pªPwqP×È.Ò@æy$Ð,b£^nE©2E껊(²ÛkÏôÊܘµ@ô±_˜Â²øµj• †Ò†µ"ä�f¬ÊW†ç±2ä5âð äI4,90¶)µ®ëüøV¿+â+´.L['åêÓîÒ„üdÓÍ 7ž½Kã}ïš™ÛYFA0f¤ŽlZNMØeÿ—zƒeç¤á<Fø ¦]{€ 2€ïdôÀMh¿ÙèxÄ;AôÎúûJšËS|ÒPD‡ÿó¨ÁùlšmÁ†Ô]úŠÌ«½OÅIØ<C¥»6}‹Ç?ÇqHƒƒhHDÛ|yjØ *{{?ME‚½ö8‘Á: gÄà€ +@Z‚U¯}Øü«¸zÐï`¡cU[À±4ìbdƒÙå‘>UE£Õú`¤<¾Ðç×Úèkä°$ÔðÁó,42€Ìú_‡¡.T•—! è#‘Õþ xVñÔj(ˆ)¤dQ(þªÊ€âh¤€.°‡Å6ø'¼b¸8 ÄöŠ¥õ&DzHS Tã°ú‡ü:‰á‡‚‘ÇF¹¼ª¨Ž?�å‚`§�u=ø«>ߺùŠ üR›Ø8V8b¤Xl×Õ°¼b7ôÿU#=äÊ0°cÁ_ulÝÊ-Sr:šB3]ÍÖ£Lf ÔŠU\`J= +¿vÊEÇÑk¯œZû†ÀH¼:ó€ÆrÛΫž¥\¸¨ˆ +öº™ç×nh&LàG+óûâZ–ÝŠkqpOŠ°G)pàydHmÌ‚QP°9ô¦Çn”ØÔBrÊ«C‰#EREñ$ºu’$9žSü>l‘ÑÒÆÕ¤ nä‹ÄȪ‰õ´–:{µ™ÏÒNt]Îð”ú¢NŠ•‹¥vBïÐÞÕõšŒnÕö–у'¶¦åP >œ™ÛÑ’ÀŸê_Çé¢ù?Îœ¹é˜ZgNÍÀÒb(£ŠÚî» Mþjͱ³V¯CÕpÍä3Õ½þRû"5ýc¢}.É]Ý÷ë™ö)\†?¤yGû.3+¯*óx®Ì¥I’®/=×<'VËåt¤hû¥}×Zz øB ái4ÐüNOF`_è +àW4x¥LëÊ ÚCÖMª•…Ø¥ðô”–ëû{O‘¶Ô´½JIKéÌ֨Ϧ zÒÌyƒgxºÙ$�“Œ'áÑÞuðÚä¬ÊóÅLF«€Ùù Ó„r#M‹> ·Þânk¢²(Ú;Au$MäÄðzlDÁ‹Ÿ@јÎ4å ea/8šòŒË¯u¸Ãÿp©Ìh:¾Xm5’ç•ù�t@~Ò‘ÿÌæ‹êg,R—ÛS¼RúEZ è#îhž$åÑ(ýçR^siGõ,‹ßÕµÃwöíÇq»ßÙMÈÜÿ #áåꉒåå‘Øìâ¢Ú�0–IÓz,Öååjf*½°’€J¨Ng«Ù/‡%F²ÜÁÃj²ä|:‹Ïe /ÓãolvrxC&ôÇÐê (yÊÊRžét™×“A{Ú‘ÕÜ +p5 +\®©Ækø Å¡…·55À¦Æ´†)a>NXEô•R‰ÃbÇ"×´ñâd~¬\k +l€b`7õ)*b•Â¶»ré´j'ã@‘?Ç£ øì“– ÙնѳûoFñðk ÚýÁ¨3—•W·©_áŸå×™Â8§}²h~‘æ‹&§†ôËF6ÑûŸ‰¦/T@ï¿ž;Á¤šJÁÀD0æ±H~Ì!-ôÒomãd:ÙWemûFSàÇtŽi› +ùƒºÿ;[OlýQý:Z#ùÁÿ°'ÿM=øåè¡A²ÃæµWàœü\Mö÷Éap!ÁM!ÐëªãXqüÛÇEæ“úeªò_¥‹î¿°5þÉÃ`1´ÿíº˜¦¸2)ªNõ¾¶þ1è ãö°øsU0MÐ5¨/£i¡#Z¤BþÜ&C} j¡pÆpjŒõqÓ¶ËüÜF +~®½Ðu¥i~v[|ÿQC¾Ó¯¿„ÉGº®>]ÍÛrnüþ!jï_;¾j9¶”æ=y ü�8iºÈ§Žéëí2?Ù•^f)&3¥}ªRÛäî`$Ö5Vý¯Ï?TÏ(/ÍLèÚG {=üÏâ£Æ &Ky>’ÚÇåZèŸ,ßÖúß²=†é„ÐZê1MÔBÿâ}×EçŽë¹ ì/ިɴü©þÒÃÿööcÅû…´z£ô³k3-ãÁ_èàůR'%ÿì*Œå¥Ô‘–Ò÷ÖCüÎzX;ʪÓ1£N¬Õñ endstream endobj 68 0 obj <</Length 46787>>stream +¼hšI3ynZÆ«êk=› „¤¬¯˜Ú›QKi¾k-¨©7t�¶¿â,ÅPÂ^\&ÊÔZ7éCÐZ^?v;9–¥Ùý¤¦‚j*ð!ìº$GôR]+LJ“/Ò¢¾æ¹é’4UçòBž‘M ùÏ¥)Ý,%¼ªèEƒ ×çöfR§cèã1ÊS {µ˜M’ ŠÒåÕ®íÌ~üJ̓ڶQÚñ¼)¾ZNM5iLÕº!„®!ªÜ™†“i{8]-§šEÑ] ƒÅH¢:FF1ŠÀ?–åÎ`56Õdð}¥[‹þ®…ØÌš¸³ñsiÒ¬mn6ÂÞ+Ë‹þº!hhȨ3º•ÕrZs¸Œ¶œ©»®Ž4YL€ãÒB?˜ŒËе> 6õ5){„ršÉz/0\×{. ÂϘì†Cäêh`îE“3©½–b8„lò¨©ˆD<�˜X`Šƒ®öCf5 +äƒ&i+JS<ÇÚX²®ê‡›º2¬Àï«+ÕVV8ÈUýþ†È‘Co4˜È¦%P(Ê€"?á'4chÏgV£‘:Šn�)hû—sƒŠpUiÆý< F×b-ôª0ë nûƒv¿:ŸÂP´(ÕÛdzÜ’;FÈðÓðLr<ïÈ[«ÙzæÖ”k”KhST9(»×Úzi¸´†¼^ȦüîÛˆ/4ÅŒæp/f“f£ŠV/í*€éà$!kuºpãxíbîf¨%`{’õú¾à¦éõU«;uä¹o·—±=`bý Šè¬3iiºL:Ó?;{DWÆÈ·j…¹žþ4°Róy 5ž,ÉéìëVwj“Ÿ´G+~Ý•«»Ä!µšmh²`¢�L8!÷¥/ƒuTjàŠ¨+_€·›Â(éÃÁ…Iç!UƆ‰P#ñ©R¤Ñ¹;¦²Ï‡<¶Q¸Ob”ú1Ÿ*Å~S)î›JñJ©Ï±P0Èî‰Ø-PÆZÂIäýäž‚ÝÉþ}Å´rH|†ÒnÑø°vª +Ÿ,Gíî³ËÑßXŽ1öÛ^�ˆÒËzÏl[šµJ¯¯˜H`˜—@ߌŽ.°ÙF¾« EP¢ít1yÈÊ(ª4t¼iæA»”ÂK£TÅ<Ú)U;[‘Ï–_¡cºØk“×E©[¸<ªuŠQ@ö¬,Í4÷Ð¥i[1‡v¾i#Íw£M f¦ÆÔ¤nlÜÉÕôŸ³é| ÁöšyýüY]å¤%¨¬÷ÊçB»cr7lN!çSZHíçÜ‚©â´ÍïÖltÝíAVS™Ãfz§#»@˜¶¨F}pd]$ˆÐT‰jQt»ñuhç(ó}‘aySKI“öŽÐ\[¤ {©=…ûsþá~0^íÎM¬¨k)p˜@ ”#qQƒ’£õ„w’˜©ó�Ó/ò|Ï,>4ÐægMôpp³ubçìÇNÐM@¶7ApºØ‰Ùb"ØÙè”âGÐ0Î1ïŠnò@�RƒÅrÓGï|‡Ž¼ºYíŸÁ\þ‡œT5JÞ_uÄmD·fIv4rY“g«ÑB;Å qéL¿¯\óM9°þ‚_×™‘ÊØ8éó;ÞUí\KÕcëuÖäԢÍz@àmÚò£ Fê\›2vlb7–TKà#;ºöAÛÓÑhë\ˆhÊ|!Ã*ÏßVc4t?jÜa¨Åp0kÝ4ÔØ4_ +› +ÓV~Òš6úøÈ>5Ri –c êãl'-ø¬7ú[P¾¦Ý®osY»–{ÀÇÒ|¸0‚ïj±ùj!¹C²¬ö¼zêÎt+·7ƒŽ< ”§ÀŠÈχev²Œ8£;î°UÅräï`¨Öqñaô°˜¿™†?¦Ì¬3ŸG“£+5ëo”]—ØÕ÷³Ù\;Ð'�F¡®ô3Iíìi�§Ù¢Æ‹{¡´Û¾Haš‰ðà £ —SE±"sr¾!Óú„ÕJ¬ðD:¦ÖWSjô÷üp'@,›žÝ9šÚ®íêë=Û}¨¦š©ÙÈ`[Ž Ð2Ïa½Ø‘ƒÞDãS‡´]KÙßt#D“GÀI¬¹Ž¶ºîØnõhî‡ãñ0D{:ÙášÊ¶@ȵ×B™ç0ƒøÐóŽÄl07›Nÿîì?TMêˆÜ…P3å”Õ!Y@T{þƒÂ§À|ÙòtPèr#ׇp_·qÑžÚ_÷k%ÓžOga– ÂPW”ö·ïÜ53û˜ +ܺ#&O`”tHïB¨…šUòCÉEàXOoÆ1e€È/aÂR¥&~ŠÝk£Š‡a–^0ÐÀ´çÓÙ ÐO�÷å°¹&äGDá´|Kš/ô£ÞÅؘ—#€—SãáÎý°s„_´©ÆÀëj«©Æ®QÔ,ýÑa•‡afóîtrHßA°wÕÉ]}´� ]æ;}pE¡óz £þ‰Ü“6f÷�µËT{္™Æ5"Ûh¾BiÚnÕà} Äò.A y ãý ¨Ûš;±é¡ø]zþÏ™_7sª¶jnôíÑzø.ÈÞŽ(`œb7Ë‹»ús‡goCŽ³ƒ�p-¢k5ú.Àé¬}@« €ÅG�•rì܆p@ó‚â‡Ý–.>¶ª»š´H †QfDžǨŒ4™¨;Bv²ê£Ð =Ö¸KÎkÝoÂyq@<Ý1=9ë·•ê“Ëô…ú 8oNãòíò!¯44;aÔù³öøëp?k5€S| ÇvlWÁMºÙÎõ¬»™©þ”GUyÞ•ÛÛ3è¢i2ÝÌæ™4ƒ}3ù €iö¹P¦xþÐÞý®¸Mn7‰ëFŠvÂáCSÎIe2³¦›Ì4‚V”غv–ØÕXkíÔ+Á›g7xÎ5a˜sÕVóŸÇìJWëdz À'Œñ8FaØ9¥ÛÍ*s¯|fé6;a~ª‰LÒ¤£ì~:´ß ‚Yôàš*„v¦é)áÚ|–.u-Íœ¿a>r&MT·‚&F+K›QŠUŒfa3¨eñz2ŸØ”uüh6›Ó+±ZH4Í÷Ñ( +Trb(#Ùæ‘D½[¶–èÐ¥Ù<¿%Ìv&W‹+±¥8È”Ÿþ*÷«~Æž-Íþúë/³Ùõš2›Ý‹Ùì,XÎl[JWþÚüP1S±ùUž?Îçð±çŸ{#ðÃvþX„l"&gQ}ì}øÝ<¿»À‡=¦_Ûù|¡Ç-„.àc7ÚAøØFqኞNÄŽÕ·.øåŠÀÇÆ™-ëðǽà·YjYÛð’¿¼—°t:9X4ðU”Mùk¾øá#Ñ×LRž¿ÃÇkøèK¿Fßð‡þˆl‚ê·æèµE5ãØñæ{&Ù}ŽüÅ=p³~ºÕ ,™pj÷Ó¥7øªñÆû–I'Üàµó9Ý:>¦ºŽœ-U\Ñ/ˆeˆ™ô™ 1ß·šûT*O—©Ôùcx½!kýeŸÏcWô¸†ïþJ›}‰@õ¨ýqfƒQÃλî*ç>à—š¯çsÀ«òÙÓD/Aiðº�šé(¾€×à +k ÂÞ©4Á—|mS[IKâª~!ÐO—~2›¸¨Åk{"°2°>NïýÅ“Š#iûôÎM<q¯‰a°ã½ßQÚ`�9ƒx5Íï؇ïññ´·Ê„3ù +ÇÛ7ÉA$ô¤Ë%2ö~Ñæ=éRæ’£ÏWí¿þ +E³'ºœó +‡&…`¼îM’ƒ^gyfãÇOQJ^\ðé‡n&^¾ Å®‡áÇ䵡6åP~‘«¤[„w/Þ[» 'ß< Ÿxõ˜ÊwòŽ3[bщkkñ|`Ñ¥ãóvžôÅg8<,W@¹4×Wæ¾'‘¦ºÙ89÷ybIG+.øü–T×÷D§årÔØ¥¸/ÿB2ü—Ùê"}f+°üfK'÷f6§n ³ó¤Ù|QXÂzZ”¾r¹Ÿ-f×åÝ»ÙÝHÆQ¿eÄ:Ÿá“5㜠+Ä_Üoä‰-\=~òAÙ6ÛÍûsÐlõ¦.Í甧e¶ñ`èÚ#Ⱦ#HdÍ΋ѣٕ®OÍîbÈoö\YfïÍËÙ÷”~3û[>—9ÐDÌĸze&¼l¦Ës3½ºæ̬=\0s^ë‹™'›s³+Óf1ÃäÌÁkó‹9Ônƒ2Gì·¼9-TÌ7‘ž96!=æDÐ2'MsÚ>?7gªï1sÎ6{2ç+3«¹è[ÅÍ%ÉÖ4_^x\æªË›¯Zñ¹ž/3ækâîÚ|³z³˜ï¦Þ´ù¡é*Ow×¼ùåjôd~m°^së¦V7wîfçæn'Z2÷hÚ‰œy¼7O+þ¬ù½}ûn^z©œÅœ—Vë,Q¶ØV»ÅÙ¿»¶x’„Å·°½Zˆ²²Ðdy|f³°oÁ‚E¸t8-¡àäÉuHaKl~ÿnIökuKæ¥ÈXòÏù‘¥ô”«X*2c©®&–ëåMÃrO�<Oñ‘ÅÒ¬››–ÖPî†ò”ep Œ³gˬ*䕥㚳Zêós«¹è[]ƒÖÕWçrV’¾¬¬öX…±´°†_C]k¬öö`M]*Ö\ÈXK·ÃˆµútÅXoŸõÞêrXŸÅ™Å*U¥¹UîÕÇÖ7ªøvf³Njɾua÷Î-•‹î¹Ã›ì{^²ýs"T|;gÍ×ãsñ©ù~-ÎÌçÉé8ÏÑqßyÙsËž×¼‹Èù?˜= +ÜTÏ¥ õñ¼[.öχ¯‹Õùl™õÛÌ¡UäÌf³ß]–lž•ãÉF^J·Œ{láK{Ô– ºu[¶Õ·•‹—Îûc¶{ËòÎö2¾Û:oÎöÖ|ÚfÝöØnîHŒÝ1ì\ÙýöñÌÎð–=X%í±AÜyf³g¹›¢½|7œØvoÄþp•mÙ%bÀØ{2ûhŸ¤nýö•Ïuë°/n}Ÿ¸s07Ï~Gè*ôäH§Œ#_©wÕ§è…ãvàœ9^Vý²£ËÝ{ãR¾éXc@ÿ9¢³Óßȑ7aéLgBwÎ2ЊÎƤnw>=Img§0+9G ‚s.E‹Ë‘Û®@ÒSuñ¥RÔuñ²ð»²ï©…«êv\w…äëuj.ºÑ âz ¬Û–z÷¸ýöG«›{N½»/rÌУÏe÷•}*¹ï§ò‹»5’žÜÃÁó£{9m>z\®Þ³‡¦MO(giyR¯D×séM<·å»¹G²,lž·²à÷,-5þÌæu6 /•É_zþé£7½È¼•öÂê½®ÒÞö+öŽ[Ã[ŸeÒú|¶¨ÇÇ}q_üòýÖWu§¾ö‰ö½>Ý–}Cï[õ¿'ñXösöÖÈëÏ�ñÆyë¿)…ÏýRñ:ç&£€¥@‡¾Z:V6\å^•à’<\^@ÙÀ{õ¥E8ñ0A_[‡Ä+eˆÂ²j%nz©[¢uE³ÄÐ%mygéÌF’—®�©»úd^"Êäõ”§È™œ’“\õ†²½âqx¨è4=¢ŠÉ—{êÎíÏR ä©÷’ÕA»Rõ Í1®W:ɾ^ÓU>Q ŸÅóýVê Œå¶BœÙ˜À2éa"aÞÎî=æÎ}¾däûó³ Ϭgè^²â-oa³É¤½T\lÛ×#Øw¯›çÜîÄ'¯9.“Ô¹FÞäZ#çˆ{ïí¼û‰áxÑÕÉ�{–})Þñ7QjÈwæS7¿è@ÛR®Ü +á\n&“ Fxˆ†.…A1ö&Z+1J¤äbULØofâUº_ås0Þ…°7èÜ_ƒ‹è¬‹lð^îÏ‚ƒF$ufGÓ“ÌfB©”cj¤žK¡ÎmÁZJÄm˜pZÙp,ù6Wûí|Xž\á÷îÃkÄwqŸŒDÝWäRê·#Í›óbdV`é¨7[œG#©Ösô²èÎG›eÐûÑÙ`f¿ðù’Ëèåüù¢2+U/¤Œ7u1ŸIb,PÉbqžvÄêN›9ÖgqóËó0NKƒxºsß‹ßön»ñ7‡ÔO8Â÷„xµ'Š3bžxId‰Ù¼í9³%ý—n:§JÑd}¹,$»ìMêünÕIñ•ËEªPñûSÏ·ýxjöZ®§öè Ü®ôõ“9ž¸Ç÷ÇíÛ" +ôÅÌ¥<¼Î´*ËEÖtE²¬OxÉæ]—€JöÙÖ.gß=®yŽ‹É\ª:æîúéhnìõòÞF1š»\oùëÇv2ÿ&fç׊º,De«§PoôŸý9ZtVÅÈÃËM„"ЗƒeÉ)ÌïK‘&•8³•êŽ¸»Ô¿y|+»HóM9:H$ËëU~K„Ì—¾×¿ŒséÇË[Özy9?¥*þr&TI½TåѲòVÞÓCG•êKÖjþâiUm._–WæçîêJÈL-WÑi;³]u=œ«æT‰ÚýÆ×n„ÀEm|y]¨dûu=¨µê/׬a¶<yBã"ܨ•FoÙm]»Û7ÖëÄc1xýP]]Ï¡á û!oÊýhù¦kO¿ÝºuæÌvïu¯o›åvÞ¦ï¸ÜóÛ]ÅãÝõ†åö½çõœ¿O=_·îŸ)áÁ, ºÁ~éâ¡á NÆiWé‘ì.ÜEº÷òØyiEŸ\‘¶ù)i<<=µfÑgó³ß~f{][Ï×WõÒó´1â_‰³¾TÌÝ—ï¾nú¯¯Óͼ“ä›í»¾çÕÅäW¯É 9|}y\¶¥ó|ëIºˆÝÜJ±j]Zå«WPZmÝtnª¹»Uk—Ë›3[»¾ ÛÓb^êpÞÞ[çªMÌ;ã›G—ÌV®Fò(ªuéÜ{»[¹½[u‡ÝÝ£):ß«ÔíÍÞp15÷é«I¨_ Œoú£á|>`ž\¡ÁÕuðq0¹,ïó«¶óoõ'ÏømÖËG†¢}ÔÞ¤âüpñ6“Fáô•0º_‘òØr7ŽŽcáúxüBe +‡StLÒòiÒ‘©—÷/§…};í·¢áET¬³j½ù:›zÌ…3Û»ðeßoó’en¦ýò<æ¾™7Ý|vá²uÅÿ]Ï>íˆWSèìáGñ*sQ±?z·GHºóh{Å—ˆÍ³ã~°712f¯Ó‘HþÅ9wKsÖ`ì:-3ÁÒ“£›¯Ú|&M•ž±H½¥z^â<zñ»caïl[©À™-*™ç*Pa™èå®J±0#×A4m§ü~Go‹T©sèñ©Œ-È?d—©·çóàó‚p¤´ˆçë˾'ÊYW™s~›x9nÏl©.QhíDv΋]þæêñ)ÞHúoöÕŸcáaæ9\øÇž”׶Ê8³î™ 1+óÚ¬¬RÝç[†!wÁn¢¿LöùRÇŽW{ªM–Þcaà©`< Ê‹äKïe +~Ùßa$cNø„·óxÝgà:ÜIÕ™M|szÚé6{åLö™f(·ÑvOâÒû +C˜k3¯ÜÑ›‚µüvi <én©)“D@âçƒó×àà¥ÐIŒlßÜó´Š—êöwXW,T胘—Ý<Ç⓶c쉔C Eºh*H®1¶S…Å `ïù[šèÉ€ú—,Gœ>¯œñÕ1nÁ}ÉKæÃÖÛ´WdA”Ê?rÖ(Ÿœ¾xÂ7Ç Õ²>#´Ñ‰ 4(ʹ°K¹[îjùM]œOÍ›N‰ ŸåT@ +Û3fÏÃRáà‡„œÙˆ–%Ï ßžh&¬ü +ߦ‹<éM¿bdÔ=•¢{Gx¢Ñ´—J]ô" +žÛH8Ôy»|A=¹®0ÀWI° +�”(¬+ð¼©�éŒÔ Ì w¬9‘j"VÀ—ḷv¼‘zó¤ºâ{Z’ç ®u}Î¥šÑx£ß^Æ«çír¼AÑ ÷A|oe:é»×‹ÕšEXjubú2Ü FþyNí°ûiª[Ow?ZÉå‰ZC·¸‡ æ3[ºIznÌ]!›Ïû×L°|{zH`stžÛëILÅ#+õ ×ò]åîXˆ +ø/žÈÊ™IÈQ`ƒàO–`<Q®5…KK¼QX®¶YièI ßÕŽ¿››á»ÐcïþAÜȧUM”3NûÌ•ìsµ‡t‹»Sò|î%€+‚Ù±fF)oH$maßkŽÔ¢?•ã%<öq‡ +õ÷q1^yI”3ÉnA Èb«“IvÆ÷HyîèƒlbÄEn7¸¹e X¢\Ã1ÔáÌj!WRÙ¡M¤®Âh¢ƒèo§Ûµ5µÁ/ï2;³´DÑb. åÓnr°pP[ú«”ËšÏmZ’ƒö1É5¯²'Rx(¨D{O@Ñà«äÎ.›q¼þZHg#è:r\¼Qžöb7¼”IWwg¶°‡H?Ù1K{§—TÆÎï@Ÿ¯Ät{ønW 2’°b¶?:J@=FñÚhæÖÂ]I9 þ_ë»ýñâ}}üÊ +W¿7c Þ^I–Þ¤Îd¸í©nÜñ¢³µL¦é2÷Q3€ÎÈ`H±-ÃW¥÷á÷¡ÎÒhJ»ÍNÓÞF;¸xuöݹ'áhôU™\u`Ó̤‘*s¾L8ͺÐWØ–ž{‚Áå˜-1*~ØW›ñÉ7»‘ ž}˜\Eç8 þtD‘ìÄñ¯Â}D¿î¢àÓ¾#{À{Õ”Q %¥`ÑÙKªßÀ/—XEeÔÒ*ôÿqÎ2�î¢~½¥0†TÈYZ[=¤Åƒ¨ŒSFšÊ¯K†”R\%X9€QAUAÍDá#ðlñ;j¢KY¤Ty›h)Œx© ŒÎÇMé²@×àÏc\ËJüS¹¾Ò°�óóÁq©by‰¯Û¢ë¨]û‰Ž0tj˺#(sVe¨¨þUù¤c†Û<byA’)ëê€Ú²îK}[ŽéÔüKm•òUû¨ìŒÄâÁ\Ò¶j#*Û2©ìeæ7â„ÊM›!ðN¦"Ùдy–Q%yG3q…Þ…¾6Ú²¨¹QQˆEý²f¦¢ïUÌ;ˆ×pb×PQø‹Á RÜÔƒèû'X}œ¼ –ßE‘$ƒÆ)eÖ¿)ƒ‡a/ùMbˆdJ DÛÅUÔ_¨A°¸¥`L§³+ ÀßhÅî‰ñI¼Öí[YœF¼qSœdb$9<³emÙ&pKX'§ñMVW¶p¦¹l¸c!¢jö¤oîrª)ókÜ W`Œ’´pg6`÷˜`&4#E°œ¸~®Ç½Ñz(eâôð¼€â�}ƒ<(@8³ ÓÁ§}Þ.“*^¼3Z*‰¦¯Mê×ñú2?N{J§þë(m35¨¨¹6Á&l¼Ç+ÉDú0Šw5Ö1D ÐÓ·Tãlð¡öu-Î?j©ÂÜýºAœÍ=çãÅÛ+à'+5»¶ ³‹Š<W\¿—�fûÉ¿Žü‡c‡Ã‘ô.ÔØ"ãùëg¹˜ê^-êAõˆdú=‰ýmš²<†ö†Bg6m0´‘PØ4aßÅ+™ÔÛm39xã¡îØÖþ›<‰¾ò|3…•ómü#Åž7¨€$+ÈþK‘ç^ÏDS=Ÿë¸¢£¯ÀQ«8’}Ï}20ˆF‚J_éù¤‹E†@ìý™M 4Œ¶ª9Ä~@”¶ÂɃ–yE85ÙTØ£XÎ7 šÈbãÿë½MEÅ¡\L‚u<™×fTLeïù.ÇÓAe™²í•ÙõdR°Œ¥U²¯W©îµ'KÈLŠruÒx¢H•ô:“"V\/aûp߸â3/Ïnk&=Y½R6q,(½öž¾]*$®ª1Жûñ¥à¯îmñ«ËúM&åê¨6Â>µüpÕª¥bk¶‰‘sÔÃôK²ÿdz¢ÙfS•¬g?èA11,{€k_ínÆlδ¼$†Tļù°ž ‚ñˆ�BJ^Bn?lf;@Ä·ƒö¦˜B[º3ÿ•çâFzW 4øX¨xoác߬Ç]‰×³7Ð/‘9»6‹¨PDœ+J†"×E€»è/V¨“Å+ T• h,ÒÍÙŠ…®~Í$ÅŽ,¡îªúo\K÷€@pDdžb4¨MηÖÎÆ Œ3›8ÊL»û$†\C6ÔÑ«Evä襵3Š‡Ç/Aqq{ªÅÈõG¯¦"pôö€$g\ÕQ(“b(OôþÙ½ñˆ(_ƒ¶¤½‰R³ø ú%ÊV)ãC/Ö&ªÁY2“¤25„Ï7{ŸR»PLå§Côå—WÈÏ…R¹l*¢hÐÛÍ<•W¢ÀŠéK&QYÑ€ÕµEÚã溋µ‘;(Jܹõ]ˆoß¡n®Õ‹ï2ZTXcãØ]lÙÅ{ï¹Â±Ý +$áqú² úï!”’g•r'8k‰±ÂwTªØ([6äù›Q©ÝÅyºILžSÝFª{fK{§åUœÅÓíêÈep—”™ÉžmªháË›x£ƒÃPômW>ìŒÍ}â*^žƒƒ¡züÖ úEãÞ`s �‰)¹ƒòti†ú#Q*ú>Ü3Ã-8òæì«U\hÍz~2wãUÞ.þXãüÝ—qNE—áÙ*å© Šµ}…U¾ô%Fc¢äeøÀEƒ•ûXh&’ÛMSà`¿�H^¸šº÷!`§Ózßyð¥ñÁ‘IÊÜ0ÞHIdb$X‚ò¾bÁÊÕu˜FÃlIZŸˆ´ïÁ I•ãµFì}[6¬‹ä R^Ä‚›Ä]pwÙäeòæbírŠ}áÃöc*ß®UÌ-µÜêø«â*ã,\”ÄÜSf©8ÁJ'ú ¹Pñ<ÞMõ¬Ïœù“À¸7¨×‘uå)ºÇ°ëÜÖ„ÒN·3½çk&4ìçõLÓj¯ƒöyžÒ/oË6šƒÜægv™n%ÜÎ3[°ì¡ã†Ý¬–‹ümI™¥RÄ¢„•°úø´G@rÖL2þ\ÄXþè±”·Á®çqmÅa<݈ób'2¯‰1hd‚Ø C%—oâm¬Ý³ ¢¤‹a,ÝÂ}_¾…œ:–…so¹ÎEžÇQ-UÜ<§ÿ Ræ/Aø‘žjÇ›BkX@[Áø¥ Dx7(‚¤`¾Ì¸î«ËxñžìhˆFŠ—Tg,zµk fN å+ÃÞFÿb%<}í³š‘º^½À +×s9}KuÅÂ(ÕrlbéuÎÄGš5Èè}¸”¼LžRÅb8€]5êªîˤɮ3Œ×,j‡Þ:æo¸H&Mp¶›ÊK#Û–þU]€7Ï5¨Ký©bÞ’ÚR?€ÂÞUõ>#–MÐç“VÆìö’ „½†eD +ŒúÃAƒ–v;]8¸äü‹ºv³éWß&„2Îü8.öŸ.™Tµ\ÏØfP.·r/F'˜ÍXTÜ ðkã`¡5¼8_·&ãàß\,ìó»vR@ö,œ,~@iz{ŒY‡qÆ™¸N;g¨HH#³ˆ…÷õ�¸¾û½Tê¥åê6v¢ …™‹ñi¿âÖFN‡F*{5â;(øëÉ÷G´ +�ûŠJIõìSÖ–}€¼Wàe)óz?vŽ\´F ýd.VNù+ý°Fj£œwšq»¼pƒ%b#´Ø’Åö²Ç®µ-ÕNA\P™×² à·dLk¶gnÆYÌŠÚNF²zõd…FñzkÖÅÑ"ÅYz‰±ExÓxJ±Üì]•û‚¨ÜÒa‰]UªñúêšÚ6(ì<•Àl%Æ †#.óZ¶‰û=€J0\+wJÖÝÝú‚8 ´ÓiÎ÷\Ã~ûœ–^ó–ÄØc×hUÆ4ÞÇÅåèéfÝÞ€L3î¶Z + J· :1ç~.wþRµÈH}¾Íwûj&'˜UD: ÒÖÄädì€õ§G‰··j,•ï\-S§3—AóxÝ(>’ÆÈ5J/íy³J¹°Þø¶óZÚåÁ*nìÜÚrç_¹›ÀB¶Ç¤VVK"ÿ˜ ƃÒà ´ÁË—Ö*óúB¡ŒÑëÅô(Eä„FýÃqŽù`#†À8Ü9S]ûÌÊ-‹ËH¦9òtT/Þè…›¾xêp=ÈcìÚ5¡CÀHqÆᘊäm1²‹%Ü6�º¼t[¸î,©báù=%‡_,›C>ÿ+LtwÔÇS€¶*öcKò"®r¹LsùìËÄrC¿Ç¡‚5ŒTiŽùú çÍf„ÆSºÕˆß¦z¬}`Ð^kťꬵ•ÆzJé’4ê‹3Z‚LöÃï™x56–«©~jãÞI±–j'¥aÊ=´ù0–ÓÝ|z==‰@ê`Ä×3Ð6Iê^ðÇ,R[ˆcÕ¾ñšdR«8Z–¼‡Ã—ÊLâe`?®Ä0ö)Šc(¸úªÑÙlÜÀÚPAzeI°®L�è±N0ÕÓhKå{êpYáÝu¼6-½rÑw×P2C'áRÚûœ�ñ>G7“³ˆYÀö> �Ç¢ïîBªu'×Àh‹æ²÷ÍÙ+Ò‘ë᳇óëÎQæ #@û2Vn~•»�®ÏPÑÅ÷ª’:;J]9—PžÂÜuµ�#õÚ›±‘N7_Õ¼©‚¹Kh[€g$wóÞ#“±•ø ÷xOg<ô&©îôÙƒ¦ŽvÎ_+ª>!ÀÙáFv埽ċ.aÓûp€#Ý^Y^„JŽnˆ´·Ê4½7AC[Öxé©Álëñ¼&{ýŒ®zº*¯Ì¸l|ú¾ÀÝ•ÔóàÞª]Þ(€`Aº)oÚ¯£¯€ÿ[Î8²¶Ln¼‹@€t{îO<VVKy´<O·[ÞÜEpK](oÇ;ìø&ô׺™îg>zñâ$ßQgDØŸŸÆå̦r팇b¡çë?É7ÈÔsï™ñ~}¨È€¾¨vÀø„Aƒu®h®ÙlGò›íâÍÖ‰šIG:{·sP×ÌE• “󣌻ýž"Î}dÞYsÒM‚˜`lîþu+gNm$ÛW˜¶L•<¶Ðl…ӦƓ¾ÈåÕh9˜ä¸!QT¼3mɦj*£œ„ ¦™ñˆ¥–ÎæÌ Ï‹„ö4™JsìpÖ%çc~4Z¡Ó¹IÉ`ô- ‹vžÙ†'è@›('qjúÇß ¹ïôÜ®¢åédÚîϧcyS¾8Psãî9ï~tRôC”³sé«&¡´’¿ï@–µ &ßàÇTT +@<ö +V«ROÎLK¡BÖä¼Y{ñqð%àƒÉðØ–Õ¶ÓXî‚Í�ÆßÊ-˜ýîXÌ 5{„³ÑCÂ$ÍeÓ²/›”O¦…šôò¾<1-pÆRibÒŠ0Ú—*-àëÍSÓùûQvé%B®Göuº2ÍF ¹3€_iŒ®' &ðx´†×ˆ‹N@íMË)DÑ–Mt–Z2¤¯ð–i†S2C\¬Ú}X½ü$…ÒmÐ`jÀ ¨Ý´»!?X˜V“ሿÿðÀ„j�2 nϳãÄ|}@÷ã.EÃ8q8‡‰^¬´)Lv¡EÕṁäÎÁª2¨]JƵkÚ˜ÆË?¢^_JÀ&Ì“Ç£O9—¯‘‚4•¤4ÃwbÔƒÕ»³]RjFÕ´3©Æ§…îm2V0›êd©l冚¼:bz ½É‡Yü)–ûHz€ÖvúæÝÜF9ë`/n2á~?B3�@·HçÔÓêú]öåHz˜¡É餣Mkµ'¥‘QFoåÉpöÑM%1Ý`Ä6…ɇ†}Z™8È@(ÒRnôWãÖDŒ$šQÉ�]Œ:¹¡Ïƒµß¢`ÑklÝ‘wXî ôbGœ›Ä¸(/îþœAZnH¼ÿ¡{WŽµN9õu#×;S-µ;J¦—ª8LçÃJÖäG0úNG\AsH~¤&Qr…A†>Ÿ²ÆÐûà;ö—7`úžP×nF J—oM¿V +Ç¥VþPÛíyߦSò ¬Ýšæ°Ã×gƾûœÄhü=ŠÚc”v)¨#Y½“[:gû0U}S?CTµçñö|Ú’–%é«<ÿÜ`ÜcH±<ÊØ)"Ÿë µÛ|hL*ÕC)òƒòˆA°3Óù窩ˆ@ `ð@N®ÃÉ£"Ö]b¢—Ñbéoo.‰rþ¿ÿÏÿþŸÿ÷ÿ÷ýïÿõâ«u§R8ÍÝù»>áR~24•€ÂÕdZZ§ÖÙʺ=‘Œ—‰mô§äjZªÐvëBg6 €›éIG=l'àK’l&€ò™Àü3ê·3Ämí›ð<Qö•÷\Ü´DÀSöy.úKþ¢˜ðU^¸ZÿBBôEc™HuÅì0gE¤T—¸®¿RžH뛾יÙû>«žÙ̾8]2{Ëw7f×k×oö¬‚uø˜2ûˆ2E"÷.D™5']WÌ‚Z”A½RCæ¢ò¥-pÜø‡A›>7_‰\SNÎçÑdçÌ&¾Ö“ÐC)Hß&äZ¼]I6Cä²vVéT2÷ôLºãüD¡BŸC«@[\ó9Üç4„“ŸÃŒÙuù š½ýA_ÓœŸo:¹i\m,‰LÜ;ëÖPÓ2â¹¥‘ºð„J\œˆ€¯Ždê!3|ˆ1áp428=¢‘g¶ýç¼ÙÛì”Ìžg +ÿò ÞÑçûïÌv\.–ÙÑÍãs¬ç’R¯ðxl3P#Ðf©íf¸è\Äì8j°¯ÂßÝWhàp3"-ÐM—…XQ\D…\øÖŸ™>07éùÓz辑‰Ä#m£&}î WâP#Ïl;†nŸ.‰çÛ£²´˜ÏC‹ âͦŽ›±©×BÈ,o¨—éÐNtì$¢\2¶F;&a€[Xy¢Y³}Ót`!dá=ô³#Pú>¥'ú4.?]í&šå_Îll0ÿâßÕ}9¿,í%Ê ŠYÛn¢a³s¾ mó QíxYUò‰±PA÷.¢‡·ìÛC”í;%Ç}z7QÆõ—ͨÞî¶Z2/Œõz6*í"JdÅØ¢œõ|2wE6Dá°†ìý‘é^ÖwÍšÃv²Ðlì$šÍQ½ì=³QÑÆ+"¤±•Ö÷êíüi-A¢®í^uÞÓ#Òˆ2ScŸ>—ˆ„B´êp€~Ñ“eÙqs¶hsþÜŸ4öIŸ9'w=³Í_.^k²z¢¹sÚzÚM4l~^Xûrm7Ñ«¤+ú~>.!¢@’õd=¡Q0º‡(Ûw_<Ä*»‰2÷÷DF$.w=³Qêñçµ1UÙÕV"óüœÙC”³Ú†“rrQ‰Èz_oQ´ÉÀ JDÜ!;ùû½º´z/¢÷>§½—LDaoúi˜Ùý2gÂD‰÷‘¬{‹hNžr5ÉG¢üÌØÒÒヴ‡(gå‡Ì"zf3…DSDÙý,î&šÆÞæ—µDë!½‹è™ ‘-ÊušØÕV@ôÑGÔ›.Ën¢Åœ|ùøàrî$zã˜ôQèm·µÞ¿zmí#š%nŠ³ðn¢%Úv‰…#¢€ +&;+Xö2ø¦™µ,÷·ÅÔn¢åhºùrõü¬Ø®¶>W†ù½DßîÙNfÑ'x^Œ|¢€ +&{ù6WDÞI´™÷MöÛêó¢÷×Dz0.@‹¼£Â¥ÏbŽ=ûÒ€hðÝ8hVM¾©mÑ.à q=”$7"J9¢ÎÜÆî㶖ˆWw0‰z DÚ·wUéGæF¢‹©=¢]^x-5?I®3lU©Ä=™×«Bï|q5C¢þmó–÷©-M.·aÎÂa¢dчˆ"*Š*ôΘKlièó`²¨'z>ŸK $J[:ËSU~f£!gß‚ 0*1Ùà•ßÀ`ËT~m`«*KMN¯s×ö—ipï×û+r|³ùj°blŸÈ½ÚVûJ÷êMÙ÷|}`÷$¿F~“ù- à dS÷b(Js“¾ånïW¾š>íý*PîÚë™mÿ÷¾ôâØû5NÙÚ{¿–<“jóÕÀ1ð½Ué†ö–®XÚÜž¯BΞ_/ð×®ã]Üâصg º§]Ò4à¾nꓽ_oRžá|ï×[[+`V9¶ëûS*ÙûõÕöŸïýú¶¬Îr›¯[ÞP‰«½¥ÇÃLôeßWPá«»ë+æ˜@1Ñ»½¥Û“V½´ï«ÝlÏ?¹÷~MÇË-y?ÇìêÂBîû7Sç®àž¯lŽHGÜj›ƒÎqTæ<«Å…ò=é¾6^³î¸ö+ãé#°$Ñq<&ýójÁ¯3ÅS"™&‹•Obº¸Ä¿4zŒZžÃ3iöÄ{a¾5à?ž!ð¦jIøçV½a±¶bR-¡ê¾¹…rDª>E£ƒHG£û¢VÒ çhFD ,L Ž½[Õj±zÝðšžõÌDZ. Ÿ,éùêÕïÓ)\-Qçì!ÊYaœó¸›(sÿ€t²–ì†(0#oä^¢(ÎÙKš¼¶V’õd;Z¢Lý\CT¸LÔ5D;v»uCyÿk¢´½g6èÿ¯Ûšéˆºî÷ìP{‰"ïCŽ][¡÷ÿ²‡èýóþ–Z2f/Q cÐÿßÓVÎ +½ÿþn¢a³ÿÑ’CçéÉ"Ÿb/QèS4t¢$‹*yôKéWò¡36ôþÈ—Õxò!FÎúþ’¾«†CÚ’í+’§è‹hõSÜ£™÷ÙÜWçr§¦™ ‰fVsE¹Øë±ÍˆGÅkÐG%øú9; %\GS^€Ñ™+<[ct"Q1wþ†ê³) ¸¤4¤Lë$MÛÐ(cÞòT!€œ`•À¦> i‘1Ì=¥—ôå”mý§¦õ˜•9³õœ�OA*Ymƒ_j•¯«àÑ]÷•[åöÚ s} U»žšÙQPe¢ÀÚlèÉÛ]•ÒVi(æT©¹r�Á-{)Ç‘Ç>ÿÎ AÄtêy•(f:þ£TžÙ5—yû¥ê0Z¸«}èχýW·ìê?@E׃VÔÂML³«}Ðy½þÿÙ{ëøFŽó<ý–B34fK¶,43JffÆóù|fû(—D’}á¤)$i›|’2¦Ü¦Í§)33ã'…4mÚ4)ýþóofgwôìÌìjWÒåì»}òêUÌÎ<óž‡æyfL͉ˆfpÙ�BUÌÒÃ2ò÷³kø£5f쥹š|OÊ0‰¬ÀÈjô•ÃòrLÍydÞ%då,{k†Šeï5f©E=cõ‘‰%kßëlÔ4®AÒ«˜™$1jÇê)ƒ}âÞ8êä™wÑnP'‰Ã¤h +nñª”âq¡ ¦Š†Æ®ÊLý¡ù*ûzZu†&ýhΔw”Ž@i‰ºR—cdT³ÎLyö9°×£§ô-3’ßð€°;7�ú@—!Äù„=un Nj�ÛüÈ+žÉô¬óŒQ³Åa‹ì¿�=½9§\ÁE²Ô7æÑVù´)µFV5¦^wÙüº›ô«ªöªKŠ¦2&S6u×]šÇÑëqà†sÀΈ +ÉH2ÚꛣN(þMh$úÍc‘t^¤ÏÛ;i§@ÏÐX6ÀúÑìOk ²Ê=»ÑëŠØ`”c:S’ÃOÉL šŽS‰ÉNd¥k*¦HG5-F¨Å=3¼¡«˜ŒÌ/þr�s¤A¤–Çö“žõ4PËi³Z—#j—:µQÙ¤¡+Û»äÞì6è´t%¼èÊ[™éú]4›?òuÔù¥ŒçOµcE˜èXLÝKRS‘ýÊxS+¾)dõolP߉1DZ(v™AŽ¯%cj‰fšc+h…kœãºQ¡-„"–B’ë¸ÁŒ+(TÐHŽÕìO1j`‹WåFejÂVeÍÀjº9G™ìÇ +0Ö€7MZâᎷf05“éÐÓåNÅ:UËQ]Å0äÇBÅBìÓT±Î8x`½hw…ïH)ÀvD`[⮨lK#<á;2’Û£ïæh¨¨¹º6�•$êH“mIuš‘Ü¢wt}Ê ÂÙèU#F|½Q×S²aÄa l j�áAˆšØêÓ0<4üaí.¥Eó÷ €Ñ}µ,�B¦ÑŒ�Ð_Vd^âcztK!#‰A–- oêõÇ8>ÕÚ¯´ÕmxêG×Æã>9Âþ~ãñÅìñ5²[ãÑ™ep‰Á€8Üó¥/¸ÔK¼‰]âB'-jt Ï‹§95ÞXB’U÷FÊî0êT,6©C²N1’å%?ZVüC«,élUíñEpðiÚT«å(á :ÜV½ ˜+E§ÒU©¥Ó‹û,6áÍÝAqŸ¤}ÆD‹õ1¢@#^“”¹S`€;@¨" jSºj“5¥R"ÙØ4LéfÖ”æ׋P•tF龄E_eoaVô¸Ðf‡¦Vƒ±—’N»)œ5r3§þbÀùJsDï)‹i@)j•§-�Æ„.š¦Œüx@³¤è’2¢3&º-‹¸Ã(: $M¤cËâͪ,˜¿G…Þ‹†$£ë®õÆÉƼ""·èÖ×w&´jJmÕ\/â¸1µ ‹LÆ‹&ÆM +fÖ’2L)=ÍvÔŽ$ÛJ’ñv®@Q+rni'Þ +©‘ÞSjFÌh>ÒÞ!4ªD‰/¦G+0ÓaSÛ›µRšª© ɸW”~šuC¼$¯ÓäŸ&+Ìf‹X)˜`€êJ´õ;'ÑÖ„Ûw +ÆLXµˆ1U«¦$šh·z 7qW’hªÝ·Ø%Z¯¾D3f)á¸t<®}4o h¨‘D`,z;¦%šºf„¶¿DCD$š·„[/56ºã®õ„éyÐòÆ¡[)r¢—’…ˆ|.6Žß‹¾k(ç +o‚BZ–Ù{Eë¼]_2Ý\ÀMõ¥0M ãÉFĬföƒHÌ�kœYÎ}Œ7ƒ)-ÍNj2 a¢·£i ZI2ÔŽéA¦ŠÔŽ1—:Zo4诮IÎ6f.U²ªÊc´!_« Ñ{¹æ½j¡ÇW‹<ú.̓ß@Djy|Ƶa¿lŠ$£Ú°ß¨}/Õ/‘Õøí{<k"]hV‹ávôí{cZLj'û´Bu¡n.\Ôvtr#TºPc—.ÑUÚP_ªöøp�€×†è=ƒéHšºP±”rk®iUV$ CsôãkŒy¢ÞI„ÌÔ?\CF-]ç×\ÝqçJ¨Â€¡ÕmDl¯1\wïU×#B3é4dóÊYjâ˜S-âhŸË"¢Gz¥N阬ÑMMV-Õ:sµ„ŸRëÔî²)'Í[30#LÏ#V›»mJjÚ»�¢Å%ùÈš`™ZO\¶-n,¶ÝQ¿|é¥Í-‰ˆ ŽššIäYhd!â¹7bé“Æ4äÆ äâhÇ`UˆoW0]ÒFÞẼÈÂ賊üÖ%¡g!ÏT-·>—’»Ô9žâè«'§áʹúxjèô+èÔZ,ö:ý +:)ß25tútÌé 1×ÐéWÐÁjÁxjèô+èÔÕ‚±×ÐéWбՂ±ÖÐéWÐ%e$¦†N¿‚Ž«Œ±†N¿‚fÄSC§_Awó4–ºhû• ¨¡S%$‹ô5ÑÈu8åÄÍí…vv–(ÕEÅ¢vJî’~þ6Õƹ8‹�Í›?JÒ©ÁSéÊ'-ßv¸NíÙ©K2Î'&ÄOU6ÙÕ¥Ù*Àr©E¸76CExfûÔqþØñ-K_ÔšÝÊ9£ã“bJ¸ØM¹2Ãtu—\¢.ÁÃL¹Ò_/¦Šæ4Ìf1\ÙlÛzýdCQ¿AÇ#Z¹êZ£9‘¢°±fÐX^ûZaãúxâUÊÐrÓeÝD-v‹– +’d¨Ø-zÄ8z¤»ÅªÂõiÚÞ)¬{ʘqÍ}Ý(nˆ�ÉF+´Œ¤`yÈŽ:v1å]–ôdD<Lú§W!1Z'4å3”@I2U¢™N¦¶©:ÔœQë1K'1À@àŒÙD[(Z‰„Id™Œ~Ý«Ÿ6k¢†7º@µ ¹:°hÆfêø6£©Iu|Súõ/iª •višv¬1Vš¶?M«KU¢M½:¾(9ð&J¥¦nÍ»á:¾¢5ýš˜$“™©4%¨LAE;ÁD¿$Ä'Šcú3&9µLÔÇÔÍä ™Ú™šÁ\âñER¢Uϳe™˜¯°b(²Ø5*¢U˱ pûb¨‰áY" ‰ ï˜ÿ3¡+"[Ô¶ŒÕÙ›kÐwödÿE/„ŠšPmqè¸úšeX\öLk—…E)”K{|Z“<î6ꆉW.p‹¾ö£²Ã §½ËÃVÉEUoZ{h@¸V4Ê:W¹W:vdÉ:—Êo«ÛˆVc¥¶#µ+}¢Ú$G)?2Þá HÅ]ßÐÔç¦ì±FvsSm™Zñ ¬xÕþ‹&ŸÌ…wt*Ç\Œ_3ô#2If:å±K0Ò+W ™ŠÈèt)/Z…a>ŒÈˆ½$uDÆÉGd›LEdè‰ÓÆšâÈ ;8‘0&Ës"_ö¥—83Ä.$ò5%"ƒ5aKDš8"cê<%4ç±EdÔ©ž¦Í¸#2¸þ,a‹øŒ»¨ŒÑŽÈ‹s4ó-q‘ž^yŽ©âœ¤|Y‡[m,7G«C5f,û*{sÒâ®I\i6šÉ‘ü^R2†JGuÏ “52\‰-î24Í”=Zÿ¡•½ÚÑ%}|‚ÌáfÑÉaæ$JšYQëêLç®s^fL<¥£êâ:9ÉÅulÚz¿Šß‹z^Ÿ¡½2Ãõpúçõ%ªNÚKâ*â]gc±Õà ê,&Ç퉮‡‹=CÕL=œŽ÷šÀz8oW%¸~=œZZ:¹/†z8ùT £¥1ÖÉsà]ÇzâÑSúb©‡‹¶Çgl[×±Å_YÕ[<9‘ê½$ÜX¢r"û–#ntk}ÁgÔÐÉéå$bð¤VñïðÖòéZuâÑÛIH%—ËsÆ3)®S‡Ã´sàe<gfs…8Y«Žhþ‹ÁeØgʃÖ:q:0¸’˜Ôd©)$ǵWD©É&qÌoÖ_ŒÁ¯MÈiÀR+ìò‰Á{•Ú1·|4*¹tóÌôÆ-cд¯åœ=h∻ƒaá⳨µÁŠTOj\TäXBŽVšg‹Hc¯HLJ3ê„jW¤ö'¢"ud51©¸DT¤âz±DT¤âvâ¯HÅðÇ@G<¾èõkLu¦Î¡©Â$#¶šƒY†¹‚e8`>®%ζMt)‹¡Â§¸JáÌŸK)œöªLd)Ž[ðÞã,…ø•'¡NP÷zJá°®dLè¥p ÃÁˆa(ª6w"|-— Áç +NÖ©‹âiîØæ¥Öi褮èOঠ+eÃp‡kí%E?ûK*b3r¾šð˜àH5úÔºžÒ3§™“¾UfrP#«ßç=Ožé¶ßµµŠöýƒ}“ãÒ%õþâôª1OEG½t§»¿§²pPº6¼n¨~ªº¡ §©¶Æ9][[ãjÆ—t¯(Ê(ã ºÃrÄ — +IÖ…\Ü£SwV–2¬]wVÔYÒ᥾.®tº½U³Â.vFYʲVÝÙ€^±ÛŒ‹y(¬°sû{j´+ì2Úç['µ:¡óÐ@n±jU²ÕX%9ëô¡l±[ÞÀþ–R°T›N…ÝÚæ„Ç©ùÐœ²ÒE +»‚´´Õ‚Íëâ†u*ìƒõ*ì–{z4šÙ2»F»ÂnVï>¾Îí‡Ö· 4Ù›”‘¾ä+×k'7«h¹Ê—^É8/Ñÿ^ûò7K µ˜7Òbì{öò½ZåœÞ–)ª,]ÿæAVêÅŽ…)·ìYjj6g‰Û#êÈ\6_Ú#¾ÇÊÐ=] j¢}Õª¹œ+’º(ǹ³9W ¹INdýFö’u“œè¹£pÃu†S$õóaêÜ8¢20uï}Kà%ršÐLÊPo|Ñ.OŸŒ;œÆºýž£L7Jip½f£\C$ÊhŽl§«/‘Õtê’Zºxã0|5È=‹VÓ‰^ >– j:Ñи“'㮦%€09Š ¨¦ÕÒiu{5á¨u\Õt|SSëq"¬¦ƒ¼Qjétscª¦íÓ(5#‰«¦ùͪ +î„TÓ‰jé{¯qVÓ‰jéÄ5#ñTÓQ¯ÔÒ8çÊd5hv©¿Ÿ°j:Q-»›5¨–NŠ'´šN4änŽDVÓé[J‰ª¦5¥µÃ{5¨©èw +›¦KÇ¢Ú„f8c5˜c‰®¦ÕÒ¬±2QM'’‹RL)¡Õt|©IQ®q4_M§U3’Øj:QíWÄ{MT5h@`/)AÕt¢RªŸWMg̯Ôd‡áò÷DVÓ‰V¹ÞDFiƒyP¶“Õ•‚×æŽnÒô’£]Si¸ði•-œÕ·.b¹¯NdðèY±ÝW'˜ÉF#Ö…1>mädiv‰î%áSÝFTÃBö’F7ÑíRDδŠKU—¢]AËœ¬Ó)S×.‹ºD$L£ûgòIýÔ0šQ¥§iñˆ|éÅ+Q²€Þ× ƒÅ{ÍáX”‹îâ¾æNÿž-ö›½æN»`/º‹©è^ss~²©kî´ó“›¸¨neJò5wqF ^s§ÎëÓHSˆûš;u®‚ÆEwq'{HVßJsüU••½í«ÊÌÕY4ÇXY$Ú[iÖL61´r»v®‚‰êÔ–w,¹ÖR!écøùeäÊT‰zA݈‘;ô«Òp…¡FÚ¡©$2¼^wLÝ°¥ž¨a"-‹©'’<>›~PÝØ~O cQsÕ™ÈNG ŠRNa" +5f(¼n +5e,£[?3\’| ©|ŒÿŽÉnÉ滦VêŽÊ§DoÇÐ +Œ~O¢ÙZv½.A[U[Z,¬íæ“&Ð{‰;7f°Þ$ªÍ/õÖˆ0ƒº‹e%˜—݃Ŏ¤^uvÄŸOéMÌÙ�x“0!•)ì¹ÇQtn0DµÆn0DuØ$Ö_³½úö»ñÊGSæ„fV'n'îÍ]é¸øO í˜-ddwHíh\®e:WµW°Ãµ”Awæða5\‰ÇFàc\†Ño¸3V_ï wLí[|骦à w1Zã&o¸Ó©|ŒgÂVÐ"LÄMyÑë‰Þ”g=½)O{&à†;„1xƒµ™îÌŸjŽ«ŸÌM%’c#« +¬EMa3¬—8 +kGVõ½jcw=#~ÇuKz¤ò±•-ˆŽÁì@妹œ+©ê9ÙظԎvAš™Þ€Ôî\8sõíÒuyÚÑJj éÕ]†%6·KlQ˜´A>Œæ2Ð[††Š˜ C£Ó4&Í^Vbó2óóÁs¸1#êIÆʘJlFV¥æ.$ñ%í¨ ¿r€qà£ù•‚k|ÍTyŠn§´ýoÆaäœ^»à¸D©X*þ¹)/ayvÈ&Õ3RÏÂdë ©2/š5®ƒ‰9šŠœs5˜°×©uQ…k¬7å¹4k\E®âÓø4ŒØ?Á]2\õ¬§äžˆ–BÑóà½<¸â¡¼§nÁS[ãjê¯K›mꮫÌéî)_žÈ)@¯¤¶o`Ä?ãͪH#ŠG +킸ºü +”¦%e¬µUvÁaªÊðÖÓú;`¨J}[Iíð F=œá‘ÙW_tWâÑ|¨ÛïÎnÕxhAZza—}TôP\ù˜78¢Wû·âÓ~h m¨Wó¡YSιH䊽‡Í®SšÖ‘¯]·žU˜¹F +JÓ’2¤*G»rø ÖEwº7ÎMjWþ¹ýÍe@‹±exymuZõpã: ¤ˆŠ8FÜ™6$«%Ui%ûÐ.½Ê¿æ>•~akÿê{ýêYMÇŸ:è+¹s3»Üeà{c›¾Z·oº'²Kª |/§dy£>¢&јóøìº]#Pµ:îUt:7¨UÄÖ|»z?¨.žK˜[ÌÊõK›¸‰võÊæÜbfø–¯ZÃymRV»´i=1¹äR¶E?ÁÔh$©N3±J …OÝÑîn0\•f.µJ§�LÎÐÔ®J3§¨YZÆr{¤ª»èÇðkŽxuFó´ŒTÝ©³´D{IF™n<K+ÊzYÖ©R•{ÃåÆ2ª~¤"›½3¥>1®j»q-îìX½©à–îÝOƒ¹QRaŒî[KÕµƒìéW懦–¡øXÜÆ‘Ù¯OÄ–õX½fd™JKƒU€±B«Ò•ô´¸¸½æ¬8.cøJneÙ¼2égjfc•0þúÈ“þÄœ²ˆ9†Kîtì,S�Ä,ÁQøàv9A;õv[Þ*—@°P´&²GÔq~ÃÕmÚ§œ9#BU +-%Þp!ë‰ÇQ~TÌžs Š)ñ›"ÚÒ‹°ÆUÒNÖ•êÍßBz´ú}Ã¥œQï¼É"–’‘Ô,Ô1�¦‚7¦ºÙ8dE¨Z÷‹™iŒÑ*ñq,j-ŽEÙ¹45HE¢%„c-y#ý’Ë…!Ç4íCÍ*@£Î¬tCnÌU€Fk�œª¡]h´PÖû1VšŠ'Ç\¨</Z `’‘&¢—(5€Òþ~ÌU€Fk�“âª4ÊO¼3{ Ñ@½]Qõ€â¸QúÈúU€U¤7ü¨Œ\Ê—¨Ùô§.‰ëɸ”z'ïR>Aî$\Êåž÷]ʇOh_ßïJ4/åÓŠÂ%öR>QÍHâ/åKÀý•.åS×%étª@Çv–zýl¨øïõÓ¿Õ/îJ.ù^?ýªCgC¸×ÏðÙPqÝëG‡&¼ÕÏ\ž’ö½~¦Î†Šù^?Õ€¸[ýb9Jt¯Ÿ~¸L£¾2Qµò~Ñ‘l,eQÿV?Ñ)ͱÜëO•ñ{ýôc¤’+þ{ý”¡‰oõ3u¥Î½~Æã–ñÜ맚s.œ+¼!†{ýô.‡‰í^?~†à~â\8ó÷úé¯^=×½~úŠN±Çâ½×/zUZ‚ÊÝunõcâü1ßëgc±ÝëÇf'©oõ‹ó>>ƒ¸Qïã‹·èZ¾/1÷úéËnx¢N”D0Ý{ýôÓÜ„§ÐÄp¯Ÿ¾§ÆåZ»c»×O¸¢é~Që^ Þë§ÏJU¥°„ëY{ý¢U%æ^?ãUi «{ànõÓ²-Ô=À{ýâXû&îõÓ¿Õ/A÷ñE©ž0|_”BtÃ÷ñÅu¯mE ½¤¸ïõÓOl•Ö~îõÓdkßËcî^? °Ë·úéV™¸×O¿Y$Çb¹×ϸ5Ͻ~�h‚$Xïã3·|´ïãKÀò¡ç,ÇwzŸ©ÁÅ¿€~‰ÿ^?S'êÄ|¯Ÿ¾CÄaâ½×O©ßßê¼×¸îõÓ7s¤|ËÜë§%§È~ ¹/j®±ûøâfÑûøâ¼×OÿV?39W‚{ýËbã±Ü맫Ÿ<ûqßë§U̦w +ù{ýôë[èÎ{œ÷úé»íÂy‰á^?í~a·=ö¸¥šc3!ã¼×OÿV?¦&1æ{ýD]Š "Êió†ïõÓ¿ÕO«VÔì½~üÄBQ€$BîõÓ/ˆUÛc±ßëÇÍ‹êV?ˆ¢©{ý¢U×&æ^?ýÍpnO\÷úEjE*Oœoiþ^?ý‚X%:ª§\å0¤§Ú{™Œ*-ÙÐî~îDEé=íЮ^â=Ž[2…‹*<žDbXå+`'M6ÙäGÙT,p.GØ‚}±öÙÊÑ6•/Ú²¾¶æ]ߟ‚ÔJSJÎp[ºÛ5°PH¾‚ë©RÒ[+nÛRŠkzx%Ï·¶¿É_qp´¸³7Û–»hϪYq7̵U'e¤nÖ¤ŒLÎøЫ‰ªŒü¢Ò†ÌÖöÕ®üÕ…ÁáÂ|gÞtQ«ÀÙì\KÉo äMÔt-ôVÎt·ôïï™mË_í³ÍîKﯶçÕHíéj^(9X6°<[i[Z/\ÍX«Z*hKÊHéo«ÌJ÷Ùû†í›ûÓ†ó–GfK¤©•*;+z{ºûRœ9cU)Þ¹Õ¾œ2_V•Û_Ó\ãöï›nr +2»ÖÖ&ŠmkëEýëicSëùSô畻rû¾–âT¥ìí€km}d_6Wœ&–!ªêÒÒ¡–ñâêéÎWzäøl-¾E0#»ºª¥ EÀ,‰hÀ™kk¾ôÝ‘î·MfÍv¤õ õT¤/¹ü™Þ¼¹Í´ƒ3)3¸’´I®HEOLÙt¬äµáSë[—¤šÄ”jOO†;}v½×±¬6ØW˜åƒ†ÖQJæ"ÑV:4Ùq¢¢ £v³nÈ?; ]ŸY;è(h«Irm”5U¹ÖgJýÅiõýU¾1Ķ¥ŠÀÁ¾‘ꆂ”)ÔJߪÒhášœîÉY(ÄÅŒƒcU¥-)kÒ¨ª—[Ö«›ûûÇsêûð+4ÜŽƒN\´ë n}Eþàšä9¹]6œ‹0¾A$±+ß™¥¼òØ$«ÏaC<)\BofKu¿Hà4® ?ËÒŸH‹ ¯¡?kÊý.½·µ5ÛàΩsdlúm GÖþÅúé…Õb·«¢ÐN»9Š½¤ZOiíü¤Ëƒ>*ω|„ŒƒÚråƒÚÜÈÞš¡ÞJåƒFWä_zé\µòA»‡~0&ù/øÞÑ@yvä]øä@|�ž@«ñ!t$Ùî]?€Ä_ Ë#ýé«ìMAvTe'eDØ/…`л~‰OÙÈÿž‘À€¥`–rEˆ•íˆwí.\é@XER§£Wj6Û—^¼¸þö¹Z»|è·=99ieiÒXÒrÐœ‹n×`K„1ÊS&û†rë\“e™%sKY½þ²ú¼\µg` š¶Š}ÉUh)F}\ªML‹R{J¹Ôžý¢Î⢀¿*k¶§®q¦<EZThTE=ÞŠ¼öƒãi2Š'óèÀ'ÑS6Šå ›jÏ•À.w +ß,Ã}jÀí™ji´£WðScÞŠâF/š«©IŸòj&OjBžÚ….©Å\ÉüD¸äß.»•Wc0ûSH˵TÈýY˜ñÆR|ãþqûp³w¢u5CËÂb´º}5E¾¢ÒÙ1û¾ÚýþöšƒEiEÀGÄ×lÊ÷V“Eþ!¦Xä>ß'}è´•1·'ੲ¡W“åÕŒ7ò=dhw¡ñmÈ“mKØŸü>¶½¢´°/7µÕ?ÑšQŒgµÆ—9¾^èn +ä䣹-¥Î€;-ŠUô¾·¥î‰«bIñfú7Sû¤8úÆêSý)ö¶![J®+©êÍ’¬´RöÊžûüÁŠ”ܥΑ”œig1ÖRé`Ï"“ÄxÈ”•Ú°…—ŽMµMZr²„„¹ü•ÉÕ\EZæÙ"Ò’ +¸,œrºŠwšr${¬ÁŽëq�ŸS×€þ\vA™U•2*M<¶‰Rɶwt³¬Ñ5?°á$ÑžyÒiØÖAr¬¾IdhK÷¼·53³?ê•4#\å%ÀHUI€#ŠûeCÂlj¡æ`ê’ßã+œ•4‰4–fwNEa_CíÄBõzèJ"Kì’¡†Uä!\ôڊЬ͵£ß¶!MS¾¼à ÌåaŽµ9ÉŸ éU®º¦²e7j¥ÝMä˜Êì@¯Wš7¾ïUm$ÖBljòˆ]‡ç¥Dê#ù0^{!Ò•í¯}¦²Ð—™]PïšÏïjt7{r°“Ö´(HÃÁéHÃÞ‰¶ú_õ|[nÏç«Îv7zr3*K%æËø ‘ðN“{v¡½5[áñUOTÖH£B34R-ò@ŠGfYg;æq.ö+kJe?¾|0ð›q•ÀjòÚó$#¹¸^‰L’áVx²kfê"ž6ïj-DO™¨vk a÷RÊH÷<ŽÕÜ:UçJò$ÇMÍ”³¡ÜÍ%ÃåH£õ䰸Ⱦƒ 즑\Mì÷*´â‹6‰ÜÈÌ_ö«v«¥wSk«SÑ»6ð×ûT‡z&ì° Ç|=Ó@Nmze}ÄÆöÚŠ}0¯Oz75µ¢2àžÉXª[[+_Ά B¦ïzªßŸiÂ=›šïb訦 Ì+‘+ÅØD"/]²¨êGJs}™¥Ã´°ëžÀ˜“L¤÷MÑç$ï®c#bd]‘^ã*™œ–%ŸD‘SæëT"[ÿÒÝé؇JŪDÉŠXãÙUýÙ“Êy,å^ÅÚ&ÇŽ`ù“¬qÕ-âò ÏÒ¼l¦à‡¦9È[ÎÄ÷Ó§(‡¿ ¿ƒôæ`oôIK2ÇjìÍ9‘ÓNF©zŸrüè¡Î\ÉÒçA©[@=äÈ—˜×wSŒ@l·S£h€~ÉL^óMCi"L¨š“˜@zY€¸°ÍO˜˜PY»º×¾n0A~¨r½4%ÑY€ôKzñ‚‹<ÖWؾ 3Á»é1ˆWØ)Ë®z‚µšÁá’2lSé]# +È'-“~g”¥Lˆ ¤Û@Ž¼ÿb‚&Fû€3ˆÄMäÆ;g¤¤ŒØ†á60‘>ˆV¥#^L;LÒ¾˜)N8œ†á«ê´Ùä&+Û™ýJ‡GcFYéð* ¤Eæ")c=5Ð\«ú¦+;òÍô%_i‡rvÒ¢W=9¶ø1fc.ÆbjÂ?Æìñb,[c†›È5Ø€ÇÉbÌçl8Ü¢$ŽmÂed¹ŠˆT׺Ë>>h±²Ä#yfÃedÅköAò,\ñΆËÏJå,5½a˜[‚>x“2â\._ô>4 Ù/oÍ!M¬Uä«Î³›ðÆ«¼ ‘µ{¡ÛmP1}ˆHK¶Î8áÆMR†QM¤nB¸Ä5û�¥¥�@wÕº~¡ôµÊœ´š‰¶´6m'žq~•Äu&Ò�>á°¬¹?Dèù 6 ÛDrdä½W½ð ð«òêæ±;°£ŠeçÁÝ\¾íüÈã±qî`¢Kê²6%·‡lå9º°ÚMzᶧ¹½©ƒ‘>(œB‘^‰~#?(SíACØ{ÅÁÒ‹…\¾Å¾"?ꇟXHGžpd7Wãt»{v*¯Ô[W9‡Ý Ý&?ؼ»¶ÑN%À*¥6¬aw=¯Êݨ͕wOÀÓ^ïÍNi.Æ(¤ì(Å…O]Rc*OiQŠ!K‘Õ¤[ s©ú¡ßÌCÈyI8¨!…¯³*]óƒsMÞ û@ ®·µûªû{šÐ$<ÞñÅ?Z»§ðÚæºj<Úv)6B&ûZTú2移qÂTúÔ_íip¦ÔHóâoLiöNÔ÷”àyitíßWX…³mÛGp2Sƒn€Œ 5æÊÇ›‘λ]y¶HP’nE®€ õ|ö *‚+…µ—…¼}Ù’/ïŸÉÍÖxksêåˆSä–Á^Ò*‰QJ;:‘³“`”†kçxåÉŸò.{²k‡‡p4rH©QïÌ+µ-*ܦEº;AT Á#ÀQÿæA¦Y7ˆ¦l£á§ºÅNñââWæXAÍoIŽ«µ{Õ絬7IµhÝ :¼öÊõrX¦²ÉŸ*-9£v¥MŽþvt:<–žóÖù@(|tq¼ ç)Ñ£pg2±ñZ¾¼‰øËs©úaᬆ +ÃͪÌÆg‘ +— Û w_ÆLz“מ{À…àînFp·U»›mùî}Yõžéáz¼ÑÙáõL—úª'š›ÈZÄñb¼Û±à’ ñºg7&«ÝMScµønô_uYV )fX…ÚYôÈ:ÇÖ5HB×è×Y°óù Ù óùͶˆô…;ï¢U«U4vñ‘±nsºKŽ×¸#·É+1áÉÕ"˜0Ø\ +Uš?ºøÔg541;’E€…ÒÏ +V2¥}°øøµo£:¼Wîö‚ÎÙô +¹ +h’2lÚ&+ËåÐX´P²¤0‹¥ýµ5]}mü’ê^‘¼$vµáÐYƒ´Ó˜áš¯h¬”šŽÜwÍ#µ‹õI²"YEd™5¦7)Û(ùÙ‡m¸ZÎXGŠN‰U7¿Ù€+ŽìhÉ›“d[™?¨!=]¹eúűñÈchÿȺ$zÐC»JºÅHò·Tû2S²ÜhYäúIè ¡F©’Ââ¶9‡ðRð`µ”íËô5´ åã÷ýâFÈ_„8—(ñ#6º›K&«ÈNÅìYe¯;?Ï®êmÞ îÈ•ûºŽÆ§ÞÌP²Ó£h"ÁˆnÓÄ]ì#k\¥§l”óMô›_WXÂЕ%\Í&ÖGÅà„]rÁ?ÏØZSªŸ”®ØM6ÕZs.3kÍÓPU\/5„±@Zc±6ݵ–%evI†}1¬ÐcëKÉÑôKÔöB_)+2oðIæž²÷ªkð!EP^!?^2DË:;"*JÎö" +ÊU*í¬£¥âkrÍwx¤m+RóŽà^;Yáµ/ÖtÚyy Óãšø«ðfd!û3œ•B÷^íŽH2Y6é$ž˜7ét º)i]ÿÅÈÊ‚ë*Pë I#xo]6 †× ¡&åº)†\/¼¾‹b’M£¤·TšnU>ˆ½‰äZTwÖ'eÔ57¦t£N•7 _»|J:ö¿®Ò63äÉ\ÏöH.,ðý”"Ri+/ ™î&¼µ”çnêèBBÖ1ätïÏ-„ƒh½(³ÕÜÞ@g¦œA{Þ²ùÅ®^êJ%WL‹?EX÷y$ÅêöÚÓJ"KÛ–‰Zì¹ÞºÜõ:¤Ã»\ÒŠG^PY3ÎﬥùüÊ +ôeö#}6»P[E–a¥7ßë«®/n3§G’Ñ®¨Ã"íš”M¿öäÕ"׫RJŸF¾onw"»¬‰{<ѳ*Q o:#$OôOw¸ö/—û}Õk)’’E>ÝJ3ÖÃØã[¬ó8<-*°¿´Ð[7´Ž}¿å>,(J|Ó+O`lҤE1ò+§ª¥sIÞëìA¶aô;5àé\}AÁVÖC›XHɲµã$•ÞGë@_JjõJkŠÃ^U—’^WÔsQšð§øUn'É1uxý=ø+-øÓü'š}üõñ”ܦâÞ”Üj_‡)}Îjs†±RâŠ(wà½âØ”"Ȉ¡YU£ù^U5:ùð%°1ž2šU''!Q;? +·(åȤ#®ª”.)$-ó7:Òg£CSäl©…4,³'Sã3ˆÁãÓC)™åíž”,{S“KɤBxêÄ ÍceœýŠüÚ¤tuî”/’9‚õµ[äÎD¤œÙ•éu‹†™ÀA"ÏBk˜fiG†om³f Í~ôP®àÉ–u‚O•x›&gU'OÍ·R[Ñ¥RŠKDX—ÌURΫÄ_cV)¹\ÛBm%»…hqa Gøx Ñ*RÅ ƒ›¸°:KËB,-ÛÚ +‰>¨Îö5zëºróTö_%ÎWÛ(óeÚÛ%”8‘¥ÔåWJM˜É`1ŒOTmJ oI$½MVaÖ–ÖŽƒd-äœÌ:ÀpuãÈâh,Fþ>…9ÐãÁÛ—Z‰A\¤êc÷ +>3r2§Òž±éŸözG7lEX¤ ]‘RIÏ>&Ú i°ûŸÓÍø\ù<o]ç"Ò$me-’’Ao˜)óÕd¬@J¡¹Mõ(œÝXBˆXl@`÷Õã§àXnòó<3>œÕŒ~ÑR-µÝè¯}Ø×ȸp’m‰¸Q[bŒßO’¢ëGF<޺Ś&éÆ¡Baâ»^ÙH»zìrxªÇVè Ô×KgÉJµo³Èæ˜ic󫈹ﰕ—FVˆ$íó´”»›6êe”lÌ#¶M÷‹ÂWIR�+PÁëÅ-ö¿¡UT鞪-öeÖ×4øÒ‹—rõaªkUÝëèw#~¼uJ]ó]¾ÌµìY‹ãöïøP•KÈPU>> +Ä^”I>¨Øt¤á̦bi—gªˆüf¢u[syèOGª·Þ;W€¦Û‹¾Ù·X&϶±{i%r>Z*½õ >8¢VRãßì*vï[¯Âà à|ËÞ$JªBG{"15ôç|72nòj$$#ã&«ÚÝ\».aÕç«qõ·x³SjÚ°ùâCò·Awb¢\Q“ÎP¥|’bjtµbj"jÄ"V4·C‘–³UE’GÉwyú“é‹#$?9«|0Ÿ(£šqɉÉUêFÖñŸ.%_‡{åW’„ÁZ+[Vàû<©â•’?kx3®ÁIèŠXp0ÛùqŠÑltG{Š7&•º‡æXiÐ’3M?È…(ùøü`¥vŽ~àQ=%P³Š‡Ñ– ¾èµM)_G¶ø`.o†~à$Á†ô*¢Ò= ¹~¼Ûæ‘“a+»ðŸØ‰415—ƒÓ)›XÓé…rj+. "Jm:·oyvºˆ}?]Ùˆ¹Ó)7;ÝÙ+5ë“jH¥�v$ˆC†EnÖr=¹0«]5sÙÕÓûZ$QËÌPÿÓêÅj¼öYbZ”Ûël)Y}EsÕÝ›éóõC3nµå2áÝ«’Q48æ£åy`àu•…*ý¹ÄQ¬ë¬ÅÛ¼ý®¤îØ{ÅI*ý°ý’d\Ư|ôUi¢¾t±�ý9$·ˆÄž’!º^†Üô•Î>>N{^éÏ~P·®Ô +ÈWÆ2T�•ÌÁîŒzG±}¬ªÔÝ—®ŠØIÅP—< È?ò!ÔôuF*Ùø=7þ`ÃÔC_yá÷Zçòð{yêH¯ÜŸNÿDß`m]N‘Ýï¯oí+Rr¶ó‘V))ÀuúÒËÊ&¤í(Rþ§›¯/Ý2“€ŒýÝ|}¬‘‘±¯Ÿ¯ç%û9ºùú$·'þŒ}ý|}¥Vtù护"w'¹Èçõ$»º6ήµ¯ÍÏÍ/%;’J“\ÕOïÒ̲mv¶göÈFÝòôæâìÒFrI²«º»¶±±(¿nvzyf6™¨¬‰rÕƉOòFÄDݾâÀBCZWùdÝ>÷`ë·Ûr'FR²³R7Û\ð6ì‚ûS2f=Ͳ«^±à'I¸Dý +«$[;;nvf³>§µ¥Ÿ‘pÒ6VñDO <)£¾¿f¶«Êµ>Wæj¨j®ò÷uW¹6ÜËJ|ÄÆ ?N\÷àZí¾ÀHJuûXºúŠ)'qSJñیۙ’Û]Ù—’[”ëÆêIÉÌ“–Ü*¦›ÏÚ»l$Ť0«$sÙ›‡±Ú—”ú]—Sœ7媩÷6T¡w[›ªöõö´U7L´åç—Wú‹Ó»fjG›Ò*VÓ["aM"õ+ý6’ÆÑ~õc%e2´Úg d‘7°‹M}‡´¼‰]ß/‚Sd¤¥’e«ž¥eI; ’í.ý‰dFÕ²dzËå8’˜_•KÊP²d½¢Âû±ªˆa�;êp/MÐ mà¨Í ¶A³Cm°ôz¨uÐì„¿™+ßVqäƒÜôÆýÔž°Ë´%•š=mÐì Œ9§Ñ¼(AÃ'°R‚yU@mnb;4´à´£6eñLeж;sÈW¦V<X¢væÒ–.m€Ûð‘ñNÙ)¨Åítº¥tÏtC»ô§ÜìôаG.ÀôçÐjF"q¼ö‚Ê–gñh^tUThÜAt‘X†K_EFÒ ·è†«Ò•¶^–Ó[ºVPÑ›×V]8:c“ –¡î¥PqØJ'"ðòÚ7g¨ùá€vIC9–ÂýNÙ$j$"Û[7Ý.Ûäu{½ò«Íá1ù˜o½}rœx~ÈÂyýù² 2T…[rJéÞñƒ-r ù;rÛöŠ¶!Xt9Q:s€~GC;ýýS`,È}¯5mñeÒX‹9^›T¹ºÈ:ÏôöæI½Å>`¾üªn’M£>ù{}‹ÕloÚk{FýuS§«»zF²ê§r«úÉ&X™t"¿l@l¬cA-#Õ§dmÊ©‚¢Úï’Ñöe›$7kì×ðEË 5õng_ûM³ò¤æ¼î,¢¿³«‹¤„5;=&¿cYÆÀBŽâ»#£1ÕéšOíÈ$EÅn›s]ÙŸvfI¹\IKi“6"-‘ p ‚xnxÚ’±‹†#‡nâÀá³)ðñáXþÚ3±"þœø\¬·`ö»d7™f’hȱfâ?²r•¼×ëqWŽ>ªÊð·;ª¹’qê°KW ™=Çg§Ø|öH1^dßN6¾p¸´‡˜u€_ÈŸó.Ò6uê"'X€í)þEûúÒKÊbí+…!³Hž‚{_ Sÿ'—Ø%1ÎS¦—››«È©,u8c*±“*²`‰Nå‹ì]b‡Óø"»D—Ø%eˆŠì]b‡ßø"»øKì`t•O•V¯SÄBKìò‡"õe‘‹»™J:ÄÅW½À;)#½kÑ;f¬`ô['{\Pü&]·n‹tObVkܤ +7ùòpu¿ÇàDìm‹^ãÆN3 Ú…; ªqS +wt{w›fáNBkܘÂÃÃÐ*Ó(W—[9´9Æ�‘«XÓj‘v¾ -½°ËÞ¦z͹™’š“T}&Õž1EHѪÏb¬" ¬^ÁÚZEÕtÔœM.‡…”£# JŽ3”b+rzRÄõ–ö÷¤d1Ó•LÝ=&¯Û.í\ëƒF5³fLåÌÈÇç˜ÏšásfÒr‘ƒëoÈÃ’”¡w>Û’üÃÄR¦¸ã°Å‚¡Å†ƒuû2Ö{ªÊ*ò"»·‘C¹|%ÍÄr½´re³LV.¥oGO,Çû곤”g¼'˜ÎAÑJ&—0f(&“Äl…Ùòåô•ÞE¯:I$÷à#gpzîO$½G3§lÉ¡.gÍ(WoµõeÕáŒVén@Ÿw¼a®Î3‘âcS÷HH�ÖjÓá«^ + ¦r;qbx!ÎlmÀ[ÓÙÍ%LâMŽ²Çª°ß^Zî xj«}™kxC¶¬Ëµ¹ªÇ‹ý>S‰pêä=8.“o¬¨ÂlÐï„m‚eíÕM°H4Ø=c³•HHÁã’l(ñ³ŠªÈyV£ð8¢ +¿|�6I¿NÒ¢ÇO ”HA4{äÙ轪p`xrÀ9‘j1°ÙuÅ¿´ã çüùx+%‚,œFpê¨Í‘ŽÄ’£á¹Š’ÙÌ–eG‹“œšEò0:ºÜ8.îAÿÌà?H³hÅ/)‰CéN;=j°ÑA$Á `ƒíN£‡0#˜ØäpqÔb—+1-*íõºáf~AoyImuoféDíþÂæ•êžê¥~rÈVÍpö˜bš Á‘_DÇAxMµ8ÀIZ䬨©.rbœ´ÙR';Ù&}äh-Äôîlò +K%)YÚ‘^ÉS;5—/YÙ.ô:±¿à¡a‹\º“+]ÃBO\[˜ô‚³€G¿0—G·¾òAJK92ª1’\M9B,n»¤@3êwu6yU?Ò”C^^oÌù¤÷" ¼QUkEþ(®Óê´É¬ùŒLšïZ91Žø²ŒhZT®•p¡& ÉÔ&»œQO¾Ô·Šm'–T6 ©¨p‘½-$„I´'»º|EuÄ_wž¼Õ†Uݪ+ªÊŇ×Ùñ-ÊCÈ|é[S¶´ +ËHÖ̾ޒaáµ ûƪFØÍGéø#GÖ~9nÊ#âÅØ^c·õ±‚nΕƒ?såÊΔJ¢aïî ШÃçàˆ¦Ew"u3œ#ɱÈî˜÷B",’´M¤—I‘sic¬ %Òv$|žK“+«o®H*EVs£Ç3^¿47º’22Ð;ݳ›+øùã5³sóK-“Gg×’<Éä?7úÿ[Xœìñ%{óóÑùøÝ–©$›ôÝd=¹e))cÜU½¶Q7?½1¿¼4¹v4¹½åIvÕ,/L¶U7vûû“ë¬,¯m$“ŸõͯÏOœMîYN®íî¶ã]¶q×@kKoc]rI2i{µ]Šíq£ÖÑGä{zíÂöÐÈÇ“ÜÉÕè‡Ñ ªWЫö$·³Ð[äÎÏKv;ó +¼>48·ÓWäÉ÷¢îâbŸ¯�¿ãñzñ‹¼¼Bw>þN¾»¸È—<0‰ZéBäy|Eø«y…E…ùøE¾Ïƒyät£¯æãæ +èÿp7KQwŽ¢?šÐ‹Éɇ“ó’[“‡GÝÉ3¸§]IÞ|Ÿ³° ÙSŒ’_”¼Þò:‹‹Ð\ä9}Ũ§…ø+…ø ù†òFm’×ç,p»=ô–$O³¸Ð[HßñxÈ7”Véßòƒk“”w¼yn§·¸Xj„¾…Zóz“•V½ù^òåÁô Ô¥{ô½–$:†È•aÒ¶Á;nÚËŸ–¤)²£‹Ž çNvá}]¼¿‹€ ý5¹8Û¸43{„üݽ±¼vTùۛ쿫^Ú˜Ÿ<8?¹>¿4'í#ÄN’fk&© ÙfOè7ñѧÄüïI‚/Æ'lâU·‚X€–Z¾,Eä=îäV"küógK€Øéš\ß@rý}1䪛=4?=Û¨IhK¦’(Á ° y4Ùƒ°êsûðS÷‹>—þ”¿£ü?úµBéÛyè?ô%$¥ç×MnL– ÏÜEÅùIçîXd‘EYd‘EYd‘EYd‘EYd‘EYd‘EYd‘EYd‘EYd‘EYd‘EYd‘EYd‘EYd‘EYd‘EYd‘EYd‘EYd‘EYd‘EYd‘EYd‘EYd‘E'βЩžÝKBFÏHÒ猅¢À“�’^…Þ+Ñ)œÁ“È`{1_`8vf⇜0riß¾}o”ˆgì¢D¯ÝûD"û>‰(œxíœaø²…È‚ +ÄRôbuuõÞ{ï¥,Ú�t×Þ'8ˆ„{%¢V é@hG-±O?bÄaùáý‹XŠþ½ãŽ;п·K¹zäÈ‘Ûö>¡QðôðáÃdìdø]KBD:Qüðà9Õ“œ`¢€Aã¥kññ1 +ñòóÖ[oEÿžˆçðˆ˜Öø'ž<‚c$£&ÿ"t%,•ED DÁžÓKìP•ƒø@BxE¸aÝÖÖÃgfånÅMLƒ'!èÓÉŸd¼ô_$‚¢ !Š"´Às ‡j%(N‰&BsDyB8F™I¥MX"Èp(%‰ Ø ?¿ y„ð¡´q2p!œt‚‡(úÓ9ŒOMC¡BÐB'ˆ"½OøI^PöRY§`Û< .œß7øômiìthÌs!¶.!þ•²©-b9±Ã çTCÀ4!ƒ–�Zd\DÆ;vŒ.+È1ÄœP(D†L^„$¢_F¯ßèkDtm†Œó}þ5}(ÿ“mŽ¢b‰Ê¢ãÇüðµ…V"u¾ rvöš…ÌBHõ &PÎÀ ¢¯ÑGä_ø‚ðýɼ ¯é3k–6K‘ _ðO¡%–`¯HW +ȧt±@8Aü@ÚVŒªâäPmµ³wC:IºMÃYÄâ%Œ"/—˜i…Œeþ%x ÿ’ßÒwäÐf)x`#ôÿúe¦?‰%æ¹Z<–诨Î"£à!î'Aóиúž€ µ~æÑÐX ¥B&¬Ø'ÌJ„SÌOnXt®CœˆŸØ”BÞ^ì0˜ç{@ˆ¼öó6ð¹¶BF2²s¨…ΩƅQÌÐò•è¸ÂŠj ‚‚g#8žÛŒTÑBóœˆæËÂIL…4$ø\æ84ÚOFUðäPmiOè)h�“]t¥0óÈÌ#1B@ ÑÉBNŸ„º,,AÎŽ“˜'†E˜…ÃPÈ•-àdQ#‡báìr=E1”üÁC‡ÑÐ…�å?o¨‚2'ÄÉj# Ñ¡§Å˜×'0äß ð Ãœ„w’ùåCHñ¹(x(K!lç‘y°ûõTürFkf3òN³<CÚRˆù>l$Q¢†Y««:Hæ‡âdUgÛJ\‹þIÙ÷Fw-lb°gÙËÏ5å3*~ +x&o‰\!¦)Ò7¨´fŠ ‰ÂÀ)Ìa Š_0Ì×ø– T¨UC`ƒ^>|T‰üßÙe°1ë7Ñh œGÈ-ü÷£N1á|Á/oÅá=1}æ•é–:ŠÈXŨà¯ÂjûÌHèR•óÝ ›˜ã3ü‚ +«—?ƒÂ7…3ȼ`0Ã4x20Ãô"„‘'BIÿdŒÚ8|yMmcä€S3ÁZÅ;»6¦âÀAQ(˜ç³)…JGH¼V/Xúî@…â#*ZÃjd’Ôì ©5”…ÔÊy …z˜Ovð lv¡´1»ßæÔ=¸šÖEC`‡Cj¡·¥öàL3æM^®ò£©Áu8!õB£ƒ"øßRü) +hïÜÔ¾6#v ðhñ–Öw˜Fà:…“K>…Ò&¶ýk:(ú}V¸ÒPò0ï0C`†y ðÏ ˆkÁæTC&Æü2@š$C!D¾ùƒl¡Ñ¸¥v@„Æ”NÃ/á§0B"½Ì#a‹³^˜?)‹(2)l„±âÝ¡¡æéAÉC–�\ƒ3Œ à¦Ab¸J¡�}ú–$(}¢Y…¤µãÇÓAG�€!Âk1Ê +-ÙÂp‰Â†Ø6Ae #ãaW61ä“©ò¢œ„°ÑZ€BlðLæÁCôôéZY|‰ÉdÔ1LJ¤"4È),3´çt *Œú«ESP±->Œ–0²6ÑÔìÃÆHÝÝY éÓEhúŽ=J]r +ªSB¢ø*ák[Jpƒfä&ªô€äJ1z™é�Í‚`0V«*±ÀUÀ(/ŠÊO¸¡IܨÝfØì®o" ‚ª/Âêx>ÏI}Àè£k8§4s;Q%N´* Lu$ƒŠ†Ã+[K°ç¼ÀÔç�”·T¢n+ûtýÚÙjÇL%Á<Y’WÃœ*×â!Ãj†áô¬> io‰-¨$“–‰€Eë‚>—‘¨Pþ裂_5üº€&1]TÐTC uªñ"L‰§<Ök !ðä % ÷ª¶Ôqåy(\¤¤)Â:b" @Å‚°"8‚5¶B„ / ÞP‡ý×2ç› þ„nß„.fhg׈Bg©‰¼Éô™@±—î; K€–FÞþ0o¤-%5=¨`é¸)ÃWßÇCtu?)~‘-9øœñ¨V>Á%Ý +BTÖQjWaÒY"ÚQ DS)§úÍoÄgŒ,4†otÑAË)‹cÜÏ„5„DÍX€B5"ú²EÈÆ™‚°!n>a,°A ývv™¨Ñ'jùmq8•L\ú›Q9É›Í0ЛFŠ‰ð =}'¡ÉZKƒº“t‡…æðF—Ð-Ò;,4iè¯è؉}¾ûE(lòÑ<R6’h†––ŠæË0òƒZFO¡˜ žä`ªTÓ˜gPñ§xßö_gìZA§ž5ÔØÙS¢f!f¨ëÅ,„„‘åÆ°N3/Â0ÏRGËaêœÐÆŽ \Z$”WôWA.ÜDÍns Œ)Ì5Z˜¡Û¾§3t°;�6¤hÕ“ é[X‰®˜°aõ&ý-/g¨UCé´Á¿q¼×1³£† õñIºÃB¹j$H%ŒçF‚Š±}ìØ1âÐÝ„=¥ž´0V5Ÿ6˜Ùá²GËOòëfÂêÐ +ôt ¢Å +h�3Š =”„Åöœ%|bfGKTvlƒêj(0‹™-'Ž�yÊÞUOg&fèÀɇ¢FË„3psaº›@™T5{K=ɘÙQ‹²QK5D‹N”F'ªI_oÜxÊqöwáö“>±˜c*šÄï>~ü8…GlZ‰a”]t˜<‹<wo™4fhüСCt»-¨ÎWëšÁ:p‚1aêqð9fföfvjqq‘¨'’fC5<f„ÇU–àak»‡féLÆÌŽZ="˜¡‡ÃÀFƒ +$ø"èvöˆla&¼'bfÜxã0<Z ¸0¦ò‚žWLn÷VdÏÂÌŽä=Áƒ5¶•z3Q½lž„ ++¨Di ë´cafOa†hºÓ 5ENTð#É!u%y°jafïb†d¹( ¿ó¨ž@4’g!Ì î3gf„¬°0szc†×M̼‡uu“PÎ0;Ý´ý R‡eé¦=ŠÆ†~ ¼˜²á—!OBJþ•eï]Ì•Ta¸}�k&^§åkóþ ¦ºÉòµ÷(fhUÍOƒšNp† æP›b†J³ ÓÛƒ˜ J{Ì„ÛJ^5`L%Bð{ ¤•ÝÆSt&c†1€!Ѳ‹°†´ÄKæ;<Þ¨_†€J³Ù-Ìì ̹ӕ·¹2RÆ21²ÇURHAŸU¡•±'0s–DT1‘dƒ2,ºBŽ’¾I1C^Að‡¤ï¹Š•33AíRfÅD‘PaE´·œ¦330s†ÐáÇiéAP]PuÈÌðy¯œÊ™m¥6$\íEcfçŒÄÕJð9Ô%ª˜‚ IoKg?ŒÑñCs-öbbçΙ‡ +xx;2¤{|8θ—ÍogCUT¼lF1Y˜Ùµ˜a�”özHôþ„úne^>˜%¨Ú rÈs™2Ò±‡ ñÓ™ƒè(1„ºsó‚àT½¨‘^!Nxw),¥B·&©Ç´çÓ΃0¤Rû.åš öÉ“:Ñá�üò–r.,í'G¿÷Z5¡33ŒJ"€A³†Ì(mèü†4ŽÑ,CÌo™Ø/)…Û£•Ú„NoÌP;!¨>ÛŸl-‘ãÙ·”C0 —Ä»KFˆùU\óD_ Q…Œ…Ì„_Äs®ÎRhœHƒM%z0©îg¦;j˜y‡éw8·¸ÓŠ¨±0¿ÅrX1ÌÄžÞYí€3ôÈÔ#mI<„ÐáÝVŸËV›¾ÂQC³~ŸZ¼Ûàª>&óžF¾³×,B'3Lp:A51רÅFt,´Yx˜6AKP¹4„KŽº„^„ÁõpG + á*àWÿ&E&Ì®=SÚ%3[êc)ÑÙVΦ[ÉñŸOÌ*ge“A‘§:tˆœF&‘ܺB^3j(Äm-ñ8„è"¯‰„!ºîG >ìγëÍRÂ1C¿�…<=ðú,|úŠY"œÐË‚Òº&×ÊÐon+%üApßp˜p :¢šÍ0\L±µ»ïȈNf(1?¬ÈbÒ�,Yz‹™Â ù ¼à�®bÔ8¹ûËÉ˨Jè¼ëcFk¤aA±TbÚwñÄL Á3Œ³I_P)½ .úD=wC"S˜!?¡—& vN‚Ê¥ôòk$g¶´¯Sá$/|Š3Ê·°tâú¶úf‡ÝvçWÌt²åÿšñ:ƒÊMR±ú-Á½³ õÿرc4*r›t3ÐÜâÇ«ÿTHÉõ…€á;¼³Ç³7f&‡9'ºNô£ p?éy/ÇL’t/Ü Ò õ͉t‚ÂJ%Ѷr8#^[Ÿ«†ŠB4§ÆÜëf¥„c†ù~ÄáCàŒ\2_È¡bgÛ$‘_Á(‚à´L‚¡Ò¡ýçµÿ'ã+1ka[¹cK}{)3ú°Ÿr;¨¶+nºé&8ÝƉt›ü<¬¾½‹¾†h¡‘^jÀÙ×Õ\Œ¨ÜçÁ•½*F –€Ù99ö¿¨é;AÅ€-c%ˆ=ÚDíoî +q‹P¨^á× Z `˜ëÌN?Àìœ4ÌÀÅ»ÅY8Ð ªõHT‚¢-0mnûIû–1±ôÇÂ@hXD°çA%ÒKìðÓ0;'Ùoþò<¨n„Lù-…mŠ‘tºá;B5Ä +~™OXÙ +Ù÷NÁ…b§+`v:Ì:×ðçP2„À-Õú$”TLû!uüŸý¦…´åd»¿›¨¤Ã‡#26ÌÎÞ÷¬yŠ3úàagŠy?}:Ódó…Ôby´Ös¡``3‰BeKÙ>;rä9᱑laœ®Bf'¡q`Ja5f(«ùy䥄A¨Ð߆¹”oæéðû°':íÄ<4¬¶{-̘˜°v-a˜³Œ£…Ÿ\ØøtæO“úöE£ì ðÈ7¡1ƒ¬_ª›iŽÇi ›='g˜Ÿóm2Ï ‹ó[}¤…Ô!_9ª¤èIÔÔ¤9a³wíÚ…/ +h7„˜>š·gxÀoðÝ–´¥E¤ ,¸÷Þ{‰´9-•Ôžó›¨Ô‚Ñð-`áð]¢ß„‹$RH¹è¯ ÇMÒ<Ûfçtñ¡öh|†i!¤8ÆÀ >.¤>O&Ä ½gÆ/§À6á—Ãêyè†ó±šÓ6{.Ì÷ŠÎWH½1D!ÄX)a‘âÉ ˆ¾ %Õ¶²]–B|a¦ +›Ó#yfgï7Q¢‘Â-¡ðÙNc˜SOZï.QŽÑþÀ„yRïpÚÀfïîk3DFAžK–<œ5:¡¼ä sFKˆKÊÚâi(ÍèŸTà¤rÇ%… ôÁwö2lönþCB[êäŠ"2((gè;BÁ±YAE …Ì6Èb%°9 ¤ÍÞÍÓãsöhæižö@AEQD¿ÆÈŠ:ü¢C[j÷ŠY ”uô‰6äÏ=í€ïõ|`!Ý&QPIN ÿ""¢‚(¬¨ÈˆÚ1ƒ +!!O蟨Z°9Õ0M{·î@H¤y‡„Jn¿ýv„L¦t…”6¼‘Ãà®hü@+ˆ>(>!íìA µwë›´ˆ=Ѻ'²´Ñè>‘ÿK°JgsK*[«ã6Z#Õá�}¢(¤¾ä‹Àf¯—®œu”ZDê+)–àGDìм©0°Ìá@x#gKí2úSa iIûd™ìõ¹Ó£^[‹`w€“H‚[rý ì³Örª'BáÓ«7á˜a\ ¸ÖNÒ¹ZDÇ!T‹5]¨ªN(×j30€â®øN˜3˜!~¨NðIºGKþOføoRÌl„ógt†Æ@"žHC72•¼”€�ÐY¼üa¼EþhFC%–'‰N*f(m¿¸ç\i”y(UX6-d6‰¶ÚRx¡‰•)cÞð¿¢Am¸çDÍ‹†ãÚ gJï¨OØC°A.…ÍØjß·8m‰ötˆWUж¡@ ªJ{ÑX3i˜¡£Þá`·‡¨¨³Ï›4ZP¡ž#cKÓ×A%HÅ.½³DÍ™‰™õ°È¢ !Ç8¬Ønƒ¢]ù@_@MGt +ö¨9c1³¤ ¹öêô/œ}#c²(¤‰‡AØõ'DÍ™Œ™îRºT}ÛÊÑUtº….’>„ÂÀ˜!N7y“5{Å:Ã1C9@5êr½é•Au"*øwx—Š2–÷Ðë»ï¾›«…™ÝÊf^þ_ãÄè¸måµ ‚ÙÙÝêÉÂÌŽZÔ@«&J&C yŒÁ€AWþœ0„°‚X5¤sOÜMia†á!r¸=µj˜˜0©)Øð»Qa%>LÎavO´ÈÂä5hÕ=z†hàkÿHˆ +f6¡(lˆz‚š]Kf((+ÐÄmllM(~¿‰ÁƒqQÃìaÁzãXp/\ƒka†’Aõ´ ®kbC`aµŽÛù¥4Ê·'®Û¶0C‰ª'ߣ[ ä* f#€ Ð ‘ð†h ÃÊ îíò€°…J¤dÓ¾Q +k½Bn‰ä„Eéô{âÆm3“†¼æV_T¶Ð×äÏ ¨º¢ô"§ˆÄ@f ¥ÜÕÎ(f®µ�£ƒ¢-u9m š4´¦f—›Áf A“†„¡LÅŒ´0 ++ªð2*²…‰ëD¶Ô-Ìì-ÌìH& ÂMÖ¥N °P¯™¸C´@µ¥ÜTj÷Ðs-ÌìEÌÈYõAµ»ÍÌ~H¡¨<a~Eþ…–‘iÔÝÞ±0³1sèÐ!ª›‚Ü7Ö'¡À;P„H'Z˜91#ôµyo +(‚™Ã‡;ÊÂÌÅŒ¾n‚ó®o´@xn3§f¢ÚÀÌŒÓ!Q[!pÖè–’ái馽‹™8}mBQåƒ:ËÞë˜1ÓŽT+8õy“‘f–¯½1TïÐ9eœkÆñaˆÁÄeÑ8¥–È+¦··0ÃÀH¥À6(ÈeÆ«Ïæ;PæPÌ0)4Á]œla†ULÄ�†NSP¹~.,’:$4†3f—³…'3”˜œ+bÌl+ù-ÂqEÅú“ ¸–…°…n»„-<Y˜¡|Øád‹3•¡¡ ¸0—¤‘gÍʹÚ+˜¡P¡%NÈÆ ûÎпYŸƒ9nÏ$Ïbà]Â!Y˜ÙaXJ”.|ªïbŽ¤AÍ}AxT®v³Ó´caF»d{[}–ãìð#ÕÑV4&[„+zeØî7fvÎxÌüÉ ¨l¢LªCy¼ËÌ“0ü+üˆ¶ &»»Ü˜Ù9³1䃥–#÷™) øþ8…&¬X2T1w}4Ћ0d™“¢i +ªYà�µ4‘þöAXñ¹‚Àc +‚MŠS.xЙ‰ + ++Þ \8(ƒ¾6´ŽÂŠÙVNKî‘ÿmÌ•ëHN?Ìð&(™1ä`´ (Nš…±{…Lˆj‡ÀÅ+T1•C_ƒ»Þc"¤ƒ™°HwG5µ0Ö=ëõE,õ’xÀÁÓaõ1̈Œ‡y‚Šœ=Ê#E4ƒxmD˜SÇú˜a¼Q†Q§ä|`ˆ2;4ÞKT¶–Â@ ÀúB†7¦–%*d‚{!”·£qp%£ÍCà¤#Š‰A3¸¥rRÏ!?‹£íCÈ)1™TÛÊqŒÈ5EBÔ…ÁY¯AîT´]‚ž‡Ì¢#Uí$ezª3£ÂÀüÛ‡!ÀË‚Ü}4‰":pú zSAKPªŒ&šæU†ÕQýúbÊ°%9&ŒÉ¥môDÇÛUÇ×ÙTá$ê0MM– nš=ú¨Ð"³@Oû'ž¼ 6á÷ªô*Dþ$š“X¼ðìhÒ7¼ª5…(j¶ÁU•‚§TÈð’òð½QN’uG"ä¼J²è ÷„ iBŽñKƲhËäP\z•=›7Dnn"-¨ ÙA²ÉR!] ++Û@´·Ln•q9óˆþKÓÈ)%¤TAwAl“âÂÎá$Í®'C€;¹!pÚ?³jøÕÄ3b¾€ê Á†,´×&šHûdtL–&/AîbJØUQkaŠbFCŽ¿ðøñ3P¶PõMe2a#â!†d™“ëöÈ6î pi¬BÌð‹KÈ^8TD# ’pÖ]‰#Š z%}á´?ÔÖeºª%WùáoiŸ¶ŠÃS¼VÚ91F¼À'kí.é6F(RNPÿÉ{4•rÕ,1sš¸U¢ rSmBˆŒ‚¹ñ6ûáƒÀ]b”‘ÖÎ?XF‰‡Á¾RH}˜Õ¶t‚4â?·à‹˜šƒ‘„dirë+•ÌtÅë¡…úJBÀðrF‡aN+…Ð&†^zKâÃAå:ì`tB!ˆÒþ–rE;éùhK!:³p¤FÖ/HCàÔˆm%á<¨XJ´ÁS}‡)UI0Ä—¤8ÌDD¦Œ0rŠ‚`“%¬^q¦,À°Ú�ƒ%Iu}úwJX„$SAuÒé¿9£E¨ª„ ‚"‹"'Öémê+¶O!`ÎížÒôfq‘1ÂSýƒàÈ8F’õ‹AÌÐUíCú"h‚±¦Ã1?gÚᇦeœÀî…¸x&ÓyJP Ñwω£D%1cNùÕ¥ŒOMC¡ÂˆDÈdúš™YÈŠ0gþñ梇aµ mºp±o›'ô迹0/ì-ˆFø0ÇЂoSÀPËŠ˜1§ÐWÚQWå爨$f¤Œ‚KZh3BĬ˜àÏá:¥®Ä–hCgË<ñca„²Â•2Ƈɳ>Ž~G0;§hÿš2„à�é?y_'BÉÀ¯ JÂUÉó3¬Vñð£-%E¶'Ážl+W¼…Õ8Jø¦CàB�óptôO8`ÈëSú\&5†Äi\7¤^Ú!mu9© !1-Ãv˜ßžhÓ Q„‡¹™Õê d–HÃê<ˆyJè#j Àm0§ÊŒ¡˜ ª‹,È6 +¿‡Bˆß /(¢ÂœL€ìâ!¿ üˆi6¤6œŽ8^€„4Ðúì˜N÷)ÇØ„ˆ°{�1¯S¤ðƒ 'ä’{¯„_ƒ…¦Å[FëÑI„ÕIMñ …!¨òhãÂy‡"‚‡ £qø¥Äð“ºHTÔ9r„QyÀìÌвtÚ1ºõ榞5%†:ó|¡/+øïÓ×ÐЊ“‚Š[MG*´^à@è×Õ‡Ãð®Ämå~I^È·š½»03A6O¡N^ÀáC´l©†±«ÆÕ½Z„2øI,fBÑÄÓ +!ØúÑ6HXÝR‡yi¸ƒñ’N9`v!g(£˜/óö†Qˆp‹Ä}'BŽ…v›™î0TæuX-l™¯Ñ¡z ‚ÝO¸lƒJàng7¥…Ç`Ï„8-dQˆ3f˜éàYÊãS¸BCœÄK,…8ãmKí-2¯…¡-Õûôpm"—¢•KôQDzw`vÌûM! [ xèHa6!µä®bØóø)ÓTÌÄ@$ÞBæ[#2¢…Bˆ„ É~+/^v›>‚s|†aó/cö0 g‡_Ì,ÀßÂÃ@Ä +v–õ%$|(ó°Z¢h–!ƒäMollñB¤ý.ÔGLÅ9ÃHøb[¹¥ˆyÁ …™�¢/ø§§)Q$Ä’B(ŠBŠ"$¦£h!y†4-pWùG:dv¿‰L"ZäÕpB¹ˆ""MŸ˜ï󯃜ݻ•v†Ž”‡R¤LA1õñãÇi†iŠäB´@ëegWê#†Lík‡¥ô(L‚`#˜þÉïǹÝ,|3žÆ<” +”ºÛ܆xäólK©h*G%bdÎE¡Øòghä¡€t¦À8Áƒ%äøGÕþNXÊåÞR¼!Ê“mQðŸ2Zh®±[`‰Í^A%ƒyzÄ&T²ÚÎ0¹µñëa²î)!ÚŸ Èü$1x>räMn§P!.a/–½B1äWýˆ˜ÖŒ“GMïAJ+%(XhDPɽׂʎºŽl/ÕPAíºƒ (ß`ÉAˆJ`æÿî¡#1ÈAc'ñ7Ä W!ÌAKŒðŠØ*ˆ<T‚{Ên‰Jt AcõMAIðRJ`…Ñî!8@ +‚Ú¢8ÑÊéHŒÀÑ©£¤´(QÂ+w‘¡ñC¦ð€Y +$Z89ý Ž‘_X¯}~/ ø)ÃÀÓ'<¥&òæ©š©ÝF:Œ:Óp¢E<[,‚tªçÇ"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²È"‹,²h/ÑYYd‘EYd‘EYd‘EYd‘EYd‘EYd‘EYdÑiC/9iô¢ôûÿ%œNúän¿ÓËIR‹/ƒ8 ]Çý~ÙË^þò—¿B¢W&‚HS¯@¾\@B{þÜ󗣟}Î9çž{îy‰"ÔÖ¹çœsöÙg¿A@»/1õüìsÎ=ïü¤.¼ð"DÇOItá…$%†qÎÙh&Ð�”î'¦ï¨ë¸çç%]xñ%—]~Å•W^èj]e”®¼òŠ+.¿ìÒK.¾ á|i�¯ ÝOó1`P×ÏKºè’˯¼úÚëoHNNI¥”&¤Tc”’’’œ|뮿îÚ«¯ºâòK/¹èBÔU÷ãïúËP×/¸øò«®»!5#Ëžípäæ:er‰ÉI)WŽœœl»-3#-%ùU×]sÕ—]rÑR÷Ò{Ôw©ë—\qí é6‡Ë›_XT\RRZZZ†¨QKøMôY)¡*..**ÌÏóy\¹9öÌô”®»æÊË/EÝ?÷‰ù¸÷ñô!æ•ç&]råu)Y¹ÞÂÒŠê: ¡±±©©©¹¹¥¥µµú»µµ¥¥¹}£SƒþúºšªÊò’¢|Ÿ;7;+=åzÔýK.LBÌ—zë ÛÏ¿èòkSl®ü²ê@s[gwo_ÿÀÀàÐÐðÈèèØøøÄÄ$¢)Døÿ'ÆÇÇFGG†‡†úu¨QoOwWg{[Kc ®º¢¤ÐçvØÒ“¯¿ú +Ä|©÷/£÷/yÉK_öÊs/¸ô겜õ-]ýÃcS3³ûæöÏX8¸¸´¼ºº¶¾±±Ihcc}}mueiñàÂùýsûöÍÎÎÎèÒôíèð`_wGk£¿¦¼8ßíÈJ»áÚ+/»õþ•¯ˆ8dλðòkÓròÊê[{‡'gç.¬®ml:rôÆ›n†·NÜzÛm·ß~¢Ûo¿íÖÛáÐ-7ÝxôÈ¡Í 4ŽÕÕ-Z]•>]F#=°ßôÄèP_gkCmE±ÏiOOF½¿!ç•8±öýìó/¾òU™®¢êæž‘éù¥µÍ#ǤNoßzû÷¼úµ¯àÁ7¾é¡‡FôÐCozÃ÷¿î¾{ïºãÖípð曎ßxL‡n”éØÑ#‡7×Wì›èn Ô”¸³3Pï/½èüsÏ~E¬¨Ç}?çüK®ºÁæ)o˜Ø¿´~äF‰Ù·Ýy÷«_ûÀ~ó[ßñî÷¾ï±÷�Ñû{ß{Þõö·<òЃ¯¿ïž;oGý…‚š +…Ã[[ÛÛÛ'Nloo¡É:vx}i~fl ³¹®¼õþ†k®¸çå±áõýç$]rU²Í[æ_Ù<vfùwÝûÚûßøÈ[ßù¾~äãŸüß'?ý™Ï~ö3Ÿ~ò?ùñ¿ÿ=ïxóC¾îÕwßqÛ‰í°¡n#´Ý~ÇwÝ}Ï=÷Þ{Ï=h²¶n9¶¹<?5ÜÓR_Q趧½ê*œscĘßõê×=øð[ßõþ|òÉÏé«_ÿæ·¾ýío}ó_ýÒçžüćß÷ŽGßtÿ}wß¡ÇxÄuÜùÛï¼ëžW¿æu÷?ðàƒ>ðú×Ü{ç‰à±õƒ3#=-ueùά”k1ëeÜÄÐw"ÔlÝv×}<üÖ÷|èŸþâ׿ýýýäg?ÿùÏ~ú£ïûë_üôã|×›ßøº{î8p ‰øo<~Ó-Ò"ìÝÿ†7=üÈ£o~ô‘‡ßxÿ}wmßthqv¤§¹¦Ä›~ýU—^[çy9³ïÀâ +Z®7Þ²}ç}>ú®}òs_ýÎ~þ«ßþßSOýßï~ýó}÷kŸûäßùÈý÷Þ¾éè!IÔĖŽ;~ËÖwÞûÚÞôÈ[ÞþÎw½û]ïxš²{o»åÐâÌPgCE3ó†«/»èüsbè¼@¾OÍÌ¡þoÞ~ßßöþÇ?÷õïÿô×OýñÏÏ<óç?ýþ7?ÿÁ7>ÿ‰÷¿õ ¯¾õæ#kKósûD‰ý}ûææ\^Û<zSø¶»_ûàÃoyÇ{ûÀ?øÇÞýöG¼ï¶›7&úZjŠÝ¶”k.GÇ+Ö\ç½ZhnïêíŸÞ¿´yÓ¯yø]ùôW¿ÿóßýñ™gÿþ÷¿ýõé§~ùÃo|öcï~ø5·_?¸orlxHC·bÅ<<:>5;¿¸vø¦;0�ßýþìñÇÿ؇{×›Ñào\Ý7Üá/óf§^{ùŨó¦9ÏÚ3•5õFdôMì_½ñ¶×=úØ_úîÏ~÷ô³Ï=ÿü?þöÌïõƒ¯=ùÁ·ÞûñÕ¹ñÁžŽÖæ&IƒÍœ¦¦–ÖöÎ43Vß|âžû~Û{?ôñ'žüô§Ÿ|âcx×£Ü:´0ÞÓP‘—“vÝÇ�ÆŽtûò‹JJË«j-ÝÃ3ËÇïxðýÜ·~ú»§ÿöþó…çþò‡_~ÿËŸ|ïC÷Ü‚xÖÝ⯩,/Ø’¥’Z^YUSßÐÒÑ7<5¿z4tçë~ûc}â3Ÿÿâ—¾ðÙO}üïD“wliª¯¹2ß:o®ïŒýž“ëtû +J*ým3«·Üû?}êk?úÍŸž}þŸÿúçsùý/¾ó…¾ýõÛ›sCþÊâ|¯Û%2â%Ëßíñå–TÔZ»‡¦6n¾ýµ½ãú_ùú׿ö•Ïêcï{ËwÞ¼:;ÐRU€:0¤iÆGü¦k®C~SjZFV¶ÓWRÓ:¸oóÄï|üKßÿÕå¾?õ³o}æƒÜsÓâXg}iž3;+#]ËJKKÏȲeçºóŠ+ë[zFö܈–Ï;?ôÄç¾òÍï|÷;ßüêçžøà;ÞtOh}ß`k5êüµ—_tÞÙf×+ç¯^…<¿ä4»«¨¦}tñæW¿ùCŸûÎÏÿ×üó_/<÷ÌÿýäëŸzïo;4Û×€2g¯½Fè¾"§öšk®½îUÉ©6‡§°¢¾jñÈö}¿û#O~é›ßýÁð½o~ùɾûáûÂh +[«òsR¯¹ìÂóÌ +'Hºà‚/ºø’K/¿òÚä,WI wöð=öä7úÔ_ž{áŸ/üýÏ¿ýÑW?ù®ûÃ+ãíÕù9i×_…¼P8Á%—\Š8qÕµ¯JÍÌñU5öŒ8¼ýšGÞûñÏ~í»?ú)ÒsßýÚgï#¯ÙÚœl©ÌËN¹úÒÎ}¥iÈ«ã3çfಫ“í¾ªöñÕÞýÄ×~ü»?ÿ÷ýéßüðËûkn>8ÔTêʸþÊK°÷¬AçŸ#&_zÅÕ×¥dææ•û;G>ñº7¿ÿ‰/~ë‡?ûå¯~ñÓ|ãŸxìQÔù}Í^Û WIëÕ¼”q14‚sÏ¿è²kÓœ¥MCoyí;ÿÊûôߟÿçó{ú×?øÒGßúê÷÷ùs’¯ÂVàÙÚ±³¥©D|¸êúT»§¤®cäÀ‘ÛîÛ‡?ýÕïýôW¿ýí¯ñ£o}ñ“¨óáuAwæõWÈ7Ów&ùò—¿òdã$gúûç¿úûÒ~óôßžáù¿ýé×ßÿÂGÞ|ÏÑ}=µy¶ë/džÈ˵ƒ‘˜¯<ûÜó‘»A°¸®côàw¾ñÝÿü·~üËß=õÔï~õãoé‰Ç¹/´:Õí/ÎM»ö²Î5Íxuø¥X]]pùõYyµ=ûŽÝóæ|ñû¿þîû³úÕ÷¾ðáGï:2ÓUíͼöÒ$,’_ª&Œxêý…—^õªLgq]çÄòÍ÷>òþÿýÊ÷þÛßÿñOýú'ßùÒ'ß÷?÷Þ¼4ÞQ“ŸŒPcžñ°ÿ’à9'éÒk3½Õ]³Gî~ôÃ_øÞ¯þôì?^ødzüÕ÷>ÿ¡Gî:<ÝYåI¿æò ú²@º›ª%þžéõ׿í#ŸûÖO~óû?=죟|û‹¿çMw;0ÜRáÉDS‰–k‘—Ãø’k2<U3‡ïzäßÿð¤ïßE}¿óÐtG¥õý<$´Ý5ʈ—a«ÙÙYžò¦ýGïxÓ{ŸøÊ÷ùÔÓȺûÃo~òÏìÜzh¶7Pœ›zÍ%I12>Òù—½ò¼‹¯NwWvLºó‘©ûþ?wšB}O»úâó¢óHžFl2]•lÏ«j[ºå¾·|ø³ßúéoÿô—¿þõÏøõ¿ñ™½å5¡•ñŽê<Û«®ˆ“ñgÉ}OC}Ÿ:tçÿ|èóßôýsúŸ;MµGúÄÞ»àÒkREõ=³‡n{ã{žøêý‡gþö·g±u÷Õÿ}ìỎÍ6–:Ó &¬ïŸãû^á2Úw„¯<÷Â˯Ëp—7/Þ|ß[?òùïüü©gþöÜsÏþù©_|÷‹çýÛë“5ˆññ¯0Ôj´¾W´Oº#î¾++èâ+oÈ.¨ëž9tû›Þ÷©¯ÿø·È°þÇsÏ>ý»Ÿ|ó3|ôÞãKrS¯¾ø|dıZå¾»ÔwbicÑ•î*kY +¾îíÇÞ_ÿñÂóÏýõ¿úÁW>ñ®¶×&:ª¼™×]†$o Ix߉oyÞE˜ñõ½sGï~䃟ýöÏOŒ¤gqúYdœÃÚ:û†+âMâû.‚.½6ÃSÙ>±~â ïý߯ÿäÿžyî…ýi¼_ÿàË¿óõ¡åÑ–2gÍËbÍÉè»Äø‹¯Jq”4-b#éË?üÍÓá_ÿþ'²¬úÍ'{èöÍéN¤®¯»4.ú~–„ø.•=¿®wHYÿño/üû?ÿ~þÙ?þò{_øÈ[îE&^}ýU—_àONß‘¨Á ñVuNºãá|öÛ¿øóÏÿû?ÿùçsÈ-øÊ'h‡›JÉW^àOJßåFSåãk'Þð¾'¿ù³§þúü¿ÿûŸýã/OýôŸzßN¬·–›m÷Å軚s/º2ÙQÒ4¼¾ÿÝO Åú—üû¿ÿý÷Ïþáßùì¾ã¶ñ2$Õ³Yp’úþRø²‹ƒoyÝ;?ñÕÿî™üë¿ÿßþùwl[K~AwO^¬»«ï/A–õ—]o+¨ï?pÓkÞþøW~ôÛ??‡úþß=÷ôo~ð¥½õÕÇ÷÷ÕåÛ®¿lWöýì¤Ë®ËʯëÛü¾·}üË?¤}ÿóoø•Çßþš›ôûì×_vÁ9»²ï—^—•W×»ÿFäI"/÷ýÏüîG_yü¯½yaÀ_( É=Ó÷ã¾õ»¾ïfzYÌ<ƒ<ÂÌÍfviß•µ:ϬÕ?ã¸ÏÛî;>ßW¿;×*‘‘¯²AeäÓ¿þþ?ú–{ÍõÔæeíF‰ú~î…W$ç7/…€núÏûã/Q»ÜuÇN2®Ýº [ðW¥:ËZÆV·ßðÞOÉ6Áÿýü_ÿ³o~ú±7ݶ1Ù^aØ~û.-Õó/¹¦6oèýŸùöÏ©-ö» ‡h—GšKsS®ºh×õýÿ‘¥*ÛŽÞýè‡qðA²d~…àþÖûn:0("ŽÓ®²%3›b9Eh©Þü$" øҎľóðLw ZªÈaÝ]¾‡kKs•·ŽDãÿ{×ÕT¶¶g¾uÇ3Ö±Q¤÷J—*HoB$…€:R‘&E:(]zoR‘¢‚ˆ"ˆ(¢¨\Ë|÷çwö9 £N +¹Ëoó¸\8$;;ûìý¾ïó>Йoáõ³Ða;5ÜÃöØQr¨ð:óÁ‚߶ü¹ŸWRÕ=*; œµ^¯¹äMèèÁÈtgJŒÐ°r +ÉkYž:“˜_ß=üdfþ݈q<ém)M‹$ÙªH;±)Æ'A`lÿ!qe;ψ´Ò–><DbKcw:k.'œ9e¥£ |•Á Þ:sGò ›0Û¡a—Ó2wˆÍîIÛ·‹‹ ¦7ÜÓTréÉÞHUŠá`êúr‘`8ñÏÂÆ+©rÜîtxJQcÏðÄ‹Ù·ó³äXjlàIK0ì{v0´Ê¬3w˜ú†_¡TEmK—€ØœÊö‡Ogfçæf_>}x»³&?)ÌÉaoý‘ÈÒúr‡' ¾s§ Œº±ƒWDjQC÷ÐøÔÌ›Ù×/ŸŽÞ½ÞPt)ÒÇÑLSNvF>©ëÉýçåœÿV~I}·3ñ¹•×úG&žÏ¼š™ž½ÛÝTJÎÙˆÚ¿kËï´¦XiçNMÞƒ’²¨oÙÁÊÎ'~D×ÒÙ/:½¤±ûîèäó/¦ž<¼ÛÝ\–çʤù9vSRXLã¾:góõ|ÓJÒ $›6mÞ²“TÓi™á½Â“®T·ƒë³g“ܨç$„Â9Ja8GÉØlÿ>w8ßDΕ}/Ï÷?ätóÆ_Çlûs¯˜¢¦ Î#$>»¬¹ûÎÈØēdž®7AÔüðä†iâžç(¹¿—_…“Ì6ü²qÓo˜-;XöäWÔ4¶#ŤÕuôŽŒ>ìíl(͆¨Ìuƒœüví9y¸ß¨EÎ7<ûvnùí[ymÝ߸ñW’ß¾k· äa-c¬k@Tj~eËþÁû#÷‡ºÛj‹3ãC½ºôÖBÐÀÉkÇ‚œ¼Ë6"ãø”R‚ß@MÅŽ]{ä‘QÖ1µsõLÊ-kh¿Ùgðî@OgSeAÚ…àÓxs@®š¸#gâ@g󣲂 DíYN³ +p ³eë¶îÞ{à ¯¤‚ú1s{7ÿs ø§¥ófo_ïÍ®ÖÚÒÜäè@w3%IèɶÐ^ûC=wP1ÒÓPjP‹bß³kçv²žælÛjgXX÷ààâ–WÑ6²&xF&fV6´uÞè¾ÞÙZ_Q‘îçjg¢}¦NGÍMÜß@§„¦¢”³Ðr,#Äñën–¿c7++¨Þâäâ•”WÖ40·sñ:u1³ ¼¶©½ýZK}eqNÊù/gCME ~˜:͵n4q_‡âÖ«é‘Þ3í#RÂ|@„Âζììœ\܇øE$dUµôÍlÝý@^AYuCsKsS]eÉå´øw¼¥¾º¼¹º“®¢`ê¸/}�õbc·Û+²/ºÚ="#."(ÀÏ·üü‚B¢âR²ŠÊê:ÇÍlnÞg"ã/å•U×546ÔV–æg&E‡NbMuUdE ¹GgU-õÜA}$t<몽*¬Žkª(ÊÉHIþRÒ2²r@õ¢uÌÈ–àê~!9óJIEM]C}]uYQˆ�GkCÍ#RBÜè®f¦ûÇ÷ó3O@ò?-:€hoi¨«©®¢¬¤¤´Z@=TRVQUÓÐÔ9vÜÔ +K8å阖[XVU[ßP_[uµ ;ùB˜¯›ƒ¥†¢„�(Ħ·ŠœîKoÁÙ²µ<'á¬Ï){kSC}=²Ph`q‘þq#S‹v¸œ6ôúƦ†:˜zL˜¯«½…¾º‚8ÿÁý,tÀÓÆ}áõ³‡p=𯓶Væ¦&ÆÆF«aÁÄÔÌÜÒÚGp!’B£âR²2æ榆šò¢ÜÔØp"ÞÊਢ¤ <aÖk®‹ûÂÒ§OAÑEW}qFÜY“œ-Ð9…µõ [;{‚³+(DŒMθ\\^SßÔÜÜXWUz%óbt0Ék¢£"+ÊËÝßèMÐÈ}öùØàÆÒìÄÈ o¢ÁHµ°¶«�=ÄÚÙÙ;à]\ݽüÎœŽOɼT# õ5åÅyi ç‚<lŒµ•eÀó_ä>=>ØÝx5çbT°ûI'¼=g·8DàtÒÕÃË7(,26)-'¿¤¼ª¦¶¶¦òjaî¥øÈ /hyT•ÓÌz¥6´qÿ§qGbOpÈ_¸x)ëraIYyEùÕâüœ´ÄèP_7¼µ¡–’Œ/ç>ðYÝô˺‘gl¾#‹s€f<˜6aQ±Þ£ ¨¨¨àrNzrì¹3Þ®V†Zʲ¢|œ`ä73¢/ûgîT®3++…Õ h©?°!çãÎ+7//7'óÒÅØÈ`_¢£‰®š‚„�7«¬ßœgh}Gô£zzú†Æ¦ÖX§SÞ¡ç ú@*”•™–œpþl ×I{ËãšJÒ"¼Œˆœ¨æNÅ}¹³*)ƒ{«úQ-èæjbqçxê´øØ&¦@ìs²3ÓSâ£ÃüO;cMõÔÄ9QËÚý¼§A65‡•T5´šYãœÜHaQqIiY¹—¯\ÎÍLMˆõs'€,#"'*¹S»¤l&‘ݤ$,ùЃ6eŽnÞA’2ró‹Š‹‹à'ÄûÎ\O‘uÜ©Þ¿“7ñ`‹–|ÈVÓ>nu>íJÊ+«*®å¥'D1*r¢–;µç&òé :>íÇ'n^AQiEUèàçî—–Wín }|E1Eä¤M¿È‰jîTžW¿8¶É7¿ˆôa }bÀ9èÔZQßr >ù1,r¢’;•q‚•pÁïdÉÇŸ»÷±sˆÉ©ê™;¸F§ä•Õµuußìîj/cXäD5wjâ3kã4ˆäcÇ!ae]süéàØŒ¢êÖë·úú{ºZ9QÉê¸ØW$¬¸…¤•õ,IgRH´z9QÍÊxäZÉǦÍ[¶³ìç”V9fíÄ65í·îÞøpd¨¯«‘Q‘ Ü©‹¯•|ü†Ù¶k— ŒÚq[·3±ä`ðãñG÷WDN:t‹œ¨äNUü}ù‰VI>6mä…å`½Jr~mçÀýñɧ“PDN+ìÌÍÉS«÷ø‰"ùø×/€ü~QEKÿ˜Ì²–[÷Æž>ŸžzB9‚ý"'¸Ó˜&gX·ífã“T1Àº‡%å×uÝœž™™FDN qcË È‰ÜWÒð^娙£ïùÌò¶¾‘'Ó¯("'8af¥{˜Q‘sjPÈz±#ÇlÜC“ +껇Ɵ¿^9]:çM0÷<†ÒòLªÃ†Ë!v³Èh˜:úÅdW¶ß}öjn~þß‘S¨»²Ä¡ýd ]ä™TcWïïÜÇ ¼ÇÙ”â¦[#“3s‹d‘SyVŒ¿³9P—12ðLáNîã° .]2wŒË‚dXä´0ûâñ½î†¢”ðÓvÊâ<p +54LâNxqåã8RdFÙµGÏgÞ/½ûfêÑ펪œØ�hàe ¥†ºå÷¿ÆÒüc7§‚Žµ[hr4ižæ‡wó3“÷{šŠ¡“\wµ—~½ +“¸ÿD.¼¢èU@ÞÄÌ<è|°8;=v§£2;ÆÏÑD]Šeó¸“õ*bJ8RTfÐ|̽ûDN ΰ¡0):ÖÈq즻¾“iÜ‘'ÞÍMšÄ°Ô’–¾Ñç³ï>~"§ç }@z¤—’RWKWa³¸¯LX ž”àOß,~øüק¥ù™‰¡ë5¹à\ë&þ ³|‰‰Ü‘ú} Uc‚ß…Üš÷ž Å©ß<ûœ²Ô‚Vº‹S™Ç(ã¢`0á—‹‚È ôœh»šîa«§(ÌIwQ0Ó¸SŠ±¡ ¯gã‘VvíöØJ1öãÁÎʬho{òÁ†¾ž™ÜWÁ§”´öSŠà?.¼†eÐAÞ�DN{wÐùae*÷ _¬ˆœM91‘û¢ÄÂÆÞ‡Sÿ¦…(‚F+Ìå¾"¶IÈ_Û|~?7=ÚßRœê +-4ü?,w rRCDN=d‘Ó>/ÍAMkIj˜›•¶œ�Û®ÿ_Ü_Œ ´•¦†aî[6ýò#r_ž3+-2÷ÖœûZ¼Î s¦¿µ$š3Z@õñãÍ™¯®‘ŸÉ¢¾Ñ¾æâäWKM™ò³ú Y +64g\Ì5¤yé‚2}O°V õX<¼.Â8fîÅ(-"К˜yûá/ Œ{ûêÉÐõêœ_¼!#Â8¦î7efY 5<ùzáã_`/6÷büN{ytøЧóMe6wpöØÅö¥@âŽ4)èk–â yAº›0ïÌO艡éNhAKä_ÿㆻë¯$¹˜ÃÚá-tê˜'€5}ªF>ç³*;œ_úôÜ_aünGeöy$Dwƒ‰ñ¤Ÿˆœ–ÅÉ „+pOŽ·°´Œëm…qzpoz›¡07.Búp³»–¾‡Sà¨ýùÓûù—C7j0ÎÆýPñ$Ç#e@ÿœ9Uˆ¦ïã§OÞLö·•eDÁÂ8ž}ôã˜Ãme‘8°{¹oÑ[¸¹ãÜˉ{ÝõùCܬu„AÓ%zµ”LÊ º8AÙ£¦Ž ·#Ju9o_?{ØßVžíC€Czô-bJÎÑÅí:À+¡¬oëò÷&^ν[ú°Z. ݨƒ†xBï0C¡ÔeîëÕ£k¹++¬‹SжpöÃ> +¤”KK‹s3“#½-W3À°kHó#V:¥BëÚ×m•¸Œ¬‹3²÷O)jè¾÷øÅì»÷‹ó¯žÞî¨ÎKvÃν— ëÏ«¸#ýôÖ浩ï§GI¯n@¨sðK‘uqUí Û´°¸8ÿ]6¥Fx9©#ÃNwô¾‡€Ýž˜²¡ƒï…µ½�©íc¸J]§µ·BÔù$”t-]üÏg”6÷OL¿™_X˜3ýx¸§åjfŒ?h©'Íö?èi=ºÒ?ië¤b„÷»À@ÿH²ºŒ,.ÛËÉ/qDÇÜÑû\Ja]×GÏffççç^OOÜïm«ÌM&Ú¨Hò²±Ðš”_y-JßN¸•€±£?h§…ôí|OcßNJÇF¸s'Ëþƒ’G´Íðža/W]뙘ÉÕWÓ Mõ•¤p/ YANXJð/Ñê~© œDÔƒ(9ýRuÜyˆËx„¤•tÌN‡Æç”·ôÎofžCÔ;jR#}œ,´E¹÷ÁYmê‡ý+}j·ìÜ{PH^ÛÚe6Â-Ø�wÚúÔ"UK›ÿغýOÖùDåTõ@›ê¸¬ÒÆw>y:¦>¿Q/¼íÒú˜’4c¶Ñ"ýùýyÅ•ôm=Î’3+‹>.ÑÔ˜Ü xëö,{p’RÔ0°rô‰Ë,©ïì¿?þttª}t¯¯£¶(í|€«ª´�+M3æ[}™yD䎚à}¢2ʯ݆ÛöÑØ—™Ò˜yÏ~v.^! yU[ï°¸ÌâºöޡщgSSO?¼u¦0í| ÖP]Vˆk/¥æŠÊ óµ~ØlyEdTõO¸Åç!íië‡Miˆ½Ÿƒë€ˆ¤¼²ÖqK7¿ˆ„¬âÚk=wGÆ&&''@ÑRKUþ¥hˆº‘†<ôNîÚJÛŒùjr! 0; ¤èx´pxOcò•Fä°¸ÌÀëì•”]RÛÖ}4ĬåyÉ‘þ®X££ò¢<Xh*¸úvÿwcæÁqÙåm}ž¾¢ÿûêð‡U4t ÍaYÜ…ÔÜÒÚÖ}ƒÃ>¸?ÔßÝV[’á{ÒÖ¢~ßÒ°Æ|»ï¾‘žZXÛugt +Üš@öKªúî¯i¼obeçDô ŽLH¿rµ¶µëÖÀà½{Cwûov4Vä§Ç†’œO×€©ƒ= +¿ãwàäpîbnyóÍ¡±©×ó´ø †ºË†.î ;9« ¬¶¥£»·ÿöíþÞêâœäè ‚¥¾šœÔþ¦Ï„)(21³¸¶½wx|ŠfŸ‰¿M¤å–Õ4µ¿ƒ›Ý]ךªK/_Š=ëëŠ3ÓU–æ9€P§é†ú- KHÏ/oìꛜ~õ†ØàÃÉÙå”›‡—,÷HÉÌ+*«®on>mÍõ•°Môî0Ò<")Ȥq0ušg}ÓWªÜ’ê殾Áã4úªU¼}ýƒÃÎK*¡Ò + Ðjjl¨ºZ˜›–L:…3?¦&/ÎϹo×vÔ)%-_÷³IÍÊ/nê¸ÙûÙŒÓægül“Ó²r•REeeeEYIa^fJ\d0¢R’^Q—ѤqúŽP<ðq)©¨kn¿¾ì#4@½l$t.2úB\brjzVÎåü‚‚ü¼ìô ³!¹â�pBÚL»¶ì{þMS3rò‹ËªÈþMtù7G,`ë¬ÌôKɉ±Ñág|OŸ´‡˜aƒ´Vû¬ðÍJÍÈÎË/*¹J¯oVxÄ>&6.>!111!>6&*<$Ðçô)ÖÂPGí°´ßÁ°2‹}Ð?û•]¤Û¯88 …Þ‚ˆè + ò÷ñ$ºà±V&úZª +R"ü\Àö‹^E5>qtùÄ!+ÉÛÛ�ºø4ñ”3Þî„…±¾¶:bÇìÖ0ôÚý³?Ÿþ|ØÃÉÑÉÉ‚“oogcenl «©vDžbÒ·ƒ›;fú"‚{+ô<–Ðuæf¦Æ†zÚGÕ”e%WÌ1Ù2ÍrY—.Ñ<ª¡¦¢tX^FRLX�1¥Ü ›RndÄ”’y> + +ËWÈÉÉJKIˆ‰Bû}N¶ý3Ð_bþµýûºù¯®\!Hqae[mºl!KóŸÖœ›Ö×÷vÙþq¿ÝÃÊthëi~ËL¿á¿¹¯³é0³|žWÛ=“Ýžaõúš=¯Ï¬Ÿ¿6ŠËöÆe—íõ4ÙfŽ¯ùZwó6_ây&ùÉ#Xq•ÿy}y¯°§Ä™€•¨ö:ó^ßi`m(P @ +(P @ +(P @ +(P @ +(P @ +(P @ +(P @ +(P @Š/ÀÍAÄ«ãH8Œ…†[E[ +=6Ây‘ž}Œ7FDE[LÌ„àGb—Lj±‹õ$L‰xwvAŒ(x„s#hñ?ä±1ÉÝÓŸòXœ]üž +‘ä‚suÁy¹ ï*`0rì¼|ìæÓU_‰²‹±‹Â,ü1ð?xŒ4ù§ÜØÕ$¸±¢_Ð ?^E„+¹† +7öëd¸± +Ð_ø<Iê.$w"ÎÓ~è[ž8äK^mvo’;;2..>ðžËOÂΫ‚w·'`U´å°ö^O«KðÇ"yñ¼–t-ÑÈ..!ÿçVÿ×D¿;¾RÔŽïšáÓS]~_õpþO!!7÷qœÁÄçâ +½ÍN^8;ŽHt'áHè'ìNž/èµì^Îî¾à;ЯP.‡fŒÁQÌÿ‘ÐÏ endstream endobj 42 0 obj [/ICCBased 51 0 R] endobj 7 0 obj <</Intent 17 0 R/Name(Layer 1)/Type/OCG/Usage 18 0 R>> endobj 17 0 obj [/View/Design] endobj 18 0 obj <</CreatorInfo<</Creator(Adobe Illustrator 16.0)/Subtype/Artwork>>>> endobj 33 0 obj [32 0 R] endobj 69 0 obj <</CreationDate(D:20120721104759-04'00')/Creator(Adobe Illustrator CS6 \(Macintosh\))/ModDate(D:20120721105526-04'00')/Producer(Adobe PDF library 9.00)/Title(gemini)>> endobj xref 0 70 0000000004 65535 f +0000000016 00000 n +0000000159 00000 n +0000053781 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000235886 00000 n +0000000000 00000 f +0000053832 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000235956 00000 n +0000235987 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000089666 00000 n +0000090025 00000 n +0000089479 00000 n +0000236072 00000 n +0000054286 00000 n +0000054707 00000 n +0000100081 00000 n +0000074155 00000 n +0000099852 00000 n +0000099965 00000 n +0000055769 00000 n +0000054769 00000 n +0000235851 00000 n +0000055208 00000 n +0000055256 00000 n +0000056063 00000 n +0000062268 00000 n +0000076983 00000 n +0000056126 00000 n +0000062312 00000 n +0000074190 00000 n +0000074335 00000 n +0000077097 00000 n +0000077160 00000 n +0000077190 00000 n +0000077451 00000 n +0000089367 00000 n +0000077524 00000 n +0000089550 00000 n +0000089581 00000 n +0000097665 00000 n +0000090238 00000 n +0000090509 00000 n +0000097968 00000 n +0000100155 00000 n +0000100351 00000 n +0000101337 00000 n +0000123424 00000 n +0000189012 00000 n +0000236097 00000 n +trailer <</Size 70/Root 1 0 R/Info 69 0 R/ID[<47C7CB38F0FA4BA7B39CDC2575345E54><635F474D90264B5E96E989DE074BF7F8>]>> startxref 236281 %%EOF \ No newline at end of file diff --git a/docs/bedtools.png b/docs/bedtools.png new file mode 100644 index 0000000000000000000000000000000000000000..2d44356e6b4858b57e94c811db8e827d4ce72a72 GIT binary patch literal 14929 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 G1^gfT33g`y literal 0 HcmV?d00001 diff --git a/docs/build.sh b/docs/build.sh new file mode 100755 index 00000000..d99d6645 --- /dev/null +++ b/docs/build.sh @@ -0,0 +1,2 @@ +make clean html +open _build/html/index.html -a Safari diff --git a/docs/conf.py b/docs/conf.py new file mode 100755 index 00000000..219899f7 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,220 @@ +# -*- coding: utf-8 -*- +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +sys.path.insert(0, os.path.abspath('../')) + +# -- General configuration ----------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +#needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', + 'sphinx.ext.intersphinx', 'sphinx.ext.todo', + 'sphinx.ext.coverage', 'sphinx.ext.pngmath', + 'sphinx.ext.ifconfig', 'sphinx.ext.viewcode'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'bedtools' +copyright = u'2012' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '2.16.2' +# The full version, including alpha/beta/rc tags. +release = '2.16.2' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = ['_build'] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = 'rtd' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +html_theme_path = ["themes"] + +# The name for this set of Sphinx documents. If None, it defaults to +# "<project> v<release> documentation". +html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +html_short_title = project + " v" + release + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +html_logo = 'bedtools.png' + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +html_favicon = 'bedtools.png' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +#html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +html_show_sphinx = False + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a <link> tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'bedtools-docs' + +# Google analytics +#googleanalytics_id = "UA-24167610-15" + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'bedtools.tex', u'Bedtools Documentation', + u'Quinlan lab @ UVa', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output -------------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('index', 'bedtools', u'Bedtools Documentation', [u'UVa'], 1) +] + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = {'http://docs.python.org/': None} diff --git a/docs/content/advanced-usage.rst b/docs/content/advanced-usage.rst new file mode 100755 index 00000000..8f706807 --- /dev/null +++ b/docs/content/advanced-usage.rst @@ -0,0 +1,92 @@ +############### +Advanced usage +############### + + +========================================================================== +7.1 Mask all regions in a genome except for targeted capture regions. +========================================================================== +# Add 500 bp up and downstream of each probe +:: + slopBed -i probes.bed -b 500 > probes.500bp.bed + +# Get a BED file of all regions not covered by the probes (+500 bp up/down) +:: + complementBed -i probes.500bp.bed -g hg18.genome > probes.500bp.complement.bed + +# Create a masked genome where all bases are masked except for the probes +500bp +:: + maskFastaFromBed -in hg18.fa -bed probes.500bp.complement.bed -fo hg18.probecomplement. + masked.fa + + +========================================================================== +7.2 Screening for novel SNPs. +========================================================================== +# Find all SNPs that are not in dbSnp and not in the latest 1000 genomes calls +:: + intersectBed -a snp.calls.bed -b dbSnp.bed -v | intersectBed -a stdin -b 1KG.bed + -v > snp.calls.novel.bed + + + +========================================================================== +7.3 Computing the coverage of features that align entirely within an +interval. +========================================================================== +# By default, coverageBed counts any feature in A that overlaps B by >= 1 bp. If +you want to require that a feature align entirely within B for it to be counted, +you can first use intersectBed with the "-f 1.0" option. +:: + intersectBed -a features.bed -b windows.bed -f 1.0 | coverageBed -a stdin -b + windows.bed > windows.bed.coverage + + +========================================================================== +7.4 Computing the coverage of BAM alignments on exons. +========================================================================== +# One can combine SAMtools with BEDtools to compute coverage directly from the BAM +data by using bamToBed. +:: + bamToBed -i reads.bam | coverageBed -a stdin -b exons.bed > exons.bed.coverage + +# Take it a step further and require that coverage be from properly-paired reads. +:: + samtools view -bf 0x2 reads.bam | bamToBed -i stdin | coverageBed -a stdin -b + exons.bed > exons.bed.proper.coverage + + + +========================================================================== +7.5 Computing coverage separately for each strand. +========================================================================== +# Use grep to only look at forward strand features (i.e. those that end in "+"). +:: + bamToBed -i reads.bam | grep \+$ | coverageBed -a stdin -b genes.bed > + genes.bed.forward.coverage + +# Use grep to only look at reverse strand features (i.e. those that end in "-"). +:: + bamToBed -i reads.bam | grep \-$ | coverageBed -a stdin -b genes.bed > + genes.bed.forward.coverage + + + +========================================================================== +7.6 Find structural variant calls that are private to one sample. +========================================================================== +# : +:: + pairToPair -a sample1.sv.bedpe -b othersamples.sv.bedpe -type neither > + sample1.sv.private.bedpe + + + +================================================================================== +7.7 Exclude SV deletions that appear to be ALU insertions in the reference genome. +================================================================================== +# We'll require that 90% of the inner span of the deletion be overlapped by a +recent ALU. +:: + pairToBed -a deletions.sv.bedpe -b ALUs.recent.bed -type notispan -f 0.80 > + deletions.notALUsinRef.bedpe \ No newline at end of file diff --git a/docs/content/annotateBed.rst b/docs/content/annotateBed.rst new file mode 100755 index 00000000..9a55b3b8 --- /dev/null +++ b/docs/content/annotateBed.rst @@ -0,0 +1,99 @@ +############### +5.24 annotateBed +############### +**annotateBed** annotates one BED/VCF/GFF file with the coverage and number of overlaps observed +from multiple other BED/VCF/GFF files. In this way, it allows one to ask to what degree one feature +coincides with multiple other feature types with a single command. + +========================================================================== +5.24.1 Usage and option summary +========================================================================== +Usage: +:: + annotateBed [OPTIONS] -i <BED/GFF/VCF> -files FILE1 FILE2 FILE3 ... FILEn + + +=========================== =============================================================================================================================================================================================================== + Option Description + +=========================== =============================================================================================================================================================================================================== +**-namesr** A list of names (one per file) to describe each file in -i. These names will be printed as a header line. +**-counts** Report the count of features in each file that overlap -i. Default behavior is to report the fraction of -i covered by each file. +**-both** Report the count of features followed by the % coverage for each annotation file. Default is to report solely the fraction of -i covered by each file. +**-s** Force strandedness. That is, only include hits in A that overlap B on the same strand. By default, hits are included without respect to strand. +=========================== =============================================================================================================================================================================================================== + + + + + +========================================================================== +5.24.2 Default behavior - annotate one file with coverage from others. +========================================================================== +By default, the fraction of each feature covered by each annotation file is reported after the complete +feature in the file to be annotated. +:: + cat variants.bed + chr1 100 200 nasty 1 - + chr2 500 1000 ugly 2 + + chr3 1000 5000 big 3 - + + cat genes.bed + chr1 150 200 geneA 1 + + chr1 175 250 geneB 2 + + chr3 0 10000 geneC 3 - + + cat conserve.bed + chr1 0 10000 cons1 1 + + chr2 700 10000 cons2 2 - + chr3 4000 10000 cons3 3 + + + cat known_var.bed + chr1 0 120 known1 - + chr1 150 160 known2 - + chr2 0 10000 known3 + + + annotateBed -i variants.bed -files genes.bed conserv.bed known_var.bed + chr1 100 200 nasty 1 - 0.500000 1.000000 0.300000 + chr2 500 1000 ugly 2 + 0.000000 0.600000 1.000000 + chr3 1000 5000 big 3 - 1.000000 0.250000 0.000000 + + +========================================================================== +5.24.3 Report the count of hits from the annotation files +========================================================================== +Figure: +:: + annotateBed -counts -i variants.bed -files genes.bed conserv.bed known_var.bed + chr1 100 200 nasty 1 - 2 1 2 + chr2 500 1000 ugly 2 + 0 1 1 + chr3 1000 5000 big 3 - 1 1 0 + + + +========================================================================== +5.24.4 Report both the count of hits and the fraction covered from the annotation files +========================================================================== +Figure: +:: + annotateBed -both -i variants.bed -files genes.bed conserv.bed known_var.bed + #chr start end name score +/- cnt1 pct1 cnt2 pct2 cnt3 pct3 + chr1 100 200 nasty 1 - 2 0.500000 1 1.000000 2 0.300000 + chr2 500 1000 ugly 2 + 0 0.000000 1 0.600000 1 1.000000 + chr3 1000 5000 big 3 - 1 1.000000 1 0.250000 0 0.000000 + + + + +========================================================================== +5.24.5 Restrict the reporting to overlaps on the same strand. +========================================================================== +Note: Compare with the result from 5.24.3 +:: + annotateBed -s -i variants.bed -files genes.bed conserv.bed known_var.bed + chr1 100 200 nasty var1 - 0.000000 0.000000 0.000000 + chr2 500 1000 ugly var2 + 0.000000 0.000000 0.000000 + chr3 1000 5000 big var3 - 1.000000 0.000000 0.000000 + + + diff --git a/docs/content/bamToBed.rst b/docs/content/bamToBed.rst new file mode 100755 index 00000000..8647e920 --- /dev/null +++ b/docs/content/bamToBed.rst @@ -0,0 +1,88 @@ +############### +5.4 bamToBed +############### + +**bamToBed** is a general purpose tool that will convert sequence alignments in BAM format to either +BED6, BED12 or BEDPE format. This enables one to convert BAM files for use with all of the other +BEDTools. The CIGAR string is used to compute the alignment end coordinate in an "ungapped" +fashion. That is, match ("M"), deletion ("D"), and splice ("N") operations are observed when computing +alignment ends. + +============================================ +5.4.1 Usage and option summary +============================================ +**Usage:** +:: + bamToBed [OPTIONS] -i <BAM> + + +====================== ========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================= +Option Description +====================== ========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================= +**-bedpe** Write BAM alignments in BEDPE format. Only one alignment from paired-end reads will be reported. Specifically, it each mate is aligned to the same chromosome, the BAM alignment reported will be the one where the BAM insert size is greater than zero. When the mate alignments are interchromosomal, the lexicographically lower chromosome will be reported first. Lastly, when an end is unmapped, the chromosome and strand will be set to "." and the start and end coordinates will be set to -1. *By default, this is disabled and the output will be reported in BED format*. + **NOTE: When using this option, it is required that the BAM file is sorted/grouped by the read name. This allows bamToBed to extract correct alignment coordinates for each end based on their respective CIGAR strings. It also assumes that the alignments for a given pair come in groups of twos. There is not yet a standard method for reporting multiple alignments using BAM. bamToBed will fail if an aligner does not report alignments in pairs**. + BAM files may be piped to bamToBed by specifying "-i stdin". See example below. +**-bed12** Write "blocked" BED (a.k.a. BED12) format. This will convert "spliced" BAM alignments (denoted by the "N" CIGAR operation) to BED12. +**-ed** Use the "edit distance" tag (NM) for the BED score field. Default for BED is to use mapping quality. Default for BEDPE is to use the *minimum* of the two mapping qualities for the pair. When -ed is used with -bedpe, the total edit distance from the two mates is reported. +**-tag** Use other *numeric* BAM alignment tag for BED score. Default for BED is to use mapping quality. Disallowed with BEDPE output. +**-color** An R,G,B string for the color used with BED12 format. Default is (255,0,0). +**-split** Report each portion of a "split" BAM (i.e., having an "N" CIGAR operation) alignment as a distinct BED intervals. +====================== ========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================= + +By default, each alignment in the BAM file is converted to a 6 column BED. The BED "name" field is +comprised of the RNAME field in the BAM alignment. If mate information is available, the mate (e.g., +"/1" or "/2") field will be appended to the name. The "score" field is the mapping quality score from the +BAM alignment, unless the **-ed** option is used. + +Examples: +:: + bamToBed -i reads.bam | head -5 + chr7 118970079 118970129 TUPAC_0001:3:1:0:1452#0/1 37 - + chr7 118965072 118965122 TUPAC_0001:3:1:0:1452#0/2 37 + + chr11 46769934 46769984 TUPAC_0001:3:1:0:1472#0/1 37 - + + bamToBed -i reads.bam -tag NM | head -5 + chr7 118970079 118970129 TUPAC_0001:3:1:0:1452#0/1 1 - + chr7 118965072 118965122 TUPAC_0001:3:1:0:1452#0/2 3 + + chr11 46769934 46769984 TUPAC_0001:3:1:0:1472#0/1 1 - + + bamToBed -i reads.bam -bedpe | head -3 + chr7 118965072 118965122 chr7 118970079 118970129 + TUPAC_0001:3:1:0:1452#0 37 + - + chr11 46765606 46765656 chr11 46769934 46769984 + TUPAC_0001:3:1:0:1472#0 37 + - + chr20 54704674 54704724 chr20 54708987 54709037 + TUPAC_0001:3:1:1:1833#0 37 + + + +One can easily use samtools and bamToBed together as part of a UNIX pipe. In this example, we will +only convert properly-paired (BAM flag == 0x2) reads to BED format. +:: + samtools view -bf 0x2 reads.bam | bamToBed -i stdin | head + chr7 118970079 118970129 TUPAC_0001:3:1:0:1452#0/1 37 - + chr7 118965072 118965122 TUPAC_0001:3:1:0:1452#0/2 37 + + chr11 46769934 46769984 TUPAC_0001:3:1:0:1472#0/1 37 - + chr11 46765606 46765656 TUPAC_0001:3:1:0:1472#0/2 37 + + chr20 54704674 54704724 TUPAC_0001:3:1:1:1833#0/1 37 + + chr20 54708987 54709037 TUPAC_0001:3:1:1:1833#0/2 37 - + chrX 9380413 9380463 TUPAC_0001:3:1:1:285#0/1 0 - + chrX 9375861 9375911 TUPAC_0001:3:1:1:285#0/2 0 + + chrX 131756978 131757028 TUPAC_0001:3:1:2:523#0/1 37 + + chrX 131761790 131761840 TUPAC_0001:3:1:2:523#0/2 37 - + + +================================================================== +5.4.2 (-split)Creating BED12 features from "spliced" BAM entries. +================================================================== +bamToBed will, by default, create a BED6 feature that represents the entire span of a spliced/split +BAM alignment. However, when using the **-split** command, a BED12 feature is reported where BED +blocks will be created for each aligned portion of the sequencing read. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Exons *************** ********** + + BED/BAM A ^^^^^^^^^^^^....................................^^^^ + + Result =============== ==== + diff --git a/docs/content/bed12ToBed6.rst b/docs/content/bed12ToBed6.rst new file mode 100755 index 00000000..d9159e3b --- /dev/null +++ b/docs/content/bed12ToBed6.rst @@ -0,0 +1,49 @@ +############### +5.21 bed12ToBed6 +############### +**bed12ToBed6** is a convenience tool that converts BED features in BED12 (a.k.a. "blocked" BED +features such as genes) to discrete BED6 features. For example, in the case of a gene with six exons, +bed12ToBed6 would create six separate BED6 features (i.e., one for each exon). + + +========================================================================== +5.21.1 Usage and option summary +========================================================================== +Usage: +:: + bed12ToBed6 [OPTIONS] -i <BED12> + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-i** The BED12 file that should be split into discrete BED6 features. *Use "stdin" when using piped input*. +=========================== =============================================================================================================================================================================================================== + + + + +========================================================================== +5.21.2 Default behavior +========================================================================== +Figure: +:: + head data/knownGene.hg18.chr21.bed | tail -n 3 + chr21 10079666 10120808 uc002yiv.1 0 - 10081686 1 0 1 2 0 6 0 8 + 0 4 528,91,101,215, 0,1930,39750,40927, + chr21 10080031 10081687 uc002yiw.1 0 - 10080031 1 0 0 8 0 0 3 1 + 0 2 200,91, 0,1565, + chr21 10081660 10120796 uc002yix.2 0 - 10081660 1 0 0 8 1 6 6 0 + 0 3 27,101,223,0,37756,38913, + + head data/knownGene.hg18.chr21.bed | tail -n 3 | bed12ToBed6 -i stdin + chr21 10079666 10080194 uc002yiv.1 0 - + chr21 10081596 10081687 uc002yiv.1 0 - + chr21 10119416 10119517 uc002yiv.1 0 - + chr21 10120593 10120808 uc002yiv.1 0 - + chr21 10080031 10080231 uc002yiw.1 0 - + chr21 10081596 10081687 uc002yiw.1 0 - + chr21 10081660 10081687 uc002yix.2 0 - + chr21 10119416 10119517 uc002yix.2 0 - + chr21 10120573 10120796 uc002yix.2 0 - + + diff --git a/docs/content/bedToBam.rst b/docs/content/bedToBam.rst new file mode 100755 index 00000000..c0f1d6ac --- /dev/null +++ b/docs/content/bedToBam.rst @@ -0,0 +1,71 @@ +############### +5.18 bedToBam +############### +**bedToBam** converts features in a feature file to BAM format. This is useful as an efficient means of +storing large genome annotations in a compact, indexed format for visualization purposes. + +========================================================================== +5.18.1 Usage and option summary +========================================================================== +Usage: +:: + bedToBam [OPTIONS] -i <BED/GFF/VCF> -g <GENOME> > <BAM> + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-mapq** Set a mapping quality (SAM MAPQ field) value for all BED entries. *Default: 255* +**-ubam** Write uncompressed BAM output. The default is write compressed BAM output. +**-bed12** Indicate that the input BED file is in BED12 (a.k.a "blocked" BED) format. In this case, bedToBam will convert blocked BED features (e.g., gene annotaions) into "spliced" BAM alignments by creating an appropriate CIGAR string. +=========================== =============================================================================================================================================================================================================== + + + + +========================================================================== +5.18.2 Default behavior +========================================================================== +The default behavior is to assume that the input file is in unblocked format. For example: +:: + head -5 rmsk.hg18.chr21.bed + chr21 9719768 9721892 ALR/Alpha 1004 + + chr21 9721905 9725582 ALR/Alpha 1010 + + chr21 9725582 9725977 L1PA3 3288 + + chr21 9726021 9729309 ALR/Alpha 1051 + + chr21 9729320 9729809 L1PA3 3897 - + + bedToBam -i rmsk.hg18.chr21.bed -g human.hg18.genome > rmsk.hg18.chr21.bam + + samtools view rmsk.hg18.chr21.bam | head -5 + ALR/Alpha 0 chr21 9719769 255 2124M * 0 0 * * + ALR/Alpha 0 chr21 9721906 255 3677M * 0 0 * * + L1PA3 0 chr21 9725583 255 395M * 0 0 * * + ALR/Alpha 0 chr21 9726022 255 3288M * 0 0 * * + L1PA3 16 chr21 9729321 255 489M * 0 0 * * + + +========================================================================== +5.18.3 Creating "spliced" BAM entries from "blocked" BED features +========================================================================== +Optionally, **bedToBam** will create spliced BAM entries from "blocked" BED features by using the +-bed12 option. This will create CIGAR strings in the BAM output that will be displayed as "spliced" +alignments. The image illustrates this behavior, as the top track is a BAM representation (using +bedToBam) of a BED file of UCSC genes. + +For example: +:: + bedToBam -i knownGene.hg18.chr21.bed -g human.hg18.genome -bed12 > knownGene.bam + + samtools view knownGene.bam | head -2 + uc002yip.1 16 chr21 9928614 2 5 5 + + 298M1784N71M1411N93M3963N80M1927N106M3608N81M1769N62M11856N89M98N82M816N61M6910N65M + 738N64M146N100M1647N120M6478N162M1485N51M6777N60M9274N54M880N54M1229N54M2377N54M112 + 68N58M2666N109M2885N158M * 0 0 * * + uc002yiq.1 16 chr21 9928614 2 5 5 + + 298M1784N71M1411N93M3963N80M1927N106M3608N81M1769N62M11856N89M98N82M816N61M6910N65M + 738N64M146N100M1647N120M6478N162M1485N51M6777N60M10208N54M1229N54M2377N54M11268N58M + 2666N109M2885N158M * 0 0 * * + + diff --git a/docs/content/bedToIgv.rst b/docs/content/bedToIgv.rst new file mode 100755 index 00000000..64d7578e --- /dev/null +++ b/docs/content/bedToIgv.rst @@ -0,0 +1,68 @@ +############### +5.20 bedToIgv +############### +**bedToIgv** creates an IGV (http://www.broadinstitute.org/igv/) batch script (see: http:// +www.broadinstitute.org/igv/batch for details) such that a ¡°snapshot¡± will be taken at each features in a +feature file. This is useful as an efficient means for quickly collecting images of primary data at several +loci for subsequent screening, etc. + +**NOTE: One must use IGV version 1.5 or higher.** + + + +========================================================================== +5.20.1 Usage and option summary +========================================================================== +Usage: +:: + bedToIgv [OPTIONS] -i <BED/GFF/VCF> > <igv.batch> + + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-path** The full path to which the IGV snapshots should be written. *Default: ./* +**-sess** The full path to an existing IGV session file to be loaded prior to taking snapshots. *Default is for no session to be loaded and the assumption is that you already have IGV open and loaded with your relevant data prior to running the batch script*. +**-sort** The type of BAM sorting you would like to apply to each image. **Valid sorting options**: *base, position, strand, quality, sample, and readGroup Default is to apply no sorting at all*. +**-clps** Collapse the aligned reads prior to taking a snapshot. *Default is to not collapse*. +**-name** Use the "name" field (column 4) for each image's filename. *Default is to use the "chr:start-pos.ext"*. +**-slop** Number of flanking base pairs on the left & right of the image. +**-img** The type of image to be created. **Valid options**: *png, eps, svg Default is png*. +=========================== =============================================================================================================================================================================================================== + + + + + +========================================================================== +5.20.2 Default behavior +========================================================================== +Figure: +:: + bedToIgv -i data/rmsk.hg18.chr21.bed | head -9 + snapshotDirectory ./ + goto chr21:9719768-9721892 + snapshot chr21:9719768-9721892.png + goto chr21:9721905-9725582 + snapshot chr21:9721905-9725582.png + goto chr21:9725582-9725977 + snapshot chr21:9725582-9725977.png + goto chr21:9726021-9729309 + snapshot chr21:9726021-9729309.png + + + + +========================================================================== +5.20.3 Using a bedToIgv batch script within IGV. +========================================================================== +Once an IGV batch script has been created with **bedToIgv**, it is simply a matter of running it from +within IGV. + +For example, first create the batch script: +:: + bedToIgv -i data/rmsk.hg18.chr21.bed > rmsk.igv.batch + +Then, open and launch the batch script from within IGV. This will immediately cause IGV to begin +taking snapshots of your requested regions. + diff --git a/docs/content/bedtools-suite.rst b/docs/content/bedtools-suite.rst new file mode 100755 index 00000000..bbe1802d --- /dev/null +++ b/docs/content/bedtools-suite.rst @@ -0,0 +1,45 @@ +############### +The BEDTools suite +############### + +This section covers the functionality and default / optional usage for each of the available BEDTools. +Example "figures" are provided in some cases in an effort to convey the purpose of the tool. The +behavior of each available parameter is discussed for each tool in abstract terms. More concrete usage +examples are provided in **Section 6**. + + +================= +Table of contents +================= +.. toctree:: + :maxdepth: 1 + + intersectBed + pairToBed + pairToPair + bamToBed + windowBed + closestBed + subtractBed + mergeBed + coverageBed + genomecoverageBed + fastafromBed + maskfastafromBed + shuffleBed + slopBed + sortBed + linksBed + complementBed + bedToBam + overlap + bedToIgv + bed12ToBed6 + groupBy + unionBedGraphs + annotateBed + + + + + \ No newline at end of file diff --git a/docs/content/closestBed.rst b/docs/content/closestBed.rst new file mode 100755 index 00000000..3276718c --- /dev/null +++ b/docs/content/closestBed.rst @@ -0,0 +1,130 @@ +############### +5.6 closestBed +############### +Similar to **intersectBed, closestBed** searches for overlapping features in A and B. In the event that +no feature in B overlaps the current feature in A, **closestBed** will report the *closest* (that is, least +genomic distance from the start or end of A) feature in B. For example, one might want to find which +is the closest gene to a significant GWAS polymorphism. Note that **closestBed** will report an +overlapping feature as the closest---that is, it does not restrict to closest *non-overlapping* feature. + +========================================================================== +5.6.1 Usage and option summary +========================================================================== +**Usage:** +:: + closestBed [OPTIONS] -a <BED/GFF/VCF> -b <BED/GFF/VCF> + + +=========================== =============================================================================================================================================================================================================== +Option Description +=========================== =============================================================================================================================================================================================================== +**-s** Force strandedness. That is, find the closest feature in B overlaps A on the same strand. *By default, this is disabled*. +**-d** In addition to the closest feature in B, report its distance to A as an extra column. The reported distance for overlapping features will be 0. +**-t** How ties for closest feature should be handled. This occurs when two features in B have exactly the same overlap with a feature in A. *By default, all such features in B are reported*. + + Here are the other choices controlling how ties are handled: + + *all-* Report all ties (default). + + *first-* Report the first tie that occurred in the B file. + + *last-* Report the last tie that occurred in the B file. +=========================== =============================================================================================================================================================================================================== + + + + +========================================================================== +5.6.2 Default behavior +========================================================================== +**closestBed** first searches for features in B that overlap a feature in A. If overlaps are found, the feature +in B that overlaps the highest fraction of A is reported. If no overlaps are found, **closestBed** looks for +the feature in B that is *closest* (that is, least genomic distance to the start or end of A) to A. For +example, in the figure below, feature B1 would be reported as the closest feature to A1. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BED FILE A ************* + + BED File B ^^^^^^^^ ^^^^^^ + + Result ====== + + +For example: +:: + cat A.bed + chr1 100 200 + + cat B.bed + chr1 500 1000 + chr1 1300 2000 + + closestBed -a A.bed -b B.bed + chr1 100 200 chr1 500 1000 + + + +========================================================================== +5.6.3 (-s)Enforcing "strandedness" +========================================================================== +This option behaves the same as the -s option for intersectBed while scanning for the closest +(overlapping or not) feature in B. See the discussion in the intersectBed section for details. + + + +========================================================================== +5.6.4 (-t)Controlling how ties for "closest" are broken +========================================================================== +When there are two or more features in B that overlap the *same fraction* of A, **closestBed** will, by +default, report both features in B. Imagine feature A is a SNP and file B contains genes. It can often +occur that two gene annotations (e.g. opposite strands) in B will overlap the SNP. As mentioned, the +default behavior is to report both such genes in B. However, the -t option allows one to optionally +choose the just first or last feature (in terms of where it occurred in the input file, not chromosome +position) that occurred in B. + +For example (note the difference between -l 200 and -l 300): +:: + cat A.bed + chr1 100 101 rs1234 + + cat B.bed + chr1 0 1000 geneA 100 + + chr1 0 1000 geneB 100 - + + closestBed -a A.bed -b B.bed + chr1 100 101 rs1234 chr1 0 1000 geneA 100 + + chr1 100 101 rs1234 chr1 0 1000 geneB 100 - + + closestBed -a A.bed -b B.bed -t all + chr1 100 101 rs1234 chr1 0 1000 geneA 100 + + chr1 100 101 rs1234 chr1 0 1000 geneB 100 - + + closestBed -a A.bed -b B.bed -t first + chr1 100 101 rs1234 chr1 0 1000 geneA 100 + + + closestBed -a A.bed -b B.bed -t last + chr1 100 101 rs1234 chr1 0 1000 geneB 100 - + + + + + + +========================================================================== +5.6.5 (-d)Reporting the distance to the closest feature in base pairs +========================================================================== +ClosestBed will optionally report the distance to the closest feature in the B file using the **-d** option. +When a feature in B overlaps a feature in A, a distance of 0 is reported. +:: + cat A.bed + chr1 100 200 + chr1 500 600 + + cat B.bed + chr1 500 1000 + chr1 1300 2000 + + closestBed -a A.bed -b B.bed -d + chr1 100 200 chr1 500 1000 300 + chr1 500 600 chr1 500 1000 0 diff --git a/docs/content/complementBed.rst b/docs/content/complementBed.rst new file mode 100755 index 00000000..1951d0d4 --- /dev/null +++ b/docs/content/complementBed.rst @@ -0,0 +1,48 @@ +############### +5.17 complementBed +############### +**complementBed** returns the intervals in a genome that are not by the features in a feature file. An +example usage of this tool would be to return the intervals of the genome that are not annotated as a +repeat. + + +========================================================================== +5.17.1 Usage and option summary +========================================================================== +Usage: +:: + complementBed [OPTIONS] -i <BED/GFF/VCF> -g <GENOME> + +**No additional options.** + + + + +========================================================================== +5.17.2 Default behavior +========================================================================== +Figure: +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BED FILE A ************* *************** ****************** + + Result === === ===== ======= + + +For example: +:: + cat A.bed + chr1 100 200 + chr1 400 500 + chr1 500 800 + + cat my.genome + chr1 1000 + + complementBed -i A.bed -g my.genome + chr1 0 100 + chr1 200 400 + chr1 800 1000 + + diff --git a/docs/content/coverageBed.rst b/docs/content/coverageBed.rst new file mode 100755 index 00000000..ccd5acd2 --- /dev/null +++ b/docs/content/coverageBed.rst @@ -0,0 +1,184 @@ +############### +5.9 coverageBed +############### +**coverageBed** computes both the *depth* and *breadth* of coverage of features in file A across the features +in file B. For example, **coverageBed** can compute the coverage of sequence alignments (file A) across 1 +kilobase (arbitrary) windows (file B) tiling a genome of interest. One advantage that **coverageBed** +offers is that it not only *counts* the number of features that overlap an interval in file B, it also +computes the fraction of bases in B interval that were overlapped by one or more features. Thus, +**coverageBed** also computes the *breadth* of coverage for each interval in B. + +========================================================================== +5.9.1 Usage and option summary +========================================================================== +Usage: +:: + coverageBed [OPTIONS] -a <BED/GFF/VCF> -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> | intersectBed -abam stdin -b genes.bed + +**-s** Force strandedness. That is, only features in A are only counted towards coverage in B if they are the same strand. *By default, this is disabled and coverage is counted without respect to strand*. +**-hist** Report a histogram of coverage for each feature in B as well as a summary histogram for _all_ features in B. + + | Output (tab delimited) after each feature in B: + + | 1) depth + | 2) # bases at depth + | 3) size of B + | 4) % of B at depth +**-d** Report the depth at each position in each B feature. Positions reported are one based. Each position and depth follow the complete B feature. +**-split** Treat "split" BAM or BED12 entries as distinct BED intervals when computing coverage. For BAM files, this uses the CIGAR "N" and "D" operations to infer the blocks for computing coverage. For BED12 files, this uses the BlockCount, BlockStarts, and BlockEnds fields (i.e., columns 10,11,12). +=========================== =============================================================================================================================================================================================================== + + + + + + +========================================================================== +5.9.2 Default behavior +========================================================================== +After each interval in B, **coverageBed** will report: + +1) The number of features in A that overlapped (by at least one base pair) the B interval. +2) The number of bases in B that had non-zero coverage from features in A. +3) The length of the entry in B. +4) The fraction of bases in B that had non-zero coverage from features in A. + +Below are the number of features in A (N=...) overlapping B and fraction of bases in B with coverage. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BED FILE B *************** *************** ****** ************** + + BED File A ^^^^ ^^^^ ^^ ^^^^^^^^^ ^^^ ^^ ^^^^ + ^^^^^^^^ ^^^^^ ^^^^^ ^^ + + Result [ N=3, 10/15 ] [ N=1, 2/16 ] [N=1,6/6] [N=5, 11/12 ] + + +For example: +:: + cat A.bed + chr1 10 20 + chr1 20 30 + chr1 30 40 + chr1 100 200 + + cat B.bed + chr1 0 100 + chr1 100 200 + chr2 0 100 + + coverageBed -a A.bed -b B.bed + chr1 0 100 3 30 100 0.3000000 + chr1 100 200 1 100 100 1.0000000 + chr2 0 100 0 0 100 0.0000000 + + + +========================================================================== +5.9.4 (-s)Calculating coverage by strand +========================================================================== +Use the "**-s**" option if one wants to only count coverage if features in A are on the same strand as the +feature / window in B. This is especially useful for RNA-seq experiments. + +For example (note the difference in coverage with and without **-s**: +:: + cat A.bed + chr1 10 20 a1 1 - + chr1 20 30 a2 1 - + chr1 30 40 a3 1 - + chr1 100 200 a4 1 + + + cat B.bed + chr1 0 100 b1 1 + + chr1 100 200 b2 1 - + chr2 0 100 b3 1 + + + coverageBed -a A.bed -b B.bed + chr1 0 100 b1 1 + 3 30 100 0.3000000 + chr1 100 200 b2 1 - 1 100 100 1.0000000 + chr2 0 100 b3 1 + 0 0 100 0.0000000 + + coverageBed -a A.bed -b B.bed -s + chr1 0 100 b1 1 + 0 0 100 0.0000000 + chr1 100 200 b2 1 - 0 0 100 0.0000000 + chr2 0 100 b3 1 + 0 0 100 0.0000000 + +========================================================================== +5.9.5 (-hist)Creating a histogram of coverage for each feature in the B file +========================================================================== +One should use the "**-hist**" option to create, for each interval in B, a histogram of coverage of the +features in A across B. + +In this case, each entire feature in B will be reported, followed by the depth of coverage, the number of +bases at that depth, the size of the feature, and the fraction covered. After all of the features in B have +been reported, a histogram summarizing the coverage among all features in B will be reported. +:: + cat A.bed + chr1 10 20 a1 1 - + chr1 20 30 a2 1 - + chr1 30 40 a3 1 - + chr1 100 200 a4 1 + + + cat B.bed + chr1 0 100 b1 1 + + chr1 100 200 b2 1 - + chr2 0 100 b3 1 + + + coverageBed -a A.bed -b B.bed -hist + chr1 0 100 b1 1 + 0 70 100 0.7000000 + chr1 0 100 b1 1 + 1 30 100 0.3000000 + chr1 100 200 b2 1 - 1 100 100 1.0000000 + chr2 0 100 b3 1 + 0 100 100 1.0000000 + all 0 170 300 0.5666667 + all 1 130 300 0.4333333 + + + +========================================================================== +5.9.6 (-hist)Reporting the per-base of coverage for each feature in the B file +========================================================================== +One should use the "**-d**" option to create, for each interval in B, a detailed list of coverage at each of the +positions across each B interval. + +The output will consist of a line for each one-based position in each B feature, followed by the coverage +detected at that position. +:: + cat A.bed + chr1 0 5 + chr1 3 8 + chr1 4 8 + chr1 5 9 + + cat B.bed + chr1 0 10 + + coverageBed -a A.bed -b B.bed -d + chr1 0 10 B 1 1 + chr1 0 10 B 2 1 + chr1 0 10 B 3 1 + chr1 0 10 B 4 2 + chr1 0 10 B 5 3 + chr1 0 10 B 6 3 + chr1 0 10 B 7 3 + chr1 0 10 B 8 3 + chr1 0 10 B 9 1 + chr1 0 10 B 10 0 + + + +========================================================================== +5.9.7 (-split)Reporting coverage with spliced alignments or blocked BED features +========================================================================== +As described in section 1.3.19, coverageBed will, by default, screen for overlaps against the entire span +of a spliced/split BAM alignment or blocked BED12 feature. When dealing with RNA-seq reads, for +example, one typically wants to only tabulate coverage for the portions of the reads that come from +exons (and ignore the interstitial intron sequence). The **-split** command allows for such coverage to be +performed. diff --git a/docs/content/example-usage.rst b/docs/content/example-usage.rst new file mode 100755 index 00000000..3fe5edf3 --- /dev/null +++ b/docs/content/example-usage.rst @@ -0,0 +1,331 @@ +############### +Example usage +############### +Below are several examples of basic BEDTools usage. Example BED files are provided in the +/data directory of the BEDTools distribution. + + + +========================================================================== +6.1 intersectBed +========================================================================== + + +6.1.1 Report the base-pair overlap between sequence alignments and genes. +:: + intersectBed -a reads.bed -b genes.bed + + + +6.1.2 Report whether each alignment overlaps one or more genes. If not, the alignment is not reported. +:: + intersectBed -a reads.bed -b genes.bed -u + + + +6.1.3 Report those alignments that overlap NO genes. Like "grep -v" +:: + intersectBed -a reads.bed -b genes.bed -v + + +6.1.4 Report the number of genes that each alignment overlaps. +:: + intersectBed -a reads.bed -b genes.bed -c + + + +6.1.5 Report the entire, original alignment entry for each overlap with a gene. +:: + intersectBed -a reads.bed -b genes.bed -wa + + + +6.1.6 Report the entire, original gene entry for each overlap with a gene. +:: + intersectBed -a reads.bed -b genes.bed -wb + + + +6.1.7 Report the entire, original alignment and gene entries for each overlap. +:: + intersectBed -a reads.bed -b genes.bed -wa -wb + + + +6.1.8 Only report an overlap with a repeat if it spans at least 50% of the exon. +:: + intersectBed -a exons.bed -b repeatMasker.bed -f 0.50 + + + +6.1.9 Only report an overlap if comprises 50% of the structural variant and 50% of the segmental duplication. Thus, it is reciprocally at least a 50% overlap. +:: + intersectBed -a SV.bed -b segmentalDups.bed -f 0.50 -r + + + + +6.1.10 Read BED A from stdin. For example, find genes that overlap LINEs but not SINEs. +:: + intersectBed -a genes.bed -b LINES.bed | intersectBed -a stdin -b SINEs.bed -v + + + + +6.1.11 Retain only single-end BAM alignments that overlap exons. +:: + intersectBed -abam reads.bam -b exons.bed > reads.touchingExons.bam + + + + + +6.1.12 Retain only single-end BAM alignments that do not overlap simple sequence +repeats. +:: + intersectBed -abam reads.bam -b SSRs.bed -v > reads.noSSRs.bam + + + +========================================================================== +6.2 pairToBed +========================================================================== + + + +6.2.1 Return all structural variants (in BEDPE format) that overlap with genes on either +end. +:: + pairToBed -a sv.bedpe -b genes > sv.genes + + + +6.2.2 Return all structural variants (in BEDPE format) that overlap with genes on both +end. +:: + pairToBed -a sv.bedpe -b genes -type both > sv.genes + + + + +6.2.3 Retain only paired-end BAM alignments where neither end overlaps simple +sequence repeats. +:: + pairToBed -abam reads.bam -b SSRs.bed -type neither > reads.noSSRs.bam + + + +6.2.4 Retain only paired-end BAM alignments where both ends overlap segmental +duplications. +:: + pairToBed -abam reads.bam -b segdups.bed -type both > reads.SSRs.bam + + + + +6.2.5 Retain only paired-end BAM alignments where neither or one and only one end +overlaps segmental duplications. +:: + pairToBed -abam reads.bam -b segdups.bed -type notboth > reads.notbothSSRs.bam + + + + + + +========================================================================== +6.3 pairToPair +========================================================================== + + +6.3.1 Find all SVs (in BEDPE format) in sample 1 that are also in sample 2. +:: + pairToPair -a 1.sv.bedpe -b 2.sv.bedpe | cut -f 1-10 > 1.sv.in2.bedpe + + + +6.3.2 Find all SVs (in BEDPE format) in sample 1 that are not in sample 2. +:: + pairToPair -a 1.sv.bedpe -b 2.sv.bedpe -type neither | cut -f 1-10 > +1.sv.notin2.bedpe + + + + + +========================================================================== +6.4 bamToBed +========================================================================== + + +6.4.1 Convert BAM alignments to BED format. +:: + bamToBed -i reads.bam > reads.bed + + +6.4.2 Convert BAM alignments to BED format using the BAM edit distance (NM) as the +BED "score". +:: + bamToBed -i reads.bam -ed > reads.bed + + +6.4.3 Convert BAM alignments to BEDPE format. +:: + bamToBed -i reads.bam -bedpe > reads.bedpe + + + + + +========================================================================== +6.5 windowBed +========================================================================== + + + +6.5.1 Report all genes that are within 10000 bp upstream or downstream of CNVs. +:: + windowBed -a CNVs.bed -b genes.bed -w 10000 + + + +6.5.2 Report all genes that are within 10000 bp upstream or 5000 bp downstream of +CNVs. +:: + windowBed -a CNVs.bed -b genes.bed -l 10000 -r 5000 + + +6.5.3 Report all SNPs that are within 5000 bp upstream or 1000 bp downstream of genes. +Define upstream and downstream based on strand. +:: + windowBed -a genes.bed -b snps.bed -l 5000 -r 1000 -sw + + + + + +========================================================================== +6.6 closestBed +========================================================================== +Note: By default, if there is a tie for closest, all ties will be reported. **closestBed** allows overlapping +features to be the closest. + + + +6.6.1 Find the closest ALU to each gene. +:: + closestBed -a genes.bed -b ALUs.bed + + +6.6.2 Find the closest ALU to each gene, choosing the first ALU in the file if there is a +tie. +:: + closestBed -a genes.bed -b ALUs.bed -t first + + + +6.6.3 Find the closest ALU to each gene, choosing the last ALU in the file if there is a +tie. +:: + closestBed -a genes.bed -b ALUs.bed -t last + + + + + +========================================================================== +6.7 subtractBed +========================================================================== +Note: If a feature in A is entirely "spanned" by any feature in B, it will not be reported. + + + +6.7.1 Remove introns from gene features. Exons will (should) be reported. +:: + subtractBed -a genes.bed -b introns.bed + + +========================================================================== +6.8 mergeBed +========================================================================== + + +6.8.1 Merge overlapping repetitive elements into a single entry. +:: + mergeBed -i repeatMasker.bed + + + +6.8.2 Merge overlapping repetitive elements into a single entry, returning the number of +entries merged. +:: + mergeBed -i repeatMasker.bed -n + + +6.8.3 Merge nearby (within 1000 bp) repetitive elements into a single entry. +:: + mergeBed -i repeatMasker.bed -d 1000 + + +========================================================================== +6.9 coverageBed +========================================================================== + + +6.9.1 Compute the coverage of aligned sequences on 10 kilobase "windows" spanning the +genome. +:: + coverageBed -a reads.bed -b windows10kb.bed | head + chr1 0 10000 0 10000 0.00 + chr1 10001 20000 33 10000 0.21 + chr1 20001 30000 42 10000 0.29 + chr1 30001 40000 71 10000 0.36 + + + +6.9.2 Compute the coverage of aligned sequences on 10 kilobase "windows" spanning the +genome and created a BEDGRAPH of the number of aligned reads in each window for +display on the UCSC browser. +:: + coverageBed -a reads.bed -b windows10kb.bed | cut -f 1-4 > windows10kb.cov.bedg + + + +6.9.3 Compute the coverage of aligned sequences on 10 kilobase "windows" spanning the +genome and created a BEDGRAPH of the fraction of each window covered by at least +one aligned read for display on the UCSC browser. +:: + coverageBed -a reads.bed -b windows10kb.bed | awk ¡®{OFS="\t"; print $1,$2,$3,$6}¡¯ + > windows10kb.pctcov.bedg + + + + +========================================================================== +6.10 complementBed +========================================================================== + + +6.10.1 Report all intervals in the human genome that are not covered by repetitive +elements. +:: + complementBed -i repeatMasker.bed -g hg18.genome + + + +========================================================================== +6.11 shuffleBed +========================================================================== + + +6.11.1 Randomly place all discovered variants in the genome. However, prevent them +from being placed in know genome gaps. +:: + shuffleBed -i variants.bed -g hg18.genome -excl genome_gaps.bed + + +6.11.2 Randomly place all discovered variants in the genome. However, prevent them +from being placed in know genome gaps and require that the variants be randomly +placed on the same chromosome. +:: + shuffleBed -i variants.bed -g hg18.genome -excl genome_gaps.bed -chrom diff --git a/docs/content/fastafromBed.rst b/docs/content/fastafromBed.rst new file mode 100755 index 00000000..6e2b4ca0 --- /dev/null +++ b/docs/content/fastafromBed.rst @@ -0,0 +1,126 @@ +############### +5.11 fastaFromBed +############### +**fastaFromBed** extracts sequences from a FASTA file for each of the intervals defined in a BED file. +The headers in the input FASTA file must exactly match the chromosome column in the BED file. + +========================================================================== +5.11.1 Usage and option summary +========================================================================== +Usage: +:: + fastaFromBed [OPTIONS] -fi <input FASTA> -bed <BED/GFF/VCF> -fo <output FASTA> + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-name** Use the "name" column in the BED file for the FASTA headers in the output FASTA file. +**-tab** Report extract sequences in a tab-delimited format instead of in FASTA format. +**-s** Force strandedness. If the feature occupies the antisense strand, the sequence will be reverse complemented. *Default: strand information is ignored*. +=========================== =============================================================================================================================================================================================================== + + + + + + + +========================================================================== +5.11.2 Default behavior +========================================================================== +**fastaFromBed** will extract the sequence defined by the coordinates in a BED interval and create a +new FASTA entry in the output file for each extracted sequence. By default, the FASTA header for each +extracted sequence will be formatted as follows: "<chrom>:<start>-<end>". + +For example: +:: + $ cat test.fa + >chr1 + AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + + cat test.bed + chr1 5 10 + + fastaFromBed -fi test.fa -bed test.bed -fo test.fa.out + + cat test.fa.out + >chr1:5-10 + AAACC + + + + +========================================================================== +5.11.3 Using the BED "name" column as a FASTA header. +========================================================================== +Using the **-name** option, one can set the FASTA header for each extracted sequence to be the "name" +columns from the BED feature. + +For example: +:: + cat test.fa + >chr1 + AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + + cat test.bed + chr1 5 10 myseq + + fastaFromBed -fi test.fa -bed test.bed -fo test.fa.out -name + + cat test.fa.out + >myseq + AAACC + + + + + + + + + + +========================================================================== +5.11.4 Creating a tab-delimited output file in lieu of FASTA output. +========================================================================== +Using the **-tab** option, the **-fo** output file will be tab-delimited instead of in FASTA format. + +For example: +:: + cat test.fa + >chr1 + AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + + cat test.bed + chr1 5 10 myseq + + fastaFromBed -fi test.fa -bed test.bed -fo test.fa.out.tab -name -tab + + cat test.fa.out + myseq AAACC + + + +========================================================================== +5.11.5 (-s)Forcing the extracted sequence to reflect the requested strand +========================================================================== +**fastaFromBed** will extract the sequence in the orientation defined in the strand column when the "-s" +option is used. + +For example: +:: + cat test.fa + >chr1 + AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + + cat test.bed + chr1 20 25 forward 1 + + chr1 20 25 reverse 1 - + + fastaFromBed -fi test.fa -bed test.bed -s -name -fo test.fa.out + + cat test.fa.out + >forward + CGCTA + >reverse + TAGCG diff --git a/docs/content/general-usage.rst b/docs/content/general-usage.rst new file mode 100755 index 00000000..7047cc55 --- /dev/null +++ b/docs/content/general-usage.rst @@ -0,0 +1,213 @@ +############### +General usage +############### + +======================= +4.1 Supported file formats +======================= + +---------------------- +4.1.1 BED format +---------------------- +As described on the UCSC Genome Browser website (see link below), the BED format is a concise and +flexible way to represent genomic features and annotations. The BED format description supports up to +12 columns, but only the first 3 are required for the UCSC browser, the Galaxy browser and for +BEDTools. BEDTools allows one to use the "BED12" format (that is, all 12 fields listed below). +However, only intersectBed, coverageBed, genomeCoverageBed, and bamToBed will obey the BED12 +"blocks" when computing overlaps, etc., via the **"-split"** option. For all other tools, the last six columns +are not used for any comparisons by the BEDTools. Instead, they will use the entire span (start to end) +of the BED12 entry to perform any relevant feature comparisons. The last six columns will be reported +in the output of all comparisons. + +The file description below is modified from: http://genome.ucsc.edu/FAQ/FAQformat#format1. + +1. **chrom** - The name of the chromosome on which the genome feature exists. + - *Any string can be used*. For example, "chr1", "III", "myChrom", "contig1112.23". + - *This column is required*. +2. **start** - The zero-based starting position of the feature in the chromosome. + - *The first base in a chromosome is numbered 0*. + - *The start position in each BED feature is therefore interpreted to be 1 greater than the start position listed in the feature. For example, start=9, end=20 is interpreted to span bases 10 through 20,inclusive*. + - *This column is required*. +3. **end** - The one-based ending position of the feature in the chromosome. + - *The end position in each BED feature is one-based. See example above*. + - *This column is required*. +4. **name** - Defines the name of the BED feature. + - *Any string can be used*. For example, "LINE", "Exon3", "HWIEAS_0001:3:1:0:266#0/1", or "my_Feature". + - *This column is optional*. +5. **score** - The UCSC definition requires that a BED score range from 0 to 1000, inclusive. However, BEDTools allows any string to be stored in this field in order to allow greater flexibility in annotation features. For example, strings allow scientific notation for p-values, mean enrichment values, etc. It should be noted that this flexibility could prevent such annotations from being correctly displayed on the UCSC browser. + - *Any string can be used*. For example, 7.31E-05 (p-value), 0.33456 (mean enrichment value), "up", "down", etc. + - *This column is optional*. +6. **strand** - Defines the strand - either '+' or '-'. + - *This column is optional*. +7. **thickStart** - The starting position at which the feature is drawn thickly. + - *Allowed yet ignored by BEDTools*. +8. **thickEnd** - The ending position at which the feature is drawn thickly. + - *Allowed yet ignored by BEDTools*. +9. **itemRgb** - An RGB value of the form R,G,B (e.g. 255,0,0). + - *Allowed yet ignored by BEDTools*. +10. **blockCount** - The number of blocks (exons) in the BED line. + - *Allowed yet ignored by BEDTools*. +11. **blockSizes** - A comma-separated list of the block sizes. + - *Allowed yet ignored by BEDTools*. +12. **blockStarts** - A comma-separated list of block starts. + - *Allowed yet ignored by BEDTools*. + + +BEDTools requires that all BED input files (and input received from stdin) are **tab-delimited**. The following types of BED files are supported by BEDTools: + + +1. | **BED3**: A BED file where each feature is described by **chrom**, **start**, and **end**. + | For example: chr1 11873 14409 +2. | **BED4**: A BED file where each feature is described by **chrom**, **start**, **end**, and **name**. + | For example: chr1 11873 14409 uc001aaa.3 +3. | **BED5**: A BED file where each feature is described by **chrom**, **start**, **end**, **name**, and **score**. + | For example: chr1 11873 14409 uc001aaa.3 0 +4. | **BED6**: A BED file where each feature is described by **chrom**, **start**, **end**, **name**, **score**, and **strand**. + | For example: chr1 11873 14409 uc001aaa.3 0 + +5. | **BED12**: A BED file where each feature is described by all twelve columns listed above. + | For example: chr1 11873 14409 uc001aaa.3 0 + 11873 + | 11873 0 3 354,109,1189, 0,739,1347, + +---------------------- +4.1.2 BEDPE format +---------------------- +We have defined a new file format (BEDPE) in order to concisely describe disjoint genome features, +such as structural variations or paired-end sequence alignments. We chose to define a new format +because the existing "blocked" BED format (a.k.a. BED12) does not allow inter-chromosomal feature +definitions. In addition, BED12 only has one strand field, which is insufficient for paired-end sequence +alignments, especially when studying structural variation. + +The BEDPE format is described below. The description is modified from: http://genome.ucsc.edu/FAQ/FAQformat#format1. + +1. **chrom1** - The name of the chromosome on which the **first** end of the feature exists. + - *Any string can be used*. For example, "chr1", "III", "myChrom", "contig1112.23". + - *This column is required*. + - *Use "." for unknown*. +2. **start1** - The zero-based starting position of the **first** end of the feature on **chrom1**. + - *The first base in a chromosome is numbered 0*. + - *As with BED format, the start position in each BEDPE feature is therefore interpreted to be 1 greater than the start position listed in the feature. This column is required*. + - *Use -1 for unknown*. +3. **end1** - The one-based ending position of the first end of the feature on **chrom1**. + - *The end position in each BEDPE feature is one-based*. + - *This column is required*. + - *Use -1 for unknown*. +4. **chrom2** - The name of the chromosome on which the **second** end of the feature exists. + - *Any string can be used*. For example, "chr1", "III", "myChrom", "contig1112.23". + - *This column is required*. + - *Use "." for unknown*. +5. **start2** - The zero-based starting position of the **second** end of the feature on **chrom2**. + - *The first base in a chromosome is numbered 0*. + - *As with BED format, the start position in each BEDPE feature is therefore interpreted to be 1 greater than the start position listed in the feature. This column is required*. + - *Use -1 for unknown*. +6. **end2** - The one-based ending position of the **second** end of the feature on **chrom2**. + - *The end position in each BEDPE feature is one-based*. + - *This column is required*. + - *Use -1 for unknown*. +7. **name** - Defines the name of the BEDPE feature. + - *Any string can be used*. For example, "LINE", "Exon3", "HWIEAS_0001:3:1:0:266#0/1", or "my_Feature". + - *This column is optional*. +8. **score** - The UCSC definition requires that a BED score range from 0 to 1000, inclusive. *However, BEDTools allows any string to be stored in this field in order to allow greater flexibility in annotation features*. For example, strings allow scientific notation for p-values, mean enrichment values, etc. It should be noted that this flexibility could prevent such annotations from being correctly displayed on the UCSC browser. + - *Any string can be used*. For example, 7.31E-05 (p-value), 0.33456 (mean enrichment value), "up", "down", etc. + - *This column is optional*. +9. **strand1** - Defines the strand for the first end of the feature. Either '+' or '-'. + - *This column is optional*. + - *Use "." for unknown*. +10. **strand2** - Defines the strand for the second end of the feature. Either '+' or '-'. + - *This column is optional*. + - *Use "." for unknown*. +11. **Any number of additional, user-defined fields** - BEDTools allows one to add as many additional fields to the normal, 10-column BEDPE format as necessary. These columns are merely "passed through" **pairToBed** and **pairToPair** and are not part of any analysis. One would use these additional columns to add extra information (e.g., edit distance for each end of an alignment, or "deletion", "inversion", etc.) to each BEDPE feature. + - *These additional columns are optional*. + + +Entries from an typical BEDPE file: +:: + chr1 100 200 chr5 5000 5100 bedpe_example1 30 + - + chr9 1000 5000 chr9 3000 3800 bedpe_example2 100 + - + + +Entries from a BEDPE file with two custom fields added to each record: +:: + chr1 10 20 chr5 50 60 a1 30 + - 0 1 + chr9 30 40 chr9 80 90 a2 100 + - 2 1 + + + +---------------------- +4.1.3 GFF format +---------------------- +The GFF format is described on the Sanger Institute's website (http://www.sanger.ac.uk/resources/software/gff/spec.html). The GFF description below is modified from the definition at this URL. All nine columns in the GFF format description are required by BEDTools. + +1. **seqname** - The name of the sequence (e.g. chromosome) on which the feature exists. + - *Any string can be used*. For example, "chr1", "III", "myChrom", "contig1112.23". + - *This column is required*. +2. **source** - The source of this feature. This field will normally be used to indicate the program making the prediction, or if it comes from public database annotation, or is experimentally verified, etc. + - *This column is required*. +3. **feature** - The feature type name. Equivalent to BED's **name** field. + - *Any string can be used*. For example, "exon", etc. + - *This column is required*. +4. **start** - The one-based starting position of feature on **seqname**. + - *This column is required*. + - *BEDTools accounts for the fact the GFF uses a one-based position and BED uses a zero-based start position*. +5. **end** - The one-based ending position of feature on **seqname**. + - *This column is required*. +6. **score** - A score assigned to the GFF feature. Like BED format, BEDTools allows any string to be stored in this field in order to allow greater flexibility in annotation features. We note that this differs from the GFF definition in the interest of flexibility. + - *This column is required*. +7. **strand** - Defines the strand. Use '+', '-' or '.' + - *This column is required*. +8. **frame** - The frame of the coding sequence. Use '0', '1', '2', or '.'. + - *This column is required*. +9. **attribute** - Taken from http://www.sanger.ac.uk/resources/software/gff/spec.html: From version 2 onwards, the attribute field must have an tag value structure following the syntax used within objects in a .ace file, flattened onto one line by semicolon separators. Tags must be standard identifiers ([A-Za-z][AZa-z0-9_]*). Free text values must be quoted with double quotes. *Note: all non-printing characters in such free text value strings (e.g. newlines, tabs, control characters, etc) must be explicitly represented by their C (UNIX) style backslash-escaped representation (e.g. newlines as '\n', tabs as '\t')*. As in ACEDB, multiple values can follow a specific tag. The aim is to establish consistent use of particular tags, corresponding to an underlying implied ACEDB model if you want to think that way (but acedb is not required). + - *This column is required*. + +An entry from an example GFF file : +:: + seq1 BLASTX similarity 101 235 87.1 + 0 Target "HBA_HUMAN" 11 55 ; + E_value 0.0003 dJ102G20 GD_mRNA coding_exon 7105 7201 . - 2 Sequence + "dJ102G20.C1.1" + + + +---------------------- +4.1.3 GFF format +---------------------- +Some of the BEDTools (e.g., genomeCoverageBed, complementBed, slopBed) need to know the size of +the chromosomes for the organism for which your BED files are based. When using the UCSC Genome +Browser, Ensemble, or Galaxy, you typically indicate which which species/genome build you are +working. The way you do this for BEDTools is to create a "genome" file, which simply lists the names of +the chromosomes (or scaffolds, etc.) and their size (in basepairs). + + +Genome files must be **tab-delimited** and are structured as follows (this is an example for *C. elegans*): +:: + chrI 15072421 + chrII 15279323 + ... + chrX 17718854 + chrM 13794 + +BEDTools includes pre-defined genome files for human and mouse in the **/genomes** directory included +in the BEDTools distribution. + + +---------------------- +4.1.5 SAM/BAM format +---------------------- +The SAM / BAM format is a powerful and widely-used format for storing sequence alignment data (see +http://samtools.sourceforge.net/ for more details). It has quickly become the standard format to which +most DNA sequence alignment programs write their output. Currently, the following BEDTools +support inout in BAM format: *intersectBed, windowBed, coverageBed, genomeCoverageBed, +pairToBed, bamToBed*. Support for the BAM format in BEDTools allows one to (to name a few): +compare sequence alignments to annotations, refine alignment datasets, screen for potential mutations +and compute aligned sequence coverage. + +The details of how these tools work with BAM files are addressed in **Section 5** of this manual. + + +---------------------- +4.1.6 VCF format +---------------------- +The Variant Call Format (VCF) was conceived as part of the 1000 Genomes Project as a standardized +means to report genetic variation calls from SNP, INDEL and structural variant detection programs +(see http://www.1000genomes.org/wiki/doku.php?id=1000_genomes:analysis:vcf4.0 for details). +BEDTools now supports the latest version of this format (i.e, Version 4.0). As a result, BEDTools can +be used to compare genetic variation calls with other genomic features. diff --git a/docs/content/genomecoverageBed.rst b/docs/content/genomecoverageBed.rst new file mode 100755 index 00000000..3c5d6919 --- /dev/null +++ b/docs/content/genomecoverageBed.rst @@ -0,0 +1,122 @@ +############### +5.10 genomeCoverageBed +############### +**genomeCoverageBed** computes a histogram of feature coverage (e.g., aligned sequences) for a given +genome. Optionally, by using the **-d** option, it will report the depth of coverage at *each base* on each +chromosome in the genome file (**-g**). + +========================================================================== +5.10.1 Usage and option summary +========================================================================== +Usage: +:: + genomeCoverageBed [OPTIONS] -i <BED> -g <GENOME> + +NOTE: genomeCoverageBed requires that the input BED file be sorted by +chromosome. A simple sort -k1,1 will suffice. + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-ibam** BAM file as input for coverage. Each BAM alignment in A added to the total coverage for the genome. Use "stdin" if passing it with a UNIX pipe: For example: + | samtools view -b <BAM> | genomeCoverageBed -ibam stdin -g hg18.genome +**-d** Report the depth at each genome position. *Default behavior is to report a histogram*. +**-max** Combine all positions with a depth >= max into a single bin in the histogram. +**-bg** Report depth in BedGraph format. For details, see: http://genome.ucsc.edu/goldenPath/help/bedgraph.html +**-bga** Report depth in BedGraph format, as above (i.e., -bg). However with this option, regions with zero coverage are also reported. This allows one to quickly extract all regions of a genome with 0 coverage by applying: "grep -w 0$" to the output. +**-split** Treat "split" BAM or BED12 entries as distinct BED intervals when computing coverage. For BAM files, this uses the CIGAR "N" and "D" operations to infer the blocks for computing coverage. For BED12 files, this uses the BlockCount, BlockStarts, and BlockEnds fields (i.e., columns 10,11,12). +**-strand** Calculate coverage of intervals from a specific strand. With BED files, requires at least 6 columns (strand is column 6). +=========================== =============================================================================================================================================================================================================== + + + + +========================================================================== +5.10.2 Default behavior +========================================================================== +By default, **genomeCoverageBed** will compute a histogram of coverage for the genome file provided. +The default output format is as follows: +1. chromosome (or entire genome) +2. depth of coverage from features in input file +3. number of bases on chromosome (or genome) with depth equal to column 2. +4. size of chromosome (or entire genome) in base pairs +5. fraction of bases on chromosome (or entire genome) with depth equal to column 2. + +For example: +:: + cat A.bed + chr1 10 20 + chr1 20 30 + chr2 0 500 + + cat my.genome + chr1 1000 + chr2 500 + + genomeCoverageBed -i A.bed -g my.genome + chr1 0 980 1000 0.98 + chr1 1 20 1000 0.02 + chr2 1 500 500 1 + genome 0 980 1500 0.653333 + genome 1 520 1500 0.346667 + + + + +========================================================================== +5.10.3 (-max)Controlling the histogram's maximum depth +========================================================================== +Using the **-max** option, **genomeCoverageBed** will "lump" all positions in the genome having feature +coverage greather than or equal to **max** into the **max** histogram bin. For example, if one sets **-max** +equal to 50, the max depth reported in the output will be 50 and all positions with a depth >= 50 will +be represented in bin 50. + +========================================================================== +5.10.4 (-d)Reporting "per-base" genome coverage +========================================================================== +Using the **-d** option, **genomeCoverageBed** will compute the depth of feature coverage for each base +on each chromosome in genome file provided. + +The "per-base" output format is as follows: +1. chromosome +2. chromosome position +3. depth (number) of features overlapping this chromosome position. + +For example: +:: + cat A.bed + chr1 10 20 + chr1 20 30 + chr2 0 500 + + cat my.genome + chr1 1000 + chr2 500 + + genomeCoverageBed -i A.bed -g my.genome -d | head -15 | tail -n 10 + chr1 6 0 + chr1 7 0 + chr1 8 0 + chr1 9 0 + chr1 10 0 + chr1 11 1 + chr1 12 1 + chr1 13 1 + chr1 14 1 + chr1 15 1 + + + +========================================================================== +5.1.13 (-split)Reporting coverage with spliced alignments or blocked BED features +========================================================================== +As described in section 1.3.19, genomeCoverageBed will, by default, screen for overlaps against the +entire span of a spliced/split BAM alignment or blocked BED12 feature. When dealing with RNA-seq +reads, for example, one typically wants to only screen for overlaps for the portions of the reads that +come from exons (and ignore the interstitial intron sequence). The **-split** command allows for such +overlaps to be performed. + +For additional details, please visit the Usage From The Wild site and have a look at example 5, +contributed by Assaf Gordon. + + diff --git a/docs/content/groupBy.rst b/docs/content/groupBy.rst new file mode 100755 index 00000000..178f8282 --- /dev/null +++ b/docs/content/groupBy.rst @@ -0,0 +1,194 @@ +############### +5.22 groupBy +############### +**groupBy** is a useful tool that mimics the "groupBy" clause in database systems. Given a file or stream +that is sorted by the appropriate "grouping columns", groupBy will compute summary statistics on +another column in the file or stream. This will work with output from all BEDTools as well as any other +tab-delimited file or stream. + +**NOTE: When using groupBy, the input data must be ordered by the same +columns as specified with the -grp argument. For example, if -grp is 1,2,3, the the +data should be pre-grouped accordingly. When groupBy detects changes in the +group columns it then summarizes all lines with that group**. + + +========================================================================== +5.22.1 Usage and option summary +========================================================================== +Usage: +:: + groupBy [OPTIONS] -i <input> -opCol <input column> + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-i** The input file that should be grouped and summarized. *Use "stdin" when using piped input*. + **Note: if -i is omitted, input is assumed to come from standard input (stdin)** +**-g OR -grp** Specifies which column(s) (1-based) should be used to group the input. The columns must be comma-separated and each column must be explicitly listed. No ranges (e.g. 1-4) yet allowed. *Default: 1,2,3* +**-c OR -opCol** Specify the column (1-based) that should be summarized. *Required*. +**-o OR -op** Specify the operation that should be applied to **opCol**. + + | Valid operations: + + | **sum** - *numeric only* + | **count** - *numeric or text* + | **min** - *numeric only* + | **max** - *numeric only* + | **mean** - *numeric only* + | **stdev** - *numeric only* + | **median** - *numeric only* + | **mode** - *numeric or text* + | **antimode** - *numeric or text* + | **collapse** (i.e., print a comma separated list) - *numeric or text* + | **freqasc** - *print a comma separated list of values observed and the number of times they were observed. Reported in ascending order of frequency* + | **freqdesc** - *print a comma separated list of values observed and the number of times they were observed. Reported in descending order of frequency* + + | *Default: sum* +=========================== =============================================================================================================================================================================================================== + + + + + +========================================================================== +5.22.2 Default behavior. +========================================================================== +Let's imagine we have three incredibly interesting genetic variants that we are studying and we are +interested in what annotated repeats these variants overlap. +:: + cat variants.bed + chr21 9719758 9729320 variant1 + chr21 9729310 9757478 variant2 + chr21 9795588 9796685 variant3 + + intersectBed -a variants.bed -b repeats.bed -wa -wb > variantsToRepeats.bed + cat variantsToRepeats.bed + chr21 9719758 9729320 variant1 chr21 9719768 9721892 ALR/Alpha 1004 + + chr21 9719758 9729320 variant1 chr21 9721905 9725582 ALR/Alpha 1010 + + chr21 9719758 9729320 variant1 chr21 9725582 9725977 L1PA3 3288 + + chr21 9719758 9729320 variant1 chr21 9726021 9729309 ALR/Alpha 1051 + + chr21 9729310 9757478 variant2 chr21 9729320 9729809 L1PA3 3897 - + chr21 9729310 9757478 variant2 chr21 9729809 9730866 L1P1 8367 + + chr21 9729310 9757478 variant2 chr21 9730866 9734026 ALR/Alpha 1036 - + chr21 9729310 9757478 variant2 chr21 9734037 9757471 ALR/Alpha 1182 - + chr21 9795588 9796685 variant3 chr21 9795589 9795713 (GAATG)n 308 + + chr21 9795588 9796685 variant3 chr21 9795736 9795894 (GAATG)n 683 + + chr21 9795588 9796685 variant3 chr21 9795911 9796007 (GAATG)n 345 + + chr21 9795588 9796685 variant3 chr21 9796028 9796187 (GAATG)n 756 + + chr21 9795588 9796685 variant3 chr21 9796202 9796615 (GAATG)n 891 + + chr21 9795588 9796685 variant3 chr21 9796637 9796824 (GAATG)n 621 + + + +We can see that variant1 overlaps with 3 repeats, variant2 with 4 and variant3 with 6. We can use +groupBy to summarize the hits for each variant in several useful ways. The default behavior is to +compute the *sum* of the opCol. +:: + groupBy -i variantsToRepeats.bed -grp 1,2,3 -opCol 9 + chr21 9719758 9729320 6353 + chr21 9729310 9757478 14482 + chr21 9795588 9796685 3604 + + + +========================================================================== +5.22.3 Computing the min and max. +========================================================================== +Now let's find the *min* and *max* repeat score for each variant. We do this by "grouping" on the variant +coordinate columns (i.e. cols. 1,2 and 3) and ask for the min and max of the repeat score column (i.e. +col. 9). +:: + groupBy -i variantsToRepeats.bed -g 1,2,3 -c 9 -o min + chr21 9719758 9729320 1004 + chr21 9729310 9757478 1036 + chr21 9795588 9796685 308 + +We can also group on just the *name* column with similar effect. +:: + groupBy -i variantsToRepeats.bed -grp 4 -opCol 9 -op min + variant1 1004 + variant2 1036 + variant3 308 + +What about the *max* score? Let's keep the coordinates and the name of the variants so that we +stay in BED format. +:: + groupBy -i variantsToRepeats.bed -grp 1,2,3,4 -opCol 9 -op max + chr21 9719758 9729320 variant1 3288 + chr21 9729310 9757478 variant2 8367 + chr21 9795588 9796685 variant3 891 + + + +========================================================================== +5.22.4 Computing the mean and median. +========================================================================== +Now let's find the *mean* and *median* repeat score for each variant. +:: + cat variantsToRepeats.bed | groupBy -g 1,2,3,4 -c 9 -o mean + chr21 9719758 9729320 variant1 1588.25 + chr21 9729310 9757478 variant2 3620.5 + chr21 9795588 9796685 variant3 600.6667 + + groupBy -i variantsToRepeats.bed -grp 1,2,3,4 -opCol 9 -op median + chr21 9719758 9729320 variant1 1030.5 + chr21 9729310 9757478 variant2 2539.5 + chr21 9795588 9796685 variant3 652 + + +========================================================================== +5.22.5 Computing the mode and "antimode". +========================================================================== +Now let's find the *mode* and *antimode* (i.e., the least frequent) repeat score for each variant (in this case +they are identical). +:: + groupBy -i variantsToRepeats.bed -grp 1,2,3,4 -opCol 9 -op mode + chr21 9719758 9729320 variant1 1004 + chr21 9729310 9757478 variant2 1036 + chr21 9795588 9796685 variant3 308 + + groupBy -i variantsToRepeats.bed -grp 1,2,3,4 -opCol 9 -op antimode + chr21 9719758 9729320 variant1 1004 + chr21 9729310 9757478 variant2 1036 + chr21 9795588 9796685 variant3 308 + + + +========================================================================== +5.22.6 Computing the count of lines for a given group. +========================================================================== +Figure: +:: + groupBy -i variantsToRepeats.bed -g 1,2,3,4 -c 9 -c count + chr21 9719758 9729320 variant1 4 + chr21 9729310 9757478 variant2 4 + chr21 9795588 9796685 variant3 6 + + + + +========================================================================== +5.22.7 Collapsing: listing all of the values in the opCol for a given group. +========================================================================== +Now for something different. What if we wanted all of the names of the repeats listed on the same line +as the variants? Use the collapse option. This "denormalizes" things. Now you have a list of all the +repeats on a single line. +:: + groupBy -i variantsToRepeats.bed -grp 1,2,3,4 -opCol 9 -op collapse + chr21 9719758 9729320 variant1 ALR/Alpha,ALR/Alpha,L1PA3,ALR/Alpha, + chr21 9729310 9757478 variant2 L1PA3,L1P1,ALR/Alpha,ALR/Alpha, + chr21 9795588 9796685 variant3 (GAATG)n,(GAATG)n,(GAATG)n,(GAATG)n,(GAATG)n,(GAATG)n, + + + +========================================================================== +5.22.8 Computing frequencies: freqasc and freqdesc. +========================================================================== +Now for something different. What if we wanted all of the names of the repeats listed on the same line +as the variants? Use the collapse option. This "denormalizes" things. Now you have a list of all the +repeats on a single line. +:: + cat variantsToRepeats.bed | groupBy -g 1 -c 8 -o freqdesc + chr21 (GAATG)n:6,ALR/Alpha:5,L1PA3:2,L1P1:1, + + cat variantsToRepeats.bed | groupBy -g 1 -c 8 -o freqasc + chr21 L1P1:1,L1PA3:2,ALR/Alpha:5,(GAATG)n:6, \ No newline at end of file diff --git a/docs/content/installation.rst b/docs/content/installation.rst new file mode 100755 index 00000000..675cb33d --- /dev/null +++ b/docs/content/installation.rst @@ -0,0 +1,25 @@ +############ +Installation +############ + +BEDTools is intended to run in a "command line" environment on UNIX, LINUX and Apple OS X +operating systems. Installing BEDTools involves downloading the latest source code archive followed by +compiling the source code into binaries on your local system. The following commands will install +BEDTools in a local directory on a NIX or OS X machine. Note that the **"<version>"** refers to the +latest posted version number on http://bedtools.googlecode.com/. + +Note: *The BEDTools "makefiles" use the GCC compiler. One should edit the Makefiles accordingly if +one wants to use a different compiler.*:: + + curl http://bedtools.googlecode.com/files/BEDTools.<version>.tar.gz > BEDTools.tar.gz + tar -zxvf BEDTools.tar.gz + cd BEDTools-<version> + make clean + make all + ls bin + +At this point, one should copy the binaries in BEDTools/bin/ to either usr/local/bin/ or some +other repository for commonly used UNIX tools in your environment. You will typically require +administrator (e.g. "root" or "sudo") privileges to copy to usr/local/bin/. If in doubt, contact you +system administrator for help. + diff --git a/docs/content/intersectBed.rst b/docs/content/intersectBed.rst new file mode 100755 index 00000000..8c048566 --- /dev/null +++ b/docs/content/intersectBed.rst @@ -0,0 +1,371 @@ +################ +5.1 intersectBed +################ + +By far, the most common question asked of two sets of genomic features is whether or not any of the +features in the two sets "overlap" with one another. This is known as feature intersection. **intersectBed** +allows one to screen for overlaps between two sets of genomic features. Moreover, it allows one to have +fine control as to how the intersections are reported. **intersectBed** works with both BED/GFF/VCF +and BAM files as input. + +=============================== +5.1.1 Usage and option summary +=============================== +**Usage**: +:: + + intersectBed [OPTIONS] [-a <BED/GFF/VCF> || -abam <BAM>] -b <BED/GFF/VCF> + + + +=========================== ========================================================================================================================================================= +Option Description +=========================== ========================================================================================================================================================= +**-a** BED/GFF/VCF file A. Each feature in A is compared to B in search of overlaps. Use "stdin" if passing A with a UNIX pipe. +**-b** BED/GFF/VCF file B. Use "stdin" if passing B with a UNIX pipe. +**-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> | intersectBed -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: intersectBed -abam reads.bam -b genes.bed -bed +**-wa** Write the original entry in A for each overlap. +**-wb** Write the original entry in B for each overlap. Useful for knowing what A overlaps. Restricted by -f and -r. +**-wo** Write the original A and B entries plus the number of base pairs of overlap between the two features. Only A features with overlap are reported. Restricted by -f and -r. +**-wao** Write the original A and B entries plus the number of base pairs of overlap between the two features. However, A features w/o overlap are also reported with a NULL B feature and overlap = 0. Restricted by -f and -r. +**-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. Restricted by -f and -r. +**-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. Restricted by -f and -r. +**-v** Only report those entries in A that have no overlap in B. Restricted by -f and -r. +**-f** Minimum overlap required as a fraction of A. Default is 1E-9 (i.e. 1bp). +**-r** Require that the fraction of overlap be reciprocal for A and B. In other words, if -f is 0.90 and -r is used, this requires that B overlap at least 90% of A and that A also overlaps at least 90% of B. +**-s** Force "strandedness". That is, only report hits in B that overlap A on the same strand. By default, overlaps are reported without respect to strand. +**-split** Treat "split" BAM (i.e., having an "N" CIGAR operation) or BED12 entries as distinct BED intervals. +=========================== ========================================================================================================================================================= + + +=============================== +5.1.2 Default behavior +=============================== +By default, if an overlap is found, **intersectBed** reports the shared interval between the two +overlapping features. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BED/BAM A ******************* ************* + + BED File B ^^^^^^^^ + + Result ======== + +For example: +:: + cat A.bed + chr1 100 200 + chr1 1000 2000 + + cat B.bed + chr1 150 250 + + intersectBed -a A.bed -b B.bed + chr1 150 200 + + +============================================= +5.1.3 (-wa)Reporting the original A feature +============================================= +Instead, one can force **intersectBed** to report the *original* **"A"** feature when an overlap is found. As +shown below, the entire "A" feature is reported, not just the portion that overlaps with the "B" feature. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BED/BAM A ******************* ************* + + BED File B ^^^^^^^^ + + Result =================== + +For example (compare with example from default behavior): +:: + cat A.bed + chr1 100 200 + chr1 1000 2000 + + cat B.bed + chr1 150 250 + + intersectBed -a A.bed -b B.bed -wa + chr1 100 200 + +============================================= +5.1.4 (-wb)Reporting the original B feature +============================================= +Similarly, one can force **intersectBed** to report the *original* **"B"** feature when an overlap is found. If +just -wb is used, the overlapping portion of A will be reported followed by the *original* **"B"**. If both -wa +and -wb are used, the *originals* of both **"A"** and **"B"** will be reported. + +For example (-wb alone): +:: + cat A.bed + chr1 100 200 + chr1 1000 2000 + + cat B.bed + chr1 150 250 + + intersectBed -a A.bed -b B.bed -wb + chr1 150 200 chr1 150 250 + +Now -wa and -wb: +:: + cat A.bed + chr1 100 200 + chr1 1000 2000 + + cat B.bed + chr1 150 250 + + intersectBed -a A.bed -b B.bed -wa -wb + chr1 100 200 chr1 150 250 + +======================================================================= +5.1.5 (-u)Reporting the presence of *at least one* overlapping feature +======================================================================= +Frequently a feature in "A" will overlap with multiple features in "B". By default, **intersectBed** will +report each overlap as a separate output line. However, one may want to simply know that there is at +least one overlap (or none). When one uses the -u option, "A" features that overlap with one or more +"B" features are reported once. Those that overlap with no "B" features are not reported at all. + + +For example: +:: + cat A.bed + chr1 100 200 + chr1 1000 2000 + + cat B.bed + chr1 101 201 + chr1 120 220 + + intersectBed -a A.bed -b B.bed -u + chr1 100 200 + +======================================================================= +5.1.6 (-c)Reporting the number of overlapping features +======================================================================= +The -c option reports a column after each "A" feature indicating the *number* (0 or more) of overlapping +features found in "B". Therefore, *each feature in A is reported once*. + +For example: +:: + cat A.bed + chr1 100 200 + chr1 1000 2000 + + cat B.bed + chr1 101 201 + chr1 120 220 + + intersectBed -a A.bed -b B.bed -c + chr1 100 200 2 + chr1 1000 2000 0 + + +======================================================================= +5.1.6 (-c)Reporting the number of overlapping features +======================================================================= +The -c option reports a column after each "A" feature indicating the *number* (0 or more) of overlapping +features found in "B". Therefore, *each feature in A is reported once*. + +For example: +:: + cat A.bed + chr1 100 200 + chr1 1000 2000 + + cat B.bed + chr1 101 201 + chr1 120 220 + + intersectBed -a A.bed -b B.bed -c + chr1 100 200 2 + chr1 1000 2000 0 + + +======================================================================= +5.1.7 (-v)Reporting the absence of any overlapping features +======================================================================= +There will likely be cases where you'd like to know which "A" features do not overlap with any of the +"B" features. Perhaps you'd like to know which SNPs don't overlap with any gene annotations. The -v +(an homage to "grep -v") option will only report those "A" features that have no overlaps in "B". + +For example: +:: + cat A.bed + chr1 100 200 + chr1 1000 2000 + + cat B.bed + chr1 101 201 + chr1 120 220 + + intersectBed -a A.bed -b B.bed -v + chr1 1000 2000 + + +======================================================================= +5.1.8 (-f)Requiring a minimal overlap fraction +======================================================================= +By default, **intersectBed** will report an overlap between A and B so long as there is at least one base +pair is overlapping. Yet sometimes you may want to restrict reported overlaps between A and B to cases +where the feature in B overlaps at least X% (e.g. 50%) of the A feature. The -f option does exactly +this. + +For example (note that the second B entry is not reported): +:: + cat A.bed + chr1 100 200 + + cat B.bed + chr1 130 201 + chr1 180 220 + + intersectBed -a A.bed -b B.bed -f 0.50 -wa -wb + chr1 100 200 chr1 130 201 + +========================================================================== +5.1.9 (-r, combined with -f)Requiring reciprocal minimal overlap fraction +========================================================================== +Similarly, you may want to require that a minimal fraction of both the A and the B features is +overlapped. For example, if feature A is 1kb and feature B is 1Mb, you might not want to report the +overlap as feature A can overlap at most 1% of feature B. If one set -f to say, 0.02, and one also +enable the -r (reciprocal overlap fraction required), this overlap would not be reported. + +For example (note that the second B entry is not reported): +:: + cat A.bed + chr1 100 200 + + cat B.bed + chr1 130 201 + chr1 130 200000 + + intersectBed -a A.bed -b B.bed -f 0.50 -r -wa -wb + chr1 100 200 chr1 130 201 + +========================================================================== +5.1.10 (-s)Enforcing "strandedness" +========================================================================== +By default, **intersectBed** will report overlaps between features even if the features are on opposite +strands. However, if strand information is present in both BED files and the "-s" option is used, overlaps +will only be reported when features are on the same strand. + +For example (note that the second B entry is not reported): +:: + cat A.bed + chr1 100 200 a1 100 + + + cat B.bed + chr1 130 201 b1 100 - + chr1 130 201 b2 100 + + + intersectBed -a A.bed -b B.bed -wa -wb -s + chr1 100 200 a1 100 + chr1 130 201 b2 100 + + + +========================================================================== +5.1.11 (-abam)Default behavior when using BAM input +========================================================================== +When comparing alignments in BAM format (**-abam**) to features in BED format (**-b**), **intersectBed** +will, **by default**, write the output in BAM format. That is, each alignment in the BAM file that meets +the user's criteria will be written (to standard output) in BAM format. This serves as a mechanism to +create subsets of BAM alignments are of biological interest, etc. Note that only the mate in the BAM +alignment is compared to the BED file. Thus, if only one end of a paired-end sequence overlaps with a +feature in B, then that end will be written to the BAM output. By contrast, the other mate for the +pair will not be written. One should use **pairToBed(Section 5.2)** if one wants each BAM alignment +for a pair to be written to BAM output. + +For example: +:: + intersectBed -abam reads.unsorted.bam -b simreps.bed | samtools view - | head -3 + + BERTHA_0001:3:1:15:1362#0 99 chr4 9236904 0 50M = 9242033 5 1 7 9 + AGACGTTAACTTTACACACCTCTGCCAAGGTCCTCATCCTTGTATTGAAG W c T U ] b \ g c e g X g f c b f c c b d d g g V Y P W W _ + \c`dcdabdfW^a^gggfgd XT:A:R NM:i:0 SM:i:0 AM:i:0 X0:i:19 X1:i:2 XM:i:0 XO:i:0 XG:i:0 MD:Z:50 + BERTHA _0001:3:1:16:994#0 83 chr6 114221672 37 25S6M1I11M7S = + 114216196 -5493 G A A A G G C C A G A G T A T A G A A T A A A C A C A A C A A T G T C C A A G G T A C A C T G T T A + gffeaaddddggggggedgcgeggdegggggffcgggggggegdfggfgf XT:A:M NM:i:3 SM:i:37 AM:i:37 XM:i:2 X O : i : + 1 XG:i:1 MD:Z:6A6T3 + BERTHA _0001:3:1:16:594#0 147 chr8 43835330 0 50M = + 43830893 -4487 CTTTGGGAGGGCTTTGTAGCCTATCTGGAAAAAGGAAATATCTTCCCATG U + \e^bgeTdg_Kgcg`ggeggg_gggggggggddgdggVg\gWdfgfgff XT:A:R NM:i:2 SM:i:0 AM:i:0 X0:i:10 X1:i:7 X M : i : + 2 XO:i:0 XG:i:0 MD:Z:1A2T45 + + +========================================================================== +5.1.12 (-bed)Output BED format when using BAM input +========================================================================== +When comparing alignments in BAM format (**-abam**) to features in BED format (**-b**), **intersectBed** +will **optionally** write the output in BED format. That is, each alignment in the BAM file is converted +to a 6 column BED feature and if overlaps are found (or not) based on the user's criteria, the BAM +alignment will be reported in BED format. The BED "name" field is comprised of the RNAME field in +the BAM alignment. If mate information is available, the mate (e.g., "/1" or "/2") field will be +appended to the name. The "score" field is the mapping quality score from the BAM alignment. + +For example: +:: + intersectBed -abam reads.unsorted.bam -b simreps.bed -bed | head -20 + + chr4 9236903 9236953 BERTHA_0001:3:1:15:1362#0/1 0 + + chr6 114221671 114221721 BERTHA_0001:3:1:16:994#0/1 37 - + chr8 43835329 43835379 BERTHA_0001:3:1:16:594#0/2 0 - + chr4 49110668 49110718 BERTHA_0001:3:1:31:487#0/1 23 + + chr19 27732052 27732102 BERTHA_0001:3:1:32:890#0/2 46 + + chr19 27732012 27732062 BERTHA_0001:3:1:45:1135#0/1 37 + + chr10 117494252 117494302 BERTHA_0001:3:1:68:627#0/1 37 - + chr19 27731966 27732016 BERTHA_0001:3:1:83:931#0/2 9 + + chr8 48660075 48660125 BERTHA_0001:3:1:86:608#0/2 37 - + chr9 34986400 34986450 BERTHA_0001:3:1:113:183#0/2 37 - + chr10 42372771 42372821 BERTHA_0001:3:1:128:1932#0/1 3 - + chr19 27731954 27732004 BERTHA_0001:3:1:130:1402#0/2 0 + + chr10 42357337 42357387 BERTHA_0001:3:1:137:868#0/2 9 + + chr1 159720631 159720681 BERTHA_0001:3:1:147:380#0/2 37 - + chrX 58230155 58230205 BERTHA_0001:3:1:151:656#0/2 37 - + chr5 142612746 142612796 BERTHA_0001:3:1:152:1893#0/1 37 - + chr9 71795659 71795709 BERTHA_0001:3:1:177:387#0/1 37 + + chr1 106240854 106240904 BERTHA_0001:3:1:194:928#0/1 37 - + chr4 74128456 74128506 BERTHA_0001:3:1:221:724#0/1 37 - + chr8 42606164 42606214 BERTHA_0001:3:1:244:962#0/1 37 + + +================================================================================== +5.1.13 (-split)Reporting overlaps with spliced alignments or blocked BED features +================================================================================== +As described in section 1.3.19, intersectBed will, by default, screen for overlaps against the entire span +of a spliced/split BAM alignment or blocked BED12 feature. When dealing with RNA-seq reads, for +example, one typically wants to only screen for overlaps for the portions of the reads that come from +exons (and ignore the interstitial intron sequence). The **-split** command allows for such overlaps to be +performed. + +For example, the diagram below illustrates the *default* behavior. The blue dots represent the "split/ +spliced" portion of the alignment (i.e., CIGAR "N" operation). In this case, the two exon annotations +are reported as overlapping with the "split" BAM alignment, but in addition, a third feature that +overlaps the "split" portion of the alignment is also reported. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Exons --------------- ---------- + + BED/BAM A ************.......................................**** + + BED File B ^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ + + Result =============== ======== ========== + + +In contrast, when using the **-split** option, only the exon overlaps are reported. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Exons --------------- ---------- + + BED/BAM A ************.......................................**** + + BED File B ^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ + + Result =============== ========== \ No newline at end of file diff --git a/docs/content/linksBed.rst b/docs/content/linksBed.rst new file mode 100755 index 00000000..ca32e8b2 --- /dev/null +++ b/docs/content/linksBed.rst @@ -0,0 +1,74 @@ +############### +5.16 linksBed +############### +Creates an HTML file with links to an instance of the UCSC Genome Browser for all features / +intervals in a file. This is useful for cases when one wants to manually inspect through a large set of +annotations or features. + +========================================================================== +5.16.1 Usage and option summary +========================================================================== +Usage: +:: + linksBed [OPTIONS] -i <BED/GFF/VCF> > <HTML file> + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-base** The "basename" for the UCSC browser. *Default: http://genome.ucsc.edu* +**-org** The organism (e.g. mouse, human). *Default: human* +**-db** The genome build. *Default: hg18* +=========================== =============================================================================================================================================================================================================== + + + + +========================================================================== +5.16.2 Default behavior +========================================================================== +By default, **linksBed** creates links to the public UCSC Genome Browser. + +For example: +:: + head genes.bed + chr21 9928613 10012791 uc002yip.1 0 - + chr21 9928613 10012791 uc002yiq.1 0 - + chr21 9928613 10012791 uc002yir.1 0 - + chr21 9928613 10012791 uc010gkv.1 0 - + chr21 9928613 10061300 uc002yis.1 0 - + chr21 10042683 10120796 uc002yit.1 0 - + chr21 10042683 10120808 uc002yiu.1 0 - + chr21 10079666 10120808 uc002yiv.1 0 - + chr21 10080031 10081687 uc002yiw.1 0 - + chr21 10081660 10120796 uc002yix.2 0 - + + linksBed -i genes.bed > genes.html + +When genes.html is opened in a web browser, one should see something like the following, where each +link on the page is built from the features in genes.bed: + + + + + +========================================================================== +5.16.3 Creating HTML links to a local UCSC Browser installation +========================================================================== +Optionally, **linksBed** will create links to a local copy of the UCSC Genome Browser. + +For example: +:: + head -3 genes.bed + chr21 9928613 10012791 uc002yip.1 0 - + chr21 9928613 10012791 uc002yiq.1 0 - + + linksBed -i genes.bed -base http://mirror.uni.edu > genes.html + +One can point the links to the appropriate organism and genome build as well: +:: + head -3 genes.bed + chr21 9928613 10012791 uc002yip.1 0 - + chr21 9928613 10012791 uc002yiq.1 0 - + + linksBed -i genes.bed -base http://mirror.uni.edu -org mouse -db mm9 > genes.html + diff --git a/docs/content/maskfastafromBed.rst b/docs/content/maskfastafromBed.rst new file mode 100755 index 00000000..1a8530e0 --- /dev/null +++ b/docs/content/maskfastafromBed.rst @@ -0,0 +1,70 @@ +############### +5.12 maskFastaFromBed +############### +**maskFastaFromBed** masks sequences in a FASTA file based on intervals defined in a feature file. The +headers in the input FASTA file must exactly match the chromosome column in the feature file. This +may be useful fro creating your own masked genome file based on custom annotations or for masking all +but your target regions when aligning sequence data from a targeted capture experiment. + + +========================================================================== +5.12.1 Usage and option summary +========================================================================== +Usage: +:: + maskFastaFromBed [OPTIONS] -fi <input FASTA> -bed <BED/GFF/VCF> -fo <output FASTA> + +NOTE: The input and output FASTA files must be different. + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-soft** Soft-mask (that is, convert to lower-case bases) the FASTA sequence. *By default, hard-masking (that is, conversion to Ns) is performed*. +=========================== =============================================================================================================================================================================================================== + + + + + + +========================================================================== +5.12.2 Default behavior +========================================================================== +**maskFastaFromBed** will mask a FASTA file based on the intervals in a BED file. The newly masked +FASTA file is written to the output FASTA file. + +For example: +:: + cat test.fa + >chr1 + AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + + cat test.bed + chr1 5 10 + + maskFastaFromBed -fi test.fa -bed test.bed -fo test.fa.out + + cat test.fa.out + >chr1 + AAAAANNNNNCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + + +========================================================================== +5.12.3 Soft-masking the FASTA file. +========================================================================== +Using the **-soft** option, one can optionally "soft-mask" the FASTA file. + +For example: +:: + cat test.fa + >chr1 + AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG + + cat test.bed + chr1 5 10 + + maskFastaFromBed -fi test.fa -bed test.bed -fo test.fa.out -soft + + cat test.fa.out + >chr1 + AAAAAaaaccCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG diff --git a/docs/content/mergeBed.rst b/docs/content/mergeBed.rst new file mode 100755 index 00000000..16f73cc0 --- /dev/null +++ b/docs/content/mergeBed.rst @@ -0,0 +1,120 @@ +############### +5.8 mergeBed +############### +**mergeBed** combines overlapping or "book-ended" (that is, one base pair away) features in a feature file +into a single feature which spans all of the combined features. + +========================================================================== +5.8.1 Usage and option summary +========================================================================== +Usage: +:: + mergeBed [OPTIONS] -i <BED/GFF/VCF> + +=========================== =============================================================================================================================================================================================================== +Option Description +=========================== =============================================================================================================================================================================================================== +**-s** Force strandedness. That is, only merge features that are the same strand. *By default, this is disabled*. +**-n** Report the number of BED entries that were merged. *1 is reported if no merging occurred*. +**-d** Maximum distance between features allowed for features to be merged. *Default is 0. That is, overlapping and/or book-ended features are merged*. +**-nms** Report the names of the merged features separated by semicolons. +=========================== =============================================================================================================================================================================================================== + + + + + +========================================================================== +5.8.2 Default behavior +========================================================================== +Figure: +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BED FILE ************* *************** ********************** + ******** + + Result =============================== ====================== + + + +For example: +:: + cat A.bed + chr1 100 200 + chr1 180 250 + chr1 250 500 + chr1 501 1000 + + mergeBed -i A.bed + chr1 100 500 + chr1 501 1000 + + + + + + +========================================================================== +5.8.3 (-s)Enforcing "strandedness" +========================================================================== +This option behaves the same as the -s option for intersectBed while scanning for features that should +be merged. Only features on the same strand will be merged. See the discussion in the intersectBed +section for details. + +========================================================================== +5.8.4 (-n)Reporting the number of features that were merged +========================================================================== +The -n option will report the number of features that were combined from the original file in order to +make the newly merged feature. If a feature in the original file was not merged with any other features, +a "1" is reported. + +For example: +:: + cat A.bed + chr1 100 200 + chr1 180 250 + chr1 250 500 + chr1 501 1000 + + mergeBed -i A.bed -n + chr1 100 500 3 + chr1 501 1000 1 + + +========================================================================== +5.8.5 (-d)Controlling how close two features must be in order to merge +========================================================================== +By default, only overlapping or book-ended features are combined into a new feature. However, one can +force mergeBed to combine more distant features with the -d option. For example, were one to set -d to +1000, any features that overlap or are within 1000 base pairs of one another will be combined. + +For example: +:: + cat A.bed + chr1 100 200 + chr1 501 1000 + + mergeBed -i A.bed + chr1 100 200 + chr1 501 1000 + + mergeBed -i A.bed -d 1000 + chr1 100 200 1000 + +========================================================================== +5.8.6 (-nms)Reporting the names of the features that were merged +========================================================================== +Occasionally, one might like to know that names of the features that were merged into a new feature. +The -nms option will add an extra column to the mergeBed output which lists (separated by +semicolons) the names of the merged features. + +For example: +:: + cat A.bed + chr1 100 200 A1 + chr1 150 300 A2 + chr1 250 500 A3 + + mergeBed -i A.bed -nms + chr1 100 500 A1;A2;A3 diff --git a/docs/content/overlap.rst b/docs/content/overlap.rst new file mode 100755 index 00000000..418c4c8a --- /dev/null +++ b/docs/content/overlap.rst @@ -0,0 +1,41 @@ +############### +5.19 overlap +############### +**overlap** computes the amount of overlap (in the case of positive values) or distance (in the case of +negative values) between feature coordinates occurring on the same input line and reports the result at +the end of the same line. In this way, it is a useful method for computing custom overlap scores from +the output of other BEDTools. + +========================================================================== +5.19.1 Usage and option summary +========================================================================== +Usage: +:: + overlap [OPTIONS] -i <input> -cols s1,e1,s2,e2 + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-i** Input file. Use "stdin" for pipes. +**-cols** Specify the columns (1-based) for the starts and ends of the features for which you'd like to compute the overlap/distance. The columns must be listed in the following order: *start1,end1,start2,end2* +=========================== =============================================================================================================================================================================================================== + + + +========================================================================== +5.19.2 Default behavior +========================================================================== +The default behavior is to compute the amount of overlap between the features you specify based on the +start and end coordinates. For example: +:: + windowBed -a A.bed -b B.bed -w 10 + chr1 10 20 A chr1 15 25 B + chr1 10 20 C chr1 25 35 D + +# Now let's say we want to compute the number of base pairs of overlap +# between the overlapping features from the output of windowBed. +:: + windowBed -a A.bed -b B.bed -w 10 | overlap -i stdin -cols 2,3,6,7 + chr1 10 20 A chr1 15 25 B 5 + chr1 10 20 C chr1 25 35 D -5 + diff --git a/docs/content/overview.rst b/docs/content/overview.rst new file mode 100755 index 00000000..a836365e --- /dev/null +++ b/docs/content/overview.rst @@ -0,0 +1,348 @@ +.. role:: red + +############ +Overview +############ + +========== +1.1 Background +========== + +The development of BEDTools was motivated by a need for fast, flexible tools with which to compare large sets of genomic +features. Answering fundamental research questions with existing tools was either too slow or required modifications to the +way they reported or computed their results. We were aware of the utilities on the UCSC Genome Browser and Galaxy websites, as +well as the elegant tools available as part of Jim Kent’s monolithic suite of tools (“Kent sourceâ€). However, we found that +the web-based tools were too cumbersome when working with large datasets generated by current sequencing technologies. +Similarly, we found that the Kent source command line tools often required a local installation of the UCSC Genome Browser. +These limitations, combined with the fact that we often wanted an extra option here or there that wasn’t available with +existing tools, led us to develop our own from scratch. The initial version of BEDTools was publicly released in the spring of +2009. The current version has evolved from our research experiences and those of the scientists using the suite over the last +year. The BEDTools suite enables one to answer common questions of genomic data in a fast and reliable manner. The fact that +almost all the utilities accept input from “stdin†allows one to “stream / pipe†several commands together to facilitate more +complicated analyses. Also, the tools allow fine control over how output is reported. The initial version of BEDTools +supported solely 6-column `BED <http://genome.ucsc.edu/FAQ/FAQformat#format1>`_ files. *However, we have subsequently added support for sequence alignments in* `BAM <http://samtools.sourceforge.net/>`_ +*format, as well as for features in* `GFF <http://genome.ucsc.edu/FAQ/FAQformat#format3>`_ , *“blocked†BED format, and* +`VCF <http://www.1000genomes.org/wiki/Analysis/Variant%20Call%20Format/vcf-variant-call-format-version-41>`_ *format*. +The tools are quite fast and typically finish in a matter of a few seconds, even for large datasets. This manual seeks to describe the behavior and +available functionality for each BEDTool. Usage examples are scattered throughout the text, and formal examples are +provided in the last two sections, we hope that this document will give you a sense of the flexibility of +the toolkit and the types of analyses that are possible with BEDTools. If you have further questions, please join the BEDTools +discussion group, visit the Usage Examples on the Google Code site (usage, advanced usage), or take a look at the nascent +“Usage From the Wild†page. + +=========================== +1.2 Summary of available tools. +=========================== + +BEDTools support a wide range of operations for interrogating and manipulating genomic features. The table below summarizes +the tools available in the suite. + +=========================== ========================================================================================================================================================= +Utility Description +=========================== ========================================================================================================================================================= +**intersectBed** Returns overlaps between two BED/GFF/VCF files. +**pairToBed** Returns overlaps between a paired-end BED file and a regular BED/VCF/GFF file. +**bamToBed** Converts BAM alignments to BED6, BED12, or BEDPE format. +**bedToBam** Converts BED/GFF/VCF features to BAM format. +**bed12ToBed6** Converts "blocked" BED12 features to discrete BED6 features. +**bedToIgv** Creates IGV batch scripts for taking multiple snapshots from BED/GFF/VCF features. +**coverageBed** Summarizes the depth and breadth of coverage of features in one BED versus features (e.g, windows, exons, etc.) defined in another BED/GFF/VCF file. +**multiBamCov** Counts sequence coverage for multiple position-sorted bams at specific loci defined in a BED/GFF/VCF file +**tagBam** Annotates a BAM file with custom tag fields based on overlaps with BED/GFF/VCF files +**nuclBed** Profiles the nucleotide content of intervals in a fasta file +**genomeCoverageBed** Creates either a histogram, BEDGRAPH, or a "per base" report of genome coverage. +**unionBedGraphs** Combines multiple BedGraph? files into a single file, allowing coverage/other comparisons between them. +**annotateBed** Annotates one BED/VCF/GFF file with overlaps from many others. +**groupBy** Deprecated. Now in the filo package. +**overlap** Returns the number of bases pairs of overlap b/w two features on the same line. +**pairToPair** Returns overlaps between two paired-end BED files. +**closestBed** Returns the closest feature to each entry in a BED/GFF/VCF file. +**subtractBed** Removes the portion of an interval that is overlapped by another feature. +**windowBed** Returns overlaps between two BED/VCF/GFF files based on a user-defined window. +**mergeBed** Merges overlapping features into a single feature. +**complementBed** Returns all intervals not spanned by the features in a BED/GFF/VCF file. +**fastaFromBed** Creates FASTA sequences based on intervals in a BED/GFF/VCF file. +**maskFastaFromBed** Masks a FASTA file based on BED coordinates. +**shuffleBed** Randomly permutes the locations of a BED file among a genome. +**slopBed** Adjusts each BED entry by a requested number of base pairs. +**flankBed** Creates flanking intervals for each feature in a BED/GFF/VCF file. +**sortBed** Sorts a BED file by chrom, then start position. Other ways as well. +**linksBed** Creates an HTML file of links to the UCSC or a custom browser. +=========================== ========================================================================================================================================================= + + + + + + +=========================== +1.3 Fundamental concepts. +=========================== +------------------------------------------------------ +1.3.1 What are genome features and how are they represented? +------------------------------------------------------ +Throughout this manual, we will discuss how to use BEDTools to manipulate, compare and ask questions of genome “featuresâ€. Genome features can be functional elements (e.g., genes), genetic polymorphisms (e.g. +SNPs, INDELs, or structural variants), or other annotations that have been discovered or curated by genome sequencing groups or genome browser groups. In addition, genome features can be custom annotations that +an individual lab or researcher defines (e.g., my novel gene or variant). + +The basic characteristics of a genome feature are the chromosome or scaffold on which the feature “residesâ€, the base pair on which the +feature starts (i.e. the “startâ€), the base pair on which feature ends (i.e. the “endâ€), the strand on which the feature exists (i.e. “+†or “-“), and the name of the feature if one is applicable. + +The two most widely used formats for representing genome features are the BED (Browser Extensible Data) and GFF (General Feature Format) formats. BEDTools was originally written to work exclusively with genome features +described using the BED format, but it has been recently extended to seamlessly work with BED, GFF and VCF files. + +Existing annotations for the genomes of many species can be easily downloaded in BED and GFF +format from the UCSC Genome Browser’s “Table Browser†(http://genome.ucsc.edu/cgi-bin/hgTables?command=start) or from the “Bulk Downloads†page (http://hgdownload.cse.ucsc.edu/downloads.html). In addition, the +Ensemble Genome Browser contains annotations in GFF/GTF format for many species (http://www.ensembl.org/info/data/ftp/index.html) + +------------------------------------- +1.3.2 Overlapping / intersecting features. +------------------------------------- +Two genome features (henceforth referred to as “featuresâ€) are said to overlap or intersect if they share at least one base in common. +In the figure below, Feature A intersects/overlaps Feature B, but it does not intersect/overlap Feature C. + +**TODO: place figure here** + +-------------------------------------------- +1.3.3 Comparing features in file “A†and file “Bâ€. +-------------------------------------------- +The previous section briefly introduced a fundamental naming convention used in BEDTools. Specifically, all BEDTools that compare features contained in two distinct files refer to one file as feature set “A†and the other file as feature set “Bâ€. This is mainly in the interest of brevity, but it also has its roots in set theory. +As an example, if one wanted to look for SNPs (file A) that overlap with exons (file B), one would use intersectBed in the following manner:: + + intersectBed –a snps.bed –b exons.bed + +There are two exceptions to this rule: 1) When the “A†file is in BAM format, the “-abam†option must bed used. For example:: + + intersectBed –abam alignedReads.bam –b exons.bed + +And 2) For tools where only one input feature file is needed, the “-i†option is used. For example:: + + mergeBed –i repeats.bed + +----------------------------------------------------- +1.3.4 BED starts are zero-based and BED ends are one-based. +----------------------------------------------------- +BEDTools users are sometimes confused by the way the start and end of BED features are represented. Specifically, BEDTools uses the UCSC Genome Browser’s internal database convention of making the start position 0-based and the end position 1-based: (http://genome.ucsc.edu/FAQ/FAQtracks#tracks1) +In other words, BEDTools interprets the “start†column as being 1 basepair higher than what is represented in the file. For example, the following BED feature represents a single base on chromosome 1; namely, the 1st base:: + + chr1 0 1 first_base + +Why, you might ask? The advantage of storing features this way is that when computing the length of a feature, one must simply subtract the start from the end. Were the start position 1-based, +the calculation would be (slightly) more complex (i.e. (end-start)+1). Thus, storing BED features this way reduces the computational burden. + +----------------------------------------------------- +1.3.5 GFF starts and ends are one-based. +----------------------------------------------------- +In contrast, the GFF format uses 1-based coordinates for both the start and the end positions. BEDTools is aware of this and adjusts the positions accordingly. +In other words, you don’t need to subtract 1 from the start positions of your GFF features for them to work correctly with BEDTools. + +----------------------------------------------------- +1.3.6 VCF coordinates are one-based. +----------------------------------------------------- +The VCF format uses 1-based coordinates. As in GFF, BEDTools is aware of this and adjusts the positions accordingly. +In other words, you don’t need to subtract 1 from the start positions of your VCF features for them to work correctly with BEDTools. + +----------------------------------------------------- +1.3.7 File B is loaded into memory (most of the time). +----------------------------------------------------- +Whenever a BEDTool compares two files of features, the “B†file is loaded into memory. By contrast, the “A†file is processed line by line and compared with the features from B. +Therefore to minimize memory usage, one should set the smaller of the two files as the B file. One salient example is the comparison of aligned sequence reads from a +current DNA sequencer to gene annotations. In this case, the aligned sequence file (in BED format) may have tens of millions of features (the sequence alignments), +while the gene annotation file will have tens of thousands of features. In this case, it is wise to sets the reads as file A and the genes as file B. + +----------------------------------------------------- +1.3.8 Feature files *must* be tab-delimited. +----------------------------------------------------- +This is rather self-explanatory. While it is possible to allow BED files to be space-delimited, we have decided to require tab delimiters for three reasons: + +1. By requiring one delimiter type, the processing time is minimized. +2. Tab-delimited files are more amenable to other UNIX utilities. +3. GFF files can contain spaces within attribute columns. This complicates the use of space-delimited files as spaces must therefore be treated specially depending on the context. + +------------------------------------------------------------- +1.3.9 All BEDTools allow features to be “piped†via standard input. +------------------------------------------------------------- + +In an effort to allow one to combine multiple BEDTools and other UNIX utilities into more complicated “pipelinesâ€, all BEDTools allow features +to be passed to them via standard input. Only one feature file may be passed to a BEDTool via standard input. +The convention used by all BEDTools is to set either file A or file B to “stdin†or "-". For example:: + + cat snps.bed | intersectBed –a stdin –b exons.bed + cat snps.bed | intersectBed –a - –b exons.bed + +In addition, all BEDTools that simply require one main input file (the -i file) will assume that input is +coming from standard input if the -i parameter is ignored. For example, the following are equivalent:: + + cat snps.bed | sortBed –i stdin + cat snps.bed | sortBed + +------------------------------------------------------ +1.3.10 Most BEDTools write their results to standard output. +------------------------------------------------------ +To allow one to combine multiple BEDTools and other UNIX utilities into more complicated “pipelinesâ€, +most BEDTools report their output to standard output, rather than to a named file. If one wants to write the output to a named file, one can use the UNIX “file redirection†symbol “>†to do so. +Writing to standard output (the default):: + + intersectBed –a snps.bed –b exons.bed + chr1 100100 100101 rs233454 + chr1 200100 200101 rs446788 + chr1 300100 300101 rs645678 + +Writing to a file:: + + intersectBed –a snps.bed –b exons.bed > snps.in.exons.bed + + cat snps.in.exons.bed + chr1 100100 100101 rs233454 + chr1 200100 200101 rs446788 + chr1 300100 300101 rs645678 + +------------------------ +1.3.11 What is a “genome†file? +------------------------ +Some of the BEDTools (e.g., genomeCoverageBed, complementBed, slopBed) need to know the size of +the chromosomes for the organism for which your BED files are based. When using the UCSC Genome +Browser, Ensemble, or Galaxy, you typically indicate which species / genome build you are working. +The way you do this for BEDTools is to create a “genome†file, which simply lists the names of the +chromosomes (or scaffolds, etc.) and their size (in basepairs). +Genome files must be tab-delimited and are structured as follows (this is an example for C. elegans):: + + chrI 15072421 + chrII 15279323 + ... + chrX 17718854 + chrM 13794 + +BEDTools includes predefined genome files for human and mouse in the /genomes directory included +in the BEDTools distribution. Additionally, the “chromInfo†files/tables available from the UCSC +Genome Browser website are acceptable. For example, one can download the hg19 chromInfo file here: +http://hgdownload.cse.ucsc.edu/goldenPath/hg19/database/chromInfo.txt.gz + +------------------------------------ +1.3.12 Paired-end BED files (BEDPE files). +------------------------------------ +We have defined a new file format (BEDPE) to concisely describe disjoint genome features, such as +structural variations or paired-end sequence alignments. We chose to define a new format because the +existing BED block format (i.e. BED12) does not allow inter-chromosomal feature definitions. Moreover, +the BED12 format feels rather bloated when one want to describe events with only two blocks. + +------------------------------------------ +1.3.13 Use “-h†for help with any BEDTool. +------------------------------------------ +Rather straightforward. If you use the “-h†option with any BEDTool, a full menu of example usage +and available options (when applicable) will be reported. + +-------------------------------------------------- +1.3.14 BED features must not contain negative positions. +-------------------------------------------------- +BEDTools will typically reject BED features that contain negative positions. In special cases, however, +BEDPE positions may be set to -1 to indicate that one or more ends of a BEDPE feature is unaligned. + +--------------------------------------------------- +1.3.15 The start position must be <= to the end position. +--------------------------------------------------- +BEDTools will reject BED features where the start position is greater than the end position. + +----------------------------------------- +1.3.16 Headers are allowed in GFF and BED files +----------------------------------------- +BEDTools will ignore headers at the beginning of BED and GFF files. Valid header lines begin with a +“#†symbol, the work “trackâ€, or the word “browserâ€. For example, the following examples are valid +headers for BED or GFF files:: + + track name=aligned_read description="Illumina aligned reads†+ chr5 100000 500000 read1 50 + + chr5 2380000 2386000 read2 60 - + + #This is a fascinating dataset + chr5 100000 500000 read1 50 + + chr5 2380000 2386000 read2 60 - + + browser position chr22:1-20000 + chr5 100000 500000 read1 50 + + chr5 2380000 2386000 read2 60 - + +------------------------------------------------------------- +1.3.17 GZIP support: BED, GFF, VCF, and BEDPE file can be “gzipped†+------------------------------------------------------------- +BEDTools will process gzipped BED, GFF, VCF and BEDPE files in the same manner as +uncompressed files. Gzipped files are auto-detected thanks to a helpful contribution from Gordon +Assaf. + +---------------------------------------------------------------------------- +1.3.18 Support for “split†or “spliced†BAM alignments and “blocked†BED features +---------------------------------------------------------------------------- +As of Version 2.8.0, five BEDTools (``intersectBed``, ``coverageBed``, ``genomeCoverageBed``, +``bamToBed``, and ``bed12ToBed6``) can properly handle “splitâ€/â€spliced†BAM alignments (i.e., having an +“N†CIGAR operation) and/or “blocked†BED (aka BED12) features. + +``intersectBed``, ``coverageBed``, and ``genomeCoverageBed`` will optionally handle “split†BAM and/or +“blocked†BED by using the ``-split`` option. This will cause intersects or coverage to be computed only +for the alignment or feature blocks. In contrast, without this option, the intersects/coverage would be +computed for the entire “span†of the alignment or feature, regardless of the size of the gaps between +each alignment or feature block. For example, imagine you have a RNA-seq read that originates from +the junction of two exons that were spliced together in a mRNA. In the genome, these two exons +happen to be 30Kb apart. Thus, when the read is aligned to the reference genome, one portion of the +read will align to the first exon, while another portion of the read will align ca. 30Kb downstream to the +other exon. The corresponding CIGAR string would be something like (assuming a 76bp read): +30M*3000N*46M. In the genome, this alignment “spans†3076 bp, yet the nucleotides in the sequencing +read only align “cover†76bp. Without the ``-split`` option, coverage or overlaps would be reported for the +entire 3076bp span of the alignment. However, with the ``-split`` option, coverage or overlaps will only +be reported for the portions of the read that overlap the exons (i.e. 30bp on one exon, and +46bp on the other). + + +Using the -split option with bamToBed causes “spliced/split†alignments to be reported in BED12 +format. Using the -split option with bed12ToBed6 causes “blocked†BED12 features to be reported in +BED6 format. + +-------------------------------- +1.3.19 Writing uncompressed BAM output. +-------------------------------- +When working with a large BAM file using a complex set of tools in a pipe/stream, it is advantageous +to pass uncompressed BAM output to each downstream program. This minimizes the amount of time +spent compressing and decompressing output from one program to the next. All BEDTools that create +BAM output (e.g. ``intersectBed``, ``windowBed``) will now optionally create uncompressed BAM output +using the ``-ubam`` option. + + + +===================================== +1.4 Implementation and algorithmic notes. +===================================== +BEDTools was implemented in C++ and makes extensive use of data structures and fundamental +algorithms from the Standard Template Library (STL). Many of the core algorithms are based upon the +genome binning algorithm described in the original UCSC Genome Browser paper (Kent et al, 2002). +The tools have been designed to inherit core data structures from central source files, thus allowing +rapid tool development and deployment of improvements and corrections. Support for BAM files is +made possible through Derek Barnett’s elegant C++ API called BamTools. + + + +===================================== +1.5 License and availability. +===================================== +BEDTools is freely available under a GNU Public License (Version 2) at: +http://bedtools.googlecode.com + + + +===================================== +1.6 Mailing list. +===================================== +A discussion group for reporting bugs, asking questions of the developer and of the user community, as +well as for requesting new features is available at: +http://groups.google.com/group/bedtools-discuss + + + +===================================== +1.7 Contributors. +===================================== +As open-source software, BEDTools greatly benefits from contributions made by other developers and +users of the tools. We encourage and welcome suggestions, contributions and complaints. This is how +software matures, improves and stays on top of the needs of its user community. The Google Code +(GC) site maintains a list of individuals who have contributed either source code or useful ideas for +improving the tools. In the near future, we hope to maintain a source repository on the GC site in +order to facilitate further contributions. We are currently unable to do so because we use Git for +version control, which is not yet supported by GC. \ No newline at end of file diff --git a/docs/content/pairToBed.rst b/docs/content/pairToBed.rst new file mode 100755 index 00000000..75db129a --- /dev/null +++ b/docs/content/pairToBed.rst @@ -0,0 +1,378 @@ +############### +5.2 pairToBed +############### +**pairToBed** compares each end of a BEDPE feature or a paired-end BAM alignment to a feature file in +search of overlaps. + +**NOTE: pairToBed requires that the BAM file is sorted/grouped by the read name. This +allows pairToBed to extract correct alignment coordinates for each end based on their +respective CIGAR strings. It also assumes that the alignments for a given pair come in +groups of twos. There is not yet a standard method for reporting multiple alignments +using BAM. pairToBed will fail if an aligner does not report alignments in pairs.** + +========================================================================== +5.2.1 Usage and option summary +========================================================================== +**Usage:** +:: + pairToBed [OPTIONS] [-a <BEDPE> || -abam <BAM>] -b <BED/GFF/VCF> + + +=========================== ========================================================================================================================================================= +Option Description +=========================== ========================================================================================================================================================= +**-a** BEDPE file A. Each feature in A is compared to B in search of overlaps. Use "stdin" if passing A with a UNIX pipe. Output will be in BEDPE format. +**-b** BED file B. Use "stdin" if passing B with a UNIX pipe. +**-abam** BAM file A. Each end of 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 ¨Cb <BAM> | pairToBed ¨Cabam stdin ¨Cb genes.bed | samtools view - +**-ubam** Write uncompressed BAM output. The default is write compressed BAM output. +**-bedpe** When using BAM input (-abam), write output as BEDPE. The default is to write output in BAM when using -abam. For example: pairToBed ¨Cabam reads.bam ¨Cb genes.bed ¨Cbedpe +**-ed** Use BAM total edit distance (NM tag) for BEDPE score. Default for BEDPE is to use the *minimum* of the two mapping qualities for the pair. When -ed is used the *total* edit distance from the two mates is reported as the score. +**-f** Minimum overlap required as a fraction of A. Default is 1E-9 (i.e. 1bp). +**-s** Force "strandedness". That is, only report hits in B that overlap A on the **same** strand. By default, overlaps are reported without respect to strand. +**-type** + Approach to reporting overlaps between BEDPE and BED. + + + **either-** Report overlaps if either end of A overlaps B. + + - *Default* + + **neither-** Report A if neither end of A overlaps B. + + **xor-** Report overlaps if one and only one end of A overlaps B. + + **both-** Report overlaps if both ends of A overlap B. + + **notboth-** Report overlaps if neither end or one and only one end of A overlap B. + + **ispan-** Report overlaps between [end1, start2] of A and B. + + - Note: If chrom1 <> chrom2, entry is ignored. + + **ospan-** Report overlaps between [start1, end2] of A and B. + + - Note: If chrom1 <> chrom2, entry is ignored. + + **notispan-** Report A if ispan of A doesn't overlap B. + - Note: If chrom1 <> chrom2, entry is ignored. + + **notospan-** Report A if ospan of A doesn't overlap B. + - Note: If chrom1 <> chrom2, entry is ignored. +=========================== ========================================================================================================================================================= + + + +========================================================================== +5.2.2 Default behavior +========================================================================== +By default, a BEDPE / BAM feature will be reported if *either* end overlaps a feature in the BED file. +In the example below, the left end of the pair overlaps B yet the right end does not. Thus, BEDPE/ +BAM A is reported since the default is to report A if either end overlaps B. + +Default: Report A if *either* end overlaps B. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ ^^^^^^ + + Result =====.................................===== + + +========================================================================== +5.2.3 (-type)Optional overlap requirements +========================================================================== +Using then **-type** option, **pairToBed** provides several other overlap requirements for controlling how +overlaps between BEDPE/BAM A and BED B are reported. The examples below illustrate how each +option behaves. + +**-type both**: Report A only if *both* ends overlap B. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ ^^^^^^ + + Result + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ ^^^^^^ + + Result =====.................................===== + + +**-type neither**: Report A only if *neither* end overlaps B. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ ^^^^^^ + + Result + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^ ^^^^^^ + + Result =====.................................===== + + +**-type xor**: Report A only if *one and only one* end overlaps B. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ ^^^^^^ + + Result =====.................................===== + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^ ^^^^^^ + + Result + + +**-type notboth**: Report A only if *neither end* **or** *one and only one* end overlaps B. Thus "notboth" +includes what would be reported by "neither" and by "xor". +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ ^^^^^^ + + Result =====.................................===== + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^ ^^^^^^ + + Result =====.................................===== + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^ ^^^^^^ + + Result + + +**-type ispan**: Report A if it's "*inner span*" overlaps B. Applicable only to intra-chromosomal features. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Inner span |-------------------------------| + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ + + Result =====.................................===== + + + + BEDPE/BAM A =====.................................===== + + BED File B ==== + + Result + + +**-type ospan**: Report A if it's "*outer span*" overlaps B. Applicable only to intra-chromosomal features. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Outer span |-----------------------------------------| + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^^^^^ + + Result =====.................................===== + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^ + + Result + + +**-type notispan**: Report A only if it's "*inner span*" does not overlap B. Applicable only to intrachromosomal +features. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Inner span |-------------------------------| + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ + + Result + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^ + + Result =====.................................===== + + +**-type notospan**: Report A if it's "*outer span*" overlaps B. Applicable only to intra-chromosomal +features. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Outer span |-----------------------------------------| + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^^^^^ + + Result + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^ + + Result =====.................................===== + + + +========================================================================== +5.2.4 (-f)Requiring a minimum overlap fraction +========================================================================== +By default, **pairToBed** will report an overlap between A and B so long as there is at least one base +pair is overlapping on either end. Yet sometimes you may want to restrict reported overlaps between A +and B to cases where the feature in B overlaps at least X% (e.g. 50%) of A. The **¨Cf** option does exactly +this. The **-f** option may also be combined with the -type option for additional control. For example, +combining **-f 0.50** with **-type both** requires that both ends of A have at least 50% overlap with a +feature in B. + +For example, report A only at least 50% of one of the two ends is overlapped by B. +:: + pairToBed -a A.bedpe -b B.bed -f 0.5 + + + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A *****.................................***** + + BED File B ^^ ^^^^^^ + + Result + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^ ^^^^^^ + + Result =====.................................===== + + + +========================================================================== +5.2.5 (-s)Enforcing "strandedness" +========================================================================== +By default, **pairToBed** will report overlaps between features even if the features are on opposing +strands. However, if strand information is present in both files and the **"-s"** option is used, overlaps will +only be reported when features are on the same strand. + +For example, report A only at least 50% of one of the two ends is overlapped by B. +:: + pairToBed -a A.bedpe -b B.bed -s + + + + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A >>>>>.................................<<<<< + + BED File B << >>>>> + + Result + + + + BEDPE/BAM A >>>>>.................................<<<<< + + BED File B >> >>>>> + + Result >>>>>.................................<<<<< + + +========================================================================== +5.2.6 (-abam)Default is to write BAM output when using BAM input +========================================================================== +When comparing *paired* alignments in BAM format (**-abam**) to features in BED format (**-b**), +**pairToBed** will , by default, write the output in BAM format. That is, each alignment in the BAM +file that meets the user's criteria will be written (to standard output) in BAM format. This serves as a +mechanism to create subsets of BAM alignments are of biological interest, etc. Note that both +alignments for each aligned pair will be written to the BAM output. + +For example: +:: + pairToBed ¨Cabam pairedReads.bam ¨Cb simreps.bed | samtools view - | head -4 + + JOBU_0001:3:1:4:1060#0 99 chr10 42387928 29 50M = 42393091 5 2 1 3 + AA A A A C G G A A T T A T C G A A T G G A A T C G A A G A G A A T C T T C G A A C G G A C C C G A + dcgggggfbgfgdgggggggfdfgggcggggfcggcggggggagfgbggc XT:A:R NM:i:5 SM:i:0 AM:i:0 X0:i:3 X 1 : i : + 3 XM:i:5 XO:i:0 XG:i:0 MD:Z:0T0C33A5T4T3 + JOBU_0001:3:1:4:1060#0 147 chr10 42393091 0 50M = 42387928 - 5 2 1 3 + AAATGGAATCGAATGGAATCAACATCAAATGGAATCAAATGGAATCATTG K g d c g g d e c d g + \d`ggfcgcggffcgggc^cgfgccgggfc^gcdgg\bg XT:A:R NM:i:2 SM:i:0 AM:i:0 X0:i:3 X1:i:13 XM:i:2 X O : i : + 0 XG:i:0 MD:Z:21T14G13 + JOBU_0001:3:1:8:446#0 99 chr10 42388091 9 50M = 42392738 4 6 9 7 + GAATCGACTGGAATCATCATCGGATGGAAATGAATGGAATAATCATCGAA f _ O f f ` ] I e Y f f ` f f e d d c f e f c P ` c _ W \ \ R _ ] + _BBBBBBBBBBBBBBBB XT:A:U NM:i:4 SM:i:0 AM:i:0 X0:i:1 X1:i:3 XM:i:4 XO:i:0 XG:i:0 M D : Z : + 7A22C9C2T6 + JOBU_0001:3:1:8:446#0 147 chr10 42392738 9 50M = 42388091 - 4 6 9 7 + TTATCGAATGCAATCGAATGGAATTATCGAATGCAATCGAATAGAATCAT df^ffec_JW[`MWceRec``fee`dcecfeeZae`c] + f^cNeecfccf^ XT:A:R NM:i:1 SM:i:0 AM:i:0 X0:i:2 X1:i:2 XM:i:1 XO:i:0 XG:i:0 MD:Z:38A11 + + + +========================================================================== +5.2.7 (-bedpe)Output BEDPE format when using BAM input +========================================================================== +When comparing *paired* alignments in BAM format (**-abam**) to features in BED format (**-b**), +**pairToBed** will optionally write the output in BEDPE format. That is, each alignment in the BAM +file is converted to a 10 column BEDPE feature and if overlaps are found (or not) based on the user's +criteria, the BAM alignment will be reported in BEDPE format. The BEDPE "name" field is comprised +of the RNAME field in the BAM alignment. The "score" field is the mapping quality score from the +BAM alignment. + +For example: +:: + pairToBed ¨Cabam pairedReads.bam ¨Cb simreps.bed -bedpe | head -5 + chr10 42387927 42387977 chr10 42393090 42393140 + JOBU_0001:3:1:4:1060#0 29 + - + chr10 42388090 42388140 chr10 42392737 42392787 + JOBU_0001:3:1:8:446#0 9 + - + chr10 42390552 42390602 chr10 42396045 42396095 + JOBU_0001:3:1:10:1865#0 9 + - + chrX 139153741 139153791 chrX 139159018 139159068 + JOBU_0001:3:1:14:225#0 37 + - + chr4 9236903 9236953 chr4 9242032 9242082 + JOBU_0001:3:1:15:1362#0 0 + - diff --git a/docs/content/pairToPair.rst b/docs/content/pairToPair.rst new file mode 100755 index 00000000..7be68197 --- /dev/null +++ b/docs/content/pairToPair.rst @@ -0,0 +1,103 @@ +############### +5.3 pairToPair +############### +**pairToPair** compares two BEDPE files in search of overlaps where each end of a BEDPE feature in A +overlaps with the ends of a feature in B. For example, using pairToPair, one could screen for the exact +same discordant paired-end alignment in two files. This could suggest (among other things) that the +discordant pair suggests the same structural variation in each file/sample. + + +================================ +5.3.1 Usage and option summary +================================ +**Usage:** +:: + pairToPair [OPTIONS] -a <BEDPE> -b <BEDPE> + + +=========================== ========================================================================================================================================================= +Option Description +=========================== ========================================================================================================================================================= +**-a** BEDPE file A. Each feature in A is compared to B in search of overlaps. Use "stdin" if passing A with a UNIX pipe. +**-b** BEDPE file B. Use "stdin" if passing B with a UNIX pipe. +**-f** Minimum overlap required as a fraction of A. Default is 1E-9 (i.e. 1bp). +**-is** Force "strandedness". That is, only report hits in B that overlap A on the same strand. By default, overlaps are reported without respect to strand. +**-type** Approach to reporting overlaps between BEDPE and BED. + | **either** Report overlaps if either ends of A overlap B. + + + | **neither** Report A if neither end of A overlaps B. + + + | **both** Report overlaps if both ends of A overlap B. -*Default behavior.* +=========================== ========================================================================================================================================================= + + + + + +================================ +5.3.2 Default behavior +================================ +By default, a BEDPE feature from A will be reported if *both* ends overlap a feature in the BEDPE B +file. If strand information is present for the two BEDPE files, it will be further required that the +overlaps on each end be on the same strand. This way, an otherwise overlapping (in terms of genomic +locations) F/R alignment will not be matched with a R/R alignment. + +Default: Report A if *both* ends overlaps B. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^ ^^^^^^ + + Result =====.................................===== + + +Default when strand information is present in both BEDPE files: Report A if *both* ends overlaps B *on +the same strands*. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE A >>>>>.................................>>>>> + + BEDPE B <<<<<.............................>>>>> + + Result + + + + BEDPE A >>>>>.................................>>>>> + + BEDPE B >>>>>.............................>>>>> + + Result >>>>>.................................>>>>> + + + +================================================== +5.3.3 (-type neither)Optional overlap requirements +================================================== +Using then **-type neither, pairToPair** will only report A if *neither* end overlaps with a BEDPE +feature in B. + +**-type neither**: Report A only if *neither* end overlaps B. +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^^^^^......................................^^^^^^ + + Result + + + + BEDPE/BAM A *****.................................***** + + BED File B ^^^^................................................^^^^^^ + + Result =====.................................===== + + \ No newline at end of file diff --git a/docs/content/quick-start.rst b/docs/content/quick-start.rst new file mode 100755 index 00000000..64f2df32 --- /dev/null +++ b/docs/content/quick-start.rst @@ -0,0 +1,60 @@ +########### +Quick start +########### + +================ +Install BEDTools +================ +:: + + curl http://bedtools.googlecode.com/files/BEDTools.<version>.tar.gz > BEDTools.tar.gz + tar -zxvf BEDTools.tar.gz + cd BEDTools + make clean + make all + sudo cp bin/* /usr/local/bin/ + +=============== +Use BEDTools +=============== +Below are examples of typical BEDTools usage. **Additional usage examples are described in +section 6 of this manual.** Using the "-h" option with any BEDTools will report a list of all command +line options. + +A. Report the base-pair overlap between the features in two BED files. +:: + + intersectBed -a reads.bed -b genes.bed + +B. Report those entries in A that overlap NO entries in B. Like "grep -v" +:: + + intersectBed -a reads.bed -b genes.bed ¨Cv + +C. Read BED A from stdin. Useful for stringing together commands. For example, find genes that overlap LINEs +but not SINEs. +:: + + intersectBed -a genes.bed -b LINES.bed | intersectBed -a stdin -b SINEs.bed ¨Cv + +D. Find the closest ALU to each gene. +:: + + closestBed -a genes.bed -b ALUs.bed + +E. Merge overlapping repetitive elements into a single entry, returning the number of entries merged. +:: + + mergeBed -i repeatMasker.bed -n + +F. Merge nearby repetitive elements into a single entry, so long as they are within 1000 bp of one another. +:: + + mergeBed -i repeatMasker.bed -d 1000 + + + + + + + \ No newline at end of file diff --git a/docs/content/shuffleBed.rst b/docs/content/shuffleBed.rst new file mode 100755 index 00000000..d840277e --- /dev/null +++ b/docs/content/shuffleBed.rst @@ -0,0 +1,155 @@ +############### +5.13 shuffleBed +############### +**shuffleBed** will randomly permute the genomic locations of a fearure file among a genome defined in a +genome file. One can also provide an "exclusions" BED/GFF/VCF file that lists regions where you do +not want the permuted features to be placed. For example, one might want to prevent features from +being placed in known genome gaps. **shuffleBed** is useful as a *null* basis against which to test the +significance of associations of one feature with another. + + + +========================================================================== +5.13.1 Usage and option summary +========================================================================== +Usage: +:: + shuffleBed [OPTIONS] -i <BED/GFF/VCF> -g <GENOME> + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-excl** A BED file of coordinates in which features from -i should *not* be placed (e.g., genome gaps). +**-chrom** Keep features in -i on the same chromosome. Solely permute their location on the chromosome. *By default, both the chromosome and position are randomly chosen*. +**-seed** Supply an integer seed for the shuffling. This will allow feature shuffling experiments to be recreated exactly as the seed for the pseudo-random number generation will be constant. *By default, the seed is chosen automatically*. +=========================== =============================================================================================================================================================================================================== + + + + +========================================================================== +5.13.2 Default behavior +========================================================================== +By default, **shuffleBed** will reposition each feature in the input BED file on a random chromosome at a +random position. The size and strand of each feature are preserved. + +For example: +:: + cat A.bed + chr1 0 100 a1 1 + + chr1 0 1000 a2 2 - + + cat my.genome + chr1 10000 + chr2 8000 + chr3 5000 + chr4 2000 + + shuffleBed -i A.bed -g my.genome + chr4 1498 1598 a1 1 + + chr3 2156 3156 a2 2 - + + + + + +========================================================================== +5.13.3 (-chrom)Requiring that features be shuffled on the same chromosome +========================================================================== +The "**-chrom**" option behaves the same as the default behavior except that features are randomly +placed on the same chromosome as defined in the BED file. + +For example: +:: + cat A.bed + chr1 0 100 a1 1 + + chr1 0 1000 a2 2 - + + cat my.genome + chr1 10000 + chr2 8000 + chr3 5000 + chr4 2000 + + shuffleBed -i A.bed -g my.genome -chrom + chr1 9560 9660 a1 1 + + chr1 7258 8258 a2 2 - + + + + +========================================================================== +5.13.4 Excluding certain genome regions from shuffleBed +========================================================================== +One may want to prevent BED features from being placed in certain regions of the genome. For +example, one may want to exclude genome gaps from permutation experiment. The "**-excl**" option +defines a BED file of regions that should be excluded. **shuffleBed** will attempt to permute the +locations of all features while adhering to the exclusion rules. However it will stop looking for an +appropriate location if it cannot find a valid spot for a feature after 1,000,000 tries. + +For example (*note that the exclude file excludes all but 100 base pairs of the chromosome*): +:: + cat A.bed + chr1 0 100 a1 1 + + chr1 0 1000 a2 2 - + + cat my.genome + chr1 10000 + + cat exclude.bed + chr1 100 10000 + + shuffleBed -i A.bed -g my.genome -excl exclude.bed + chr1 0 100 a1 1 + + Error, line 2: tried 1000000 potential loci for entry, but could not avoid excluded + regions. Ignoring entry and moving on. + + +For example (*now the exclusion file only excludes the first 100 bases of the chromosome*): +:: + cat A.bed + chr1 0 100 a1 1 + + chr1 0 1000 a2 2 - + + cat my.genome + chr1 10000 + + cat exclude.bed + chr1 0 100 + + shuffleBed -i A.bed -g my.genome -excl exclude.bed + chr1 147 247 a1 1 + + chr1 2441 3441 a2 2 - + + +========================================================================== +5.13.5 Defining a "seed" for the random replacement. +========================================================================== +**shuffleBed** uses a pseudo-random number generator to permute the locations of BED features. +Therefore, each run should produce a different result. This can be problematic if one wants to exactly +recreate an experiment. By using the "**-seed**" option, one can supply a custom integer seed for +**shuffleBed**. In turn, each execution of **shuffleBed** with the same seed and input files should produce +identical results. + +For example (*note that the exclude file below excludes all but 100 base pairs of the chromosome*): +:: + cat A.bed + chr1 0 100 a1 1 + + chr1 0 1000 a2 2 - + + cat my.genome + chr1 10000 + + shuffleBed -i A.bed -g my.genome -seed 927442958 + chr1 6177 6277 a1 1 + + chr1 8119 9119 a2 2 - + + shuffleBed -i A.bed -g my.genome -seed 927442958 + chr1 6177 6277 a1 1 + + chr1 8119 9119 a2 2 - + + . . . + + shuffleBed -i A.bed -g my.genome -seed 927442958 + chr1 6177 6277 a1 1 + + chr1 8119 9119 a2 2 - diff --git a/docs/content/slopBed.rst b/docs/content/slopBed.rst new file mode 100755 index 00000000..0646afca --- /dev/null +++ b/docs/content/slopBed.rst @@ -0,0 +1,84 @@ +############### +5.14 slopBed +############### +**slopBed** will increase the size of each feature in a feature file be a user-defined number of bases. While +something like this could be done with an "**awk '{OFS="\t" print $1,$2-<slop>,$3+<slop>}'**", +**slopBed** will restrict the resizing to the size of the chromosome (i.e. no start < 0 and no end > +chromosome size). + + +========================================================================== +5.14.1 Usage and option summary +========================================================================== +Usage: +:: + slopBed [OPTIONS] -i <BED/GFF/VCF> -g <GENOME> [-b or (-l and -r)] + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-b** Increase the BED/GFF/VCF entry by the same number base pairs in each direction. *Integer*. +**-l** The number of base pairs to subtract from the start coordinate. *Integer*. +**-r** The number of base pairs to add to the end coordinate. *Integer*. +**-s** Define -l and -r based on strand. For example. if used, -l 500 for a negative-stranded feature, it will add 500 bp to the *end* coordinate. +=========================== =============================================================================================================================================================================================================== + + + +========================================================================== +5.14.2 Default behavior +========================================================================== +By default, **slopBed** will either add a fixed number of bases in each direction (**-b**) or an asymmetric +number of bases in each direction (**-l** and **-r**). + +For example: +:: + cat A.bed + chr1 5 100 + chr1 800 980 + + cat my.genome + chr1 1000 + + slopBed -i A.bed -g my.genome -b 5 + chr1 0 105 + chr1 795 985 + + slopBed -i A.bed -g my.genome -l 2 -r 3 + chr1 3 103 + chr1 798 983 + + +However, if the requested number of bases exceeds the boundaries of the chromosome, **slopBed** will +"clip" the feature accordingly. +:: + cat A.bed + chr1 5 100 + chr1 800 980 + + cat my.genome + chr1 1000 + + slopBed -i A.bed -g my.genome -b 5000 + chr1 0 1000 + chr1 0 1000 + + + +========================================================================== +5.14.3 Resizing features according to strand +========================================================================== +**slopBed** will optionally increase the size of a feature based on strand. + +For example: +:: + cat A.bed + chr1 100 200 a1 1 + + chr1 100 200 a2 2 - + + cat my.genome + chr1 1000 + + slopBed -i A.bed -g my.genome -l 50 -r 80 -s + chr1 50 280 a1 1 + + chr1 20 250 a2 2 - diff --git a/docs/content/sortBed.rst b/docs/content/sortBed.rst new file mode 100755 index 00000000..7ea16667 --- /dev/null +++ b/docs/content/sortBed.rst @@ -0,0 +1,77 @@ +############### +5.15 sortBed +############### +**sortBed** sorts a feature file by chromosome and other criteria. + +========================================================================== +5.15.1 Usage and option summary +========================================================================== +Usage: +:: + sortBed [OPTIONS] -i <BED/GFF/VCF> + +=========================== =============================================================================================================================================================================================================== + Option Description +=========================== =============================================================================================================================================================================================================== +**-sizeA** Sort by feature size in ascending order. +**-sizeD** Sort by feature size in descending order. +**-chrThenSizeA** Sort by chromosome, then by feature size (asc). +**-chrThenSizeD** Sort by chromosome, then by feature size (desc). +**-chrThenScoreA** Sort by chromosome, then by score (asc). +**-chrThenScoreD** Sort by chromosome, then by score (desc). +=========================== =============================================================================================================================================================================================================== + + + +========================================================================== +5.15.2 Default behavior +========================================================================== +By default, **sortBed** sorts a BED file by chromosome and then by start position in ascending order. + +For example: +:: + cat A.bed + chr1 800 1000 + chr1 80 180 + chr1 1 10 + chr1 750 10000 + + sortBed -i A.bed + chr1 1 10 + chr1 80 180 + chr1 750 10000 + chr1 800 1000 + + + + +========================================================================== +5.15.3 Optional sorting behavior +========================================================================== +**sortBed** will also sorts a BED file by chromosome and then by other criteria. + +For example, to sort by chromosome and then by feature size (in descending order): +:: + cat A.bed + chr1 800 1000 + chr1 80 180 + chr1 1 10 + chr1 750 10000 + + sortBed -i A.bed -sizeD + chr1 750 10000 + chr1 800 1000 + chr1 80 180 + chr1 1 10 + + +**Disclaimer:** it should be noted that **sortBed** is merely a convenience utility, as the UNIX sort utility +will sort BED files more quickly while using less memory. For example, UNIX sort will sort a BED file +by chromosome then by start position in the following manner: +:: + sort -k 1,1 -k2,2 -n a.bed + chr1 1 10 + chr1 80 180 + chr1 750 10000 + chr1 800 1000 + diff --git a/docs/content/subtractBed.rst b/docs/content/subtractBed.rst new file mode 100755 index 00000000..81dfb0e7 --- /dev/null +++ b/docs/content/subtractBed.rst @@ -0,0 +1,88 @@ +############### +5.7 subtractBed +############### +**subtractBed** searches for features in B that overlap A. If an overlapping feature is found in B, the +overlapping portion is removed from A and the remaining portion of A is reported. If a feature in B +overlaps all of a feature in A, the A feature will not be reported. + + +========================================================================== +5.7.1 Usage and option summary +========================================================================== +Usage: +:: + subtractBed [OPTIONS] -a <BED/GFF/VCF> -b <BED/GFF/VCF> + +=========================== =============================================================================================================================================================================================================== +Option Description +=========================== =============================================================================================================================================================================================================== +**-f** Minimum overlap required as a fraction of A. Default is 1E-9 (i.e. 1bp). +**-s** Force strandedness. That is, find the closest feature in B overlaps A on the same strand. *By default, this is disabled*. +=========================== =============================================================================================================================================================================================================== + + + +========================================================================== +5.7.2 Default behavior +========================================================================== +Figure: +:: + Chromosome ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + BED FILE A ************* ****** + + BED File B ^^^^^^^^ ^^^^^^^^^^^ + + Result ========= + +For example: +:: + cat A.bed + chr1 100 200 + chr1 10 20 + + cat B.bed + chr1 0 30 + chr1 180 300 + + subtractBed -a A.bed -b B.bed + chr1 100 180 + + + + + + +========================================================================== +5.7.3 (-f)Requiring a minimal overlap fraction before subtracting +========================================================================== +This option behaves the same as the -f option for intersectBed. In this case, subtractBed will only +subtract an overlap with B if it covers at least the fraction of A defined by -f. If an overlap is found, +but it does not meet the overlap fraction, the original A feature is reported without subtraction. + +For example: +:: + cat A.bed + chr1 100 200 + + cat B.bed + chr1 180 300 + + subtractBed -a A.bed -b B.bed -f 0.10 + chr1 100 180 + + subtractBed -a A.bed -b B.bed -f 0.80 + chr1 100 200 + + + + +========================================================================== +5.7.4 (-s)Enforcing "strandedness" +========================================================================== +This option behaves the same as the -s option for intersectBed while scanning for features in B that +should be subtracted from A. See the discussion in the intersectBed section for details. + + + + diff --git a/docs/content/unionBedGraphs.rst b/docs/content/unionBedGraphs.rst new file mode 100755 index 00000000..b1e34a18 --- /dev/null +++ b/docs/content/unionBedGraphs.rst @@ -0,0 +1,163 @@ +############### +5.23 unionBedGraphs +############### +**unionBedGraphs** combines multiple BEDGRAPH files into a single file such that one can directly +compare coverage (and other text-values such as genotypes) across multiple sample + + +========================================================================== +5.23.1 Usage and option summary +========================================================================== +Usage: +:: + unionBedGraphs [OPTIONS] -i FILE1 FILE2 FILE3 ... FILEn + +=========================== =============================================================================================================================================================================================================== + Option Description + +=========================== =============================================================================================================================================================================================================== +**-header** Print a header line, consisting of chrom, start, end followed by the names of each input BEDGRAPH file. +**-names** A list of names (one per file) to describe each file in -i. These names will be printed in the header line. +**-empty** Report empty regions (i.e., start/end intervals w/o values in all files). *Requires the '-g FILE' parameter (see below)*. +**-g** The genome file to be used to calculate empty regions. +**-filler TEXT** Use TEXT when representing intervals having no value. Default is '0', but you can use 'N/A' or any other text. +**-examples** Show detailed usage examples. +=========================== =============================================================================================================================================================================================================== + + + + +========================================================================== +5.23.2 Default behavior +========================================================================== +Figure: +:: + cat 1.bg + chr1 1000 1500 10 + chr1 2000 2100 20 + + cat 2.bg + chr1 900 1600 60 + chr1 1700 2050 50 + + cat 3.bg + chr1 1980 2070 80 + chr1 2090 2100 20 + + cat sizes.txt + chr1 5000 + + unionBedGraphs -i 1.bg 2.bg 3.bg + chr1 900 1000 0 60 0 + chr1 1000 1500 10 60 0 + chr1 1500 1600 0 60 0 + chr1 1700 1980 0 50 0 + chr1 1980 2000 0 50 80 + chr1 2000 2050 20 50 80 + chr1 2050 2070 20 0 80 + chr1 2070 2090 20 0 0 + chr1 2090 2100 20 0 20 + +========================================================================== +5.23.3 Add a header line to the output +========================================================================== +Figure: +:: + unionBedGraphs -i 1.bg 2.bg 3.bg -header + chrom start end 1 2 3 + chr1 900 1000 0 60 0 + chr1 1000 1500 10 60 0 + chr1 1500 1600 0 60 0 + chr1 1700 1980 0 50 0 + chr1 1980 2000 0 50 80 + chr1 2000 2050 20 50 80 + chr1 2050 2070 20 0 80 + chr1 2070 2090 20 0 0 + chr1 2090 2100 20 0 20 + + +========================================================================== +5.23.4 Add a header line with custom file names to the output +========================================================================== +Figure: +:: + unionBedGraphs -i 1.bg 2.bg 3.bg -header -names WT-1 WT-2 KO-1 + chrom start end WT-1 WT-2 KO-1 + chr1 900 1000 0 60 0 + chr1 1000 1500 10 60 0 + chr1 1500 1600 0 60 0 + chr1 1700 1980 0 50 0 + chr1 1980 2000 0 50 80 + chr1 2000 2050 20 50 80 + chr1 2050 2070 20 0 80 + chr1 2070 2090 20 0 0 + chr1 2090 2100 20 0 20 + + + + +========================================================================== +5.23.5 Include regions that have zero coverage in all BEDGRAPH files. +========================================================================== +Figure: +:: + unionBedGraphs -i 1.bg 2.bg 3.bg -empty -g sizes.txt -header + chrom start end WT-1 WT-2 KO-1 + chrom start end 1 2 3 + chr1 0 900 0 0 0 + chr1 900 1000 0 60 0 + chr1 1000 1500 10 60 0 + chr1 1500 1600 0 60 0 + chr1 1600 1700 0 0 0 + chr1 1700 1980 0 50 0 + chr1 1980 2000 0 50 80 + chr1 2000 2050 20 50 80 + chr1 2050 2070 20 0 80 + chr1 2070 2090 20 0 0 + chr1 2090 2100 20 0 20 + chr1 2100 5000 0 0 0 + + +========================================================================== +5.23.6 Use a custom value for missing values. +========================================================================== +Figure: +:: + unionBedGraphs -i 1.bg 2.bg 3.bg -empty -g sizes.txt -header -filler N/A + chrom start end WT-1 WT-2 KO-1 + chrom start end 1 2 3 + chr1 0 900 N/A N/A N/A + chr1 900 1000 N/A 60 N/A + chr1 1000 1500 10 60 N/A + chr1 1500 1600 N/A 60 N/A + chr1 1600 1700 N/A N/A N/A + chr1 1700 1980 N/A 50 N/A + chr1 1980 2000 N/A 50 80 + chr1 2000 2050 20 50 80 + chr1 2050 2070 20 N/A 80 + chr1 2070 2090 20 N/A N/A + chr1 2090 2100 20 N/A 20 + chr1 2100 5000 N/A N/A N/A + + +========================================================================== +5.23.7 Use BEDGRAPH files with non-numeric values. +========================================================================== +Figure: +:: + cat 1.snp.bg + chr1 0 1 A/G + chr1 5 6 C/T + + cat 2.snp.bg + chr1 0 1 C/C + chr1 7 8 T/T + + cat 3.snp.bg + chr1 0 1 A/G + chr1 5 6 C/T + + unionBedGraphs -i 1.snp.bg 2.snp.bg 3.snp.bg -filler -/- + chr1 0 1 A/G C/C A/G + chr1 5 6 C/T -/- C/T + chr1 7 8 -/- T/T -/- \ No newline at end of file diff --git a/docs/content/windowBed.rst b/docs/content/windowBed.rst new file mode 100755 index 00000000..30d231ea --- /dev/null +++ b/docs/content/windowBed.rst @@ -0,0 +1,157 @@ +############### +5.5 windowBed +############### + +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. + +========================================================================== +5.5.1 Usage and option summary +========================================================================== +**Usage:** +:: + windowBed [OPTIONS] -a <BED/GFF/VCF> -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 +**-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 +**-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*. +**-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. +=========================== ========================================================================================================================================================= + +========================================================================== +5.5.2 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 + chr1 100 200 + + cat B.bed + chr1 500 1000 + chr1 1300 2000 + + windowBed -a A.bed -b B.bed + chr1 100 200 chr1 500 1000 + + +========================================================================== +5.5.3 (-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**. + +For example (note that in contrast to the default behavior, the second B entry is reported): +:: + cat A.bed + chr1 100 200 + + cat B.bed + chr1 500 1000 + chr1 1300 2000 + + windowBed -a A.bed -b B.bed -w 5000 + chr1 100 200 chr1 500 1000 + chr1 100 200 chr1 1300 2000 + +========================================================================== +5.5.4 (-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. + +For example (note the difference between -l 200 and -l 300): +:: + cat A.bed + chr1 1000 2000 + + cat B.bed + chr1 500 800 + chr1 10000 20000 + + windowBed -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 + chr1 100 200 chr1 500 800 + chr1 100 200 chr1 10000 20000 + +========================================================================== +5.5.5 (-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). + +For example (note the difference between -l 200 and -l 300): +:: + cat A.bed + chr1 10000 20000 A.forward 1 + + chr1 10000 20000 A.reverse 1 - + + cat B.bed + chr1 1000 8000 B1 + chr1 24000 32000 B2 + + windowBed -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 + + + +========================================================================== +5.5.6 (-sm)Enforcing "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. + +========================================================================== +5.5.7 (-u)Reporting the presence 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. + + +========================================================================== +5.5.8 (-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. + + +========================================================================== +5.5.9 (-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. + diff --git a/docs/index.rst b/docs/index.rst new file mode 100755 index 00000000..0ed81653 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,31 @@ +================================================================ +**bedtools**: *a powerful toolset for genome arithmetic* +================================================================ + +================= +Overview +================= + +Brief paragraph of the software. + + +================= +Table of contents +================= +.. toctree:: + :maxdepth: 1 + + content/overview + content/installation + content/quick-start + content/general-usage + content/bedtools-suite + content/example-usage + content/advanced-usage + + +================= +Mailing list +================= +Refer to the mailing list. + diff --git a/docs/make.bat b/docs/make.bat new file mode 100755 index 00000000..2e533194 --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,188 @@ +@ECHO OFF + +REM Command file for Sphinx documentation + +set SPHINXBUILD=C:\Users\William\Desktop\GenomeLabproject\bootstrap\Sphinx-1.1.3\sphinx-build.py +set BUILDDIR=_build +set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . +set I18NSPHINXOPTS=%SPHINXOPTS% . +if NOT "%PAPER%" == "" ( + set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% + set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% +) + +if "%1" == "" goto help + +if "%1" == "help" ( + :help + echo.Please use `make ^<target^>` where ^<target^> is one of + echo. html to make standalone HTML files + echo. dirhtml to make HTML files named index.html in directories + echo. singlehtml to make a single large HTML file + echo. pickle to make pickle files + echo. json to make JSON files + echo. htmlhelp to make HTML files and a HTML help project + echo. qthelp to make HTML files and a qthelp project + echo. devhelp to make HTML files and a Devhelp project + echo. epub to make an epub + echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter + echo. text to make text files + echo. man to make manual pages + echo. texinfo to make Texinfo files + echo. gettext to make PO message catalogs + echo. changes to make an overview over all changed/added/deprecated items + echo. linkcheck to check all external links for integrity + echo. doctest to run all doctests embedded in the documentation if enabled + goto end +) + +if "%1" == "clean" ( + for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i + del /q /s %BUILDDIR%\* + goto end +) + +if "%1" == "html" ( + %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/html. + goto end +) + +if "%1" == "dirhtml" ( + %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. + goto end +) + +if "%1" == "singlehtml" ( + %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. + goto end +) + +if "%1" == "pickle" ( + %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the pickle files. + goto end +) + +if "%1" == "json" ( + %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the JSON files. + goto end +) + +if "%1" == "htmlhelp" ( + %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run HTML Help Workshop with the ^ +.hhp project file in %BUILDDIR%/htmlhelp. + goto end +) + +if "%1" == "qthelp" ( + %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run "qcollectiongenerator" with the ^ +.qhcp project file in %BUILDDIR%/qthelp, like this: + echo.^> qcollectiongenerator %BUILDDIR%\qthelp\will_test.qhcp + echo.To view the help file: + echo.^> assistant -collectionFile %BUILDDIR%\qthelp\will_test.ghc + goto end +) + +if "%1" == "devhelp" ( + %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. + goto end +) + +if "%1" == "epub" ( + %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The epub file is in %BUILDDIR%/epub. + goto end +) + +if "%1" == "latex" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "text" ( + %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The text files are in %BUILDDIR%/text. + goto end +) + +if "%1" == "man" ( + %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The manual pages are in %BUILDDIR%/man. + goto end +) + +if "%1" == "texinfo" ( + %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. + goto end +) + +if "%1" == "gettext" ( + %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The message catalogs are in %BUILDDIR%/locale. + goto end +) + +if "%1" == "changes" ( + %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes + if errorlevel 1 exit /b 1 + echo. + echo.The overview file is in %BUILDDIR%/changes. + goto end +) + +if "%1" == "linkcheck" ( + %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck + if errorlevel 1 exit /b 1 + echo. + echo.Link check complete; look for any errors in the above output ^ +or in %BUILDDIR%/linkcheck/output.txt. + goto end +) + +if "%1" == "doctest" ( + %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest + if errorlevel 1 exit /b 1 + echo. + echo.Testing of doctests in the sources finished, look at the ^ +results in %BUILDDIR%/doctest/output.txt. + goto end +) + +:end diff --git a/docs/themes/rtd/static/rtd.css_t b/docs/themes/rtd/static/rtd.css_t new file mode 100755 index 00000000..66736c00 --- /dev/null +++ b/docs/themes/rtd/static/rtd.css_t @@ -0,0 +1,1438 @@ +/* + * rtd.css + * ~~~~~~~~~~~~~~~ + * + * Sphinx stylesheet -- sphinxdoc theme. Originally created by + * Armin Ronacher for Werkzeug. + * + * Customized for ReadTheDocs by Eric Pierce & Eric Holscher + * + * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* RTD colors + * light blue: #e8ecef + * medium blue: #8ca1af + * dark blue: #465158 + * dark grey: #444444 + * + * white hover: #d1d9df; + * medium blue hover: #697983; + * green highlight: #8ecc4c + * light blue (project bar): #e8ecef + */ + +@import url("basic.css"); + +/* PAGE LAYOUT -------------------------------------------------------------- */ + +body { + font: 100%/1.5 "ff-meta-web-pro-1","ff-meta-web-pro-2",Arial,"Helvetica Neue",sans-serif; + text-align: center; + color: black; + background-color: #465158; + padding: 0; + margin: 0; +} + +div.document { + text-align: left; + background-color: #e8ecef; +} + +div.bodywrapper { + background-color: #ffffff; + border-left: 1px solid #ccc; + border-bottom: 1px solid #ccc; + margin: 0 0 0 16em; +} + +div.body { + margin: 0; + padding: 0.5em 1.3em; + max-width: 55em; + min-width: 20em; +} + +div.related { + font-size: 1em; + background-color: #465158; +} + +div.documentwrapper { + float: left; + width: 100%; + background-color: #e8ecef; +} + + +/* HEADINGS --------------------------------------------------------------- */ + +h1 { + margin: 0; + padding: 0.7em 0 0.3em 0; + font-size: 1.5em; + line-height: 1.15; + color: #111; + clear: both; +} + +h2 { + margin: 2em 0 0.2em 0; + font-size: 1.35em; + padding: 0; + color: #465158; +} + +h3 { + margin: 1em 0 -0.3em 0; + font-size: 1.2em; + color: #6c818f; +} + +div.body h1 a, div.body h2 a, div.body h3 a, div.body h4 a, div.body h5 a, div.body h6 a { + color: black; +} + +h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor { + display: none; + margin: 0 0 0 0.3em; + padding: 0 0.2em 0 0.2em; + color: #aaa !important; +} + +h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, +h5:hover a.anchor, h6:hover a.anchor { + display: inline; +} + +h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover, +h5 a.anchor:hover, h6 a.anchor:hover { + color: #777; + background-color: #eee; +} + + +/* LINKS ------------------------------------------------------------------ */ + +/* Normal links get a pseudo-underline */ +a { + color: #444; + text-decoration: none; + border-bottom: 1px solid #ccc; +} + +/* Links in sidebar, TOC, index trees and tables have no underline */ +.sphinxsidebar a, +.toctree-wrapper a, +.indextable a, +#indices-and-tables a { + color: #444; + text-decoration: none; + border-bottom: none; +} + +/* Most links get an underline-effect when hovered */ +a:hover, +div.toctree-wrapper a:hover, +.indextable a:hover, +#indices-and-tables a:hover { + color: #111; + text-decoration: none; + border-bottom: 1px solid #111; +} + +/* Footer links */ +div.footer a { + color: #86989B; + text-decoration: none; + border: none; +} +div.footer a:hover { + color: #a6b8bb; + text-decoration: underline; + border: none; +} + +/* Permalink anchor (subtle grey with a red hover) */ +div.body a.headerlink { + color: #ccc; + font-size: 1em; + margin-left: 6px; + padding: 0 4px 0 4px; + text-decoration: none; + border: none; +} +div.body a.headerlink:hover { + color: #c60f0f; + border: none; +} + + +/* NAVIGATION BAR --------------------------------------------------------- */ + +div.related ul { + height: 2.5em; +} + +div.related ul li { + margin: 0; + padding: 0.65em 0; + float: left; + display: block; + color: white; /* For the >> separators */ + font-size: 0.8em; +} + +div.related ul li.right { + float: right; + margin-right: 5px; + color: transparent; /* Hide the | separators */ +} + +/* "Breadcrumb" links in nav bar */ +div.related ul li a { + order: none; + background-color: inherit; + font-weight: bold; + margin: 6px 0 6px 4px; + line-height: 1.75em; + color: #ffffff; + padding: 0.4em 0.8em; + border: none; + border-radius: 3px; +} +/* previous / next / modules / index links look more like buttons */ +div.related ul li.right a { + margin: 0.375em 0; + background-color: #697983; + text-shadow: 0 1px rgba(0, 0, 0, 0.5); + border-radius: 3px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; +} +/* All navbar links light up as buttons when hovered */ +div.related ul li a:hover { + background-color: #8ca1af; + color: #ffffff; + text-decoration: none; + border-radius: 3px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; +} +/* Take extra precautions for tt within links */ +a tt, +div.related ul li a tt { + background: inherit !important; + color: inherit !important; +} + + +/* SIDEBAR ---------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 0; +} + +div.sphinxsidebar { + margin: 0; + margin-left: -100%; + float: left; + top: 3em; + left: 0; + padding: 0 1em; + width: 14em; + font-size: 1em; + text-align: left; + background-color: #e8ecef; +} + +div.sphinxsidebar img { + max-width: 12em; +} + +div.sphinxsidebar h3, div.sphinxsidebar h4 { + margin: 1.2em 0 0.3em 0; + font-size: 1em; + padding: 0; + color: #222222; + font-family: "ff-meta-web-pro-1", "ff-meta-web-pro-2", "Arial", "Helvetica Neue", sans-serif; +} + +div.sphinxsidebar h3 a { + color: #444444; +} + +div.sphinxsidebar ul, +div.sphinxsidebar p { + margin-top: 0; + padding-left: 0; + line-height: 130%; + background-color: #e8ecef; +} + +/* No bullets for nested lists, but a little extra indentation */ +div.sphinxsidebar ul ul { + list-style-type: none; + margin-left: 1.5em; + padding: 0; +} + +/* A little top/bottom padding to prevent adjacent links' borders + * from overlapping each other */ +div.sphinxsidebar ul li { + padding: 1px 0; +} + +/* A little left-padding to make these align with the ULs */ +div.sphinxsidebar p.topless { + padding-left: 0 0 0 1em; +} + +/* Make these into hidden one-liners */ +div.sphinxsidebar ul li, +div.sphinxsidebar p.topless { + white-space: nowrap; + overflow: hidden; +} +/* ...which become visible when hovered */ +div.sphinxsidebar ul li:hover, +div.sphinxsidebar p.topless:hover { + overflow: visible; +} + +/* Search text box and "Go" button */ +#searchbox { + margin-top: 2em; + margin-bottom: 1em; + background: #ddd; + padding: 0.5em; + border-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; +} +#searchbox h3 { + margin-top: 0; +} + +/* Make search box and button abut and have a border */ +input, +div.sphinxsidebar input { + border: 1px solid #999; + float: left; +} + +/* Search textbox */ +input[type="text"] { + margin: 0; + padding: 0 3px; + height: 20px; + width: 144px; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + -moz-border-radius-topleft: 3px; + -moz-border-radius-bottomleft: 3px; + -webkit-border-top-left-radius: 3px; + -webkit-border-bottom-left-radius: 3px; +} +/* Search button */ +input[type="submit"] { + margin: 0 0 0 -1px; /* -1px prevents a double-border with textbox */ + height: 22px; + color: #444; + background-color: #e8ecef; + padding: 1px 4px; + font-weight: bold; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + -moz-border-radius-topright: 3px; + -moz-border-radius-bottomright: 3px; + -webkit-border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; +} +input[type="submit"]:hover { + color: #ffffff; + background-color: #8ecc4c; +} + +div.sphinxsidebar p.searchtip { + clear: both; + padding: 0.5em 0 0 0; + background: #ddd; + color: #666; + font-size: 0.9em; +} + +/* Sidebar links are unusual */ +div.sphinxsidebar li a, +div.sphinxsidebar p a { + background: #e8ecef; /* In case links overlap main content */ + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border: 1px solid transparent; /* To prevent things jumping around on hover */ + padding: 0 5px 0 5px; +} +div.sphinxsidebar li a:hover, +div.sphinxsidebar p a:hover { + color: #111; + text-decoration: none; + border: 1px solid #888; +} + +/* Tweak any link appearing in a heading */ +div.sphinxsidebar h3 a { +} + + + + +/* OTHER STUFF ------------------------------------------------------------ */ + +cite, code, tt { + font-family: 'Consolas', 'Deja Vu Sans Mono', + 'Bitstream Vera Sans Mono', monospace; + font-size: 0.95em; + letter-spacing: 0.01em; +} + +tt { + background-color: #f2f2f2; + color: #444; +} + +tt.descname, tt.descclassname, tt.xref { + border: 0; +} + +hr { + border: 1px solid #abc; + margin: 2em; +} + +pre, #_fontwidthtest { + font-family: 'Consolas', 'Deja Vu Sans Mono', + 'Bitstream Vera Sans Mono', monospace; + margin: 1em 2em; + font-size: 0.95em; + letter-spacing: 0.015em; + line-height: 120%; + padding: 0.5em; + border: 1px solid #ccc; + background-color: #eee; + border-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; +} + +pre a { + color: inherit; + text-decoration: underline; +} + +td.linenos pre { + padding: 0.5em 0; +} + +div.quotebar { + background-color: #f8f8f8; + max-width: 250px; + float: right; + padding: 2px 7px; + border: 1px solid #ccc; +} + +div.topic { + background-color: #f8f8f8; +} + +table { + border-collapse: collapse; + margin: 0 -0.5em 0 -0.5em; +} + +table td, table th { + padding: 0.2em 0.5em 0.2em 0.5em; +} + + +/* ADMONITIONS AND WARNINGS ------------------------------------------------- */ + +/* Shared by admonitions, warnings and sidebars */ +div.admonition, +div.warning, +div.sidebar { + font-size: 0.9em; + margin: 2em; + padding: 0; + /* + border-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + */ +} +div.admonition p, +div.warning p, +div.sidebar p { + margin: 0.5em 1em 0.5em 1em; + padding: 0; +} +div.admonition pre, +div.warning pre, +div.sidebar pre { + margin: 0.4em 1em 0.4em 1em; +} +div.admonition p.admonition-title, +div.warning p.admonition-title, +div.sidebar p.sidebar-title { + margin: 0; + padding: 0.1em 0 0.1em 0.5em; + color: white; + font-weight: bold; + font-size: 1.1em; + text-shadow: 0 1px rgba(0, 0, 0, 0.5); +} +div.admonition ul, div.admonition ol, +div.warning ul, div.warning ol, +div.sidebar ul, div.sidebar ol { + margin: 0.1em 0.5em 0.5em 3em; + padding: 0; +} + + +/* Admonitions and sidebars only */ +div.admonition, div.sidebar { + border: 1px solid #609060; + background-color: #e9ffe9; +} +div.admonition p.admonition-title, +div.sidebar p.sidebar-title { + background-color: #70A070; + border-bottom: 1px solid #609060; +} + + +/* Warnings only */ +div.warning { + border: 1px solid #900000; + background-color: #ffe9e9; +} +div.warning p.admonition-title { + background-color: #b04040; + border-bottom: 1px solid #900000; +} + + +/* Sidebars only */ +div.sidebar { + max-width: 200px; +} + + + +div.versioninfo { + margin: 1em 0 0 0; + border: 1px solid #ccc; + background-color: #DDEAF0; + padding: 8px; + line-height: 1.3em; + font-size: 0.9em; +} + +.viewcode-back { + font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', + 'Verdana', sans-serif; +} + +div.viewcode-block:target { + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} + +dl { + margin: 1em 0 2.5em 0; +} + +/* Highlight target when you click an internal link */ +dt:target { + background: #ffe080; +} +/* Don't highlight whole divs */ +div.highlight { + background: transparent; +} +/* But do highlight spans (so search results can be highlighted) */ +span.highlight { + background: #ffe080; +} + +div.footer { + background-color: #465158; + color: #eeeeee; + padding: 0 2em 2em 2em; + clear: both; + font-size: 0.8em; + text-align: center; +} + +p { + margin: 0.8em 0 0.5em 0; +} + +.section p img { + margin: 1em 2em; +} + + +/* MOBILE LAYOUT -------------------------------------------------------------- */ + +@media screen and (max-width: 600px) { + + h1, h2, h3, h4, h5 { + position: relative; + } + + ul { + padding-left: 1.25em; + } + + div.bodywrapper a.headerlink, #indices-and-tables h1 a { + color: #e6e6e6; + font-size: 80%; + float: right; + line-height: 1.8; + position: absolute; + right: -0.7em; + visibility: inherit; + } + + div.bodywrapper h1 a.headerlink, #indices-and-tables h1 a { + line-height: 1.5; + } + + pre { + font-size: 0.7em; + overflow: auto; + word-wrap: break-word; + white-space: pre-wrap; + } + + div.related ul { + height: 2.5em; + padding: 0; + text-align: left; + } + + div.related ul li { + clear: both; + color: #465158; + padding: 0.2em 0; + } + + div.related ul li:last-child { + border-bottom: 1px dotted #8ca1af; + padding-bottom: 0.4em; + margin-bottom: 1em; + width: 100%; + } + + div.related ul li a { + color: #465158; + padding-right: 0; + } + + div.related ul li a:hover { + background: inherit; + color: inherit; + } + + div.related ul li.right { + clear: none; + padding: 0.65em 0; + margin-bottom: 0.5em; + } + + div.related ul li.right a { + color: #fff; + padding-right: 0.8em; + } + + div.related ul li.right a:hover { + background-color: #8ca1af; + } + + div.body { + clear: both; + min-width: 0; + word-wrap: break-word; + } + + div.bodywrapper { + margin: 0 0 0 0; + } + + div.sphinxsidebar { + float: none; + margin: 0; + width: auto; + } + + div.sphinxsidebar input[type="text"] { + height: 2em; + line-height: 2em; + width: 70%; + } + + div.sphinxsidebar input[type="submit"] { + height: 2em; + margin-left: 0.5em; + width: 20%; + } + + div.sphinxsidebar p.searchtip { + background: inherit; + margin-bottom: 1em; + } + + div.sphinxsidebar ul li, div.sphinxsidebar p.topless { + white-space: normal; + } + + .bodywrapper img { + display: block; + margin-left: auto; + margin-right: auto; + max-width: 100%; + } + + div.documentwrapper { + float: none; + } + + div.admonition, div.warning, pre, blockquote { + margin-left: 0em; + margin-right: 0em; + } + + .body p img { + margin: 0; + } + + #searchbox { + background: transparent; + } + + .related:not(:first-child) li { + display: none; + } + + .related:not(:first-child) li.right { + display: block; + } + + div.footer { + padding: 1em; + } + + .rtd_doc_footer .badge { + float: none; + margin: 1em auto; + position: static; + } + + .rtd_doc_footer .badge.revsys-inline { + margin-right: auto; + margin-bottom: 2em; + } + + table.indextable { + display: block; + width: auto; + } + + .indextable tr { + display: block; + } + + .indextable td { + display: block; + padding: 0; + width: auto !important; + } + + .indextable td dt { + margin: 1em 0; + } + + ul.search { + margin-left: 0.25em; + } + + ul.search li div.context { + font-size: 90%; + line-height: 1.1; + margin-bottom: 1; + margin-left: 0; + } + +} + +/* Links in sidebar, TOC, index trees and tables have no underline */ +.sphinxsidebar a, +.toctree-wrapper a, +.indextable a, +#indices-and-tables a { + color: {{ theme_dark_gray }}; + text-decoration: none; + border-bottom: none; +} + +/* Most links get an underline-effect when hovered */ +a:hover, +div.toctree-wrapper a:hover, +.indextable a:hover, +#indices-and-tables a:hover { + color: {{ theme_black }}; + text-decoration: none; + border-bottom: 1px solid {{ theme_black }}; +} + +/* Footer links */ +div.footer a { + color: {{ theme_background_text_link }}; + text-decoration: none; + border: none; +} +div.footer a:hover { + color: {{ theme_medium_color_link_hover }}; + text-decoration: underline; + border: none; +} + +/* Permalink anchor (subtle grey with a red hover) */ +div.body a.headerlink { + color: {{ theme_lighter_gray }}; + font-size: 1em; + margin-left: 6px; + padding: 0 4px 0 4px; + text-decoration: none; + border: none; +} +div.body a.headerlink:hover { + color: {{ theme_negative_text }}; + border: none; +} + + +/* NAVIGATION BAR --------------------------------------------------------- */ + +div.related ul { + height: 2.5em; +} + +div.related ul li { + margin: 0; + padding: 0.65em 0; + float: left; + display: block; + color: {{ theme_background_link_half }}; /* For the >> separators */ + font-size: 0.8em; +} + +div.related ul li.right { + float: right; + margin-right: 5px; + color: transparent; /* Hide the | separators */ +} + +/* "Breadcrumb" links in nav bar */ +div.related ul li a { + order: none; + background-color: inherit; + font-weight: bold; + margin: 6px 0 6px 4px; + line-height: 1.75em; + color: {{ theme_background_link }}; + text-shadow: 0 1px rgba(0, 0, 0, 0.5); + padding: 0.4em 0.8em; + border: none; + border-radius: 3px; +} +/* previous / next / modules / index links look more like buttons */ +div.related ul li.right a { + margin: 0.375em 0; + background-color: {{ theme_medium_color_hover }}; + text-shadow: 0 1px rgba(0, 0, 0, 0.5); + border-radius: 3px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; +} +/* All navbar links light up as buttons when hovered */ +div.related ul li a:hover { + background-color: {{ theme_medium_color }}; + color: {{ theme_white }}; + text-decoration: none; + border-radius: 3px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; +} +/* Take extra precautions for tt within links */ +a tt, +div.related ul li a tt { + background: inherit !important; + color: inherit !important; +} + + +/* SIDEBAR ---------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 0; +} + +div.sphinxsidebar { + margin: 0; + margin-left: -100%; + float: left; + top: 3em; + left: 0; + padding: 0 1em; + width: 14em; + font-size: 1em; + text-align: left; + background-color: {{ theme_light_color }}; +} + +div.sphinxsidebar img { + max-width: 12em; +} + +div.sphinxsidebar h3, div.sphinxsidebar h4 { + margin: 1.2em 0 0.3em 0; + font-size: 1em; + padding: 0; + color: {{ theme_gray_2 }}; + font-family: "ff-meta-web-pro-1", "ff-meta-web-pro-2", "Arial", "Helvetica Neue", sans-serif; +} + +div.sphinxsidebar h3 a { + color: {{ theme_grey_color }}; +} + +div.sphinxsidebar ul, +div.sphinxsidebar p { + margin-top: 0; + padding-left: 0; + line-height: 130%; + background-color: {{ theme_light_color }}; +} + +/* No bullets for nested lists, but a little extra indentation */ +div.sphinxsidebar ul ul { + list-style-type: none; + margin-left: 1.5em; + padding: 0; +} + +/* A little top/bottom padding to prevent adjacent links' borders + * from overlapping each other */ +div.sphinxsidebar ul li { + padding: 1px 0; +} + +/* A little left-padding to make these align with the ULs */ +div.sphinxsidebar p.topless { + padding-left: 0 0 0 1em; +} + +/* Make these into hidden one-liners */ +div.sphinxsidebar ul li, +div.sphinxsidebar p.topless { + white-space: nowrap; + overflow: hidden; +} +/* ...which become visible when hovered */ +div.sphinxsidebar ul li:hover, +div.sphinxsidebar p.topless:hover { + overflow: visible; +} + +/* Search text box and "Go" button */ +#searchbox { + margin-top: 2em; + margin-bottom: 1em; + background: {{ theme_dirtier_white }}; + padding: 0.5em; + border-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; +} +#searchbox h3 { + margin-top: 0; +} + +/* Make search box and button abut and have a border */ +input, +div.sphinxsidebar input { + border: 1px solid {{ theme_gray_9 }}; + float: left; +} + +/* Search textbox */ +input[type="text"] { + margin: 0; + padding: 0 3px; + height: 20px; + width: 144px; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + -moz-border-radius-topleft: 3px; + -moz-border-radius-bottomleft: 3px; + -webkit-border-top-left-radius: 3px; + -webkit-border-bottom-left-radius: 3px; +} +/* Search button */ +input[type="submit"] { + margin: 0 0 0 -1px; /* -1px prevents a double-border with textbox */ + height: 22px; + color: {{ theme_dark_gray }}; + background-color: {{ theme_light_color }}; + padding: 1px 4px; + font-weight: bold; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + -moz-border-radius-topright: 3px; + -moz-border-radius-bottomright: 3px; + -webkit-border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; +} +input[type="submit"]:hover { + color: {{ theme_white }}; + background-color: {{ theme_green_highlight }}; +} + +div.sphinxsidebar p.searchtip { + clear: both; + padding: 0.5em 0 0 0; + background: {{ theme_dirtier_white }}; + color: {{ theme_gray }}; + font-size: 0.9em; +} + +/* Sidebar links are unusual */ +div.sphinxsidebar li a, +div.sphinxsidebar p a { + background: {{ theme_light_color }}; /* In case links overlap main content */ + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border: 1px solid transparent; /* To prevent things jumping around on hover */ + padding: 0 5px 0 5px; +} +div.sphinxsidebar li a:hover, +div.sphinxsidebar p a:hover { + color: {{ theme_black }}; + text-decoration: none; + border: 1px solid {{ theme_light_gray }}; +} + +/* Tweak any link appearing in a heading */ +div.sphinxsidebar h3 a { +} + + + + +/* OTHER STUFF ------------------------------------------------------------ */ + +cite, code, tt { + font-family: 'Consolas', 'Deja Vu Sans Mono', + 'Bitstream Vera Sans Mono', monospace; + font-size: 0.95em; + letter-spacing: 0.01em; +} + +tt { + background-color: {{ theme_code_background }}; + color: {{ theme_dark_gray }}; +} + +tt.descname, tt.descclassname, tt.xref { + border: 0; +} + +hr { + border: 1px solid {{ theme_ruler }}; + margin: 2em; +} + +pre, #_fontwidthtest { + font-family: 'Consolas', 'Deja Vu Sans Mono', + 'Bitstream Vera Sans Mono', monospace; + margin: 1em 2em; + font-size: 0.95em; + letter-spacing: 0.015em; + line-height: 120%; + padding: 0.5em; + border: 1px solid {{ theme_lighter_gray }}; + background-color: {{ theme_code_background }}; + border-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; +} + +pre a { + color: inherit; + text-decoration: underline; +} + +td.linenos pre { + padding: 0.5em 0; +} + +div.quotebar { + background-color: {{ theme_almost_white }}; + max-width: 250px; + float: right; + padding: 2px 7px; + border: 1px solid {{ theme_lighter_gray }}; +} + +div.topic { + background-color: {{ theme_almost_white }}; +} + +table { + border-collapse: collapse; + margin: 0 -0.5em 0 -0.5em; +} + +table td, table th { + padding: 0.2em 0.5em 0.2em 0.5em; +} + + +/* ADMONITIONS AND WARNINGS ------------------------------------------------- */ + +/* Shared by admonitions, warnings and sidebars */ +div.admonition, +div.warning, +div.sidebar { + font-size: 0.9em; + margin: 2em; + padding: 0; + /* + border-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + */ +} +div.admonition p, +div.warning p, +div.sidebar p { + margin: 0.5em 1em 0.5em 1em; + padding: 0; +} +div.admonition pre, +div.warning pre, +div.sidebar pre { + margin: 0.4em 1em 0.4em 1em; +} +div.admonition p.admonition-title, +div.warning p.admonition-title, +div.sidebar p.sidebar-title { + margin: 0; + padding: 0.1em 0 0.1em 0.5em; + color: white; + font-weight: bold; + font-size: 1.1em; + text-shadow: 0 1px rgba(0, 0, 0, 0.5); +} +div.admonition ul, div.admonition ol, +div.warning ul, div.warning ol, +div.sidebar ul, div.sidebar ol { + margin: 0.1em 0.5em 0.5em 3em; + padding: 0; +} + + +/* Admonitions and sidebars only */ +div.admonition, div.sidebar { + border: 1px solid {{ theme_positive_dark }}; + background-color: {{ theme_positive_light }}; +} +div.admonition p.admonition-title, +div.sidebar p.sidebar-title { + background-color: {{ theme_positive_medium }}; + border-bottom: 1px solid {{ theme_positive_dark }}; +} + + +/* Warnings only */ +div.warning { + border: 1px solid {{ theme_negative_dark }}; + background-color: {{ theme_negative_light }}; +} +div.warning p.admonition-title { + background-color: {{ theme_negative_medium }}; + border-bottom: 1px solid {{ theme_negative_dark }}; +} + + +/* Sidebars only */ +div.sidebar { + max-width: 200px; +} + + + +div.versioninfo { + margin: 1em 0 0 0; + border: 1px solid {{ theme_lighter_gray }}; + background-color: {{ theme_light_medium_color }}; + padding: 8px; + line-height: 1.3em; + font-size: 0.9em; +} + +.viewcode-back { + font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', + 'Verdana', sans-serif; +} + +div.viewcode-block:target { + background-color: {{ theme_viewcode_bg }}; + border-top: 1px solid {{ theme_viewcode_border }}; + border-bottom: 1px solid {{ theme_viewcode_border }}; +} + +dl { + margin: 1em 0 2.5em 0; +} + +/* Highlight target when you click an internal link */ +dt:target { + background: {{ theme_highlight }}; +} +/* Don't highlight whole divs */ +div.highlight { + background: transparent; +} +/* But do highlight spans (so search results can be highlighted) */ +span.highlight { + background: {{ theme_highlight }}; +} + +div.footer { + background-color: {{ theme_background }}; + color: {{ theme_background_text }}; + padding: 0 2em 2em 2em; + clear: both; + font-size: 0.8em; + text-align: center; +} + +p { + margin: 0.8em 0 0.5em 0; +} + +.section p img { + margin: 1em 2em; +} + + +/* MOBILE LAYOUT -------------------------------------------------------------- */ + +@media screen and (max-width: 600px) { + + h1, h2, h3, h4, h5 { + position: relative; + } + + ul { + padding-left: 1.75em; + } + + div.bodywrapper a.headerlink, #indices-and-tables h1 a { + color: {{ theme_almost_dirty_white }}; + font-size: 80%; + float: right; + line-height: 1.8; + position: absolute; + right: -0.7em; + visibility: inherit; + } + + div.bodywrapper h1 a.headerlink, #indices-and-tables h1 a { + line-height: 1.5; + } + + pre { + font-size: 0.7em; + overflow: auto; + word-wrap: break-word; + white-space: pre-wrap; + } + + div.related ul { + height: 2.5em; + padding: 0; + text-align: left; + } + + div.related ul li { + clear: both; + color: {{ theme_dark_color }}; + padding: 0.2em 0; + } + + div.related ul li:last-child { + border-bottom: 1px dotted {{ theme_medium_color }}; + padding-bottom: 0.4em; + margin-bottom: 1em; + width: 100%; + } + + div.related ul li a { + color: {{ theme_dark_color }}; + padding-right: 0; + } + + div.related ul li a:hover { + background: inherit; + color: inherit; + } + + div.related ul li.right { + clear: none; + padding: 0.65em 0; + margin-bottom: 0.5em; + } + + div.related ul li.right a { + color: {{ theme_white }}; + padding-right: 0.8em; + } + + div.related ul li.right a:hover { + background-color: {{ theme_medium_color }}; + } + + div.body { + clear: both; + min-width: 0; + word-wrap: break-word; + } + + div.bodywrapper { + margin: 0 0 0 0; + } + + div.sphinxsidebar { + float: none; + margin: 0; + width: auto; + } + + div.sphinxsidebar input[type="text"] { + height: 2em; + line-height: 2em; + width: 70%; + } + + div.sphinxsidebar input[type="submit"] { + height: 2em; + margin-left: 0.5em; + width: 20%; + } + + div.sphinxsidebar p.searchtip { + background: inherit; + margin-bottom: 1em; + } + + div.sphinxsidebar ul li, div.sphinxsidebar p.topless { + white-space: normal; + } + + .bodywrapper img { + display: block; + margin-left: auto; + margin-right: auto; + max-width: 100%; + } + + div.documentwrapper { + float: none; + } + + div.admonition, div.warning, pre, blockquote { + margin-left: 0em; + margin-right: 0em; + } + + .body p img { + margin: 0; + } + + #searchbox { + background: transparent; + } + + .related:not(:first-child) li { + display: none; + } + + .related:not(:first-child) li.right { + display: block; + } + + div.footer { + padding: 1em; + } + + .rtd_doc_footer .badge { + float: none; + margin: 1em auto; + position: static; + } + + .rtd_doc_footer .badge.revsys-inline { + margin-right: auto; + margin-bottom: 2em; + } + + table.indextable { + display: block; + width: auto; + } + + .indextable tr { + display: block; + } + + .indextable td { + display: block; + padding: 0; + width: auto !important; + } + + .indextable td dt { + margin: 1em 0; + } + + ul.search { + margin-left: 0.25em; + } + + ul.search li div.context { + font-size: 90%; + line-height: 1.1; + margin-bottom: 1; + margin-left: 0; + } + +} diff --git a/docs/themes/rtd/theme.conf b/docs/themes/rtd/theme.conf new file mode 100755 index 00000000..39fb32e7 --- /dev/null +++ b/docs/themes/rtd/theme.conf @@ -0,0 +1,64 @@ +[theme] +inherit = default +stylesheet = rtd.css +pygment_style = default +show_sphinx = False + +[options] +show_rtd = True + +white = #ffffff +almost_white = #f8f8f8 +barely_white = #f2f2f2 +dirty_white = #eeeeee +almost_dirty_white = #e6e6e6 +dirtier_white = #dddddd +lighter_gray = #cccccc +gray_a = #aaaaaa +gray_9 = #999999 +light_gray = #888888 +gray_7 = #777777 +gray = #666666 +dark_gray = #444444 +gray_2 = #222222 +black = #111111 +light_color = #e8ecef +light_medium_color = #DDEAF0 +medium_color = #8ca1af +medium_color_link = #86989b +medium_color_link_hover = #a6b8bb +dark_color = #465158 + +h1 = #000000 +h2 = #465158 +h3 = #6c818f + +link_color = #444444 +link_color_decoration = #CCCCCC + +medium_color_hover = #697983 +green_highlight = #8ecc4c + + +positive_dark = #609060 +positive_medium = #70a070 +positive_light = #e9ffe9 + +negative_dark = #900000 +negative_medium = #b04040 +negative_light = #ffe9e9 +negative_text = #c60f0f + +ruler = #abc + +viewcode_bg = #f4debf +viewcode_border = #ac9 + +highlight = #ffe080 + + +background = #465158 +background_link = #ffffff +background_link_half = #ffffff +background_text = #eeeeee +background_text_link = #86989b -- GitLab