Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unexpected error: <class 'RecursionError'> #365

Open
MingyueCheng opened this issue Dec 25, 2022 · 2 comments
Open

Unexpected error: <class 'RecursionError'> #365

MingyueCheng opened this issue Dec 25, 2022 · 2 comments

Comments

@MingyueCheng
Copy link

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
Copy link
Author

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!

@donovan-h-parks
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants