HUMAnN (v3.6) a new db update issue - CHOCOPhlAnSGB_202103

Hello,

I had the CHoCOPhlAnSGB database downloaded and updated the config file. I tried with and without the --nucleotide-database and --protein-database options. But for some reason, HUMAnN threw the database update msgs when I tried to run it - it got stuck when running metaphlan4. Is there any way of working around the db update msgs?

I use slurm as a job scheduling system so I create a bash script to submit jobs to slurm. The command below is how I run HUMANN.

humann --input 299_Ileum.concat.fastq.gz         --threads 14         --memory-use maximum         --remove-temp-output         --nucleotide-database /mnt/beegfs/kimj32/reference/Humann/chocophlan         --protein-database /mnt/beegfs/kimj32/reference/Humann/uniref         -o 299_Ileum_humann_out

(biobakery3) [kimj32@cc-dclrilog62 aef10a1deca2d93f80588dc3ff6bb5]$ humann_config
HUMAnN Configuration ( Section : Name = Value )
database_folders : nucleotide = /cm/shared/apps/HUMAnN/3.0/chocophlan
database_folders : protein = /cm/shared/apps/HUMAnN/3.0/uniref
database_folders : utility_mapping = /mnt/beegfs/root/HUMAnN/utility_mapping
run_modes : resume = False
run_modes : verbose = False
run_modes : bypass_prescreen = False
run_modes : bypass_nucleotide_index = False
run_modes : bypass_nucleotide_search = False
run_modes : bypass_translated_search = False
run_modes : threads = 1
alignment_settings : evalue_threshold = 1.0
alignment_settings : prescreen_threshold = 0.01
alignment_settings : translated_subject_coverage_threshold = 50.0
alignment_settings : translated_query_coverage_threshold = 90.0
alignment_settings : nucleotide_subject_coverage_threshold = 50.0
alignment_settings : nucleotide_query_coverage_threshold = 90.0
output_format : output_max_decimals = 10
output_format : remove_stratified_output = False
output_format : remove_column_description_output = False

stderr:

/tmpvghtuu0m -t rel_ab -o /mnt/beegfs/kimj32/projects/MSAR/Colon_versus_Illeum/work/fb/aef10a1deca2d93f80588dc3ff6bb5/299_Ileum_humann_out/299_Ileum.concat_humann_temp_2h7sgy1a/299_Ileum.concat_metaphlan_bugs_list.tsv --input_type fastq --bowtie2out /mnt/beegfs/kimj32/projects/MSAR/Colon_versus_Illeum/work/fb/aef10a1deca2d93f80588dc3ff6bb5/299_Ileum_humann_out/299_Ileum.concat_humann_temp_2h7sgy1a/299_Ileum.concat_metaphlan_bowtie2.txt --nproc 14

Error message returned from metaphlan :
A newer version of the database (mpa_vJan21_CHOCOPhlAnSGB_202103) is available. Do you want to download it and replace the current one ()?      [Y/N]Traceback (most recent call last):
  File "/cm/shared/apps/HUMAnN/3.0/bin/metaphlan", line 10, in <module>
    sys.exit(main())
  File "/cm/shared/apps/HUMAnN/3.0/lib/python3.9/site-packages/metaphlan/metaphlan.py", line 999, in main
    pars['index'] = check_and_install_database(pars['index'], pars['bowtie2db'], pars['bowtie2_build'], pars['nproc'], pars['force_download'], pars['offline'])
  File "/cm/shared/apps/HUMAnN/3.0/lib/python3.9/site-packages/metaphlan/__init__.py", line 299, in check_and_install_database
    choice = input('A newer version of the database ({}) is available. Do you want to download it and replace the current one ({})?\t[Y/N]'.format(index, previous_db_version))
EOFError: EOF when reading a line

See here for some discussion on this error:

That said, I’m not sure what you’re doing here will work even after this is resolved if you’re trying to use a nondefault database?

Hi Franzosa,

Thank for the answer. Oh yes, metaphlan-option --offline may work for me. I will give it a go.

I’m sorry for the confusion. What I wanted to do is getting around the db update messages. The default db in the config file is the same as the nondefault db, which is "mpa_vJan21_CHOCOPhlAnSGB_202103".

Both dbs are updated ones, yet HUMAnN throws those update msgs which made slurm stop running it.

I tried --metaphlan-options --offline, but it threw an error saying humann: error: argument --metaphlan-options: expected one argument

I have tried --metaphlan-options -offline (one dash before “offline”) or --metaphlan-options offline but nothing worked.

It seems like --metaphlan-options doesn’t reconize the --offline as an argument.

I believe any metaphlan options you pass to humann have to be in quotes:

--metaphlan-options "--offline"

That got humann to run for me, but it didn’t resolve the broader issue. I had to specify the location and index of my metaphlan db like this:

--metaphlan-options "--bowtie2db /path/to/my/db -x mpa_vOct22_CHOCOPhlAnSGB_202212"

Of course, that was something I also tried. In my case, --metaphlan-options --bowtie2db /path/db --offline" worked for me. Thanks for the help!

For someone has Humann installed using environment module:

In my institute, Humann was installed using module. So I had to work with our system admin to work around the issue since I didn’t have permission to write/update module files. I could try conda but I prefer not to.

So after spending hours banging my head against wall, the command above seemed to work for me.