fastats

package
v0.1.25 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 5, 2025 License: AGPL-3.0 Imports: 22 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrVcfFormat = errors.New("Vcf format error")
View Source
var ErrZipNoMatch = errors.New("Zip: bed entry spans do not match")
View Source
var ErrZipShort = errors.New("Zip: beds are not the same length")

Functions

func AddKmers

func AddKmers(kmap map[string]int64, k int, seq string)

func AppendDequeBedFields added in v0.1.3

func AppendDequeBedFields[FT any](s []FT, d *Deque[BedEntry[FT]]) []FT

func AppendLines added in v0.1.13

func AppendLines(lines []string, s *bufio.Scanner, n int) ([]string, error)

func AppendQualScores

func AppendQualScores(dest []float64, quals string) []float64

func AppendQualsToAscii

func AppendQualsToAscii(w io.Writer, quals []int64) error

func AppendSamples

func AppendSamples[T Formatter](out []string, s SampleSet[T]) ([]string, error)

func AppendScoreQuals

func AppendScoreQuals(w io.Writer, scores []float64) error

func AutoCorrelationWindows added in v0.1.13

func AutoCorrelationWindows[B BedEnter[float64]](it iter.Seq[B], lags, winsize, winstep int) iter.Seq[BedEntry[float64]]

Requires sorted bed entries

func BasicStats

func BasicStats(lens []FaLen, s *FaStats)

func BasicStatsEfficient added in v0.1.18

func BasicStatsEfficient(lens []int64, counts map[int64]int64, s *FaStats)

func BedGraphSum added in v0.1.13

func BedGraphSum[B BedEnter[float64]](it iter.Seq[B]) float64

func BedSortWin added in v0.1.3

func BedSortWin(r io.Reader, w io.Writer, f BedSortWinFlags) error

func BedWinImplicitChrs added in v0.1.13

func BedWinImplicitChrs[B ChrSpanner](bed iter.Seq[B], winsize, winstep int64) map[ChrSpan][]B

func BedWinWithChrs added in v0.1.13

func BedWinWithChrs[C, B ChrSpanner](chroms iter.Seq[C], bed iter.Seq[B], winsize, winstep int64) map[ChrSpan][]B

func BuildQual

func BuildQual(qual byte, length int) string

func CheckAndPopMulti added in v0.1.3

func CheckAndPopMulti[B ChrSpanner](win ChrSpan, d *Deque[B])

func ChrSpanEq added in v0.1.13

func ChrSpanEq[C1, C2 ChrSpanner](c1 C1, c2 C2) bool

func ChrSpanLess

func ChrSpanLess[C ChrSpanner](x, y ChrSpanner) bool

func Chrlens

func Chrlens[F FaEnter](it iter.Seq2[F, error]) iter.Seq2[FaLen, error]

func ColToFloat added in v0.1.13

func ColToFloat(col int) func([]string) (float64, error)

func Collect added in v0.1.7

func Collect[T any](it iter.Seq[T]) []T

func CollectChrSpanMap

func CollectChrSpanMap[C ChrSpanner](cit iter.Seq2[C, error]) (map[string][]Span, error)

func CollectChrSpannerMap added in v0.1.13

func CollectChrSpannerMap[C ChrSpanner](cit iter.Seq2[C, error]) (map[string][]C, error)

func CollectErr added in v0.1.7

func CollectErr[T any](it iter.Seq2[T, error]) ([]T, error)

func CountKmers

func CountKmers[F FaEnter](it iter.Seq2[F, error], k int) (map[string]int64, error)

func DivBed added in v0.1.13

func DivBed[B BedEnter[Tuple2[float64, float64]]](it iter.Seq[B]) iter.Seq[BedEntry[float64]]

func ExtractChrSpanFa added in v0.1.25

func ExtractChrSpanFa[F FaEnter, C ChrSpanner](fit iter.Seq2[F, error], cit iter.Seq2[C, error]) iter.Seq2[ChrSpanFa[C, F], error]

func ExtractFasta

func ExtractFasta[F FaEnter, C ChrSpanner](fit iter.Seq2[F, error], cit iter.Seq2[C, error]) iter.Seq2[FaEntry, error]

func FaEntryWins

func FaEntryWins[F FaEnter](fe F, size int64, step int64) iter.Seq[BedEntry[string]]

func FaQualMerge

func FaQualMerge[F FaEnter](fit iter.Seq2[F, error], qit iter.Seq2[[]int64, error]) iter.Seq2[FqEntry, error]

func FaToFq

func FaToFq[FA FaEnter](fit iter.Seq2[FA, error], qual byte) iter.Seq2[FqEntry, error]

func FaWins

func FaWins[F FaEnter](fa iter.Seq2[F, error], size int64, step int64) iter.Seq2[BedEntry[string], error]

func FlatToFloatBed added in v0.1.3

func FlatToFloatBed[B BedEnter[[]string]](it iter.Seq2[B, error]) iter.Seq2[BedEntry[float64], error]

func FormatSample

func FormatSample[T Formatter, S ~[]T](format []string, sample S) (string, error)

func FqChrlens

func FqChrlens[F FqEnter](it iter.Seq2[F, error]) iter.Seq2[FaLen, error]

func FullAutoCorrelationWindows added in v0.1.13

func FullAutoCorrelationWindows()

func FullBedZip added in v0.1.13

func FullBedZip()

func FullChrlens

func FullChrlens()

func FullCountKmers

func FullCountKmers()

func FullDivCovs added in v0.1.13

func FullDivCovs()

func FullFaStats

func FullFaStats()

func FullFqChrlens

func FullFqChrlens()

func FullFqStats

func FullFqStats()

func FullGCRegions added in v0.1.25

func FullGCRegions()

func FullKmerHist

func FullKmerHist()

func FullQualPerPos

func FullQualPerPos()

func FullRpkm added in v0.1.18

func FullRpkm()

func FullToFa

func FullToFa()

func FullWinAvgSortedBed added in v0.1.13

func FullWinAvgSortedBed()

func FullWinSumSortedBed added in v0.1.18

func FullWinSumSortedBed()

func FullyLeftOf added in v0.1.3

func FullyLeftOf(x, y ChrSpan) bool

func GCFrac

func GCFrac(seq string) float64

func GCIter

func GCIter[B BedEnter[string]](views iter.Seq2[B, error]) iter.Seq2[BedEntry[float64], error]

func GcChrSpanFa added in v0.1.25

func GcChrSpanFa[C ChrSpanner, F FaEnter](it iter.Seq2[ChrSpanFa[C, F], error]) iter.Seq2[ChrStat, error]

func GetAlleles

func GetAlleles[V VcfHeader](crossnames []string, dmap map[string]V) (alleles []string, crossToIndex map[string]int)

func GffPhaseStr added in v0.1.23

func GffPhaseStr[G GffHeader](g G) string

func GffScoreStr added in v0.1.23

func GffScoreStr[G GffHeader](g G) string

func GrowLen

func GrowLen[T any](s []T, n int) []T

func InfoToString

func InfoToString[T any](is []InfoPair[T]) (string, error)

func IsNaNOrInf added in v0.1.3

func IsNaNOrInf(x float64) bool

func IterateZipMap added in v0.1.13

func IterateZipMap[T1, T2 any](m map[ChrSpan]OkTuple2[T1, T2]) iter.Seq[BedEntry[Tuple2[T1, T2]]]

func KmerHist

func KmerHist(it iter.Seq[Kmer]) []int64

func KmerIter

func KmerIter(m map[string]int64) iter.Seq[Kmer]

func LineCount added in v0.1.13

func LineCount(r io.Reader) (n int64, err error)

func LineCountPath added in v0.1.13

func LineCountPath(path string) (n int64, err error)

func Mean

func Mean(fs ...float64) float64

func MeanBedPerBp added in v0.1.3

func MeanBedPerBp[B BedEnter[float64]](bed []B) float64

func MeanNoNaN added in v0.1.3

func MeanNoNaN(x []float64) float64

func MeanQual

func MeanQual[F FqEnter](it iter.Seq2[F, error]) (float64, error)

func MeanReadQual

func MeanReadQual[F FqEnter](it iter.Seq2[F, error]) (float64, error)

func MeanWindowCounts added in v0.1.3

func MeanWindowCounts[B BedEnter[float64]](it iter.Seq2[B, error], winsize, winstep int) iter.Seq2[BedEntry[float64], error]

func Must

func Must(err error)

func N50Stats

func N50Stats(lens []FaLen, s *FaStats)

func N50StatsEfficient added in v0.1.18

func N50StatsEfficient(lens []int64, count map[int64]int64, s *FaStats)

func N90Stats

func N90Stats(lens []FaLen, s *FaStats)

func N90StatsEfficient added in v0.1.18

func N90StatsEfficient(lens []int64, count map[int64]int64, s *FaStats)

func NStats

func NStats(lens []FaLen, totalbp int64, nfrac float64, n, l, bpInN *int64)

func NStatsEfficient added in v0.1.18

func NStatsEfficient(lens []int64, counts map[int64]int64, totalbp int64, nfrac float64, n, l, bpInN *int64)

func NameSpan added in v0.1.25

func NameSpan(chr string, start, end int64) string

func NoNaNs added in v0.1.3

func NoNaNs(x []float64) []float64

func NucdiffFullVcfMerge

func NucdiffFullVcfMerge()

func NucdiffReadGff

func NucdiffReadGff[G GffEnter[NucdiffAttr]](d *NucdiffData, crossname string, it iter.Seq2[G, error]) error

func NucdiffReadVcf

func NucdiffReadVcf[V VcfHeader](d *NucdiffVcfData[V], crossname string, it iter.Seq2[V, error]) error

func NucdiffWriteVcf

func NucdiffWriteVcf[V VcfHeader](d *NucdiffVcfData[V], w io.Writer) error

func ParseBed

func ParseBed[FT any](r io.Reader, fieldParse func([]string) (FT, error)) iter.Seq2[BedEntry[FT], error]

func ParseBedFlat

func ParseBedFlat(r io.Reader) iter.Seq2[BedEntry[[]string], error]

func ParseBedGraph added in v0.1.13

func ParseBedGraph(r io.Reader) iter.Seq2[BedEntry[float64], error]

func ParseByteArray added in v0.1.18

func ParseByteArray(s string) ([]byte, error)

func ParseChrSpanner added in v0.1.25

func ParseChrSpanner(path string) iter.Seq2[ChrSpanner, error]

func ParseFasta

func ParseFasta(r io.Reader) iter.Seq2[FaEntry, error]

func ParseFastq

func ParseFastq(r io.Reader) iter.Seq2[FqEntry, error]

func ParseFloatArray added in v0.1.18

func ParseFloatArray(fields []string) ([]float64, error)

func ParseGff

func ParseGff[AT any](r io.Reader, attributeParse func(string) (AT, error)) iter.Seq2[GffEntry[AT], error]

func ParseGffFlat

func ParseGffFlat(r io.Reader) iter.Seq2[GffEntry[[]AttributePair], error]

func ParseInfo added in v0.1.19

func ParseInfo(info string) (keys, vals []string)

func ParseIntArray added in v0.1.18

func ParseIntArray(fields []string) ([]int64, error)

func ParseNumArray added in v0.1.18

func ParseNumArray(s string) (ntype byte, array any, err error)

func ParseSimpleVcf

func ParseSimpleVcf(r io.Reader) iter.Seq2[VcfEntry[struct{}], error]

func ParseVcf

func ParseVcf[T any](r io.Reader, f func(line []string) (T, error)) iter.Seq2[VcfEntry[T], error]

func ParseVcfCore added in v0.1.20

func ParseVcfCore[T any](cr *csv.Reader, f func(line []string) (T, error)) iter.Seq2[VcfEntry[T], error]

func ParseVcfFlat added in v0.1.18

func ParseVcfFlat(r io.Reader) iter.Seq2[VcfEntry[[]string], error]

func ParseVcfMainFields added in v0.1.2

func ParseVcfMainFields[T any](v *VcfEntry[T], line []string) error

func ParseVcfPlusHeader added in v0.1.20

func ParseVcfPlusHeader[T any](r io.Reader, f func(line []string) (T, error)) ([]string, iter.Seq2[VcfEntry[T], error], error)

func PassLine added in v0.1.13

func PassLine(r io.ByteReader, w io.ByteWriter) error

func PrintFaLen

func PrintFaLen(w io.Writer, l FaLen) error

func PrintNewick added in v0.1.18

func PrintNewick(w io.Writer, n *Newick) (nw int, err error)

func PrintNewickDetailed added in v0.1.18

func PrintNewickDetailed(w io.Writer, n *Newick) (nw int, err error)

func QualPerPos

func QualPerPos[F FqEnter](it iter.Seq2[F, error]) ([]float64, error)

func QualScore

func QualScore(qual byte) float64

func QualToAscii

func QualToAscii(qual int64) byte

func RevsortedLensEfficient added in v0.1.18

func RevsortedLensEfficient(it iter.Seq2[FaLen, error]) (lens []int64, counts map[int64]int64, err error)

func Rpkm added in v0.1.13

func Rpkm[B BedEnter[float64]](it iter.Seq[B], totalCov float64) iter.Seq[BedEntry[float64]]

func RpkmAndTotal added in v0.1.13

func RpkmAndTotal[B BedEnter[float64]](it iter.Seq[B]) (rpkm iter.Seq[BedEntry[float64]], totalCov float64)

"it" must be reuseable

func RpkmOne added in v0.1.13

func RpkmOne[B BedEnter[float64]](b B, totalCov float64) float64

func RunBedSortWin added in v0.1.3

func RunBedSortWin()

func RunGC

func RunGC()

func ScanFour

func ScanFour(dest []string, s *bufio.Scanner) ([]string, error)

func ScoreQual

func ScoreQual(score float64) byte

func ShouldFinishWin added in v0.1.3

func ShouldFinishWin(win ChrSpan, next ChrSpan) bool

func ShouldUpdateWin added in v0.1.3

func ShouldUpdateWin(win, next ChrSpan) bool

func SliceIter2 added in v0.1.7

func SliceIter2[S ~[]T, T any](s S) func(func(T, error) bool)

func SortBed added in v0.1.3

func SortBed[C ChrSpanner](bed []C)

func SortedBed added in v0.1.3

func SortedBed[B ChrSpanner](it iter.Seq2[B, error]) ([]B, error)

func SplitChrs added in v0.1.13

func SplitChrs[C ChrSpanner](cit iter.Seq[C]) iter.Seq[iter.Seq[C]]

Requires sorted bed entries

func SplitFq added in v0.1.13

func SplitFq(pieces int, outdir string, paths ...string) error

func SplitOneFq added in v0.1.13

func SplitOneFq(path, pathOutdir, base, outsuffix string, entriesPerPiece int64) (err error)

func SpreadBed

func SpreadBed[B BedEnter[T], T any](it iter.Seq[B]) func(func(BedEntry[T]) bool)

func SpreadBed2 added in v0.1.12

func SpreadBed2[B BedEnter[T], T any](it iter.Seq2[B, error]) func(func(BedEntry[T], error) bool)

func StartOneIndex added in v0.1.10

func StartOneIndex[S Spanner](s S) int64

func StructuredVcfEntryToCsv

func StructuredVcfEntryToCsv[InfoT any, SampleT Formatter](buf []string, v VcfEntry[StructuredInfoSamples[InfoT, SampleT]]) ([]string, error)

func ToBedGraphEntry added in v0.1.13

func ToBedGraphEntry[B BedEnter[[]string]](col int) func(B) (BedEntry[float64], error)

func WinAvgSortedBed added in v0.1.13

func WinAvgSortedBed[B BedEnter[float64]](it iter.Seq2[B, error], winsize, winstep int) iter.Seq2[BedEntry[float64], error]

func WinSumSortedBed added in v0.1.18

func WinSumSortedBed[B BedEnter[float64]](it iter.Seq2[B, error], winsize, winstep int, perBp bool) iter.Seq2[BedEntry[float64], error]

func WindowBed added in v0.1.13

func WindowBed[B BedEnter[T], T any](it iter.Seq[B], winsize, winstep int) iter.Seq[BedEntry[[]T]]

Requires sorted bed entries

func WindowBedWeak added in v0.1.13

func WindowBedWeak[B BedEnter[T], T any](it iter.Seq[B], winsize, winstep int) iter.Seq[BedEntry[[]T]]

Requires sorted bed entries

func WindowSortedBed added in v0.1.3

func WindowSortedBed[B ChrSpanner](it iter.Seq2[B, error], winsize, winstep int) func(func(BedEntry[[]B], error) bool)

func Wins

func Wins(start, end, size, step int64) iter.Seq[Span]

func WriteBedEnterFlat added in v0.1.23

func WriteBedEnterFlat[B BedEnter[[]T], T any](w io.Writer, b B) error

func WriteBedEnterSingle added in v0.1.23

func WriteBedEnterSingle[B BedEnter[T], T any](w io.Writer, b B) error

func WriteBedEntry added in v0.1.23

func WriteBedEntry[B BedEnter[T], T any](w io.Writer, b B, writeFields func(io.Writer, T) error) error

func WriteBedHeader added in v0.1.23

func WriteBedHeader[B ChrSpanner](w io.Writer, b B) error

func WriteFa added in v0.1.5

func WriteFa[F FaEnter](w io.Writer, it iter.Seq2[F, error]) error

func WriteFaEntries added in v0.1.5

func WriteFaEntries[F FaEnter](w io.Writer, fs ...F) error

func WriteFloatBed added in v0.1.3

func WriteFloatBed[B BedEnter[float64]](w io.Writer, it iter.Seq2[B, error]) (n int, err error)

func WriteFloatBedEntry added in v0.1.3

func WriteFloatBedEntry[B BedEnter[float64]](w io.Writer, b B) (n int, err error)

func WriteGC

func WriteGC[B BedEnter[float64]](w io.Writer, it iter.Seq2[B, error]) (n int, err error)

func WriteGffAttributePairs added in v0.1.23

func WriteGffAttributePairs(w io.Writer, pairs []AttributePair) error

func WriteGffEntry added in v0.1.23

func WriteGffEntry[G GffEnter[T], T any](w io.Writer, g G, f func(io.Writer, T) error) error

func WriteGffFlat added in v0.1.23

func WriteGffFlat[G GffEnter[[]AttributePair]](w io.Writer, g G) error

func WriteGffHeader added in v0.1.23

func WriteGffHeader[G GffHeader](w io.Writer, g G) error

func WriteLines added in v0.1.13

func WriteLines(w io.Writer, lines []string) error

func ZipMatchedSorted added in v0.1.13

func ZipMatchedSorted[B1 BedEnter[T1], B2 BedEnter[T2], T1, T2 any](it1 iter.Seq[B1], it2 iter.Seq[B2]) iter.Seq2[BedEntry[Tuple2[T1, T2]], error]

func ZipMatches added in v0.1.13

func ZipMatches[B1 BedEnter[T1], B2 BedEnter[T2], T1, T2 any](it1 iter.Seq[B1], it2 iter.Seq[B2]) map[ChrSpan]OkTuple2[T1, T2]

Types

type AttributePair

type AttributePair struct {
	Tag   string
	Value string
}

func ParseAttributePairs

func ParseAttributePairs(field string) ([]AttributePair, error)

type AutoCorrelationFlags added in v0.1.13

type AutoCorrelationFlags struct {
	Lag     int
	Winsize int
	Winstep int
	Col     int
}

type BedEnter added in v0.1.7

type BedEnter[FieldsT any] interface {
	ChrSpanner
	BedFields() FieldsT
}

type BedEntry

type BedEntry[FieldsT any] struct {
	ChrSpan
	Fields FieldsT
}

func BedZip added in v0.1.13

func BedZip[B1 BedEnter[[]string], B2 BedEnter[[]string]](it1 iter.Seq[B1], it2 iter.Seq[B2]) []BedEntry[[]string]

func ParseBedEntry

func ParseBedEntry[FT any](line []string, fieldParse func([]string) (FT, error)) (BedEntry[FT], error)

func ToBedEntry added in v0.1.8

func ToBedEntry[B BedEnter[FieldsT], FieldsT any](b B) BedEntry[FieldsT]

func (BedEntry[T]) BedFields added in v0.1.7

func (b BedEntry[T]) BedFields() T

type BedSortWinFlags added in v0.1.3

type BedSortWinFlags struct {
	Sorted  bool
	Winsize int
	Winstep int
}

type CIGAREntry added in v0.1.18

type CIGAREntry struct {
	Letter byte
	Count  int64
}

func ParseCIGAR added in v0.1.18

func ParseCIGAR(cigar string) ([]CIGAREntry, error)

type ChrSpan

type ChrSpan struct {
	Chr string
	Span
}

func GetSortedChrSpans

func GetSortedChrSpans[V VcfHeader](d *NucdiffVcfData[V]) []ChrSpan

func ToChrSpan added in v0.1.8

func ToChrSpan[C ChrSpanner](c C) ChrSpan

func UpdateWin added in v0.1.3

func UpdateWin(win ChrSpan, chr string, winsize, winstep int) ChrSpan

func (ChrSpan) SpanChr added in v0.1.7

func (c ChrSpan) SpanChr() string

type ChrSpanFa added in v0.1.25

type ChrSpanFa[C ChrSpanner, F FaEnter] struct {
	ChrSpanner C
	FaEnter    F
}

type ChrSpanner added in v0.1.7

type ChrSpanner interface {
	Spanner
	SpanChr() string
}

type ChrStat added in v0.1.25

type ChrStat struct {
	Chr  string
	Stat float64
}

type Deque added in v0.1.3

type Deque[T any] struct {
	// contains filtered or unexported fields
}

func (*Deque[T]) AppendToSlice added in v0.1.3

func (d *Deque[T]) AppendToSlice(s []T) []T

func (*Deque[T]) Get added in v0.1.3

func (d *Deque[T]) Get(i int) T

func (*Deque[T]) Grow added in v0.1.3

func (d *Deque[T]) Grow()

func (*Deque[T]) Len added in v0.1.3

func (d *Deque[T]) Len() int

func (*Deque[T]) PopBack added in v0.1.3

func (d *Deque[T]) PopBack() (val T, ok bool)

func (*Deque[T]) PopFront added in v0.1.3

func (d *Deque[T]) PopFront() (val T, ok bool)

func (*Deque[T]) PushBack added in v0.1.3

func (d *Deque[T]) PushBack(vals ...T)

func (*Deque[T]) PushFront added in v0.1.3

func (d *Deque[T]) PushFront(val T)

func (*Deque[T]) Set added in v0.1.3

func (d *Deque[T]) Set(i int, val T) bool

type FaEnter added in v0.1.7

type FaEnter interface {
	FaHeader() string
	FaSeq() string
}

type FaEntry

type FaEntry struct {
	Header string
	Seq    string
}

func ExtractOne

func ExtractOne(f FaEntry, s Span) (FaEntry, error)

func ToFaEntry added in v0.1.8

func ToFaEntry[F FaEnter](f F) FaEntry

func (FaEntry) FaHeader added in v0.1.7

func (f FaEntry) FaHeader() string

func (FaEntry) FaSeq added in v0.1.7

func (f FaEntry) FaSeq() string

type FaLen

type FaLen struct {
	Name string
	Len  int64
}

func Chrlen

func Chrlen[F FaEnter](f F) FaLen

func RevsortedLens

func RevsortedLens(it iter.Seq2[FaLen, error]) ([]FaLen, error)

type FaStats

type FaStats struct {
	Bp      int64
	MeanLen float64
	NumSeqs int64
	N50     int64
	L50     int64
	BpInN50 int64
	N90     int64
	L90     int64
	BpInN90 int64
}

func Stats

func Stats(it iter.Seq2[FaLen, error]) (FaStats, error)

type Formatter

type Formatter interface {
	Format(format string) string
}

type FqEnter added in v0.1.7

type FqEnter interface {
	FaEnter
	FqQual() string
}

type FqEntry

type FqEntry struct {
	FaEntry
	Qual string
}

func ToFqEntry added in v0.1.8

func ToFqEntry[F FqEnter](f F) FqEntry

func (FqEntry) FqQual added in v0.1.7

func (f FqEntry) FqQual() string

type FullRpkmFlags added in v0.1.23

type FullRpkmFlags struct {
	BedPath       string
	TotalCoverage float64
}

type GffEnter added in v0.1.7

type GffEnter[AttT any] interface {
	GffHeader
	GffAttributes() AttT
}

type GffEntry

type GffEntry[AttT any] struct {
	GffHead
	Attributes AttT
}

func ParseGffEntry

func ParseGffEntry[AT any](line []string, attributeParse func(string) (AT, error)) (GffEntry[AT], error)

func ToGffEntry added in v0.1.8

func ToGffEntry[G GffEnter[AttT], AttT any](g G) GffEntry[AttT]

func (GffEntry[T]) GffAttributes added in v0.1.7

func (g GffEntry[T]) GffAttributes() T

type GffHead added in v0.1.7

type GffHead struct {
	ChrSpan
	Source   string
	Type     string
	Score    float64
	HasScore bool
	Strand   byte
	Phase    int
	HasPhase bool
}

func ToGffHead added in v0.1.8

func ToGffHead[G GffHeader](g G) GffHead

func (GffHead) GffHasPhase added in v0.1.7

func (g GffHead) GffHasPhase() bool

func (GffHead) GffHasScore added in v0.1.7

func (g GffHead) GffHasScore() bool

func (GffHead) GffPhase added in v0.1.7

func (g GffHead) GffPhase() int

func (GffHead) GffScore added in v0.1.7

func (g GffHead) GffScore() float64

func (GffHead) GffSource added in v0.1.7

func (g GffHead) GffSource() string

func (GffHead) GffStrand added in v0.1.7

func (g GffHead) GffStrand() byte

func (GffHead) GffType added in v0.1.7

func (g GffHead) GffType() string

type GffHeader added in v0.1.7

type GffHeader interface {
	ChrSpanner
	GffSource() string
	GffType() string
	GffScore() float64
	GffHasScore() bool
	GffStrand() byte
	GffPhase() int
	GffHasPhase() bool
}

type InfoPair

type InfoPair[T any] struct {
	Key string
	Val T
}

type Kmer

type Kmer struct {
	Seq   string
	Count int64
}

type Newick added in v0.1.18

type Newick struct {
	Name     string
	Length   float64
	Children []*Newick
}

func ParseNewick added in v0.1.18

func ParseNewick(r io.Reader) (*Newick, error)

func (*Newick) String added in v0.1.18

func (n *Newick) String() string

type NucdiffAttr

type NucdiffAttr struct {
	ID         string
	Name       string
	Len        int
	QueryDir   int
	QuerySeq   string
	QueryStart int
	QueryEnd   int
	QueryBases string
	RefBases   string
	Color      string
}

func ParseNucdiffAttr

func ParseNucdiffAttr(in string) (NucdiffAttr, error)

type NucdiffData

type NucdiffData struct {
	CrossNames []string
	M          map[ChrSpan]map[string]NucdiffAttr
}

func NucdiffReadGffs

func NucdiffReadGffs(paths []string) (*NucdiffData, error)

type NucdiffGT

type NucdiffGT struct {
	Ref    int
	Alt    int
	Phased bool
}

type NucdiffVcfData

type NucdiffVcfData[V VcfHeader] struct {
	RefName    string
	CrossNames []string
	M          map[ChrSpan]map[string]V
}

func NucdiffReadVcfs

func NucdiffReadVcfs(refname string, crossnames []string, paths []string) (*NucdiffVcfData[VcfEntry[struct{}]], error)

type NucdiffVcfPair

type NucdiffVcfPair struct {
	Name string
	Path string
}

func ReadNucdiffVcfPairs

func ReadNucdiffVcfPairs(r io.Reader) ([]NucdiffVcfPair, error)

type OkTuple2 added in v0.1.13

type OkTuple2[T, U any] struct {
	Tuple2[T, U]
	Ok bool
}

type SamAlignment added in v0.1.18

type SamAlignment struct {
	Qname string
	Flag  uint16
	Rname string
	Pos   int64
	Mapq  int64
	CIGAR string
	Rnext string
	Pnext int64
	Tlen  int64
	Seq   string
	Qual  string
}

func ParseSamAlignment added in v0.1.18

func ParseSamAlignment(line []string) (SamAlignment, error)

type SamEntry added in v0.1.18

type SamEntry struct {
	IsHeader bool
	Header   string
	SamAlignment
	Optional []SamOptional
}

func ParseSamEntry added in v0.1.18

func ParseSamEntry(s string) (SamEntry, error)

func ParseSamHeading added in v0.1.18

func ParseSamHeading(s string) SamEntry

type SamOptional added in v0.1.18

type SamOptional struct {
	Tag          [2]byte
	Type         byte
	Char         byte
	Int          int64
	Float        float64
	String       string
	ByteArray    []byte
	NumArrayType byte
	IntArray     []int64
	FloatArray   []float64
}

func ParseSamOptional added in v0.1.18

func ParseSamOptional(s string) (SamOptional, error)

func ParseSamOptionals added in v0.1.18

func ParseSamOptionals(s string) ([]SamOptional, error)

type SampleSet

type SampleSet[T Formatter] struct {
	Format  []string
	Samples [][]T
}

type Span

type Span struct {
	Start int64
	End   int64
}

func ToSpan added in v0.1.8

func ToSpan[S Spanner](s S) Span

func (Span) SpanEnd added in v0.1.7

func (s Span) SpanEnd() int64

func (Span) SpanStart added in v0.1.7

func (s Span) SpanStart() int64

type Spanner added in v0.1.7

type Spanner interface {
	SpanStart() int64
	SpanEnd() int64
}

type StringFormatter

type StringFormatter string

func (StringFormatter) Format

func (f StringFormatter) Format(format string) string

type StructuredInfoSamples

type StructuredInfoSamples[InfoT any, SampleT Formatter] struct {
	Info    []InfoPair[InfoT]
	Samples SampleSet[SampleT]
}

type Tuple2 added in v0.1.13

type Tuple2[T, U any] struct {
	V1 T
	V2 U
}

type VcfEnter added in v0.1.7

type VcfEnter[T any] interface {
	VcfHeader
	VcfInfoAndSamples() T
}

type VcfEntry

type VcfEntry[T any] struct {
	VcfHead
	InfoAndSamples T
}

func MergeNucdiffVcfEntries

func MergeNucdiffVcfEntries[V VcfHeader](d *NucdiffVcfData[V], refname string, crossnames []string, crossidxs map[string]int, chrspan ChrSpan) VcfEntry[StructuredInfoSamples[string, StringFormatter]]

func ParseSimpleVcfEntry

func ParseSimpleVcfEntry(line []string) (VcfEntry[struct{}], error)

func ParseVcfEntry

func ParseVcfEntry[T any](line []string, f func(line []string) (T, error)) (VcfEntry[T], error)

func ToVcfEntry added in v0.1.8

func ToVcfEntry[V VcfEnter[T], T any](v V) VcfEntry[T]

func (VcfEntry[T]) VcfInfoAndSamples added in v0.1.7

func (v VcfEntry[T]) VcfInfoAndSamples() T

type VcfHead added in v0.1.7

type VcfHead struct {
	ChrSpan
	ID     string
	Ref    string
	Alts   []string
	Qual   float64
	Filter string
}

func ParseVcfHead added in v0.1.10

func ParseVcfHead(line []string) (VcfHead, error)

func ToVcfHead added in v0.1.8

func ToVcfHead[V VcfHeader](v V) VcfHead

func (VcfHead) VcfAlts added in v0.1.7

func (v VcfHead) VcfAlts() []string

func (VcfHead) VcfFilter added in v0.1.7

func (v VcfHead) VcfFilter() string

func (VcfHead) VcfID added in v0.1.7

func (v VcfHead) VcfID() string

func (VcfHead) VcfQual added in v0.1.7

func (v VcfHead) VcfQual() float64

func (VcfHead) VcfRef added in v0.1.7

func (v VcfHead) VcfRef() string

type VcfHeader added in v0.1.7

type VcfHeader interface {
	ChrSpanner
	VcfID() string
	VcfRef() string
	VcfAlts() []string
	VcfQual() float64
	VcfFilter() string
}

type VcfInfoSamples added in v0.1.23

type VcfInfoSamples struct {
	InfoKeys []string
	InfoVals []string
	Format   []string
	Samples  [][]string
}

func ParseVcfInfoSamples added in v0.1.23

func ParseVcfInfoSamples(line []string) (VcfInfoSamples, error)

type WinAvgSortedBedFlags added in v0.1.13

type WinAvgSortedBedFlags struct {
	WinSize int
	WinStep int
}

type WinSumSortedBedFlags added in v0.1.18

type WinSumSortedBedFlags struct {
	WinSize int
	WinStep int
	PerBp   bool
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL