katerinakazantseva / strainy

Graph-based assembly phasing
Other
65 stars 5 forks source link

Transform stage occasionally crashes with >16 threads #75

Open Mikes92 opened 8 months ago

Mikes92 commented 8 months ago

Hello!

I'm trying to run stRainy on a collection of 14 related genomes to see if it will be useful to me in the future. i sequenced these 14 genomes independently and know what their genomes should look like in the end. Maybe this dataset is too large and i should be using strainyMAG to reduce the number of edges? the error below

== == Processing unitig edge_248_s2 == ==                                                      
[2024-03-03 22:04:09] [Thread 262513] INFO:  ### Reading SNPs...                                                                                                                                                 
[2024-03-03 22:04:09] [Thread 262513] INFO:  ### Reading Reads...                                                                                                                                                
[2024-03-03 22:04:12] [Thread 262430] INFO:  Split stage2: Break regions of low heterozygosity                                                                                                                   
[2024-03-03 22:04:22] [Thread 262513] INFO:  ### Calculatind distances/Building adj matrix...                                                                                                                    
[2024-03-03 22:04:22] [Thread 262415] INFO:  ### Calculatind distances/Building adj matrix...                                                                                                                    
[2024-03-03 22:04:28] [Thread 262513] INFO:  ### Removing overweighed egdes...                                                                                                                                   
[2024-03-03 22:04:28] [Thread 262513] INFO:  ### Creating graph...                                                                                                                                               
[2024-03-03 22:04:28] [Thread 262513] INFO:  ### Searching clusters...                                                                                                                                           
[2024-03-03 22:04:28] [Thread 262513] INFO:  5 clusters found                                                                                                                                                    
[2024-03-03 22:04:28] [Thread 262513] INFO:  ### Cluster post-processing...                                                                                                                                      
[2024-03-03 22:04:31] [Thread 262453] INFO:  Split stage2: Break regions of low heterozygosity                                                                                                                   
[2024-03-03 22:04:36] [Thread 262453] WARNING:  WARNING: error reading back the flye output, defaulting to empty sequence for consensus                                                                          
/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/site-packages/Bio/SeqRecord.py:229: BiopythonDeprecationWarning: Using a string as the sequence is deprecated and will raise a TypeError in future. 
It has been converted to a Seq object.              
  warnings.warn(                                    
[2024-03-03 22:04:36] [Thread 262453] ERROR:  Worker thread exception! [Errno 2] No such file or directory: '/scratch/mikes92/strainy_sar11/strainy_sar11/flye_outputs/flye_consensus_edge_248_s1_2010009_7143/ba
se_coverage.bed.gz'                                 
Traceback (most recent call last):                                                                      
  File "/mnt/nfs/home/mikes92/stRainy/strainy/phase.py", line 30, in _thread_fun                                                                                                                                 
    cluster(i, shared_flye_consensus)                                                                   
  File "/mnt/nfs/home/mikes92/stRainy/strainy/clustering/cluster.py", line 137, in cluster                                                                                                                       
    cl = postprocess(StRainyArgs().bam, cl, SNP_pos, data, edge, R, I, flye_consensus)                                                                                                                           
  File "/mnt/nfs/home/mikes92/stRainy/strainy/clustering/cluster_postprocess.py", line 279, in postprocess                                                                                                       
    cl = join_clusters(cons, cl, R, edge, flye_consensus)                                               
  File "/mnt/nfs/home/mikes92/stRainy/strainy/clustering/cluster_postprocess.py", line 104, in join_clusters                                                                                                     
    M = build_adj_matrix_clusters(edge,cons, cl,consensus, True)                                                                                                                                                 
  File "/mnt/nfs/home/mikes92/stRainy/strainy/clustering/cluster_postprocess.py", line 90, in build_adj_matrix_clusters                                                                                          
    m[second_cl][first_cl] = matrix.distance_clusters(edge, first_cl, second_cl, cons, cl,flye_consensus, only_with_common_snip)                                                                                 
  File "/mnt/nfs/home/mikes92/stRainy/strainy/clustering/build_adj_matrix.py", line 115, in distance_clusters                                                                                                    
    d = flye_consensus.cluster_distance_via_alignment(first_cl, second_cl, cl, edge, commonSNP)                                                                                                                  
  File "/mnt/nfs/home/mikes92/stRainy/strainy/flye_consensus.py", line 426, in cluster_distance_via_alignment                                                                                                    
    second_cl_dict = self.flye_consensus(second_cl, edge, cl, debug)                                                                                                                                             
  File "/mnt/nfs/home/mikes92/stRainy/strainy/flye_consensus.py", line 233, in flye_consensus                                                                                                                    
    bed_content = self._parse_bed_coverage(f"{StRainyArgs().output}/flye_outputs/flye_consensus_{edge}_{cluster}_{salt}/"                                                                                        
  File "/mnt/nfs/home/mikes92/stRainy/strainy/flye_consensus.py", line 272, in _parse_bed_coverage                                                                                                               
    with gzip.open(filename, 'r') as f:                                                                 
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/gzip.py", line 58, in open                                                                                                                  
    binary_file = GzipFile(filename, gz_mode, compresslevel)                                                                                                                                                     
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/gzip.py", line 174, in __init__                                                                                                             
    fileobj = self.myfileobj = builtins.open(filename, mode or 'rb')                                                                                                                                             
FileNotFoundError: [Errno 2] No such file or directory: '/scratch/mikes92/strainy_sar11/strainy_sar11/flye_outputs/flye_consensus_edge_248_s1_2010009_7143/base_coverage.bed.gz'   

Traceback (most recent call last):                                                                      
  File "/mnt/nfs/home/mikes92/stRainy/./strainy.py", line 89, in <module>                                                                                                                                        
    main()                                          
  File "/mnt/nfs/home/mikes92/stRainy/./strainy.py", line 82, in main                                                                                                                                            
    phase_main(args)                                
  File "/mnt/nfs/home/mikes92/stRainy/strainy/phase.py", line 114, in phase_main                                                                                                                                 
    consensus_dict = phase(StRainyArgs().edges, args)                                                   
  File "/mnt/nfs/home/mikes92/stRainy/strainy/phase.py", line 55, in phase                                                                                                                                       
    raise Exception("Error in worker thread, exiting")                                                  
Exception: Error in worker thread, exiting

When I look into the files it looks like other flye_consensus_edge folders have the correct base_coverage.bed.gz file, however the folder at issue contains a bubbles_1.fasta file instead. a polished_1.fasta also exists. However, both these files (bubbles_1.fasta, and polished_1.fasta) are empty

installed with conda, initial assembly was performed with the suggested flye parameters, and I was able to successfully run stRainy on the test dataset that came with.

running in Linux command :

./strainy.py -g /scratch/mikes92/strainy_sar11/assembly_graph.gfa -q /scratch/mikes92/strainy_sar11/uisw_sar11_reads.fastq.gz -o /scratch/mikes92/strainy_sar11/strainy_test -m nano -t 20

Thanks!

Mike

Ge0rges commented 8 months ago

Seems like there's an issue reading the flyer output in this try catch block here.

mikolmogorov commented 8 months ago

Thanks for reporting! I think this is a problem with the Flye polisher, somehow it generated polished_1.fasta file, but not the base_coverage.bed.gz. Ultimately the issue is with Flye, but @atabeerk looks like the code currently does not double check that - should we add this?

@Mikes92 and @Ge0rges if you could send us the corresponding flye folders with input and output - this would help a lot to reproduce and fix the issue on the Flye side!

Thanks, Misha

Mikes92 commented 8 months ago

Hi Misha,

thanks for getting back on this. If i understand correctly, you'd like the flye_input and flye_output folders for those clusters/edges? or do you want all flye_input and all flye_output files, (if so, they're about 5GB each).

thanks, mike

mikolmogorov commented 8 months ago

Hi MIke -

Just the failed cluster would be sufficient, i.e. flye_outputs/flye_consensus_edge_248_s1_2010009_7143 and the corresponding folder from flye_inputs.

Thank you!

Mikes92 commented 8 months ago

flye_consensus_edge_248_s1_2010009_7143.zip

Let me know if this is what you needed!

mikolmogorov commented 8 months ago

Thank you! It was indeed a corner case for Flye - I've just pushed a fix to the Flye repository, and updated the submodule in Strainy.

Could you please try the version from misha_devel branch? You'd need to repeat the installation stages, in particular don't forget git submodule update --init to get more recent Flye. But no need to recreate the conda environment.

Mikes92 commented 8 months ago

tried again from the misha_devel branch and made sure to run git submodule update --init. looks like it made it much further along, creating a "consensus_dict.pkl" and "stats_clusters.txt" files, finished the phasing but ended with a broken pipe while transforming. error below, i've left out a few repeat for unique threads so this list isn't so long. Thanks for taking a look at this and please let me know if this was something wrong on my end or if you could use further information from me. Thanks!

Mike

warnings.warn(b"".join(errors).decode(self.encoding), RuntimeWarning)                                                                                                                                          
[2024-03-07 14:47:01] [Thread 2563588] INFO:  49 clusters after post-processing                                                                                                                                  
[2024-03-07 14:47:01] [Thread 2563588] INFO:  ### Graph viz...                                                                                                                                                   
[2024-03-07 14:50:26] [Thread 2563622] INFO:  74 clusters after post-processing                                                                                                                                  
[2024-03-07 14:50:26] [Thread 2563622] INFO:  ### Graph viz...                                                                                                                                                   
[2024-03-07 14:50:49] [Root] INFO:  Total number of key hits and misses for consensus computation:                                                                                                               
[2024-03-07 14:50:49] [Root] INFO:   H:2289334, M:68466                                                                                                                                                          
[2024-03-07 14:50:49] [Root] INFO:  Position hit/miss                                                                                                                                                            
[2024-03-07 14:50:49] [Root] INFO:   H:1268929, M:1204755                                                                                                                                                        
[2024-03-07 14:50:49] [Root] INFO:  Alignment cache hit/miss                                                                                                                                                     
[2024-03-07 14:50:49] [Root] INFO:   H:981847, M:63307                                                                                                                                                           
[2024-03-07 14:52:24] [Root] INFO:  Creating phased bam                                                                                                                                                          
[2024-03-07 15:02:01] [Root] INFO:  Done                                                                                                                                                                         
[2024-03-07 15:02:04] [Root] INFO:  Phase stage completed, starting transform now...                                                                                                                             
[2024-03-07 15:05:09] [Root] INFO:  ### Create unitigs                                                                                                                                                           
[2024-03-07 15:05:13] [Thread 3481526] INFO:                                                                                                                                                                     

         == == Processing unitig edge_1 == ==                                                                                                                                                                    
[2024-03-07 15:05:13] [Thread 3481538] INFO:                                                                                                                                                                     

         == == Processing unitig edge_2 == ==                                                                                                                                                                    
[2024-03-07 15:05:13] [Thread 3481550] INFO:                                                                                                                                                                     

         == == Processing unitig edge_3 == ==                                                                                                                                                                    
[2024-03-07 15:05:13] [Thread 3481562] INFO:  

         == == Processing unitig edge_4 == == 
[2024-03-07 15:05:13] [Thread 3481574] INFO:  

         == == Processing unitig edge_5 == == 
[2024-03-07 15:05:13] [Thread 3481586] INFO:  

         == == Processing unitig edge_6 == == 
[2024-03-07 15:05:13] [Thread 3481598] INFO:  

         == == Processing unitig edge_7 == == 
[2024-03-07 15:05:13] [Thread 3481610] INFO:  

         == == Processing unitig edge_8 == == 
[2024-03-07 15:05:13] [Thread 3481622] INFO:  

         == == Processing unitig edge_9 == == 
[2024-03-07 15:05:13] [Thread 3481634] INFO:  

         == == Processing unitig edge_10 == == 
[2024-03-07 15:05:13] [Thread 3481646] INFO:  

         == == Processing unitig edge_11 == == 
[2024-03-07 15:05:13] [Thread 3481658] INFO:  
 == == Processing unitig edge_11 == ==                                                                                                                                                         [316/1828]
[2024-03-07 15:05:13] [Thread 3481658] INFO:  

         == == Processing unitig edge_14 == == 
[2024-03-07 15:05:14] [Thread 3481670] INFO:  

         == == Processing unitig edge_15 == == 
[2024-03-07 15:05:14] [Thread 3481682] INFO:  

         == == Processing unitig edge_16 == == 
[2024-03-07 15:05:14] [Thread 3481694] INFO:  

         == == Processing unitig edge_17 == == 
[2024-03-07 15:05:14] [Thread 3481706] INFO:  

         == == Processing unitig edge_18 == == 
[2024-03-07 15:05:14] [Thread 3481718] INFO:  

         == == Processing unitig edge_19 == == 
[2024-03-07 15:05:14] [Thread 3481730] INFO:  

         == == Processing unitig edge_21 == == 
[2024-03-07 15:05:14] [Thread 3481742] INFO:  

         == == Processing unitig edge_23 == == 
[2024-03-07 15:05:14] [Thread 3481754] INFO:  

         == == Processing unitig edge_24 == == 
[2024-03-07 15:05:15] [Thread 3481574] INFO:  edge_5: 0 unitigs are created
[2024-03-07 15:05:15] [Thread 3481574] INFO:  

         == == Processing unitig edge_27 == == 
[2024-03-07 15:05:15] [Thread 3481550] INFO:  edge_3: 0 unitigs are created
[2024-03-07 15:05:15] [Thread 3481550] INFO:  

         == == Processing unitig edge_28 == == 
[2024-03-07 15:05:16] [Thread 3481622] INFO:  edge_9: 0 unitigs are created
[2024-03-07 15:05:16] [Thread 3481622] INFO:  

 == == Processing unitig edge_29 == == 
[2024-03-07 15:11:31] [Thread 3481682] ERROR:  Worker thread exception! [Errno 32] Broken pipe
Traceback (most recent call last):
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 432, in gcu_worker
    graph_create_unitigs(edge,
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 537, in graph_create_unitigs
    consensus = flye_consensus.flye_consensus(cluster, edge, cl)
  File "/mnt/nfs/home/mikes92/stRainy/strainy/flye_consensus.py", line 240, in flye_consensus
    with self._lock:
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 1052, in __enter__
    return self._callmethod('acquire')
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 817, in _callmethod
    conn.send((self._id, methodname, args, kwds))
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 411, in _send_bytes
    self._send(header + buf)
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 368, in _send
    n = write(self._handle, buf)
BrokenPipeError: [Errno 32] Broken pipe

[2024-03-07 15:11:31] [Thread 3481658] ERROR:  Worker thread exception! [Errno 32] Broken pipe
Traceback (most recent call last):
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 432, in gcu_worker
    graph_create_unitigs(edge,
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 537, in graph_create_unitigs
    consensus = flye_consensus.flye_consensus(cluster, edge, cl)
  File "/mnt/nfs/home/mikes92/stRainy/strainy/flye_consensus.py", line 240, in flye_consensus
    with self._lock:
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 1052, in __enter__
    return self._callmethod('acquire')
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 817, in _callmethod
    conn.send((self._id, methodname, args, kwds))
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 411, in _send_bytes
    self._send(header + buf)
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 368, in _send
    n = write(self._handle, buf)
BrokenPipeError: [Errno 32] Broken pipe

[2024-03-07 15:11:31] [Thread 3481598] ERROR:  Worker thread exception! [Errno 32] Broken pipe
Traceback (most recent call last):
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 432, in gcu_worker
    graph_create_unitigs(edge,
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 565, in graph_create_unitigs
    cluster_distances = postprocess.build_adj_matrix_clusters(edge, cons, cl, flye_consensus, False)
  File "/mnt/nfs/home/mikes92/stRainy/strainy/clustering/cluster_postprocess.py", line 90, in build_adj_matrix_clusters
    m[second_cl][first_cl] = matrix.distance_clusters(edge, first_cl, second_cl, cons, cl,flye_consensus, only_with_common_snip)
  File "/mnt/nfs/home/mikes92/stRainy/strainy/clustering/build_adj_matrix.py", line 115, in distance_clusters
    d = flye_consensus.cluster_distance_via_alignment(first_cl, second_cl, cl, edge, commonSNP)
  File "/mnt/nfs/home/mikes92/stRainy/strainy/flye_consensus.py", line 426, in cluster_distance_via_alignment
    second_cl_dict = self.flye_consensus(second_cl, edge, cl, debug)
  File "/mnt/nfs/home/mikes92/stRainy/strainy/flye_consensus.py", line 240, in flye_consensus
    with self._lock:
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 1052, in __enter__
    return self._callmethod('acquire')
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 817, in _callmethod
    conn.send((self._id, methodname, args, kwds))
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 411, in _send_bytes
    self._send(header + buf)
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 368, in _send
    n = write(self._handle, buf)
BrokenPipeError: [Errno 32] Broken pipe

Traceback (most recent call last):
  File "/mnt/nfs/home/mikes92/stRainy/./strainy.py", line 89, in <module>
    main()
  File "/mnt/nfs/home/mikes92/stRainy/./strainy.py", line 84, in main
    transform_main(args)
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 877, in transform_main
    bam_cache, link_clusters, link_clusters_src, link_clusters_sink, remove_clusters, initial_graph = parallelize_gcu(StRainyArgs().edges, flye_consensus, initial_graph, args)
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 457, in parallelize_gcu
    raise Exception("Error in worker thread, exiting")
mikolmogorov commented 8 months ago

Thanks!

Looks like it went ahead, but this new error message is not super informative unfortunately, because of python multiprocessing quirks.

I've pushed a new version to misha_devel, which contains more recent performance updates + fixed a couple bugs. Do you mind trying this one as well? First, try running the same command line with same inputs and output dir, but adding --stage transform and setting -t argument to 1. This will disable multithreading, and hopefully give a more informative error message in case it happens again.

If it does crash, could you also try running the original command line from scratch with a separate output folder?

Mikes92 commented 8 months ago

Hey!

Sorry for this delay, it took a little while to run all this on my end.

I pulled the updated version and re-ran the same command lines with same input/output adding --stage transform and -t 1 This completed successfully.

I then re-ran from the beginning with new input/output files with -t 20 and received another broken pipe error. full error below.

[2024-03-09 14:09:19] [Thread 4049768] ERROR:  Worker thread exception! [Errno 32] Broken pipe                              
Traceback (most recent call last):                                                                                          
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 416, in gcu_worker                                        
    graph_create_unitigs(edge,                                                                                              
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 552, in graph_create_unitigs                              
    cluster_distances = postprocess.build_adj_matrix_clusters(edge, cons, cl, flye_consensus, False)                        
  File "/mnt/nfs/home/mikes92/stRainy/strainy/clustering/cluster_postprocess.py", line 90, in build_adj_matrix_clusters     
    m[second_cl][first_cl] = matrix.distance_clusters(edge, first_cl, second_cl, cons, cl,flye_consensus, only_with_common_s
nip)                                                                                                                        
  File "/mnt/nfs/home/mikes92/stRainy/strainy/clustering/build_adj_matrix.py", line 139, in distance_clusters               
    d = flye_consensus.cluster_distance_via_alignment(first_cl, second_cl, cl, edge, commonSNP)                             
  File "/mnt/nfs/home/mikes92/stRainy/strainy/flye_consensus.py", line 430, in cluster_distance_via_alignment               
    first_cl_dict = self.flye_consensus(first_cl, edge, cl, debug)                                                          
  File "/mnt/nfs/home/mikes92/stRainy/strainy/flye_consensus.py", line 245, in flye_consensus                               
    with self._lock:                                                                                                        
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 1052, in __enter__  
    return self._callmethod('acquire')                                                                                      
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 817, in _callmethod 
    conn.send((self._id, methodname, args, kwds))                                                                           
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 206, in send      
    self._send_bytes(_ForkingPickler.dumps(obj))                                                                            
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 411, in _send_byte
s                                                                                                                           
    self._send(header + buf)                                                                                                
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 368, in _send     
    n = write(self._handle, buf)                                                                                            
BrokenPipeError: [Errno 32] Broken pipe  

[2024-03-09 14:09:19] [Thread 4049744] ERROR:  Worker thread exception! [Errno 32] Broken pipe                              
Traceback (most recent call last):                                                                                          
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 416, in gcu_worker                                        
    graph_create_unitigs(edge,                                                                                              
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 538, in graph_create_unitigs                              
    consensus = flye_consensus.flye_consensus(cluster, edge, cl)                                                            
  File "/mnt/nfs/home/mikes92/stRainy/strainy/flye_consensus.py", line 245, in flye_consensus                               
    with self._lock:                                                                                                        
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 1052, in __enter__  
    return self._callmethod('acquire')                                                                                      
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 817, in _callmethod 
    conn.send((self._id, methodname, args, kwds))                                                                           
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 206, in send      
    self._send_bytes(_ForkingPickler.dumps(obj))                                                                            
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 411, in _send_byte
s                                                                                                                           
    self._send(header + buf)                                                                                                
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 368, in _send
    n = write(self._handle, buf)                              
BrokenPipeError: [Errno 32] Broken pipe                                                                                     

Traceback (most recent call last):                            
  File "/mnt/nfs/home/mikes92/stRainy/./strainy.py", line 129, in <module>
    main()                                                    
  File "/mnt/nfs/home/mikes92/stRainy/./strainy.py", line 122, in main
    transform_main(args)                                      
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 860, in transform_main
    bam_cache, link_clusters, link_clusters_src, link_clusters_sink, remove_clusters, initial_graph = parallelize_gcu(StRainyArgs().edges, flye_consensus, initial_graph, args)
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 443, in parallelize_gcu
    pool.terminate()                                          
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/pool.py", line 657, in terminate
    self._terminate()                                         
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/util.py", line 224, in __call__
    res = self._callback(*self._args, **self._kwargs)                                                                       
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/pool.py", line 695, in _terminate_pool
    cls._help_stuff_finish(inqueue, task_handler, len(pool))                                                                
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/pool.py", line 677, in _help_stuff_finish
    inqueue._reader.recv()                                    
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 251, in recv
    return _ForkingPickler.loads(buf.getbuffer())                                                                           
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 942, in RebuildProxy
    return func(token, serializer, incref=incref, **kwds)                                                                   
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 792, in __init__
    self._incref()                                            
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 846, in _incref
    conn = self._Client(self._token.address, authkey=self._authkey)                                                         
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 502, in Client
    c = SocketClient(address)                                 
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 630, in SocketClient
    s.connect(address)                                        
ConnectionRefusedError: [Errno 111] Connection refused 

Finally, I reran the entire workflow with new input/output with -t 1 and it looks like it completed successfully. Thanks so much for your help figuring this out! I'm looking forward to using stRainy in the future! Please let me know if you would like any additional information from me.

Mike

mikolmogorov commented 8 months ago

Thank you! I'm glad that it finished with 1 thread. For the crashed run, do you mind sharing root.log, and log_transform and log_phase folders? And if you are able to share the input data so that we can reproduce the issue on our end - that would be amazing.

@atabeerk what do you think? since running in 1 thread works, but multiple threads consistently crashes, we may have a race condition in the transform part somehow?

Mikes92 commented 8 months ago

Hey! Here are the requested log files. I'll send you an email to clarify the best way to get you the raw data.

strainy_multithread_fail.zip

Mike

mikolmogorov commented 8 months ago

Thanks a lot!

mikolmogorov commented 7 months ago

Hi Mike,

Would you mind trying the new version in rc_2024 with both single and multiple threads, restarting with transform and from scratch? You'll need to pull git submodule update again. Thanks a lot!

Misha

Mikes92 commented 7 months ago

Hey Misha,

Of course! I’ll get this set up today, Hopefully it will all be done running by Monday.

Talk to you soon!

Mike

Mike Sadler Pronouns: he/him/his Graduate Student School of Oceanography University of Washington

On Fri, Mar 22, 2024 at 6:44 AM Mikhail Kolmogorov @.***> wrote:

Hi Mike,

Would you mind trying the new version in rc_2024 with both single and multiple threads, restarting with transform and from scratch? You'll need to pull git submodule update again. Thanks a lot!

Misha

— Reply to this email directly, view it on GitHub https://urldefense.com/v3/__https://github.com/katerinakazantseva/stRainy/issues/75*issuecomment-2015141309__;Iw!!K-Hz7m0Vt54!jOSh2F63uZVwzQ24IVa0EAkbEMbBUY4ah7HBW24idJ0Te3zs7sUEOf63sT0HzqEORdVV9AIKSzCumOW1_2ilXAd6$, or unsubscribe https://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/A2BOA76DGM24TWWG5YTATQDYZQYVJAVCNFSM6AAAAABEFTO4JOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJVGE2DCMZQHE__;!!K-Hz7m0Vt54!jOSh2F63uZVwzQ24IVa0EAkbEMbBUY4ah7HBW24idJ0Te3zs7sUEOf63sT0HzqEORdVV9AIKSzCumOW1_-DvDYeC$ . You are receiving this because you were mentioned.Message ID: @.***>

Mikes92 commented 7 months ago

Hi Misha,

Sorry for this delay. I reinstalled stRainy (but kept the same conda environment) and was re-running on my dataset. However, I only realized today that I accidentally reinstalled strainy from the misha_devel branch instead of the rc_2024

So I reinstalled from the rc_2024 and git submodule update --init. stRainy is now requesting an RCL argument, but unfortunatley I don't know what cluster divergence is and do not see related instructions on the stRainy page. Please let me know how I should proceed. thanks!

Mike

mikolmogorov commented 7 months ago

Hi Mike,

Sorry forgot to mention that - it is a new argument that controls the sensitivity of strain clustering. Please use --Rcl 0 - is what we technically had originally. Could you also add --AF 0.1 - this parameter controls minimum allele frequency (ad default value changed from 0.1 to 0.2).

Mikes92 commented 7 months ago

Hi Misha,

I pulled from rc_2024 and re-ran from scratch with -t 1 and -t 20. As before, the single thread ran until completion and produced a final .gfa, but the multi thread closed with a pipe error. I've attached the root.log, log_transform and log_phase here. I've also put the input command and error output below. Please let me know if I can continue to be helpful!

Mike

./strainy.py -g /scratch/mikes92/strainy_sar11/assembly_graph.gfa -q /scratch/mikes92/strainy_sar11/uisw_sar11_reads.fastq.gz -o /scratch/mikes92/strainy_sar11/strainy_out_multi -m nano -t 20 --Rcl 0 --AF 0.1

[2024-03-28 20:16:27] [Thread 2537182] ERROR:  Worker thread exception! [Errno 32] Broken pipe                                               
Traceback (most recent call last):                                                                                                           
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 446, in gcu_worker                                                         
    graph_create_unitigs(edge,                                                                                                               
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 582, in graph_create_unitigs                                               
    cluster_distances = postprocess.build_adj_matrix_clusters(edge, cons, cl, flye_consensus, False)                                         
  File "/mnt/nfs/home/mikes92/stRainy/strainy/clustering/cluster_postprocess.py", line 90, in build_adj_matrix_clusters                      
    m[second_cl][first_cl] = matrix.distance_clusters(edge, first_cl, second_cl, cons, cl,flye_consensus, only_with_common_snip)             
  File "/mnt/nfs/home/mikes92/stRainy/strainy/clustering/build_adj_matrix.py", line 137, in distance_clusters                                
    d = (flye_consensus.cluster_distance_via_alignment(first_cl, second_cl, cl, edge, commonSNP))/intersect                                  
  File "/mnt/nfs/home/mikes92/stRainy/strainy/flye_consensus.py", line 438, in cluster_distance_via_alignment                                
    second_cl_dict = self.flye_consensus(second_cl, edge, cl, debug)                                                                         
  File "/mnt/nfs/home/mikes92/stRainy/strainy/flye_consensus.py", line 152, in flye_consensus                                                
    with self._lock:                                                                                                                         
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 1054, in __exit__                    
    return self._callmethod('release')                                                                                                       
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 817, in _callmethod                  
    conn.send((self._id, methodname, args, kwds))                                                                                            
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 206, in send                       
    self._send_bytes(_ForkingPickler.dumps(obj))                                                                                             
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 411, in _send_bytes                
    self._send(header + buf)                                                                                                                 
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 368, in _send                      
    n = write(self._handle, buf)                                                                                                             
BrokenPipeError: [Errno 32] Broken pipe                                                                                                      

[2024-03-28 20:16:29] [Thread 2537110] ERROR:  Worker thread exception! [Errno 111] Connection refused                                       
Traceback (most recent call last):                                                                                                           
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 810, in _callmethod                  
    conn = self._tls.connection                                       
AttributeError: 'ForkAwareLocal' object has no attribute 'connection'                                                                        

During handling of the above exception, another exception occurred: 

Traceback (most recent call last):
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 446, in gcu_worker
    graph_create_unitigs(edge,
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 582, in graph_create_unitigs
    cluster_distances = postprocess.build_adj_matrix_clusters(edge, cons, cl, flye_consensus, False)
  File "/mnt/nfs/home/mikes92/stRainy/strainy/clustering/cluster_postprocess.py", line 90, in build_adj_matrix_clusters
    m[second_cl][first_cl] = matrix.distance_clusters(edge, first_cl, second_cl, cons, cl,flye_consensus, only_with_common_snip)
  File "/mnt/nfs/home/mikes92/stRainy/strainy/clustering/build_adj_matrix.py", line 137, in distance_clusters
    d = (flye_consensus.cluster_distance_via_alignment(first_cl, second_cl, cl, edge, commonSNP))/intersect
  File "/mnt/nfs/home/mikes92/stRainy/strainy/flye_consensus.py", line 432, in cluster_distance_via_alignment
    self._call_count.value += 1
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 1137, in get
    return self._callmethod('get')
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 814, in _callmethod
    self._connect()
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/managers.py", line 801, in _connect
    conn = self._Client(self._token.address, authkey=self._authkey)
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 502, in Client
    c = SocketClient(address)
  File "/mnt/nfs/home/mikes92/miniconda3/envs/strainy/lib/python3.10/multiprocessing/connection.py", line 630, in SocketClient
    s.connect(address)
ConnectionRefusedError: [Errno 111] Connection refused

Traceback (most recent call last):
  File "/mnt/nfs/home/mikes92/stRainy/./strainy.py", line 145, in <module>
    main()
  File "/mnt/nfs/home/mikes92/stRainy/./strainy.py", line 138, in main
    transform_main(args)
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 890, in transform_main
    bam_cache, link_clusters, link_clusters_src, link_clusters_sink, remove_clusters, initial_graph = parallelize_gcu(StRainyArgs().edges, flye_consensus, initial_graph, args)
  File "/mnt/nfs/home/mikes92/stRainy/strainy/transform.py", line 474, in parallelize_gcu
    raise Exception("Error in worker thread, exiting")
Exception: Error in worker thread, exiting

strainy_logs.zip

mikolmogorov commented 7 months ago

@Mikes92 thanks for checking! we are trying to debug this on our side. If you have a moment - could you please try running with 10 threads? It seems it might be a hardcoded limit of 16 threads somewhere in Python multiprocessing module..

mikolmogorov commented 7 months ago

And one more request.. Which python version are you using? It seems that this issue may have been fixed in 3.11. If you have older version - do you mind trying with Py 3.11+ and 30 threads once you have a chance?

Mikes92 commented 7 months ago

Hey Misha,

Just finished trying to run these. I can confirm that I was running on python=3.10, and -t 10 ran without issue on python=3.10 from the rc_2024 branch. However, I had to remove and reinstall miniconda for a different reason a few weeks ago, resulting in me having to re-create the conda strainy environment. Because of this I found that scipy=1.13 is incompatible, I downgraded to scipy=1.11 and it worked fine, I think scipy=1.12 would also work.

I then tried changing to python=3.11 to run on -t 30 but there were incompatibilities. So I tried removing the conda environment entirely, adjusting the .yaml to python>=3.11 and scipy>=1.8,<1.13, and recreate the environment from scratch, but I still came up with incompatibilities. Below is the incompatibility output if you'd like them. Sorry, but i'm not sure what else to try from here to get python 3.11 in the environment to run -t 30. Please let me know if there is anything else I can do though!

Mike

Could not solve for environment specs
The following packages are incompatible
├─ bcftools >=1.14  is installable with the potential options
│  ├─ bcftools [1.14|1.15] would require
│  │  └─ htslib >=1.14,<1.20.0a0  with the potential options
│  │     ├─ htslib 1.14 would require
│  │     │  └─ libdeflate >=1.9,<1.20.0a0  with the potential options
│  │     │     ├─ libdeflate 1.10, which can be installed;
│  │     │     ├─ libdeflate 1.12, which can be installed;
│  │     │     ├─ libdeflate 1.13 conflicts with any installable versions previously reported;
│  │     │     ├─ libdeflate [1.14|1.16|1.17] conflicts with any installable versions previously reported;
│  │     │     ├─ libdeflate 1.18 conflicts with any installable versions previously reported;
│  │     │     ├─ libdeflate 1.19 conflicts with any installable versions previously reported;
│  │     │     └─ libdeflate 1.9 conflicts with any installable versions previously reported;
│  │     ├─ htslib 1.14 would require
│  │     │  └─ libdeflate >=1.7,<1.20.0a0  with the potential options
│  │     │     ├─ libdeflate 1.10, which can be installed;
│  │     │     ├─ libdeflate 1.12, which can be installed;
│  │     │     ├─ libdeflate 1.13 conflicts with any installable versions previously reported;
│  │     │     ├─ libdeflate [1.14|1.16|1.17] conflicts with any installable versions previously reported;
│  │     │     ├─ libdeflate 1.18 conflicts with any installable versions previously reported;
│  │     │     ├─ libdeflate 1.19 conflicts with any installable versions previously reported;
│  │     │     ├─ libdeflate 1.7, which can be installed;
│  │     │     ├─ libdeflate 1.8, which can be installed;
│  │     │     └─ libdeflate 1.9 conflicts with any installable versions previously reported;
│  │     ├─ htslib [1.14|1.15|1.15.1] would require
│  │     │  └─ libdeflate >=1.10,<1.20.0a0  with the potential options
│  │     │     ├─ libdeflate 1.10, which can be installed;
│  │     │     ├─ libdeflate 1.12, which can be installed;
│  │     │     ├─ libdeflate 1.13 conflicts with any installable versions previously reported;
│  │     │     ├─ libdeflate [1.14|1.16|1.17] conflicts with any installable versions previously reported;
│  │     │     ├─ libdeflate 1.18 conflicts with any installable versions previously reported;
│  │     │     └─ libdeflate 1.19 conflicts with any installable versions previously reported;
│  │     ├─ htslib [1.15.1|1.16|1.17] would require
│  │     │  └─ libdeflate >=1.13,<1.20.0a0 , which conflicts with any installable versions previously reported;
│  │     ├─ htslib [1.17|1.18|1.19] would require
│  │     │  └─ libdeflate >=1.18,<1.20.0a0 , which conflicts with any installable versions previously reported;
│  │     └─ htslib 1.19.1 would require
│  │        └─ libdeflate >=1.18,<1.19.0a0 , which conflicts with any installable versions previously reported;
│  ├─ bcftools [1.15|1.15.1] would require
│  │  └─ htslib >=1.15,<1.20.0a0  with the potential options
│  │     ├─ htslib [1.14|1.15|1.15.1], which can be installed (as previously explained);
│  │     ├─ htslib [1.15.1|1.16|1.17], which cannot be installed (as previously explained);
│  │     ├─ htslib [1.17|1.18|1.19], which cannot be installed (as previously explained);
│  │     └─ htslib 1.19.1, which cannot be installed (as previously explained);
│  ├─ bcftools [1.15.1|1.16|1.17] would require
│  │  └─ htslib [>=1.16,<1.20.0a0 |>=1.17,<1.20.0a0 ], which cannot be installed (as previously explained);
│  ├─ bcftools [1.18|1.19] would require
│  │  └─ htslib [>=1.18,<1.20.0a0 |>=1.19,<1.20.0a0 ], which cannot be installed (as previously explained);
│  └─ bcftools 1.19 would require
│     └─ htslib >=1.19.1,<1.20.0a0 , which cannot be installed (as previously explained);
├─ biopython is installable with the potential options
│  ├─ biopython 1.70 would require
│  │  └─ numpy 1.11* , which can be installed;
│  ├─ biopython [1.66|1.67|1.69|1.70] would require
│  │  └─ numpy 1.12* , which can be installed;
│  ├─ biopython 1.70 would require
│  │  └─ numpy 1.13* , which can be installed;
│  ├─ biopython [1.68|1.70|...|1.76] would require
│  │  └─ python [2.7* |>=2.7,<2.8.0a0 ], which can be installed;
│  ├─ biopython [1.68|1.70|1.71|1.72] would require
│  │  └─ python [3.5* |>=3.5,<3.6.0a0 ], which can be installed;
│  ├─ biopython [1.70|1.71] would require
│  │  └─ python 3.6*  with the potential options
│  │     ├─ python [3.6.0|3.6.1|...|3.6.9], which can be installed;
│  │     ├─ python 3.6.12 would require
│  │     │  └─ pypy3.6 7.3.3.* , which can be installed;
│  │     ├─ python 3.6.9 would require
│  │     │  └─ python_abi 3.6 *_pypy36_pp73, which can be installed;
│  │     └─ python [3.6.0a3|3.6.0a4|...|3.6.0rc1], which can be installed;
│  ├─ biopython [1.70|1.71|...|1.78] would require
│  │  └─ python >=3.6,<3.7.0a0  with the potential options
│  │     ├─ python [3.6.0|3.6.1|...|3.6.9], which can be installed;
│  │     ├─ python 3.6.12, which can be installed (as previously explained);
│  │     └─ python 3.6.9, which can be installed (as previously explained);
│  ├─ biopython [1.71|1.72|...|1.78] would require
│  │  └─ python >=3.7,<3.8.0a0  with the potential options
│  │     ├─ python [3.7.0|3.7.1|...|3.7.9], which can be installed;
│  │     └─ python [3.7.10|3.7.12|3.7.9] would require
│  │        └─ python_abi 3.7 *_pypy37_pp73, which requires
│  │           └─ python 3.7.* *_73_pypy, which conflicts with any installable versions previously reported;
│  ├─ biopython [1.74|1.75|1.76|1.77|1.78] would require
│  │  └─ python >=3.8,<3.9.0a0  with the potential options
│  │     ├─ python [3.8.0|3.8.1|...|3.8.8], which can be installed;
│  │     ├─ python [3.8.12|3.8.13|3.8.16] would require
│  │     │  └─ python_abi 3.8 *_pypy38_pp73, which can be installed;
│  │     └─ python 3.8.5 would require
│  │        └─ python_abi 3.8.* *_graalpy223_38_native, which can be installed;
│  ├─ biopython [1.77|1.78|1.79] would require
│  │  ├─ python >=3.6,<3.7.0a0  with the potential options
│  │  │  ├─ python [3.6.0|3.6.1|...|3.6.9], which can be installed;
│  │  │  ├─ python 3.6.12, which can be installed (as previously explained);
│  │  │  └─ python 3.6.9, which can be installed (as previously explained);
│  │  └─ python_abi 3.6.* *_cp36m, which can be installed;
│  ├─ biopython [1.77|1.78] would require
│  │  └─ python_abi 3.6 *_pypy36_pp73, which can be installed;
│  ├─ biopython [1.77|1.78|1.79] would require
│  │  ├─ python >=3.7,<3.8.0a0  with the potential options
│  │  │  ├─ python [3.7.0|3.7.1|...|3.7.9], which can be installed;
│  │  │  └─ python [3.7.10|3.7.12|3.7.9], which cannot be installed (as previously explained);
│  │  └─ python_abi 3.7.* *_cp37m, which can be installed;
│  ├─ biopython [1.77|1.78|...|1.83] would require
│  │  ├─ python >=3.8,<3.9.0a0  with the potential options
│  │  │  ├─ python [3.8.0|3.8.1|...|3.8.8], which can be installed;
│  │  │  ├─ python [3.8.12|3.8.13|3.8.16], which can be installed (as previously explained);
│  │  │  └─ python 3.8.5, which can be installed (as previously explained);
│  │  └─ python_abi 3.8.* *_cp38, which can be installed;
│  ├─ biopython [1.78|1.79] would require
│  │  └─ pypy3.6 >=7.3.3 , which can be installed;
│  ├─ biopython [1.78|1.79] would require
│  │  └─ python_abi 3.7 *_pypy37_pp73, which cannot be installed (as previously explained);
│  ├─ biopython [1.78|1.79|...|1.83] would require
│  │  ├─ python >=3.9,<3.10.0a0 , which can be installed;
│  │  └─ python_abi 3.9.* *_cp39, which can be installed;
│  ├─ biopython [1.79|1.80|1.81|1.82|1.83] would require
│  │  ├─ python >=3.10,<3.11.0a0 , which can be installed;
│  │  └─ python_abi 3.10.* *_cp310, which can be installed;
│  ├─ biopython [1.79|1.80|1.81|1.82|1.83] would require
│  │  ├─ python >=3.11,<3.12.0a0  but there are no viable options
│  │  │  ├─ python [3.11.0|3.11.1|...|3.11.8] would require
│  │  │  │  └─ python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported;
│  │  │  └─ python [3.11.0|3.11.2|...|3.11.8] conflicts with any installable versions previously reported;
│  │  └─ python_abi 3.11.* *_cp311, which can be installed;
│  ├─ biopython [1.79|1.80|1.81] would require
│  │  └─ python_abi 3.8 *_pypy38_pp73, which can be installed;
│  ├─ biopython [1.79|1.80|1.81|1.82|1.83] would require
│  │  └─ python_abi 3.9 *_pypy39_pp73, which can be installed;
│  ├─ biopython [1.81|1.82|1.83] would require
│  │  └─ python_abi 3.12.* *_cp312, which requires
│  │     └─ python 3.12.* *_cpython, which conflicts with any installable versions previously reported;
│  ├─ biopython [1.66|1.67|1.68|1.69] would require
│  │  └─ numpy 1.10* , which can be installed;
│  ├─ biopython 1.68 would require
│  │  └─ python 3.4* , which can be installed;
│  ├─ biopython [1.77|1.78] would require
│  │  └─ python >=3.9,<3.10.0a0 , which can be installed;
│  ├─ biopython 1.78 would require
│  │  └─ python >=3.10,<3.11.0a0 , which can be installed;
│  ├─ biopython 1.78 would require
│  │  └─ python >=3.11,<3.12.0a0  but there are no viable options
│  │     ├─ python [3.11.0|3.11.1|...|3.11.8], which cannot be installed (as previously explained);
│  │     └─ python [3.11.0|3.11.2|...|3.11.8] conflicts with any installable versions previously reported;
│  └─ biopython 1.78 would require
│     └─ python >=3.12,<3.13.0a0 , which conflicts with any installable versions previously reported;
├─ pysam is installable with the potential options
│  ├─ pysam [0.19.1|0.20.0] would require
│  │  ├─ libdeflate >=1.13,<1.14.0a0 , which conflicts with any installable versions previously reported;
│  │  ├─ python >=2.7,<2.8.0a0 , which can be installed;
│  │  └─ python_abi 2.7.* *_cp27mu, which can be installed;
│  ├─ pysam [0.10.0|0.11.2.2|...|0.9.1.4] would require
│  │  └─ python [2.7* |>=2.7,<2.8.0a0 ], which can be installed;
│  ├─ pysam 0.10.0 would require
│  │  └─ bcftools >=1.3,<1.4 , which conflicts with any installable versions previously reported;
│  ├─ pysam [0.10.0|0.8.3|...|0.9.1.4] would require
│  │  └─ python 3.4* , which can be installed;
│  ├─ pysam [0.10.0|0.11.2.2|...|0.9.1.4] would require
│  │  └─ python [3.5* |>=3.5,<3.6.0a0 ], which can be installed;
│  ├─ pysam [0.11.0|0.11.1] would require
│  │  └─ bcftools >=1.4,<1.5 , which conflicts with any installable versions previously reported;
│  ├─ pysam [0.11.2.1|0.11.2.2] would require
│  │  └─ bcftools >=1.4.1,<1.5 , which conflicts with any installable versions previously reported;
│  ├─ pysam [0.11.2.2|0.12.0.1] would require
│  │  └─ bcftools 1.5* , which conflicts with any installable versions previously reported;
│  ├─ pysam [0.11.2.2|0.8.3] would require
│  │  └─ python 3.6*  with the potential options
│  │     ├─ python [3.6.0|3.6.1|...|3.6.9], which can be installed;
│  │     ├─ python 3.6.12, which can be installed (as previously explained);
│  │     ├─ python 3.6.9, which can be installed (as previously explained);
│  │     └─ python [3.6.0a3|3.6.0a4|...|3.6.0rc1], which can be installed;
│  ├─ pysam [0.12.0.1|0.13.0] would require
│  │  └─ bcftools 1.6* , which conflicts with any installable versions previously reported;
│  ├─ pysam 0.14.0 would require
│  │  ├─ bcftools 1.6 , which conflicts with any installable versions previously reported;
│  │  └─ htslib 1.7 , which conflicts with any installable versions previously reported;
│  ├─ pysam 0.14.1 would require
│  │  ├─ bcftools 1.7* , which conflicts with any installable versions previously reported;
│  │  └─ htslib 1.7* , which conflicts with any installable versions previously reported;
│  ├─ pysam 0.14.1 would require
│  │  ├─ htslib >=1.7,<1.8.0a0 , which conflicts with any installable versions previously reported;
│  │  └─ python >=2.7,<2.8.0a0 , which can be installed;
│  ├─ pysam 0.14.1 would require
│  │  ├─ htslib >=1.7,<1.8.0a0 , which conflicts with any installable versions previously reported;
│  │  └─ python >=3.5,<3.6.0a0 , which can be installed;
│  ├─ pysam 0.14.1 would require
│  │  ├─ htslib >=1.7,<1.8.0a0 , which conflicts with any installable versions previously reported;
│  │  └─ python >=3.6,<3.7.0a0  with the potential options
│  │     ├─ python [3.6.0|3.6.1|...|3.6.9], which can be installed;
│  │     ├─ python 3.6.12, which can be installed (as previously explained);
│  │     └─ python 3.6.9, which can be installed (as previously explained);
│  ├─ pysam [0.15.0|0.15.0.1|0.15.1|0.15.2|0.15.3] would require
│  │  └─ bcftools 1.9.* , which conflicts with any installable versions previously reported;
│  ├─ pysam 0.15.2 would require
│  │  ├─ bcftools 1.9.* , which conflicts with any installable versions previously reported;
│  │  └─ libdeflate >=1.6,<1.7.0a0 , which conflicts with any installable versions previously reported;
│  ├─ pysam 0.15.2 would require
│  │  ├─ bcftools 1.9.* , which conflicts with any installable versions previously reported;
│  │  └─ libdeflate >=1.3,<1.4.0a0 , which conflicts with any installable versions previously reported;
│  ├─ pysam 0.15.2 would require
│  │  ├─ bcftools 1.9.* , which conflicts with any installable versions previously reported;
│  │  └─ libdeflate >=1.5,<1.6.0a0 , which conflicts with any installable versions previously reported;
│  ├─ pysam 0.15.2 would require
│  │  ├─ bcftools 1.9.* , which conflicts with any installable versions previously reported;
│  │  └─ libdeflate >=1.10,<1.11.0a0 , which can be installed;
│  ├─ pysam 0.15.2 would require
│  │  ├─ bcftools 1.9.* , which conflicts with any installable versions previously reported;
│  │  └─ libdeflate >=1.9,<1.10.0a0 , which conflicts with any installable versions previously reported;
│  ├─ pysam 0.15.2 would require
│  │  ├─ bcftools 1.9.* , which conflicts with any installable versions previously reported;
│  │  └─ libdeflate >=1.13,<1.14.0a0 , which conflicts with any installable versions previously reported;
│  ├─ pysam 0.15.3 would require
│  │  ├─ libdeflate >=1.3,<1.4.0a0 , which conflicts with any installable versions previously reported;
│  │  └─ python >=2.7,<2.8.0a0 , which can be installed;
│  ├─ pysam 0.15.3 would require
│  │  ├─ libdeflate >=1.0,<1.1.0a0 , which can be installed;
│  │  └─ python >=2.7,<2.8.0a0 , which can be installed;
│  ├─ pysam 0.15.3 would require
│  │  ├─ libdeflate >=1.3,<1.4.0a0 , which conflicts with any installable versions previously reported;
│  │  └─ python >=3.6,<3.7.0a0  with the potential options
│  │     ├─ python [3.6.0|3.6.1|...|3.6.9], which can be installed;
│  │     ├─ python 3.6.12, which can be installed (as previously explained);
│  │     └─ python 3.6.9, which can be installed (as previously explained);
│  ├─ pysam 0.15.3 would require
│  │  ├─ libdeflate >=1.0,<1.1.0a0 , which can be installed;
│  │  └─ python >=3.6,<3.7.0a0  with the potential options
│  │     ├─ python [3.6.0|3.6.1|...|3.6.9], which can be installed;
│  │     ├─ python 3.6.12, which can be installed (as previously explained);
│  │     └─ python 3.6.9, which can be installed (as previously explained);
│  ├─ pysam 0.15.3 would require
│  │  ├─ libdeflate >=1.3,<1.4.0a0 , which conflicts with any installable versions previously reported;
│  │  └─ python >=3.7,<3.8.0a0  with the potential options
│  │     ├─ python [3.7.0|3.7.1|...|3.7.9], which can be installed;
│  │     └─ python [3.7.10|3.7.12|3.7.9], which cannot be installed (as previously explained);
│  ├─ pysam 0.15.3 would require
│  │  ├─ libdeflate >=1.0,<1.1.0a0 , which can be installed;
│  │  └─ python >=3.7,<3.8.0a0  with the potential options
│  │     ├─ python [3.7.0|3.7.1|...|3.7.9], which can be installed;
│  │     └─ python [3.7.10|3.7.12|3.7.9], which cannot be installed (as previously explained);
│  ├─ pysam 0.15.4 would require
│  │  ├─ libdeflate >=1.5,<1.6.0a0 , which conflicts with any installable versions previously reported;
│  │  └─ python >=2.7,<2.8.0a0 , which can be installed;
│  ├─ pysam 0.15.4 would require
│  │  ├─ libdeflate >=1.5,<1.6.0a0 , which conflicts with any installable versions previously reported;
│  │  └─ python_abi 3.6.* *_cp36m, which can be installed;
│  ├─ pysam 0.15.4 would require
│  │  ├─ libdeflate >=1.5,<1.6.0a0 , which conflicts with any installable versions previously reported;
│  │  └─ python >=3.6,<3.7.0a0  with the potential options
│  │     ├─ python [3.6.0|3.6.1|...|3.6.9], which can be installed;
│  │     ├─ python 3.6.12, which can be installed (as previously explained);
│  │     └─ python 3.6.9, which can be installed (as previously explained);
│  ├─ pysam 0.15.4 would require
│  │  ├─ libdeflate >=1.5,<1.6.0a0 , which conflicts with any installable versions previously reported;
│  │  └─ python_abi 3.7.* *_cp37m, which can be installed;
│  ├─ pysam 0.15.4 would require
│  │  ├─ libdeflate >=1.5,<1.6.0a0 , which conflicts with any installable versions previously reported;
│  │  └─ python >=3.7,<3.8.0a0  with the potential options
│  │     ├─ python [3.7.0|3.7.1|...|3.7.9], which can be installed;
│  │     └─ python [3.7.10|3.7.12|3.7.9], which cannot be installed (as previously explained);
│  ├─ pysam [0.16.0|0.16.0.1] would require
│  │  ├─ libdeflate >=1.6,<1.7.0a0 , which conflicts with any installable versions previously reported;
│  │  └─ python_abi 3.6.* *_cp36m, which can be installed;
│  ├─ pysam [0.16.0|0.16.0.1] would require
│  │  ├─ libdeflate >=1.6,<1.7.0a0 , which conflicts with any installable versions previously reported;
│  │  └─ python_abi 3.7.* *_cp37m, which can be installed;
│  ├─ pysam 0.16.0.1 would require
│  │  ├─ libdeflate >=1.6,<1.7.0a0 , which conflicts with any installable versions previously reported;
│  │  └─ python_abi 2.7.* *_cp27mu, which can be installed;
│  ├─ pysam [0.16.0.1|0.17.0] would require
│  │  ├─ libdeflate >=1.7,<1.8.0a0 , which can be installed;
│  │  ├─ python >=2.7,<2.8.0a0 , which can be installed;
│  │  └─ python_abi 2.7.* *_cp27mu, which can be installed;
│  ├─ pysam [0.16.0.1|0.17.0] would require
│  │  ├─ libdeflate >=1.7,<1.8.0a0 , which can be installed;
│  │  ├─ python >=3.6,<3.7.0a0  with the potential options
│  │  │  ├─ python [3.6.0|3.6.1|...|3.6.9], which can be installed;
│  │  │  ├─ python 3.6.12, which can be installed (as previously explained);
│  │  │  └─ python 3.6.9, which can be installed (as previously explained);
│  │  └─ python_abi 3.6.* *_cp36m, which can be installed;
│  ├─ pysam [0.16.0.1|0.17.0] would require
│  │  ├─ libdeflate >=1.7,<1.8.0a0 , which can be installed;
│  │  ├─ python >=3.7,<3.8.0a0  with the potential options
│  │  │  ├─ python [3.7.0|3.7.1|...|3.7.9], which can be installed;
│  │  │  └─ python [3.7.10|3.7.12|3.7.9], which cannot be installed (as previously explained);
│  │  └─ python_abi 3.7.* *_cp37m, which can be installed;
│  ├─ pysam 0.16.0.1 would require
│  │  ├─ libdeflate >=1.6,<1.7.0a0 , which conflicts with any installable versions previously reported;
│  │  └─ python_abi 3.8.* *_cp38, which can be installed;
│  ├─ pysam [0.16.0.1|0.17.0] would require
│  │  ├─ libdeflate >=1.7,<1.8.0a0 , which can be installed;
│  │  ├─ python >=3.8,<3.9.0a0  with the potential options
│  │  │  ├─ python [3.8.0|3.8.1|...|3.8.8], which can be installed;
│  │  │  ├─ python [3.8.12|3.8.13|3.8.16], which can be installed (as previously explained);
│  │  │  └─ python 3.8.5, which can be installed (as previously explained);
│  │  └─ python_abi 3.8.* *_cp38, which can be installed;
│  ├─ pysam [0.16.0.1|0.17.0] would require
│  │  ├─ libdeflate >=1.7,<1.8.0a0 , which can be installed;
│  │  ├─ python >=3.9,<3.10.0a0 , which can be installed;
│  │  └─ python_abi 3.9.* *_cp39, which can be installed;
│  ├─ pysam [0.17.0|0.18.0] would require
│  │  ├─ libdeflate >=1.9,<1.10.0a0 , which conflicts with any installable versions previously reported;
│  │  ├─ python >=2.7,<2.8.0a0 , which can be installed;
│  │  └─ python_abi 2.7.* *_cp27mu, which can be installed;
│  ├─ pysam [0.17.0|0.18.0] would require
│  │  ├─ libdeflate >=1.9,<1.10.0a0 , which conflicts with any installable versions previously reported;
│  │  ├─ python >=3.6,<3.7.0a0  with the potential options
│  │  │  ├─ python [3.6.0|3.6.1|...|3.6.9], which can be installed;
│  │  │  ├─ python 3.6.12, which can be installed (as previously explained);
│  │  │  └─ python 3.6.9, which can be installed (as previously explained);
│  │  └─ python_abi 3.6.* *_cp36m, which can be installed;
│  ├─ pysam [0.17.0|0.18.0] would require
│  │  ├─ libdeflate >=1.9,<1.10.0a0 , which conflicts with any installable versions previously reported;
│  │  ├─ python >=3.7,<3.8.0a0  with the potential options
│  │  │  ├─ python [3.7.0|3.7.1|...|3.7.9], which can be installed;
│  │  │  └─ python [3.7.10|3.7.12|3.7.9], which cannot be installed (as previously explained);
│  │  └─ python_abi 3.7.* *_cp37m, which can be installed;
│  ├─ pysam [0.17.0|0.18.0] would require
│  │  ├─ libdeflate >=1.9,<1.10.0a0 , which conflicts with any installable versions previously reported;
│  │  ├─ python >=3.8,<3.9.0a0  with the potential options
│  │  │  ├─ python [3.8.0|3.8.1|...|3.8.8], which can be installed;
│  │  │  ├─ python [3.8.12|3.8.13|3.8.16], which can be installed (as previously explained);
│  │  │  └─ python 3.8.5, which can be installed (as previously explained);
│  │  └─ python_abi 3.8.* *_cp38, which can be installed;
│  ├─ pysam [0.17.0|0.18.0] would require
│  │  ├─ libdeflate >=1.9,<1.10.0a0 , which conflicts with any installable versions previously reported;
│  │  ├─ python >=3.9,<3.10.0a0 , which can be installed;
│  │  └─ python_abi 3.9.* *_cp39, which can be installed;
│  ├─ pysam 0.18.0 would require
│  │  ├─ libdeflate >=1.10,<1.11.0a0 , which can be installed;
│  │  ├─ python >=2.7,<2.8.0a0 , which can be installed;
│  │  └─ python_abi 2.7.* *_cp27mu, which can be installed;
│  ├─ pysam [0.18.0|0.19.0|0.19.1] would require
│  │  ├─ libdeflate >=1.10,<1.11.0a0 , which can be installed;
│  │  ├─ python >=2.7,<2.8.0a0 , which can be installed;
│  │  └─ python_abi 2.7.* *_cp27mu, which can be installed;
│  ├─ pysam [0.18.0|0.19.0|0.19.1] would require
│  │  ├─ libdeflate >=1.10,<1.11.0a0 , which can be installed;
│  │  ├─ python >=3.6,<3.7.0a0  with the potential options
│  │  │  ├─ python [3.6.0|3.6.1|...|3.6.9], which can be installed;
│  │  │  ├─ python 3.6.12, which can be installed (as previously explained);
│  │  │  └─ python 3.6.9, which can be installed (as previously explained);
│  │  └─ python_abi 3.6.* *_cp36m, which can be installed;
│  ├─ pysam [0.18.0|0.19.0|0.19.1] would require
│  │  ├─ libdeflate >=1.10,<1.11.0a0 , which can be installed;
│  │  ├─ python >=3.7,<3.8.0a0  with the potential options
│  │  │  ├─ python [3.7.0|3.7.1|...|3.7.9], which can be installed;
│  │  │  └─ python [3.7.10|3.7.12|3.7.9], which cannot be installed (as previously explained);
│  │  └─ python_abi 3.7.* *_cp37m, which can be installed;
│  ├─ pysam [0.18.0|0.19.0|0.19.1] would require
│  │  ├─ libdeflate >=1.10,<1.11.0a0 , which can be installed;
│  │  ├─ python >=3.8,<3.9.0a0  with the potential options
│  │  │  ├─ python [3.8.0|3.8.1|...|3.8.8], which can be installed;
│  │  │  ├─ python [3.8.12|3.8.13|3.8.16], which can be installed (as previously explained);
│  │  │  └─ python 3.8.5, which can be installed (as previously explained);
│  │  └─ python_abi 3.8.* *_cp38, which can be installed;
│  ├─ pysam [0.18.0|0.19.0|0.19.1] would require
│  │  ├─ libdeflate >=1.10,<1.11.0a0 , which can be installed;
│  │  ├─ python >=3.9,<3.10.0a0 , which can be installed;
│  │  └─ python_abi 3.9.* *_cp39, which can be installed;
│  ├─ pysam 0.19.1 would require
│  │  ├─ libdeflate >=1.10,<1.11.0a0 , which can be installed;
│  │  ├─ python >=3.10,<3.11.0a0 , which can be installed;
│  │  └─ python_abi 3.10.* *_cp310, which can be installed;
│  ├─ pysam [0.19.1|0.20.0|0.21.0] would require
│  │  ├─ libdeflate >=1.13,<1.14.0a0 , which conflicts with any installable versions previously reported;
│  │  ├─ python >=3.10,<3.11.0a0 , which can be installed;
│  │  └─ python_abi 3.10.* *_cp310, which can be installed;
│  ├─ pysam [0.19.1|0.20.0|0.21.0] would require
│  │  ├─ libdeflate >=1.13,<1.14.0a0 , which conflicts with any installable versions previously reported;
│  │  ├─ python >=3.6,<3.7.0a0  with the potential options
│  │  │  ├─ python [3.6.0|3.6.1|...|3.6.9], which can be installed;
│  │  │  ├─ python 3.6.12, which can be installed (as previously explained);
│  │  │  └─ python 3.6.9, which can be installed (as previously explained);
│  │  └─ python_abi 3.6.* *_cp36m, which can be installed;
│  ├─ pysam [0.19.1|0.20.0|0.21.0] would require
│  │  ├─ libdeflate >=1.13,<1.14.0a0 , which conflicts with any installable versions previously reported;
│  │  ├─ python >=3.7,<3.8.0a0  with the potential options
│  │  │  ├─ python [3.7.0|3.7.1|...|3.7.9], which can be installed;
│  │  │  └─ python [3.7.10|3.7.12|3.7.9], which cannot be installed (as previously explained);
│  │  └─ python_abi 3.7.* *_cp37m, which can be installed;
│  ├─ pysam [0.19.1|0.20.0|0.21.0] would require
│  │  ├─ libdeflate >=1.13,<1.14.0a0 , which conflicts with any installable versions previously reported;
│  │  ├─ python >=3.8,<3.9.0a0  with the potential options
│  │  │  ├─ python [3.8.0|3.8.1|...|3.8.8], which can be installed;
│  │  │  ├─ python [3.8.12|3.8.13|3.8.16], which can be installed (as previously explained);
│  │  │  └─ python 3.8.5, which can be installed (as previously explained);
│  │  └─ python_abi 3.8.* *_cp38, which can be installed;
│  ├─ pysam [0.19.1|0.20.0|0.21.0] would require
│  │  ├─ libdeflate >=1.13,<1.14.0a0 , which conflicts with any installable versions previously reported;
│  │  ├─ python >=3.9,<3.10.0a0 , which can be installed;
│  │  └─ python_abi 3.9.* *_cp39, which can be installed;
│  ├─ pysam [0.21.0|0.22.0] would require
│  │  ├─ python >=3.10,<3.11.0a0 , which can be installed;
│  │  └─ python_abi 3.10.* *_cp310, which can be installed;
│  ├─ pysam [0.21.0|0.22.0] would require
│  │  ├─ python >=3.8,<3.9.0a0  with the potential options
│  │  │  ├─ python [3.8.0|3.8.1|...|3.8.8], which can be installed;
│  │  │  ├─ python [3.8.12|3.8.13|3.8.16], which can be installed (as previously explained);
│  │  │  └─ python 3.8.5, which can be installed (as previously explained);
│  │  └─ python_abi 3.8.* *_cp38, which can be installed;
│  ├─ pysam [0.21.0|0.22.0] would require
│  │  ├─ python >=3.9,<3.10.0a0 , which can be installed;
│  │  └─ python_abi 3.9.* *_cp39, which can be installed;
│  ├─ pysam 0.7.7 would require
│  │  └─ python <3.0.0 , which can be installed;
│  ├─ pysam [0.7.7|0.8.3] would require
│  │  ├─ python >=2.7,<2.8.0a0 , which can be installed;
│  │  └─ python_abi 2.7.* *_cp27mu, which can be installed;
│  ├─ pysam 0.8.3 would require
│  │  ├─ python >=3.6,<3.7.0a0  with the potential options
│  │  │  ├─ python [3.6.0|3.6.1|...|3.6.9], which can be installed;
│  │  │  ├─ python 3.6.12, which can be installed (as previously explained);
│  │  │  └─ python 3.6.9, which can be installed (as previously explained);
│  │  └─ python_abi 3.6.* *_cp36m, which can be installed;
│  ├─ pysam 0.8.3 would require
│  │  └─ python >=3.6,<3.7.0a0  with the potential options
│  │     ├─ python [3.6.0|3.6.1|...|3.6.9], which can be installed;
│  │     ├─ python 3.6.12, which can be installed (as previously explained);
│  │     └─ python 3.6.9, which can be installed (as previously explained);
│  ├─ pysam 0.9.0 would require
│  │  └─ bcftools 1.3 , which conflicts with any installable versions previously reported;
│  └─ pysam [0.9.1|0.9.1.4] would require
│     └─ bcftools [1.3.1 |1.3.1.* ], which conflicts with any installable versions previously reported;
├─ python-edlib is installable with the potential options
│  ├─ python-edlib [1.2.3|1.2.3.post1|...|1.3.9] would require
│  │  └─ python [2.7* |>=2.7,<2.8.0a0 ], which can be installed;
│  ├─ python-edlib [1.2.3|1.2.3.post1] would require
│  │  └─ python [3.5* |>=3.5,<3.6.0a0 ], which can be installed;
│  ├─ python-edlib 1.2.3 would require
│  │  └─ python 3.6*  with the potential options
│  │     ├─ python [3.6.0|3.6.1|...|3.6.9], which can be installed;
│  │     ├─ python 3.6.12, which can be installed (as previously explained);
│  │     ├─ python 3.6.9, which can be installed (as previously explained);
│  │     └─ python [3.6.0a3|3.6.0a4|...|3.6.0rc1], which can be installed;
│  ├─ python-edlib [1.2.3|1.2.3.post1|...|1.3.9] would require
│  │  └─ python >=3.6,<3.7.0a0  with the potential options
│  │     ├─ python [3.6.0|3.6.1|...|3.6.9], which can be installed;
│  │     ├─ python 3.6.12, which can be installed (as previously explained);
│  │     └─ python 3.6.9, which can be installed (as previously explained);
│  ├─ python-edlib [1.2.4|1.2.4.post1|...|1.3.9] would require
│  │  └─ python >=3.7,<3.8.0a0  with the potential options
│  │     ├─ python [3.7.0|3.7.1|...|3.7.9], which can be installed;
│  │     └─ python [3.7.10|3.7.12|3.7.9], which cannot be installed (as previously explained);
│  ├─ python-edlib [1.3.8.post1|1.3.8.post2|1.3.9] would require
│  │  └─ python >=3.8,<3.9.0a0  with the potential options
│  │     ├─ python [3.8.0|3.8.1|...|3.8.8], which can be installed;
│  │     ├─ python [3.8.12|3.8.13|3.8.16], which can be installed (as previously explained);
│  │     └─ python 3.8.5, which can be installed (as previously explained);
│  ├─ python-edlib [1.3.8.post2|1.3.9] would require
│  │  └─ python >=3.9,<3.10.0a0 , which can be installed;
│  └─ python-edlib 1.3.9 would require
│     └─ python >=3.10,<3.11.0a0 , which can be installed;
├─ python >=3.11  is not installable because there are no viable options
│  ├─ python [3.12.0|3.12.1|3.12.2] conflicts with any installable versions previously reported;
│  ├─ python [3.11.0|3.11.1|...|3.11.8], which cannot be installed (as previously explained);
│  ├─ python [3.11.0|3.11.2|...|3.11.8] conflicts with any installable versions previously reported;
│  └─ python 3.12.0rc3 would require
│     └─ _python_rc, which does not exist (perhaps a missing channel);
└─ scipy >=1.8,<1.13  is installable with the potential options
   ├─ scipy [1.11.1|1.11.3|1.11.4|1.8.0] would require
   │  ├─ numpy [>=1.21.5,<1.28 |>=1.21.5,<2.0a0 ] but there are no viable options
   │  │  ├─ numpy [1.18.5|1.19.0|...|1.21.6] would require
   │  │  │  └─ python_abi 3.7.* *_cp37m, which can be installed;
   │  │  ├─ numpy [1.18.5|1.19.0|...|1.24.4] would require
   │  │  │  └─ python_abi 3.8.* *_cp38, which can be installed;
   │  │  ├─ numpy [1.19.2|1.19.4|...|1.26.4] would require
   │  │  │  └─ python_abi 3.9.* *_cp39, which can be installed;
   │  │  ├─ numpy [1.19.5|1.20.0|...|1.21.5] would require
   │  │  │  └─ python_abi 3.7 *_pypy37_pp73, which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.3|...|1.24.4] would require
   │  │  │  └─ python_abi 3.8 *_pypy38_pp73, which can be installed;
   │  │  ├─ numpy [1.19.5|1.20.3|...|1.26.4] would require
   │  │  │  └─ python_abi 3.9 *_pypy39_pp73, which can be installed;
   │  │  ├─ numpy [1.21.3|1.21.4|...|1.26.3] would require
   │  │  │  └─ python_abi 3.10.* *_cp310, which can be installed;
   │  │  ├─ numpy [1.23.4|1.23.5|...|1.24.3] would require
   │  │  │  └─ python_abi 3.11.* *_cp311, which can be installed;
   │  │  ├─ numpy [1.24.4|1.25.0|...|1.26.4] would require
   │  │  │  ├─ python >=3.11,<3.12.0a0  but there are no viable options
   │  │  │  │  ├─ python [3.11.0|3.11.1|...|3.11.8], which cannot be installed (as previously explained);
   │  │  │  │  └─ python [3.11.0|3.11.2|...|3.11.8] conflicts with any installable versions previously reported;
   │  │  │  └─ python_abi 3.11.* *_cp311, which can be installed;
   │  │  ├─ numpy 1.21.5 conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.21.6 conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.22.3 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.23.1|1.23.3] conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.23.3 would require
   │  │  │  └─ numpy-base 1.23.3 py310h375b286_0, which does not exist (perhaps a missing channel);
   │  │  ├─ numpy 1.23.3 would require
   │  │  │  └─ numpy-base 1.23.3 py310h8e6c178_0, which does not exist (perhaps a missing channel);
   │  │  ├─ numpy 1.23.4 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.23.5|1.24.3] conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.25.0|1.25.2] conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4] would require
   │  │  │  └─ python_abi 3.12.* *_cp312, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.26.4 would require
   │  │  │  ├─ python >=3.10,<3.11.0a0 , which can be installed;
   │  │  │  └─ python_abi 3.10.* *_cp310, which can be installed;
   │  │  ├─ numpy 1.26.0 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.26.2|1.26.3] conflicts with any installable versions previously reported;
   │  │  └─ numpy 1.26.4 conflicts with any installable versions previously reported;
   │  └─ python_abi 3.10.* *_cp310, which can be installed;
   ├─ scipy 1.8.0 would require
   │  ├─ numpy >=1.18.5,<2.0a0  with the potential options
   │  │  ├─ numpy 1.19.5 would require
   │  │  │  ├─ python >=3.6,<3.7.0a0  with the potential options
   │  │  │  │  ├─ python [3.6.0|3.6.1|...|3.6.9], which can be installed;
   │  │  │  │  ├─ python 3.6.12, which can be installed (as previously explained);
   │  │  │  │  └─ python 3.6.9, which can be installed (as previously explained);
   │  │  │  └─ python_abi 3.6.* *_cp36m, which can be installed;
   │  │  ├─ numpy [1.18.5|1.19.0|...|1.19.5] would require
   │  │  │  └─ python_abi 3.6.* *_cp36m, which can be installed;
   │  │  ├─ numpy [1.18.5|1.19.0|1.19.1|1.19.2|1.19.4] would require
   │  │  │  └─ python_abi 3.6 *_pypy36_pp73, which can be installed;
   │  │  ├─ numpy [1.18.5|1.19.0|...|1.21.6], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.18.5|1.19.0|...|1.24.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.2|1.19.4|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.19.5 would require
   │  │  │  └─ pypy3.6 >=7.3.3 , which can be installed;
   │  │  ├─ numpy [1.19.5|1.20.0|...|1.21.5], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.3|...|1.24.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.3|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.21.3|1.21.4|...|1.26.3], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.23.4|1.23.5|...|1.24.3], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.24.4|1.25.0|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.1|1.19.2] conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.19.5|1.20.1|1.20.2] conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.20.3 conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.21.2 conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.21.5 conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.21.6 conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.22.3 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.23.1|1.23.3] conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.23.4 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.23.5|1.24.3] conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.25.0|1.25.2] conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.26.4, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.26.0 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.26.2|1.26.3] conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.26.4 conflicts with any installable versions previously reported;
   │  │  └─ numpy 1.18.5 conflicts with any installable versions previously reported;
   │  └─ python_abi 3.8.* *_cp38, which can be installed;
   ├─ scipy [1.10.0|1.10.1|...|1.9.1] would require
   │  ├─ numpy [>=1.19.5,<1.27.0 |>=1.19.5,<2.0a0 ] with the potential options
   │  │  ├─ numpy 1.19.5, which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.18.5|1.19.0|...|1.19.5], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.18.5|1.19.0|...|1.21.6], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.18.5|1.19.0|...|1.24.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.2|1.19.4|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.19.5, which can be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.0|...|1.21.5], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.3|...|1.24.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.3|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.21.3|1.21.4|...|1.26.3], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.23.4|1.23.5|...|1.24.3], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.24.4|1.25.0|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.1|1.20.2] conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.20.3 conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.21.2 conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.21.5 conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.21.6 conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.22.3 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.23.1|1.23.3] conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.23.4 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.23.5|1.24.3] conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.25.0|1.25.2] conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.26.4, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.26.0 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.26.2|1.26.3] conflicts with any installable versions previously reported;
   │  │  └─ numpy 1.26.4 conflicts with any installable versions previously reported;
   │  └─ python_abi [3.8 *_pypy38_pp73|3.8.* *_cp38|3.9 *_pypy39_pp73|3.9.* *_cp39], which can be installed;
   ├─ scipy [1.10.0|1.10.1|...|1.9.3] would require
   │  ├─ numpy [>=1.21.6,<1.26 |>=1.21.6,<1.27 |>=1.21.6,<1.28 |>=1.21.6,<2.0a0 ] but there are no viable options
   │  │  ├─ numpy [1.18.5|1.19.0|...|1.21.6], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.18.5|1.19.0|...|1.24.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.2|1.19.4|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.3|...|1.24.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.3|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.21.3|1.21.4|...|1.26.3], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.23.4|1.23.5|...|1.24.3], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.24.4|1.25.0|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.21.6 conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.22.3 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.23.1|1.23.3] conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.23.4 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.23.5|1.24.3] conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.25.0|1.25.2] conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.26.4, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.26.0 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.26.2|1.26.3] conflicts with any installable versions previously reported;
   │  │  └─ numpy 1.26.4 conflicts with any installable versions previously reported;
   │  └─ python_abi [3.10.* *_cp310|3.8 *_pypy38_pp73|3.8.* *_cp38|3.9 *_pypy39_pp73|3.9.* *_cp39], which can be installed;
   ├─ scipy [1.10.0|1.10.1|1.8.1|1.9.2|1.9.3] would require
   │  ├─ numpy [>=1.20.3,<1.26 |>=1.20.3,<1.27 |>=1.20.3,<2.0a0 ] but there are no viable options
   │  │  ├─ numpy [1.18.5|1.19.0|...|1.21.6], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.18.5|1.19.0|...|1.24.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.2|1.19.4|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.0|...|1.21.5], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.3|...|1.24.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.3|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.21.3|1.21.4|...|1.26.3], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.23.4|1.23.5|...|1.24.3], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.24.4|1.25.0|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.20.3 conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.21.2 conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.21.5 conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.21.6 conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.22.3 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.23.1|1.23.3] conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.23.4 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.23.5|1.24.3] conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.25.0|1.25.2] conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.26.4, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.26.0 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.26.2|1.26.3] conflicts with any installable versions previously reported;
   │  │  └─ numpy 1.26.4 conflicts with any installable versions previously reported;
   │  └─ python_abi [3.8 *_pypy38_pp73|3.8.* *_cp38|3.9 *_pypy39_pp73|3.9.* *_cp39], which can be installed;
   ├─ scipy 1.9.3 would require
   │  ├─ numpy [>=1.23.4,<1.26 |>=1.23.4,<2.0a0 ] but there are no viable options
   │  │  ├─ numpy [1.18.5|1.19.0|...|1.24.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.2|1.19.4|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.3|...|1.24.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.3|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.21.3|1.21.4|...|1.26.3], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.23.4|1.23.5|...|1.24.3], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.24.4|1.25.0|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.23.4 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.23.5|1.24.3] conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.25.0|1.25.2] conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.26.4, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.26.0 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.26.2|1.26.3] conflicts with any installable versions previously reported;
   │  │  └─ numpy 1.26.4 conflicts with any installable versions previously reported;
   │  └─ python_abi 3.11.* *_cp311, which can be installed;
   ├─ scipy [1.10.0|1.10.1|...|1.12.0] would require
   │  ├─ numpy [>=1.23.5,<1.27 |>=1.23.5,<1.28 |>=1.23.5,<1.29 ] but there are no viable options
   │  │  ├─ numpy [1.18.5|1.19.0|...|1.24.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.2|1.19.4|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.3|...|1.24.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.3|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.21.3|1.21.4|...|1.26.3], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.23.4|1.23.5|...|1.24.3], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.24.4|1.25.0|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.23.5|1.24.3] conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.25.0|1.25.2] conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.26.4, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.26.0 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.26.2|1.26.3] conflicts with any installable versions previously reported;
   │  │  └─ numpy 1.26.4 conflicts with any installable versions previously reported;
   │  └─ python_abi 3.11.* *_cp311, which can be installed;
   ├─ scipy [1.10.0|1.10.1|...|1.12.0] would require
   │  ├─ numpy [>=1.22.4,<1.28 |>=1.22.4,<1.29 |>=1.23,<1.27.0 ] but there are no viable options
   │  │  ├─ numpy [1.18.5|1.19.0|...|1.24.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.2|1.19.4|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.3|...|1.24.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.19.5|1.20.3|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.21.3|1.21.4|...|1.26.3], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.23.4|1.23.5|...|1.24.3], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.24.4|1.25.0|...|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy [1.23.1|1.23.3] conflicts with any installable versions previously reported;
   │  │  ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.23.4 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.23.5|1.24.3] conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.25.0|1.25.2] conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4], which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.26.4, which cannot be installed (as previously explained);
   │  │  ├─ numpy 1.26.0 conflicts with any installable versions previously reported;
   │  │  ├─ numpy [1.26.2|1.26.3] conflicts with any installable versions previously reported;
   │  │  └─ numpy 1.26.4 conflicts with any installable versions previously reported;
   │  └─ python_abi [3.10.* *_cp310|3.9 *_pypy39_pp73|3.9.* *_cp39], which can be installed;
   ├─ scipy [1.11.3|1.11.4|1.12.0] would require
   │  └─ python_abi 3.12.* *_cp312, which cannot be installed (as previously explained);
   ├─ scipy [1.10.0|1.10.1] would require
   │  └─ numpy >=1.21,<1.27.0  but there are no viable options
   │     ├─ numpy [1.18.5|1.19.0|...|1.21.6], which cannot be installed (as previously explained);
   │     ├─ numpy [1.18.5|1.19.0|...|1.24.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.2|1.19.4|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.0|...|1.21.5], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.3|...|1.24.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.3|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.21.3|1.21.4|...|1.26.3], which cannot be installed (as previously explained);
   │     ├─ numpy [1.23.4|1.23.5|...|1.24.3], which cannot be installed (as previously explained);
   │     ├─ numpy [1.24.4|1.25.0|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy 1.21.2 conflicts with any installable versions previously reported;
   │     ├─ numpy 1.21.5 conflicts with any installable versions previously reported;
   │     ├─ numpy 1.21.6 conflicts with any installable versions previously reported;
   │     ├─ numpy 1.22.3 conflicts with any installable versions previously reported;
   │     ├─ numpy [1.23.1|1.23.3] conflicts with any installable versions previously reported;
   │     ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │     ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │     ├─ numpy 1.23.4 conflicts with any installable versions previously reported;
   │     ├─ numpy [1.23.5|1.24.3] conflicts with any installable versions previously reported;
   │     ├─ numpy [1.25.0|1.25.2] conflicts with any installable versions previously reported;
   │     ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy 1.26.4, which cannot be installed (as previously explained);
   │     ├─ numpy 1.26.0 conflicts with any installable versions previously reported;
   │     ├─ numpy [1.26.2|1.26.3] conflicts with any installable versions previously reported;
   │     └─ numpy 1.26.4 conflicts with any installable versions previously reported;
   ├─ scipy 1.11.3 would require
   │  └─ numpy >=1.26.0,<1.28  but there are no viable options
   │     ├─ numpy [1.19.2|1.19.4|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.3|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.21.3|1.21.4|...|1.26.3], which cannot be installed (as previously explained);
   │     ├─ numpy [1.24.4|1.25.0|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy 1.26.4, which cannot be installed (as previously explained);
   │     ├─ numpy 1.26.0 conflicts with any installable versions previously reported;
   │     ├─ numpy [1.26.2|1.26.3] conflicts with any installable versions previously reported;
   │     └─ numpy 1.26.4 conflicts with any installable versions previously reported;
   ├─ scipy 1.11.4 would require
   │  └─ numpy >=1.26.2,<1.28  but there are no viable options
   │     ├─ numpy [1.19.2|1.19.4|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.3|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.21.3|1.21.4|...|1.26.3], which cannot be installed (as previously explained);
   │     ├─ numpy [1.24.4|1.25.0|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy 1.26.4, which cannot be installed (as previously explained);
   │     ├─ numpy [1.26.2|1.26.3] conflicts with any installable versions previously reported;
   │     └─ numpy 1.26.4 conflicts with any installable versions previously reported;
   ├─ scipy 1.12.0 would require
   │  └─ numpy >=1.22.3,<1.29  but there are no viable options
   │     ├─ numpy [1.18.5|1.19.0|...|1.24.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.2|1.19.4|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.3|...|1.24.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.3|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.21.3|1.21.4|...|1.26.3], which cannot be installed (as previously explained);
   │     ├─ numpy [1.23.4|1.23.5|...|1.24.3], which cannot be installed (as previously explained);
   │     ├─ numpy [1.24.4|1.25.0|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy 1.22.3 conflicts with any installable versions previously reported;
   │     ├─ numpy [1.23.1|1.23.3] conflicts with any installable versions previously reported;
   │     ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │     ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │     ├─ numpy 1.23.4 conflicts with any installable versions previously reported;
   │     ├─ numpy [1.23.5|1.24.3] conflicts with any installable versions previously reported;
   │     ├─ numpy [1.25.0|1.25.2] conflicts with any installable versions previously reported;
   │     ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy 1.26.4, which cannot be installed (as previously explained);
   │     ├─ numpy 1.26.0 conflicts with any installable versions previously reported;
   │     ├─ numpy [1.26.2|1.26.3] conflicts with any installable versions previously reported;
   │     └─ numpy 1.26.4 conflicts with any installable versions previously reported;
   ├─ scipy 1.12.0 would require
   │  └─ numpy >=1.26.4,<1.29  but there are no viable options
   │     ├─ numpy [1.19.2|1.19.4|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.3|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.24.4|1.25.0|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.26.0|1.26.2|1.26.3|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy 1.26.4, which cannot be installed (as previously explained);
   │     └─ numpy 1.26.4 conflicts with any installable versions previously reported;
   ├─ scipy 1.9.1 would require
   │  └─ numpy >=1.21,<1.25.0  but there are no viable options
   │     ├─ numpy [1.18.5|1.19.0|...|1.21.6], which cannot be installed (as previously explained);
   │     ├─ numpy [1.18.5|1.19.0|...|1.24.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.2|1.19.4|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.0|...|1.21.5], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.3|...|1.24.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.3|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.21.3|1.21.4|...|1.26.3], which cannot be installed (as previously explained);
   │     ├─ numpy [1.23.4|1.23.5|...|1.24.3], which cannot be installed (as previously explained);
   │     ├─ numpy [1.24.4|1.25.0|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy 1.21.2 conflicts with any installable versions previously reported;
   │     ├─ numpy 1.21.5 conflicts with any installable versions previously reported;
   │     ├─ numpy 1.21.6 conflicts with any installable versions previously reported;
   │     ├─ numpy 1.22.3 conflicts with any installable versions previously reported;
   │     ├─ numpy [1.23.1|1.23.3] conflicts with any installable versions previously reported;
   │     ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │     ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │     ├─ numpy 1.23.4 conflicts with any installable versions previously reported;
   │     └─ numpy [1.23.5|1.24.3] conflicts with any installable versions previously reported;
   ├─ scipy 1.9.1 would require
   │  └─ numpy >=1.19,<1.25.0  with the potential options
   │     ├─ numpy 1.19.5, which cannot be installed (as previously explained);
   │     ├─ numpy [1.18.5|1.19.0|...|1.19.5], which cannot be installed (as previously explained);
   │     ├─ numpy [1.18.5|1.19.0|1.19.1|1.19.2|1.19.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.18.5|1.19.0|...|1.21.6], which cannot be installed (as previously explained);
   │     ├─ numpy [1.18.5|1.19.0|...|1.24.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.2|1.19.4|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy 1.19.5, which can be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.0|...|1.21.5], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.3|...|1.24.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.3|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.21.3|1.21.4|...|1.26.3], which cannot be installed (as previously explained);
   │     ├─ numpy [1.23.4|1.23.5|...|1.24.3], which cannot be installed (as previously explained);
   │     ├─ numpy [1.24.4|1.25.0|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.1|1.19.2] conflicts with any installable versions previously reported;
   │     ├─ numpy [1.19.5|1.20.1|1.20.2] conflicts with any installable versions previously reported;
   │     ├─ numpy 1.20.3 conflicts with any installable versions previously reported;
   │     ├─ numpy 1.21.2 conflicts with any installable versions previously reported;
   │     ├─ numpy 1.21.5 conflicts with any installable versions previously reported;
   │     ├─ numpy 1.21.6 conflicts with any installable versions previously reported;
   │     ├─ numpy 1.22.3 conflicts with any installable versions previously reported;
   │     ├─ numpy [1.23.1|1.23.3] conflicts with any installable versions previously reported;
   │     ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │     ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │     ├─ numpy 1.23.4 conflicts with any installable versions previously reported;
   │     └─ numpy [1.23.5|1.24.3] conflicts with any installable versions previously reported;
   ├─ scipy 1.9.3 would require
   │  └─ numpy >=1.21,<1.26.0  but there are no viable options
   │     ├─ numpy [1.18.5|1.19.0|...|1.21.6], which cannot be installed (as previously explained);
   │     ├─ numpy [1.18.5|1.19.0|...|1.24.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.2|1.19.4|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.0|...|1.21.5], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.3|...|1.24.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.3|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.21.3|1.21.4|...|1.26.3], which cannot be installed (as previously explained);
   │     ├─ numpy [1.23.4|1.23.5|...|1.24.3], which cannot be installed (as previously explained);
   │     ├─ numpy [1.24.4|1.25.0|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy 1.21.2 conflicts with any installable versions previously reported;
   │     ├─ numpy 1.21.5 conflicts with any installable versions previously reported;
   │     ├─ numpy 1.21.6 conflicts with any installable versions previously reported;
   │     ├─ numpy 1.22.3 conflicts with any installable versions previously reported;
   │     ├─ numpy [1.23.1|1.23.3] conflicts with any installable versions previously reported;
   │     ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │     ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │     ├─ numpy 1.23.4 conflicts with any installable versions previously reported;
   │     ├─ numpy [1.23.5|1.24.3] conflicts with any installable versions previously reported;
   │     └─ numpy [1.25.0|1.25.2] conflicts with any installable versions previously reported;
   ├─ scipy 1.9.3 would require
   │  └─ numpy >=1.23,<1.26.0  but there are no viable options
   │     ├─ numpy [1.18.5|1.19.0|...|1.24.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.2|1.19.4|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.3|...|1.24.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.19.5|1.20.3|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.21.3|1.21.4|...|1.26.3], which cannot be installed (as previously explained);
   │     ├─ numpy [1.23.4|1.23.5|...|1.24.3], which cannot be installed (as previously explained);
   │     ├─ numpy [1.24.4|1.25.0|...|1.26.4], which cannot be installed (as previously explained);
   │     ├─ numpy [1.23.1|1.23.3] conflicts with any installable versions previously reported;
   │     ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │     ├─ numpy 1.23.3, which cannot be installed (as previously explained);
   │     ├─ numpy 1.23.4 conflicts with any installable versions previously reported;
   │     ├─ numpy [1.23.5|1.24.3] conflicts with any installable versions previously reported;
   │     └─ numpy [1.25.0|1.25.2] conflicts with any installable versions previously reported;
   └─ scipy 1.9.3 would require
      └─ numpy >=1.19,<1.26.0  with the potential options
         ├─ numpy 1.19.5, which cannot be installed (as previously explained);
         ├─ numpy [1.18.5|1.19.0|...|1.19.5], which cannot be installed (as previously explained);
         ├─ numpy [1.18.5|1.19.0|1.19.1|1.19.2|1.19.4], which cannot be installed (as previously explained);
         ├─ numpy [1.18.5|1.19.0|...|1.21.6], which cannot be installed (as previously explained);
         ├─ numpy [1.18.5|1.19.0|...|1.24.4], which cannot be installed (as previously explained);
         ├─ numpy [1.19.2|1.19.4|...|1.26.4], which cannot be installed (as previously explained);
         ├─ numpy 1.19.5, which can be installed (as previously explained);
         ├─ numpy [1.19.5|1.20.0|...|1.21.5], which cannot be installed (as previously explained);
         ├─ numpy [1.19.5|1.20.3|...|1.24.4], which cannot be installed (as previously explained);
         ├─ numpy [1.19.5|1.20.3|...|1.26.4], which cannot be installed (as previously explained);
         ├─ numpy [1.21.3|1.21.4|...|1.26.3], which cannot be installed (as previously explained);
         ├─ numpy [1.23.4|1.23.5|...|1.24.3], which cannot be installed (as previously explained);
         ├─ numpy [1.24.4|1.25.0|...|1.26.4], which cannot be installed (as previously explained);
         ├─ numpy [1.19.1|1.19.2] conflicts with any installable versions previously reported;
         ├─ numpy [1.19.5|1.20.1|1.20.2] conflicts with any installable versions previously reported;
         ├─ numpy 1.20.3 conflicts with any installable versions previously reported;
         ├─ numpy 1.21.2 conflicts with any installable versions previously reported;
         ├─ numpy 1.21.5 conflicts with any installable versions previously reported;
         ├─ numpy 1.21.6 conflicts with any installable versions previously reported;
         ├─ numpy 1.22.3 conflicts with any installable versions previously reported;
         ├─ numpy [1.23.1|1.23.3] conflicts with any installable versions previously reported;
         ├─ numpy 1.23.3, which cannot be installed (as previously explained);
         ├─ numpy 1.23.3, which cannot be installed (as previously explained);
         ├─ numpy 1.23.4 conflicts with any installable versions previously reported;
         ├─ numpy [1.23.5|1.24.3] conflicts with any installable versions previously reported;
         └─ numpy [1.25.0|1.25.2] conflicts with any installable versions previously reported.
mikolmogorov commented 7 months ago

Thank you! Good to know that -t 10 worked, looks like we found the problem. Yes, python 3.11 seems to be nt supported by bioconda yet - so that's ok, no need for further testing.

Linking the CPython change for the sake of completeness: https://github.com/python/cpython/issues/101225

Thanks a lot for testing! In the meantime, we'll put a hard limit of 16 threads for the transform stage, until we can transition to Python 3.11.

Mikes92 commented 7 months ago

of course! Happy to help. Please let me know if there is anything else I can do for you, and I'll also let you know when this dataset becomes public. I think it would make a really great/challenging test case for stRainy!

Mike