ManifoldLearning methods broken?

I am trying to get the methods in the ManifoldLearning.jl package running and get the following error messages… I use the sample code from the documentation.

# Isomap
Y_Isomap = transform(Isomap,data_array; k=12,d=2)

MethodError: no method matching Dict(::Array{Int64,1}, ::UnitRange{Int64})
Closest candidates are:
Dict(::Any) at dict.jl:144
#transform#6(::Int64, ::Int64, ::Function, ::Type{ManifoldLearning.Isomap}, ::Array{Float64,2}) at isomap.jl:59
(::MultivariateStats.#kw##transform)(::Array{Any,1}, ::MultivariateStats.#transform, ::Type{ManifoldLearning.Isomap}, ::Array{Float64,2}) at :0
include_string(::String, ::String) at loading.jl:522
include_string(::String, ::String, ::Int64) at eval.jl:30
include_string(::Module, ::String, ::String, ::Int64, ::Vararg{Int64,N} where N) at eval.jl:34
(::Atom.##100#105{String,Int64,String})() at eval.jl:75
withpath(::Atom.##100#105{String,Int64,String}, ::String) at utils.jl:30
withpath(::Function, ::String) at eval.jl:38
hideprompt(::Atom.##99#104{String,Int64,String}) at repl.jl:59
macro expansion at eval.jl:73 [inlined]
(::Atom.##98#103{Dict{String,Any}})() at task.jl:80

# Diffusion maps
Y_DiffMap = transform(DiffMap, data_array; d=2, t=1, ɛ=1.0)

UndefVarError: transform! not defined
#transform#19(::Int64, ::Int64, ::Float64, ::Function, ::Type{ManifoldLearning.DiffMap}, ::Array{Float64,2}) at diffmaps.jl:37
(::MultivariateStats.#kw##transform)(::Array{Any,1}, ::MultivariateStats.#transform, ::Type{ManifoldLearning.DiffMap}, ::Array{Float64,2}) at :0
include_string(::String, ::String) at loading.jl:522
include_string(::String, ::String, ::Int64) at eval.jl:30
include_string(::Module, ::String, ::String, ::Int64, ::Vararg{Int64,N} where N) at eval.jl:34
(::Atom.##100#105{String,Int64,String})() at eval.jl:75
withpath(::Atom.##100#105{String,Int64,String}, ::String) at utils.jl:30
withpath(::Function, ::String) at eval.jl:38
hideprompt(::Atom.##99#104{String,Int64,String}) at repl.jl:59
macro expansion at eval.jl:73 [inlined]
(::Atom.##98#103{Dict{String,Any}})() at task.jl:80

# Local linear embedding
Y_LLE = transform(LLE, data_array; k = 12, d = 2)

MethodError: no method matching Dict(::Array{Int64,1}, ::UnitRange{Int64})
Closest candidates are:
Dict(::Any) at dict.jl:144
#transform#12(::Int64, ::Int64, ::Function, ::Type{ManifoldLearning.LLE}, ::Array{Float64,2}) at lle.jl:51
(::MultivariateStats.#kw##transform)(::Array{Any,1}, ::MultivariateStats.#transform, ::Type{ManifoldLearning.LLE}, ::Array{Float64,2}) at :0
include_string(::String, ::String) at loading.jl:522
include_string(::String, ::String, ::Int64) at eval.jl:30
include_string(::Module, ::String, ::String, ::Int64, ::Vararg{Int64,N} where N) at eval.jl:34
(::Atom.##100#105{String,Int64,String})() at eval.jl:75
withpath(::Atom.##100#105{String,Int64,String}, ::String) at utils.jl:30
withpath(::Function, ::String) at eval.jl:38
hideprompt(::Atom.##99#104{String,Int64,String}) at repl.jl:59
macro expansion at eval.jl:73 [inlined]
(::Atom.##98#103{Dict{String,Any}})() at task.jl:80

# Hessian Eigenmaps transformation
Y_HLLE = transform(HLLE, data_array; k = 12, d = 2)

UndefVarError: int not defined
#transform#9(::Int64, ::Int64, ::Function, ::Type{ManifoldLearning.HLLE}, ::Array{Float64,2}) at hlle.jl:44
(::MultivariateStats.#kw##transform)(::Array{Any,1}, ::MultivariateStats.#transform, ::Type{ManifoldLearning.HLLE}, ::Array{Float64,2}) at :0
include_string(::String, ::String) at loading.jl:522
include_string(::String, ::String, ::Int64) at eval.jl:30
include_string(::Module, ::String, ::String, ::Int64, ::Vararg{Int64,N} where N) at eval.jl:34
(::Atom.##100#105{String,Int64,String})() at eval.jl:75
withpath(::Atom.##100#105{String,Int64,String}, ::String) at utils.jl:30
withpath(::Function, ::String) at eval.jl:38
hideprompt(::Atom.##99#104{String,Int64,String}) at repl.jl:59
macro expansion at eval.jl:73 [inlined]
(::Atom.##98#103{Dict{String,Any}})() at task.jl:80

And when I try to plot it, I get

scatter(Y_LEM, title="LEM - ManifoldLearning")

No user recipe defined for ManifoldLearning.LEM
macro expansion at series.jl:132 [inlined]
apply_recipe(::Dict{Symbol,Any}, ::Type{Plots.SliceIt}, ::Void, ::ManifoldLearning.LEM, ::Void) at RecipesBase.jl:287
_process_userrecipes(::Plots.Plot{Plots.GRBackend}, ::Dict{Symbol,Any}, ::Tuple{ManifoldLearning.LEM}) at pipeline.jl:81
_plot!(::Plots.Plot{Plots.GRBackend}, ::Dict{Symbol,Any}, ::Tuple{ManifoldLearning.LEM}) at plot.jl:177
(::RecipesBase.#kw##plot)(::Array{Any,1}, ::RecipesBase.#plot, ::ManifoldLearning.LEM) at :0
#scatter#632(::Array{Any,1}, ::Function, ::ManifoldLearning.LEM, ::Vararg{ManifoldLearning.LEM,N} where N) at RecipesBase.jl:381
(::Plots.#kw##scatter)(::Array{Any,1}, ::Plots.#scatter, ::ManifoldLearning.LEM, ::Vararg{ManifoldLearning.LEM,N} where N) at :0
include_string(::String, ::String) at loading.jl:522
include_string(::String, ::String, ::Int64) at eval.jl:30
include_string(::Module, ::String, ::String, ::Int64, ::Vararg{Int64,N} where N) at eval.jl:34
(::Atom.##100#105{String,Int64,String})() at eval.jl:75
withpath(::Atom.##100#105{String,Int64,String}, ::String) at utils.jl:30
withpath(::Function, ::String) at eval.jl:38
hideprompt(::Atom.##99#104{String,Int64,String}) at repl.jl:59
macro expansion at eval.jl:73 [inlined]
(::Atom.##98#103{Dict{String,Any}})() at task.jl:80

my data_array is a 547×96 Array{Float64,2}.

Help much appreciated!

Are these methods working for anyone?

These might be helpful

int(x) = Int(x);
base.Dict(x::Array{Int64, 1}, y::UnitRange{Int64}) = Dict(x=>y);

Could you please elaborate a bit. It is still returning the same error messages.
If you get any of the methods above running, could you please provide some sample code? Thanks.

I’m having the same problem as burfel (I’m using julia v0.6.3). I tried y4lu’s suggested fix, and that didn’t help. Are others having the same problem? Should this be raised in a different forum?

You can try opening an issue at the repo

but there seems to be no recent activity so it may be abandonned.

It works on the master branch.