psathyrella / partis

B- and T-cell receptor sequence annotation, simulation, clonal family and germline inference, and affinity prediction
GNU General Public License v3.0
54 stars 36 forks source link

Docker container scipy versioning #322

Closed samkleeman1 closed 4 months ago

samkleeman1 commented 1 year ago

When trying to run the docker container using singularity I get an error saying that:

Traceback (most recent call last): File "/partis/bin/partis", line 17, in <module> raise RuntimeError("scipy version 0.17 or later is required (found version %s)." % scipy.__version__) RuntimeError: scipy version 0.17 or later is required (found version 0.16.0).

Is there any way to fix this? I am using a system where I do not have root privileges.

psathyrella commented 12 months ago

I don't remember which step needs a recent scipy version, so it's quite possible you could comment that line and get it to run what you need. I can't think of any other suggestions at the moment, but if you run without the strict version check and it crashes, you could paste the error here and maybe it's avoidable. Version 0.17 is already 7 years old, though, so I won't be at all surprised if other packages are also too out of date to work.

I'm not very familiar with singularity, although we have really been wanting to get up instructions for running on singularity since the docker root requirement is so frustrating, but isn't the basic idea the same as docker, so you shouldn't have to worry about package versions on your machine?

samkleeman1 commented 11 months ago

Many thanks for the response. I was able to get this working on my laptop with docker so must be a singularity-specific issue.

My use case is 10X paired sequencing. I have run the partition command as below. The command runs fine but I am struggling to processed the paired output files. As far as I can see, the 'parse-output.py' script does not have the full functionality with paired data. I am trying to extract the largest 'clonotypes' i.e. clusters of paired heavy and light chains, with associated metadata (e.g. SHM %). Are you able to advise how to achieve this? Sorry if I am missing something obvious. Many thanks for your help in advance! Sam Kleeman, Cold Spring Harbor Laboratory.

docker run -it -v /Users/skleeman:/host/home quay.io/matsengrp/partis bin/partis partition --species balbc --paired-loci --infname /host/home/4t1_partis/filtered_contig_cohortb.fasta --paired-outdir /host/home/4t1_partis/cohort_b

psathyrella commented 11 months ago

Ah, yeah, parse-output.py probably needs updating to fully work with paired data. I'll have a look and update it, probably not til next week though.

psathyrella commented 11 months ago

It looks like you probably want to use the "Ab choice" stuff in the get-selection-metrics action of the main partis script. The --chosen-ab-fname arg should write a file with everything you're likely to want. Adding --print-chosen-abs and piping to less -RS should make it more clear what it's doing. Hopefully those docs should explain it well enough, but if not let me know and we can sort it out and update the docs. parse-output.py does work with paired output, but it's limited to writing all sequences to fasta+meta yaml+csv files, without the infrastructure for selecting and sorting particular heavy/light pairs of families.