timbitz / Whippet.jl

Lightweight and Fast; RNA-seq quantification at the event-level
MIT License
103 stars 21 forks source link

whippet-quant ERROR: LoadError: UndefVarError: shuffle not defined #111

Closed rfara closed 3 years ago

rfara commented 3 years ago

Problem:

When running whippet-quant in Whippet v1.0 (Julia v1.1), I get the following error:

Whippet v1.0.0 loading and compiling... 27.673622 seconds. Loading splice graph index... /xxxxxxx/Whippet.jl/index/gencode_29.jls 3.569413 seconds (3.97 M allocations: 811.192 MiB, 26.91% gc time) Processing reads from file... FASTQ_1: /xxxxxxxxxx/rnaseq/HepG2_polyA_nuclear_ENCSR000CPC/ENCFF000GAH.fastq.gz FASTQ_2: /xxxxxxxxxx/rnaseq/HepG2_polyA_nuclear_ENCSR000CPC/ENCFF000GAS.fastq.gz 2585.309987 seconds (5.25 G allocations: 295.872 GiB, 9.11% gc time) Finished mapping 41598589 paired-end reads of length 76 each out of a total of 86000652 mate-pairs... Calculating expression values and MLE of equivalence classes with EM:

  • 65084 multi-gene mapping read equivalence classes...
  • 84534 multi-isoform equivalence classes... 5.692011 seconds (210.79 k allocations: 11.773 MiB) Finished calculating transcripts per million (TpM) after 760 iterations of EM... Assigning multi-mapping reads based on maximum likelihood estimate.. 0.433755 seconds (531.27 k allocations: 34.448 MiB, 5.01% gc time) Calculating maximum likelihood estimate of events... ERROR: LoadError: UndefVarError: shuffle not defined Stacktrace: [1] reduce_graph(::Whippet.PsiGraph, ::Whippet.PsiGraph, ::Int64, ::Int64) at /xxxxxxx/Whippet.jl/src/events.jl:235 [2] reduce_graph at /xxxxxxx/Whippet.jl/src/events.jl:224 [inlined] [3] _process_spliced(::SpliceGraph{9}, ::SpliceGraphQuant{SGAlignPaired,DefaultCounter}, ::UInt32, ::Whippet.EdgeMotif, ::Float64, ::Bool, ::Float64) at /xxxxxxx/Whippet.jl/src/events.jl:700 [4] _process_spliced at /xxxxxxx/Whippet.jl/src/events.jl:651 [inlined] [5] #_process_events#64(::Bool, ::Bool, ::Int64, ::Function, ::BufferedStreams.BufferedOutputStream{Libz.Sink{:deflate,BufferedStreams.BufferedOutputStream{IOStream}}}, ::SpliceGraph{9}, ::SpliceGraphQuant{SGAlignPaired,DefaultCounter}, ::Tuple{String,String,Char}) at /xxxxxxx/Whippet.jl/src/events.jl:787 [6] (::getfield(Whippet, Symbol("#kw##_process_events")))(::NamedTuple{(:isnodeok, :iscircok, :readlen),Tuple{Bool,Bool,Int64}}, ::typeof(Whippet._process_events), ::BufferedStreams.BufferedOutputStream{Libz.Sink{:deflate,BufferedStreams.BufferedOutputStream{IOStream}}}, ::SpliceGraph{9}, ::SpliceGraphQuant{SGAlignPaired,DefaultCounter}, ::Tuple{String,String,Char}) at ./none:0 [7] #process_events#63(::Bool, ::Bool, ::Int64, ::Function, ::String, ::GraphLib, ::GraphLibQuant{SGAlignPaired,DefaultCounter}) at /xxxxxxx/Whippet.jl/src/events.jl:753 [8] (::getfield(Whippet, Symbol("#kw##process_events")))(::NamedTuple{(:isnodeok, :iscircok, :readlen),Tuple{Bool,Bool,Int64}}, ::typeof(process_events), ::String, ::GraphLib, ::GraphLibQuant{SGAlignPaired,DefaultCounter}) at ./none:0 [9] macro expansion at /xxxxxxx/Whippet.jl/src/timer.jl:5 [inlined] [10] main() at /xxxxxxx/Whippet.jl/bin/whippet-quant.jl:181 [11] top-level scope at /xxxxxxx/Whippet.jl/src/timer.jl:5 [12] include at ./boot.jl:326 [inlined] [13] include_relative(::Module, ::String) at ./loading.jl:1038 [14] include(::Module, ::String) at ./sysimg.jl:29 [15] exec_options(::Base.JLOptions) at ./client.jl:267 [16] _start() at ./client.jl:436 in expression starting at /xxxxxxx/Whippet.jl/bin/whippet-quant.jl:185

shuffle not defined occurs because the Random package (containing shuffle function) is somehow not being loaded when using Pkg is called.

This results in the .psi files in the output being truncated, presumable at the point where Whippet encountered a graph that was too complex?

My bad solution:

Added using Random to start of both whippet-quant.jl and events.jl.

This solved the problem.

I suspect something went wrong with installation as I also had to do some weird stuff when installing Whippet, as you can see from my installation notes:

julia --project -e 'using Pkg; Pkg.instantiate()' arpack fails cp {conda env path}/lib/libarpack.so.2.1.0 ~/.julia/packages/Arpack/{some random characters here}/deps/usr/lib/libarpack.so.2.1.0 julia --project -e 'import Pkg;Pkg.build("Arpack")'

boom done it works

Disclaimer: I don't understand Julia or know what I am doing.

timbitz commented 3 years ago

Fixed in master as of #113