BioJulia / GenomicFeatures.jl

Tools for genomic features in Julia.
Other
32 stars 13 forks source link

Julia v0.6 install error, feasible version for package BioSequences. #7

Closed CorySimon closed 6 years ago

CorySimon commented 7 years ago

On Julia v0.6, I try Pkg.add("GenomicFeatures"), and get the following error:

ERROR: resolve is unable to satisfy package requirements.
  The problem was detected when trying to find a feasible version
  for package BioSequences.
  However, this only means that package BioSequences is involved in an
  unsatisfiable or difficult dependency relation, and the root of
  the problem may be elsewhere.

resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}) at ./pkg/resolve.jl:48
resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, ::Dict{String,Tuple{VersionNumber,Bool}}, ::Dict{String,Base.Pkg.Types.Fixed}, ::Dict{String,VersionNumber}, ::Set{String}) at ./pkg/entry.jl:499
resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, ::Dict{String,Tuple{VersionNumber,Bool}}, ::Dict{String,Base.Pkg.Types.Fixed}) at ./pkg/entry.jl:479
edit(::Function, ::String, ::Base.Pkg.Types.VersionSet, ::Vararg{Base.Pkg.Types.VersionSet,N} where N) at ./pkg/entry.jl:30
(::Base.Pkg.Entry.##1#3{String,Base.Pkg.Types.VersionSet})() at ./task.jl:335
Stacktrace:
 [1] sync_end() at ./task.jl:287
 [2] macro expansion at ./task.jl:303 [inlined]
 [3] add(::String, ::Base.Pkg.Types.VersionSet) at ./pkg/entry.jl:51
 [4] (::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}})() at ./pkg/dir.jl:36
 [5] cd(::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}}, ::String) at ./file.jl:70
 [6] #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, ::Vararg{String,N} where N) at ./pkg/dir.jl:36
 [7] add(::String) at ./pkg/pkg.jl:117
CorySimon commented 7 years ago

Oddly Pkg.checkout("GenomicFeatures") gives ERROR: GenomicFeatures is not a git repo.

When I checked out the latest version of IntervalTrees and BioSequences, using GenomicFeatures yielded the error:

INFO: Precompiling module GenomicFeatures.
ERROR: LoadError: LoadError: too many parameters for type
Stacktrace:
 [1] include_from_node1(::String) at ./loading.jl:569
 [2] include(::String) at ./sysimg.jl:14
 [3] include_from_node1(::String) at ./loading.jl:569
 [4] include(::String) at ./sysimg.jl:14
 [5] anonymous at ./<missing>:2
while loading /Users/csimon/.julia/v0.6/GenomicFeatures/src/intervalcollection.jl, in expression starting on line 39
while loading /Users/csimon/.julia/v0.6/GenomicFeatures/src/GenomicFeatures.jl, in expression starting on line 40
ERROR: Failed to precompile GenomicFeatures to /Users/csimon/.julia/lib/v0.6/GenomicFeatures.ji.
Stacktrace:
 [1] compilecache(::String) at ./loading.jl:703
 [2] _require(::Symbol) at ./loading.jl:490
 [3] require(::Symbol) at ./loading.jl:398
bicycle1885 commented 7 years ago

I remember someone reported a very similar problem recently but I couldn't find it. In that case, clean install (e.g. moving the ~/.julia/v0.6 directory somewhere and then running Pkg.update(); Pkg.add("GenomicFeatures")) solved the problem. I guess failing to install some package(s) results in a broken state somehow. This may due to a problem of Julia's package installer.

CorySimon commented 7 years ago

hmm, even on a completely fresh install of Julia v0.6, after installing Bio.jl, I get:

ERROR: resolve is unable to satisfy package requirements.
  The problem was detected when trying to find a feasible version
  for package Libz.
  However, this only means that package Libz is involved in an
  unsatisfiable or difficult dependency relation, and the root of
  the problem may be elsewhere.

resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}) at ./pkg/resolve.jl:48
resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, ::Dict{String,Tuple{VersionNumber,Bool}}, ::Dict{String,Base.Pkg.Types.Fixed}, ::Dict{String,VersionNumber}, ::Set{String}) at ./pkg/entry.jl:499
resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, ::Dict{String,Tuple{VersionNumber,Bool}}, ::Dict{String,Base.Pkg.Types.Fixed}) at ./pkg/entry.jl:479
edit(::Function, ::String, ::Base.Pkg.Types.VersionSet, ::Vararg{Base.Pkg.Types.VersionSet,N} where N) at ./pkg/entry.jl:30
(::Base.Pkg.Entry.##1#3{String,Base.Pkg.Types.VersionSet})() at ./task.jl:335
Stacktrace:
 [1] sync_end() at ./task.jl:287
 [2] macro expansion at ./task.jl:303 [inlined]
 [3] add(::String, ::Base.Pkg.Types.VersionSet) at ./pkg/entry.jl:51
 [4] add(::String) at ./pkg/entry.jl:78
 [5] (::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}})() at ./pkg/dir.jl:36
 [6] cd(::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}}, ::String) at ./file.jl:70
 [7] #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, ::Vararg{String,N} where N) at ./pkg/dir.jl:36
 [8] add(::String) at ./pkg/pkg.jl:117
bicycle1885 commented 7 years ago

Bio.jl is not supported on Julia 0.6 yet. I don't recommend installing it on Julia 0.6 environment.

KarolisM commented 6 years ago

Well, error still persists. After one ~year?

TransGirlCodes commented 6 years ago

@KarolisM You are not the origional reporter of this error, and as @bicycle1885 points out, using Bio.jl was the issue, on julia 0.6 one should simply Pkg.add("BioSequences"), and Pkg.add("GenomicFeatures"), and then using BioSequences, using GenomicFeatures should work, after that point in the thread @CorySimon doesen't report back to say whether or not the issue persists when doing it that way.

@KarolisM Please provide copy and pasted snipped of how you installed relevant packages, and how you are using them in your script so that we may be of greater assistance :smile: and get to the bottom of this.

KarolisM commented 6 years ago

@BenJWard , in that way I can install GenomicFeatures, but still, I need Bio package for reading BAMs for example. The error that I get after trying to install Bio:

 Pkg.add("Bio")
ERROR: resolve is unable to satisfy package requirements.
  The problem was detected when trying to find a feasible version
  for package Compat.
  However, this only means that package Compat is involved in an
  unsatisfiable or difficult dependency relation, and the root of
  the problem may be elsewhere.

resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}) at ./pkg/resolve.jl:48
resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, ::Dict{String,Tuple{VersionNumber,Bool}}, ::Dict{String,Base.Pkg.Types.Fixed}, ::Dict{String,VersionNumber}, ::Set{String}) at ./pkg/entry.jl:499
resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, ::Dict{String,Tuple{VersionNumber,Bool}}, ::Dict{String,Base.Pkg.Types.Fixed}) at ./pkg/entry.jl:479
edit(::Function, ::String, ::Base.Pkg.Types.VersionSet, ::Vararg{Base.Pkg.Types.VersionSet,N} where N) at ./pkg/entry.jl:30
(::Base.Pkg.Entry.##1#3{String,Base.Pkg.Types.VersionSet})() at ./task.jl:335
Stacktrace:
 [1] sync_end() at ./task.jl:287
 [2] macro expansion at ./task.jl:303 [inlined]
 [3] add(::String, ::Base.Pkg.Types.VersionSet) at ./pkg/entry.jl:51
 [4] (::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}})() at ./pkg/dir.jl:36
 [5] cd(::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}}, ::String) at ./file.jl:70
 [6] #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, ::Vararg{String,N} where N) at ./pkg/dir.jl:36
 [7] add(::String) at ./pkg/pkg.jl:117

And vice versa, if I install Bio and then try to add GenomicFeatures:

Pkg.add("GenomicFeatures")
ERROR: resolve is unable to satisfy package requirements.
  The problem was detected when trying to find a feasible version
  for package Compat.
  However, this only means that package Compat is involved in an
  unsatisfiable or difficult dependency relation, and the root of
  the problem may be elsewhere.

resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}) at ./pkg/resolve.jl:48
resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, ::Dict{String,Tuple{VersionNumber,Bool}}, ::Dict{String,Base.Pkg.Types.Fixed}, ::Dict{String,VersionNumber}, ::Set{String}) at ./pkg/entry.jl:499
resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, ::Dict{String,Tuple{VersionNumber,Bool}}, ::Dict{String,Base.Pkg.Types.Fixed}) at ./pkg/entry.jl:479
edit(::Function, ::String, ::Base.Pkg.Types.VersionSet, ::Vararg{Base.Pkg.Types.VersionSet,N} where N) at ./pkg/entry.jl:30
(::Base.Pkg.Entry.##1#3{String,Base.Pkg.Types.VersionSet})() at ./task.jl:335
Stacktrace:
 [1] sync_end() at ./task.jl:287
 [2] macro expansion at ./task.jl:303 [inlined]
 [3] add(::String, ::Base.Pkg.Types.VersionSet) at ./pkg/entry.jl:51
 [4] (::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}})() at ./pkg/dir.jl:36
 [5] cd(::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}}, ::String) at ./file.jl:70
 [6] #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, ::Vararg{String,N} where N) at ./pkg/dir.jl:36
 [7] add(::String) at ./pkg/pkg.jl:117

Currently I am still using Julia 0.5 with Bio, BioSequences packages. I am not sure if exact code is relevant. It simply reads bams, parse GFF3, creates intervals etc. So in principal, I cannot write in Julia 0.6, because there is no way to use GenomicFeatures with Bio at the moment. At least I don't know how to do that.

TransGirlCodes commented 6 years ago

@KarolisM Ah right, you want to read BAM files.

Ok so let's say you upgrade to julia 0.6. Then you need to use BioJulia/BioAlignments.jl as it has BAM and SAM parsing for julia 0.6, as it's a format used for hts alignment.

BioJulia/GenomicFeatures is for annotation formats specifically, so your GFF3s and your intervals and so on.

So leave "Bio" for now, and with julia 0.6, use Pkg.add("GenomicFeatures") and Pkg.add("BioAlignments") (and perhaps Pkg.add("BioSequences") if you're doing any sequence manipulation). Those packages have the funtionality you need. Hope that helps! Feel free to share any specific problems or code snippets you're having trouble with.

KarolisM commented 6 years ago

Thanks @BenJWard ! Most appreciated.