jflucier / ILL_pipelines

Isabelle Laforest-Lapointe Laboratory code
0 stars 1 forks source link

sourmash signatures #69

Closed jorondo1 closed 1 year ago

jorondo1 commented 1 year ago
== This is sourmash version 4.7.0. ==
== Please cite Brown and Irber (2016), doi:10.21105/joss.00027. ==

Traceback (most recent call last):
  File "/usr/local/bin/sourmash", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.10/dist-packages/sourmash/__main__.py", line 19, in main
    retval = mainmethod(args)
  File "/usr/local/lib/python3.10/dist-packages/sourmash/cli/sketch/dna.py", line 90, in main
    return sourmash.command_sketch.dna(args)
  File "/usr/local/lib/python3.10/dist-packages/sourmash/command_sketch.py", line 238, in dna
    _add_from_file_to_filenames(args)
  File "/usr/local/lib/python3.10/dist-packages/sourmash/command_sketch.py", line 183, in _add_from_file_to_filenames
    file_list = load_pathlist_from_file(args.from_file)
  File "/usr/local/lib/python3.10/dist-packages/sourmash/sourmash_args.py", line 354, in load_pathlist_from_file
    raise ValueError(f"file '{checkfile}' inside the pathlist does not exist")
ValueError: file '/fast/def-ilafores/EnsemblBacteria57/Bacillus_sp_5b6_gca_000259405.ASM25940v1_.dna.toplevel.fa.gz' inside the pathlist does not exist

Voici ce que je roule:

ml apptainer
tmp=$PWD
MAG_DIR=/nfs3_ib/nfs-ip34/home/def-ilafores/analysis/boreal_moss/MAG_analysis

singularity exec --writable-tmpfs -e -B $tmp:$tmp \
/home/def-ilafores/programs/ILL_pipelines/containers/sourmash.4.7.0.sif \
sourmash sketch dna -p k=31,abund \
--from-file $MAG_DIR/ensembl_genomes.txt \
--output-dir genome_sketches/ensembl_bact

Le fichier qu'il essaie d'utiliser existe bel et bien (c'est le premier génome de la liste). J'ai l'impression que ça a un lien avec le container, car j'ai eu exactement la même erreur quand j'essayais de rouler un génome à la fois (sans l'argument --from-file), mais que j'avais oublié de rouler "ml apptainer; tmp=$PWD" avant. Quand je roule la commande en lui donnant directement les fichiers en argument, ça fonctionne, mais quand je lui donne un --file-list j'ai cette erreur (j'ai pas le choix parce que j'ai >31000 génomes à sketcher ici).

J'ai pensé y aller en loop (1 commande par génome), mais ça augmente beaucoup le runtime parce que le container doit être rechargé à chaque génome.

jorondo1 commented 1 year ago

ah ça se peut tu que ça soit parce que les fichiers sont sur /fast/ ??

jorondo1 commented 1 year ago

la même commande fonctionne quand je la roule sur une liste de (différents) génomes qui sont dans mon WD. Si c'est ça, est-ce que je suis mieux de copier les 30k génomes localement puis les supprimer après ? ou juste les mv puis les remettre sur /fast/ quand j'ai fini?

jorondo1 commented 1 year ago

Ça semble être ça le problème. Live j'ai mv la db complete dans mon wd, je vais la remettre après. Pour le futur let me know c'est quoi la meilleure pratique, ou si y'a une solution pour lire directement dans /fast/ ?

jflucier commented 1 year ago

le bug est celui ci:

singularity exec --writable-tmpfs -e -B $tmp:$tmp

ca devrait etre: singularity exec --writable-tmpfs -e -B $tmp:$tmp -B /fast:/fast -B /home:/home

Si tu roule en local enleve le binding nfs du path: /nfs3_ib/nfs-ip34

Si tu tourne sur les noeud de calcul la commande singularity avec les bind devrait etre: singularity exec --writable-tmpfs -e -B $tmp:$tmp -B /nfs3_ib/nfs-ip34/fast:/nfs3_ib/nfs-ip34/fast -B /nfs3_ib/nfs-ip34/home:/nfs3_ib/nfs-ip34/home

redonne moi de snews la dessus... jai pas l'idde de copie des G de data pour rien et tu perd en plus l'efficacite des ssd.

jorondo1 commented 1 year ago

ok j'essaierai ça, je ne suis pas familier avec le principe de binding mais je pense comprendre

jflucier commented 1 year ago

vois le binding comme un mount entre le systeme et le containeur singularity.

la synthaxe est -B path_de_systeme:path_dans container.

tu peux donc dire par exemple -B /bozo:/leclown

le path /bozo du systeme est binder a /leclown dans le container. Donc un ls de /bozo sur le systeme sera = au ls de /leclown dans le container.

En terme pratico pratique, je met toujours le meme path des 2 cotes, moin melangeant de meme et plus generique point de vu code.

Lien vers doc officiel https://docs.sylabs.io/guides/3.0/user-guide/bind_paths_and_mounts.html

jorondo1 commented 1 year ago

j'essaie encore de sizer la bonne chose à faire. Je veux run Sourmash localement, voici ce que je fais:


ml apptainer; tmp=/home/def-ilafores/analysis/boreal_moss/genome_sketches
export sourmash="singularity exec --writable-tmpfs -e -B /home:/home -B $tmp:$tmp /home/def-ilafores/programs/ILL_pipelines/containers/sourmash.4.7.0.sif sourmash"

$sourmash sketch dna -p scaled=1000,k=31,abund \
    --name-from-first --from-file moss_MAGs.txt \
        --output-dir moss_MAGs

INFO:    Cleanup error: while unmounting /cvmfs/soft.computecanada.ca/easybuild/software/2020/Core/apptainer/1.1.8/var/apptainer/mnt/session/final directory: no such file or directory, while unmounting /cvmfs/soft.computecanada.ca/easybuild/software/2020/Core/apptainer/1.1.8/var/apptainer/mnt/session/rootfs directory: no such file or directory
FATAL:   container creation failed: unable to add /nfs3_ib/nfs-ip34/home/def-ilafores/analysis/boreal_moss/genome_sketches/temp to mount list: destination must be an absolute path

c'est quoi le problème ici?

jorondo1 commented 1 year ago

ok j'ai trouvé c'était le anchor /nfs3_ib qui était encore dans les paths de ma liste de fichiers... sorry about that !!! Je commence à comprendre haha

jflucier commented 1 year ago

Vas sy simple au debut:

ml apptainer
singularity exec --writable-tmpfs \
-B /home:/home \
-B /home/def-ilafores/analysis/boreal_moss/genome_sketches:/home/def-ilafores/analysis/boreal_moss/genome_sketches \
-e /home/def-ilafores/programs/ILL_pipelines/containers/sourmash.4.7.0.sif \
sourmash sketch dna \
-p scaled=1000,k=31,abund \
--name-from-first --from-file /path/to/moss_MAGs.txt \
--output-dir /path/to/moss_MAGs

bon plus vite que moi a repondre....