Teichlab / tracer

TraCeR - reconstruction of T cell receptor sequences from single-cell RNAseq data
Other
122 stars 48 forks source link

a ZeroDivisionError #108

Closed zhouxinseeu closed 3 years ago

zhouxinseeu commented 3 years ago

Hi! I get an error when I run tracer summarize.

command: /SGRNJ/Public/Software/tracer/tracer summarize -c /SGRNJ01/RD_dir/pipeline_test/zhouyiqi/unittest/tcr_fl/20201103/tracer_SGR.conf /SGRNJ01/RD_dir/pipeline_test/zhouyiqi/users/zhouxin/test/newvdj_test/MusTCR1_12/

output: Traceback (most recent call last): File "/SGRNJ/Public/Software/tracer/tracer", line 21, in launch() File "/SGRNJ01/Public/Software/tracer/tracerlib/launcher.py", line 43, in launch Task().run() File "/SGRNJ01/Public/Software/tracer/tracerlib/tasks.py", line 800, in run pc = round((count / float(total_cells)) * 100, 1) ZeroDivisionError: float division by zero

tracer assemble were performed successfully. So I am not sure what's wrong with my pipe. Thank you.

mstubb commented 3 years ago

I think you're giving summarize an input directory that doesn't contain tracer output directories for multiple cells.

The input directory should contain all of the individual cell output directories that you made using assemble.

For example, if /SGRNJ01/RD_dir/pipeline_test/zhouyiqi/users/zhouxin/test/newvdj_test/MusTCR1_12/ is the assemble output for a single cell then you might want to use /SGRNJ01/RD_dir/pipeline_test/zhouyiqi/users/zhouxin/test/newvdj_test/ as the input directory for summarize.

Hope that helps. Let me know if now.

Mike

zhouxinseeu commented 3 years ago

Thank you! I have tried but it does not work: $ /SGRNJ/Public/Software/tracer/tracer summarize -c /SGRNJ01/RD_dir/pipeline_test/zhouyiqi/unittest/tcr_fl/20201103/tracer_SGR.conf /SGRNJ01/RD_dir/pipeline_test/zhouyiqi/users/zhouxin/test/newvdj_test Traceback (most recent call last): File "/SGRNJ/Public/Software/tracer/tracer", line 21, in launch() File "/SGRNJ01/Public/Software/tracer/tracerlib/launcher.py", line 43, in launch Task().run() File "/SGRNJ01/Public/Software/tracer/tracerlib/tasks.py", line 800, in run pc = round((count / float(total_cells)) * 100, 1) ZeroDivisionError: float division by zero

zhouxinseeu commented 3 years ago

Hi! I have another question. Should I perform split before I start assemble? Will it affect the final results? Thank you!

mstubb commented 3 years ago
  1. Please could you send me the command that you used to run assemble.

  2. Please could you send me the output of running ls /SGRNJ01/RD_dir/pipeline_test/zhouyiqi/users/zhouxin/test/newvdj_test/

  3. What do you mean by "perform split"?

Thanks,

Mike

zhouxinseeu commented 3 years ago

run assemble : python ./assemble.py --outdir .//MusTCR1_12/01.assemble --sample MusTCR1_12 --demultiplex_dir .//MusTCR1_12/00.demultiplex --index AACGTGAT,AAACATCG,ATGCCTAA,AGTGGTCA,ACCACTGT,ACATTGGC,CAGATCTG,CATCAAGT --species Mmus --type TCR --software tracer The index was split by ',' and each index represents one cell.

I have tried to use tracer directly, and the results are the same as above: /SGRNJ/Public/Software/tracer/tracer assemble MusTCR1_5/00.demultiplex/AAACATCG/AAACATCG_1.fq.gz MusTCR1_5/00.demultiplex/AAACATCG/AAACATCG_2.fq.gz AAACATCG ./ -c /SGRNJ01/RD_dir/pipeline_test/zhouyiqi/unittest/tcr_fl/20201103/tracer_SGR.conf -s Mmus -p 6

output: $ ls assemble.py             log                    MusTCR1_5.sh.e314126  pycache     test_vdj.py data_give               MusTCR1_12             MusTCR1_5.sh.o314126  run.sh demultiplex.py          MusTCR1_12.sh.e277750  MusTCR1_8             run.sh.e277616 filtered_TCRAB_summary  MusTCR1_12.sh.o277750  MusTCR1_8.sh.e318300  run.sh.o277616 init.py             MusTCR1_5              MusTCR1_8.sh.o318300  shell

MusTCR* are output directories: $ ls MusTCR1_5 00.demultiplex  01.assemble

$ ls MusTCR1_5/00.demultiplex/ AAACATCG  ACATTGGC  AGTGGTCA  CAGATCTG  MusTCR1_5_invalid_index.tsv   stat.txt AACGTGAT  ACCACTGT  ATGCCTAA  CATCAAGT  MusTCR1_5_invalid_linker.tsv

$ ls MusTCR1_5/01.assemble/ AAACATCG  AACGTGAT  ACATTGGC  ACCACTGT  AGTGGTCA  ATGCCTAA  CAGATCTG  CATCAAGT

$ ls MusTCR1_5/01.assemble/AAACATCG/ aligned_reads  expression_quantification  filtered_TCR_seqs  IgBLAST_output  Trinity_output  unfiltered_TCR_seqs

Split means multiplexing, classifying cells by barcode(index). I use index as cell name, and when I performed assemble, the alignment rate after multiplexing are very low(~25%) in paired-end mod. Log shows that this pipeline can successfully complete without error, but there are no successful assemble results in the output.  

Thank you,

Zhou Xin

  ------------------ Original ------------------ From:  "Mike Stubbington"<notifications@github.com>; Date:  Thu, Dec 10, 2020 06:35 PM To:  "Teichlab/tracer"<tracer@noreply.github.com>; Cc:  "zhouxinseeu"<zhouxin@singleronbio.com>; "Author"<author@noreply.github.com>; Subject:  Re: [Teichlab/tracer] a ZeroDivisionError (#108)

 

Please could you send me the command that you used to run assemble.

Please could you send me the output of running ls /SGRNJ01/RD_dir/pipeline_test/zhouyiqi/users/zhouxin/test/newvdj_test/

What do you mean by "perform split"?

Thanks,

Mike

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

mstubb commented 3 years ago

Have you run summarise with MusTCR1_5/01.assemble/ as the input directory? From your ls outputs above, that looks like the one that contains the individual tracer output directories for each cell.

Regarding demultiplexing, tracer expects to run on input fastq files from a single cell. So, yes, you must demultiplex your reads before passing them to tracer.

Best,

Mike

zhouxinseeu commented 3 years ago

Hi! I have tried the command below, and it still failed. Will tracer got an error when the successful assemble results are NONE?

$ /SGRNJ/Public/Software/tracer/tracer summarize MusTCR1_5/01.assemble/ -c /SGRNJ01/RD_dir/pipeline_test/zhouyiqi/unittest/tcr_fl/20201103/tracer_SGR.conf -p 6 /SGRNJ/Public/Software/conda_env/celescope_tracer/lib/python3.7/site-packages/seaborn/distributions.py:2551: FutureWarning: distplot is a deprecated function and will be removed in a future version. Please adapt your code to use either displot (a figure-level function with similar flexibility) or histplot (an axes-level function for histograms).   warnings.warn(msg, FutureWarning) /SGRNJ/Public/Software/conda_env/celescope_tracer/lib/python3.7/site-packages/seaborn/distributions.py:2551: FutureWarning: distplot is a deprecated function and will be removed in a future version. Please adapt your code to use either displot (a figure-level function with similar flexibility) or histplot (an axes-level function for histograms).   warnings.warn(msg, FutureWarning) Traceback (most recent call last):   File "/SGRNJ/Public/Software/tracer/tracer", line 21, in <module>     launch()   File "/SGRNJ01/Public/Software/tracer/tracerlib/launcher.py", line 43, in launch     Task().run()   File "/SGRNJ01/Public/Software/tracer/tracerlib/tasks.py", line 1078, in run     network_colours)   File "/SGRNJ01/Public/Software/tracer/tracerlib/tracer_func.py", line 817, in draw_network_from_cells     cells, False, "box", dot, neato, receptor, loci, network_colours)   File "/SGRNJ01/Public/Software/tracer/tracerlib/tracer_func.py", line 773, in make_cell_network_from_dna     to_remove = [n for n in deg if deg[n] == 0]   File "/SGRNJ01/Public/Software/tracer/tracerlib/tracer_func.py", line 773, in <listcomp>     to_remove = [n for n in deg if deg[n] == 0]   File "/Personal/zhouxin/.local/lib/python3.7/site-packages/networkx/classes/reportviews.py", line 502, in getitem     nbrs = self._succ[n] KeyError: (<tracerlib.core.Cell object at 0x7fe1b5cfbf28>, 0)

   Thank you! Zhou Xin ------------------ Original ------------------ From:  "Mike Stubbington"<notifications@github.com>; Date:  Fri, Dec 11, 2020 09:22 PM To:  "Teichlab/tracer"<tracer@noreply.github.com>; Cc:  "zhouxinseeu"<zhouxin@singleronbio.com>; "Author"<author@noreply.github.com>; Subject:  Re: [Teichlab/tracer] a ZeroDivisionError (#108)

 

Have you run summarise with MusTCR1_5/01.assemble/ as the input directory? From your ls outputs above, that looks like the one that contains the individual tracer output directories for each cell.

Regarding demultiplexing, tracer expects to run on input fastq files from a single cell. So, yes, you must demultiplex your reads before passing them to tracer.

Best,

Mike

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

mstubb commented 3 years ago

This looks like a new error (which is good because it means that other things are now working)

What version of Networkx do you have installed? Tracer doesn't work with v2 so you'll need v1.11 and I think that's what's causing this problem.

If you currently have v2.x of Networkx please try replacing it with v1.11 and re-run the summarise command.

Best,

Mike

zhouxinseeu commented 3 years ago

Hi! I used networkx==1.11 and the problem finally solved, thank you!

Best  Zhou Xin   ------------------ Original ------------------ From:  "Mike Stubbington"<notifications@github.com>; Date:  Mon, Dec 14, 2020 05:55 PM To:  "Teichlab/tracer"<tracer@noreply.github.com>; Cc:  "zhouxinseeu"<zhouxin@singleronbio.com>; "Author"<author@noreply.github.com>; Subject:  Re: [Teichlab/tracer] a ZeroDivisionError (#108)

 

This looks like a new error (which is good because it means that other things are now working)

What version of Networkx do you have installed? Tracer doesn't work with v2 so you'll need v1.11 and I think that's what's causing this problem.

If you currently have v2.x of Networkx please try replacing it with v1.11 and re-run the summarise command.

Best,

Mike

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

mstubb commented 3 years ago

Great! Glad you got it working.