## SequencerJ.jl

Julia-language port of the Sequencer algorithm, originally developed in python (https://github.com/dalya/Sequencer). The Sequencer finds trends in 1-dimensional data sets and has been used by its original authors for data analysis in astrophysics, seismology, image processing, etc. Contributions are welcome!
Author turingtest37
Popularity
4 Stars
Updated Last
1 Year Ago
Started In
August 2020

# SequencerJ

SequencerJ is a pure Julia implementation of the Sequencer Algorithm, a data analysis tool to identify and extract the principal trends in a set of 1-d data vectors.

Getting started with SequencerJ is easy. From the Julia REPL:

```    julia> using Pkg; Pkg.add("SequencerJ")
[...]
julia> using SequencerJ
[ Info: Precompiling SequencerJ [348581b9-6e84-42e0-ac4e-fe9177c221e6]
[...]```

You may get WARNINGs upon compilation. Sorry, I'm working on that! You can safely ignore them for most purposes, but if you are developing SequencerJ locally and use the `Revise` package, note that you may have to restart your Julia environment more often than usual.

```    julia> A = rand(50,100); #some data to process.

julia> m = ALL_METRICS
(Euclidean(0.0), EMD(nothing), KLDivergence(), Energy(nothing))

julia> s = (1,2,4)
(1, 2, 4)

julia> seqres = sequence(A; metrics=m, scales=s)
┌ Info: Sequencing data with
│     shape: (50, 100)
│     metric(s): (Euclidean(0.0), EMD(nothing), KLDivergence(), Energy(nothing))
└     scale(s): (1, 2, 4)
[...]```

`seqres` is a `SequencerResult` type that may be used to retrieve results of the sequencing run. The `order` function returns the best reordering of the data columns that was found.

```    julia> bestseq = order(seqres)
100-element Array{Int64,1}:
10
15
13
[...]```

The Sequencer also calculates a fitness coefficient `η` that can be used to compare quality of solutions using various metrics and scales against the same data. Bigger is better. η is returned by the `elong` function.

```    julia> eta = elong(seqres)
6.2345```

The paper that describes the Sequencer algorithm and its applications can be found on Arxiv: [https://arxiv.org/abs/2006.13948].

### Used By Packages

No packages found.