-
Notifications
You must be signed in to change notification settings - Fork 82
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
Error during pplacer #170
Comments
Hello, There is a known issue with pplacer where using a high number of threads can cause issues. Primarily those issues are related to the host thinking more memory is being used than it actually is. I'd recommend running it again with a smaller number of threads ~10-30. There may be more information available in the pplacer log file which you can find in the output directory under: |
Thank you for the quick reply. I'll try to run with fewer threads and get back to you on if it worked or not. Here's the output of the file you listed in the meantime - Running pplacer v1.1.alpha19-0-g807f6f3 analysis on ./metawrap/Shale/binone_output_072319_2/align/gtdbtk.bac120.user_msa.fasta... |
I am still getting the same error when I use --cpus 1 |
OK i ran a test genome that is in a slightly different format- it is an annotated .fna file - and it worked no problem! |
More helpful info to add to the last message as well- Thanks ! |
I was able to get all these bins to run in GTDB in KBase, so it must be an issue w/ my installation (which was done through bioconda). |
I'm having this same problem with 1 thread. So far I couldn't get it to work. The gtdbtk test command runs smoothly, though. |
Thanks for the detailed feedback and the genomes, it was very useful for testing. Unfortunately, I haven't been able to replicate the issue trying either: pip install, conda environment, or a manual build. What I've observed is:
Given pplacer is failing on the caching step, I would be inclined to say that the server has insufficient memory. Can I ask how much RAM the server has? If you do have sufficient memory then I'll do a bit of digging into if conda has any sort of upper memory limit. |
I tried this again with capping the maximum amount of memory using
Perhaps I would also try running the command manually, you will need to change it a bit but it should be something like this: That way we can at least validate that it's pplacer which is the issue and maybe capture any additional output which is being missed. |
I am having the same problem, the test genomes worked but not my own MAGs. Edit: It seems to work only with archaeal MAGs but not with bacterial MAGs. |
@Handymanalan are you able to get this to run manually using the |
I also got the same error from both pip and bioconda installed version. Then I tried to run pplacer manually as indicated above, it also did not work |
Hi @xwu35, what did pplacer output when it failed? It sounds like this is a problem specific with pplacer, I just need to confirm that the input isn't malformed. Additionally, how much memory is on the server? |
Hi, the code i used was: pplacer -m WAG -j 6 -c /lustre/haven/user/xwu35/database/release89/pplacer/gtdb_r89_bac120.refpkg -o /tmp/pplacer.bac120.json gtdbtk_good_bins_output/align/gtdbtk.bac120.user_msa.fasta and the output was like this: But the weird thing is that I just ran pplacer and gtdbtk from both versions again and they all worked...We have 192 GB of RAM per node on server. Thanks |
@xwu35 Given that the caching likelihood information step is when pplacer loads 100+GB of data into memory it sounds like it ran out of memory. Unfortunately, pplacer isn't awfully descriptive with its error messages. 192 GB of RAM is sufficient to run GTDB-Tk, however, there may be some insights into how pplacer operates on HPCs which you can read about in issue #124 Thanks, |
I'd like to record an instance of this same issue: I used an HPC slurm system to run the following gtdbtk command within a for-loop, in which ${COM} represents a different community, hosting the necessary genome folder ('MAG-genomes') as an input. (There are 11 ${COM} folders, each with ~30 MAGS in .fa format. So, essentially, gtdbtk should be operating on ~30 MAGS at a time.) gtdbtk classify_wf --genome_dir ./${COM}/CHECKM/MAG-genomes/ --out_dir ./${COM}/GTDB -x fa I tried several iterations of this code with the following HPC parameters to accomodate for memory requirements (after finding this forum):
I also tried varying the assigned CPU's using the --cpus flag in the gtdbtk command. In all instances, the gtdbtk command was able to complete everything except the 'classify' step, (before moving on to the next community in the for-loop.) At the classify step of the program, pplacer was only able to place and classify the archael genomes ... when pplacer attempted to run on the bacterial genomes, it crashed with the following output messages (which demonstrate the ability to place archael genomes but not bacterial). [2019-10-23 14:05:44] INFO: Placing 2 archaeal genomes into reference tree with pplacer (be patient). ================================================================================ This error was corroborated by only the presence of the archael final output files, but not bacterial. I have not yet found a valid solution, since my HPC allotment is capped at 4 nodes. Running this in Kbase is hardly an option, since the Kbase app seems to require a separate run for each genome and I have almost 300 MAGS to work with. Any updates or bug-fixes would be HUGELY appreciated. Best, |
Hi Phia. Best we can tell this is an issue with how pplacer interacts with some HPC environments. The end result being that it appears pplacer is requesting increasing memory for each additional CPU though in reality this isn't the case. Unfortunately, we do not have a solution to this. I think your options are either to run GTDB-Tk with only a few CPUs in order to keep the apparent memory request within reason or to use KBase. You can create a genome set at KBase and process multiple genomes at once through GTDB-Tk. A major part of the time requires by GTDB-Tk is loading in the reference tree. As such, it is far more efficient to process all MAGs at once (i.e. combining the MAGs from all your communities into a single job for processing). |
Thank you for your quick response, dparks. I have two follow-up questions:
Thank you in advance, |
Hi Phia. GTDB-Tk requires a machine with access to 128 GB of RAM. Sounds like each of your nodes only has 64 GB of RAM which is not sufficient. I am not familiar with KBase. Perhaps you can send a help request to them regarding how to upload multiple genomes. |
Closing this issue as I believe it's been resolved, the FAQ page has been updated with a summary of what we've learned. Feel free to re-open if that's not the case. There are two main issues which were identified in this issue:
Issue 1 should be easily identifiable on GTDB-Tk 1.0.2 as a warning will be displayed if the server has insufficient memory. Issue 2 is available for reference in the FAQ, additionally, overriding the number of threads pplacer can use will be available as a feature in the next release (#195). |
Thank you Aaron - and I apologize for my lack of response. I consulted
with your team at office hours, and was able to resolve the issue using a
bigmem cluster.
Sincerely,
Sophia
…On Tue, Dec 17, 2019 at 10:08 PM Aaron ***@***.***> wrote:
Closed #170 <#170>.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#170?email_source=notifications&email_token=ANSQL2FDCAXCQ3C6QQZBFOLQZG46PA5CNFSM4IGLSWXKYY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOVRSTIBQ#event-2892313606>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ANSQL2EQVV6QHBKE2EXDH7DQZG46PANCNFSM4IGLSWXA>
.
--
Sophia D. Ewens
Ph.D Candidate in Microbiology
John D. Coates Laboratory | Website <http://coateslab.berkeley.edu/>
Department of Plant & Microbial Biology
University of California, Berkeley
|
On a side note. It would be really helpful if the standard conda installation would be set on version 1.2.0 of gtdbtk. |
Hi
|
hi I got the same issue. and I tested with pplacer -m WAG -j 1 -c $GTDBTK_DATA_PATH/pplacer/gtdb_r89_bac120.refpkg -o /tmp/pplacer.bac120.json ~/classify_wf/align/gtdbtk.bac120.user_msa.fasta, and it showed |
Having issues with pplacer step - it seems everything else is working, and the check install step works just fine so I don't think it's an install issue...
I have tried giving the command different amounts of cpus, so I don't think it's a memory thing? As you can see it runs for about 38 minutes before the error message, this doesn't change regardless of the amount of cpus I give it.
(gtdb_env_2) -bash-4.2$ gtdbtk classify_wf --genome_dir ./metawrap/Shale/Bin_classify_GTDB/bin_one/ --out_dir ./metawrap/Shale/binone_output_072319_2 -d --force --cpus 64 --force
[2019-07-23 21:49:26] INFO: GTDB-Tk v0.3.2
[2019-07-23 21:49:26] INFO: gtdbtk classify_wf --genome_dir ./metawrap/Shale/Bin_classify_GTDB/bin_one/ --out_dir ./metawrap/Shale/binone_output_072319_2 -d --force --cpus 64 --force
[2019-07-23 21:49:26] INFO: Using GTDB-Tk reference data version r89: /users/PAS1331/osu7930/miniconda3/envs/gtdb_env_2/share/gtdbtk-0.3.2/db/
[2019-07-23 21:49:26] INFO: Identifying markers in 1 genomes with 64 threads.
[2019-07-23 21:49:26] INFO: Running Prodigal to identify genes.
==> Finished processing 1 of 1 (100.0%) genomes.
[2019-07-23 21:49:37] INFO: Identifying TIGRFAM protein families.
==> Finished processing 1 of 1 (100.0%) genomes.
[2019-07-23 21:49:43] INFO: Identifying Pfam protein families.
==> Finished processing 1 of 1 (100.0%) genomes.
[2019-07-23 21:49:44] INFO: Done.
[2019-07-23 21:49:48] INFO: Aligning markers in 1 genomes with 64 threads.
[2019-07-23 21:49:48] INFO: Processing 1 genomes identified as bacterial.
[2019-07-23 21:49:57] INFO: Read concatenated alignment for 23458 GTDB genomes.
[2019-07-23 21:50:15] INFO: Masking columns of multiple sequence alignment using canonical mask.
[2019-07-23 21:51:18] INFO: Masked alignment from 41155 to 5040 AAs.
[2019-07-23 21:51:18] INFO: 0 user genomes have amino acids in <10.0% of columns in filtered MSA.
[2019-07-23 21:51:18] INFO: Creating concatenated alignment for 23459 GTDB and user genomes.
[2019-07-23 21:51:19] INFO: Creating concatenated alignment for 1 user genomes.
[2019-07-23 21:51:19] INFO: Done.
[2019-07-23 21:51:19] INFO: Placing 1 bacterial genomes into reference tree with pplacer (be patient).
[2019-07-23 22:29:25] ERROR: An error was encountered while running pplacer.
[2019-07-23 22:29:25] ERROR: Controlled exit resulting from an unrecoverable error or warning.
================================================================================
EXCEPTION: PplacerException
MESSAGE:
Traceback (most recent call last):
File "/users/PAS1331/osu7930/miniconda3/envs/gtdb_env_2/bin/gtdbtk", line 452, in
gt_parser.parse_options(args)
File "/users/PAS1331/osu7930/miniconda3/envs/gtdb_env_2/lib/python2.7/site-packages/gtdbtk/main.py", line 602, in parse_options
self.classify(options)
File "/users/PAS1331/osu7930/miniconda3/envs/gtdb_env_2/lib/python2.7/site-packages/gtdbtk/main.py", line 415, in classify
options.debug)
File "/users/PAS1331/osu7930/miniconda3/envs/gtdb_env_2/lib/python2.7/site-packages/gtdbtk/classify.py", line 320, in run
scratch_dir)
File "/users/PAS1331/osu7930/miniconda3/envs/gtdb_env_2/lib/python2.7/site-packages/gtdbtk/classify.py", line 146, in place_genomes
pplacer.run(self.cpus, 'WAG', pplacer_ref_pkg, pplacer_json_out, user_msa_file, pplacer_out, pplacer_mmap_file)
File "/users/PAS1331/osu7930/miniconda3/envs/gtdb_env_2/lib/python2.7/site-packages/gtdbtk/external/pplacer.py", line 61, in run
raise PplacerException(proc_err)
PplacerException
The text was updated successfully, but these errors were encountered: