ythuang0522 / homopolish

High-quality Nanopore-only genome polisher
GNU General Public License v3.0
65 stars 12 forks source link

Error when using the flag --meta #17

Closed DDavila10 closed 3 years ago

DDavila10 commented 3 years ago

Hi all,

I want to use homopolish for my metagenome data bur if I use the flag --meta I have this error

[2020/11/16 22:06] INFO: RUN-ID: contig_10 [2020/11/16 22:06] INFO: Stage: Homologous retrieval False Traceback (most recent call last): File "homopolish.py", line 52, in main() File "homopolish.py", line 38, in main FLAGS.output_dir, FLAGS.minimap_args, FLAGS.mash_threshold, FLAGS.download_contig_nums, FLAGS.debug, FLAGS.meta) File "/beegfs/group_dv/home/DDavila/my_software/software/homopolish/modules/polish_interface.py", line 96, in polish_genome dataframe = homologous_retrieval(contig_name, minimap_args, threads, db_path, contig_output_dir) File "/beegfs/group_dv/home/DDavila/my_software/software/homopolish/modules/polish_interface.py", line 67, in homologous_retrieval df = align2df.todf(assembly, seq_npz, output_dir) File "/beegfs/group_dv/home/DDavila/my_software/software/homopolish/modules/align2df.py", line 11, in todf db_arr = np.load(db_np) File "/beegfs/group_dv/home/DDavila/miniconda3/envs/homopolish/lib/python3.7/site-packages/numpy/lib/npyio.py", line 428, in load fid = open(os_fspath(file), "rb") TypeError: expected str, bytes or os.PathLike object, not bool

How can I solve this?

Thanks a lot for the help!

ythuang0522 commented 3 years ago

Hi, The --meta flag is a developing module for highly-fragmented MAGs, which is not officially released yet. We incidentally committed the main program with this option but without the associated code. That's why you got this error. If your MAGs are not so fragmented you don't have to specify this option. If that's your case, we plan to commit the beta version of this module in about two weeks. I hope this helps. --Yao-Ting

DDavila10 commented 3 years ago

Hi -- Thanks a lot for the help. I will wait for the beta version of the meta module.

schorlton commented 2 years ago

@ythuang0522, can you comment if --meta mode is implemented? I tried running it and got:

Traceback (most recent call last):
  File "/homopolish/homopolish.py", line 58, in <module>
    main()
  File "/homopolish/homopolish.py", line 42, in main
    FLAGS.output_dir, FLAGS.minimap_args, FLAGS.mash_threshold, FLAGS.download_contig_nums, FLAGS.debug, FLAGS.meta, FLAGS.local_DB_path)
  File "/homopolish/modules/polish_interface.py", line 322, in polish_genome
    out = meta_polish(out, assembly_name, output_dir_debug, mash_screen, assembly, model_path, sketch_path, genus_species, threads, output_dir, minimap_args, mash_threshold, download_contig_nums, debug, meta)
  File "/homopolish/modules/polish_interface.py", line 179, in meta_polish
    paf = alignment.align(assembly, minimap_args, threads, db_path, output_dir_debug)
NameError: name 'db_path' is not defined
Traceback (most recent call last):
  File "/lib/python/nextflow.py", line 67, in run_cmd
    result.check_returncode()
  File "/opt/conda/envs/lib/python3.7/subprocess.py", line 444, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['python3', '/homopolish/homopolish.py', 'polish', '-a', 'consensus.fasta', '-s', 'refseq.msh', '-m', '/homopolish/R9.4.pkl', '--meta', '--debug', '-o', 'homopolish']' returned non-zero exit status 1.

Happy to provide a reproducible example if it is indeed implemented. Thanks!

ythuang0522 commented 2 years ago

@schorlton This is an experimental option for highly-fragmented MGAs. This is an old bug but reappeared also due to merging wrong branches. We have fixed it and please try again. In short, the meta mode takes all MAGs for mash screen instead of contig by contig. However, we don't have nice data at hand for fully supporting this feature. If you have we would like to hear your feedback.