Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Io to bio #1

Merged
merged 70 commits into from
Dec 7, 2023
Merged
Changes from 1 commit
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
b87947b
Moved io to bio
Koeng101 Aug 24, 2023
5c887a3
fixed io imports
Koeng101 Aug 24, 2023
d8f4b38
Add more generic definitions to bio
Koeng101 Aug 31, 2023
4fb41ff
Update bio/fastq/fastq.go
Koeng101 Sep 1, 2023
2452282
update fasta
Koeng101 Sep 1, 2023
6dda2b9
Merge branch 'ioToBio' of github.com:TimothyStiles/poly into ioToBio
Koeng101 Sep 1, 2023
16fbcbd
add fasta updates and parser
Koeng101 Sep 1, 2023
382a014
made readability improvements
Koeng101 Sep 2, 2023
0bbd05e
changed ParseWithHeader
Koeng101 Sep 2, 2023
eb68f81
removed int64 in reads
Koeng101 Sep 2, 2023
344220c
add more example tests
Koeng101 Sep 2, 2023
03f8b68
gotta update this for this tests!
Koeng101 Sep 2, 2023
6199c43
integrate slow5
Koeng101 Sep 5, 2023
65f0539
have examples covering most of changes
Koeng101 Sep 5, 2023
8ff6da4
removed interfaces
Koeng101 Sep 5, 2023
00732a4
updated with NewXXXParser
Koeng101 Sep 7, 2023
3ce8109
added 3 parsers
Koeng101 Sep 7, 2023
630bd88
added pileup
Koeng101 Sep 7, 2023
df98fe3
add concurrent functions plus better documentation
Koeng101 Sep 9, 2023
fa4d29a
moved svb to ioToBio
Koeng101 Sep 11, 2023
f80b317
Improve tests
Koeng101 Sep 11, 2023
37859a8
make better docs for header
Koeng101 Sep 11, 2023
e24801b
Update bio/fasta/fasta_test.go
Koeng101 Sep 12, 2023
584b73e
changed name of LowLevelParser to parserInterface
Koeng101 Sep 12, 2023
da7118a
Merge branch 'main' into ioToBio
Koeng101 Sep 12, 2023
5e6204f
zw -> zipWriter
Koeng101 Sep 12, 2023
90316d3
remove a identifier from pileup
Koeng101 Sep 12, 2023
7b2cd52
genbank parser now compatible
Koeng101 Sep 13, 2023
9b55fda
writeTo interface now fulfilled
Koeng101 Sep 13, 2023
6655565
make linter happy :)
Koeng101 Sep 13, 2023
11972ae
convert all types to io.WriterTo
Koeng101 Sep 14, 2023
12a4b48
fixed linter issues
Koeng101 Sep 14, 2023
4b50625
handle EOF better
Koeng101 Sep 14, 2023
f44721c
fixed tutorial
Koeng101 Sep 14, 2023
b192fda
fix genbank read error
Koeng101 Sep 14, 2023
3eab1f9
remove io.WriterTo checks
Koeng101 Sep 14, 2023
0edfd1c
fix with cmp.Equal
Koeng101 Sep 16, 2023
34de749
Merge pull request #341 from TimothyStiles/slow5StreamVByte2
Koeng101 Sep 16, 2023
6abe0cd
Merge branch 'main' into ioToBio
Koeng101 Oct 28, 2023
4c61c22
genbank tests merged
Koeng101 Oct 28, 2023
1d23668
sample merge
Koeng101 Oct 28, 2023
56772bb
Merge branch 'main' of github.com:TimothyStiles/poly into ioToBio
Koeng101 Oct 28, 2023
956d26e
make linter happy
Koeng101 Oct 28, 2023
158fcf1
Added generic collections module
abondrn Oct 30, 2023
8862a6c
Switched Feature.Attributes to use multimap
abondrn Oct 30, 2023
ef07e94
Fixed tests
abondrn Oct 30, 2023
cac1e55
Ran linter
abondrn Oct 30, 2023
8025bc2
Added copy methods
abondrn Oct 30, 2023
1f49f9d
Adds new functional test that addresses case where there is a partial…
abondrn Oct 30, 2023
8112866
Ran linter
abondrn Oct 30, 2023
fec8796
Add capability to compute sequence features and marshal en masse
abondrn Oct 30, 2023
9ce9f4f
Add methods to convert polyjson -> genbank
abondrn Oct 30, 2023
89a2ba4
Removed generic collections library in favor of hand-rolled multimap,…
abondrn Oct 30, 2023
b88d7b8
Propogate handrolled multimap to test files
abondrn Oct 30, 2023
b4c3a37
Responded to more comments
abondrn Oct 30, 2023
8b82d7b
Reduced new example genbank file
abondrn Oct 31, 2023
f523651
Resolved lint errors, added test StoreFeatureSequences and fixed unco…
abondrn Oct 31, 2023
1270ec8
Added multimap.go file doc
abondrn Oct 31, 2023
9c322f6
Responded to more comments
abondrn Oct 31, 2023
f124fae
First merge attempt
abondrn Nov 4, 2023
98b6984
Fixed deref issue
abondrn Nov 4, 2023
fc2ca75
Merged updated branch
abondrn Nov 4, 2023
25e0f61
Fixed tests, moved genbank files
abondrn Nov 4, 2023
60abf6d
Fixed fasta docs
abondrn Nov 4, 2023
7e3c812
Added changelog
abondrn Nov 5, 2023
35a5492
Merge pull request #394 from abondrn/ioToBio-genbank
Koeng101 Nov 5, 2023
433df00
added to changelog
Koeng101 Nov 10, 2023
8fb83b8
changed
Koeng101 Dec 7, 2023
74aa431
Merge branch 'main' into ioToBio
Koeng101 Dec 7, 2023
c377f64
fix linter issues
Koeng101 Dec 7, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
gotta update this for this tests!
Koeng101 committed Sep 2, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
commit 03f8b6839c5b7b5a138f395c5963e57c96d11a43
33 changes: 24 additions & 9 deletions bio/bio.go
Original file line number Diff line number Diff line change
@@ -5,6 +5,7 @@ package bio

import (
"bufio"
"compress/gzip"
"errors"
"fmt"
"io"
@@ -67,12 +68,10 @@ type Parser[DataType fasta.Record, DataTypeHeader fasta.Header] struct {
LowLevelParser LowLevelParser[DataType, DataTypeHeader]
}

var emptyParser Parser[fasta.Record, fasta.Header] = Parser[fasta.Record, fasta.Header]{}

func NewParser(format Format, r io.Reader) (*Parser[fasta.Record, fasta.Header], error) {
maxLineLength, ok := DefaultMaxLengths[format]
if !ok {
return &Parser[fasta.Record, fasta.Header]{}, fmt.Errorf("did not find format in default lengths")
return nil, fmt.Errorf("did not find format in default lengths")
}
return NewParserWithMaxLine(format, r, maxLineLength)
}
@@ -85,26 +84,42 @@ func NewParserWithMaxLine(format Format, r io.Reader, maxLineLength int) (*Parse
return nil, nil
}

func NewParserGz(format Format, r io.Reader) (*Parser[fasta.Record, fasta.Header], error) {
return NewParserCompressed(format, r, func(r io.Reader) (io.Reader, error) { return gzip.NewReader(r) })
}

func NewParserCompressed(format Format, r io.Reader, decoderFunc func(io.Reader) (io.Reader, error)) (*Parser[fasta.Record, fasta.Header], error) {
decodedReader, err := decoderFunc(r)
if err != nil {
return nil, err
}
return NewParser(format, decodedReader)
}

/******************************************************************************

Parser read functions

******************************************************************************/

func ReadWithMaxLine(format Format, path string, maxLineLength int) (*Parser[fasta.Record, fasta.Header], error) {
func Read(format Format, path string) (*Parser[fasta.Record, fasta.Header], error) {
file, err := os.Open(path)
if err != nil {
return &emptyParser, err
return nil, err
}
return NewParserWithMaxLine(format, file, maxLineLength)
return NewParser(format, file)
}

func Read(format Format, path string) (*Parser[fasta.Record, fasta.Header], error) {
func ReadGz(format Format, path string) (*Parser[fasta.Record, fasta.Header], error) {
return ReadCompressed(format, path, func(r io.Reader) (io.Reader, error) { return gzip.NewReader(r) })
}

func ReadCompressed(format Format, path string, decoderFunc func(io.Reader) (io.Reader, error)) (*Parser[fasta.Record, fasta.Header], error) {
file, err := os.Open(path)
if err != nil {
return &emptyParser, err
return nil, err
}
return NewParser(format, file)
return NewParserCompressed(format, file, decoderFunc)
}

/******************************************************************************
Binary file added bio/fasta/data/base.fasta.gz
Binary file not shown.