Documentation ¶
Index ¶
- Constants
- Variables
- type Annotator
- func (a *Annotator) AnnotateEnds(v interfaces.Relatable, ends string) error
- func (a *Annotator) AnnotateOne(r interfaces.Relatable, strict bool, end ...string) error
- func (a *Annotator) PostAnnotate(chrom string, start int, end int, info interfaces.Info, prefix string, ...) (error, string)
- func (a *Annotator) Setup(query HeaderUpdater) ([]interfaces.Queryable, error)
- type HeaderTyped
- type HeaderUpdater
- type PostAnnotation
- type Reducer
- type Source
- func (s *Source) AnnotateOne(v interfaces.IVariant, vals []interface{}, prefix string)
- func (s *Source) IsNumber() bool
- func (s *Source) LuaOp(v interfaces.IVariant, code string, vals []interface{}) string
- func (s *Source) UpdateHeader(r HeaderUpdater, ends bool, htype string, number string, desc string)
Constants ¶
const BOTH = "both_"
BOTH prefix
const INTERVAL = ""
INTERVAL prefix
const LEFT = "left_"
LEFT prefix
const RIGHT = "right_"
RIGHT prefix
Variables ¶
var Reducers = map[string]Reducer{ "self": Reducer(self), "concat": Reducer(concat), "count": Reducer(count), "delete": Reducer(delete), "mean": Reducer(mean), "sum": Reducer(sum), "max": Reducer(max), "min": Reducer(min), "uniq": Reducer(uniq), "first": Reducer(first), "flag": Reducer(vflag), "div2": Reducer(div2), "DP2": Reducer(dp2), "setid": Reducer(setid), "by_alt": Reducer(concat), }
Functions ¶
This section is empty.
Types ¶
type Annotator ¶
type Annotator struct { Sources []*Source Strict bool // require a variant to have same ref and share at least 1 alt Ends bool // annotate the ends of the variant in addition to the interval itself. PostAnnos []*PostAnnotation }
Annotator holds the information to annotate a file.
func NewAnnotator ¶
func NewAnnotator(sources []*Source, lua string, ends bool, strict bool, postannos []PostAnnotation) *Annotator
NewAnnotator returns an Annotator with the sources, seeded with some javascript. If ends is true, it will annotate the 1 base ends of the interval as well as the interval itself. If strict is true, when overlapping variants, they must share the ref allele and at least 1 alt allele.
func (*Annotator) AnnotateEnds ¶
func (a *Annotator) AnnotateEnds(v interfaces.Relatable, ends string) error
AnnotateEnds makes a new 1-base interval for the left and one for the right end so that it can use the same machinery to annotate the ends and the entire interval. Output into the info field is prefixed with "left_" or "right_".
func (*Annotator) AnnotateOne ¶
AnnotateOne annotates a relatable with the Sources in an Annotator. In most cases, no need to specify end (it should always be a single arugment indicting LEFT, RIGHT, or INTERVAL, used from AnnotateEnds
func (*Annotator) PostAnnotate ¶ added in v0.0.9
func (a *Annotator) PostAnnotate(chrom string, start int, end int, info interfaces.Info, prefix string, id string) (error, string)
PostAnnotate happens after everything is done.
func (*Annotator) Setup ¶ added in v0.0.9
func (a *Annotator) Setup(query HeaderUpdater) ([]interfaces.Queryable, error)
Setup reads all the tabix indexes and setups up the Queryables
type HeaderTyped ¶ added in v0.0.9
type HeaderTyped interface { GetHeaderType(field string) string GetHeaderNumber(field string) string }
HeaderTyped allows getting the type and Number of a (VCF) field
type HeaderUpdater ¶ added in v0.0.8
type HeaderUpdater interface {
AddInfoToHeader(id string, itype string, number string, description string)
}
HeaderUpdater allows adding an info to a Header
type PostAnnotation ¶ added in v0.0.9
type PostAnnotation struct { Fields []string Op string Name string Type string Vms [8]*goluaez.State // contains filtered or unexported fields }
PostAnnotation is created from the conf file
type Source ¶
type Source struct { File string Op string Name string // Number from header of annotation is A (Number=A) NumberA bool // column number in bed file or ... Column int // info name in VCF. (can also be ID or FILTER). Field string // 0-based index of the file order this source is from. Index int Vm *goluaez.State // contains filtered or unexported fields }
Source holds the information for a single annotation to be added to a query. Many sources can come from the same file, but each must have their own Source.
func (*Source) AnnotateOne ¶ added in v0.0.6
func (s *Source) AnnotateOne(v interfaces.IVariant, vals []interface{}, prefix string)
AnnotateOne annotates a single variant with the vals
func (*Source) IsNumber ¶
IsNumber indicates that we expect the Source to return a number given the op
func (*Source) LuaOp ¶ added in v0.0.9
func (s *Source) LuaOp(v interfaces.IVariant, code string, vals []interface{}) string
LuaOp uses go-lua to run a lua snippet on a list of values and return a single value. It makes the chrom, start, end, and values available to the lua interpreter.
func (*Source) UpdateHeader ¶ added in v0.0.6
UpdateHeader does what it suggests but handles left and right ends for svs