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

Error when using bsub #17

Open
ssscj opened this issue Feb 21, 2021 · 2 comments
Open

Error when using bsub #17

ssscj opened this issue Feb 21, 2021 · 2 comments

Comments

@ssscj
Copy link

ssscj commented Feb 21, 2021

Hi, thanks for developing this program. I ran C3POa on login nodes, and it worked. But I used bsub to submit the task to computing nodes, it was stuck at the step of calling consensi.

Aligning splints to reads with blat
Preprocessing: 100%|██████████| 10/10 [00:06<00:00,  1.59it/s]
Catting psls: 100%|██████████| 10/10 [00:00<00:00, 86.01it/s]
Removing preprocessing files: 100%|██████████| 10/10 [00:00<00:00, 287.00it/s]
Calling consensi:   0%|          | 0/10 [00:00<?, ?it/s]

the command I used is this:
bsub -q TEST-A -n 32 -e c3pao.err -o c3poa.out 'python ~/software/c3poa/C3POa/C3POa.py -r ../01.QC/nanofilt/rep1/test.fastq -o output_test/ -s ../10x_UMI_splint.fasta -c c3pao.config -l 1000 -d 500 -n 32 -g 1000'

Do you know how to run C3POa by submitting bsub command? Thank you!

Best regards,
Chujie

@rvolden
Copy link
Owner

rvolden commented Feb 22, 2021

I've never used bsub, but I have a question about your default python version? Are you trying to run this with python 2? Most servers still have python 2.7 as the default python, which might subtly break things. You can try running explicitly with python3 and maybe that will help? If it doesn't, try changing line 235-238 from

pool.apply_async(analyze_reads,
                args=(args, tmp_reads, splint_dict, adapter_dict, adapter_set, iteration, racon),
                callback=lambda _: pbar.update(1)
)

to

pool.apply_async(analyze_reads,
                args=(args, tmp_reads, splint_dict, adapter_dict, adapter_set, iteration, racon),
                callback=lambda _: pbar.update(1)
).get()

Error messages don't get passed up through apply_async, so if there's something erroring, adding the .get() should let you see those error messages at the cost of multiprocessing.

@ssscj
Copy link
Author

ssscj commented Feb 26, 2021

Hi, thanks for your reply.The server uses python 3.7. I changed the code but it did not give any error message. Luckily it worked successfully on another server which does not use bsub.

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