fastats

package
v0.1.6 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2024 License: AGPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

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 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 BasicStats

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

func BedSortWin added in v0.1.3

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

func BuildQual

func BuildQual(qual byte, length int) string

func CheckAndPopMulti added in v0.1.3

func CheckAndPopMulti[T any](win ChrSpan, d *Deque[BedEntry[T]])

func ChrSpanLess

func ChrSpanLess(x, y ChrSpan) bool

func Chrlens

func Chrlens(it iter.Iter[FaEntry]) *iter.Iterator[FaLen]

func CollectChrSpanMap

func CollectChrSpanMap(cit iter.Iter[ChrSpan]) (map[string][]Span, error)

func CountKmers

func CountKmers(it iter.Iter[FaEntry], k int) (map[string]int64, error)

func CreateMaybeGz

func CreateMaybeGz(path string) (io.WriteCloser, error)

func ExtractFasta

func ExtractFasta(fit iter.Iter[FaEntry], cit iter.Iter[ChrSpan]) *iter.Iterator[FaEntry]

func FaEntryWins

func FaEntryWins(fe FaEntry, size int64, step int64) *iter.Iterator[BedEntry[string]]

func FaQualMerge

func FaQualMerge(fit iter.Puller[FaEntry], qit iter.Puller[[]int64]) iter.Iter[FqEntry]

func FaToFq

func FaToFq(fit iter.Iter[FaEntry], qual byte) *iter.Iterator[FqEntry]

func FaWins

func FaWins(fa iter.Iter[FaEntry], size int64, step int64) *iter.Iterator[BedEntry[string]]

func FlatToFloatBed added in v0.1.3

func FlatToFloatBed(it iter.Iter[BedEntry[[]string]]) *iter.Iterator[BedEntry[float64]]

func FormatSample

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

func FqChrlens

func FqChrlens(it iter.Iter[FqEntry]) *iter.Iterator[FaLen]

func FullChrlens

func FullChrlens()

func FullCountKmers

func FullCountKmers()

func FullFaStats

func FullFaStats()

func FullFqChrlens

func FullFqChrlens()

func FullFqStats

func FullFqStats()

func FullKmerHist

func FullKmerHist()

func FullQualPerPos

func FullQualPerPos()

func FullToFa

func FullToFa()

func FullyLeftOf added in v0.1.3

func FullyLeftOf(x, y ChrSpan) bool

func GCFrac

func GCFrac(seq string) float64

func GCIter

func GCIter(views iter.Iter[BedEntry[string]]) *iter.Iterator[BedEntry[float64]]

func GetAlleles

func GetAlleles(crossnames []string, dmap map[string]VcfEntry[struct{}]) (alleles []string, crossToIndex map[string]int)

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 KmerHist

func KmerHist(it iter.Iter[Kmer]) ([]int64, error)

func KmerIter

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

func Mean

func Mean(fs ...float64) float64

func MeanBedPerBp added in v0.1.3

func MeanBedPerBp(bed []BedEntry[float64]) float64

func MeanNoNaN added in v0.1.3

func MeanNoNaN(x []float64) float64

func MeanQual

func MeanQual(it iter.Iter[FqEntry]) (float64, error)

func MeanReadQual

func MeanReadQual(it iter.Iter[FqEntry]) (float64, error)

func MeanWindowCounts added in v0.1.3

func MeanWindowCounts(it iter.Iter[BedEntry[float64]], winsize, winstep int) *iter.Iterator[BedEntry[float64]]

func Must

func Must(err error)

func N50Stats

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

func N90Stats

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

func NStats

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

func NoNaNs added in v0.1.3

func NoNaNs(x []float64) []float64

func NucdiffFullVcfMerge

func NucdiffFullVcfMerge()

func NucdiffReadGff

func NucdiffReadGff(d *NucdiffData, crossname string, it iter.Iter[GffEntry[NucdiffAttr]]) error

func NucdiffReadVcf

func NucdiffReadVcf(d *NucdiffVcfData, crossname string, it iter.Iter[VcfEntry[struct{}]]) error

func NucdiffWriteVcf

func NucdiffWriteVcf(d *NucdiffVcfData, w io.Writer) error

func OpenMaybeGz

func OpenMaybeGz(path string) (io.ReadCloser, error)

func ParseBed

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

func ParseBedFlat

func ParseBedFlat(r io.Reader) *iter.Iterator[BedEntry[[]string]]

func ParseFasta

func ParseFasta(r io.Reader) *iter.Iterator[FaEntry]

func ParseFastq

func ParseFastq(r io.Reader) *iter.Iterator[FqEntry]

func ParseGff

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

func ParseGffFlat

func ParseGffFlat(r io.Reader) *iter.Iterator[GffEntry[[]AttributePair]]

func ParseSimpleVcf

func ParseSimpleVcf(r io.Reader) *iter.Iterator[VcfEntry[struct{}]]

func ParseVcf

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

func ParseVcfMainFields added in v0.1.2

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

func PrintFaLen

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

func QualPerPos

func QualPerPos(it iter.Iter[FqEntry]) ([]float64, error)

func QualScore

func QualScore(qual byte) float64

func QualToAscii

func QualToAscii(qual int64) byte

func RunBedSortWin added in v0.1.3

func RunBedSortWin()

func RunGC

func RunGC()

func Scan

func Scan(line []string, ptrs ...any) (n int, err error)

func ScanDot

func ScanDot(line []string, ptrs ...any) (n int, err error)

func ScanF

func ScanF(f func(string, any) (int, error), line []string, ptrs ...any) (n int, err error)

func ScanFour

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

func ScanOne

func ScanOne(field string, ptr any) (n int, err error)

func ScanOneDot

func ScanOneDot(field string, ptr any) (n int, err 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 SortBed added in v0.1.3

func SortBed[T any](bed []BedEntry[T])

func SpreadBed

func SpreadBed[FT any](it iter.Iter[BedEntry[FT]]) *iter.Iterator[BedEntry[FT]]

func StructuredVcfEntryToCsv

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

func ToFa

func ToFa(it iter.Iter[FqEntry]) *iter.Iterator[FaEntry]

func WindowSortedBed added in v0.1.3

func WindowSortedBed[FT any](it iter.Iter[BedEntry[FT]], winsize, winstep int) *iter.Iterator[BedEntry[[]BedEntry[FT]]]

func Wins

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

func WriteFa added in v0.1.5

func WriteFa(w io.Writer, it iter.Iter[FaEntry]) error

func WriteFaEntries added in v0.1.5

func WriteFaEntries(w io.Writer, fs ...FaEntry) error

func WriteFloatBed added in v0.1.3

func WriteFloatBed(w io.Writer, it iter.Iter[BedEntry[float64]]) (n int, err error)

func WriteFloatBedEntry added in v0.1.3

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

func WriteGC

func WriteGC(w io.Writer, it iter.Iter[BedEntry[float64]]) (n int, err error)

Types

type AttributePair

type AttributePair struct {
	Tag   string
	Value string
}

func ParseAttributePairs

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

type BedEntry

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

func ParseBedEntry

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

func SortedBed added in v0.1.3

func SortedBed[T any](it iter.Iter[BedEntry[T]]) ([]BedEntry[T], error)

type BedSortWinFlags added in v0.1.3

type BedSortWinFlags struct {
	Sorted  bool
	Winsize int
	Winstep int
}

type ChrSpan

type ChrSpan struct {
	Chr string
	Span
}

func GetSortedChrSpans

func GetSortedChrSpans(d *NucdiffVcfData) []ChrSpan

func UpdateWin added in v0.1.3

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

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 FaEntry

type FaEntry struct {
	Header string
	Seq    string
}

func ExtractOne

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

type FaLen

type FaLen struct {
	Name string
	Len  int64
}

func Chrlen

func Chrlen(f FaEntry) FaLen

func RevsortedLens

func RevsortedLens(it iter.Iter[FaLen]) ([]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.Iter[FaLen]) (FaStats, error)

type Formatter

type Formatter interface {
	Format(format string) string
}

type FqEntry

type FqEntry struct {
	FaEntry
	Qual string
}

type GffEntry

type GffEntry[AttT any] struct {
	ChrSpan
	Source     string
	Type       string
	Score      float64
	HasScore   bool
	Strand     byte
	Phase      int
	HasPhase   bool
	Attributes AttT
}

func ParseGffEntry

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

type GzReader

type GzReader struct {
	*gzip.Reader
	// contains filtered or unexported fields
}

func OpenGz

func OpenGz(path string) (*GzReader, error)

func (*GzReader) Close

func (r *GzReader) Close() error

type GzWriter

type GzWriter struct {
	*gzip.Writer
	// contains filtered or unexported fields
}

func CreateGz

func CreateGz(path string) (*GzWriter, error)

func (*GzWriter) Close

func (r *GzWriter) Close() error

type InfoPair

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

type Kmer

type Kmer struct {
	Seq   string
	Count int64
}

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 struct {
	RefName    string
	CrossNames []string
	M          map[ChrSpan]map[string]VcfEntry[struct{}]
}

func NucdiffReadVcfs

func NucdiffReadVcfs(refname string, crossnames []string, paths []string) (*NucdiffVcfData, error)

type NucdiffVcfPair

type NucdiffVcfPair struct {
	Name string
	Path string
}

func ReadNucdiffVcfPairs

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

type Reader

type Reader struct {
	*bufio.Reader
	// contains filtered or unexported fields
}

func Open

func Open(path string) (*Reader, error)

func (*Reader) Close

func (r *Reader) Close() error

type SampleSet

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

type Span

type Span struct {
	Start int64
	End   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 VcfEntry

type VcfEntry[T any] struct {
	ChrSpan
	ID             string
	Ref            string
	Alts           []string
	Qual           int
	Filter         string
	InfoAndSamples T
}

func MergeNucdiffVcfEntries

func MergeNucdiffVcfEntries(d *NucdiffVcfData, 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)

type Writer

type Writer struct {
	*bufio.Writer
	// contains filtered or unexported fields
}

func Create

func Create(path string) (*Writer, error)

func (*Writer) Close

func (w *Writer) Close() error

Jump to

Keyboard shortcuts

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