https://github.com/andrew-saydjari/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!

https://github.com/andrew-saydjari/sequencerj.jl

Science Score: 10.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.9%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

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!

Basic Info
  • Host: GitHub
  • Owner: andrew-saydjari
  • License: mit
  • Language: Julia
  • Default Branch: master
  • Homepage:
  • Size: 564 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Fork of turingtest37/SequencerJ.jl
Created over 3 years ago · Last pushed over 3 years ago
Metadata Files
Readme License

README.md

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 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 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 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 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].

Owner

  • Name: Andrew Saydjari
  • Login: andrew-saydjari
  • Kind: user
  • Location: Cambridge, MA
  • Company: @Harvard

5th Year PhD student @ Harvard Physics. BS/MS @ Yale '18. I am an astronomer interested in data science working on dust.

GitHub Events

Total
Last Year