liu-congcong / MetaDecoder

An algorithm for clustering metagenomic sequences.
GNU General Public License v3.0
30 stars 2 forks source link

fraggenescan assertion error #13

Closed Paupiera closed 1 year ago

Paupiera commented 1 year ago

Dear all,

Thanks for developing such a nice tool. I am trying to run MetaDecoder to bin contigs from 10 samples. Unfortunately, the following error raises when I try to generate the METADECODER_SEED: 2023-08-15 18:01:08 -> Identifying protein sequences. Traceback (most recent call last): File "/home/projects/cpr_10006/projects/aamb/mambaforge/envs/avamb/bin/metadecoder", line 220, in <module> metadecoder_seed.main(parameters) File "/home/projects/cpr_10006/projects/aamb/mambaforge/envs/avamb/lib/python3.9/site-packages/metadecoder/metadecoder_seed.py", line 59, in main run_fraggenescan( File "/home/projects/cpr_10006/projects/aamb/mambaforge/envs/avamb/lib/python3.9/site-packages/metadecoder/run_subprocess.py", line 26, in run_fraggenescan worker( File "/home/projects/cpr_10006/projects/aamb/mambaforge/envs/avamb/lib/python3.9/site-packages/metadecoder/run_subprocess.py", line 11, in worker assert not run(command, stdout = DEVNULL, stderr = DEVNULL).returncode, message AssertionError: An error has occured while running fraggenescan.

Here is the script I am trying to run: d=gi CONTIGS=/home/projects/cpr_10006/projects/vamb/data/datasets/cami2_${d}/contigs_2kbp.fna.gz THREADS=30 metadecoder seed --threads ${THREADS} -f ${CONTIGS} -o ${METADECODER_SEED}

Any idea about what could be causing this error?

Thanks in advance for your help, Best, Pau

liu-congcong commented 1 year ago

Hi Paupiera,

Thank you very much for using MetaDecoder.

Compressed assemblies are now supported in version 1.0.18. Please update it as follows.

pip3 install -U https://github.com/liu-congcong/MetaDecoder/releases/download/v1.0.18/metadecoder-1.0.18-py3-none-any.whl

Any comments would be highly appreciated.

Best Regards,

Cong-Cong

Paupiera commented 1 year ago

Dear Cong-Cong,

Thank you so much for your answer. Unfortunately, I cannot complete running MetaDecoder on my data yet. The following error rises:

Traceback (most recent call last):
  File "/home/projects/cpr_10006/projects/aamb/mambaforge/envs/avamb/bin/metadecoder", line 223, in <module>
    metadecoder_cluster.main(parameters)
  File "/home/projects/cpr_10006/projects/aamb/mambaforge/envs/avamb/lib/python3.9/site-packages/metadecoder/metadecoder_cluster.py", line 360, in main
    container[sequence] = container_value
IndexError: invalid index

When I try to execute this command:

CONTIGS=contigs_2kbp.fna
METADECODER_COVERAGE=coverage
METADECODER_SEED=seed
OUTDIR=outdir

metadecoder cluster -f ${CONTIGS} -c ${METADECODER_COVERAGE} -s ${METADECODER_SEED} -o ${OUTDIR}

Any idea about what could be causing the issue?

Thanks in advance for your help, Pau

liu-congcong commented 1 year ago

Hi Paupiera,

I apologize for the late reply as my girlfriend is unwell these days.

After reading your reply, I still can't determine the reason for the exception. If you don't mind, you could send me (congcong_liu@icloud.com) the contigs, seed, and coverage files (or provide me with download links) and I'll try to fix it as soon as possible.

Best Regards,

Cong-Cong

Paupiera commented 1 year ago

Dear Cong-Cong,

I am sorry to read your girlfriend is not feeling good, I hope she recovers as soon as possible.

I solved my error with the information from a previous issue.

However, now I was considering running MetaDecoder on a large dataset using a GPU. Is there a way to confirm that MetaDecoder is using the GPU? I am running in a high-computing platform and I am afraid my cupy-cuda installation might not be appropriate.

Best regards, Pau

liu-congcong commented 1 year ago

Hi Paupiera,

Thank you very much.

In order to run MetaDecoder on a GPU, please install CUPY first. MetaDecoder will automatically utilize the GPU, if CUPY has been successfully installed, to check the availability of CUPY, please run the following command:

python3 -c "import cupy; print(cupy.is_available())"

If the return value is True, it means CUPY is available.

Please note that MetaDecoder will not be updated to optimize performance, only bug fixes. An updated version of MetaDecoder is already in development, which will bring more accurate clustering results and lower GPU resource requirements.

Best Regards,

Cong-Cong

Paupiera commented 1 year ago

Great! Thank you so much :)