{"id":23823308,"url":"https://github.com/haha-systems/windowpain","last_synced_at":"2025-11-12T14:02:10.804Z","repository":{"id":270532063,"uuid":"910670932","full_name":"haha-systems/windowpain","owner":"haha-systems","description":"Windowpain is a random-access tool for reading genetic sequences from huge FASTA sequence files in milliseconds.","archived":false,"fork":false,"pushed_at":"2025-01-01T18:35:39.000Z","size":26,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-22T00:41:29.156Z","etag":null,"topics":["dna","fasta","mmap","rna","zig"],"latest_commit_sha":null,"homepage":"","language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/haha-systems.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-01T02:27:59.000Z","updated_at":"2025-01-01T18:35:42.000Z","dependencies_parsed_at":"2025-01-01T07:03:09.133Z","dependency_job_id":null,"html_url":"https://github.com/haha-systems/windowpain","commit_stats":null,"previous_names":["haha-systems/windowpain"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/haha-systems/windowpain","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haha-systems%2Fwindowpain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haha-systems%2Fwindowpain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haha-systems%2Fwindowpain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haha-systems%2Fwindowpain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/haha-systems","download_url":"https://codeload.github.com/haha-systems/windowpain/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haha-systems%2Fwindowpain/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284045913,"owners_count":26938122,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-12T02:00:06.336Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dna","fasta","mmap","rna","zig"],"created_at":"2025-01-02T10:16:35.773Z","updated_at":"2025-11-12T14:02:10.781Z","avatar_url":"https://github.com/haha-systems.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# windowpain\nWindowpain is a random-access tool for reading genetic sequences from huge FASTA sequence files in milliseconds.\n\n## Overview\nWindowpain provides lightning-fast random access to FASTA sequence files by using memory mapping and efficient indexing. It allows you to read specific windows of sequence data without loading the entire file into memory.\n\n## Features\n- Memory-mapped file access for optimal performance\n- JSON-based indexing of sequence positions\n- Random access to sequence windows\n- Handles newlines in FASTA files transparently\n- Zero-copy reading of sequence data\n\n## Installation\n\n```bash\ngit clone https://github.com/haha-systems/windowpain.git\ncd windowpain\nzig build --release=fast\n```\n\n## Usage\n\n```bash\n./windowpain index \u003cfasta_filename\u003e \u003cindex.json\u003e\n./windowpain read \u003cfasta_filename\u003e \u003cindex.json\u003e \u003csequence_index\u003e [window_size] [window_start] [--raw]\n```\n\n## Examples\n\n### Indexing a FASTA file and reading a sequence window\n\n```bash\n./windowpain index test.fasta test.json\n./windowpain read test.fasta test.json 0 10\n```\n\nThis will first index the `test.fasta` file and then read the first 10 characters of the first sequence in `test.fasta` and print it to the console.\n\n### Using raw output to pass to another tool through `stdin`\n\n```bash\n./windowpain read test.fasta test.json 0 10 --raw | \u003cother_tool\u003e\n```\n\nThis will read the first 10 characters of the first sequence in `test.fasta` and pass it to `other_tool`. The `other_tool` can be any tool that accepts raw sequence data on `stdin`.\n\n\u003e If you want to iterate over a sequence, just pass the `position += window_size` to the `read` command's `window_start` argument.\n\n## Notes\n- Windowpain uses memory mapping to read sequence data, so it may not be suitable for small files.\n- The index file is created by the `index` command and should be used with the `read` command.\n- The `read` command can optionally output the raw sequence data without formatting to `stdout`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaha-systems%2Fwindowpain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhaha-systems%2Fwindowpain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaha-systems%2Fwindowpain/lists"}