GuoBioinfoLab / CATT

An ultra-sensitive and precise tool for characterizing T cell CDR3 sequences in TCR-seq and RNA-seq data.
http://bioinfo.life.hust.edu.cn/CATT/
19 stars 4 forks source link

Loaderror #15

Open km-2021 opened 10 months ago

km-2021 commented 10 months ago

Hi,

I am experiencing a problem when running the CATT Docker image. The test sample runs fine, but other .fq files fail at the Aligning stage with a LoadError. The files seem to be normal, but they cannot be opened. What could be the cause of this problem?

km-2021 commented 10 months ago

I am experiencing a problem with the git-installed CATT resource folder. The folder does not contain /resource/TR/hs/TRBV.fa and TRBJ.fa, which causes an error. How can I fix this problem?

yangcongyyx commented 4 months ago

Hello, I ran into the same problem when using the author's sample code. I am a first time user and not familiar with julia programming format, how to solve this problem. ?

code

catt -f testSample.fq -o testSampleOutput -t 2

infos

[bwa_idx_build] fail to open file './resource/TR/hs/TRBV.fa' : No such file or directory
[bwa_idx_build] fail to open file './resource/TR/hs/TRBJ.fa' : No such file or directory
[ Info: 2024-02-28 09:32:52] Program start
[ Info: 2024-02-28 09:32:53] Handing Single-end sample: testSample.fq
[ Info: 2024-02-28 09:32:53] Aligning
[ Info: 2024-02-28 09:32:57] Reading aligned results
[ Info: 2024-02-28 09:32:57] Processing both mapped reads
[ Info: 2024-02-28 09:32:57] Sequence error rate: 0.0048
[ Info: 2024-02-28 09:32:57] Adaptive kmer length 23
[ Info: 2024-02-28 09:32:57] Search Range: 1477
[ Info: 2024-02-28 09:32:57] Searching from full candidate reads
[ Info: 2024-02-28 09:32:57] Directly found 761
[ Info: 2024-02-28 09:32:57] Break partital reads into kmer
[ Info: 2024-02-28 09:32:57] There are 716 reads left
[ Info: 2024-02-28 09:32:58] Extending
ERROR: LoadError: TaskFailedException

    nested task error: AssertionError: Multiple concurrent writes to Dict detected!
    Stacktrace:
      [1] rehash!(h::Dict{DNAKmer{23}, Int64}, newsz::Int64)
        @ Base ./dict.jl:208
      [2] _setindex!
        @ ./dict.jl:355 [inlined]
      [3] get!(default::Base.var"#227#228"{Int64}, h::Dict{DNAKmer{23}, Int64}, key::DNAKmer{23, 1})
        @ Base ./dict.jl:477
      [4] get!
        @ ./abstractdict.jl:552 [inlined]
      [5] getindex
        @ ~/miniconda3/envs/catt/share/julia/packages/DataStructures/b0JVf/src/default_dict.jl:63 [inlined]
      [6] getindex
        @ ~/miniconda3/envs/catt/share/julia/packages/DataStructures/b0JVf/src/delegate.jl:21 [inlined]
      [7] fillpo_right!(potential::Vector{Tuple{DNAKmer{23}, Int64, Int64}}, seg::DNAKmer{23, 1}, kpool::DefaultDict{DNAKmer{23}, Int64, Int64})
        @ Main ~/IRtools/CATT/catt.jl:346
      [8] extend_right!(rd::Myread, kpool::DefaultDict{DNAKmer{23}, Int64, Int64})
        @ Main ~/IRtools/CATT/catt.jl:360
      [9] macro expansion
        @ ~/IRtools/CATT/catt.jl:559 [inlined]
     [10] (::var"#133#threadsfor_fun#201"{var"#133#threadsfor_fun#160#202"{DefaultDict{DNAKmer{23}, Int64, Int64}, Vector{Myread}, Vector{Regex}, Vector{Regex}, Vector{Int64}, Vector{Int64}, Vector{Regex}, Vector{Regex}, UnitRange{Int64}}})(tid::Int64; onethread::Bool)
        @ Main ./threadingconstructs.jl:206
     [11] #133#threadsfor_fun
        @ ./threadingconstructs.jl:173 [inlined]
     [12] (::Base.Threads.var"#1#2"{var"#133#threadsfor_fun#201"{var"#133#threadsfor_fun#160#202"{DefaultDict{DNAKmer{23}, Int64, Int64}, Vector{Myread}, Vector{Regex}, Vector{Regex}, Vector{Int64}, Vector{Int64}, Vector{Regex}, Vector{Regex}, UnitRange{Int64}}}, Int64})()
        @ Base.Threads ./threadingconstructs.jl:145
Stacktrace:
 [1] threading_run(fun::var"#133#threadsfor_fun#201"{var"#133#threadsfor_fun#160#202"{DefaultDict{DNAKmer{23}, Int64, Int64}, Vector{Myread}, Vector{Regex},Vector{Regex}, Vector{Int64}, Vector{Int64}, Vector{Regex}, Vector{Regex}, UnitRange{Int64}}}, static::Bool)
   @ Base.Threads ./threadingconstructs.jl:163
 [2] macro expansion
   @ ./threadingconstructs.jl:211 [inlined]
 [3] catt(Vpart::Vector{Myread}, Jpart::Vector{Myread}, tmp_name::String, args::Dict{String, Any}, outfix::String)
   @ Main ~/IRtools/CATT/catt.jl:557
 [4] mainflow(parsed_args::Dict{String, Any}, vbam::Vector{Any}, jbam::Vector{Any}, tmp_name::String, outfix::String)
   @ Main ~/IRtools/CATT/catt.jl:700
 [5] proc(args::Dict{String, Any})
   @ Main ~/IRtools/CATT/catt.jl:768
 [6] top-level scope
   @ ~/IRtools/CATT/catt.jl:785
in expression starting at /data2/gongz/IRtools/CATT/catt.jl:784
yangcongyyx commented 3 months ago

Supplement: I am using V2.0.0. After I downloaded the missing fa file from the IMGT website, the software worked properly as an example. But I encountered a new problem:

(catt) -bash-4.2$ python $catt --f1 ${output_dir}/N154/N154_1.clean.fq --f2 ${output_dir}/N154/N154_2.clean.fq -o $output_dir -t 1
[ Info: 2024-03-18 19:53:34] Program start
[ Info: 2024-03-18 19:53:34] Handing Paired-end sample: /data2/gongz/IRtools/mixcr-DataTest/rna_catt/N154/N154_1.clean.fq
[ Info: 2024-03-18 19:53:34] Aligning
[ Info: 2024-03-18 20:08:26] Reading aligned results
[ Info: 2024-03-18 20:09:48] Processing both mapped reads
ERROR: LoadError: BoundsError: attempt to access 115-codeunit String at index [83:118]
Stacktrace:
 [1] checkbounds
   @ ./strings/basic.jl:216 [inlined]
 [2] getindex
   @ ./strings/string.jl:276 [inlined]
 [3] finder!(rd::Myread, cmotif::Regex, fmotif::Regex, coffset::Int64, foffset::Int64, innerC::Regex, innerF::Regex)
   @ Main ~/IRtools/CATT/Jtool.jl:365
 [4] read_alignrs(args::Dict{String, Any}, vbam::Vector{Any}, jbam::Vector{Any}, tmp_name::String)
   @ Main ~/IRtools/CATT/catt.jl:266
 [5] mainflow(parsed_args::Dict{String, Any}, vbam::Vector{Any}, jbam::Vector{Any}, tmp_name::String, outfix::String)
   @ Main ~/IRtools/CATT/catt.jl:699
 [6] proc(args::Dict{String, Any})
   @ Main ~/IRtools/CATT/catt.jl:744
 [7] top-level scope
   @ ~/IRtools/CATT/catt.jl:785
in expression starting at /data2/gongz/IRtools/CATT/catt.jl:784

I looked for a similar problem on the Internet and found that it was julia whose vector index position was empty. Can't read it? I am not very familiar with julia programming, if anyone can help me solve it, thank you very much.