pax_global_header00006660000000000000000000000064141164517650014524gustar00rootroot0000000000000052 comment=6410e66cfebe29470f57c0bd9a5f072c5177c8b0 q2-dada2-2021.8.0/000077500000000000000000000000001411645176500132515ustar00rootroot00000000000000q2-dada2-2021.8.0/.coveragerc000066400000000000000000000003001411645176500153630ustar00rootroot00000000000000[run] branch = True omit = */tests* */__init__.py q2_dada2/_version.py versioneer.py [report] omit = */tests* */__init__.py q2_dada2/_version.py versioneer.py q2-dada2-2021.8.0/.gitattributes000066400000000000000000000000421411645176500161400ustar00rootroot00000000000000q2_dada2/_version.py export-subst q2-dada2-2021.8.0/.github/000077500000000000000000000000001411645176500146115ustar00rootroot00000000000000q2-dada2-2021.8.0/.github/CONTRIBUTING.md000066400000000000000000000015131411645176500170420ustar00rootroot00000000000000# Contributing to this project Thanks for thinking of us :heart: :tada: - we would love a helping hand! ## I just have a question > Note: Please don't file an issue to ask a question. You'll get faster results > by using the resources below. ### QIIME 2 Users Check out the [User Docs](https://docs.qiime2.org) - there are many tutorials, walkthroughs, and guides available. If you still need help, please visit us at the [QIIME 2 Forum](https://forum.qiime2.org/c/user-support). ### QIIME 2 Developers Check out the [Developer Docs](https://dev.qiime2.org) - there are many tutorials, walkthroughs, and guides available. If you still need help, please visit us at the [QIIME 2 Forum](https://forum.qiime2.org/c/dev-discussion). This document is based heavily on the following: https://github.com/atom/atom/blob/master/CONTRIBUTING.md q2-dada2-2021.8.0/.github/ISSUE_TEMPLATE/000077500000000000000000000000001411645176500167745ustar00rootroot00000000000000q2-dada2-2021.8.0/.github/ISSUE_TEMPLATE/1-user-need-help.md000066400000000000000000000006111411645176500222670ustar00rootroot00000000000000--- name: I am a user and I need help with QIIME 2... about: I am using QIIME 2 and have a question or am experiencing a problem --- Have you had a chance to check out the docs? https://docs.qiime2.org There are many tutorials, walkthroughs, and guides available. If you still need help, please visit: https://forum.qiime2.org/c/user-support Help requests filed here will not be answered. q2-dada2-2021.8.0/.github/ISSUE_TEMPLATE/2-dev-need-help.md000066400000000000000000000005641411645176500220770ustar00rootroot00000000000000--- name: I am a developer and I need help with QIIME 2... about: I am developing a QIIME 2 plugin or interface and have a question or a problem --- Have you had a chance to check out the developer docs? https://dev.qiime2.org There are many tutorials, walkthroughs, and guides available. If you still need help, please visit: https://forum.qiime2.org/c/dev-discussion q2-dada2-2021.8.0/.github/ISSUE_TEMPLATE/3-found-bug.md000066400000000000000000000017421411645176500213500ustar00rootroot00000000000000--- name: I am a developer and I found a bug... about: I am a developer and I found a bug that I can describe --- **Bug Description** A clear and concise description of what the bug is. **Steps to reproduce the behavior** 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error **Expected behavior** A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. **Computation Environment** - OS: [e.g. macOS High Sierra] - QIIME 2 Release [e.g. 2018.6] **Questions** 1. An enumerated list with any questions about the problem here. 2. If not applicable, please delete this section. **Comments** 1. An enumerated list with any other context or comments about the problem here. 2. If not applicable, please delete this section. **References** 1. An enumerated list of links to relevant references, including forum posts, stack overflow, etc. 2. If not applicable, please delete this section. q2-dada2-2021.8.0/.github/ISSUE_TEMPLATE/4-make-better.md000066400000000000000000000015321411645176500216600ustar00rootroot00000000000000--- name: I am a developer and I have an idea for an improvement... about: I am a developer and I have an idea for an improvement to existing functionality --- **Improvement Description** A clear and concise description of what the improvement is. **Current Behavior** Please provide a brief description of the current behavior. **Proposed Behavior** Please provide a brief description of the proposed behavior. **Questions** 1. An enumerated list of questions related to the proposal. 2. If not applicable, please delete this section. **Comments** 1. An enumerated list of comments related to the proposal that don't fit anywhere else. 2. If not applicable, please delete this section. **References** 1. An enumerated list of links to relevant references, including forum posts, stack overflow, etc. 2. If not applicable, please delete this section. q2-dada2-2021.8.0/.github/ISSUE_TEMPLATE/5-make-new.md000066400000000000000000000015131411645176500211640ustar00rootroot00000000000000--- name: I am a developer and I have an idea for a new feature... about: I am a developer and I have an idea for new functionality --- **Addition Description** A clear and concise description of what the addition is. **Current Behavior** Please provide a brief description of the current behavior, if applicable. **Proposed Behavior** Please provide a brief description of the proposed behavior. **Questions** 1. An enumerated list of questions related to the proposal. 2. If not applicable, please delete this section. **Comments** 1. An enumerated list of comments related to the proposal that don't fit anywhere else. 2. If not applicable, please delete this section. **References** 1. An enumerated list of links to relevant references, including forum posts, stack overflow, etc. 2. If not applicable, please delete this section. q2-dada2-2021.8.0/.github/ISSUE_TEMPLATE/6-where-to-go.md000066400000000000000000000100111411645176500216070ustar00rootroot00000000000000--- name: I don't know where to file my issue... about: I am a developer and I don't know which repo to file this in --- The repos within the QIIME 2 GitHub Organization are listed below, with a brief description about the repo. Sorted alphabetically by repo name. - The CI automation engine that builds and distributes QIIME 2 https://github.com/qiime2/busywork/issues - A Concourse resource for working with conda https://github.com/qiime2/conda-channel-resource/issues - Web app for vanity URLs for QIIME 2 data assets https://github.com/qiime2/data.qiime2.org/issues - The Developer Documentation https://github.com/qiime2/dev-docs/issues - A discourse plugin for handling queued/unqueued topics https://github.com/qiime2/discourse-unhandled-tagger/issues - The User Documentation https://github.com/qiime2/docs/issues - Rendered QIIME 2 environment files for conda https://github.com/qiime2/environment-files/issues - Google Sheets Add-On for validating tabular data https://github.com/qiime2/Keemei/issues - A docker image for linux-based busywork workers https://github.com/qiime2/linux-worker-docker/issues - Official project logos https://github.com/qiime2/logos/issues - The q2-alignment plugin https://github.com/qiime2/q2-alignment/issues - The q2-composition plugin https://github.com/qiime2/q2-composition/issues - The q2-cutadapt plugin https://github.com/qiime2/q2-cutadapt/issues - The q2-dada2 plugin https://github.com/qiime2/q2-dada2/issues - The q2-deblur plugin https://github.com/qiime2/q2-deblur/issues - The q2-demux plugin https://github.com/qiime2/q2-demux/issues - The q2-diversity plugin https://github.com/qiime2/q2-diversity/issues - The q2-diversity-lib plugin https://github.com/qiime2/q2-diversity-lib/issues - The q2-emperor plugin https://github.com/qiime2/q2-emperor/issues - The q2-feature-classifier plugin https://github.com/qiime2/q2-feature-classifier/issues - The q2-feature-table plugin https://github.com/qiime2/q2-feature-table/issues - The q2-fragment-insertion plugin https://github.com/qiime2/q2-fragment-insertion/issues - The q2-gneiss plugin https://github.com/qiime2/q2-gneiss/issues - The q2-longitudinal plugin https://github.com/qiime2/q2-longitudinal/issues - The q2-metadata plugin https://github.com/qiime2/q2-metadata/issues - The q2-phylogeny plugin https://github.com/qiime2/q2-phylogeny/issues - The q2-quality-control plugin https://github.com/qiime2/q2-quality-control/issues - The q2-quality-filter plugin https://github.com/qiime2/q2-quality-filter/issues - The q2-sample-classifier plugin https://github.com/qiime2/q2-sample-classifier/issues - The q2-shogun plugin https://github.com/qiime2/q2-shogun/issues - The q2-taxa plugin https://github.com/qiime2/q2-taxa/issues - The q2-types plugin https://github.com/qiime2/q2-types/issues - The q2-vsearch plugin https://github.com/qiime2/q2-vsearch/issues - The CLI interface https://github.com/qiime2/q2cli/issues - The prototype CWL interface https://github.com/qiime2/q2cwl/issues - The prototype Galaxy interface https://github.com/qiime2/q2galaxy/issues - An internal tool for ensuring header text and copyrights are present https://github.com/qiime2/q2lint/issues - The prototype GUI interface https://github.com/qiime2/q2studio/issues - A base template for use in official QIIME 2 plugins https://github.com/qiime2/q2templates/issues - The read-only web interface at view.qiime2.org https://github.com/qiime2/q2view/issues - The QIIME 2 homepage at qiime2.org https://github.com/qiime2/qiime2.github.io/issues - The QIIME 2 framework https://github.com/qiime2/qiime2/issues - Centralized templates for repo assets https://github.com/qiime2/template-repo/issues - Scripts for building QIIME 2 VMs https://github.com/qiime2/vm-playbooks/issues - Scripts for building QIIME 2 workshop clusters https://github.com/qiime2/workshop-playbooks/issues - The web app that runs workshops.qiime2.org https://github.com/qiime2/workshops.qiime2.org/issues q2-dada2-2021.8.0/.github/SUPPORT.md000066400000000000000000000122421411645176500163100ustar00rootroot00000000000000# QIIME 2 Users Check out the [User Docs](https://docs.qiime2.org) - there are many tutorials, walkthroughs, and guides available. If you still need help, please visit us at the [QIIME 2 Forum](https://forum.qiime2.org/c/user-support). # QIIME 2 Developers Check out the [Developer Docs](https://dev.qiime2.org) - there are many tutorials, walkthroughs, and guides available. If you still need help, please visit us at the [QIIME 2 Forum](https://forum.qiime2.org/c/dev-discussion). # General Bug/Issue Triage Discussion ![rubric](./rubric.png?raw=true) # Projects/Repositories in the QIIME 2 GitHub Organization Sorted alphabetically by repo name. - [busywork](https://github.com/qiime2/busywork/issues) | The CI automation engine that builds and distributes QIIME 2 - [conda-channel-resource](https://github.com/qiime2/conda-channel-resource/issues) | A Concourse resource for working with conda - [data.qiime2.org](https://github.com/qiime2/data.qiime2.org/issues) | Web app for vanity URLs for QIIME 2 data assets - [dev-docs](https://github.com/qiime2/dev-docs/issues) | The Developer Documentation - [discourse-unhandled-tagger](https://github.com/qiime2/discourse-unhandled-tagger/issues) | A discourse plugin for handling queued/unqueued topics - [docs](https://github.com/qiime2/docs/issues) | The User Documentation - [environment-files](https://github.com/qiime2/environment-files/issues) | Rendered QIIME 2 environment files for conda - [Keemei](https://github.com/qiime2/Keemei/issues) | Google Sheets Add-On for validating tabular data - [linux-worker-docker](https://github.com/qiime2/linux-worker-docker/issues) | A docker image for linux-based busywork workers - [logos](https://github.com/qiime2/logos/issues) | Official project logos - [q2-alignment](https://github.com/qiime2/q2-alignment/issues) | The q2-alignment plugin - [q2-composition](https://github.com/qiime2/q2-composition/issues) | The q2-composition plugin - [q2-cutadapt](https://github.com/qiime2/q2-cutadapt/issues) | The q2-cutadapt plugin - [q2-dada2](https://github.com/qiime2/q2-dada2/issues) | The q2-dada2 plugin - [q2-deblur](https://github.com/qiime2/q2-deblur/issues) | The q2-deblur plugin - [q2-demux](https://github.com/qiime2/q2-demux/issues) | The q2-demux plugin - [q2-diversity](https://github.com/qiime2/q2-diversity/issues) | The q2-diversity plugin - [q2-diversity-lib](https://github.com/qiime2/q2-diversity-lib/issues) | The q2-diversity-lib plugin - [q2-emperor](https://github.com/qiime2/q2-emperor/issues) | The q2-emperor plugin - [q2-feature-classifier](https://github.com/qiime2/q2-feature-classifier/issues) | The q2-feature-classifier plugin - [q2-feature-table](https://github.com/qiime2/q2-feature-table/issues) | The q2-feature-table plugin - [q2-fragment-insertion](https://github.com/qiime2/q2-fragment-insertion/issues) | The q2-fragment-insertion plugin - [q2-gneiss](https://github.com/qiime2/q2-gneiss/issues) | The q2-gneiss plugin - [q2-longitudinal](https://github.com/qiime2/q2-longitudinal/issues) | The q2-longitudinal plugin - [q2-metadata](https://github.com/qiime2/q2-metadata/issues) | The q2-metadata plugin - [q2-phylogeny](https://github.com/qiime2/q2-phylogeny/issues) | The q2-phylogeny plugin - [q2-quality-control](https://github.com/qiime2/q2-quality-control/issues) | The q2-quality-control plugin - [q2-quality-filter](https://github.com/qiime2/q2-quality-filter/issues) | The q2-quality-filter plugin - [q2-sample-classifier](https://github.com/qiime2/q2-sample-classifier/issues) | The q2-sample-classifier plugin - [q2-shogun](https://github.com/qiime2/q2-shogun/issues) | The q2-shogun plugin - [q2-taxa](https://github.com/qiime2/q2-taxa/issues) | The q2-taxa plugin - [q2-types](https://github.com/qiime2/q2-types/issues) | The q2-types plugin - [q2-vsearch](https://github.com/qiime2/q2-vsearch/issues) | The q2-vsearch plugin - [q2cli](https://github.com/qiime2/q2cli/issues) | The CLI interface - [q2cwl](https://github.com/qiime2/q2cwl/issues) | The prototype CWL interface - [q2galaxy](https://github.com/qiime2/q2galaxy/issues) | The prototype Galaxy interface - [q2lint](https://github.com/qiime2/q2lint/issues) | An internal tool for ensuring header text and copyrights are present - [q2studio](https://github.com/qiime2/q2studio/issues) | The prototype GUI interface - [q2templates](https://github.com/qiime2/q2templates/issues) | A base template for use in official QIIME 2 plugins - [q2view](https://github.com/qiime2/q2view/issues) | The read-only web interface at view.qiime2.org - [qiime2.github.io](https://github.com/qiime2/qiime2.github.io/issues) | The QIIME 2 homepage at qiime2.org - [qiime2](https://github.com/qiime2/qiime2/issues) | The QIIME 2 framework - [template-repo](https://github.com/qiime2/template-repo/issues) | Centralized templates for repo assets - [vm-playbooks](https://github.com/qiime2/vm-playbooks/issues) | Scripts for building QIIME 2 VMs - [workshop-playbooks](https://github.com/qiime2/workshop-playbooks/issues) | Scripts for building QIIME 2 workshop clusters - [workshops.qiime2.org](https://github.com/qiime2/workshops.qiime2.org/issues) | The web app that runs workshops.qiime2.org q2-dada2-2021.8.0/.github/pull_request_template.md000066400000000000000000000006121411645176500215510ustar00rootroot00000000000000Brief summary of the Pull Request, including any issues it may fix using the GitHub closing syntax: https://help.github.com/articles/closing-issues-using-keywords/ Also, include any co-authors or contributors using the GitHub coauthor tag: https://help.github.com/articles/creating-a-commit-with-multiple-authors/ --- Include any questions for reviewers, screenshots, sample outputs, etc. q2-dada2-2021.8.0/.github/rubric.png000066400000000000000000007014131411645176500166130ustar00rootroot00000000000000PNG  IHDR,4\sBIT|d pHYs.#.#x?vtEXtSoftwarewww.inkscape.org< IDATxw|g3AޫEEQvgmKhQRD.#g$ G)9IIr~vkxr\7ޯ\b0 R1NE/zQ@G E/z'w:~9 .VhhD?^Kg7o78s7HG^{5]~]v ӧOլYD ^-ZٳgW_TB iٲeںufR)//_lRl߾ݤIs8#8ѣGرcٰakQ ___۷Of (p&I8p@sIO5ydXTRZ~ҦMk7oZpDO<1ӧO(8!?0c2dȠs,fݺu_6 8 2?sI @C ޽{uСfIZj& ilϟ߬EILR^DԬYq]]]`I&Ѿ6vUV5o\TD$&~<н{%6p^DGGk֭˓'O/Sڵkhh#^QF &:t\]/TՕ={ve˖M/[l8cǎ%.aÆI ᅲWڴi#F)+)<<\&MҡC8$^dN>mR7n$Y*Toh?^@\UTщ'4tP.]Z3gͫ-[jӦMZf0=ŋMw!;֭ۗ`^q 7|iĚ3gNrN/p6mq$=iӦD Klc׮]K4(z1P ><Ȟ=j֬`gϞ%Y|֋رc; IMMd4k,$ zSLÇ; Id̘Ѭ#GԈ#e\~)z)׉''$w(z6{_uѣ6ͥ\rʔ)SIQh`7ne˖zyr8bŊY4\:t蠀UN/ N%ɝJ,iXQVR 4l0ruw*g͚k׮m+][-Zӧ;8\ !OddgϮGd|k׮ڵ-j9<{Q۶mu=O,XP+VN4ӧOu1*((Haaazː! (E\rJ>}2g`>}ZgΜӧ+W`0_q\\\%K+WN5kT9$ϘԩS:}N:]qSM0A3fPtt(z{xCpBmڴy`0hڿ6mhTMݻw~zmذAғ'OL%Jyj۶*Tę:K.i͚5ڼy;(ƹB jٲڵkB %q҃b[Ew/FGFFjŚ]t<$???EEEI8>vzRѢEuʕ$Uzu |ڷooҽfS5jO?5ڶdXª6m'o׮]2ev!k_?aÆ=zj׮m\֋}I' @;vɓ'M#Oҷ~kl9z:viӦiѢE*W\#""gIh@s(^x큁:tlbUѶm۴m65o\S\̚/oݺufIү_O>5y̍7ԡCi[bV\_:tf͚e.]d$I|'Ol; Kwv=zƍ?~ϯݻ믿Klٲ7oM ^v1UZU~m̟,[L˗iU7oVٲegƭ^Z~~~6/xܹS-Z0~;w֭[Z˗/5-Q'EӮq#""d/_^=z͛7,֊+;tD[ʕf]|Yyn*___b={L}_|amک`ѣյkW=~8...j֬vء7n(22RW^UlYݻwO5?l-v%kNϞ=x_ՆY'{R7'ojΜ9ѣcך5k4zh3Ʀw~-\P}1.q,W\ʕ+5j%KW^&7ne˦}iҘ1c#Gɓ13G*TP`N:PhhN:G***ʤ8UVUժUU^8m CK.Uv^z/_>uI۷ט1c4mڴD犈PvcլYӤչsgX5ٳgmV ,ŋSddU󹹹QF*U1c(,,L>ԑ#Gt9֑iӪv*VMs1X{, ՛0a&N9TREWV맟~RVL*R :T|MK}G&O&L~I/_N:%`0M6Z~IsΝ['OTk׮ԩSڸq:dϟ_|>C3fnܸϟ'8WZo߾ߵh"]~\,Y]&`0رcF>cmݺլ 2) *\Kn߾QF~0+͛7Ox͛75x߿&M$oooQHFi3gNmٲE+Vx /_^>LouIK.ѾϞ=Sum(UN8!wY~ʖ-4ᅰ-[V'N0{ܫݻ9rmsuuՎ;۷QF&iժɅ/dɒ&رمM6K.hLƌg2eѣչs؝D HtTsxչsg?WZJH.]|rLlx.]TىbJKX6mژK@@/^hyjȐ!&oݳhܫ*, 6,ނ׃ԭ[7 ^4j(s*VTbr+Wȑ#&-Zhҥfy!,,쥂Wٵ~7L+O< {zzjŊ*UE:ɓ't5egbΓ1cd%  ֐!C}xﻱQFrcWX=c^UNO6ͤЀ>}z9v- qx^^^ 矛DZYyy v*lRժU3{ܿjFRIt)=<<4vXs4iEc9~Fڷoϑ /W/{6m(**1ϟ?7-IPʫxfpݛhٳ[nf-o6m2|ʚ5Ѷ˗/kܹ&LjoXBׯ_o1͛77{̿ 2DF֭X///w6k,~&SM74{ܬYnU g}j^`['%@dɢ ?P͚5%Çk&_j]frs{!wfaÆYtҥKM>јH\2sOOO?qӧOWddqyGFFj֭fDZ3w߿uY9r䈷=W\:zƌ*Upz7ճgO=zTY Zn%K=nڴi={y޻woI QuujnGh ѣG͚;gΜfcUvwĈf/IgVLLEc|_~{}c,aB.]#G}'Oj…*S,͑ZtY``֭[gQUVɓ'/=K>:vh| PbŊZ~4qD(Q"c.[,>7n4{^KW6{LttM[Z5ըQ_wEڵ+u&xwRJ/]dq\YfUjK:t`1-wy֮];eɒŢ@ҡ0[5n8;wN>e˖-Ib>}Z.\Hρ̞7$$侏?̙3GYw9Ң(`0y>dȐ%} :Tk׮5;γgt]YAVe5zh;vL~~~f9y݃m@D `*Uh֬Yy6mڤVZæ1lH޽{+cƌʚ5kx{{+s2d={fQ?6ofTxqcڵK&ҥKokv<<<4j(|_xxVXy>}̎ 샢fͪ:wFiAAA]ry ҥrav˗| <˔)zหW*Zhrz^{qv8EoOOOu>(zYlYY'!%JД)SѣG9֤g3f4hvOj…;}{v,Y$8?oKy{{%hWh?cGnݚ`Mj]t)ޝ@I;K,<./WWW 4(-=~pڴi]Ec͕?~ġf_њ:u͛og- ۢ<}P't>K5jΝ;o|_Bw4Yzz-Cյk_sm޼YZ2-_>>۷Oϟ~}%޽;N>}X^DrUw1 ()+V̤~E`NME#F=&""],>ԏ?_>}ڽU@sRiԨQfwzuX" `0ԧH"]MrI8$XQ$)yxx\rȑCٳg7;v@@@GJѼys/^q͋?ĹW]7k7x<9>%gΜ޽LEFFjɒ%qk yQ'ц/㏊C6x"""WNx\\\TJcĉfK6l_ 6H2~a˖-޹UP!̙\8p3fҦMk֘gj˖-駟tΝҦM]2E(z0eWӭ[n:;d;w9JU V%c`ھ}Ec}zMڵ|||7sLi5h rUcu%… ?~!e3(o|SNfꫯwyޢE ȑ;Nä#ƍ_tСDt)Ѽ}YƦŒuQƍS*UtY驁=?,I:y*U}ltګ;ِ!C,Sox IDAT̙?ƍho^ϟ$O*[n޼ia_~~~5c խ[Ws-ZTڵ3{ܫ"E^z쏢8tҙO>QPPPrƍDRرwNYr$M8Ѥ3{l}W/=ԛoi/[nVkYTx!cƌyYӧOe+W.Oy瞽kƍ/=H>HֽիIc@A IBCCѣGIxӧOO>Znŋ>Sg}f~ &˪_5l0_OV>}z͞=[7o8gԮ];-^8N۔)S,*R<~آ<ý{C㚲KU&LPDDDי3gV…͎oJR˖--&M}Q''O?~\M4I̙3-O>QM]|EL4ɢbbb4h E2eʨ哐bŊyO6guyѣg0ԵkW8q챏?{ァiرj֬i,޽{q}9sqձ-AD]6qM6+s?;6m9sZ/^DrmVztMhʔ)EذaC97n?աCM4)ν>|ԩٳgiK.VXaSXټЮ];UL=|P5kԆ Lk׮]q (`)-.&&&G5cҤIo~z#o޼f9poΝ;3k˗Wƍ-ۧO싢8K^\\r5k?nqgϪaÆC_ʕ+-1|+Vq111?~jժk*,,,N(:tHzoN)SXT 2UUzu2fyKNk֬QƌnZmڴѮ]ӧOm65iDjR```>iҤ-:F޽{jժ._lXI5j(G4Gdd>3M>ݢϟ?׻ᆱ 6\}Uƍ4 jٲ[]rEu6lؠ GqܹTbQƌ71 R l:-R^,?~ 8P)h[nСCocǎD_,YRwz'R``jժ[nY< .ܹsMWPPP=6L_qMqFjʬ15jЁl4ib=W*^rȡhݿ_/^LpNWWW-]T:u2)u9׆ lr|g,YԨQ#UREEU TLeϞݢBBBt1ݹsGGѺut59Sҥ?~e͚U+V4il g<)R;̙3t!SjĈ6E/p"ǎ3wb˧ҥK+_|򒋋BBB#ԩSq5lP+WT֬Ym_@@{=]r&{Zh#&&F%KŋMfi&Iٲe!\\\4sL}&?~&MYϢEԣGƮ]Vm۶qF*Tn'O[oeՎhǎ*W޳g֭kRߌ3ڵk=OR&MGɽ^z_~w5>I>>3 6LnnnVBR}ڽ{5EǏg}f.Ç&ϗ/Zld4iDP۶mu…$#IZxڷoqe/.B iKj:uFOon(xq8wz+WNuQ5k,rI&wﮀ9Ҧrȡ]vi5kV^Z ^/tU>>>&8pݓw_˖-'NhĈJ6m(VG+ >\SLnnn۷>dƏhWWW <8II8ƍy/_>-YDGUʕ%S0ڼynݪ5j,~|4~x]pA/Vm61...8p._qY|ϒy{'ّԀ>}zԩSuyS6?שSTR% ˌ9RwVٲe-.]:mV-[6go4n8ɋo iq8ǏB 9pĈرc;sN::qݻgRӫ|]5kʕ+5~ٳgڸq6oެ;vfԭ[7KEM,Mw=(P@ӧ,X`Ǭ'$$D?l٢={$1%JP޽եKw>秥K/5!W\Y4h6m$6mJϝ;w~vE/p2A&LPcwuYƍp߿P`0(}ʘ1ͫH"I~bbbt=zT/^իWu-EEE)44Tʚ5gϮrʩjժz7hgѣw^˗OSb=_|ʙ3gr(IzN>G*((Hׯ_۷0e͚UYfUΜ9UR%UZU JaWҥKzٳ+w)⿣`Pٲeuԩ8mK_e#JmQSXhzw}g9H]R֯IСCq̙S;vLlQû{VX~(OOdE/8s*""gL[`G111u넇kĉX ,jժiƌ<5jҧO;rOĉuM͝;W>bbbԬY3>r~wkq|׺sKϊ-$y~\ j]矪Y"##վ}{-[LiҤIRu֩M6F۲e˦k׮tGŋUB>sqqy$N`>T)IZj5jR1ۼysm_c U6m|ݻw`SPPKvڥƍÇɔUsۗ/_.XÆ uɗ .)S$Y~ p!@[dwo{ ce˖͎YNJҙ3gmwqqQJt%dɒI&HP``*TG%د\rڹsgnRիСCfK6~Wխ[7 )$(u1т$8qB׽{Y[o=&C ڰa/E/$2~x$WWWm۶rww7ɓzwt{ 8P&/^8{/ )E/$pYM2ETL:tH۶mիyx 7OVݺuum{j+VLVR,YQFѣ*Wɉ;,mذ!NfjѢ"""-^vޭܹs#TΝ;Z|ۧ =}T3fT…UNuA>>>ɝ&#^I(*** nݪVZٳgFK,ݻw+gΜI"C`6lM6)]tF/\u͛v u(|X@ аaCmܸ(z,D `^) / Cr')**Jо}}/Yvޭ9s1K@25k,]zլA }xŋkʝ; 3H](z$VZ:w$)cƌݻ7nB Ç:~֭[;v(&&&޹E/dzi޽jժiʕ+ǏרQk׮xkr'؂W͚5{x ^T|yܹSӧOWڴi9w֭۷o'I);,88X ֣GSN)O<&?ԤIݿh;;3b-\P=$kά$UREW 8#^vq,dɒڻwrmEڵkP0;v,kk ,Xmۦ,Ym?wUݻwi;6l`ql=p&VdddVojUDDD7n^zzw+>|X+W*U1 E/; ygϪVZVYvm-_\ڵSLLLv۷k/=WkUl ՝],պuk >>>>Zl\]y=#77޶m}R{Fe5?QƌU\=}T]tQTT󻹹r2 Zn*VV`ACO8v֩S8:~d4iHO>Qn:e͚&1R^v֡Cyh"9RFqEIO?TAAA/p4,gΜٳѶiӦGu{n={V={9rh>`lSjf͚Zzrm>T*Uty)88XYdU);&NoTB-]T111SmVϟ$կ_p*ŋu]zUTP!URE 0kݻkɒ% TF-[*M4qڏ?={T^=rH(z`0hݺu:u8...jԨ&LU4j޽}TfM.]ZO߿_~ӦMYo P0{Ծ}{ouww_A4whhZn]vY^uRHDppj׮mRK4x` 6Lmۦݻ[g2e}v ^)QH@dd7ogϚ=v&ҤIŋk̙ʐ!ٱZh!˗]t)S8z5ydy.]:Ϙ1—$ 4H޽I1J(~I7nTLL83G^8+QR?XK/ܩ@&L5iҤدկ_?_zbbbt1} 2U@-^XoҥKզM+WN^^^ʕ+*W~~S@@6mj 8G^8+˸L0a&N(I{%sVWCՌ3$sڵkU~}}o߾^z%rjȐ!o$W0 ϮKvz'cFQ6mZmڴ)ނ$̙S?&NoQ_l+:d/'C ڲeԩ|II>l٢u&cVwJ>#ծ];1...7n;C /gX8+QRǿto /)y.\[ 7rHٳ{ _@2s a ^@ @ @j/d>s[ `PLL$z3۹sg _@2r ca^@27n\/B @/dΜ9oF4| 0@E$eΜy--|EGGkŊ86yXXl=ٸq_~eʽ1`OB`0h/ϟϟ+M4 jΝ;Kw83fPttO.777]rE|l٢;w*>lyXXlz Y|G/cΐ!nݪ~;?[2M/^TB|x _THɓGRddҤIիWe˖VWUҠ$W ^3gUjd r2*Yܹ`>}hVK/|^pWI;; p2ǏO%I}~7%vǗD 3WUb`GcǎɓcΒ%~W ^Rgx!sQUR%vוeUX1c/^X={`>gX8֫N/N(xH-̠A7xCTHHN8%J=5lP׮]:v=TJQ,ԏ>(zI`0hСq ^i %r2WztAUVMTT)޽[%K4:&((HuֵI+[lN 03WR7+xC   6L3f̈}o@rs2A...qߺuKΝ;gt\"E{n˗ϢoV3 ^q:^;$b/1V\riϞ=*U@ժUK1cbbԷo_ ^u^;$5sgT_Rھ}|}})x`Z^%vz6_kǎ8B&22R-[ԡC,#W\+00;6l/`&G^8֫N/  Yf>[o%cfׯ,X 2h֭z-Ν;W(P@{Q- ~^pWɋ^P8 I&i'OiӦVz״sxw|]rE7+::ZsUxxgz(z6`04x8;vP8 Q&Lx٣Gk\ݻjѢ֭[w8zq^ oXEkٱ^*W@\B_WDD̙3_Uj,q-;:wlٲ}z֬YO*M4+*X_\|YժUݻwg;`>G_8֫`!AiΜ9(xHLppW .HgG`Ǐǎ/` G_8֫; Wڹs'/)yZj .H"ڼy>|7naÆF򎯂 m+*e`0>x;wRJɘ /dÕ9sfըQC5k&Iʔ)6mڔ䅯>s ^aXR.75wgڱc/)31 TڴiEDDEھ}ѱ80} D 3WR7֫^(xHM테т$KN?4ibѣGjРgQSNQlԋ* GHx!Wڴivx:|䉚6mjQ111;v$ ^%XW0 8p͛EbŊɘ ϫB p IDAT @jzz HC @/d?A)$$ĪyҥKM6ŻѣG5yW%?k͚538z^.a04`͟??vڥ2e$cf#1 ֭-[J*iǎjNKw|iܹܹreUr caJ}A @j/d&Me˖I9w}n;c8p@+WѣhrWUN/&BfժUС^}}a_͛7׎;MV5kThh;&IU\9b+*KLLz%K> r2V:uS˗Ν;-[6ܺuK VDDI/^ݻ[p6^pW_LLzR+GHB&((HM4%IǏGʕK:t0o~(xfr `J(z_kҥ(xHLhh4iwJjԩS}z-M>ݪ8q `r *x.]:3LLLڴi3gΨxڲe"##u1-Z[jwTTb b-֨K"1D{KJWc^(*-5(bIٝ.lly>9-3lg&puu)S&[VhQر...zAdk^` Ȧ) ^Dd1laB#F@׮];j֬cǎ-rvv\rXr|988`ӦM(S^m"[WDdXB Bf~zi/"2Wyɓ'hѢݻvz OOOۮS.^B ˗زe ɓ'cҤIf^`> &i =UȈㄌ*c_B)R^wޅ/d;c""Kze!BA^ŋgEDf2ٕ*U*ץ۴i8 ǫWKWPXR^Y/^DDDDdS2?SVxq9rNhMպuk|RfΜ)ܢE 9HdSXR^Y7^DDDDd3x%Lr Ο?-Zٳg9`H,8eÇzDy^DDDDd  6H24RJ(;kQ(p9($$$ ##e˖76mSm_ؾ};jժ]3gbƌȜi߾=߯#1^Iݻw{F+<<ڵBÇQHIdnXlC/""""z ȒXݻw-[HҤzLj#k۹_...ѿ,X׮] pIB ҥK(Sn/FYs2%KoŜ9s0i$x~}͛g`EDDDDVYkIKKԩSpBtfϞ.cs r㣏>\"[dT_#%%|e .xxx9c-Y-B?Yky5ksx@TT={")))cK*'NF:쌍72"Ғ+SIMMxɓ1k,Y9<:tׯ_Fl^DDDDd27JJ(#G0""c2hܸ1nݺ]6??? 22ك\۫]6qqqq֭?kΝ;ѦM^zeJǏǂ 9s&LbpϟG6m >D% nR^&^DDDDdu4^GEʕpdDDYLFFڷoÇsرcao}љ]xYVR'N@…sԩ;w.Jcjժ 6jժڿ0"fʔ?VZiK׻|XbmY+ЋBi&i/"2WH=[W#G 888 ڵkɓ'# @cعs'n݊'*jsD"KzEY1"""""P(,Ld\\\qF#>Rݻwzejl|խ[zRK?QYte^\̍-M-[W6mxUɓ1k,sqq6*V,c$2'WC/""""8۷D'/"2W6! sIKw .>^2G}5k4^5u*3lc$2W C/""""( Ȓ̛7o_|)XU ))I>l-+seR 6u|DyrЋ,Fzz:2ZlY^DdluBt*̙ :t(TEFF>-ze2eԫW~)f̘-[HHH{|J3gDttmr~X"""""3}bҶ'GFD-OȔ+W'N_räIdi  P+Mdl^;P(?3/2 +ҖB 4IKKC>}_Ix 999aƌ8qʱQQQ(S Jv777=zT{\t kݻIdk^Y 6h Kɾ|+WQ`h(ezE=li ;̎NǣYf*>&MU{yyI&INNF6mj#}Gdk^Y3lڴI㒃'OƬYo޼'O2777ٳ銡?GFD5OȌ5 nҸĉ}ʶoF ԩ6l`И""";udP[Dƚ땵ӧ֬YNիW/.]=>cxyy4www۷Z2"m^>xO/""""2;iiiݻ7#mFXX/"2;|||b ѪU+$$$}ؿn/FBd?q8::GڵkmذAc Ϟ=CuٳgѰaC ȴXPҋBZZzꅽ{Jۼq1+W.FDN!`gg'=OHH~^l5j @ضm5j|u~g}FDDuԩL뫌!s\6lÑ???lڴWKd^Y[nr労mٳ'6lWWW@WFt OɁWzQcEDZ'dJ%tI&q@3xA0Jv{,X@˔)mۢt(Rw^\v PdIbŊ:XkѨ[.?~vnݺ\튯9s`ҤIZ+>>-Zݻwxɰ^\zQRx+Waaa XҥK1bxxxhܸ1mۆ}ʲի1|p{f͚ؽ{7} ҂5+k7xÇZU˗s5j9Db2o7֮]gHHH@ٲeQ^= 4ڵQЋLZZz`i/"2W!_ܿh߾=;whDEʕq-Z.XQZ5uۗL撆퓶1""se2BtAkĉhڴGFDze 6m!C`С? "##agg'{_x)^}b۶ms{{{m 63]իW1Oz%"""",-LȬ^Z x 6 ϟG|82뒒!D/#җ-+Kh"ٳCJ˕+g x{/9_ ȔXۥK}vy5aT^]帤$,YfBRRRvѱc< t[H)))ԩJ̒-L( ̜9P^=^QlYݼyǏ70رcѪUM/[W޽{6m@T/ĪUPreٳgF?} ȔXߒ%K{ 6mNxok? .vj ;f! ȨRRRХK>|XږxyyyȈ 3g`޽9s&D 0vxôhCΝ!@jpAGzehٲ%?+VƍqIDGGh@Uw^dJWOE˗(]4.^"Ez^bb"zPbC^DDDDd4 ȒpB ׫ ;v4,Ǔ'OPfM|RP^YKbĈjի1x`|򈈈L|) 888=zooou0`IKKC߾}{nM|qyC""""2d^Dd18!t?w) |L<2ˠT*g^-ZΝ;y42W!""?JvI1Riܺu <L|=|e˖=../_>[m6tM~S/uЋd.X"/"2KQk׮Mׯ_m۶ٖ"`ܹ Sh޼9]fQ5` JC AbbV_x֭3XRSS1h !xI^QF!** ;wFHH<<<>˧s{NNN_ B>5aEDDDD 9"mX"='dryŗ+)) ;vdſӧxGիY+o|Ep^dRWm޽سg͛7޽;n޼ ͛7zoumTV 6mһxO/""""Mrr2:wGJxℌrǗ;ۇ?#3/[,XBz<2tWnݺpv튱cǢ\ry&~/e˖8x d/3"`2oɨZ*>|C\\>}ŋGzz:=̙za߾}ߐUŋ@^DDDD$ MWXXJ,##"Κ'dӱc8q(VڵkΝ;\M&BbÆ jϟ!!!hܸT1ժUѣ 0'CK.Etts .CN:*YkWӧ_|]ٳgcԩ6l/_n!Gؼy_l%Ɲ;wвeKDEE_@:t 40Xk"U ^Y-[O>ԯ_͛7j*( 7nA}yu͛7UkbEDZ'dbbbЬY3/ B޽WXv-s<ܖG۶mqỶ+nXh}B|7M<*"^t IDATY+&O3g`ԨQXlv'''lٲCR4oWWWtIe1zΒ^#kIMMEqm@ձg %%h۶cpfhB~^1Xk"F ݗ|ZJJRUDzeY.]={`ٰw ۶m|YFƍ,7$""""d^ǎe^%JȻV?={ETT--Z`(]t^Hv7 'OָsرcKe˖ԡze*AAAׯ,QN}ڷo/;Q_:u¦M?~iìފDrbr/uk$''v/HDDDD6%)) ;vT j֬HW~p<ӦMS{M9D"„̉'hӦ|+h ݋^z!--M6.]K~~~ h۶-Μ9c⑑1B2w v͛KW˖-~z>}ºu0x`xzzVpp04i'Oh1c`aEzeN9m4QdIqѤI:yHLLB$ڵk% 3xbѧOQn]QH1gϞa l^[% 3,ׯ/vZǦUV2ea͚5EBB6l4}pttosZѣG (O^O|A___[շo_# 1g)J*#4cEDDDDdle3gtؿt% dpTzEʕ1tP}_3fDNٍ7_{Z2MW… z}aoo/ &|-}HcZ!xQ`2_GŊ3Y:tqqqZ[bŊ"**ȿzx|hU/ &J,)֭[p'd&NvB BTf;~RPls V*Ν+>Si[۶mMRΝ;wT&|}}ʕ+T~A*Tze ^w;v^~WϞ=u8>gggq֭\9y$/WkYzojԨ!F!ƌ#>QV-é*UkկW^^B0"""",^111y=4Rpp}gy=" cǎihx IIIK?6=z$˧$… 2NrrZ;OT{׫WĸqT`el^|nݺ&b ,UO< ѣAc}h۶ƿ~x~rr]6/29+u.ŋ`ݾ}[L4Ixxxdɒ޽{Z[eB؃@||<>cKjժÇpy82둔+WbܹqQ ~0JD`ʔ)={ hٲeJ>7n͛7k֬4hm{QHm6l@TT\\\W_iL29rVc+V ձ?3f={ƍ/_>,XÇ8mΝ3ʘI^LׯQZ5߸w_ܹsuԑźut#88B@R o>L۷#::Z۷oŋ`h i|EGGk׮HJJBҥqitQ~~~3g߿ѣGAcO>\Э[7̟?_+",, %KS^nDDDDxݺuK$e'Xzu'2y s!~(^(QEDD___wPD qΝlU^]]tɵgϞ GG ȫ )\\\J{hdzY&@bB>o߾SNjUT~ʕ:ѣG2nR)zowʕ9?ɰ^Ç /^ܰ0Qt?uMJ(Sʹ*U2+21""""qqqqaÆ (>>^TPA\ZJ־21˜~왬gn4ɫ 5kGGG}vxÇxzjtR5;`?߃+K.W=M2E=3F6D|YN /==]dddhe-[S 4ڵÕ$%%:udСl}ʼݽ{WmƍӫѸq͛7kVr6ٴxkgΜծ]K,00wUoųgd+%%E9##6lLk֬A?6QNjɝ9Ocs j ϟ?'f͚믿ƍ7p1,_v۷/ .m oÓ'O>ɋKctըQ~< iiiZ pٖvssCPP<<7d_6.oooO*۞>}S(G$7+'dooʕ+V|sN|jغuk0""""Ih۶-2 渿XbUzu瑑Xpl@ѢE%11Qֶ 9s* UTGrr2\"=vZ!pYxzzt ˗WhQh|޼yq_|ƍ>۷ԩSqq9.\ƍ 55Us˔)|̙]CUU*^O +åcҤI(\0+ٳg/K.!22Πl2:UN_l@׮]:zٜٳҶЫ H ͚5Syf͚ٶ͜9ϟKDEE.:y9!w/OePQQQBH7lؐMvޞry7n0vuoVXj.\(}O?xصkW3FNdd$V\y*ϯ\y4駟l+Plip ]tO?W^!::SLA׮]e n޼)پt8o-\0s6mڔc? ӪU"V^VT\Y(JYٷo_{-KۙN8idmzY1M׫Wzhg ѫW/#GLprrZ}%"tQNiB)S|~Me'k8{ptt*zիWe闲k߾}߹l_@ӧ UOIIReNʒxϟ!V%DRRRgddڵkkvvvbΜ9zqd' |j8wl}sݵkΩSd5ee\xe}x{{˗~e.+@̝;WsF֭[G ł ֭[O$c2_|)ѣG*V/6x\%KD6m n+1""""" ,BM4qRE+%%Eߋ!;;;Փ- 9A bذaFkDD8w]ׯE``С(Z...aÆok7oVJ*%o#Qxqf9z״ >ʕ+'VXq)fmIm-ZT$$$zR'NzE}cƌ믿eʔWPA<~ؠA+u}QN_X&N}Ϟ=+a0' īWDݺuU>6nܘdZM|)J1}t'2NNNbFzdmBwxTV^ĤIĺuDxx,KӮYFyvlBH"Kooox 9QFiGEEGx$^}wïUV~mVj履~ WWW@|z_I-+T*G}$J*|ĈbŊXg+JѲeK@ԨQhK4C/""""+"ZO| !ĕ+WDÆ uV8{^5*k1$ʜl(Zhڴ2d;wصkyf~oV]t%ۄǏM<ݶm[G.X s .,&N(>| i&i"핸Ν3ůXk2w h]n_^ZܹsN;{ݻ<^/>{dtWmժU*>ׁ}5G?Zy5 e%^DDDDu>|.Oծ];ѽ{weKTcǎ 777m;99͛?4$+k7V^WtA3F͛7?CL4IZNIa^*J.;tO uB ݻwgkwذaZogg'|}}E^D߾}EN >FgT^z%\u֕~"44To^ ty?CB={ژ={ίĉ?9֪UK y V+ ~>?_IMMGΙ2e/l !"EGGuָr労q Apd/_bȑ9s&ʗ/HOOǢE0i$( 7o^fdd͛|2ooo4jzW IDAT"uLٳgK-[7m4̜9S>_~%JFn݊ݻ}kƍptt1bIs׮]Xx1bbb4SN~6RcѢE?bp[?RL%,, ֭òemױpBlܸ:]|yЍ7PF ( *T}4*UO>U{%K z;t+9y6mV{Q\9|r>}y3g4+#2+cǎ\>W|m޼{ 4^戡be>v-M,k|ݹsG*UJ\zU~__dluBF%K޽{ ???0^˺tڵks=^PVZxe:~ GGG1a.?kZׯs]YӣB b9} jѦMƪo={L5uT̚5K>GGGT\Yk֬slѣGz*\˗/̙3x𡴟2޽{ѥK̙31e[j o%J+W;w ""BzгgOAcGPP5j ,,̠ϧ)))(_<>} [n_+VĔ)SЯ_?888H۟={___$%%@xNɈ 4hlق~=z@jj*vڅ@=G{|esv܉K.ݻx9 .bŊN:h߾=6m '''C_yԍlWx5mڔWx7oވRJ\a_K.1u[м,~YTC &ӧ+Whu^NKf>˧['O^28qܽ{VxB.]Z+'22Rl޼Y㣣EZ|C/""""3)~2GIl޼Y+SnWnDRRtR-~ M(uB&...-M>]vr u׳gDɒ%xOzO~7u W.ǐIOZL-keoo/n޼)k .ޣ}b̙p:_UT[lf͒M>|(ǰIG\L)k@GRR(^ *v؄/HWȺXELL쯁W$ʖ-u NiK~ ̔Yf ذa4JŊe2|`E`2^...m͘1C6H>*U '''lxerttϚ)xFY"pR9{+%%E,YDx{{~e>&L zw-[=zQ@s_^z뒟x䉡/f؃΋/ЪU+\vM֬Y3߿^rq_DDŒoݺu zln:888e,dLٳgK-[T{ァoXbZ9sLL2E |'رcG}=z4NhҚ+S B~=..}d﫯jl`` bbb#Fݻ?s_K,AttA%U8pʿ7n1B(PBÆ u!!!UwG}Oܶ-bEDDDdf?VZ6^^tAAAFnݺcx1„ݻwq!̘1CcȐ!:MfiۥKЮ];ڵ+uꏴӠA7nĖ-[x@BB3Gӱze LG/z˗/ҧ;Əx5͛NNN4hnܸ͛7zZ4^"C^=l[p|FxB Ç5_nBV_7oD&Md//5#"""y}͛sIC 7dQ︤!.P(TϚ5Kz֭BT*ŋEƍȑ#ׯ/Qzu:dkE_ӧOӦMS=z4{*&M$J*eВ^*=~xC^iZ땩[0G֭ٳg ;11Q+VLZT*Ş={|՘ 3>Xٳgֈ-[,ix_b߾}"==ٻ(m. ҤXbcbA-F5j~1jbѠhL4jƆX5*"X( /ceβpkKvfΜqq3gիW/7o\~X2^f"!!kԨ˂UVMx=c˘ӧxA(2r;uǏ^ߘݝrQ)Be?<ժUXme2msJ*x13ZJhoɒ%z > ^hj̙3ܹsgE ze^d2/^\e;ʡ)Rxyyq||}D LixVZaJC r!$S FEE̘Sfdd()  ;;:ttB'N "eI$WT9lllhǎԣGJHH ???ɳ.22wP;Rک*{ה9իhVU~46;F7vŋjcܸq³V^Z-ZЁٳԹsgu}ʕW?ze~R)yyy\߹sg4TET'NP2eDE2uPة+--] R~}~32pذa񕝝k׮~M/0|r\\+VL܎?׭[}3f ِ!C4^믿* vssSAw[N}5djLP ׫$˹m۶LD'_~ .ӧ?u痿??^B#F0\=z`T&M2}m^=zeƬIII S\+[pW^LHYծ];NOO7u@sb_r7oŊ㤤$u۷oGFUd:uwޞ;5j`GGG4jRRRH222^{~{ T .ԹΞ9sF! Pv\GAW---gϞͯ_γ.==ׯ_իW+СGDDhݗa1o߾ `+++&"H$uVQPʼ bccgv!B/yBB&E /&"6mGFFSd6lؠw^xBhhK$?B \J<ﱲgiӦj4h/_֪/ׯE ZYYիW>e_̕L&{rƍ ڵkgΜX .8p>|8 yd\D j1c"B/xYa۷o3g"b32׬Y DWd 0 lZCuKxxQ~~~ Sk֭k.Gy۶m,նyMgiZӓZ6M6FPꕥq]~v޼y¶}dz0eh߾x]x?ܹm+99SSS0`/ G,ÇyŊܫW/c___8p XoܸUb_ׯ__lTa y r*% qF^ ĉ`n͛\|y([j֬ϟ?+ ʒEGG44JNNf777&k׮tze9BCCUr|EGG+wy]|Yx+/ '?^ӧ]u1!777̏(D0 r93F޽{MMqx(ɸUVJߣ!CQ͛ӧD;6+;ްaƻk-u;w9sL}JJ^L_Zjyꌳ3CСCLD\t<{Πs,lzQ\\0uVұcG^`ҤI{VlY^x1;w\5J+wڥ8ASeWBd "E0OMѺ}MСC˜m۶֗-[T* ںu+)SFaM2^J: ̬YhFr;w\.71ݻGVNJ'N`ڻw/xB$ /4rH322[ntĉ<233iȐ!`RUXʖ-r}Rn$Hhȑ#JOOOF>r)11Qi^x{{ƍ)22ƏOvvvz*۷/zd_PJJ uЁvMŋga^۠A?T~[HHy{{իiŊԠA:~~Ȑ!deeفԩ@A Wq/ r 8p徒S;#GUxϞ=+Qa+O<7ݻw`ݺu7j(YveFv` 5k0ŋ!x֬Y\hQرcZKSED666gQl߾]!⠠ j>}`@^JNN`.S[P^,Ⴈ޽{1mۦԬ666||WA  3Çr45a@WquѨQH.4a6mɉ^|w_e)wN:ENDDTH}мyݻw:M)SL&ӸD"UVѨQTnFDDdccC;v=zܷ?7nз~KǏsu҅ǎkhf)wrOiԨQvM63.\rи8>}z~([ڴiu=dr:!?~hipЌ^eo>^hX>M2%ߏs6m{yy+7i҄.]ʩޗbbb^,?֯_14bf`"bz d^DĥJ2I&1D"ᐐy)_c5h qu^"ҥ ;88xe4_C Q|effWD fz-+ˑ^n]#:%___zZ@@޽SZF)|UZxS>ʕ+GL};w׸8;w(]?yd RM6tY^ ͛7yޞ8@mڴ8/y3ԸqcQL]zer.^+V=xJ,)qH[l ҥKDkt;K[FU1B:////vLaP[z@… BUBڱcy^|I'OTѣG~F9pVTɠVPΜ9C͛7W~͚5 $[v-/>|XiEDN]t'Nr͛ÇNoq^h rY[[S͚5^KIII&z;>|(j^P֭)&&FxW^ mR:u>mڴISRR`kݺmb25jԠ:uPfҥKԷo_a֭[Ӊ'TR-"]'!9tEg777:zhgQxx} FݻwGeT=zmөk׮Muؼys #;;;۸ѣGx9+m^Y ym˖-"1%SuU>0bŊQxx88q><===iƍϗ/_0.h߾}T\<٣r?[[[ڻw//̜9SeVZѲe˔sqqpjذ(ER4A*W_ѱc n?%%_""*Qzjٲ/EL=hтn߾U{_Ν;Ӂ $6 D*wЁ+tυ?_pAN*QLڳgY[[+~eюiժUDDTjU $__tA1%J/_/czUqF/+RЀtn7>>իGDDD'O6?^"___a:"^ٳ4m4w}8::җ_~Is%777{ 5nܘ5nDM4%J==xnܸA YYYѾ}sڝ> 3j(Zf խ[]tzяըQ޽+ܱcG:|hz /_^b())/.1@ 6lm۶Mz1K. Be\^ :\.UԮ];:~m+ R222ϏΝ;GD.2eʈgB/\T^۶mS9 ЬY4NVT)ڰauQv߿OC !Hhʕ4f 2ӧL2TjUx UZ޽{GDDw咽={jߟ9ږ-[zcC?S9==]3Ә1chJӁM6:[jܸ1LԨQ#C J^f۷oM6њ5k0+󖖖FG7o5ժUNۃnݺj^:OԥKm=~zAW^^4hmذA``fﳻ;Ӈ߿oꮁ'NTx4-ּf7o\c|aĿ(l;c|ĉ|;ɓ'ޞ9&&Ơ&O,G:uX.kg̙y~ҥK%k m.N&СCUX>u:uE; ӱcG&"vssM6;&ze޽{sŋ+Vl e+++5jīVDyߋp%[n^!D"˗k},^x1;88|J*qDD1LNEDܬY30/^p>vҸו.]>|hPr?~\h~YXi;;w"2"S+Ntt4(Wݻw甔Sw ߠ^ԩ{W˖-9))I6WXwŋW+믿o H^*11;WWWyvvv_111~1^zrw 6T;͏?6uW|;vL^9KjѣGZRT- j0>^PEFFrٲe>1c{7l0~6AAA*\\\'?ޠ ,c"b[[[>tmr۷o9<<>fW^||} $+󕚚*\$HxʕJ;u+WNK.ƍAZ^[ .x ^P *Oe7n bUч>|X^ZhK+ggϞq`I&ZߙveЮ]zJΝ;^}]H|yNj3 4ҥ0 SwdPӅf޼yj}1רQC+ǵkxܹܽ{wd\2wܙgQ ƃ eLfkkw g},ZHЍd^VZ֯,RM4#˹o߾immͣGXmm߾͛7War%w˸L]@Ç3ч;`/^h yKJJ>GtA;MVZ_`$PDFFR6m(>>^x?͛7 {X|9M8ʗ/Oqqq:Mj۶-|2:DB˖- &U̚5ϟ/looOaaa/?uPzz?@>>>{˖-4p@"";w}222hgK$_>k׎ʖ-Kŋ8ڳg]tʔ)CN"OOOΥMҋ/ʊjԨAo߾*֖KW.S>}T...N 648hm۶t j۶-;v0 +O?7|C\BjDPٵbŊt)OE-%Sn޽{\L;,޽{XbzTz@Y;T-[Gd2]ކ oƌz;gU?|PVԼysu3{*mmmŋ}<˸L]@;Ϟ=UlM޽2u:uJx~wKHHEqժU5!Cpff@W!==L20MXbLDsiҤƟӾp-T-%K1cf|5mW>1u9rDxڷoq/H":hze9UI$yѢEݠޙӣGa5k_߫WK.S{ëWbJC#2ud2nѢ^uƆ |Ҷo޼Ç?W+++:Ŀ;?^6˖-SZo߮L&#0a޺uK &M$i CY5tP^… ɓLN:53g/0:SȜg󌯬,ްa(Q5k 3'TV899Ys.LBzeTQvmNMMU^&oƁrJ~}6A7of"RJqݺuu/9 wMa 8p 駜>aaaloorcǎZcӦM}U 9q{SfM~(&&& w{yyy ak׸W^.t"^n^x[r>v3vݻwÇowѻSLa"L|dz}G͔֩sV\|Y(ȑ#9X^`^Æ Ce޽Ea'''>{,337nܘ_s{gΜ-t=2/"Zj~J#Gd[[[ïF ?+WN;9Aw.\`;;;Xw|5J?g^z|H!!!yi„ Z33]tIɓ'vZq:JPn(##R)U\Yu}xٿt֍Onq@5S+PѣGԨQ#Zv-ry=m޼ᆪwމ/LFÇ,>|8& IDATى~ ^Yw n޼9]pY`N?~n̴f""j׮ e @W˲mݺUt9T߿mkחٵknZ|W |ǵSgٳgA܍s1c+VL;˖- $;;LJo߾̏?z펯L.@//<Z*yFӄ^z?r\+?^>3~hdHNN2eʨ 4/ggg:t(Ϙ1[h!ߋt2ܿӧOϟv܉' /[L}^~sŋ4xsA{gϞI&qff^2jUjU!lۿ|988[ =-P f͚xh ::Z-Z͛7CiWrr2Khwb:@Wƍx stt4O2Expl"( F/v&Mh0buN>^`,5Ǐ7xz m:6lP|U,]Ԡ#S'''u Rh&˅; ?]Ɲ;wV[?۷opG3sBB0p{)^8תUkԨ666 ٹsN@ze-Z_9uHGuq?.\PyCfdܴiSsssS|yatyf^L= cH{#G'OG||^ܼ,ްapdɒWi&+X; ֹ?S+ΥKՕܹ۷oW;u쓒~~~*f͚+P!_^H.ZhZ1a^z5;%\.ZjiCW *24 c&".R/Z߽{!!!,JU~94iׯ/7dDvvv#G>}^ᗝw~}B;s1ܶouQ%K~aֻwo&, }ꢦjժ+3e}Ndz[|ڀJ=իp@Y蝙_|} ʼd2g%ݛ% iF޺uK=<==իWB/0[׮]CU@s=رcy֭_^m5yd}^/e@ɓ'x ;88Dʦ#[`(m 2_^K.rJ *U(A@fe{X933SvmVVV*$M8Qf͚ܷo_LAə2PyڌU107ol1$z x;wN[ ׯ_k|+WD9VVV{zz L *ltٳ':t(Ϻkr"ETֲƍszzAP^͛ YZh/^й=1JJJ^ 0 sU TB+[R)Ӈ###=zB}u ._a!WFFK㸻+YsWŬY41B mרQCzN8VVV:}z1o۶M<(\l۷/Q SxM8-KWL*U׵kpWUa}6 S~ݻw?sů >NNNLN;ooon֬׮][PӐK.+zu҅E>k`.|ʒ|+ʊo޼)1NhB ԫ5g/(ʊ7oެq4_&L~B/0+W PS,ڵks]!*^^SVi a%K5Eadz^ݻwyȑ 2) ۷ogkkkJ77o֧۹uF cccWZŅ;v4A\,ь35koߊrܦM )SF6tz޾}*T:Zp~Zc! Lʕ+'7yd='NL&S&%%9ƍzqTT^|9::rxk : |s9sf -ZPΝ;>ɓ\H*\ڷo) rdeezeY?Ύleeŝ;w_~DcΝE]0`fE8ݠ^ի.zj9;; t>֑#G>S KtVX! XrLMWdJMM`.WNWo߾>˗D[li_`}JDD^^^t *S}Gj@p9^$ˉtRA3gΤ&MUX*WLTzu߅UH$ԴiSx1`@0-Zеk(00PٳgCxx8YYYx͝;f͚t]vv6ߟve10WC@@޽lmm?py{{ɓ'5{:txUPA9P̏T*%///;w,zEDԩS'ڳgʚk:u/ B/0sΑB5e^ѣGŸ_x>IIIxb-Z… ŋݽ{hԣGW8g^` g}F7n{Ul=zN:+nܸADBwܹsiJ!2-+ˑMoߦӱc… 3|=}h*xk׎oNDرt;!^RJ\e )ʁ tf`'''9LbnfϞ-Vyذalggӳ} ۷^`TxƄq_y~}||Lݽ#w=y(md2ݻ7eFP_jj*]u癶988++Kv5=+͛ѣm6ꫯC%F[@2wm۶͘޶mzyyq||ю B/0^ˮ]` zjnٲAˎ;ah0 ^xsJNDdnR(T_r!2W...:}}iu m/uK͚5F@2w2K(U0f D#af&EDD? M:,Yb^!222t TVR*VHO퐐6lVVVqF߿(ǃPӧOo߾t9Сmٲ/vR^4N [boɓ'};vk׎iܸq?|IhҥcxbgLi@CUp-\fΜiPգ!CPvjժLvoVnݢڵke0 Mf8rHEi;++J,pǬi֭ԧOQ ʼEGGS6m(..>L-[$gggJHHzVmUR8@^^^j&j߾=թS7oN;vEjRzB :tprvvpjԨmذ*z𕒒BRٳ'ݻxLz8gϞ3iL-ɻwQF:O#J[n?l;::˔)#v|<3(0DӦMS2M~~~3T}Lu(>+^:[YYo߾ͳyʔ)󓛛ߺuK5MuئMNJJ2i(ze9BCCՕ/^Kxuhvuu3gYw ^ 3g *={ժU*첷篾JgF>|XwٲeF>(0 Uhhhz\xqnݺ1qǎy֬YydܱcG&"P<'Lj?K-[N߾})--~'51cU^ShL/0‡Y(={FDTlYjԨf:uSN2P,X<תUTuy{{Q`` mܸfϞMS5P``N*U ^L򢘘jٲ%>}Z6޼yC{Ǐ&((HeM'ORҥu':WX:|0uԉJ.MO>U233UB9{,SZZ/:z(=z"""(%%ҨhѢ駟P׮]>pXl_ҥK%$$A : Ȁ%bfTJIIUR DժUW^Y駟ÇK~d2SNъ+믿֫ Jcǎ%kkkڲe QժU֭[J.P,ßIC%"-[Pj'++ wxT;!{GAJP@~"x$(Cӣ ( M"R DE@z( ded$3ILk3$3뙽s/_>j@ٺ"h?CpXpñc̋/hrֹ"""L.]̱co߾Fҥ_sL 8p Xb)r%̓O>i-[f\n?mڴTzv$+8 5GMu%44̟?듕QG-N;vj$o73p@J_+Wvy5k֘ Cz\}P2כVZ.TPtl޼٭=W^}hzKhxSy=)y%wf&!!繾;bo1!@ozmܪ5k46lp9Vddd۶i޽;</^4mڴqڮk׮>ޝ QǕ+W@tA;d7UThw_1& :Ԅ`3uT<dmԫ믿2O<۟7on>ӧOOk2ӧMBc M/` 9szj֬Mu_Ǐ7qqqng[nɟ?d:ug Uz\CBB;c_4ޙ3gLJ6G'4 ,0Ν3$?ȑ#ft)9ӧ / W%&&k>s^V5+fLٲe$^p*Zvˣӻ(P|g鎟^3_x4jqR%J^#^ݱ~o̜9ѸtٱcyL*UPTZ5sٿLɒ%Ͱa$%%':oJ2Ok SD kMdd4+W6AAAu .8~Sxq'r̙"_|sIJJ2< /PϪU&O쳱] ?k|ݸWעEK.mZje5jhnwܹsK'ߐ^RJf„ fԨQ)|ӿ z5]n[v- 5{ldiӦMͥK|%KL@TfG|=zԩqaڷooNj~Ws1ᅴ)Sڵk;WJ- Ä 8*,,|)0 IDAT=xy]gϞ)Lrn|vd꣏>&U`3gӿ?OgϞ_ݻk|W?;/Z;wnՖ-[ZG|/^<ŗs_B+p;vΝH2 4pZj"-?Lwr]v)={y衇'Oӯ_?CÄ IRRcٟPߦ.[t]wǏɓE]G?UZzӿ]PP>z.wwQ2;*Qٿ={ qf͚W_O_aaaf͚5>x@hzt]4qcw,c…fӦM~_4Lܹ=+[lI3fʕ+e˖nS^=3asY_}o= ɬZ^jz)+U涇r,ub 7T7/SسgO9uꔹ;-\b"##9++{?qTcPPPG|}w&44HKD;vf͚}QHH>}Okٰa/znw9s[l߾ݱ7GxGzV\-[*..q5`SeMpyeTF Ƿz6nhy{W4c ܽ{~T۵vZ͛7O=Os!{d[lq|ڵti5nX{ŋ>*"""|rrze+::ZdI 6UV~WJr͛PB)nOHHPΝΝ$+V̫#8[Wׯ_O111jԨ.]^1cMm\B2+WUVN A6ʚΟ?SNzѣGzox>}ڣ% թS'͛W۷Wxx׹H3|7&gΜNKX 4XYʱc;c~#GḺt$$$x-[8ѤI>M6x;w>!)),Y4iZ?n6l^yǘ毿rSNի[^2|U^XCvXƌ3+VL\֭͹s<Xb1-ez彸83ydSf4Bxxy_ݺuOJJr۷"EX^0<88ٳǧW_uGÆ }:>&d۷o76{nN;)mcq#<3oK>Ku2]7ovٳ 8]nvn:\| 1oS=X?ܣzSܾg;wN ҪUTD ƽƍ+I*Yqo;wN6mryŋh߾}}Scƌh̛jJ?xKk׮Z~J*e9wΜ9G}T;wtVxq :T111ѣGuEm߾]/rʕK,ѯQ2eʨI&)nߺu_O ,PXXGlʕy/Lx:tݱ]:^:uK.ٖˎozɓ'W'LW^1Ԁ3 _KHH0:tpjݺuGSƚ-[ '|>,\дnڄ{dD…ڵkFdFHJJ2_|T[Gxlذ^yܹsVZ/88ؼ[?Zjiւ?<_~e5m$%%Y}իNuǀB l-\-[֜:uHo߾~ 53fjI{QboLג?4I5rHOLL4Zu|rꫩYvms K.Zi[^yo߾}{==EC GiӦ~m|ݰuVӧOӨQ#SlYd (`*UdZnm>cs H;/^4<˗/YrG?>MRRW^c>&>>q1_~q"""LllqB ld4Ne䃏??ޔ,Y2 {ҷ9&f͚Θ?+ߩ3{lHLL4QQQ.kjb,:w)^x\rYɓ1F5,eCW=z sy5m۶5|Yz_̆ ̒%Kȑ#MTT)RbfΜ~ndƎk1f~k|%&&Zw\b~aWpauVǹpႹ]֝R_~%#%z]vy4q$]Zd$^d^ݱ!C8^H8Yti_nkTHeRĄ o*sZҥKxx\p NsSNNX]~|G&$$ir6zk׮.]8^9s7|Ӝ>}:m_n-Zd6mꘔ NsO?ԩu_'O47h;W޹vѡ 6r)MZ[/9s47'OLsXK/}ٿl@F@6|C[W^u:o;R Æ K$SD 駟:iذdrՇ=VLF{勣Sunݺ^9ttkuPPyG͈#?~s1vZ˧橧"%n>j%,jG5.?ݗ$SNS@sY +$%%g}͛'{W^<^bbi۶m%SO=e&Ol~W~sQb ӷo_> d^dq˖-Kz펕̝;(P\vH.<{5'N4Ǐw>11,_y睎 onń aڴiNGPEEEl *8>^ٽ{wj5k/f+7-[>|1=ܗ'Io߾^eENRRٳ_DzGy?ޫ1\b4h<; dY˗/WTT^*I ȑ#էOe= .t|})4448qmۦnݺtҪP|A5lPe˖?={(88XcǎO<ɑ 0@v\ϕ+.] ژ nz畔nsޤI?~  Ǫ^/_Ʉd+:tbcc%It42_5nԞ'Ojǎ>zc^u92}s~n~/q|^?\C Qxx1[oiܹ :Qhz-[^4c޽:zlLRbbt[ǎguU9rp{P ڱc6mȦ?Ç_~.\gU޼y}2$mV;wT.]<:zPB8q/^,WrUM:UTdI6'Jm۶9~>t/^yF#nXd>cϒz"%DGG+&&F5hۊ+jŊ<d v|oҥNܼy;ݻݑ6mdSP!s ٿ2d^CBBL {g=Y瘀?z. z_7Ιl۷ה,Y2ZÇ .-GvF/:8izDVk֬֨Wqu/WP`o (`$%Kx=6nh^x7o^'w&22̜93ӞpGϺgv˖-S6m5jTlVr1'N)IJKÇkҤI)sw(::ZѺtݫC)w*Qʕ+R2!#n5h IJh>|X֭$uE+V4;*TCjС:|bbb_)_|*RjժE#o}k֬i_7 0@o={ŋׯ}%IaaaV^yˤsͮ_zJgVTT-[qKvڪ]&N{*&&FW\Q|TD ժU˯2J1xo…zꩧtuI42R5d5kj˖-6&r֬Y3-[L!!!ڽ{#L/f̘{έZ,-۷ٳU`AܹSԦM{nJLLtL$vmZ|A̙}?VHHO)SFeʔQڵUV-=>} FG(#l= Ă LhhR+G;Vѷo_e!S]J7/اO,>}Ӓ{y'LZ]H:;wcbŊEB }sι8Stifk奁WQ^=k_tDxbir̙cDDݻKaj9Ps뒆7xoӦ?ᗥ{ؾ\r&wnՕ˛cǺݻMHHM\\(4pO3fݱ[?`J2'O;ŋMXX`'&d_|UZ5qFSP!5~t'ӻ.\،1\z5;F޽P'22'c? >q=qfӦMn|z7|5ouϟߜ9sXv2=z0yo1""|WnƗz@ZWtRnMbb̛7'e˖;'Zjŋz뭷$Ӻuk^'  @͛7/Ekرvʖ/^GPPٺu ȶtR bBvرT'nuaKGs)S1b9y>]fڴixܥK|5M05n׮[G*ܐdkӤI䳿Ðl22?>IP3tP/6o>׏?u>Kٳgwm$'c@@?:tׯK4f IDATNpoÇ\r)noٲ/^\X`ڶm+I;v,+PTոqc>}: 0@t\?r6lHʕ+zK 6T"EtI=zT?,Y;vXʗ#GYrȡUViΝϞ= Z^e WwѣG+$$$Ξ=Yfi̘1ڽ{_͛W?Vco߮h}~ռys_իWK>}ϟ+!!!DŽjيrܶn:EFFҥKڵk_W:u?SGʕ+tR=zRիWOժUӕ+Wxb#7o27W_57˗/OEXvZӮ];}qiذaFOy!b޼yСc ;V=z9'|}O?> N=#I7n7;A pwׯիW+44}?^|F+Wx}uV/_m6}{9M6o?ׯ4i 1O?+xy|-)UR7{W5zhK:xy}JJJxUjƍ PW׬YTϱkر?,Y$A^VZ"EI&YjxIMCjϞ=z#G-R^~@ׄ Tn]۸qcYq^R.]hN/^̙3} z9mVfJ|7.\XÆ kƌںu{1ZVXA M/2shxqN;zϞ=` Llݺu`կ_߶A ҥKkҤIQ-O?v^ΨW˙3-Z뱂ԼysmذA~~aoذ{=y UnZd^VXUVVZ>ETT) 7 ;w~ ݻۜ nݺD>ѻwo}ᇎ7nHK؆zxh|_)&&F.\PrTF ^dB^ǏWnlN?~\w}Ο?cBBB4i$uyhʕ+>kw1!$&&F5Jջwo͠TUwY͘1C˖-Ν;ui\rUV-EEEf͚~I/:ZJ5˾Pׂ Ծ}TW9rh̙j߾}&^d2s3}Ժu4 ƒ%K4h IRկ_?2ȪUիW{d|>}dP*xzw:uzѢEmJz5iFfRhhhILLTǎ5k֬ Ld}4$nmxkԩ1'((HSLQ }ŋu_~iQڵSbb$i*]O du4ğ_|Qw}FӧOMBBf͚jժw4J*e˖)^=&d]UVMVroz\\:tu:"nA1FT^=5nDWC6m_($$$$&&SNZ`A9vZhG#&%7j֬YرAqڜ {nh<ȑ#իzHUTQbŔ+W.]pA֭[W_8z7ߨbŊ|Ƙ۷q~!7|࿿gcuQ۶mS2eo>;rDK.U%IaaaڴiWns*duԫgj߾㋯j)kuEǏ?e˖;.hz`iӦK.JJJD+UΝh"N:ZhJ, `BU]vʙ3֭[%K(11Q ʕ+ugPz}c||Tn]ǗƎ_~'c^e_4$qƊT\\kOʕ+ ^dS^pjxM:U;v92̙3̙3>788X={￯0  5jȭ%ho?~}7Seoԫ#))I/ .>׶mԺuk:tHԳgO9GIרWX`ڷoׯ{ݝwީ5k֨TR~J>^d ^̙3:tƏxǫUƍD*|  u6hx*{9scG}TSLQٲe=#!!A'Oo+WHz1c8-M  7xO?U׮]ix5i$M<~z7լY3-HLpE˿Wُ1FСC%Iѣw *d :Tv풔w;ިW/^hz\5Mgyd,1ڲe/_M6i:~PrTV-=j޼J.mcjdULۼy4h8s/^eocƌkx-I˗Wu=@ʟ?N8C)&&F?rB4uThŽlzL>];wN~x~F V%%%… ו?~!;`B\5dȐ/$iѢEСEUhQ?Q{L+WLq; /s,R 7U`A,X225M6Mq /^֭[kɒ%ʛ7o͑#W~[>c^;ѬY ;YՔ)S/y)ZQpƍkݺujӦۗ:2ed`2dw+eZ%^78 ?p>}: /2wVXQjժi֭j۶˖-K zO|׎ixޡM4ydKN 3f)1!xիzuy^~FԳgO\RŋwިQ#S!;^Ǐ׳>+c /Ghz#5:t`s2H {}~^~F?nݪzH9sOd1v M4Iݺu 0!Δ)STZ5^~B_UV)22(WAk׮4\5fΜۜ RbB@^+IhxȔ(W 2O>Dݺus4BCC5gnd2 @^@đ^x@„ @A(Wy1 / z PP scyC{N sUV6'(W 2? 'Ntjxi1! PP ^cȑѣSkΜ94dJL+z Hȑ#;8«e˖6ט(W  Gz ^ 2 @^@ #F `0! PP &7#FP^4oHo: /2 @^@cyC5|5oT2 @^@d1vNÇכoN @fƄ @AiKqqvM q7劈ɓհn X)1%RN)dk4& Le ]5@璴T @6`4p)2%ȶ F @`@^4 Ȗ zq=<<\ , Sb@^4 kbyCɓ5qDc@Ν;8B ʗ/3gСCXc_(pz-gΜ;FTItI%\`*z?-[ܖ{ܒݻwEY>}_||d*ϟܹs۶mB ٘\ٳףTHk+}[J7;!i=q~9ή]t]w9o߾]ժU1~p\߼yjժec"pz S4HzmSpNT!r BCN+]Μ;@ʙS x?$M[%&J $/#Vi`Ś5Сv[b/_T2v?d*2-7WƌΟ; hPFΞ; h@HM/HҔ)!<ew g۶I&%/{Le i,SݓLV>kWGNhz@zfϖ.;OS87O+S}jN[$$HӦI7ڝV'7);S~; W*U M/pDž ر޽v'ŋ'7)3ѴK҄ Ү]v'EHRXIenN ${:LN; T)Lxi(Y N!ii^}M/ܶmҔ)R|I`ETvpҤIҕ+v'-ZHO=ewlXrvU]J ڝwI}fw XեԸ)5^`ܹW_ٝVEGKUڝ…vU}H5j؝"ۢV%&JSJ?dwX-*ew#͘!I`UtT)%^K ]N+InRٝo/K'JfwXQԯ+I^୓'>; T)񕙜:%!>lwXQԷ)^ J#GJg؝V<+vpvpr)u=N_>Dr$eK驧Nߒ:|$Y3gNm_;Nt7;~O; IjM/ Nj԰;E NxC~Sdy4׌fL>Bo_lYS89SZo_\9Sdi4.]J>۝V,ܤ;߮\I>gܯڝV+EGKy؝$ˢrGv'+&7)2ӧ#CN+ʗ|SYM/ÇNٝVԭ+iw gGJÆI'OڝV9s4~Mcefͤg;ݻ DiDzYSd94 #]+͜)cwXѩcvpOҴiRRI`EǎRӦvRhz@FY RZvpܹvU&թcw,d35kNʕ;?*:ZPYM/HWH|"I`E޼M~G 2? N; YSz-S8OiYM/VƏbcN+ONl>i8~C U6;iӤNl&i5~A $פڵNliSKzS8ki,S~A nf͒_?;Nli2S>G nȝ;?Iv4yeI`ExxTBv'ԩYM/'7)21cN+JN>+3pA;Vڻ$[լ));& .?nwXQ۝Ұaɿ[@@ \y1Nls.\; hHzS8;p@=Z:w$hz@j:t7;M)SkN+ڵZ;[wI_؝_KfٝV!կow g+WJ_|aw +4 =Iwiw gs$7*W;s%KNXF ܤ(X$~=yMN+BCEڝo ԩ?۝L):.\Ǝ; (Q"w*($xQ?^ڽ$hzȺ|L^:~\6L:v$JL}[ IDAT=yR#QhHzS8;p@3F:w$ᇥnNihYnjNjζl&O^; h&l&}gw-4=;+/;-djNX-Ulw gsJK؝VEG'+3;WZ@hz1ֶ mo$$HSJ?lwX*Q$3F1CZ$@hz7JHnRٝo/JK{؝V-*T,.]&Lv; *^*Uɓ؝V}wߩ#GND |aC饗Ncᆪ(o"Ev.^'`4 0j4E}6ł 7XPUTDu0 3{g]a{ hIHcNJN(4XxZtl""""""""""J@~S(u XHJѧ0h֮E'!RQt Eg۷NA5 Et Ex{NAM/""""""""""yxR'{NAʚ1h@t ENA^DDDDDDDDDDRkkIdf[.NB*V"L&': 6TJ>K__t,5@`$ ss5ed$:ID^wNBĦ˛$2XQ|Ɨ:-BCE'!-Ǧ*k+:Py"*JtRFV€%KׯE'!-Ʀ $:;wuQg_N񢓐bӋ(t,:"__[t RȑΟnd2IH EDDDDDDDDDTT݁ DP?oS&MDPtgE """"""""͕gϞ˗x)}HOOG\\tuuaff055ER`eeXYY|򰵵EEXD L<.:L&eat(: ) "RHHΞ=gBd2 $$wT^ݺuÀбcG HD3~~~I7_bĉ]hD@^@Ts$Y<֬/X4 =VNLLD! Ʀi\7n@ODZ%>>'OqYQAAA oJ*aȐ!6lg/_ .#\ll,~7]]t+#:i#:%:I `?H /7czzӐbӋ\D={#G-֯IO>1|k3f'|Ԑ;}={`ݸqd2H;<Ο?F҇Djdxjhժ;;;ёH[˗|Tt,۶ɛ;NBbv\9It@lzQS+ IIIGgϞEffHE֭[4h4hիWM6#ѣʙTʔ<=卯Di䒒uM E!Ml 64 ^DDDTddd 00 ."*RSSqQ8q222DGh׮+,X#(99'Nđ#GeTXQt$6ի̙dy~VMto+VȯE! µ%XYz50b,_/^dË1ydTT ñcǴ/LM6N:سg8DDy:s 6lcǎBڨE `D)=} ,^ z%: i˗aӋHBÇGzdDFF1h ?)))͛7ݻ7VX!: iO? BÇ5@\$)?VbcE'! DG(6VZ֭[όZFF\]]51>Ct E/7NRzw -Mtlz0h޼9\": Q/_d2QHL 8:NaKouN?]D  nݺGt">>+ұIDE[Nc윩S33ibnbVQdʛg}ӵڸQ\ /7i FR{lzSzzzGӦMѬY34k 4@ɒ% U755wޅ/O?iiiΟ'O`С8~8ttttl"ʝڷoVZyhܸqflZn֭[c֬YǦMn:DDDI???]cǎ-:xP0^6oƎ D)0=]]I԰/B:tHt,=&LAFlz)IWWcSw'''tA%6I&hҤ &Ol߾ׯ-x9y$֯_o$"Eԩ:t耎;^mѕ+Wٳݻwc RsСCϢ%*2nn&ŕ+d9z(WNޔgx5u$YN,,#D'bBWt"""6l-[cݺucGݱvZXlzYd+ʔ)q֭[E6md\2e BCCl<"m-Z`Μ9z*^z={`ܸqW6>!CBҥU:ׯ1|A+wwzu) ?.:)][t Ev׬FRkEDDDY&6my0r A6m_`齎;… 8r&L0ѣG*H*U | >sCc300+sΩle˖ *(GJI@L4r%,,GGi 卯ɓ峾Az:ijRtRsEDDDZ xܻw[nڶmED ;w.BCCqy7N^p3F3?|||p)Amʔ)`˖-xۇCjLCvvv8{,O1i&'SJ&:V<ac~ԻwUǢL/"""EDTڴi7774^;v U6'uV,V#*\]]ZOOG C&I>1m4s%5Ҹ10}:`$Y""ŋ~7Qx__I| ,Z$lmE!5U|~""""*\022`llƍCZD)FpvvƋ/T2ƍ7pK%6f K^;88>>>prr6Qt ~-_ZP]ѭ[7zhӦ '''8:: M6/ּ~:.\X鉈T'66VZ""vijk׮գ"&N>zBt Ek 2CEP!f|MlzI0`U777亱L&C@@<==QJi?:t͛o޼QADDDD/^@jjdT"Y-"nޒjҤ %G$_/ۛ j{w)]l dfNBaӋ0sL4hCFFF322q㉉XbjԨ~z Dff&tu9IdJx7"* S=\N*Y-"SId-F%㴿?nɏիQ1e дZ'#3>8o길'-DPt({T@lz'p|(]k׮&_|,"""""UȀ5{S.3CDp=nZ####޽&&&%*6<=n!̓ _Fas6qwDPs'pTlzٳgVFbӋ ((HҚÆ i(L:M6ŵőҲeД3]HțmAyĉxXt16<<33I6P>ETwc*dɒEFFl<"""""dddয়~%$ID'883f̀-Zǘ9s&;;vv& w}036l@jqއJbbˁ'OD'|`ӋBBB Gjjtqqw7ũl,"""""lذ!Ǜ c000&i/_bÆ ޽;j֬  &`޼y*MT,5oL$:Hݻl=I m_,/56 ݻwَ%$$Oec`ĈWjDDDDDRzfϞ-iM##l vJKKãGc+Vѣq)dfflYfa*OTl} 0|;!!hߎEyNNȑS(zX /:Qq t~Sͦ^ *V(iM"NZZ<(Io(DEE!22AAA Ez/edd+V`E:.Q2l p$ 5=cp0zz#ܗ__GN5`F`xPt^D`lllϜ9׫o6m`aa(.HDDDDTXXb5 0m4Ik0p@1Trؽ{7Zl): 8QޤvMtǺc%̌E)8WW * |Yt,ǏE@rr=7~xڵK%a„ ڵ+Zj1 +)) CEZZujժIZctttlx`g':}?}=^e<=ZDP{7g5)6 N:KMMŐ!C0m4ƚ5kN>H^H x5MLLO?IZc4h???o033x167wG Ai':Jɯ)ssI6qVbӋ5jLCƍq"JEDDDD$ޅ C+9sFDD97n޼ۋCT|U"oRZKL*VEP \ <~,: }{ziElٲAQKݦ}s}f͚ݿ=z@1c :::Ep"""#z 000@2ePZ5Ԯ]%K,,wA|۷oqMDFFݻwjԨQp-<޽9,--ѰaC)SP#44111044D2e`cc"Co޼!C)i]{{{L0AҚDD9iڴ)\]]1x`2"I4iL,Z$:I.YVeLX!J$")%)iixHzgw503gį8Ө0c0$Y^_fs$ ɘ>}_4֭ NY5jܽ{7_?wΝ;ZjaԨQ1bT2233ݻwxi544D6mзo_ :TOpp0Ο? ϟǓ'OD(QBqqq߱eܺu 2,[=;;;`ѰWDlٲ;vKrF__-[ķ~CWWfm6ܹΝCzzzCݺu쌾}QC"<<\K,uB /0l04nXt"Խ;|85gʕѤfMԩT ml_*T)jfdfś7OVP?|̹;w0vrl:UhtDE6N%8X\ސ+[VtǦx‡IIIhso߾zΣG0m4̜9{ѣѥK7LrM6axI ___bƌ3f O 2>##wݻw1|o˗/GÆ %FDDD9sĉꫯ>:럈ׯO>={D۶ms=$4xIq$ #:6nu~j 3 [KKZZ©iǃ""p v MΪ)upן|RcڠAfd 7\]{0lzi͛7+|Xf->s*sSSSw^ݻvvv * inݺ#G͛Y[[e˖R J,x}dP;)) 111Ri6sss:u UT)tt?o߾Ir}CD$x{{c~EM"68[9~l\Lѥqc\X '~U+1DDL(6 TKKItItŦW1cƍh׮I:+W˗x +,, fBժU1rHɚ_7oƔ)S5eT>7Osmw^|7y>nݺ8y$^6lXYb> @GqF 85BʕQ^= 0Gݻsl̙3ػw/NwJ.͛7# nnnhѢ*W5kC_Ct5׺W\ӧY={fhXh?q0z͞=7nP:ѿ2220x`ܹsG7ou>&66֭zD$[[C%@*牱ʕ*ɥ͚j1F*o|TDk?+ ^ <|(:VґiؚW׮]ѣGDEE!::Hgf\\\(Ww)))r.]0˖-|icccL<ӦMR5ЪU+*PݻJ]kkŘ4iRk.\񜁁_`۶mZo}ݺuos=_n]<|(]4N86m|nbb"Zl<~)=:9ꫯecy& wPZ5DGGg;׼ys\r%2(00u} LD֭[1bݻwգ/((5jx7$Hƍի%kllW^.C{fffcHFGGO?T H 30s7x0)*gKR)5TBvvY@Ŋ0 7T:N&MpzR~~NSWm>#?s*MiL`̛7Wƞ={ .x"""bU5TbHp/^[n?saÆ4T :4[ 7ixҥKx+P z.-- Xvm7ooPX"_ /(UT!---_>tĉl /Xpa^`jj1cxڵk? o\ /^^ / +*d2ۇcƌHIIHt%IJ~A!^ X`°RW/G֭U:O@;1TcGDP ,_ps:5j֬):Z Akԯ_gAAAAСe SRR ]%ǏÇ6 ^JKK ШQ#.yH$A>}DPlYۤT)3 R8o/'R'nd9MqMZjV*zM6Ç9sJ*MNNƀpԩ|=>11K BWԩS.WXP/ ={~g5kRs=?9rAAAَ4l0}|}}T]"""^.\!y-Z`Œ%"R`` Zj 6v,жNv",5 ? 1n㔿モR'g۷N54ebbkkk1FN|hTT gFpp0N<#Fz}t 4O֭[͛u666_bEz¢355Efr=oggΝ;+~i/%s`zz:NoF^ z~c׮]^ҙԏ.$EٲenL8GVMDZSGt E{GN#F`7QY"88Nh)PV-zJt d(QBt '''899!99'v؁cǎ!99bbb0~x:t(mڴ)s-[,^z~ÇB~_SN\|9s7Vzjժzm} ٳgs}:6oތk׮۷8w~GmV%qA8;;+u3+|yyBU".XxHtltttqd8桵GnMUuYpK"bK pCdjjÇ㈈ҥK tZ*s~~~n:inn^ହ =F^ )L(/Jӧs=sN<o߾Wtt4nݺ///9.DDD1֭$kע&"bddva֬Y8<ñl24iҤH?s ʥ oRWŋgD'ɦtɒ7kJ`/"]^_Sᢓh,6@ ;j'ND`` vؑMǏϵuʕ\'eӫVZ[ =FaLR5Ke?猫S*W7n'"...ϱT'iX>TI 믿VIm"n+V gggڿ?\]]U:V [)^^@q/ +U_J^7*6|ڵƎBQh(t,a4Up4^Ň.Kܻw={^£\W?~8,YP?TD TT) U5w DlHD8;;͛*)S6ч:v#GhSV^͛7t "ҿ?Яn֭#13u+Ws$)L>AS({X+FBD5LQ255EݺuQNQ4£Gϴ͛jٽ133Çѷo_>|8Lkv<444礤H=KK\NjtbF|Ϧm۶ׯJSfff$""/99}.\~-~'&"M&Mp9l߾&L@LLJ7n6m뫤>;Ot,gQ(0#G9=p"ָAKTQ(⯿{bN#^%KDŊW\Y`!!! tuuQF TR+WFʕadd333D7@}- !!HMMEXXr!R~}CݺuQY~mqF,\|*U);vAΘʭٔ "^y}}|)5mۆ*UQ"""v6lΞ=ǪU$"\::::t(ڵk!Cŋ!C'J&ݻdٻWsI|޺5V}x>>>>IyL~Oazzz]4Y!QQo>۷/vD$\Vf IDAT*UWWWYFwE.ym"&^N# l"o|A0|I^wO^)?DN&Tǎh ]n3ϟ//[2 C 6kԨ<0̟?|dKm۶?>BBB0{lY0fIƢ,;=֫W/T\|0yF\*QD猍y7o.>lῳ=T)33#GΝ;UR[nرcgիO?y!$$DDZJ>KKk(Ա#ML$y}Iss5{ӬbLc^5kvUVlcǎիَO0ׯ_G޽U~7!̙ooo7k֭ڵkU:pW@@@>,s+f?pɒʫUB4ʕ|ddd%!"""m%0vXlݺU%۴i(&"RX @ʏ?(y]"fo/oRH`b <\t y6ּFZ_$* X(4V57o.99>|8/_^w2<_±)S܇3N>"1㖖9^P/^(td\UVMq4ǚ^EL&Uv\˖-qq>N^۶mÇ%KڵƎBQh(lY&I<^PD^JZSmjN(<tItbO^ c咍QPnnn C(ʖ-_zӧOVVV9xݺu(Wyܸqc4˗ϳ9~d2b*߰aC;v,ŢEХKIkfdd`…$"}N`:tjSÆ(%,OJZO|嗢S(a+%*mze@Y_N:혋dv)![dxP˖-+sjiӦ9>e˖y֓ȫպuk4Jʳ)xE$%%a""""3fʕ+URv8ydDDJWW[lukΝUD5 Yt E}}gaHIt 6 -Vtid;֭[7+VZ gffbhgz'pȑ";ԩ 0''<7}d^|RJSNڶmwaϞ=EfԨQgϞu5""uUbE_sNIk?݁ DP?o p5u*Ф$mz͛7kܸq vc(fڵ+}(r?E0}ڵkَuc^[[[j*>>>Iq#ڷoy̔IDDD̙3믿vJpiب>}W֭[%GD*V"L&': ׮-i=/@ >ߧ覗 ʖ-HLrؠB WVjjjc/^t'meccCCCc.lpAjՒ$:7ce$]p._>mO YIڟzuSKmC]JHHݻws=M:Cq\RN:3f8֦~<<~i3 b۶m9reN'ka?>OH2e/FD$>3Yk9rDzD6m)4I/A3=-QNz))2-['NAEr۫?$ڵk|.gw$kZ;&N( W⣏>QECСCѣG\i8:u*5jTZO&Bg3gyOdddmjժ3kvލQFiZh T:0 ?ghFӦMOD$'|"kK.ZBݻ% h>4 +gJ%JϞNAZbKKr(?߇Jķ~y+++)?ر#4͛ѶmM%kkk]PK,#?,twoqm۶^:'11NΝ;y>)) ˖-+t]غukB9s&ի5k׮Ev |oz ƍ_lDDDdVX.]4:͛+RH$WWWT\Yz˗/eG uKtֈ@׮Sh:}Xg]VlzgݻNAZ`KKիWqٳg֭[@C'''&* 93gP^=;6rsMt 14ΙbÆ / {Aٲes դ{w76שSww7/ލG}׍ĠA: ;w,p]Z%K`:t( \ ;v쀃Cם;w5ȑ#qͬ{!Ν WWW,Yq[[[ܹeUV/|o>lRDDcǎ͛7eG {(s3SMNi.`6+kӫ-oo?epR<~^~Z֭[s} -/_~@ƍڴs#֒m3'==K.Eѯ_?Z QQQ9Sոw,YmۢaÆ8tPlll}vO܍7ƩSPj碢Ю];;vuΞ==8ުU+5vZL6 uƍz1b-Z `ٲe5jj׮ׯnJJ 6ms4ܹL6 4q/+v,kƱcP||KJJB@@:uKKKTV m۶EfP|yKncc}zI"""2iժBCCeG [ 06ǏtH+^YYH+^(3a&ĉQN <|7o^%j5޽3gɓػw/>7k(y{ԩ׿>={`Ϟ=RJrʰϟ;fӦMvڷ.6Ǖ+WcvSTT:w.] ͚5Cr吙\r;v5T*xxxyrܽ{y?WիoL/>rƎ[^K.۷c֬YZ]f ֬Y{{{ywq% <gϞ}iiixQ&UZ{AÆ Ϻu0rHE>|gnn۷C&"75jԐ^xxHaҥ=Pg1$@24CUIN/)=IIKJScc pZZneڛ/_(UlmmaffkkkXZZK|111ǣG\M4qI$#'''XZZ}/QFARaݺuӧѣ9Kܽ{@cUX>>>=z4LLOlٲرc///zc#Gȑ#ռys,X 0^J%K`9u+(###1sy벉DDDd6mڄ#F(ڳg>Ck飚5kZ/""Bzy@ =SԤ>]tltO`rBKZCRV U&5SM M/-o߾Oӧ ]Νu>fqRPZ5_uZl#GΝ;عs'?أ+7NNNh߾=^zxTa =zl2>|laa={bM4Kzsilٳgjiidd?>|8zj\v@ﵶ<<<иqcmٱcLkb֭lxQRreYfgR6²_g"el L,X :IpOJΦMɓ__I-*c%J޽EG(VV\ :֭ubDxx8BBB/^~(QL899Ut民>} !!Nµk8 Y&5km۾~4mT"#Ch PB Ə#""sBCC4XYY5j@˖-{FH^"""ҽ]vaСSacӧ쵉 ,,,r-mV!=qԡ'P!$@Ϟ@LX4 (UJaz%[-+>o>P v$6yԩ;&:J6mFQh1Ujz:%uSʕADDDz:t(eeMDdlll"I`ر#_NY7P`K DVRZ°arNBy0~Y'Odv! 0622š5k0tPk 333j)ұ]mD mMȰ%nUgϐ)>ӄ @VSP* b̙cI&pssdtORd 6LDD$11QZE&Ć Sgg)4m>,{ِ'OdWM 7P 6dnݺ VӧO5/^ѣG^Dr2bp$ I>Z Z\*kًZϹ|yYP$vDd`ll۷kדR|}}Q1rCRpB;VDD&)) ճ 6U$.NBBd+ymj@56VL%¦Lq!CtL4 cLO^RܹsGDDѣGLb&<D'!m4o.O"#{"RqBeLhk)_ ooo||Jo:q9t /_T?S*RZtҲ#=p>d IaݺÇN)(XHH(R !^IU;#GNA`Kf&&&pi4o\g:99?3t6&)իѣb ^`r7eGzY` 3Stưa@^Sh:^ӵ. /]M2Wt ^ypylٲE旅L[nCDDDDDu5tԟ9s&OHm""CvyYըQCzGm5aЪlYj5uݺPT,־ hFtM/T*… 믿W_rʲԮS[,uHׯsΈS'fϞHm""CVq)YkUm9":i ^]t M7m.\XY[Wz%7P%%EVЪU+미}6.\/ÇǓ'OrgҥQreTT CƍѮ];N'""""*ݻ?2?'ODD͛xlJ*'''JIVƍE²||OOsi$ii@@tOb&{lz4 DbKT*ׯcĈ9gdd˗DDDDD$ѡCDEE)RS6QqEe*k=Sqq?0s&": V*RbTI=,Z̘`7p-Y#9g,ibEDzvvvlx0AAAر#>}H#F`ٲeܗ(X~5۷o/k=c/Ia_-:Ǐ??|d}NB%FRtM/""""""ѡC<~C m}Xb^DD.k_z炂ŋ/D'!mt 2P….?۲=dYtNQEDDDDD$PXXtHE껹aʕ02_򒕕ٳgZڵ&sի IHC}N%`*i7Dcʕifb[^Drs Dz |PE47n"M6ʕ+lԨʔ)#kM2&:ihFt M7kFW׵Y3^;r:c":@I{ի Ǐ/^ôiD$"""""@CE6m GD8xyy^w޲$y3`ot.: i$oIT^WKjh-||X@(I ZGbƍطoaÆnzaΜ9 ?mقWɺcG]7c!矕ѯ)o+:EŦLn߾ኍadd'Ncǎ9ΥsQl|"""""ѽ{wܼyS[Ea~ `۶m^z!55USLc%`*i/*L[.~7n3]4܀'zZq*98s@G HɎM/<}~!bcclٲ8tƍ IDATZ7f͚x"""""*t/_V~Vp*UJDT|ܹsnnnxqJ>>?iii4iFtEprrM͢S f  _ -ر !C:kر(ee5wwC)6HVcĈ٘&&&Xx1<==s=waӦM:CDDDDDKHH@׮]q%E7j;J.H}"*ѵkWɺZ"L7nUV7ox{{Z1m(5JImh=aLe#KeU ] #FNBqqx':mmqQQt"E饥t[1fM4:j믡Ve:{&<<c(NRaʕh׮(T\l 88}NBŘ- W&: bҍ7r=ާO[WT2e .][ʚJ*bbb xDDDDDDDD%J?>Q8֬_[NC^ EG!R*eK7o۷nݺɞL2Wոw$&&&Xb<<|Xڵkc֭8r^leAx{ˋNMfN"J%:^za'M'N(H$6:55syW^}ƖUTQ""""""""'ǴiPF Q,Y[nᣏ>Drt||76+`RIٲ%[ơs&031I68 Kaߜ$wܱcKKspB,áCЬY3ܻw/ʖ- *(̙3AAAuf͚:uꈎ5je˖Ç3f LJCt4KDGN"K п?mߎm3f^Pret<OHЩ(bb ɍM/-n:1ZQFaҤIHIIQl@ݻwG\\[oҤ TKDDDDDDTիW| ܹcҥ EGSSS 8NիW1zhXZZEm[૯DԤD/Z[cPX:a^MvT|޵kjYw4xX<{&WE"-iHMM8V1o}O>>}'OĹsp5EWQBʕѮ];t{F2eDG"C4j ܱcd;u ppNy/]=[Dϖ-_\7>Dpd$?WdT]4>Ϟq#.GM">|xMKHH別ٙ򂗗DDDDNٲeѷo_[nҥKtnܸ;w AOfMvhݺ5ڶmvڡjժcQq1m \&:I;&ŠAJ-ZhNH@pd$B|8/^˗/äI`oo/:@6662T|Ԭ)5)f$[L 0>0cP4TX..R3GtlqqtONCTh\n:+&O,:Q{Sh gD'!mh!'/$DƦ ֭ŋCR@ڼuڵxc)4ݻ5E{wD$S,GKd(ٳgXt)Zh!:QNY`:@@ϞSh/`j #CtcKF3f?(lƗJ_Ę<hDt Mv[NAښ8QZPl":Q%3///lڴ Kذa&NqJ,oojU)4m;&:ipqBCS^ 2d];d&MŋX&""""""""*lm&$ْˁkD'!mX[K$RS+˗E'!z+6cǎahР"cTT ˖-ŋQNE """"""""|HM }!!6Vտ{s`BIŦׯСC8p T۷իѣGȈDDDDDDDDD´hxzN)"D'!m4i"O"#{Id":@IRеkWt8qΟ?/ CJJJ-_<ѤIj ;wFuQwE')@RPa}! ^-:I `"`TZlz阥%z=zhGRRRSSK ,,,D$""""""""3 &8p@tl%5MƍL8|tO':I UD!rzvvvcQQxzJs.\$۾}='6Ə_%:I{jpI4p3(4o<4m /GDDDDDDDDDT*ݏ ~l >,:iUKt M[׬F"e6l؀+W`׮]:u*W/ҧ=RS+˗E'!m^^>.-sOcKK8zhs):nhh(^#˚5kаaC?~\񉈈V$>Xx@tFR3U$$AA`Kk5jt5fE KS###ѥKlٲE DDDDDDDDDTM'N)2<Ѩ0m<|}{H06K.B|_/FFYYY>|8g|?Bt MAA위IH:FN)$DE/: plzA۶m" NBr4Υb^cwo)4]H2<_t M/KƥNB%^E,:ڶm@-[VxLL f͚%(i?hJt Mq3ru0iTUڵkcٲe9/]Q@͚Shڼ8p@t Җ7*:[}DM"AA222vZAHԤ$[z:j!SSpt$[Fz5矢P ĦW1ңG6lZ- P' @P${J$˗ߢP æW1RjBCCqi(WӦNcO O{*"Bt*A*Fs=~'!""""""""|u):_E'!mt|BB .Nt*!*FnݺӧO8 Ր!@߾Sh|XHM1h0p]/E'Mbڵkؾ}{ݻ4DDDDDDDDDT _}m+:ÇMD m|=E:a":>HJJB\xycPݻy.o>@zShںؽ[t ҖShڱؾ]t *&ʃ &L˗/iӦhppp D'ɖ] 9#: iTItlj4II`-ԩgb;1H[I/Iz,] ܻ': ilY27$[Rۢcӫͱe|駢ܹsQfM1(֕$* E'!mԪ%-uOyPIȀU@&&&@.]DG)3gDDDDDDDDD$v퀱cE ̟ĈNBhBSX ^`bb-[raΝ={(DDDDDDDDD$77)4ݼ)-K$: iO`P)4ݽ ,Y"-ITHlz6m=YCժUCݱvZc݁Et~#]Et4nVNBF?:7Yf]ŋѲeK={ȀU.5)IL 0>*: iZ5Kt Mqq?": 6dpelwcǎa޼yE/88qqq9ǣG|r """""""""ֲ%0a__ *JtF_$2R>^E޽{#11@CVi̺uڵkhڴis/^@=\1 &:%K/E'!mt .: `" !AtlzٻضMt ք @VShڿ7)H06`ZQ KƦM`nn?0""""""""""T&:#GD myyիNif)H 6c>|sqq;#k =t̛7Oֱ*x{66dKIV^aeeʈN-- .^aKK@f!לUT;w"y&MJʕ+ Yj|铸8 QSϟlziܹsV}ԬYfff{G)Zjh֬Y㉉8t"ci\KDFӧ67Zt M~~үT饥+W8ɓ￑O˗?ѽ{wE3c]qȀt .: `b IH;#FN)8XPE%^Zxmoo~ FFJMLL dF'ODDDDDDDDDd zBӹs@F$C>}Dtjlzi)..N!C`ii)(&M(l"""""""""-Eд?oS<<6mDt y#lzɤu֢# 111joq"""""""""{@Shڼ8p@t Җ7PlT饥7guUTIPl>ܳgt )#:I4 |Yt҆rp$[z:f p$06dmm:))IPlgϞ7$""""""""\U"5)6*VDД,ZNB bKK*Tx}5AI$7n+W<4DDDDDDDDDdP7LBǀ+wտӧ/!: )M/-U\Y둕%$ZɓJGi u !:``Biww)4@\$6TF wŏ?($95:JCDDDDDDDDDkPO)4]Z%E 0@t M׮ITj$$3 Uƍs9s&2220k,T*3cԩX`[ZyIIF )ӘSDSF%KASaH<}[n… Z7ڴiHDDDDDDDDD%TJ0i$Ef\͚Pa99I/OO +KtɫW%RPj.V/Ec޽{ѻwovZXBgVrr2\uF`mm-0QRRRpׯ6l}Qaac樃;9)4YXUff6^Edn{htΘ| gzAѸq/3(B2eйsgJDڵk#EG "zDD21RR )8IM~O5:z=hԩ#c5.EDd8ӫO?,+++L0Ah:aÆׯ rs_!CQ`""l.^ΝH6jBuE.NV-ww5_!bIQD-ҢjPE[ZFդZrί۴k,.:Lcߗ !BBV ?>SK}q]^N~{|ŏ M/.y ѡCIX>}:>⺞DD C&Mxꩧ,<<5'NE .xADHWW#+/7x]_KJƏ.!g+q~k_}=]vxw3,d2Ig=qtL&Z5<`*djՒ0+(V.B:OqIO)(_<֯_eJQIWt+,. T 89I؟ҥkɞaÜ5!;'"#u\{uؼՁW~t,\wlX C]S@Nt ,^ڸ|K'شiv튓'Ovlܸ͚5k """"""g@`0 ۴k0ctY^zMd{~s дi@rʸ(_L*s__5S8 0POթ#]CC`,uMխ+]Crسg:t r~|7իHGݻÇKWX ;wKH]Q+,ED%ENر^nݒ.!-ڷ&Lt0{q襳+bCaÆؿ?Sl$"""""""+{5h?rXΖ.!- tlZ֓l/HWX:sXHO.!-^z P9-JjZt >P,!=׿uk6T%f9^=.oHDDDDDDDdKvF̛$'K:cJWXzU]SII%E "#Ր"!Ah8Qj@/]B4O҉e@Vt iNRKeI3*^RUFrjy:=}&]a),L-ɚ*]BЋ0]+H1cS_FuըQT#ٷX8Q !]a)4X ϗ.!pEDDDDDDDdL&۷KWV&H[+HS~FeEidOҶml0mPtYn.r%pt i_5jH's.!L&SҚ5޽մi@z֭SO(AVV~G|ӧ|}}888L2TG$j8a2aQ=N.^.!-VU7KRS^Laa%E@@PtYzΝ.!-*TPהtYFڇ)C/+:y$Fjժ^ϟGRR2~ۄ3''o~>EDDDDDDT tSrOxC6_?` KΩeӥKH>}^dMM.!-zxCRxRRKJt4g+HNNv빹>}:z4lر/#g`: j(kW KWV9Á=+,eCᗑ<\ J(zdѢE?|TRXp!K8=`#ѝ;wsθuLj/#ټ[ jTys K|l"]AZM l)]aiV 8XWM% ^: |o~GTPᾯ=z{Ffff88W%fW_"]BZkKWk{JV&PtuөdL&K҆ ?JWzQJJ f'sغu+ڡC0hQZU )KRSE9d{TQ7p?JLz9ҢbEuMJed}O.!-\]5UtYVlptIWEݵkW]KkW0||?#ץKHFiӤ+,%&g%ާyҢn]]SoWH=ݻ3ghÀM2{t:KWXTCҢ];`D KׯfUmڨ$*J KH-վqFrㆺbbK^EvZJg`ĉѣ}ߺu P ttZlO>kIWXpA-iuAϞС.],RRKH=å+,AA;%vC"XftsARW_ݻUDDDDDDDd(F]HWXڳ0`p{w Kz5PP ]BZ~ʕ@nt ikjHo$G˗%vC/nܸÇKgnݺzjj*6n(PDDDDDDDDƌWWW4|oMԮ-]aVPڻW2u+,[tie2^^6lv풮 M5a~8ȑ#ڐ!CpY\z7nħ~)S`„ Xx1;777ݛy~Q Q,]b,Y"SAoM22ԞqOKԊK̲eˀǥKH gguMU,]b9|Ĭ C/.]tkXj֬Y__߇7&L{SjzRRu?٨Fԧލ$!=.!- e#u ;zUWxTr20>pt iFrn8ڵk6~x 6~Ez'lٲZTT#"""""""֮_fR0=<L$]a)* 9.!-ɓ+,ݸ11%Eԩbbԍ%vC/-~_LL+'ʗ/w$GDDDDDDD6o_W+,],ZJzCJWXt XHI.!-zιsG5JRDz03SqQFF[n5k (/^|5#""""""l{w Kz5=mo={JWX:xX ˓.!-^{ Gґ#j_&=/$]aq4ӛPٞ={ҥKc ٔZu+ytii#]a;+Hm+,qti5aоt˗ l^+Wgdd 88_s/n] Kk!!U@Ptۥ (L&aC K6;vHWV&-]A:K?uYxG!>>_\r1ͩTI )\\K22%KӧKH K̲ (ʕSהu˗89ӦUJN8ҨN:x"BCCEZ6oތ/^"""""""4hn(ɭ[ܹի%Ez2^<=>u`U5jkAtF 4{ڱd :O\;V]S{JziTT) ,x\r ZJPt@LJJB%ٳ."""""""0]nub ^Q@%ɤ%f6)GMOIUFz<&П;']B `رp(}6nݺƻ9 IDATd^ХKxzzv<""""""B,N.!-ʗW7*T.1/Wˈ)WN]S+KeT#=>'' @ "7XXO5spPoЫ|}}M:Ǝ+@DDDDDD ;.!-M̟DDHꆲܾ /Kj{W]S.Iժ#̳%z_|ҥKKg>ƻ8*͛㭷ޒx?Jb""""""2Eaä+,')ܑ.!-uFt 0o,]BZt #]a)"B=휔$]BZt/]A̚5 ͚5ΰ0dK:~U@^t i1dлtÇ~L:Nh`ॗ+,?,b嗥+,:,] dfJJWcKe˖Epp0ݥS 6ļy3` wm+,iti5aоt;+Hc+, [']AZ t"]AC/x{{ᅦh;;T\Y/_ti4l(]ai` * hXƍKWVӦMJWX V zJC/m9͚5oooJf&lpt inU$]b;zT(S0\`J!ҢT)uMU.]b|/%մi@zGA݋:t#GDDDDDDdKsҢNuCHn˗KHZwMݽKKHj5(]b ,^ IUkYC/+Y&v܉%K?EP|y| {ŒHnfbcKH-)S+,ݼ7KHf͌7hǸTTt iѨzڙ Ǯ^غu+^{5VZ?OX=z4.]O>5j0a0e8 DDDDDDDsG 9Rҕ+/=;GKWXPO&%I:IWXfKH~[n^IIIԩ 6󈉉1g4ogΜzMHcqk'''t .ĵk0|ڡDDDDDDd/VR{<Wұcj/=KWX:u XTIHu]ٳ%@zt iѷ/vxPNNz#G<{1p@;wXrvv+W^y ñcpDFF"&&YYYHKK*UWWWԫW^^^hѢZjrYH!%on%f;wa%Ÿq)KvVהўn3zBBKQ#]BZ۵K`Cs>r/D^ʬTR񁏏O&lؠn)]BZL?ptƍ[6MP>ȇr!]#Rq PbX mTjN.)nyÂ,X౿V!""""""BV.!-ʔQ/\tC%ERꚪ^]Ch|૯T#N@PtYAzj ԑ(nuEDFF>)Sz1DDDDDDD@Ppt iQRɝ;@xt iQ\@3SSE0COpZx.O5Jԓ..%%ǩS |+WÈAAυуܼ iL )$69.!-6U7$.NOEEIo@̚2 wM0v7JLL|X"v\?ڶmZjlٲ_>|M#""""""?|?_=EK`h Kܹ@Rt iѱ#0ntH`lٞ~[j ]BZ< 0itEewC&M}ݺuyfT\Yو,fz_dɒ{'CDDDDDDTdǎ˗ /]a)`R 3S_]WFrӥKH}W_tZ!z (=֮] ???$&&"//uRJE>V\+V# `Nʰa%Ÿq)KvVF.!-FVTHtYHt i1bzjn55n ]C5lzڹSD'\I\rТE ./Ct~զM+]AZ=$8; * @g$_ |ti5e }dغؼYz]uk^\1*&&F::rr+ÇKH GG5VM,/O]S%Ԫ%]aVP^mpL&N KkF* __İWݺu{-77_rrrEu"""""""s åKHͿR% ,ZIzȖ'"^LK*ӦXQLLF3YҢ|y>UtI`ЇIp9]äDEE!::Z:Ⱥbc365mn(I\DEIF̞ \&]BZ4h`k*1Q]S%Ezig:zUR^^^v>Cff.2ړ^[lN """"""*@Rt iѱ#0ntH`- +,] %3#]a)*J}#.NhZEVewC/h۶_OMMdBÆ  K!i蕒YfIg'ˁ,Ң` KgK%K/KWX:^-u&]BZ "]aE$kJt i av.^}yףQFhԨFe˖!44IXDD}\v }E'"""""f.`: jsg K!!ڵȑ@n ((.!- S # VKH!C@Q:zr!##/7<<X|*U ʕ+J*sn{="">>>p)o߾k׮!77XGDDDDDƖdܾ}?Ґ;wX| *|UUe i xx}J&ګYVT%Ŕ)jʓ'K̶nU%ŻkQV5ӍxyGwtݱˡ^u,[L1n߾۷ok .h>/ѣ$&&~]v FLL nMJPfMԩS>>>A&M*Ur"+Wj_=&|tRPY;Jא&@2uԐhO7ڸ\DǾi#F11@t֮Jڷ/֨R.Vާ\.+v9wy+V@~~t ٰL\xaaa77n >>YYYsp]F*VRJB ]6WOO{lڴ)P]8MDE3gܹs8{,Ξ=ֲ?xڵk^^^ر#yt^^^DHjqc*,";[FIMU{1yx>>5TX* AgB=6`4gp~v;[anܸGȑ#8upڵBœv~+|||O駟FN_lҝ;wp19rGѣGmOIDD"""j*@ݺuѯ_?+h׮d䊋Ӂ:uk7VC?|0@15YZ6TӥKٳ>Փ!"iuߗ.v;O>۶mCbbt L~~>N>ȑ#qFwݻ5kk׮֭^xT^ػȺo>ݻ{ůڵk3g̙:u`=z44i"F%ի9t V @Pc}VZHOՐjUkֶ;g\(`L5Qj//. vN5zj~ʐ.]‚ 0`TV -[ɓuV`ڵx7QvmX~=ӥӈH޽SNEVPF +X`Ο?o?ٳcvG6M/ vYF SKIO{CHWXxQ-ɚjȖt"'gϞOa2Sؾ};mۆK.I'Z^^v؁;vB 8p }% -//۷o޽{g;wD7}iӦ裏п$*IBBԓ^o%]BZ۽_0@Nq6߯3mϰaڹS,4T5~<}~W-HnSJgQ11l0T^;vČ3lrg)))X|95k[,HDr]sř3gJΟ?_~m۶Łs$k`V jy~3NjFٲE"ݶ  "xW"^gaɒ%(St ,//?F5jo߾Xz5nݺ%fغu+ڴi=zIDDh߾=|Mܾ}[:J`j& x) dj5k={$ (Ǝ.ߺuO?IWم3ѣGh۶t ĉxQV-t+V@rrtVڵkZh{l@AA+ Tii-[Ԑbz 0mJG۶M]SK&}.1{2DȦ'E`OUZDDDd0YYY8p VFoѳgOdaoL&SҚ5= H%)ׯ~Y2 +,mtMˎ⋨\tL^^FkJ= )ʕ rKӁ%K>_dXvǥ3OFT#=> @=jYYeJHNNFʕv0͛c?FDDD#Ff͚ڵtlٲ_>֭ڵkzpww2e"%%HLLDBBbccK.!<<Vɓ'{a >.1KLfOՓ?y,]*Q8IIܹ򒮡ª[W L.1}7O]SO>)]CM"WBB>3lٲׯ_zV_K.ui"T*Uʕ+lٲpss  ::QQQst2rrr0p@8p7!BV|}}Ѵi{lРjԨ p|?TpIIIݻ7?77b??=777M6hӦ Zn:u98vZ QPP#F… (sR1G=a~tYXp!0y2Pt X{78 ]x8`lO[%f/kq-[eFzz5* ?:U-CLd'r蕘^z=p<[v믿_]:&9997k~~~ *UN:SNbؼy3֮][O]|XlY ;v?N:E(]t=hݺ5Zn>| f̘ŰHbb">c̝;b4|%f0~"Ttim~!>$l߾'OFV 53''' 4GŦMkѢEyM IWXڶ ؼYuo Urfv`& ղFcati5~<Сt]u+tcwCl^?""B*WcǎYfIDDDWfM;8t"""`兖3rqq|ח_~iyG۷~."RT!C`M6r=3g`ĉpppڹrrr`㓠n] K?,]Qbm޿[??X4]XKm`pM5iJWV&#]a)8XO5 N>]7^#DDDd˗ȑ#h̙3 BllUAT… ѭ[7899IgYUq!-wFnIR0w.Pa&.Xd?zu`6:m`|eҢvmėܹ,Xp_TzH7MI..^.!*JɅ K.믿ij>ڵkh@xWc„ XtV 0WΑ?V;>QIv~Ȯƍc޽V{Zbrrrrl֦ /]a): KJ>!!ye˔Q/ ݸ̚<>d@O=L*]a)&9S][d{|}Hԟ}QQ%Dz>}0zh4nO>$^u޽e~! tGAAaҥ8p_-!""*Ne˖Ÿqp%sVc8,صkW8ܹSA tKԓ))%vNZΝ[c~Eti\"+ S:d{vF̛)Iԩ0vtW9s[K4Wr d!<<k׮Oµk_FIVSfMWZ%:ٗcذaw׮]o?ہM+RȩSXYaFe+; +H+,_/]AZt,]a)$$z=fWZZZz\X^\×Jebɸr OnXC GGGݏ}%8p@Q3<<W^d@&%]aiO*-3g*ozmXU6mR/M&#]a)8X 6}$8غUPnUn^+((… u?,\xQ:j1rHcƌpwwN*v;wɓruYDTrժU ?t?u?&\tYVZqҥn..X;:uM9"]BZ8:!Eժ%fj9V~698?IAz5t cW ?k׮\Fz;w*OAӦMqY,[ 9qƺwݺhر(UJ߿z~%Dݺꆲ$'WHؼcqH[m͝;@P.]BZԨ%f))…MUӦF ,^ t c |hNN^z… hC\c옏3 lٲ1c u?.lGgЫf7n@P*ҳ/²5_ԱJPL 0sũ(xTB0{6pt _Z?|}}ѹsgZ c˗1| """*&}A6mt?}t?&Q^t=^%L9wHؤV!g'',4 Fz""yӄd{:uƎtKH +,EFs AAAz~~>݋{3ϠI&Fj *B \.1336mXYGľ}0yd9} 0@c۷CDD]vxQzk@b"PtuڏiLq8, sHǘ>dqLn(<(]bcy,Y99|hV>8P*ٵ 0ӍxƌQS}~Y]SFIFk知KSԘ1ώ7vb"""")Sus%]GDx'u;^vv6u;ِaC K6֬H?__NcWT#ɤ2``V jTys K[_DdC/?~<ʗ//ADDDdU=zxH^Ddz>Ub+n(W,]b9mTdc""s$ҢC`x KjH ]BZkL(]au5L.!`C/~ ggg""""{蕚 ##Cc)SF!٨A^t8l%]"./?nn;V*td (~{;KO.!-^{MRXZ$t 6lt jI6^Dd )))vpppxd&Lڷk~t͛q{R?*UҩȆ3nti5jz:H֬ KHÁ=+,W"q%bQ^=""""]UPA4u\Sc09F l.]!Rt4ߚ5E:Fz.:ف͛o NUɖ-٦ɓ-+,mݪ#Tb^s'st\2!<<\c=䓺섓0mPtYn.jptI/(YQ%]ߟOuQ~>W/HV@fi{KH+ [WҺuT"!%jBfŋ1f.yHDDD6/33SQvv6"""t;^K}F uCHKKoΞ-1>>^5kTdGRSE9d{TQC ggt׹s%EŊE!|_~%ƍg}+VDFPPLq`ܸqhذ!ʗ/&MUVxgO =6o\,=Dd|z-$$DcUPC/zΝ1c+,EDs窛vo͞"X44 Kȑ"#Ր"!Ah8QYlU6t(`Lb(`$KFVЪU~O^^ݻwcҤI}Ϸ~;Z3բwTTW.BT+VPĮwE &` {Î{DEPDqH&Rso-ֻ8{q'55U9&&&r?6)) J^bŊPb#=zÇx%իWLܸq7nIn:%$HU$/LBÇղ>zDC+\$ÇrONN}wɓ8TMXZۛwO7mߡ~zLN aZA88cjnIr~ [͕̚DEUH:::J.kӫL2jF(]vhݺ5tJ]vaܸq#55U/nnnXjhY\]]dtaL8?|/_^dׯw.R:B:(Y^XLB۷o㉒{[nݘ"n * |w~~f 1[*U aHct%Lz|F^Ν$ǵk90q"; )aÄ>N$͛I.#$6W(JWW˗/'I5Fe˖}8p N>;w`ڵȵv%' ---iSBSj_~"Bp(M\1 ?_KK `h`0\\y :;QԬY@ƼS:rDx"itaC)9~\Z3eF֪iڴ)*TPQ `ڴiƓ'O7600@ƍaccSSS܎;"++ @``{T+WZBrT' 7ƤIG{>DVV,\/^f͚z{ӧOEHgϞ!%%Y5j0E!w!b @yR8ڀpP*{de;w 3)lmyabs8vR5v F%0x'dg ˙NC ̘{;I{1eg;$ 8<?ǏARj*SSՅ!uuaT `Z*. +33T(]&&k6?}oވS_ ;w杄h8jzizQK"7o"::woB2001qD*GѣǷ?~V¦M iԨ/_{{{ޜEԲeKl۟CCCkILW\uf;k^ ;B4\fdS:u#]4i7ZCKK SNeR1K\PF cnԪ;R>}7*UƌaHLMs.(wv$% {ƙuNC dɜ1M=́ x&":^ (a_0 +ssԫRMQLFFӁx뱐 l",ڤ 4DtҼ#<`ԩx)b)ccc\znnn 7rSF _Ǐ/FݻwǍ7ЩS'lxB صkFsfffbʔ)6VZm_CBBrՄ>(RA`B#+ݻǬ^^Р_t#JSG,%?߸:y|U)S`bl(Ԩ!H`J[I"VR^ q=BefeƳgpݶ Əe>oڅn1kx@ZFB>}±7p.?Vu<"cc?A{֬y'!^>>>~&N;KKK:uJeYV^-3c]]ZZZb޽(Vhyx5kε\%lԨZjsGo1GQ>}M%7---k׎Y=BHѵo>{`ѢE"M`$)d}+4)^DU%˗qujto?i(j8:N!{` FO3BCww,+DXc~<4৯_s ',CKGGw/YRI`L!&#$DCQK4nӴiSޑH.Z|6lyƏɓ'k 37 NNNS*W}" !Eff&zk׆%zĉ1b% Z!yߟw YO%%NR(QqqpZ^%u_gO` )dx!,; QDn/N!k`:,' |QffqK߱5F@Iu$ j.ȑTD` v- D3PK ZZZ011GWJ#ݻwԩJƓ> |۰accc$ȑ#ҒX9sϞ=cZsR&8̜97ofZWWW?.!pq|wз/$:q_Ta\nIY˜wGқH3}֝;8vLS11c~9z{ˠA(idN>uK5!q065a= //o?W\AGG>DEi&n~/{yիWs=-C) U-[2I|8r֭˼;Znͼ.!77ʊw=@"61X]^zz쬒6TTw Y{/NAT;{sx /!9˽a=|8V9f⹺֪ 'ӧy ^&88wRWQϥ,۹f͚*NBQW݃ӚCռ Odgg̙3hٲ%~'2?ѣ1{lu T,:ƍ,M۰"#1oԮXQ" )UJSŋN#9Y3#I"&f<[h2q"@CCaLF[JkV#Qk yD_"***c˗WqB:ƴiӘ/!D߿amm D>}i&jլ)\H`J[Iv(9ã^*=`DTTTz5; QDT)֬{y-Z8:b-y*_^zSu@P$DPK!%%w BH>򛍩, !ׯ_gZwިVӚgbhԨ*Us犺 A֭GG)d{X!4$"1%VDvv5 |3BCww "w&M3yxx>NB##3˽S6Um Sye&DN)hٷowTR*LBQGɘ+5 ! HIIA\\|/_ << ‹/š6mݡMgEWD*^:6MX⌳6ǏJ՘ڧgc(u&̰ڽw_63fHk<".]FΝ ֮fJ䝆G@` ZLC CÆ?NS[>\^OO`i-H 54D@@:;!oY$}@$`ɒ%xӚ?#6mʴ&!D.\@Nx!֮]QFBQ&1u*`fLp\Gt5' IDATR5*.#F . .(9;IaLMЌZ3t:u$9nmLx!5>΅ɘأ8PU./¾qS5DiB 1z#'X|9R[˝R4o"0kШvT]BYkalh(1h֌w Yǎ>>SE99-[N!))H2231sl|Vs@QKb̙W޼y;!D#BPRR6"VP>}ЦM5 !D^FFFXbnܸڵkCHWWB)d\n۶'١.ҫ+P ֬FR85N杂OooL۰!@Z Tij$j^j&-- DNPfMxxxEtB{%(bܹxӚ`ZB䡧qט6mthy-"5Jnn@⼓HNGTz[/^`ѣJ0+Q+&L`HM VjσE cJJ{ ޽; #G }\lܺ; Q3R_ܹsQ|y.\P҄6xG cڵΞ=Uv1!DaҤIx6mڄrDHުU.(KITz5>,c2rD.UQ*5VL_1E&kAA.L${`YnQ+'8aL~; Q#/JMMűc???jr"#88!!!D||D (N7$9rT>xhlm6E кn|gm&hbm AC׮aۙ3rŒP`߾˜Ui|=|l,.Vw"a˗رclق(qQ{aĈxYǍaaaDFF"#/\o޼֭['Y.pB͛7}%-7AHo>lذy*U`ŊB?|ӧc]6u놾}y4ۃ3&ݻ8v 07 bZ{@xլ ~bHC99 EIaNBS)Sשy'q:5|8:hW>zn^_3x)el1aq7eh(ƭ\}5a \,rpASGNB$Lw(%%DNPvm,_^Hٿ?ڶm+*Q&Lg"11x glٲVVVԩSqEUAi }0## cǎe^W[[;wD%&ܼxhٲ%*U}w,B T;}癕{?W69;CG.9BӼSE5kN!nW a~{TTijvgeK8Wc QIGNA$fzϱk.l޼_~9sٳhӦ 4hҥKT 111Ell,"""p-ݻQѻwo$%%1=k,iӆy]BGhh(-[?]vŌ3о}{ޱ)cc@B4`w%Ah)9`vhTR5sTL 44aI:ssY3iHa 3Rl.-E?!uꄱ]ajO U,-mLL c<<08XsN߸͛jk cjt -;T*+K坆H5DǏK%Hݻwcݼ0; <ϊ+lx8Fa@@.]uVZUVywpp<Xd :v(V4Bǣk׮M4E%‰'p nK,Avx"*KVV"\m(^~V,VURQ0oj9*ilIrkT?4)".NS@ {ˆΝQHsZkkY.\ aQZq^~N鎩2"^ M4AӦMhޱl߾kiiDž?y߿!7ggg;vy]---l߾UHVQUA4ށPvmlٲwBS ֭bc lYɩJ~\bHraSp0ft^$ӡ ^JyFx]hkv.٘;v6mE;B޾VrDhyC}!A*za``-Ze˖UahhTTÇxΞ=0Fs~ |!6_nܸqG!Z k֬[cegg@JDGGcر8y$v؁"LCQQu ر<Е#R45r]\WG7C)=`VQ/שÇy'!y3w(K㲇:ϝ;/_rׯ#(<˕?$)Qί'O//Y+yRP\\87 5~x,]'33!9KBpt.(Ki3g}s6gDaիpASRݨJܲe52k~ر˜xv7~<$DUHڻw/y!M67a/͛zkkkhiizǺYj,dgB|}}1rHdee1]re8p $D4ocR+>>HMMEdd$m% 39Waz 8uQhUWW`ta)8ؿ_C1nJ$$'+un-Z6mA1$9TE gx'q0zD42©%Kld(c~=Æ<..B㫐[f"^r7֯_/ׯ|rܿB˫"Hڅ 0ddff2maaӧOܜymB_%J@&MTrt~o˗q^%(ѣSy QHӥQZm0Y\IP4%F''j\ 3OMFtТ4s23;1պ54jǬD Y:IJ_I:u @u*< %m; Hw) aeeSË%ڵ /FFPBm[nů;!̭[ЧO<(QΜ9CKB5 v»wS*{IHH@Ϟ=q T \P`Z (Ca_eVO|XPErS˜SBB[B t VŦiD}ҥdn.NIiD`Fij$*'W9iʕ+QN4m^^^_ưvڰ`޼y>޿+W`ԨQЖ.BǏѵkW$$$0mhhǏqkB`…x]>}9.)) z+)-EH^5fBVx8]cWDGZթqݺ)U^=I!%>E3S$"Bx D- CV}YSz H` [I't:֗/_Ɛ!C`eeӧŋcFXh^|ϟŋR X&==dž 0rH$%%D!.] ::ymٳmi BxBKUƗ/_гgOʼnzB5w YAA5ߖ^~,N߹TI==l>ZZ,t;7oի_y'!h8w Yo+WJg9O5fǡW{`ր#+{`*F"􊎎ׯ:`߾},5Ċ ƍk׮˗X`j֬ @X~;m&J4Hvv6h"ڢdɒhҤ &M;v ##wDB[hh(:uO"l2͛7'ڬ5qU4h@~cƌ>!L ;{['ظQr AJ#rg͛I"~IWR0&BX4 Ay^W`왰ԡWq#Wvv60`XZZbx)Xy244qqDDD`ӦMV.wSuԉCBBŋ1vXXYYiӦXp!;!(ӧOûwD鉑#GRBզMܹs3f F Q GGw)9s]]䲆u+Wl.L(Б }x ;VI(%/{N{FI##5 03FfPիΝ@v6$DL+""˗/G5`oo+mmmn6m§O~tzzz>v*JH[QQQXbjժ;;;lٲ?~v;vļyo>ܾ}䘘B.] P;-[)SRB K__8y$J,)9̙0Qjœ׉DpD=slBqqBpDQ..qRrp0j&0{œ9Rrp D4镕sΡo߾PΝ ޱTNx=_qơDr?r6d,]+Wƌ3oʔ)ggg\xŋ1h 4oBHbccǏR3g( !DG ׎3󺄈B__lj; `/DZwoƆA%]]Z4$923I\]rxȑ %!ػ7t^/t Ɣg0 Zt)W.]#x f͚+++jrl"cǎvpssC¿([,֬Y\:t.EHQ3qqqܹ3޽+J}''',ZHڄ‚ _.Cʕ+" ++͍w LYK#!J)SF¶R /y'!07Ɣ>$9=D55E ּHӫT)ὯxqY, $D$NDD;.\mXU !ѧOݻ7?~)SАSBBQNbb"z;wRԨQXr( !+(-ŒjR0㋓Yt(D3UFD(&fM%%ʕH{#k3 (ɩbj\r0޾坄L#^R[PWW;vɓs=^zufqQӋHYFF뇹s"++KѣqasJG!KJJBqU8~l޼ZZZ'֪W___3/]Dz;V姍0A;G˖ *fڶ&oU(I"Z_wB"2wѧukh36[ea"4pwDcid+88w’BCC燥Kf͚1;ݻgj,GGG~{{{{lܸ.BZrr2w˗/R~¶mۘ 'U3֮]˼&!' @5JJ5Wয়}y1$%NBѫ0p =:LLD-(KUAԽ;0t(0,z%,; Fns1 c~ }-[e˖eVVΞ=7~{---xzzҾ]}ҥKҥ G5o<!.<<|'B6,Gs]|ADt 0ǎ~Æ qIRBxpuueZ͛+ӚD2e A#F($˜$GB缓E*%4) y'ɑ$ $V7|aS))}MIlY'kzEGG#::y]o^x9šyH%)xDdg+8FH>gff֭[A!ddd`4g IDAT8z(4h???RBx5z8Owuec#\Pf%_ְaŊڧ8DjeL)%2XxwkkI!%_+WoN"Yf%JD%$'3*U7~V޼ᝄ0qM@jԨݬ.OXx}M-9?/_xzzzͫy-{ܹSR_O !D2331b:tHjٳgajj*J}BIKK #F`Z֭[LR&N!CVBak L;w&Ed$$D-[NNS {Mi(+ssfSR 5cۚ  W֤I;v Shf>zqΎ\DV:|0.] }'HMMŁ |7\kTRyx"222[Qzz: l?zQQQf$%%Ȩu-eбcGBĕ#Gb޽ԯQ.^2eʈRBk׮psscV/ Y-BgaH7)eԩ,ޑݡ/Vy.U kՓѫ02Ϟ KN(pн;;IW 3\D70`V+95Yo~Qxҍ큁uYth\KGG=z@=c_{Abb51c hBĤ(t/_^BBB憿K,prrkײeгgOUTXhh(֯_S[#%%ƕ+W.ϣzGӧѷoBG`` ߿qOOO :NA'I&aݢԯ^:.]_'_>ŤÇmF"DeƏ.(_; >8? ?LUdZ;G /\C cIq+-`v`dD4ՠ~ظq#ñi&/ԟ:u -[D&MU!T9pwwСC!Ǐk׮شi\CvsB-צM|Ϙ1K,ZBBQnoMÇysqq͛R4DNA4ɜ9@ÆS~z1h҄w Y N!9Ɔjed =#Y=΀&8!ЊDD7nƍׯGAFX߿c֬Y8p Qn]&͛7G\\q}8rw^8ph޼9V%KbrC>>hݺ\GQR%̝;"'%D34jǏG~6qy4nݺزeKc6!$/...Xz(˔)sΡjժ')c"V-2!X[KoL}\)BD~UHoL} xzoN" ,^ S lg)TP$L200@~Я_? {w6 |˗/;;;;hF7m8}t :T,rl۱cG|>>>8r߿oǵQR%ԫWvvvݻ7*VoaÆVZXx1.^߮)ڴicǢ[n=?ٳ ]nmLMMq=&,HQyaٲeԶj׮-J}B%K2W7BԎ-0e v-$DSl 89"ХP?_MAKf̜+x',XqJ%0YX1fո10k_9'33'N'PvmL4 K_ω'sssM [###9#Gh7v7oǏ~!=BWWMh3!jk577lllDO!ؘid,EKz ah݁H`>Ir| _̜ 0~o * N;I@`:yR4\dggC^й3%,-(AA59@R9 caas"88GEN 8::|0a=z$s<22ٌ7/???\pϿ"DLLLd211)E!߰xbQj*U gΜA=ڻR1GM/Fx dHK)d;vYYE ;\ݺlʬ*^0hгjY{[Q+:::իΝ;/^`ԩr-ÑM6aÆŁ\Ϫ{{{tۏڄBHQ_U%KĹsh(!@R1U_!D6䝂h3}&oLJw (ggE )d8QdgʾiLhZϙ3S9PKN5kիlذA;1h o߾>&&&I#BHZ 3g?f͚RBMBBzg"9@SMT;}??)\]jxup,*z r2LQϹ <;)5 &LǏqezzz>/11_|ؓ'Od!OOOL6Mŋɓ'ѦMQB:bbG!cb"\P64䝄h~Ɣ^?//CI"r2-@@$*uS-˴ )SS>Mztۼ|PK ڵ޾} /{y"""A!5[l( q kN>}Ĵ"EpAVTޘXxwJ&@P$*üeiɴ^XY 3S$6Xc+#5(W-Zw;++ ]v'>p{)\B!(ڶmƏlǡCСC !D1DM/RdjL;$͛ӧN!`|QƍYxxxB##myԯ/Oԇ\PӋ!=== 0W^ŋ/0uT|}NNN([,6m ˗:'M!I;vرcż>|}}ѵkW !D23ʊi=B$G``)&qp BV` n; QDQS Tl,$|i===Ԑž;cN!`jzVZXz5>|+WZeee! -BڵQ~},XyoƵkXD'B47ƌ#JKOODݙ&Mj_T^i=B$oHK)&[7)dݺddNB1hг'nx' WckkgZSa}N!}a߸TIȿJ*ggg899ܹsXnN<)E'Oɓ'Xx1*V޽{W^hӦ ?ƀDYB4СCɼvލRrG!ʛTJ*3g_T=D++RX^Jl!_ׇ.h&&j1 DF 8~03 ᝄ(QS7oNiaL ; sBCqk5[֮ʹ&M49aLImvcFM/B.]ХK`ƍغu+{xzzƨX"222$ʝB!ݢ:::صk 6!hW2fy"1xۯ7_ xחY Փ,WWa7ox'ɱ?`nNՕ07c-)nTka^Si{缓+ !UTnݺ5s~^B9AƎ;0 ދ^H+YR'~* xyNBad$%y'ɑ*,p0Q!aLIiVvz:};p6$|ĮוL/TҼcqwjzqe``~wƍCCCޱ!si 4kkiiaÆ :t(ڄiôf-#DT*\_ի5[ȯR%鍩` (w++aƗ01ӦreX3L2lgm 7Wx')$4*&M`ӦMǪUPreޑ!pYOHacY---[ƍc^B4ôf#D-5o.,&%>@D$DfN!+, Xwsy#.-5g@vdn]%%{_h($E5$TRprrBpp0Ο?ݻCKKw,B!D-?{FJJ ZZZĉ&M?iM333Hq Bxpp BLxI":wFBV` v0K;;`)dyxzѼ($+;==)7ڶe^ xZDENRdQKaooǏիW3gL-!"q׮]C>}Dix)SRB4ю;35۷om)-kCo"4MaU%*0x0Уnx'!0Ӈw Y Ɖ:ؖۇ/_2[JԮXy]Q3з/?LJ❤Hoj˖-ûwaԖBk׮HLL%K0gQjB&… ׵g^7}ܡ?x{NA5u*ЪN睂(j$M)d;;Es)Jm/m_:N!ES^j&LӧOq!TZw$B!Drnܸ$$$R~6&|>J^B5gy rsjB"Sw Y>>B^ CYkϗGNQPK ikkӧO1vXq!ɸu~Gċo̙31|QjBڷoünϞ=annμ.!H\$$9RS%x'!00.(KitaLݹ; Q0,,x'ɑ!,z$z.s"Z=GvK)[gi;Il`.UIjz1CCCxyy~Bڵh iӦ᯿6!h7obܸq1b(u * $:X杄(|y鍩X`Z 0wKKI%Ã7_L y#N uIoa!L$GBq#9$E541l01!n>|{{{DGGR +V6!D3#U 7?Ç e˖E.]%$EJQ&̙S <<y'!h;w Y?"n]%l MD:*Y uvϟE;GvP\9DZr)V޿睤HXz5LLLx BTǰׯ_E?f\Rڄ kkkxyy!33wѹsgƊR6!K`H)d sDz "ƌB֛70 zh&]j XBB1%r4:̜"żERcêA@4+h%c5ֱ^{0&$73KL,b&F{FEQ"Hc%9٣&(>x+/p8;ך,]a_%^Dr0lADD.^Ν;#>>>_裏wQ6DFFbxk.X`q{CͧW\ya~6t(гtѱcK%C S.P @S59zduSVt 3/G!C0wÅ yѠZ51@_S۹X1Ν.)t8""""p k]vŖ-[xl޼'Zn_8~8233{_s=QFѣÿ{=Bqcݓ̟ܺҭ` ?|Ԙ` *Jtԭy  8wW˝;ԍZ(+ ?ݸak4<>qo+U ;z \\ EԮf,\ugLDDDvڵkuyT IDATp7ʔ)#ALxBBBpqqAӦMѢE h͚5CժUP?G_{ 6lg QAyum*WŋsmHӮZS}$]bቛt T6Iꮽ|`pz)jAmuN'}=8E==Q %]\0=iiILDt|@|?Qti899YYYHKKjݻw8TDo݁QKHDŽ jM}tjM+]B:ƎUCK잃Mɽ{K5Jkuw\5 D$&&Jg䙿xץ3  0szY!EϞ%bQC 3mmZS/$]B:]S[V_^SN1ٳΧNIp\+"@DDDDDD[>>>x3΀!]b ] 9"]B:9Z^^%6YYuj MOK-'GG,<eUJW9#]`8"""""""SpttIJeA:奆frt)pt Tk*gNd 0Pt.-]`˖ä^ŞlY5*YR&#CqEDDDDDD+͛7cҤI)DϮ ?3KHG[SDEoo_ _|Q:żj0)HTݺuc)DԾ=0~tQx8$$H6m@988`R^> *T1ٖT(pEDDDDDDb'NE<0 VRSKHG>AOtQ]2?X6e 9;K؏n݀å+(pEDDDDDDbŊ/~z49 DLk']a l,]AƎ:tx_H b8r%7n,cFP/kzQqqq.^9T\. ]@FAAgIW.__Q# O> V cuÅիֈ($dfTЋ(jժwww S+RF˗/G2e99"]A:,LdeK.??+lV`oKT6Eoo888H+^(&+c̙<+/Y,@C/"""""\۷/nݺ}aN2bŊ^éSn:T\Y: ZZt)pt Tt@r2|9pt psSkX1` yk z5 ۶Eg4U<<7t(m؀%'tRS3tiQprrBǎ"::ĬYP^=4+Vo7n`͚5xHRL 0>%]B:WC 3sGHQLbc /77C~=>.Ŋa@۶;q#5 ^nnY[j=E¡QsttDv . <<˖-CQct2doߎ̛7wMx8$$H6m+""Ԑ".Nt20etjFvFŊ'#htF-v놭b?Ag˖p,KiS`l !ݛNDDDDDT8U^&M¤ISNСCow!))I:Q+zs(^tYh(r%0mbだ gնtӧ%JHPNꥆ%6?Ϝ9(UJr{w8ǣ h Q}P 2d*S5*VDڵѡqcҤ jV$EХo& 7o͛cFHH>'ODJJpUX[FVкuk4iEcʉ`3FtH</޽%qFV.;{jDArj{j_p?\p M1q[ҨX<+_ WG5РZ509wd4tZS.]B^Kg`0dHnS֧GHЋL>>>DDF>} ߻w_ܼy񈏏GBBC$''###Vwޅ+dɒ(Z(QT)B 򂇇<==QbExyy,._YYur5O]TySDZOOm[TdtƍTX2_ԵkZ?5M7mRΝYX,Y@Xt H2eаaC4lP:(w?T֕rs]PNOQWժa$$5.]B:*WVC 3{XrEtTd?Qzح[ ǏܹsdN$""""""7nٟ-9f 11%iSuƗܼ%IG(:ZhѰ!_&$@pfϞYYYO}\%зo_L6 /RV3g%KJPNڸQ%`r5<1vy=]qqu%6aa9sek(:vTkjjWŋ@L[0Ro#g^P\xBTT>| $''۷oGƍ|>|Mk`ƍظq#zTZ5oC@ĉt ȑ=%6!!jMM8:JPN .(tѣ<ɓ>d_Vv.9yR)SEk(Wkjvg^-Z :u iiiے?O;wXf DDDDDDDc:~@1kR?.]bkZSCHi#GKl PC9?'SK٣~O)]B:&LP[4:$]^Ξ=~!G߳n:/߿`ٲeyDDDDDDDd6HW.^]hf`> Ԭ)]a-]A|}:u+l1]3~~@4h"Ϟ˘"""""""SHIVΞ.!J ʥJI<|Zt (QB]P.W.G?-tW#e_Ѣj@.]b Yc)QkBg ^ŋg˗ׯ|||~=+/XV3W\ɳ$"""""",\DDH?3IHpQJה5R~u.t)rR%wO˗KHZSNlٲǍ7L2bg>)SѬ:LnTkmѤ #]aTtt h|`| *JtԯvW.hѢO~q%̚5 %Jxc/^ 5))]4u놑#GSN(Vcٳg~-DDDDDDT\,_ܿ/]B:vF0 -KHGǎ1FWK;o']aLMH.!m'JW<8ʅ={ ==;::bѢEضm*~III k:::Ý;wW_aڵػw/_nݺ=BHn%]B: z0:rXVCg`W/ 'իY_d0 U[>|(]B:U^뱯988`Ŋ6m͛ __P>S4im۶>FDDDDDDΝ@LJ&2mТt_[HW)SV++Hĉ3 6m ]:HWjzitN>x =:[ϱrȑ#1bĈ~x !""""""6IW.YS(0ؽ[tY,@:F[*'??A mۀ> ]@F^Ǿֺuk̛7/[?…%K:w 777ٓ!""""""+V<>(.(+']b|1pt (ZT ݥKl23֙GJ"EԚcl ܣGjߐ T$]Q(qرc`8::fԩSQt?|#7onZhhh^Ȯ$$@xt RE]P6wK+WKHGJ[SIIjMIOO5(bŋ%]*ZT1J˙3g /AfͲ9z*U z_V-wet͛?pt h3G(:?_OÆjHa&oSQQ%AugĨS%N 4>իW655r9ͿlٲcbbDDDDDDDv+, X wOtt ds dOqFԄѶ-0qtQDp!?׫NjL"]Qp̽{"555ۏݺuQ\py͚5sDDDDDDDv-- X 8yRt-.(ϛEed3.!NNjZtͣGjMH.TIj֯.!]f+q襩J*lܺuڵk>|g/9 wŋ+WKHs~~FIIҥ@6L&S0atQr2|9pt pwWEKl<>8^t/.]`8Ժuk{{~g"""in/m׮*Tk>vW/KDDDDDDTP?4j2۷ *Jtx{K<.&X.!u ׯK84i{hѢy!333ۯ1x53|3w*WK;t']aN5`" >^tjL,]at|J(45n~݋M6eK,~e2d"!>>>pvvJ'N K}+NRƥIPaq b"]B:zrxC;^mut QK#FeZFFzEܹs'՚7n\]]H/} _Z*N$""""""*v+Hĉ#n^ or&z%+Hט1@ǎF96Md8ʅ3gTRaƌpwwG:uPJHJJ:;;cƌ4EFpȑǾ'Ndu򜛛t֭_JW.__((صKt4l(]a'JW.I ;ۥ+ ^PBO^ZZ._(CM'L?OԮ]q){geeg_(ϼ_5ѣ%I <=Kl=Rk*$DtY,@J6V+aCT"]aaptQ+N>}UV c_駟ZBZ[oƍ|{EtttHҀtQRt)&]B:*TPVr2|9pt pw|}EKlYL.HrԚrq.IIQgƝ=+]BLo6mB޽s\KƶmPlYGcܹst6XVV>6"""""""mfr6ܼ)]B:40ߚ"#KHGݺ[S%[ $.X.!7z|s+WKO8|mڴ֯_@--; A<<" O:ZI~+ΜQ[H޽+ΟW[>x ]B:z 0tImɚ,]B8cq!|5kիyzzwزe N>&M[Mn@DDDDDDf1i7滽{M+H@F7JW1c+6lrp ȑ@׮F!!ڵ@Vt Qr(ڶmmŝ;wPD =UBԨQ㱯)SbŊ|~TT 5jԅ IDAT@͚5DDDDDDDb,`,mgOajΞ.vw#eZS%6۷滻g,MٹS)H z'''TX+V˗q ''59sGF֬ʗg% _T۶5SQQ%665e){Ԛ.ٴINK7$""""""WR88Hܿ|:쏇,]bb2]}j"]bΌ3]}K5UtÇl.!z?I]3`| 2Rtԭk5 ,X\.]B:ͷEue_[S @xt QqGۘ?>KܻwO:ȼڵ&L0vM]P.!['KW]Tlt h6M 573͚m$* 7D8ʥ˗/{R 9s7ٳѣGxyyҩDDDDDDDԯпtљ3ʕ@jt &550iҤ,#""""""3ǫd~`& 5f +F~ _X%c(K `Z +Kt t.]atf )]BC/M5o̜)]aoK_̑0VKC/M9z|-жm|!""""""* 0:w#=ٟ=C+.^>@mI[7` 0`2=ѹ30ztѕ+jM%%I!4UP![srr€! cW^0[`zj.!F]HWkYY%cp{w #GԚ̔.!C!;^ K.45lߛ}+NRƥI+Oxxxoȑ#޾}PfM=gϞͷՊ{/ߞtQۈɎ@Pt9Smwh&l*]ANU۲@`t4 hFh^`f "z];w{iiiXf 5joooL>}ѣ\vzz:M\?]XU+6m ] PtQ` ][hV5"dKW!=0'{??~uؾ};Oʕ+@@@XbX"ʕ+WWW\rpr5qqq8|0\""""""z-.͜ P:uk 58;;ÛGF?#]B:6fϖ0y?uKt4nlA*֒Z[d'52{*2RQzijРtVF/˖w5J(,Lݝc)g^y;V(<\ݙ(]B:ڵ&L0vM)lI47ADDDDDDDt&]a꜓L1t(гtѱcyp 4G)`*u~ٟ~ԇ+Vs. ;(_<|_ ݃oމKD4-::{8gdLuֱcO瀇0dt :SL+|w7RLKݫ֔n0A7%65ePK^DDDD/_756I(wd^5\oش (_Yt¤KleHc!ŋ%6AAjMFE ϝ. RF*&ooo+VL:T)5(]Z&-Mmvt pqQ]]%#X\w5R9;~~.PT۱~t ppPKlV`z!zFp DDDDDDD4ժ f,Y\*]B:*WV$) X\wQyy5%uWܿ|pt P9;K$'}dРA3ӭ&n:\R:RՑ#GdɒB5DDFEF;Qa/Ξx9Mنߺy1C P!+QQ6nmTQxqߨ\QyrM///s;wٳ]bc ksC\^Ov Hge[hhtѯ:H80TޙCyC) WyqMQ^KKM no z>t=3xW.pd͛7ǔ)S3*117n!C]Ȧ#DDyvx~} #G۷+Ud+Փ0dyQlY'8~\[7kIsmujtԽt ' ơW.ԬYŊCZZSSrei?<ʕ+<<2==111ؿ?..]K.DDOuEkܹhԨ`o^DTxq ѣ95f^U:ODfp*Х гtܼy08p jժ%XVZSI\ t t 30W/]b.7rKz傓ԩ3g<=777,_G"jŲe0m4deek5bQk ㏁ͥk(??bckL`ZhRrUk*&FF֭֭݁kH/k,wZ jMk']C^ԠAdž^%J L<ׯ_& +ZQtҀ #''Uה3P3.=##"~UQ//{*WV9sKl-ԖOd_l=`RjזTfRCL3HN/WC njlo TJ GjMqC#^.=\3fl5k,,\=*&"""6p 0rtK`" Ly kH_fz_Fx Ĥѣ#5j,ʆƍ.Vk7@KÆ{I?*W__ߖ.sǶ^rvmugoH 5Ut 31b@ 3i.!}JW=KI.!zCHW>39Ytt .]at2lpt  jűcǰh"khӦ jժ*U ^^^miӀ-+زEtM j%]ag(]A&Nڶ0 6m ]:HW<l ]AF:w0;`zj.!#FݺIWzsڣG%d8Gʕ+E1c֭[ÇիBbb"bbbpl?ӧ /`ǎXODDDDT|}5+ݻ+Hԩ#]ae}40 >LtIWm|t3xE ;mۤ+H̙@Fv?^ ..'ND:uyxxqJJ 3gΠo߾hݺ5.\gODDDDTJP˕.IOW[?.]B:U/wwL`QZS*Hde!!%x9 ظ8tHtUHWm8 ]A|}ե+6m +QFg̚50 K/>V2LDDDDJuAL.\.!*oMݻΣ .!jM99I$'ss.^.!nnrѢ%6~?/]B:ʕS%KlRSՙqOKRԟ}KKؤV'OJq蕇֭[nݺ֭[YYY{c_OMM믿!C $=j0W$Ӱl&o@Tt _|k*&F.!uo@ ,XDDH5ͷ぀5QIb"d pt ^yd=zt"E`xQmݺݺu󭁈(tc7+W_3:IW %m[`D `B .NtjL"]at|J-ӥ+"#Հ>&Ft4m ̞-]atZSoK q9^{ YYYZQxǾ7_oDDDDDfW/ 'իY_d0 V>.!}ue&gϪ-RRKHG^?3'%{w`p KԖ|}9R(,LmG$]B&áW.bذa(}WGGǾ3fhQ2EL+Hĉ3 V}7NIh&7JWѣΝ+֭x}1U($XxHt !]at(@_'s+-ZBXbҥKuV*""""<`NdV/+HРtѶm]Wg&||t3Gqi&;vUdf50ڵ  ]Ӧ-[JW}et^? G[o͘1+ """"P|Kddw'=*]B:QC OOG5k;>Y,@J6V+~CT"]aq#ptXե+6m ] -]ae {t^&8mڴyn;#PDDDDD*URC 3IJRgI ԅ"&pr:ETѢ%6Ο.!ʩ;SK.IMUgƝ>-]B:JRJ.IKSt pqQkU&=]msxt M_^:%K)]B:Q$6X.!5koM\SZ5TBZS%re󭩻w՛Ӯ\.!aziAx 3'%%a^&""""{֡0ntQxP ]B:ڶ&N0-KHGV)Fׯ5+]B:ZPgIdzGLt hLe&7o5ut h0Vk*:ZqoţG~1ԩ&L[0`Ӷ={|׷oߞ/GDDDDT`0 U[I}պ23g+az0:^mut 6L%%%kW`H 0uwNRt 3FU`b 1Q8Iثcǎ={_VZ?~ڵm[lį9r$O_?{wU{! IDAT`n(\TMKrռ.2d{ݺR.i*Z{(\Pr Qm:̙~xs>z^gf<߇DV:$ln|y`p$ȑj́IWsNBzS{J'1;tHͩ1cGl@7tSvI'1 VsjX׽ R*wNbvڏi8H4dy*(H:YhSkM\Sc63g{m/h޼9ƎkL+W~㉉f\""""r>>@)mۤS^&%Bk&`哑l p5ejMg$۶?O'y^?6H ƍS~d. @: `K؇?I&͚5u$/^FDDDDUbE$f+W;>L@ժ)rrի,c2իK7֪FԪ%Bk:`)B+ عS:e2uJZX)_S:;;?K.mHH~Bۛ`EJKu!}IMU{<#SFjsڋY$G2/Pt4`R)$*RH'1wX8qB: Q:O)#,#C;zT: Q<*,+Kݜ }K/wެY3ԨQC(ؿ}DDDDH4Pj$!=NBzԭ.(IbS4Bvxsu``SZꂲܼ ̛p[ TTRp!%Zxsm5""P>aKt/駟7'nVKDDDDm[`hZ.s i0XUxى-9F̚ d7W{|jNK'!=7V{ɕ+'//ԜtI: tzpW~巌 lxf%RVNuj!&x5ZgΨVwH'!=w Nujɚ":T:Vd$hZQAC`ZQQjٟv퀑#ShEG襓=ϟ?/D˗CFR_d~`Z׈:|-#:T*$8Xͩl$ǠAj$!!j,$G@Ϟ)VP{}[:VXlړ^:i~?{,;&e׮]9sSz|JCDDDD$dRTd&`V哑l l,2hT:VP(8Nc~t kxukZv)H1cTKr#ٻNAyE/<<<zlƌY6n܈}O|#""""S&<(rrի O>>7<[8p@: Ԭ)BسG:e2);S^&Pt UA쓯/Рt mۤSPaK&M<ؾ}0|pdÒ۔L:o&<;ʔ)癈D"E"IRS^LgJ'!=ʖUYTZ3)$GRjN=e{ˁ'%J F| ptңhQuruNbZ>,(THͩJݿڱK'^.]NBz4hVIB:O=p^:9;;W^O|Nhh(|}}Ѻuk.]...Dݺu1}ts]oDʕϢL2h֬???>}ZW֮]zz5Zg_ӑ4H:Vx8xSO.!)"#En%;ѩ0|t (`ϫ#GJЊS+Tm #B+&Fݜvt0j(DGG#""… FBBRRRlM6UM"""""+#FFzO@.ڔ  t,B+8Xs> <M:VH$+K: 1`гt cǀ+^_dzN,[$$ӻWFrꔚS9!eM⥗^DG@DDDD$g Q#Z7OSF79( NAzMx{KڱX^:5~<кt ]ט1j ['9hN:ڵ)X_|'''Tvm3Z՜(Lt 5kS^@͚)={S^&)BkzS^&Pt ᅲNAzK mNAzLt M-[SXRV0h}駟H"1ʮ-T/.,- XTR!SS..I/W-(.()#,=]ͩP$GѢjN+',3S<|X: *VNbvSIH/ ZU:YNjE~t^6`գG1vmH_UgUK]P67yh$TR0>%VML5d`B 2R: Q'YYIH=Sh;| !K:j߸t$G@߾)NT{I'!=^{ _:֙3;I,z٘7BBB흯}_|1_KDDDDdN6Nl(4 Ocat kxU+Z;w)Hc^N{7/5 hN:ڵ)H#Sh:|-;m򀧧'~g|xgXE;#ԩS'OEDDDDP|}5ShI ||Z?J |}}߰{ԯ/B+0ضM:e2^^)6mlNAzM֭)(X#Θ>}:"""0yd1p@:u _|+f񉈈^RHQtwU[0$Gɒ_IUP$3Ϩ9UtL:a$S+J'1_ͩ`$T*,'XF!d2իKZ8p@:^yRJŋ_s(Z5jO>QQQ."""""kxx/Fr&0o-pw7ޜJJժ_F ,ZDFJ'!=*URB, ,Y;'puU7YqRS^LgJ'!=ʔQsxq$fiiSSͱ.]?k.ܺu 1g7ݻwGfаaCxxxM6K/!CGPPp ]?1hL,B%`, >^: Ѥ 0mt +WٳW?.իfT+gpҋV/#WIVtcGZG+VIH7zNu*ĥK'!=Nuj!&x5ZgΨ;IH݁ASh;ZJ'G`ы&OVdv`ׄ @V)vS^c/$Bkn_:5jЮt uS^#F:H:tXɑNBz  t,B+8X ΖNB`ыL&C:V@)H/__NZ6/2ShmܨdL&K:V` ut ktQ#Z7OSMJ R*2#9%?#yڇJ'!=yFͩr夓ef֙GH'!=bE$fYYjNt\Y:YNk!$IZ8p@: Ԭ)BسG:^i5j@b gggxzz^ /񸻫 5F,X?/VM]P6d`B 2R: QSNNIRRŋ^'d*TPNbb:{V: Q%%ǏG #88qqqHcC#::۶mÄ PF <GDDDDTp4iڨˀptңQ#` ZWfEaCy*.N: QTb"0{6+]xsu`\ &F: Q͛@tt^eddØ?>z-4m+VDQV-4l͚5CVбcGtCr 6m ";effbڵhذ!}dee?:w NV$'K'!=ڷ~[:VtPstWѣSh].(?_26mqShƪ9(h8Q:ŋ@tңys`dZ.ؙM^:-[ĉn:?~V޼y:txbQI233GsHJJҝ0p Уt #G+ $ǛozI:~\ٙ>}}Sh< ,[ܽ+x5u2ӧVt>SIxjɚ*2D:Vd$hptE/իgrrr0|pV~t )))6HFDDDDD VSh l ;x%ZwI FRd>_:juz5#6L7``* ]`uN\ #tڵů)Z(J,+WDPP-b=#lSG:V@*~}QI` }t dR|I` ut k lެ~>M 4m*B+(H>Mx{Kڱ7 bK_~ sAL2 [FF># 7|cq gQEeef6GH'!=Q eeE: _+K'1Q+sNBzLt 5kS^@͚)֭SS>)NQ SB0gΜ'>p5j"##gjժ=g͚5͓.ُv?#IN.T{\Y)''$f))js礓* EH'1KMU{1=+([VNb,]"S*R<#w՜ NBz,TI~I gyR ۇ 믿KƴiӰsNbǎ:t( ڵk-Q#H^f._NBz4lhbjB0{6ptң^=ͩk׀9sk FrS11IH㝧nƛSII@TtE/+?yJ#44/_GZtF!<<ХK4iݺuêUyf.\Xٳg[4>BoKЊ,nݒNBz 0zt huM$G6ر)bbT"1Q: Ѫ0at ??UT%Ӣ0yt KԍDIH&MiӤSh]SWH')0X޽{XtCתU {A*U:Ʋe,:fcT~Lo_ƍd oVO?W99IHaÀΝSh9-<M:VHj%0@` #C:cK}=،3ЬY\H+_jԨ hۻwoCDDDDD29Fl.2>_Fl*1CGh$[7K N6Nu+qt k$Ho6lNAzMڲΝ@@t ,^8qB{r0eʔ\x3,( OXEDDD@ZZ._W"..vp-ܺu IIIAJJ rʔ)pqqAQbETT UTAŊQZ5ԩS'W+ĉ|}՞F٧&+Kݝ\;Zt YKܑNܽ!,_xJTsj>J^^eJORdkV-yg穛7(ʕ󔷷tĢN&l׮]_{- dɒ߯_l*nDDTp%''ѣ8vN<ӧO#<<믿_g}mڴA۶m^^^ (6T?L:YBM{%pvvf l'K'!GѢZE1{tK| IDATTJӐ4M ?s$fWfTji +!:-[V%6mڔ>WYv5o< *T@ƍ1qD]Νף?5j+W"/m`N=ݽkoĔʣPkzo)Bi`2՞O]ekW``Zj%EJtңS'`0Hڷ~[:Vt -$E/,zvߏ˗/ù>N.],Wh=Rb=MNNN> O>X"^xL4 }nWw0|p?Dbbt$"zѣW^NonE/ׂɋb8Y#6L]T&!CTH~Uc2"=H/IaK IN6mdѝ]u|X4?ADDdTgFJ &`˖-qt|>pD||>_F|]l<D1C1͛ Lo)ȑL )H T[V"[;V6ݻ-9E/^x{yk؂>+VD֭-kk֬Ecӧ/RRRz߮89BTH{dg~ {%sׯP;3o\&ʽVS=^Ӧ7˗oNAz5j$ WLMMN`X„ zl—_~7nDorQeNOO: 99YjժA_]"-ʈW/_?ZNKt&.^)iSDTu &B+&F:Y}{S#y`hdC,zY7@z<22w~aֆs={9/^<ޥIDDT۷mڴAllt"#W_Nuf ?{H!K t$a۷99)zNA7DDҧ!j*/^ܦΙ3Ώ:''GĉQZ5 8-.\ȂgΜa;'^:͛1㏑"}6 hD:@`t "2 T[V"[;`k=Z"Ǣׯu=HLj#гgOc?3F777x{{cHLLx/^DhhMt:vk׮IG![9yg/Pt??Lt -U""MkKxXptdՓNAdR|]c^u|(SUt .|ٳgcҥr劮qCBBEDDD!22=z@*/l; ૯p$GrK3H'AKCJVKNbv3ߤ/ʖNw#)H"EԍDI'!GS+K'!+e#:uBHHZh{͛QX1'Ξ=k1 2eʠvhڴ)6m:h~ZlM...qr;V:JBI'!=QE AiF`SC.ɍySZQfTj*p!)\Y# T1H$mznݺ ֭[駟O}Mjbȑ(\p|rKDDhQvmXL 0g*,պ50~<`MDLy4 ;W:Y\0k{@JiHZFK'1zUH{@ժiRFlI^=usGI'!X1'''{F\\~={ q-eˢAhժڶmBlp¨^:<<#""rdKFӦMѢE _>իE8Ŋ'<==ѥK?}6b۶mضmmzܧ;v,ZjOO|=.ST IڌrgOu _uS+֬Nb,YL*%@3Gi'ٗD` $fӧ# lrFx祗cŋXCիWǨQgF…>… t(_?*TE;"""{Vn]+xѢE ԩS'On<ɭg}ݺuCnݰd۷/eXJJ a׮]y~,'6IWEݻpFYoJbULݹS:Yp:O Q*`7mQ<$,4X0n S7M#ҫat^vW^쎇:v숗_~ T" *;cǎᅬk";;;O?bԩSͪ}IHiſ\Io0ySG}mۦZ ?95xtc8uA知ޭ԰aIQۧoK'!=~[}ڷO: DDDD6TX1tsŹspy|W0` ^Y&[;Ϗ7mڴVNBzի!NmA}6 "5 UK:j" X2&?HۥS#ٸ;׌U%n/_?7n`׮]8q"ԩ#j^^^駟9 s+$G2o͖0ӊ1kZ(9uAHhaIQdf6FZHWzPA:YVj"Ev6ZHUNAE>6A;vĴiӤ# TR׿w^cʕٳ'JbI0Lعs'fK,ɳIHb"0{6#TE< J/ʕ,9c*嗚5e#u XNB") XNBzT.(jNEDH'!G ,YK'!=ʕSѹߟ9lɓػw?DDDD6駟b…h߾}2:_~AʕdCϓI''یs"0w*&M'1f*JCiS`Z/fIQ\ԕ+IH/:T:VdZI,j5!ٟvQShEG7oJ'!GÛYV ) Lڵk8t """"ݼ~z*dp[ldrrCBp̊ח }N8ӠA@)V1eZ_}ӥ}}H -ݓNB)5Ҥ=zH(0E/Xft""""tS=ŋq9Ku+qt kys/?#+#|l\n$fDeKZ?_/"@kn){6z4+)S#9pj5|8Щt zUZh3ٹO>6w6 dZ`~Ԫe˲ _0Q`Kf2kKZعS:U Pt ;S^>>@)モNAdf`&״i@&)uu7nܐBDDD[ѢE|}|L2wU S..HQE/ g+ El+F&qŋ eH'1PmNBz89󔫫t,`J $D: QS*I'1Vmݕ/rrj^&.@_EfͰzjddX3z 6`}IGt:0g $fW{" //uϤ%$̙tTjN}d6t횚Sァn Vb"0{:Oլ),nN{]$Z;w`5(W5j&Mm۶h߾=J(! `РA6-zegg#22^^^6 9u)#E>e V R_Aͩ+?,XAOv_K'1S%˕NCz%`(bb z$uUt70i0wt777o1k,˗G>}phDDD$5m|`[UIHAfX9pLkI:vLŭ S߾@)I'!=zNujK&→n5ILn) <̽{ehѢ~WHDDD$]v6͛6 n6`Fĉ@˖=< @V';6nкt ]ט1@۶)S^#G*B`H_`j 'G: 1dеtE/;vQncǎEzzt"""РA; `e\f2uJZرC: モNAz?/Bkf`&Hnild/``ɒ%hӦ \"Y:ul:^J5C.ݻ,_8!(QB]P.SWLrxȎ-ji+$GBjNU$,;[,UNa] :$Q`׮NAzL@Z) $gѥKԩS(^H,֭[HII۷qҥKرch׮<*Uqb"""25jt<*n{NC^0w-+yWDjUufd$fokK!KUԔ)ijߜzӐʕS+&O6ξw_}V7R,5mw=ʗ^xA: Yy7YT0p@899Iyׯصklق>7"":uBHHJ,)HM3g#C/fWiBnV+7CK]Pǫ̙tTjN}tOUԭ.(tD`w5Ӑ OW us̙\5djT+Sg̐NRlfޫR ~'[vqQ:uٳ 4k?}4Ǝ HRRl:w2Hm$d%K%ѶCW#ShEG7oJ'!=ڶƌNׯK'!=ZƏN ̞ `dIShũ}BtңiS`Ml25ڦTP!G+>yWFPPP>#""" 6D6PH;(`%%~}Q+PR-B+, XLIHwo5)B(-2={Hw$Gn)ΝS-Y&>u *(PkڵknݺIǰcǎ1{.L:FiLDDDy{pU2&$g`z CBOVaP6qQV޽t kHH֮NAz t$B!o$ǐ!@.)UԾcd wNQ `UTvm:tUV}oQQQXb@*"""Om܆Zj6X@st zT7Ϫ1+@)6nmNAzd&`״i@)nU*OS͛Kڶ  NAzMl)W#\jհi&*y!w9WF Gv,# 4T: =ŋqي=h X%"V*RT(}Վ58X: e2WLNzZCdWNv-t djՒN-2ڵS8S*[^iժFΝnZDD*Qc['S̟DEI'CΗcڵ &MBdddF ,$"ul=z d6lPnݤ83/y+V0vΞQ** e2 5NI'1۴IzNBzL.(8!lV5xm>/F IDATMѣI̶mSsj$ĉ/$D:?*ou#θqjNK'qްx] 9Ei,^lY;..ΝV,xݘ3gMYu9L`JuG)_Ϟ"+lרv颊+(K=3ڜVV+t.ZR^Eի4jnUC57֪FԪ%Bk:`w\Eg`<"ْԭ+!pqss.@\nP"@izjcGAXX5j0p@#66ϟ1zꅚ5k"11NB {lA%$$/xh߾ƣ 9YPPt~~ȶag?899*/Փ'Fiߜ8)_WO: Y5 c$fw\]xYY8㑑r\? \IO$\ @ypP㏟xƃiij8WW+F⢊'s=`r57NCOq?;/xT"/_V籜wr\|F+ uuus<:nv͛[;巢Eg1c?Xr0...=vU$h֬Y۷o?ҥKx>>(T BY̙t6s*~Uc|8d}Gam8nU+7-UiS7}$$rT/͛#FHк|Yͩx$^Xxڧ당[࿧NYUʍ;,0 jk}8 ˒\?T$`>)NNNxwj[o "ʭcԩ6?)b19~\IONp20/u1 ƊSQ1M>=~8yRc[3gTC K0ib=~Y]> lsTKVķOmJ'xXd$h;RS1j\lWZZHGs(usZRR#2.Z=F[-zߗ-[OIVN.lu'zt|"XnlӵkW6 ݻj)}]5 hΪڵ)-[J':t[]P kBh`)jNeoD!!ʕpј) r-4Z8v XBET`Ο?ݻIQ\rAAAO|Çqĉ|JUpnn)֬NA`AHسVHB ;S }azUP%* f̘1ϟpAHLb|%CFFF[]w#&_SA8xwЫW/KdIuA>ҧNH/6l@hdUc 4EjNiTٳIHeU1xq$fiijϸSAAz@S{[ u?!>(SF:YF7\D _+9LιG+??}o\YmRIl,L gN"Q+W`4pg,ǁF 0猋3!"\ 6}*>fφӧu'n,)x_;S9sUG6]fϞ}ߋ+… ̞ B!,,)SШQ#T´iӸqSԩ-) M47ԝڙ30}:\ۯ-^2[9x0r a2YI;Gݺ0lΟW/N"LĂ*uX 0y2\dx.O? GNa-*Jݧt'nfP o\S.>.e6""" a&}+F63n!441p@ZlIrxBᖢٽ{73gΤ[n+W+2j(Թիv>ުG\(V?wy{WXG}DΜ9]U!0c 9;+ƚ5khԨ(UƍS ǎN!$ vt'1t>M}د% JcfN_6)vQdΨQjA!I2|vQb gM_~tȜCϾ}t'ɰmO;pC[Q= 74nY1%K(Zj̙3ڧz'Yd I!ױcG>,^Yj^$,Xv%˘i?8^reA %J8gl{XaS6C2SX[ Vw aR;P 6X\mR%)] 7N!>p/TR^,X@w DGGLժU&~i'bp»Q 4zM~9ƢEM!ըQ;vB``8B BLΗÉ٘-Y,9l*?ZwHJR=՝D#wnuMN-X\stQd:A_$RSŨu'n"_ᙿp玺tQdM/aÆl21lre֮]K=(S ~!l`O:uPx[rԩ~PIжm9?#vJ>!OrJ~W^xqn+e3iYILb0`tnsFUgP|ԕ+0}:DFN"QZP681""t'&uh aL8}SzL`l ӝD?ɓB a, 55}pB:vH 7񤦦ùsx"'OѣX,lԨ9!9s{|ڵ^Kݙ6mCYt)3fpJF!4hah߾=ٳgGIÆ0dZ1HINeqKm_~qhJ%K2U}օR fqL&@B[ծ #Fԩdp&Ow1WX7V@ G ʗy!/~~w_w#);wHLNr|<^\vԴ4k?oLDEeܧ-ȓO ?ԝ$åK>5a{y)ZAy޽C{]o޺EJj*))s>6Wx SS5 6vbb dIل0Bˁ8pNצM g۶mwܷo_r׾Z|9~!9s4<BduJk׮ӇJf5 ̥m[ujZI2; ,9!U޾=yyx\Y >sݜs$̝ F\Ȝ-5|$`=ѝ-xyyQhQjV@ X|bV Hsp<'HsǠ 2@i5 ƌ|L8GӦ>eV;V!(U=K{JX8}"ᄆaniz_g)3g2N+XP[.!e7^{517oe}mʕ[C7ٳS !DVӰaC^z%ZlI5rVy^]-ܩ;I~@0?'7W.^mԈW5b|w/Kmcv@&P5oغUy S{NavuM;[KkJfMivX l\y=p+wߩk7\Bc#pˋQF!g}F\\?<ҥ s~DZc 'Y˗2d+WZj{?~\w4.a {)\JB#sxoSfƞVT͸qPV6שF ʛڵcϴiD]ˢ#h] 5/v8B;~8V>, .$99Yw,afeI2$%^Y!3g]]cdULEʥT^.oaN2~>>ڨ_>׬aƠA4VnP: pp,T9> tN5VBt'p玺!v! @r1cnJ*VT_fr L8Ńs3}@y81""t'(]Z-I|<̜ ONTE `L΄/_Cz1cԮ\gda3!!́0'%NUOi#81̓?НDrVv^|kMgt_?`  2`_HL .LtwF3f63gwޙ~o_ޑxB!2ҥK > *duGfTjxn&)p$Nsuޘ6q&@ax.pIG[xᰚ5ah)EEԩ;fxέZ_x`HZqx*_ީs%M>u Z|ĨSNryrd?Iڵ42 dʕGGӧCXlwgXaWNٞk)յkWl{c/ZȮlB!s^u5j$=ܑW^g?/k~g8yUOzssCc4Q͛(  Sԍ{4o}Na-, fVt#$3/;}`r6LhO?rNcшxevST(>'ii{t6䧟`HIѝD W?N~îF{p# :NaRZMmK}ǹ qi/UÛ78ƑM/˺u뤬IZZ .g}ZjU'Z`ƾ~:QQQ>}'NoqQӝ6ӰaCmF5\:0yB͈)Y,O=;ݾ eɶm=;KF^;.s*I<;_},SSU̠ ][wa^Hco€ 1-M]S B.0nO];b Bƺ{…}M$~v?ۓ&NzþN3өF!#^n(00sw^ʖ-;pSs"̤I(R(P Q^%fϞ=k !ȟ??/2ӧOٳ۷iٲ%NKڵՓfr>ٌ_[țcb}VTlbcaTsWC)o3 <鄙plzҥKf"kq+Vxoݺŵk2Ojjj^ϊ!DE={6ϟgĉ-Zԩs^t_|8в%;S`s7nth ///~ Sst'xxu)ED׮N"lTlYFth|AK5lCNaYuM9gThR. o>p”7G>wNm_مp욘X@@jf׮]3n8sJ>S_mBc̘1>}w}0ӧѣׄSm~IZ$u;5~SW7{y~IJIѝDأsghNw k q­ӣePС^GEϥp?m۪{; tn o :aNT%Y0˲ݐk׮MX"r.???C)^8^^^# cX7oײgNF(S 6ȹs8piYz*ׯ[n6#YIΜ9yݻ7}[Flٲ>f+%1B=]OdشI56g-[94F`޼LߠD⡶nUWvQdΠAҞ=dؾOI rNcC]/vTהN7yuuڹSw ?@O>37X}9~6)#W SԠA UɄIdM/ooo.\H*]vq˗gTT׿Ŝ9s ʦBdR2eعs'3gd6ͬ &ТE z)n,8Xm~jysI觓'~2y H$kjPcӍ"sƍSNԝ$CH^~YwanM5)"PсBBCf;(2gXI;I}CI=FRY}y>S~%ȾJ]S]8rۯ3f̐ /ݿ!5c C6@={6iϞ=4/Bar^^^ 6ܹs>~ZZ$==˕K-(;ᚳ۪|}_e 8KkӹIcBKMUetQd6"-MceGl>ތtA#X`rؽۈфPV'U.0~<)/qT3>3שFeM5jo!6ϟg=M .L- gȑbaņ+y|qB߉h"nLK\fAx$Vr%"##wΜ>ܘ@"`l ӝDأHl2]7n';Af1tL/?Nb$}ʉzm >_έNeOkSe>)3jYV߿?٤ϟos}dϞy֭KʕO>[n>Bx5ksNoIf~<ʨŋ0e DGN&8<·QL'Vhcǝ4iթ`!z50ۦO?ҥ/&^!z{dH<[Vuw$:Kh*$'‹>k`YcTä$G3'ה;Zb=M'dT|ɕ#齃b/cFɄ'a|yb`k"-[+t'p*=z4\.O8_@߸aX`lxmUS'M/!<ԁx <<*U,Kzxbz-J(a؉ͮP;|O:nqܩDtȜ_W;wNa.(X|{nz٣~ h"szT)3߿-S'f#Q\w q#]R^6{pO#FrfiNʊL1zbhիQ+%y&&MA\r塯/iԨ[ly))GƲ`d ݻw[fj#fذa|͛oɞ={25?~#uF||]s!jժexgϞ5t<||`8YНDxtSsj?ם"Ţʙ}$ƵNZeS6PVoѝBX:`kךT(r.Uw?fiժTX@=z4<Ξ=˷~Kxx8'Oȑ#9sŶgAÞ={ȕ+գqtޝeoq.^ݻoIOOx1114nܘuҴiS/NPP5H"VMMM믿ŋ9s/f^n۶mUV<*T"EТE Bᨲe˒={vN?ސqDRZ1S3UbEi'HLyN7+P >ec IJ 5U4H20 Uϸ@QCG\}jHHHНF}[ ;֌%ݺeX k`AnnO6'OdOq%''sn߾]^7ofvex7ocvA Bg" )o(BA?ׯ6b НZDZRQ"#atY!Oz0tΝS!6Vw,-3yz$~]1 .2vj*736 3N9s`hȝ[wa_T-ӝ$CX:ې74!n0l,"")1c ~g&(QK"CjYe5klH!7Չݻu'ɰcGѯ$SڥQtȜ}ՂdسGݧ//i11؛Q7jd @kj~&I2,] C};|fL6B!u'x);Vw k2a;w_z8 7'^B!"&&˛7ac qWЩ֎U%Ēt'aRьrvQdNp:sFw VAм$e-|߿~|B!WN7>u$BB (|=ܺݻ3 i׭SW^ѝDB!o6lz XIIѝFySm,U>%Krɒ.f> Ϗf5k3X2KdU`AQCwaYiݾʇ,<;G/4|zϸ(5U9 4Fx>>0~bcuQ`2uMtX,Lt©M<敞~)n# B!<ƍILL4l\w kÔ);3Ϩtfr"L .Nntǖ}i3y)^|}Ĩ}.NR^q_[?]S/k9IɦB! o5t{x6mkW)?J޼;GVнC=l2y6-Z@^SX S')t'q[o/ZD:eTfЯs;$<f4OEa矇tN;;3L^g>n瞃F` vHdz8IIɦB!׿Ezzc6iȔ}ޭX,{6*d>sGwaݡuk)<1Nv?-[ LԪT)s/ڶ5CU=SUlz !BÇb~~~ԕB1cT'3ٰ֭ӝBkHUKw k7nBÆ~NnN(b]GjԤ ^^^Ð!а9}\S7qc)N؜ʒoߦK6[׭K92д8d.XBw aB%B0`᧼Zlc a`(YRw k+WwN! eNaҴ…B)Y[NRrI}_gax80WYZw ajU)_N1M¯aaN /O:e>_;0B!pS&LlJD֓/ZəSw ɪ,ѣ{Mܹu'p** IDATo{ſ|t'ɐ$n0`t~8r)(W7T`앖˖{d˦…u'ɐFݫ;{orV唱T)Zթoŋ;e^X,N"LD6B!Ж-[4iK/>6+_^-(ɕ+0mj-O2滦` НDأdIl&0{6>;)Y,̚ŲoqctŊ~]]SNN"Qu'ɐɓIko'ӹ3V@uM9m~%%^ǏN"LB6B!́ԩe ^{5|}} Wԭz0y2N"Qe&/k%I=~Z"4(uMEEY}y70zB.k Wڝ;1m6mru*WI R6bb`pAwa*UwM]mz۶ԩDfa/gNdPKVhbc4qlz !´ܹC~8o/C楗^͛-[6x ![CSX{hf+NR$$N"Ѭ;p5K[nz`\Bەb'u #:*_ڴ]NKLԝDh$^B!0.\HJxwb,RSSywر#I6BY>>>{N[a󳺑#Ui:3ٸ֭ӝBk0xXv]֬ѝBk仙lW?[L *?ƌaӁX,t۷x1 㬓?;z{3{P>p 4nl옎ڱVҝBثx\:W۵ ~C.:u ݺѾaCc+_|ի4 ?#>&zDD!W^e͚5YlٲQfM{9֭K:u(i IIIرM6i&b`A *Ă \>h\Q", Q} ѝFتY3ضt$NYԆJ0iTݧ-ҝP 7ovO ŊQD *,I%XO+Fqh89oO[x8lݚ-Zvƍa@u,"#a4Ӡ ~֘Źsjk r7oÇ@%RrRwcE p4畄EFoO˩S8{ѿZթûF?Y ӧ;#ΟW&TpB!GKOO_~UX1ԩCթT+VbŊq"͛7 ѣi !Bx8___V\ɘ1ctG¹jքѣuS'ͷuL .N"QZPn!{lۣ&L 6UZP6X6 "#u'(_|ի0cNhՊ&Q8~=ʔ1穸8uMEDN"@6B!ooajR=E ѥKɦB!?Ahh(M6Eڴѝ/2*)){tNa-4T]SoN"Ѿ)kЀ gtGɼ6mK)?J޼;Gн.^ԝm<6>7%CЫTIdK!ȑ'm64tzLmիu85ҝpON!Q`AM7F5ӝ`N"ѫڨn#@ ɓ\8׽P5aRHM՝DD6B!ŋSXKHPt'(\X-4mb"̛'ON")__NB@~fnծ/gAYQS 9sN!) .Gu'PT@F ~7=5,=%Jd9g|t'ɐ$AY B}|g\|/ݻL5[.} 8ooyQzIPc&.Ґ]UjԘ:ΟםDأR%ܧr 4>^ټhRF&jf DQ36Z w L{-65 ,ΧKBLlߞ}\9rhN|*Ub֐!D]1cPH+YהxpӺȦB!B9h۶-+V 66~cO29s[nT;Ν2sf=M-ZT.?n`7lV ˔D\*lR%tv{mtoB_=NoL0>/穏>N̜cǢmӦh۴) Dzͱ쎏˗WBӢn*uUu$mjl$ӧKA3(ծ]O>$|I@||<֭[7_~ݻ;ŋGӦMѮ];t ]tA"0MQyz$V+ÂE-65X ^]h0P^V;Ú5ҦzJ; zNB&^xAV nFE, GSRp$) RRp"5Gqlz:^8 ,BBBPLX\9 CԊTAԎDuQҡmv/}Qof$˗E?rŊo-7ވ;;C'NDj*8~4RΝ/-U,W!*-+zDjV*V*Q0-g8\))~ *,zQWT)n[}ѣػw/<#G->>O?\jժjժVШQ#4n 6dHCh)FNN#9sNC&1cgΕοӐh9O=a^;ÂҦxr?O}?nviS.i'!X""""""d MS-^ ,]LhFieKv_~)* NF[k[XH;zYSح\ ,\L=4оv UxqZcыBBd!յ8XY^; jNa7ovv 25~Z;7Nax1lv rE/"""""\ҡ!=x`^$d""B:KN␑!kڥL//m\9$.fɔO|ʔp$/KڶM; (YRTJI23e͛PyZU;Cv5X""""""ZFGu IN&OMSIDzҡHRSSC:u]F~Q`PvI:sF; h>\;2i$\2^vsL t额nF` 'G; 0U;ݦMҦ~ݵS +ID>@Ϟ)~U֍|Y; [;Νf*/NSǢ;-Zh3Qp3hR;ݗ_Kh SF[k+OSgS;݊…)3i[ X@;6 Q;ݚ5)<<jNa7o)Tt4Pv  NA(v ~L4hONAbbƍS-^ ,[L͚iSϵSi,zy!%Kj'qȐvNB&åM-Egv$dlY NpLmv2QJ8df~lެLJZU;CvLǺqv2Ԩ뵓Y,zyA='IDTtT`T!$dNkSgӦh'!5k{_Z0s&LT&b-}<}ID*r!QXvtw{Itv!""""" pw .!88uJ; h =Z;ѣ ɓIcj;~4 8qB; h\:ɉr:vL; h$TR|JLNB&5 >$E^DDDDDD _;]l\ML<0pv 8୷w >;if̐Q:|2D;ݡC2$dC`pvSOk'!m#Fh;rDfeHNNREDDDDDA.]Sm̝+P0@_e휬,$d)-[ٳ+WGzNa믲nID^@)v-32=}S#^`ыĘ12X YXX;=Z; $_}|v 25rLHV.NAyhN;ݪU)԰a@ǎ)֬>X;<I;ݺuy8EDDDDDd*&SG;݂k S11@Tv oNAƏ4Na'_k S11@),"=hY3vD^xhB;gɍ^DDDDDDålY$/ʴ<۷k'!eJ NpLImv2QJ8dfԙ[h'!RN␕%m꧟iSիk'q,6zz$d*&UK;ݼyڵ) ="*J$i ;:uM9L)ISIDFצI#GMSI -A<]hۿ9S~ӥ 0hv 8L{/0dv Cdd3ID)6uv2Ѷ-0bv #GHLi.!A Ni')X""""""NaϲIVv2ѿ?Эv -[d+WGzNaY~^޽SmsIG9Wݻwߕ(t&IlLɚaыȟFW_|L yv +ئ3i[ cdj0HX@;2DFu뀹s9B4HF9s$ ^DDDDDDDEi[P:)8EG˺dB)~QpsR#|ŋKSqd=@gr4f вv /s ^DDDDD$$D;Cٲҡ\v˗em۴ҥC9"B;CfLsev2DFj'qʒXI;  TI,KF_Lji7djxn]v,S/X""""""uՁ`tA$dV- $ii#IDҦ邋e}Hy N␞.k1j'!r*]Z;CFݻⴲe8\GHyƢQ~iRQ $ǎ''Nh'!-ZtO SML=L4j$ʁ)yKHNB&6L k'!QQޗ L*QEDDDDDtI\0sҡs!)P^t !KMNB&ڵyF;]|)ئӝw#GjKHbSIDV)6nNX""""""oݺiۼYFdfj'!> 衝 ޽^Sm.=]L)@{7pv 2խ| $2%kzv2)NNX""""""*#Gmh`"djm[T . h SC@evʋAd} ٸ;,$dbkWG,zY",\XL9f:d*&F $K_|L'˘1k[XX;5J;BE/""""`tv2Qt(GDh'qf*, ?Nbliv 2"յ8}v2 Ԭ Nv T N11@Tv Ѷm)DZGu IKfNB&W$IDdP$o9|*U%\Sxe8\(n߮L-+m*<\; ^DDDDDy`D V-Z/q`OfR$IIr:zT; h8 NIJHNB&4f >^; Tj*0mpv2QN)^DDDDD*.NFRi'!:k;xP:jΜNB&:v Naw0utRixv@rv2qȑ)N&Mb VZGkKL}Rv2qn-ȺL|zNam0kpv2ѻ7Ыv e=GNa{7@Fv2ѭпv 3ӵ NaL}v2ѥ 0hv 2ĢQ`"djm[vVL t蠝٦ِ!=h[7O;4Y;݆ ܹei'!J+3@Vv2ѿ)EDDDDT,ZXLi[X\;4Nax1)Tt4мv >>T;;V $Kʹ2a +OS#eZV *,zW4[j'!aaҡ\v,:y&$dX1)V!'#ず5S8X$d*&SG;݂2:SL nBEOixA g35&;'mj~$djUiSIeݜX$dR%iS%Kj'q}W.mlY$/ʚq;vh'!eʅDI._RmNB&J6ĢQar80aKY+|%%'Gj'!^:uJTBv2Ѡ\HRRɓx$d"*J:ԩIDݺצΜONB&j S^DDDDDi5aôS:$IDv3hLb;}V;]B0iLn .1Q.$JJNB&ZƌNaw\qv2Ѣ0nv ^DDDDDѶmו+ID@^)o.]NB&zNak{2=݁~SLLt n~`Ly$dK` vqq2utZv2q!) +el NÇk[X@;:vki SO> tn`\NaYYID@n)l23GzNAnEDDDDT-Z,_L4inb/Shysv}|v 25v,p).,NAFZNaWlSlHMv|#)8m\`ы0ʒ7mNB&EUN␓|I@͚), ?X^; Na7>fv 2 ԫn`*d*&__;…)TL Шv rE/""""9Yb~$djU:4T;Cz:;@lv2Qt(,iS{h'!ҦʔNpcv2Q/e`,Y7OҦ""8dfgt|BH$t 'GƍC9$%IJLNB&6 6 Lk'!7$ʁi`Ta$dn]P$gӧj'!jy*-M.NNB&W6¢QQqtj'!O?.><HINB&xYv RJNNB&ZFNaL z >-[ch;vL.8yR; h7N;ҦNB&6 8ہ.]NB&~G;ݮ]2XFv2ѽ;Яv ~[Ѥӵ+0`v M?Lt ..1CFP^``vӦhB >;Æi?EDDDDTԬ^-Sp:vkk SO> tn`\Naq#0gLu( 衝n6Y7e$dwoW/%Ke˴Shysv~ |v 25v,pm).sC;ݲe)smh`"djm[vVL t蠝cы(>P| ԨddITL Pv 5kS^=v H2~}v +Vh S11@F)//NAbbd/RâQQ.kj'!U%Jh'qpx`$dbE`xL$/ʚq;vh'!y|y$/g4b|J6!3S9ܺU;  "#8dei6i'!!!ҦUNRdEDDDDT%%'IDÆHIx$d⦛M> L6֕bj IMONB&jՒ@r,0cpv2QF൩sM߯LT*BCI,zu@Jv2qjKHL֭QS%&&HO˖W 9vLɓIm/qiSǏk'!͚E=L4nxm`ы]22݁}S#S^Lt D;1hV;ʕE)@)V,NAG;E9X0wСԮn|IH)&WO;}LEGk[XB;6Nah|v 25~<Фv ŋ/NA͵S ,z݅ Ӟ=IDŊQSveZ]r夣\9$.fL)#mbE$WȔt[j'!%JHJ$YY6i'!ŊIVM;CNLI@͚) =z#IM7Ir II6Lԫ'$5:8tH; ];ٳIDצΝ6v2QP$rqZlv2Q%j,zsGH"9Y; hF $ @Rv2qW 9vLɓImZqiSǏk'!͚^+) 88zT; h8pTbv2ѠA]VȰEDDDDD#W^L< )~8^; ~'SH4$dS'``vӧ/ >;Æi;tHFj'!O?.>^.NKINB&xY^DDDDD~ei'!O{?nvY%$dᇁ>}SLt망P I!! [TuꤝLt$${j'qKKYrOkvҹpUwHk,_(<)z*mNr%PTO;=$-[l.ҦxByAR矵8]+mœQ8Pw#S4]DDT[nw؁͛+&""opw""""""r[;E@DDDDDDDDDDDDX""""""""""""ǢPDDD-44իWTZ'"r.$D;QPbыo'NЎADei' """""" Jސ^DDDDDDDDDDDDX""""""""""""5 7-[j "ΝSKRB$IJR67NoHDDDDDDDDDDDDAE/"""""""""""" z,zQcы^DDDDDDDDDDDDX""""""""""""Ǣ^7o)>K,K;  _nۖ-!+gΨ+RSg幱,re)ŕ+=Ϟul "BQٶͿiiunq"#|Y_v @T?k+W+u++^#) XXؽطھV2@˖@vw:xWKO5 ѯ?Qlsp"p̕+u/ɑ8Ko67J{` 23QH/"""""MHv%[nڷ:u:wJNEqHqh0kyR+? 4mz99ԩJ( ,\h(Wr aaw]}uj'*8? ,]jX"?EDDDDD ׵*TF4NC Y``tO;&M#ٷ+_8}Z:"^W g`X3?tcY"?EDDDDDG9y[!X1U+vmvp0p:x5o IDATY? ݻh`N !ǰiWΔ, 4kvLCZ<HIcceJ <42k>ٰh??]>*S8!]];[䟗_D}{X"?EDDDDDykx10c}AqOT/Zv]f,^mX:AתYS^cxbSѣc+~]P6ަ}{`{w <>/_u> GZcܱ,_›JdVW֝;v.Y-S0֮^yE.pE/"^DDDDD'O=$x㣏}?ŋ^\hb鄧).h,z…siS̏o H7z,1?&;Zx}xncl*⡡Cߖi l` `<۱ED`ы))I9}vŋKtic][oy6,Lցjx^y?]Ϣ˒TZ!!qK/I~x1瑩__:Kl,pW^8/J˛QO> ̚Udnp>n.<T vy)x@ٲ̙z̔<(x$rrd7p^*UJ}utv;AQ#GpljyXR.͏L*TDD^`ы˛Nnz xM۝<)W`STFaYRz}(!kp?ǏiIǎu]No_d "աwըcwra'11jQ^DDDDD_tJGy>)p +2m+|t钿BB=jDDժy]dת0a231]QƑE/""""" ~!!)9O/LZrrG 5k _|_ . ] 﨣75ڵM;.Qcы =od ڵe-ğJUOHԙoN-LŊs渞ȑCDx ~}sg`24G{Go" ¢y1`ϢeZ̞z 8w'e\\+Ӧ9/!`wOM bEg!" ,zQq}ޭysgѲzv Vs+Wukws:vG|".pjT"иRS?Q`ы  *v;w G?ŋ@Lm &;/pN.D$-.]NQ5hvǎo" .5jxަNx뵘ܙ:}i:@nǕΝ[o/5H… …AD$X"""""¥re$%v Fof@Xt!cؿ !*ʎZR!,̻ʔDDA">Q*mr`>Μq#Lo-k:YiӀ,Yn!s p,dfv F̘~Zf &7J:u,DEՉ]\PRRy?GA9yx,M&W]cы] ̙hHMPj D!?Qzm€{q.]> XP:*ϟin[ÆI?\$?myΝGVI+w$+%JNSAu4_+5S/Xz6+K1{G M@TTgrt8_IO8r.۾\ܖ-rۺU:rG*z9#=+T5FNuodek>7˖-As^JJ JZ*?Ęw_̝+M<)[nG9_;+Kn?&#Cs/K\?eɱ}ֻ K [F}<4\"9s:;W\tiM) bN`t/{ 4l(ˀ;//y1ŋK9/תLGӦKz^."B>O ~|oj7}j>劏f̐zGx޾V-,Яй}Je x!/""""""|5iZ:S'oӽtZHO^xG'P駁G:Wqm7gؿ_%xWm&#~ܭg<1w.0bw&LmsٹSK<)R^m2``yyZN0{LG'^xAFe)~7k4^"&HqWw|!Рdns}3s옌8{,[A[xۥ潘 yeK#}y5˒"ʸqލvL)sW(QkgJNƏs­+M ^DDDDD_ZE}dOW(%KQd;iBj'dR:p@?k^_xK:-ҀÇ_~qbŀ[Fuڑke4D^DUKggVANޭ6n4+R=[: MRjVF awm/ =k浝3gYѕ+tLH 7:A)Δ//={w7n, oք_)n~d輸8amwuL`,ٗՓ%nv:߬,ߝ[-,kڻײRS-%JL%K,kWϙg9'mzW^of<*]Fs\?vF˪]u-eYVޮWc,;ֲBB{+]ڲ~-dI?[6I%'= '"W{%>52ɓ}>㏖U/^ܲzʲv1YYzeOaY[z>f?#߹ӲV b,k,~w._ߗ28IӊLǸxѲOwzRŲ?~ͲjԸ!!5`eΖ`v3-kYk=_y?eI1hв>Pk;fY/hYJ׿ZVNY9;ҤerۻײRR8zԲ>̲zsmʲ\=ו+u]}Y֫ZVFefZ\g?WU5ye9sRS-k4\YZR2珩Yxa}з-[ukIU/qPd6~ݻ}˒k{]}V=lMk3ҥiI]u#""""BGz}ez>ܹ{diTCWs}fv} Ov\ j_{4+;[F\zZвbc-)JOxZJF+}`L=zh'7QZ}|+9YF-gYrpսee*Vt g9{VTɻ,'OZ։^եeedF42,|W-#W9ڴIzVFxx]27(Zs,kx uݏ??ƫmۑ^չe *Wߞx²yIJuA5kzR<Сd;2RF b@?K&y!#rr,ǝ}ƍېs}Ϝ9{7@?ܷL%yy__>~פIgDDDDDTT++˲|S:p=ϗBL}\9ٖլ۷Ѳ ;n׷"UFNߟ׸qdjt=xPڬvV%W_yy iۿ쏢eYV^cRc-Q|]w_uؤ,qqBɓyuӦ{sVʽU:ǹsuM?&,̲vkYRwVȽM>Ms;} y=X[r`AOvL|mbŤM9f맞p:[1nY#ITQQ_Sڦ,G^1c=Vdӕ_ΞmÇNYrն-`y&3G﫯d:WS? q6ՕOM\0v߯T 2lcIL&Mn?S4תV)BCB't/GM-ޠor(,Ybz03>ի;iiYP__=)932}'>,k&4i)#]ȜFɚt0aT̳Vd A2~}:wvMﳠuzu|MʮvZ[ 3xqۭ\iWA> \ߤW(Yz 1#UT)|;wWYl UL 5,/, h='<Ι3RU˅ bZ'(6yAX1+Ov\]弰4twYgʗ5\6ͻ  kʟGK|0j5k^ٱc=嗝׭pfyBBbW>77+HWNVΕΐ^ƍZÆղSG-H'?{YW UWۼY:]1MWm'O:=[Ώ?eey^\9onKM79&$}Kq͓P;2j܏<իck=ިRhy<47߷}^˛,K˨]w^}U.rhBFT.شIt9'-Za_~VZS&Vҙ yƁƛb Eߞ 7%seȫ]zՒ%}ɑ#z!!Wkp*bVb"z>P:_+;[7ɋs]o{HHp]ݹ}|hSi~iOvъGtFJ2{w}fΦM,zNoHDDDDD̳uaa@F2ާ IDAT2(Ym;'J{< g?|Y%11rPXT)44L]]OQp钌p_~\˛u_I_hq7/ zg)*deA/]ߗs}m?{>z)Nbaы{w]UuB0 DhQDD<%BE}P ڊRUh>dh@ & S@ 㷲2{>{o.|?kE=g}=So&""""ozHR?/~=0iRkX=5r^'6t/ |+0,z8S󟻟ͩnn ȟ?< E ffze`[#*۴q֭y-^l=VMys*37{:J8x]^,] eM3fWoT0xM`~%%˫KIo=~~TsmU+ ED{|f) """"""rRϤaazM7X)66nwo>s.eecD? n w)!rTO? wr$8tȷv68_)Ds?۷޽HII~ ̜_OwCwM/;ŨQ5./X4l(ϣJ;keב#%Á7h ? կo#ysguҸi"""""Ką _{Z`Qx<%818uU  M7l*+v}}sK7J|<^Z&N4TYlqK#o 2୷>}~gjIt.(ۓ'_m/^yyՊ =z7}€%A/""""""Skݻ?|ue믾,F"(Uun$^+&-=s)4iʕ{~%dh]N59mnE7OٳN=]i?iiP)`""""""frWׯaТ~ڽ)t=do.vr11@RRBצ~d׃M͛-$ave.F/~XV[O}ohܪUeǵʨcǀU$_O)I+)5g۶~eN~Ǡ'۷u߻v`B ,, X2GP<h@Ւ>ؿeK$j?ޔ;R#fH[zc_mlw2c}Lڴɝr;]J={ԅ- n헯;oRSݻj?,Yx׿ii/]hYlz".Ngsz_~EA/"""""ʬ.eb8[7e**>L}?bce R79*JJ,=cpz%'{o$ lR鮻̖o/h2CQ@ˬZ>UTX|y=x~ 11{RMYopu Qu;wOLtVny9' ;= ѯKLƏS܆ 2+ML3Ѩh|U =/rs<8z/%k֟GOGد~^ˁck"5U2S7Zq1oW)2X>*ll**wLxiϿrϿ7o| R_"k""""""w>_tA˭|iSzܹ2squIݒ7x1С~Sgw }AyMet}+4n Wӧݓ'ufffe[~(s)/`W1OF3 $(Q)2~u )S̶o*/ny'rUp<:{6;2fgJzݹ8rٺ_}߽;=.nn-[̚%cƸ[6A/"""""rI`;(/8wYQXhɓϽ{|{w;BgL 3|?.J|/ɜYƴ"i뫯Gå]xQW$b <^Aߪ*Х))k>)XLG:6Cgy=<ϗԹS<`um:wf㏁ɓ}o~|69{0GPʯP֭>utJIiǒ%fi`R_Z/oo۰C-W v>:TƴiiB8nz;/[w}Zcy}\Fpk^#@^[SSec}k7Xs..y X9=ON ^?l6z6o7}JtxCt|{ET9E (y(ݬ,z;=v?WU+|`ڝfd(5rdmiw^~AR͚YDRRe9u5ʺ^xAӧ}ի߉s;vҳR.jv6h_ɚ5J<}~{+ӓwߵu׉26.7R[ltR'O:K̚evlJ)j{~QmJ .ٳJmڤT||{}T?ryԼT5Y| w~*թپ&Vj,_nާ)zZ/>zYsaaJf{vmbb:|X^i|7&W+l^BNVYN+DDDDDt+?4kFV yzHiI2?f7JCmJK̔F+a?I Sj6TxCk\^uwoS)uRGJYO<9Ҧ,oQ_^zImZFDG+ηQdd(d}+u= +yR)ըcQ>?~&)r>ٸQ.zIIJkϢ:T3ZHG_;j¬Q/))JkgV3g~mJJPn uРnTZ:UWNfVo%Θ1_CO=ԁJ;'Ad lYs'pY-7WȈWdR?/:_9瘼:w~)rz@KV粊%v]u͛]iiխQ#V_~WJ=R_~=3x,d @V@orNth޼j>}:lu_Ujy̔g>}>U׏YڵfY盯x@y:atF=yR;tȑ=O_)TGQ9rD~> |_k TxfGeKIҽkնe(˵l)nV%)JL |Y#0c<1+}KWwe p-e?_Ni#scΫWۛsgסwoڵ.WR"s:%CIhOI ٱh| x%Igz5m*t5HZ¦M<8wNy9{VR</@k Tӧ (/\R(z2qK.#C-ɹn[Mw  cl_Uwꔜ{ii*jj{Y4Pʹز#T&%eDD5sgaCI{ x4ol&*}2OnY%ArjMΡv\ׯ7?6%`^rv*LJΪU6I:[O+rsÇ%\judnI4c=) *9v:t{gͫi壏$}'J5o3//<\ΙD筸XRR<#5yjX$%E1u4]V=O^ٺv~s_hB%Z3_NK1N,Zdw1C@Rܲo__:kӎG.…ԛ1c$WNI{@f̰==]RrIQܤ pr?={Acn8QӓޗWbb>MխR[,;/<]\e zik5{}lq{K~nsxIKsw;sQjR#FM7IJYVz{U/<謌6m2}{挳}6guIMkB?A +1^zM7ϓW^ 7FUƌ1HIV_,]V^w;ifYa];3iM_11CuG vR{Mlե9QQU2j>d85;&5ĩSJ wANGRp5"""""ڮx} kKH  ]vxL~D2g(r""BFpC}U);{/\6LFsmV5B;%ˁSZ[(C74i"rwF&_1!ٳx1{' ѣ@bp͚I:8`͒[} RXp! bH',L.=oAr ̽40V6zHR오$(kmyӯ0aBggqˈKlI%f\ٌF{XpKAo%ǖizN$7yr"I׶+_:ȿKG˗~jyL,X,] n]f͒FJ'Tge$%N4=& n5 /~$nHJ~|s瞓{ɹߠ/1unHNԽv]Tr;ް8sr[KZ8O6 Ν+iC:uuNk["#_wnZ<._.)jg I8{omD+_w3y ׫s;qUQR)r2~2曒NJttvy)q*3Sow3G""""""),Q[))ȟ/#;7?8JNbbeN '.\[ʨ'aQ#"!A:2DpKE|Ud\x )Kk~i^>҉íFWV=2.1.5,<2.2a0 - bioconductor-dada2 1.18.0 # the following pin is due to recent issues with versions of r-matrix # past 1.3-2: # https://github.com/benjjneb/dada2/issues/212#issuecomment-836757295 - r-matrix 1.3-2 # openjdk is not a real dependency, but, r-base has a post-link and post- # activation hook that calls R CMD javareconf, which pokes around for any # installations of java. On modern versions of macOS, a binary called # `java` is included, but it only launches a GUI installation alert, # indicating to the user that there is no "true" installation of java # present. By including openjdk on osx hosts, this pop-up is prevented at # installation and activation time of the environment. - openjdk # [osx] - qiime2 {{ qiime2_epoch }}.* - q2-types {{ qiime2_epoch }}.* test: requires: - qiime2 >={{ qiime2 }} - q2-types >={{ q2_types }} - pytest imports: - q2_dada2 - qiime2.plugins.dada2 about: home: https://qiime2.org license: BSD-3-Clause license_family: BSD q2-dada2-2021.8.0/q2_dada2/000077500000000000000000000000001411645176500146265ustar00rootroot00000000000000q2-dada2-2021.8.0/q2_dada2/__init__.py000066400000000000000000000013031411645176500167340ustar00rootroot00000000000000# ---------------------------------------------------------------------------- # Copyright (c) 2016-2021, QIIME 2 development team. # # Distributed under the terms of the Modified BSD License. # # The full license is in the file LICENSE, distributed with this software. # ---------------------------------------------------------------------------- from ._denoise import denoise_single, denoise_paired, denoise_pyro from ._version import get_versions from ._stats import DADA2Stats, DADA2StatsDirFmt, DADA2StatsFormat __version__ = get_versions()['version'] del get_versions __all__ = ['denoise_single', 'denoise_paired', 'denoise_pyro', 'DADA2Stats', 'DADA2StatsFormat', 'DADA2StatsDirFmt'] q2-dada2-2021.8.0/q2_dada2/_denoise.py000066400000000000000000000321411411645176500167660ustar00rootroot00000000000000# ---------------------------------------------------------------------------- # Copyright (c) 2016-2021, QIIME 2 development team. # # Distributed under the terms of the Modified BSD License. # # The full license is in the file LICENSE, distributed with this software. # ---------------------------------------------------------------------------- import os import tempfile import hashlib import subprocess import biom import skbio import qiime2.util import pandas as pd from q2_types.feature_data import DNAIterator from q2_types.per_sample_sequences import ( FastqGzFormat, SingleLanePerSampleSingleEndFastqDirFmt, SingleLanePerSamplePairedEndFastqDirFmt) def run_commands(cmds, verbose=True): if verbose: print("Running external command line application(s). This may print " "messages to stdout and/or stderr.") print("The command(s) being run are below. These commands cannot " "be manually re-run as they will depend on temporary files that " "no longer exist.") for cmd in cmds: if verbose: print("\nCommand:", end=' ') print(" ".join(cmd), end='\n\n') subprocess.run(cmd, check=True) def _check_featureless_table(fp): with open(fp) as fh: # There is a header before the feature data for line_count, _ in zip(range(1, 3), fh): pass if line_count < 2: raise ValueError("No features remain after denoising. Try adjusting " "your truncation and trim parameter settings.") _WHOLE_NUM = (lambda x: x >= 0, 'non-negative') _NAT_NUM = (lambda x: x > 0, 'greater than zero') _POOL_STR = (lambda x: x in {'pseudo', 'independent'}, 'pseudo or independent') _CHIM_STR = (lambda x: x in {'pooled', 'consensus', 'none'}, 'pooled, consensus or none') # Better to choose to skip, than to implicitly ignore things that KeyError _SKIP = (lambda x: True, '') _valid_inputs = { 'trunc_len': _WHOLE_NUM, 'trunc_len_f': _WHOLE_NUM, 'trunc_len_r': _WHOLE_NUM, 'trim_left': _WHOLE_NUM, 'trim_left_f': _WHOLE_NUM, 'trim_left_r': _WHOLE_NUM, 'max_ee': _NAT_NUM, 'max_ee_f': _NAT_NUM, 'max_ee_r': _NAT_NUM, 'trunc_q': _WHOLE_NUM, 'min_overlap': _WHOLE_NUM, 'max_len': _WHOLE_NUM, 'pooling_method': _POOL_STR, 'chimera_method': _CHIM_STR, 'min_fold_parent_over_abundance': _NAT_NUM, 'n_threads': _WHOLE_NUM, # 0 is technically allowed, but we don't want to support it because it only # takes all reads from the first sample (alphabetically by sample id) 'n_reads_learn': _NAT_NUM, # Skipped because they are valid for whole domain of type 'hashed_feature_ids': _SKIP, 'demultiplexed_seqs': _SKIP, 'homopolymer_gap_penalty': _SKIP, 'band_size': _SKIP, } # TODO: Replace this with Range predicates when interfaces support them better def _check_inputs(**kwargs): for param, arg in kwargs.items(): check_is_valid, explanation = _valid_inputs[param] if not check_is_valid(arg): raise ValueError('Argument to %r was %r, should be %s.' % (param, arg, explanation)) def _filepath_to_sample(fp): return fp.rsplit('_', 4)[0] def _denoise_helper(biom_fp, track_fp, hashed_feature_ids): _check_featureless_table(biom_fp) with open(biom_fp) as fh: table = biom.Table.from_tsv(fh, None, None, None) df = pd.read_csv(track_fp, sep='\t', index_col=0) df.index.name = 'sample-id' df = df.rename(index=_filepath_to_sample) PASSED_FILTER = 'percentage of input passed filter' NON_CHIMERIC = 'percentage of input non-chimeric' round_cols = {PASSED_FILTER: 2, NON_CHIMERIC: 2} df[PASSED_FILTER] = df['filtered'] / df['input'] * 100 df[NON_CHIMERIC] = df['non-chimeric'] / df['input'] * 100 col_order = ['input', 'filtered', PASSED_FILTER, 'denoised', 'non-chimeric', NON_CHIMERIC] # only calculate percentage of input merged if paired end if 'merged' in df: MERGED = 'percentage of input merged' round_cols[MERGED] = 2 df[MERGED] = df['merged'] / df['input'] * 100 col_order.insert(4, 'merged') col_order.insert(5, MERGED) df = df[col_order] df.fillna(0, inplace=True) df = df.round(round_cols) metadata = qiime2.Metadata(df) # Currently the sample IDs in DADA2 are the file names. We make # them the sample id part of the filename here. sid_map = {id_: _filepath_to_sample(id_) for id_ in table.ids(axis='sample')} table.update_ids(sid_map, axis='sample', inplace=True) # The feature IDs in DADA2 are the sequences themselves. if hashed_feature_ids: # Make feature IDs the md5 sums of the sequences. fid_map = {id_: hashlib.md5(id_.encode('utf-8')).hexdigest() for id_ in table.ids(axis='observation')} table.update_ids(fid_map, axis='observation', inplace=True) rep_sequences = DNAIterator((skbio.DNA(k, metadata={'id': v}) for k, v in fid_map.items())) else: rep_sequences = DNAIterator( (skbio.DNA(id_, metadata={'id': id_}) for id_ in table.ids(axis='observation'))) return table, rep_sequences, metadata # Since `denoise-single` and `denoise-pyro` are almost identical, break out # the bulk of the functionality to this helper util. Typechecking is assumed # to have occurred in the calling functions, this is primarily for making # sure that DADA2 is able to do what it needs to do. def _denoise_single(demultiplexed_seqs, trunc_len, trim_left, max_ee, trunc_q, max_len, pooling_method, chimera_method, min_fold_parent_over_abundance, n_threads, n_reads_learn, hashed_feature_ids, homopolymer_gap_penalty, band_size): _check_inputs(**locals()) if trunc_len != 0 and trim_left >= trunc_len: raise ValueError("trim_left (%r) must be smaller than trunc_len (%r)" % (trim_left, trunc_len)) if max_len != 0 and max_len < trunc_len: raise ValueError("trunc_len (%r) must be no bigger than max_len (%r)" % (trunc_len, max_len)) # Coerce for `run_dada_single.R` max_len = 'Inf' if max_len == 0 else max_len with tempfile.TemporaryDirectory() as temp_dir_name: biom_fp = os.path.join(temp_dir_name, 'output.tsv.biom') track_fp = os.path.join(temp_dir_name, 'track.tsv') cmd = ['run_dada_single.R', str(demultiplexed_seqs), biom_fp, track_fp, temp_dir_name, str(trunc_len), str(trim_left), str(max_ee), str(trunc_q), str(max_len), str(pooling_method), str(chimera_method), str(min_fold_parent_over_abundance), str(n_threads), str(n_reads_learn), str(homopolymer_gap_penalty), str(band_size)] try: run_commands([cmd]) except subprocess.CalledProcessError as e: if e.returncode == 2: raise ValueError( "No reads passed the filter. trunc_len (%r) may be longer" " than read lengths, or other arguments (such as max_ee" " or trunc_q) may be preventing reads from passing the" " filter." % trunc_len) else: raise Exception("An error was encountered while running DADA2" " in R (return code %d), please inspect stdout" " and stderr to learn more." % e.returncode) return _denoise_helper(biom_fp, track_fp, hashed_feature_ids) def denoise_single(demultiplexed_seqs: SingleLanePerSampleSingleEndFastqDirFmt, trunc_len: int, trim_left: int = 0, max_ee: float = 2.0, trunc_q: int = 2, pooling_method: str = 'independent', chimera_method: str = 'consensus', min_fold_parent_over_abundance: float = 1.0, n_threads: int = 1, n_reads_learn: int = 1000000, hashed_feature_ids: bool = True ) -> (biom.Table, DNAIterator, qiime2.Metadata): return _denoise_single( demultiplexed_seqs=demultiplexed_seqs, trunc_len=trunc_len, trim_left=trim_left, max_ee=max_ee, trunc_q=trunc_q, max_len=0, pooling_method=pooling_method, chimera_method=chimera_method, min_fold_parent_over_abundance=min_fold_parent_over_abundance, n_threads=n_threads, n_reads_learn=n_reads_learn, hashed_feature_ids=hashed_feature_ids, homopolymer_gap_penalty='NULL', band_size='16') def denoise_paired(demultiplexed_seqs: SingleLanePerSamplePairedEndFastqDirFmt, trunc_len_f: int, trunc_len_r: int, trim_left_f: int = 0, trim_left_r: int = 0, max_ee_f: float = 2.0, max_ee_r: float = 2.0, trunc_q: int = 2, min_overlap: int = 12, pooling_method: str = 'independent', chimera_method: str = 'consensus', min_fold_parent_over_abundance: float = 1.0, n_threads: int = 1, n_reads_learn: int = 1000000, hashed_feature_ids: bool = True ) -> (biom.Table, DNAIterator, qiime2.Metadata): _check_inputs(**locals()) if trunc_len_f != 0 and trim_left_f >= trunc_len_f: raise ValueError("trim_left_f (%r) must be smaller than trunc_len_f" " (%r)" % (trim_left_f, trunc_len_f)) if trunc_len_r != 0 and trim_left_r >= trunc_len_r: raise ValueError("trim_left_r (%r) must be smaller than trunc_len_r" " (%r)" % (trim_left_r, trunc_len_r)) with tempfile.TemporaryDirectory() as temp_dir: tmp_forward = os.path.join(temp_dir, 'forward') tmp_reverse = os.path.join(temp_dir, 'reverse') biom_fp = os.path.join(temp_dir, 'output.tsv.biom') track_fp = os.path.join(temp_dir, 'track.tsv') filt_forward = os.path.join(temp_dir, 'filt_f') filt_reverse = os.path.join(temp_dir, 'filt_r') for fp in tmp_forward, tmp_reverse, filt_forward, filt_reverse: os.mkdir(fp) for rp, view in demultiplexed_seqs.sequences.iter_views(FastqGzFormat): fp = str(view) if 'R1_001.fastq' in rp.name: qiime2.util.duplicate(fp, os.path.join(tmp_forward, rp.name)) elif 'R2_001.fastq' in rp.name: qiime2.util.duplicate(fp, os.path.join(tmp_reverse, rp.name)) cmd = ['run_dada_paired.R', tmp_forward, tmp_reverse, biom_fp, track_fp, filt_forward, filt_reverse, str(trunc_len_f), str(trunc_len_r), str(trim_left_f), str(trim_left_r), str(max_ee_f), str(max_ee_r), str(trunc_q), str(min_overlap), str(pooling_method), str(chimera_method), str(min_fold_parent_over_abundance), str(n_threads), str(n_reads_learn)] try: run_commands([cmd]) except subprocess.CalledProcessError as e: if e.returncode == 2: raise ValueError( "No reads passed the filter. trunc_len_f (%r) or" " trunc_len_r (%r) may be individually longer than" " read lengths, or trunc_len_f + trunc_len_r may be" " shorter than the length of the amplicon + 12" " nucleotides (the length of the overlap). Alternatively," " other arguments (such as max_ee or trunc_q) may be" " preventing reads from passing the filter." % (trunc_len_f, trunc_len_r)) else: raise Exception("An error was encountered while running DADA2" " in R (return code %d), please inspect stdout" " and stderr to learn more." % e.returncode) return _denoise_helper(biom_fp, track_fp, hashed_feature_ids) def denoise_pyro(demultiplexed_seqs: SingleLanePerSampleSingleEndFastqDirFmt, trunc_len: int, trim_left: int = 0, max_ee: float = 2.0, trunc_q: int = 2, max_len: int = 0, pooling_method: str = 'independent', chimera_method: str = 'consensus', min_fold_parent_over_abundance: float = 1.0, n_threads: int = 1, n_reads_learn: int = 250000, hashed_feature_ids: bool = True ) -> (biom.Table, DNAIterator, qiime2.Metadata): return _denoise_single( demultiplexed_seqs=demultiplexed_seqs, trunc_len=trunc_len, trim_left=trim_left, max_ee=max_ee, trunc_q=trunc_q, max_len=max_len, pooling_method=pooling_method, chimera_method=chimera_method, min_fold_parent_over_abundance=min_fold_parent_over_abundance, n_threads=n_threads, n_reads_learn=n_reads_learn, hashed_feature_ids=hashed_feature_ids, homopolymer_gap_penalty='-1', band_size='32') q2-dada2-2021.8.0/q2_dada2/_stats.py000066400000000000000000000013121411645176500164720ustar00rootroot00000000000000# ---------------------------------------------------------------------------- # Copyright (c) 2016-2021, QIIME 2 development team. # # Distributed under the terms of the Modified BSD License. # # The full license is in the file LICENSE, distributed with this software. # ---------------------------------------------------------------------------- from qiime2.plugin import SemanticType, model from q2_types.sample_data import SampleData DADA2Stats = SemanticType('DADA2Stats', variant_of=SampleData.field['type']) class DADA2StatsFormat(model.TextFileFormat): def validate(*args): pass DADA2StatsDirFmt = model.SingleFileDirectoryFormat( 'DADA2StatsDirFmt', 'stats.tsv', DADA2StatsFormat) q2-dada2-2021.8.0/q2_dada2/_transformer.py000066400000000000000000000013061411645176500177010ustar00rootroot00000000000000# ---------------------------------------------------------------------------- # Copyright (c) 2016-2021, QIIME 2 development team. # # Distributed under the terms of the Modified BSD License. # # The full license is in the file LICENSE, distributed with this software. # ---------------------------------------------------------------------------- import qiime2 from q2_dada2 import DADA2StatsFormat from q2_dada2.plugin_setup import plugin @plugin.register_transformer def _1(ff: DADA2StatsFormat) -> qiime2.Metadata: return qiime2.Metadata.load(str(ff)) @plugin.register_transformer def _2(obj: qiime2.Metadata) -> DADA2StatsFormat: ff = DADA2StatsFormat() obj.save(str(ff)) return ff q2-dada2-2021.8.0/q2_dada2/_version.py000066400000000000000000000441051411645176500170300ustar00rootroot00000000000000 # This file helps to compute a version number in source trees obtained from # git-archive tarball (such as those provided by githubs download-from-tag # feature). Distribution tarballs (built by setup.py sdist) and build # directories (produced by setup.py build) will contain a much shorter file # that just contains the computed version number. # This file is released into the public domain. Generated by # versioneer-0.18 (https://github.com/warner/python-versioneer) """Git implementation of _version.py.""" import errno import os import re import subprocess import sys def get_keywords(): """Get the keywords needed to look up the version information.""" # these strings will be replaced by git during git-archive. # setup.py/versioneer.py will grep for the variable names, so they must # each be defined on a line of their own. _version.py will just call # get_keywords(). git_refnames = " (tag: 2021.8.0)" git_full = "6410e66cfebe29470f57c0bd9a5f072c5177c8b0" git_date = "2021-09-09 18:35:33 +0000" keywords = {"refnames": git_refnames, "full": git_full, "date": git_date} return keywords class VersioneerConfig: """Container for Versioneer configuration parameters.""" def get_config(): """Create, populate and return the VersioneerConfig() object.""" # these strings are filled in when 'setup.py versioneer' creates # _version.py cfg = VersioneerConfig() cfg.VCS = "git" cfg.style = "pep440" cfg.tag_prefix = "" cfg.parentdir_prefix = "q2-dada2-" cfg.versionfile_source = "q2_dada2/_version.py" cfg.verbose = False return cfg class NotThisMethod(Exception): """Exception raised if a method is not valid for the current scenario.""" LONG_VERSION_PY = {} HANDLERS = {} def register_vcs_handler(vcs, method): # decorator """Decorator to mark a method as the handler for a particular VCS.""" def decorate(f): """Store f in HANDLERS[vcs][method].""" if vcs not in HANDLERS: HANDLERS[vcs] = {} HANDLERS[vcs][method] = f return f return decorate def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, env=None): """Call the given command(s).""" assert isinstance(commands, list) p = None for c in commands: try: dispcmd = str([c] + args) # remember shell=False, so use git.cmd on windows, not just git p = subprocess.Popen([c] + args, cwd=cwd, env=env, stdout=subprocess.PIPE, stderr=(subprocess.PIPE if hide_stderr else None)) break except EnvironmentError: e = sys.exc_info()[1] if e.errno == errno.ENOENT: continue if verbose: print("unable to run %s" % dispcmd) print(e) return None, None else: if verbose: print("unable to find command, tried %s" % (commands,)) return None, None stdout = p.communicate()[0].strip() if sys.version_info[0] >= 3: stdout = stdout.decode() if p.returncode != 0: if verbose: print("unable to run %s (error)" % dispcmd) print("stdout was %s" % stdout) return None, p.returncode return stdout, p.returncode def versions_from_parentdir(parentdir_prefix, root, verbose): """Try to determine the version from the parent directory name. Source tarballs conventionally unpack into a directory that includes both the project name and a version string. We will also support searching up two directory levels for an appropriately named parent directory """ rootdirs = [] for i in range(3): dirname = os.path.basename(root) if dirname.startswith(parentdir_prefix): return {"version": dirname[len(parentdir_prefix):], "full-revisionid": None, "dirty": False, "error": None, "date": None} else: rootdirs.append(root) root = os.path.dirname(root) # up a level if verbose: print("Tried directories %s but none started with prefix %s" % (str(rootdirs), parentdir_prefix)) raise NotThisMethod("rootdir doesn't start with parentdir_prefix") @register_vcs_handler("git", "get_keywords") def git_get_keywords(versionfile_abs): """Extract version information from the given file.""" # the code embedded in _version.py can just fetch the value of these # keywords. When used from setup.py, we don't want to import _version.py, # so we do it with a regexp instead. This function is not used from # _version.py. keywords = {} try: f = open(versionfile_abs, "r") for line in f.readlines(): if line.strip().startswith("git_refnames ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["refnames"] = mo.group(1) if line.strip().startswith("git_full ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["full"] = mo.group(1) if line.strip().startswith("git_date ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["date"] = mo.group(1) f.close() except EnvironmentError: pass return keywords @register_vcs_handler("git", "keywords") def git_versions_from_keywords(keywords, tag_prefix, verbose): """Get version information from git keywords.""" if not keywords: raise NotThisMethod("no keywords at all, weird") date = keywords.get("date") if date is not None: # git-2.2.0 added "%cI", which expands to an ISO-8601 -compliant # datestamp. However we prefer "%ci" (which expands to an "ISO-8601 # -like" string, which we must then edit to make compliant), because # it's been around since git-1.5.3, and it's too difficult to # discover which version we're using, or to work around using an # older one. date = date.strip().replace(" ", "T", 1).replace(" ", "", 1) refnames = keywords["refnames"].strip() if refnames.startswith("$Format"): if verbose: print("keywords are unexpanded, not using") raise NotThisMethod("unexpanded keywords, not a git-archive tarball") refs = set([r.strip() for r in refnames.strip("()").split(",")]) # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of # just "foo-1.0". If we see a "tag: " prefix, prefer those. TAG = "tag: " tags = set([r[len(TAG):] for r in refs if r.startswith(TAG)]) if not tags: # Either we're using git < 1.8.3, or there really are no tags. We use # a heuristic: assume all version tags have a digit. The old git %d # expansion behaves like git log --decorate=short and strips out the # refs/heads/ and refs/tags/ prefixes that would let us distinguish # between branches and tags. By ignoring refnames without digits, we # filter out many common branch names like "release" and # "stabilization", as well as "HEAD" and "master". tags = set([r for r in refs if re.search(r'\d', r)]) if verbose: print("discarding '%s', no digits" % ",".join(refs - tags)) if verbose: print("likely tags: %s" % ",".join(sorted(tags))) for ref in sorted(tags): # sorting will prefer e.g. "2.0" over "2.0rc1" if ref.startswith(tag_prefix): r = ref[len(tag_prefix):] if verbose: print("picking %s" % r) return {"version": r, "full-revisionid": keywords["full"].strip(), "dirty": False, "error": None, "date": date} # no suitable tags, so version is "0+unknown", but full hex is still there if verbose: print("no suitable tags, using unknown + full revision id") return {"version": "0+unknown", "full-revisionid": keywords["full"].strip(), "dirty": False, "error": "no suitable tags", "date": None} @register_vcs_handler("git", "pieces_from_vcs") def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): """Get version from 'git describe' in the root of the source tree. This only gets called if the git-archive 'subst' keywords were *not* expanded, and _version.py hasn't already been rewritten with a short version string, meaning we're inside a checked out source tree. """ GITS = ["git"] if sys.platform == "win32": GITS = ["git.cmd", "git.exe"] out, rc = run_command(GITS, ["rev-parse", "--git-dir"], cwd=root, hide_stderr=True) if rc != 0: if verbose: print("Directory %s not under git control" % root) raise NotThisMethod("'git rev-parse --git-dir' returned error") # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] # if there isn't one, this yields HEX[-dirty] (no NUM) describe_out, rc = run_command(GITS, ["describe", "--tags", "--dirty", "--always", "--long", "--match", "%s*" % tag_prefix], cwd=root) # --long was added in git-1.5.5 if describe_out is None: raise NotThisMethod("'git describe' failed") describe_out = describe_out.strip() full_out, rc = run_command(GITS, ["rev-parse", "HEAD"], cwd=root) if full_out is None: raise NotThisMethod("'git rev-parse' failed") full_out = full_out.strip() pieces = {} pieces["long"] = full_out pieces["short"] = full_out[:7] # maybe improved later pieces["error"] = None # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] # TAG might have hyphens. git_describe = describe_out # look for -dirty suffix dirty = git_describe.endswith("-dirty") pieces["dirty"] = dirty if dirty: git_describe = git_describe[:git_describe.rindex("-dirty")] # now we have TAG-NUM-gHEX or HEX if "-" in git_describe: # TAG-NUM-gHEX mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe) if not mo: # unparseable. Maybe git-describe is misbehaving? pieces["error"] = ("unable to parse git-describe output: '%s'" % describe_out) return pieces # tag full_tag = mo.group(1) if not full_tag.startswith(tag_prefix): if verbose: fmt = "tag '%s' doesn't start with prefix '%s'" print(fmt % (full_tag, tag_prefix)) pieces["error"] = ("tag '%s' doesn't start with prefix '%s'" % (full_tag, tag_prefix)) return pieces pieces["closest-tag"] = full_tag[len(tag_prefix):] # distance: number of commits since tag pieces["distance"] = int(mo.group(2)) # commit: short hex revision ID pieces["short"] = mo.group(3) else: # HEX: no tags pieces["closest-tag"] = None count_out, rc = run_command(GITS, ["rev-list", "HEAD", "--count"], cwd=root) pieces["distance"] = int(count_out) # total number of commits # commit date: see ISO-8601 comment in git_versions_from_keywords() date = run_command(GITS, ["show", "-s", "--format=%ci", "HEAD"], cwd=root)[0].strip() pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1) return pieces def plus_or_dot(pieces): """Return a + if we don't already have one, else return a .""" if "+" in pieces.get("closest-tag", ""): return "." return "+" def render_pep440(pieces): """Build up version string, with post-release "local version identifier". Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you get a tagged build and then dirty it, you'll get TAG+0.gHEX.dirty Exceptions: 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += plus_or_dot(pieces) rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" else: # exception #1 rendered = "0+untagged.%d.g%s" % (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" return rendered def render_pep440_pre(pieces): """TAG[.post.devDISTANCE] -- No -dirty. Exceptions: 1: no tags. 0.post.devDISTANCE """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"]: rendered += ".post.dev%d" % pieces["distance"] else: # exception #1 rendered = "0.post.dev%d" % pieces["distance"] return rendered def render_pep440_post(pieces): """TAG[.postDISTANCE[.dev0]+gHEX] . The ".dev0" means dirty. Note that .dev0 sorts backwards (a dirty tree will appear "older" than the corresponding clean one), but you shouldn't be releasing software with -dirty anyways. Exceptions: 1: no tags. 0.postDISTANCE[.dev0] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += ".post%d" % pieces["distance"] if pieces["dirty"]: rendered += ".dev0" rendered += plus_or_dot(pieces) rendered += "g%s" % pieces["short"] else: # exception #1 rendered = "0.post%d" % pieces["distance"] if pieces["dirty"]: rendered += ".dev0" rendered += "+g%s" % pieces["short"] return rendered def render_pep440_old(pieces): """TAG[.postDISTANCE[.dev0]] . The ".dev0" means dirty. Eexceptions: 1: no tags. 0.postDISTANCE[.dev0] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += ".post%d" % pieces["distance"] if pieces["dirty"]: rendered += ".dev0" else: # exception #1 rendered = "0.post%d" % pieces["distance"] if pieces["dirty"]: rendered += ".dev0" return rendered def render_git_describe(pieces): """TAG[-DISTANCE-gHEX][-dirty]. Like 'git describe --tags --dirty --always'. Exceptions: 1: no tags. HEX[-dirty] (note: no 'g' prefix) """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"]: rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) else: # exception #1 rendered = pieces["short"] if pieces["dirty"]: rendered += "-dirty" return rendered def render_git_describe_long(pieces): """TAG-DISTANCE-gHEX[-dirty]. Like 'git describe --tags --dirty --always -long'. The distance/hash is unconditional. Exceptions: 1: no tags. HEX[-dirty] (note: no 'g' prefix) """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) else: # exception #1 rendered = pieces["short"] if pieces["dirty"]: rendered += "-dirty" return rendered def render(pieces, style): """Render the given version pieces into the requested style.""" if pieces["error"]: return {"version": "unknown", "full-revisionid": pieces.get("long"), "dirty": None, "error": pieces["error"], "date": None} if not style or style == "default": style = "pep440" # the default if style == "pep440": rendered = render_pep440(pieces) elif style == "pep440-pre": rendered = render_pep440_pre(pieces) elif style == "pep440-post": rendered = render_pep440_post(pieces) elif style == "pep440-old": rendered = render_pep440_old(pieces) elif style == "git-describe": rendered = render_git_describe(pieces) elif style == "git-describe-long": rendered = render_git_describe_long(pieces) else: raise ValueError("unknown style '%s'" % style) return {"version": rendered, "full-revisionid": pieces["long"], "dirty": pieces["dirty"], "error": None, "date": pieces.get("date")} def get_versions(): """Get version information or return default if unable to do so.""" # I am in _version.py, which lives at ROOT/VERSIONFILE_SOURCE. If we have # __file__, we can work backwards from there to the root. Some # py2exe/bbfreeze/non-CPython implementations don't do __file__, in which # case we can only use expanded keywords. cfg = get_config() verbose = cfg.verbose try: return git_versions_from_keywords(get_keywords(), cfg.tag_prefix, verbose) except NotThisMethod: pass try: root = os.path.realpath(__file__) # versionfile_source is the relative path from the top of the source # tree (where the .git directory might live) to this file. Invert # this to find the root from __file__. for i in cfg.versionfile_source.split('/'): root = os.path.dirname(root) except NameError: return {"version": "0+unknown", "full-revisionid": None, "dirty": None, "error": "unable to find root of source tree", "date": None} try: pieces = git_pieces_from_vcs(cfg.tag_prefix, root, verbose) return render(pieces, cfg.style) except NotThisMethod: pass try: if cfg.parentdir_prefix: return versions_from_parentdir(cfg.parentdir_prefix, root, verbose) except NotThisMethod: pass return {"version": "0+unknown", "full-revisionid": None, "dirty": None, "error": "unable to compute version", "date": None} q2-dada2-2021.8.0/q2_dada2/assets/000077500000000000000000000000001411645176500161305ustar00rootroot00000000000000q2-dada2-2021.8.0/q2_dada2/assets/run_dada_paired.R000077500000000000000000000265641411645176500213740ustar00rootroot00000000000000#!/usr/bin/env Rscript ################################################### # This R script takes an input two directories of # .fastq.gz files, corresponding to matched forward # and reverse sequence files, # and outputs a tsv file of the dada2 processed sequence # table. It is intended for use with the QIIME2 plugin # for DADA2. # # Rscript run_dada_paired.R input_dirF input_dirR output.tsv track.tsv filtered_dirF filtered_dirR 240 160 0 0 2.0 2 pooled 1.0 0 100000 #################################################### #################################################### # DESCRIPTION OF ARGUMENTS # #################################################### # NOTE: All numeric arguments should be zero or positive. # NOTE: All numeric arguments save maxEEF/R are expected to be integers. # NOTE: Currently the filterered_dirF/R must already exist. # NOTE: ALL ARGUMENTS ARE POSITIONAL! # ### FILE SYSTEM ARGUMENTS ### # # 1) File path to directory with the FORWARD .fastq.gz files to be processed. # Ex: path/to/dir/with/FWD_fastqgzs # # 2) File path to directory with the REVERSE .fastq.gz files to be processed. # Ex: path/to/dir/with/REV_fastqgzs # # 3) File path to output tsv file. If already exists, will be overwritten. # Ex: path/to/output_file.tsv # # 4) File path to tracking tsv file. If already exists, will be overwritte. # Ex: path/to/tracking_stats.tsv # # 5) File path to directory to write the filtered FORWARD .fastq.gz files. These files are intermediate # for the full workflow. Currently they remain after the script finishes. Directory must # already exist. # Ex: path/to/dir/with/FWD_fastqgzs/filtered # # 6) File path to directory to write the filtered REVERSE .fastq.gz files. These files are intermediate # for the full workflow. Currently they remain after the script finishes. Directory must # already exist. # Ex: path/to/dir/with/REV_fastqgzs/filtered # ### FILTERING ARGUMENTS ### # # 7) truncLenF - The position at which to truncate forward reads. Forward reads shorter # than truncLenF will be discarded. # Special values: 0 - no truncation or length filtering. # Ex: 240 # # 8) truncLenR - The position at which to truncate reverse reads. Reverse reads shorter # than truncLenR will be discarded. # Special values: 0 - no truncation or length filtering. # Ex: 160 # # 9) trimLeftF - The number of nucleotides to remove from the start of # each forward read. Should be less than truncLenF. # Ex: 0 # # 10) trimLeftR - The number of nucleotides to remove from the start of # each reverse read. Should be less than truncLenR. # Ex: 0 # # 11) maxEEF - Forward reads with expected errors higher than maxEEF are discarded. # Both forward and reverse reads are independently tested. # Ex: 2.0 # # 12) maxEER - Reverse reads with expected errors higher than maxEER are discarded. # Both forward and reverse reads are independently tested. # Ex: 2.0 # # 13) truncQ - Reads are truncated at the first instance of quality score truncQ. # If the read is then shorter than truncLen, it is discarded. # Ex: 2 # ### SENSITIVITY ARGUMENTS ### # # 14) poolMethod - The method used to pool (or not) samples during denoising. # Valid options are: # independent: (Default) No pooling, samples are denoised indpendently. # pseudo: Samples are "pseudo-pooled" for denoising. # Ex: independent # # ### CHIMERA ARGUMENTS ### # # 15) chimeraMethod - The method used to remove chimeras. Valid options are: # none: No chimera removal is performed. # pooled: All reads are pooled prior to chimera detection. # consensus: Chimeras are detect in samples individually, and a consensus decision # is made for each sequence variant. # Ex: consensus # # 16) minParentFold - The minimum abundance of potential "parents" of a sequence being # tested as chimeric, expressed as a fold-change versus the abundance of the sequence being # tested. Values should be greater than or equal to 1 (i.e. parents should be more # abundant than the sequence being tested). # Ex: 1.0 # ### SPEED ARGUMENTS ### # # 17) nthreads - The number of threads to use. # Special values: 0 - detect available and use all. # Ex: 1 # # 18) nreads_learn - The minimum number of reads to learn the error model from. # Special values: 0 - Use all input reads. # Ex: 1000000 # cat(R.version$version.string, "\n") errQuit <- function(mesg, status=1) { message("Error: ", mesg); q(status=status) } getN <- function(x) sum(getUniques(x)) args <- commandArgs(TRUE) # Assign each of the arguments, in positional order, to an appropriately named R variable inp.dirF <- args[[1]] inp.dirR <- args[[2]] out.path <- args[[3]] out.track <- args[[4]] filtered.dirF <- args[[5]] filtered.dirR <- args[[6]] truncLenF <- as.integer(args[[7]]) truncLenR <- as.integer(args[[8]]) trimLeftF <- as.integer(args[[9]]) trimLeftR <- as.integer(args[[10]]) maxEEF <- as.numeric(args[[11]]) maxEER <- as.numeric(args[[12]]) truncQ <- as.integer(args[[13]]) minOverlap <- as.integer(args[14]) poolMethod <- args[[15]] chimeraMethod <- args[[16]] minParentFold <- as.numeric(args[[17]]) nthreads <- as.integer(args[[18]]) nreads.learn <- as.integer(args[[19]]) ### VALIDATE ARGUMENTS ### # Input directory is expected to contain .fastq.gz file(s) # that have not yet been filtered and globally trimmed # to the same length. if(!(dir.exists(inp.dirF) && dir.exists(inp.dirR))) { errQuit("Input directory does not exist.") } else { unfiltsF <- list.files(inp.dirF, pattern=".fastq.gz$", full.names=TRUE) unfiltsR <- list.files(inp.dirR, pattern=".fastq.gz$", full.names=TRUE) if(length(unfiltsF) == 0) { errQuit("No input forward files with the expected filename format found.") } if(length(unfiltsR) == 0) { errQuit("No input reverse files with the expected filename format found.") } if(length(unfiltsF) != length(unfiltsR)) { errQuit("Different numbers of forward and reverse .fastq.gz files.") } } # Output files are to be filenames (not directories) and are to be # removed and replaced if already present. for(fn in c(out.path, out.track)) { if(dir.exists(fn)) { errQuit("Output filename ", fn, " is a directory.") } else if(file.exists(fn)) { invisible(file.remove(fn)) } } # Convert nthreads to the logical/numeric expected by dada2 if(nthreads < 0) { errQuit("nthreads must be non-negative.") } else if(nthreads == 0) { multithread <- TRUE # detect and use all } else if(nthreads == 1) { multithread <- FALSE } else { multithread <- nthreads } ### LOAD LIBRARIES ### suppressWarnings(library(methods)) suppressWarnings(library(dada2)) cat("DADA2:", as.character(packageVersion("dada2")), "/", "Rcpp:", as.character(packageVersion("Rcpp")), "/", "RcppParallel:", as.character(packageVersion("RcppParallel")), "\n") ### TRIM AND FILTER ### cat("1) Filtering ") filtsF <- file.path(filtered.dirF, basename(unfiltsF)) filtsR <- file.path(filtered.dirR, basename(unfiltsR)) out <- suppressWarnings(filterAndTrim(unfiltsF, filtsF, unfiltsR, filtsR, truncLen=c(truncLenF, truncLenR), trimLeft=c(trimLeftF, trimLeftR), maxEE=c(maxEEF, maxEER), truncQ=truncQ, rm.phix=TRUE, multithread=multithread)) cat(ifelse(file.exists(filtsF), ".", "x"), sep="") filtsF <- list.files(filtered.dirF, pattern=".fastq.gz$", full.names=TRUE) filtsR <- list.files(filtered.dirR, pattern=".fastq.gz$", full.names=TRUE) cat("\n") if(length(filtsF) == 0) { # All reads were filtered out errQuit("No reads passed the filter (were truncLenF/R longer than the read lengths?)", status=2) } ### LEARN ERROR RATES ### # Dereplicate enough samples to get nreads.learn total reads cat("2) Learning Error Rates\n") errF <- suppressWarnings(learnErrors(filtsF, nreads=nreads.learn, multithread=multithread)) errR <- suppressWarnings(learnErrors(filtsR, nreads=nreads.learn, multithread=multithread)) ### PROCESS ALL SAMPLES ### # Loop over rest in streaming fashion with learned error rates denoisedF <- rep(0, length(filtsF)) ddsF <- vector("list", length(filtsF)) ddsR <- vector("list", length(filtsF)) mergers <- vector("list", length(filtsF)) cat("3) Denoise samples ") for(j in seq(length(filtsF))) { drpF <- derepFastq(filtsF[[j]]) ddsF[[j]] <- dada(drpF, err=errF, multithread=multithread, verbose=FALSE) drpR <- derepFastq(filtsR[[j]]) ddsR[[j]] <- dada(drpR, err=errR, multithread=multithread, verbose=FALSE) cat(".") } cat("\n") if(poolMethod == "pseudo") { cat(" Pseudo-pool step ") ### TEMPORARY, to be removed once 1.12 makes its way to Q2 ### Needed for now to manage pseudo-pooling memory, as 1.10 didn't do this appropriately. ### pseudo_priors code copied from dada2.R stF <- makeSequenceTable(ddsF) pseudo_priorsF <- colnames(stF)[colSums(stF>0) >= 2 | colSums(stF) >= Inf] rm(stF) stR <- makeSequenceTable(ddsR) pseudo_priorsR <- colnames(stR)[colSums(stR>0) >= 2 | colSums(stR) >= Inf] rm(stR) ### \pseudo_priors code copied from dada2.R ### code copied from previous loop through samples in this script for(j in seq(length(filtsF))) { drpF <- derepFastq(filtsF[[j]]) ddsF[[j]] <- dada(drpF, err=errF, priors=pseudo_priorsF, multithread=multithread, verbose=FALSE) drpR <- derepFastq(filtsR[[j]]) ddsR[[j]] <- dada(drpR, err=errR, priors=pseudo_priorsR, multithread=multithread, verbose=FALSE) cat(".") } cat("\n") ### \code copied from previous loop through samples in this script } ### Now loop through and do merging for(j in seq(length(filtsF))) { drpF <- derepFastq(filtsF[[j]]) drpR <- derepFastq(filtsR[[j]]) mergers[[j]] <- mergePairs(ddsF[[j]], drpF, ddsR[[j]], drpR, minOverlap=minOverlap) denoisedF[[j]] <- getN(ddsF[[j]]) cat(".") } cat("\n") # Make sequence table seqtab <- makeSequenceTable(mergers) # Remove chimeras cat("4) Remove chimeras (method = ", chimeraMethod, ")\n", sep="") if(chimeraMethod %in% c("pooled", "consensus")) { seqtab.nochim <- removeBimeraDenovo(seqtab, method=chimeraMethod, minFoldParentOverAbundance=minParentFold, multithread=multithread) } else { # No chimera removal, copy seqtab to seqtab.nochim seqtab.nochim <- seqtab } ### REPORT READ COUNTS AT EACH PROCESSING STEP ### # Handle edge cases: Samples lost in filtering; One sample track <- cbind(out, matrix(0, nrow=nrow(out), ncol=3)) colnames(track) <- c("input", "filtered", "denoised", "merged", "non-chimeric") passed.filtering <- track[,"filtered"] > 0 track[passed.filtering,"denoised"] <- denoisedF track[passed.filtering,"merged"] <- rowSums(seqtab) track[passed.filtering,"non-chimeric"] <- rowSums(seqtab.nochim) write.table(track, out.track, sep="\t", row.names=TRUE, col.names=NA, quote=FALSE) ### WRITE OUTPUT AND QUIT ### # Formatting as tsv plain-text sequence table table cat("6) Write output\n") seqtab.nochim <- t(seqtab.nochim) # QIIME has OTUs as rows col.names <- basename(filtsF) col.names[[1]] <- paste0("#OTU ID\t", col.names[[1]]) write.table(seqtab.nochim, out.path, sep="\t", row.names=TRUE, col.names=col.names, quote=FALSE) saveRDS(seqtab.nochim, gsub("tsv", "rds", out.path)) ### TESTING q(status=0) q2-dada2-2021.8.0/q2_dada2/assets/run_dada_single.R000066400000000000000000000235341411645176500214000ustar00rootroot00000000000000#!/usr/bin/env Rscript ################################################### # This R script takes an input directory of .fastq.gz files # and outputs a tsv file of the dada2 processed sequence # table. It is intended for use with the QIIME2 plugin # for DADA2. # # Ex: Rscript run_dada_single.R input_dir output.tsv track.tsv filtered_dir 200 0 2.0 2 Inf pooled 1.0 0 1000000 NULL 32 #################################################### #################################################### # DESCRIPTION OF ARGUMENTS # #################################################### # NOTE: All numeric arguments should be zero or positive. # NOTE: All numeric arguments save maxEE are expected to be integers. # NOTE: Currently the filterered_dir must already exist. # NOTE: ALL ARGUMENTS ARE POSITIONAL! # ### FILE SYSTEM ARGUMENTS ### # # 1) File path to directory with the .fastq.gz files to be processed. # Ex: path/to/dir/with/fastqgzs # # 2) File path to output tsv file. If already exists, will be overwritten. # Ex: path/to/output_file.tsv # # 3) File path to tracking tsv file. If already exists, will be overwritte. # Ex: path/to/tracking_stats.tsv # # 4) File path to directory in which to write the filtered .fastq.gz files. These files are intermediate # for the full workflow. Currently they remain after the script finishes. # Directory must already exist. # Ex: path/to/dir/with/fastqgzs/filtered # ### FILTERING ARGUMENTS ### # # 5) truncLen - The position at which to truncate reads. Reads shorter # than truncLen will be discarded. # Special values: 0 - no truncation or length filtering. # Ex: 150 # # 6) trimLeft - The number of nucleotides to remove from the start of # each read. Should be less than truncLen for obvious reasons. # Ex: 0 # # 7) maxEE - Reads with expected errors higher than maxEE are discarded. # Ex: 2.0 # # 8) truncQ - Reads are truncated at the first instance of quality score truncQ. # If the read is then shorter than truncLen, it is discarded. # Ex: 2 # # 9) maxLen - Remove reads with length greater than maxLen. maxLen is enforced on the raw reads. # Default Inf - no maximum. # Ex: 300 # ### SENSITIVITY ARGUMENTS ### # # 10) poolMethod - The method used to pool (or not) samples during denoising. # Valid options are: # independent: (Default) No pooling, samples are denoised indpendently. # pseudo: Samples are "pseudo-pooled" for denoising. # Ex: independent # # ### CHIMERA ARGUMENTS ### # # 11) chimeraMethod - The method used to remove chimeras. Valid options are: # none: No chimera removal is performed. # pooled: All reads are pooled prior to chimera detection. # consensus: Chimeras are detect in samples individually, and a consensus decision # is made for each sequence variant. # Ex: consensus # # 12) minParentFold - The minimum abundance of potential "parents" of a sequence being # tested as chimeric, expressed as a fold-change versus the abundance of the sequence being # tested. Values should be greater than or equal to 1 (i.e. parents should be more # abundant than the sequence being tested). # Ex: 1.0 # ### SPEED ARGUMENTS ### # # 13) nthreads - The number of threads to use. # Special values: 0 - detect available cores and use all. # Ex: 1 # # 14) nreads_learn - The minimum number of reads to learn the error model from. # Special values: 0 - Use all input reads. # Ex: 1000000 # ### GLOBAL OPTION ARGUMENTS ### # # 15) HOMOPOLYMER_GAP_PENALTY - The cost of gaps in homopolymer regions (>=3 repeated bases). # Default is NULL, which causes homopolymer gaps # to be treated as normal gaps. # Ex: -1 # # 16) BAND_SIZE - When set, banded Needleman-Wunsch alignments are performed. # The default value of BAND_SIZE is 16. Setting BAND_SIZE to a negative # number turns off banding (i.e. full Needleman-Wunsch). # Ex: 32 # cat(R.version$version.string, "\n") errQuit <- function(mesg, status=1) { message("Error: ", mesg); q(status=status) } args <- commandArgs(TRUE) # Assign each of the arguments, in positional order, to an appropriately named R variable inp.dir <- args[[1]] out.path <- args[[2]] out.track <- args[[3]] filtered.dir <- args[[4]] truncLen <- as.integer(args[[5]]) trimLeft <- as.integer(args[[6]]) maxEE <- as.numeric(args[[7]]) truncQ <- as.integer(args[[8]]) maxLen <- as.numeric(args[[9]]) # Allows Inf poolMethod <- args[[10]] chimeraMethod <- args[[11]] minParentFold <- as.numeric(args[[12]]) nthreads <- as.integer(args[[13]]) nreads.learn <- as.integer(args[[14]]) # The following args are not directly exposed to end users in q2-dada2, # but rather indirectly, via the methods `denoise-single` and `denoise-pyro`. HOMOPOLYMER_GAP_PENALTY <- if (args[[15]]=='NULL') NULL else as.integer(args[[15]]) BAND_SIZE <- as.integer(args[[16]]) ### VALIDATE ARGUMENTS ### # Input directory is expected to contain .fastq.gz file(s) # that have not yet been filtered and globally trimmed # to the same length. if(!dir.exists(inp.dir)) { errQuit("Input directory does not exist.") } else { unfilts <- list.files(inp.dir, pattern=".fastq.gz$", full.names=TRUE) if(length(unfilts) == 0) { errQuit("No input files with the expected filename format found.") } } # Output files are to be filenames (not directories) and are to be # removed and replaced if already present. for(fn in c(out.path, out.track)) { if(dir.exists(fn)) { errQuit("Output filename ", fn, " is a directory.") } else if(file.exists(fn)) { invisible(file.remove(fn)) } } # Convert nthreads to the logical/numeric expected by dada2 if(nthreads < 0) { errQuit("nthreads must be non-negative.") } else if(nthreads == 0) { multithread <- TRUE # detect and use all } else if(nthreads == 1) { multithread <- FALSE } else { multithread <- nthreads } ### LOAD LIBRARIES ### suppressWarnings(library(methods)) suppressWarnings(library(dada2)) cat("DADA2:", as.character(packageVersion("dada2")), "/", "Rcpp:", as.character(packageVersion("Rcpp")), "/", "RcppParallel:", as.character(packageVersion("RcppParallel")), "\n") ### TRIM AND FILTER ### cat("1) Filtering ") filts <- file.path(filtered.dir, basename(unfilts)) out <- suppressWarnings(filterAndTrim(unfilts, filts, truncLen=truncLen, trimLeft=trimLeft, maxEE=maxEE, truncQ=truncQ, rm.phix=TRUE, multithread=multithread, maxLen=maxLen)) cat(ifelse(file.exists(filts), ".", "x"), sep="") filts <- list.files(filtered.dir, pattern=".fastq.gz$", full.names=TRUE) cat("\n") if(length(filts) == 0) { # All reads were filtered out errQuit("No reads passed the filter (was truncLen longer than the read length?)", status=2) } ### LEARN ERROR RATES ### # Dereplicate enough samples to get nreads.learn total reads cat("2) Learning Error Rates\n") err <- suppressWarnings(learnErrors(filts, nreads=nreads.learn, multithread=multithread, HOMOPOLYMER_GAP_PENALTY=HOMOPOLYMER_GAP_PENALTY, BAND_SIZE=BAND_SIZE)) ### PROCESS ALL SAMPLES ### # Loop over rest in streaming fashion with learned error rates dds <- vector("list", length(filts)) cat("3) Denoise samples ") for(j in seq(length(filts))) { drp <- derepFastq(filts[[j]]) dds[[j]] <- dada(drp, err=err, multithread=multithread, HOMOPOLYMER_GAP_PENALTY=HOMOPOLYMER_GAP_PENALTY, BAND_SIZE=BAND_SIZE, verbose=FALSE) cat(".") } cat("\n") if(poolMethod == "pseudo") { cat(" Pseudo-pool step ") ### TEMPORARY, to be removed once 1.12 makes its way to Q2 ### Needed for now to manage pseudo-pooling memory, as 1.10 didn't do this appropriately. ### pseudo_priors code copied from dada2.R st <- makeSequenceTable(dds) pseudo_priors <- colnames(st)[colSums(st>0) >= 2 | colSums(st) >= Inf] rm(st) ### \pseudo_priors code copied from dada2.R ### code copied from previous loop through samples in this script for(j in seq(length(filts))) { drp <- derepFastq(filts[[j]]) dds[[j]] <- dada(drp, err=err, multithread=multithread, priors = pseudo_priors, HOMOPOLYMER_GAP_PENALTY=HOMOPOLYMER_GAP_PENALTY, BAND_SIZE=BAND_SIZE, verbose=FALSE) cat(".") } cat("\n") ### \code copied from previous loop through samples in this script } # Make sequence table seqtab <- makeSequenceTable(dds) ### Remove chimeras cat("4) Remove chimeras (method = ", chimeraMethod, ")\n", sep="") if(chimeraMethod %in% c("pooled", "consensus")) { seqtab.nochim <- removeBimeraDenovo(seqtab, method=chimeraMethod, minFoldParentOverAbundance=minParentFold, multithread=multithread) } else { # No chimera removal, copy seqtab to seqtab.nochim seqtab.nochim <- seqtab } ### REPORT READ FRACTIONS THROUGH PIPELINE ### cat("5) Report read numbers through the pipeline\n") # Handle edge cases: Samples lost in filtering; One sample track <- cbind(out, matrix(0, nrow=nrow(out), ncol=2)) colnames(track) <- c("input", "filtered", "denoised", "non-chimeric") passed.filtering <- track[,"filtered"] > 0 track[passed.filtering,"denoised"] <- rowSums(seqtab) track[passed.filtering,"non-chimeric"] <- rowSums(seqtab.nochim) write.table(track, out.track, sep="\t", row.names=TRUE, col.names=NA, quote=FALSE) ### WRITE OUTPUT AND QUIT ### # Formatting as tsv plain-text sequence table table cat("6) Write output\n") seqtab.nochim <- t(seqtab.nochim) # QIIME has OTUs as rows col.names <- basename(filts) col.names[[1]] <- paste0("#OTU ID\t", col.names[[1]]) write.table(seqtab.nochim, out.path, sep="\t", row.names=TRUE, col.names=col.names, quote=FALSE) saveRDS(seqtab.nochim, gsub("tsv", "rds", out.path)) ### TESTING q(status=0) q2-dada2-2021.8.0/q2_dada2/citations.bib000066400000000000000000000006151411645176500173030ustar00rootroot00000000000000@article{callahan2016dada2, title={DADA2: high-resolution sample inference from Illumina amplicon data}, author={Callahan, Benjamin J and McMurdie, Paul J and Rosen, Michael J and Han, Andrew W and Johnson, Amy Jo A and Holmes, Susan P}, journal={Nature methods}, volume={13}, number={7}, pages={581}, year={2016}, publisher={Nature Publishing Group}, doi={10.1038/nmeth.3869} } q2-dada2-2021.8.0/q2_dada2/plugin_setup.py000066400000000000000000000475361411645176500177350ustar00rootroot00000000000000# ---------------------------------------------------------------------------- # Copyright (c) 2016-2021, QIIME 2 development team. # # Distributed under the terms of the Modified BSD License. # # The full license is in the file LICENSE, distributed with this software. # ---------------------------------------------------------------------------- import importlib import qiime2.plugin from q2_types.per_sample_sequences import ( SequencesWithQuality, PairedEndSequencesWithQuality) from q2_types.sample_data import SampleData from q2_types.feature_data import FeatureData, Sequence from q2_types.feature_table import FeatureTable, Frequency import q2_dada2 from q2_dada2 import DADA2Stats, DADA2StatsFormat, DADA2StatsDirFmt _POOL_OPT = {'pseudo', 'independent'} _CHIM_OPT = {'pooled', 'consensus', 'none'} plugin = qiime2.plugin.Plugin( name='dada2', version=q2_dada2.__version__, website='http://benjjneb.github.io/dada2/', package='q2_dada2', description=('This QIIME 2 plugin wraps DADA2 and supports ' 'sequence quality control for single-end and paired-end ' 'reads using the DADA2 R library.'), short_description='Plugin for sequence quality control with DADA2.', citations=qiime2.plugin.Citations.load('citations.bib', package='q2_dada2') ) plugin.methods.register_function( function=q2_dada2.denoise_single, inputs={'demultiplexed_seqs': SampleData[SequencesWithQuality | PairedEndSequencesWithQuality]}, parameters={'trunc_len': qiime2.plugin.Int, 'trim_left': qiime2.plugin.Int, 'max_ee': qiime2.plugin.Float, 'trunc_q': qiime2.plugin.Int, 'pooling_method': qiime2.plugin.Str % qiime2.plugin.Choices(_POOL_OPT), 'chimera_method': qiime2.plugin.Str % qiime2.plugin.Choices(_CHIM_OPT), 'min_fold_parent_over_abundance': qiime2.plugin.Float, 'n_threads': qiime2.plugin.Int, 'n_reads_learn': qiime2.plugin.Int, 'hashed_feature_ids': qiime2.plugin.Bool}, outputs=[('table', FeatureTable[Frequency]), ('representative_sequences', FeatureData[Sequence]), ('denoising_stats', SampleData[DADA2Stats])], input_descriptions={ 'demultiplexed_seqs': ('The single-end demultiplexed sequences to be ' 'denoised.') }, parameter_descriptions={ 'trunc_len': ('Position at which sequences should be truncated due to ' 'decrease in quality. This truncates the 3\' end of the ' 'of the input sequences, which will be the bases that ' 'were sequenced in the last cycles. Reads that are ' 'shorter than this value will be discarded. If 0 is ' 'provided, no truncation or length filtering will be ' 'performed'), 'trim_left': ('Position at which sequences should be trimmed due to ' 'low quality. This trims the 5\' end of the ' 'of the input sequences, which will be the bases that ' 'were sequenced in the first cycles.'), 'max_ee': ('Reads with number of expected errors higher than this ' 'value will be discarded.'), 'trunc_q': ('Reads are truncated at the first instance of a quality ' 'score less than or equal to this value. If the resulting ' 'read is then shorter than `trunc_len`, it is discarded.'), 'pooling_method': ( 'The method used to pool samples for denoising. ' '"independent": Samples are denoised independently. ' '"pseudo": The pseudo-pooling method is used to ' 'approximate pooling of samples. In short, samples ' 'are denoised independently once, ASVs detected ' 'in at least 2 samples are recorded, and samples ' 'are denoised independently a second time, but ' 'this time with prior knowledge of the recorded ' 'ASVs and thus higher sensitivity to those ASVs.' ), 'chimera_method': ('The method used to remove chimeras. ' '"none": No chimera removal is performed. ' '"pooled": All reads are pooled prior to chimera ' 'detection. "consensus": Chimeras are detected in ' 'samples individually, and sequences found ' 'chimeric in a sufficient fraction of samples are ' 'removed.'), 'min_fold_parent_over_abundance': ( 'The minimum abundance of potential parents of a sequence being ' 'tested as chimeric, expressed as a fold-change versus the ' 'abundance of the sequence being tested. Values should be greater ' 'than or equal to 1 (i.e. parents should be more abundant than ' 'the sequence being tested). This parameter has no effect if ' 'chimera_method is "none".'), 'n_threads': ('The number of threads to use for multithreaded ' 'processing. If 0 is provided, all available cores will ' 'be used.'), 'n_reads_learn': ('The number of reads to use when training the ' 'error model. Smaller numbers will result in a ' 'shorter run time but a less reliable error ' 'model.'), 'hashed_feature_ids': ('If true, the feature ids in the resulting ' 'table will be presented as hashes of the ' 'sequences defining each feature. The hash ' 'will always be the same for the same sequence ' 'so this allows feature tables to be merged ' 'across runs of this method. You should only ' 'merge tables if the exact same parameters are ' 'used for each run.') }, output_descriptions={ 'table': 'The resulting feature table.', 'representative_sequences': ('The resulting feature sequences. Each ' 'feature in the feature table will be ' 'represented by exactly one sequence.') }, name='Denoise and dereplicate single-end sequences', description=('This method denoises single-end sequences, dereplicates ' 'them, and filters chimeras.') ) plugin.methods.register_function( function=q2_dada2.denoise_paired, inputs={'demultiplexed_seqs': SampleData[PairedEndSequencesWithQuality]}, parameters={'trunc_len_f': qiime2.plugin.Int, 'trunc_len_r': qiime2.plugin.Int, 'trim_left_f': qiime2.plugin.Int, 'trim_left_r': qiime2.plugin.Int, 'max_ee_f': qiime2.plugin.Float, 'max_ee_r': qiime2.plugin.Float, 'trunc_q': qiime2.plugin.Int, 'min_overlap': qiime2.plugin.Int % qiime2.plugin.Range(4, None), 'pooling_method': qiime2.plugin.Str % qiime2.plugin.Choices(_POOL_OPT), 'chimera_method': qiime2.plugin.Str % qiime2.plugin.Choices(_CHIM_OPT), 'min_fold_parent_over_abundance': qiime2.plugin.Float, 'n_threads': qiime2.plugin.Int, 'n_reads_learn': qiime2.plugin.Int, 'hashed_feature_ids': qiime2.plugin.Bool}, outputs=[('table', FeatureTable[Frequency]), ('representative_sequences', FeatureData[Sequence]), ('denoising_stats', SampleData[DADA2Stats])], input_descriptions={ 'demultiplexed_seqs': ('The paired-end demultiplexed sequences to be ' 'denoised.') }, parameter_descriptions={ 'trunc_len_f': ('Position at which forward read sequences should be ' 'truncated due to decrease in quality. This truncates ' 'the 3\' end of the of the input sequences, which ' 'will be the bases that were sequenced in the last ' 'cycles. Reads that are shorter than this value ' 'will be discarded. After this parameter is applied ' 'there must still be at least a 12 nucleotide overlap ' 'between the forward and reverse reads. If 0 is ' 'provided, no truncation or length filtering will be ' 'performed'), 'trim_left_f': ('Position at which forward read sequences should be ' 'trimmed due to low quality. This trims the 5\' end ' 'of the input sequences, which will be the bases that ' 'were sequenced in the first cycles.'), 'trunc_len_r': ('Position at which reverse read sequences should be ' 'truncated due to decrease in quality. This truncates ' 'the 3\' end of the of the input sequences, which ' 'will be the bases that were sequenced in the last ' 'cycles. Reads that are shorter than this value ' 'will be discarded. After this parameter is applied ' 'there must still be at least a 12 nucleotide overlap ' 'between the forward and reverse reads. If 0 is ' 'provided, no truncation or length filtering will be ' 'performed'), 'trim_left_r': ('Position at which reverse read sequences should be ' 'trimmed due to low quality. This trims the 5\' end ' 'of the input sequences, which will be the bases that ' 'were sequenced in the first cycles.'), 'max_ee_f': ('Forward reads with number of expected errors higher ' 'than this value will be discarded.'), 'max_ee_r': ('Reverse reads with number of expected errors higher ' 'than this value will be discarded.'), 'trunc_q': ('Reads are truncated at the first instance of a quality ' 'score less than or equal to this value. If the resulting ' 'read is then shorter than `trunc_len_f` or `trunc_len_r` ' '(depending on the direction of the read) it is ' 'discarded.'), 'min_overlap': ('The minimum length of the overlap required for ' 'merging the forward and reverse reads.'), 'pooling_method': ('The method used to pool samples for denoising. ' '"independent": Samples are denoised indpendently. ' '"pseudo": The pseudo-pooling method is used to ' 'approximate pooling of samples. In short, samples ' 'are denoised independently once, ASVs detected ' 'in at least 2 samples are recorded, and samples ' 'are denoised independently a second time, but ' 'this time with prior knowledge of the recorded ' 'ASVs and thus higher sensitivity to those ASVs.'), 'chimera_method': ('The method used to remove chimeras. ' '"none": No chimera removal is performed. ' '"pooled": All reads are pooled prior to chimera ' 'detection. "consensus": Chimeras are detected in ' 'samples individually, and sequences found ' 'chimeric in a sufficient fraction of samples are ' 'removed.'), 'min_fold_parent_over_abundance': ( 'The minimum abundance of potential parents of a sequence being ' 'tested as chimeric, expressed as a fold-change versus the ' 'abundance of the sequence being tested. Values should be greater ' 'than or equal to 1 (i.e. parents should be more abundant than ' 'the sequence being tested). This parameter has no effect if ' 'chimera_method is "none".'), 'n_threads': ('The number of threads to use for multithreaded ' 'processing. If 0 is provided, all available cores will ' 'be used.'), 'n_reads_learn': ('The number of reads to use when training the ' 'error model. Smaller numbers will result in a ' 'shorter run time but a less reliable error ' 'model.'), 'hashed_feature_ids': ('If true, the feature ids in the resulting ' 'table will be presented as hashes of the ' 'sequences defining each feature. The hash ' 'will always be the same for the same sequence ' 'so this allows feature tables to be merged ' 'across runs of this method. You should only ' 'merge tables if the exact same parameters are ' 'used for each run.') }, output_descriptions={ 'table': 'The resulting feature table.', 'representative_sequences': ('The resulting feature sequences. Each ' 'feature in the feature table will be ' 'represented by exactly one sequence, ' 'and these sequences will be the joined ' 'paired-end sequences.') }, name='Denoise and dereplicate paired-end sequences', description=('This method denoises paired-end sequences, dereplicates ' 'them, and filters chimeras.') ) plugin.methods.register_function( function=q2_dada2.denoise_pyro, inputs={'demultiplexed_seqs': SampleData[SequencesWithQuality]}, parameters={'trunc_len': qiime2.plugin.Int, 'trim_left': qiime2.plugin.Int, 'max_ee': qiime2.plugin.Float, 'trunc_q': qiime2.plugin.Int, 'max_len': qiime2.plugin.Int, 'pooling_method': qiime2.plugin.Str % qiime2.plugin.Choices(_POOL_OPT), 'chimera_method': qiime2.plugin.Str % qiime2.plugin.Choices(_CHIM_OPT), 'min_fold_parent_over_abundance': qiime2.plugin.Float, 'n_threads': qiime2.plugin.Int, 'n_reads_learn': qiime2.plugin.Int, 'hashed_feature_ids': qiime2.plugin.Bool}, outputs=[('table', FeatureTable[Frequency]), ('representative_sequences', FeatureData[Sequence]), ('denoising_stats', SampleData[DADA2Stats])], input_descriptions={ 'demultiplexed_seqs': 'The single-end demultiplexed pyrosequencing ' 'sequences (e.g. 454, IonTorrent) to be ' 'denoised.' }, parameter_descriptions={ 'trunc_len': 'Position at which sequences should be truncated due to ' 'decrease in quality. This truncates the 3\' end of the ' 'of the input sequences, which will be the bases that ' 'were sequenced in the last cycles. Reads that are ' 'shorter than this value will be discarded. If 0 is ' 'provided, no truncation or length filtering will be ' 'performed', 'trim_left': 'Position at which sequences should be trimmed due to ' 'low quality. This trims the 5\' end of the ' 'of the input sequences, which will be the bases that ' 'were sequenced in the first cycles.', 'max_ee': 'Reads with number of expected errors higher than this ' 'value will be discarded.', 'trunc_q': 'Reads are truncated at the first instance of a quality ' 'score less than or equal to this value. If the resulting ' 'read is then shorter than `trunc_len`, it is discarded.', 'max_len': 'Remove reads prior to trimming or truncation which are ' 'longer than this value. If 0 is provided no reads will ' 'be removed based on length.', 'pooling_method': 'The method used to pool samples for denoising. ' '"independent": Samples are denoised indpendently. ' '"pseudo": The pseudo-pooling method is used to ' 'approximate pooling of samples. In short, samples ' 'are denoised independently once, ASVs detected ' 'in at least 2 samples are recorded, and samples ' 'are denoised independently a second time, but ' 'this time with prior knowledge of the recorded ' 'ASVs and thus higher sensitivity to those ASVs.', 'chimera_method': 'The method used to remove chimeras. ' '"none": No chimera removal is performed. ' '"pooled": All reads are pooled prior to chimera ' 'detection. "consensus": Chimeras are detected in ' 'samples individually, and sequences found ' 'chimeric in a sufficient fraction of samples are ' 'removed.', 'min_fold_parent_over_abundance': 'The minimum abundance of potential parents of a sequence being ' 'tested as chimeric, expressed as a fold-change versus the ' 'abundance of the sequence being tested. Values should be greater ' 'than or equal to 1 (i.e. parents should be more abundant than ' 'the sequence being tested). This parameter has no effect if ' 'chimera_method is "none".', 'n_threads': 'The number of threads to use for multithreaded ' 'processing. If 0 is provided, all available cores will ' 'be used.', 'n_reads_learn': 'The number of reads to use when training the ' 'error model. Smaller numbers will result in a ' 'shorter run time but a less reliable error ' 'model.', 'hashed_feature_ids': 'If true, the feature ids in the resulting ' 'table will be presented as hashes of the ' 'sequences defining each feature. The hash ' 'will always be the same for the same sequence ' 'so this allows feature tables to be merged ' 'across runs of this method. You should only ' 'merge tables if the exact same parameters are ' 'used for each run.' }, output_descriptions={ 'table': 'The resulting feature table.', 'representative_sequences': 'The resulting feature sequences. Each ' 'feature in the feature table will be ' 'represented by exactly one sequence.' }, name='Denoise and dereplicate single-end pyrosequences', description='This method denoises single-end pyrosequencing sequences, ' 'dereplicates them, and filters chimeras.' ) plugin.register_formats(DADA2StatsFormat, DADA2StatsDirFmt) plugin.register_semantic_types(DADA2Stats) plugin.register_semantic_type_to_format( SampleData[DADA2Stats], DADA2StatsDirFmt) importlib.import_module('q2_dada2._transformer') q2-dada2-2021.8.0/q2_dada2/tests/000077500000000000000000000000001411645176500157705ustar00rootroot00000000000000q2-dada2-2021.8.0/q2_dada2/tests/__init__.py000066400000000000000000000005351411645176500201040ustar00rootroot00000000000000# ---------------------------------------------------------------------------- # Copyright (c) 2016-2021, QIIME 2 development team. # # Distributed under the terms of the Modified BSD License. # # The full license is in the file LICENSE, distributed with this software. # ---------------------------------------------------------------------------- q2-dada2-2021.8.0/q2_dada2/tests/data/000077500000000000000000000000001411645176500167015ustar00rootroot00000000000000q2-dada2-2021.8.0/q2_dada2/tests/data/expected/000077500000000000000000000000001411645176500205025ustar00rootroot00000000000000q2-dada2-2021.8.0/q2_dada2/tests/data/expected/paired-default-stats.tsv000066400000000000000000000010671411645176500252660ustar00rootroot00000000000000sample-id input filtered percentage of input passed filter denoised merged percentage of input merged non-chimeric percentage of input non-chimeric #q2:types numeric numeric numeric numeric numeric numeric numeric numeric BAQ2420.2 100 92 92 34 15 15 15 15 BAQ3473.2 100 95 95 14 0 0 0 0 BAQ3473.3 100 92 92 30 16 16 16 16 BAQ4166.2 100 92 92 20 0 0 0 0 BAQ4166.3 100 89 89 26 9 9 9 9 PAP130.2 100 89 89 43 5 5 5 5 YUN1005.3 100 95 95 76 68 68 68 68 YUN1242.1 100 86 86 81 49 49 49 49 YUN1242.3 100 93 93 76 50 50 50 50 YUN3153.3 100 89 89 64 31 31 31 31 q2-dada2-2021.8.0/q2_dada2/tests/data/expected/paired-default.fasta000066400000000000000000000121011411645176500244030ustar00rootroot00000000000000>cbd46c06c1ddceeb8d856468c1b549c8 TACGTAGGGTGCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTCTGTCGCGTCGGCTGTGAAAACTCGGGGCTCAACTCCGAGCTTGCAGCCGATACGGGCAGACTAGAGTTCGGCAGGGGAGACTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGGTCTCTGGGCCGATACTGACGCTGAGGAGCGAAAGCGTGGGGAGCAAACAGG >c15fd6a65f4f8d575c2cb4cfe2a659a5 TACGTAGGGGGCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCGTGTAGGCGGTCTGGTAAGTCTGCCGTGAAAACCCGGGGCTCAACCCCGGGCGTGCGGTGGATACTGCCAGGCTAGAGGGTGGTAGAGGCGAGTGGAATTCCCGGTGTAGCGGTGAAATGCGCAGATATCGGGAGGAACACCAGTAGCGAAGGCGGCTCGCTGGGCCATTCCTGACGCTGAGACGCGAAAGCTAGGGGAGCGAACAGG >854614d933d994aecc1d1b7bbc24e675 TACGTAGGGTGCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTCTGTTACGTCGGCTGTGAAAACTCGGGGCTCAACCCTGAGCCTGCAGTCGATACGGGCAGACTAGAGTTCGGCAGGGGAGACTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGGTCTCTGGGCCGATACTGACGCTGAGGAGCGAAAGCGTGGGGAGCGAACAGG >7925aae7da7d248eccdcd0ed0935ad61 TACGTAGGGGGCAAGCGTTGTCCGGAATCATTGGGCGTAAAGAGCGCGTAGGCGGTCCGGTAAGTCCATCGTGAAAGCCAAGGGCTCAACCCTTGGATGCCGGTGGATACTGTCGGGCTAGAGTCCGGAAGAGGCGAGTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAAGAACACCTATGGCGAAGGCAGCTCGCTGGGACGGAACTGACGCTGAGGCGCGAAAGCGTGGGGAGCAAACAGG >5de23fc8df270235a8958de416e2f944 TACGTAGGGGGCAAGCGTTGTCCGGATTCATTGGGCGTAAAGAGCTCGTAGGCGGCTTGGCAAGTCGGGTGTGAAAACTTCAGGCTCAACCTGGAGATGCCACCCGAGACTGCTATGGCTAGAGTCCGGTAGGGGACCACGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTAGCGAAGGCGGTGGTCTGGGCCGGCACTGACGCTGAGGAGCGAAAGCGTGGGTAGCAAACAGG >27ae47cc0e39b6df154b6938d9848c1b TACGTAGGGTGCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTTTGTCGCGTCGGCTGTGAAAACTCGGGGCTCAACTCTGAGCTTGCAGTCGATACGGGCAGACTAGAGTTCGGCAGGGGAGACTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGGTCTCTGGGCCGATACTGACGCTGAGGAGCGAAAGCGTGGGGAGCGAACAGG >acca130825261f8ae2e602bfe1865525 CACGTAGGGACCGAGCGTTGTCCGGAATCATTGGGCGTAAAGAGCGCGTAGGCGGCTATCCACGTCGGGTGTGAAAGCTCAGAGCTCAACTCTGAGAGGCCATTCGATACGGGATAGCTAGAGGCAGCTAGGGGAGAGTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGCTCTCTGGGGCTGATCTGACGCTGAGGCGCGAAAGCTGGGGGAGCAAACAGG >0018939bf02c32c9a63c42ade52cefad TACGGAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGGGCGCGTAGGTGGTTGGGTAAGTCGGGTGTGAAAGCCCTGGGCTTAACCTGGGAATGGCATTCGAGACTACCTATCTAGAGTCTGGTAGAGGGAAGTGGAATTTCCGGTGTAGCGGTGAAATGTGTAGATATCGGAAGGAACACCAGTGGCGAAGGCGACTTCCTGGACCAAGACTGACGCTGAGGCGCGAAAGCGTGGGGATCAAACAGG >31ca42f58709548b0c88ae9153bece35 TACGGAGGATGCAAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGCCTGTTAAGTCAGGGGTGAAAGGTTGCGGCTTAACCGCAGAATTGCCTTTGATACTGGCGGGCTTGAATAAAGTTGAGGTAGGCGGAATGTGGCAAGTAGCGGTGAAATGCATAGAGATGCCACAGAACACCGATTGCGAAGGCAGCTTACTAAGCTTTGATTGACGCTGAGGCACGAAAGCGTGGGGATCAAACAGG >4ec5e8b7a8c0d46bebe446577daa0352 CACGTAGGGGGCGAGCGTTGTCCGGATTTATTGGGCGTAAAGAGCTCGTAGGCGGCCGTTCGCGTCGGATGTGAAAGCTCAAGGCTCAACCTTGAGAGGCCATTCGATACGGGACGGCTGGAGGCAGGCAGGGGAGAGTGGAATTCCTGGTGTAGCGGTGGAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGCTCTCTGGGCCTGTTCTGACGCTGAGGAGCGAAAGCTGGGGTAGCAAACAGG >90179b7710e4f00cc4de907ada3d13a5 TACGTAGGGTCCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTCCGTTAAGTCGGAAGTGAAATCTCAAGGCTCAACCTTGAAATTGCTTTCGATACTGGCGGACTTGAGGCAGGTAGGGGAAGGTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCAGTGGCGAAGGCGGCCTTCTGGGCCTGTACTGACGCTGAGGAGCGAAAGCGTGGGGAGCAAACAGG >bb0a57a999432eb92864d72d6284edae TACGTAGGGACCAAGCGTTGTCCGGATTTATTGGGCGTAAAGAGCTCGTAGGCGGCTGTTCGCGTCGGATGTGAAAGCTCAGAGCTCAACTCTGAGAGGCCATTCGATACGGGATAGCTAGAGGTAGGTAGGGGAGATCGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGATCTCTGGGCCTTACCTGACGCTGAGGAGCGAAAGCTGGGGGAGCAAACAGG >d324c95a5966d689591653062ca99d03 TACGTAGGGGGCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCGTGTAGGCGGCCTGGTAAGTCTGCTGTGAAACCTTGGGGCTCAACCCCAAGCGTGCAGTGGATACTGCTAGGCTAGAGGATGGTAGAGGCGAGTGGAATTCCCGGTGTAGCGGTGAAATGCGCAGATATCGGGAGGAACACCAGTAGCGAAGGCGGCTCGCTGGGCCATTCCTGACGCTGAGACGCGAAAGCTAGGGGAGCGAACAGG >3587ee8f8d9cefe13b27e5559b8e1b58 TACGTAGGGGGCAAGCGTTGTCCGGATTTATTGGGCGTAAAGAGCTCGTAGGCGGCCTGGTGAGTCGGGTGTGAAAGCCCGAGGCTCAACCTCGGAATTGCATTCGATACTGCTGGGCTTGAGGCAGGTAGGGGAGGATGGAATTCCCGGTGTAGCGGTGGAATGCGCAGATATCGGGAGGAACACCTGCGGCGAAGGCGGTCCTCTGGGCCTGTCCTGACGCTGAGGAGCGAAAGCGTGGGGAGCGAACAGG >868e0aaa76b7fda3a2d8845889ca8f2b TACGGAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGGGCGCGTAGGCGGTTGGGTAAGTCGGATGTGAAAGCCCTGGGCTTAACCTGGGAATGGCATTCGAGACTACCTATCTAGAGTCTGGTAGAGGGAAGTGGAATTTCCGGTGTAGCGGTGAAATGTGTAGATATCGGAAGGAACACCAGTGGCGAAGGCGACTTCCTGGACCAAGACTGACGCTGAGGCGCGAAAGCGTGGGGATCAAACAGG >f2fd9d7b74d80ad0cc6f3439e6325d27 TACGGAGGGTGCGAGCGTTGTCCGGAATCACTGGGCGTAAAGGGCGCGTAGGCGGCCTGATAAGTAGGGGGTGAAATCCTGCGGCTTAACCGCAGGGCTGCCTTCTAAACTGTCAGGCTCGAGCACAGTAGAGGCAGGTGGAATTCCCGGTGTAGCGGTGGAATGCGTAGAGATCGGGAAGAACATCAGTGGCGAAGGCGGCCTGCTGGGCTGTTGCTGACGCTGAGGCGCGACAGCGTGGGGAGCAAACAGG >f01fcb3165881248269b22cf5ff01ebe GACGTAGGGCGCGAGCGTTGTCCGGATTTATTGGGCGTAAAGGGCTCGTAGGCGGCTCGTCGCGTCTGTCGTGAAAGGCTCCGGCTTAACCGGGGTTTTGCGGTGGATACGGGCGGGCTTGAGGCTAGTAGGGGAGATCGGAATTCTACGTGTAGCGGTGAAATGCGCAGATATGTGGAGGAACACCGGTGGCGAAGGCGGATCTCTGGGCTGGTTCTGACGCTGAGGAGCGAAAGCATGGGGAGCGAACAGG >e16d86b7fe770de88e7e8fd0fb6c8b5a TACAGAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGCGGCTTTGCAAGTCGGGTGTGAAATCCCCAGGCTTAACCTGGGAACTGCATTCGAGACTGCATTGCTAGAGTATGGGAGAGGGAAGTGGAATTTCCGGTGTAGCGGTGAAATGCGTAGATATCGGAAGGAACATCAGTGGCGAAAGCGACTTCCTGGACCAATACTGACGCTCATGTGCGAAAGCGTGGGGAGCAAACAGG q2-dada2-2021.8.0/q2_dada2/tests/data/expected/paired-default.tsv000066400000000000000000000026651411645176500241370ustar00rootroot00000000000000# Constructed from biom file #OTU ID BAQ2420.2 BAQ3473.2 BAQ3473.3 BAQ4166.2 BAQ4166.3 PAP130.2 YUN1005.3 YUN1242.1 YUN1242.3 YUN3153.3 cbd46c06c1ddceeb8d856468c1b549c8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 30.0 0.0 0.0 c15fd6a65f4f8d575c2cb4cfe2a659a5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 28.0 0.0 854614d933d994aecc1d1b7bbc24e675 0.0 0.0 0.0 0.0 0.0 0.0 22.0 0.0 0.0 0.0 7925aae7da7d248eccdcd0ed0935ad61 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 20.0 5de23fc8df270235a8958de416e2f944 0.0 0.0 0.0 0.0 0.0 0.0 18.0 0.0 0.0 0.0 27ae47cc0e39b6df154b6938d9848c1b 0.0 0.0 0.0 0.0 0.0 0.0 17.0 0.0 0.0 0.0 acca130825261f8ae2e602bfe1865525 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 16.0 0.0 0018939bf02c32c9a63c42ade52cefad 15.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 31ca42f58709548b0c88ae9153bece35 0.0 0.0 11.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 4ec5e8b7a8c0d46bebe446577daa0352 0.0 0.0 0.0 0.0 0.0 0.0 11.0 0.0 0.0 0.0 90179b7710e4f00cc4de907ada3d13a5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 11.0 0.0 0.0 bb0a57a999432eb92864d72d6284edae 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 11.0 d324c95a5966d689591653062ca99d03 0.0 0.0 0.0 0.0 0.0 0.0 0.0 8.0 0.0 0.0 3587ee8f8d9cefe13b27e5559b8e1b58 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 6.0 0.0 868e0aaa76b7fda3a2d8845889ca8f2b 0.0 0.0 5.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 f2fd9d7b74d80ad0cc6f3439e6325d27 0.0 0.0 0.0 0.0 5.0 0.0 0.0 0.0 0.0 0.0 f01fcb3165881248269b22cf5ff01ebe 0.0 0.0 0.0 0.0 0.0 5.0 0.0 0.0 0.0 0.0 e16d86b7fe770de88e7e8fd0fb6c8b5a 0.0 0.0 0.0 0.0 4.0 0.0 0.0 0.0 0.0 0.0q2-dada2-2021.8.0/q2_dada2/tests/data/expected/paired-override-stats.tsv000066400000000000000000000010751411645176500254600ustar00rootroot00000000000000sample-id input filtered percentage of input passed filter denoised merged percentage of input merged non-chimeric percentage of input non-chimeric #q2:types numeric numeric numeric numeric numeric numeric numeric numeric BAQ2420.2 100 99 99 44 21 21 21 21 BAQ3473.2 100 99 99 18 0 0 0 0 BAQ3473.3 100 100 100 49 17 17 17 17 BAQ4166.2 100 99 99 36 0 0 0 0 BAQ4166.3 100 97 97 34 9 9 9 9 PAP130.2 100 98 98 49 0 0 0 0 YUN1005.3 100 100 100 81 65 65 65 65 YUN1242.1 100 97 97 87 65 65 65 65 YUN1242.3 100 99 99 74 53 53 53 53 YUN3153.3 100 100 100 70 28 28 28 28 q2-dada2-2021.8.0/q2_dada2/tests/data/expected/paired-override.fasta000066400000000000000000000203741411645176500246110ustar00rootroot00000000000000>GCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTCTGTCGCGTCGGCTGTGAAAACTCGGGGCTCAACTCCGAGCTTGCAGCCGATACGGGCAGACTAGAGTTCGGCAGGGGAGACTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGGTCTCTGGGCCGATACTGACGCTGAGGAGCGAAAGCGTGGGG GCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTCTGTCGCGTCGGCTGTGAAAACTCGGGGCTCAACTCCGAGCTTGCAGCCGATACGGGCAGACTAGAGTTCGGCAGGGGAGACTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGGTCTCTGGGCCGATACTGACGCTGAGGAGCGAAAGCGTGGGG >GCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCGTGTAGGCGGTCTGGTAAGTCTGCCGTGAAAACCCGGGGCTCAACCCCGGGCGTGCGGTGGATACTGCCAGGCTAGAGGGTGGTAGAGGCGAGTGGAATTCCCGGTGTAGCGGTGAAATGCGCAGATATCGGGAGGAACACCAGTAGCGAAGGCGGCTCGCTGGGCCATTCCTGACGCTGAGACGCGAAAGCTAGGGG GCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCGTGTAGGCGGTCTGGTAAGTCTGCCGTGAAAACCCGGGGCTCAACCCCGGGCGTGCGGTGGATACTGCCAGGCTAGAGGGTGGTAGAGGCGAGTGGAATTCCCGGTGTAGCGGTGAAATGCGCAGATATCGGGAGGAACACCAGTAGCGAAGGCGGCTCGCTGGGCCATTCCTGACGCTGAGACGCGAAAGCTAGGGG >GCGAGCGTTAATCGGAATTACTGGGCGTAAAGGGCGCGTAGGTGGTTGGGTAAGTCGGGTGTGAAAGCCCTGGGCTTAACCTGGGAATGGCATTCGAGACTACCTATCTAGAGTCTGGTAGAGGGAAGTGGAATTTCCGGTGTAGCGGTGAAATGTGTAGATATCGGAAGGAACACCAGTGGCGAAGGCGACTTCCTGGACCAAGACTGACGCTGAGGCGCGAAAGCGTGGGG GCGAGCGTTAATCGGAATTACTGGGCGTAAAGGGCGCGTAGGTGGTTGGGTAAGTCGGGTGTGAAAGCCCTGGGCTTAACCTGGGAATGGCATTCGAGACTACCTATCTAGAGTCTGGTAGAGGGAAGTGGAATTTCCGGTGTAGCGGTGAAATGTGTAGATATCGGAAGGAACACCAGTGGCGAAGGCGACTTCCTGGACCAAGACTGACGCTGAGGCGCGAAAGCGTGGGG >GCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTCTGTTACGTCGGCTGTGAAAACTCGGGGCTCAACCCTGAGCCTGCAGTCGATACGGGCAGACTAGAGTTCGGCAGGGGAGACTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGGTCTCTGGGCCGATACTGACGCTGAGGAGCGAAAGCGTGGGG GCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTCTGTTACGTCGGCTGTGAAAACTCGGGGCTCAACCCTGAGCCTGCAGTCGATACGGGCAGACTAGAGTTCGGCAGGGGAGACTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGGTCTCTGGGCCGATACTGACGCTGAGGAGCGAAAGCGTGGGG >CCGAGCGTTGTCCGGAATCATTGGGCGTAAAGAGCGCGTAGGCGGCTATCCACGTCGGGTGTGAAAGCTCAGAGCTCAACTCTGAGAGGCCATTCGATACGGGATAGCTAGAGGCAGCTAGGGGAGAGTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGCTCTCTGGGGCTGATCTGACGCTGAGGCGCGAAAGCTGGGGG CCGAGCGTTGTCCGGAATCATTGGGCGTAAAGAGCGCGTAGGCGGCTATCCACGTCGGGTGTGAAAGCTCAGAGCTCAACTCTGAGAGGCCATTCGATACGGGATAGCTAGAGGCAGCTAGGGGAGAGTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGCTCTCTGGGGCTGATCTGACGCTGAGGCGCGAAAGCTGGGGG >GCAAGCGTTGTCCGGATTCATTGGGCGTAAAGAGCTCGTAGGCGGCTTGGCAAGTCGGGTGTGAAAACTTCAGGCTCAACCTGGAGATGCCACCCGAGACTGCTATGGCTAGAGTCCGGTAGGGGACCACGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTAGCGAAGGCGGTGGTCTGGGCCGGCACTGACGCTGAGGAGCGAAAGCGTGGGT GCAAGCGTTGTCCGGATTCATTGGGCGTAAAGAGCTCGTAGGCGGCTTGGCAAGTCGGGTGTGAAAACTTCAGGCTCAACCTGGAGATGCCACCCGAGACTGCTATGGCTAGAGTCCGGTAGGGGACCACGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTAGCGAAGGCGGTGGTCTGGGCCGGCACTGACGCTGAGGAGCGAAAGCGTGGGT >GCAAGCGTTGTCCGGAATCATTGGGCGTAAAGAGCGCGTAGGCGGTCCGGTAAGTCCATCGTGAAAGCCAAGGGCTCAACCCTTGGATGCCGGTGGATACTGTCGGGCTAGAGTCCGGAAGAGGCGAGTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAAGAACACCTATGGCGAAGGCAGCTCGCTGGGACGGAACTGACGCTGAGGCGCGAAAGCGTGGGG GCAAGCGTTGTCCGGAATCATTGGGCGTAAAGAGCGCGTAGGCGGTCCGGTAAGTCCATCGTGAAAGCCAAGGGCTCAACCCTTGGATGCCGGTGGATACTGTCGGGCTAGAGTCCGGAAGAGGCGAGTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAAGAACACCTATGGCGAAGGCAGCTCGCTGGGACGGAACTGACGCTGAGGCGCGAAAGCGTGGGG >GCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTTTGTCGCGTCGGCTGTGAAAACTCGGGGCTCAACTCTGAGCTTGCAGTCGATACGGGCAGACTAGAGTTCGGCAGGGGAGACTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGGTCTCTGGGCCGATACTGACGCTGAGGAGCGAAAGCGTGGGG GCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTTTGTCGCGTCGGCTGTGAAAACTCGGGGCTCAACTCTGAGCTTGCAGTCGATACGGGCAGACTAGAGTTCGGCAGGGGAGACTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGGTCTCTGGGCCGATACTGACGCTGAGGAGCGAAAGCGTGGGG >GCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTTTGTCGCGTCGGCTGTGAAAACTCGGGGCTCAACTCCGAGCTTGCAGTCGATACGGGCAGACTAGAGTTCGGCAGGGGAGACTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGGTCTCTGGGCCGAAACTGACGCTGAGGAGCGAAAGCGTGGGG GCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTTTGTCGCGTCGGCTGTGAAAACTCGGGGCTCAACTCCGAGCTTGCAGTCGATACGGGCAGACTAGAGTTCGGCAGGGGAGACTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGGTCTCTGGGCCGAAACTGACGCTGAGGAGCGAAAGCGTGGGG >GCGAGCGTTGTCCGGATTTATTGGGCGTAAAGAGCTCGTAGGCGGCCGTTCGCGTCGGATGTGAAAGCTCAAGGCTCAACCTTGAGAGGCCATTCGATACGGGACGGCTGGAGGCAGGCAGGGGAGAGTGGAATTCCTGGTGTAGCGGTGGAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGCTCTCTGGGCCTGTTCTGACGCTGAGGAGCGAAAGCTGGGGT GCGAGCGTTGTCCGGATTTATTGGGCGTAAAGAGCTCGTAGGCGGCCGTTCGCGTCGGATGTGAAAGCTCAAGGCTCAACCTTGAGAGGCCATTCGATACGGGACGGCTGGAGGCAGGCAGGGGAGAGTGGAATTCCTGGTGTAGCGGTGGAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGCTCTCTGGGCCTGTTCTGACGCTGAGGAGCGAAAGCTGGGGT >CCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTCCGTTAAGTCGGAAGTGAAATCTCAAGGCTCAACCTTGAAATTGCTTTCGATACTGGCGGACTTGAGGCAGGTAGGGGAAGGTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCAGTGGCGAAGGCGGCCTTCTGGGCCTGTACTGACGCTGAGGAGCGAAAGCGTGGGG CCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTCCGTTAAGTCGGAAGTGAAATCTCAAGGCTCAACCTTGAAATTGCTTTCGATACTGGCGGACTTGAGGCAGGTAGGGGAAGGTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCAGTGGCGAAGGCGGCCTTCTGGGCCTGTACTGACGCTGAGGAGCGAAAGCGTGGGG >GCAAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGCCTGTTAAGTCAGGGGTGAAAGGTTGCGGCTTAACCGCAGAATTGCCTTTGATACTGGCGGGCTTGAATAAAGTTGAGGTAGGCGGAATGTGGCAAGTAGCGGTGAAATGCATAGAGATGCCACAGAACACCGATTGCGAAGGCAGCTTACTAAGCTTTGATTGACGCTGAGGCACGAAAGCGTGGGG GCAAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGCCTGTTAAGTCAGGGGTGAAAGGTTGCGGCTTAACCGCAGAATTGCCTTTGATACTGGCGGGCTTGAATAAAGTTGAGGTAGGCGGAATGTGGCAAGTAGCGGTGAAATGCATAGAGATGCCACAGAACACCGATTGCGAAGGCAGCTTACTAAGCTTTGATTGACGCTGAGGCACGAAAGCGTGGGG >CCAAGCGTTGTCCGGATTTATTGGGCGTAAAGAGCTCGTAGGCGGCTGTTCGCGTCGGATGTGAAAGCTCAGAGCTCAACTCTGAGAGGCCATTCGATACGGGATAGCTAGAGGTAGGTAGGGGAGATCGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGATCTCTGGGCCTTACCTGACGCTGAGGAGCGAAAGCTGGGGG CCAAGCGTTGTCCGGATTTATTGGGCGTAAAGAGCTCGTAGGCGGCTGTTCGCGTCGGATGTGAAAGCTCAGAGCTCAACTCTGAGAGGCCATTCGATACGGGATAGCTAGAGGTAGGTAGGGGAGATCGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGATCTCTGGGCCTTACCTGACGCTGAGGAGCGAAAGCTGGGGG >GCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCGTGTAGGCGGCCTGGTAAGTCTGCTGTGAAACCTTGGGGCTCAACCCCAAGCGTGCAGTGGATACTGCTAGGCTAGAGGATGGTAGAGGCGAGTGGAATTCCCGGTGTAGCGGTGAAATGCGCAGATATCGGGAGGAACACCAGTAGCGAAGGCGGCTCGCTGGGCCATTCCTGACGCTGAGACGCGAAAGCTAGGGG GCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCGTGTAGGCGGCCTGGTAAGTCTGCTGTGAAACCTTGGGGCTCAACCCCAAGCGTGCAGTGGATACTGCTAGGCTAGAGGATGGTAGAGGCGAGTGGAATTCCCGGTGTAGCGGTGAAATGCGCAGATATCGGGAGGAACACCAGTAGCGAAGGCGGCTCGCTGGGCCATTCCTGACGCTGAGACGCGAAAGCTAGGGG >GCAAGCGTTGTCCGGATTTATTGGGCGTAAAGAGCTCGTAGGCGGCCTGGTGAGTCGGGTGTGAAAGCCCGAGGCTCAACCTCGGAATTGCATTCGATACTGCTGGGCTTGAGGCAGGTAGGGGAGGATGGAATTCCCGGTGTAGCGGTGGAATGCGCAGATATCGGGAGGAACACCTGCGGCGAAGGCGGTCCTCTGGGCCTGTCCTGACGCTGAGGAGCGAAAGCGTGGGG GCAAGCGTTGTCCGGATTTATTGGGCGTAAAGAGCTCGTAGGCGGCCTGGTGAGTCGGGTGTGAAAGCCCGAGGCTCAACCTCGGAATTGCATTCGATACTGCTGGGCTTGAGGCAGGTAGGGGAGGATGGAATTCCCGGTGTAGCGGTGGAATGCGCAGATATCGGGAGGAACACCTGCGGCGAAGGCGGTCCTCTGGGCCTGTCCTGACGCTGAGGAGCGAAAGCGTGGGG >GCGAGCGTTAATCGGAATTACTGGGCGTAAAGGGCGCGTAGGCGGTTGGGTAAGTCGGATGTGAAAGCCCTGGGCTTAACCTGGGAATGGCATTCGAGACTACCTATCTAGAGTCTGGTAGAGGGAAGTGGAATTTCCGGTGTAGCGGTGAAATGTGTAGATATCGGAAGGAACACCAGTGGCGAAGGCGACTTCCTGGACCAAGACTGACGCTGAGGCGCGAAAGCGTGGGG GCGAGCGTTAATCGGAATTACTGGGCGTAAAGGGCGCGTAGGCGGTTGGGTAAGTCGGATGTGAAAGCCCTGGGCTTAACCTGGGAATGGCATTCGAGACTACCTATCTAGAGTCTGGTAGAGGGAAGTGGAATTTCCGGTGTAGCGGTGAAATGTGTAGATATCGGAAGGAACACCAGTGGCGAAGGCGACTTCCTGGACCAAGACTGACGCTGAGGCGCGAAAGCGTGGGG >GCGAGCGTTGTCCGGAATCACTGGGCGTAAAGGGCGCGTAGGCGGCCTGATAAGTAGGGGGTGAAATCCTGCGGCTTAACCGCAGGGCTGCCTTCTAAACTGTCAGGCTCGAGCACAGTAGAGGCAGGTGGAATTCCCGGTGTAGCGGTGGAATGCGTAGAGATCGGGAAGAACATCAGTGGCGAAGGCGGCCTGCTGGGCTGTTGCTGACGCTGAGGCGCGACAGCGTGGGG GCGAGCGTTGTCCGGAATCACTGGGCGTAAAGGGCGCGTAGGCGGCCTGATAAGTAGGGGGTGAAATCCTGCGGCTTAACCGCAGGGCTGCCTTCTAAACTGTCAGGCTCGAGCACAGTAGAGGCAGGTGGAATTCCCGGTGTAGCGGTGGAATGCGTAGAGATCGGGAAGAACATCAGTGGCGAAGGCGGCCTGCTGGGCTGTTGCTGACGCTGAGGCGCGACAGCGTGGGG >GCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGCGGCTTTGCAAGTCGGGTGTGAAATCCCCAGGCTTAACCTGGGAACTGCATTCGAGACTGCATTGCTAGAGTATGGGAGAGGGAAGTGGAATTTCCGGTGTAGCGGTGAAATGCGTAGATATCGGAAGGAACATCAGTGGCGAAAGCGACTTCCTGGACCAATACTGACGCTCATGTGCGAAAGCGTGGGG GCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGCGGCTTTGCAAGTCGGGTGTGAAATCCCCAGGCTTAACCTGGGAACTGCATTCGAGACTGCATTGCTAGAGTATGGGAGAGGGAAGTGGAATTTCCGGTGTAGCGGTGAAATGCGTAGATATCGGAAGGAACATCAGTGGCGAAAGCGACTTCCTGGACCAATACTGACGCTCATGTGCGAAAGCGTGGGG q2-dada2-2021.8.0/q2_dada2/tests/data/expected/paired-override.tsv000066400000000000000000000117311411645176500243240ustar00rootroot00000000000000# Constructed from biom file #OTU ID BAQ2420.2 BAQ3473.2 BAQ3473.3 BAQ4166.2 BAQ4166.3 PAP130.2 YUN1005.3 YUN1242.1 YUN1242.3 YUN3153.3 GCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTCTGTCGCGTCGGCTGTGAAAACTCGGGGCTCAACTCCGAGCTTGCAGCCGATACGGGCAGACTAGAGTTCGGCAGGGGAGACTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGGTCTCTGGGCCGATACTGACGCTGAGGAGCGAAAGCGTGGGG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 31.0 0.0 0.0 GCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCGTGTAGGCGGTCTGGTAAGTCTGCCGTGAAAACCCGGGGCTCAACCCCGGGCGTGCGGTGGATACTGCCAGGCTAGAGGGTGGTAGAGGCGAGTGGAATTCCCGGTGTAGCGGTGAAATGCGCAGATATCGGGAGGAACACCAGTAGCGAAGGCGGCTCGCTGGGCCATTCCTGACGCTGAGACGCGAAAGCTAGGGG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 26.0 0.0 GCGAGCGTTAATCGGAATTACTGGGCGTAAAGGGCGCGTAGGTGGTTGGGTAAGTCGGGTGTGAAAGCCCTGGGCTTAACCTGGGAATGGCATTCGAGACTACCTATCTAGAGTCTGGTAGAGGGAAGTGGAATTTCCGGTGTAGCGGTGAAATGTGTAGATATCGGAAGGAACACCAGTGGCGAAGGCGACTTCCTGGACCAAGACTGACGCTGAGGCGCGAAAGCGTGGGG 21.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 GCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTCTGTTACGTCGGCTGTGAAAACTCGGGGCTCAACCCTGAGCCTGCAGTCGATACGGGCAGACTAGAGTTCGGCAGGGGAGACTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGGTCTCTGGGCCGATACTGACGCTGAGGAGCGAAAGCGTGGGG 0.0 0.0 0.0 0.0 0.0 0.0 21.0 0.0 0.0 0.0 CCGAGCGTTGTCCGGAATCATTGGGCGTAAAGAGCGCGTAGGCGGCTATCCACGTCGGGTGTGAAAGCTCAGAGCTCAACTCTGAGAGGCCATTCGATACGGGATAGCTAGAGGCAGCTAGGGGAGAGTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGCTCTCTGGGGCTGATCTGACGCTGAGGCGCGAAAGCTGGGGG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 20.0 0.0 GCAAGCGTTGTCCGGATTCATTGGGCGTAAAGAGCTCGTAGGCGGCTTGGCAAGTCGGGTGTGAAAACTTCAGGCTCAACCTGGAGATGCCACCCGAGACTGCTATGGCTAGAGTCCGGTAGGGGACCACGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTAGCGAAGGCGGTGGTCTGGGCCGGCACTGACGCTGAGGAGCGAAAGCGTGGGT 0.0 0.0 0.0 0.0 0.0 0.0 17.0 0.0 0.0 0.0 GCAAGCGTTGTCCGGAATCATTGGGCGTAAAGAGCGCGTAGGCGGTCCGGTAAGTCCATCGTGAAAGCCAAGGGCTCAACCCTTGGATGCCGGTGGATACTGTCGGGCTAGAGTCCGGAAGAGGCGAGTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAAGAACACCTATGGCGAAGGCAGCTCGCTGGGACGGAACTGACGCTGAGGCGCGAAAGCGTGGGG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 17.0 GCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTTTGTCGCGTCGGCTGTGAAAACTCGGGGCTCAACTCTGAGCTTGCAGTCGATACGGGCAGACTAGAGTTCGGCAGGGGAGACTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGGTCTCTGGGCCGATACTGACGCTGAGGAGCGAAAGCGTGGGG 0.0 0.0 0.0 0.0 0.0 0.0 15.0 0.0 0.0 0.0 GCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTTTGTCGCGTCGGCTGTGAAAACTCGGGGCTCAACTCCGAGCTTGCAGTCGATACGGGCAGACTAGAGTTCGGCAGGGGAGACTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGGTCTCTGGGCCGAAACTGACGCTGAGGAGCGAAAGCGTGGGG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 13.0 0.0 0.0 GCGAGCGTTGTCCGGATTTATTGGGCGTAAAGAGCTCGTAGGCGGCCGTTCGCGTCGGATGTGAAAGCTCAAGGCTCAACCTTGAGAGGCCATTCGATACGGGACGGCTGGAGGCAGGCAGGGGAGAGTGGAATTCCTGGTGTAGCGGTGGAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGCTCTCTGGGCCTGTTCTGACGCTGAGGAGCGAAAGCTGGGGT 0.0 0.0 0.0 0.0 0.0 0.0 12.0 0.0 0.0 0.0 CCAAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTCCGTTAAGTCGGAAGTGAAATCTCAAGGCTCAACCTTGAAATTGCTTTCGATACTGGCGGACTTGAGGCAGGTAGGGGAAGGTGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCAGTGGCGAAGGCGGCCTTCTGGGCCTGTACTGACGCTGAGGAGCGAAAGCGTGGGG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 12.0 0.0 0.0 GCAAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGCCTGTTAAGTCAGGGGTGAAAGGTTGCGGCTTAACCGCAGAATTGCCTTTGATACTGGCGGGCTTGAATAAAGTTGAGGTAGGCGGAATGTGGCAAGTAGCGGTGAAATGCATAGAGATGCCACAGAACACCGATTGCGAAGGCAGCTTACTAAGCTTTGATTGACGCTGAGGCACGAAAGCGTGGGG 0.0 0.0 11.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 CCAAGCGTTGTCCGGATTTATTGGGCGTAAAGAGCTCGTAGGCGGCTGTTCGCGTCGGATGTGAAAGCTCAGAGCTCAACTCTGAGAGGCCATTCGATACGGGATAGCTAGAGGTAGGTAGGGGAGATCGGAATTCCTGGTGTAGCGGTGAAATGCGCAGATATCAGGAGGAACACCGGTGGCGAAGGCGGATCTCTGGGCCTTACCTGACGCTGAGGAGCGAAAGCTGGGGG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 11.0 GCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCGTGTAGGCGGCCTGGTAAGTCTGCTGTGAAACCTTGGGGCTCAACCCCAAGCGTGCAGTGGATACTGCTAGGCTAGAGGATGGTAGAGGCGAGTGGAATTCCCGGTGTAGCGGTGAAATGCGCAGATATCGGGAGGAACACCAGTAGCGAAGGCGGCTCGCTGGGCCATTCCTGACGCTGAGACGCGAAAGCTAGGGG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 9.0 0.0 0.0 GCAAGCGTTGTCCGGATTTATTGGGCGTAAAGAGCTCGTAGGCGGCCTGGTGAGTCGGGTGTGAAAGCCCGAGGCTCAACCTCGGAATTGCATTCGATACTGCTGGGCTTGAGGCAGGTAGGGGAGGATGGAATTCCCGGTGTAGCGGTGGAATGCGCAGATATCGGGAGGAACACCTGCGGCGAAGGCGGTCCTCTGGGCCTGTCCTGACGCTGAGGAGCGAAAGCGTGGGG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 7.0 0.0 GCGAGCGTTAATCGGAATTACTGGGCGTAAAGGGCGCGTAGGCGGTTGGGTAAGTCGGATGTGAAAGCCCTGGGCTTAACCTGGGAATGGCATTCGAGACTACCTATCTAGAGTCTGGTAGAGGGAAGTGGAATTTCCGGTGTAGCGGTGAAATGTGTAGATATCGGAAGGAACACCAGTGGCGAAGGCGACTTCCTGGACCAAGACTGACGCTGAGGCGCGAAAGCGTGGGG 0.0 0.0 6.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 GCGAGCGTTGTCCGGAATCACTGGGCGTAAAGGGCGCGTAGGCGGCCTGATAAGTAGGGGGTGAAATCCTGCGGCTTAACCGCAGGGCTGCCTTCTAAACTGTCAGGCTCGAGCACAGTAGAGGCAGGTGGAATTCCCGGTGTAGCGGTGGAATGCGTAGAGATCGGGAAGAACATCAGTGGCGAAGGCGGCCTGCTGGGCTGTTGCTGACGCTGAGGCGCGACAGCGTGGGG 0.0 0.0 0.0 0.0 6.0 0.0 0.0 0.0 0.0 0.0 GCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGCGGCTTTGCAAGTCGGGTGTGAAATCCCCAGGCTTAACCTGGGAACTGCATTCGAGACTGCATTGCTAGAGTATGGGAGAGGGAAGTGGAATTTCCGGTGTAGCGGTGAAATGCGTAGATATCGGAAGGAACATCAGTGGCGAAAGCGACTTCCTGGACCAATACTGACGCTCATGTGCGAAAGCGTGGGG 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 0.0 0.0q2-dada2-2021.8.0/q2_dada2/tests/data/expected/pyro-default-stats.tsv000066400000000000000000000011311411645176500250030ustar00rootroot00000000000000sample-id input filtered percentage of input passed filter denoised non-chimeric percentage of input non-chimeric #q2:types numeric numeric numeric numeric numeric numeric L1S208 100 99 99 97 97 97 L1S257 100 98 98 91 91 91 L1S57 100 99 99 84 84 84 L1S76 100 99 99 96 96 96 L2S155 100 72 72 61 61 61 L2S175 100 75 75 67 67 67 L2S309 100 70 70 64 64 64 L2S357 100 68 68 57 57 57 L3S294 100 68 68 58 58 58 L3S313 100 77 77 67 67 67 L4S112 100 66 66 61 61 61 L4S63 100 76 76 63 63 63 L5S155 100 67 67 65 65 65 L5S174 100 64 64 53 53 53 L6S20 100 66 66 63 63 63 L6S68 100 53 53 42 42 42 q2-dada2-2021.8.0/q2_dada2/tests/data/expected/pyro-default.fasta000066400000000000000000000103401411645176500241330ustar00rootroot00000000000000>b32621bcd86cb99e846d8f6fee7c9ab8 TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGATGGATGTTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >a16679d5a10caa9753f171977552d920 TACGTAGGTGGCAAGCGTTATCCGGAATTATTGGGCGTAAAGCGCGCGTAGGCGGTTTTTTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGT >a7acc2abb505c3ee177a12e514d3b994 TACGTAGGGTGCGAGCGTTGTCCGGAATTACTGGGCGTAAAGAGCTCGTAGGCGGTTTGTCACGTCGTCTGTGAAATCCTAGGGCTTAACCCTGGACGTG >99647b51f775c8ddde8ed36a7d60dbcd TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGC >4e22aa3508b98813f52e1a12ffdb74ad TACGTAGGGTGCAAGCGTTGTCCGGAATTACTGGGCGTAAAGAGCTCGTAGGTGGTTTGTCACGTCGTCTGTGAAATTCCACAGCTTAACTGTGGGCGTG >3f6752aabcc291b67a063fb6492fd107 TACAGAGGGTGCGAGCGTTAATCGGATTTACTGGGCGTAAAGCGTGCGTAGGCGGCTTTTTAAGTCGGATGTGAAATCCCCGAGCTTAACTTGGGAATTG >51121722488d0c3da1388d1b117cd239 TACGGAGGGTGCGAGCGTTAATCGGAATAACTGGGCGTAAAGGGCACGCAGGCGGTGACTTAAGTGAGGTGTGAAAGCCCCGGGCTTAACCTGGGAATTG >d599ebe277afb0dfd4ad3c2176afc50e TACGTAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGAGCGCAGACGGTTACTTAAGCAGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >1016319c25196d73bdb3096d86a9df2f TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGTGGATTGTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >f18a9c8112372e2916a66a9778f3741b TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTG >84d0affc7243c7d6261f3a7d680b873f TACGTAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGAGCGCAGACGGTTACTTAAGCAGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >362be41f31fd26be95ae43a8769b91c0 TACGTATGGTGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGCAGGCGGTGCGGCAAGTCTGATGTGAAAGCCCGGGGCTCAACCCCGGTACTG >2bf1067d2cd4f09671e3ebe5500205ca TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGACGCTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >7251b9f4e6faa33b5861aad135b5ed42 TACGTATGGAGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGTAGACGGTCGGGCAAGTCTGATGTGAAAGCCCGGGGCTCAACCCCGGAACTG >aa9dfb40c4830edc6e2118b1e6980b22 TACGGAGGATTCAAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGTTTGATAAGTTAGAGGTGAAATTTCGGGGCTCAACCCTGAACGTG >e770b18ff141c9339068443982508f7c AACGTAGGTCACAAGCGTTGTCCGGAATTACTGGGTGTAAAGGGAGCGCAGGCGGGAGAACAAGTTGGAAGTGAAATCCATGGGCTCAACCCATGAACTG >2d3df7387323e2edcbbfcb6e56a02710 TACAGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGTGGTTTGTTAAGTTGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >5833416522de0cca717a1abf720079ac TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >41f67443ce8207be0c0a956c47823417 TACGTAGGTCCCGAGCGTTATCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGC >e772858b8c79efc10065bc1937f37d89 TACGTATGGAGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGTGTAGGTGGCCATGCAAGTCAGAAGTGAAAATCCGGGGCTCAACCCCGGAACTG >d2a8811affdca18fbfc7aa973a4d8ca1 TACGTAGGTGGCAAGCGTTGTCCGGAATTATTGGGCGTAAAGCGCGCGCAGGCGGATTGGTCAGTCTGTCTTAAAAGTTCGGGGCTTAACCCCGTGATGG >8139c4ac825dae48454fb4800fb87896 TACGTAGGGTGCGAGCGTTGTCCGGAATTACTGGGCGTAAAGGGCTCGTAGGTGGTTTGTCGCGTCGTCTGTGAAATTCCGGGGCTTAACTCCGGGCGTG >b50999f171fe6cee3c0493b50bb8926e TACGTAGGGGGCAAGCGTTATCCGGAATTACTGGGTGTAAAGGGTGCGTAGGTGGTATGGCAAGTCAGAAGTGAAAACCCAGGGCTTAACTCTGGGACTG >efff83850806ec2d1f98bdc32c9b5032 TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >b7418eacada1319fa8b6baaf6aff06cd TACGGAAGATGCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGC >385d596077ffe9ba4dcf4718d48df5a0 GACAGAGGATGCAAGCGTTATCCGGAATGATTGGGCGTAAAGCGTCTGTAGGTGGCTTTTCAAGTCCGCCGTCAAATCCCAGGGCTCAACCCTGGACAGG >4ff24fc8bbb1263940427ba778d2367b TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGATTGTTAAGTCAGCGGTTAAAGGGTGTGGCTCAACCATGCATTGC >80e2a0cdbbf0ae81a93b6ba374faeb14 TACGTATGTCACAAGCGTTATCCGGATTTATTGGGCGTAAAGCGCGTCTAGGTGGTTATGTAAGTCTGATGTGAAAATGCAGGGCTCAACTCTGTATTGC >5179f5cac20c1aa00377e4942bd7f837 TACGTAGGTGGCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCATGTAGGCGGCTTAATAAGTCGAGCGTGAAAATGCGGGGCTCAACCCCGTATGGC >707f5ba87a63b8071f5b7cad27aa9046 GACGGGGGGGGCAAGTGTTCTTCGGAATGACTGGGCGTAAAGGGCACGTAGGCGGTGAATCGGGTTGAAAGTGAAAGTCGCCAAAAAGTGGCGGAATGCT >ef9ecba707ad092c6ac7bef17d0db268 TACGTAGGGGGCTAGCGTTGTCCGGAATCACTGGGCGTAAAGGGTTCGCAGGCGGAAATGCAAGTCAGATGTAAAAGGCAGTAGCTTAACTACTGTAAGC >a7f92909575fd948fad074b72093771e TACGTAGGGCGCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTTGTAGGCGGTTTGTCGCGTCTGCTGTGAAAGGCCGGAGCTTAACTCCGTGTATT q2-dada2-2021.8.0/q2_dada2/tests/data/expected/pyro-default.tsv000066400000000000000000000063251411645176500236610ustar00rootroot00000000000000# Constructed from biom file #OTU ID L1S208 L1S257 L1S57 L1S76 L2S155 L2S175 L2S309 L2S357 L3S294 L3S313 L4S112 L4S63 L5S155 L5S174 L6S20 L6S68 b32621bcd86cb99e846d8f6fee7c9ab8 34.0 31.0 68.0 38.0 0.0 5.0 0.0 0.0 0.0 5.0 5.0 0.0 0.0 0.0 0.0 0.0 a16679d5a10caa9753f171977552d920 0.0 0.0 0.0 0.0 0.0 0.0 49.0 9.0 0.0 10.0 39.0 59.0 0.0 0.0 0.0 0.0 a7acc2abb505c3ee177a12e514d3b994 0.0 0.0 0.0 0.0 0.0 46.0 0.0 0.0 0.0 39.0 10.0 0.0 0.0 0.0 0.0 0.0 99647b51f775c8ddde8ed36a7d60dbcd 0.0 0.0 0.0 0.0 0.0 16.0 7.0 33.0 0.0 13.0 7.0 4.0 0.0 0.0 3.0 0.0 4e22aa3508b98813f52e1a12ffdb74ad 0.0 0.0 0.0 0.0 17.0 0.0 0.0 0.0 41.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3f6752aabcc291b67a063fb6492fd107 0.0 0.0 0.0 0.0 41.0 0.0 0.0 0.0 12.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 51121722488d0c3da1388d1b117cd239 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 13.0 3.0 6.0 29.0 d599ebe277afb0dfd4ad3c2176afc50e 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 42.0 9.0 1016319c25196d73bdb3096d86a9df2f 27.0 17.0 0.0 18.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 9.0 0.0 0.0 0.0 f18a9c8112372e2916a66a9778f3741b 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 33.0 0.0 0.0 84d0affc7243c7d6261f3a7d680b873f 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 27.0 2.0 0.0 0.0 362be41f31fd26be95ae43a8769b91c0 18.0 0.0 0.0 10.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2bf1067d2cd4f09671e3ebe5500205ca 10.0 19.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 7251b9f4e6faa33b5861aad135b5ed42 0.0 17.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 aa9dfb40c4830edc6e2118b1e6980b22 8.0 7.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 e770b18ff141c9339068443982508f7c 0.0 0.0 0.0 13.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2d3df7387323e2edcbbfcb6e56a02710 0.0 0.0 0.0 0.0 0.0 0.0 0.0 12.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5833416522de0cca717a1abf720079ac 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 12.0 0.0 41f67443ce8207be0c0a956c47823417 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 11.0 0.0 0.0 0.0 e772858b8c79efc10065bc1937f37d89 0.0 0.0 0.0 10.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 d2a8811affdca18fbfc7aa973a4d8ca1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 10.0 0.0 0.0 8139c4ac825dae48454fb4800fb87896 0.0 0.0 0.0 0.0 0.0 0.0 8.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 b50999f171fe6cee3c0493b50bb8926e 0.0 0.0 7.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 efff83850806ec2d1f98bdc32c9b5032 0.0 0.0 0.0 7.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 b7418eacada1319fa8b6baaf6aff06cd 0.0 0.0 6.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 385d596077ffe9ba4dcf4718d48df5a0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 4ff24fc8bbb1263940427ba778d2367b 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5.0 0.0 0.0 80e2a0cdbbf0ae81a93b6ba374faeb14 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 4.0 5179f5cac20c1aa00377e4942bd7f837 0.0 0.0 3.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 707f5ba87a63b8071f5b7cad27aa9046 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ef9ecba707ad092c6ac7bef17d0db268 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 a7f92909575fd948fad074b72093771e 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 q2-dada2-2021.8.0/q2_dada2/tests/data/expected/single-default-stats.tsv000066400000000000000000000011311411645176500252730ustar00rootroot00000000000000sample-id input filtered percentage of input passed filter denoised non-chimeric percentage of input non-chimeric #q2:types numeric numeric numeric numeric numeric numeric L1S208 100 99 99 94 94 94 L1S257 100 98 98 90 90 90 L1S57 100 99 99 89 89 89 L1S76 100 99 99 93 93 93 L2S155 100 72 72 58 58 58 L2S175 100 75 75 65 65 65 L2S309 100 70 70 62 62 62 L2S357 100 68 68 51 51 51 L3S294 100 68 68 54 54 54 L3S313 100 77 77 68 68 68 L4S112 100 66 66 59 59 59 L4S63 100 76 76 62 62 62 L5S155 100 67 67 60 60 60 L5S174 100 64 64 51 51 51 L6S20 100 66 66 56 56 56 L6S68 100 53 53 44 44 44 q2-dada2-2021.8.0/q2_dada2/tests/data/expected/single-default.fasta000066400000000000000000000111651411645176500244310ustar00rootroot00000000000000>b32621bcd86cb99e846d8f6fee7c9ab8 TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGATGGATGTTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >a16679d5a10caa9753f171977552d920 TACGTAGGTGGCAAGCGTTATCCGGAATTATTGGGCGTAAAGCGCGCGTAGGCGGTTTTTTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGT >a7acc2abb505c3ee177a12e514d3b994 TACGTAGGGTGCGAGCGTTGTCCGGAATTACTGGGCGTAAAGAGCTCGTAGGCGGTTTGTCACGTCGTCTGTGAAATCCTAGGGCTTAACCCTGGACGTG >99647b51f775c8ddde8ed36a7d60dbcd TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGC >1016319c25196d73bdb3096d86a9df2f TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGTGGATTGTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >4e22aa3508b98813f52e1a12ffdb74ad TACGTAGGGTGCAAGCGTTGTCCGGAATTACTGGGCGTAAAGAGCTCGTAGGTGGTTTGTCACGTCGTCTGTGAAATTCCACAGCTTAACTGTGGGCGTG >3f6752aabcc291b67a063fb6492fd107 TACAGAGGGTGCGAGCGTTAATCGGATTTACTGGGCGTAAAGCGTGCGTAGGCGGCTTTTTAAGTCGGATGTGAAATCCCCGAGCTTAACTTGGGAATTG >d599ebe277afb0dfd4ad3c2176afc50e TACGTAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGAGCGCAGACGGTTACTTAAGCAGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >51121722488d0c3da1388d1b117cd239 TACGGAGGGTGCGAGCGTTAATCGGAATAACTGGGCGTAAAGGGCACGCAGGCGGTGACTTAAGTGAGGTGTGAAAGCCCCGGGCTTAACCTGGGAATTG >f18a9c8112372e2916a66a9778f3741b TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTG >362be41f31fd26be95ae43a8769b91c0 TACGTATGGTGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGCAGGCGGTGCGGCAAGTCTGATGTGAAAGCCCGGGGCTCAACCCCGGTACTG >2bf1067d2cd4f09671e3ebe5500205ca TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGACGCTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >84d0affc7243c7d6261f3a7d680b873f TACGTAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGAGCGCAGACGGTTACTTAAGCAGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >2d3df7387323e2edcbbfcb6e56a02710 TACAGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGTGGTTTGTTAAGTTGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >5833416522de0cca717a1abf720079ac TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >7251b9f4e6faa33b5861aad135b5ed42 TACGTATGGAGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGTAGACGGTCGGGCAAGTCTGATGTGAAAGCCCGGGGCTCAACCCCGGAACTG >aa9dfb40c4830edc6e2118b1e6980b22 TACGGAGGATTCAAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGTTTGATAAGTTAGAGGTGAAATTTCGGGGCTCAACCCTGAACGTG >e770b18ff141c9339068443982508f7c AACGTAGGTCACAAGCGTTGTCCGGAATTACTGGGTGTAAAGGGAGCGCAGGCGGGAGAACAAGTTGGAAGTGAAATCCATGGGCTCAACCCATGAACTG >41f67443ce8207be0c0a956c47823417 TACGTAGGTCCCGAGCGTTATCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGC >e772858b8c79efc10065bc1937f37d89 TACGTATGGAGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGTGTAGGTGGCCATGCAAGTCAGAAGTGAAAATCCGGGGCTCAACCCCGGAACTG >d2a8811affdca18fbfc7aa973a4d8ca1 TACGTAGGTGGCAAGCGTTGTCCGGAATTATTGGGCGTAAAGCGCGCGCAGGCGGATTGGTCAGTCTGTCTTAAAAGTTCGGGGCTTAACCCCGTGATGG >b50999f171fe6cee3c0493b50bb8926e TACGTAGGGGGCAAGCGTTATCCGGAATTACTGGGTGTAAAGGGTGCGTAGGTGGTATGGCAAGTCAGAAGTGAAAACCCAGGGCTTAACTCTGGGACTG >efff83850806ec2d1f98bdc32c9b5032 TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >b7418eacada1319fa8b6baaf6aff06cd TACGGAAGATGCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGC >8139c4ac825dae48454fb4800fb87896 TACGTAGGGTGCGAGCGTTGTCCGGAATTACTGGGCGTAAAGGGCTCGTAGGTGGTTTGTCGCGTCGTCTGTGAAATTCCGGGGCTTAACTCCGGGCGTG >5179f5cac20c1aa00377e4942bd7f837 TACGTAGGTGGCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCATGTAGGCGGCTTAATAAGTCGAGCGTGAAAATGCGGGGCTCAACCCCGTATGGC >707f5ba87a63b8071f5b7cad27aa9046 GACGGGGGGGGCAAGTGTTCTTCGGAATGACTGGGCGTAAAGGGCACGTAGGCGGTGAATCGGGTTGAAAGTGAAAGTCGCCAAAAAGTGGCGGAATGCT >385d596077ffe9ba4dcf4718d48df5a0 GACAGAGGATGCAAGCGTTATCCGGAATGATTGGGCGTAAAGCGTCTGTAGGTGGCTTTTCAAGTCCGCCGTCAAATCCCAGGGCTCAACCCTGGACAGG >4ff24fc8bbb1263940427ba778d2367b TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGATTGTTAAGTCAGCGGTTAAAGGGTGTGGCTCAACCATGCATTGC >80e2a0cdbbf0ae81a93b6ba374faeb14 TACGTATGTCACAAGCGTTATCCGGATTTATTGGGCGTAAAGCGCGTCTAGGTGGTTATGTAAGTCTGATGTGAAAATGCAGGGCTCAACTCTGTATTGC >ef9ecba707ad092c6ac7bef17d0db268 TACGTAGGGGGCTAGCGTTGTCCGGAATCACTGGGCGTAAAGGGTTCGCAGGCGGAAATGCAAGTCAGATGTAAAAGGCAGTAGCTTAACTACTGTAAGC >a7f92909575fd948fad074b72093771e TACGTAGGGCGCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTTGTAGGCGGTTTGTCGCGTCTGCTGTGAAAGGCCGGAGCTTAACTCCGTGTATT >9d07a6ff18a64d9e41e70bb17e9e02c7 TACGTAGGTGGCGAGCGTTATCCGGAATTATTGGGCGTAAAGAGGGAGCAGGCGGCACTAAGGGTCTGTGGTGAAAGATCGAAGCTTAACTTCGGTAAGC >857b4205ec3f91149633495d70354521 TACGTAAGGACCGAGCGTTGTCCGGAATCATTGGGCGTAAAGGGTACGTAGGCGGCTAGAAAAGTTAGAAGTCAAAGGCTATAGCTCAACTATAGTAAGC >4629fbb5dde5f8ee07c2259d2887a8d4 TACGGAGGATGCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGCCTGTTAAGTCAGCGGTGAAATCTAGGAGCTTAACTCCTAAATTG q2-dada2-2021.8.0/q2_dada2/tests/data/expected/single-default.tsv000066400000000000000000000067711411645176500241560ustar00rootroot00000000000000# Constructed from biom file #OTU ID L1S208 L1S257 L1S57 L1S76 L2S155 L2S175 L2S309 L2S357 L3S294 L3S313 L4S112 L4S63 L5S155 L5S174 L6S20 L6S68 b32621bcd86cb99e846d8f6fee7c9ab8 30.0 28.0 60.0 35.0 0.0 5.0 0.0 0.0 0.0 5.0 5.0 0.0 0.0 0.0 0.0 0.0 a16679d5a10caa9753f171977552d920 0.0 0.0 0.0 0.0 0.0 0.0 49.0 9.0 0.0 10.0 31.0 58.0 0.0 0.0 0.0 0.0 a7acc2abb505c3ee177a12e514d3b994 0.0 0.0 0.0 0.0 0.0 44.0 0.0 0.0 0.0 38.0 10.0 0.0 0.0 0.0 0.0 0.0 99647b51f775c8ddde8ed36a7d60dbcd 0.0 0.0 0.0 0.0 4.0 16.0 7.0 27.0 0.0 13.0 7.0 4.0 0.0 0.0 3.0 4.0 1016319c25196d73bdb3096d86a9df2f 27.0 17.0 11.0 18.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 9.0 0.0 0.0 0.0 4e22aa3508b98813f52e1a12ffdb74ad 0.0 0.0 0.0 0.0 17.0 0.0 0.0 0.0 35.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3f6752aabcc291b67a063fb6492fd107 0.0 0.0 0.0 0.0 34.0 0.0 0.0 0.0 12.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 d599ebe277afb0dfd4ad3c2176afc50e 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 35.0 9.0 51121722488d0c3da1388d1b117cd239 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 13.0 3.0 6.0 16.0 f18a9c8112372e2916a66a9778f3741b 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 31.0 0.0 3.0 362be41f31fd26be95ae43a8769b91c0 19.0 0.0 0.0 10.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2bf1067d2cd4f09671e3ebe5500205ca 10.0 19.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 84d0affc7243c7d6261f3a7d680b873f 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 22.0 2.0 0.0 0.0 2d3df7387323e2edcbbfcb6e56a02710 0.0 0.0 0.0 0.0 0.0 0.0 0.0 12.0 0.0 0.0 6.0 0.0 0.0 0.0 0.0 0.0 5833416522de0cca717a1abf720079ac 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 12.0 6.0 7251b9f4e6faa33b5861aad135b5ed42 0.0 17.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 aa9dfb40c4830edc6e2118b1e6980b22 8.0 7.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 e770b18ff141c9339068443982508f7c 0.0 0.0 0.0 13.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 41f67443ce8207be0c0a956c47823417 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 11.0 0.0 0.0 0.0 e772858b8c79efc10065bc1937f37d89 0.0 0.0 0.0 10.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 d2a8811affdca18fbfc7aa973a4d8ca1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 10.0 0.0 0.0 b50999f171fe6cee3c0493b50bb8926e 0.0 0.0 7.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 efff83850806ec2d1f98bdc32c9b5032 0.0 0.0 0.0 7.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 b7418eacada1319fa8b6baaf6aff06cd 0.0 0.0 6.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 8139c4ac825dae48454fb4800fb87896 0.0 0.0 0.0 0.0 0.0 0.0 6.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5179f5cac20c1aa00377e4942bd7f837 0.0 2.0 3.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 707f5ba87a63b8071f5b7cad27aa9046 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 2.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 385d596077ffe9ba4dcf4718d48df5a0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 4ff24fc8bbb1263940427ba778d2367b 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5.0 0.0 0.0 80e2a0cdbbf0ae81a93b6ba374faeb14 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 4.0 ef9ecba707ad092c6ac7bef17d0db268 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 a7f92909575fd948fad074b72093771e 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 9d07a6ff18a64d9e41e70bb17e9e02c7 0.0 0.0 2.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 857b4205ec3f91149633495d70354521 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 0.0 0.0 0.0 0.0 0.0 0.0 4629fbb5dde5f8ee07c2259d2887a8d4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 q2-dada2-2021.8.0/q2_dada2/tests/data/expected/single-override-stats.tsv000066400000000000000000000011411411645176500254670ustar00rootroot00000000000000sample-id input filtered percentage of input passed filter denoised non-chimeric percentage of input non-chimeric #q2:types numeric numeric numeric numeric numeric numeric L1S208 100 100 100 96 96 96 L1S257 100 100 100 89 89 89 L1S57 100 100 100 86 86 86 L1S76 100 100 100 97 97 97 L2S155 100 87 87 70 70 70 L2S175 100 92 92 87 87 87 L2S309 100 93 93 83 83 83 L2S357 100 96 96 87 87 87 L3S294 100 90 90 75 75 75 L3S313 100 94 94 76 76 76 L4S112 100 97 97 76 76 76 L4S63 100 96 96 83 83 83 L5S155 100 94 94 81 81 81 L5S174 100 96 96 79 79 79 L6S20 100 99 99 80 80 80 L6S68 100 98 98 80 80 80 q2-dada2-2021.8.0/q2_dada2/tests/data/expected/single-override.fasta000066400000000000000000000165171411645176500246320ustar00rootroot00000000000000>GCAAGCGTTATCCGGAATTATTGGGCGTAAAGCGCGCGTAGGCGGTTTTTTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGT GCAAGCGTTATCCGGAATTATTGGGCGTAAAGCGCGCGTAGGCGGTTTTTTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGT >CCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGATGGATGTTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG CCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGATGGATGTTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >CCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGC CCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGC >CCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGTGGATTGTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG CCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGTGGATTGTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >GCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGAGCGCAGACGGTTACTTAAGCAGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG GCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGAGCGCAGACGGTTACTTAAGCAGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >GCAAGCGTTGTCCGGAATTACTGGGCGTAAAGAGCTCGTAGGTGGTTTGTCACGTCGTCTGTGAAATTCCACAGCTTAACTGTGGGCGTG GCAAGCGTTGTCCGGAATTACTGGGCGTAAAGAGCTCGTAGGTGGTTTGTCACGTCGTCTGTGAAATTCCACAGCTTAACTGTGGGCGTG >GCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGCAGGCGGTGCGGCAAGTCTGATGTGAAAGCCCGGGGCTCAACCCCGGTACTG GCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGCAGGCGGTGCGGCAAGTCTGATGTGAAAGCCCGGGGCTCAACCCCGGTACTG >GCGAGCGTTGTCCGGAATTACTGGGCGTAAAGAGCTCGTAGGCGGTTTGTCACGTCGTCTGTGAAATCCTAGGGCTTAACCCTGGACGTG GCGAGCGTTGTCCGGAATTACTGGGCGTAAAGAGCTCGTAGGCGGTTTGTCACGTCGTCTGTGAAATCCTAGGGCTTAACCCTGGACGTG >GCGAGCGTTAATCGGATTTACTGGGCGTAAAGCGTGCGTAGGCGGCTTTTTAAGTCGGATGTGAAATCCCCGAGCTTAACTTGGGAATTG GCGAGCGTTAATCGGATTTACTGGGCGTAAAGCGTGCGTAGGCGGCTTTTTAAGTCGGATGTGAAATCCCCGAGCTTAACTTGGGAATTG >CCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTG CCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTG >GCGAGCGTTAATCGGAATAACTGGGCGTAAAGGGCACGCAGGCGGTGACTTAAGTGAGGTGTGAAAGCCCCGGGCTTAACCTGGGAATTG GCGAGCGTTAATCGGAATAACTGGGCGTAAAGGGCACGCAGGCGGTGACTTAAGTGAGGTGTGAAAGCCCCGGGCTTAACCTGGGAATTG >GCAAGCGTTATCCGGAATGATTGGGCGTAAAGCGTCTGTAGGTGGCTTTTTAAGTCCGCCGTCAAATCCCAGGGCTCAACCCTGGACAGG GCAAGCGTTATCCGGAATGATTGGGCGTAAAGCGTCTGTAGGTGGCTTTTTAAGTCCGCCGTCAAATCCCAGGGCTCAACCCTGGACAGG >GCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGAGCGCAGACGGTTACTTAAGCAGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG GCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGAGCGCAGACGGTTACTTAAGCAGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >CCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGACGCTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG CCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGACGCTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >GCGAGCGTTGTCCGGAATTACTGGGCGTAAAGGGCTCGTAGGTGGTTTGTCGCGTCGTCTGTGAAATTCCGGGGCTTAACTCCGGGCGTG GCGAGCGTTGTCCGGAATTACTGGGCGTAAAGGGCTCGTAGGTGGTTTGTCGCGTCGTCTGTGAAATTCCGGGGCTTAACTCCGGGCGTG >CCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG CCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >GCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGTAGACGGTCGGGCAAGTCTGATGTGAAAGCCCGGGGCTCAACCCCGGAACTG GCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGTAGACGGTCGGGCAAGTCTGATGTGAAAGCCCGGGGCTCAACCCCGGAACTG >CCGAGCGTTATCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGC CCGAGCGTTATCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGC >TCAAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGTTTGATAAGTTAGAGGTGAAATTTCGGGGCTCAACCCTGAACGTG TCAAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGTTTGATAAGTTAGAGGTGAAATTTCGGGGCTCAACCCTGAACGTG >ACAAGCGTTGTCCGGAATTACTGGGTGTAAAGGGAGCGCAGGCGGGAGAACAAGTTGGAAGTGAAATCCATGGGCTCAACCCATGAACTG ACAAGCGTTGTCCGGAATTACTGGGTGTAAAGGGAGCGCAGGCGGGAGAACAAGTTGGAAGTGAAATCCATGGGCTCAACCCATGAACTG >GCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGTGGTTTGTTAAGTTGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG GCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGTGGTTTGTTAAGTTGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >GCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTTGTAGGCGGTTTGTCGCGTCTGCTGTGAAAGGCCGGAGCTTAACTCCGTGTATT GCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTTGTAGGCGGTTTGTCGCGTCTGCTGTGAAAGGCCGGAGCTTAACTCCGTGTATT >GCAAGCGTTGTCCGGAATTATTGGGCGTAAAGCGCGCGCAGGCGGATTGGTCAGTCTGTCTTAAAAGTTCGGGGCTTAACCCCGTGATGG GCAAGCGTTGTCCGGAATTATTGGGCGTAAAGCGCGCGCAGGCGGATTGGTCAGTCTGTCTTAAAAGTTCGGGGCTTAACCCCGTGATGG >GCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTG GCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >GCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGTGTAGGTGGCCATGCAAGTCAGAAGTGAAAATCCGGGGCTCAACCCCGGAACTG GCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGTGTAGGTGGCCATGCAAGTCAGAAGTGAAAATCCGGGGCTCAACCCCGGAACTG >CCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGTGGTTTATTAAGTCTGGTGTAAAAGGCAGTGGCTCAACCATTGTATGC CCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGTGGTTTATTAAGTCTGGTGTAAAAGGCAGTGGCTCAACCATTGTATGC >GCAAGCGTTATCCGGAATGATTGGGCGTAAAGCGTCTGTAGGTGGCTTTTCAAGTCCGCCGTCAAATCCCAGGGCTCAACCCTGGACAGG GCAAGCGTTATCCGGAATGATTGGGCGTAAAGCGTCTGTAGGTGGCTTTTCAAGTCCGCCGTCAAATCCCAGGGCTCAACCCTGGACAGG >ACAAGCGTTATCCGGATTTATTGGGCGTAAAGCGCGTCTAGGTGGTTATGTAAGTCTGATGTGAAAATGCAGGGCTCAACTCTGTATTGC ACAAGCGTTATCCGGATTTATTGGGCGTAAAGCGCGTCTAGGTGGTTATGTAAGTCTGATGTGAAAATGCAGGGCTCAACTCTGTATTGC >GCGAGCGTTGTCCGGAATTACTGGGCGTAAAGAGCTCGTAGGTGGTTTGTCGCGTCGTCTGTGAAATTCCGGGGCTTAACTCCGGGCGTG GCGAGCGTTGTCCGGAATTACTGGGCGTAAAGAGCTCGTAGGTGGTTTGTCGCGTCGTCTGTGAAATTCCGGGGCTTAACTCCGGGCGTG >GCGAGCGTTGTCCGGAATTATTGGGCGTAAAGGGCTTGTAGGCGGTTTGTCGCGTCTGCCGTGAAATCCTCTGGCTTAACTGGGGGCGTG GCGAGCGTTGTCCGGAATTATTGGGCGTAAAGGGCTTGTAGGCGGTTTGTCGCGTCTGCCGTGAAATCCTCTGGCTTAACTGGGGGCGTG >GCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGC GCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGC >GCTAGCGTTGTCCGGAATCACTGGGCGTAAAGGGTTCGCAGGCGGAAATGCAAGTCAGATGTAAAAGGCAGTAGCTTAACTACTGTAAGC GCTAGCGTTGTCCGGAATCACTGGGCGTAAAGGGTTCGCAGGCGGAAATGCAAGTCAGATGTAAAAGGCAGTAGCTTAACTACTGTAAGC >CCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGATTGTTAAGTCAGCGGTTAAAGGGTGTGGCTCAACCATGCATTGC CCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGATTGTTAAGTCAGCGGTTAAAGGGTGTGGCTCAACCATGCATTGC >CCGAGCGTTGTCCGGAATCATTGGGCGTAAAGGGTACGTAGGCGGCTAGAAAAGTTAGAAGTCAAAGGCTATAGCTCAACTATAGTAAGC CCGAGCGTTGTCCGGAATCATTGGGCGTAAAGGGTACGTAGGCGGCTAGAAAAGTTAGAAGTCAAAGGCTATAGCTCAACTATAGTAAGC >GCGAGCGTTATCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTTTGTCGCGTCTGTCGTGAAAGTCCGGGGCTTAACCCCGGATCTG GCGAGCGTTATCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTTTGTCGCGTCTGTCGTGAAAGTCCGGGGCTTAACCCCGGATCTG >GCAAGCGTTATCCGGAATTACTGGGTGTAAAGGGTGCGTAGGTGGTATGGCAAGTCAGAAGTGAAAACCCAGGGCTTAACTCTGGGACTG GCAAGCGTTATCCGGAATTACTGGGTGTAAAGGGTGCGTAGGTGGTATGGCAAGTCAGAAGTGAAAACCCAGGGCTTAACTCTGGGACTG >GCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCATGTAGGCGGCTTAATAAGTCGAGCGTGAAAATGCGGGGCTCAACCCCGTATGGC GCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCATGTAGGCGGCTTAATAAGTCGAGCGTGAAAATGCGGGGCTCAACCCCGTATGGC >GCAAGTGTTCTTCGGAATGACTGGGCGTAAAGGGCACGTAGGCGGTGAATCGGGTTGAAAGTGAAAGTCGCCAAAAAGTGGCGGAATGCT GCAAGTGTTCTTCGGAATGACTGGGCGTAAAGGGCACGTAGGCGGTGAATCGGGTTGAAAGTGAAAGTCGCCAAAAAGTGGCGGAATGCT >GCGAGCGTTATCCGGAATTATTGGGCTTAAAGGGCATCTAGGCGGCAGAACAAGTTGAAGGTGAAAAGCTGTGGCTCAACCATAGTCTTG GCGAGCGTTATCCGGAATTATTGGGCTTAAAGGGCATCTAGGCGGCAGAACAAGTTGAAGGTGAAAAGCTGTGGCTCAACCATAGTCTTG >GCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGCCTGTTAAGTCAGCGGTGAAATCTAGGAGCTTAACTCCTAAATTG GCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGCCTGTTAAGTCAGCGGTGAAATCTAGGAGCTTAACTCCTAAATTG >GCGAGCGTTATCCGGAATTATTGGGCGTAAAGAGGGAGCAGGCGGCACTAAGGGTCTGTGGTGAAAGATCGAAGCTTAACTTCGGTAAGC GCGAGCGTTATCCGGAATTATTGGGCGTAAAGAGGGAGCAGGCGGCACTAAGGGTCTGTGGTGAAAGATCGAAGCTTAACTTCGGTAAGC q2-dada2-2021.8.0/q2_dada2/tests/data/expected/single-override.tsv000066400000000000000000000146151411645176500243450ustar00rootroot00000000000000# Constructed from biom file #OTU ID L1S208 L1S257 L1S57 L1S76 L2S155 L2S175 L2S309 L2S357 L3S294 L3S313 L4S112 L4S63 L5S155 L5S174 L6S20 L6S68 GCAAGCGTTATCCGGAATTATTGGGCGTAAAGCGCGCGTAGGCGGTTTTTTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGT 0.0 0.0 0.0 0.0 6.0 13.0 69.0 57.0 0.0 14.0 22.0 54.0 0.0 0.0 0.0 7.0 CCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGATGGATGTTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG 29.0 27.0 46.0 35.0 0.0 6.0 0.0 0.0 4.0 5.0 5.0 0.0 0.0 0.0 0.0 0.0 CCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGC 0.0 0.0 0.0 0.0 5.0 19.0 5.0 11.0 0.0 38.0 7.0 4.0 0.0 0.0 6.0 6.0 CCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGTGGATTGTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG 27.0 17.0 0.0 18.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 11.0 0.0 0.0 0.0 GCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGAGCGCAGACGGTTACTTAAGCAGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 6.0 5.0 0.0 0.0 43.0 14.0 GCAAGCGTTGTCCGGAATTACTGGGCGTAAAGAGCTCGTAGGTGGTTTGTCACGTCGTCTGTGAAATTCCACAGCTTAACTGTGGGCGTG 0.0 0.0 0.0 0.0 18.0 0.0 0.0 0.0 46.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 GCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGCAGGCGGTGCGGCAAGTCTGATGTGAAAGCCCGGGGCTCAACCCCGGTACTG 22.0 0.0 25.0 11.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 GCGAGCGTTGTCCGGAATTACTGGGCGTAAAGAGCTCGTAGGCGGTTTGTCACGTCGTCTGTGAAATCCTAGGGCTTAACCCTGGACGTG 0.0 0.0 0.0 0.0 0.0 38.0 0.0 0.0 0.0 10.0 9.0 0.0 0.0 0.0 0.0 0.0 GCGAGCGTTAATCGGATTTACTGGGCGTAAAGCGTGCGTAGGCGGCTTTTTAAGTCGGATGTGAAATCCCCGAGCTTAACTTGGGAATTG 0.0 0.0 0.0 0.0 38.0 0.0 0.0 0.0 13.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 CCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 42.0 0.0 3.0 GCGAGCGTTAATCGGAATAACTGGGCGTAAAGGGCACGCAGGCGGTGACTTAAGTGAGGTGTGAAAGCCCCGGGCTTAACCTGGGAATTG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 15.0 3.0 6.0 23.0 GCAAGCGTTATCCGGAATGATTGGGCGTAAAGCGTCTGTAGGTGGCTTTTTAAGTCCGCCGTCAAATCCCAGGGCTCAACCCTGGACAGG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 27.0 8.0 3.0 2.0 3.0 0.0 GCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGAGCGCAGACGGTTACTTAAGCAGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 33.0 2.0 0.0 0.0 CCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGACGCTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG 10.0 19.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 GCGAGCGTTGTCCGGAATTACTGGGCGTAAAGGGCTCGTAGGTGGTTTGTCGCGTCGTCTGTGAAATTCCGGGGCTTAACTCCGGGCGTG 0.0 0.0 0.0 0.0 0.0 6.0 6.0 0.0 0.0 9.0 0.0 0.0 0.0 0.0 0.0 0.0 CCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 13.0 7.0 GCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGTAGACGGTCGGGCAAGTCTGATGTGAAAGCCCGGGGCTCAACCCCGGAACTG 0.0 18.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 CCGAGCGTTATCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGC 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 12.0 6.0 0.0 0.0 TCAAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGTTTGATAAGTTAGAGGTGAAATTTCGGGGCTCAACCCTGAACGTG 8.0 8.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ACAAGCGTTGTCCGGAATTACTGGGTGTAAAGGGAGCGCAGGCGGGAGAACAAGTTGGAAGTGAAATCCATGGGCTCAACCCATGAACTG 0.0 0.0 0.0 13.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 GCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGTGGTTTGTTAAGTTGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 13.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 GCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTTGTAGGCGGTTTGTCGCGTCTGCTGTGAAAGGCCGGAGCTTAACTCCGTGTATT 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 9.0 4.0 0.0 0.0 0.0 GCAAGCGTTGTCCGGAATTATTGGGCGTAAAGCGCGCGCAGGCGGATTGGTCAGTCTGTCTTAAAAGTTCGGGGCTTAACCCCGTGATGG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 11.0 0.0 0.0 GCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTG 0.0 0.0 0.0 10.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 GCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGTGTAGGTGGCCATGCAAGTCAGAAGTGAAAATCCGGGGCTCAACCCCGGAACTG 0.0 0.0 0.0 10.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 CCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGTGGTTTATTAAGTCTGGTGTAAAAGGCAGTGGCTCAACCATTGTATGC 0.0 0.0 0.0 0.0 0.0 0.0 3.0 3.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 4.0 GCAAGCGTTATCCGGAATGATTGGGCGTAAAGCGTCTGTAGGTGGCTTTTCAAGTCCGCCGTCAAATCCCAGGGCTCAACCCTGGACAGG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 9.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ACAAGCGTTATCCGGATTTATTGGGCGTAAAGCGCGTCTAGGTGGTTATGTAAGTCTGATGTGAAAATGCAGGGCTCAACTCTGTATTGC 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 4.0 5.0 GCGAGCGTTGTCCGGAATTACTGGGCGTAAAGAGCTCGTAGGTGGTTTGTCGCGTCGTCTGTGAAATTCCGGGGCTTAACTCCGGGCGTG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 8.0 GCGAGCGTTGTCCGGAATTATTGGGCGTAAAGGGCTTGTAGGCGGTTTGTCGCGTCTGCCGTGAAATCCTCTGGCTTAACTGGGGGCGTG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 7.0 0.0 0.0 GCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGC 0.0 0.0 6.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 GCTAGCGTTGTCCGGAATCACTGGGCGTAAAGGGTTCGCAGGCGGAAATGCAAGTCAGATGTAAAAGGCAGTAGCTTAACTACTGTAAGC 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 3.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 CCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGATTGTTAAGTCAGCGGTTAAAGGGTGTGGCTCAACCATGCATTGC 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 6.0 0.0 0.0 CCGAGCGTTGTCCGGAATCATTGGGCGTAAAGGGTACGTAGGCGGCTAGAAAAGTTAGAAGTCAAAGGCTATAGCTCAACTATAGTAAGC 0.0 0.0 0.0 0.0 0.0 5.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 GCGAGCGTTATCCGGAATTATTGGGCGTAAAGAGCTCGTAGGCGGTTTGTCGCGTCTGTCGTGAAAGTCCGGGGCTTAACCCCGGATCTG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5.0 0.0 GCAAGCGTTATCCGGAATTACTGGGTGTAAAGGGTGCGTAGGTGGTATGGCAAGTCAGAAGTGAAAACCCAGGGCTTAACTCTGGGACTG 0.0 0.0 4.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 GCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCATGTAGGCGGCTTAATAAGTCGAGCGTGAAAATGCGGGGCTCAACCCCGTATGGC 0.0 0.0 3.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 GCAAGTGTTCTTCGGAATGACTGGGCGTAAAGGGCACGTAGGCGGTGAATCGGGTTGAAAGTGAAAGTCGCCAAAAAGTGGCGGAATGCT 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 GCGAGCGTTATCCGGAATTATTGGGCTTAAAGGGCATCTAGGCGGCAGAACAAGTTGAAGGTGAAAAGCTGTGGCTCAACCATAGTCTTG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 0.0 GCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGCCTGTTAAGTCAGCGGTGAAATCTAGGAGCTTAACTCCTAAATTG 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 GCGAGCGTTATCCGGAATTATTGGGCGTAAAGAGGGAGCAGGCGGCACTAAGGGTCTGTGGTGAAAGATCGAAGCTTAACTTCGGTAAGC 0.0 0.0 2.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0q2-dada2-2021.8.0/q2_dada2/tests/data/expected/single-pseudo-stats.tsv000066400000000000000000000011311411645176500251460ustar00rootroot00000000000000sample-id input filtered percentage of input passed filter denoised non-chimeric percentage of input non-chimeric #q2:types numeric numeric numeric numeric numeric numeric L1S208 100 99 99 88 88 88 L1S257 100 98 98 90 90 90 L1S57 100 99 99 90 90 90 L1S76 100 99 99 95 95 95 L2S155 100 72 72 62 62 62 L2S175 100 75 75 67 67 67 L2S309 100 70 70 64 64 64 L2S357 100 68 68 58 58 58 L3S294 100 68 68 59 59 59 L3S313 100 77 77 68 68 68 L4S112 100 66 66 61 61 61 L4S63 100 76 76 64 64 64 L5S155 100 67 67 60 60 60 L5S174 100 64 64 51 51 51 L6S20 100 66 66 56 56 56 L6S68 100 53 53 45 45 45 q2-dada2-2021.8.0/q2_dada2/tests/data/expected/single-pseudo.fasta000066400000000000000000000111651411645176500243040ustar00rootroot00000000000000>b32621bcd86cb99e846d8f6fee7c9ab8 TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGATGGATGTTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >a16679d5a10caa9753f171977552d920 TACGTAGGTGGCAAGCGTTATCCGGAATTATTGGGCGTAAAGCGCGCGTAGGCGGTTTTTTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGT >99647b51f775c8ddde8ed36a7d60dbcd TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGC >a7acc2abb505c3ee177a12e514d3b994 TACGTAGGGTGCGAGCGTTGTCCGGAATTACTGGGCGTAAAGAGCTCGTAGGCGGTTTGTCACGTCGTCTGTGAAATCCTAGGGCTTAACCCTGGACGTG >1016319c25196d73bdb3096d86a9df2f TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGTGGATTGTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >d599ebe277afb0dfd4ad3c2176afc50e TACGTAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGAGCGCAGACGGTTACTTAAGCAGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >362be41f31fd26be95ae43a8769b91c0 TACGTATGGTGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGCAGGCGGTGCGGCAAGTCTGATGTGAAAGCCCGGGGCTCAACCCCGGTACTG >51121722488d0c3da1388d1b117cd239 TACGGAGGGTGCGAGCGTTAATCGGAATAACTGGGCGTAAAGGGCACGCAGGCGGTGACTTAAGTGAGGTGTGAAAGCCCCGGGCTTAACCTGGGAATTG >2bf1067d2cd4f09671e3ebe5500205ca TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGACGCTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >3f6752aabcc291b67a063fb6492fd107 TACAGAGGGTGCGAGCGTTAATCGGATTTACTGGGCGTAAAGCGTGCGTAGGCGGCTTTTTAAGTCGGATGTGAAATCCCCGAGCTTAACTTGGGAATTG >4e22aa3508b98813f52e1a12ffdb74ad TACGTAGGGTGCAAGCGTTGTCCGGAATTACTGGGCGTAAAGAGCTCGTAGGTGGTTTGTCACGTCGTCTGTGAAATTCCACAGCTTAACTGTGGGCGTG >2d3df7387323e2edcbbfcb6e56a02710 TACAGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGTGGTTTGTTAAGTTGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >f18a9c8112372e2916a66a9778f3741b TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTG >84d0affc7243c7d6261f3a7d680b873f TACGTAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGAGCGCAGACGGTTACTTAAGCAGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >5833416522de0cca717a1abf720079ac TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >aa9dfb40c4830edc6e2118b1e6980b22 TACGGAGGATTCAAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGTTTGATAAGTTAGAGGTGAAATTTCGGGGCTCAACCCTGAACGTG >7251b9f4e6faa33b5861aad135b5ed42 TACGTATGGAGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGTAGACGGTCGGGCAAGTCTGATGTGAAAGCCCGGGGCTCAACCCCGGAACTG >5179f5cac20c1aa00377e4942bd7f837 TACGTAGGTGGCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCATGTAGGCGGCTTAATAAGTCGAGCGTGAAAATGCGGGGCTCAACCCCGTATGGC >e770b18ff141c9339068443982508f7c AACGTAGGTCACAAGCGTTGTCCGGAATTACTGGGTGTAAAGGGAGCGCAGGCGGGAGAACAAGTTGGAAGTGAAATCCATGGGCTCAACCCATGAACTG >e772858b8c79efc10065bc1937f37d89 TACGTATGGAGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGTGTAGGTGGCCATGCAAGTCAGAAGTGAAAATCCGGGGCTCAACCCCGGAACTG >d2a8811affdca18fbfc7aa973a4d8ca1 TACGTAGGTGGCAAGCGTTGTCCGGAATTATTGGGCGTAAAGCGCGCGCAGGCGGATTGGTCAGTCTGTCTTAAAAGTTCGGGGCTTAACCCCGTGATGG >efff83850806ec2d1f98bdc32c9b5032 TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >b7418eacada1319fa8b6baaf6aff06cd TACGGAAGATGCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGC >b50999f171fe6cee3c0493b50bb8926e TACGTAGGGGGCAAGCGTTATCCGGAATTACTGGGTGTAAAGGGTGCGTAGGTGGTATGGCAAGTCAGAAGTGAAAACCCAGGGCTTAACTCTGGGACTG >8139c4ac825dae48454fb4800fb87896 TACGTAGGGTGCGAGCGTTGTCCGGAATTACTGGGCGTAAAGGGCTCGTAGGTGGTTTGTCGCGTCGTCTGTGAAATTCCGGGGCTTAACTCCGGGCGTG >707f5ba87a63b8071f5b7cad27aa9046 GACGGGGGGGGCAAGTGTTCTTCGGAATGACTGGGCGTAAAGGGCACGTAGGCGGTGAATCGGGTTGAAAGTGAAAGTCGCCAAAAAGTGGCGGAATGCT >385d596077ffe9ba4dcf4718d48df5a0 GACAGAGGATGCAAGCGTTATCCGGAATGATTGGGCGTAAAGCGTCTGTAGGTGGCTTTTCAAGTCCGCCGTCAAATCCCAGGGCTCAACCCTGGACAGG >41f67443ce8207be0c0a956c47823417 TACGTAGGTCCCGAGCGTTATCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGC >4ff24fc8bbb1263940427ba778d2367b TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGATTGTTAAGTCAGCGGTTAAAGGGTGTGGCTCAACCATGCATTGC >80e2a0cdbbf0ae81a93b6ba374faeb14 TACGTATGTCACAAGCGTTATCCGGATTTATTGGGCGTAAAGCGCGTCTAGGTGGTTATGTAAGTCTGATGTGAAAATGCAGGGCTCAACTCTGTATTGC >ef9ecba707ad092c6ac7bef17d0db268 TACGTAGGGGGCTAGCGTTGTCCGGAATCACTGGGCGTAAAGGGTTCGCAGGCGGAAATGCAAGTCAGATGTAAAAGGCAGTAGCTTAACTACTGTAAGC >a7f92909575fd948fad074b72093771e TACGTAGGGCGCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTTGTAGGCGGTTTGTCGCGTCTGCTGTGAAAGGCCGGAGCTTAACTCCGTGTATT >9d07a6ff18a64d9e41e70bb17e9e02c7 TACGTAGGTGGCGAGCGTTATCCGGAATTATTGGGCGTAAAGAGGGAGCAGGCGGCACTAAGGGTCTGTGGTGAAAGATCGAAGCTTAACTTCGGTAAGC >857b4205ec3f91149633495d70354521 TACGTAAGGACCGAGCGTTGTCCGGAATCATTGGGCGTAAAGGGTACGTAGGCGGCTAGAAAAGTTAGAAGTCAAAGGCTATAGCTCAACTATAGTAAGC >4629fbb5dde5f8ee07c2259d2887a8d4 TACGGAGGATGCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGCCTGTTAAGTCAGCGGTGAAATCTAGGAGCTTAACTCCTAAATTG q2-dada2-2021.8.0/q2_dada2/tests/data/expected/single-pseudo.tsv000066400000000000000000000067671411645176500240360ustar00rootroot00000000000000# Constructed from biom file #OTU ID L1S208 L1S257 L1S57 L1S76 L2S155 L2S175 L2S309 L2S357 L3S294 L3S313 L4S112 L4S63 L5S155 L5S174 L6S20 L6S68 b32621bcd86cb99e846d8f6fee7c9ab8 30.0 28.0 39.0 35.0 1.0 3.0 3.0 0.0 1.0 5.0 5.0 0.0 0.0 1.0 3.0 1.0 a16679d5a10caa9753f171977552d920 0.0 0.0 0.0 0.0 3.0 7.0 33.0 9.0 2.0 10.0 26.0 51.0 0.0 0.0 0.0 0.0 99647b51f775c8ddde8ed36a7d60dbcd 0.0 0.0 0.0 0.0 4.0 16.0 7.0 25.0 2.0 13.0 7.0 4.0 6.0 0.0 3.0 4.0 a7acc2abb505c3ee177a12e514d3b994 0.0 0.0 0.0 0.0 3.0 31.0 0.0 0.0 5.0 32.0 9.0 0.0 0.0 0.0 0.0 0.0 1016319c25196d73bdb3096d86a9df2f 15.0 13.0 11.0 18.0 1.0 1.0 1.0 2.0 2.0 0.0 0.0 0.0 9.0 0.0 1.0 3.0 d599ebe277afb0dfd4ad3c2176afc50e 0.0 0.0 0.0 0.0 0.0 0.0 2.0 5.0 0.0 0.0 3.0 5.0 0.0 0.0 31.0 9.0 362be41f31fd26be95ae43a8769b91c0 19.0 3.0 18.0 10.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 51121722488d0c3da1388d1b117cd239 0.0 0.0 0.0 0.0 0.0 1.0 1.0 4.0 0.0 1.0 2.0 0.0 13.0 3.0 6.0 16.0 2bf1067d2cd4f09671e3ebe5500205ca 10.0 19.0 5.0 0.0 2.0 1.0 0.0 0.0 0.0 0.0 0.0 3.0 0.0 0.0 2.0 0.0 3f6752aabcc291b67a063fb6492fd107 0.0 0.0 0.0 0.0 30.0 0.0 0.0 0.0 10.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 4e22aa3508b98813f52e1a12ffdb74ad 0.0 0.0 0.0 0.0 15.0 0.0 0.0 0.0 23.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 2d3df7387323e2edcbbfcb6e56a02710 0.0 0.0 0.0 0.0 0.0 7.0 3.0 10.0 7.0 5.0 6.0 0.0 0.0 0.0 0.0 0.0 f18a9c8112372e2916a66a9778f3741b 0.0 0.0 0.0 0.0 0.0 0.0 4.0 0.0 0.0 0.0 0.0 0.0 2.0 28.0 0.0 3.0 84d0affc7243c7d6261f3a7d680b873f 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 22.0 2.0 4.0 0.0 5833416522de0cca717a1abf720079ac 5.0 4.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 6.0 2.0 aa9dfb40c4830edc6e2118b1e6980b22 8.0 7.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 7251b9f4e6faa33b5861aad135b5ed42 0.0 14.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5179f5cac20c1aa00377e4942bd7f837 1.0 2.0 3.0 2.0 0.0 0.0 3.0 0.0 0.0 0.0 2.0 0.0 0.0 0.0 0.0 0.0 e770b18ff141c9339068443982508f7c 0.0 0.0 0.0 13.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 e772858b8c79efc10065bc1937f37d89 0.0 0.0 0.0 10.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 d2a8811affdca18fbfc7aa973a4d8ca1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 10.0 0.0 0.0 efff83850806ec2d1f98bdc32c9b5032 0.0 0.0 0.0 7.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 b7418eacada1319fa8b6baaf6aff06cd 0.0 0.0 6.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 b50999f171fe6cee3c0493b50bb8926e 0.0 0.0 6.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 8139c4ac825dae48454fb4800fb87896 0.0 0.0 0.0 0.0 0.0 0.0 6.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 707f5ba87a63b8071f5b7cad27aa9046 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 2.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 385d596077ffe9ba4dcf4718d48df5a0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 41f67443ce8207be0c0a956c47823417 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5.0 0.0 0.0 0.0 4ff24fc8bbb1263940427ba778d2367b 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5.0 0.0 0.0 80e2a0cdbbf0ae81a93b6ba374faeb14 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 4.0 ef9ecba707ad092c6ac7bef17d0db268 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 a7f92909575fd948fad074b72093771e 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 9d07a6ff18a64d9e41e70bb17e9e02c7 0.0 0.0 2.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 857b4205ec3f91149633495d70354521 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 0.0 0.0 0.0 0.0 0.0 0.0 4629fbb5dde5f8ee07c2259d2887a8d4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 q2-dada2-2021.8.0/q2_dada2/tests/data/expected/stats-format.tsv000066400000000000000000000002051411645176500236610ustar00rootroot00000000000000sample-id input filtered denoised non-chimeric #q2:types numeric numeric numeric numeric L1S208 100 99 99 99 L1S257 100 98 98 98 q2-dada2-2021.8.0/q2_dada2/tests/data/expected/underscore-samples-stats.tsv000066400000000000000000000011511411645176500262050ustar00rootroot00000000000000sample-id input filtered percentage of input passed filter denoised non-chimeric percentage of input non-chimeric #q2:types numeric numeric numeric numeric numeric numeric L1_S208 100 99 99 94 94 94 L1_S257 100 98 98 90 90 90 L1_S57 100 99 99 89 89 89 L1_S76 100 99 99 93 93 93 L2_S155 100 72 72 58 58 58 L2_S175 100 75 75 65 65 65 L2_S309 100 70 70 62 62 62 L2_S357 100 68 68 51 51 51 L3_S294 100 68 68 54 54 54 L3_S313 100 77 77 68 68 68 L4_S112 100 66 66 59 59 59 L4_S63 100 76 76 62 62 62 L5_S155 100 67 67 60 38 38 L5_S174 100 64 64 51 49 49 L6_S20 100 66 66 56 56 56 L6_S68 100 53 53 44 44 44 q2-dada2-2021.8.0/q2_dada2/tests/data/expected/underscore-samples.fasta000066400000000000000000000107561411645176500253460ustar00rootroot00000000000000>b32621bcd86cb99e846d8f6fee7c9ab8 TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGATGGATGTTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >a16679d5a10caa9753f171977552d920 TACGTAGGTGGCAAGCGTTATCCGGAATTATTGGGCGTAAAGCGCGCGTAGGCGGTTTTTTAAGTCTGATGTGAAAGCCCACGGCTCAACCGTGGAGGGT >a7acc2abb505c3ee177a12e514d3b994 TACGTAGGGTGCGAGCGTTGTCCGGAATTACTGGGCGTAAAGAGCTCGTAGGCGGTTTGTCACGTCGTCTGTGAAATCCTAGGGCTTAACCCTGGACGTG >99647b51f775c8ddde8ed36a7d60dbcd TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGC >1016319c25196d73bdb3096d86a9df2f TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGTGGATTGTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >4e22aa3508b98813f52e1a12ffdb74ad TACGTAGGGTGCAAGCGTTGTCCGGAATTACTGGGCGTAAAGAGCTCGTAGGTGGTTTGTCACGTCGTCTGTGAAATTCCACAGCTTAACTGTGGGCGTG >3f6752aabcc291b67a063fb6492fd107 TACAGAGGGTGCGAGCGTTAATCGGATTTACTGGGCGTAAAGCGTGCGTAGGCGGCTTTTTAAGTCGGATGTGAAATCCCCGAGCTTAACTTGGGAATTG >d599ebe277afb0dfd4ad3c2176afc50e TACGTAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGAGCGCAGACGGTTACTTAAGCAGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >51121722488d0c3da1388d1b117cd239 TACGGAGGGTGCGAGCGTTAATCGGAATAACTGGGCGTAAAGGGCACGCAGGCGGTGACTTAAGTGAGGTGTGAAAGCCCCGGGCTTAACCTGGGAATTG >f18a9c8112372e2916a66a9778f3741b TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTG >362be41f31fd26be95ae43a8769b91c0 TACGTATGGTGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGCAGGCGGTGCGGCAAGTCTGATGTGAAAGCCCGGGGCTCAACCCCGGTACTG >2bf1067d2cd4f09671e3ebe5500205ca TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGACGCTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >2d3df7387323e2edcbbfcb6e56a02710 TACAGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGTGGTTTGTTAAGTTGGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >5833416522de0cca717a1abf720079ac TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTG >7251b9f4e6faa33b5861aad135b5ed42 TACGTATGGAGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGTAGACGGTCGGGCAAGTCTGATGTGAAAGCCCGGGGCTCAACCCCGGAACTG >aa9dfb40c4830edc6e2118b1e6980b22 TACGGAGGATTCAAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGTTTGATAAGTTAGAGGTGAAATTTCGGGGCTCAACCCTGAACGTG >e770b18ff141c9339068443982508f7c AACGTAGGTCACAAGCGTTGTCCGGAATTACTGGGTGTAAAGGGAGCGCAGGCGGGAGAACAAGTTGGAAGTGAAATCCATGGGCTCAACCCATGAACTG >41f67443ce8207be0c0a956c47823417 TACGTAGGTCCCGAGCGTTATCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGC >e772858b8c79efc10065bc1937f37d89 TACGTATGGAGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGTGTAGGTGGCCATGCAAGTCAGAAGTGAAAATCCGGGGCTCAACCCCGGAACTG >d2a8811affdca18fbfc7aa973a4d8ca1 TACGTAGGTGGCAAGCGTTGTCCGGAATTATTGGGCGTAAAGCGCGCGCAGGCGGATTGGTCAGTCTGTCTTAAAAGTTCGGGGCTTAACCCCGTGATGG >b50999f171fe6cee3c0493b50bb8926e TACGTAGGGGGCAAGCGTTATCCGGAATTACTGGGTGTAAAGGGTGCGTAGGTGGTATGGCAAGTCAGAAGTGAAAACCCAGGGCTTAACTCTGGGACTG >efff83850806ec2d1f98bdc32c9b5032 TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTG >b7418eacada1319fa8b6baaf6aff06cd TACGGAAGATGCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGC >8139c4ac825dae48454fb4800fb87896 TACGTAGGGTGCGAGCGTTGTCCGGAATTACTGGGCGTAAAGGGCTCGTAGGTGGTTTGTCGCGTCGTCTGTGAAATTCCGGGGCTTAACTCCGGGCGTG >5179f5cac20c1aa00377e4942bd7f837 TACGTAGGTGGCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCATGTAGGCGGCTTAATAAGTCGAGCGTGAAAATGCGGGGCTCAACCCCGTATGGC >707f5ba87a63b8071f5b7cad27aa9046 GACGGGGGGGGCAAGTGTTCTTCGGAATGACTGGGCGTAAAGGGCACGTAGGCGGTGAATCGGGTTGAAAGTGAAAGTCGCCAAAAAGTGGCGGAATGCT >385d596077ffe9ba4dcf4718d48df5a0 GACAGAGGATGCAAGCGTTATCCGGAATGATTGGGCGTAAAGCGTCTGTAGGTGGCTTTTCAAGTCCGCCGTCAAATCCCAGGGCTCAACCCTGGACAGG >4ff24fc8bbb1263940427ba778d2367b TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGATTGTTAAGTCAGCGGTTAAAGGGTGTGGCTCAACCATGCATTGC >80e2a0cdbbf0ae81a93b6ba374faeb14 TACGTATGTCACAAGCGTTATCCGGATTTATTGGGCGTAAAGCGCGTCTAGGTGGTTATGTAAGTCTGATGTGAAAATGCAGGGCTCAACTCTGTATTGC >ef9ecba707ad092c6ac7bef17d0db268 TACGTAGGGGGCTAGCGTTGTCCGGAATCACTGGGCGTAAAGGGTTCGCAGGCGGAAATGCAAGTCAGATGTAAAAGGCAGTAGCTTAACTACTGTAAGC >a7f92909575fd948fad074b72093771e TACGTAGGGCGCGAGCGTTGTCCGGAATTATTGGGCGTAAAGAGCTTGTAGGCGGTTTGTCGCGTCTGCTGTGAAAGGCCGGAGCTTAACTCCGTGTATT >9d07a6ff18a64d9e41e70bb17e9e02c7 TACGTAGGTGGCGAGCGTTATCCGGAATTATTGGGCGTAAAGAGGGAGCAGGCGGCACTAAGGGTCTGTGGTGAAAGATCGAAGCTTAACTTCGGTAAGC >857b4205ec3f91149633495d70354521 TACGTAAGGACCGAGCGTTGTCCGGAATCATTGGGCGTAAAGGGTACGTAGGCGGCTAGAAAAGTTAGAAGTCAAAGGCTATAGCTCAACTATAGTAAGC >4629fbb5dde5f8ee07c2259d2887a8d4 TACGGAGGATGCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGCCTGTTAAGTCAGCGGTGAAATCTAGGAGCTTAACTCCTAAATTG q2-dada2-2021.8.0/q2_dada2/tests/data/expected/underscore-samples.tsv000066400000000000000000000066471411645176500250700ustar00rootroot00000000000000# Constructed from biom file #OTU ID L1_S208 L1_S257 L1_S57 L1_S76 L2_S155 L2_S175 L2_S309 L2_S357 L3_S294 L3_S313 L4_S112 L4_S63 L5_S155 L5_S174 L6_S20 L6_S68 b32621bcd86cb99e846d8f6fee7c9ab8 30.0 28.0 60.0 35.0 0.0 5.0 0.0 0.0 0.0 5.0 5.0 0.0 0.0 0.0 0.0 0.0 a16679d5a10caa9753f171977552d920 0.0 0.0 0.0 0.0 0.0 0.0 49.0 9.0 0.0 10.0 31.0 58.0 0.0 0.0 0.0 0.0 a7acc2abb505c3ee177a12e514d3b994 0.0 0.0 0.0 0.0 0.0 44.0 0.0 0.0 0.0 38.0 10.0 0.0 0.0 0.0 0.0 0.0 99647b51f775c8ddde8ed36a7d60dbcd 0.0 0.0 0.0 0.0 4.0 16.0 7.0 27.0 0.0 13.0 7.0 4.0 0.0 0.0 3.0 4.0 1016319c25196d73bdb3096d86a9df2f 27.0 17.0 11.0 18.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 9.0 0.0 0.0 0.0 4e22aa3508b98813f52e1a12ffdb74ad 0.0 0.0 0.0 0.0 17.0 0.0 0.0 0.0 35.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3f6752aabcc291b67a063fb6492fd107 0.0 0.0 0.0 0.0 34.0 0.0 0.0 0.0 12.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 d599ebe277afb0dfd4ad3c2176afc50e 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 35.0 9.0 51121722488d0c3da1388d1b117cd239 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 13.0 3.0 6.0 16.0 f18a9c8112372e2916a66a9778f3741b 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 31.0 0.0 3.0 362be41f31fd26be95ae43a8769b91c0 19.0 0.0 0.0 10.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2bf1067d2cd4f09671e3ebe5500205ca 10.0 19.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2d3df7387323e2edcbbfcb6e56a02710 0.0 0.0 0.0 0.0 0.0 0.0 0.0 12.0 0.0 0.0 6.0 0.0 0.0 0.0 0.0 0.0 5833416522de0cca717a1abf720079ac 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 12.0 6.0 7251b9f4e6faa33b5861aad135b5ed42 0.0 17.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 aa9dfb40c4830edc6e2118b1e6980b22 8.0 7.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 e770b18ff141c9339068443982508f7c 0.0 0.0 0.0 13.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 41f67443ce8207be0c0a956c47823417 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 11.0 0.0 0.0 0.0 e772858b8c79efc10065bc1937f37d89 0.0 0.0 0.0 10.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 d2a8811affdca18fbfc7aa973a4d8ca1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 10.0 0.0 0.0 b50999f171fe6cee3c0493b50bb8926e 0.0 0.0 7.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 efff83850806ec2d1f98bdc32c9b5032 0.0 0.0 0.0 7.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 b7418eacada1319fa8b6baaf6aff06cd 0.0 0.0 6.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 8139c4ac825dae48454fb4800fb87896 0.0 0.0 0.0 0.0 0.0 0.0 6.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5179f5cac20c1aa00377e4942bd7f837 0.0 2.0 3.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 707f5ba87a63b8071f5b7cad27aa9046 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 2.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 385d596077ffe9ba4dcf4718d48df5a0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 4ff24fc8bbb1263940427ba778d2367b 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5.0 0.0 0.0 80e2a0cdbbf0ae81a93b6ba374faeb14 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 4.0 ef9ecba707ad092c6ac7bef17d0db268 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 a7f92909575fd948fad074b72093771e 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 0.0 0.0 0.0 9d07a6ff18a64d9e41e70bb17e9e02c7 0.0 0.0 2.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 857b4205ec3f91149633495d70354521 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 0.0 0.0 0.0 0.0 0.0 0.0 4629fbb5dde5f8ee07c2259d2887a8d4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 q2-dada2-2021.8.0/q2_dada2/tests/data/no_asvs.tsv000066400000000000000000000000111411645176500210770ustar00rootroot00000000000000#OTU ID q2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/000077500000000000000000000000001411645176500225415ustar00rootroot00000000000000q2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/BAQ2420.2_36_L001_R1_001.fastq.gz000066400000000000000000000242251411645176500272260ustar00rootroot00000000000000YX\ٖ}^RhC/[:Iy0l[;O:u9Χ[97uS_pކ;׭u,b"-`LK\b4˂ڎ+e/[HЙh𹆚j+q@6_j@lwXZB?y<$ęՙu ?:!_̍:x1g;ߎaL@ѥx?d0f>0L]^ ~Oc,dxAN7n$N \jl .{S /yr=]aoA0a&0!)0GFk&&53  3TO% m_Zjw=i ?-.`_7y<~՝_sp% tywྉWRx|Z8g)Z3CRgqc啛0\M'P'xpp!X@/8㵛 3H<8wnv"`D|vf&+UY sp4`Kw2z$LL_qy o #AzuبnxusIONvz\=Q7VQFAa03E%3!K&R11v gF62 F$m˒@ފDrC_l<đ#OƩ;37^q.,3´Aң ba#K= 6xsτj#se'~6fG caH;Q!HR(unD0.Qp;UAv`p#I 64J ̆3AdUr9S>38-sF<শqu)NDJ=7c#&F=WǾ&7jn_2S,)_T\VuYq&,6qfz񺇧q&z}NwowA9 pp @_у'Bp(m?HE"g{%>чxͭx>AҮ{k,߇B)lrSvv,yQ( ge`kxjсPv7'b,VX6ĩս'ס'v҆WWDbq{w=LLOs)H:k8ވ m߳hhl>tnlrMBlYhtjlQ)$dTT_<u`aaxJBU.ysx9!s6(MJ5NQɠ)\rKxN83q$a H}, H,s0#76؇>3G6y5Nffixwu8F=8#^8~?~OaMyLU="'Uҝ*)ƺ7>$U?*]8 z;=ިn_3YF$sྩ:#"'F#lƑr|6w zS7)/'hC9ʣ /¿5"g iR#{2\.{ϵd'{uyc)'"̱#WJS>́ZB_D#l #6P;ђ` 2䁄tcindfWw#7XD V\{ R }Sb%Z')7ZK-lZp'tI⢮\3<{G]#o߇df"-H@ 9WYH#k]9l™:aIƊ(Lx3XE1:<C 3nG˶0S'\d`[ z3" ?0,L`@A_2(7z5>Fټ3j>d)ZgzuKgPaBϮ"9̧e2O e(L(3a41=~|ӹCAܑ=fGs@B>R,:ˉQǜx;S!`Zj/<5~<،ރ3@!wSWO/|^9y }Q4sκPAV$0U}ƪ =Nr:GlVݸ4@\#6h2eȜ&&.Y]F]>oy|&|9Yp%)r۬yM@fC1W JjwuEҳ$x"WW :^lJqOrR';<\yu˒y)y1S63kloX j^8tPbEœݵ9ARd f}(^zՅ+2A#滼g56N׫q^šuK 3wN<Rώdc.j-25b10֜Zo?b:N+M)"0ٙsШ:buwd)J:W5KϪ|PuVoɊ$9sn"q$ $\W%X:3 ,;bSl#ĹYoCDZ~lFAXù9ɗɪN0(޳B NA OL%۔Ok-xN8lg۩ 9 v\mgC1qxLƋvn 74'x`.A?[{r67 -̔t :(oR! ħKEI(B'KeQR,Vm00PkFu<ͣP8դ2ff%(MU<drrf T/04Em!e.v`0|u_]hnnԪL3.|/fcz̻-p^-I ϧMJ!qw jcֆC/ 9@sH$PcEO;`'AR yqd)C *݆:SE9¯S7[uU&М@zn sN=<~?zmY#ֶ"ULJì8'y97AG^d[ü :fP$}b9ەK—@OŰTVL[[YݓHȍax{ 1kϕJ+mgs.Ԩԕdk!7zv^Jg<.xvx>_Q>O]]SsEU83j_$>IEHhHk9^qΡ "HOqc;{)+{p>΃FK}ԫ*5KUY͉`n&pQ$s1rsQ(6BH Pp<f}tn\&oM3T\ 3ο.ؖ\sL^yriF$aB95!95AIZ{.}OWe ѬN"~;qF\ĩUEѤ65 ] g%J5Gb!.kJ;an'q:!F5iJPl'B6EI$GU-]>=OtØh {q./بSbc+TlĸwȩT7Nw@[V欵RW&H^i¼zTvӁ)Ĩo\eJ]NG$~|'zEDSܠ*OnƋ)/af^D֢|K-ᡴۤ<۷g GKKAu?E$g͌orZ`{wEaQ:\'_YgVHjϞ$ɪH{}&!fg+ cٶxOJďǗzW` {@Es.`aݟ_ cK8K>a4ӂƒnhg 4:YFAɽro<3B*6h*P?ۧȭ%[Q&Xg L*lZVrkC0D=a0G TN{`ƔOW.; b͓)᚞s]g@m\!;c{ZըF[ׇu4;NAbt4ftf}vڛ1?vNL;9ǿᕜ'HFjbr'\BHrD [P6:-LޅИ(H6@@G@&(:4<0/%HU Ui&GO)K>>( 4 U:Tq=)CJ2 Yrܬ&j_?_ۭUYVUɽg[r,뼼/2B*iC_wfSsllHJNnH(aىspG={q#Pq)8lqPDUly0'7fR2AYE∵uUw0!x}$T ?7_ϰx[61mxϏ{D435A6*(Q훂F@73}xA,G*fڋ ŨU&ev~DP&FiE\U_xCY7I\ بL\. `>Uwa7>$Nτefpȥ˻YLuȷao0{7a4se8޻%{.oX;gM5?4>HO.[P#~ 5ʧl+b\"~ x )H!9:ˋF&->DhLܡ9K끥H zA@ޖ`t/s.J:dq*.=, D,a[6ho>q?֌;f܏?ȸ K8JdHGTѺvj4(11#;`KK3s,j =((ڥtqv> Tэ b$K³jY[u=7QR8<^2| [ fۯWʲ8Tz9OpspAqH3# rcF4FGqx*H\=8Vuv 16V51UG;l~v&7}՟o9C?&.f%7y :m)3}J'q&ylze _qϤUMe+RM?F7 vb83>ōVҶlc#j ?1讨ԩvscN+9u:'qUu)ϐ$nי18VDlg'@A /Ye%)wL).:~:C0?=XRxr- $Oʶ M-qSAM#aTsmρ޻HԷFݚ;*Ҩa?#JqLb;_@Mrja?\㐶-ϒ(<$@ONH2a[E%ӓm~ ɏV]=y`못O_VwB}_E^8}0pǂ$)G~|S9bXl6"xׄarq* xre(ߐ90O tJa~8j@2e;Y`rn ؕ@>!yC R,eڵh~XC<.':O#y7 ͇1 eBjK͍E\̱m2wvWChjuX8.R:h4G'㹚!f1H/ )ˤ^P?g(d(}7-5q+u_yob+c7b1lÉ[&L3(/y+G̳KMlʹi2.t!tQ.7JLq~vUuߕ4.7[{Ǘ~ va3JIó! \1"x/lV=)q61G"xY1~yW@a}^D_]}x_XПW}@{a_蠸/:(l~ޜn@0uߏ`IAbn2 N;W"w g*A~=:'眔ꞓY󱮝X7x$6^^_VXM-e&*JLϼS?'2N~ߨJ\3nvc|HBQacјfkuaJNxxq XK 뢌FN 4yN4,-1/W.zF?t~0mo*`{ n?olVܾK?ꅰeX,6GVGP|c)\YR_EéU}%1; xttLGMx_g;Yc 6 V:2Pjv9ޤPz e}<]NĄk <ZwxŊMK\w^4M pǻ?k3')-Zz&9gXΩkag c?䷘­V[ 87s{zM?T8up<]Y~;2-+Y1x rE恂șm]zV*wZuN*4=e3L2A1A-l,s^\N `.eyi0 e̥> |xdo#܏1_a.)$W&PeBuGT* O$ρI-S6v;lR•7p7z,+o8' UTvgXZCA \$h'X) q;KMu$:! IX%Y~Ƃ9r]&gå?'j%VqX=2X^M#SPɚ5g>'eMʍUIH\VU!V%OWZP׷F5mck_V>-].~XC;a>LJrvߔsi0c#\E2 w_+Krβ%r@ ECndK,{ +Unɮ |F,P!yk?2O[hGynNnp^h]iCp.BߔsxYΥ+8/\[Ek9WUgs38F8d\/Ay80k<։m@23dDn`=jJA`_9+ڞ6ޠYA<R)Su]97(:z@Um4񌅍B;FMy(K(ҬY9'aZc'xT.P}q oUρ)OxL|8W m#*o@8-|zo.ߩ:2K-P5XͥRws`Jg';D 椠A+##mPF`1̣ C,!ՔK$ZYKMdg(#GY|*Y-|Gx,7k=ݱגCnX* К_ 8Wubc2&Hᱦf10z0،pbF,of2y4æz t7 87rRLtH]SfSP9 2c+ ji r!ERij/͓uKd(j_ }(zbwd]:wѳlJ su5,ӯrM -NrɺJ=*@l6JhWݚsL5)h[ӗ.$S!,;3cj^- P'm 9?H[i-kF5{iF p,MUmr;]JCBj ,%r +R"B!BLz_5aɐ/xm<gbV\Ӈ/gu\ݠwnHg7m"j7MM ADdn/)qJ-}Tl@@ z|-Nus|'\[n'2TX}Yc暅M0:iYy9LjYl![LjĆΔ}AL_ oc???cDw7|GUGʚ7]ԯ!Y]Ju=FI˚z2Qqp klei0?VK |њXɰ bQ 2aYd>H@MsPA/C&wP陸6~P%\zY}sxD6P_Xi qx!xAں3c TH#8Zrjc2x&g(m5 ""X.oA,%4JK֤:ewkZոs{qUm6!!tw:5j!Rޏp7[S5t&^ 0XT-dFt"RvÅ4ޢ]ΐ[p>Qν98"پz݁. JykRmjpUӊN|՜'65aHCAiHƸPSRb 8"KbԤw1p n7}(z6CCwj^6_7ԽdK Mk /Tt*fZ W238m6+54l#Gk!5B (`>aQ:h%7tPoo`?5Kko+mR{6*ۻIkNP5mЇDsC.`d>Q&}"Lvac|Ø-ܺ/͸Qm-|t %=?[<І5Qpmt q*ldzऒ\zm,:nyiRgZ4qΙBKۄz8 lgw&׎ ,q#4ḱ 8']|Dy/Oiql[| 6qlhUAI$o d ?'C9u8O}h.*˭Ub[8t|gԁ] l;Vs篫S\QLmdKў[8TN. 9]u׫`OdmJqA1wl(̠U@H$%/P20k Cnr&A~4Q_:}8GΙ jf=luaOFs2*.e2{(Tu*NJ~s (~a#3hvmS2k8;L'N 8ed㭻J+ UPav$|uE.9֑y@عe-סk\  l;gGW aYC )R+C*Y َZJ~p|@qlaSω Ɵ.zy"(徻5<]^/u|C&;Of렗Xͼ^*9s2v#wj0˔ .rL\4h qLlLB97EHx.]rOF@ƖwYgH /oRbMiJd_Z1nkȽ].dyYX3=KḽXL܂"FT(]48^Ll,>]\]-vvn k"ՉgāP8m- flsŃ ԫ ICIr$`5ФN<0?]ZWQ; 9_/bo'N6.M ԳP'X@@]JFcr[k |6NJbOix'cl2j>#ώ%i=r^s4IXO+^zw&6 ˗]SǙk,@XdKWj@feB֡-ZU0N5JTetWr~yA#ѡ$M,< d l!U6IdJ.@kn?1 Wa%CLwo- ނ!Ֆ(ѩ' n7:$Dr-1'-%pG bs=Q,@#'Ss Rzn7ŒIUOJG|\tQvN7 Iš1F,U`#)mz %-e$d%Bt%P7 R`ƍ20$OtL:GywlIarprG?2j%hف,b1lJ8JIh|^6.\Zz]pJ۰ܵ ̸ ѥ^ǞH nJvƜUIRx )A1fIVrsh>_In@*\Ԙ2=+7(nD{?J2:H`vm%(%w ܓS'&IH7~:`Rh$mx @蟖'}d"/c dwγkD#[&Ώ |/u3 y&IA(?DQ("SP9Wns,X hØdCz w'`elRq% ɵx?UPt(X)ݏɭGx급gHH[;$?dTM&ժpѡmdI(Z6N@dҾW_mg[~]P78HI k~@%scAi@ cGb+9#k8}D^<\BJ/Jɚ!}#[>\̪*bK`=7+aUXyl$+G(2k%SQV: VƘU_ Rq  ) (U79?M=:˰*-RZ0[I]p-q)q/alX 85#EeADQg:hz0C/9hrc?$T!i_^$[MzӽSrmr7o`_VWGN^ڴ̙ eX?f O`>xF@ZqnTH.{q3P/)S5u->w\U~˟骽 q7x@|(TTWa4:@(fBTg!4 O og64`hGqHwޙ5-T2l5l5#Pa-|껒э$~R@ƭSoeynq/Jk}w~[$  /m;̰HH#zx2_J2HۢY-%Fa, mOR?<@@?Λçoi#zk1ʿߎQߏ7.yvIsb82&d047% x$]f-o k:n]L#(4>7(כgo]C jiC)/s@i^ܢ/O/؈O#9"m̋Af#:zb0 iK[mj߻[gOqKH?5['U~XeWk;Gz+A *aCYv=6$m7^&Rq* 8K# QmDvfj6r<˹^C=CHhJagG'ש0Psr;gjtؼ8Il9麃 =3 MOOrOU +~\s\PsCwaQAIK@:#O` 8d˱V+wqI!^zc^l~t` x}8OR[UzfmA T-qM yh: %%GxϰFm8kL1xO8y-m fO7,>!٤&ta?lt;`=ϭWG3p\f{?+,~yv۹;}M\L;:ŀUJɷh%EE9jƝٓœb$"YKФ61Y5FуԐg]g|ßn;PoΣ nDV%:V誃TB&8e`njpOK!iUauLplޠЩωR5y}3iRo5δׁ Q.chˌVuV* E M{PHS642B5Sbp7`ʍ܂й(VZuH;y Um_2I*od Xt̕kWQ}Eh= R^󭁒|1܉FBFUb eUybA*:9C! c , *<>o|/ &aej"U ǏKA ٹVq.8J6l/B2"7$ƂjK}P!сUW})@.(CJɡazlsnJ -A+{vŽ5dW8?*L饻([gvu+P yZT)>o 4')%L8Uo9~aV3a;9691Aŕ0[o6·|5j+N59J+xNйHiL9MPȦTK$#E{\UrhhDT=9qyO}KflK ;/_֍vOp%(vSN@ƭ)U͝X}i. H&c 5妰1qad/M)}PmBlPlRUe%OBd]a7IU{d=Q.o" oP4Ǘx%J\84B((#Uغё\ G?~t+Eu}|q # s3AiCg w%l`=^][V|}ޏo~t%P6ҽ绥*1&8SR*q,?櫣Z~T Ƙ\W,aAT~-_A^l00&?tߛ!8wMw9,o* WHm:Ma(d U d/J,VvJ8N$ .zѬQLݪ;Y )O>νXoPB-_ӃnΗ 0-7AnsCހx*,]`[Sb>0iqQii4Erk` $`3^C%}>o8&vt^ ٍq NA2Q=Oi<[Où(dBkJ+O!!l37LPXP{;di8.oF?֭;o2%}_DcpD::yθDހkߜ( @9' +Fc$rNkR6"4*a!H!Kjy&Xis4@\S=c=@ usoK@ *<6V]# N8l}/;֤0 Vn{5%sfަFh3sԩ4x&_!2bl+F>\řS:yf:DY<J"ΠC >asqS&eզje=֌Pzċ 4Py4.+eTRـ;5Cs3ܴ2y 17Ĥ=;%t^XCϼ)iq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/BAQ3473.2_2_L001_R1_001.fastq.gz000066400000000000000000000250771411645176500271560ustar00rootroot00000000000000YX\v8}@!1 ^z1HlSݷVLdz+cǠ3Sv^GeMwMr?͵^Dzq][#3/0XGq]Y/Fhk(` Mރ>8 <96`sFZ h:@3)57#=mC /M0AMccEf !4qlhW 8MMZպ0!:0K 3A `?'Z`fW:ŘN3f:Ei2.arb3>YfkLGaK\Afy KC؝'a ~K40#.bͰl̈5yŚ&twcWYf .N0f| h'A!AkBY>. aG5>Kvq/i~9~:`l?s|6fc1fF̘l2tCA11+sLRnh0A#78yoBt8ڑK\٘#N Ά=99 _09 fx*Ђf݄Lc\o|9'MsC٘͘v2gO0fdD>lF 5hz. ` ߀\2B>AΎdv>"'X`Fhvh=pµ! i,inpHfEK/y5|j0/7j&(q~2i2M2f2{@q㌓_3e2F;&ZND^1 ɧi1B]]d!yG+i= qN0>3̯B 3 Hv0 =W63OQb 0sL3eA N.MCk,&rgT p4c<4c+M_4;x+"fbnƏE|5jnۓnk}fsB=[ scY%rÒg7qxi$GFOaz!lY[PEt*D.jñɏ)!nFr7#iY3!Ew,&`ZDX_c21QǫyBA?]7Iȯ}_ڂDz$N"’g5_oľl2. ̫@MtgͰfX)ÜIL!#0( Zp/dd +3pd|r.oK3a[gg|v~s_Uy ' Ĝ@0L&{5BF,Zk/4І: g__'L<֜#-id$(uz;E_>ƀ>Rb@bK0YP3+ 5ŀ{@ C0 Y1),ł4aw)3kT%e(P8^1/sh2|=ѧbO뎚O0?9EiD$Ґ%_M] ෠*agCdWhMek&1QmllF 4äUB T]U8sUUj)W!ǙW,H:b)#X 9"f#aM(#6KiM 7 R5?Df<7TjF%l~ אj%fIJ(M( '-X*G RFGumB`J~#]3th5 4:evۏ) J Ed| >A􁐔R'qQB'O`cTy~(Cv'yy7/׬5/ ^ИZJjdÒ?^K4o1uA[,S(~/R Oj/ r;,wҹ|C8_-swiO=û=-:tR Ɏ[52?qi 9IY']E#k [dLݵV#O0g-漦@L{,wOus <6Hox#}\ZA2X<^)kרFՌ '5z5x1xe'J=@367'>ݛ<&WQ>GD>6[hxc'c>W!/xE|٘"n~Q aw0#pfRaIRʒL`;RO CytD\؍NV~- s3!r,Ģ8(2\)e0 #,s>~/1dN>9KGͩ#Χnϥx^>^(]C*f.HYw,9W`1gs$/"cʹs);-Hn(nsɋPri۽}vs2A\FYE!ɿ'bIrΓ:0s`$,|-UĘ]Gh`5y2_rՆD| cw޸P?2=wS-s;6H_9$ 'SasHzB)!:9Ka rv& @ 1153lX9 pIԛ*3A 9,VoB0@=T٠գuf]+([?LW5Uwqۺ]p)CK)| 3^f}>&4~ɇS.~o0QҰsr3ݮi fgn)m9j붱LP!hiy4GHm9 i}N xp;BHm rsYi@&kss܇ԹY`9!] PHzY?tM({ ]R>o毪V <#BnKg(7d;7]51}6D)ĀqxhKaTHk5t(#(Fzs,Dī)Borq}2@zdy:q49)fK!\g晟QĹ0YG\uKK %_6^dk6O8=?mAiltTNw>9̮ӮlOel)϶gK};Ɣ+Å|r{ygodMc7꼍&@i5:&tq"Fm37pp> wAM+ϯYih =P2 j`,_"oڗoqƺ/UeA8`N9ˋ}pΊʍɼ[+΅'zG".hd jPR[^tGtYP3:g]eɻPpaȖ2G6Hj-#r,w]{ k iEk'sӝg/% zهtW/gs+mɇRK/;y>rE?2Y4zŷF/;@F2?j:Q{IIr|0eX|ΞL maEl"b6 wbzYRzT= wC/j?M,!J=}#?`=q[2z`rS&7fLW 8[RNPm^ {;8s\}zHn7(_(Øtt)<\ sxD:y=7f2&Ps݂BB  D-& ]t.f<+M &jPjFM)d/8׺ 6}e6=QN ۙvyq6>o| 25ˍ&X%6AJOdުK '&pٔqD.Oǂ$ Qz9k! Rgpy+ߋwmZա0rnQ>M;_YC)ogf fgyHpvVmAx[0$ Lo[vMw-L0# kIvʣ|wtt{JϯL7 DvLeވ%!nCZa)_?Kp]aw?++zu$\qQF1/yƷW &CEIх']ԆQbĜw6r KgZ>D ' \%9턭@َ)iqq 4[dH07}.7o (zGcQʶ/ub`5f@*}Q)lQK=^HrY7gc79O%`$Ԅ%q;or?Acժ 5zHCW91Kƽ5z{6r?[CL Z˞nʛ0t޷rK]ifE6E.g[[ E} FK ՟D 4|jֽիCl۬y@qTJwQ:uY_ jD0 Z^\OsW^!RZW9 A=צmvȊw&WZ5g11*4v>rئM*?"97r׾1gw`)Q_S5 ϙ/ҜJ TgmPd/ J= ߦYRbd< [AľW nI\܇Mݵͬq֟i@sJfdXq~z?onUxQU]Dӭ-.ԏ)jb9 :js1]q(uU Yc=+۳Ms*,eYCZ67ˢ:B*.7,|4'&MEÐ ]#^Mz æVN<'g"d[Ra˙:,y/$)i9kD ARA?1f3%(G a4ğ<2q`kͲǤd}vh8'0\jC4+ G ?K {=᷁A{ivik./GF\=;rH*=/u0Βl0~&ϝiX}ugӆ.}}^kHѫHzD&ۗJ 6C9CA201qNj4S6d8Bw6r e[=O[A,jHqGЮ<.#u?cz* ^uAtR|^e6sgbJM=sfߘ?*>77h>C]=TvYpF;c$ؐ33Ңsl1<ʅ,Bi#4 l/% !#-깞꩒c2r ˽֓jͷRc誾x ̷ <Ӵt!{PrpԥqPY*>рA 'j@/cv'S!f!5kQ_[94{PP :o]ƿP" }Ew$V%x\JuKiƓ 4?^3¹ฉTu׮FCYu{5e sG~:$?RêNwm)J {A%;8'ʲMΊ/ ᰕ#1>TvAGwQj#g]jc͸|J녔r#ol]X{zrp@XBjji5F7.$Zt&:? xHZL{ߏD^bC.搝e8)z>r iKmh8'j#6|_eĄTiE(QkNG\\GO<sR;r9;m-L$u(O0BaurN~c3r)(tUCő* q, ^b d kP|aCxl$|hj4U0߸Dq|#@?;y>@G<,R Iiab, ay&DJVUaU5KB <Rp3ܯv?59c[jnqOu`>oq+N4UU`G@E^斤CN3=L5V"Y}{$ؖClEY 7_o{'}jʲ:,Yם]T'B{Yx2Ƌ1$Y>MvQ!<8jA V2Й-[z9(C$,y1Ny]ì_qNutj!0 硄‰l&YжNEmZ=ăPԶ=\LK#ҲV` Cj4I?F8nF4pTvҢo|Z8Mi1?WDhK~ߏ`mU.F}P ] FdwPzզ˚xh|&ۡBf_])55"r|~ 3w|^Ŏa<9:BCAҙ*r>BҔv:nG}&_f;T6=9={ȷqfr@?ge*\q*xdEyA}8&ٹtkjT06agy KiېM^ .ʋ}#F>N|/SF6\1k|E;Z1a)@S7Y>61Ph'нrG.wK c$/=SvI&SfaN( ZLUsD=F\sNSـ k}$x>׎eNpƠEU(Z;p~m]Z᭟֭ȓg!5&Yz$0XBu8d|+]5$ϒ( ,a8y$Auk[jh~; M;POiJh?m!3mp)Kgzm݆wqL` + 畨?Ivj]7w ʄJVpLisx3?H%]q2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/BAQ3473.2_2_L001_R2_001.fastq.gz000066400000000000000000000277401411645176500271560ustar00rootroot00000000000000YX[r8|؈yܐ4A lfŖluG(J2?6Sw:vz}w3Fxi;sNeYrX.ɲ rx  oE^g]Â(/[yW-;;~'9x|ȹ3ɴƘRt1j'*9ƨr15y'1.RƟ&;$0flFy&M^ qY{b7{m4N7@̈(k6|5Gs9f|w>@D0 |"3f|T%OFXy0.u:6i#B7'jS [(8q('J)M8c @ b1=w'sݹ_9 (5f7\#u'0hD<{fd$ d4!e\zvи p . p[5B2wG.I;ɕxPhtD [Rt=uy3 e"f%vX3 r;d!Pe ӢBq* Y$+y+՗X.ϊwZY^ R ,OUx}ykS0mw=,gfz÷M6\;5 aGDuڴK8fCPSZ=(B̘1) W-TB'=yxȑ8t0j 3N.EZd18q{lgsj/d3Xm.W9Y.Ww"V;DsRmhX;M4- 1۶ ldkz;  uq9S=_O? ͟!ZMjl΁k-cyE,+kSlTʒ!ђ'lU:??uunS<_[ꎳ{|]v?MrQ)]AW:JlZ F~Fso' ci&pv (Dia1`2 Ȱ,LCK ;>o4]?!-{s/;=w^=wՐQ0$Bމ>#;U炦KIX[6:я}#ټG*T` k#I2ㄣWkvZ`>4ݓ|]zQl,0?Nl=n3$\"б$ 6aJ4)+s!N)%1Yf[&!榙 H6椄'>gkd14QfqWFӝIw7I) ݂9܃ Q` ׮ ˛AP"Pt"{nh`@fA!C 'omI8!> Or#O~K)NG,9:QR 0\ic 5 8;DPE-[]֢߱n 2ęMa V{% 8eꃎ>oiOgݝ.y)EDDnѼ|淊6_Drˀe2 O. Gj3w+lO6Qg_:[6&Ќ* \JSMҜ74_lԼN> 5ZpSNÚ{~ȹ t%dm' &ygC[+/1lP}ݒs ̭yn W0'ҸMy;\Q[YC>~'{ -dVBXfo9ѣZ?jf@+dmi:뭅ӄNeVgٞQtS@c{z=tUu+֋0+ :ʮ`j0 fW=u(5#+DQ a[䜃K`#3v#Nι1P4xW,);bOȂB1TC\sgNq8r^ߌH [mVzP\(_wPRs?,]XiRTFKBjPyI JYq! -7H x>, =%'!UäGi2'CdUk}0u[ [P(\[PޗBs~hUs[Pp*ݖ JFCAA׬%n2<(Jf4d$RVZ,A)rZFz9bB 05 |<qxϟʰ\@8w"i>+Du *8ؤ2H*2:c͑1f@H:7D"BH|xɳgkX6HZ$M^zh;< 鼮R#?֎y[[UI8;;Kr#2ʴ0pAgFII漢}(Y|I<6|j4TebIqa>,*YH*} wUn>>vbhfý~TaU%rTr)`Zd0gҬKJ5Ψ, *G98gi$4(kd PsB ˠ!; ނΧӟz[u6 zuЫ*ܤsXtۉ vM G[\hk ?"@SGZ,T^BaO}A9E{]vseq5̷'O8R7t1X߈A&jDuԉNdKEf_*1س4q])q(HJ -=s&ݝNPUl5wU(1R9V|<<Ӳ? >L&Fʛ 3lHK6Odu@ב(@1DuPdc <u]+%A8frl@Ij֙0H,IvUy>ku5vߡ,xO8E0@ L; iq6N3$ 8ʔFWvB]KxDWeRGHsˑ||eH6j&so\(hﴒg<j\PI|"me(Sv^z|k(yP:%w]ܼq.5ϐJ+NcM2c׶I!:&v@юzڡ. ⯖БŸ1/=G(!~t&ըAy :kIO[3 &/YsFe|}K{npeU7|,U3qґ.ZRt?vcI~^5HVa ;?HT CС4Ҧ5k za s韭nvK>:\~KI INt)UOL=h;l^& )| .kʳwsm;׭CbM\t).8ER`\y_'WL[׶N^C&e%9AS3Nխ$rÅJaFg1 Ҙ 5d&ң"4GCozBNi7}@NbSi}J󺱈Y>Ս4_sgs^saWJ`.eAS$II0 ta-eĀ0B=m6R6o >^ޞu?\Y\unpӘyʛ*)J}!4D 8xY Ҥ:p1moh_HQ)yR[A,P ("cPҡ<xIhS[U:V:6n|ˮ{^sqB'Я{u2I$qVDo1bBaQH&K"Xw?xb5 0( D =5ֵRl߷fOvw80+:ϋ0댘 ӖY|ڤW Bm T<e/LdF/rP7`z)CrV?YD1Ӟ1b`4bN{a9C`/F/% /DƳcg:PCrҝ q9`cO"~J])C \*m#jOKDλ1#>Ohp_XrPhy}ypzͷa.= ^E+sz!0:Rz('H.:B®DV&lƨ4EVH;5UbUF0*7h6MDn{> Y$~o}60`KL_C {9u Q9]T[=.> HF5AH5POQR/HSi'IPu:E|~|&L[inCReV&GӪmOW}6DC[2&UʛIZ} 1X]z%g 1/̭tdpc}-o[x } E)|/G3 v7M +X U7ks*y}.a~~3t;_مKe6(eQR7 p+rtYIvH~ԡ4:4mC):8YFIH@~(F}8ý 6g`)_S_G79 sZ sѸj-t sq3ܣUoUث S+BP"܍qZ|y8$E* In+P#p}t5R6ݰZo6fMm>hKЗ@h(c*,WXș 4hǺ2}TL.K@"P=L-_ rB*vL5w4Ckm\S3/ l'i1 /Y JgtXN)2тO 57PUVu6R &/У0jo`JmM灏H@␏qŗFCy>9_y7+  (_7n6dXPʹSxde ͳ3 yD@$G-вA-UJI?BR@+1Iw뜔N~Wx( OJliގGe w+`UZ }""i-ٜ>%'P.57zB_Inp ])AgߐQI6Gnܓl(Fʴ@yH :jul*Q Stb.m -hkk+1;`;A$ 0{$*9*UPJ"t]莖5W 9= v؅a7ðhDiؔd N&`{A6MTJ#ŏKLi/U뢲{kfA5opQ*|. rUMiPC]R9p0atاHQ#'Qj⽗ K;M7 3uX=bg0Tv53ЛVNfX^@Xa4M:/(bn7=Z|-y} CѢ ]xPQ,YF= yk2"yHm acgt0]φmtMkk[;Cy9r 97]sR 5!h YOy|xA%4} 7I24dƓf( |{rUq~l 4$_A$kҹiW#wF0]7ܯ-CNY\rBt*8 u.\(FT@<9НzM _,xK#&^n'kat6ɘy{9o???a*VSh>SpL7:ku%y,9velCxJsK?%,ζ٭Ytqs>B2BίONkl7dOQRrtߠ`*N.]JR;\p*:CgR%)| /)@CeZ [幖жҜ B~|2U_U@@!4Yဴ;p湡{ Ow:>9` K'XOapQITٰkz:t{Ibkћ2+zgV 1,-US5nt[i VU e5< ^]j:5Uꕊgڢ ]1cݨis5sWg~f@kDZ~:?F"-UQdT4?;i}ЬZkzLתnFNÓ`*,+Pa+%Ei1|@{Pt{Lƺ: 5RBMҲ{l_Oc+/*𒁹#?9h\`m _<]@]5(ݜi/ZpWbkR١~ bg]UN -4/ā 21uc6KĆL#O^4*yF?1{P~ex'G6zи@7yU7q%?7q~ ^p1x`^sTT4e_3>z5%ƸѹΜd;TqT-*{n\JHU4`W5. `jdAQ6l tZ= }'=xN-^g[fӍ:~$h04*32+pEId ?XTPWop3ü>pS+gqp.InÜu?C:WP `"jU@ v @!n$T]c+2ݓf wZbZa͕8I e/zMO?âMy+1?VNPKŎ8]7?)H42@ }c̕@3Hpj̆n&4ڇ FV@Ax-&xBM s'y>7c| b- ~w<_τ(7qQFXU4“Fk/ʋaYG \2hԒC3;aцMΫd^iZZm%LyFjue:aIz@C5m1rX|@Kڛtrf2 WE @瞈kUGyHzWJ V5ܠ L+⍚`%.OޭYi fl\h~RLۗdkj+nEzNB)kk .я:{VM!bƏfR/RGyMJd3{h=>9/c%)wcҚ07h1bp{2s^ ӻ1>"X[/Gae(%_ҵ\iDžpF|/ xF e4I600Teﺠ-t'sOn0 ;y3,HW(lA8G^ Z CkӀ!z^JyW!B4`$u )TZl&Aߵm+%xIAhXyY fx!Ӻ*sU.Etm+T+YH]lh LPបI'lkIu)Nq hI_r}"Xs{:~" ѽEz:g3xåejҦVr5^&RqF*%Vs@#n[ ޤ ~FUyl4M4lO'q5hמﻓ"QstۏPȘ4 [H!4!ǝoep!|Z:z%f9$mh1X^lvWm=@h]MZM]YD>vdoE(Oljl!hehFFG)teԵApC6ec7L5)B.cR/^#]Rpg498?(.aycuv-lOF@ 26*dD9y771kbSrJSj|*g=ܒoaoT(9ظ}>O/LsXN-:qc0k噻1WBuC07eƫؘ>)a/*8}8`2@ղ^~$rp-إCq5eOU! 6  GTnڏ&ZSRk4FZ;ՂcF8Hi+;f)px`>K)O*օ7$N/R3o.ߧCw< !>hX/x5NPc'sՄ⩸<<)Wpw{@R/XoO\}tm|G[>nxV+-iq]q[K;iYWïexj't뼧phrp sxR0ߛ:f`"oKC@6<YI`f"gq9B庀 GZb3Yk_q$]9J#M1 On`p׈i\j+^=uPVnܩ f%kb̴i$6a& >Lc$c@0{f5q+#IFo 0 YgGN->z!{us4~{ ?=o/ҵw~p H(cf#MA1&De!,["DBq!xcΘg\qqvޝ[YwYzzß i6paA5̧R? &Cuҧ_Кr{`̚(C/󂘑i-[B0k2bxv͇}Ԃsiz#DG:O:jW=H01RV87f0o3piNXe=ZY፛墰n! _nW1(@GF@#0ߺ6ܺ53/BcW )(4== Dhz^c  cL\Ao.Ɲ'dnfMs]?ba]4et5eZGDPs6G5O,slR_H Gb)AahH5DěP-j_zCT1yy3 YWҁ" T(۱ggnH#(Vڞf6` ~*<:_5m=;0kGzuM4\$l̈́^sl>YsY(9[ZQܫH+:- 3)P3{.~ጬNGQ(1:َG'D Y68ilމ`{5Ov0A~p{(&0^ lvSsFi(̠Fjahz0Q/}#;rzeQnǶ}]/䋗Cv=Zs柑mj4d^8I\ "i`+.^%9G^'| S8ZC~:UG<,K]l8W=STG`F:;>Yl,6gS<ށޯm^Ʌ1+) Fvg6h;Q#DsRtI7!c9f(g=K;r$gVq?{kH8v I8bv*^ lz #@]Ɓq ̱-č-h $dS%; ( oy5ɯX9<)h# 1FP($(9i(I`ϧLPoE0_Iv~ P&7_j a s  I 6vM0̀s(oAMȓ%sO!=|$ z!Dꯡw>"]ni rtM G9yd$/W1.TF-۟ K5BB㐦Yr\?RhuUs y3;Wkaž]_D~u50ulX^KY:&^Y,=xA:ߕHo FbWW F{?_~ n޽,1 |Q|)KG.PڈKK!{@(͚E妧e^qg'ά&szr.\N^4B d)o]`|wD<˝pՇ.!)ˈ3]b?&Ia_fx-*gdY=Bu2 yj7O?j@ZX]cZu][[ƩfAg=@VUC?S$I2Wq_c\pyգzj+oWU_EsUr7MuCs $78@L; YoGQK\.\͜"iNpKtUrɴ Fo R  gigs tG}sLK3Y7;R3\U(4jc&o  fL A)Gm(d8U&ŋG Xy_Hn@?. rAk2Re{ד *L_IZ Ɓs\|k[uצ 7fT Dħ6ʍ57?)EvCg5İ=L j$)(ca gw~> !04t"_Ka2¢cU@2Fqކ$OYËeFjt:V =ɍ˄VR `˱ ސƘe H.<Ŗ kنZLf zyuPm-39!YwԇTu$ٱd?XVv 7|QASt8H"v[&"IR 9 Bt9+YY#:Np7|g7Dx1(ek)QPoќ!9Y0dDl(JV-tD/s81d.YAk9UA%VsEXnZ$k[2s/2aH]aEC% M'5.6 Ta"TJe$F׳ӍlR*T5cue=qh i>QwVehBүYQt!qp00wpP L@ZD/Ebܜ[n`; TsVW5~)k=QUsU=q6n< /s|fӎ9Kg],Y/TDSTI=J*Dx =I&! $6uup2hpk@F{=.Ԛ_hp&o8rb\f6`@Q֕8;$lR& ̷u g)hd9 êNB{-8t121=cS[JS_+mUɷK㔫Uo[Na~6m$vFPjvy"5J؄񦪙&Nj"ۮAA!+^V(HsFVV .3O)3˴_Breޥ=$} Hp6VJ[QW:N켯fW*ti֛#ܨ}a*6gpDi1ԟ i|AC^y#"pKAeSYlkҘ#MMZx ^YoUއ2bݠ~b^Ky "iȒ&LR_^zz``)i*?(KלJ֙_"!z h˒3ʤd_45ifg4q\5ͅ:kV n`V>dYw^0$vfX7TlkRunZmuh MuS!n)5tST?04]@~nx o?hr9;VSrc8n.G&O̧Y+Wt:EFcq\bA./y9<~yl McMؤSNk8OMHԲAjAqT71m]ۺmN0<]p ivO%Zk|YeV^3b9\)qM3<͸HP~[]dGO~reFh _dm%7zMJɚ[0U%b89,9r(6z=.K})iL1[ xf^wş2? LN^WρY_gQ$y-7<# t.!:=ݪSWn}UD L2y}΄<uOY<+nϭ\ch1i>gt@38qxEU= JʆjĪ1|!tz?;&$6EJϛ1 jLED<$wN-,B\"Z v9vrc$M|t #M[{I\$u̹+_u`dlj|Dˬ{Jq)bآ3僐2_r| R"A[l=@ ïҼ?/!Q'췇"Ր CV{)Ak,i`%s*Ey[BWj?GyUEQHrN(eJ=i^2ʍJS.9K_@)~v`ȁ3N[Xkg&Nry@cm"B1Ӂ;z0M!_V+gsA }գyMNG<)񓞦ךX;~{Сa~E*f0?}etVƢ#m0aV *]F"tCWВ]>3X8i$b*UIZn6y60}ZI| t_t_9ݿKRySg'9],qg9+Y`=8XerUJEϝLN< `"h헕 AG&ya*]8·*XK!O3W%-@ I?Џi> \ S 8zO}Ҷ-7/)jSrii"w^N@\h&wL3'R6s RJԹ|ZP2h3[_F 6Cެi@y͇'9v^'H*7t[RyS^̯(y2Ys4)@gӇ\]V/ -Cpm uCwPp lQ垂ON%w 4\Wcpi:IFKA~!z Ժ N=4 hD9s <|y;wJL^NАg(z@"G=gEP337HFrPl2k%t|$_F @- cpO)aSL$x?(uNTI$0CA$0/*L Hl?> B1i<̘gx@EJ4!~79uu? 0ĔcKh:@VlL=Rl .ېhK'+F;!Q/㰇f!PZ{6-qܓ6-4AXZ; M:!{Tp7S~3і~` 1&;7ùY FfZ3a_  IПs=Ϛ(A/> xg^eO܈e S~)Ja&?#b K?A(JUyb^3-Tx2L딳vq; I^F@K>sVs%q@1cvtLA\[7e=VZv,|U("0ȯP *(eJtCh!膠uye|u& P kTݨW:Q1 'i,n:j_3E )7\BTmL_`>Tj>6ڽ!\[<Ƨ{TBJ(.S֍U*S֢DO<oC2`Vz >Rq"D'4?o2N65yyewszMWShgqT_x} =S$etbqxW\g!jrڃ" &K=;o ^(5r"` mLy )*-6^qfI7* iB`BnSrp>۝O+16ҍrӎ_)6 {ؾ]rP[Mv&lX6P`stT,]c?( eJ, iA `Qx1p r rZa}]}XnX*1R/m%YE_Ek6zCFX5#֊R'qv߻HuCUM!2Ee)Xuvb_J(_xhoyOLY\r>\Uƪ`a[xGcVUL9 p7Wh|i%\4UFvuiShuŒ QIC&!t1)!Yt71e3 +ЍC51>u7~sj|}{X4m%-sR'(b)_MR197 EK|}pq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/BAQ3473.3_10_L001_R2_001.fastq.gz000066400000000000000000000265161411645176500272360ustar00rootroot00000000000000YX\v㸒W~d$b[&"Aʒ-:5צDRȈdڜO.L߫p竵\U\94'<7֧s 5U^_-Gw3j3NKi0y"g|TC>G_W. %1F\BP'w'#s}94Ӽ$x\u$)5xKjDDsЇ?{@7%&P-c$HbMr ׊/@r!ij4ޗrx=qF&Y<|tT6|x;$ 3/98QjX"~n/( I8#r|c:Jb5+K5ث|.}dwCF)Ճ",K5/ؗQ1%xxߏ^\S {+r= ynӕҐxF0ct+%dLjCV7DCrʌ8+`B/ }^dI%@g$A.c\j2b @5e#gb3`Ap)PEk+㩑1`<"{=mIaB/I┏U֢o[`>.9B0TIL"i'BPGˌ$Eh,ohf@oC1\كAe-` ҈xtT $d@\'3[ʛB?(d] h1zqiZywn̝g+'xK">¼w)4"*Vn[ܮy[%ü \_X#%s'GyEC\0zqea5 $wD4CI {8m?`Yz)dh`ߵ1GtBԻw;W~.N7xg}}4@*xYz(k )ΐvЋSt%Z.B kum>*'SX6J~0Uc9oUw}oQ<;y75%ϸ '(*f;2U.t2IklĹ-eE> c}FxJREk!].lY岁|q#<7<9:rtb &k Roz'Ƌ6 JKvdʓ, 4J"\ciKXaS jIvgk!NryRhv/R?cW(z~ngOc믲:ƛ#J`6N{V4XC׀wbUf*}DxICSݧqx5]ӦB}:m:Ωɍ[C3U$շ61,X/JdžIa/G%Ǻh%sjޱ v9ݰ^oAn^~Wk߀sx}q@J:MX{YQHWh0ȶP> bJk=x\6u_vWikhSwxgSnź aU`dsxɖ=Hh9(V1`!_Ujsvi(ۘCuZuC9g؇&93݋6w6r㌟[:b|)x'却7{ya2Ko BʖP3#Zf'&AY6aWa_FH{Ht'Wȓ4 %2¥; uΧsHZV|2WwLws8CPI/g欋B&LP9Y'EIvb?8-@G $Bi']FFNnL lɞs=T7g5tO*O+`Ӡfm#,p6@C]HKYmim& 8"ImuC6*X(x?*(Ȩ)@곱V\p7aL#V %%h- U冴 ;w)Mn.ǫO+7cLoȺg'ek-W6$m$]#*Y!՘Ql#(8rEYdFUX*j|tq6ZuJQ[;j y~ WYNWuR;|6~h8 j XDpim!NK ;4 Xevk5x^9 U9ӝ){9m !pdWQ˘lZւm|-DRľJz^biъ.umi gJ-!XєK7I&ø$jQˬ'0Fv,R<YF;@RJ9X!Aw;<NP;}u[ 8'7'c.|,֥[QT3#uZ#ө#XUtWa 6_%Zo'΋4(>C_q!=W SҠGKnzR8R"\[spg>U? "E&IN`]8#,t(E}(/a5q񤋇ud׫ڈb42ߜ4 _Z"WeOq^d]jɵ,EYDnt{n$n1͜G)́ޫTڵ玽TXlF5avSe 㞎tx~t7u%oEn< -or~6Y8Vxx U$Ʉ8R}B"`s/6/.vAwI?A@ rb/UUMKE4iXMI5ο[OwEp_Lī6I$Uh[Dt&4,3Q8$m0Z+[(V p P|*O|}N_pюf 9[_":?>Z/8n2/wJıU] 2<d (GgP,8@PY@x7Uޅ=EFĉ{jģL7,T~\Sl-.06>&nepCfHL.kFG)<f*9dARճ2^oiYj墁`qrh/(Jn4JԵoWGVN_a?D=5E+)eHTjgIEEN:E%^` S!uبV4c__+{S#^,uIy:!>:ݦit>^\DW,埾u [G YA0oK+lȭuL ͍$c] Hŝ8E)RI2nf r9>5 sݜtsfۃm L'JJKɍ?<%^v'`ka[fv 6"+pضJ^E=wFrjv+w{̧D|W>e:&LR\ˉbvwj=lNyk/QyXk61OAҋc+[Svgi?XL8:ˡ|te_Z~FĻn^g}IF`O@}c<2\H1 %RYno(٘7_~%hQT>uQI= fp_K]Qk|=Wܕl#ƜE\*x[&#E$ŒmmF% P*\/`dU)`H5pR"xR\߂55F/.ņނhJAI#+9@Q~ԮcOJ{n3+)ފuLlϊ! ^<䞔S,Yp^cء-h}rx&77NWY2pyq+DcƐE&Ci$ip{-ަ6g6DZQ~ ;Gn6/Gi9a5 _ʱ($!%\FPYZ+*-lĂXq9HsҐϔXǼvƳעz*iiǀlќ.ќ܂ZU>6t>e0}^YN B"O17(` YCX ]::yrсQaYREp 3&ɧK@ݿnQ/AI4PəhȜks3 Iќ'5Т ,G *N6!iHz𰖩kIbw#O٫R%/ԍSs(IA >C>eOIpZEAmy`ݖ~} ̣E+gFܒT;VQruSt9RfL1vB r[apnQahT^1Lwq^tW[otM6?Qax-Z$5LaT\<8LC'bLYyrg%&G{Z]#'䏾.5ܖ:a9?A6jN+k1Nl#{R1CZiL"L*&#9y% T]IC?tP*$Y1IE>!Mg><%lkcb8ƨJ#xm4pKf(a 6h9,;qDb9GZi{k8y*P*käsfh@Gp* )s^~r)6=lX|I-w}x̋o 9gdZQAHTBձdBW:20rB ^03RxL޾s3 lP7R!k˫R[ ^ݷ=P T1EҜB Ì~kѣK<Ϲ38WsjZG+&iR+OhDJ`= ܽtQr5A"kͶJi1g}NR ; |FR~ֆ 7DƆ臥HLUXp 1A$mҒ Of9v2D̤y62n0|)'\cn2mZ&qy26Ƿ*z6|-T&Sk+]|K;Kw#Ʉ_Ȼݴ9id QMOcG/I헝4~/ g{-"+"+\|Z<sdp2zAvA=8) [+oqh8޳ E`AdQ[GUVfhQ~xm{5K)4ӼNW8]CO^И 1Q. 6X-"%ghhВ OSYi ,7҄K-m"j Gqc0e\t nÍR9J}(ب󍫗 8Ҽ9S3o7t,) XXt)CNvaG֮S$(7l%j ĀɬlLi%pmq7Rpea^uߏQx̗ЉW&u >٠(ɳ]ȽǢ,\)e.⤂6"+g0؁Kͷ>7[ hzͯw*?^ҩ͵\aAm1E8mG%Tت'9d|C)ekVO9g4sZnz`5C?p6S= ldzC@&H?lύ 4 D:%"x}Lj֮9XJVIV(<9` YyҐᖘ 1#a PKZnO;sdRQS"pNETlPp;`{p$_˗K\aPh(@{\)AcJNxS`,b%#<(Q zX\HRa:"CCi1s-6DVtC@SpJN :鶥 y7nY"'ᦛ%|9$g J{F½3k#WUu V/Fy\JP~$q+A^W+"i$W%%ƙLYB/+ eqAI'Ŝ;zq4i(> ~3hH @C'ޕFB0 ɪ49"sKTA|ٍ<+R2w~sEˈ9s{Ǽm6of{4.t:tWs91|=hA:2cH+裋eIyBm|D= bCF`npqf z>dQ"0h aeکUyw[9Wo|:ym~Ogoeb/5~Dm foi8(BqnGy/Eʌ+cl t1#M!2"N)C,nEu^%u{W{8|Wh,'8Ao6IM32T%Itc1cۿGH9:y A2gfZ\xS 'Z,|19|l qi19= .\\eKF J]w ؑQ&)rghֱYt|=<2ʛ¤.B",:淝/IXܞ.@r]ᢵJv6h &2a ?(a뽟 j_S iHt1ɂ8X7Yq#S_3Kٱ䜷ujMi&ӝn9mv+5Q6(ަAm8͚W9Vэ!ESרPicQb0t+EcT3&\4n'MHaޮsvz[k\`PDTW.}9ƕ)֔C+j%CX290AT$kJ7Xz"bQS4 x ǀID9USc+dzK>ذ||z?O*+`j$0K{BDGSNZoA,F 3W nXBQ7 ԍAEc?V֨i\!}A<8Թ1;4|˧;4Şm|tE*~)QYJ5I)vn$IQ)+[Iȵh2%hR#,!y߾xxT~=HÍ=:/YBWϿdPrs3LbL\^ʡ9a!:1#xV ޼quНL[Q/%6H>c)HrΥz\z2f'\=lM-,Z@$HDzq1kQShW6pjtAN2oX^%#49[Z s؃%$4+P.40h/X~RCsj6m(,mh8.RU*qM=\aL RB î! /d$,R];)a%y`q0bpwlʣ&hOe-wfEeic|[ߠ>dwlRۑ+Myo'N{eq&g |!/7EȜAU dy;jNJ9Z:Kw~/W<36` 4q-XV9[Qbf]hRa6u.k4u>!Kwnkը&sn`6-9Xu}@t1D%xhhK_5$3`KmmQ @Ţ"!9m\(D&.P4S=}Q`v}v ֿ} ^|u>gʹϢKϾ6mj"䒎:TyVE+/ [l-~rR, @.dO;t#ރ.66hDyguU(yik0/Qt5h זgLX:XR9܂P2>M걌 .V,p\Dfa}E:]uOg~gtAj_NEm7i K*=_ʺG|l~? Q 2A*`r;g(RIB#뀥U2=4et03Z'%u .cn1.X˽)-URNRjAF.9'%]ET".8=J jaMajԂX;O;X72Sbܢ!=ԥGy4pOʺ\\.nCE] U8  I*B<ǂ2 'A4Ia .5xy%-â"oN%ܫqXZ%?;$o,ES_*jH͡'XJ8fHSk0~i7Y8Npr&*[mhQ/꼢MVEoqpq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/BAQ4166.2_21_L001_R1_001.fastq.gz000066400000000000000000000236221411645176500272310ustar00rootroot00000000000000YX\ɲHW̽|"q9ebDVuTH,=]^uzL=GT_nG{5.}3Mm.Ь G(iTr3fT҈xlqv1E13~Q7i=m `.+G_c1>tKw_=_@hp澿[%6l2iEKV44L( xo@ξ 3z^3eH0&WpH Ydӎ<U<Ǔq,cN__<pQ`a~Lu[a'4%) N4tHr4s2pt,*h^H; LU]Xc2j < "- R(Hy<o 1DtGGQO~G`HgJ̘ݒIeX$b9\iWH>;`X4eT*8/bBBrR@DẢWU(Fn4fh aF3Cܽh^|Äw+ T\Ik_#굟Y4|Bv,>p&(7|u=F3̀+5/j^ީYtFfMO9͐(c_x8o9#WqíߪT;1ED@eYW,vbXDgN56MjhC:kjTÞ_OɅc%& ?o֐=:=8d{΃^&`XB w!θn6ݎZlvec̀DsY(≐Fq5+,30vQ=zb34b|Mwt>t~HqVr涝o'اfDznvn͛"foHޫ'^  &x1 Z&1S)-NuPylm 1Vm](΍W Նw[Ý4*4Ϗ׃}2B992^/ˇ':ZJ RՒ($d8/k/jy %pr|*ibCc4#ƤN(PR=L3 .'٤tը&!̀3> srmGGjf'MGIgJWfXRS(ރYd~!폚KqeֈLA$S$PZc䠞|F W'81̽ʻ RW)Ɲ9{B#\vgx΂+m,8U6ŨQOfݶL:1CqDNM@Vx:@_|* DH!5IE]!Ș$,IYLSSMAR-D w"%8זPѵ=Co7ݲƣ['-[ņȾk!;=`$`&o`TY00N__i9Q~8 ;pU5lmA/FuqG2Aq3SN2ié[H3mdzhة5Ʈ ~b IM//bUXgpЧ@\!;΃6PwTLCN|gJuuɥۈ:c yI藢Np~3C:K DĤ~$pgn̔:)k\3\GP6gA8|uuKu-L}$>A',B8Va~ A;R}^nK tx>a-qFGSQ{"" H/4${yo0wsn x^[R-^;׭\g6!7,FHjF6[!rY/ja3ǚbMIJl̥L!`4:HkJLoA}4E%-HsڡkZĹo,*~,z^= /Z$i5YmEAK%nTvm"6w+Z蛋,Q_Dhif ]Բ#8F/Zpѷ٨D3J:˼&Cx,%Rl1gqRfC GdizoYc1!"!oyW#=MqgD7LJ3ZioӰ9-M%x3yd K?&ŶCrㆻ6tW&Qڄ*VKg:e^6L3pMfivbNZ|M'NV9T{k b22Hfq|M2dVA.X#Mm3\ a[yo4; =0v#CfG/:KLFVDotB \}ĬkGZTqN! ^ .4W4eĬc*u85 i ,EhyQQEF iPM0h6^6q86P+616M8r'8>i izMWW{' #ԻO-K YMCbInw;:n+n,+HSgR@L05ޓU,z9ɤ,Ocz&+ùX&h{6kqST`׆-ҊWyQ3Zy֦ڼU:#20hsHхla΃13(w S1@8Cީr,J1Ots#{1 H(/^j"XٜNa 3^ю;ꌃĵ'LZK96(0>P&*Nze$!hATeM1K-+#nhm \NR>WVBu3 mwe~tA&e'ҪZ\iGYI}O zEeIZ\2ЃdY)NUχ:$EISG+ &ɍ,ySff83׺1}K h1u;YјKl"p@EE١?qQ35߈|҉G\[ŘK 6m5/v\)V?qey/}~ 0\FMaSFo.-e!o߶-I ~z=/owӹ;~3ƥ%ƺ'n vK ŬǤ*TftJ}}OF!qBe`8vŝz,cۧ%բDpVo#jJiP'IdwuOmGR7Xr ͻȳ_'Iv8 >%hb}:H-_ 崄8[Z9sA)eZϕ.\ t#^0k~(&8S)iImP+KSbb9/iBXĊ Rkd曍+en |2Axaݵwgpq<^ۡ7^ւ$(|#.BWG]X ꒾;V.F ~Y<.cQ?'H ?5=clNH@oSGO4 |e6P xs% XKe{lX14hʾHՎKc:NҰ%JJt%Zhu:2u9h`+K+B P2eFY/xeyFQ5|s6ysB|<짢n!NRk4 pL~Aݴ-Ft;f"$o*D'7Wonh2㡈a9=^AG+w.^6!Jz(8".NvS ˾ Y3UCJF6j4(4JF>ٹ+m;&DZ 9Mw|l/P VJBA'-W ? w ձWb}?R!1aF>!e<_IMѫ'&Asgȟ14ÇJ+C42Y%P*24i E64ÃNHg++=B5#{Um0֎fnv7&\BsTv spDyf}S$y羇ϼ$?̤ NXv^MNJ(|m⦶ dΑc/u•~!D[B,DY[(XTcb?%2pvn !v!gtB}HH_L fMEʾ=XHogPf6A}I .tc~B KHe NR`󒣓3C(ݥ?asq G8EV2ʦ#.F 2sH.(!B $Uԋ"ӽp6`Xl,m(HH3ϛCS%l660r$ m 󲺮k<)uޛC gCsnuPݨPrبGɜUS5U%͓/u;,S]qlvjLc-a؝K?ٱ&DŽbо%!LBz*C,+ŠKQu(5."f3պ,R0WG20FygHIN4goQ||"s*</(U `!$;SbƱ6:'Ś^/ L<^08ӂtӎI{wxP(~Pp*69B=44DA;*VMT"b 1{τLv bD -Њ{c jŽk4 (gj%\5 ՠ?V5D-v8Fl?&ϡLI1&ϛ~i +ry-ʼ*)fh%z15.Xf;ю*"3x&A\"rSnff,½UUA{a7ua<ě ~@䘇}.R8<}?ͰY8҃C-AHd@"+Wki{s-$蠏iǏP3^ܪV,M|ybn,ۑ$(7싸qqG_LWmYkQ+c-qܾ{4ӓB ? m 7(ZzB'}vD+]QtQ"$Jjc5ҶLC0@=b!׃qVqTH %B 0Wg#*/3 ajxF]ŦJ+{虑A1gɗQ fuAd8s1y+y'6obF": PPY1eg'= 6Am;?ó '47:aa#8ƥz3(%4Y5f UAR5,Zui8kSg=r7?. [zof!|%LH?gwkD+[lvX(SL6*L'N P}5kc+^A̪/: : eU|^phTұ}uX\z0B8hǡx+kG Qvoytބ=++v憫do2bq / A.Mg\6sqJiχCr^ GlA$r6Lw7QTU0bBA䲻<<6nH4Do/x3kO+D,›QFUMlрj7~kdkJϴܢg%;jaB(nb~`_g@؟Pt{7hݼ cw֢jҠtT\x0F7ڇ6ϋo@5mZ|jFآjIhG/7HS&[U;k5/0ꮺn1sw'ҐvcpodyH6sF-LT98zg7V,%HT𽾅5gE`Z[L "ď/SfG"&AA ti$U(ag5z(4 ȏiPi9~!I"ίq3d?>G- v>6Gr{"rb +~̋f→+> jf5XY` ].427Gi ;t&Lpݴ< *Ocƞ;ckzn "p~(!E.;Te>,4D Mp$TsqhJ+g 6fD-n>sr{W Ef8ڢT4X"x 8 Z x(hO{/Bv݅5+Uiz|~N7xĞ/{:uߤ:W& vЏ>czy112YgFQ\'-wRJΝiؤIN/:a+u 8&9uKSIƏ~ ?l.g}?9T3Z`+;p܁+0\a 8Z9Wyhv3Ag%3laʺ͒N.F iRF P)>Z%cJ>_6[5ތtk|sMilXvor?N0sAfK4 s^`1f2o>%Kp3 ! 8a1N^fvṋS݃/v9ڈA8_1f|=99 O^M{5|:a sbY/ /D-\`fԻ4*8낐F\]f" i$@+Q0şpG9MW3ilI 痡H>:njRR f}6i vyCdڂ{4ϛh?&f+9M htL _8Q>x0^H$ankc%sӧܶm r->H]NSc-B:f՞1o9sRˡF2kp~Eur{ vcPg;%y| BOI!V7яf/ƂCAu &\5/WXdr]S97|l`ί00m%$$HsC~fW9 =07sviP4+ioIc i2 UiPh̶OPt\. Y Tme;9a\2b^X>hv*e9 ;C#w V|noJC(0!)=3i-n."ͅpDHÿqOaJD2 b&|e[07DClDF2L"sQ([.Q#CI Rġ>+JrRtFf",2&9Xd+< " 9-ET\"7GQΆLDWΐ#%O2fl8t!tC8}qG|q[ ̒FWn&oAW#UaK-S* ̘B@͸IEIc'.gJXCH$xҢDLc(4`JXGJ2FcX-^tGdWof4mWm +̡'t+i>*T^N (s%^!ӓyJͅYCD$䤘22Z.OP-0Lg3~S ެ,ښ5ӖU+i@lyJzRF\ICEi8DhHiAT;m!8 f⚕z"I5$2f_:"'h>70_쾙7Y`for9tƟZyn$yZ5̦"9hҀqG)4S'R]^OǠ{bĕ`~EyKͳ{p[^pFuӅor 2A} Ae;cR,ABإYmOKc?8sɬp̙lNY:vpKzw,4_(`6̩bխ,ao ^´%CaG-դBBN&i 1rnTFϿG5oіݏ잨=yݒBh,<r#~yeVژ$E..yB i^ЁL~-zw|T.=];)ԟB$ډ|J6N-YTmJ!t}C\ҸblSX8 #}:Ào{GRO1f-N.θoX>ۼsom÷L:G!,ܼOdjBISt&ntFx_f=(bA̅*2}Sp9-O64iD.tY<΀l5] q'٭Փi}79Ón_TOnE*,pЅVB RN; Diq SQ{8xS{$5⓽[G-=߬+= 6o.0gɹ g^az J5JY>i 2Nf1xVORrCi{H.6],q쀼&@`tRn>Rxى6Z7K4{z/΋FE ~ZKCW$2פs8M2+y|2n F'Hդb#ss%5NJ_\hp~/p[Xp^8 b a Ek4$&r)[ kLUS`qOcQt oCvIMĪXS(EVL {,h!z\ >`5Yu :Ԙ9 &yϪnsXNj;5eQt3t^ysd7̂j8+&BZhKG (=Ȭ`S^p3OqzoaM%Myݧ)/;duLoO@9tHl=Ƴ5R[?\5$ݮFxgZ~Qd̂tDفKe<-.E],.v]yIE 9A%1AeR(T6$C/U=8_IOۂDJPϋW'o_<0!KUr@)s#W}"bxRT 3h Rٳ_%n⵻Ά~v} ex܍z%xK/>}=.|Uuy-McqGWJ%<}mҸK@ǃE~>Ic5\FƼgե'#%BMW.K?wXBy\9UUtз&lPEdmD{tb>7x)K5MqH>M`KETږ 1}SxƸbp4`~l6rkn7\ @i }TRK%s96RQ{p=.k]trݣĠ<-KI$XST8<~vA"MQZ ir]|;S{W/=oy m,`;H8{MWeA"3_gQф[fcaZO6>)5^ҖD*SmI;$#Wf{:1Ye (  uuTߑ[ DAu疏 /R0- [ F@w@/0vq `0A sI{!$+I@pVjopKMYش lG7$?*R7l#ܸI+ܸ3kr V|U웃 Tgu!#*OeҔY7J롗)¾(GyJq[)@IUU#VAcs]7N[RvQh9^B>߭5YW:+H}'uܑͫދP G^u& $gΘ'0!ٹLsB-(4ں$$'1hR(Ze<8$vMÃ,Ǎwr\ERJ?.%iF_^5 gxHv{)Q߅`vhl0Fe[TmQ9Jf8VR'v Ww{ Όr{@BQ  aq-F=a>+{_m;ډ9%U L[~T)o4kA>ëe|l~NA"4Χ ̈u8ufyC5XAkPyV\>6;4Aʍ 6'a>cM;ۡ#_E">g,!5&牷pR:^|K?Cl4x$MScC2yGg>)!A Ga^kb-qc{Ϋ;&'_XsW0eZG 6W@%^*>)6&(: a 52He2/c0z9] –U9Nge#{kȎy`܀C+tY`t!uo{ӵq#۠B ~Oo+"cD^" j )Jg=7qy7ڍ9Ô2MA\νuHS*/ٱ>ט8Q~KED0%$:  O# a-8&VG(R)QPxg 灒뮛ץ~|ik s:K% PnduYֱ ,602MyRjG_ JgYU0-FD4$/M@4t!} 1rtJlRyķ2 nXA>2[H\QpYAVRQ&%fOMpr5b0./4s@Ni$ w$FoeMG7螧Bvx;H4ݾ̟쿶ە2^Ε¿JPNtL! |euu^hi[>>G+(':c4~gtx(rv# U AEjbG<ϻ_2~?>~}m~{C8vM_SK눺e=/h` ''eRO%O58M8Dz{q1!*#Yj>o!M$!Dv41&qb`Dxm{L'(cw2/iQ:3盢yjm&Aw 5={]ܫҢԁ7řK cyJfnVfC#n.1brCNuu>Gv3'2D l^ .60 }3`µb.辤_i˟/\ܕЍzJ蛏3t*j&ᜌT鏣N O :NCaUd$I!}#V~mm G/h&.,V岛 ƹ{u:{v~;׹`U9]HmKLk4ɚ 6H3CZ|jD=׹*1䄕 g-LBQ&z~ p0"ܬ 87q˘{~*ƝN{!_Z3$?*U%~BNPtE`! u9@MPyFch4C*S˘AlV ȪunKH4^)t:B͕‚k ǃ534 I^)԰CN_nr)4 ʵ0nWv\B:pFj֬<'ݿlQBE̿b1ߚ%YW }I:ϥi>PYL%(9rufVgA'̫@.i>b $6AWku[g?o'ƝY $鰥>tUAv R82 L1eҀz:@EՎH{ Sb~h7]A m;{w~qw^^j,eC;dw$sƦEFFa6N @F cpP%z  6mcܣՐ`!شhCO+6bz4&x%<u^`L + NjS@2];L=StіޛRs8@y.M(c_S6#~~2};5_[Օ)v]  xWs͗oke -1HMH&1üi4C/%<`F!>/I& ,'lk4D o\"D4 8YS6x]#^kmeT S38+kJqZRr8I7oFY/D:~D#wb8䩑7=gT̈́>` peB:AVp7au|Y@W-Sg_),upe!j8ϵQZt,RjNt0hR5b)  e CqHA! 8kزc\k%?В&%YZF K¡?cZS5yxOa7J;VpjfT(p71:JX4Ok f3#quRp`:9Ya *)vlMFl5==i>m_􂋎c"IQQMK)(Yꫜ:5WWMmñl@7  m7#aub\ bZiQ6|۷)Zp5 Ǵi0l,xPU;cxs%H-0',e ~IVy%HGG_Y4sMzM08Be#rd  } ?Rh+1Sף\ ՍnzҀ1dc[\咫dҟN_D\%;T֯H|:Wy]ʫ"m')?(JW9K҂6.\xg(&~C le[e6GNFHԠlS O$w C@eߏl8DtAF 5A59(WژA}L}&ϣ _΂9^a^Q3l-NTcKʋ=oIMذcWOQ" [\azA*q5٦mnWQ֞bAUJ2. fKk4G)b(+jrG>u6L> +l6Ey-M(oPq"K-|]IXu =7 ʻ6ϵo+Fmcf=rY8n2mhD9)ps΂HMǨIJcK2ywb@Ś~doy}i78VA|RW:Z0RZ\-1(E^׹ICᶐrPAɀ圐> z_ QKunaekft\qdDß y>N{rˏA#a!P9+pYugNPܙЄHuOkDω 4(]۞( W%hq_sI|=J e˽.V&:9;Vzk?mCP/nx*۸h4*p OiN?Ҹ2J =q6gI <_3J<wv XWlB=Wz7tQ g@=wr?S tϱMLK*Bq)ȣײvH~pO>aθnhAk|YUwM΋]FS^+w~- εj,(?݌v{B(no nB+o6&QS#l?*wbT6a!kكҮȯfA+h~}|Dr7w8y-%)Qb"=D޾D+W+J\h5Jlh3J'0}5<#M3{ J# Irȧ/ipmDAfӹq#N{m'3d~$"ӁS3v&K%E8F֔=)OӽnCZog>wKX:&MD)qbqҝɤrs]G TSx/ n|ı\+}?Pk[HhK( dnGYh|CnNQ3܁&(Av9&WF̤sR<spTj:K/BF\P. SA`Ft)kt/rnZgzFt{uW'Wt.AUBK<h a}xyv kt=ƌHoǴYC:K3ruK/}/Tb#D"lx9B]^eR{F33'Y"-"LFOp;'Ԅc a7+ f|@I+u6)1ާNA$ 돜D)ZxRhd^܍L9S Q/7ܳuij2$uh3s$CB;. ;9L =gug)Qb9Q]A_帋5 6 Ʋ7ŪBeaψn"F}ho0m0gdj0k\&Yg(5X*mOvݐ9Sݴ 6L߳.\RlsÕ1sGƈ5m.P9Qhp¢"hdᶷ4`^o AܠD!BY {cAu`"Ʈwǟ/ڝ'!1VKVڔD}g_rKȥZU2/mXFj0ދ#g5Ghv$mYi0bH;EC $'yWgR ksSTrq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/BAQ4166.3_48_L001_R1_001.fastq.gz000066400000000000000000000243331411645176500272430ustar00rootroot00000000000000YX\ۖ:|?_1 s "YL^$!lWP{(s)PJWuLNbw^/ty~Xq@t_~NpNv\: |/o|lWG{8>+tmjKr?KeLE>"}zt d퀖˙355 hֵ' ֆ%f}: ;ܻK0j;`ye8W%fAtEU!v|*7F(an8Z SN 4v„ 2|]?h3wP'2#L|BH@LJS7 fOG`ΗfoIH0%E Ă4R4~Jb磻1@Q%29?% 3=r4 $BY^c4+%c)5.9_ʏ2Ł15ꓳ`:inoݭ*YkyQUꁁc4>9:`$xAUPfK:_w[oZ+IDA7V@%&]"'(>!`i< i !8m# S຋wnshÂ4 U?qD4v]?` [T^PZJD4X`rvMsLi"¼eRi$A9%w%(q2-Aƒ4民G…wG%c<û |.AA0_Οa_aNSSݖE|?M7'c*2qy@zp@^Y[Zղ zo Խ'=p gޝN'*$q"xtEc!ԇ\j/#ߠ VGxO>HKƾ)#S`fNUB<|5mwoB[u;QsΏnyU/>5pA!(c fB'"\@ ^*cGsfLz N6'' }Q/ Uvr212nzMK\UZpnǑfηRD\c4GYH$Gq c@iP0ӳ:p8G%"! BJ;"" g6T2~>R7iwu&I$6Yp]cvS T20QlyG( D='Y-Yio?Tp+ J+8Mc\0->Iuphrѯ5ܧ,[',B-xB+8#ZeQpgB™Q$)9"cl/,\dN+$o3/ȃ@7C8wKrhK<0%}UiCU{zvZ ÝTfv2s8wi:0Owi4s81Fjb)žȢBx: C|kӉYgVMMNgJc)Mx|ܩ/Ǣ;©澋#g0 <b]Xj6ӕȲ6YdT*2dݜhH}7WS1>O xR &- *ũ -3e|F,mQdQ&i\3=FC7bE$CzΰnÑe=Grk.ss\ ed]i N;Ͳr(A-UC9Crμ9rMx4a'W!ާSUltVB#|L!s`'Fݮ~|}QYB?uݎO{UnX^]$̃bE_͋:lA<Ϟ>)ARv>^`ß3*Tǃ4tWϗ;ׄD 07R'3qZ5Ŏ6=m`J7߭:HJlطgU\S]`ӃfIxyB *y,Z] xP20qBj ~]/ 884T9Oq>JLaj߳+<s0zitrHyA{hL6w^gЀn,a/"rgW)IUJ)g73wvqo$:߰4/LpғB 茉T9' lWӣ84#Cņ g}vթMOtAU?r4l^hzMG#XHꃕ>y;f㕡I`șD@f'j_g0o7sgg_G'R :ev1y"e"ţwl}Qlt.Cl"-*g@\Vj.Θ{|u=y5!Ϋ`FE -rsj]U)8ʹ@-qWlhVm$BΏ>!7'aICowʿrgRswf`4?:-/6rkB RV(YřEg`b'ݤW1lCi2n b~* w+s06¹}0 q YEl-H՝ůcK8F~kA$xsqY|y lP9t?hˎJ0ppa@Y?-fY-FI3)Ƙ}lAX|H<)$&D 9q6;%8_?_s׭?shdl_h -˖uLZeoWeAmֺN|xq^IKgo%oTjUwDQw@OU ,p&]QWbm8*ohr9108j"tR'w-r0]sişU^Tu뛪MAVUy~ "U޹Ú?Ht:j{!F=3e< 9.s'ӄLV#*~jA&4l ^^VI\sHu,|UW+kAq>3.Z/LH=B4ɯȀ*>IZb5W{nU" 7R3MnKp!,OQf?T(;yeOڦF5LO f~x9c+R$N<$7zǙo ج )[,svQG4[ybWAM[RsK๥<[`#/ntX(J͝{s9"^\:KzY.(B*?q#5"9:evF8o Ld)o㉬`kWR!R$5'`A<`jy"7փknz b?'8=:|գCt8ߛ_De?1SwڧEI9W;۳ /v vּ<ȟ wDC֋]mIFt Lk`g;ؾ= 8o΀S'wtr~sU[[bpY[`UGQUg=$dۦqɆRh 'd;lf%Lؿs{ NSdRx({GT,$%|[c@VTEJ.#By, Y 0*qF8eUb6CL k7/]ktXԂ2>_ьiNZ#6A̋yrG4$Ew$Sˍhۅc,&pEɵ(ܶ'ٓg,`:_$3ZdG`nso.ܨeyuri:ݺXD͸I ¯kI!drkyepu:orH[aZ.Tg9wwIϕQ(I6VFY#5<*s+(;ͥ EUqӢ,-]4vC>٬%Pb ~)dFTפ wYdssJӓK0lIg& 73KBBHҴ[Ry9/y%aGPG*JI6coLTG﹐o#)nܒl&)Xq+I.;n& wh\a.2j|D#sW#j}*/_̽,ay sNДt>!Tb-)J{y(>#&]żxgXOɞp.KY /b=#ߝ8of$㎮U vGf&f 6>C1"/RJ QpKK摦\kM^6;.RUpȳI8\ q; Bt:ݾD6!;˅P.m, *]zoq]As3I8W2g\ᏑJ R6' 8%sBk$]R(%4\-zO Pwz / RK]l~n2ؔy &9kx?[.wrK.tS( ]ՓԇqżbX~FeteLq:ܨ궅8_?TMyVʳڗghOǭ*aKϠ}< 1й2H;D.n]n:PϗFgf Vnⴁ#;mi#ۈ#6$'ApicjN# F6F?T-w K1덳 Q9>;_g;vP*@Ș(D&DDB0164Zr'~h_bfݠvfy ^bjF7e>R=Uۺ uyG" $4tLd;3>El+Ft1(zܭ*'KUP ˙"uF+AJ#Txe>| z Y?pe\R!:2_ _Yké1uV^]v[ɽ8N!-.(JiEԋw}kmg`l-̨8?O<ЖrTO89`P^ɞ!nʸ‡)R[wmͻtEɆ0gAغeVG x8v&xOҶ d߼\3<`hPKJ;e uW8걷Eq|?SD?GWS?>Ig 3#$_d07Dz1GA(&8Zֆ2FM=<"O1&GohH'693fyH) U9Հ OYP&XOݱb \*l4~B)y,H8 gg~mn`qm|$H[yYyrT+ *HroX_2֥iHmH׫pq}  DNI~QzP&weyhu_L$)/cx s ~S-q>J>Әn8TD qqQ}yW8]%C`˜[ $iuiĽGVj."[V/xЈ[p> Fр1=lcN{:x69 רCrCH& B +gQCmN :<!AЭ*#܈(wq`"7v1H3M jHnDh#N1GZ醧d_bxxpÍC`4n##DɎ[,"x͠_aۨ7Z΀۵ɟC_rϢU$uFf2gEp=/{nN{S%h#W%sbPo+*Ei/xTV| Lg|a0p)dm*=wy)j,/Ρ44ygI|)븑Bb)iҞ D6um0vاKgHeD+ J>GW igd:c$-uܓ|~# Uϊ8R~O8~8QNn^"2vAxӕZdW&:*rq{tgv[yaѣ83su#01i {mu&XAE_ihCը'Sm9E!™k{q͉cs6&P]faoXsk 7eDNDYXtVp/rZˆe#]vT `nlBW(VefL*LEj<]6Më#XZ{+sASۖ,QϽ-`n6Tںtc7$cgaX%|ĉD; 6E{P3l D\ed \Do@E/ jDHgbv.a8qC|0\? kɡ%N]VG7 C,VT2WMr܉ӂIi7HRlD[w좌T8x 31w)#ɨHDDsrb@)>˺\JYX-gďlNoNK{k2!ۚaH)I  4vҫR1% p \~P/lrAp8~}g}v~? .N77`.Luԡ+Ϛ 0ֽw@;:G%0 ,׀_z~l]SJ a^Rt:0.| " 0 *p1e1M,+yчf_m.og3lƇg9}fsR7銍,FtVg#n~FǿY1Vӆ`]^ut'B^ڪR`l Dʪ,-L$4}H쫪=R^_ؤrpw=:~3`f__=fTs1[ԒG$0p rˡ^H9Vg$fEzc6pC]C#=kLM1/pX#|\V@4юnƲK`'x)9τ3ɛU׽Ox#y;m NPv SZ꨽pNA sg$eRj: ?#krnKrݟ嵹0b1[/:yRᬕ5KA:ƗՁE+fqyE/}7Fk㈳nZBZCK2*WY#NI|^ip"7!5+4;~wukb; ΄Iv 8?` \*3f9nETP|b>XK8ys.+#&6&8Oާ `My>Gjkf)'gS>4΍;srp0׃Q߫y~GT'g,]a.+֣̃yIB1SĤk/i Pp,"e3R8MߌA~,#U;X|ɪB9ofs~y&N3-dfҘS*| !QH-`vcrv?p3drFeFMr6 T[P;shWD'os36^ ĽG|Gmm5o7E5/1ICA{Gv0HϹƣz yvCYͅ`o(z]c2b4c #<܃/va¾g)K1ϧ'fj~Y.Z 6_Z+` ,f4[ ĒCh y^"+; {rcǠi! k( eC]b_bțٜz2G5R'*,P9 ZeǓ/_jԆ* p;tr~ʘva$q\6E]QChfh@q bÐ6=m|.JN n+ *vT?ij~]..[IV5?nv-,ռ9|ls4(ES|AvH]=S m msAȑ 5MxJxzۈכ^Y><(nqw{&P~9xth$\_%r&+὜?F%*͵Bu i3z;'Ff|Ŏ:6KVb%5W’3 se]pwAb{@an>#tgfOjfY}jEXXY`_y'bA{R뵚]=0/fEG@&#'!iLUĞ@7ޛ"_ ~Y -C(M ,mƲ'MQ06ٓ` `>vw1<\`-O[&9ˇ=,pU B 6y{1nR0׎<\U^dJ AOD'iD4@(bTɎQ\QM?ul5ܗ(,,$!5;k%n5j*=k@Ӂ}c팉ƉPjQTLgwᗀ0jsaHIXAt>2"~nϠr:JI_(_js;ju">h]rL`b=3 %spy81Slÿɢv'(=xC({M ]T {ygjiuoezZuؚOgO|yrˇ(_Bs9o~u(k廖\۠. âPp,¢pϲX =ʔJ6G4Zpz_vfCP=.%{pkV~?lr֐Ga 兞EB嗘.nvBF5, b1 g6 ¥tKD 'bdp)%T %Pu ' W 3T,6|%+O87r=W 7¹(!TNɂs*5ܟ[q)n\x#'A>4}a#+$lk~W,L"ٖZ9/I)*2h?.jC69(k&!}K4gu@=o=\??FPyu)rg~~O (ĕ&<}?jLL8akxZ1vs%PWJף?}x-ܝLM&'YWᕟnpWg% onp͝]60G] WUd z[&.*(#dp2g4kRMBxO5QŵYC)) H k0srjҫ1dzY]>A }=@&dH5c" ~6@1A,ɐ4%V 6G߀=6z{t,5U2PY2=㙞M9OG/]nPGm"˫ I`+w |O5r% # DMP"0 J TC]Pu*Yu ˯Qg{Y6;ݓ ˍܘriUp`AǏ3{h~AU}EL"$@QMf=B-ClpfCx#BpF8@ vK䥥:\c-hb7\R)R6)ҳ|<&(H&t:*crPP gYA 1q˷[z{+n>|<꾪qE9,sx^8'-˂SCz!icX$äI|s4>$Iܕ <yyυAsE\7w=K--|:3a>/rB0ݳ{[HٴBJ?,ѳ_gֳX:(.}Ne&ײfy2±TQ752\yHm!8pՄMf|1ǫW3Cl$߉gx.+@=#uT~2TΌ[y@xkd$㷲ka dHװFө}]dS3P긒):Գ{i=pvɤ|G2?h@FBZa]7Pauؙ,SU;w8-RiҴY`Fԕ nM3oo79F9_Ar? lؘc^ƓuRxe"B T8A!& LQk v6*vxːEWMd1"!cohspAqlx̭%y^ss__a95ڐ!WLŒjdX(uS<K!Zỏbjţ/< MQͨ-Nv/8:mW;_%\ ]j?F=Ӳ#IekYp'˕ MOxytA fE426ʾ%"5ם!s٩%ba -R$RX*J!fA^!v^ƝH954poxMpFD{6N1R9!K B{D id iCXH\|ahƾQ[VR6tFmWuổ_U]Yݧrq_ׅXbhûLOLTκG1!h (XqH)^qB,1r˯QF<<DQ?ˎR=T4Ǔ–rsT^%F9|=\ciU9u$nb2ߕ!K<rCK ηI6 G U74U@Gn .ʯ*|Օۦ:Om{5ݾ=^Y=/=W;A7\]ʪuBGQegx.im$M14 /2MRSg99{%M;FQ%ۂ﹐&xvo1sGW3mOƼue\Dt}ku/f]_W%E(FdĬ;@]k78?fDu)?ӊ;?*bkAR,hLX.h2FQ Α516[ ގ|P!:,-b8^:I]Xߣgq>s_f\O ^hoTv L@]"%2 b<$&0I~ĈHplSbaJ=|a6X84-?ʪ;7n?s۷[ 7 ՉwM!2D4[øbbyƕEYԭ1zN6;CϸVwJD$.|gٮjn6l$-!Q]]U`zyd`sTbRk؉'!y3yC>mN^ 3$}T:Twͳ,/V 8~!͚{n)+J}K5jZXH68Aa \Z njZH4z& jۇ sSs6AkdF n@Uhi:w|G X"t1帚'%ZGr.tҸFOB}adeI#͙98!F~ FPv~p~3pO8pw{U<ϵ}jЃ dHF=1oPv^q r8J]rg+'d%hIOp\Rq |7HRua!nUё9h|}:2e37fYGoU4 ?^~s*2`ha_߇?G\/flpQV'-=WƺN3l.Ծ̤`e!ն]Ftu`"TE4XuRGyȗCg^Og{ϷF^Z6\7/{:|hݲO]p+<5nnVh2vqyŒXᳪHA }Kg&"א`D)~.Z/d6:yRʂ+-5Q pn0G~U]F$PA~b4o:bœIB{]t D>/=TZJtڍ1 9z>ТƕM ;Vm>wqykd ~/v;sTc(n9OLaSu~ם^;2?xpOXG5 @EM9t獱- _! Bғz"o`ʈڠ&є`m4ݴ^d ?z^uP^7L(55EÁ ķX./:l TpF4@^fh^s"rI)F| "*ӷ(;Yx ҈q=G{l/U(\.bZ' 3QfR˔=0ʓBP"gMt,oF@`=WR㼫h4;zJ HE Kk{STg{-j>y"ܬ)W{M9X& [#r511 -,*t ?&sSTBE Phy^\HX 4*31{mgz$%l ZJ0|<X-<+ϫ+#ǨJ `: C`nFOx-^U0z3amH-tK. Q&ѢZbRn!5Yۘ. _(fyWB<'6 ޗp$p$D\l:( L\|HR`F+²UI =X/&E"28j|- G|2l '8m>%IUƢ*XXgm8Fm ^N #:[HOϯ\I!K^1 nSWw iK™Z)r 2ڔ uxyYg]GJt=|PNo|b| $X)Y0yuDCҼEg^[lbL$c#;cɽF4;B0J$.# ^ZvP6s`_ ApR02;cN6GJ >_:7gssPj2Xe5z(&C-+mZi'[bOtZp~x],Wٽu=[S^U*UzCHr }L6Vn-Ō!}3՘. YtIRt{mRkoMcue>=sS)cl]\[K6ްud Wm B{9!/Bv~4`kba2ZA b @dfTc|'GZ* ؙE2__ mʃ뇥L;cΧ?&-ebeH(TA73FgR9#lv@.@M $iU `ƚWgE6e|z-*A~Jsm4-JLE( Ͽ^3q-(A^(RMAC¾?HCb[wcA$R@@T݇pM_n,r>!~YRܝ|vJqׇ`ԱhXn9a9\`I< WT<2,9D2DǏMepy9U?VRzb }Pne0Ђ|Wdx2 -?*:{0k^rPAgcK;D3pCaH9Ԃ2MBܣΗ4sy{F]q:hiqR WA4W"g+?) [̅@]xe@Q#528@ۖ^=̍(%H%JM(v?a٤(k}87k4 o9R$tu6e#R)Nc5GĶϊH0A ֨3NHR6$ -qga?%2K"ogTrM KH" z.N%ިIJ %k@v [y)4-ŕoesˍw᭴ tg8?q ޘYgMA7:}ԥ>zCa6 Ѭ<.; ^n9xO&G0Jercd2RH4 믓dcGrnu=KZ0@b<DlZ"z.y۵: )Y Yv#Eݴ))E=x>$c& |Rmk=X3x]Q@$w,~z];nKskh;wBlݼraagZr䥫R~5I8\D]s 3j!7# 7$ZYu{y\'l n8+IN*\U~CCɀ {KN7BRG\_-h: y! I\Xr,gVxʽpuQ~L@!*mDv229T~\U L+t0T=Z噷L]ЪsFmN sfbW"3I5gr'+PT2"5}gZ;0X3˸›IKmYx8}qmÝQ5b<MT ҅\|hFs?~wc[ٜ[we? K3gH/-[}7Oe.W}i f q P7wЫ+l \q*+e&w='i/adƳYYUk# nn9#6P f|%l_PP#[G*ERHjbFQD^uΣέJ|Gfj*|ϡmmZm6C xsZDDM0^T#RvLm<P'K9:lhfYVG8c0. ץX뛓1IRϕ&rձqmȵeʣym8(уb\HydݖF|? X^fq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/MANIFEST000066400000000000000000000020471411645176500236750ustar00rootroot00000000000000sample-id,filename,direction BAQ3473.2,BAQ3473.2_2_L001_R1_001.fastq.gz,forward BAQ3473.2,BAQ3473.2_2_L001_R2_001.fastq.gz,reverse BAQ3473.3,BAQ3473.3_10_L001_R1_001.fastq.gz,forward BAQ3473.3,BAQ3473.3_10_L001_R2_001.fastq.gz,reverse BAQ4166.2,BAQ4166.2_21_L001_R1_001.fastq.gz,forward BAQ4166.2,BAQ4166.2_21_L001_R2_001.fastq.gz,reverse PAP130.2,PAP130.2_22_L001_R1_001.fastq.gz,forward PAP130.2,PAP130.2_22_L001_R2_001.fastq.gz,reverse YUN1242.1,YUN1242.1_31_L001_R1_001.fastq.gz,forward YUN1242.1,YUN1242.1_31_L001_R2_001.fastq.gz,reverse BAQ2420.2,BAQ2420.2_36_L001_R1_001.fastq.gz,forward BAQ2420.2,BAQ2420.2_36_L001_R2_001.fastq.gz,reverse YUN1242.3,YUN1242.3_44_L001_R1_001.fastq.gz,forward YUN1242.3,YUN1242.3_44_L001_R2_001.fastq.gz,reverse BAQ4166.3,BAQ4166.3_48_L001_R1_001.fastq.gz,forward BAQ4166.3,BAQ4166.3_48_L001_R2_001.fastq.gz,reverse YUN1005.3,YUN1005.3_49_L001_R1_001.fastq.gz,forward YUN1005.3,YUN1005.3_49_L001_R2_001.fastq.gz,reverse YUN3153.3,YUN3153.3_60_L001_R1_001.fastq.gz,forward YUN3153.3,YUN3153.3_60_L001_R2_001.fastq.gz,reverse q2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/PAP130.2_22_L001_R1_001.fastq.gz000066400000000000000000000244231411645176500271520ustar00rootroot00000000000000YX\ٖ}^Glt?cLou>'3No;v 鿔ҷzyNss|ycXªlC?@ ]W⥈CJ6)3h#.2bڀ9D@#ьC%@C溪lm;uc}S[iY?:(̗3? 3[Mab͑1J0&@$O]d;?fH0O#CԜLB} 8:0Ggg'n"q iu \`gW!#0#q a昭92Xyc& <'K}50;2Vˆ|0B漬*[s0 03f4gŮ79F)ALKl)3}&% F@$ )MaDXkE#q=w-n*5l=afy|En(4=, 4M8$5H7 HQ \3$cv("8x B&FӘ^$/`ISh@]MV&#|C5tzg=Ǝ=۟֞^P6*ǨOi0jl66lEi_lcef0hcD#!38t:? ygKǕ`zu m{sw縡%7 gz M cNkMZl485XL15`MkD(i N'pf$g;{] ؋[HmԈch8NEIH2cPIexJx(Ekiο3$sā[s~%}/3gO/t,T&rHZ ،8ѱ/s\ !D lU}L!1Am|;9Dsa{1gؘ3OΦl\͙Bs26lܔsf/v&O&21o4Orw :y-24X6ѣL>ܒڸ@,%jYDqqTFb[%ۖ{sR)lH1eY8f[i[(lwOg+GĐ,6b,>c'vg %OGE+9[q"1H'(%C(%' m$g͝BW߇`Y!B݂Ψj 9ٸI9`ӡWsxAISj'8Ԇ-͛o[qZ!㋰.4>noжwN$EXvԺ"ߪ>;uk8sI N/;ecΐu",6ʳڈ%Q_ΫH8=s~qz9N R Ʊd3&Q8?+5/tH]Iڽ>|33ls=C$^ ˜~YɁ 3op9{@\"283C~c |`u| .?łdEPϮ 3lj\L(eYI{FuɈaPjLn|U!lPH /zЦ7#y7˜^\kTV'1g|)qS̝q^^R2 lϙs8 RR眝](x:=6Fs1ʞg4| N(Gc``P1f J񚝜@%>I@.5܎<6YfjUEQeDs·HO<xߩ?T_~;QŁP:2 ^I 5kBGI'ؑp`5dqUwOH}?4 1<ƃ8h`L{ a\ U$r\&ehT^W k?%=I\0$ƅ5h)sYr{(0h GHs0>4َDS8ȳ\m*~+O;rN4GVpvXc%gxKƘu9ڐs-MGiDqs{lS̍^2pğs'?tǂ?k g#a<92B _omF <_7v>ܿ H4bʡ "Z'jj`!QlNQ"e Ir/7łgCYhN=V?Z]Ty4.WM87=_J$ K OݠZ Y3ʩCDJ.|Y@(zўuGh=ƾnXe~~+p8o[k$D(ݢ82.]=S#}QN҆Q'ݴF/FĽLk(G(d[휡)?3ioQQXw=ޚys%9D+pu \2 *q AUG 5rl 0jqUN1U#gߌ$xJ.nKĆT W Y~inDp=Qjp_NЁ]6L8G(8CZ7b 9kE,u;1[{|eZ}aٲh#{̝u W7vq[{~I;^=e]0tC ǃA;/1HN44yI۩iUxtT$m{;7QQ ϵY"VV0N.BupgtWu׻Y/_78?L75wկ6mp:pi.w޼Vx(#z>M|gH!e U%f(?t+0<Ế8;QlpBqRrV#ӄ HK@[IpDˉxӷ\?gβ6߬vӶ6(̠39X~-Tʜ\` 3SKښDDqL6SBet~=n 6~o:mkT9M3O[% y+'yYF7YK'7:Pn\lnR.6c[_pUVRH=k(㪹k(Q g^h ~.:Uͭ2eǃ }F%lmŠ͊|,CSKoV"); bּԘ B9qy4Cç)wiݿc }~wy΃Ʊ >%VڹRndaw IOHnscyT"lt]7cAolA[Jq? P`4I5Q72l} IxL/ 6$b -7x6V7E䏋ik>G~~BǑ}F?gv)C0ؤa QI;ˏuVX,ZO;5< PiLԮqK3%ӌ$gg\|y \?K}~1k[^aECxP\@cgwZa ϓVb/&g[US~]|5_/_s|u638ϥs_L},)[4g+5A'طI3^;ˡl~sy7m[<`׿ A0 s 3ih9lJ@FɊ&B,]n$2ea^HӃ`[?l+r30Y+Ql|zEC̈́JV{+8R!T_3ylog6HhIՂ/vkKDQ| (cQKFodUj̴yhh/_O3u]}Nأى+t[\Oτ--UD'sN?;Xsg .:)[B+T,YRxIYc.Qq4˖PH0F9Ŝ?7sA ež^h? MF=2† 0 d;`a9Eyݘmd1itNԦe+A|aV:=*iz/m4cXkwz w4:P Ύ%th9b x<Njܟ$\{^!Q;3V쎑*amnȐʔ?>M~tܬ9i?44qzA?סPvb< mY&㈔St~! ih-Pt )#G  /5T6fvU]jtsGIO>yma~ER2cyj{ThkRi2jխ 4哤rЁ KO'aZ_^ymuQ>Pƴj]SHd{b85-sv(tGcR &/QEumsֶ==XXs9[Ƣ>՛1Cw->d!<"ZIE]G"Y噔J|nj b6c8];:Pؿii7usaͧ)HW 8?ԁ3NG@.(,pAN%9x !z\UrA̠uHʹئT l*%Ho )x=zųYS .&]H-=/W'8enQ:L6Jr:C1yAυi۵0Z" 9Gx$9#X, -I)y'8z˔>glHNwbj&&rJJ̉ "9ARMs6MGg |"CQK;0 rs]h: <u,;H{A&{tޜ 1v؎։?"74rZmgm zȐH3cn-!"@gs Yƃ~|N^9a6RPJzu*Amr5^WFV-F]Ӛvg4Y \: E.tj˪˫zM|V,`Sƭkx{os?aqXwNf D'kHb޲׎YK@+4oi(ZJ\i\_b4Qә&ӁTEA(LueՄ ahNP ;A"qJRt*)G.cY,ډϓWK:$ЏUk ~36Eޓςcop9ê>q*)6vx}8Xυ>"i=;5?^pCcשlOvA!o m&DR,QȈ,e^_hX40^Q}Nrq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/PAP130.2_22_L001_R2_001.fastq.gz000066400000000000000000000275511411645176500271600ustar00rootroot00000000000000YX[rJ qI[=H*Ay;]Oǫ^o;0jM+ƹsq1F'%ވy+"ޏxD~3Έ<÷yf٭z<3τ*Ga/]ᅩ-%\s>+mS cUj%x`q}%4֩f   6ɯYЗb ΀/;9޵{v-0xpOg VhfF`09.! |l^ =9b"93neRdl:4U }5ԱL@-fW+8c7s54E,w^zKu*i @\oh o<3H#!@py-XA+yd* $̡ &YiAH3&!P𯚊lM$r3.;I 0ۣ9fc}f/)An晤!>q3 +7wy-4ك> ^iK B$r"-"30!W6Xth\0}#`͠#W;ԀUН1ŢHuu&E~&1K4_F]`^9>Gs؅4QB)tAαdf6C6$+/XpLizm1fnp@0&)Miq_ !r !/O('YhOd 4|B18Jj $4ĵϒ}diOoL<#-޲3Ւ^b jv`: ܼnts5޶ќaj=a.94%,ϒVf(s6iZnBA@ύ^dy.nez/L--%>n\-|b> ;K9oeff@s F́0h PEX,rSة4% )I":=jֶKJ\0RMK "7e=B<ɟ.Yk_dIr`O6xr"R4%rEiQ' GH ,%}VnBفD;#Ꮍx-^  cPj(ңpp#ؙI ]qQvhlɁ jjrC<qK<ʂ,2JmFh,xX ݩR@'e@13ʱ(9,3\E uMeMPnc+XIc2WG|]yO*sʖx>3u>lߘ@uܲ`be t.Hܤ<5FT%TBs""^ Wd2>:͍ۍeK8 υWh[`GcƇtQK=1f)lPx\=.0 2-W6YQy+fb)UYk<@%,QX8))yXWTcD 4=jz'ps!5>ڐ&W0P47rj3vhH|>>x YFbVQQ̣bvզBd.ApS8ps}5>U\3ԯE+u g+m}օș>j_PȨa }αYLX EAaA=e)ꤱExΑBm+Rk:1( ɈzΖjt^ y~xd:@tQb+5c35H7Oi5 l0 u2P4R()X@xB 8C%Ҳ`q"SJhq'4:pvcK(w%-a ,ob=HY\a y!7׻1 YYʛ ކsHE5n)C4ȌdFMo![)rPLBAl<(ʁ_i^3^{YmlM)62aVp Ηa~3?A|D @WvhM pN{-?@^̃|Ni 2R4ˤ $#jxnp??iMWucaq8eG&lgcoic Zm6(+j=nԭFg\yB%uп- ӌ bzbV)OħA5,STB )!XSc/>,oC=Qս3+mO,˱sJ/`]Gxn\#8xá 2Ei⡄s"%޷VɽF BтE-Fm}(I1KbaǫF3aAuKURVap~UX.5wk-hfu^h7\!@?S"cDr_(넿w[+6HFJ7q]cK5V];xEmXm8CȂe-8,}SOŠFpF'34g?d',y6G#yIJ~)pC:MlZ9Muǚۈq8ttݖOWsvkp2HU)Yl-2T45CR1+̐!s&84E0!FgEӜ꺝SmS3`>7ԫJ^Vsl^t[$SK")pF["L|RXcsj xv&jDؗT-YXCb`ґOl& Ja9gRu_۱gs0}RS0])Yzik7A?J`ޥ\<co!0fK«ҾjJv텱c\Rߗx\znrFAiFcvUMѴm_V`QlsID :OlϽ C7%("Ǝ !nxn5^ iz,\nb]mS0۷z:Ï]Z::}?1:R=΋ҘI_y0ޘ=YޟdigN6(z+3rH,X{9qYZ`Ih6up4ASt8< R{z9?7Q9o9/ߥg_>/'S~$Yg//mؙ+cjayVj>Ke #^x ci*$q1[@E48WblZ߰ky8='n7%az uޙ/ƏmlBAR4"Z, BiMɐb6/,?9Б!FٙÏxE4hrt( 뵻Ea^π`m?ll5(!INКt'W4&'0CFHI#[m## ' 2,q8uH=Z= '9 8³#U>j>_:Ra̯ ҏv`0bP)5'$HE=JTss['Z$5 Cv^O޾GY`BjwҐo4hYQ܋5F[J Eo^Z&i2?5dBF;d@ nI3-QjGsi0=ovp絉@ׁ4C9&4'gR!dmq;S%0hJy]X9 R&٘t 2Y719Fj&z2Q z^#?}_g$f|/P/}k1 ('EImEIbZNδn$sۍ=D5Je%=K@-Hx 1r9 _+*aeWJVqQEp@]>!$bHGVQ1]`IiLj3ne zZK|5kjݗٝi>y/=cg+'~px|`g>[}r mF&)Pʥ>T<`@5uDŽJCZ\5EPR\u9K:,AޡF$2~qJ!NyU1=5Hui )PWD0AIbqVP%U:$n7T%! ;oΗJ8 -z~6ۚ\S . U? wų<TR1dgD|a<{TMaPlpyڶBS)jqAiX&3.Dܹ?qx7J%<\9v?; R6w-C:̀v5(Z5)|>gy{vݭmԧ×Gz/.a\}*ca%' ^I]T8xL l ܐ,\J=(k֜ٛT%F#]'M-z!G`ՁXqUNq< (̖"B0k֬@blS- wM,Toؘتȗ xtmΗ&yTߪߜ!_=ї : F4e-91*@S3C!RRa u@gޟϗ-+zutӸ8?aq{jݍF9hȫ?W.9^3s$D|b&F:i" o!RCI3)dEg[mQ o7 =U|$ݝ8*yZsX=ɫJ5XH8=Q8J])+OZy,bT _3G :n4Hת$*SFA_{/){ *Xw8}^ʔio8#֟3@]*_wu;tCHR#Z#FYE2/Rveln<)p#lc~l:&&^sSC )hKj$;[ř&S:|G !la&? qt,VMCPe/pcY6:A ŽBfs8752nq@ccm3j_%}хR (WUԓ2&l)= k=o.!\VQ7_D_2 +u'>=I K`G%1$&2@窦L)Ù5t:b!^*.& G`@ t;W'8wI5mpa9Jÿaw7TTgW1<8$ bm뾗$8ֹ*qg5#C0W'a{m |Q@TAM{0&?1q;y܅B*.'F2җwK-x!B[#b R-9"acYY0 hYY8vXI0HAnBjK!eV7G8_= LMbjE 't m+uK|513]$|y yFen(m:#$/-_D HbݚlٙZv"d܃;;![x8ϷB2]l^ȶ)<σ\nÖfă:AGj7g 0@ xI˘$sv!oa+Y>j~K}ռvEw綩7yZ)yfřazk~nEZ2y!_@eE9 Rg9[2JV!Q$`]㐭 APAsֱoFP1kx'ɼcͦۮvNәEj ?5L n7V/luhΆPx=P(%dI ZM;ZPPEz_`Y'^Am_i: lr܃y4c)/_t¬.ߕ8i ez(k:\ZRBa4 mqWa O 5ՌmJSl.lX'BcPy ӅhrqU shLٝN]=n-qZWltm30E;Jpre/9tI//ދm0vI}yǩ8V0RB-B/^;kmR 'tu;#WB,Xsg,ºwt})]u UO4»e =Rv'm-` m֌m!8oa$Uog` ȚP Ean$fΫǺݽ'o9ϯ[cf`7QjhۭEt*RݣQ])?iff+ c0taStE!ڜaMoe.ۋ6l)|s!oݐt D@MB--|uTw@ ާOd `L`ie#P-P'h0cpF"#נp}Nr˜ۦOp3$z1+zb1vKs,MEaAKދÚ2K} t8KqA'b-7@c<چ`]ƴ@یcD(\9/>A^|.p!6rrtVT;;`kQZ1z}uvEghPnۏjҵֱJi25uVvy0$CC-E)6X 7| !M,>ϵA6)$f(lmIط3hQsλv@WY{3dIo=cbՎ*Fॿ,|gSrō>ݵ$PI*ECkU=* D\ So N^=Jؽ spO;M':w(|/[R3H={qV vVN4CTVR,XVEEV-6wV=%_aNPvJ&mæ:wMX-~5y.mD5pv2{@%s+9^tO(~Vd@GA"~֐hVnI҉p͐x,VFCu?Ƃa`]P`QuCM ^_?f!?)ޚ4_rjYHي6)9; kluh=G+ڬ !T Ab?|6QbOP Xʿk ׄk;]^ h"3LtӜ$IPr+ z i-Jހ]:l)L< 7TOIRD3g˩R<0z1x* 8к$'Y^#/1k\ ί ~"JP&{u!-GD}#MŰ&>k+"lIԷV*a= _=Zi(N]hO`> ̆4\!3W d4xy&Vur-8K1qй=[E_?`#FY <x @: ZL6+"yY} U{8f уf>ɷ%Ľes[˭![:Roc_۲B +R|$xixCHL>jj:I-;8`~\U|\TE} z&&a! !=SVTCbm/Pow֋f/q>1q+%U\BoW$3){x(ք`q)6׮6Ǿ((`,.HYH]?âBPp Q0F uFkЬڽnk>4>Yβ$MQ;7׎z<\XI86(x; 8F xAI \HA]&z-^_:m:CcppgnIJ 4oCb#LށS\;5dgm=&!F X mF4 G'o53 nOZ7;l1׭ <,Ķ/KckU(Լ% ptU?i+)uaOԼTfkw3zؐRb>L\$iW'Uwv&Uic > NczjƮkn!m1菷w zhStH],1ac"^Mp|$}-DO|V>A:p|?.Uu~ۻ e!7fO.ܟ~f0B0[|0w` }tS=2v6o+G:C_¢'գ|n1[9}E2aYQP`e2Lx2n;d@G!ld=;Wi;|!VW(&];6Q`Y[F+C^\L e B Dϓ3DN蓪`SF :lȨ _.lfOa2qB0*T#i+g%>φbyOL4BztK cUs5+i0;Ұ;kN6(> /M[ao< z`"_Vz;&0)Ik#3G`Zg'~ۜgg@|9d0l2.$9lo#NK}<a3-3+clxcb-x#[{c,!7 `b[ƚ,zpHy޴,$6ƺ6A7w#l h蜞@?žF1|+u߶X5gz@T8[=`y̶nRGI+ÒÈ$QF 4Lpa7gt̗}Mx%hk$'ä1ij^c.?HY78Yqjhά=ExG2wg:*:`K|8[&Z0+-:LJdTW "{&b&M5цwoLrn|`Z{$os21 !?Vwzskp|3 ?9=kVDIW_gSh/cۖX+XUud@z ;'8+-@%92 kI7tk%!Qlt# GFu݅'|W`M15(Є.,̢YlI6Wސ@GMl89gI#eE@2aJ8T[MD8K*x`xfe8:K5k!Xxnח5Umd<9*^d˵6a(`'A8G6֜eŭ }^E/~Yn9Vrd@Iޚ~x BJG x/6)kk({Iz.Y<f VSo(H =!-fUi}ZU7ZbP<ss걿^@;s((5UcpEťuI^#;,^3eL5J bl M`̜!O3ۗ~/U\B-cg+U*5Hֹ 3)۶sAZ+!ߦlq eqs{~ g$ogtY(zܺ Q.fM?|roOq>Z\HzGh nJUss*ZKge$ujt]}T1iV.YVw(+^Nv|dM 9ӛr}+Db_1{z) #8W]ëCIٟLZ#rUX9,kiM3zvs0Ḟ"Nb0tgEC ׍Rz]uݎ3mlycwT?õf Q9;º,Y;CUYǭ.iAωwM ׆㉲iD¯,i*NRIJeb9@"s:mվ ? O$Q"P5r~o'fgS[V|u#aQ8*P@ٕkk_Jؙ6u0xp 0+;TL^UuD5 <>\i# q=ml!>%{u_ȪoXNm &am&PQIIKD5qjRc8J z44YRbQ欤nF[-B1h'LV%8XOS-"\"܍MtsZcMCv͝R53\9H'|k'#eYbJ,G7 oܧTnEi)b(}J)TN`4usYsnBikY5hb a%74wLRQCNzl=uo٧"k&v>;_Yl$z*7%\ r'A9l,KVilP)P!~vǐ5?dΤܵqէ i'܅`zHMaګgRAvqiXw{w+7Rˑ(1}jj^&QSmw1NnuJC/$$}Ωy8ODb&96#[nXm0ՅImuR&9~{c`@klINȒ6 j(wkdPGAӃA\sJ2 8X ( )fX'Jr\hoKW:N#.TӁUDʭuWE3!r8cךVa/n<݇kFrnM]zNoH #[{Ett<_]Ssҿ{9u+Xٞ)"AH"D(=u!M+qaģ=\}]q~_2kȀ[.v!~膧{.ir,?~ 3ɍ v_Wڨn^[~@w=_JyvC h4M:d-f:iDcgm+!]ٞ/yk]upngYncx/n읨ʷ0D/ ӌnh'8aR~?뺊s̟55~~쎉) 畢\fShQ/ͪw9s[;_u!7\*0A谤ٯ!zn"w@6!V3t 9ҦHlJ٧nq'Nj<9 ):dWy'xK/x^.vW:,ǽ jTg۶%vr U4Cd\NrC<:p9(^\2M,xR6NS}&\Rsi,4ܜuooCAw}m:vm^/u[{k c?^\$R\,7C`B>94ϥiNs! /i0iV 7.[e J^{ ivCqwlBrf#ծVLd+];RL>;u\aK:c^Fߠrt5'r q}}x}Vu|U͹~,WH- Y%ZeXmsyf7juvM,_w3_Trڏ͹z%֘shcT1T:L\A 6Kql?1 '/ HԆܫ&[[ # ԫzΉx^oPHQk%!* H2F`WI99ע5R(mly'IυgA'bq2 Yؘ|fAs+1sG+ϯw{/ Fu~"iY|ԃD&gN. A9i:Z4dT-7P>]CXs-Ujt_ݵ`'am>60eoZ~U g%ttΛɒr~i;O}OJ0TrH2lOIEЌe'&LH,V Ƌa 3ǟJ/6 JM8_BCl[PiX/ucGPd}k뻵ǝ}SԘ/ym ͪTPU~C&/A:yZHL96wv]+0¾\hHlԀ%޳Sb9k. Zݹ5뫀^H"0#<~L%^ෟkckDP N埩نXIXVAG|\TazZ%OKv/*O'&.Y1Bf&ϬA\:m ."ʴq|ng v2iDKZg+O :VDŕ7R-9y6/F3!$UQ)~\ܹS f:Q7rWЎ!_&k ~O?c1ת .L4_ zPn;U]ᥙD|* Ihܬinjk,1<%jSc:y~`7q3R;֣C3 M`FjcՃýд7bM`VíSp p5ٷ5 |>u׾kq% ;WQyزJ )G [{(3C):3);3H7fhHqHAxPWEϊZiFs81߃Γ3|nAs;u^Fژ228ƚW(ZE2N<Ơ,`& ȓÜaB4]Don3OXImH)G+MZ7qQ ʸ<˝St>bJ;okfQܬW.SRѓoV(2bү _}Yoe`,8dI^\Shzmܙax4,a2|X$n46v+_Hd)# x(';(:<`KW 9N#Y%̜A0=Q?.D`V(ߺY5І+](muml]\t6t!nH"my}? 4%?гzvAQn$Bte$2M!gFr@].* Yh;Y̍2= .|5,9LJeJLK88dNazbGVK/B9rb@/ljyI HӳFZ)QILi*̄#;Ut{=t▸1#ri)ZF(6D073 9,I\b7hYܚ\Ӏo/vu1v6kUo 쬽@EG\YH>&I$eOHZb'󘇹K~*jz܁3n*ض#m뛍O{  |R۝he8ȼ%Vql(yO֥ob$hYg9НOA4i͵o}R9vG^*aD6;/Q Iʺșc-`*kds6zu)_gA{ d;I`9<_P 2xثmZќ+A~x gBOm Rz%TJjoqEݷ1P߿Dmz:oxjfe] 7Q/]I5~g:a鼇( `}u3z8A _=fɏ:16ne+A[=8Lg, XqCM3SvpI?I;} Y1>潱<8l|*+v˟,ߦ+'5ub Άlqs ٘cBV?_uL@9Tn:PD>)]`ŧPV1k$[-I}0gxnBA944G 攓oOLR}' 3UcƬ 3 `<5s ccsKyX*Շíh9S\G_{|Z$`[wvLHjDc=pIkyA@u[0]KE.N$V mã]Ti4ЂJwU(ymwWiM/,1:b R @!f%+47A;J=ۓ`CTL3(o4V \I7Vkq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/YUN1005.3_49_L001_R2_001.fastq.gz000066400000000000000000000252441411645176500273040ustar00rootroot00000000000000YX\v8=~&^?V5(GJH|gdY(Ьndkp9/I;W.Y/w/{ȵ]&$"Ipz-ԤOKk|%g}EKt}rz@9BPawG9}2AVSkGzCO1uc12$FuCJܪ#ꖪ<'#ap9O2qU ؎x泳6Fs6h\$/;nKo{=`nw,{;gi x_C\٥*ilZUMq^$"P@ `n1FHm06e'd;n/_dT9K%|\6+r>f.F304gtZ5庬Ѭys&ڡ:TZ)xM&3# `rc60@LDa.qK%gdPD iC~6#ڐhCd9JћT.72p]c ^-1T%o+{ ~kbl5PTH&o؄muսa9aXv^ 5/rC9ݡKw(_,7ʢ)7|Q9pC. Rmuɂ$ p Z.bxkT] Ŗ!=E6Ž?vfcDITmEҴ=yK/|Ri&ʂF' .Ʋ: ]ErUMPvp؂\Xh#Q*w*W@k`9#no~2"0+_Tq4ӢBeJ,tW-c! ck[͙tndy#704seSRCbNT|7n{<+ ,B<feOlq餎~ [1/À[_QHf@!3DM\sHLAW4J"dYXrXW+0}10s$s6BsdBgT  jh H95<~yg8?StxF ՎOyݵ{-s3S C lbXT` BP/LgS|p[+rc++l~O]7|oFp5 ߫G{޸):p'ʥ;0s&cTX(ݞ;Źj_L Sgg:̀{y=0ikf"mt]yqT<`"6bE'͑dz.V,5+k)$'3E/3⟂.DZ6Wݘ5!UD >0pqI]ҽ{.j\/`JI!KZjjB>,#51JU = HAJ5u7ĪR6il@Ӟ6 s`lR^c&?k yf35 WB5'y=/{?}rzk|TC9Amü5 fw'`qE}4`Eq5C1ȸ'YR?jԒ(h̪-JX3h-9ӰOc,B78b8hg}`fx9?=%kOYCyHC 3>2uPˬqB2y@rp,K-GeD;_qcAyꕩ6Skc e_+f߹t6vXifH &HR?@5~X͍R^72S@ov-Z&;"<_'V0r?2J=ǻoY]=w%U&ޅSV#ƨGmJ XZom "Qs͸mRIQU WᔘJW?>A6Y!zI ZK<9 B{Sav;NO>Hg ?tX }tj"B+g-MgE؂;l6xV )  gybjbA$pp]DoD;E3-@z؞WCy=~EY< fmY1I D5|\ =Ll@̛֦q7j}y;ΑNAiAC+A^eK8 V NH%Qm!Ԇ9.oZ@ =A֫vL+XoY{e4ڴ2j<nHm~% 0âbt`DC j0~+hLBFLvTt-wl< `Ac,Jֱ"JhՅqt#8f&:ys vi}V\O:!&uoQ7Ԡ7,G 4YKr 5v8)fybUma%&c֫5큹[pot8gUֱ Lf7IU :PK"TrʍV䍃~v韈syywnY\Z-'/2'}["c`u(4K[gsg,:ӷx;xN/>T:B ie\gv6qJrlI8Zzx2au|.Var L<\i1bKc ?E`=l7vvx^{?j^oT8-[?SX  MM`Rv)5gPr*o\y{mʥs)8Wup-F.>k/Z kTP]5]Yɉ\N1qgsk:.dhVԀX(mFS^bgg<6~)/{vѣhYi2B4Wݷ q`em3&0T=3k̟Yo<:߸HY;XSw?r8؏+7AyFr7N0PEGrVӢ\#kI24`tKV2*4b8c, lBEf"}{Nr:oaSY5މ.v˺J1} Guc[Y;'zDkafN:o(R^O琥\r/ ꦬ8;e>ߍ#;`g>럮ս&6XCr %$Tiian1PVJQ,Z^QBPOWS/ȃONl7fbA 6+W3܉SLJ5_uq~QךB!S`s"eXC)T~50;:n4 ,hfM`F"Sckph@۠#4ueCx^@F-dVE; 3j'qP_gwG0pS=?up#,g3gR iRx<r`<Pk{Ƴrwr1:$:ZMU܏aGf+VR&́Czl/N{9Mln}2#y!>>n3n3M=Js陦4yM?`Yt-Z|?Bn|ȈY/@\TF 4r" ڮ-9: mȽ@yIZlʜf~Tw~v0:C4,Zm/Ћ:tfpPsa=s>ݪ] BRM"wÂGIhxi{C =~l|1ţ|9}4Oܩ%Ⱥ;ZgqWHZ_C&#AvA<8Kl*v_ݵf7n3w/P A rIY%N&/srG~ 5 #xRkb.処η)oBLT3F/iysh@!z9Sj0CtXI]XlMh:CX (9k P$`or< ҚA34vjdAW5, 0@0@B lg IFKv_t|?wvCt7v:?ùu(9?Ca^5"慾mi8'0}O l89PeatR@#U1Ňݖ|}ek"2-f!Sb31kX#=Qu  e~iaB-(9R(p676:$y41{/ $1E-8Q[U6in>}W7~`v,Z=J8zetk퍮"a0Ui8ܘc>9H'MvJͦd@ Apc:h_;t| ^_u>W0j2?+GU{"PjHC/Q F~gDG7ra(R e UqٷXQ+!V:Y,Qw''u hqÇU8ܳAH<T#>YRTc+HkIyVXNpg)1FONTa،y T˶AĜcݜ!s:h+뗸ʥ~ȁA 7|ԥnS0/=v~%h"3ԃmA9!UBl8!Ztc3Μ&Q .6E#9Wфb|ovo N.QAJx2H̟)SX5H w5 D?J,[753@ͨ-^ ǂUսRm?l8:Vݚmۭ.Uf0Ut'4H$»B’,nWgY"y.nTDړ)]-eHjsV:!ژ#`ZHEJ0םAuYWQ1X8Iٛ6fRNRr!5*Ulc ƺ˷dFn+N^a5T^ ]o:㖆 D /*G\oB4̈́VPcdĶ`!0< WniceH=G>DX;1}$u C7xA` 5Bpu[m(Ͱ\_ e}{9ގҧ%}Qsw*}QB[B'H|75u6!ybT(zhTs0 AeF]-~\x e`P5=U޶Mcfm6[35Zu?HIE]m!BL 6MUZ`3lF)hـ"z P,}=eGu[-EpSY"{xŎO Vxo;9drX ]h[up5_<u%F@:&ɏeb.Z%^1I>oSp]5_nw#SiUt9]?㴄KQa jcҨY`(BT q@ɱ}( wailtJK|= Ad(8d^/ $1Chvϩ*/'ͻwb#~AfE Q^C7^> |4]%htjsg3K5l!yvc?HQFkgBfп>!?& ΌoFApwy(g 0Cs>V웺qJX7#7X=XTѭ>+_L]'[_O:Ƽ_aڲ1cqj*V Л H,=Ƌ*2(,$ぴ;z̖W'|f&df1{-y> Ұ?coi6>\D AE68g`~@o͠:[f˰r i׼%5tJ,/ !t +azMm4ǿo'#髢ޙ78:/$ =XÍw=w52b$(ջNj>i&"? 2&Q`nq7~2 V<23{/& L Cw500cZ21NvgRקdi@WBqrSz)䯽%eMѠcԶ]-4GY|;!30YR4% >$⵻ %`sbGj_c^D60-x*J,o@:5efLbP&Z .e**iɝ" 1#x:>h ˛LYSR ٔm]s逓Hc~e R }4: UQØxd~ALlA|q3\oLQzFٕGY z|S[י.mh4+<]v{MkE.>(O7V$K=+S\A'DpVK94-`ҏ㒎(9 L^z۾~[5jW Fk ܫKaWMd(e&6}.ʷB;X$Gp*e' ~X2q1JCGqau}*+7׿~ }AkG{Z#}.>5h pס}l'y/]DhlKϏP:?yv;eRQ/*"2/GMt 0bp4CmpcŽS Ҩ` kU`:HYf;!,6DFT=@~0ث;[ly¤B%0.;(̦1_t.-so>kq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/YUN1242.1_31_L001_R1_001.fastq.gz000066400000000000000000000220101411645176500272570ustar00rootroot00000000000000YX\ݖ8=6?@J)Y63rOQ3U%Ppi5ߠk=4Ԡ ̈́ 1s1Fefhb[ ҌwqSz o653|)'ӚGkk?F[8oF_!ilUy\@VA+RZ#}+Nga&\qr /#\]Zѫ+̀譹/:sݣjf~ a& fD R>yn {yg]t(_+L?-<zB461() `T*k|eW :_M^[Dj_3NVIkmdkKGPUU&auyo@{G=k}G۫kUcg(g9J !,qR07 N PqRl@|Ἦ"רˢ=zG=AR86NX=h]~ }H]xV.@Q7Q ^7 D2 Q!g1-dr ǧL Kiq6h-F`g0Uxp od/7䝞z$j>wf2Pn8 g'DBc'p4>> QOb,CA9PαY IJCB9^FZx1ИY2ag)>  րaY#,R>~fnăEQ̱f$HwxnFof,yǒJ0ʰ'٣ g-aY+WɞT[km3J ~W;SzrR8V1s¹υFx8C{,AN{$]xtS¹mC*3œ#9 2}eyI-( e'IIRPCl~q<;Չ_szX;A kswϦFH8|33mE;@3O"x~6mBF"?3 !\8DGţ&ɧ#A3DL HA9z3{9ʑ٤QQJvǺųճ(DpR,:%p҃qj4?7b U/a0UHxχzou[ʦN0ij_ Q)7fmR$$5_K>C۴dKɳ%灲ٱm h^ #e#3:q4f%(Vƾqѵb({9X0 ! r6JFDs=%* s[emHHӸvT3D x9S:\{D~MFyԔ='P~cu0PS0HEK0{ siʮGzP 8ͱ?e]kR#g4~q@XjJ$v1kݳnń1KDuiYN8v06$7!F ]Kśsml%PVх\-ġ,:cA?O*lE+!׽I 3zEڙ2@1gLilBp8[l7Ts gFAϽ~~<[gZWc_lk"GbHsr|IUo~{7R<I< %`58 u8{ y hTX.V#;%cqf 6wDp 󄳼1k%P3uC48a޸Wr1ԴMJ_UZi.j.~1+mPhwBZ\] JN!0.+85^ 4Tz tOuy4mghk+Α6fRc1.H %hd0?PZ.>O9wm~m; i; ENb Rhs3m!JVuKi\!rV}l=1]k뚒рҚ(Ԁmihq3\w$eqwhDρ kNCpp*_0x&q(:aYC_VzaaI/2 uWު7R)ڸBt}xGݴ`8Ƴψ3De,h W,%(Q ά`8h熁iQȶAR<u0{!2ToPճ seb= ׷7a5j.vS jtC](O e)u8OVy0l1f#n;p7šP9y\o6!ְC̬Je! ai^6'HQ\.: j{<V]O 5=2݋O)'TXHU z鹴`Tq~=J8h3Y[WLC_p14D.~+\!30TǭTP Qfcƈ$]gELh($̙[kv`)s$3n#HÃ]ϕTjjj6>#p7 )zL smkC| ]gP*Y)>TuB*ت&2-Q(xacdYeKTvlr9R ^/\o'4PsI&L$ḉ@k Jh&N)}\hSZyuߵ- ]3kTĉ%On>YUJ# Z׸ϟsBfgl,$3ڨl>N%IIafOL&r^c}m+bm!wlSL2Vp[͜erGhZHushG?wE/Pm:f 8ݠQAywA&sKv/),U9 A.t6Ouws*^%x;O@:]n(? /{qg*ʼnHm<|ǧNekxrKv+vaNE|?pRϽsUr}z(;YA? kk^Q;4E)θ璍}+TOV=#׬ɟRs Fo'7>LݽP(=!kX.:Uܸ]x vqm$R#fU,eyfojJHC-5Ҥ( ihtLsiǓ#,(qtu,+qH_/gAQ)OK1G^CJ(՝Xd\HfR%Ajr8S5ѾChihcҔa¹*2Jv,)8r`4&xYBxg5͋{{s?WI@M'y#:?ȍMҭ'DE Vy#.5[wy CVDXlDjRSS&kr{1"ϋ668xs)~xvȺ|'LEqsJYru 1'_1-33\;iuLH2 L/AbjOBӈ1=3W8ަfM L$ ZwZAP{`} ) }dӈ9kBRӽyG xY*8&\6u-u76! JA5mgHY4z:jFXq̗q V2,au f)u;hgZc;b.[IWQpՑqM+}Ң)q3MQU5(f`R{W:uzܪ#]#8o"#$4ć%`č q̹y<'b2Ϥ)Rhga:d ._D~7s/=\ѿh[Ϲ.ҳ̕`6ÌzP"a9JCx2TN#qs0ۇ$8my [c‹lb],U ONp6_ݵ,%+YQERr1ȉS9m+q! )hPl N]3&4nJl!G.D'O'%l 1%(bELzd=aU\i-}ȏy (arIy /kw~ /i$cO+ ڰʘ5[ 2KAycxMҼBW`AuKI-Erc3e*/hÿG٘xsԸ2ĵ]a?{M%ܻ3I;= .ο`)xVIax4:ڠx <ϭ H2W(l2-/={-f@'70ӵ [qtAr}HFu՝6-xL8+Ecaѣ~mctsml2BаP<5Kz򖐜h»UOY L jbRB@@A,3ށYS3ikb2DHm WHfqͼ0%3}_uUמjA𩝑oxp >- r9^z`C>1 H LZz>^YnRاhy45:rJt/֙xIϧ;@3:o-0RρbKM,ͻwQq!جϧCwcgI{ VRK8.  80?IFvT;JYc>{D\k+hP`%[1Wcym!P .&!rDŽ=~i!a Ow\G BT)m^wj(|]Pܝ kɷ2^UzoE SF.fB@yoY6)0>q?gcO~gyw~WӋ؏xMH[Ѐ#"ngѲ }KQ4498KȓӾ~EBjr /EC'k!NVo^5bÅelRi mWllzH_DtrOsO~A`{!sis+UU@۫ךd^s*{:_,KQyU6,q%3e$밣9^g,"&N6<?^DZhcVw/<Ҷ|6fUo 𞹸\TPA}1D-. %`+%(rSh̴$SHyk^ڙ@}DuBrz)`[>4q]StsPO1S9cd@勌v"a@96dXܹN-$eGOZ/(^v19}̷fO=`5dRޜ9RӒx KT8P%p XA&.Bs1GoBaCԦPua%Vp̋L6 94^@Q _J01Nt!!/܈\;hQÓlZbNQ)=ԦvG6 krFؙ~tVGTT嘾C,VfNix1J> q)&fmMeWqWLR>x&+:U.ɤg:^65 [ŏq\+?g3%SϴE1HJgrY,H":\YU*(Pu2V6,ZhXRu5TiL]7 Sʄ jq}?֚u蜁@gAWHh #L݈ й(h>&STD v>{Qwօ#;~LLPܛ*: y-ViLhX\*q?ZT4itl[lT2(X,J+8+EΌHՕl$s|V?lgeq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/YUN1242.1_31_L001_R2_001.fastq.gz000066400000000000000000000252671411645176500273010ustar00rootroot00000000000000YX[v:|?_$ $fЋ-]A)LtY$P,0|7}'km{鿖eI-- K -5>/!,qvRkr9;]Ma-܊;y25BC!TL u jfr5:UZ5J*1sfqڔZ(obUzTJ G7\}4{s99̗e 8̀0wЈm@L^sج0˾E^cDxwf䍉oBHV9(]8XS4+|QiԨ/tփez)3*' @~Nkvx/ھ!}2;ϑ9}PHf2a䢡5!3MqM,` Vp5mwۂ UcSkh:T1mrLb'͛"jU1I;vySi܀h{rڂrwH?2@%eW  sG"MH2o.ՆB2MNXKH 4:BcT k+sDhHR5By&[=a^%Moz<.0/_QnQ}eLXˊ(| >jD4 y3U[j>֦(32Rm-q[1l3ӤPjRk?n\ZK7-0_p3tgjs3I'wpn_NgU|O&731e!$cidTsv`Znm0i_^AO58Yk]:1m|3Gs>,Cӝ8+7W=#I9 gŽ)xJxh+-i^ip- _+Φjʀ {y-b~" \9^N?P67Aata`9]HyBIp`=w5nb}׭¼y,:]6SX#ƴ۹l>]_=TcN 1j V7#04eAgdE&B@S7`C`Sd1ІH UžVBڥjj}bSKq^C''q\sx'>sWS c[ ز&5wHar :PWɥgY>Vsa0JBU@W/^;eڎ%U<%,ZI6.pG3$C>/}"a Cm/1q+l#q HǤFM2$y q/`K9$]mevIńH8X]%wnAx-|̳=2ό'cg #dE18|.5jAQbGI|,o)bGI8Xe?B^qNɑUbL~~q/PŞ??>/ WGF2ZnjE p饕`!ji.K:SԁZ ǢPXaM6Z3՚kqj= 촇g{'kh[L:s? \rYg-ޘv#sc(uBY]?௝@4$YȌ\ 0r]w+vWt#w4a/^ FXS%k"qE(&MΥ=%7K \7IBĘmMJ|->ڤ9`)ЧEos+BФgEր*V_PI#.(Xt;t0JF*&jD][a2t5˙z1#̜ (g}j s63htPENB***_B<)mi_!p,67ky@dk':Q3Mj瓦 /$a~_v }.ߖwNΆn `b@^*xnAq&DC'ɇ"&W[hYbŒ\WŒgm5SSP GGb\e Ηq(jAHw]$i|u Ău-H 6gg P|'a%zLL"7f?/aqLmDf7-I(}H|ŷE6upsfYs5T -Xﵩ*M2L!G @7Ch_l78|OCϡ.OtR8~"+Id|NU C4E [ :Ǩ)&NAQbgν{ g aӝOrb'K[3%ݢ0*yv0 D)at^[0;iy Qр5"h4(f[r cZljnsD㖹 IͶnZLvbMLUNq5lf!e-Un>^Eo[uO| SFB[ڰ;Tg569CR4GJ3u>41 Nm0 I4|p/Ov9 ?KBsV(<2u҇ ^8V3&4ٱdcH>[:s[ErXY{3Zl.8f2 J:ٔmERӷ 0_OpOÏYV#m 7nqrܧ@Sryb;fs.uli#FD"<&K.)D%quDZ'w7( =sW}}umәdpV$}C<4F٤(/Ĩy 7V{]>U%k)9~Q5v#n嘘n9VċEnɗI:00Y8\x-ȄU62א(%|7Y=ȩr Pt>Y.H+K9EO ZZK{Ke2]@Vhݳx CPs_øs{gל㬕ŗ2Ǹl{ڽhG\2E?Z—m8tHEN*HSa飥K܌` pml](VSzsFjqalZ1}+% XNd$H6^W\&LWe^%%wu{%/3l3(EhB8%H *B\$ _Y9'7dS)Es^録MپmgU(zĹ8, 2۪"bFnZut u Rx:!:;N?3łM5B90y=gCcm5K|yMúY}|cj+厖1">L6a %eWNYfgVT6H--@x0"f}pАǢm]@Ž sSe#?[6 FTV{v@u!kfZJk_D,':-QNA>${-8PzVed&4hz./M)[¼3p<='[69Rw#ubd@D+~Ȓ$sJ+MSps?U o_Px^<},r˦|dԽA;M2W/0 #=w5=sAd >0e-%"EpBlc:GW,Ѩ3K 9P%4_|6X/X?mR~yT}c&54!qmP. pIxLɰLu&Qs8-ts["П+[Klzuͦӳ37O R~R;/79+wJj%} hǜ*dɳG!L>y]6ll׳:z49~V}\[mb$RXd8ʍAJWI.<7fpEE,ҟ`"BMrBw!CjG H7*yYvlcз*$Y7XUOՍNVm[ uq!|=Br^ªUc7r'VJ @0^2ԱcKgf41|")K0<`Бm;dm塆lfk{CK{|eN!רD({Re\?<:K쎈&WYt7\7lt88HԴ%W\L94[s,ش4G-՜!׋b 6=  VX[3doUOܿ'Іc$9*:M}t+,dj?yt6t" s.s]tp3;qtx@h_zHq#f]{=ߋsRs9n߷|.Y[XkD"ψ49Rb̵Ju)mϵueMB"ҋvhOh,jn7B3[MIhN75٠GA>:!`tnHS`_'uR-Bm6<+"1CN~4mGCIR!\<|-'#t(0TsCi)cC83&|mݫ;;}ci 믁;Ox=lWVA Qxe]Bb8p`iRA3WYǧ**W6YE̋b K͆E7Іut*_<_W'a?D>+ s,V.i,ձ i, sRg u >drK-lь-@V; 8seBJG)콐f7ܧWflQ%<>w옵:9N.'&9ݷ"Y= jSTu<Lʛկmb$*~(HtW,taǢ&k'^N E0xF7<3enU$%HEy2F#97-{.0jߗh {3] eŪ"1z FTŶr'R.8'rJ(i'$ 3PyvLEIx4Рlsw `j In7(CwM<¢](FACxDkӂ"-L4Csb{#GyfmpQӹs$YC\qQZ4m2GMf9 l{ PV8[ AО@,)^t 8ʄhM0KP~E]] 7mgtK/ \llXcu^fۚ &_q^Zé~E+&[bϬLEM-%&>)EA@7_[ƓY [{,)ѝ/傿|fKwG`PI`{tit.QMRauk/i1"(e"Jfy:MZ y;eVe4qho^>9szC-c'FB@fJTLġy')NDgE"-0nKn$+ɡ':!SO.,$< 3p3Flu q #tL|wwW s]¬t.~}o'`ԇXks\k3-Dvt}E,3}CO<Æ2QY![o3:+5ew@vikqEi[lc4;s>=QVp1xL(rфdi*ۈTBz*PX-n?*Ex: W ?U5qwSBF31(LsB; qϞZo,{Vd(4 N[qƫh@p(}!\b5h/uӞb|{i9S[zF]]n?BUYoVuqBo/^r Se/&g u^wҩ5{u]V=q $?vFgYccJщW$=΋dYnˁB6:Nzmܦ$l4sBR$&\Bՠķ-a>i{<UTWz1U\oGRrni%38IQIW-U#~u98ZJ x#u("O\4煇uOՏ7Wӣ]qSpWLtg3y&(9)sXV {>-iKJPA~H:[a~/haL rBu^ZGfɪ!mĪb RNV EU 4הrg$@H#EH ܧYjJ3 )xzx{m8_`.滥`e.^5?2k|ܻrIDN.Qʍ6Җm"N!^9}xoGǦK/!/C:.QqźT7b.8mmPS|wjU&PD[HآWT4n:ϴ}K_ \]U'(hJjŭeY^z~^@09?ft5xʊ}Ӊs8[&b%}R 9l\ڔU^8Kn$$Rlx4/6y䜣j0NӠ3 >8rP-|W3ލo5#'{͈5s@ZUiEP| , Zmٵ2^,.|O KDt+CAѸAGb}kQilKPd>jԍ&fG`> 7턵 0.q< jı.@n]Ft Qܝ)iNBF *K W%eJ>a^IiD+8#xN8BJb9,X[r T/fP9ɕlnS(?zOZ0_u-,o}v/?6SΓk->R"OWDGjш[sۡBwh`::}zS_ϐCq.)]SJy,j:VFpoNٓc6lNiuHNɝXkɳСdŐ}2ړy3ỹН~ 4OwL|/g QtJր^EOLӛ Xu!@@xsOtަtΫ)A=3̺@-Ll_ΰOv /~S%N0TW8pױ}@"ny#ӑ<=cLn(r\x<7K͆N|t{֩C5֪9BȪ!BF13|$ +eb52:v pܐ(<ԔXwex6rOx`rhaIi Z^jCI7:6eq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/YUN1242.3_44_L001_R1_001.fastq.gz000066400000000000000000000207541411645176500273020ustar00rootroot00000000000000YX\ۖ}ﯘYe!,[&.NW%5t&A έ`ǎ4hhB>$I31 D:ׄ49 y2x5wсm!Q1?LI2zǘc7}^Hþ!$ +6iY64 =G0踰<V*/HXj?6vi@>af4S=mG& + Z&B^W 0&ݽǞtmO#pQ٥dM0/hl ȴ.jH^'L}x<"44" cNo}xfbf"h<Ibܮ:sH3sL{Ѓ! &HU8XI=_OqwR(Uj,Kfg[X-XclI.SDKiȊrfo(W`690qBa2$i#q&H$t'U| 8v^?52Hj<+XpYL璝R:7!V6&ӡYX51A醈S[1δ# vrHGN/Ibp;Wَw2v"R$h%bۢ&c7$4Yksk J)h?E04Muw;V#@sS]ɣmc{n\PXyCU-:E\cKbr(Lm!TAlY鶷!4LA=Q;J""^)IDkXP&8 p82o|]{H hE6AJshQ i2Kfbe<&RDCUg˶'K5H8 U{N: >'ცxW 7b7U"X+!ԩفr!z470G '-:it ]* Qr>HZ?(M%uV93[LPm~&>y_pvsw퉞/=_^Ir_N$` sE$+yqaAOgcFI%Atb|n5AԻu'EO7ڔ 5C*FڙDĘbo$TIiA̬ z =g%XIIDvqaK=_/"kUs3o(" ,;"+3zvncCRunhp 7g+8IA[lL̬ιDzpG0"Y#˴$9I'Z8iAwN5ϕBe`'Ù`6mĢ`e%DOEc - fs7: 7Yk4Qdo3a,\&EA{uTp%!sv0$NٱN}n]s>$E.,d_#LlZ `pY=1K7_aE:G $߅tmw: gxY/A6\f"Xl\4HqJ2EvmIgzэmGv r##ú-rJ.V#J.T$^34/EGp6oy4:Ւ2iv)ir}7 _ACZNP3Ij.ƖrS=Zt "I':׶ +b{7a8 m)~?oc]U03z;l}9 ĭcWucw<ߤ?ؚ͉-WRDd-QGř3W<q%(YH =g(0MCІ2tca9x<2LfgGVX璜"Vb{ ^>xLs1N~;.3n)c%!$F&)v״qicw6!'JQmԉ=GM[rÉpc!Lj'N..IYᎠ `AO (ѭ*qHʐL)IvZŕ'b.$LD?%`ha\%~k[Duo`'c;cfE<ʚT5PQO Ag2$:3c F9G1InfM8ǡiCVc ŵ+9;M4 q5ykBH>i5-\tpz*#ϓ:m;$ueDؘ&߄-HkG8SWpy)vFbEzƽ0N:>ܸH0 B-g]p7n抹=gs h呵eOϓOgyy߇:WvH0IE0Bԫ}sv>D9lh\{C;?|܃s6g[=RsjaZauqLY;?znI(C1u=v]sdO_|5f\}Hh\})ܦIL ԽaXtޢ5֫ Lꢛd 1iR ; ͞S%9/~KG}aa+F΄xc|y6򘛫ƟiΧVݼ+gP]<7%f@5F!!Ϳ&҉k';FW8Ev%e 9wfh,H$NIQd@]F$!t;㱞-D,VwlE\S8X=8w}ϭ1]7|>tk8[ f[0֢Cbڟp* &H}\L iM,ÅkN98DzU7wtxas/f6JbnER캼X۳iJ1Zm}pNBkߊhj-\Ү<*h5Ҁ kKjx\Sί[\Wq9&|#A?'_k($v|:4c"t9FINYN1J< /TSǦeᅾM h/ڄc5 3o  j%h(Te}:ꏧN3Tum HVo9Fq6͞&(WeW,0~ai?/} '+DY^tι5RL sJLҹ6#$0_GqcjrݕeK9y*ՄXj6T;֒f9<.Wf=OW~sяBfYҿ]>^9t:X+grv.E8C,2H~#x)u*aߗc]}yP}oH ):Ա9tqQ^νHe G3Mz\s6YXT)H1e a\?5${nfx|-Q^ʍp%ҶXl0 QD+O}IbZ%347 {PTyy.X=ƞalGW}gƙAA PlО gqnlh;44 y]Dc}$Q$Y 6g, }V9վL]]N\:}(rF'z 뼊ap?]J!j*Nfs$#􉤙-+a[c] HȏOo3?$3,FWb>ꖖ]KR?55l{R7\O9G ~5!!C9L96ވC)`wə}s夨nJHȤ\qy.h3~!1ΓT]Z)a搇MTk\a2cPU.F*?Gʠ>?m]wUǷ?H$! t-XZ8:Cqߣx(*.H^m2',WQT #TNhhՆtix-7wgYdx`Ct]xYң+} {s+vVpt]1_}miLs_g4 5~vܸuWYtoV ~O*϶H-E;~y .84WN4 V%yb2=ጱ.tϳfB|+mZXF1| D8:Ff\ O8Cd8o*'{ :$'{Ř+Xu2q xY⪅b |@J!dFac zV,"* cX$A".sjAR߮sw]04xT2V9ODE/bОp9HD2),4 ?Y'cgb <\b(3E3pNOMn$^.-UՍ!':UW}p MUle>'^L:E<$ë{>3 kXJ jb Q̂ac/M'1WAP9-툯AKvh)ϵhh)*xiC9~(KV1JkPC|]y]e{}{ ^?mpAoofgO#:s!f( (n |aIJ!a)`& j%``mK&R(Ťb-D)*SV 4M¾Jw+U5֯>gt? FS}=T7H)n2nPnPuw~H }'̒XEQjn3K"× .pnMHOUMbKl-8ڰ]= vczP Vg BVl'Ky"mwgFGY.XCjnP.OTIňovm789(Yo{M4 /\}-YEN -c=FI^tEͱh` s'CԭV+ݸ,ꦠM0p(u mb yjL3 VBx}tp!N-ڑ1HuY5up3 (j/-X6w}^dslf{)X)ȶlf7g,Jp0[!:?K vnP:l f\}Ԙ"[q!KD"2 =Sv&Pc7~|bv{Skx/ ,qʱ;=R &TSLo1D&]P]0On_7i$g(x0[#L W5Y˦&[U@g19G >sѩ_w~O?*Uw&sAJv0:oo8qdU|,*ev5$JUƻwוМ/+x-c9̓QOAV7h7c'khu3%Ǚ!4gV8JV*Y 7FDjD#nvP*$u3F st:s_}2'Vh~I'p載t}a0v8':E I?e*(>{ 9C[2'Pu[ߜx.VP3eeD=*9:ǕeYk}F4~ƪs:nG*C_zE:cE+ sF݉}40勓Ux "\7u |. &Xl@cDuX&;Vۻ9 1 $qBW;YϿOD˵PPskYPx_84s1Dy,#~tάrv9a`+T ֕~o EE}>F\]\΋v\\t|/]5/3Y_hrq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/YUN1242.3_44_L001_R2_001.fastq.gz000066400000000000000000000253261411645176500273030ustar00rootroot00000000000000YX\z:?O1IX  \jPX1s?GI$UhVW5Gks>c]8xө?l)-uYRMKk X5A>C!,b;WvPU 'a 8{vO;9AWrY0^Sgpcb 1}S5*cgѥT/:\T5'iqK^Y8MA)]R)sޕޙ7ܞ߷F{>-׮;sw~rHwCzB +ʲO]Šr(U=P^ km;$; !RdQry6<Z 1.Aa: #~ՂmxU`|CF&ajTWS*R]r_UMڹ4}~wmeax:iSڽioP9g}|).?&R="04Nhj=&9REI^! Ƒk cG10!1N-6%52bs8ܑ\~O9_;_93`5O]!#bBh+ p%0`D+g1BR8#as͑#x'gˀ{֮ x7:C#&Gc|]_/9<|f2sü|!O0O~+54Zrr&4bjw[+MU$tI~-y%iRyiɮb/22Բ4efJȓ6|B;sl0o͏`^QS\`"W?L@$̐ k(|Լ3B7j^dA)*"bThrLEh ^a4|x5&1* @α8qouv nE-:â6$;iTx/9gҨDn  r))G-d:AaDҁq{TӟQܗ?-Sa5RʭC RBHs's'  `MP '?9Z6=)ci89@o} uWEϬ 99,XFfv^'K?PD4?Bę{|jsN."ՠ #)rglSy?h/[|p=u_+ s\kGjK+sZ҆@Af,. ĥiҊwLlɔKnT$yU )qfe[lpxNh#}k1DJ傦[f&sdj0"RSb8[#sLd" CV59hF\/jv=Fڦ6 0_+tF*ϋ|Kknic w%F#+*`b:Юp&@ #} cp!5(k2kCgڍLtʶ(F8*Xaw۩kafnEԱ5 2\D̈́%6dD;$ &0"d"D R‡9~7h0 b!tI"To},Ⱦk񩸱x]E$B!}[k J^-|VQـ mO쪫ʯrf5n R\bȬ֞ J] 07vΜK^&3m~oRpiw- NRW)4W)艢R S!U1S3 U;Ñ;&ͺ!LN?$`fc$g?fiZw S <8k.G`Y8Uw%M4M7,^0[_}`>lO/_N+H?o=ŗu%^HrLrjr@&C"PAaT dI$IA2멒ĖԤ9 UE{x-qFZgIOßTɟdG 'c_ ٍK)Y3Lҷb΋ E'6⽽H1Ak1^hK5У9B?!eڟ/?(kN[sN7sUBL'9ZʋMz)ɳژދ_['GHylLc*WWf o󁔰㮿='f$NUkUボkT`[ ٭ke v`th%iVt2AT4|Ѡ#ȕ}eteYЃف~V=_vEnM8ظW‽~]xBjH^I%!ۣŢ{wl{{dOpHn?9,:e&8l`&p ;+YDq^cƊiQ&~(މ3[ HϵD(;I gHq~پKeX;F353;ˣ9fhUd:IIs#U٘RDo38&VC~Y=z{M:Zkp(} 9;N`8GDnŢs(%L~J j (&9H)#W/IjHOS{%)}MlQi00c`h`{q2&SX1{jZIzx<<,uv("uupz{^ݚ#YݗSpf8w?tz}ss\>E݉\4~$<"gBujX]X 0zrn~^ksYWR5AGލASwoo "::nIn?,VgE]A97w5kyxD5 * IC bnԓ B1|ER7'u#nLt'Sz La []g#?hTՁ: K Tay#P8„6Mc te?Uk,M6euq>>?y~Ϥ9ֺ|NsSlmF(eEygwIff Le+"XR)aX>&Gz)ڱD f+X ,IG~즺=1:UYX ֺ$=Cc h:@+S?FIܼ9F\=8Jx"n.e'| oE!ﴨa"dArs-Yg`P{To G !) gWFɽLl#9:Gy(}psO`Mv0`,0H@X(q''l[&)[S&V?'?uk>^lȍssnT:Ci/t(ofd۸,H#(]7K$wفr'oggOaDH?B#X;L_E7"ALb YjL0w*̄63smPub%ab%gp)[~3v՛;qN0x`+ٮ"CX~ 莮͡jn:(2qCGA Ћ@D (g(x;/ KF'G#ub[׶po3b=h8%a&a {I1<"$Pb=έ#GiT !,HqTvdo{i]ܠ1sȥ۽W6[-zԍZqu9HylJ0p~&~ ,<,1q?ɓ _sQ)xʒv4UI,szlgQ|Q<|N ZC3ҷ9ϕg hhMx)[0΂EPJ~zp@z2ҹb"]]7b+ΩNj[~'Ge!A_7HH5S=)ϷpCy}cQ)g b,s(Źi4jc{/UAyp]K1Y:ȱm$(N|~EvH+Ú`lWCrh Y'__]P? tp[ҟMxƩ;r>?:heCW݆cTԒ@--28hcڕ#znB;o :rmxWHTiЯc7`%esf0aJio)-{qV9nx>RoƏdϫ]*a W=On*xz1>;cG+:c ÄS0@i4]{|Qn\q~_ ޫXWOlb-(Es ltY|Zan(ڑ KG'ea^c +҅"կuKT"~E+~) .C {ՋBXB.+x+Y,P`HYzMH-l=VcNEA'eLf$4V`Cp`.0Eʹ6Q;E.kfMq&zNJ8shHKO׸I/""2V!fHWkߴv lͥyy 5A'_CĬ/<@H˦);V_ yn|vos2  e >vкjK 9k*2ivRQ%JS0?NHl$" Cr3<6\wrwqq{wH@{3 MaRf!$ㆴEŽRÁI8]"n,.,I R`~t8k}N/q$ν0NAGXU U,"38u?/O1c,(A\Hm6 ^}ʩ?szEz:rɛnuc]Ke\xTv;Ort,HtFgG?Q*uEA]C%1 'R!:!P>'(mY\wtV*'bۼfj>4UUHrv/0¯0 Ē+Py2/ڦ[sn3T=^-:?U?M/9LQͽ352cryzPwL<&QLy[Fϩk{\5?!wSf*u*?ΗqJw%qM61\M5 ?ekVWF{i%A60O0:ϳNJ=9 z!!G>('TŪ W\-h/}]6$̏LJt-X ]|́S]wCp|P܊ -gڔJRsaJރLҌ8l`R`KH~\Tyk+,uP]xJ;wadMH;N欄{KK \?`Cq'4@o TL&IҦ0;{E- n9=<;?c s/3ec & o`DXm溶N*Xo"٤,,g/\^UŪ,xGJoǮ ?ApmUB36+˯[>\(Bh^!:aէ]aPx3}!~ ܐ[F'($6j鞦rf4/:nX3Wq :ίe#&1 >,)ݰBp1e?~Í?hq덊?&A3/KvGz#3&yA:̬EKKWY:.fIAvVi (%:+xՆt~`~Ah~-QZC[UHI"]KK|Ƕ[P04TÍOnjf 4M;X=_\~O]轚n^գlc>/nnzũ*\;;|QX*W>_zObI,(FBSS ~|>]NLn|b3T]˄[*,PgPoXy~ ҂As5B]?&@?m=Jm(5;U BiRԛzn^Wv^>W)Ze4 [Tخ@h[z Tj)L9_CV`4(9iUZcR: B>i WOǜ^>;U .6SxU%>- nEWZzʟb^幺R`sgM nU33} ̓P}>&v_ڇ/KAɞu)Eos%ҹ)S#}lTipk3LUo3cR+7*p,Ǡ<Q匷#owĽ)q*X rq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/YUN3153.3_60_L001_R1_001.fastq.gz000066400000000000000000000223721411645176500273010ustar00rootroot00000000000000YX\˖:߯~izYe! 좺30/AJy/_/ʏ9?VzWMo/W-b"=OhDZgpm}q+qaLG:Kܼ.L3_Ͽ!Xc1^3E4_w- 7ƴD֥ckv^`LG&\ 3eJ9tYD\tr:c`E^3Q`1Cbΐ%f,+q{9O?eM܋^ #0}|WDhG)GiMK8o.Ap.z۷l#xu{n1q^ б/0( p;v\t;Ɔ0 ~ۘng 98, | 9j@Чٺ0[BFd q1P״w@0Հ _ˁq6_Gv7 j}xbL_(8[dSێ4_(6F9~zcϱdjgm6yk}TO0BaPZhbgf;D>nU}:P`:]y?ywxOhZxX F7E\( a~b1ڙqqPρ6xJn0'OS0Jx`uwbPo0/;/Y0DL/6 tTq8mKk0}gDX;BSd[SDSLuM!| gi9az'` `& 몯*8+Nf|P=$6nz̄8 |3 G856.ECw9Ƹ#_Z#4Yc Op0 fPTz(5.ZA?cU 'OhSUtzz%NQfLuL33É8!x,L 91k &(1M>s?}]cmu9YzdfATuD{dzUugGս᜼e6W+0@6&%_ɐ?l7&-@>9,e $5=7[{9vD"Y39T9 ָXJB%pgse(N5 !'͒R'렆SX+ x:Яov'I-_}jv3NHN1{srsFEpr }}$/7۳E9!yY wJ{eeXQ+/(CAAG~qW{m4I73wP$5ٔ{Ɯ H |G|0o/^OoC[JcٯS`77r(q 3R259$E)|è`'̓-!ܛʅ^@q9a"6R诱JZmzjT9Oh;JG;RW,C9=lp} c$=0E,ƜSjս.?"xT AqFؑsJg ؂Fh^u `S(!}$RlsM TK*MSa{1 /Vp?N h}ds,5ȹ ? 3똹f,yDh4]C8/gY<G}v f)oA6D̖h`HmIܹſV#(RRSZqŗJBِB0ǹ?ϗh_}̚9n  Pe5lR>"۶śPu4!fF8mЃ0E ǚ5RzŁJ.Rxʓग़7jaX=iNrߵY 6U:ƜR~,v۬Yp3'܏Cf*~Ş!y`#NvGiח!%o̓i5}^++?Ыϣ{HlRi81^[&L2]<eE`ƭtd$7aΟU[*Ab#5gS5_n/)Ά.( sgF:7ݏ/J푱ߍ3|SkO0R`cm} ڏnOkOCVXnH~br'S !mua.TD B9z*(mPCAMiO3:7:!g oѠFKBcel8!W¡hV믭Ni8LtפZXr(~ܬr)QL,ܤTD[&MQ .w"ŵMC&n4~+Dj0FFD"ќ%BhU6{ey&Ե*4ScoiHv brǥ|87U s0ȨőEN7߯Hc^JsOAVt!\B?DUSaɤlflMgF(qo`ДtpQ#"ivwBid7?Y@<}5 c:d# tG7UyU  25l"}]Co;AJHÒEIХ'l>B7;,]Z̘ ԥO߁y٤4݁>TE60/`mP'9M94LӒN+z:p׀5<HNW\-%^?L~"(A "%ns2\XdXr. ֦WL.;5NE0~^^Y qfU:'f Z? Բ4׮ FUPqO5MZMZ״rugOq{ j+P]F aZ~t: ?Uezszцtf~v^^}TURy4 }U9bԎ=J=qT 5ÞʫAa+C@6xgQvh-Ȩf/@B%dmVmBzc]?N?oF f(/|,],k9}d9Tw>[_W$0<%YED%Q@ꥱn#A:nm@);{.ujsgc8NNbB ^sR$ӛU˳B.o ՛oxFe=, B5&ovYZpZv-#$⬊jh^RVyu>&d)jtnNLbcu@T|ufRBIWmO=81xʘYEoh[նnO{ē*̼ 3#k ] '6-XMCb$J=PHGw[ؚ=7_Χ?K+wx^3klg\Bi dQ:3Z 6uR)ba,:k+,LZݵ=}|3i͊ҩPéM,#m/~2̛aEd@ݶrF-y$gq;K!Bhhn& R qy!H~힐q>ci^s?oLP_c."Ǵ`9x& pc rmЄ2 Gos6T髥"X N ͬx8zؓE>2F* /gA#w),l^_ogC&Kg'S<`r>ӽẔPGnfef[H3I+Frw"fbzK>j45'56^T !{ٍ6nmX0;zh qX7@}vN)PnԞ(Wz[]ߐ(n;&G|Wgr7w~9 ~)p(lZ|7XFqSap$O=TI)PL#|OM ~uƑ;ر԰+;>es&1}n,:o *wn-H?l%[a6"Iɉ{ yܐOfb؈ A'}|=U_4[;w*qERn)Iz%uY0Y@ k< -\: & WGp%%sO8fa7Y[CXkXKWf)jxh딹3:a[2ll\=,A6߇QgF O^M(ViABTNa g%Ly -x'M VlX܋DQ|AtiŀKwNYi>}f1}H†Xs0$,Lz]cNBD18!_tHˑ?48xb-<JN&ݧ;(O 7ե3x / Lšd1$!^8嫝JCAW$ S_ D2+%FnfD6\ʅ"aOAyS!Gl$4$,Hxr3C崑N2ڌnpl>GV;',l zm&[!oѫjO ̂R&Z͡ZS?oĭ;H7FX]|wˠ~FPyQGʓK0Nlg*㖴Gg(c9x=4֛;8T-CLZJ\uvLVȓu(guMf>!Ƽ6>v&QFbf&A8𼤝4GQyݫyO$&d%XkJ,0^71 MUz.j6y*xè47\@As|_:c{kJ1{j 2uL"~e2'KohP5ƵXkJ|q- ^)+l^ڙYM6Ov:Ʋv=.Fbv1r|U鷏]wR맄-$RMfV*>֭vH$VIo~ s# N6RudhO]+\'Il|꘴&RKEnj?aC. SH$%4آA=zac^BzxR=&<ZA^Xak=tMB, %?dgsކA8 X3 ɯ4b~׳- )M)ǯ8࠹6?rϿ:[تjYTuX5̩kz >@&7ZHXs;O@pͧT2cP47` N*@)n]\&kMW!T8*1HV\E0R!]#Hmbq!|$ ] ӑ+3#vZx nAp&B@ 8a%TD=5H璘g^ê>xh"DŽ!4ɊU$F5J,qPf >|lZߓ!W8F5aq.*Qmw >j?k-l8qYyTq޼ӲR1. *wԎI`ǜ^CɟN+$ Z%xfm,[y>m{^ NVBKiq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/YUN3153.3_60_L001_R2_001.fastq.gz000066400000000000000000000264551411645176500273100ustar00rootroot00000000000000YX[vHW Bbe0-cR$UUE(Y8hm ;So41OieH.KKGHxqI6wW ?_v;OBYIprG1x?k(%j^B _\m%ֶԺ` 4_nSȏYJnmYjNҲdڜsڸW{4-fy&V!7ZY9]a p'!fujO|P[:@K-Dx!mY_.{I%t.=YYB'"vO[b*5cWUk25]309aќ~_4.?ʕnbD2Rey#'<ùuYD cV*cR޸5t›f i9p=2{ӊ $Kp\p gs |o!5.DL*Ds1%^I E_IMQ6 p0@u@X' pJ93fr]$| tֶp> #vmcp!6f&˖:!Z+XczY[slg+ItMFDR*\M:?t>$pùmq6|jK (5vm4AW<7jRS5D8Qq X(eF.ܢzoI#. o 'p{m\94kڸE ++X(Y~sZa~G)&,1%Pe=lu]&=42{8 H̞YrBZ%4&\(M{0_^;<2ghhzD&ܝ?shssz1cG߫; g$!8"™qmB!HВ1"Tp=i 9'ۭ%vf8y8k ;` rߞy>I*T (ȣ 0u 8W;-PC;i|\Y[@fm3+>bMI9 6molf3kl Χ9}b;qϪ5e-j]F祕6$  -Jw!]Uu ڪ5RR+= ̧kC%%T#딸S *?m3Xs܏vw6ڐ]q__sWuB\̃C&6&"!  #}Ҡ$UNsu'P@ʾ Ę8q^աPHª̬t7N8p<(vN?rVc4C9 l"@XAƢ &b9"&Wfy^- F;Wzfi1nu\Jﭠތ(Nnu>Wpp 0Tp+qWW\NhlJw(+ځfc*&f%H̀ػOp9oQO<-p fsM t4P&k k0%0k)#kh1!bJMTC7~M#`ĉ0ΙI͊%r i&V1[zr8$8* Yƹy3'==jsOO`~h˕ۛ+'*/_39I,F{¶tE* قKږ^S~.ehJ7!uP'zaPH,{)d?-b]@G^}pܙ 7ҵUU&U.inb-fE,W-L# "%JX$2K8ŏ" 9yNx gd}|\<~gp%R/afVCŠT:idfƉQ_J! BL;Q. . 񜠡5#:JKbU 3jwaėGοX6?s!|hf)'({%1jq׋bh )1K61T}E!09KK2q']6&娵6%MZlgdO~c|I_s+:ƒ~!€ ˢMA-VUWV޳8s7 )kHlg')!tXNj hE`~5pH8 ;O,IϗXtnv[ Ϛd)# HQ3r. -;Eg6۪oyjڊ'r-1kKTkHDUaO,Gn~/ov؀<I"֘ kyikYe5!ћ.*;lm/Pg6ڔ`km뾷i8C4Qy0}Ff`mv~΅vG-^oFD Sc 6$կ)3`'H3CIM*I%g9,9#;ǝԐ>v~W0@A4i@ %, ي8{ *;^~7슴Vb)E0iZ?Ψvo " wKã848 'fJ bbUx tz/)(Q3pbk865&3v{;VD2Ʋ@gˆ4`ڃ ۑg/xT/BYW'֒h\XV&9lUuC|a%._U6ȺL38y*FQ&%&=A)7޳,y@N=G--屪Oø;oWlLya7!Wf ` b̋iUK}9sag:.$s,P΀#Itgc^Wߞٞo^0Ju:)}|$vrNTϩDS#+ ܡCnYR3V܉i\2*R)u'9Gݬܔ@ 5'r9tb9l^~M/30<1$i[pv ^6`>q<S]IZxAsyb3^E d,izBJf{E赉o8˴49O (A$Ajx.9/Kz?ò#/k `.=?$  Hte[+m pq!rtO.P+8ڲ&k)x(U(5 XtH& qtiތM5~O&ܿXv7lٙ~/5 Фߎ@< W4{lNeZe pJ(>l58SmAA$Y*E iPe[9EDUXtzwzdP~g#IwnZC♣Eeg2لQqdNAydH)%2Eap2 &\SRr커̹TdKІٸgpӎFA@&!p@Zfp)HG/u[o rT,=d/R'J:ZKhX9$U直랦RgCβ6>V@WZ_v R3 t1]:b\J9F5b4 dBt]MLd2ٚYUm"=[o\њ[4śuFSDjc)}mJ9陞r(GHgw3?y Ŧߧ/Wުk8d,t&v"| #_oXL|E_ְdO;D8 #Hf-d{J,=I 99BVs`Vڧ+h%**j^YGܟ4cR!Yř *{/p$1͘ 5Si87N"'I at^dtťr7S/gt:t9 W/(ku_!10C+pi<8N^QBxb!9Ona߅7!8KIV#vU~9ی4 O<0pt|NVT3t g3^r E z}a% ʀa:ʬf)-U!_nY2HH}oӯeg}SvE!WS9]gۗ.%o36 kWkuJ#K]뎷ID-Ij2UȭjrTt9dDeԶu&9nlbG藸8ш#frgPZp>&U]']AI(u|YoȄaa?|8}q)'D%W]HIa]uu<>5bt8qv>. _Pр:h;} 37MӬ:.>gV9뛫~ܛRK*<U7܋([^p%>sISx#IpcڐՎ ]3" 7F+;fז*tI.r2e2Bo鞧T Wkv9gdڜG{l-PA6&"*ov\@ש&T&Z&Aq@=үJ`-8t۹:Ϛ&n.Է8ϻçFJZ߷oV=?La t74@7wm8{/HIvlG؎]紻lMhp k($%aUձxM%li4^ ("4f)ϑx3%Ivٖsn8~.{~𒳱-\45;l@07r`iNJ( i˻j+9EV(=}?}-)E9)8CߌhI!n4@B1}oC|~`zZX luC1&SaՔJ7NuevJ֢ ]PG"r7A=_p1kN^{^Nu}q{ЊkɯY t?| )1+^fM`QxցP;9 !P E&H' rַItRo0IjڦF+(DŐPb<#o*Ah ̏".0k]R_p"PGA$YCSNy+TRRb6tCX |@A)ミe "DQβ܋=pUx$}LNrţG%dotY2 n4Vp=4?߹9V~PyM6>6W2,Q!(bcJ.k)UTtCk(8AOBڣ}ZRL] rό:r.ݷYs}xieW(,wIp*JO123Qgѥ]ÌlcuE\<Ra;6Oz&#dit6 @-xpW>66z?fM\&x?, kcrl߶^41+PP13-GJT܎rw`gEc~uv2)`Cw]=$xq΅~r]!pp6JqKISQdm(hz%TeFLp(δiS7?SZʚcB_43G!̗MȹOr:'bP~!rP2"Qu|=i#iF )8Y/;R7IcCz{뤄4q:~^?1LOQ wNQ:E!n) Ё.H2s@G?uF} )0Sr%O$tsُ;  Yk3 /erKNuhaC:B5KѼ(8"ЎCqnK wI K Խ0z JcC^% T(5\)YS uq"fڊFJ)V>l Smi7{vB4&\.[||[?p6]gQO:?| Ά~ltO:zK@;/  0g2wèي!hT c?T󳋊奔$|h:jT$q(.d6uhr{yQsxW ^+tE6ʨ.JJ%,׃qTIah 6___ p'~<ʋÛ;,D#=]G;g'` Vh on 0P*`֩'1T㫩@zsUa0"H9n/E ,s]>~zq8T/Poߩ@||@rcA0 $O+H08hK0h_?@'Pށ;W>YUOۚ&rfAZhR{8MR\+Xc*c%dhp``R>ε!b M,D1<*LZ^%7( D*mKy2fz{Ar %g%(r "fOւ\8G呔S: w: WA_q.*ڭHIt0 ]b1l5):iK|a] df+r{$9`{V]ו@?k:j=8\#cӼw@ʷPBRps;y텺\mH$FxCQcEK5"VaVR6qQjM.0Tpi0@wCrw9衾*R^5K[z栳*0u "nQVQ.A)TjR<)z7<,ׁaH{DțX.Z8h6@@7{Iֶoh`U[5nx$}].Lk@pb^̓%d"NJb=UTUM}]ON#c$ 1NJNWr%C_!m3vIk(2CmiZ.,3 Y(~J PIA%RE6&^AWdUP3_7 Qp >Z9?2Eю6=7失Mi-aI @qk(Q \z1kI70׫f^_bR2: @ϓ鰦!!?_yvvLyeƽ- 7|]๼+G?K@fJLI!?()^38r4\ ]`=wfpܻz}'ڃ/%e~9$n)r^Ӽ ]]ױ)o\ K].Y3~^Βmy;~d .@P,6a Z?$4S9ml /3lj&$CS<7Ź?4? T/a#KQR@׽+$z(0:ʮVEPgL-ɕ8 HREt\ uCt4BQ/KBdZz6 Dsuk}z^ל+w:ӳ $+cZ_a%69d2;c}l|ay#I6q1FG/f85Si5]`g`&?N+$aأ'(2ǻ }C7 ;R yEZp!Fm }Z(7:|9눺kNp-1Fϙ}^$UMQ3,T'tN3b";:Li#U=\UA/yS OHiu=HGh%wńr:W9aŘ׻%(:"Kcol{X§WBP<H Y 饼*XGn$GK@,ۙJJYw3,,r;swޒOJ h -~ W&)r_@Zޫe+apoew)(.d=Ǥ1?HD{H2QJs5ms};枻m99f8mb..(!‚NK92J XXE>?ǫq80j( _U;y%Om;gL_^kwY2&FckHRYY) b/iWƣaL{}8Gm-ek96X\T(2ALrwiƸ%ε=pmK oCkllmX?XqD7v F2H6c"7BT^Ή$qPph@~d Xnw՗~85 ^:ӽ87mgd\.8p=;p\UaLd6sbBѕ,_lcYu:)JN+`Uʆȉf__񲁅+`|>I_n}A*Mߢ-[#a]{֛3IRk>eK3na{I=א<׽&NWt@Zd7^ƋϻMh=kH~W $n n(Õ3Wt,pNrMH+:O+i\nS0c _yт2<9u]>r X$qxo ?V\kPf}{_9@ZyJn-e*|\ns3|nUj2W\z"1dy#wϘ<͞5k ǬL?яir\t Vb 9K@8\3D|[W{O&>%y#$;kasEOκ{Y-,%o;>W $obޏ;p|/A[FKHuE7v!`) m 9hBc(K T9`W-AAu?[\iq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_paired/metadata.yml000066400000000000000000000000231411645176500250370ustar00rootroot00000000000000{phred-offset: 33} q2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_single/000077500000000000000000000000001411645176500225565ustar00rootroot00000000000000q2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_single/L1S208_10_L001_R1_001.fastq.gz000066400000000000000000000204661411645176500270140ustar00rootroot00000000000000])X\vH}ߘ9slnT5vI@"+_0q# ˶Hl/7nlߓ?b"'j7͖r:MWM1-hOÁQ.^EvtK+NG -tntr߲?UQ{!oQ]߿өѡބWѡFdqWxRXeJL %Ji$/(1REwP~U\v7,\W˞˜q=?E'^ƕq<'Q}4^Tg׹T5-0Q(:*UJ))=Z)O/إWEiY,Dqf7Od+lL3` Zk芰,w9ȊB:1Q ю:[Mg_믁v̳'T5:y>K4Vz md("su֞T|z)KBygyGZ܆rטq2yg\cq=zxq71;V} 瓒 6wq|eÁUAP]ݭٕ9+k8g*:Y4A+,DVQ .]xVsb'6]wm/I$X A?*v}C| n0Xդ|Ff\42iSA_YǏOYqwX꫸כn\O>k}A۟qkwqm=b_q8 WߪUj˥O*!3$U&;dXZiR´$R)!ҒDC%{˓<Zz7_me1gwviMyȡ)2@@ADJ %z9)faA׎ 5@D젼{gқ|,2F[Xǁpg_rYbsMFK^'4qlnv  6Z 4\l.=ZDž|>`qkKk#) bsje~H UpViJب!/z҉X-WAʕA (+,Y˲(߯`׫n1;L=\0,Cgaظ*ס^PAo )a*vid 4(5}YbE[):$kEIU5(2XL'eJk\x.y|lzCTK'%I G`@ޫrܝ&pJKY$X|ٳ[p){bLj8W?Ys"%<8x @lAЖ)؆2p,700{[%nsZW̓T}d* JȘ:!]H,֓R 0I>@t[2Mۀ]Ϧby?=0ka{ԄMzRWl/V j5M0{bYD}2Qģ].L#1?"l0-eu"ɫ֮+18vU9"_X1VjQZ95PT`BPRQd, =P3*(Px*nK 2bƸkqׂ`?)2' łIpط n]Wvߥ8] K Y_7[}SmAц̗.v^0e F`2HR lw-7#`׀v4A6,Њ.TtK!EF$s S'O !x”z.JX Hߘ--mlêDg9 P>D@UM?$Ɏi߲Ǽ(H9~xy:>95[u}G${6Z'&:-3,I'RgxHîy{vw|DPئըfsm[dcR+dBU[5e,=2"ۊN (29 '_+]gr-KZlۂb5='<pQt"ShhM J@ |ʲx_kY(j"f_~}0ֻAtSEuyx ɺfMgӊ)X(%Ee!:JQOY\Ѻ,r:99C1N!L/q+l Z=4+j2i1gWݮ ~YhI![8+@%/]IJRZqCxRk | \׋)F,5ɎB h׳g(PÒ*,?c@k*k<QkH /:_lmfe|YҔ4!AӤJZ dj0ؿFo|9R ԺEJ!j0z79]% @޾!f%K6h30)T\E_uV7.gvcپjY٫PEHՈ04t IU/YG5epEK<_W҅SR\Ͱo9֙҅oՉЯez wX͔K"uו#S3œLKD<R ](4W("*k&v1V%l0Pbu&j Uェ12OS5IBpcZrGKr$CfICR6hEZY!If+6/{it *W,U=/pfdN5ETlz hvjeAւHq;pAϼBz8~ u8Df2#]?H(4i6ROX1z[L!@ Le )sY 8d֓%k$= wo6 wp cC,)J &eDF+%XuYxcrۺ4L~`yNQ!Kx@`[T?dhX/<꼤0Jج,9%q-|_/$]!oKNſf2_ֳ$wc"2Chk,J='egf9U"MVsv~ب!zk||g*bDbfb|J&Ox/ܡ*- jxn-C~_tkYt-p["6nS5n >,Gq ,{DF]'G!o‖E8 7H-rΆe EKUhBF*%J˲cZk$\瓏 ~Xٻa{uج:!Wx=MLaNF&!f[Sm*-34 q$+ 5_j)%6ʪ zĒY˽8YH :\\>xVQ9콸9͏E\׋ن^ӱWҰs6L^IDi蜆 }} [sIm0%!Mk ].`FQ 4x*A}ۘky$l<'eBfnXj [G^<8 C*ǽ^@@EB 'J(Α:XD:#G,b΀|tVdWjjm1(+i + Ŗ '~Bp%K(~G,S?_A ,O4jl<7۬Mtn5)^+X^J+%F9<< S;׆]n݁&z5^o!&M6{D&]PcȊB/l(֤< .ERB+57,u5D&8]n䂹6λ4kC3ɗ?}{ [ȅc"ve?4Kԫ t(b-Fg?]gU3l^ 54vj;Ű(% uEy1cay/fEk콚ݷaKF7 \jA=W°REwC[׼ 2V:n9~K",92p۰tYci ƵVosB:LТa> P\!Jԉճ ϽnObM] #- K()BKIJqwqu"F]\uhm~VBw}!ɋft 8P\vp5aE53 ,UFlRX,G`|k d۬?i]U 26h1ysEbF| Hx&K˒1k dY=,g wc+ ZSI=k6sTi߉yn.Bז|1:S/ ڢeՕ^h;MʄC"]t; #1HNNa^, %bmOV3g=5]Rzi)#`*> *Y^!4~gj^ݚ7}:8p\.,iUG8'bZjOpgv%ٖ1q"jXV(mVW%`}ˮ+[{;\M6'4d[q5]eEx%kJC emҜ,+:`ֲH7̰U9 40 `-i)[Vm^T(ь& + 4JefqF.t|lWK n:G<|CR4u`}6vWAK gϻt} Ϫ_//k OuEg4f趽)=K_6$b6ԪLS#'pB1ŗ#9Ȕ!(dѮ9hOlpNѱ}+ i:^-D sːLQ6W7tǃZ1`> C6N!#1|BS!gٷdr:DZ10vZ ܲS(s'fi $9vXsZ,7b~aa&<=,fWwl͊xkVA!." | x~Ailv_%1zV O~p|Ch4w3d1WXȱgKM@OO2f,5{)0q8:0doyNu7,p0$c= (8wF,a`Uo uQѹNSŁeM 6z/D%$)4[jB܁z)SJ6Y ` d?ۧI3a0G/SI<{Uj,pb a;? ./zs 3[#&x6ޘ \kzv#`K]t;eͭi^ˀ-LxEf}⮗Ni'rr]_^ۇ @#QTˈBѮ'(p7oGۏwa*_نד%pp!T9лYeh8eQ= -} N&SXwN> 5j1,*sxz_ qHg-A_/ b|l7+orۋ1F=v:ph/C  ώȺ ljJwCH'-}VoJ{0%¶=-epʂn_ W3Ғrޖ ƛ,۰S |U˺V\^PQ;ξt k!,  ~MvB|FEFsKr r )3E ɚ)4F{)t6^)٨& ߓwFxxYpdgΏ!:|kD D\mZ|kk*50:Cgٗ޵eyrXY2KW[i0_gkD r?UU <%/,8b!7a Ep˰%ȲTdv*ͮ֔fgӻюYcۣ1 DV~JAt >ŲQ/J`5}d{ :0{ ύpFTtPӋN_uqKStz~l%-tD``D_ulb@.Z9)Dr|#a hE^TpL kgqKumtq],Ybw`oN,=O$u]I ɃͼV;Wgv9+NT_u>.W0J&;.ϟ޿sb9 Oܶʾf|B A܋mؙ5ÅϾ/ZbSWaEʣjݳA@q=vt{0mӘ}^ C%exqӯLǽ1!`6S^|t=ljR#xd;Krk pm O3L%Y,ٍ75LnԬmuLL/EӟnO.n+UåXLPBMM b~9ffאZJEeOW[h,(zE]/7׸  l4ڗU5EHڨF &Fe] ً^qDO9K&ݜ#6IUPqXZ=՝JQ Tu!ƑKgcSJ ( 9הm6ӻA"Vt]}o>ISޥK$Ύ./^'{N=K4%t%^҆S|Ɏ~8zeo-^߿u?3t;8g֕41F)2ֲږjK{sUx,x,˗u;]ny9(uwƵ{WYڡ{[<@'aV5nYUВ?k:Z[{+MEw֕J,{ep oCˌkS&P\w.jG$`ˑJi BhhWmղ,)d5b ou;Y N^⚞qM#P,\Kڣ 21^It"z&S{SfC~d m pi) zW3=ؘCJr 3űƓ8Q(Bby϶W|c9?xMe.xZ>T1_a@;'!eiAՔZg R^s{x`XζřbM8qdX}Ee~G,>=&(8Ny7q$l[=8 p&xTI'%_ĤHNJ{L^`7Kbr}w#6=Gl6b b]q̅~P3W,B7l +,vUg-Gm#Tajp=!lB].6zQ.6 oڎbTPl+"vDvx6#3eBCjPkF$|I|j UPt ϔJRPewzv&\WX&Ql Zְ6`\JHhFg) N}pXxܯJ)EAjFySZ vO>z?;.#p6MWaU{](A(o!V)igUOf;# |鄺vVq>Z{T C|KHޡd4<p@qg\ý[ M[^EXC t  Sl40NR?+1Fٚ`;] MND`[H$٩[Q1QNDb-$Dg6`Nu(\]\sjFk)mQ 8ClL D&^(tEx8ȧ[z|ov5_le'asg=(Ai#T/.4yYE\ncEKꀨ^G Re.eFp3"`LԵZ*uhF3ϮRW, uuA: ]Jq8%V P` &Э:/#A"f%nԙ( RO(F)w(S$z3,tqH_$b ^GJX$-o$V>I%ZPZuP*Iʇ(}b!#6m}L]1$}Dˢ;[,We[n(u9b6 BT+F 9U[L[MEra=͝rvU&w٤]6~cF2& J ݪ"bh z^8$Mk(U 8T W0[ :R Y"?;fZVшZ1B˴ -[lZbeL(ne%/iE 6I)Õт1/vl3%lJ>^s:;י -6,Vt.%$$YPbQV),Qj!mPH$ L,>·kvKKϸ7]IZ":T/"7mVr3Fd]h5_[WeLz!fxvxX6 1s %CsݡC|*tD4@+[1:zJ"VpMxZSΗלp], Z6XWaccQxzo渋0,}$e(/ k)b˔ʕzbN'6隳mza?҉cS7\?Px?Vc6. ˟xDDu!3Z,'&^X1; ʹJ+tiC9*5UkѮp\=UJ !Ɣ"SߞχĿU)j2I}՝{-K:X]G!2Tv) QM0k\s&c;l!򷾋^FW}Mڳ'aܶΏ q 2ɽG` x`0cj2`1lT햀Ζ&h0r[]u DWw;)0`sÃCZzi8V4HSVrVWXv*,1?%4Mˏ:a3Yr`9J/̱b\b^m G`:o5r&l,m C\I-<*2e+Yfhu 36`g?llDQ͸Vkt ƶ(p-Q0 %4@& G$ itvYN|+;5!?(b}"8hˮabֶnpXhcʈ"Sc'lui+Y暢Z x c=k+=;0C&`Fp{,]rhFSv+ht"X"z1[Luj6#rx5jΧj/:SA7o_3X|Ѿ5qX_IjiH>R)VaL?T-}ӅeQx%wy`4f5L+} M`pCFFsG[7;QiHfTpc *yo.ƢV(J$˙nElOY 7~;Bֶgo՗qpqxKBW],]1B@<++Чɕ%VfWU>'q5Ե+|يAS\\[{%ؘt3=BtbnE UhQ`U ړ֗˩8No6 5X^؇qGlueҸ> ;}Er쪉V7 $Qa@ ԡPBX`fOjW^~dKТ_۵.3Nv [q06n< lrk[?@As1B6$1Tx+C\NIJBRRe^;v(SO~H&1N܊ JհVa*kДАaKz֯Xⴷe0ەAaav抾Y)YEp|_ˇm"UMd6{KWazm364 j`r5D#QzA#}lznf?a{`YGG7_.;"hͱMDqC>BCѐv дswz?l7e~^qߖ irmK\_$p$(8;@eI. ^u\0<[й*/LVϧ,?""TzdM|0}Akfzxc?77/jc_u8[F+-mpWI%,$/]]z9Yk_[]_z0\PV"l?DpyA$ km ZXWJtms-/mSkNˊv`r){%w3EVсk/Z^twi1%u@QX>@%޹>mo[*X}$`.`SRQ&AT[όMn4HrA;Z{/7Ix-lw8ܨB-p[+BRsG;a =hkp(DQ#Lgm t%!<ҡ+ xMṟuVWF@;ߜO 7Q+XM l~u27 ŧpO:x2Ck+8nކx8ܧG͢H>*Pu+c^ TXnW3cWz}mz3T̵FW#ƹ[.p};ȴmo_!x߂n˩S╵Jdc~%*JQohatk:[->036ySZyyi7kbI j^́uo4!S`52?n.y%~aEow/H+vW${!\ -.`ή Sj$Vr n\ n%@`++4/@>J,xl-y->"dw}FS]V$'snfY dĶ,˒llWKBvava8鴪KG^FbQ* ]Ek,4CGoohk7wu횸݇4qbKS$[MjF4/{r@>T-+Kś vfs nh~wp]:~1Hp!b\њ>vmÔ|P,t5ݶAUΘ8-b) LtQnsU^ !7Oz;/n_z]Ej;#X8:(ʺOc  V_ޤMElaX|EMxZl8[#ڭ* L[CoθBQO SK0lW6]U :_[BbdkNP5ąHdJהH(1.eGr.blA\d[/ӱ0Z3Yb#^]-<^4y"gBWYO|~ H|f[l͑ 0׵9g)̵kHjON9a|p ?a Q]\i3O^A ;>gR1q6A;^iެ#lYj rJ^šLLȘwvMXܯ6Ⱥ 7ًmX+R(a^:JSn N. "!ƑWb cG)x.f\ 7Ix$TMC'ޛ< 0(Zا֔XK喁 l[$  AiPO+嫔lgh\m?48Ww-Ơ 2_lO75]"kN5 \iBG:96/Pi!^rv\NXۻ/koʿZNg=2Q;@Nf[.KJidN\$9O$Fn7b(qo~5V z;2WMWxE9KE@%Pcf uXX® LŅNro<+ *+t# +oIڲahdMж&Xk(1.Q;N\CSԐIDiJT?zў,Ex ,˔٦Ff u󀯙ئ_7rBY4\߈l!0{޲0UY-؍1K2NCsp<reT}Ę,F=Ae2e&OEEgK]s=e?pEkn._5?z-Wrv-Pjw 癀40 93UYDV^/q~}ً\ Zn:cۓu-V$xPPZLb`lVnT l_q~-Y$"Bе"ݝfMpm8ԭahĴvv؞59RPHU& YQ`[R&,fS[Ez L"$r;5A`YA=Vu@ټb+f\X V&œ@Nq<7b-sz߂eۥ v?ܤ 2oR>a04<.q =so_YE6'cl ueidKvG˻m>Yy8wb9d$ˁd7oҲ/c \MNct>Aa^T0 {/9Zz,xݑ1ؿ8V#7K6?ե,<@' |C`}( = T4 ^z'%eו%vg bJ-%*⤎"eK^YG廗oH,|ε(|%5y];LYJ9_ۉ˸m/M]jW3XVRA;3n.7"= –_wlLt 4j)YI[[|E~\p79<>|N]>y 8,ΰMi6pQ4rD4mˊ3bFI98EґJ{ ;3[/ 4 D::% gq]2;PofW/B${䔤J U-4vGxHW3N`|U532:k޽m&D}AIǦ[81p93X*Ky[SS(4BYD]Qug6[m-1~mu/Coʸv4dVVsPN0HԢ%(Zb<`y^:<~ P0BĩbW$q&&Lj:\e";6b@aʍ/!pdQtPc޸,;-'>š(Q9^Du7O|>_{Gy>G?)VRNB.nX}Y/0rNXP[E<ߩ诜(4 4 {UηsjVk?4|zrݛuOc6U~E#AWŇX{KJ1y,a7xq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_single/L1S57_13_L001_R1_001.fastq.gz000066400000000000000000000211011411645176500267240ustar00rootroot00000000000000])X\vH}ߘ9sfLmQ H`nD&@pLU.. 7"Ob1f0}-|0[5/.I]Yv)v$i˰d;!N)!%x;~л8L; >+ hߘ'tI;_cr[ N6lok8эu:Ӻ*CA[]}_ͷz聥k xWB,ŕ7p.|O;|Maz?h8x%t-_G [۴ڹKF[Z M;-]b:X]k(\`XSr%5[B?8`)w1^?;?m|9\^>ix mх7mc/(BI\I:SлvfQoW&މ@i XΈ 1M\)f}{l8x5\6IV{IueX巗Vwf,^>%"^,jnj͗1IO,9yFbG{M (Jz !hq Jݮ=j()FVJQ),fGp,ftx: J~x$=1W񞂹9E8pEc:;*Cxjb /k%?U-kQr9y϶ױE8ARRNBK<0GvB|7:B1vl@ lF4&`,^d)BV!<*&| Bjo yMvZ:`::CjRR3`Wk\RZO6clBDp=Wpc[/w=1/~>8V6U@IЂ2Tk'D}OiСҀ1M 3SZBBӥm'n4ѭ QV, ˂׀]!w=כ7)6;(K!K;i9ǐs!,1/.R_3hNcցuM@llnkboO?(>[R?r9Hx/(q[ fH"cl1`P&{`wͱ p6\f r|UҘJ*/*V aM3Ӣ򿹺BYU~ fU(]EII]^v=_]!Yʰ%Z], s%)N_j"1u |TWt@=L>|-3 Z Hl(T//dnu?|i,f;%asdyb"zTs  ,–Y~d@JV㍦ 3`U0fk_A y ea`ӡK\]P΀MCA!mL"`rz'1j9Ab^ /hJZ(jAJ*Qy!< A u]`W[uKkE\쵈1F[kH%zKv$_Mė D+Is%*+UJv%OY] }]솊KXr1T{˒m%DE3姬,_p/Ty+C9bg[ iL]Y%,mdB{V+Qwlo(/ޚ4Sbiq &j{ݒ֝sW<ЛZVl8J jnTuqLsCC%\z_ӧ/oerƎXCŮVsˠ]T]a^X"@ ˕غ9mpR,T1)Zyi7XAzۭqBj9Fpť0֑̀z5L֍m+g[Fl8`KRe]g2$\M]gY.k(HvF/", N+z9_FGΏ~U[1k&KPzMāǽ:k"sEzD& vRݾ? q O)=]Rv2`}ŀUDI,$sϡƨ#?ў:R AZ}t_Qr)miЦ ,(eLa3-2bH~ElEnwf+`ÖclA6P1n*RS9>E ]\p10TCbr^Qv嘈$^_ leq1Cpڄ9B$ufNE$sPWdyEʕ M*/WʫVۣ2V3ގ j jEth]u naW|=Ig&AbPckmgqӴ'+HR(.мX/ X K<o_s|̂E0f .XPX|qS6WzqtV]h9"O &iYXT HW꛺` d `3>t|n[٥!iHBXrg6]p#{9rj֫V% k@G#j#D-i9alZmܐxf`[GlE={k˷]MZ^y"уEZ(]&(.`TW3Hlz b -*.ФzJ늖#An#E_})a_ j6ch96dxs.Lcc(0bE Jchhג"_k  y4=w\y{^0aMi*>1,ϒ Le!#SČ%=ټ\=D%mmm֩r=_}:߭Tmێ14g G d %i<L{\$iրNj@ ’kuX s\-y<YXY=,G<>>=uWG=Sӧ]N">J<yw'fOBWgCNn?<Vc0n2 ;'Rk' "+ V/+],O Wv@k/&[łS6,.F ~0PJ0!g .%o X]v#֓l,ٓYZhIei2 &ك.bèW\c R \v⨏O}9CgZ\x.L U4ϒ}O"J_.d9E1ue7{]?ol֒Imևgߐ.vÝy@jʇac(Aia4i$"^eAF}Ԋ޽AI׺1Lnd PpvM TqKXzs7jΠ{ϒf6 ]Z7f:N)%}9~_# BW~V "m-r`[Tukm)edXɚc?Q;6]MbaDll[灴5i L^I#rdVt |kIQMP[d@Y7 ?¿c]ak;].Urf {9q> }.߭<@Tgآ 4^3e-U!đK\7ӝ/UrhKecC!TTEffvy5p˧ȱSe NK1@@CƬ6S2 [=JbLDu@Hm0.=ƛ`^(?_Îΰ_C 6V:w rs'aYz r fFe)F4{L}0J_AQ(mlN FWnW2.XcW]*3rFG(kֱ23<*;h ~\OWS] ΁ :2Xk@](/p^:3"TQU6:+=_io!u.f>uj& W#8uQք1ч$Xd1feLpα>Vx ϖNF~"}:A yVwӑ'q}9RJ@eETL"z?s@& f06`/xJ ! Q/ɊNbsO@'y*pͣg{ fڃ]MAXuQ-15k SLe}M, x}ۦEcZU{N Ν`J)rko찾s^s]DU~ yLO,-8wc>څo(Φ+@[j`Lmx0B+-S |rxSBÒ9_8:,Crb_b倜Ƈt'#.|yǒoyhG6 |bE  "PqQozxc;Px}oCod5}j}si0R+3( ԰BXa]s"6SYB sL7κ6;ʎGv=: F'? e=*jRUC"!W qf0b**W <m"9/`_ߛ ! ѮS NE oCaPe2n,?3'>UbaEyV1ڈt0f=n&_ Z@+ ]b7瞟jmv@-b 8GUS\eT+stUaccc*~_ñrN t9r!lENA_dų+fPH%;e?XgY{Հ !#mTDw[h[+4Fѵ\kiЩfi7&j􈎋/ /}*@\JBҹ=>rAkһws`75?JMj暫S3<4oM^G ȃax4C1N'nrvFםE֟Y34hИFcތFRx-'_;plhnNj qDF ]pU9+E %~i9ƷdY+s H^7U/@x7T-O.My*~tTe*XS՞1Jpe9:r;0E~;%pf{pu"}Bpmx|3* cp͓5sZ^gK,IN6 >5>P~ѵ|۽=(9_Ί##?E// -gC8;V2X d gau_x lxOڧ/ lѩ\A"ѫᨦAs17r͸wRZCi8:Z D~[?ow-lѣ\9o1WW b?ԫ//i*4 (/H"!d,ײ쾏\{?mfh=Wa"EQpqJOXE`}B?U԰@HBƽ b%' K\>-j;Cꢯ|g\ e xvf'.ʧ^ӑN5[*o +a0?(q2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_single/L1S76_12_L001_R1_001.fastq.gz000066400000000000000000000207431411645176500267370ustar00rootroot00000000000000])X\vH|={py9me KUfd x(m ҈@Ddddi6t،7f16d_lwd~iv~г3ɖN!:'8:O%vw8A}G=[0z> K<kڭnNy :Ѓ!J8gxJ))藇xQ,Kl*|L'W1&k27I+ׁ/Ưi8 g?1xk}hh}ut`D X.\a7pͅ V7p]ϗ+z W`F\c7pݵO= jG?ucm*Mpr.zšѴN;*cRic^(VBߏj<_o&?>:Cr5o ~kpv !)D-1=2z@P]~|Sg1j4`[pnH-`bX `S"ՆaQKWpQIΠVԘӲRϏK7Ɉ`=7b6 G*f\3'h6k2l|SnkTEqkR~/DZ*~r `pOv{O&8p[\9ڀݞ6Iz&h_v8`wǀ[ %6>@n{!㾋i{NtW.ڶ@ pc"֢ aAB(k0 ա&|>9y!{ќ`cW]'eXܫ#]G(jcKtX-D/xpB^v2YN7rɸnE"s԰HK/ P'̅IݶK]i6BvZ\-+J:Va5ڴ%68 e,ܕk˖. m(N%MUXE0#_UJGI<D.L]b`Nq; >- ̡8×v#!뭂2W`zQ )^1|<n&h<d䘺8=+}qMDQpVߡ=d?а݅?%ޠ=mPZ+;4/͌׌odof`3Ie@l]a.T cNV/\12,A0uʳ@-g)T/*UU)v^-7hO]Tt5~=nXڍU`S: 0jJ1|$aࢋ5{k'tVYYJ"EU*U~UẘGz15ч@Y6JP[Q(5$^@4@T?agr$4ez!*vh^[Rk>^of'a[z dC:&TPEdx!Zݡ{!뤀Pmx$ U`lRjoc|6Z}x""ɺffJ8ąF–P7qAe++ƐQk-\\|[\ "om/A<Wa·' :@>˅V4Ee?'%0U*ҒmuOV$O?<ț`Xl"۳l)JNkX\lm3V= wݖ鐼XXD.UbeMEu,(`w6 qӹa^;I,zRYH)l ;v<'2.2&Fڈ.5K:0 Цina ֓Pm|OoQ8̠f }L0+mrk>!zQ:$7J=2ҏ'(WmV@BYI! 1ͧHD<_RHsOv`v>8vґʱR`c1K1Chdr6\W| (Jʑ KlBxۖEu5 eװ^mBH:2.H `Nx"sܛXƷPPLRhEJ!Ύ̘uX-7}F)ɔƩ$o&IERTT)]ɂyFXsūSJ{eV1hEZklޚ>snvX Rǎ".-B"˦.>JElJ"Wp. J`)g_a}7cC2k00() <EE犡0RXMxܕp`s1xfr4|"%~vg`= NmKZzvat0܆^=zL#/z.l f[+?AQD}/Rntf}gvNl8X}<.+ i\RuEc;*Oɩ[B}Rk=E*aU*ؚRĪ F9^-<(O5*5x"Qp]{GղWS,)λn Ǚ.bs<^-l#f-PmED٠LKY&ZMGu#vlf!9sq qPdJ_̿ijrVǔA[Jkhoֲ9;}rmxWXYŖA;F]#0M6Ͼ') CE"-- OT)/,bM ;%`$AHn(^b\ѴrĒ@Ь@ BY{/Wx4u) AdJR<ڛ ;o5'@fMd?5- fQVU<6۽@J֩4+C,$ տKsǘ>~7Î';_3(l0-Чgl7j@z~jkd0A:Favl& XB浙LMp0S.|/f/VWpcy >Jv,Zī6 Nmu*J"3YXb\^[/r1~Y-vggE ɖoNi:.Xzw*qi{0xGJP[P_DyY/1Z kQ%55ܱX(p]! XV8yXku/l9v*Lc|֨Ru/6`\im02nn~8WG*C`<8EXS"v6ޘbZ{ꛣɃЍV%ar?;PqK큝7lgcD(؝k&fENǙCISA'>W@|YT"*QgޤJk}]:Aux"dr2}n0s0ōpb9aY:ݜJOh@8lC,D*{#Xk"X!!%qg NIr睭~P8:,FH"r Pgu4@Kz`m#In("Rj[J mq,.f|zKm"hUnϗSTjaIc$heq'pD8 EOykg?1Y0δIwCYĘ;וi˺Z *j=-N+A:xgZ2*St[z’cJzWqvy!r7,BXd!\P{~A;y|`\w컑}Oqfe\˲OjڠGJq?#jj#YXTyp-\x7R d7NE=cL@FSCߎgW1~,׺#I)ce8zO1YLP%v|Ƽh)wSd+AU.J }0Йmt Br 6%\d3u?ؐlN  Ѐ-2ATzYX>ĵ#}Eݞ>ȣ xKޒDݛ IN݋\^ރ~ ɵwStYS3'9MC re\mVVVo: @Du9hltE_n+BN`Hh$_ }: NmJ+F9*0X!#=ϯv=?dLr X&q== ><Į4p4wLDĂ di~jgv[k}v|'zs?].Y?f.=e$p? ;x6R<,c^W&)^ K`?_oR| q?OǏ We`'v4cvg:gmwh-%Z_U]ռVR?utt:7f X/z;<ẶpQ\hugδi "pJFJh/vXdE!;CB6`_b%gbY8df ~}J A7A_XCsCx":kYkX\R^k0D2/Dpoۮ!ܯt1m~70=+!Fxti磕/C\s]AͭB㜳-pPHFR\)ۘZ[.X;`'"q6b%)az`6X SRs-x$'O:vGm@m籆V"SjZ8nc ,\r i+E k󯇚6 t_.&n38–LLwvڮt7׵C-( Ot9W^ `WǪ:$߲cx";~2lNAۧNCtLQvDӄԆv!|!,L IBZ+7Iik }l.M^>dG+Aw]"ޚ@TPhאxrW]?t"ngrB6{IZh{J`m6vGGZkWa@V# 1msYP e[r1[ ]i R楬o@ ػbkZV XϱX6 -Z\,pA tCԗ:ɹTbeWHoDD Fd>b/UH> UAu>"KTAD6t#6@}U*pslQtW>qWMi0EUV 0L GG,7 n~XvXWJ&>dπ+ X60X'GIH\ ZA[IMkPhA(i*_PR\X׷6b2?qA \@qAv@oňQwQF ˡ;`ri aau=Pr< 6{ [1lsWkz2^$=ۥ0wyXxs+ l+ uP>o,ܖ[5 {CUdF~5p0 v=2oYCuFTѧk-xְöt#@6(C+nh ;XXR( f*}PʽVn 0 &H݃4ۡΐ]j-#զM9Y:ԁ"B@_pJ,a dh: .%}?4d:krWv3w1bY_'e>Σ&4Ak¢͈ .T|M= 4hϪ+ uzxΫ}-+$EVcz5. He#!ue+2`P&ߐf' O"ٸ)ĻkvJ]r?v;XcHD ZV6'u 6VU@/aJ A\b[毈[/aw2b}`6]X#(6l:Xb OR+z+)6htN9T( %Y>̪Qo*&vcY1xUXɟ W!ȥW[]`8ZsUwX~MW7JzI])ueWSlB{1N]ˬ֟Yy8(jV8> X4+[ܽ tz7[f1ò?{,Bd$ r6,R* c嗠 嗄& vysT)4MC7;`۵p8! u![P@yy7@`Uߞ>uy]z+y# w{7gulW:J] P91zOv6KC0xPV`i  VG-/:ݫ6H&)"j R@2 S[K^jU|bf eqTcdخ$TbpgNAŐҖl7loN;R~5f3C\Vb3Jlr溢j -Ph[ 0D`Ô! l}+aǞ,([6_b@'$4+Xc^xi|% >JvEߵVwe}WeAwX^A`:Zv@<ycU.}^N `Z,EݕZŞbIUA-DZ,T)Z,*8'hGϫ(g']Y:6s-d]C 4݉PY ۻ몮d.%-ܬ&drgR,gY2w|G5-dΐJ%3J qX9fZ%r5HVP%ͳv~7\g0]7]ذzWi 5,u uZEFk*QWXζl˶(r4dr)UYK/ m!^n ۳MҘcƟۮLl?dqi4ObY VZ\^BW訾%0e;崆K(uh ; s#fiEB4O\}~򟧇VҰC:نE<-ĩ.@Kp|^\+ZQX P4<+Eb j}F;h4M$HOHR&`5Ԉ%nؗ^pŒl|5&rjTuYCEC+p1"ToW@nV?Py&ؤo#}1&2ODA0 ~} Ey |Z^4h ,--Ĩ&2_^`2Vj3a@x%<[hɪJj M୎6רak] AOf9!́7 [W/TA "8lV\<V:2=e$g]Ӣmq-9*,C]:GZX0@9v/VԕfJB3?| j*ZJafWTYX.Tn1eP,,RO ߫hTNf5FW Wt~MŀG , BL Q@ ׂݸKа5ΥVzu&~%eǕ%,d7[i԰cAfjVvii`n47}ȦPW*bT<@T68%3Q|{ ^N{]~9YM_Q|.~Sӻ/R-8-C MfGwVWyK ƲqF =X P@Z=8 U_E7ѝl>~,ę$ɢw9aBOX,l$" ɒ5G`8 KJjn1󂗨F2lzG;ݬ&eXؕ%i://+NYkN֪R$* 6gڧLȊ̌t҇Sg jM2BE<[,Zlp*6ðf}b >,mYL()P |0eؔ! M2M*(/k=re}U׮Ee +[ $!G뮞TN70*gqs)@]G G Hb4T / /^Fg1 >4VOLM a8ѿ mtOVKྣ#M=իo[Sn4\Z2,Zv]`-{6;kX`eS#ʶ:L*\FҀi҂Oݠ%CbB :So$xԍ_ ǻڹ/9YR7q,|w)%}ه0IpykSAǐ0Mo>|~0:*7B@-uŽ֒?̶ c9+ä6P2:z#y 'R +ff=j?90 =p\3:.1ۅeg / xup~Kε Pr f>mVBERM6 D_TMIad Xi2V"S 9 7(K@ä i)J"7:۠kiwAVt< {M2&1(Mqs<"/ r}댼z]luOZʰȦ8&hlM,d)>̄):T> (Kļ6GcJəZ&8-~I~ĨU|bb3)s&p;Ե͐lZS0 \pcYe=q)Y&p4fR((Ku"o9e]Jk>x;/5z:B2NP|+~u4_Z } wIvRQ{Ui,' udyv0{X wYh9~tjy[rkSMV,ߠpuM&M5U_|khp ^q5M320{'kvh B QP&T@כr3D$\+uQ {V>-( [i ]Bզ/ 氅@Fz QE$*6!,:ۯu6B >'tX|L NJԸ=៮24J:g%x|.*u Vq *WERPU-B|6rp1EiEhcsz6{ \`ppɌǂxQ>isr:b:Ļt<!? i6,+laLٯrcm,W9`MDR NA'6(lH0F+VAL 8\mnLo~4`2|*b%`\vх5/AyC'bg>8iu.R\godk]1ݼdk:/>%۸bu]Dui,r8fB1&"1}{6O(lalFRe^^iU8ő㼔Ny8dNY.q'PR\! 0b2{Lft  #KҘ +fR`Rjaֳƃ-C eVSzj6Rmn nw&T!Z~FongpSWd(v,x?'Ke()bˁ=VuB;O$P}(xWAGq[v'a6\!^u9$oludޥ#ݟx.(RيO1E0=/*źo,Hb 4k(RQcQw~8'D0] G4/u\v>E8TgOPlA&Sc/{G?ms6xͮd?X{N&̻n:_<[Gb^]1 lP}]`l~ڎMP/2Ȱ=>q]mb'?Ƴ4Px,U&֮ J.LV$k zyOp=0w-6Bo{N Ϭ g%ݼ^cf%.Quv_jl `ٟ u*5T젭h3G0:YTG]o|QF"[=!7H_G8PT} ̣opodi4D78bupЋA[ۺULP-~0Pʰe2z,C2/2obX+9Uաn{hJ܊A1!Ϣ"cExaUhp;:"~yv߾Nba{=s&~su5wўcZ!vx̯.(6zZ=N g܁*IVuQTwU|i798Wz%Z7|]`Գ9͗9BʤzŘqd[ஏdF2`q:aw$cNsPcM}Pf.dmv.b3K쀭R XcB0:v״P%VFbǻei?\q2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_single/L2S175_27_L001_R1_001.fastq.gz000066400000000000000000000224211411645176500270210ustar00rootroot00000000000000])X\ٖ۸|ߘ9sFt9n. @R%J%ݦ]ITP"222|J?lGb3Lx1,&w$W1D INK*]%"W$(k)1b:˴%icvܺC5Fmű]9:߶z&mjwUk}XmqZ+4U*-t+u? /sf9]6ׄ~+#xGE'#Q}"=鍁$ <3\[ۆag ֵֶٚ:µi;k\]W[8@`֭3@;\je4^6ND\gk@:Zn&+ S26"k+%*&ր+Rx2 )}1^EƵ [۽i/s W kڮmj|LκAl.k-MYed^߮:_mzŇ^)}/$?T\2Aw|#ţ2A5NFa[ O_1lp:gj]6א]M7hG`SRNj?3 ƈ]g;maq@2UR"C1.&+j\0 K "&nE\,xMBh8Y Q7"kkJ_vUʼ*] PԺEk<&f>(6"+CdHؚg%pkZ,~*l0/:`+wM+Yɒ".0H]ovFz|. Fj*NbK=.qEr?pM8''N qXOG){'ʥ*X)zӘn; t쬩gtIba vJ"ַB% |O'@$_I)1_)Y{T[*u_C` sQA5B/8 XRUEa=ۋ4^j `TB Re))GI,MŌ:'e.EAiY>i-I'<"A% ])`<ꁥ_kG2KR&GkVV$XX,물/~/e?PCiZ5^z6 MMS!*Wwe+dY\яnWX@lV-VE⊎+Tg!1dM>rT*?[Cl'd&{||M@?{.h+=6 0_,VrXlNJ+'\C5s,}*Hs*SQ -+Z-IWR"Jv` G1]AZf%`LeRCrsRz앫/W$)$f5^M2y$`IHx5ľMCz uh!#1&"eeS@"- M$=p"oSd>69rl|clFV1—D^U;>{'>ڴREw?tJ_-|mhٷHiLFBSf3thO븊 .q%dH W~Pq<ѫY롊ukȆ1XT#xJ:*V;Kk 'c$Ԕ>Owe~Lb\#jWz}bꉉhK#b_PM.Ǖ'2 Aהּ fP uUe*NŮW*J,??۸Ո=Sɀa} YF;5@e)XXd Tq/Ueb-=w-`dz)$|L&C@L/|=$WY'&0caa`n)`}),k&խ*4\?e3@-!-kqư~.6 ǕW/}&HK3,[ڱڕWA}" .?LВ&'d(*m;yTJ9" pArպZ"+D0]ySÎ`j.\ }2'A@0p%D'~(/}C[/ä[Y ]Ԁ-{,Uȭ,}%Sz7ޔZsH|^l|Ȱm+s L#^ C_z_k?ay`pV5l;BZCa,R&dЪ'X%G*ȯW,E閊I,TB{+e?/}Ζf2=[+>e.DEvc9ejkEApm]sb5ʚUҪ&4u,zUw"|}$Yv+a.f^LiŃҊ5י򻎍mm.[s;Բ 7[0⌖:NU5URRRLEE cTA_[D0M7*7],Wmfh0huHm<] y3_Q=W@ LyO.%U;^Mt $}Xϰu{ aEљ|I4P+4Ê\V:}gՉAwV3;$,bٚz# [ Z7/lѹuTZ"4WulW~147 QZ%EBԶڒ"@IKfB*gܩ=ЀJSq}Wf:]Ή >: q-,Aa=ͱ$AtRqsb,"(LDc`KE]{sdl?u.O>ۧϢVXHiEcmUrsR}|DRR 㛳:weU;=񡈝L"^=ߘ0ﱹ[މ K?3 "Ӷaf;mve5 Ҳ<%5ũ.)87[m/S2^ Z#`EWta G7Pt $CRWx?݌W~m@IKkip@ps8m2hi7HV091%1Tܚ̔T---j21KƳ%v7]7ElrɅg7"6:]ޟUWAbܭsT}pcJ~heiصS:F12/Q~>+OenҊ_ovz;?Ԛrp*`&?ZYn>!k5 +XĦ*"[Ƅ*$-Yttv=4*.M`f to>Ari`۹+]Ia<#Dbt3ԳI*'KQX>=Ь<_\0t8+kQ;|hRivt5]Dͻ5#CP?p.ƅF5{0Bzbյ⋮rC<2wHcJ=ٛy5%o'8Njۃ>C\h=Ӓ@17n!EDj8Pf̞rR/,W4.nQ0 s_3:_̩=446,xL^mo*^eݗK|́Pv<'{kr6br0|Wf1wQf"e^,4ʃMP%3$Zb`PDAC\qX+6U`i`Wt3;7 >ڛM7kNwε-AC|# \t;Ly/6^iCbR\>4X+5E4 . JLr$3W|\( 㭬٤wbk[v#2b i\/1TZw!{UfW>lBj"޽u97x odvG NB@+ -nR3: t`}2Wa[I]HMphS֏U/lgH>MOfMvKG&! 3`iW}JDjhN,Zhtn6ֽ3*g>0(tVh}#C,bwsIϪ@;bL>( ī 9J؊,ixŷʒQGKp"+J(p~N2ό|SK^6jVr"6yEY/ Ӏ'/o^,JJE%Z=[SGPx57lE R1쁍e8]p`;s(aƫ 7"J AiI>BbqWc[Mtonmiyy`=HXђuAAZ`Qo-bq^ܔ̿"%sfc%ābO 7K)xwtlDUW]^lQ31!JY?P}VDH6Ug$14ed]ُfW0r"UL_ |'U K x8 p{gQlIZ7lME?bbh,Rp$:5NZ7غ5ibOoA~xO5Wΐ WՕtž ?a)driH%(P3\g)J[Ey9xm𵒫VoeR =SjC[3OR9liJǃOZuWH}ʷuBV7f2r:ՋKMpE>xMnyߛ?5.bO+Ǒ&m:*d:a6̸12YY}=G;'1/V_ڣ:k Ξ5 Mƶգ%Й]Pr4ZiyJ&tWaHf2_>6b8["` w þ8֠pCh0?T9n/Doޖ(-Q;[fuo;ܗ] vWwtfc$6:]̓J&w񸫞hxKz>"'|Z༉xkU}xG wy3[B E v ,10N%YSixx}Vv*Էnbynq]v6|%ottZ[E$@(YeIkKNsY-vgg[Zepkr^1kEPX UX84SoE+zGϸX0 QK&!Z>|V, g'.Stij[+r?l@Ԩ>kXTvic:VY  U_MY/O%DjIkmb=ڦ i lŶNX|[AnGe݀0eUZ2g y"sɫQ t0PTy$34(}k *߸:8<+Gz;6K6؆ / 1ԗ 5>%pI/OO i}6r w:ڞm ϳ,zѳEhp5m$WA|M":$/dD%d`5wp@;~ W8V};pdQ 8دP UP)S僲Dt&j64{@2MՒ;$jS'HvKՁ32* ThW/½VM+b}x֤]bR=U k d*+oN׼΢^$:Ei]}-rBqݿ,bf݉=9J-zW R ԙt-L y- 5aطp[pbz"j80^;̱4hQdpd,]ALo9nJx./V]q]$nB.qīWNT6`v6N'qMm=`έ]'/7UnÜ8.ʡ],E.3caw"q(0kDX(4crEkMF5IF(@9YV>iREQ:OQ`VBRUWu 4-;*438m[4X`JBE54W)/g(ΧhzOqSл5wؿڱҹ쀤Q֪&QPqeno`p!h4hH ;ldޟf62 s[o[E]M)A$xuKX>@eRVl%ezj? R*2EǁP/.r;aolT@Q/笘}NCBc4KvaE8Pei&#@.o>k'WInQ%HV5JigK@laنN!a\N++@!Dfp?ځ|93>{5v3 Jε%LjF|`p%2mC~KeEa8{kq$㭷 ^1 \%OvdhEiEMЊVuiE^C+bDSG2u Ġd"Vzܬe~sVJQg,%<`?>|P ZBe[},c($12+oNn l-=[qKsxzem GC.,3ro}JWS’yÕu<2Bxnm̛fX ^`ZM\a])<ưrwȷ*'@[OΪ%T8aB@A y@,ꢡa!kd%B(D7cNwפ@8ViP7K+lk4l W[BLag[[73pbK, d"M4/*IXxk<|MACkN~HU8 SL _SA]ԯ|Ah Uf~ZoyG Wd9.{ _$w{¶n~;|K(tZGݳk}m\T`lO\Y:ht"ǭU@ `5t # 5W3!dGQ};/v8t*xCаvypӀ `^", 饌YK[{w#X.)?uΫ^]'u2OkTmjŁYW拦ȃlx,efXzAʝL2 " ;dll,,J|eWifea72d̬NN&+z $Xu;I,;O ٢]֕ҕ򔺖KSM_dW6q sSf N]Rp駇 ?(.R3q2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_single/L2S309_33_L001_R1_001.fastq.gz000066400000000000000000000230571411645176500270230ustar00rootroot00000000000000])X\ۖƒ}oY#tKULum,!@*V;ןx?Od^n|Σ&IYii^g4 ]) .38Ћ?"SSR< ~^p5N /q-?& ڶiLFֹn>1!*+_*q,Dv1FfGn d @"K u"lI,}!(>p=YȞ[zp@svtȆKYuظ#D1ѵwbz4DlLoGB"i Hv 'ڰ{4Ykj]XsqU_ZV#<TBc$*q|WzlqdU&o,v'hE)`1l6ՒwM'%m>WkkaóRJT[akg.k?p:gU˅&l6_ohSDQ}(`ӻDH` SV8[[׸V*6r=MDGE',BR:kH^v$K6〽 8n\wBvHV`]9 p[iQBhYV8/**T=0էC>ğ 쒻K^U0Xt͹rs`׀=#?eI CK0bUp0el9LH$ E3\sX-%f[[S(>dCa6cM{KwUp*5,Zjco ,Ru`k\hx\ܐ󒟤<)뛄pb k1_ X,Zf%YqM:vM{7;i^KkQY)"jk-rVcbJ91PZ([p XYj]͗Cፐ?k!KSZc=is Sj!1 J&jkTG%T]ffIc%8(( v Y |^MF N|`~ .z2Btnrh L+9CB ,|P -T؜B.Pw-"zX d@n؇؋.]t ƥ]zpy'q<A/y+g/(.͗}UEHڳ L)5NBBr԰h1pT Mr[\(ac5,P3r/r%& B6~ !:QyB6#HtTL#6H>J/FI8 0p28 _oi9@];dXk@*J%b-*85t1^ًudphra0cC\;C"vR.6 U|*Qζ3& U f/F#rEUպMߏl# |r`ӗR`PzY1XhJP,vIi`Hj W8P.6SVdX SCZ8C?gΡPn}bW4_EA: 8pMmқ:\A-6ĒS,qwɌ״ qC' @Z5 hW6g(^^Ez>$nƅSnJ:W%d}Dz|,x(p:n_Oj;]L`o 6p߉kRw֥פ5pؤK]/5-Fs_ҚkUQ ֦dsmoJ "`'yʹ{*8'1_FjXlgh2..: ^#\ $nTKy_$ HHky퉠+K}0(hɶVW]О&rk<µbC15.f ;# ҂vW]KJF01Ddr:=T!\t`WTd6%.H\ċp$wnFo V/ҫ L3m?i T F S5E"jBZ/ UK-@*X%T܎{k `]5k\HO\i k |u6lw gWJ^UȮ]#㐬mG+ Vc4v[LJ P @;*F%Pm|80vxΙ b;720E-e؄q!5z,>YbTԦǢfoyY9(2RAc]fi ;>9]M|qeMp Z`WE{q8?П\llAv/h˼|MWZXq(o7j5:(\eI 8?b㋱ ${-p`zf/2XPl-2QCO+>J3W"Xc\ad_NŢrfMfUnTVYT EWY2mDeh,,~RJQ0n-d]DO믝'$n# z 50.!5Xxk8(7ۈ^TZ`Vi4"!\1ȸt-e4a$OxY5 ,qX %j<UA-8ojypyyYM\{F՚JX Z2-Ncw2I,!SJ2!E%(jvd~Zi@PZ3l2 +q}K5-~CKCi .('# ;vd,ó?`? i4[1٫ kdTsy5i Y,ڵӫEkR[m^2!c;/Ejp4PVR<?BMBjw߉ӷv9|qe4nYX] ; Ny7 ŪE`z`vQ)A\h j)D+sŔJ<||P+&\o[Y].7gJPSW(j@HTr9k ESTUJ2(5)Yvib53c؉Uw``p1Z65+Ɩrudo;l yT)d|l@p좑YL1N7.'vA~H#oxN^vQ\^zu 1{\_ )iؕ SrIzGfdiLkkZja  URcGbFo}`tZY  9Wl<,M:NY|[\iPa?\j#QXV&fܮVa_֣rI_r]O Y]- pZ7ͺ N4גyдd(ً\8VG%jM4q$5'`Y{<ȁ>{pq Z^~K4v=|x?)S.~.8c%Ӑtgt_>t-o wjvl t'!t8K|$v Z>Tj',qE;b`1J_^m#f6b`Cump7Ǎ66b - 윭.a`ܢCً1Ev&U 4Z$di`Y 7ɜW3E&P\1~o^N ֳ_Z!t^l<30V/'.W1 E,oGz8i4ϐJoR @j%YZ?2yz(|hE+BvůthȎ1<2'Qk|- umT ;7[MYsmZui{&x\ܬ){,Rg/Ǎr/g9kw1XCS_9o"S GD)S),%rzʟGQ~x`=̰%p&WL~@ fg?#eE]/n. -{فo3^N?Z.xZ]pi!ҐWmN{6NvbTE\dbHW19 pHzH+^=o&Ѹ􊯑V_'+U&b5,67b:]lw1MYBA YYod L< W&8on~Dy 1$'ϠZp E[k4\s8v,|`<|lWȮA_uW6h_38ĖL@Iv5MmqMH9jTwWnYWf{9}m*˄1݊Y%BÛ֍W]L1BƖ /@6ESr<.sQ n zr0(fX 0{N[vl eA gm fJTb"PQE18(i$}$R$ #m`^.-BЗ7Z,'.*W]rkE8>h2uB)̖= mSllSwHp޽vWպ-=7[Y `wCԪNM%S ѯ](Rҁ=?qȎd2Y,d?Y )"z(a4e+#37+dO6aŠO\n2M6 3+-~-قI7k`0,2cyFf0:e+vf8,f`sN{\oƇ kY,B2(`>@ubΗ@H2-B"+c 2v1ݬǎK\4|}ٖ+] l5&ƧokFhMea Nݠ9j$EBr8!A_R˔-3 Wɱ/vZOa5N}ҽ_2 uYฃ! $)ԅ|LM` 8R3f~o^[  ^g(E֓sUa$Ӹl4>y0Nkls2 "Ej=cONx~L`Lxl`-(o I # vmˊ,.4RyW K5f\ "X6%sV]4Mka=8x&`_fw0RQU8>wd3,—3"}d6].C6j@Y!+Unc{bTɳ$+wϧ(GvIA;&3jka%%][LfMЬMˢuWX[QE+d;[=v=-Q,{h[e z($ y1p |~zܐ1X8 W4WBY7Dtx[yTUjK,Ļ~-& B,θU+BOXiR"`1H,; \ F_ Uri˽zwՂ֫sYWf_KYŘK24N5is $<3v+ǹ&D$g KW#mᾷZu.9!Xȑk1blQ|I )TP*L+F vvO'ݶ1ӿ؄bpyvgF(jGQeR`7Q'+aDDz{яeCWA V9\3dԪTFq(OSH RR[+mgE1zB`]}Sm%}jܙjsuë3]'t]y #Tq sU wW-X,KR_/Fί8ZWx4k#&S3)\;+,ei^k9ŃBN7%j;<SpܐZh3?dQCЉ6fHh3]0024ס.,H |&ADH#9&sy|>YQd0xFh4WR| LC.2nHDCn+GԈYAo^oe,TF̤@Ga%QhmpهZL?g9n\l0)FU Jۉ ~Jd[lbdg tvM?t~d;i>k8{}B.g=+YARxW':2!׉:#86|v[SֿW7Ȗlߓ"kXռd 2kƠ*ָ'g1>x]_ͼ؍]O6# W 2*.aOLBO o:?>2!"G{5wtθ0n|zfG It+_I}~󌏊x`"lQ.G\ԍ-6S2[CiCj3=470i c^{5\ +V:/*Wcc{rR}HwtN7[̸Uu=⺮o*Ma\m&ٔ VPak;ݭ3֟J*XE>DJr` O 5o o8N{d*گi`lR3 AUcNc a;IAe1e?>2zI0z=fe6GZ9FW+m\ Aaĸ[,Q}W;,jAi#wᤫmWQR.WҷU砿^ ‹MYK>1/t^@`ۧs: { Se,κauysyC#Y"88麎/B+sC,F1Nkf(K=kR+BClp'o+g^ j2[[jܰFhfyb JyFAFt#Bj}̹U*MX(^K`V/p P[x7|<-Ċ:5/rMADHHׂ5LƝWk6U-v--/S䮋LpxYә] V, Hed}*@5L xS)!]SwLg/ru],gr3=!X0fi`"hsx9(%tZW /ĝSgW֞y]s ;XIP}R*\^"n,4Md؝^"/Cc1|ÑEt`twoT4jomWx@5*pmu*8y SJsW5vE$~>TJ ɼ,gT 6QÍ-U +hScdqL[$Uf%B)q)JJ8fLCt|cܠ~$G&>:<c'_j*]6\& ˨VQAC[]gCoVVj.Dk֒).e?ALG"#.]ڤJZQ5nHa`-c"^Ch臶m( mY`Kק]~lfng]ySD~<͗rnWso{Y#)wLykwAͿHXmC\o+>]3NVZ[ t6حWǬ *)^۲x|Ixmya/Ćq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_single/L2S357_15_L001_R1_001.fastq.gz000066400000000000000000000226751411645176500270330ustar00rootroot00000000000000])X\ٖH|ߘ{0Lյ"$ {HLZS]lINݩ}?l6ңjo&d4nH8I"1^$Myh/Mv"?NʟҙQx`?Sp&NIbb:S&1I?㕭ضuǣ߷h9V >t]kl]皺GmTnlcv]}?hm`_O,֓f\ ~ \;2% W@ ,c:/&.}pqzzHmcCѿ2lݱj뜭qv]9twUYVw, SB>|OfX;`#X_:7Cp{\/1-mڀ*])`_t-m@۱k;ZW7tu^*+@]6x9L4K]` {`# YR? ᙀNe(C_z5bS{tW>!@O[Q-#Ѐ8: ;:vvi@v S~U 7|} kLx\yLL<0LG'&l3ltc{nkkLwϕ#(mWaՕ­ŏ.*[ bςz fg=Ql#686\8h f8"6]j25bS4'ŦCv>=4>(ں'tGTqhB% Gc <|xVwҴ%5+Y}QJk`*#e98v4FE }L1'){I)K md0!;Wksյ\df-)ּn}]K%) c-,43F8hw:^n&}f(3ѥ";#O`wqę՜(3N !6M8BS@3׮4~@/Fo"wn ^#lL/`SŕY>-H<<(-O^pQ7:.H9z9-J! *v\u-s=,罃U®}9hhY+4U^]cZ4ٮ,½urEC+-sԨ([qVPCkq hLVŗs&x<81Azj#/ފ7H_Ycvyc@' uVRW6RuJ> +a^[uM]H~MG)^m=X}8lƴ2h*}`]>KZJ\+-2ث e\|3>b}S&9okhQp񐻸䳘wA{ъ܆="]u YgG[|B T-B_ن,p +pc͉ q*x@׀׋tr."_vtA?ё2і~}j?`QPU͚5rR*۪_*z l:LɣfWe4VU fb:yLC4z("vTu}_Im ȡY,q]h_d.ff hvq+$'S@ɖ}[ۦ;6 YZ\kjpqM9lNCVҨH_cW`=m\i<4QV*|ǣwMY՞6wc㎠pjK.li f!dJfz_f*(3,T2e}ڥ_?};|βK2w"J.Nf6]O(r+yZn1K$ޣFOʭd[(׹sc/Tk}Ej8'62gGhؑ涎40;, NJKR )jWO+NWf`q:3^/tg%saV\|Aj,t>^IC`UdK|k+R4"%V;Гk;in:0 wQ)W hvI*B=%zfüA84UZKnSrΨ+GV_Yv #`(FDa^blfU=HOO2,>`;=SUlh㳒!-bBR%f{, M2. !=BZ뽃h\ Ip`?׻ic(>vTAؔ80{muCdʽq.:2"1A#ae)%g =UvV5]~Z&b4xLsB˙2_H_?g.4ͩz8wwVwdžKez\D&-ugF?{j`G5"v5Y>yu\OIgZl܌||Ptcy$++.%>&8i5@jh]+`JmH0sEizkΎ LrE -YDX|̋#fJʆ c%qdVeg*hVe,+TfLBӏQx47hu ql6vWct>0lۋ-AnmdGS~}j;߶e._"_ߞGh4_+m%ɫ v3t;% D.y՞:VoXxƹN74YZo`͵CNeۧpb:nc UMUSz=pg_vV`TӭTw}HI t!Scg*D'w?>ݬp0+v8 h#ǾJ)jU&I65K1 @:$T~,QJyɃdfMC 2U̧G|[c{umn^G YUW,s*ty,IHFY?dZmA} eҖP7[vbvOٮPb;~٢h]ue4.I:qۻFP`$lo\If7߅JйA+Sùk9'M0~TW  wnm )BӪX+3*fwgY<+ =(Y%$%gv>{\}^zlVr9m|* 0\E]Hi(24K˜/(rpw,Oy-R_ lߏq,u9b$A]v^Ħ~vKW1_Q}e\([["cv&+jzW9O5>Jtoj2s#maj^<7V8%0R] u$T1Y-iS"HihOoO㉉/~o6WHkr<-y|+@"~i5<C@I|mb*BЙ+]Q L? |B= +?AEI2wK7&? p8ME:TbZ?ܕk5lYh Oo,3\~?E[At |͕XM%v( [qxf s.'_s?G!óaRB6]Y)Z@GU Osm6J5g׭k˄8x4,GZ5MG^k҆3fXp„p!=Q<^oo0?3APڠ]k-ƻ&-[+ᗺrMU߶ڪ{HQY%~}/?.x5YЮWk/N0|-<F7>[<95m<~z RՖIrJ3ҵĵ%Jpqn!i1 V$!ڃsQ52d HjW!U9 Fȍx7d~_w_gG,ȮG+׍TsMZ l(2+//Bܯ@ ;LFLGBm6ZUcyQPۺ>ī4hjvP!+Qj6Z'c.Flmַ {5!\MT+G+X^_݂xNUqc ,ƠOX,EGm`$XdEo;`v<9bkFѕvWryVZmj$+k>ma6 {{RkR+z7#4\q휀5΂@n\MU2j04DK1VbB^u'y]JG!ŶKث1Qꚿ[xeu.u5_CFBM]`NP%le7%zshn!8@S\h4%D,/!  WT\C_uxFA\UKg0Ing<#7 #6va2vZfxidzLϒA0;KImeQ5V<տOxF^ mo>N?zw8(g-;=ŀf(O\) L:/}$紵^=xlt60-l0JZ$x:8pѾfYJy.ޤR V3ðד Nky u.t6?Y@nJEJ*Hnd,񦏢X{' J"׹P0iJ<?&g__t6uw|=WAM6͂oulT)MT4[ z^&XNW][jTf4 :0( /Vƒ3./w c+JZXoYlQkch^xw _,Þ+/g򼰃zP9}, YVײxik\RmޮtF]lx,`ؼC 6pwÿ` ͛f/ljEZ4DkW|q{` _\X#νʵtB1OS/EfH Z ɷM>XNFFgЅa>taX.ܓ9՟„jXޱ^4_ 1cCڔ@`ܕ[!1Ȋb l#NW4z:&NJ TjZ<q*_C3[qKo%.^M Z1/kjj 7 CEx|l|vv=fWq~RlV8M(, M>  ưVtް^A`Z2Wvҥ2v9NYx ,ðє {=x`=C`h㣆ȹkdy˾)&A Êq>퀝9©&o&J=|T/rl|3bGk5 9g_GqM>Zyc!׀$J{F#b;,;ͮpHэȈC:GGwe9ŇҔn#UE|DDV4U-6*y_UMAx,e*[PP5p8,FI"IpH 0hX"b;gGHOg[(wφ$Pc}/fJdɿ(Լrǂ6BZإe״ Favf>`2h,; cyx-Y, ~iz6Іe797?op-P?BϛD߶f ^7+ -e3ȂFy&4W[Du"vvDe70/ ]% ɚݸÚ kq* U.L7"1nK|ϠIuNNS3(elmxNXvv7QGdn\F8,ܫIW7pm8cOn"\!EJTo$` ߯t]d܊uJ:<{ps?,~'fc pp4_mmRfFLXv6yQmr/X-Y0e`tw3?ֶ\䱡)Բ($"lM* ^hQwY QA,0+q38$)7>;HݐagQ&6zpjS+ d L¥Kqn+VĦ0޲SKi̧2aNh<:`ܲ-[mqexq4nR *T\TPZ4Eg18TbDsAׅY(iMۥjm8by c8>TұJ"ap8֍}klŋwҖ Xz "oqm%@a. CgZ}^ze'wwd؛蠖=kC@7ډ~?:nl{W`.@m31kЂmi# % ȟe hDNr *FVa`$)Q&Ě*"؊TOqr;Q-;b޳b[<+%W}]o1o|fǝ빓k`P9́L=\b \ w1 Vʗ e "¤QtlpaM* P_>!ڇNz(_t4L )VZ+V0mh^׾g}]edga6E|CxI(ѭS׾ ;!}QGAvqAofe P |ZƢFPR5K4F \/w/S oȠYZ(H*gŧ>jJ7[܊JO!*㱻q2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_single/L3S294_16_L001_R1_001.fastq.gz000066400000000000000000000231171411645176500270250ustar00rootroot00000000000000])X\ٖ㶒|o9}{^UU(Q" @R(RKm}m풨NׯoKXLdYrڮ׻z3]?(N8}I,IDD^ ^8Ƴgw$1>ű[o_]1fi/t]C 'p4d-nSvX[[ZZcԹtZkUhJi*Bo?d7ndY1c,?>r&;` u9`>H XzXhzxqM}5BLmh]w>:m붕eY1km|;Z StKIڦkVӪVZ"xqΘk u@']LvjFnY"&O#b`یų sǛ#^;7XQz"z#Xk?qa\?n"K:_n7˷XnF鏄:]bc x  $;.F[]7ԝՄQQ8mr]%bכ(bEcL!b~F!bE1SX3x(qb`.eٶM Y5R(6OUUJV||yɎ탖8{#vحVs;[M?D"6~3b$"nDz blwOŨi Q 9BL*9JRDZ2P_ p~o L;YiXECB2Xh,/3:,:S_`F `2u=Z&UH,9>hI<{Lc7fMW!{!ep[ #%wW(֩䥼XpaJe$B{rϱN5hR4x/cJW-d%^#[c(Qo@9ʪJ4{=dtd|H[\!}ȠARҺF+NrF5hg4R'c-e1꡺+eo vdb6A}؞ 鋵:*j!fAi6!wu lS<_*;ϥAce(CV8@B*Z܇Ǐ[%WfPeqg/^ݹՙTuby;fNXzr=sХ5"5P9M UBX%:RŃɠոv`;/ǸI W1׀HsrÕ#V&pyM,p5 f؄q%Tj qg匥KiCU,UU̱YS]*=" 燢@Q^,?Sl$nE S,s&XG/ ~k ؁`W(+g1I wmHnHE5d q>50\4-0%KDE.6Ň&l/{a`ÈWp(6q.u9ױ.Æ<3꧖'.L7iطAƯQCFf ?# k UR]EEO $"`(np]NK$f5[\^ܕ]"bpW m++!E>dZT%lКWtP3UUՒuB2۩jX{=a_R]m4e7j@xߧ.r/τzX'b|9\M5+iyհB5[o>s^xmY@a2k5TgՀcc\dćy)R1L@nl2 q^sEF1&=';pV0D`o28 lޔ:R*/9+AsAմpAYC~M ^,bXo@IT<} Sl6qc5@x2hEy9Drvbֽ`wךT4ر 5Ol[RjO ܂\\ea)VrS4H@QN~(ir|~VEq8b&lldT֊+jRR⸬MzqWk#Ul Mбm ŒPE!%;5 =OQ+K6n:,GsF>Zۅ*ޡ=g0#`y4."| +3CfOFLYG:ҐS"׋;4£1M`?ْyŊz \]u:۸hȏ~Mh,AΊuOs|%\Q\M_nK?oU+ŁsB-cpAJX(jEoMR$Uc?+uxGݹV?jAxE,'Ktq5)va53[r=76(z"pqF? ӆo-D!Î;W^ZRlk{S7h1RT:3\}TZ(ntɕM,\Mzpp /`$pGCaLuKd6jɡ^?R&#Rrxl~81I;dI?+۷8:1 D un|B͒ !d TVJWF?O{f)z =qXÊA#"gN'(a?Zb/Q9iӶdcЦ3~AN"&~eUUd(ZKG?2ptA FqXs\m<]i S',ڵMn؏JV>_5[?w vNbiC7rJ` p̰d ֶcf%GKWJQ' "Le,u#`` d,z/4 Ϛ[w%j2ˋ+#> ƏjgbG G7yB;ߝΕX{r0o8.PfopFU\ab c_JuTv6/vz:9F{iO"_䇹l;rixx5nlgl@P΍J~)2+kzut9Onʋs 9yzAJؗ\ {7ހ_ '8'eLaA"Rű:S3Y}4}"y̡koA]]-6q y˧.&@KbGϡ2${/?L MCKCi O[|UF$@bC 4wWkM+{ܗdpoĭfȨնg5nwHt)րrh=Śx%[ҴOPq-v5_Al%|l>`#''a<{5u$ c$WMC{ 7rMSkfbx7E*VT#*\T4 [@߾+ Zp%b{FSB\IZ+>`ؖq7l"lں8,1x~6I 7^}Tq-ȔɎxzʞ?ѣ&nYMaksW_Hsx/;q2?R.@~5304hىE*y%:4c+[ຝn?m~̆M. { \Vw qF0,M{ n8gc즎DXӿuobW]6| O $/mӵg ,hKPs^38M_Z_]e/a['mikEhlFs_T:jHN zs8qUb./%\b mj0ؔXQLNĴ*ʎbN Zjǃ[G|Y1CWG|.o:dk{)>j-x VY՝@n"SPYE̢z˳TQKɰA.^Ǵo)ՂrQRu!T\y+,vk[)A!c?:a] dz8 q4Vc9 /V` Ò2VX>Uq!g1Z˕R):K|40H C8kE`ɥqA)AO.5dYruVrt1 ? MndKh)04'g0( Zɨ^6@(qsZf/QU'YE4<a5R4k. >t}BY6s  2bڪ!JZp#I'iA<џa+Yayw8^җMkjB~K}ϸ$ƢWz+u@ `\a2=(#h`Meh/C*.ݯ/||?~O`AL݉0/Qyu:0 %4j Nd0 ;n nS6mChjr}X^D?|U,[ v(c܅8Blr(=b$?(!c4~:3 /0k*ussˀtsS`G}Yr:ف`ޭ+{_%""VFLI_F:42KT 4Ӣ : 3<2@f!zQJd!2Ѓ]NgNfUv2SK9u%8;;;;C]j< s¶rUfdYG vS*zLk0\)a'M89чaT+ 8(+hK!rp~DO?\Mǫm½7w i-_s fl^Bl4S)ITCQ ,_9D^&u >L[LXTfh-#./jyV\'VQxϒ89rbyZEOyfT $"{1McxRCt| w||z  S8N @m\xFsl/Eyj+CQP[.kkO!MΉ,%E8~!a't4^tEIL̔\ m.4h }˹*ž-:WHPYI[#T R4Vx|?-3n>n/gYjVeoMe,rh%r[FСrנa)f5Xc+xT>NnT|v34xݐ}>lo#:aھ ᥔeȪlc\ށ]XX/ɹV鐑BE"\lrHD X|D`>:O2;+mK(6GEW<(\N4ñXUXղ{\#ٳ ~esu~ϬnOЯۦn۰n'WY6V6)^ƄT/ɥW38=$/RS[l@(Ł(LZ٢maG72.Jbm|L*/<$MUք~wrY,$+%:a =CuJ#/h8X]RvonjP[fl R @C~20;R˝g:S.Ph~? 4M%hb۬k74 i52ú+W28 C]2Em0:**6.]* Di8o-qC·wRʄtɝ䡣nJq` :ic0y3U6ʝKL7Б| };qJؘ`aé/4-å=&*ͅEkKy.WemXtY4J <0XEƛ'*?ol fl~B|erϛX'9..l\&r#f%\r}Fqbdz::/H@ݙObW}~_vzukqoEHUmOr+-/l3a2[KL6̔m45l6N;lCQiʇ]o%pW;aT2&E{fiє a'?o.? t~Gv9.JW%wX!HilٮZ)赠U΄ץ)#ab{cX`|ӵI[ ֗G׫mх#mwS  m:-½iGk- q{n+|WUit`ݞddz&`iqI4t%E-x?lV|ƛqv8˫ثqv}1./ٮELg_ߺֹq ˼< @+⬵yE#Xs˷wYAl*Q^Tp%2:I\G2+IPq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_single/L3S313_32_L001_R1_001.fastq.gz000066400000000000000000000227711411645176500270200ustar00rootroot00000000000000])X\vȶ|8wu4OOCwQ]- Lr_pcL>N;T12j4΀.#M>:zwp]M7|. )l  /̈VqMٶaBkl[7|8$4&N`zU2J|Z i26h<h,k݅^"(0ŁO4G64>k+ÚDlaO5ևih^XHMwdC ̂ ` aʹp@׮5:Wʲee!%XUVݥwg!_5dׄlجgɟX}Q e`MG^ ث>l1 ;XvS7ߊr_ԈyV&X } p G&({dvk3+' $~gl1{\#,Q08"Į3VWl!A"YH_7n8:ͳ̷*-2+;h$ \,{QH*&5|%3c qYG`V,tR`3^Y`X#gRW#LU^kZ j5m XS")VFTy u+ <  [حs)`doƳzzc u큍rJ;IE.et=-=e=QQ`@Y l fZZ𸥐UY w>r@0^+Op {WOƽ0vK)*{ؼzUM &\aH1װ;~hF[TSXR@oJ: x:$IR ƦRFo =^ b[X' W*\r$ZXNsUY;gA.̩lX2\H-!oh3]=J칏=26*jiS|ĕ?K,ba<$ J'G^,=y[@:Z, H䟼ll'+f&"]NyM&aĮ¦!>JluJչ-_r\XRλꐸ:Tp]Th85_üG9Vъ6*<ʝJRũ_]9 ]7S WxOgކ{IN `+,XX#MeQbD@C\[CU)B2eȬdT~lE 7pEo,vWX:W_XT(4΁IpT!sp̆%k=vkj -2?UK$X;} ʯa}f2h׽{f+*>?HJ VնXp,2"Qݚp^'rfşM%U  ,^5`HwR'` WWd G D^ X;N8\7hoJ]{ϊCr$pj}Cz wmj-C ,|G[SySv<QGf4e O ހjGEdܗRI)u5VeNqGO*_''IY}WA ^sqfIŒLܫAwfF$DpTJ 'U iX*挼2E~P?Q/ m򵔯0j}yk|9WE cfbWp\EҁPM B_)˗կV, LDNArݡ150_I$/Znoj|ʁX LEC\4E@>A*X\x$v#LO/C&_dr3N {^IYiW WhL__ڜEٛ &U`5Sk-N>P5``)t<>!s/㫹׍aPƫ7]ɀ  Ŕ:/mhoQ Iq Tm)754YlF:΁ !U`כt=,׋ek*[qڕ&| װYhDW98//l1rW2?A<#׭!uj< ȚVjxtUd pg" E^/f1YM7T8> o <"<*/\A}7CVq[_][ַ\N'9=.6&aDMiFM%-p鵆f*KJDYn>@jNqL|D0ЦJ}5fE'=/lJ) ؄|:~Ĩ+o4~̹&}[ỷMpRw{Aio_KRQaW=.E&~BfÌӬƘ\YVYFoQ6)Q6 )etЁ31"@2ȩ%-,K: ¾0vx/zy޾> <Ɵv-8U.8\IҸ6U}74!$qHҼ :;,=,Tx*8_Ѻ*hdA W!JQAV-.e~N{3Iҝ8u? X3.i&n2c#ַr3!0L@oúۺ!c{h!JG12ע7l*s)<'*3?oln"UN-Vz"R,oggyKB-�uZ8m"KZհ+ #`*!_Bzy`s?^Ng0%c| M32(~(9o{ڑ9갹n:MKZBUV"Ȱ$]w0^|Plo;]Mzqٚ%v- ˮ Mq=/gjZ!8/ŤƸ)Qjк̑" DV]jJ3UJUcX&f 5:['ak8`3qi?kADQC/1C6~pֽ√gM0MKct*&1u+? B]qnx!-0Y_*ۅvk#ikݚLŭs];hCZ*ښ۾%% fBQV ͠:L<<4|~jL?1rlb߼|ُ$6Ip6ȄuME}D(~d (^v[!{"/K>>J,ʼnz,βT>H {X.HqB*x@]q@B )4%@RRuWHQH_4S5g RD,hRB/NF8==/Eܞa1DOlw qZEzp0'p֝,rv-mcp|0T} jJ3݋^:\}vdskh&RVy-'2RϪ٭Ym^xx9G{+d6L?4^ ']!6ykQ26 -M$e0T8o/;e;wY r^jo5=|3Aa?c Χ5:S"˧!Cgt&cəb]:sFK0Yƛde"I}2KNa\ adKvXt\ nC9;,ݳyɀT[E}u5_9yY+2oQ(:q8l9}ΕL(ZMH|ycwAtHEK{ Gf.i໑rbTF5oV_]&aka%H}<Ag 녻~&Z4hI_uC" M+'ΪR|l &e 0]-W{\kvE64e6!f1I?]MŢEᬰ$Vt GhMGv \ST VjGW[՗d. %x{⸿3^jD7¿P{F;&ŝ^d4iE#kNYd ꓔFd%sE<-srWU~pZK+j/tO(u4!CEZ&﷯ybwNyۗǻžPۻz2!OLebK{.{]2] &lL _/40߾fk+_Eo\@jg]Qk=͍Q/0,aX*OTϷeQdM=ķzi' ^ ~88 Z]^v&3oQjU5X]|7\de[_ul/a'w5/Nf ]mD` |,4g մ0 WBYq 8gL,vMg˟n`p;␰'ǛiC҄3`ᴈj_EsKdromk[ E%]TuWړmX uVr-נ4wlXJUౣ\e_?cH|tsL&WC1l|ώ6Ǜe]NYӄo?[dhF3I>=#! dĻשjOw>Ӂ_NeTL'GJRt Ư3Ӱ#*ȰU={wsn~m|ٖqM6پ@hG}.U1$bIxw:Zfcvg)6R} 8'6,?鵩X2L ZVIe6"L BLM$1iP)8)!_ ;Yl?@ݤt#Jge@w:=ҔiJ*c9';=χϧwawQxN]~t4^loR uS\WJe89倭V,]st"TS"l6bN/ƫwwKy4YM(g]up]n{D~]n0b Xٵ߳a;*`nz[]ĵ&Y -Uh- vn-jzS?+&%T翏| kCD^4 :n76 v}M,iQ6-qy(kYtLa.g-_ӄLE_Rz4)fثI ճ p?|06D__ 7RVӊܖ[\J;ZjaaCR@ƄX`H<4B6rDG  |Ev}7JB(a Yղ,ʀ3D*gͫt)!t`6ܔ}Wjp"3Z]ݮ]mW> ԫtm+2nX,w_bn+2gmRVB h1i-`N.%*> vq`V.a>[+Mk֦akmZ0% [˹o8V#uaɮv,U7Sk#>, &"wŊ|Aua;Rb'^m3>>g h/F<L1ElY툲(?|G]zcTYR\@۠kKuKz Bsm|uHV@…ͲٚmO-ruPȔJ?ܟ_P6拻، ͗]unpׅSmnwN0xb@+jG"D`;v:,z!'>dXtHcNGJ1HS%2b.)n m9yXvϖ½42LM셡_]طakw.W]7z:ˌ ,C`]$G(û]huhgWeln;dM>y)7MA2 Kd4Iӌ|>x}}ʢ n"G)v fl*rΫۺ_,.Ven *<2,KUqD`0 tk /B3\ Lq)[Z\ cca٫vF!Nk| QA r1+ʗ@EQ!χ GdW>Pa9^#;M$vХookmKn|"J IXݗsH&!7KLs4hf)w$VOjz<D ݾuٵbף 9;-еr<ҵ0)j2PAr}{$V0rRCmնD|8&A  ళ@棵Ap6Vm5uQle7b~[kU3*N^u5,NNfZ<>j3 HIcS}/~2!H0aߠoiu;h&}@ 5bdA7 >s/J#u uq$^EQ(b!4iv]Zk7li%nfeWWܥ<\SJrZ=*gd>KF (pnwNV,sf= tFmr8 )# bxI]~瓵Vj]wɘ 0V^SJe)caO|$s@w0UZ warxX&fzW@$2f8M..z7, k{tS\ь6h:j&nF\Vq4T䩂l4t!q)b Ɔk(-P- _mYK~6-,a- `I؛R}.l Ʈ&OF]uooMs'ڞ:e} *\٦!.WUL6Zi iy7d<'Eͮ8둍A :ΆCsqel}QGYXGYwhq,v,Q2<Q{-bWbC&a/ZU7#.K[ek5MnviKAڊ'2,{d.I Tߤ{+!o-`r>ZnsJAzHGao^'~S11q4&t4L]SCq%Bk'60(\Ñj^of<"l谠gyw|X&\$=^հ^|5qă5VGX2'pd .,R#]OAP:EHPԠlNVgD U( ^ɥ 꺘M| t-޳*mO.bFuf+ZL\l؈<'PJ}2JR-4'x'XWw+*K֡Sβ" K jU!) +QPE|1X#]]AĝºB9,^XIpM *,{.|BIIN)VzF2;[̏)/\BG؟3+[򞼖c'+藐R*s(b1=*>-`HF12|>DRpajV STq)pO)Ղ (6/T&bHºrFOIlwERpWQ$p|՘lUPPqv.)R@yj~Qۊj[{>˴΀A[r,ܶ~Ӷ{@/w}J0IàVϰ=0T1 <5\42 \ Z͝v嬄b_ $`B u,EƏ2rYf dUW%|+v9O eUՂxZ2~-[)1hve ([Az?Q<bp]y].6Z땋; ]lܹX$^{wmro/DyTkDiX@<=j8]d'aJʣkKrR*z d1s0vL Sqq<@#ZOY7#lD3,qty/ enZ CGN9]\U)h\CJPR\ӀNKۘɔ-Mu,R9W6kKʺ:tۓ #j@F{_EvȄR\rΪ(:G>,,s*s/g]%ʍq x 5gF*Dp1 Uwl:u<'pYBC4$S+$|g(SP"OלtwpŃ|훉LAK>Q?b DV"Y+-0[m-OK!cG.Wj ^\}J> ?xHpWPgM^ݐED.5>rE7oנ\ '$춨0.me}\AH (F ʵ:J"ni'.h BF>_|5N^`BQg7ָ)͚KB6 +|OܨE {+\G4e49C ׮:v36db_puvWE:ñ㥗nڈpJe*#(RqJ DFp؀' \B<#3BІ( :gׂd紫)^l: V-v-~0oMX\_pV=΀/X&i!hKa| Oj)?-yYNh ښK+Yu\ܧrKK+9h2^*~sSNS~\vxCq~LYSb`iNMW* *fU(Kh %8RR`% )J-MC!cEkd3vm&EY N H)5'xcj˜ i,B2ZʬUq?h`g\5񅾆 ڸ+vA' qנ ]t\'uezXc]6h*e$J:É߹˖j*+fI Ll+!!}}|=rx9pa^ hADee C0A#]ۍ&DmV¦`:MoUbJ69޸l4Z˿\ ]n\l?T XVMSZKta1r)hY.9ļP8w *x/a̧t4sZ`.ƹ[~t>pK?iQWsjչ"Jw-ShxO1Rk7v'ɛIu{d \\a_m5螴MNJw]OTEפ\F:5ʭSt&d,Ou&5F+ijk-2\\%9%Zџ#}!ru[ht845oBd`WC]&} hg5f[\k8]E"-/7*-hiuq+o؋'_ v"IƹDr3n}U5`7g?n5pc]^^ݧkaT^Bp-8tw̸okTJT k _6M~reY4J^=ui$Dnu$/6=>0U5ֶZ1 s|M;:-aÎl`Y_ۉ Dmk20ֵnWw@wlhQ3!Nb2Җz}N"Axʅ0~@lݼ5|ܬv:]3+A4\uAن?Jq!>V!0:+JUP99@ԙkᔻE.,b>ϸ7F)L˺} ۆ_V|A[6~\ +jYk0e7;oc#$k*ȪbK`hi03$ET.6j9d,e˼aކ,ՃFvNNQ'e2\Qƕ7-Qʜ)sh*{ɾɏ{-zIU^ZvGҔk?JR-w<\{KԲ fY4G?MN;Ȗ:pzo] @.W ܊O.MyEdlapBAeDzTl6a={3U3 =3m  cX]] uw4n[,4(%=%^˒蜖ٺ06,BRz:YU1} Wp_O{y`eV[>lq1/jQ3amɼeUfEQ5?gj؜rDZR 7e=Xg oտ#ؿ#X|pm VAŦh6cˌ6)M 1U({dfEXHF l͵`mmޖN369 '5ޤnI&N~Pu;3cg-0׀4 QSKa\uATqQ* JG:묩6@5(p syK1|5go _\O0a/WIUߓbҗ* ~))% OI×Il5\VW]ۊ.V.pUZcc3U_3mM[Ŵb%Ï؏|aU"N)=D2c>Wt{)n|oeTupS@i;-nq1'mnXА;\Ƅ9+a!U dU^]&DvsGq.-W 쇛r; 3_ߌ8`K= Î~>ΤbMsu@ThiBe[G$( +싂 '|Jij<y?1uXy~ `/I=vmXÓm אdr&4Z t6I@$2Q"i,ػ[4wqb=xAfyZ}FvF~:WJ$aPf=b_[묷b|=?}!AcCvzݼy4`aAhV[~\bpiaxΊΜMfU)d**Y >Z޿\u!|Tnw@ufjVҲL}֐r uvכO.S񅅚W]-ˤ8db}H=-3N~?7K|ч> Q3 Ru㥵ȹx })[ | *=zfWNOI>EF\ņE}}?H/{sQ_<[ jo/4͕"B M$a~fޓõtnm됊J"MXƁ[~va-؟X{;xJ֛D!+yQUdQPP*SJc\6_:sqݭl*WNrvp/W\qz nھ6ʆ0y(LJ wj" hr /R\meGN䢁RwYᾋopC ˬ$i Ių:WOsƩ8tHXۦ-_U,|Y|MC6["ª˜"Q@.( e+PHOK3٪k"_/<$z A7zxl۸nuuZf$IA|I蔈3;*xXnunoTv˝1L]{ԁQAdfƚ{5XM3`mؔgv<+A$P.-yHB)it"kĮܼbANrb.'ĕ ϲL\A\GIA*~ߜ)8(~"̓ļw#l9PXvPHg\(<$1nQtK.z$` >Y-i XVTZVmPR*S˻'BzQ2s!z)%[پXֻ@0l-BxaaWO'XvRK1Kӥ{mo Y{{N8̐f?l͟dַ1ҧ]<(X|^ΒuV{eѲ6&dTɂrZ_N'!Qa4;Rյ^:Jb?Op`63@3j +Ms &rƶ.^Α)e /"MMVRp=6N~?lpVuy&Yc\mGv[Tݚ>KҘe=lEX]) fg(<)%/E=\vei|˿@^LIY0?h{:Aþ%j)G(8xrA h(\<՟˒jWVr0 _|ZA AIc$Y%2/CDu,F?wv,Wd몫){R$Cs朷r}"ⱐ6/m\Sc$ Φ %6)͊mU:p+ԫ}[(H\8M]0 n^,4z'۝B͉k'3&Nuw{}`t"П1&«Rltq!`GHo=4Fe|D˦)P?Adp)};n{mWfi&,BBp>=ɚW>\b,XȏA<(DuYs PȘ+[mƇV$GcposF @O;_)~ øh oMelH[u{mjegc<vjYLh\T J_Q0uvC{Gq;Q1;v'v<\ bE:YHO鬈3nWgRg?z`/Co>C×\Rj豼!YlU6zE:n $O)EogyupI9,Ww68wŁbphyb[1]7zF.|̀ 41*2&U0˚YuwTT&(D*ϫ Y*q2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_single/L4S63_31_L001_R1_001.fastq.gz000066400000000000000000000231221411645176500267310ustar00rootroot00000000000000])X\vȒ|ߘ9st1n꾲%CP /*,\ط) )Yǧ}[fbmruϗa=c(N(GQBiqD)R:/#zϺIӃNKNF1^KNK"U1 m),~:ڬ|s^iݙu(k7֘H-[-ZJ!Z i !)rvv8g~,-5`c6 b~cxc,G|1@s0x2uC݅dNm;_n)ڡ @_F6ԍjX<R$ec&25NU\=b7c4o{_FlMD4lZ=JvLF3K JI}TJ?iw)AWbE)3.b`7[ژ; )HaܝPQzFY+۵'M:՞*XS C{5T-L eh|"UmchkQR>n7D|uFשsLF=OpT*5=,)+[{6H ZW]݂dbXܷ 5qez&w2U!du Yq86D=NL#X-#c՘VHaY%-RF!RR>WMF"Kyf& \b%j@ BIJ\H>y9+!˿sl!yEcL\p'7bL-DVHAPVLUPZ4Y^,QȂ2dWM&K!WaU^i 1}r˩ȑ,cd'ٔoSp9]3#:6PPp])Ba^ё}5d/h6R8ݴECp:1pnևjGη:炘.%TnEKǕW2Z_F}& â Q֜I`E,vJQv`C1ZP5`Q,Vw(y%ɲr@״M< fu>[z*S˂Ґ3fm Eɞ?q#S$ %I>RfRkPurkɂb+#!{EjYӎv*ǶHc=tNAEaCUUXVeee%|ʄg{WY$fg-drq&d7l(\PBNy!8`#q[||682CĶA2XJ4] eO` È,k EE`̫ZuI)}? I6fbQ{;! 8Y 0, _;=jɞcTJD9 uļƟ%1;DD$peC meD@v\vH0X֑,#; Xi.^2O eR#tHJ]V+Ie2i \/fj#dW&=fGȦc\"lm^5pNqEBKYD8-WW\&0K(:%$mH-j hꦔe)?MdW-T6בcM1M? L9-hߒ*E[*mr^|z?9v,+ ,p.;<H`}sXe* Q1 e.=޷6kZ<=ǧJBR%,,Tm 0~Dt]K>,7+,{W_$W<rIꋄxT$$H` #;2N[ͭ8;[t_.<EbZPc w+zmRiK,תhU`+?`_v1?"T_Ba %WA6틄Okӻv {lt235(k0@].j>? ؿ.H^ ґ]L˰kx-\c۾Q{?7}S/Qħ.-RZ〩0a-P53``(?wx_|\ &f4Xp݅Bv[Za ``XS( KՖ Ս*Q~)Q*QKY(hכ >߈QIJ15ҡ73c LY&;0:D\tafu~ Eri@AQE!,w \WvsHn@Cuk_=ľIݗ%_|u14i]Jji 0c0ڎ+]CRl)J 575 {[ awfux_c`Ʋk;LT\/BKDž%|ʲzŏ{+o-a؜M/v<`\`9E-\$4ka؍?-qַc]])ۮ(X.? R꺐OBfJp)~+P1Wx 9fE]&xTp/;\T?P{Ҍ<p/˂yù-Ǫ?|+cVVq( 2=vc"VnY_f~%aȗ!sE.`L̕h2(NC; CNq*ljwnBPaP@a4Ttt[ U,0l(du,/OLZX٭oWKv+AtkE#&@D$m F4$ȗ7фb[_\'{· }e T0z t%S;뺪Y#<䢮ǣfMj%6$l2H^iTR<=@ `;)+RrB,S\\!\]/6t}8\OFݖ-sSH,SE?F;#|mww06 .M[ a0OR@| ?LagbHB0;4Ⅾrf-;ې&,g]=roPbN)tO[v=KD # ˮduW#AՔ&÷7j\g-@b|;a$-Bb@ ޓ,: ̱)KbUBikV 9b%A:شX7r. \śQ!j<+]\#o#mLEPTI;ǢDM-|}^tEoZP{0аn KxYGC:gf5ץ9\:lGNBOSn5U^ IA@,?`[IoҊ$o<~g=c#v9[֏kƊnh{DhZi-3Đk&+.]U/#|k }ѼpLWs~'v ~$`ikd^ou%㪋Zz$*`[]Ip iȕ^2ՏMtʪ;XTF=-ɰ p%0WkDA=$')z&rrvjl .[܎<[7z\Anq7}gkUb)˃Ֆ`_\[gʱac2cc1zܩ džELh [^hA@XobWg+69'!*'8sakƛ$EU\ `u"’,P&$侚lpKY6U^1˗*F,v!voփ;~-''#ZOCq,Z6_O> ެ,ǚ6R}:oMOؽBc8 ʍ`I=[]o|lc0ixL^Hw)wrUDA$x/9.،!\sAHkhް~fKk9ub}&t3]YJնFM*Z]l=$˒ $ٲDw:CzBlUڵ/B]uJjk@r-MO3$ 3<}+'ўJ򖆍l!qm!lqY+:㠅Hz@I&`G 02X5ו:   0IR}ko2@ ,.r m>%|.L+ sZp@& nZ6 $q? Ct^OO44rJCr14jc4y?+4)1hV &LC"%)Zx0daa8: ]*hSھY)JMso _`jhWA p +?7x\mOVh6I(%%E6ٹԅϴ|e`0#(#*&XBV{Mot/# F<I ~-6ĕYYӰ2ۈ i1XVkiwpYVۡZ}5B [H ShR6|@A2aK/׊dB(Pc8k u[۳QiP\o63]g{CF11DanhܘPAk=/8ًvqh,`ScKuQW{yKVr)1v>h=n&[+JoȰu$_APKhD nv|lu,A'bkFTM 1X0ʮ[Xlfx>s9+s>)]hĖΉmip_цQî5@=b^O尓@Z|*Jغq90'9< ;([֘.j) Pky$1k ƎzC 9h,;sʎf,E$RTg96^>k85#.`rXXI\)I5I4T]\?,W$q/E^!թ,9lzB0Ja M) (jם6|_wj(`=H m`pMrtΰtEx ˏ*ɩxiJ5Z O HV )笮'9s ֋& &c?=wR9|m>8 mε))8\S>` 5?|4≸#qyWڦZU.uHk%ݕ5f%l@?ByX4MY5<E~+{di.֓/'$}:fuw@ƸZ4o~왑\3i& *+9CoYJOpXPbvqAHa>E VAt )ZEs"SDj+\PʺNKYJ)t]ٟ|_c\"6Ԙ2h1HP6|u9bJet(H!,Ue<;E.7'( t{-7ҫ'zz ,rs7 c#nsΩgIHCSz )fLABKmm0\ ܤBw#iMjVũ3j~(+$E8VOeqF83@f;yf4ĽDH nWN&8Tb结9Zŝ@,:j(_ZMVF(j;|+\{, #`*OK A`JXVmU#Tтؖ Iuz}X4b%'3~r -)-4g4fȱs8xuqD׬^sEj.l"Arv<-l!6~=)ȴ̘ѵHAc6~cg!L/$g;dڲ+L7@| $`- ^2Mʘ 겤"A -;,v3[V`ۚo0$I5VMq=ih>R\+c2G_,[yudY-d]P',q]a7 ;εl[#ݮl뵈% 8$FEc."RKઅJZ%:E6y8#m9a1R|@눭 MjTg|gQp,Y҈p ,I- <@jz?.R;°on%dű3DA+Гm# sa`KXC:0ӡhC={$5:׈FDEF#tK XtToQa`7Pp܇WG|gMuE(p~;'gY( 9|wk)Yc$'@c(Q+&Pq:@|ࠩbsHm?BlE-w({.6IhR|Veh#4E7T>v+9 ~~8 9no*itGばj8!*["bH$PٍB׼zT?Ԙ}q2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_single/L5S155_2_L001_R1_001.fastq.gz000066400000000000000000000222261411645176500267360ustar00rootroot00000000000000])X\vF}odzfoOAxIH n JID5^l b 0pX.AdrF$,~-!!!fz2l T\}o3׷P +LJ,Y쬁z!b[!^Uh{(,`l/^v !Xl׫\|֦ <`G`S ˁ'謐pN#_)OߟOHP9|+^r&se 6%qCz{v5BC;[n]`㿧^7 "຦,EH@W ʧ$3Vm0Fk`Y *,Vh) 4(Kӌo\LFG<WiEBv[$:߉ p}@QÚ,W/ aN%ƽ*f \k98.`!@``;FEjQ?tm[W\k3sUwԨ:LFῊKgȵB`h姹` l ُ *2 Q!-\ֱ`c)<p!K0Zv{pEChu Ao1qq$ `{5yBey9%@Nwqw+- IIK+X괿Ù UA*=AUW0-߲^ SV5&b[ ]mf1ȃ-v/m]6W/'Dl:/&"8=> 2QSբMJ$7%YYW4<1먖o+X0\ ZzZ2QJ|}%$*^;V`o Q CN{MFt1F-D&1ŲO^#+~T)+BX*_vjԣwbasCc`9[?Y~>GhymKl6u@.f B3yg<~e߾sY&9NOOٷt8B~ays!`dlT^ȦC50Q!d!'>c ϲ$U ** tKB?뚪5(J ,칳Ӿ,?AcE2/Jl"p\Bj5;[/W?IIV-pQVZT*7ENUzNHWHVBX, fvnqgn?yBCIPq/4\KV(W&↞C9sPBkeEO%\E,,!DP_1UI$Cp-lMz QiJ\+(T4ڶHl*"mtYWJd@)t{a5,~,ި C t0YVIh:оf6bފ/Jm7"Ƕ-K/*W%.4 Xc"H+w.Ρ6ߕ,5#58x[`8LYt=7-+OᕱSۭn&أYNWhrvB&j L_*jTm|W-;Tkbp) ތoU& $F-/[`3UAdH f:ZO`ԯ؀ڭ7ƶ->l`MQ}\ohp&Μ\S^.(' 0aTYŅŤd)D]0PŇv6ZZ,gŀyP~ tz?n2XL1`{C#ULOŐE>,/v-:0mb/mkXFhuVaEְgAk싰 uy;d0'Z^бߧ_^BN_!0HOZ4.,@r~csa!Qo0Q7_h W\dL=I] C˜sd!`zożk|Kƶ5ŶR1 M'yV XX̺؎ @ qُiU؉E[EIɓw<Ȯ@)l=ջPU6$|A bH^F^%/O]{8)diu5Q,T[n%)/+ 9bl# ~M^Vu;43ڦbJݝ.$[;$v -0 ע%LY9TL m[BA#NY)zD0=0_0ݬ@GQnðQz)!  $F BM[`10i h-4zcH8H(u_9Ns DK;΋/ pֿ8`b90>FKY,S'y))ceϟOǗQ|t,Hސqz'ʂd@TDIMŝmcp$vrK㨡H)QՀ ^` y[>f-nBsT 8iWz^d}WP#P|2 *l3F{:WgCG\pbJqEaoQ S%!`]MfՆQjzM+C3-KZ7i|[;lTDߍYs3TppʥsA?T8A#X}1Gīp_ tހ? - 8b0]zEgx6bf1rM \YW( ^jƖ-NՖZ &ʏl \$,HT,+wJ583 -vW?6ۨYVd֝0GhcIHR 5>KQ½vYnfl37 콈8vI:T<*1B߹ L͛Xjbi;;Ώͨ#f2xW@a8p MiO*¸ي4Vn9dZOkggꏣ24Lpg ΁/pk ߋa0zZr8b+bC;j#  8!EiNΙswNE&Ƨ s _ b6AZs]#bbPW  ^KYPla;Ґ<$h(hbSQ 08хbdOyW%2D83x}qS4sL^I}=qʕvWpABollK$À-IVvW;7 c{&\4EY+mv4KcC~|=ZԐBR Yd}M4 d}Öba+! ,Zq5` ˔!: QGOʁ\ј,yfّg2;uB 46j< `k$8y]4IH^7=-T*LՐ,Nx̙z45>"Ͼ$]L;uA'[aޢشb]M[@uò,-l$](:<E*'V+l>V r̮{dl;fXf2ɹžV`ɌOb& Teِ _E.YYnjXOGFRQŵ^F/zN\x%A#]2\\LTH An&'N2A;]‰\>*+ .-5?'^2Yb>L%XO:Ygm5ǯI>oZukX'A ІE+X+h7xB0F$LJf$o@c1ߊy˿Ue_+dVk$4MXPgpJ2By-DCpe r3Iz`~^UAX Ot0Wұt("e ڿ3^92DQzuaiS]͜ZIDn |Š2%/Vr< KC/Xr@TDc54VٵU(J%p`P35 %Eڙ@u[4HCsmhr݌k^S`Kѽz:6tgNUӴt WC8`4R$Wt@ |2葉c].gTDebo;!Ff(m]mXnvu] ηo U=˵! ܺ , ֘3sbޖ;] ֫l]#9l2<[mԵ ;kB_ GtS 퀠).cMKmK-ibEO'<쐩ps:$,;v[fh* =g~k=߶[f ]f:on\Uo ܬM*`lѼ\,7!*@hm$|:,]kjśR(j; TVѐg1\Cҥ.8g•JuBˆCOh4nio:)]KMsGI,a_pLy6i×+%NKE9W9v:_me/sm*.|\"wWїr%Ec'tS٪% $48&ێ@mVSmEJܶpN [J+BG²h%RTnE?}5!vybr2q0RjHԧP-6+8v.|!{jVKSMog).ϒT2cjMW X0& >Ii㺤,La* pCqE&ԟ~?J җ9~6RGjdM{q `?z9@>L`# X9gZ!1y'73IJ 8zW^9w zsk4w kHvAH17җp7wTgjjA.XD0/-g KT8t)A}ےϞ** m\5`5Gc~giMnS\b傤+cZްǼ<oEzÃvV? BQd/"3c ADl j:u`$5d,(xh4:1AXd9,2!V+^c j6.tHWV@USN[<"ʂ[!sSqMubwm\YCD, #'S?PNRβCf1us2Kzp7L@oΖ'*5J g[X>I߼c±dK\7Bȏ2ϙ|J>{(LkJS؏Zk{6΍p*0C'Ñ!?PT^ϝ9J!^s&?%`*G;*X,o6=$/.҂KHpAX^]%nQYXx|)`Tp䑵&UJJhg_Cߖv`; nǠhyUE|2.#8 E=f(ppZ (a-w(RCW神1$X&z,)xL]fu8.3&&Ō't',lIfJ1:عƥSz3\[Cfwq!n8jʎ؇pFQWhns)$eDOXIl,hcצ|A)u} a |~gt|"yЮEF[/I?NO:å+f}AKzdq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_single/L5S174_29_L001_R1_001.fastq.gz000066400000000000000000000225351411645176500270330ustar00rootroot00000000000000])X\vH|={`qư۲)AIP/Ȭ…7RwH e+?fl6Rjox\,6|_FqD1$M%Ы4Iz-t3tN_I-8$1F1D'cM ލ?末PN+lIu]eU Q;-eO}mmYgZKSZ #KB^f?W:mUY˲^~)?n;Lf<̦-h)o?dH$!z8'|t]7|ɗ( hl4Ukn=چ;:P5Ż2Zf(ŏ|]~V߃]`ǓdgC 𙐍 .dڇlKȞ[}ؚ[>j_t0vrRe]"L38]]Mk 앶jڔVT @ff"tY?l䑍:2 XC4 `]@.\*Ps%;N>y&Je"M@$Jk+S9=f2'`Ce΁M 69!ȴG/Ɩ09J '*vt\U'Z!L)jg tC1HXRiیp d3b]h4Zd;{2HycdSNIh'Q !s"F㝮:͗^3ڝjR:\rPT%  N[Q2;fQs5ϯdj,G}]&!@h3?,}ٞӖs\dW6Jh{{Oc_v/"oھkgKn. j>96X€A\(.-t).bSƊ@Gfd n#%epj.Kr s^#YQHAN JER;|TYJ)wAmx#Lv9"aXo4ب6DlDYi$fl=6bYa9|>鑥O`MO["32V\{CX+R*cJ@o;Dx=(z!EEZpXJ\),^C>x` zBG,c"Ô $l^;th͏M x ͤQ," Ab-2DͬtIJQƳsM.Cd^0{>: WY}T]JE^"ڐAޖHHy&)ڪ]񧔥Q}ޛȮ6zFȮog:{}8T*e#d\3Q+_f*$TAkׯ?Ui:[0',Ԕq5$R$%b'~?UY{-`W3v=+k٫+kI6ꭘAemŁdcڲ6j_dSV)qJSsԗ/[̵Mk)eES# QFz˖RuW4+ -r&lXÈ}^OB Yԧ6U@5 .6{`ÉdiQ/!ǜZ! LH9pB̒P#g9R 6APx2P?xA=`<b!l٧5.d=m!,y5^x0[{`@Re^J!Isr5\!@lg* Sւ/>6Zg(cq2Ruؑ&^mQ/i,| XO `}J:=6Aviʼn5B yL8 =@+D8^TD^8,B((E瀝#f5b9m};^)hdd*KjѧW>mbvCM{~*Ɩ.YA9%Ƌ2}-^kK.y)iZ|UZa&Vb7]m@Kh<;w\<^"cFm.N4`Yl{^Rir C.`g`\5wԊn|%җW6]pSu-`! Դ78.0^rɱԂenoSr@ ñ lU][:Òlf _B%[Hn(;|%:,fl4[хY/X xfA5W9BmZZ9w> Z_KD̰7xǕk.w TA!Z`L0']0ZiK0ޑE&[- NDg֠p`sm͗Ђ9y v6D&Ȏ-R,HEDlz$tB\^Q\;yW%jCq:|lq3rpez]Ć% .AFuT ju?u]9@QYf+}TqeSBjGܘly`X]hm.@7c4 X|QQ@The %x(Uq۫A+M`A|Eult |I/hjqoFQOi[-6.삠e[}k e2H5<@٦g}S=0O\d}TRPʢ9'x,K_I: tZ`۫Ɓ X"wK€Z'i*`Or鰚+WAV0Ы(ZX,a{.__ӗ"{Ʒ]SGj|:eG1(BrảBC"Fr5wk U뻱5 fw2.q/ߩFv&41θ x B;śX-1lajC ȗx 9pS ]ag N^ NU>|1X⣦ե9c !tJ2fOdɎE+:'ف'{H)WOtŸ-Bw#:Dޤ$i_ؒR+ qZ6FfNN$APu96v05Ę{ŒDj99]g8;7 rǛx6킴ԁdrj=(Q 3‰)~jnٞrh(p.Ё!PeU* 3:v߳帕M`#T^f/& |qG"ٕr~ΐAFTdж lT1 [QX**oj E,Wɭ ŽnmhǛh20X,FfM44; thvփ"! g=.wU;#3P$N63&7 M?EA;,k1Q\w4@'3Kj~ :m v P׆Y| X68 ~a6aT sUR(yL(^rY=n⊠] |T_`c6Hws]c(~ˇgJHRVYr&JUZ\@XFrp6匦џi|?5\g v}C@Frֽ:ۼ򵭦p=YjM0g֠044@`\e|E(U~;Y*;LfTTk;BzTZ*H0!hjI֊Ƨ%U621r|)ޡGv6^yZvuSLTQgqHBʲ_0jRFb7&6h$2G|UkrV-,49 \F*s[;<7Aq~kj ΄[) 3РǐoV9,>i49 ?5$k|W*0J~Dja((hDtqK°Qdx'jЀ,yZv>{pW El rA+ T %0<(ǚr@tь -K0&4%`~[n[4^o6퀅APqF7~n |%E`[sIt,*2gnQuFqM`WȂf:_~ԒSz+ėgz+@pֵboz=AQ :#*j ޫg;NQ״|f:]tiǺZl-BNEH4_ 1f=lF1ȳ1eW^E @KhLLņEiaSW)^q>ʛI7]od"<[xci &IOUIcd~Vgؿ1xt XTl/;&+ɀc`(p5#w 55vYe/Echx=̅G]O@+A ӿ Ǹ ei1@!ܞٳNcFV\m_|Ee-n RRdayY,dvUr# k*$CRW9B@Z('5c;D\ƞ{XP=는Na\邻 pRLtre毁]fwusn: 7kY6z ?pho~Wr SE`r4\a!rNUMn t> aВ`>Fk.ArV~†- B$^&x@u]w4=4vAun+v&W;-s%qܨ϶M%YSLzT< 5$q*t;,3-w`:E1Ze\i0iW8Jf|;n'rbZwMB{M"H6I`aU۽߾(Gvܞ7Ɣa(%弥~@ZlM 8LYEP!XgmCuZۭø |t&?s{F.wp-u*;#JK4^?Ƌ5@8۸n. l-4/ɢ0\Q+ 6nl{CUXǂ[LY[*/=͡y2A7N\1e,] 6֥p6~W#`鈽7Irδ̈́^C_TSqU!e2"~'NUUP L4qXj+KqUՊk>""D݁.r a׿3t:ڻR" t>⦋wTK8~0D6~Uǂ,;Amu.CgXvQ * <T=K謠n " _";z *n 1aKjKZ(rlqaGTi" l6>qm)- ^}(w:71M+ɐtT xܒ4(2-;BC~.`.i 4*ҕQ'QiNuS M1}q c1unOs5a(/<[XP6 oqn Uxk&.&+'rDg#XLpߩ8fdDWwIst9.AnNB!QI;]i\ fGdت MlUwNmHLT9f ֪ؖ%'m҃^*]g.}/(߭h\בr1/4v^8 'ey +^R}sOߡ@TQoϸMl>2ﶅm*"S/N]*r9B6*FlvQ*.:EJO8Ā2VŠ5):kAfFŽ&LY5GWxyȾsۊpcwزL}KBͮ2|QÀm@@2fV2:cqK`'dx<7nuM gwMvl![ )V sTIA,6xHYgOW"˴Pla#hpp+pnb8Xn_zMDMܽTuQPw\BtϨ#Q0A.zW/Iz[+ \B&͕MA?T?l2ђ*tnn%oagkK 9R?L8"@+q@VNoR 2BI1 JOvwYuq IE!؜m_na7Wzd ovzKKĪ.^_}%%qE_zXРpPh;t~=AsZk^i*"P;s%8(-4u>q¾y"z_ʤ+ d9UߣJXOL.NžÉU.,{Ҵw,8hgq@ fC^Jtc [e5GvkgKp]kwn}֎G%ԲO0.hsb/'T pp"|{" 5 _#p{FJM4|{7Ri%!8&'X,F7[rX;[ @T̸kΜ {r"܇ zp"9a%AF?Y&v2 GA]sZ@gզu9mFpdjFѸO\5@|`eSxt:(˲b~hPsB9"5 E +Z:эl-s DcizY] 6G_oxSJ 4I%n1X( EU Bܸ\m;Hv0]t5I^*WlQ.e$`[x1q'dG fO [GXW2|M(f:}>.jJYo/'=w(0д+w |Pp)JoRʉ[}nrTq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_single/L6S20_20_L001_R1_001.fastq.gz000066400000000000000000000221261411645176500267250ustar00rootroot00000000000000])X\vF}o9}{j 삻ݮ$H\DH`F&6.%m$ QEƍ__b"'j76b;MMwSYwfyλ,˰)0&Li~NszXK?zzUГV;3v[:R RBJJKBq|t,~0`7l5@;m/A}ЦG\Ì9jj45aN_xqY[k/r8L]m*JY c46: 6tMvv[7o55 w5rұr؞m/0q< dq(ϖRJ]]86Of[ `w{`p<f`ؤ6?lο6[>~# hoT 핒N1c U%N'5] @.<끸2sYD*"v6-PMʏ#.qzƮ?qf%)HZm(J &%L#v.#}\W@s#bӋnD,3RAiZ'ڈVӗDBQke@;0tj/4BNi+J,uT)n)w3m\WK"z7]η XǦQd*Gॏl?Y*+D-]+J^P:D)җ~K-Ce;DiQC^O2RV'=?ZEYŧ( 7(S3v6Vð\\C˯6nAij @` o& gT iJZ]E)+ Kdl!bIfmE.[7rd*,CCڽXd.@ uiت.Mdf ;:&cۀM#`p_F6c1j9W.QUxQ>:|]mvU68i["Q&I2`ǰ%ZE `}{H~ػk1Hs/*XXD)V[@_A COVTV%D}*OL{f1&6i=1$:`chF*Ȼ65 X 1W`gc9ˁl'a}b墡 I(*PW dYW2WC-`g0cW I P& iZ*87c}fq(߿ۣK0 aT{mM)ފam b9Ytk&H@9ɘ͸>Z,y\C[Lt5]  DzJd߫_]{QQe/Rq Q$bv=_[" P<נ {FkCF3̕. ) aKK~G._n#F[Z̦3v`26Y/綠bj1:! B6[Cj|싵U-h%7ƔQTRUL:4eȇɃ0y˲I+e`X5/qrߎŴ^:$N8 [p_s[ta)B<6L%"6 MVלq )U f0TMcꁉ ,.@DZXuMF$UM7U 1xԘg`!|=Y+&#%T8em:D!?nKߓɮbypN_ݕN[-ڛD׵;=6}QۜYvKk:h6ZbDƌ,/?oō }v]@Ȯ kU^,hqC# l!Q.WZy֗_iލqKee).cKg0yDY[.}+byuS C\{u>R./VrY!$= l :! lQ`njV&&fxc^pĀဲEo0ApO *x8(^2lt5n~$;m#6'q;ކ J};0IY|rF) `:n%CIʄMkTIt\b*o-d1+ذ]&c# NwlG.(0|xb͆J Z0 0hHͲb(tV*S=d)r1pp?Q۲`G 푚WJ{e<W6l*+,ŦSA|xzI鑕kY(*'~?woJn]FfɭGuW& ؒ oVAҴᚵVҗIڕh_i`˰%˘랈C[Mpm E\cEV>(umQDPΆuu]E%Kʉ[fn R5l~L' ms4c5 q,fXMZp3ְq{KVFH] ћD D,|̸KBT-\WtF<,W̸˕YhuWY$ D=щ#A!z0C`۝29f(!!ci$`s}cP0h8YliM+Zy%m#lw"h˻3/6Z7V>SI&lEJR*V'+2NImm/>b# ΁3,R:Z`e"= ?#a g7f ip7UXBؒ^HDTMBv L3V[=#]0 غ*qôjs+ .W!IjJp]0ſA8b1҆ҴTJnd-Qf޾ k Ķmd6b6ϺNM>f.em.vsb}=cXa=O`um^iO :VvRH,"8^<y|_ʣbtkEkڬ$]гl6Ɯ}b#>.ʄ8Ilk,?`.3f կ’Y6j,dTGs{~&=z{d[\Sm8d}6m9`fI6mIIr$UI6Y #գkP<_@|!|(; g_xvӐC\\ǴpղYXҖd0 F Y-$ϤЍ'x)7ډ\)ZnnO6jWۜ%g]J.us7gJicyD Nm 07Nd j7%Kkh *\sI^Cg|.IzH~TtlƮd{C77=a{:K*lP$\xn`i$S:V2K|-vV|=6-~`z+Y(SވˎG< ܅#:Y 5HQa['`vbXp~t^~X"\' >mrO[c غ W=Xn+**ÌG!(:2L)˧I<"*_ח[ΐ&%!;m '"FmD6 jݗ H&a ɫS\uj vWwei+M0;゜Y0%h]= `''' ƹ({z)1n @yC 'LJ!d_}LZġ,#]MdW_/F,\vˇZL*o7*lM J:H==1dT@O+Twqi\W[cy|ާ*XVΕ0ԆZ1'_H>l'p,T>m*^ kh߲Q 2k_++ u"5DjRfwDɳx= q(.Ÿ"Nພg5[=u]ց7%[` W]d (צiv`H)Z0Ur2'p}zZ4z `}`i`ElV\xJvҏ 96zy.' nent'wO}zcNQXkVOR5H`?hW)"BrUeAC1֗jt٣쨆 ߀9")]6 _Ά rU/0-R uP0!RX`<jObH{)F-=Lx>7Ye-͠8F2,1: 0*HB򾠝vn7]_k 8j ̝iZ6%jBkZsZ5\8ۙL DšОeƱ>^~o" z47źUjcMr$|?a*I Ne*: /V3RN 9~λ]f֩~ﻜ_gn=$znrp@,ttVK?z[R+H; EJU%=J(/c_v0.u4+.)4-[fm Lij4H7E#*|1/'E,e6ql5'`IwGliƆrܮt`9e"K KB5#AÚZ GZTI8*o_w1utmtt-gc\88uoCxTk5˃SUn׮9` YdLHE,V&1`x* [Cj;^q˿64k/c܋vGk+~ ˙mP֔  ^/')x:0joT(;)WWN_襩x,)zXB4gi"9IY-,Kcc]GK%]w#mKJJ S4%5u bfyh2C(U$o @la5.WzdU4DgezoW(g)`Οϴ)vY`};3Ŗbv+|nYh{+J"VFŕ&y f rh cBCՔMp2ܯ= \kET,sgXVUY D̢+tUkaP[;ura+MޘL͆ҏ`DU_Lpj/ dgnBR#. A&HDz*ELd2ӰQ'4H0[[c,݈ VqzC0+u? 'ߕzN>H0fL[*: rky r%Ϙy㮉P'ܼhb2Im"hÀ[^J)p u4-ԀaI0,bRǫͳVJ\7s \w!9F;D8X`Yю],__COUv&ݔ(9ʜw\2-RXP 8P'EwwWzAY$XWU{Yiqp}7!SuUh ,Ob33H ]:ǞS*T*AUmx;;H|Cn?7TD2=Fω N5kxUarS4_>}Zl}:dXdj{l!(RVqtrb #KMK]_( "%Ih:ƾxYM VKv1ey4na>MujVinX 8=d&aׄy*,_B1urOj`tD7vt3Ƕ㵶;Uim,lC@pfYdC-j[C)vC[K6 8e2콆}Jx=xou,i~<dži^x͜otlЬ` ~B=\zk~6 eN4TE) -lr^p[⍊Q1Er&&Tf%s1j/ѯ=<$uUuG0qxn 2'x5#%mdS. H@x!(8WbV0 C[qvϐm;[#\H+@(hk+-bmj֦4eDt3!LgyewsCvǀw5r\ s0IIUz,8u C'S5mxUnּwURTnqYҥIاU!y~M۫Ȯ+|[M~":5=i~4 -[wV ocZY)`-S,hV]`+ˀmz[6 @Z!X(8SIbAz+k` a~՜"v]F}dR@Fn87 Q? ?IO; ] _a[)dʘ/i*x+-d,.'L8lW.OPeO&!r̷6BltF}I(U@WfC!n#&ji2P;Ov0Nn-Mvx^+"`Oeι#]7fRN*Cp;!C~K?lO:n!Z8[GgU6ڴ8*{Ez1+6~Fܵ^oaGuZ>IjЅmOL2sh+g{q[-WbKkhjv6__Ubwl¹*љMpDJ-Wլ.t,^}lL T /iX%cGfr9BԶ ,VFʺBL6ڂrUd1>_kHpS+ ^w>]ۯמ 7_@hvbM "UzF0[鏗v .g,|/WtoKF襁\I8I_~O%00yix7k qJvq;lSdYP7E6`=^`e]`pȲ,e3u#wq<`YzR^ʍgyBzb-D8f˖ 5ohevWc 7]B0х.Q_1q c&BWq-_X8/\RC#.2d)@=rMƂEճ7L$Oև%{yv?Wq,֛b<}62{q qי ps] OE!덂7*jep،ԕLK QY]"YPd4gY*L F8^-x(vUvsښ ^aqSJi\.ȨdH43,TNoʱ7՘tsEWTߛLE<)ϔDp{gNTmΏ'KYyF4n̑.9R Uiz3x;!LإSB6e&! LmE#;uGj*8Z x(-l+Ńܼgn!Xpk:Y^EޫC6I5ʠ?ð/F5QOJ*υlӞ9o\P4g5Ǻkth;h)Lqdh]$itBE$Eg$1fp:[Lnl])i\!u qGY}$ Kj`SE U/\.]q+,57t"c?"^,gl?l&Y?lCxمH-q^A۬v1+~LW&qߣU E|X-}}s+j5EXz/>x]Z;cG~ZǣaU0`jYڲZ䕭(6Í4M?|5~~~h ,r5],>OMB6~Tv*v}=EZˊ# Z%V^fp\Nur?ߚi–aIg]:%U\஑C6]w O@R3AuZWeMU;>r@fWsF^f#pҥ+uqJ*e\EvY&d3K@Wt+r3Ap\T4FZB)KUnP4Y2*M gفw6Ió Bg}?t JZ~8n+~E}|{):_͸,l'aڜo7n,k~kzl`K۾z>(RFXo,XWv VyRDIr{*t 0{S iZA6x]}õ9Dz bLap].#VPmUGYH sUYFr.u؟Yz^Ul:qg*cGtlSkr]pl۵dO U7inv3G0Rg)ےUlS Zkan.p%)ۢo1!g &SDo1`wFTݝ9o"[yzoi֯'=4wYh\2)@ IPT)EÛs;e|}}ywχ<ͯ5Z6bэRAgEx-cT[{B7޵W 閵MdϽf?^uP]6|snMډKN Q/*mJ` O~W ,l][V2/+9Lw5ǯd3;s*)zwMs(:Jw*I|,Lly*m_ƞK^:If BV. ruQD!U?<:͐ߨ6$`9$$İІo&w媷IڸAn 1xV l= * alԱk8Jk<| 2g1fAqB 2MT[f9-ૅm,y|'vo-SM3tr)3b ]kh9:lv O0)EÕΨMT_`K^b7(޷v$.Lf߭"jhO/KTqʨ"Zl m6gIuӗ?iSyEIcH#J"J | `_K5ڪ0@t~R< y%5aR@ e^%zucٰ-dF|FZ=∷l<v0낪_#rԕ-y}2e00ٮQ2:]oC^ WnWɆWUdèk+SJ[5UUB_j周baCJd eb% DD%Jm}vu16hY,ke'v%)^h %O!,6}  .hhIsߖaFb@_KoDevƌG EK^!Ql;fz=E" NM0=(oj=hs3rр]r{o{3/SeҔ/6Mb{xMӧ,/06[Җje c;; ܴ3+^3 īE}If҉bp,e1 L QEEK^IjkVÒm!g3%pMogǦ2\%~:a5N`!am|tNk(3Pb_&|iMʲ*hx QNl8סc1wФKtd"Ҕ3/X(k_zK:/P,NJRFgce+ie ة(?\%uaDMf\=CEbЀ\-E *Q軮ncWwjK8-gyFRVJWSœEAÇJƩ,hE~m/0f. 믳䓕ZC& nVDW '*>kc5 =f2/W.1Y99lԝjλYԦxګZULs[P~\%M/W q*]oy24&264n1<=e2Cz+F0Ԙ *r [x=]f뱽;\^,4P"'!P1&@lF{Ԍ`Zq^)TZ,Jv|f}%?X,7fzeCb=oZ=No{;0-(gccs8໤xN)Q|> B'~Nλ(-'HcCK)3"%H0OoοR _K:ÇvN=[I؈ZZey˓,ϕ8"Ģ1-Faao8wؿa`&pP _ Pr0~Hl<y Ft,hvOo=aZhj֏N8ԋtБ?o_\ԿZъ)uKCUOi~~ ְnv4uu෌ ^6(y@$(V!|}L4ۡ#d: I fZi8hZF׻|qat}ӵy[qu1;AsLGFສTmfpV2`N60&UF4~I8B Tc;N&ְO Fbvcul~X5 -;(MK"~"!`n$ ȟ3nsnX5[|flz]EDP+$@rtrh$uXl,ɭ8`̪9}Mԅylq1;afRk;nsU.v6 `5xHpT,dJ+Ip^IfT{IHڞ UȒrP;&uv>j`4s:{';O؟ֵb=OR5,O`nDaIH"W-uf/lIN~F&5lqaU:^I!,-iG k.FC- j@'Zؚņq2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_single/MANIFEST000066400000000000000000000015461411645176500237150ustar00rootroot00000000000000sample-id,filename,direction # direction is not meaningful in this file as these # data may be derived from forward, reverse, or # joined reads L5S155,L5S155_2_L001_R1_001.fastq.gz,forward L1S208,L1S208_10_L001_R1_001.fastq.gz,forward L1S257,L1S257_11_L001_R1_001.fastq.gz,forward L1S76,L1S76_12_L001_R1_001.fastq.gz,forward L1S57,L1S57_13_L001_R1_001.fastq.gz,forward L2S357,L2S357_15_L001_R1_001.fastq.gz,forward L3S294,L3S294_16_L001_R1_001.fastq.gz,forward L6S20,L6S20_20_L001_R1_001.fastq.gz,forward L2S155,L2S155_25_L001_R1_001.fastq.gz,forward L4S112,L4S112_26_L001_R1_001.fastq.gz,forward L2S175,L2S175_27_L001_R1_001.fastq.gz,forward L5S174,L5S174_29_L001_R1_001.fastq.gz,forward L6S68,L6S68_30_L001_R1_001.fastq.gz,forward L4S63,L4S63_31_L001_R1_001.fastq.gz,forward L3S313,L3S313_32_L001_R1_001.fastq.gz,forward L2S309,L2S309_33_L001_R1_001.fastq.gz,forward q2-dada2-2021.8.0/q2_dada2/tests/data/sample_seqs_single/metadata.yml000066400000000000000000000000231411645176500250540ustar00rootroot00000000000000{phred-offset: 33} q2-dada2-2021.8.0/q2_dada2/tests/data/single_feature.tsv000066400000000000000000000003301411645176500224270ustar00rootroot00000000000000#OTU ID L1S208 L1S257 L1S57 L1S76 L2S155 L2S175 L2S309 L2S357 L3S294 L3S313 L4S112 L4S63 L5S155 L5S174 L6S20 L6S68 b32621bcd86cb99e846d8f6fee7c9ab8 43.0 49.0 75.0 40.0 0.0 5.0 0.0 0.0 0.0 5.0 5.0 0.0 0.0 0.0 0.0 0.0 q2-dada2-2021.8.0/q2_dada2/tests/data/underscore_samples/000077500000000000000000000000001411645176500225765ustar00rootroot00000000000000q2-dada2-2021.8.0/q2_dada2/tests/data/underscore_samples/L1_S208_10_L001_R1_001.fastq.gz000066400000000000000000000204661411645176500271730ustar00rootroot00000000000000])X\vH}ߘ9slnT5vI@"+_0q# ˶Hl/7nlߓ?b"'j7͖r:MWM1-hOÁQ.^EvtK+NG -tntr߲?UQ{!oQ]߿өѡބWѡFdqWxRXeJL %Ji$/(1REwP~U\v7,\W˞˜q=?E'^ƕq<'Q}4^Tg׹T5-0Q(:*UJ))=Z)O/إWEiY,Dqf7Od+lL3` Zk芰,w9ȊB:1Q ю:[Mg_믁v̳'T5:y>K4Vz md("su֞T|z)KBygyGZ܆rטq2yg\cq=zxq71;V} 瓒 6wq|eÁUAP]ݭٕ9+k8g*:Y4A+,DVQ .]xVsb'6]wm/I$X A?*v}C| n0Xդ|Ff\42iSA_YǏOYqwX꫸כn\O>k}A۟qkwqm=b_q8 WߪUj˥O*!3$U&;dXZiR´$R)!ҒDC%{˓<Zz7_me1gwviMyȡ)2@@ADJ %z9)faA׎ 5@D젼{gқ|,2F[Xǁpg_rYbsMFK^'4qlnv  6Z 4\l.=ZDž|>`qkKk#) bsje~H UpViJب!/z҉X-WAʕA (+,Y˲(߯`׫n1;L=\0,Cgaظ*ס^PAo )a*vid 4(5}YbE[):$kEIU5(2XL'eJk\x.y|lzCTK'%I G`@ޫrܝ&pJKY$X|ٳ[p){bLj8W?Ys"%<8x @lAЖ)؆2p,700{[%nsZW̓T}d* JȘ:!]H,֓R 0I>@t[2Mۀ]Ϧby?=0ka{ԄMzRWl/V j5M0{bYD}2Qģ].L#1?"l0-eu"ɫ֮+18vU9"_X1VjQZ95PT`BPRQd, =P3*(Px*nK 2bƸkqׂ`?)2' łIpط n]Wvߥ8] K Y_7[}SmAц̗.v^0e F`2HR lw-7#`׀v4A6,Њ.TtK!EF$s S'O !x”z.JX Hߘ--mlêDg9 P>D@UM?$Ɏi߲Ǽ(H9~xy:>95[u}G${6Z'&:-3,I'RgxHîy{vw|DPئըfsm[dcR+dBU[5e,=2"ۊN (29 '_+]gr-KZlۂb5='<pQt"ShhM J@ |ʲx_kY(j"f_~}0ֻAtSEuyx ɺfMgӊ)X(%Ee!:JQOY\Ѻ,r:99C1N!L/q+l Z=4+j2i1gWݮ ~YhI![8+@%/]IJRZqCxRk | \׋)F,5ɎB h׳g(PÒ*,?c@k*k<QkH /:_lmfe|YҔ4!AӤJZ dj0ؿFo|9R ԺEJ!j0z79]% @޾!f%K6h30)T\E_uV7.gvcپjY٫PEHՈ04t IU/YG5epEK<_W҅SR\Ͱo9֙҅oՉЯez wX͔K"uו#S3œLKD<R ](4W("*k&v1V%l0Pbu&j Uェ12OS5IBpcZrGKr$CfICR6hEZY!If+6/{it *W,U=/pfdN5ETlz hvjeAւHq;pAϼBz8~ u8Df2#]?H(4i6ROX1z[L!@ Le )sY 8d֓%k$= wo6 wp cC,)J &eDF+%XuYxcrۺ4L~`yNQ!Kx@`[T?dhX/<꼤0Jج,9%q-|_/$]!oKNſf2_ֳ$wc"2Chk,J='egf9U"MVsv~ب!zk||g*bDbfb|J&Ox/ܡ*- jxn-C~_tkYt-p["6nS5n >,Gq ,{DF]'G!o‖E8 7H-rΆe EKUhBF*%J˲cZk$\瓏 ~Xٻa{uج:!Wx=MLaNF&!f[Sm*-34 q$+ 5_j)%6ʪ zĒY˽8YH :\\>xVQ9콸9͏E\׋ن^ӱWҰs6L^IDi蜆 }} [sIm0%!Mk ].`FQ 4x*A}ۘky$l<'eBfnXj [G^<8 C*ǽ^@@EB 'J(Α:XD:#G,b΀|tVdWjjm1(+i + Ŗ '~Bp%K(~G,S?_A ,O4jl<7۬Mtn5)^+X^J+%F9<< S;׆]n݁&z5^o!&M6{D&]PcȊB/l(֤< .ERB+57,u5D&8]n䂹6λ4kC3ɗ?}{ [ȅc"ve?4Kԫ t(b-Fg?]gU3l^ 54vj;Ű(% uEy1cay/fEk콚ݷaKF7 \jA=W°REwC[׼ 2V:n9~K",92p۰tYci ƵVosB:LТa> P\!Jԉճ ϽnObM] #- K()BKIJqwqu"F]\uhm~VBw}!ɋft 8P\vp5aE53 ,UFlRX,G`|k d۬?i]U 26h1ysEbF| Hx&K˒1k dY=,g wc+ ZSI=k6sTi߉yn.Bז|1:S/ ڢeՕ^h;MʄC"]t; #1HNNa^, %bmOV3g=5]Rzi)#`*> *Y^!4~gj^ݚ7}:8p\.,iUG8'bZjOpgv%ٖ1q"jXV(mVW%`}ˮ+[{;\M6'4d[q5]eEx%kJC emҜ,+:`ֲH7̰U9 40 `-i)[Vm^T(ь& + 4JefqF.t|lWK n:G<|CR4u`}6vWAK gϻt} Ϫ_//k OuEg4f趽)=K_6$b6ԪLS#'pB1ŗ#9Ȕ!(dѮ9hOlpNѱ}+ i:^-D sːLQ6W7tǃZ1`> C6N!#1|BS!gٷdr:DZ10vZ ܲS(s'fi $9vXsZ,7b~aa&<=,fWwl͊xkVA!." | x~Ailv_%1zV O~p|Ch4w3d1WXȱgKM@OO2f,5{)0q8:0doyNu7,p0$c= (8wF,a`Uo uQѹNSŁeM 6z/D%$)4[jB܁z)SJ6Y ` d?ۧI3a0G/SI<{Uj,pb a;? ./zs 3[#&x6ޘ \kzv#`K]t;eͭi^ˀ-LxEf}⮗Ni'rr]_^ۇ @#QTˈBѮ'(p7oGۏwa*_نד%pp!T9лYeh8eQ= -} N&SXwN> 5j1,*sxz_ qHg-A_/ b|l7+orۋ1F=v:ph/C  ώȺ ljJwCH'-}VoJ{0%¶=-epʂn_ W3Ғrޖ ƛ,۰S |U˺V\^PQ;ξt k!,  ~MvB|FEFsKr r )3E ɚ)4F{)t6^)٨& ߓwFxxYpdgΏ!:|kD D\mZ|kk*50:Cgٗ޵eyrXY2KW[i0_gkD r?UU <%/,8b!7a Ep˰%ȲTdv*ͮ֔fgӻюYcۣ1 DV~JAt >ŲQ/J`5}d{ :0{ ύpFTtPӋN_uqKStz~l%-tD``D_ulb@.Z9)Dr|#a hE^TpL kgqKumtq],Ybw`oN,=O$u]I ɃͼV;Wgv9+NT_u>.W0J&;.ϟ޿sb9 Oܶʾf|B A܋mؙ5ÅϾ/ZbSWaEʣjݳA@q=vt{0mӘ}^ C%exqӯLǽ1!`6S^|t=ljR#xd;Krk pm O3L%Y,ٍ75LnԬmuLL/EӟnO.n+UåXLPBMM b~9ffאZJEeOW[h,(zE]/7׸  l4ڗU5EHڨF &Fe] ً^qDO9K&ݜ#6IUPqXZ=՝JQ Tu!ƑKgcSJ ( 9הm6ӻA"Vt]}o>ISޥK$Ύ./^'{N=K4%t%^҆S|Ɏ~8zeo-^߿u?3t;8g֕41F)2ֲږjK{sUx,x,˗u;]ny9(uwƵ{WYڡ{[<@'aV5nYUВ?k:Z[{+MEw֕J,{ep oCˌkS&P\w.jG$`ˑJi BhhWmղ,)d5b ou;Y N^⚞qM#P,\Kڣ 21^It"z&S{SfC~d m pi) zW3=ؘCJr 3űƓ8Q(Bby϶W|c9?xMe.xZ>T1_a@;'!eiAՔZg R^s{x`XζřbM8qdX}Ee~G,>=&(8Ny7q$l[=8 p&xTI'%_ĤHNJ{L^`7Kbr}w#6=Gl6b b]q̅~P3W,B7l +,vUg-Gm#Tajp=!lB].6zQ.6 oڎbTPl+"vDvx6#3eBCjPkF$|I|j UPt ϔJRPewzv&\WX&Ql Zְ6`\JHhFg) N}pXxܯJ)EAjFySZ vO>z?;.#p6MWaU{](A(o!V)igUOf;# |鄺vVq>Z{T C|KHޡd4<p@qg\ý[ M[^EXC t  Sl40NR?+1Fٚ`;] MND`[H$٩[Q1QNDb-$Dg6`Nu(\]\sjFk)mQ 8ClL D&^(tEx8ȧ[z|ov5_le'asg=(Ai#T/.4yYE\ncEKꀨ^G Re.eFp3"`LԵZ*uhF3ϮRW, uuA: ]Jq8%V P` &Э:/#A"f%nԙ( RO(F)w(S$z3,tqH_$b ^GJX$-o$V>I%ZPZuP*Iʇ(}b!#6m}L]1$}Dˢ;[,We[n(u9b6 BT+F 9U[L[MEra=͝rvU&w٤]6~cF2& J ݪ"bh z^8$Mk(U 8T W0[ :R Y"?;fZVшZ1B˴ -[lZbeL(ne%/iE 6I)Õт1/vl3%lJ>^s:;י -6,Vt.%$$YPbQV),Qj!mPH$ L,>·kvKKϸ7]IZ":T/"7mVr3Fd]h5_[WeLz!fxvxX6 1s %CsݡC|*tD4@+[1:zJ"VpMxZSΗלp], Z6XWaccQxzo渋0,}$e(/ k)b˔ʕzbN'6隳mza?҉cS7\?Px?Vc6. ˟xDDu!3Z,'&^X1; ʹJ+tiC9*5UkѮp\=UJ !Ɣ"SߞχĿU)j2I}՝{-K:X]G!2Tv) QM0k\s&c;l!򷾋^FW}Mڳ'aܶΏ q 2ɽG` x`0cj2`1lT햀Ζ&h0r[]u DWw;)0`sÃCZzi8V4HSVrVWXv*,1?%4Mˏ:a3Yr`9J/̱b\b^m G`:o5r&l,m C\I-<*2e+Yfhu 36`g?llDQ͸Vkt ƶ(p-Q0 %4@& G$ itvYN|+;5!?(b}"8hˮabֶnpXhcʈ"Sc'lui+Y暢Z x c=k+=;0C&`Fp{,]rhFSv+ht"X"z1[Luj6#rx5jΧj/:SA7o_3X|Ѿ5qX_IjiH>R)VaL?T-}ӅeQx%wy`4f5L+} M`pCFFsG[7;QiHfTpc *yo.ƢV(J$˙nElOY 7~;Bֶgo՗qpqxKBW],]1B@<++Чɕ%VfWU>'q5Ե+|يAS\\[{%ؘt3=BtbnE UhQ`U ړ֗˩8No6 5X^؇qGlueҸ> ;}Er쪉V7 $Qa@ ԡPBX`fOjW^~dKТ_۵.3Nv [q06n< lrk[?@As1B6$1Tx+C\NIJBRRe^;v(SO~H&1N܊ JհVa*kДАaKz֯Xⴷe0ەAaav抾Y)YEp|_ˇm"UMd6{KWazm364 j`r5D#QzA#}lznf?a{`YGG7_.;"hͱMDqC>BCѐv дswz?l7e~^qߖ irmK\_$p$(8;@eI. ^u\0<[й*/LVϧ,?""TzdM|0}Akfzxc?77/jc_u8[F+-mpWI%,$/]]z9Yk_[]_z0\PV"l?DpyA$ km ZXWJtms-/mSkNˊv`r){%w3EVсk/Z^twi1%u@QX>@%޹>mo[*X}$`.`SRQ&AT[όMn4HrA;Z{/7Ix-lw8ܨB-p[+BRsG;a =hkp(DQ#Lgm t%!<ҡ+ xMṟuVWF@;ߜO 7Q+XM l~u27 ŧpO:x2Ck+8nކx8ܧG͢H>*Pu+c^ TXnW3cWz}mz3T̵FW#ƹ[.p};ȴmo_!x߂n˩S╵Jdc~%*JQohatk:[->036ySZyyi7kbI j^́uo4!S`52?n.y%~aEow/H+vW${!\ -.`ή Sj$Vr n\ n%@`++4/@>J,xl-y->"dw}FS]V$'snfY dĶ,˒llWKBvava8鴪KG^FbQ* ]Ek,4CGoohk7wu횸݇4qbKS$[MjF4/{r@>T-+Kś vfs nh~wp]:~1Hp!b\њ>vmÔ|P,t5ݶAUΘ8-b) LtQnsU^ !7Oz;/n_z]Ej;#X8:(ʺOc  V_ޤMElaX|EMxZl8[#ڭ* L[CoθBQO SK0lW6]U :_[BbdkNP5ąHdJהH(1.eGr.blA\d[/ӱ0Z3Yb#^]-<^4y"gBWYO|~ H|f[l͑ 0׵9g)̵kHjON9a|p ?a Q]\i3O^A ;>gR1q6A;^iެ#lYj rJ^šLLȘwvMXܯ6Ⱥ 7ًmX+R(a^:JSn N. "!ƑWb cG)x.f\ 7Ix$TMC'ޛ< 0(Zا֔XK喁 l[$  AiPO+嫔lgh\m?48Ww-Ơ 2_lO75]"kN5 \iBG:96/Pi!^rv\NXۻ/koʿZNg=2Q;@Nf[.KJidN\$9O$Fn7b(qo~5V z;2WMWxE9KE@%Pcf uXX® LŅNro<+ *+t# +oIڲahdMж&Xk(1.Q;N\CSԐIDiJT?zў,Ex ,˔٦Ff u󀯙ئ_7rBY4\߈l!0{޲0UY-؍1K2NCsp<reT}Ę,F=Ae2e&OEEgK]s=e?pEkn._5?z-Wrv-Pjw 癀40 93UYDV^/q~}ً\ Zn:cۓu-V$xPPZLb`lVnT l_q~-Y$"Bе"ݝfMpm8ԭahĴvv؞59RPHU& YQ`[R&,fS[Ez L"$r;5A`YA=Vu@ټb+f\X V&œ@Nq<7b-sz߂eۥ v?ܤ 2oR>a04<.q =so_YE6'cl ueidKvG˻m>Yy8wb9d$ˁd7oҲ/c \MNct>Aa^T0 {/9Zz,xݑ1ؿ8V#7K6?ե,<@' |C`}( = T4 ^z'%eו%vg bJ-%*⤎"eK^YG廗oH,|ε(|%5y];LYJ9_ۉ˸m/M]jW3XVRA;3n.7"= –_wlLt 4j)YI[[|E~\p79<>|N]>y 8,ΰMi6pQ4rD4mˊ3bFI98EґJ{ ;3[/ 4 D::% gq]2;PofW/B${䔤J U-4vGxHW3N`|U532:k޽m&D}AIǦ[81p93X*Ky[SS(4BYD]Qug6[m-1~mu/Coʸv4dVVsPN0HԢ%(Zb<`y^:<~ P0BĩbW$q&&Lj:\e";6b@aʍ/!pdQtPc޸,;-'>š(Q9^Du7O|>_{Gy>G?)VRNB.nX}Y/0rNXP[E<ߩ诜(4 4 {UηsjVk?4|zrݛuOc6U~E#AWŇX{KJ1y,a7xq2-dada2-2021.8.0/q2_dada2/tests/data/underscore_samples/L1_S57_13_L001_R1_001.fastq.gz000066400000000000000000000211011411645176500271030ustar00rootroot00000000000000])X\vH}ߘ9sfLmQ H`nD&@pLU.. 7"Ob1f0}-|0[5/.I]Yv)v$i˰d;!N)!%x;~л8L; >+ hߘ'tI;_cr[ N6lok8эu:Ӻ*CA[]}_ͷz聥k xWB,ŕ7p.|O;|Maz?h8x%t-_G [۴ڹKF[Z M;-]b:X]k(\`XSr%5[B?8`)w1^?;?m|9\^>ix mх7mc/(BI\I:SлvfQoW&މ@i XΈ 1M\)f}{l8x5\6IV{IueX巗Vwf,^>%"^,jnj͗1IO,9yFbG{M (Jz !hq Jݮ=j()FVJQ),fGp,ftx: J~x$=1W񞂹9E8pEc:;*Cxjb /k%?U-kQr9y϶ױE8ARRNBK<0GvB|7:B1vl@ lF4&`,^d)BV!<*&| Bjo yMvZ:`::CjRR3`Wk\RZO6clBDp=Wpc[/w=1/~>8V6U@IЂ2Tk'D}OiСҀ1M 3SZBBӥm'n4ѭ QV, ˂׀]!w=כ7)6;(K!K;i9ǐs!,1/.R_3hNcցuM@llnkboO?(>[R?r9Hx/(q[ fH"cl1`P&{`wͱ p6\f r|UҘJ*/*V aM3Ӣ򿹺BYU~ fU(]EII]^v=_]!Yʰ%Z], s%)N_j"1u |TWt@=L>|-3 Z Hl(T//dnu?|i,f;%asdyb"zTs  ,–Y~d@JV㍦ 3`U0fk_A y ea`ӡK\]P΀MCA!mL"`rz'1j9Ab^ /hJZ(jAJ*Qy!< A u]`W[uKkE\쵈1F[kH%zKv$_Mė D+Is%*+UJv%OY] }]솊KXr1T{˒m%DE3姬,_p/Ty+C9bg[ iL]Y%,mdB{V+Qwlo(/ޚ4Sbiq &j{ݒ֝sW<ЛZVl8J jnTuqLsCC%\z_ӧ/oerƎXCŮVsˠ]T]a^X"@ ˕غ9mpR,T1)Zyi7XAzۭqBj9Fpť0֑̀z5L֍m+g[Fl8`KRe]g2$\M]gY.k(HvF/", N+z9_FGΏ~U[1k&KPzMāǽ:k"sEzD& vRݾ? q O)=]Rv2`}ŀUDI,$sϡƨ#?ў:R AZ}t_Qr)miЦ ,(eLa3-2bH~ElEnwf+`ÖclA6P1n*RS9>E ]\p10TCbr^Qv嘈$^_ leq1Cpڄ9B$ufNE$sPWdyEʕ M*/WʫVۣ2V3ގ j jEth]u naW|=Ig&AbPckmgqӴ'+HR(.мX/ X K<o_s|̂E0f .XPX|qS6WzqtV]h9"O &iYXT HW꛺` d `3>t|n[٥!iHBXrg6]p#{9rj֫V% k@G#j#D-i9alZmܐxf`[GlE={k˷]MZ^y"уEZ(]&(.`TW3Hlz b -*.ФzJ늖#An#E_})a_ j6ch96dxs.Lcc(0bE Jchhג"_k  y4=w\y{^0aMi*>1,ϒ Le!#SČ%=ټ\=D%mmm֩r=_}:߭Tmێ14g G d %i<L{\$iրNj@ ’kuX s\-y<YXY=,G<>>=uWG=Sӧ]N">J<yw'fOBWgCNn?<Vc0n2 ;'Rk' "+ V/+],O Wv@k/&[łS6,.F ~0PJ0!g .%o X]v#֓l,ٓYZhIei2 &ك.bèW\c R \v⨏O}9CgZ\x.L U4ϒ}O"J_.d9E1ue7{]?ol֒Imևgߐ.vÝy@jʇac(Aia4i$"^eAF}Ԋ޽AI׺1Lnd PpvM TqKXzs7jΠ{ϒf6 ]Z7f:N)%}9~_# BW~V "m-r`[Tukm)edXɚc?Q;6]MbaDll[灴5i L^I#rdVt |kIQMP[d@Y7 ?¿c]ak;].Urf {9q> }.߭<@Tgآ 4^3e-U!đK\7ӝ/UrhKecC!TTEffvy5p˧ȱSe NK1@@CƬ6S2 [=JbLDu@Hm0.=ƛ`^(?_Îΰ_C 6V:w rs'aYz r fFe)F4{L}0J_AQ(mlN FWnW2.XcW]*3rFG(kֱ23<*;h ~\OWS] ΁ :2Xk@](/p^:3"TQU6:+=_io!u.f>uj& W#8uQք1ч$Xd1feLpα>Vx ϖNF~"}:A yVwӑ'q}9RJ@eETL"z?s@& f06`/xJ ! Q/ɊNbsO@'y*pͣg{ fڃ]MAXuQ-15k SLe}M, x}ۦEcZU{N Ν`J)rko찾s^s]DU~ yLO,-8wc>څo(Φ+@[j`Lmx0B+-S |rxSBÒ9_8:,Crb_b倜Ƈt'#.|yǒoyhG6 |bE  "PqQozxc;Px}oCod5}j}si0R+3( ԰BXa]s"6SYB sL7κ6;ʎGv=: F'? e=*jRUC"!W qf0b**W <m"9/`_ߛ ! ѮS NE oCaPe2n,?3'>UbaEyV1ڈt0f=n&_ Z@+ ]b7瞟jmv@-b 8GUS\eT+stUaccc*~_ñrN t9r!lENA_dų+fPH%;e?XgY{Հ !#mTDw[h[+4Fѵ\kiЩfi7&j􈎋/ /}*@\JBҹ=>rAkһws`75?JMj暫S3<4oM^G ȃax4C1N'nrvFםE֟Y34hИFcތFRx-'_;plhnNj qDF ]pU9+E %~i9ƷdY+s H^7U/@x7T-O.My*~tTe*XS՞1Jpe9:r;0E~;%pf{pu"}Bpmx|3* cp͓5sZ^gK,IN6 >5>P~ѵ|۽=(9_Ί##?E// -gC8;V2X d gau_x lxOڧ/ lѩ\A"ѫᨦAs17r͸wRZCi8:Z D~[?ow-lѣ\9o1WW b?ԫ//i*4 (/H"!d,ײ쾏\{?mfh=Wa"EQpqJOXE`}B?U԰@HBƽ b%' K\>-j;Cꢯ|g\ e xvf'.ʧ^ӑN5[*o +a0?(q2-dada2-2021.8.0/q2_dada2/tests/data/underscore_samples/L1_S76_12_L001_R1_001.fastq.gz000066400000000000000000000207431411645176500271160ustar00rootroot00000000000000])X\vH|={py9me KUfd x(m ҈@Ddddi6t،7f16d_lwd~iv~г3ɖN!:'8:O%vw8A}G=[0z> K<kڭnNy :Ѓ!J8gxJ))藇xQ,Kl*|L'W1&k27I+ׁ/Ưi8 g?1xk}hh}ut`D X.\a7pͅ V7p]ϗ+z W`F\c7pݵO= jG?ucm*Mpr.zšѴN;*cRic^(VBߏj<_o&?>:Cr5o ~kpv !)D-1=2z@P]~|Sg1j4`[pnH-`bX `S"ՆaQKWpQIΠVԘӲRϏK7Ɉ`=7b6 G*f\3'h6k2l|SnkTEqkR~/DZ*~r `pOv{O&8p[\9ڀݞ6Iz&h_v8`wǀ[ %6>@n{!㾋i{NtW.ڶ@ pc"֢ aAB(k0 ա&|>9y!{ќ`cW]'eXܫ#]G(jcKtX-D/xpB^v2YN7rɸnE"s԰HK/ P'̅IݶK]i6BvZ\-+J:Va5ڴ%68 e,ܕk˖. m(N%MUXE0#_UJGI<D.L]b`Nq; >- ̡8×v#!뭂2W`zQ )^1|<n&h<d䘺8=+}qMDQpVߡ=d?а݅?%ޠ=mPZ+;4/͌׌odof`3Ie@l]a.T cNV/\12,A0uʳ@-g)T/*UU)v^-7hO]Tt5~=nXڍU`S: 0jJ1|$aࢋ5{k'tVYYJ"EU*U~UẘGz15ч@Y6JP[Q(5$^@4@T?agr$4ez!*vh^[Rk>^of'a[z dC:&TPEdx!Zݡ{!뤀Pmx$ U`lRjoc|6Z}x""ɺffJ8ąF–P7qAe++ƐQk-\\|[\ "om/A<Wa·' :@>˅V4Ee?'%0U*ҒmuOV$O?<ț`Xl"۳l)JNkX\lm3V= wݖ鐼XXD.UbeMEu,(`w6 qӹa^;I,zRYH)l ;v<'2.2&Fڈ.5K:0 Цina ֓Pm|OoQ8̠f }L0+mrk>!zQ:$7J=2ҏ'(WmV@BYI! 1ͧHD<_RHsOv`v>8vґʱR`c1K1Chdr6\W| (Jʑ KlBxۖEu5 eװ^mBH:2.H `Nx"sܛXƷPPLRhEJ!Ύ̘uX-7}F)ɔƩ$o&IERTT)]ɂyFXsūSJ{eV1hEZklޚ>snvX Rǎ".-B"˦.>JElJ"Wp. J`)g_a}7cC2k00() <EE犡0RXMxܕp`s1xfr4|"%~vg`= NmKZzvat0܆^=zL#/z.l f[+?AQD}/Rntf}gvNl8X}<.+ i\RuEc;*Oɩ[B}Rk=E*aU*ؚRĪ F9^-<(O5*5x"Qp]{GղWS,)λn Ǚ.bs<^-l#f-PmED٠LKY&ZMGu#vlf!9sq qPdJ_̿ijrVǔA[Jkhoֲ9;}rmxWXYŖA;F]#0M6Ͼ') CE"-- OT)/,bM ;%`$AHn(^b\ѴrĒ@Ь@ BY{/Wx4u) AdJR<ڛ ;o5'@fMd?5- fQVU<6۽@J֩4+C,$ տKsǘ>~7Î';_3(l0-Чgl7j@z~jkd0A:Favl& XB浙LMp0S.|/f/VWpcy >Jv,Zī6 Nmu*J"3YXb\^[/r1~Y-vggE ɖoNi:.Xzw*qi{0xGJP[P_DyY/1Z kQ%55ܱX(p]! XV8yXku/l9v*Lc|֨Ru/6`\im02nn~8WG*C`<8EXS"v6ޘbZ{ꛣɃЍV%ar?;PqK큝7lgcD(؝k&fENǙCISA'>W@|YT"*QgޤJk}]:Aux"dr2}n0s0ōpb9aY:ݜJOh@8lC,D*{#Xk"X!!%qg NIr睭~P8:,FH"r Pgu4@Kz`m#In("Rj[J mq,.f|zKm"hUnϗSTjaIc$heq'pD8 EOykg?1Y0δIwCYĘ;וi˺Z *j=-N+A:xgZ2*St[z’cJzWqvy!r7,BXd!\P{~A;y|`\w컑}Oqfe\˲OjڠGJq?#jj#YXTyp-\x7R d7NE=cL@FSCߎgW1~,׺#I)ce8zO1YLP%v|Ƽh)wSd+AU.J }0Йmt Br 6%\d3u?ؐlN  Ѐ-2ATzYX>ĵ#}Eݞ>ȣ xKޒDݛ IN݋\^ރ~ ɵwStYS3'9MC re\mVVVo: @Du9hltE_n+BN`Hh$_ }: NmJ+F9*0X!#=ϯv=?dLr X&q== ><Į4p4wLDĂ di~jgv[k}v|'zs?].Y?f.=e$p? ;x6R<,c^W&)^ K`?_oR| q?OǏ We`'v4cvg:gmwh-%Z_U]ռVR?utt:7f X/z;<ẶpQ\hugδi "pJFJh/vXdE!;CB6`_b%gbY8df ~}J A7A_XCsCx":kYkX\R^k0D2/Dpoۮ!ܯt1m~70=+!Fxti磕/C\s]AͭB㜳-pPHFR\)ۘZ[.X;`'"q6b%)az`6X SRs-x$'O:vGm@m籆V"SjZ8nc ,\r i+E k󯇚6 t_.&n38–LLwvڮt7׵C-( Ot9W^ `WǪ:$߲cx";~2lNAۧNCtLQvDӄԆv!|!,L IBZ+7Iik }l.M^>dG+Aw]"ޚ@TPhאxrW]?t"ngrB6{IZh{J`m6vGGZkWa@V# 1msYP e[r1[ ]i R楬o@ ػbkZV XϱX6 -Z\,pA tCԗ:ɹTbeWHoDD Fd>b/UH> UAu>"KTAD6t#6@}U*pslQtW>qWMi0EUV 0L GG,7 n~XvXWJ&>dπ+ X60X'GIH\ ZA[IMkPhA(i*_PR\X׷6b2?qA \@qAv@oňQwQF ˡ;`ri aau=Pr< 6{ [1lsWkz2^$=ۥ0wyXxs+ l+ uP>o,ܖ[5 {CUdF~5p0 v=2oYCuFTѧk-xְöt#@6(C+nh ;XXR( f*}PʽVn 0 &H݃4ۡΐ]j-#զM9Y:ԁ"B@_pJ,a dh: .%}?4d:krWv3w1bY_'e>Σ&4Ak¢͈ .T|M= 4hϪ+ uzxΫ}-+$EVcz5. He#!ue+2`P&ߐf' O"ٸ)ĻkvJ]r?v;XcHD ZV6'u 6VU@/aJ A\b[毈[/aw2b}`6]X#(6l:Xb OR+z+)6htN9T( %Y>̪Qo*&vcY1xUXɟ W!ȥW[]`8ZsUwX~MW7JzI])ueWSlB{1N]ˬ֟Yy8(jV8> X4+[ܽ tz7[f1ò?{,Bd$ r6,R* c嗠 嗄& vysT)4MC7;`۵p8! u![P@yy7@`Uߞ>uy]z+y# w{7gulW:J] P91zOv6KC0xPV`i  VG-/:ݫ6H&)"j R@2 S[K^jU|bf eqTcdخ$TbpgNAŐҖl7loN;R~5f3C\Vb3Jlr溢j -Ph[ 0D`Ô! l}+aǞ,([6_b@'$4+Xc^xi|% >JvEߵVwe}WeAwX^A`:Zv@<ycU.}^N `Z,EݕZŞbIUA-DZ,T)Z,*8'hGϫ(g']Y:6s-d]C 4݉PY ۻ몮d.%-ܬ&drgR,gY2w|G5-dΐJ%3J qX9fZ%r5HVP%ͳv~7\g0]7]ذzWi 5,u uZEFk*QWXζl˶(r4dr)UYK/ m!^n ۳MҘcƟۮLl?dqi4ObY VZ\^BW訾%0e;崆K(uh ; s#fiEB4O\}~򟧇VҰC:نE<-ĩ.@Kp|^\+ZQX P4<+Eb j}F;h4M$HOHR&`5Ԉ%nؗ^pŒl|5&rjTuYCEC+p1"ToW@nV?Py&ؤo#}1&2ODA0 ~} Ey |Z^4h ,--Ĩ&2_^`2Vj3a@x%<[hɪJj M୎6רak] AOf9!́7 [W/TA "8lV\<V:2=e$g]Ӣmq-9*,C]:GZX0@9v/VԕfJB3?| j*ZJafWTYX.Tn1eP,,RO ߫hTNf5FW Wt~MŀG , BL Q@ ׂݸKа5ΥVzu&~%eǕ%,d7[i԰cAfjVvii`n47}ȦPW*bT<@T68%3Q|{ ^N{]~9YM_Q|.~Sӻ/R-8-C MfGwVWyK ƲqF =X P@Z=8 U_E7ѝl>~,ę$ɢw9aBOX,l$" ɒ5G`8 KJjn1󂗨F2lzG;ݬ&eXؕ%i://+NYkN֪R$* 6gڧLȊ̌t҇Sg jM2BE<[,Zlp*6ðf}b >,mYL()P |0eؔ! M2M*(/k=re}U׮Ee +[ $!G뮞TN70*gqs)@]G G Hb4T / /^Fg1 >4VOLM a8ѿ mtOVKྣ#M=իo[Sn4\Z2,Zv]`-{6;kX`eS#ʶ:L*\FҀi҂Oݠ%CbB :So$xԍ_ ǻڹ/9YR7q,|w)%}ه0IpykSAǐ0Mo>|~0:*7B@-uŽ֒?̶ c9+ä6P2:z#y 'R +ff=j?90 =p\3:.1ۅeg / xup~Kε Pr f>mVBERM6 D_TMIad Xi2V"S 9 7(K@ä i)J"7:۠kiwAVt< {M2&1(Mqs<"/ r}댼z]luOZʰȦ8&hlM,d)>̄):T> (Kļ6GcJəZ&8-~I~ĨU|bb3)s&p;Ե͐lZS0 \pcYe=q)Y&p4fR((Ku"o9e]Jk>x;/5z:B2NP|+~u4_Z } wIvRQ{Ui,' udyv0{X wYh9~tjy[rkSMV,ߠpuM&M5U_|khp ^q5M320{'kvh B QP&T@כr3D$\+uQ {V>-( [i ]Bզ/ 氅@Fz QE$*6!,:ۯu6B >'tX|L NJԸ=៮24J:g%x|.*u Vq *WERPU-B|6rp1EiEhcsz6{ \`ppɌǂxQ>isr:b:Ļt<!? i6,+laLٯrcm,W9`MDR NA'6(lH0F+VAL 8\mnLo~4`2|*b%`\vх5/AyC'bg>8iu.R\godk]1ݼdk:/>%۸bu]Dui,r8fB1&"1}{6O(lalFRe^^iU8ő㼔Ny8dNY.q'PR\! 0b2{Lft  #KҘ +fR`Rjaֳƃ-C eVSzj6Rmn nw&T!Z~FongpSWd(v,x?'Ke()bˁ=VuB;O$P}(xWAGq[v'a6\!^u9$oludޥ#ݟx.(RيO1E0=/*źo,Hb 4k(RQcQw~8'D0] G4/u\v>E8TgOPlA&Sc/{G?ms6xͮd?X{N&̻n:_<[Gb^]1 lP}]`l~ڎMP/2Ȱ=>q]mb'?Ƴ4Px,U&֮ J.LV$k zyOp=0w-6Bo{N Ϭ g%ݼ^cf%.Quv_jl `ٟ u*5T젭h3G0:YTG]o|QF"[=!7H_G8PT} ̣opodi4D78bupЋA[ۺULP-~0Pʰe2z,C2/2obX+9Uաn{hJ܊A1!Ϣ"cExaUhp;:"~yv߾Nba{=s&~su5wўcZ!vx̯.(6zZ=N g܁*IVuQTwU|i798Wz%Z7|]`Գ9͗9BʤzŘqd[ஏdF2`q:aw$cNsPcM}Pf.dmv.b3K쀭R XcB0:v״P%VFbǻei?\q2-dada2-2021.8.0/q2_dada2/tests/data/underscore_samples/L2_S175_27_L001_R1_001.fastq.gz000066400000000000000000000224211411645176500272000ustar00rootroot00000000000000])X\ٖ۸|ߘ9sFt9n. @R%J%ݦ]ITP"222|J?lGb3Lx1,&w$W1D INK*]%"W$(k)1b:˴%icvܺC5Fmű]9:߶z&mjwUk}XmqZ+4U*-t+u? /sf9]6ׄ~+#xGE'#Q}"=鍁$ <3\[ۆag ֵֶٚ:µi;k\]W[8@`֭3@;\je4^6ND\gk@:Zn&+ S26"k+%*&ր+Rx2 )}1^EƵ [۽i/s W kڮmj|LκAl.k-MYed^߮:_mzŇ^)}/$?T\2Aw|#ţ2A5NFa[ O_1lp:gj]6א]M7hG`SRNj?3 ƈ]g;maq@2UR"C1.&+j\0 K "&nE\,xMBh8Y Q7"kkJ_vUʼ*] PԺEk<&f>(6"+CdHؚg%pkZ,~*l0/:`+wM+Yɒ".0H]ovFz|. Fj*NbK=.qEr?pM8''N qXOG){'ʥ*X)zӘn; t쬩gtIba vJ"ַB% |O'@$_I)1_)Y{T[*u_C` sQA5B/8 XRUEa=ۋ4^j `TB Re))GI,MŌ:'e.EAiY>i-I'<"A% ])`<ꁥ_kG2KR&GkVV$XX,물/~/e?PCiZ5^z6 MMS!*Wwe+dY\яnWX@lV-VE⊎+Tg!1dM>rT*?[Cl'd&{||M@?{.h+=6 0_,VrXlNJ+'\C5s,}*Hs*SQ -+Z-IWR"Jv` G1]AZf%`LeRCrsRz앫/W$)$f5^M2y$`IHx5ľMCz uh!#1&"eeS@"- M$=p"oSd>69rl|clFV1—D^U;>{'>ڴREw?tJ_-|mhٷHiLFBSf3thO븊 .q%dH W~Pq<ѫY롊ukȆ1XT#xJ:*V;Kk 'c$Ԕ>Owe~Lb\#jWz}bꉉhK#b_PM.Ǖ'2 Aהּ fP uUe*NŮW*J,??۸Ո=Sɀa} YF;5@e)XXd Tq/Ueb-=w-`dz)$|L&C@L/|=$WY'&0caa`n)`}),k&խ*4\?e3@-!-kqư~.6 ǕW/}&HK3,[ڱڕWA}" .?LВ&'d(*m;yTJ9" pArպZ"+D0]ySÎ`j.\ }2'A@0p%D'~(/}C[/ä[Y ]Ԁ-{,Uȭ,}%Sz7ޔZsH|^l|Ȱm+s L#^ C_z_k?ay`pV5l;BZCa,R&dЪ'X%G*ȯW,E閊I,TB{+e?/}Ζf2=[+>e.DEvc9ejkEApm]sb5ʚUҪ&4u,zUw"|}$Yv+a.f^LiŃҊ5י򻎍mm.[s;Բ 7[0⌖:NU5URRRLEE cTA_[D0M7*7],Wmfh0huHm<] y3_Q=W@ LyO.%U;^Mt $}Xϰu{ aEљ|I4P+4Ê\V:}gՉAwV3;$,bٚz# [ Z7/lѹuTZ"4WulW~147 QZ%EBԶڒ"@IKfB*gܩ=ЀJSq}Wf:]Ή >: q-,Aa=ͱ$AtRqsb,"(LDc`KE]{sdl?u.O>ۧϢVXHiEcmUrsR}|DRR 㛳:weU;=񡈝L"^=ߘ0ﱹ[މ K?3 "Ӷaf;mve5 Ҳ<%5ũ.)87[m/S2^ Z#`EWta G7Pt $CRWx?݌W~m@IKkip@ps8m2hi7HV091%1Tܚ̔T---j21KƳ%v7]7ElrɅg7"6:]ޟUWAbܭsT}pcJ~heiصS:F12/Q~>+OenҊ_ovz;?Ԛrp*`&?ZYn>!k5 +XĦ*"[Ƅ*$-Yttv=4*.M`f to>Ari`۹+]Ia<#Dbt3ԳI*'KQX>=Ь<_\0t8+kQ;|hRivt5]Dͻ5#CP?p.ƅF5{0Bzbյ⋮rC<2wHcJ=ٛy5%o'8Njۃ>C\h=Ӓ@17n!EDj8Pf̞rR/,W4.nQ0 s_3:_̩=446,xL^mo*^eݗK|́Pv<'{kr6br0|Wf1wQf"e^,4ʃMP%3$Zb`PDAC\qX+6U`i`Wt3;7 >ڛM7kNwε-AC|# \t;Ly/6^iCbR\>4X+5E4 . JLr$3W|\( 㭬٤wbk[v#2b i\/1TZw!{UfW>lBj"޽u97x odvG NB@+ -nR3: t`}2Wa[I]HMphS֏U/lgH>MOfMvKG&! 3`iW}JDjhN,Zhtn6ֽ3*g>0(tVh}#C,bwsIϪ@;bL>( ī 9J؊,ixŷʒQGKp"+J(p~N2ό|SK^6jVr"6yEY/ Ӏ'/o^,JJE%Z=[SGPx57lE R1쁍e8]p`;s(aƫ 7"J AiI>BbqWc[Mtonmiyy`=HXђuAAZ`Qo-bq^ܔ̿"%sfc%ābO 7K)xwtlDUW]^lQ31!JY?P}VDH6Ug$14ed]ُfW0r"UL_ |'U K x8 p{gQlIZ7lME?bbh,Rp$:5NZ7غ5ibOoA~xO5Wΐ WՕtž ?a)driH%(P3\g)J[Ey9xm𵒫VoeR =SjC[3OR9liJǃOZuWH}ʷuBV7f2r:ՋKMpE>xMnyߛ?5.bO+Ǒ&m:*d:a6̸12YY}=G;'1/V_ڣ:k Ξ5 Mƶգ%Й]Pr4ZiyJ&tWaHf2_>6b8["` w þ8֠pCh0?T9n/Doޖ(-Q;[fuo;ܗ] vWwtfc$6:]̓J&w񸫞hxKz>"'|Z༉xkU}xG wy3[B E v ,10N%YSixx}Vv*Էnbynq]v6|%ottZ[E$@(YeIkKNsY-vgg[Zepkr^1kEPX UX84SoE+zGϸX0 QK&!Z>|V, g'.Stij[+r?l@Ԩ>kXTvic:VY  U_MY/O%DjIkmb=ڦ i lŶNX|[AnGe݀0eUZ2g y"sɫQ t0PTy$34(}k *߸:8<+Gz;6K6؆ / 1ԗ 5>%pI/OO i}6r w:ڞm ϳ,zѳEhp5m$WA|M":$/dD%d`5wp@;~ W8V};pdQ 8دP UP)S僲Dt&j64{@2MՒ;$jS'HvKՁ32* ThW/½VM+b}x֤]bR=U k d*+oN׼΢^$:Ei]}-rBqݿ,bf݉=9J-zW R ԙt-L y- 5aطp[pbz"j80^;̱4hQdpd,]ALo9nJx./V]q]$nB.qīWNT6`v6N'qMm=`έ]'/7UnÜ8.ʡ],E.3caw"q(0kDX(4crEkMF5IF(@9YV>iREQ:OQ`VBRUWu 4-;*438m[4X`JBE54W)/g(ΧhzOqSл5wؿڱҹ쀤Q֪&QPqeno`p!h4hH ;ldޟf62 s[o[E]M)A$xuKX>@eRVl%ezj? R*2EǁP/.r;aolT@Q/笘}NCBc4KvaE8Pei&#@.o>k'WInQ%HV5JigK@laنN!a\N++@!Dfp?ځ|93>{5v3 Jε%LjF|`p%2mC~KeEa8{kq$㭷 ^1 \%OvdhEiEMЊVuiE^C+bDSG2u Ġd"Vzܬe~sVJQg,%<`?>|P ZBe[},c($12+oNn l-=[qKsxzem GC.,3ro}JWS’yÕu<2Bxnm̛fX ^`ZM\a])<ưrwȷ*'@[OΪ%T8aB@A y@,ꢡa!kd%B(D7cNwפ@8ViP7K+lk4l W[BLag[[73pbK, d"M4/*IXxk<|MACkN~HU8 SL _SA]ԯ|Ah Uf~ZoyG Wd9.{ _$w{¶n~;|K(tZGݳk}m\T`lO\Y:ht"ǭU@ `5t # 5W3!dGQ};/v8t*xCаvypӀ `^", 饌YK[{w#X.)?uΫ^]'u2OkTmjŁYW拦ȃlx,efXzAʝL2 " ;dll,,J|eWifea72d̬NN&+z $Xu;I,;O ٢]֕ҕ򔺖KSM_dW6q sSf N]Rp駇 ?(.R3q2-dada2-2021.8.0/q2_dada2/tests/data/underscore_samples/L2_S309_33_L001_R1_001.fastq.gz000066400000000000000000000230571411645176500272020ustar00rootroot00000000000000])X\ۖƒ}oY#tKULum,!@*V;ןx?Od^n|Σ&IYii^g4 ]) .38Ћ?"SSR< ~^p5N /q-?& ڶiLFֹn>1!*+_*q,Dv1FfGn d @"K u"lI,}!(>p=YȞ[zp@svtȆKYuظ#D1ѵwbz4DlLoGB"i Hv 'ڰ{4Ykj]XsqU_ZV#<TBc$*q|WzlqdU&o,v'hE)`1l6ՒwM'%m>WkkaóRJT[akg.k?p:gU˅&l6_ohSDQ}(`ӻDH` SV8[[׸V*6r=MDGE',BR:kH^v$K6〽 8n\wBvHV`]9 p[iQBhYV8/**T=0էC>ğ 쒻K^U0Xt͹rs`׀=#?eI CK0bUp0el9LH$ E3\sX-%f[[S(>dCa6cM{KwUp*5,Zjco ,Ru`k\hx\ܐ󒟤<)뛄pb k1_ X,Zf%YqM:vM{7;i^KkQY)"jk-rVcbJ91PZ([p XYj]͗Cፐ?k!KSZc=is Sj!1 J&jkTG%T]ffIc%8(( v Y |^MF N|`~ .z2Btnrh L+9CB ,|P -T؜B.Pw-"zX d@n؇؋.]t ƥ]zpy'q<A/y+g/(.͗}UEHڳ L)5NBBr԰h1pT Mr[\(ac5,P3r/r%& B6~ !:QyB6#HtTL#6H>J/FI8 0p28 _oi9@];dXk@*J%b-*85t1^ًudphra0cC\;C"vR.6 U|*Qζ3& U f/F#rEUպMߏl# |r`ӗR`PzY1XhJP,vIi`Hj W8P.6SVdX SCZ8C?gΡPn}bW4_EA: 8pMmқ:\A-6ĒS,qwɌ״ qC' @Z5 hW6g(^^Ez>$nƅSnJ:W%d}Dz|,x(p:n_Oj;]L`o 6p߉kRw֥פ5pؤK]/5-Fs_ҚkUQ ֦dsmoJ "`'yʹ{*8'1_FjXlgh2..: ^#\ $nTKy_$ HHky퉠+K}0(hɶVW]О&rk<µbC15.f ;# ҂vW]KJF01Ddr:=T!\t`WTd6%.H\ċp$wnFo V/ҫ L3m?i T F S5E"jBZ/ UK-@*X%T܎{k `]5k\HO\i k |u6lw gWJ^UȮ]#㐬mG+ Vc4v[LJ P @;*F%Pm|80vxΙ b;720E-e؄q!5z,>YbTԦǢfoyY9(2RAc]fi ;>9]M|qeMp Z`WE{q8?П\llAv/h˼|MWZXq(o7j5:(\eI 8?b㋱ ${-p`zf/2XPl-2QCO+>J3W"Xc\ad_NŢrfMfUnTVYT EWY2mDeh,,~RJQ0n-d]DO믝'$n# z 50.!5Xxk8(7ۈ^TZ`Vi4"!\1ȸt-e4a$OxY5 ,qX %j<UA-8ojypyyYM\{F՚JX Z2-Ncw2I,!SJ2!E%(jvd~Zi@PZ3l2 +q}K5-~CKCi .('# ;vd,ó?`? i4[1٫ kdTsy5i Y,ڵӫEkR[m^2!c;/Ejp4PVR<?BMBjw߉ӷv9|qe4nYX] ; Ny7 ŪE`z`vQ)A\h j)D+sŔJ<||P+&\o[Y].7gJPSW(j@HTr9k ESTUJ2(5)Yvib53c؉Uw``p1Z65+Ɩrudo;l yT)d|l@p좑YL1N7.'vA~H#oxN^vQ\^zu 1{\_ )iؕ SrIzGfdiLkkZja  URcGbFo}`tZY  9Wl<,M:NY|[\iPa?\j#QXV&fܮVa_֣rI_r]O Y]- pZ7ͺ N4גyдd(ً\8VG%jM4q$5'`Y{<ȁ>{pq Z^~K4v=|x?)S.~.8c%Ӑtgt_>t-o wjvl t'!t8K|$v Z>Tj',qE;b`1J_^m#f6b`Cump7Ǎ66b - 윭.a`ܢCً1Ev&U 4Z$di`Y 7ɜW3E&P\1~o^N ֳ_Z!t^l<30V/'.W1 E,oGz8i4ϐJoR @j%YZ?2yz(|hE+BvůthȎ1<2'Qk|- umT ;7[MYsmZui{&x\ܬ){,Rg/Ǎr/g9kw1XCS_9o"S GD)S),%rzʟGQ~x`=̰%p&WL~@ fg?#eE]/n. -{فo3^N?Z.xZ]pi!ҐWmN{6NvbTE\dbHW19 pHzH+^=o&Ѹ􊯑V_'+U&b5,67b:]lw1MYBA YYod L< W&8on~Dy 1$'ϠZp E[k4\s8v,|`<|lWȮA_uW6h_38ĖL@Iv5MmqMH9jTwWnYWf{9}m*˄1݊Y%BÛ֍W]L1BƖ /@6ESr<.sQ n zr0(fX 0{N[vl eA gm fJTb"PQE18(i$}$R$ #m`^.-BЗ7Z,'.*W]rkE8>h2uB)̖= mSllSwHp޽vWպ-=7[Y `wCԪNM%S ѯ](Rҁ=?qȎd2Y,d?Y )"z(a4e+#37+dO6aŠO\n2M6 3+-~-قI7k`0,2cyFf0:e+vf8,f`sN{\oƇ kY,B2(`>@ubΗ@H2-B"+c 2v1ݬǎK\4|}ٖ+] l5&ƧokFhMea Nݠ9j$EBr8!A_R˔-3 Wɱ/vZOa5N}ҽ_2 uYฃ! $)ԅ|LM` 8R3f~o^[  ^g(E֓sUa$Ӹl4>y0Nkls2 "Ej=cONx~L`Lxl`-(o I # vmˊ,.4RyW K5f\ "X6%sV]4Mka=8x&`_fw0RQU8>wd3,—3"}d6].C6j@Y!+Unc{bTɳ$+wϧ(GvIA;&3jka%%][LfMЬMˢuWX[QE+d;[=v=-Q,{h[e z($ y1p |~zܐ1X8 W4WBY7Dtx[yTUjK,Ļ~-& B,θU+BOXiR"`1H,; \ F_ Uri˽zwՂ֫sYWf_KYŘK24N5is $<3v+ǹ&D$g KW#mᾷZu.9!Xȑk1blQ|I )TP*L+F vvO'ݶ1ӿ؄bpyvgF(jGQeR`7Q'+aDDz{яeCWA V9\3dԪTFq(OSH RR[+mgE1zB`]}Sm%}jܙjsuë3]'t]y #Tq sU wW-X,KR_/Fί8ZWx4k#&S3)\;+,ei^k9ŃBN7%j;<SpܐZh3?dQCЉ6fHh3]0024ס.,H |&ADH#9&sy|>YQd0xFh4WR| LC.2nHDCn+GԈYAo^oe,TF̤@Ga%QhmpهZL?g9n\l0)FU Jۉ ~Jd[lbdg tvM?t~d;i>k8{}B.g=+YARxW':2!׉:#86|v[SֿW7Ȗlߓ"kXռd 2kƠ*ָ'g1>x]_ͼ؍]O6# W 2*.aOLBO o:?>2!"G{5wtθ0n|zfG It+_I}~󌏊x`"lQ.G\ԍ-6S2[CiCj3=470i c^{5\ +V:/*Wcc{rR}HwtN7[̸Uu=⺮o*Ma\m&ٔ VPak;ݭ3֟J*XE>DJr` O 5o o8N{d*گi`lR3 AUcNc a;IAe1e?>2zI0z=fe6GZ9FW+m\ Aaĸ[,Q}W;,jAi#wᤫmWQR.WҷU砿^ ‹MYK>1/t^@`ۧs: { Se,κauysyC#Y"88麎/B+sC,F1Nkf(K=kR+BClp'o+g^ j2[[jܰFhfyb JyFAFt#Bj}̹U*MX(^K`V/p P[x7|<-Ċ:5/rMADHHׂ5LƝWk6U-v--/S䮋LpxYә] V, Hed}*@5L xS)!]SwLg/ru],gr3=!X0fi`"hsx9(%tZW /ĝSgW֞y]s ;XIP}R*\^"n,4Md؝^"/Cc1|ÑEt`twoT4jomWx@5*pmu*8y SJsW5vE$~>TJ ɼ,gT 6QÍ-U +hScdqL[$Uf%B)q)JJ8fLCt|cܠ~$G&>:<c'_j*]6\& ˨VQAC[]gCoVVj.Dk֒).e?ALG"#.]ڤJZQ5nHa`-c"^Ch臶m( mY`Kק]~lfng]ySD~<͗rnWso{Y#)wLykwAͿHXmC\o+>]3NVZ[ t6حWǬ *)^۲x|Ixmya/Ćq2-dada2-2021.8.0/q2_dada2/tests/data/underscore_samples/L2_S357_15_L001_R1_001.fastq.gz000066400000000000000000000226751411645176500272120ustar00rootroot00000000000000])X\ٖH|ߘ{0Lյ"$ {HLZS]lINݩ}?l6ңjo&d4nH8I"1^$Myh/Mv"?NʟҙQx`?Sp&NIbb:S&1I?㕭ضuǣ߷h9V >t]kl]皺GmTnlcv]}?hm`_O,֓f\ ~ \;2% W@ ,c:/&.}pqzzHmcCѿ2lݱj뜭qv]9twUYVw, SB>|OfX;`#X_:7Cp{\/1-mڀ*])`_t-m@۱k;ZW7tu^*+@]6x9L4K]` {`# YR? ᙀNe(C_z5bS{tW>!@O[Q-#Ѐ8: ;:vvi@v S~U 7|} kLx\yLL<0LG'&l3ltc{nkkLwϕ#(mWaՕ­ŏ.*[ bςz fg=Ql#686\8h f8"6]j25bS4'ŦCv>=4>(ں'tGTqhB% Gc <|xVwҴ%5+Y}QJk`*#e98v4FE }L1'){I)K md0!;Wksյ\df-)ּn}]K%) c-,43F8hw:^n&}f(3ѥ";#O`wqę՜(3N !6M8BS@3׮4~@/Fo"wn ^#lL/`SŕY>-H<<(-O^pQ7:.H9z9-J! *v\u-s=,罃U®}9hhY+4U^]cZ4ٮ,½urEC+-sԨ([qVPCkq hLVŗs&x<81Azj#/ފ7H_Ycvyc@' uVRW6RuJ> +a^[uM]H~MG)^m=X}8lƴ2h*}`]>KZJ\+-2ث e\|3>b}S&9okhQp񐻸䳘wA{ъ܆="]u YgG[|B T-B_ن,p +pc͉ q*x@׀׋tr."_vtA?ё2і~}j?`QPU͚5rR*۪_*z l:LɣfWe4VU fb:yLC4z("vTu}_Im ȡY,q]h_d.ff hvq+$'S@ɖ}[ۦ;6 YZ\kjpqM9lNCVҨH_cW`=m\i<4QV*|ǣwMY՞6wc㎠pjK.li f!dJfz_f*(3,T2e}ڥ_?};|βK2w"J.Nf6]O(r+yZn1K$ޣFOʭd[(׹sc/Tk}Ej8'62gGhؑ涎40;, NJKR )jWO+NWf`q:3^/tg%saV\|Aj,t>^IC`UdK|k+R4"%V;Гk;in:0 wQ)W hvI*B=%zfüA84UZKnSrΨ+GV_Yv #`(FDa^blfU=HOO2,>`;=SUlh㳒!-bBR%f{, M2. !=BZ뽃h\ Ip`?׻ic(>vTAؔ80{muCdʽq.:2"1A#ae)%g =UvV5]~Z&b4xLsB˙2_H_?g.4ͩz8wwVwdžKez\D&-ugF?{j`G5"v5Y>yu\OIgZl܌||Ptcy$++.%>&8i5@jh]+`JmH0sEizkΎ LrE -YDX|̋#fJʆ c%qdVeg*hVe,+TfLBӏQx47hu ql6vWct>0lۋ-AnmdGS~}j;߶e._"_ߞGh4_+m%ɫ v3t;% D.y՞:VoXxƹN74YZo`͵CNeۧpb:nc UMUSz=pg_vV`TӭTw}HI t!Scg*D'w?>ݬp0+v8 h#ǾJ)jU&I65K1 @:$T~,QJyɃdfMC 2U̧G|[c{umn^G YUW,s*ty,IHFY?dZmA} eҖP7[vbvOٮPb;~٢h]ue4.I:qۻFP`$lo\If7߅JйA+Sùk9'M0~TW  wnm )BӪX+3*fwgY<+ =(Y%$%gv>{\}^zlVr9m|* 0\E]Hi(24K˜/(rpw,Oy-R_ lߏq,u9b$A]v^Ħ~vKW1_Q}e\([["cv&+jzW9O5>Jtoj2s#maj^<7V8%0R] u$T1Y-iS"HihOoO㉉/~o6WHkr<-y|+@"~i5<C@I|mb*BЙ+]Q L? |B= +?AEI2wK7&? p8ME:TbZ?ܕk5lYh Oo,3\~?E[At |͕XM%v( [qxf s.'_s?G!óaRB6]Y)Z@GU Osm6J5g׭k˄8x4,GZ5MG^k҆3fXp„p!=Q<^oo0?3APڠ]k-ƻ&-[+ᗺrMU߶ڪ{HQY%~}/?.x5YЮWk/N0|-<F7>[<95m<~z RՖIrJ3ҵĵ%Jpqn!i1 V$!ڃsQ52d HjW!U9 Fȍx7d~_w_gG,ȮG+׍TsMZ l(2+//Bܯ@ ;LFLGBm6ZUcyQPۺ>ī4hjvP!+Qj6Z'c.Flmַ {5!\MT+G+X^_݂xNUqc ,ƠOX,EGm`$XdEo;`v<9bkFѕvWryVZmj$+k>ma6 {{RkR+z7#4\q휀5΂@n\MU2j04DK1VbB^u'y]JG!ŶKث1Qꚿ[xeu.u5_CFBM]`NP%le7%zshn!8@S\h4%D,/!  WT\C_uxFA\UKg0Ing<#7 #6va2vZfxidzLϒA0;KImeQ5V<տOxF^ mo>N?zw8(g-;=ŀf(O\) L:/}$紵^=xlt60-l0JZ$x:8pѾfYJy.ޤR V3ðד Nky u.t6?Y@nJEJ*Hnd,񦏢X{' J"׹P0iJ<?&g__t6uw|=WAM6͂oulT)MT4[ z^&XNW][jTf4 :0( /Vƒ3./w c+JZXoYlQkch^xw _,Þ+/g򼰃zP9}, YVײxik\RmޮtF]lx,`ؼC 6pwÿ` ͛f/ljEZ4DkW|q{` _\X#νʵtB1OS/EfH Z ɷM>XNFFgЅa>taX.ܓ9՟„jXޱ^4_ 1cCڔ@`ܕ[!1Ȋb l#NW4z:&NJ TjZ<q*_C3[qKo%.^M Z1/kjj 7 CEx|l|vv=fWq~RlV8M(, M>  ưVtް^A`Z2Wvҥ2v9NYx ,ðє {=x`=C`h㣆ȹkdy˾)&A Êq>퀝9©&o&J=|T/rl|3bGk5 9g_GqM>Zyc!׀$J{F#b;,;ͮpHэȈC:GGwe9ŇҔn#UE|DDV4U-6*y_UMAx,e*[PP5p8,FI"IpH 0hX"b;gGHOg[(wφ$Pc}/fJdɿ(Լrǂ6BZإe״ Favf>`2h,; cyx-Y, ~iz6Іe797?op-P?BϛD߶f ^7+ -e3ȂFy&4W[Du"vvDe70/ ]% ɚݸÚ kq* U.L7"1nK|ϠIuNNS3(elmxNXvv7QGdn\F8,ܫIW7pm8cOn"\!EJTo$` ߯t]d܊uJ:<{ps?,~'fc pp4_mmRfFLXv6yQmr/X-Y0e`tw3?ֶ\䱡)Բ($"lM* ^hQwY QA,0+q38$)7>;HݐagQ&6zpjS+ d L¥Kqn+VĦ0޲SKi̧2aNh<:`ܲ-[mqexq4nR *T\TPZ4Eg18TbDsAׅY(iMۥjm8by c8>TұJ"ap8֍}klŋwҖ Xz "oqm%@a. CgZ}^ze'wwd؛蠖=kC@7ډ~?:nl{W`.@m31kЂmi# % ȟe hDNr *FVa`$)Q&Ě*"؊TOqr;Q-;b޳b[<+%W}]o1o|fǝ빓k`P9́L=\b \ w1 Vʗ e "¤QtlpaM* P_>!ڇNz(_t4L )VZ+V0mh^׾g}]edga6E|CxI(ѭS׾ ;!}QGAvqAofe P |ZƢFPR5K4F \/w/S oȠYZ(H*gŧ>jJ7[܊JO!*㱻q2-dada2-2021.8.0/q2_dada2/tests/data/underscore_samples/L3_S294_16_L001_R1_001.fastq.gz000066400000000000000000000231171411645176500272040ustar00rootroot00000000000000])X\ٖ㶒|o9}{^UU(Q" @R(RKm}m풨NׯoKXLdYrڮ׻z3]?(N8}I,IDD^ ^8Ƴgw$1>ű[o_]1fi/t]C 'p4d-nSvX[[ZZcԹtZkUhJi*Bo?d7ndY1c,?>r&;` u9`>H XzXhzxqM}5BLmh]w>:m붕eY1km|;Z StKIڦkVӪVZ"xqΘk u@']LvjFnY"&O#b`یų sǛ#^;7XQz"z#Xk?qa\?n"K:_n7˷XnF鏄:]bc x  $;.F[]7ԝՄQQ8mr]%bכ(bEcL!b~F!bE1SX3x(qb`.eٶM Y5R(6OUUJV||yɎ탖8{#vحVs;[M?D"6~3b$"nDz blwOŨi Q 9BL*9JRDZ2P_ p~o L;YiXECB2Xh,/3:,:S_`F `2u=Z&UH,9>hI<{Lc7fMW!{!ep[ #%wW(֩䥼XpaJe$B{rϱN5hR4x/cJW-d%^#[c(Qo@9ʪJ4{=dtd|H[\!}ȠARҺF+NrF5hg4R'c-e1꡺+eo vdb6A}؞ 鋵:*j!fAi6!wu lS<_*;ϥAce(CV8@B*Z܇Ǐ[%WfPeqg/^ݹՙTuby;fNXzr=sХ5"5P9M UBX%:RŃɠոv`;/ǸI W1׀HsrÕ#V&pyM,p5 f؄q%Tj qg匥KiCU,UU̱YS]*=" 燢@Q^,?Sl$nE S,s&XG/ ~k ؁`W(+g1I wmHnHE5d q>50\4-0%KDE.6Ň&l/{a`ÈWp(6q.u9ױ.Æ<3꧖'.L7iطAƯQCFf ?# k UR]EEO $"`(np]NK$f5[\^ܕ]"bpW m++!E>dZT%lКWtP3UUՒuB2۩jX{=a_R]m4e7j@xߧ.r/τzX'b|9\M5+iyհB5[o>s^xmY@a2k5TgՀcc\dćy)R1L@nl2 q^sEF1&=';pV0D`o28 lޔ:R*/9+AsAմpAYC~M ^,bXo@IT<} Sl6qc5@x2hEy9Drvbֽ`wךT4ر 5Ol[RjO ܂\\ea)VrS4H@QN~(ir|~VEq8b&lldT֊+jRR⸬MzqWk#Ul Mбm ŒPE!%;5 =OQ+K6n:,GsF>Zۅ*ޡ=g0#`y4."| +3CfOFLYG:ҐS"׋;4£1M`?ْyŊz \]u:۸hȏ~Mh,AΊuOs|%\Q\M_nK?oU+ŁsB-cpAJX(jEoMR$Uc?+uxGݹV?jAxE,'Ktq5)va53[r=76(z"pqF? ӆo-D!Î;W^ZRlk{S7h1RT:3\}TZ(ntɕM,\Mzpp /`$pGCaLuKd6jɡ^?R&#Rrxl~81I;dI?+۷8:1 D un|B͒ !d TVJWF?O{f)z =qXÊA#"gN'(a?Zb/Q9iӶdcЦ3~AN"&~eUUd(ZKG?2ptA FqXs\m<]i S',ڵMn؏JV>_5[?w vNbiC7rJ` p̰d ֶcf%GKWJQ' "Le,u#`` d,z/4 Ϛ[w%j2ˋ+#> ƏjgbG G7yB;ߝΕX{r0o8.PfopFU\ab c_JuTv6/vz:9F{iO"_䇹l;rixx5nlgl@P΍J~)2+kzut9Onʋs 9yzAJؗ\ {7ހ_ '8'eLaA"Rű:S3Y}4}"y̡koA]]-6q y˧.&@KbGϡ2${/?L MCKCi O[|UF$@bC 4wWkM+{ܗdpoĭfȨնg5nwHt)րrh=Śx%[ҴOPq-v5_Al%|l>`#''a<{5u$ c$WMC{ 7rMSkfbx7E*VT#*\T4 [@߾+ Zp%b{FSB\IZ+>`ؖq7l"lں8,1x~6I 7^}Tq-ȔɎxzʞ?ѣ&nYMaksW_Hsx/;q2?R.@~5304hىE*y%:4c+[ຝn?m~̆M. { \Vw qF0,M{ n8gc즎DXӿuobW]6| O $/mӵg ,hKPs^38M_Z_]e/a['mikEhlFs_T:jHN zs8qUb./%\b mj0ؔXQLNĴ*ʎbN Zjǃ[G|Y1CWG|.o:dk{)>j-x VY՝@n"SPYE̢z˳TQKɰA.^Ǵo)ՂrQRu!T\y+,vk[)A!c?:a] dz8 q4Vc9 /V` Ò2VX>Uq!g1Z˕R):K|40H C8kE`ɥqA)AO.5dYruVrt1 ? MndKh)04'g0( Zɨ^6@(qsZf/QU'YE4<a5R4k. >t}BY6s  2bڪ!JZp#I'iA<џa+Yayw8^җMkjB~K}ϸ$ƢWz+u@ `\a2=(#h`Meh/C*.ݯ/||?~O`AL݉0/Qyu:0 %4j Nd0 ;n nS6mChjr}X^D?|U,[ v(c܅8Blr(=b$?(!c4~:3 /0k*ussˀtsS`G}Yr:ف`ޭ+{_%""VFLI_F:42KT 4Ӣ : 3<2@f!zQJd!2Ѓ]NgNfUv2SK9u%8;;;;C]j< s¶rUfdYG vS*zLk0\)a'M89чaT+ 8(+hK!rp~DO?\Mǫm½7w i-_s fl^Bl4S)ITCQ ,_9D^&u >L[LXTfh-#./jyV\'VQxϒ89rbyZEOyfT $"{1McxRCt| w||z  S8N @m\xFsl/Eyj+CQP[.kkO!MΉ,%E8~!a't4^tEIL̔\ m.4h }˹*ž-:WHPYI[#T R4Vx|?-3n>n/gYjVeoMe,rh%r[FСrנa)f5Xc+xT>NnT|v34xݐ}>lo#:aھ ᥔeȪlc\ށ]XX/ɹV鐑BE"\lrHD X|D`>:O2;+mK(6GEW<(\N4ñXUXղ{\#ٳ ~esu~ϬnOЯۦn۰n'WY6V6)^ƄT/ɥW38=$/RS[l@(Ł(LZ٢maG72.Jbm|L*/<$MUք~wrY,$+%:a =CuJ#/h8X]RvonjP[fl R @C~20;R˝g:S.Ph~? 4M%hb۬k74 i52ú+W28 C]2Em0:**6.]* Di8o-qC·wRʄtɝ䡣nJq` :ic0y3U6ʝKL7Б| };qJؘ`aé/4-å=&*ͅEkKy.WemXtY4J <0XEƛ'*?ol fl~B|erϛX'9..l\&r#f%\r}Fqbdz::/H@ݙObW}~_vzukqoEHUmOr+-/l3a2[KL6̔m45l6N;lCQiʇ]o%pW;aT2&E{fiє a'?o.? t~Gv9.JW%wX!HilٮZ)赠U΄ץ)#ab{cX`|ӵI[ ֗G׫mх#mwS  m:-½iGk- q{n+|WUit`ݞddz&`iqI4t%E-x?lV|ƛqv8˫ثqv}1./ٮELg_ߺֹq ˼< @+⬵yE#Xs˷wYAl*Q^Tp%2:I\G2+IPq2-dada2-2021.8.0/q2_dada2/tests/data/underscore_samples/L3_S313_32_L001_R1_001.fastq.gz000066400000000000000000000227711411645176500271770ustar00rootroot00000000000000])X\vȶ|8wu4OOCwQ]- Lr_pcL>N;T12j4΀.#M>:zwp]M7|. )l  /̈VqMٶaBkl[7|8$4&N`zU2J|Z i26h<h,k݅^"(0ŁO4G64>k+ÚDlaO5ևih^XHMwdC ̂ ` aʹp@׮5:Wʲee!%XUVݥwg!_5dׄlجgɟX}Q e`MG^ ث>l1 ;XvS7ߊr_ԈyV&X } p G&({dvk3+' $~gl1{\#,Q08"Į3VWl!A"YH_7n8:ͳ̷*-2+;h$ \,{QH*&5|%3c qYG`V,tR`3^Y`X#gRW#LU^kZ j5m XS")VFTy u+ <  [حs)`doƳzzc u큍rJ;IE.et=-=e=QQ`@Y l fZZ𸥐UY w>r@0^+Op {WOƽ0vK)*{ؼzUM &\aH1װ;~hF[TSXR@oJ: x:$IR ƦRFo =^ b[X' W*\r$ZXNsUY;gA.̩lX2\H-!oh3]=J칏=26*jiS|ĕ?K,ba<$ J'G^,=y[@:Z, H䟼ll'+f&"]NyM&aĮ¦!>JluJչ-_r\XRλꐸ:Tp]Th85_üG9Vъ6*<ʝJRũ_]9 ]7S WxOgކ{IN `+,XX#MeQbD@C\[CU)B2eȬdT~lE 7pEo,vWX:W_XT(4΁IpT!sp̆%k=vkj -2?UK$X;} ʯa}f2h׽{f+*>?HJ VնXp,2"Qݚp^'rfşM%U  ,^5`HwR'` WWd G D^ X;N8\7hoJ]{ϊCr$pj}Cz wmj-C ,|G[SySv<QGf4e O ހjGEdܗRI)u5VeNqGO*_''IY}WA ^sqfIŒLܫAwfF$DpTJ 'U iX*挼2E~P?Q/ m򵔯0j}yk|9WE cfbWp\EҁPM B_)˗կV, LDNArݡ150_I$/Znoj|ʁX LEC\4E@>A*X\x$v#LO/C&_dr3N {^IYiW WhL__ڜEٛ &U`5Sk-N>P5``)t<>!s/㫹׍aPƫ7]ɀ  Ŕ:/mhoQ Iq Tm)754YlF:΁ !U`כt=,׋ek*[qڕ&| װYhDW98//l1rW2?A<#׭!uj< ȚVjxtUd pg" E^/f1YM7T8> o <"<*/\A}7CVq[_][ַ\N'9=.6&aDMiFM%-p鵆f*KJDYn>@jNqL|D0ЦJ}5fE'=/lJ) ؄|:~Ĩ+o4~̹&}[ỷMpRw{Aio_KRQaW=.E&~BfÌӬƘ\YVYFoQ6)Q6 )etЁ31"@2ȩ%-,K: ¾0vx/zy޾> <Ɵv-8U.8\IҸ6U}74!$qHҼ :;,=,Tx*8_Ѻ*hdA W!JQAV-.e~N{3Iҝ8u? X3.i&n2c#ַr3!0L@oúۺ!c{h!JG12ע7l*s)<'*3?oln"UN-Vz"R,oggyKB-�uZ8m"KZհ+ #`*!_Bzy`s?^Ng0%c| M32(~(9o{ڑ9갹n:MKZBUV"Ȱ$]w0^|Plo;]Mzqٚ%v- ˮ Mq=/gjZ!8/ŤƸ)Qjк̑" DV]jJ3UJUcX&f 5:['ak8`3qi?kADQC/1C6~pֽ√gM0MKct*&1u+? B]qnx!-0Y_*ۅvk#ikݚLŭs];hCZ*ښ۾%% fBQV ͠:L<<4|~jL?1rlb߼|ُ$6Ip6ȄuME}D(~d (^v[!{"/K>>J,ʼnz,βT>H {X.HqB*x@]q@B )4%@RRuWHQH_4S5g RD,hRB/NF8==/Eܞa1DOlw qZEzp0'p֝,rv-mcp|0T} jJ3݋^:\}vdskh&RVy-'2RϪ٭Ym^xx9G{+d6L?4^ ']!6ykQ26 -M$e0T8o/;e;wY r^jo5=|3Aa?c Χ5:S"˧!Cgt&cəb]:sFK0Yƛde"I}2KNa\ adKvXt\ nC9;,ݳyɀT[E}u5_9yY+2oQ(:q8l9}ΕL(ZMH|ycwAtHEK{ Gf.i໑rbTF5oV_]&aka%H}<Ag 녻~&Z4hI_uC" M+'ΪR|l &e 0]-W{\kvE64e6!f1I?]MŢEᬰ$Vt GhMGv \ST VjGW[՗d. %x{⸿3^jD7¿P{F;&ŝ^d4iE#kNYd ꓔFd%sE<-srWU~pZK+j/tO(u4!CEZ&﷯ybwNyۗǻžPۻz2!OLebK{.{]2] &lL _/40߾fk+_Eo\@jg]Qk=͍Q/0,aX*OTϷeQdM=ķzi' ^ ~88 Z]^v&3oQjU5X]|7\de[_ul/a'w5/Nf ]mD` |,4g մ0 WBYq 8gL,vMg˟n`p;␰'ǛiC҄3`ᴈj_EsKdromk[ E%]TuWړmX uVr-נ4wlXJUౣ\e_?cH|tsL&WC1l|ώ6Ǜe]NYӄo?[dhF3I>=#! dĻשjOw>Ӂ_NeTL'GJRt Ư3Ӱ#*ȰU={wsn~m|ٖqM6پ@hG}.U1$bIxw:Zfcvg)6R} 8'6,?鵩X2L ZVIe6"L BLM$1iP)8)!_ ;Yl?@ݤt#Jge@w:=ҔiJ*c9';=χϧwawQxN]~t4^loR uS\WJe89倭V,]st"TS"l6bN/ƫwwKy4YM(g]up]n{D~]n0b Xٵ߳a;*`nz[]ĵ&Y -Uh- vn-jzS?+&%T翏| kCD^4 :n76 v}M,iQ6-qy(kYtLa.g-_ӄLE_Rz4)fثI ճ p?|06D__ 7RVӊܖ[\J;ZjaaCR@ƄX`H<4B6rDG  |Ev}7JB(a Yղ,ʀ3D*gͫt)!t`6ܔ}Wjp"3Z]ݮ]mW> ԫtm+2nX,w_bn+2gmRVB h1i-`N.%*> vq`V.a>[+Mk֦akmZ0% [˹o8V#uaɮv,U7Sk#>, &"wŊ|Aua;Rb'^m3>>g h/F<L1ElY툲(?|G]zcTYR\@۠kKuKz Bsm|uHV@…ͲٚmO-ruPȔJ?ܟ_P6拻، ͗]unpׅSmnwN0xb@+jG"D`;v:,z!'>dXtHcNGJ1HS%2b.)n m9yXvϖ½42LM셡_]طakw.W]7z:ˌ ,C`]$G(û]huhgWeln;dM>y)7MA2 Kd4Iӌ|>x}}ʢ n"G)v fl*rΫۺ_,.Ven *<2,KUqD`0 tk /B3\ Lq)[Z\ cca٫vF!Nk| QA r1+ʗ@EQ!χ GdW>Pa9^#;M$vХookmKn|"J IXݗsH&!7KLs4hf)w$VOjz<D ݾuٵbף 9;-еr<ҵ0)j2PAr}{$V0rRCmնD|8&A  ళ@棵Ap6Vm5uQle7b~[kU3*N^u5,NNfZ<>j3 HIcS}/~2!H0aߠoiu;h&}@ 5bdA7 >s/J#u uq$^EQ(b!4iv]Zk7li%nfeWWܥ<\SJrZ=*gd>KF (pnwNV,sf= tFmr8 )# bxI]~瓵Vj]wɘ 0V^SJe)caO|$s@w0UZ warxX&fzW@$2f8M..z7, k{tS\ь6h:j&nF\Vq4T䩂l4t!q)b Ɔk(-P- _mYK~6-,a- `I؛R}.l Ʈ&OF]uooMs'ڞ:e} *\٦!.WUL6Zi iy7d<'Eͮ8둍A :ΆCsqel}QGYXGYwhq,v,Q2<Q{-bWbC&a/ZU7#.K[ek5MnviKAڊ'2,{d.I Tߤ{+!o-`r>ZnsJAzHGao^'~S11q4&t4L]SCq%Bk'60(\Ñj^of<"l谠gyw|X&\$=^հ^|5qă5VGX2'pd .,R#]OAP:EHPԠlNVgD U( ^ɥ 꺘M| t-޳*mO.bFuf+ZL\l؈<'PJ}2JR-4'x'XWw+*K֡Sβ" K jU!) +QPE|1X#]]AĝºB9,^XIpM *,{.|BIIN)VzF2;[̏)/\BG؟3+[򞼖c'+藐R*s(b1=*>-`HF12|>DRpajV STq)pO)Ղ (6/T&bHºrFOIlwERpWQ$p|՘lUPPqv.)R@yj~Qۊj[{>˴΀A[r,ܶ~Ӷ{@/w}J0IàVϰ=0T1 <5\42 \ Z͝v嬄b_ $`B u,EƏ2rYf dUW%|+v9O eUՂxZ2~-[)1hve ([Az?Q<bp]y].6Z땋; ]lܹX$^{wmro/DyTkDiX@<=j8]d'aJʣkKrR*z d1s0vL Sqq<@#ZOY7#lD3,qty/ enZ CGN9]\U)h\CJPR\ӀNKۘɔ-Mu,R9W6kKʺ:tۓ #j@F{_EvȄR\rΪ(:G>,,s*s/g]%ʍq x 5gF*Dp1 Uwl:u<'pYBC4$S+$|g(SP"OלtwpŃ|훉LAK>Q?b DV"Y+-0[m-OK!cG.Wj ^\}J> ?xHpWPgM^ݐED.5>rE7oנ\ '$춨0.me}\AH (F ʵ:J"ni'.h BF>_|5N^`BQg7ָ)͚KB6 +|OܨE {+\G4e49C ׮:v36db_puvWE:ñ㥗nڈpJe*#(RqJ DFp؀' \B<#3BІ( :gׂd紫)^l: V-v-~0oMX\_pV=΀/X&i!hKa| Oj)?-yYNh ښK+Yu\ܧrKK+9h2^*~sSNS~\vxCq~LYSb`iNMW* *fU(Kh %8RR`% )J-MC!cEkd3vm&EY N H)5'xcj˜ i,B2ZʬUq?h`g\5񅾆 ڸ+vA' qנ ]t\'uezXc]6h*e$J:É߹˖j*+fI Ll+!!}}|=rx9pa^ hADee C0A#]ۍ&DmV¦`:MoUbJ69޸l4Z˿\ ]n\l?T XVMSZKta1r)hY.9ļP8w *x/a̧t4sZ`.ƹ[~t>pK?iQWsjչ"Jw-ShxO1Rk7v'ɛIu{d \\a_m5螴MNJw]OTEפ\F:5ʭSt&d,Ou&5F+ijk-2\\%9%Zџ#}!ru[ht845oBd`WC]&} hg5f[\k8]E"-/7*-hiuq+o؋'_ v"IƹDr3n}U5`7g?n5pc]^^ݧkaT^Bp-8tw̸okTJT k _6M~reY4J^=ui$Dnu$/6=>0U5ֶZ1 s|M;:-aÎl`Y_ۉ Dmk20ֵnWw@wlhQ3!Nb2Җz}N"Axʅ0~@lݼ5|ܬv:]3+A4\uAن?Jq!>V!0:+JUP99@ԙkᔻE.,b>ϸ7F)L˺} ۆ_V|A[6~\ +jYk0e7;oc#$k*ȪbK`hi03$ET.6j9d,e˼aކ,ՃFvNNQ'e2\Qƕ7-Qʜ)sh*{ɾɏ{-zIU^ZvGҔk?JR-w<\{KԲ fY4G?MN;Ȗ:pzo] @.W ܊O.MyEdlapBAeDzTl6a={3U3 =3m  cX]] uw4n[,4(%=%^˒蜖ٺ06,BRz:YU1} Wp_O{y`eV[>lq1/jQ3amɼeUfEQ5?gj؜rDZR 7e=Xg oտ#ؿ#X|pm VAŦh6cˌ6)M 1U({dfEXHF l͵`mmޖN369 '5ޤnI&N~Pu;3cg-0׀4 QSKa\uATqQ* JG:묩6@5(p syK1|5go _\O0a/WIUߓbҗ* ~))% OI×Il5\VW]ۊ.V.pUZcc3U_3mM[Ŵb%Ï؏|aU"N)=D2c>Wt{)n|oeTupS@i;-nq1'mnXА;\Ƅ9+a!U dU^]&DvsGq.-W 쇛r; 3_ߌ8`K= Î~>ΤbMsu@ThiBe[G$( +싂 '|Jij<y?1uXy~ `/I=vmXÓm אdr&4Z t6I@$2Q"i,ػ[4wqb=xAfyZ}FvF~:WJ$aPf=b_[묷b|=?}!AcCvzݼy4`aAhV[~\bpiaxΊΜMfU)d**Y >Z޿\u!|Tnw@ufjVҲL}֐r uvכO.S񅅚W]-ˤ8db}H=-3N~?7K|ч> Q3 Ru㥵ȹx })[ | *=zfWNOI>EF\ņE}}?H/{sQ_<[ jo/4͕"B M$a~fޓõtnm됊J"MXƁ[~va-؟X{;xJ֛D!+yQUdQPP*SJc\6_:sqݭl*WNrvp/W\qz nھ6ʆ0y(LJ wj" hr /R\meGN䢁RwYᾋopC ˬ$i Ių:WOsƩ8tHXۦ-_U,|Y|MC6["ª˜"Q@.( e+PHOK3٪k"_/<$z A7zxl۸nuuZf$IA|I蔈3;*xXnunoTv˝1L]{ԁQAdfƚ{5XM3`mؔgv<+A$P.-yHB)it"kĮܼbANrb.'ĕ ϲL\A\GIA*~ߜ)8(~"̓ļw#l9PXvPHg\(<$1nQtK.z$` >Y-i XVTZVmPR*S˻'BzQ2s!z)%[پXֻ@0l-BxaaWO'XvRK1Kӥ{mo Y{{N8̐f?l͟dַ1ҧ]<(X|^ΒuV{eѲ6&dTɂrZ_N'!Qa4;Rյ^:Jb?Op`63@3j +Ms &rƶ.^Α)e /"MMVRp=6N~?lpVuy&Yc\mGv[Tݚ>KҘe=lEX]) fg(<)%/E=\vei|˿@^LIY0?h{:Aþ%j)G(8xrA h(\<՟˒jWVr0 _|ZA AIc$Y%2/CDu,F?wv,Wd몫){R$Cs朷r}"ⱐ6/m\Sc$ Φ %6)͊mU:p+ԫ}[(H\8M]0 n^,4z'۝B͉k'3&Nuw{}`t"П1&«Rltq!`GHo=4Fe|D˦)P?Adp)};n{mWfi&,BBp>=ɚW>\b,XȏA<(DuYs PȘ+[mƇV$GcposF @O;_)~ øh oMelH[u{mjegc<vjYLh\T J_Q0uvC{Gq;Q1;v'v<\ bE:YHO鬈3nWgRg?z`/Co>C×\Rj豼!YlU6zE:n $O)EogyupI9,Ww68wŁbphyb[1]7zF.|̀ 41*2&U0˚YuwTT&(D*ϫ Y*q2-dada2-2021.8.0/q2_dada2/tests/data/underscore_samples/L4_S63_31_L001_R1_001.fastq.gz000066400000000000000000000231221411645176500271100ustar00rootroot00000000000000])X\vȒ|ߘ9st1n꾲%CP /*,\ط) )Yǧ}[fbmruϗa=c(N(GQBiqD)R:/#zϺIӃNKNF1^KNK"U1 m),~:ڬ|s^iݙu(k7֘H-[-ZJ!Z i !)rvv8g~,-5`c6 b~cxc,G|1@s0x2uC݅dNm;_n)ڡ @_F6ԍjX<R$ec&25NU\=b7c4o{_FlMD4lZ=JvLF3K JI}TJ?iw)AWbE)3.b`7[ژ; )HaܝPQzFY+۵'M:՞*XS C{5T-L eh|"UmchkQR>n7D|uFשsLF=OpT*5=,)+[{6H ZW]݂dbXܷ 5qez&w2U!du Yq86D=NL#X-#c՘VHaY%-RF!RR>WMF"Kyf& \b%j@ BIJ\H>y9+!˿sl!yEcL\p'7bL-DVHAPVLUPZ4Y^,QȂ2dWM&K!WaU^i 1}r˩ȑ,cd'ٔoSp9]3#:6PPp])Ba^ё}5d/h6R8ݴECp:1pnևjGη:炘.%TnEKǕW2Z_F}& â Q֜I`E,vJQv`C1ZP5`Q,Vw(y%ɲr@״M< fu>[z*S˂Ґ3fm Eɞ?q#S$ %I>RfRkPurkɂb+#!{EjYӎv*ǶHc=tNAEaCUUXVeee%|ʄg{WY$fg-drq&d7l(\PBNy!8`#q[||682CĶA2XJ4] eO` È,k EE`̫ZuI)}? I6fbQ{;! 8Y 0, _;=jɞcTJD9 uļƟ%1;DD$peC meD@v\vH0X֑,#; Xi.^2O eR#tHJ]V+Ie2i \/fj#dW&=fGȦc\"lm^5pNqEBKYD8-WW\&0K(:%$mH-j hꦔe)?MdW-T6בcM1M? L9-hߒ*E[*mr^|z?9v,+ ,p.;<H`}sXe* Q1 e.=޷6kZ<=ǧJBR%,,Tm 0~Dt]K>,7+,{W_$W<rIꋄxT$$H` #;2N[ͭ8;[t_.<EbZPc w+zmRiK,תhU`+?`_v1?"T_Ba %WA6틄Okӻv {lt235(k0@].j>? ؿ.H^ ґ]L˰kx-\c۾Q{?7}S/Qħ.-RZ〩0a-P53``(?wx_|\ &f4Xp݅Bv[Za ``XS( KՖ Ս*Q~)Q*QKY(hכ >߈QIJ15ҡ73c LY&;0:D\tafu~ Eri@AQE!,w \WvsHn@Cuk_=ľIݗ%_|u14i]Jji 0c0ڎ+]CRl)J 575 {[ awfux_c`Ʋk;LT\/BKDž%|ʲzŏ{+o-a؜M/v<`\`9E-\$4ka؍?-qַc]])ۮ(X.? R꺐OBfJp)~+P1Wx 9fE]&xTp/;\T?P{Ҍ<p/˂yù-Ǫ?|+cVVq( 2=vc"VnY_f~%aȗ!sE.`L̕h2(NC; CNq*ljwnBPaP@a4Ttt[ U,0l(du,/OLZX٭oWKv+AtkE#&@D$m F4$ȗ7фb[_\'{· }e T0z t%S;뺪Y#<䢮ǣfMj%6$l2H^iTR<=@ `;)+RrB,S\\!\]/6t}8\OFݖ-sSH,SE?F;#|mww06 .M[ a0OR@| ?LagbHB0;4Ⅾrf-;ې&,g]=roPbN)tO[v=KD # ˮduW#AՔ&÷7j\g-@b|;a$-Bb@ ޓ,: ̱)KbUBikV 9b%A:شX7r. \śQ!j<+]\#o#mLEPTI;ǢDM-|}^tEoZP{0аn KxYGC:gf5ץ9\:lGNBOSn5U^ IA@,?`[IoҊ$o<~g=c#v9[֏kƊnh{DhZi-3Đk&+.]U/#|k }ѼpLWs~'v ~$`ikd^ou%㪋Zz$*`[]Ip iȕ^2ՏMtʪ;XTF=-ɰ p%0WkDA=$')z&rrvjl .[܎<[7z\Anq7}gkUb)˃Ֆ`_\[gʱac2cc1zܩ džELh [^hA@XobWg+69'!*'8sakƛ$EU\ `u"’,P&$侚lpKY6U^1˗*F,v!voփ;~-''#ZOCq,Z6_O> ެ,ǚ6R}:oMOؽBc8 ʍ`I=[]o|lc0ixL^Hw)wrUDA$x/9.،!\sAHkhް~fKk9ub}&t3]YJնFM*Z]l=$˒ $ٲDw:CzBlUڵ/B]uJjk@r-MO3$ 3<}+'ўJ򖆍l!qm!lqY+:㠅Hz@I&`G 02X5ו:   0IR}ko2@ ,.r m>%|.L+ sZp@& nZ6 $q? Ct^OO44rJCr14jc4y?+4)1hV &LC"%)Zx0daa8: ]*hSھY)JMso _`jhWA p +?7x\mOVh6I(%%E6ٹԅϴ|e`0#(#*&XBV{Mot/# F<I ~-6ĕYYӰ2ۈ i1XVkiwpYVۡZ}5B [H ShR6|@A2aK/׊dB(Pc8k u[۳QiP\o63]g{CF11DanhܘPAk=/8ًvqh,`ScKuQW{yKVr)1v>h=n&[+JoȰu$_APKhD nv|lu,A'bkFTM 1X0ʮ[Xlfx>s9+s>)]hĖΉmip_цQî5@=b^O尓@Z|*Jغq90'9< ;([֘.j) Pky$1k ƎzC 9h,;sʎf,E$RTg96^>k85#.`rXXI\)I5I4T]\?,W$q/E^!թ,9lzB0Ja M) (jם6|_wj(`=H m`pMrtΰtEx ˏ*ɩxiJ5Z O HV )笮'9s ֋& &c?=wR9|m>8 mε))8\S>` 5?|4≸#qyWڦZU.uHk%ݕ5f%l@?ByX4MY5<E~+{di.֓/'$}:fuw@ƸZ4o~왑\3i& *+9CoYJOpXPbvqAHa>E VAt )ZEs"SDj+\PʺNKYJ)t]ٟ|_c\"6Ԙ2h1HP6|u9bJet(H!,Ue<;E.7'( t{-7ҫ'zz ,rs7 c#nsΩgIHCSz )fLABKmm0\ ܤBw#iMjVũ3j~(+$E8VOeqF83@f;yf4ĽDH nWN&8Tb结9Zŝ@,:j(_ZMVF(j;|+\{, #`*OK A`JXVmU#Tтؖ Iuz}X4b%'3~r -)-4g4fȱs8xuqD׬^sEj.l"Arv<-l!6~=)ȴ̘ѵHAc6~cg!L/$g;dڲ+L7@| $`- ^2Mʘ 겤"A -;,v3[V`ۚo0$I5VMq=ih>R\+c2G_,[yudY-d]P',q]a7 ;εl[#ݮl뵈% 8$FEc."RKઅJZ%:E6y8#m9a1R|@눭 MjTg|gQp,Y҈p ,I- <@jz?.R;°on%dű3DA+Гm# sa`KXC:0ӡhC={$5:׈FDEF#tK XtToQa`7Pp܇WG|gMuE(p~;'gY( 9|wk)Yc$'@c(Q+&Pq:@|ࠩbsHm?BlE-w({.6IhR|Veh#4E7T>v+9 ~~8 9no*itGばj8!*["bH$PٍB׼zT?Ԙ}q2-dada2-2021.8.0/q2_dada2/tests/data/underscore_samples/L5_S155_2_L001_R1_001.fastq.gz000066400000000000000000000222261411645176500271150ustar00rootroot00000000000000])X\vF}odzfoOAxIH n JID5^l b 0pX.AdrF$,~-!!!fz2l T\}o3׷P +LJ,Y쬁z!b[!^Uh{(,`l/^v !Xl׫\|֦ <`G`S ˁ'謐pN#_)OߟOHP9|+^r&se 6%qCz{v5BC;[n]`㿧^7 "຦,EH@W ʧ$3Vm0Fk`Y *,Vh) 4(Kӌo\LFG<WiEBv[$:߉ p}@QÚ,W/ aN%ƽ*f \k98.`!@``;FEjQ?tm[W\k3sUwԨ:LFῊKgȵB`h姹` l ُ *2 Q!-\ֱ`c)<p!K0Zv{pEChu Ao1qq$ `{5yBey9%@Nwqw+- IIK+X괿Ù UA*=AUW0-߲^ SV5&b[ ]mf1ȃ-v/m]6W/'Dl:/&"8=> 2QSբMJ$7%YYW4<1먖o+X0\ ZzZ2QJ|}%$*^;V`o Q CN{MFt1F-D&1ŲO^#+~T)+BX*_vjԣwbasCc`9[?Y~>GhymKl6u@.f B3yg<~e߾sY&9NOOٷt8B~ays!`dlT^ȦC50Q!d!'>c ϲ$U ** tKB?뚪5(J ,칳Ӿ,?AcE2/Jl"p\Bj5;[/W?IIV-pQVZT*7ENUzNHWHVBX, fvnqgn?yBCIPq/4\KV(W&↞C9sPBkeEO%\E,,!DP_1UI$Cp-lMz QiJ\+(T4ڶHl*"mtYWJd@)t{a5,~,ި C t0YVIh:оf6bފ/Jm7"Ƕ-K/*W%.4 Xc"H+w.Ρ6ߕ,5#58x[`8LYt=7-+OᕱSۭn&أYNWhrvB&j L_*jTm|W-;Tkbp) ތoU& $F-/[`3UAdH f:ZO`ԯ؀ڭ7ƶ->l`MQ}\ohp&Μ\S^.(' 0aTYŅŤd)D]0PŇv6ZZ,gŀyP~ tz?n2XL1`{C#ULOŐE>,/v-:0mb/mkXFhuVaEְgAk싰 uy;d0'Z^бߧ_^BN_!0HOZ4.,@r~csa!Qo0Q7_h W\dL=I] C˜sd!`zożk|Kƶ5ŶR1 M'yV XX̺؎ @ qُiU؉E[EIɓw<Ȯ@)l=ջPU6$|A bH^F^%/O]{8)diu5Q,T[n%)/+ 9bl# ~M^Vu;43ڦbJݝ.$[;$v -0 ע%LY9TL m[BA#NY)zD0=0_0ݬ@GQnðQz)!  $F BM[`10i h-4zcH8H(u_9Ns DK;΋/ pֿ8`b90>FKY,S'y))ceϟOǗQ|t,Hސqz'ʂd@TDIMŝmcp$vrK㨡H)QՀ ^` y[>f-nBsT 8iWz^d}WP#P|2 *l3F{:WgCG\pbJqEaoQ S%!`]MfՆQjzM+C3-KZ7i|[;lTDߍYs3TppʥsA?T8A#X}1Gīp_ tހ? - 8b0]zEgx6bf1rM \YW( ^jƖ-NՖZ &ʏl \$,HT,+wJ583 -vW?6ۨYVd֝0GhcIHR 5>KQ½vYnfl37 콈8vI:T<*1B߹ L͛Xjbi;;Ώͨ#f2xW@a8p MiO*¸ي4Vn9dZOkggꏣ24Lpg ΁/pk ߋa0zZr8b+bC;j#  8!EiNΙswNE&Ƨ s _ b6AZs]#bbPW  ^KYPla;Ґ<$h(hbSQ 08хbdOyW%2D83x}qS4sL^I}=qʕvWpABollK$À-IVvW;7 c{&\4EY+mv4KcC~|=ZԐBR Yd}M4 d}Öba+! ,Zq5` ˔!: QGOʁ\ј,yfّg2;uB 46j< `k$8y]4IH^7=-T*LՐ,Nx̙z45>"Ͼ$]L;uA'[aޢشb]M[@uò,-l$](:<E*'V+l>V r̮{dl;fXf2ɹžV`ɌOb& Teِ _E.YYnjXOGFRQŵ^F/zN\x%A#]2\\LTH An&'N2A;]‰\>*+ .-5?'^2Yb>L%XO:Ygm5ǯI>oZukX'A ІE+X+h7xB0F$LJf$o@c1ߊy˿Ue_+dVk$4MXPgpJ2By-DCpe r3Iz`~^UAX Ot0Wұt("e ڿ3^92DQzuaiS]͜ZIDn |Š2%/Vr< KC/Xr@TDc54VٵU(J%p`P35 %Eڙ@u[4HCsmhr݌k^S`Kѽz:6tgNUӴt WC8`4R$Wt@ |2葉c].gTDebo;!Ff(m]mXnvu] ηo U=˵! ܺ , ֘3sbޖ;] ֫l]#9l2<[mԵ ;kB_ GtS 퀠).cMKmK-ibEO'<쐩ps:$,;v[fh* =g~k=߶[f ]f:on\Uo ܬM*`lѼ\,7!*@hm$|:,]kjśR(j; TVѐg1\Cҥ.8g•JuBˆCOh4nio:)]KMsGI,a_pLy6i×+%NKE9W9v:_me/sm*.|\"wWїr%Ec'tS٪% $48&ێ@mVSmEJܶpN [J+BG²h%RTnE?}5!vybr2q0RjHԧP-6+8v.|!{jVKSMog).ϒT2cjMW X0& >Ii㺤,La* pCqE&ԟ~?J җ9~6RGjdM{q `?z9@>L`# X9gZ!1y'73IJ 8zW^9w zsk4w kHvAH17җp7wTgjjA.XD0/-g KT8t)A}ےϞ** m\5`5Gc~giMnS\b傤+cZްǼ<oEzÃvV? BQd/"3c ADl j:u`$5d,(xh4:1AXd9,2!V+^c j6.tHWV@USN[<"ʂ[!sSqMubwm\YCD, #'S?PNRβCf1us2Kzp7L@oΖ'*5J g[X>I߼c±dK\7Bȏ2ϙ|J>{(LkJS؏Zk{6΍p*0C'Ñ!?PT^ϝ9J!^s&?%`*G;*X,o6=$/.҂KHpAX^]%nQYXx|)`Tp䑵&UJJhg_Cߖv`; nǠhyUE|2.#8 E=f(ppZ (a-w(RCW神1$X&z,)xL]fu8.3&&Ō't',lIfJ1:عƥSz3\[Cfwq!n8jʎ؇pFQWhns)$eDOXIl,hcצ|A)u} a |~gt|"yЮEF[/I?NO:å+f}AKzdq2-dada2-2021.8.0/q2_dada2/tests/data/underscore_samples/L5_S174_29_L001_R1_001.fastq.gz000066400000000000000000000225351411645176500272120ustar00rootroot00000000000000])X\vH|={`qư۲)AIP/Ȭ…7RwH e+?fl6Rjox\,6|_FqD1$M%Ы4Iz-t3tN_I-8$1F1D'cM ލ?末PN+lIu]eU Q;-eO}mmYgZKSZ #KB^f?W:mUY˲^~)?n;Lf<̦-h)o?dH$!z8'|t]7|ɗ( hl4Ukn=چ;:P5Ż2Zf(ŏ|]~V߃]`ǓdgC 𙐍 .dڇlKȞ[}ؚ[>j_t0vrRe]"L38]]Mk 앶jڔVT @ff"tY?l䑍:2 XC4 `]@.\*Ps%;N>y&Je"M@$Jk+S9=f2'`Ce΁M 69!ȴG/Ɩ09J '*vt\U'Z!L)jg tC1HXRiیp d3b]h4Zd;{2HycdSNIh'Q !s"F㝮:͗^3ڝjR:\rPT%  N[Q2;fQs5ϯdj,G}]&!@h3?,}ٞӖs\dW6Jh{{Oc_v/"oھkgKn. j>96X€A\(.-t).bSƊ@Gfd n#%epj.Kr s^#YQHAN JER;|TYJ)wAmx#Lv9"aXo4ب6DlDYi$fl=6bYa9|>鑥O`MO["32V\{CX+R*cJ@o;Dx=(z!EEZpXJ\),^C>x` zBG,c"Ô $l^;th͏M x ͤQ," Ab-2DͬtIJQƳsM.Cd^0{>: WY}T]JE^"ڐAޖHHy&)ڪ]񧔥Q}ޛȮ6zFȮog:{}8T*e#d\3Q+_f*$TAkׯ?Ui:[0',Ԕq5$R$%b'~?UY{-`W3v=+k٫+kI6ꭘAemŁdcڲ6j_dSV)qJSsԗ/[̵Mk)eES# QFz˖RuW4+ -r&lXÈ}^OB Yԧ6U@5 .6{`ÉdiQ/!ǜZ! LH9pB̒P#g9R 6APx2P?xA=`<b!l٧5.d=m!,y5^x0[{`@Re^J!Isr5\!@lg* Sւ/>6Zg(cq2Ruؑ&^mQ/i,| XO `}J:=6Aviʼn5B yL8 =@+D8^TD^8,B((E瀝#f5b9m};^)hdd*KjѧW>mbvCM{~*Ɩ.YA9%Ƌ2}-^kK.y)iZ|UZa&Vb7]m@Kh<;w\<^"cFm.N4`Yl{^Rir C.`g`\5wԊn|%җW6]pSu-`! Դ78.0^rɱԂenoSr@ ñ lU][:Òlf _B%[Hn(;|%:,fl4[хY/X xfA5W9BmZZ9w> Z_KD̰7xǕk.w TA!Z`L0']0ZiK0ޑE&[- NDg֠p`sm͗Ђ9y v6D&Ȏ-R,HEDlz$tB\^Q\;yW%jCq:|lq3rpez]Ć% .AFuT ju?u]9@QYf+}TqeSBjGܘly`X]hm.@7c4 X|QQ@The %x(Uq۫A+M`A|Eult |I/hjqoFQOi[-6.삠e[}k e2H5<@٦g}S=0O\d}TRPʢ9'x,K_I: tZ`۫Ɓ X"wK€Z'i*`Or鰚+WAV0Ы(ZX,a{.__ӗ"{Ʒ]SGj|:eG1(BrảBC"Fr5wk U뻱5 fw2.q/ߩFv&41θ x B;śX-1lajC ȗx 9pS ]ag N^ NU>|1X⣦ե9c !tJ2fOdɎE+:'ف'{H)WOtŸ-Bw#:Dޤ$i_ؒR+ qZ6FfNN$APu96v05Ę{ŒDj99]g8;7 rǛx6킴ԁdrj=(Q 3‰)~jnٞrh(p.Ё!PeU* 3:v߳帕M`#T^f/& |qG"ٕr~ΐAFTdж lT1 [QX**oj E,Wɭ ŽnmhǛh20X,FfM44; thvփ"! g=.wU;#3P$N63&7 M?EA;,k1Q\w4@'3Kj~ :m v P׆Y| X68 ~a6aT sUR(yL(^rY=n⊠] |T_`c6Hws]c(~ˇgJHRVYr&JUZ\@XFrp6匦џi|?5\g v}C@Frֽ:ۼ򵭦p=YjM0g֠044@`\e|E(U~;Y*;LfTTk;BzTZ*H0!hjI֊Ƨ%U621r|)ޡGv6^yZvuSLTQgqHBʲ_0jRFb7&6h$2G|UkrV-,49 \F*s[;<7Aq~kj ΄[) 3РǐoV9,>i49 ?5$k|W*0J~Dja((hDtqK°Qdx'jЀ,yZv>{pW El rA+ T %0<(ǚr@tь -K0&4%`~[n[4^o6퀅APqF7~n |%E`[sIt,*2gnQuFqM`WȂf:_~ԒSz+ėgz+@pֵboz=AQ :#*j ޫg;NQ״|f:]tiǺZl-BNEH4_ 1f=lF1ȳ1eW^E @KhLLņEiaSW)^q>ʛI7]od"<[xci &IOUIcd~Vgؿ1xt XTl/;&+ɀc`(p5#w 55vYe/Echx=̅G]O@+A ӿ Ǹ ei1@!ܞٳNcFV\m_|Ee-n RRdayY,dvUr# k*$CRW9B@Z('5c;D\ƞ{XP=는Na\邻 pRLtre毁]fwusn: 7kY6z ?pho~Wr SE`r4\a!rNUMn t> aВ`>Fk.ArV~†- B$^&x@u]w4=4vAun+v&W;-s%qܨ϶M%YSLzT< 5$q*t;,3-w`:E1Ze\i0iW8Jf|;n'rbZwMB{M"H6I`aU۽߾(Gvܞ7Ɣa(%弥~@ZlM 8LYEP!XgmCuZۭø |t&?s{F.wp-u*;#JK4^?Ƌ5@8۸n. l-4/ɢ0\Q+ 6nl{CUXǂ[LY[*/=͡y2A7N\1e,] 6֥p6~W#`鈽7Irδ̈́^C_TSqU!e2"~'NUUP L4qXj+KqUՊk>""D݁.r a׿3t:ڻR" t>⦋wTK8~0D6~Uǂ,;Amu.CgXvQ * <T=K謠n " _";z *n 1aKjKZ(rlqaGTi" l6>qm)- ^}(w:71M+ɐtT xܒ4(2-;BC~.`.i 4*ҕQ'QiNuS M1}q c1unOs5a(/<[XP6 oqn Uxk&.&+'rDg#XLpߩ8fdDWwIst9.AnNB!QI;]i\ fGdت MlUwNmHLT9f ֪ؖ%'m҃^*]g.}/(߭h\בr1/4v^8 'ey +^R}sOߡ@TQoϸMl>2ﶅm*"S/N]*r9B6*FlvQ*.:EJO8Ā2VŠ5):kAfFŽ&LY5GWxyȾsۊpcwزL}KBͮ2|QÀm@@2fV2:cqK`'dx<7nuM gwMvl![ )V sTIA,6xHYgOW"˴Pla#hpp+pnb8Xn_zMDMܽTuQPw\BtϨ#Q0A.zW/Iz[+ \B&͕MA?T?l2ђ*tnn%oagkK 9R?L8"@+q@VNoR 2BI1 JOvwYuq IE!؜m_na7Wzd ovzKKĪ.^_}%%qE_zXРpPh;t~=AsZk^i*"P;s%8(-4u>q¾y"z_ʤ+ d9UߣJXOL.NžÉU.,{Ҵw,8hgq@ fC^Jtc [e5GvkgKp]kwn}֎G%ԲO0.hsb/'T pp"|{" 5 _#p{FJM4|{7Ri%!8&'X,F7[rX;[ @T̸kΜ {r"܇ zp"9a%AF?Y&v2 GA]sZ@gզu9mFpdjFѸO\5@|`eSxt:(˲b~hPsB9"5 E +Z:эl-s DcizY] 6G_oxSJ 4I%n1X( EU Bܸ\m;Hv0]t5I^*WlQ.e$`[x1q'dG fO [GXW2|M(f:}>.jJYo/'=w(0д+w |Pp)JoRʉ[}nrTq2-dada2-2021.8.0/q2_dada2/tests/data/underscore_samples/L6_S20_20_L001_R1_001.fastq.gz000066400000000000000000000221261411645176500271040ustar00rootroot00000000000000])X\vF}o9}{j 삻ݮ$H\DH`F&6.%m$ QEƍ__b"'j76b;MMwSYwfyλ,˰)0&Li~NszXK?zzUГV;3v[:R RBJJKBq|t,~0`7l5@;m/A}ЦG\Ì9jj45aN_xqY[k/r8L]m*JY c46: 6tMvv[7o55 w5rұr؞m/0q< dq(ϖRJ]]86Of[ `w{`p<f`ؤ6?lο6[>~# hoT 핒N1c U%N'5] @.<끸2sYD*"v6-PMʏ#.qzƮ?qf%)HZm(J &%L#v.#}\W@s#bӋnD,3RAiZ'ڈVӗDBQke@;0tj/4BNi+J,uT)n)w3m\WK"z7]η XǦQd*Gॏl?Y*+D-]+J^P:D)җ~K-Ce;DiQC^O2RV'=?ZEYŧ( 7(S3v6Vð\\C˯6nAij @` o& gT iJZ]E)+ Kdl!bIfmE.[7rd*,CCڽXd.@ uiت.Mdf ;:&cۀM#`p_F6c1j9W.QUxQ>:|]mvU68i["Q&I2`ǰ%ZE `}{H~ػk1Hs/*XXD)V[@_A COVTV%D}*OL{f1&6i=1$:`chF*Ȼ65 X 1W`gc9ˁl'a}b墡 I(*PW dYW2WC-`g0cW I P& iZ*87c}fq(߿ۣK0 aT{mM)ފam b9Ytk&H@9ɘ͸>Z,y\C[Lt5]  DzJd߫_]{QQe/Rq Q$bv=_[" P<נ {FkCF3̕. ) aKK~G._n#F[Z̦3v`26Y/綠bj1:! B6[Cj|싵U-h%7ƔQTRUL:4eȇɃ0y˲I+e`X5/qrߎŴ^:$N8 [p_s[ta)B<6L%"6 MVלq )U f0TMcꁉ ,.@DZXuMF$UM7U 1xԘg`!|=Y+&#%T8em:D!?nKߓɮbypN_ݕN[-ڛD׵;=6}QۜYvKk:h6ZbDƌ,/?oō }v]@Ȯ kU^,hqC# l!Q.WZy֗_iލqKee).cKg0yDY[.}+byuS C\{u>R./VrY!$= l :! lQ`njV&&fxc^pĀဲEo0ApO *x8(^2lt5n~$;m#6'q;ކ J};0IY|rF) `:n%CIʄMkTIt\b*o-d1+ذ]&c# NwlG.(0|xb͆J Z0 0hHͲb(tV*S=d)r1pp?Q۲`G 푚WJ{e<W6l*+,ŦSA|xzI鑕kY(*'~?woJn]FfɭGuW& ؒ oVAҴᚵVҗIڕh_i`˰%˘랈C[Mpm E\cEV>(umQDPΆuu]E%Kʉ[fn R5l~L' ms4c5 q,fXMZp3ְq{KVFH] ћD D,|̸KBT-\WtF<,W̸˕YhuWY$ D=щ#A!z0C`۝29f(!!ci$`s}cP0h8YliM+Zy%m#lw"h˻3/6Z7V>SI&lEJR*V'+2NImm/>b# ΁3,R:Z`e"= ?#a g7f ip7UXBؒ^HDTMBv L3V[=#]0 غ*qôjs+ .W!IjJp]0ſA8b1҆ҴTJnd-Qf޾ k Ķmd6b6ϺNM>f.em.vsb}=cXa=O`um^iO :VvRH,"8^<y|_ʣbtkEkڬ$]гl6Ɯ}b#>.ʄ8Ilk,?`.3f կ’Y6j,dTGs{~&=z{d[\Sm8d}6m9`fI6mIIr$UI6Y #գkP<_@|!|(; g_xvӐC\\ǴpղYXҖd0 F Y-$ϤЍ'x)7ډ\)ZnnO6jWۜ%g]J.us7gJicyD Nm 07Nd j7%Kkh *\sI^Cg|.IzH~TtlƮd{C77=a{:K*lP$\xn`i$S:V2K|-vV|=6-~`z+Y(SވˎG< ܅#:Y 5HQa['`vbXp~t^~X"\' >mrO[c غ W=Xn+**ÌG!(:2L)˧I<"*_ח[ΐ&%!;m '"FmD6 jݗ H&a ɫS\uj vWwei+M0;゜Y0%h]= `''' ƹ({z)1n @yC 'LJ!d_}LZġ,#]MdW_/F,\vˇZL*o7*lM J:H==1dT@O+Twqi\W[cy|ާ*XVΕ0ԆZ1'_H>l'p,T>m*^ kh߲Q 2k_++ u"5DjRfwDɳx= q(.Ÿ"Nພg5[=u]ց7%[` W]d (צiv`H)Z0Ur2'p}zZ4z `}`i`ElV\xJvҏ 96zy.' nent'wO}zcNQXkVOR5H`?hW)"BrUeAC1֗jt٣쨆 ߀9")]6 _Ά rU/0-R uP0!RX`<jObH{)F-=Lx>7Ye-͠8F2,1: 0*HB򾠝vn7]_k 8j ̝iZ6%jBkZsZ5\8ۙL DšОeƱ>^~o" z47źUjcMr$|?a*I Ne*: /V3RN 9~λ]f֩~ﻜ_gn=$znrp@,ttVK?z[R+H; EJU%=J(/c_v0.u4+.)4-[fm Lij4H7E#*|1/'E,e6ql5'`IwGliƆrܮt`9e"K KB5#AÚZ GZTI8*o_w1utmtt-gc\88uoCxTk5˃SUn׮9` YdLHE,V&1`x* [Cj;^q˿64k/c܋vGk+~ ˙mP֔  ^/')x:0joT(;)WWN_襩x,)zXB4gi"9IY-,Kcc]GK%]w#mKJJ S4%5u bfyh2C(U$o @la5.WzdU4DgezoW(g)`Οϴ)vY`};3Ŗbv+|nYh{+J"VFŕ&y f rh cBCՔMp2ܯ= \kET,sgXVUY D̢+tUkaP[;ura+MޘL͆ҏ`DU_Lpj/ dgnBR#. A&HDz*ELd2ӰQ'4H0[[c,݈ VqzC0+u? 'ߕzN>H0fL[*: rky r%Ϙy㮉P'ܼhb2Im"hÀ[^J)p u4-ԀaI0,bRǫͳVJ\7s \w!9F;D8X`Yю],__COUv&ݔ(9ʜw\2-RXP 8P'EwwWzAY$XWU{Yiqp}7!SuUh ,Ob33H ]:ǞS*T*AUmx;;H|Cn?7TD2=Fω N5kxUarS4_>}Zl}:dXdj{l!(RVqtrb #KMK]_( "%Ih:ƾxYM VKv1ey4na>MujVinX 8=d&aׄy*,_B1urOj`tD7vt3Ƕ㵶;Uim,lC@pfYdC-j[C)vC[K6 8e2콆}Jx=xou,i~<dži^x͜otlЬ` ~B=\zk~6 eN4TE) -lr^p[⍊Q1Er&&Tf%s1j/ѯ=<$uUuG0qxn 2'x5#%mdS. H@x!(8WbV0 C[qvϐm;[#\H+@(hk+-bmj֦4eDt3!LgyewsCvǀw5r\ s0IIUz,8u C'S5mxUnּwURTnqYҥIاU!y~M۫Ȯ+|[M~":5=i~4 -[wV ocZY)`-S,hV]`+ˀmz[6 @Z!X(8SIbAz+k` a~՜"v]F}dR@Fn87 Q? ?IO; ] _a[)dʘ/i*x+-d,.'L8lW.OPeO&!r̷6BltF}I(U@WfC!n#&ji2P;Ov0Nn-Mvx^+"`Oeι#]7fRN*Cp;!C~K?lO:n!Z8[GgU6ڴ8*{Ez1+6~Fܵ^oaGuZ>IjЅmOL2sh+g{q[-WbKkhjv6__Ubwl¹*љMpDJ-Wլ.t,^}lL T /iX%cGfr9BԶ ,VFʺBL6ڂrUd1>_kHpS+ ^w>]ۯמ 7_@hvbM "UzF0[鏗v .g,|/WtoKF襁\I8I_~O%00yix7k qJvq;lSdYP7E6`=^`e]`pȲ,e3u#wq<`YzR^ʍgyBzb-D8f˖ 5ohevWc 7]B0х.Q_1q c&BWq-_X8/\RC#.2d)@=rMƂEճ7L$Oև%{yv?Wq,֛b<}62{q qי ps] OE!덂7*jep،ԕLK QY]"YPd4gY*L F8^-x(vUvsښ ^aqSJi\.ȨdH43,TNoʱ7՘tsEWTߛLE<)ϔDp{gNTmΏ'KYyF4n̑.9R Uiz3x;!LإSB6e&! LmE#;uGj*8Z x(-l+Ńܼgn!Xpk:Y^EޫC6I5ʠ?ð/F5QOJ*υlӞ9o\P4g5Ǻkth;h)Lqdh]$itBE$Eg$1fp:[Lnl])i\!u qGY}$ Kj`SE U/\.]q+,57t"c?"^,gl?l&Y?lCxمH-q^A۬v1+~LW&qߣU E|X-}}s+j5EXz/>x]Z;cG~ZǣaU0`jYڲZ䕭(6Í4M?|5~~~h ,r5],>OMB6~Tv*v}=EZˊ# Z%V^fp\Nur?ߚi–aIg]:%U\஑C6]w O@R3AuZWeMU;>r@fWsF^f#pҥ+uqJ*e\EvY&d3K@Wt+r3Ap\T4FZB)KUnP4Y2*M gفw6Ió Bg}?t JZ~8n+~E}|{):_͸,l'aڜo7n,k~kzl`K۾z>(RFXo,XWv VyRDIr{*t 0{S iZA6x]}õ9Dz bLap].#VPmUGYH sUYFr.u؟Yz^Ul:qg*cGtlSkr]pl۵dO U7inv3G0Rg)ےUlS Zkan.p%)ۢo1!g &SDo1`wFTݝ9o"[yzoi֯'=4wYh\2)@ IPT)EÛs;e|}}ywχ<ͯ5Z6bэRAgEx-cT[{B7޵W 閵MdϽf?^uP]6|snMډKN Q/*mJ` O~W ,l][V2/+9Lw5ǯd3;s*)zwMs(:Jw*I|,Lly*m_ƞK^:If BV. ruQD!U?<:͐ߨ6$`9$$İІo&w媷IڸAn 1xV l= * alԱk8Jk<| 2g1fAqB 2MT[f9-ૅm,y|'vo-SM3tr)3b ]kh9:lv O0)EÕΨMT_`K^b7(޷v$.Lf߭"jhO/KTqʨ"Zl m6gIuӗ?iSyEIcH#J"J | `_K5ڪ0@t~R< y%5aR@ e^%zucٰ-dF|FZ=∷l<v0낪_#rԕ-y}2e00ٮQ2:]oC^ WnWɆWUdèk+SJ[5UUB_j周baCJd eb% DD%Jm}vu16hY,ke'v%)^h %O!,6}  .hhIsߖaFb@_KoDevƌG EK^!Ql;fz=E" NM0=(oj=hs3rр]r{o{3/SeҔ/6Mb{xMӧ,/06[Җje c;; ܴ3+^3 īE}If҉bp,e1 L QEEK^IjkVÒm!g3%pMogǦ2\%~:a5N`!am|tNk(3Pb_&|iMʲ*hx QNl8סc1wФKtd"Ҕ3/X(k_zK:/P,NJRFgce+ie ة(?\%uaDMf\=CEbЀ\-E *Q軮ncWwjK8-gyFRVJWSœEAÇJƩ,hE~m/0f. 믳䓕ZC& nVDW '*>kc5 =f2/W.1Y99lԝjλYԦxګZULs[P~\%M/W q*]oy24&264n1<=e2Cz+F0Ԙ *r [x=]f뱽;\^,4P"'!P1&@lF{Ԍ`Zq^)TZ,Jv|f}%?X,7fzeCb=oZ=No{;0-(gccs8໤xN)Q|> B'~Nλ(-'HcCK)3"%H0OoοR _K:ÇvN=[I؈ZZey˓,ϕ8"Ģ1-Faao8wؿa`&pP _ Pr0~Hl<y Ft,hvOo=aZhj֏N8ԋtБ?o_\ԿZъ)uKCUOi~~ ְnv4uu෌ ^6(y@$(V!|}L4ۡ#d: I fZi8hZF׻|qat}ӵy[qu1;AsLGFສTmfpV2`N60&UF4~I8B Tc;N&ְO Fbvcul~X5 -;(MK"~"!`n$ ȟ3nsnX5[|flz]EDP+$@rtrh$uXl,ɭ8`̪9}Mԅylq1;afRk;nsU.v6 `5xHpT,dJ+Ip^IfT{IHڞ UȒrP;&uv>j`4s:{';O؟ֵb=OR5,O`nDaIH"W-uf/lIN~F&5lqaU:^I!,-iG k.FC- j@'Zؚņq2-dada2-2021.8.0/q2_dada2/tests/data/underscore_samples/MANIFEST000066400000000000000000000016061411645176500237320ustar00rootroot00000000000000sample-id,filename,direction # direction is not meaningful in this file as these # data may be derived from forward, reverse, or # joined reads L5_S155,L5_S155_2_L001_R1_001.fastq.gz,forward L1_S208,L1_S208_10_L001_R1_001.fastq.gz,forward L1_S257,L1_S257_11_L001_R1_001.fastq.gz,forward L1_S76,L1_S76_12_L001_R1_001.fastq.gz,forward L1_S57,L1_S57_13_L001_R1_001.fastq.gz,forward L2_S357,L2_S357_15_L001_R1_001.fastq.gz,forward L3_S294,L3_S294_16_L001_R1_001.fastq.gz,forward L6_S20,L6_S20_20_L001_R1_001.fastq.gz,forward L2_S155,L2_S155_25_L001_R1_001.fastq.gz,forward L4_S112,L4_S112_26_L001_R1_001.fastq.gz,forward L2_S175,L2_S175_27_L001_R1_001.fastq.gz,forward L5_S174,L5_S174_29_L001_R1_001.fastq.gz,forward L6_S68,L6_S68_30_L001_R1_001.fastq.gz,forward L4_S63,L4_S63_31_L001_R1_001.fastq.gz,forward L3_S313,L3_S313_32_L001_R1_001.fastq.gz,forward L2_S309,L2_S309_33_L001_R1_001.fastq.gz,forward q2-dada2-2021.8.0/q2_dada2/tests/data/underscore_samples/metadata.yml000066400000000000000000000000231411645176500250740ustar00rootroot00000000000000{phred-offset: 33} q2-dada2-2021.8.0/q2_dada2/tests/test_denoise.py000066400000000000000000000331021411645176500210260ustar00rootroot00000000000000# ---------------------------------------------------------------------------- # Copyright (c) 2016-2021, QIIME 2 development team. # # Distributed under the terms of the Modified BSD License. # # The full license is in the file LICENSE, distributed with this software. # ---------------------------------------------------------------------------- import unittest import skbio import biom import qiime2 from qiime2.plugin.testing import TestPluginBase from q2_types.per_sample_sequences import ( SingleLanePerSampleSingleEndFastqDirFmt, SingleLanePerSamplePairedEndFastqDirFmt) from q2_dada2 import denoise_single, denoise_paired, denoise_pyro from q2_dada2._denoise import _check_featureless_table def _sort_seqs(seqs): return sorted(list(seqs), key=lambda x: x.metadata['id']) class TestDenoiseSingle(TestPluginBase): package = 'q2_dada2.tests' def setUp(self): super().setUp() self.demux_seqs = SingleLanePerSampleSingleEndFastqDirFmt( self.get_data_path('sample_seqs_single'), 'r') def test_defaults(self): with open(self.get_data_path('expected/single-default.tsv')) as fh: exp_table = biom.Table.from_tsv(fh, None, None, lambda x: x) exp_rep_seqs = list( skbio.io.read(self.get_data_path('expected/single-default.fasta'), 'fasta', constructor=skbio.DNA)) for seq in exp_rep_seqs: del seq.metadata['description'] exp_md = qiime2.Metadata.load( self.get_data_path('expected/single-default-stats.tsv')) table, rep_seqs, md = denoise_single(self.demux_seqs, 100) self.assertEqual(table, exp_table) self.assertEqual(_sort_seqs(rep_seqs), _sort_seqs(exp_rep_seqs)) self.assertEqual(md, exp_md) def test_override(self): with open(self.get_data_path('expected/single-override.tsv')) as fh: exp_table = biom.Table.from_tsv(fh, None, None, lambda x: x) exp_rep_seqs = list( skbio.io.read(self.get_data_path('expected/single-override.fasta'), 'fasta', constructor=skbio.DNA)) for seq in exp_rep_seqs: del seq.metadata['description'] exp_md = qiime2.Metadata.load( self.get_data_path('expected/single-override-stats.tsv')) # NOTE: the test data isn't interesting enough to be impacted by # min_fold_parent_over_abundance. table, rep_seqs, md = denoise_single( self.demux_seqs, 100, trim_left=10, max_ee=10.5, trunc_q=1, n_threads=1, n_reads_learn=2, hashed_feature_ids=False, chimera_method='consensus', min_fold_parent_over_abundance=1.1) self.assertEqual(table, exp_table) self.assertEqual(_sort_seqs(rep_seqs), _sort_seqs(exp_rep_seqs)) self.assertEqual(md, exp_md) def test_all_reads_filtered(self): with self.assertRaisesRegex(ValueError, 'filter'): denoise_single(self.demux_seqs, 10000) def test_bad_values_fail(self): # Just confirm that the machinery works, anything more specific is just # restating the _valid_inputs dict which is more declarative than a # unit-test anyways. with self.assertRaisesRegex(ValueError, 'trunc_len'): denoise_single(self.demux_seqs, -1) with self.assertRaisesRegex(ValueError, 'n_reads_learn'): denoise_single(self.demux_seqs, 100, n_reads_learn=0) with self.assertRaisesRegex(ValueError, 'consensus'): denoise_single(self.demux_seqs, 100, chimera_method='foo') def test_trim_left_bigger_than_trunc_len(self): with self.assertRaisesRegex(ValueError, 'trim_left'): denoise_single(self.demux_seqs, 100, trim_left=100) # Shouldn't fail when `trunc_len=0` denoise_single(self.demux_seqs, 0, trim_left=100) def test_underscore_samples(self): self.demux_seqs = SingleLanePerSampleSingleEndFastqDirFmt( self.get_data_path('underscore_samples'), 'r') with open(self.get_data_path('expected/underscore-samples.tsv')) as fh: exp_table = biom.Table.from_tsv(fh, None, None, lambda x: x) exp_rep_seqs = list( skbio.io.read( self.get_data_path('expected/underscore-samples.fasta'), 'fasta', constructor=skbio.DNA)) for seq in exp_rep_seqs: del seq.metadata['description'] exp_md = qiime2.Metadata.load( self.get_data_path('expected/underscore-samples-stats.tsv')) # Historical NOTE: default used to be `pooled`, so the data still # expects that. Since this is only testing underscores, it shouldn't # matter much and serves as a regression test to boot. table, rep_seqs, md = denoise_single(self.demux_seqs, 100, chimera_method='pooled') self.assertEqual(table, exp_table) self.assertEqual(_sort_seqs(rep_seqs), _sort_seqs(exp_rep_seqs)) self.assertEqual(md, exp_md) def test_no_chimera_method(self): with open(self.get_data_path('expected/single-default.tsv')) as fh: exp_table = biom.Table.from_tsv(fh, None, None, lambda x: x) exp_rep_seqs = list( skbio.io.read(self.get_data_path('expected/single-default.fasta'), 'fasta', constructor=skbio.DNA)) for seq in exp_rep_seqs: del seq.metadata['description'] exp_md = qiime2.Metadata.load( self.get_data_path('expected/single-default-stats.tsv')) table, rep_seqs, md = denoise_single(self.demux_seqs, 100, chimera_method='none') self.assertEqual(table, exp_table) self.assertEqual(_sort_seqs(rep_seqs), _sort_seqs(exp_rep_seqs)) self.assertEqual(md, exp_md) def test_pseudo_pooling(self): with open(self.get_data_path('expected/single-pseudo.tsv')) as fh: exp_table = biom.Table.from_tsv(fh, None, None, lambda x: x) exp_rep_seqs = list( skbio.io.read(self.get_data_path('expected/single-pseudo.fasta'), 'fasta', constructor=skbio.DNA)) for seq in exp_rep_seqs: del seq.metadata['description'] exp_md = qiime2.Metadata.load( self.get_data_path('expected/single-pseudo-stats.tsv')) table, rep_seqs, md = denoise_single(self.demux_seqs, 100, pooling_method='pseudo') self.assertEqual(table, exp_table) self.assertEqual(_sort_seqs(rep_seqs), _sort_seqs(exp_rep_seqs)) self.assertEqual(md, exp_md) class TestDenoisePaired(TestPluginBase): package = 'q2_dada2.tests' def setUp(self): super().setUp() self.demux_seqs = SingleLanePerSamplePairedEndFastqDirFmt( self.get_data_path('sample_seqs_paired'), 'r') def test_defaults(self): with open(self.get_data_path('expected/paired-default.tsv')) as fh: exp_table = biom.Table.from_tsv(fh, None, None, lambda x: x) exp_rep_seqs = list( skbio.io.read(self.get_data_path('expected/paired-default.fasta'), 'fasta', constructor=skbio.DNA)) for seq in exp_rep_seqs: del seq.metadata['description'] exp_md = qiime2.Metadata.load( self.get_data_path('expected/paired-default-stats.tsv')) # NOTE: changing the chimera_method parameter doesn't impact the # results for this dataset table, rep_seqs, md = denoise_paired(self.demux_seqs, 150, 150) self.assertEqual(table, exp_table) self.assertEqual(_sort_seqs(rep_seqs), _sort_seqs(exp_rep_seqs)) self.assertEqual(md, exp_md) def test_override(self): with open(self.get_data_path('expected/paired-override.tsv')) as fh: exp_table = biom.Table.from_tsv(fh, None, None, lambda x: x) exp_rep_seqs = list( skbio.io.read(self.get_data_path('expected/paired-override.fasta'), 'fasta', constructor=skbio.DNA)) for seq in exp_rep_seqs: del seq.metadata['description'] exp_md = qiime2.Metadata.load( self.get_data_path('expected/paired-override-stats.tsv')) # NOTE: the test data isn't interesting enough to be impacted by # chimera_method or min_fold_parent_over_abundance. table, rep_seqs, md = denoise_paired( self.demux_seqs, 150, 150, trim_left_f=10, trim_left_r=10, max_ee_f=20.5, max_ee_r=20.5, trunc_q=0, n_threads=1, n_reads_learn=2, hashed_feature_ids=False, chimera_method='consensus', min_fold_parent_over_abundance=1.1) self.assertEqual(table, exp_table) self.assertEqual(_sort_seqs(rep_seqs), _sort_seqs(exp_rep_seqs)) self.assertEqual(md, exp_md) def test_all_reads_filtered(self): with self.assertRaisesRegex(ValueError, 'filter'): denoise_paired(self.demux_seqs, 10000, 10000) with self.assertRaisesRegex(ValueError, 'filter'): denoise_paired(self.demux_seqs, 150, 10000) with self.assertRaisesRegex(ValueError, 'filter'): denoise_paired(self.demux_seqs, 10000, 150) def test_bad_values_fail(self): # Just confirm that the machinery works, anything more specific is just # restating the _valid_inputs dict which is more declarative than a # unit-test anyways. with self.assertRaisesRegex(ValueError, 'trunc_len_f'): denoise_paired(self.demux_seqs, -1, 150) with self.assertRaisesRegex(ValueError, 'trunc_len_r'): denoise_paired(self.demux_seqs, 150, -1) with self.assertRaisesRegex(ValueError, 'n_reads_learn'): denoise_paired(self.demux_seqs, 150, 150, n_reads_learn=0) with self.assertRaisesRegex(ValueError, 'consensus'): denoise_single(self.demux_seqs, 150, 150, chimera_method='foo') def test_trim_left_bigger_than_trunc_len(self): with self.assertRaisesRegex(ValueError, 'trim_left_f'): denoise_paired(self.demux_seqs, 150, 150, trim_left_f=150) with self.assertRaisesRegex(ValueError, 'trim_left_r'): denoise_paired(self.demux_seqs, 150, 150, trim_left_r=150) # Shouldn't fail when `trunc_len_f=0` denoise_paired(self.demux_seqs, 0, 150, trim_left_f=10) # Shouldn't fail when `trunc_len_r=0` denoise_paired(self.demux_seqs, 150, 0, trim_left_r=10) def test_no_chimera_method(self): with open(self.get_data_path('expected/paired-default.tsv')) as fh: exp_table = biom.Table.from_tsv(fh, None, None, lambda x: x) exp_rep_seqs = list( skbio.io.read(self.get_data_path('expected/paired-default.fasta'), 'fasta', constructor=skbio.DNA)) for seq in exp_rep_seqs: del seq.metadata['description'] exp_md = qiime2.Metadata.load( self.get_data_path('expected/paired-default-stats.tsv')) table, rep_seqs, md = denoise_paired(self.demux_seqs, 150, 150, chimera_method='none') self.assertEqual(table, exp_table) self.assertEqual(_sort_seqs(rep_seqs), _sort_seqs(exp_rep_seqs)) self.assertEqual(md, exp_md) # More thorough tests exist in TestDenoiseSingle --- denoise-pyro is basically # just a variation of denoise-single. These tests should serve as regression # or integration tests (depending on perspective). class TestDenoisePyro(TestPluginBase): package = 'q2_dada2.tests' def setUp(self): super().setUp() # Reusing the single-end reads for this test suite self.demux_seqs = SingleLanePerSampleSingleEndFastqDirFmt( self.get_data_path('sample_seqs_single'), 'r') def test_defaults(self): with open(self.get_data_path('expected/pyro-default.tsv')) as fh: exp_table = biom.Table.from_tsv(fh, None, None, lambda x: x) exp_rep_seqs = list( skbio.io.read(self.get_data_path('expected/pyro-default.fasta'), 'fasta', constructor=skbio.DNA)) for seq in exp_rep_seqs: del seq.metadata['description'] exp_md = qiime2.Metadata.load( self.get_data_path('expected/pyro-default-stats.tsv')) table, rep_seqs, md = denoise_pyro(self.demux_seqs, 100) self.assertEqual( table, exp_table.sort_order(table.ids('observation'), axis='observation')) self.assertEqual(_sort_seqs(rep_seqs), _sort_seqs(exp_rep_seqs)) self.assertEqual(md, exp_md) def test_trunc_len_bigger_than_max_len(self): with self.assertRaisesRegex(ValueError, 'max_len'): denoise_pyro(self.demux_seqs, 100, max_len=99) # Shouldn't fail when max_len > trunc_len denoise_pyro(self.demux_seqs, 100, max_len=160) class TestUtils(TestPluginBase): package = 'q2_dada2.tests' def test_check_featureless_table_single_feature(self): fp = self.get_data_path('single_feature.tsv') # should not raise an error _check_featureless_table(fp) self.assertTrue(True) def test_check_featureless_table_no_features(self): fp = self.get_data_path('no_asvs.tsv') with self.assertRaisesRegex(ValueError, "No features"): _check_featureless_table(fp) if __name__ == '__main__': unittest.main() q2-dada2-2021.8.0/q2_dada2/tests/test_stats.py000066400000000000000000000045371411645176500205500ustar00rootroot00000000000000# ---------------------------------------------------------------------------- # Copyright (c) 2016-2021, QIIME 2 development team. # # Distributed under the terms of the Modified BSD License. # # The full license is in the file LICENSE, distributed with this software. # ---------------------------------------------------------------------------- import os import pandas as pd import qiime2 from qiime2.plugin.testing import TestPluginBase from q2_dada2 import DADA2StatsFormat class TestStatsBoilerplate(TestPluginBase): package = 'q2_dada2.tests' def test_dada2_stats_format_validate_positive(self): filenames = ['single-default-stats.tsv', 'single-override-stats.tsv', 'underscore-samples-stats.tsv', 'pyro-default-stats.tsv', 'paired-default-stats.tsv', 'paired-override-stats.tsv'] filepaths = [self.get_data_path(os.path.join('expected', filename)) for filename in filenames] for filepath in filepaths: format = DADA2StatsFormat(filepath, mode='r') # Should pass without error format.validate() self.assertTrue(True) def test_dada2_stats_format_to_metadata(self): _, obs = self.transform_format(DADA2StatsFormat, qiime2.Metadata, os.path.join('expected', 'stats-format.tsv')) index = pd.Index(['L1S208', 'L1S257'], name='sample-id', dtype=object) cols = ['input', 'filtered', 'denoised', 'non-chimeric'] exp_df = pd.DataFrame([[100, 99, 99, 99], [100, 98, 98, 98]], index=index, columns=cols, dtype=int) exp = qiime2.Metadata(exp_df) self.assertEqual(exp, obs) def test_metadata_to_dada2_stats_format(self): transformer = self.get_transformer(qiime2.Metadata, DADA2StatsFormat) index = pd.Index(['L1S208', 'L1S257'], name='sample-id', dtype=object) cols = ['input', 'filtered', 'denoised', 'non-chimeric'] md = qiime2.Metadata(pd.DataFrame([[100, 99, 99, 99], [100, 98, 98, 98]], index=index, columns=cols, dtype=int)) # It shouldn't error transformer(md) self.assertTrue(True) q2-dada2-2021.8.0/setup.cfg000066400000000000000000000002371411645176500150740ustar00rootroot00000000000000[versioneer] VCS=git style=pep440 versionfile_source = q2_dada2/_version.py versionfile_build = q2_dada2/_version.py tag_prefix = parentdir_prefix = q2-dada2- q2-dada2-2021.8.0/setup.py000066400000000000000000000024431411645176500147660ustar00rootroot00000000000000# ---------------------------------------------------------------------------- # Copyright (c) 2016-2021, QIIME 2 development team. # # Distributed under the terms of the Modified BSD License. # # The full license is in the file LICENSE, distributed with this software. # ---------------------------------------------------------------------------- from setuptools import setup, find_packages import versioneer setup( name="q2-dada2", version=versioneer.get_version(), cmdclass=versioneer.get_cmdclass(), url="https://qiime2.org", license="BSD-3-Clause", packages=find_packages(), author="Greg Caporaso and Benjamin Callahan", author_email="gregcaporaso@gmail.com", description="Apply DADA2 to generate denoised sequence variants. ", scripts=['q2_dada2/assets/run_dada_single.R', 'q2_dada2/assets/run_dada_paired.R'], package_data={ 'q2_dada2': ['citations.bib'], 'q2_dada2.tests': ['data/*', 'data/expected/*', 'data/underscore_samples/*', 'data/sample_seqs_single/*', 'data/sample_seqs_paired/*'] }, entry_points={ "qiime2.plugins": ["q2-dada2=q2_dada2.plugin_setup:plugin"] }, zip_safe=False, ) q2-dada2-2021.8.0/versioneer.py000066400000000000000000002060221411645176500160060ustar00rootroot00000000000000 # Version: 0.18 # flake8: noqa """The Versioneer - like a rocketeer, but for versions. The Versioneer ============== * like a rocketeer, but for versions! * https://github.com/warner/python-versioneer * Brian Warner * License: Public Domain * Compatible With: python2.6, 2.7, 3.2, 3.3, 3.4, 3.5, 3.6, and pypy * [![Latest Version] (https://pypip.in/version/versioneer/badge.svg?style=flat) ](https://pypi.python.org/pypi/versioneer/) * [![Build Status] (https://travis-ci.org/warner/python-versioneer.png?branch=master) ](https://travis-ci.org/warner/python-versioneer) This is a tool for managing a recorded version number in distutils-based python projects. The goal is to remove the tedious and error-prone "update the embedded version string" step from your release process. Making a new release should be as easy as recording a new tag in your version-control system, and maybe making new tarballs. ## Quick Install * `pip install versioneer` to somewhere to your $PATH * add a `[versioneer]` section to your setup.cfg (see below) * run `versioneer install` in your source tree, commit the results ## Version Identifiers Source trees come from a variety of places: * a version-control system checkout (mostly used by developers) * a nightly tarball, produced by build automation * a snapshot tarball, produced by a web-based VCS browser, like github's "tarball from tag" feature * a release tarball, produced by "setup.py sdist", distributed through PyPI Within each source tree, the version identifier (either a string or a number, this tool is format-agnostic) can come from a variety of places: * ask the VCS tool itself, e.g. "git describe" (for checkouts), which knows about recent "tags" and an absolute revision-id * the name of the directory into which the tarball was unpacked * an expanded VCS keyword ($Id$, etc) * a `_version.py` created by some earlier build step For released software, the version identifier is closely related to a VCS tag. Some projects use tag names that include more than just the version string (e.g. "myproject-1.2" instead of just "1.2"), in which case the tool needs to strip the tag prefix to extract the version identifier. For unreleased software (between tags), the version identifier should provide enough information to help developers recreate the same tree, while also giving them an idea of roughly how old the tree is (after version 1.2, before version 1.3). Many VCS systems can report a description that captures this, for example `git describe --tags --dirty --always` reports things like "0.7-1-g574ab98-dirty" to indicate that the checkout is one revision past the 0.7 tag, has a unique revision id of "574ab98", and is "dirty" (it has uncommitted changes. The version identifier is used for multiple purposes: * to allow the module to self-identify its version: `myproject.__version__` * to choose a name and prefix for a 'setup.py sdist' tarball ## Theory of Operation Versioneer works by adding a special `_version.py` file into your source tree, where your `__init__.py` can import it. This `_version.py` knows how to dynamically ask the VCS tool for version information at import time. `_version.py` also contains `$Revision$` markers, and the installation process marks `_version.py` to have this marker rewritten with a tag name during the `git archive` command. As a result, generated tarballs will contain enough information to get the proper version. To allow `setup.py` to compute a version too, a `versioneer.py` is added to the top level of your source tree, next to `setup.py` and the `setup.cfg` that configures it. This overrides several distutils/setuptools commands to compute the version when invoked, and changes `setup.py build` and `setup.py sdist` to replace `_version.py` with a small static file that contains just the generated version data. ## Installation See [INSTALL.md](./INSTALL.md) for detailed installation instructions. ## Version-String Flavors Code which uses Versioneer can learn about its version string at runtime by importing `_version` from your main `__init__.py` file and running the `get_versions()` function. From the "outside" (e.g. in `setup.py`), you can import the top-level `versioneer.py` and run `get_versions()`. Both functions return a dictionary with different flavors of version information: * `['version']`: A condensed version string, rendered using the selected style. This is the most commonly used value for the project's version string. The default "pep440" style yields strings like `0.11`, `0.11+2.g1076c97`, or `0.11+2.g1076c97.dirty`. See the "Styles" section below for alternative styles. * `['full-revisionid']`: detailed revision identifier. For Git, this is the full SHA1 commit id, e.g. "1076c978a8d3cfc70f408fe5974aa6c092c949ac". * `['date']`: Date and time of the latest `HEAD` commit. For Git, it is the commit date in ISO 8601 format. This will be None if the date is not available. * `['dirty']`: a boolean, True if the tree has uncommitted changes. Note that this is only accurate if run in a VCS checkout, otherwise it is likely to be False or None * `['error']`: if the version string could not be computed, this will be set to a string describing the problem, otherwise it will be None. It may be useful to throw an exception in setup.py if this is set, to avoid e.g. creating tarballs with a version string of "unknown". Some variants are more useful than others. Including `full-revisionid` in a bug report should allow developers to reconstruct the exact code being tested (or indicate the presence of local changes that should be shared with the developers). `version` is suitable for display in an "about" box or a CLI `--version` output: it can be easily compared against release notes and lists of bugs fixed in various releases. The installer adds the following text to your `__init__.py` to place a basic version in `YOURPROJECT.__version__`: from ._version import get_versions __version__ = get_versions()['version'] del get_versions ## Styles The setup.cfg `style=` configuration controls how the VCS information is rendered into a version string. The default style, "pep440", produces a PEP440-compliant string, equal to the un-prefixed tag name for actual releases, and containing an additional "local version" section with more detail for in-between builds. For Git, this is TAG[+DISTANCE.gHEX[.dirty]] , using information from `git describe --tags --dirty --always`. For example "0.11+2.g1076c97.dirty" indicates that the tree is like the "1076c97" commit but has uncommitted changes (".dirty"), and that this commit is two revisions ("+2") beyond the "0.11" tag. For released software (exactly equal to a known tag), the identifier will only contain the stripped tag, e.g. "0.11". Other styles are available. See [details.md](details.md) in the Versioneer source tree for descriptions. ## Debugging Versioneer tries to avoid fatal errors: if something goes wrong, it will tend to return a version of "0+unknown". To investigate the problem, run `setup.py version`, which will run the version-lookup code in a verbose mode, and will display the full contents of `get_versions()` (including the `error` string, which may help identify what went wrong). ## Known Limitations Some situations are known to cause problems for Versioneer. This details the most significant ones. More can be found on Github [issues page](https://github.com/warner/python-versioneer/issues). ### Subprojects Versioneer has limited support for source trees in which `setup.py` is not in the root directory (e.g. `setup.py` and `.git/` are *not* siblings). The are two common reasons why `setup.py` might not be in the root: * Source trees which contain multiple subprojects, such as [Buildbot](https://github.com/buildbot/buildbot), which contains both "master" and "slave" subprojects, each with their own `setup.py`, `setup.cfg`, and `tox.ini`. Projects like these produce multiple PyPI distributions (and upload multiple independently-installable tarballs). * Source trees whose main purpose is to contain a C library, but which also provide bindings to Python (and perhaps other langauges) in subdirectories. Versioneer will look for `.git` in parent directories, and most operations should get the right version string. However `pip` and `setuptools` have bugs and implementation details which frequently cause `pip install .` from a subproject directory to fail to find a correct version string (so it usually defaults to `0+unknown`). `pip install --editable .` should work correctly. `setup.py install` might work too. Pip-8.1.1 is known to have this problem, but hopefully it will get fixed in some later version. [Bug #38](https://github.com/warner/python-versioneer/issues/38) is tracking this issue. The discussion in [PR #61](https://github.com/warner/python-versioneer/pull/61) describes the issue from the Versioneer side in more detail. [pip PR#3176](https://github.com/pypa/pip/pull/3176) and [pip PR#3615](https://github.com/pypa/pip/pull/3615) contain work to improve pip to let Versioneer work correctly. Versioneer-0.16 and earlier only looked for a `.git` directory next to the `setup.cfg`, so subprojects were completely unsupported with those releases. ### Editable installs with setuptools <= 18.5 `setup.py develop` and `pip install --editable .` allow you to install a project into a virtualenv once, then continue editing the source code (and test) without re-installing after every change. "Entry-point scripts" (`setup(entry_points={"console_scripts": ..})`) are a convenient way to specify executable scripts that should be installed along with the python package. These both work as expected when using modern setuptools. When using setuptools-18.5 or earlier, however, certain operations will cause `pkg_resources.DistributionNotFound` errors when running the entrypoint script, which must be resolved by re-installing the package. This happens when the install happens with one version, then the egg_info data is regenerated while a different version is checked out. Many setup.py commands cause egg_info to be rebuilt (including `sdist`, `wheel`, and installing into a different virtualenv), so this can be surprising. [Bug #83](https://github.com/warner/python-versioneer/issues/83) describes this one, but upgrading to a newer version of setuptools should probably resolve it. ### Unicode version strings While Versioneer works (and is continually tested) with both Python 2 and Python 3, it is not entirely consistent with bytes-vs-unicode distinctions. Newer releases probably generate unicode version strings on py2. It's not clear that this is wrong, but it may be surprising for applications when then write these strings to a network connection or include them in bytes-oriented APIs like cryptographic checksums. [Bug #71](https://github.com/warner/python-versioneer/issues/71) investigates this question. ## Updating Versioneer To upgrade your project to a new release of Versioneer, do the following: * install the new Versioneer (`pip install -U versioneer` or equivalent) * edit `setup.cfg`, if necessary, to include any new configuration settings indicated by the release notes. See [UPGRADING](./UPGRADING.md) for details. * re-run `versioneer install` in your source tree, to replace `SRC/_version.py` * commit any changed files ## Future Directions This tool is designed to make it easily extended to other version-control systems: all VCS-specific components are in separate directories like src/git/ . The top-level `versioneer.py` script is assembled from these components by running make-versioneer.py . In the future, make-versioneer.py will take a VCS name as an argument, and will construct a version of `versioneer.py` that is specific to the given VCS. It might also take the configuration arguments that are currently provided manually during installation by editing setup.py . Alternatively, it might go the other direction and include code from all supported VCS systems, reducing the number of intermediate scripts. ## License To make Versioneer easier to embed, all its code is dedicated to the public domain. The `_version.py` that it creates is also in the public domain. Specifically, both are released under the Creative Commons "Public Domain Dedication" license (CC0-1.0), as described in https://creativecommons.org/publicdomain/zero/1.0/ . """ from __future__ import print_function try: import configparser except ImportError: import ConfigParser as configparser import errno import json import os import re import subprocess import sys class VersioneerConfig: """Container for Versioneer configuration parameters.""" def get_root(): """Get the project root directory. We require that all commands are run from the project root, i.e. the directory that contains setup.py, setup.cfg, and versioneer.py . """ root = os.path.realpath(os.path.abspath(os.getcwd())) setup_py = os.path.join(root, "setup.py") versioneer_py = os.path.join(root, "versioneer.py") if not (os.path.exists(setup_py) or os.path.exists(versioneer_py)): # allow 'python path/to/setup.py COMMAND' root = os.path.dirname(os.path.realpath(os.path.abspath(sys.argv[0]))) setup_py = os.path.join(root, "setup.py") versioneer_py = os.path.join(root, "versioneer.py") if not (os.path.exists(setup_py) or os.path.exists(versioneer_py)): err = ("Versioneer was unable to run the project root directory. " "Versioneer requires setup.py to be executed from " "its immediate directory (like 'python setup.py COMMAND'), " "or in a way that lets it use sys.argv[0] to find the root " "(like 'python path/to/setup.py COMMAND').") raise VersioneerBadRootError(err) try: # Certain runtime workflows (setup.py install/develop in a setuptools # tree) execute all dependencies in a single python process, so # "versioneer" may be imported multiple times, and python's shared # module-import table will cache the first one. So we can't use # os.path.dirname(__file__), as that will find whichever # versioneer.py was first imported, even in later projects. me = os.path.realpath(os.path.abspath(__file__)) me_dir = os.path.normcase(os.path.splitext(me)[0]) vsr_dir = os.path.normcase(os.path.splitext(versioneer_py)[0]) if me_dir != vsr_dir: print("Warning: build in %s is using versioneer.py from %s" % (os.path.dirname(me), versioneer_py)) except NameError: pass return root def get_config_from_root(root): """Read the project setup.cfg file to determine Versioneer config.""" # This might raise EnvironmentError (if setup.cfg is missing), or # configparser.NoSectionError (if it lacks a [versioneer] section), or # configparser.NoOptionError (if it lacks "VCS="). See the docstring at # the top of versioneer.py for instructions on writing your setup.cfg . setup_cfg = os.path.join(root, "setup.cfg") parser = configparser.SafeConfigParser() with open(setup_cfg, "r") as f: parser.readfp(f) VCS = parser.get("versioneer", "VCS") # mandatory def get(parser, name): if parser.has_option("versioneer", name): return parser.get("versioneer", name) return None cfg = VersioneerConfig() cfg.VCS = VCS cfg.style = get(parser, "style") or "" cfg.versionfile_source = get(parser, "versionfile_source") cfg.versionfile_build = get(parser, "versionfile_build") cfg.tag_prefix = get(parser, "tag_prefix") if cfg.tag_prefix in ("''", '""'): cfg.tag_prefix = "" cfg.parentdir_prefix = get(parser, "parentdir_prefix") cfg.verbose = get(parser, "verbose") return cfg class NotThisMethod(Exception): """Exception raised if a method is not valid for the current scenario.""" # these dictionaries contain VCS-specific tools LONG_VERSION_PY = {} HANDLERS = {} def register_vcs_handler(vcs, method): # decorator """Decorator to mark a method as the handler for a particular VCS.""" def decorate(f): """Store f in HANDLERS[vcs][method].""" if vcs not in HANDLERS: HANDLERS[vcs] = {} HANDLERS[vcs][method] = f return f return decorate def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, env=None): """Call the given command(s).""" assert isinstance(commands, list) p = None for c in commands: try: dispcmd = str([c] + args) # remember shell=False, so use git.cmd on windows, not just git p = subprocess.Popen([c] + args, cwd=cwd, env=env, stdout=subprocess.PIPE, stderr=(subprocess.PIPE if hide_stderr else None)) break except EnvironmentError: e = sys.exc_info()[1] if e.errno == errno.ENOENT: continue if verbose: print("unable to run %s" % dispcmd) print(e) return None, None else: if verbose: print("unable to find command, tried %s" % (commands,)) return None, None stdout = p.communicate()[0].strip() if sys.version_info[0] >= 3: stdout = stdout.decode() if p.returncode != 0: if verbose: print("unable to run %s (error)" % dispcmd) print("stdout was %s" % stdout) return None, p.returncode return stdout, p.returncode LONG_VERSION_PY['git'] = ''' # This file helps to compute a version number in source trees obtained from # git-archive tarball (such as those provided by githubs download-from-tag # feature). Distribution tarballs (built by setup.py sdist) and build # directories (produced by setup.py build) will contain a much shorter file # that just contains the computed version number. # This file is released into the public domain. Generated by # versioneer-0.18 (https://github.com/warner/python-versioneer) """Git implementation of _version.py.""" import errno import os import re import subprocess import sys def get_keywords(): """Get the keywords needed to look up the version information.""" # these strings will be replaced by git during git-archive. # setup.py/versioneer.py will grep for the variable names, so they must # each be defined on a line of their own. _version.py will just call # get_keywords(). git_refnames = "%(DOLLAR)sFormat:%%d%(DOLLAR)s" git_full = "%(DOLLAR)sFormat:%%H%(DOLLAR)s" git_date = "%(DOLLAR)sFormat:%%ci%(DOLLAR)s" keywords = {"refnames": git_refnames, "full": git_full, "date": git_date} return keywords class VersioneerConfig: """Container for Versioneer configuration parameters.""" def get_config(): """Create, populate and return the VersioneerConfig() object.""" # these strings are filled in when 'setup.py versioneer' creates # _version.py cfg = VersioneerConfig() cfg.VCS = "git" cfg.style = "%(STYLE)s" cfg.tag_prefix = "%(TAG_PREFIX)s" cfg.parentdir_prefix = "%(PARENTDIR_PREFIX)s" cfg.versionfile_source = "%(VERSIONFILE_SOURCE)s" cfg.verbose = False return cfg class NotThisMethod(Exception): """Exception raised if a method is not valid for the current scenario.""" LONG_VERSION_PY = {} HANDLERS = {} def register_vcs_handler(vcs, method): # decorator """Decorator to mark a method as the handler for a particular VCS.""" def decorate(f): """Store f in HANDLERS[vcs][method].""" if vcs not in HANDLERS: HANDLERS[vcs] = {} HANDLERS[vcs][method] = f return f return decorate def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, env=None): """Call the given command(s).""" assert isinstance(commands, list) p = None for c in commands: try: dispcmd = str([c] + args) # remember shell=False, so use git.cmd on windows, not just git p = subprocess.Popen([c] + args, cwd=cwd, env=env, stdout=subprocess.PIPE, stderr=(subprocess.PIPE if hide_stderr else None)) break except EnvironmentError: e = sys.exc_info()[1] if e.errno == errno.ENOENT: continue if verbose: print("unable to run %%s" %% dispcmd) print(e) return None, None else: if verbose: print("unable to find command, tried %%s" %% (commands,)) return None, None stdout = p.communicate()[0].strip() if sys.version_info[0] >= 3: stdout = stdout.decode() if p.returncode != 0: if verbose: print("unable to run %%s (error)" %% dispcmd) print("stdout was %%s" %% stdout) return None, p.returncode return stdout, p.returncode def versions_from_parentdir(parentdir_prefix, root, verbose): """Try to determine the version from the parent directory name. Source tarballs conventionally unpack into a directory that includes both the project name and a version string. We will also support searching up two directory levels for an appropriately named parent directory """ rootdirs = [] for i in range(3): dirname = os.path.basename(root) if dirname.startswith(parentdir_prefix): return {"version": dirname[len(parentdir_prefix):], "full-revisionid": None, "dirty": False, "error": None, "date": None} else: rootdirs.append(root) root = os.path.dirname(root) # up a level if verbose: print("Tried directories %%s but none started with prefix %%s" %% (str(rootdirs), parentdir_prefix)) raise NotThisMethod("rootdir doesn't start with parentdir_prefix") @register_vcs_handler("git", "get_keywords") def git_get_keywords(versionfile_abs): """Extract version information from the given file.""" # the code embedded in _version.py can just fetch the value of these # keywords. When used from setup.py, we don't want to import _version.py, # so we do it with a regexp instead. This function is not used from # _version.py. keywords = {} try: f = open(versionfile_abs, "r") for line in f.readlines(): if line.strip().startswith("git_refnames ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["refnames"] = mo.group(1) if line.strip().startswith("git_full ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["full"] = mo.group(1) if line.strip().startswith("git_date ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["date"] = mo.group(1) f.close() except EnvironmentError: pass return keywords @register_vcs_handler("git", "keywords") def git_versions_from_keywords(keywords, tag_prefix, verbose): """Get version information from git keywords.""" if not keywords: raise NotThisMethod("no keywords at all, weird") date = keywords.get("date") if date is not None: # git-2.2.0 added "%%cI", which expands to an ISO-8601 -compliant # datestamp. However we prefer "%%ci" (which expands to an "ISO-8601 # -like" string, which we must then edit to make compliant), because # it's been around since git-1.5.3, and it's too difficult to # discover which version we're using, or to work around using an # older one. date = date.strip().replace(" ", "T", 1).replace(" ", "", 1) refnames = keywords["refnames"].strip() if refnames.startswith("$Format"): if verbose: print("keywords are unexpanded, not using") raise NotThisMethod("unexpanded keywords, not a git-archive tarball") refs = set([r.strip() for r in refnames.strip("()").split(",")]) # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of # just "foo-1.0". If we see a "tag: " prefix, prefer those. TAG = "tag: " tags = set([r[len(TAG):] for r in refs if r.startswith(TAG)]) if not tags: # Either we're using git < 1.8.3, or there really are no tags. We use # a heuristic: assume all version tags have a digit. The old git %%d # expansion behaves like git log --decorate=short and strips out the # refs/heads/ and refs/tags/ prefixes that would let us distinguish # between branches and tags. By ignoring refnames without digits, we # filter out many common branch names like "release" and # "stabilization", as well as "HEAD" and "master". tags = set([r for r in refs if re.search(r'\d', r)]) if verbose: print("discarding '%%s', no digits" %% ",".join(refs - tags)) if verbose: print("likely tags: %%s" %% ",".join(sorted(tags))) for ref in sorted(tags): # sorting will prefer e.g. "2.0" over "2.0rc1" if ref.startswith(tag_prefix): r = ref[len(tag_prefix):] if verbose: print("picking %%s" %% r) return {"version": r, "full-revisionid": keywords["full"].strip(), "dirty": False, "error": None, "date": date} # no suitable tags, so version is "0+unknown", but full hex is still there if verbose: print("no suitable tags, using unknown + full revision id") return {"version": "0+unknown", "full-revisionid": keywords["full"].strip(), "dirty": False, "error": "no suitable tags", "date": None} @register_vcs_handler("git", "pieces_from_vcs") def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): """Get version from 'git describe' in the root of the source tree. This only gets called if the git-archive 'subst' keywords were *not* expanded, and _version.py hasn't already been rewritten with a short version string, meaning we're inside a checked out source tree. """ GITS = ["git"] if sys.platform == "win32": GITS = ["git.cmd", "git.exe"] out, rc = run_command(GITS, ["rev-parse", "--git-dir"], cwd=root, hide_stderr=True) if rc != 0: if verbose: print("Directory %%s not under git control" %% root) raise NotThisMethod("'git rev-parse --git-dir' returned error") # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] # if there isn't one, this yields HEX[-dirty] (no NUM) describe_out, rc = run_command(GITS, ["describe", "--tags", "--dirty", "--always", "--long", "--match", "%%s*" %% tag_prefix], cwd=root) # --long was added in git-1.5.5 if describe_out is None: raise NotThisMethod("'git describe' failed") describe_out = describe_out.strip() full_out, rc = run_command(GITS, ["rev-parse", "HEAD"], cwd=root) if full_out is None: raise NotThisMethod("'git rev-parse' failed") full_out = full_out.strip() pieces = {} pieces["long"] = full_out pieces["short"] = full_out[:7] # maybe improved later pieces["error"] = None # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] # TAG might have hyphens. git_describe = describe_out # look for -dirty suffix dirty = git_describe.endswith("-dirty") pieces["dirty"] = dirty if dirty: git_describe = git_describe[:git_describe.rindex("-dirty")] # now we have TAG-NUM-gHEX or HEX if "-" in git_describe: # TAG-NUM-gHEX mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe) if not mo: # unparseable. Maybe git-describe is misbehaving? pieces["error"] = ("unable to parse git-describe output: '%%s'" %% describe_out) return pieces # tag full_tag = mo.group(1) if not full_tag.startswith(tag_prefix): if verbose: fmt = "tag '%%s' doesn't start with prefix '%%s'" print(fmt %% (full_tag, tag_prefix)) pieces["error"] = ("tag '%%s' doesn't start with prefix '%%s'" %% (full_tag, tag_prefix)) return pieces pieces["closest-tag"] = full_tag[len(tag_prefix):] # distance: number of commits since tag pieces["distance"] = int(mo.group(2)) # commit: short hex revision ID pieces["short"] = mo.group(3) else: # HEX: no tags pieces["closest-tag"] = None count_out, rc = run_command(GITS, ["rev-list", "HEAD", "--count"], cwd=root) pieces["distance"] = int(count_out) # total number of commits # commit date: see ISO-8601 comment in git_versions_from_keywords() date = run_command(GITS, ["show", "-s", "--format=%%ci", "HEAD"], cwd=root)[0].strip() pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1) return pieces def plus_or_dot(pieces): """Return a + if we don't already have one, else return a .""" if "+" in pieces.get("closest-tag", ""): return "." return "+" def render_pep440(pieces): """Build up version string, with post-release "local version identifier". Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you get a tagged build and then dirty it, you'll get TAG+0.gHEX.dirty Exceptions: 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += plus_or_dot(pieces) rendered += "%%d.g%%s" %% (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" else: # exception #1 rendered = "0+untagged.%%d.g%%s" %% (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" return rendered def render_pep440_pre(pieces): """TAG[.post.devDISTANCE] -- No -dirty. Exceptions: 1: no tags. 0.post.devDISTANCE """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"]: rendered += ".post.dev%%d" %% pieces["distance"] else: # exception #1 rendered = "0.post.dev%%d" %% pieces["distance"] return rendered def render_pep440_post(pieces): """TAG[.postDISTANCE[.dev0]+gHEX] . The ".dev0" means dirty. Note that .dev0 sorts backwards (a dirty tree will appear "older" than the corresponding clean one), but you shouldn't be releasing software with -dirty anyways. Exceptions: 1: no tags. 0.postDISTANCE[.dev0] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += ".post%%d" %% pieces["distance"] if pieces["dirty"]: rendered += ".dev0" rendered += plus_or_dot(pieces) rendered += "g%%s" %% pieces["short"] else: # exception #1 rendered = "0.post%%d" %% pieces["distance"] if pieces["dirty"]: rendered += ".dev0" rendered += "+g%%s" %% pieces["short"] return rendered def render_pep440_old(pieces): """TAG[.postDISTANCE[.dev0]] . The ".dev0" means dirty. Eexceptions: 1: no tags. 0.postDISTANCE[.dev0] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += ".post%%d" %% pieces["distance"] if pieces["dirty"]: rendered += ".dev0" else: # exception #1 rendered = "0.post%%d" %% pieces["distance"] if pieces["dirty"]: rendered += ".dev0" return rendered def render_git_describe(pieces): """TAG[-DISTANCE-gHEX][-dirty]. Like 'git describe --tags --dirty --always'. Exceptions: 1: no tags. HEX[-dirty] (note: no 'g' prefix) """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"]: rendered += "-%%d-g%%s" %% (pieces["distance"], pieces["short"]) else: # exception #1 rendered = pieces["short"] if pieces["dirty"]: rendered += "-dirty" return rendered def render_git_describe_long(pieces): """TAG-DISTANCE-gHEX[-dirty]. Like 'git describe --tags --dirty --always -long'. The distance/hash is unconditional. Exceptions: 1: no tags. HEX[-dirty] (note: no 'g' prefix) """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] rendered += "-%%d-g%%s" %% (pieces["distance"], pieces["short"]) else: # exception #1 rendered = pieces["short"] if pieces["dirty"]: rendered += "-dirty" return rendered def render(pieces, style): """Render the given version pieces into the requested style.""" if pieces["error"]: return {"version": "unknown", "full-revisionid": pieces.get("long"), "dirty": None, "error": pieces["error"], "date": None} if not style or style == "default": style = "pep440" # the default if style == "pep440": rendered = render_pep440(pieces) elif style == "pep440-pre": rendered = render_pep440_pre(pieces) elif style == "pep440-post": rendered = render_pep440_post(pieces) elif style == "pep440-old": rendered = render_pep440_old(pieces) elif style == "git-describe": rendered = render_git_describe(pieces) elif style == "git-describe-long": rendered = render_git_describe_long(pieces) else: raise ValueError("unknown style '%%s'" %% style) return {"version": rendered, "full-revisionid": pieces["long"], "dirty": pieces["dirty"], "error": None, "date": pieces.get("date")} def get_versions(): """Get version information or return default if unable to do so.""" # I am in _version.py, which lives at ROOT/VERSIONFILE_SOURCE. If we have # __file__, we can work backwards from there to the root. Some # py2exe/bbfreeze/non-CPython implementations don't do __file__, in which # case we can only use expanded keywords. cfg = get_config() verbose = cfg.verbose try: return git_versions_from_keywords(get_keywords(), cfg.tag_prefix, verbose) except NotThisMethod: pass try: root = os.path.realpath(__file__) # versionfile_source is the relative path from the top of the source # tree (where the .git directory might live) to this file. Invert # this to find the root from __file__. for i in cfg.versionfile_source.split('/'): root = os.path.dirname(root) except NameError: return {"version": "0+unknown", "full-revisionid": None, "dirty": None, "error": "unable to find root of source tree", "date": None} try: pieces = git_pieces_from_vcs(cfg.tag_prefix, root, verbose) return render(pieces, cfg.style) except NotThisMethod: pass try: if cfg.parentdir_prefix: return versions_from_parentdir(cfg.parentdir_prefix, root, verbose) except NotThisMethod: pass return {"version": "0+unknown", "full-revisionid": None, "dirty": None, "error": "unable to compute version", "date": None} ''' @register_vcs_handler("git", "get_keywords") def git_get_keywords(versionfile_abs): """Extract version information from the given file.""" # the code embedded in _version.py can just fetch the value of these # keywords. When used from setup.py, we don't want to import _version.py, # so we do it with a regexp instead. This function is not used from # _version.py. keywords = {} try: f = open(versionfile_abs, "r") for line in f.readlines(): if line.strip().startswith("git_refnames ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["refnames"] = mo.group(1) if line.strip().startswith("git_full ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["full"] = mo.group(1) if line.strip().startswith("git_date ="): mo = re.search(r'=\s*"(.*)"', line) if mo: keywords["date"] = mo.group(1) f.close() except EnvironmentError: pass return keywords @register_vcs_handler("git", "keywords") def git_versions_from_keywords(keywords, tag_prefix, verbose): """Get version information from git keywords.""" if not keywords: raise NotThisMethod("no keywords at all, weird") date = keywords.get("date") if date is not None: # git-2.2.0 added "%cI", which expands to an ISO-8601 -compliant # datestamp. However we prefer "%ci" (which expands to an "ISO-8601 # -like" string, which we must then edit to make compliant), because # it's been around since git-1.5.3, and it's too difficult to # discover which version we're using, or to work around using an # older one. date = date.strip().replace(" ", "T", 1).replace(" ", "", 1) refnames = keywords["refnames"].strip() if refnames.startswith("$Format"): if verbose: print("keywords are unexpanded, not using") raise NotThisMethod("unexpanded keywords, not a git-archive tarball") refs = set([r.strip() for r in refnames.strip("()").split(",")]) # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of # just "foo-1.0". If we see a "tag: " prefix, prefer those. TAG = "tag: " tags = set([r[len(TAG):] for r in refs if r.startswith(TAG)]) if not tags: # Either we're using git < 1.8.3, or there really are no tags. We use # a heuristic: assume all version tags have a digit. The old git %d # expansion behaves like git log --decorate=short and strips out the # refs/heads/ and refs/tags/ prefixes that would let us distinguish # between branches and tags. By ignoring refnames without digits, we # filter out many common branch names like "release" and # "stabilization", as well as "HEAD" and "master". tags = set([r for r in refs if re.search(r'\d', r)]) if verbose: print("discarding '%s', no digits" % ",".join(refs - tags)) if verbose: print("likely tags: %s" % ",".join(sorted(tags))) for ref in sorted(tags): # sorting will prefer e.g. "2.0" over "2.0rc1" if ref.startswith(tag_prefix): r = ref[len(tag_prefix):] if verbose: print("picking %s" % r) return {"version": r, "full-revisionid": keywords["full"].strip(), "dirty": False, "error": None, "date": date} # no suitable tags, so version is "0+unknown", but full hex is still there if verbose: print("no suitable tags, using unknown + full revision id") return {"version": "0+unknown", "full-revisionid": keywords["full"].strip(), "dirty": False, "error": "no suitable tags", "date": None} @register_vcs_handler("git", "pieces_from_vcs") def git_pieces_from_vcs(tag_prefix, root, verbose, run_command=run_command): """Get version from 'git describe' in the root of the source tree. This only gets called if the git-archive 'subst' keywords were *not* expanded, and _version.py hasn't already been rewritten with a short version string, meaning we're inside a checked out source tree. """ GITS = ["git"] if sys.platform == "win32": GITS = ["git.cmd", "git.exe"] out, rc = run_command(GITS, ["rev-parse", "--git-dir"], cwd=root, hide_stderr=True) if rc != 0: if verbose: print("Directory %s not under git control" % root) raise NotThisMethod("'git rev-parse --git-dir' returned error") # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] # if there isn't one, this yields HEX[-dirty] (no NUM) describe_out, rc = run_command(GITS, ["describe", "--tags", "--dirty", "--always", "--long", "--match", "%s*" % tag_prefix], cwd=root) # --long was added in git-1.5.5 if describe_out is None: raise NotThisMethod("'git describe' failed") describe_out = describe_out.strip() full_out, rc = run_command(GITS, ["rev-parse", "HEAD"], cwd=root) if full_out is None: raise NotThisMethod("'git rev-parse' failed") full_out = full_out.strip() pieces = {} pieces["long"] = full_out pieces["short"] = full_out[:7] # maybe improved later pieces["error"] = None # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] # TAG might have hyphens. git_describe = describe_out # look for -dirty suffix dirty = git_describe.endswith("-dirty") pieces["dirty"] = dirty if dirty: git_describe = git_describe[:git_describe.rindex("-dirty")] # now we have TAG-NUM-gHEX or HEX if "-" in git_describe: # TAG-NUM-gHEX mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe) if not mo: # unparseable. Maybe git-describe is misbehaving? pieces["error"] = ("unable to parse git-describe output: '%s'" % describe_out) return pieces # tag full_tag = mo.group(1) if not full_tag.startswith(tag_prefix): if verbose: fmt = "tag '%s' doesn't start with prefix '%s'" print(fmt % (full_tag, tag_prefix)) pieces["error"] = ("tag '%s' doesn't start with prefix '%s'" % (full_tag, tag_prefix)) return pieces pieces["closest-tag"] = full_tag[len(tag_prefix):] # distance: number of commits since tag pieces["distance"] = int(mo.group(2)) # commit: short hex revision ID pieces["short"] = mo.group(3) else: # HEX: no tags pieces["closest-tag"] = None count_out, rc = run_command(GITS, ["rev-list", "HEAD", "--count"], cwd=root) pieces["distance"] = int(count_out) # total number of commits # commit date: see ISO-8601 comment in git_versions_from_keywords() date = run_command(GITS, ["show", "-s", "--format=%ci", "HEAD"], cwd=root)[0].strip() pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1) return pieces def do_vcs_install(manifest_in, versionfile_source, ipy): """Git-specific installation logic for Versioneer. For Git, this means creating/changing .gitattributes to mark _version.py for export-subst keyword substitution. """ GITS = ["git"] if sys.platform == "win32": GITS = ["git.cmd", "git.exe"] files = [manifest_in, versionfile_source] if ipy: files.append(ipy) try: me = __file__ if me.endswith(".pyc") or me.endswith(".pyo"): me = os.path.splitext(me)[0] + ".py" versioneer_file = os.path.relpath(me) except NameError: versioneer_file = "versioneer.py" files.append(versioneer_file) present = False try: f = open(".gitattributes", "r") for line in f.readlines(): if line.strip().startswith(versionfile_source): if "export-subst" in line.strip().split()[1:]: present = True f.close() except EnvironmentError: pass if not present: f = open(".gitattributes", "a+") f.write("%s export-subst\n" % versionfile_source) f.close() files.append(".gitattributes") run_command(GITS, ["add", "--"] + files) def versions_from_parentdir(parentdir_prefix, root, verbose): """Try to determine the version from the parent directory name. Source tarballs conventionally unpack into a directory that includes both the project name and a version string. We will also support searching up two directory levels for an appropriately named parent directory """ rootdirs = [] for i in range(3): dirname = os.path.basename(root) if dirname.startswith(parentdir_prefix): return {"version": dirname[len(parentdir_prefix):], "full-revisionid": None, "dirty": False, "error": None, "date": None} else: rootdirs.append(root) root = os.path.dirname(root) # up a level if verbose: print("Tried directories %s but none started with prefix %s" % (str(rootdirs), parentdir_prefix)) raise NotThisMethod("rootdir doesn't start with parentdir_prefix") SHORT_VERSION_PY = """ # This file was generated by 'versioneer.py' (0.18) from # revision-control system data, or from the parent directory name of an # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. import json version_json = ''' %s ''' # END VERSION_JSON def get_versions(): return json.loads(version_json) """ def versions_from_file(filename): """Try to determine the version from _version.py if present.""" try: with open(filename) as f: contents = f.read() except EnvironmentError: raise NotThisMethod("unable to read _version.py") mo = re.search(r"version_json = '''\n(.*)''' # END VERSION_JSON", contents, re.M | re.S) if not mo: mo = re.search(r"version_json = '''\r\n(.*)''' # END VERSION_JSON", contents, re.M | re.S) if not mo: raise NotThisMethod("no version_json in _version.py") return json.loads(mo.group(1)) def write_to_version_file(filename, versions): """Write the given version number to the given _version.py file.""" os.unlink(filename) contents = json.dumps(versions, sort_keys=True, indent=1, separators=(",", ": ")) with open(filename, "w") as f: f.write(SHORT_VERSION_PY % contents) print("set %s to '%s'" % (filename, versions["version"])) def plus_or_dot(pieces): """Return a + if we don't already have one, else return a .""" if "+" in pieces.get("closest-tag", ""): return "." return "+" def render_pep440(pieces): """Build up version string, with post-release "local version identifier". Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you get a tagged build and then dirty it, you'll get TAG+0.gHEX.dirty Exceptions: 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += plus_or_dot(pieces) rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" else: # exception #1 rendered = "0+untagged.%d.g%s" % (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" return rendered def render_pep440_pre(pieces): """TAG[.post.devDISTANCE] -- No -dirty. Exceptions: 1: no tags. 0.post.devDISTANCE """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"]: rendered += ".post.dev%d" % pieces["distance"] else: # exception #1 rendered = "0.post.dev%d" % pieces["distance"] return rendered def render_pep440_post(pieces): """TAG[.postDISTANCE[.dev0]+gHEX] . The ".dev0" means dirty. Note that .dev0 sorts backwards (a dirty tree will appear "older" than the corresponding clean one), but you shouldn't be releasing software with -dirty anyways. Exceptions: 1: no tags. 0.postDISTANCE[.dev0] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += ".post%d" % pieces["distance"] if pieces["dirty"]: rendered += ".dev0" rendered += plus_or_dot(pieces) rendered += "g%s" % pieces["short"] else: # exception #1 rendered = "0.post%d" % pieces["distance"] if pieces["dirty"]: rendered += ".dev0" rendered += "+g%s" % pieces["short"] return rendered def render_pep440_old(pieces): """TAG[.postDISTANCE[.dev0]] . The ".dev0" means dirty. Eexceptions: 1: no tags. 0.postDISTANCE[.dev0] """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"] or pieces["dirty"]: rendered += ".post%d" % pieces["distance"] if pieces["dirty"]: rendered += ".dev0" else: # exception #1 rendered = "0.post%d" % pieces["distance"] if pieces["dirty"]: rendered += ".dev0" return rendered def render_git_describe(pieces): """TAG[-DISTANCE-gHEX][-dirty]. Like 'git describe --tags --dirty --always'. Exceptions: 1: no tags. HEX[-dirty] (note: no 'g' prefix) """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] if pieces["distance"]: rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) else: # exception #1 rendered = pieces["short"] if pieces["dirty"]: rendered += "-dirty" return rendered def render_git_describe_long(pieces): """TAG-DISTANCE-gHEX[-dirty]. Like 'git describe --tags --dirty --always -long'. The distance/hash is unconditional. Exceptions: 1: no tags. HEX[-dirty] (note: no 'g' prefix) """ if pieces["closest-tag"]: rendered = pieces["closest-tag"] rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) else: # exception #1 rendered = pieces["short"] if pieces["dirty"]: rendered += "-dirty" return rendered def render(pieces, style): """Render the given version pieces into the requested style.""" if pieces["error"]: return {"version": "unknown", "full-revisionid": pieces.get("long"), "dirty": None, "error": pieces["error"], "date": None} if not style or style == "default": style = "pep440" # the default if style == "pep440": rendered = render_pep440(pieces) elif style == "pep440-pre": rendered = render_pep440_pre(pieces) elif style == "pep440-post": rendered = render_pep440_post(pieces) elif style == "pep440-old": rendered = render_pep440_old(pieces) elif style == "git-describe": rendered = render_git_describe(pieces) elif style == "git-describe-long": rendered = render_git_describe_long(pieces) else: raise ValueError("unknown style '%s'" % style) return {"version": rendered, "full-revisionid": pieces["long"], "dirty": pieces["dirty"], "error": None, "date": pieces.get("date")} class VersioneerBadRootError(Exception): """The project root directory is unknown or missing key files.""" def get_versions(verbose=False): """Get the project version from whatever source is available. Returns dict with two keys: 'version' and 'full'. """ if "versioneer" in sys.modules: # see the discussion in cmdclass.py:get_cmdclass() del sys.modules["versioneer"] root = get_root() cfg = get_config_from_root(root) assert cfg.VCS is not None, "please set [versioneer]VCS= in setup.cfg" handlers = HANDLERS.get(cfg.VCS) assert handlers, "unrecognized VCS '%s'" % cfg.VCS verbose = verbose or cfg.verbose assert cfg.versionfile_source is not None, \ "please set versioneer.versionfile_source" assert cfg.tag_prefix is not None, "please set versioneer.tag_prefix" versionfile_abs = os.path.join(root, cfg.versionfile_source) # extract version from first of: _version.py, VCS command (e.g. 'git # describe'), parentdir. This is meant to work for developers using a # source checkout, for users of a tarball created by 'setup.py sdist', # and for users of a tarball/zipball created by 'git archive' or github's # download-from-tag feature or the equivalent in other VCSes. get_keywords_f = handlers.get("get_keywords") from_keywords_f = handlers.get("keywords") if get_keywords_f and from_keywords_f: try: keywords = get_keywords_f(versionfile_abs) ver = from_keywords_f(keywords, cfg.tag_prefix, verbose) if verbose: print("got version from expanded keyword %s" % ver) return ver except NotThisMethod: pass try: ver = versions_from_file(versionfile_abs) if verbose: print("got version from file %s %s" % (versionfile_abs, ver)) return ver except NotThisMethod: pass from_vcs_f = handlers.get("pieces_from_vcs") if from_vcs_f: try: pieces = from_vcs_f(cfg.tag_prefix, root, verbose) ver = render(pieces, cfg.style) if verbose: print("got version from VCS %s" % ver) return ver except NotThisMethod: pass try: if cfg.parentdir_prefix: ver = versions_from_parentdir(cfg.parentdir_prefix, root, verbose) if verbose: print("got version from parentdir %s" % ver) return ver except NotThisMethod: pass if verbose: print("unable to compute version") return {"version": "0+unknown", "full-revisionid": None, "dirty": None, "error": "unable to compute version", "date": None} def get_version(): """Get the short version string for this project.""" return get_versions()["version"] def get_cmdclass(): """Get the custom setuptools/distutils subclasses used by Versioneer.""" if "versioneer" in sys.modules: del sys.modules["versioneer"] # this fixes the "python setup.py develop" case (also 'install' and # 'easy_install .'), in which subdependencies of the main project are # built (using setup.py bdist_egg) in the same python process. Assume # a main project A and a dependency B, which use different versions # of Versioneer. A's setup.py imports A's Versioneer, leaving it in # sys.modules by the time B's setup.py is executed, causing B to run # with the wrong versioneer. Setuptools wraps the sub-dep builds in a # sandbox that restores sys.modules to it's pre-build state, so the # parent is protected against the child's "import versioneer". By # removing ourselves from sys.modules here, before the child build # happens, we protect the child from the parent's versioneer too. # Also see https://github.com/warner/python-versioneer/issues/52 cmds = {} # we add "version" to both distutils and setuptools from distutils.core import Command class cmd_version(Command): description = "report generated version string" user_options = [] boolean_options = [] def initialize_options(self): pass def finalize_options(self): pass def run(self): vers = get_versions(verbose=True) print("Version: %s" % vers["version"]) print(" full-revisionid: %s" % vers.get("full-revisionid")) print(" dirty: %s" % vers.get("dirty")) print(" date: %s" % vers.get("date")) if vers["error"]: print(" error: %s" % vers["error"]) cmds["version"] = cmd_version # we override "build_py" in both distutils and setuptools # # most invocation pathways end up running build_py: # distutils/build -> build_py # distutils/install -> distutils/build ->.. # setuptools/bdist_wheel -> distutils/install ->.. # setuptools/bdist_egg -> distutils/install_lib -> build_py # setuptools/install -> bdist_egg ->.. # setuptools/develop -> ? # pip install: # copies source tree to a tempdir before running egg_info/etc # if .git isn't copied too, 'git describe' will fail # then does setup.py bdist_wheel, or sometimes setup.py install # setup.py egg_info -> ? # we override different "build_py" commands for both environments if "setuptools" in sys.modules: from setuptools.command.build_py import build_py as _build_py else: from distutils.command.build_py import build_py as _build_py class cmd_build_py(_build_py): def run(self): root = get_root() cfg = get_config_from_root(root) versions = get_versions() _build_py.run(self) # now locate _version.py in the new build/ directory and replace # it with an updated value if cfg.versionfile_build: target_versionfile = os.path.join(self.build_lib, cfg.versionfile_build) print("UPDATING %s" % target_versionfile) write_to_version_file(target_versionfile, versions) cmds["build_py"] = cmd_build_py if "cx_Freeze" in sys.modules: # cx_freeze enabled? from cx_Freeze.dist import build_exe as _build_exe # nczeczulin reports that py2exe won't like the pep440-style string # as FILEVERSION, but it can be used for PRODUCTVERSION, e.g. # setup(console=[{ # "version": versioneer.get_version().split("+", 1)[0], # FILEVERSION # "product_version": versioneer.get_version(), # ... class cmd_build_exe(_build_exe): def run(self): root = get_root() cfg = get_config_from_root(root) versions = get_versions() target_versionfile = cfg.versionfile_source print("UPDATING %s" % target_versionfile) write_to_version_file(target_versionfile, versions) _build_exe.run(self) os.unlink(target_versionfile) with open(cfg.versionfile_source, "w") as f: LONG = LONG_VERSION_PY[cfg.VCS] f.write(LONG % {"DOLLAR": "$", "STYLE": cfg.style, "TAG_PREFIX": cfg.tag_prefix, "PARENTDIR_PREFIX": cfg.parentdir_prefix, "VERSIONFILE_SOURCE": cfg.versionfile_source, }) cmds["build_exe"] = cmd_build_exe del cmds["build_py"] if 'py2exe' in sys.modules: # py2exe enabled? try: from py2exe.distutils_buildexe import py2exe as _py2exe # py3 except ImportError: from py2exe.build_exe import py2exe as _py2exe # py2 class cmd_py2exe(_py2exe): def run(self): root = get_root() cfg = get_config_from_root(root) versions = get_versions() target_versionfile = cfg.versionfile_source print("UPDATING %s" % target_versionfile) write_to_version_file(target_versionfile, versions) _py2exe.run(self) os.unlink(target_versionfile) with open(cfg.versionfile_source, "w") as f: LONG = LONG_VERSION_PY[cfg.VCS] f.write(LONG % {"DOLLAR": "$", "STYLE": cfg.style, "TAG_PREFIX": cfg.tag_prefix, "PARENTDIR_PREFIX": cfg.parentdir_prefix, "VERSIONFILE_SOURCE": cfg.versionfile_source, }) cmds["py2exe"] = cmd_py2exe # we override different "sdist" commands for both environments if "setuptools" in sys.modules: from setuptools.command.sdist import sdist as _sdist else: from distutils.command.sdist import sdist as _sdist class cmd_sdist(_sdist): def run(self): versions = get_versions() self._versioneer_generated_versions = versions # unless we update this, the command will keep using the old # version self.distribution.metadata.version = versions["version"] return _sdist.run(self) def make_release_tree(self, base_dir, files): root = get_root() cfg = get_config_from_root(root) _sdist.make_release_tree(self, base_dir, files) # now locate _version.py in the new base_dir directory # (remembering that it may be a hardlink) and replace it with an # updated value target_versionfile = os.path.join(base_dir, cfg.versionfile_source) print("UPDATING %s" % target_versionfile) write_to_version_file(target_versionfile, self._versioneer_generated_versions) cmds["sdist"] = cmd_sdist return cmds CONFIG_ERROR = """ setup.cfg is missing the necessary Versioneer configuration. You need a section like: [versioneer] VCS = git style = pep440 versionfile_source = src/myproject/_version.py versionfile_build = myproject/_version.py tag_prefix = parentdir_prefix = myproject- You will also need to edit your setup.py to use the results: import versioneer setup(version=versioneer.get_version(), cmdclass=versioneer.get_cmdclass(), ...) Please read the docstring in ./versioneer.py for configuration instructions, edit setup.cfg, and re-run the installer or 'python versioneer.py setup'. """ SAMPLE_CONFIG = """ # See the docstring in versioneer.py for instructions. Note that you must # re-run 'versioneer.py setup' after changing this section, and commit the # resulting files. [versioneer] #VCS = git #style = pep440 #versionfile_source = #versionfile_build = #tag_prefix = #parentdir_prefix = """ INIT_PY_SNIPPET = """ from ._version import get_versions __version__ = get_versions()['version'] del get_versions """ def do_setup(): """Main VCS-independent setup function for installing Versioneer.""" root = get_root() try: cfg = get_config_from_root(root) except (EnvironmentError, configparser.NoSectionError, configparser.NoOptionError) as e: if isinstance(e, (EnvironmentError, configparser.NoSectionError)): print("Adding sample versioneer config to setup.cfg", file=sys.stderr) with open(os.path.join(root, "setup.cfg"), "a") as f: f.write(SAMPLE_CONFIG) print(CONFIG_ERROR, file=sys.stderr) return 1 print(" creating %s" % cfg.versionfile_source) with open(cfg.versionfile_source, "w") as f: LONG = LONG_VERSION_PY[cfg.VCS] f.write(LONG % {"DOLLAR": "$", "STYLE": cfg.style, "TAG_PREFIX": cfg.tag_prefix, "PARENTDIR_PREFIX": cfg.parentdir_prefix, "VERSIONFILE_SOURCE": cfg.versionfile_source, }) ipy = os.path.join(os.path.dirname(cfg.versionfile_source), "__init__.py") if os.path.exists(ipy): try: with open(ipy, "r") as f: old = f.read() except EnvironmentError: old = "" if INIT_PY_SNIPPET not in old: print(" appending to %s" % ipy) with open(ipy, "a") as f: f.write(INIT_PY_SNIPPET) else: print(" %s unmodified" % ipy) else: print(" %s doesn't exist, ok" % ipy) ipy = None # Make sure both the top-level "versioneer.py" and versionfile_source # (PKG/_version.py, used by runtime code) are in MANIFEST.in, so # they'll be copied into source distributions. Pip won't be able to # install the package without this. manifest_in = os.path.join(root, "MANIFEST.in") simple_includes = set() try: with open(manifest_in, "r") as f: for line in f: if line.startswith("include "): for include in line.split()[1:]: simple_includes.add(include) except EnvironmentError: pass # That doesn't cover everything MANIFEST.in can do # (http://docs.python.org/2/distutils/sourcedist.html#commands), so # it might give some false negatives. Appending redundant 'include' # lines is safe, though. if "versioneer.py" not in simple_includes: print(" appending 'versioneer.py' to MANIFEST.in") with open(manifest_in, "a") as f: f.write("include versioneer.py\n") else: print(" 'versioneer.py' already in MANIFEST.in") if cfg.versionfile_source not in simple_includes: print(" appending versionfile_source ('%s') to MANIFEST.in" % cfg.versionfile_source) with open(manifest_in, "a") as f: f.write("include %s\n" % cfg.versionfile_source) else: print(" versionfile_source already in MANIFEST.in") # Make VCS-specific changes. For git, this means creating/changing # .gitattributes to mark _version.py for export-subst keyword # substitution. do_vcs_install(manifest_in, cfg.versionfile_source, ipy) return 0 def scan_setup_py(): """Validate the contents of setup.py against Versioneer's expectations.""" found = set() setters = False errors = 0 with open("setup.py", "r") as f: for line in f.readlines(): if "import versioneer" in line: found.add("import") if "versioneer.get_cmdclass()" in line: found.add("cmdclass") if "versioneer.get_version()" in line: found.add("get_version") if "versioneer.VCS" in line: setters = True if "versioneer.versionfile_source" in line: setters = True if len(found) != 3: print("") print("Your setup.py appears to be missing some important items") print("(but I might be wrong). Please make sure it has something") print("roughly like the following:") print("") print(" import versioneer") print(" setup( version=versioneer.get_version(),") print(" cmdclass=versioneer.get_cmdclass(), ...)") print("") errors += 1 if setters: print("You should remove lines like 'versioneer.VCS = ' and") print("'versioneer.versionfile_source = ' . This configuration") print("now lives in setup.cfg, and should be removed from setup.py") print("") errors += 1 return errors if __name__ == "__main__": cmd = sys.argv[1] if cmd == "setup": errors = do_setup() errors += scan_setup_py() if errors: sys.exit(1)