├── index.js ├── .gitignore ├── .travis.yml ├── test ├── toFastQ.js └── data │ └── sample.fq ├── lib └── bionode-fastq.js ├── cli.js ├── package.json ├── LICENSE ├── README.md ├── CODE_OF_CONDUCT.md └── CONTRIBUTING.md /index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/bionode-fastq') 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .idea 3 | .DS_Store 4 | coverage 5 | tmp 6 | npm-debug.log 7 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "stable" 4 | - "iojs" 5 | after_script: 6 | - npm run coveralls 7 | notifications: 8 | irc: 9 | channels: 10 | - "chat.freenode.net#bionode" 11 | template: 12 | - "%{message}: %{repository}#%{build_number}: %{commit_message} (%{branch} - %{commit} : %{author})" 13 | webhooks: 14 | urls: 15 | - https://webhooks.gitter.im/e/bc08fdd81e88a4b24fed #bionode/bionode 16 | - https://webhooks.gitter.im/e/17fa42847fe7c7dd8da7 #bionode/bionode-fastq 17 | on_success: change 18 | on_failure: always 19 | on_start: false 20 | -------------------------------------------------------------------------------- /test/toFastQ.js: -------------------------------------------------------------------------------- 1 | /* global describe, it */ 2 | 'use strict' 3 | require('chai').should() 4 | var fastq = require('../index') 5 | 6 | describe('toFastQ', function () { 7 | this.timeout(4000) 8 | var output = [] 9 | 10 | it('should run without error', function (done) { 11 | var applyToEach = function (item) { 12 | output.push(item) 13 | } 14 | var onEnd = function (err) { 15 | if (err) { 16 | return done(err) 17 | } 18 | return done() 19 | } 20 | 21 | fastq.read('test/data/sample.fq').on('data', applyToEach).on('end', onEnd) 22 | }) 23 | 24 | it('should process 100 objects', function (done) { 25 | output.length.should.equal(100) 26 | done() 27 | }) 28 | }) 29 | -------------------------------------------------------------------------------- /lib/bionode-fastq.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs') 2 | var Stream = require('stream') 3 | var readline = require('readline') 4 | 5 | var events = require('events') 6 | 7 | var block = [] 8 | 9 | var toObject = function (block) { 10 | return { 11 | name: block[0], 12 | seq: block[1], 13 | name2: block[2], 14 | qual: block[3] 15 | } 16 | } 17 | 18 | var fastq = new events.EventEmitter() 19 | fastq.read = function (path) { 20 | var instream = fs.createReadStream(path) 21 | var outstream = new Stream() 22 | var rl = readline.createInterface(instream, outstream) 23 | 24 | rl.on('line', function (line) { 25 | block.push(line) 26 | if (block.length === 4) { 27 | var obj = toObject(block) 28 | fastq.emit('data', obj) 29 | block = [] 30 | } 31 | }) 32 | 33 | rl.on('close', function () { 34 | fastq.emit('end') 35 | }) 36 | return this 37 | } 38 | 39 | module.exports = fastq 40 | -------------------------------------------------------------------------------- /cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const fs = require('fs') 4 | const minimist = require('minimist') 5 | const fastq = require('./index.js') 6 | 7 | const argv = minimist(process.argv.slice(2), { 8 | alias: { 9 | help: 'h' 10 | } 11 | }) 12 | 13 | if (argv.help || argv._.length === 0) { 14 | console.log( 15 | 'Usage: bionode-fastq \n' + 16 | 'If no output is provided, the result will be printed to stdout\n' 17 | ) 18 | process.exit(0) 19 | } 20 | 21 | // if there is an output file present, write to the file. Otherwise write to stdout 22 | const output = argv._[1] ? fs.createWriteStream(argv._[1]) : process.stdout 23 | 24 | const fq = fastq.read(argv._[0]) 25 | 26 | process.stdin.setEncoding('utf8') 27 | 28 | fq.on('data', function (data) { 29 | output.write(JSON.stringify(data) + '\n') 30 | }) 31 | 32 | fq.on('error', function (err) { 33 | console.log('There was an error:\n', err) 34 | }) 35 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bionode-fastq", 3 | "version": "2.2.0", 4 | "homepage": "http://bionode.io", 5 | "description": "Streamable FASTQ parser", 6 | "scripts": { 7 | "test": "standard && mocha", 8 | "coverage": "istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec", 9 | "coveralls": "istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage" 10 | }, 11 | "author": { 12 | "name": "Martin Page", 13 | "email": "wookoouk@gmail.com" 14 | }, 15 | "keywords": [ 16 | "bio", 17 | "biology", 18 | "bioinformatics", 19 | "bionode", 20 | "fastq", 21 | "parser", 22 | "streams", 23 | "cli", 24 | "science" 25 | ], 26 | "main": "index.js", 27 | "bin": { 28 | "bionode-fastq": "cli.js" 29 | }, 30 | "license": "MIT", 31 | "devDependencies": { 32 | "chai": "^2.2.0", 33 | "mocha": "^2.2.4", 34 | "standard": "^3.5.0", 35 | "coveralls": "^2.11.2", 36 | "istanbul": "^0.3.13" 37 | }, 38 | "dependencies": { 39 | "minimist": "^1.2.0" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Bruno Vieira 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | bionode logo 4 | 5 |
6 | bionode.io 7 |

8 | 9 | 10 | # bionode-fastq 11 | 12 | > Streamable FASTQ parser. 13 | 14 | [![npm](https://img.shields.io/npm/v/bionode-fastq.svg?style=flat-square)](http://npmjs.org/package/bionode-fastq) 15 | [![Travis](https://img.shields.io/travis/bionode/bionode-fastq.svg?style=flat-square)](https://travis-ci.org/bionode/bionode-fastq) 16 | [![Coveralls](https://img.shields.io/coveralls/bionode/bionode-fastq.svg?style=flat-square)](http://coveralls.io/r/bionode/bionode-fastq) 17 | [![Dependencies](http://img.shields.io/david/bionode/bionode-fastq.svg?style=flat-square)](http://david-dm.org/bionode/bionode-fastq) 18 | [![npm](https://img.shields.io/npm/dt/bionode-fastq.svg?style=flat-square)](https://www.npmjs.com/package/bionode-fastq) 19 | [![Gitter](https://img.shields.io/gitter/room/nwjs/nw.js.svg?style=flat-square)](https://gitter.im/bionode/bionode) 20 | 21 | ## Install 22 | 23 | You need to install the latest Node.JS first, please check [nodejs.org](http://nodejs.org) or do the following: 24 | 25 | ```bash 26 | # Ubuntu 27 | sudo apt-get install npm 28 | # Mac 29 | brew install node 30 | # Both 31 | npm install -g n 32 | n stable 33 | ``` 34 | 35 | To use `bionode-fastq` as a command line tool, you can install it globally with `-g`. 36 | 37 | ```bash 38 | npm install bionode-fastq -g 39 | ``` 40 | 41 | Or, if you want to use it as a JavaScript library, you need to install it in your local project folder inside the `node_modules` directory by doing the same command **without** `-g`. 42 | 43 | ```bash 44 | npm i bionode-fastq # 'i' can be used as shorcut to 'install' 45 | ``` 46 | 47 | 48 | ## Documentation 49 | 50 | Check our documentation at [doc.bionode.io](http://doc.bionode.io) or do: 51 | 52 | ```bash 53 | bionode-fastq --help 54 | ``` 55 | 56 | 57 | ## Contributing 58 | 59 | We welcome all kinds of contributions at all levels of experience, please read the [CONTRIBUTING.md](CONTRIBUTING.md) to get started! 60 | 61 | 62 | ## Communication channels 63 | 64 | Don't be shy! Come talk to us :smiley: 65 | 66 | * **Email** [mail@bionode.io](mailto:mail@bionode.io) 67 | * **Chat room** [http://gitter.im/bionode/bionode](http://gitter.im/bionode/bionode) 68 | * **IRC** #bionode on Freenode 69 | * **Twitter** [@bionode](http://twitter.com/@bionode) 70 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, gender identity and expression, level of experience, 9 | nationality, personal appearance, race, religion, or sexual identity and 10 | orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at mail@bionode.io. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at [http://contributor-covenant.org/version/1/4][version] 72 | 73 | [homepage]: http://contributor-covenant.org 74 | [version]: http://contributor-covenant.org/version/1/4/ 75 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to Bionode 2 | 3 | Thank you for your interest in contributing to Bionode :tada:! 4 | 5 | Bionode is an Open Source community that aims at building highly reusable code and tools for bioinformatics by leveraging the Node.JS ecosystem. We use Node.JS Streams to process big genomic data. 6 | 7 | We welcome all kinds of contributions at all levels of experience, either code, knowledge, questions or suggestions. Many of our goals and GitHub issues do not require biology knowledge (e.g. very technical, coding) and some don't even require JavaScript knowledge (e.g. events, community, documentation). 8 | 9 | This document has a set of guidelines for contributing to Bionode on GitHub. These are guidelines, not rules. This guide is meant to make it easier for you to get involved. 10 | 11 | * [Participation guidelines](#participation-guidelines) 12 | * [What we're working on](#what-were-working-on) 13 | * [How to submit changes](#how-to-submit-changes) 14 | * [How to report bugs](#how-to-report-bugs) 15 | * [Communication channels](#communication-channels) 16 | 17 | ## Participation guidelines 18 | 19 | This project adheres to a [code of conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [mail@bionode.io](mailto:mail@bionode.io). 20 | 21 | ## What we're working on 22 | 23 | Take a look at the GitHub issues in our organisation wide project board at [project.bionode.io](http://project.bionode.io). Here's what each column means: 24 | * **Backlog** All the issues we have open (sorted by most recent). You'll find a lot in here and maybe something you could help us with. 25 | * **Next** What we want to work on next! Picking something to solve here would be greatly appreciated!! 26 | * **In Progress** Things we are currently working on, come help us! The person assigned to each issue is the one in charge and who you can ask any question. 27 | * **Done** Solved issues (sorted by closed date). Here you can check what we've been up to in the past. 28 | 29 | If you want to have a view of where all of this is going in the long run, check out our [Roadmap issue](https://github.com/bionode/bionode/issues/35), where we discuss our vision. 30 | 31 | ## How to submit changes 32 | 33 | Each bionode tool and library has its own repository (like a folder). 34 | Once you've identified one of the issues above that you feel you can contribute to, you're ready to make a change to the repository of that issue! However, it's always a good idea to [talk to us first](#communication-channels). Specially if you intend to take on something big, just to make sure we're on the same track. :wink: 35 | 36 | 1. **[Fork](https://help.github.com/articles/fork-a-repo/) the repository** that the issue belongs to. This makes your own version of the tool/library that you can edit and use. If you were invited to the [Bionode organisation](https://github.com/orgs/bionode/people) on GitHub, you can just `git clone` the repo and use a `git branch` instead of `forking`. 37 | 2. **[Make your changes](https://guides.github.com/activities/forking/#making-changes)**! You can do this in the GitHub interface on your own local machine. Once you're happy with your changes... 38 | 3. **Submit a [pull request](https://help.github.com/articles/proposing-changes-to-a-project-with-pull-requests/)**. This opens a discussion around your project and lets the project lead know you are proposing changes. 39 | 40 | First time contributing to open source? Check out this *free* series, [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github). 41 | 42 | ## How to report bugs 43 | 44 | Any general Bionode bug or question should be reported on the issue tracker of [bionode/bionode](https://github.com/bionode/bionode/issues). Anything that is specific to one of the tools, e.g. `bionode-ncbi`, should be reported under [that tool issue tracker](https://github.com/bionode/bionode-ncbi). 45 | 46 | ## Communication channels 47 | 48 | Don't be shy! Come talk to us :smiley: 49 | 50 | * **Email** [mail@bionode.io](mailto:mail@bionode.io) 51 | * **Chat room** [http://gitter.im/bionode/bionode](http://gitter.im/bionode/bionode) 52 | * **IRC** #bionode on Freenode 53 | * **Twitter** [@bionode](http://twitter.com/@bionode) 54 | 55 | ## Node.JS specific commands 56 | If you're new to Node.JS we highly recommend checking the [NodeSchool workshop](https://nodeschool.io/#workshopper-list) that you can install and run in your command line. Example: 57 | 58 | ```bash 59 | npm install -g learnyounode 60 | learnyounode 61 | ``` 62 | 63 | To install a local version of a bionode tool that you are modifying (e.g. bionode-ncbi): 64 | 65 | ```bash 66 | git clone git@github.com:bionode/bionode-ncbi.git 67 | cd bionode-ncbi 68 | npm install # Install all dependencies defined in the package.json file 69 | npm link # Setup bionode-ncbi in your PATH to point to this local version 70 | ``` 71 | 72 | You can now modify the code in the `bionode-ncbi` folder and test the effect of those changes when you run the `bionode-ncbi` command in your terminal. 73 | 74 | To run a bionode tool suite of tests and check their code coverage, you can do: 75 | 76 | ```bash 77 | npm test 78 | npm run coverage 79 | ``` 80 | 81 | To rebuild and minify a bionode module for the browser (if supported) do: 82 | 83 | ```bash 84 | npm run build-browser 85 | ``` 86 | 87 | To rebuild the documentation using the comments in the code do: 88 | 89 | ```sh 90 | npm run build-docs 91 | ``` 92 | 93 | # Style guide 94 | We currently recommend using the [JavaScript Standard Style](https://github.com/feross/standard) to check your code. You can run it in the folder you're working (see below) and install it as an extension for your text editor (e.g. [Atom](https://atom.io/packages/linter-js-standard) or [Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=chenxsan.vscode-standardjs)). 95 | 96 | ```bash 97 | npm install -g standard 98 | standard 99 | ``` 100 | 101 | # Testing 102 | We use [tape](https://github.com/substack/tape) with [tape-nock](https://github.com/Flet/tape-nock) for testing. Code coverage is checked with [istanbul](https://github.com/gotwarlost/istanbul). 103 | -------------------------------------------------------------------------------- /test/data/sample.fq: -------------------------------------------------------------------------------- 1 | @IRIS:7:1:17:394#0/1 2 | GTCAGGACAAGAAAGACAANTCCAATTNACATTATG 3 | +IRIS:7:1:17:394#0/1 4 | aaabaa`]baaaaa_aab]D^^`b`aYDW]abaa`^ 5 | @IRIS:7:1:17:800#0/1 6 | GGAAACACTACTTAGGCTTATAAGATCNGGTTGCGG 7 | +IRIS:7:1:17:800#0/1 8 | ababbaaabaaaaa`]`ba`]`aaaaYD\\_a``XT 9 | @IRIS:7:1:17:1757#0/1 10 | TTTTCTCGACGATTTCCACTCCTGGTCNACGAATCC 11 | +IRIS:7:1:17:1757#0/1 12 | aaaaaa``aaa`aaaa_^a```]][Z[DY^XYV^_Y 13 | @IRIS:7:1:17:1479#0/1 14 | CATATTGTAGGGTGGATCTCGAAAGATATGAAAGAT 15 | +IRIS:7:1:17:1479#0/1 16 | abaaaaa`a```^aaaaa`_]aaa`aaa__a_X]`` 17 | @IRIS:7:1:17:150#0/1 18 | TGATGTACTATGCATATGAACTTGTATGCAAAGTGG 19 | +IRIS:7:1:17:150#0/1 20 | abaabaa`aaaaaaa^ba_]]aaa^aaaaa_^][aa 21 | @IRIS:7:1:18:443#0/1 22 | CGATTCCACGTGATCAAAGAAACTAGAGTGGGTCTG 23 | +IRIS:7:1:18:443#0/1 24 | abbbbbababababababbaaaababababa``aaa 25 | @IRIS:7:1:18:622#0/1 26 | TGGGCTCCGGGAGGGGGGGATGTAAGAAAAATTACA 27 | +IRIS:7:1:18:622#0/1 28 | ababaaaabaa_``aa``]^aa_`aa_Z_aaaaa^b 29 | @IRIS:7:1:18:628#0/1 30 | AAAACAATTAGATGATGATAAAATTAACAAAGATTG 31 | +IRIS:7:1:18:628#0/1 32 | aaaaaaaaaaaaaaaaaa`^```a`aaa`^`a`a^a 33 | @IRIS:7:1:18:1642#0/1 34 | AATAAGTTTTAAACAGCTAACCTTGTTTACTTCTTT 35 | +IRIS:7:1:18:1642#0/1 36 | aaaaaa_aaababba_baa\aaaaa`a`baaaaa`a 37 | @IRIS:7:1:18:1260#0/1 38 | AGATGTACAAATTTGTATTTCAAGACAGATTTATAA 39 | +IRIS:7:1:18:1260#0/1 40 | abaab`bab`abaab`bbaaab_babb]aaaabba^ 41 | @IRIS:7:1:18:16#0/1 42 | AGGTTCGTGTTGAGTGTTGCCTCTTTTTCTGTTAAT 43 | +IRIS:7:1:18:16#0/1 44 | abb`bbbabbbaWa`baba_Z``babaa[_aa`\X_ 45 | @IRIS:7:1:18:1150#0/1 46 | AGCTAGGTAAAGTTATACATACAGATGGCCGAACTT 47 | +IRIS:7:1:18:1150#0/1 48 | abaaabb^bbabaabbbaaaaaaaaa`W^`a`_^`` 49 | @IRIS:7:1:18:1819#0/1 50 | CTTACCGCGGTTTTAATAATTTTACCATCACTTCGT 51 | +IRIS:7:1:18:1819#0/1 52 | abbbbbbbba[aba``ba`bbba^]]``___]`_^W 53 | @IRIS:7:1:18:1232#0/1 54 | AAGAAATATATCGAAGAGTTAGTGCTGGACTGGCTG 55 | +IRIS:7:1:18:1232#0/1 56 | a^aY\Y^]^Y[WYUBBBBBBBBBBBBBBBBBBBBBB 57 | @IRIS:7:1:19:1343#0/1 58 | GGCATCTCCAGAGGAGGCTGTACCTGTGGAATAGCA 59 | +IRIS:7:1:19:1343#0/1 60 | abbbbbbbbababaaba_a\FXQXNVKO^F[RWYSQ 61 | @IRIS:7:1:19:1885#0/1 62 | TGAATTTCAATACGTGCAATTCCCTCCATACCAGAG 63 | +IRIS:7:1:19:1885#0/1 64 | abbbbbbbbbbbabaa[a_aba_^aa^_a``UZaab 65 | @IRIS:7:1:19:691#0/1 66 | GACATGAATTGTGTTTTAGGATAATTGATTAAAAAT 67 | +IRIS:7:1:19:691#0/1 68 | aaabbb`aaab`baaaaaba`aaababaaaaaaaab 69 | @IRIS:7:1:19:1159#0/1 70 | CAAGAATCATACTCAACATGCAAGCGATGATGAACA 71 | +IRIS:7:1:19:1159#0/1 72 | `a^`bbabba\_a^[_a\\]][GY]YBBBBBBBBBB 73 | @IRIS:7:1:19:1310#0/1 74 | GGAGATGATTTGACGATTCGCAGTCGGATCATCTGC 75 | +IRIS:7:1:19:1310#0/1 76 | aaabbabbabbbbbbbbbbbbbbabbbaabaa^a^Z 77 | @IRIS:7:1:19:1108#0/1 78 | GGATAATAAGCTCATGGGTTTGGTCTTACTTCACCG 79 | +IRIS:7:1:19:1108#0/1 80 | abaaaaaaaaaaaaaaa`^aaaa]]a``_a`aa^_Z 81 | @IRIS:7:1:19:471#0/1 82 | GAAACCCTTATGGAGCTGTCTCTAGTTGTAATTTAT 83 | +IRIS:7:1:19:471#0/1 84 | aabbaaabaaaba`baabaaaabaa^ab^a]aabab 85 | @IRIS:7:1:19:1602#0/1 86 | GGGCCGGCCCAAGCGAGTTTCATCCCTGGGCGTTTG 87 | +IRIS:7:1:19:1602#0/1 88 | `aa``__\`^___aa_^___\\_\]]X___]_`_]] 89 | @IRIS:7:1:19:1541#0/1 90 | TTTACTGTCAGAACATTTTTTTTGTTCTCTGTGAGT 91 | +IRIS:7:1:19:1541#0/1 92 | aaabaaaaabaa^_^abbabbaaaaa`aabb_aa_] 93 | @IRIS:7:1:19:878#0/1 94 | GAGCGGTGATAGTCGGGGTTTCTTACAAGAACACAA 95 | +IRIS:7:1:19:878#0/1 96 | aababb\ba^^a_aabb]EZ`[^a[]Z_]Za[a]a] 97 | @IRIS:7:1:19:1168#0/1 98 | CTGGTGGATCATTCTCCTCCGAGCTTACACTAAGTC 99 | +IRIS:7:1:19:1168#0/1 100 | abbb`bbbbbbbbbbbbbb`bbb`bbbabbb`^a]_ 101 | @IRIS:7:1:19:494#0/1 102 | CAAAACGTTTAGTTACTATGGTAATTTGTAACTTCC 103 | +IRIS:7:1:19:494#0/1 104 | abbbbabaaabb`ababaaaa^baaaaa_aaaaa_` 105 | @IRIS:7:1:20:956#0/1 106 | CAGAATTTGTAACTTGCTATCCTATCATCTTGCCTA 107 | +IRIS:7:1:20:956#0/1 108 | abaaaaaaa`bbaaaaaaaa``aaa`aaaa[\_\]a 109 | @IRIS:7:1:20:890#0/1 110 | CATCTCTTATGTCAATGACACCAAAGGGATATTAAA 111 | +IRIS:7:1:20:890#0/1 112 | abbabbaaaaaaabaaaaaa`^_X_``aaaaaaaa` 113 | @IRIS:7:1:20:734#0/1 114 | CAATCAGGTCGCTTAGGTGTCTGGGCCATCTGGAGT 115 | +IRIS:7:1:20:734#0/1 116 | ababbaaa^`a`baa`a^a`aa_]_`a`aa`aa]ba 117 | @IRIS:7:1:20:300#0/1 118 | GGTCTAAAAGTTATGGAGTCATAAAGTTTTAACCAA 119 | +IRIS:7:1:20:300#0/1 120 | aa`bbbba_aababbbabaabbbaabaaaba`a``b 121 | @IRIS:7:1:20:393#0/1 122 | CCTTGACCCCAGTTATTTTGAGGTCATATCTAGTAT 123 | +IRIS:7:1:20:393#0/1 124 | aaaa_abaaaab`aabaaaaaaaaaaaaa`b\a_aa 125 | @IRIS:7:1:20:1560#0/1 126 | GTGAATCTCAAAGAGCGAAAAGGTCTTATCCAGAGC 127 | +IRIS:7:1:20:1560#0/1 128 | a`abbaaa`bbbbaaaaaaaaa`]ba`^`^`aa`\\ 129 | @IRIS:7:1:20:225#0/1 130 | CCTAGATCAAGTAAAGACTCTGGGTTTCCAGCAAGC 131 | +IRIS:7:1:20:225#0/1 132 | ababbaaaaab`aaabaaaaabab^`a`aaa`aaa` 133 | @IRIS:7:1:21:1457#0/1 134 | TCTGTTAAATTGGTTTAAGACAAACGTTGTTTACGA 135 | +IRIS:7:1:21:1457#0/1 136 | ababaaaaaaa`a_aaa__`aaY\_`\aa`a```_] 137 | @IRIS:7:1:21:559#0/1 138 | GGAACATAAAGAAATGTATTTTATTAAATAAATGAG 139 | +IRIS:7:1:21:559#0/1 140 | aaabaaaaaabaaaab`bbaaabbaaaaba`aba`b 141 | @IRIS:7:1:21:1852#0/1 142 | AACGTCGCAAACGGCTTTAACGGAAACGGAGATTGA 143 | +IRIS:7:1:21:1852#0/1 144 | aaa`[a_aa`[__^^`__^][[[\YSV]VBBBBBBB 145 | @IRIS:7:1:21:1384#0/1 146 | AAGGTTCCCTATTGTGAAAATGAATCAGGGATTAGA 147 | +IRIS:7:1:21:1384#0/1 148 | aaaa[aaaba`aaa_baaaaaaaaaaabaa_aaaaa 149 | @IRIS:7:1:21:876#0/1 150 | TGATTACTTTATGAATTTTGTAGTCAAATTTTTTTT 151 | +IRIS:7:1:21:876#0/1 152 | abaaba`bbaabbaababbb]ab_aa\^aababaab 153 | @IRIS:7:1:21:1720#0/1 154 | TCAAGTCATATTCAACTCCAAAACACTAACCAACCT 155 | +IRIS:7:1:21:1720#0/1 156 | aaabbabbbbbbab`bbabb`bbbbbb^`a`babbb 157 | @IRIS:7:1:21:1357#0/1 158 | TGTAATAACCTTTCAGGTCCGCTACTGTTGATGCAC 159 | +IRIS:7:1:21:1357#0/1 160 | ababbbbbaabababba_a`aaaaaabaaaaaaZ_Z 161 | @IRIS:7:1:21:1913#0/1 162 | CAATTCCATTCTCTCTGCAATCTCCAGGTAAAAATC 163 | +IRIS:7:1:21:1913#0/1 164 | aaabaaabaaabbaaaabbaaaab_aa`Zaa^ba_\ 165 | @IRIS:7:1:21:892#0/1 166 | ATCCGTTCATTGCACCTTTCCGAAAGGTCACATCCG 167 | +IRIS:7:1:21:892#0/1 168 | aaa`a``aa`_a_`a_aaaa^`\_^^^Yaa`a_a`] 169 | @IRIS:7:1:21:108#0/1 170 | GTGGACTATGACGAAGCTATTTTCCTCTGGCGTGTG 171 | +IRIS:7:1:21:108#0/1 172 | aabaaabbabb`baaa`___aa`]__]]^_`a[_Y` 173 | @IRIS:7:1:21:2007#0/1 174 | GGCCGCGGTAGTATTTGCCTTGAAGATTTGGCGATC 175 | +IRIS:7:1:21:2007#0/1 176 | a`aaabab[^TO[Z]`\`^_`a\__]]`]R^W[BBB 177 | @IRIS:7:1:21:433#0/1 178 | AAACACTTTGCAGGTCTAAAGTGAGCTAGGGACGTG 179 | +IRIS:7:1:21:433#0/1 180 | aaaaaaaaaaaaaa`aaa``a_aaaaaaaaaaab_b 181 | @IRIS:7:1:22:817#0/1 182 | TTGAGAAGCTAGAAGAAGGTTGGTTAGTGTTTTGGA 183 | +IRIS:7:1:22:817#0/1 184 | aababaaaaaaaaaaaaaa]`aa_aaa^a_aaaa_\ 185 | @IRIS:7:1:22:911#0/1 186 | GTCTCGGACCTGGTCGACGATTTCAACCCCTGGTCG 187 | +IRIS:7:1:22:911#0/1 188 | `a`aaaaaa`a`a\aaaa_[_aa``aa_^a\X\W__ 189 | @IRIS:7:1:22:1298#0/1 190 | TCTTTTGTGGGAAGCGGGCGACTCAACAGCCGGAGG 191 | +IRIS:7:1:22:1298#0/1 192 | aaaaaaaaaaaaa``aaa`a_aa__\_a`_\_a\]X 193 | @IRIS:7:1:22:1150#0/1 194 | ACCCAAACTTTTTATGGTATATACTGACAAGCGAGA 195 | +IRIS:7:1:22:1150#0/1 196 | aaabbbaaabbbaabaa_aaabbaabbaaa`___aa 197 | @IRIS:7:1:22:1700#0/1 198 | TTCAATTTATTATGACCAATCGTAACGTATTGAACC 199 | +IRIS:7:1:22:1700#0/1 200 | aabbabaabbabbb`b`baabb_a`abYa`ab^]^V 201 | @IRIS:7:1:22:1595#0/1 202 | CACATCTCCAAGATCTTATTTAGAGATCCGTTCTTT 203 | +IRIS:7:1:22:1595#0/1 204 | ababababbb_baaaaabaaabbbaaa```^_`aaa 205 | @IRIS:7:1:22:897#0/1 206 | GCGCTGGATGATAAGGAAGGCACGGTGGAAGAGAGA 207 | +IRIS:7:1:22:897#0/1 208 | aaaaaaaaabaaa`aa`aaaaaaaaTa_VV_\\X\Y 209 | @IRIS:7:1:22:453#0/1 210 | GACCCTTATGCCCACGCCCCAATCGTCCTCCCGGAG 211 | +IRIS:7:1:22:453#0/1 212 | aaa`aaaaaa``aaa````aaaa_a```a`_\a`Z` 213 | @IRIS:7:1:22:1371#0/1 214 | TTTAGTAAAGTTTAATTGTCTCAATTCCCGTGGGAT 215 | +IRIS:7:1:22:1371#0/1 216 | aba`a_`a^a`aababaa\``_a^a`]W_`Z`Z_\R 217 | @IRIS:7:1:22:1821#0/1 218 | AGGTTGGGCAGTAAGGGTCGGAGAAGGGCAATCACT 219 | +IRIS:7:1:22:1821#0/1 220 | abbabbbbabb`bbbbb``aba_Y]bba`___Xb_` 221 | @IRIS:7:1:23:1992#0/1 222 | CCGTTCATCTTCGGCGCAAGAGCGCTCGATCAGTGA 223 | +IRIS:7:1:23:1992#0/1 224 | abaaabbabbaaaa`\_`aa_____^_b^\UU\ZYT 225 | @IRIS:7:1:23:140#0/1 226 | ATGCATTAGAACAATAATTTATGCAAAAACCATTTC 227 | +IRIS:7:1:23:140#0/1 228 | aaaaaaaaaaaaaaaa`aaaaab^a``a`_]aa_`V 229 | @IRIS:7:1:23:66#0/1 230 | CTTTGTGTCTATGCTCTGAGTGATCAATTGGTCGAG 231 | +IRIS:7:1:23:66#0/1 232 | abbbbababbbaa```aaaaZa_^Y_aaaaa]``__ 233 | @IRIS:7:1:23:1387#0/1 234 | ATTTTATCTCTTTTTAAAACAGTCATATGTTACCTT 235 | +IRIS:7:1:23:1387#0/1 236 | abbbababbabbbbbbbbbbbbabbbbbaaaaa`bb 237 | @IRIS:7:1:23:1323#0/1 238 | TAAGAGGCAGGGGAATCCCAAACGGCGTCGTTCAAG 239 | +IRIS:7:1:23:1323#0/1 240 | abbaaaaabaaa`^````ba``Y__``Y_XUW]^[X 241 | @IRIS:7:1:23:135#0/1 242 | AGCAATTAGGCATAAATTGATACCTACTCCTCAGAA 243 | +IRIS:7:1:23:135#0/1 244 | ab`bbbabbbabbba^aabbbb_]aaaa_]_aab`Y 245 | @IRIS:7:1:24:1764#0/1 246 | GTTTTCGAGAAATCTCTGCGTGCTCGCTTGGTTAAG 247 | +IRIS:7:1:24:1764#0/1 248 | a`aaaaaaaaaaaaaa``aa^aaaaaaaaa]]aaab 249 | @IRIS:7:1:24:1106#0/1 250 | TTAGGGTTTATGGAATGTCGTCTTCTGTATTCTGTT 251 | +IRIS:7:1:24:1106#0/1 252 | ababba_aaaaaa`aaa_aa_aaaaaa_aa`aaa_a 253 | @IRIS:7:1:24:283#0/1 254 | GTTCCGCCTTAGGGGGAAGCAACCGCGCGAGCGGCG 255 | +IRIS:7:1:24:283#0/1 256 | aaa``a``aaaaa`aa`aa`aa_\_`a_a^`Za_[_ 257 | @IRIS:7:1:24:961#0/1 258 | TAAAAGCTTAGATTCAGCCCCACAAAACGAATTGAC 259 | +IRIS:7:1:24:961#0/1 260 | abbbbabaabaaaaaba``aaaabaaaaaaaaaa__ 261 | @IRIS:7:1:24:1058#0/1 262 | TTCACCGGAGGGTAACTCCGCCAGGTGGTCTGTTCT 263 | +IRIS:7:1:24:1058#0/1 264 | aaabaaaa]`aa[aa``a````^\^Y_^Z]_]]^_] 265 | @IRIS:7:1:24:1678#0/1 266 | AGGAGTATTACATCAGACACAAAGACGGTTGCACTC 267 | +IRIS:7:1:24:1678#0/1 268 | abbbb`bb^G^bbbabbabbba`baaa`[__^^[[W 269 | @IRIS:7:1:24:1652#0/1 270 | TTGCTAATAACTGGGCCAACGAAGTTGAGGGTGAGG 271 | +IRIS:7:1:24:1652#0/1 272 | aaabaa`a_`a`a\Y_``aa`_Z_N`]S^a[K\V\B 273 | @IRIS:7:1:24:1714#0/1 274 | TTAAGCCACAAGCAAATAAAACACAGAAACCAAAGA 275 | +IRIS:7:1:24:1714#0/1 276 | aabbabbabaab^babbbaa`aabb`^`a`Z`^aa` 277 | @IRIS:7:1:24:1649#0/1 278 | AAGGAAATTATGCGGAAGCATTACAGAATTATTATG 279 | +IRIS:7:1:24:1649#0/1 280 | aaaaaaaaaaaaaaaaaaaa``aaaa^aa`aa`aa^ 281 | @IRIS:7:1:24:697#0/1 282 | ACAATGGAATTTTTCCATTGACTTTTTGTCGACCCC 283 | +IRIS:7:1:24:697#0/1 284 | aabbaaaaaaaaaa``aaaaaaaaaaaa_aaa_W^Q 285 | @IRIS:7:1:24:174#0/1 286 | ATGAATCTTTGGGTTTCCTCTCAACAACAGAATTTT 287 | +IRIS:7:1:24:174#0/1 288 | aaaaaaaaaaaaa^a`aaaa`aaa`ababaaaa^_] 289 | @IRIS:7:1:24:259#0/1 290 | CCAAACCCTAAAATCTAATCCCTAAACCCTAAACCC 291 | +IRIS:7:1:24:259#0/1 292 | aaaabaaaaaaaaaababb_^`b`aaa]`a_U`aYY 293 | @IRIS:7:1:24:1382#0/1 294 | CTACTGTTATGGGGATGTTGTTGTTCGCTTATCACC 295 | +IRIS:7:1:24:1382#0/1 296 | abbaababbabbbabba`a`]aaW`\\W_`a`S[[^ 297 | @IRIS:7:1:24:795#0/1 298 | GTGCCCCGGATCCTCCAAACTTCACATCTGCTGCCA 299 | +IRIS:7:1:24:795#0/1 300 | aab`bbababa``baZaaaabaabababbbaabX_] 301 | @IRIS:7:1:24:1911#0/1 302 | CTAATGCTTTGAATTGAATCAGAAGATGTCCGGGTC 303 | +IRIS:7:1:24:1911#0/1 304 | abbbbbbbbbbbbbbbabbbbbbbbbbbababbbZ` 305 | @IRIS:7:1:24:237#0/1 306 | TTCTCTGTAATGCAGCCGGATATAGCAGCTCCGGGT 307 | +IRIS:7:1:24:237#0/1 308 | abababbaaaababba`baaaaaaa`a`[\X____] 309 | @IRIS:7:1:24:1282#0/1 310 | TGAGAGATTCCTTGAAACCCAGATTTGATTTTTCTC 311 | +IRIS:7:1:24:1282#0/1 312 | aabbabbaabaaabaaaa``abaaaab`aaaaaaab 313 | @IRIS:7:1:25:1548#0/1 314 | GAATCAAATATCATGGTCTAATAAAGAATAATTCTG 315 | +IRIS:7:1:25:1548#0/1 316 | abbbbbbbbbbbbabb`babbababbaaaaabaa_a 317 | @IRIS:7:1:25:995#0/1 318 | CTGAAGAAAAGATCATCCTCGACCTTCACCTGAGGG 319 | +IRIS:7:1:25:995#0/1 320 | aabbbbabbaaba_baaaababa`aaaba^aa`_]\ 321 | @IRIS:7:1:25:40#0/1 322 | GGTTCTCCAAGATAGCCAAGCAAGCTGGAGATGCTC 323 | +IRIS:7:1:25:40#0/1 324 | ababbbbbbbbbbbb_^aaa^aaa^abaab`_a`_` 325 | @IRIS:7:1:25:1070#0/1 326 | TTTGTCATCAAGTTCCACATTGACGAGAGGTTTATC 327 | +IRIS:7:1:25:1070#0/1 328 | aaabaabaaa``a`_Y`aaa`a``a_a]a`]`aa[Y 329 | @IRIS:7:1:25:1553#0/1 330 | TTCCCTTGTAGTTCGGGTTCTTGATTCTCTGTAGGA 331 | +IRIS:7:1:25:1553#0/1 332 | aabbbbaa`a``aaba``ab`aaaaabbaaaa``ab 333 | @IRIS:7:1:25:1757#0/1 334 | ACGATTGCGACGTCATCCGTGCTATCGCAGGGCATT 335 | +IRIS:7:1:25:1757#0/1 336 | aaaa`a_a]^`^\`]]^`_\]Z]`Y`]]]YPVVXVS 337 | @IRIS:7:1:25:690#0/1 338 | TTCATGCACATGAGCCTGAGTACCAAACGACACAAA 339 | +IRIS:7:1:25:690#0/1 340 | abbbbbbbabbbbbaabbbb`ba`b_aabaabaaa` 341 | @IRIS:7:1:25:1354#0/1 342 | TGGTTTTGAATATCTCCCACCTTTGTTCTTGACGAT 343 | +IRIS:7:1:25:1354#0/1 344 | abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 345 | @IRIS:7:1:25:1009#0/1 346 | CTAACAAGGAAACACTACTTAGGCTTTTCAGATTGG 347 | +IRIS:7:1:25:1009#0/1 348 | abbbabbbabbbababbababbaababaaabaaaab 349 | @IRIS:7:1:25:1591#0/1 350 | ACTTATCTCTTTTATTTGTACTATGTAGCGGATGGT 351 | +IRIS:7:1:25:1591#0/1 352 | aaaaabababaaaabaababaaabb`aaaaa`a`BB 353 | @IRIS:7:1:25:783#0/1 354 | TGGTTTAGCCAAAGTCCATATGAGTCTTTGGCTTTG 355 | +IRIS:7:1:25:783#0/1 356 | abb_abaa_aa`aa^``_a^ab_YZ[[a_`UU`[`a 357 | @IRIS:7:1:25:1332#0/1 358 | TATCTTCTAACAAGGAAACACTACTTAGGCCTTTAG 359 | +IRIS:7:1:25:1332#0/1 360 | abbabbabbbbbaabbabbbbbbbbbbbaabbabaa 361 | @IRIS:7:1:25:1576#0/1 362 | GGAAATGTATAGGCGACATGTTTGCTTCCTTTGAGG 363 | +IRIS:7:1:25:1576#0/1 364 | aaabaaa_baaaaaa`__aa```a``a``aa`a]_X 365 | @IRIS:7:1:25:1125#0/1 366 | AGTTATCAATAAATCCTAGAAAAATAAACATGGTAT 367 | +IRIS:7:1:25:1125#0/1 368 | ababbbbbbbbbabaabbbba`aabbaabbba`]bb 369 | @IRIS:7:1:25:365#0/1 370 | AATAAAAACATCTGAGTACAATATTCATTACTATCC 371 | +IRIS:7:1:25:365#0/1 372 | aabaaaaaaaaaabab`baaaabaaaaaaa`ab^_\ 373 | @IRIS:7:1:25:326#0/1 374 | GCTTTGTGTCTTCTAACAAGGATACAATTCTTACGC 375 | +IRIS:7:1:25:326#0/1 376 | aabbbbabaabbababbbaa`aabba`ab`aabba` 377 | @IRIS:7:1:26:765#0/1 378 | AGACACAGATATGTCGTGAAAAGGGCACTAAAATAT 379 | +IRIS:7:1:26:765#0/1 380 | aaaaaaabaaaaa_aa`a```a_Z_^`aa_V\V__b 381 | @IRIS:7:1:26:586#0/1 382 | AGACATTTCCATTCCAGTAGTTGATTGTTCCATCCC 383 | +IRIS:7:1:26:586#0/1 384 | aaaaabaa`aaaa`aaa_aa^aa``aa^`^[_a_YW 385 | @IRIS:7:1:26:1497#0/1 386 | TTCCATAACTAGGAACTGTCCTTGCCTTAATTGCTT 387 | +IRIS:7:1:26:1497#0/1 388 | aaa`abaaabaa`a`aaa_```aba`aa`aaabbXB 389 | @IRIS:7:1:26:116#0/1 390 | ATAAGCTAATTTTTGTATATTTTCGGAAAATAACTC 391 | +IRIS:7:1:26:116#0/1 392 | aabbaaaaaaaaaab`aaaaaaaaaa`aa]aa``_Z 393 | @IRIS:7:1:26:1135#0/1 394 | CTCCACATTGCATATTTTTACCATTTCTTTCCAATC 395 | +IRIS:7:1:26:1135#0/1 396 | abbbbabbbbbbbbbbbbbbbbbbbbbbbb`bbbbb 397 | @IRIS:7:1:27:1948#0/1 398 | AAGAATCTCTTGTTTTTCATTCCCATTCCCATAAGA 399 | +IRIS:7:1:27:1948#0/1 400 | a```^aaaaa``aaaa`^`a_\YX\^]_XY\Y_W[_ 401 | --------------------------------------------------------------------------------