CheckM icon indicating copy to clipboard operation
CheckM copied to clipboard

Unexpected error: <class 'RecursionError'>

Open MingyueCheng opened this issue 3 years ago • 2 comments

Command: checkm lineage_wf -x fa -t 20 --pplacer_threads 20 --tmpdir ./checkm_tmp ./bin ./checkm

Can anybody help me !! Many thanks to you!! I just wanna get a summary table of 3W metagenomic bins, with completeness, contamination, strain heterogeneity... and some other things like these. Did this error occur because of the large number of bins?

[2022-12-24 19:34:28] INFO: CheckM v1.2.2 [2022-12-24 19:34:28] INFO: checkm lineage_wf -x fa -t 20 --pplacer_threads 20 --tmpdir ./checkm_tmp ./bin ./checkm [2022-12-24 19:34:28] INFO: CheckM data: /opt/service/miniconda3/envs/r4_py37_env/checkm_data [2022-12-24 19:34:28] INFO: [CheckM - tree] Placing bins in reference genome tree. [2022-12-24 20:51:16] INFO: Identifying marker genes in 33728 bins with 20 threads: [2022-12-25 05:16:17] INFO: Saving HMM info to file. [2022-12-25 05:16:28] INFO: Calculating genome statistics for 33728 bins with 20 threads: [2022-12-25 05:20:48] INFO: Extracting marker genes to align. [2022-12-25 05:20:48] INFO: Parsing HMM hits to marker genes: [2022-12-25 05:53:53] INFO: Extracting 43 HMMs with 20 threads: [2022-12-25 05:53:55] INFO: Aligning 43 marker genes with 20 threads: [2022-12-25 06:09:50] INFO: Reading marker alignment files. [2022-12-25 06:09:53] INFO: Concatenating alignments. [2022-12-25 06:09:56] INFO: Placing 33728 bins into the genome tree with pplacer (be patient). [2022-12-25 09:57:01] INFO: { Current stage: 14:22:33.383 || Total: 14:22:33.383 } [2022-12-25 09:57:03] INFO: [CheckM - lineage_set] Inferring lineage-specific marker sets. [2022-12-25 09:57:03] INFO: Reading HMM info from file. [2022-12-25 09:57:15] INFO: Parsing HMM hits to marker genes: [2022-12-25 10:22:47] INFO: Determining marker sets for each genome bin.

Unexpected error: <class 'RecursionError'>

#ERROR detail: Traceback (most recent call last): File "/opt/service/miniconda3/envs/r4_py37_env/bin/checkm", line 856, in checkmParser.parseOptions(args) File "/opt/service/miniconda3/envs/r4_py37_env/lib/python3.7/site-packages/checkm/main.py", line 980, in parseOptions self.lineageSet(options) File "/opt/service/miniconda3/envs/r4_py37_env/lib/python3.7/site-packages/checkm/main.py", line 265, in lineageSet resultsParser, options.unique, options.multi) File "/opt/service/miniconda3/envs/r4_py37_env/lib/python3.7/site-packages/checkm/treeParser.py", line 485, in getBinMarkerSets tree = dendropy.Tree.get_from_path(treeFile, schema='newick', rooting="force-rooted", preserve_underscores=True) File "/opt/service/miniconda3/envs/r4_py37_env/lib/python3.7/site-packages/dendropy/datamodel/basemodel.py", line 219, in get_from_path **kwargs) File "/opt/service/miniconda3/envs/r4_py37_env/lib/python3.7/site-packages/dendropy/datamodel/treemodel.py", line 2663, in _parse_and_create_from_stream global_annotations_target=None) File "/opt/service/miniconda3/envs/r4_py37_env/lib/python3.7/site-packages/dendropy/dataio/ioservice.py", line 375, in read_tree_lists global_annotations_target=global_annotations_target) File "/opt/service/miniconda3/envs/r4_py37_env/lib/python3.7/site-packages/dendropy/dataio/newickreader.py", line 326, in _read tree_factory=tree_factory): File "/opt/service/miniconda3/envs/r4_py37_env/lib/python3.7/site-packages/dendropy/dataio/newickreader.py", line 304, in tree_iter taxon_symbol_map_fn=taxon_symbol_mapper.require_taxon_for_symbol) File "/opt/service/miniconda3/envs/r4_py37_env/lib/python3.7/site-packages/dendropy/dataio/newickreader.py", line 386, in _parse_tree_statement is_internal_node=None) File "/opt/service/miniconda3/envs/r4_py37_env/lib/python3.7/site-packages/dendropy/dataio/newickreader.py", line 562, in _parse_tree_node_description is_internal_node=is_new_internal_node, File "/opt/service/miniconda3/envs/r4_py37_env/lib/python3.7/site-packages/dendropy/dataio/newickreader.py", line 562, in _parse_tree_node_description is_internal_node=is_new_internal_node, File "/opt/service/miniconda3/envs/r4_py37_env/lib/python3.7/site-packages/dendropy/dataio/newickreader.py", line 562, in _parse_tree_node_description is_internal_node=is_new_internal_node, [Previous line repeated 979 more times] File "/opt/service/miniconda3/envs/r4_py37_env/lib/python3.7/site-packages/dendropy/dataio/newickreader.py", line 553, in _parse_tree_node_description new_node = tree.node_factory(); File "/opt/service/miniconda3/envs/r4_py37_env/lib/python3.7/site-packages/dendropy/datamodel/treemodel.py", line 3027, in node_factory return Node(**kwargs) File "/opt/service/miniconda3/envs/r4_py37_env/lib/python3.7/site-packages/dendropy/datamodel/treemodel.py", line 1028, in init length=kwargs.pop("edge_length", None)) File "/opt/service/miniconda3/envs/r4_py37_env/lib/python3.7/site-packages/dendropy/datamodel/treemodel.py", line 1002, in edge_factory return Edge(**kwargs) File "/opt/service/miniconda3/envs/r4_py37_env/lib/python3.7/site-packages/dendropy/datamodel/treemodel.py", line 747, in init basemodel.DataObject.init(self, label=kwargs.pop("label", None)) RecursionError: maximum recursion depth exceeded while calling a Python object

MingyueCheng avatar Dec 25 '22 07:12 MingyueCheng

Or should I split the bins into different directories and run the commend separately? Will the results be different from that by taking them all to the CheckM?

I noticed that there was a step to replace all of the bins into the reference tree. The document mentioned that "All genomes to be analyzed must reside in a single bins directory."

I am afraid that if I analyzed these bins in different batches, the results will be influenced.

By the way, I just wanna get a summary table reporting the completeness, contamination, strain heterogeneity. What is the most convenient and efficient way to achieve this goal using CheckM? Many thanks for your help!

MingyueCheng avatar Dec 25 '22 07:12 MingyueCheng

You may find this helpful: https://github.com/Ecogenomics/CheckM/wiki/Bugs-and-Feature-Requests#processing-large-numbers-of-genomes

CheckM results are independent for each genome.

donovan-h-parks avatar Jan 01 '23 00:01 donovan-h-parks