kapsakcj / nanoporeWorkflow

:dna: Shell scripts for working with bacterial isolate Nanopore sequence data on CDC servers
MIT License
9 stars 3 forks source link

add socru script #28

Open kapsakcj opened 4 years ago

kapsakcj commented 4 years ago

Will be useful for assessing the quality of complete, circularized assemblies and identifying mis-assemblies.

Will be species specific, and user will need to input the species.

socru has a long list of available/supported species which includes:

# using socru 2.2.4
$ socru_species | wc -l
433

# output abbreviated
$ socru_species
Salmonella_enterica
Vibrio_cholerae
Vibrio_parahaemolyticus
Vibrio_vulnificus
Listeria_monocytogenes
Escherichia_coli
Clostridium_botulinum
Campylobacter_jejuni
kapsakcj commented 4 years ago

I don't get this error when running the container with docker, nor do I see this issue on pulsestar2 with docker or singularity (3.5.3). I think it's specific to the monolith computers

It's important to include the -C flag when running socru with singularity on the monoliths. (still need to test on aspen/HPC)

-C|--containall Contain not only file systems, but also PID, IPC, and environment

If not, socru will throw X11 errors:

# this works
$ ml singularity/2.6.1
$ singularity shell -C --no-home -B $PWD:/data ~/singularity-images/socru.2.2.4.simg
$ socru Escherichia_coli barcode01/medaka/consensus.fasta
barcode01/medaka/consensus.fasta        GREEN   GS1.0   1       2       3       4       5       6       7

# this throws errors (using same singularity 2.6.1 module)
$ singularity shell --no-home -B $PWD:/data ~/singularity-images/socru.2.2.4.simg
$ socru Escherichia_coli barcode01/medaka/consensus.fasta
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
Traceback (most recent call last):
  File "/opt/conda/bin/socru", line 69, in <module>
    g.run()
  File "/opt/conda/lib/python3.7/site-packages/socru/Socru.py", line 68, in run
    output_type = self.run_analysis(i, p, d)
  File "/opt/conda/lib/python3.7/site-packages/socru/Socru.py", line 183, in run_analysis
    pp.create_plot()
  File "/opt/conda/lib/python3.7/site-packages/socru/PlotProfile.py", line 26, in create_plot
    piechart = plt.pie(size, labels=names, wedgeprops = { 'linewidth' : 7, 'edgecolor' : 'white' })
  File "/opt/conda/lib/python3.7/site-packages/matplotlib/pyplot.py", line 2781, in pie
    return gca().pie(
  File "/opt/conda/lib/python3.7/site-packages/matplotlib/pyplot.py", line 926, in gca
    return gcf().gca(**kwargs)
  File "/opt/conda/lib/python3.7/site-packages/matplotlib/pyplot.py", line 610, in gcf
    return figure()
  File "/opt/conda/lib/python3.7/site-packages/matplotlib/pyplot.py", line 545, in figure
    **kwargs)
  File "/opt/conda/lib/python3.7/site-packages/matplotlib/backend_bases.py", line 3261, in new_figure_manager
    return cls.new_figure_manager_given_figure(num, fig)
  File "/opt/conda/lib/python3.7/site-packages/matplotlib/backends/_backend_tk.py", line 950, in new_figure_manager_given_figure
    window = tk.Tk(className="matplotlib")
  File "/opt/conda/lib/python3.7/tkinter/__init__.py", line 2023, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: couldn't connect to display "localhost:12.0"
kapsakcj commented 4 years ago

^ This occurred when using the docker image provided by Andrew at docker://quadraminstitute/socru:version-2.2.4 built using singularity 2.6.1 with singularity build socru.2.2.4.simg docker://quadraminstitute/socru:version-2.2.4

socru is not yet in StaPH-B/docker-builds, but I may make my own dockerfile and add it, if that would mean I could avoid these X11 errors