broadinstitute / catch

A package for designing compact and comprehensive capture probe sets.
MIT License
76 stars 16 forks source link

Error using design.py #48

Closed acticu closed 2 years ago

acticu commented 2 years ago

Hi, I got error message when using 'design.py download:64320 -pl 75 -m 2 -l 60 -e 50 -o zika-probes.fasta --verbose' (The example running command) `2022-10-27 10:58:02,644 - catch.utils.ncbi_neighbors [INFO] Creating a FASTA file for taxid 64320 2022-10-27 10:58:02,645 - catch.utils.ncbi_neighbors [INFO] Constructing a list of neighbors for taxid 64320 2022-10-27 10:58:09,090 - catch.utils.ncbi_neighbors [INFO] There are 1602 neighbors, 802 of which have unique accessions 2022-10-27 10:58:38,846 - catch.utils.seq_io [INFO] Reading fasta file /var/folders/gx/_k3jcq4x2pzby696p4t0wxqc0000gq/T/tmp69wuu5st 2022-10-27 10:58:39,270 - catch.filter.probe_designer [INFO] Building candidate probes from target sequences 2022-10-27 10:58:48,822 - catch.filter.probe_designer [INFO] Starting filter DuplicateFilter 2022-10-27 10:59:05,183 - catch.filter.probe_designer [INFO] Starting filter SetCoverFilter 2022-10-27 10:59:05,184 - catch.filter.set_cover_filter [INFO] Building set cover inputs for 1 groups 2022-10-27 10:59:05,185 - catch.filter.set_cover_filter [INFO] Building set cover sets input (group 1 of 1) 2022-10-27 10:59:05,186 - catch.filter.set_cover_filter [INFO] Building map from k-mers to probes 2022-10-27 10:59:13,004 - catch.filter.set_cover_filter [INFO] Computing coverage in target genome 1 (of 802) multiprocessing.pool.RemoteTraceback: """ Traceback (most recent call last): File "/Users/labpc/miniconda3/envs/comenv/lib/python3.10/multiprocessing/pool.py", line 125, in worker result = (True, func(*args, *kwds)) File "/Users/labpc/miniconda3/envs/comenv/lib/python3.10/multiprocessing/pool.py", line 48, in mapstar return list(map(args)) File "/Users/labpc/miniconda3/envs/comenv/lib/python3.10/site-packages/catch/probe.py", line 1050, in _find_probe_covers_in_subsequence if _pfp_kmer_probe_map_use_native: NameError: name '_pfp_kmer_probe_map_use_native' is not defined """

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/Users/labpc/miniconda3/envs/comenv/bin/design.py", line 971, in main(args) File "/Users/labpc/miniconda3/envs/comenv/bin/design.py", line 423, in main pb.design() File "/Users/labpc/miniconda3/envs/comenv/lib/python3.10/site-packages/catch/filter/probe_designer.py", line 236, in design candidates, probes = self._design_for_genomes(self.genomes, File "/Users/labpc/miniconda3/envs/comenv/lib/python3.10/site-packages/catch/filter/probe_designer.py", line 223, in _design_for_genomes probes = self._pass_through_filters(candidates, genomes, filters) File "/Users/labpc/miniconda3/envs/comenv/lib/python3.10/site-packages/catch/filter/probe_designer.py", line 159, in _pass_through_filters probes = f.filter(probes, genomes, input_is_grouped=True) File "/Users/labpc/miniconda3/envs/comenv/lib/python3.10/site-packages/catch/filter/base_filter.py", line 103, in filter return self._filter(input, target_genomes) File "/Users/labpc/miniconda3/envs/comenv/lib/python3.10/site-packages/catch/filter/set_cover_filter.py", line 902, in _filter input_paths = self._construct_and_pickle_set_cover_input( File "/Users/labpc/miniconda3/envs/comenv/lib/python3.10/site-packages/catch/filter/set_cover_filter.py", line 812, in _construct_and_pickle_set_cover_input sets = self._make_sets(possible_probes, target_genomes) File "/Users/labpc/miniconda3/envs/comenv/lib/python3.10/site-packages/catch/filter/set_cover_filter.py", line 408, in _make_sets probe_cover_ranges = probe.find_probe_covers_in_sequence( File "/Users/labpc/miniconda3/envs/comenv/lib/python3.10/site-packages/catch/probe.py", line 1248, in find_probe_covers_in_sequence all_subseq_probe_cover_ranges = _pfp_pool.map(scan_subsequence, File "/Users/labpc/miniconda3/envs/comenv/lib/python3.10/multiprocessing/pool.py", line 367, in map return self._map_async(func, iterable, mapstar, chunksize).get() File "/Users/labpc/miniconda3/envs/comenv/lib/python3.10/multiprocessing/pool.py", line 774, in get raise self._value NameError: name '_pfp_kmer_probe_map_use_native' is not defined`

Any ideas on solving the problem?

Kind regards, Brian

acticu commented 2 years ago

Problem is solved after changing the host system from mac to linux. All good thanks

haydenm commented 2 years ago

Glad you hear that you figured it out! Since we only test CATCH on Linux (Ubuntu, in particular), it is helpful to know about problems on macOS.

CATCH has worked previously on macOS with older versions of Python. It seems that this problem started with Python 3.8, due to a change in Python on macOS documented here. I created a new Issue (#49) to make sure this bug in CATCH is fixed down the road.