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

Improve performance (EMBLmyGFF3 v3) #6

Open
Juke34 opened this issue Mar 12, 2018 · 8 comments
Open

Improve performance (EMBLmyGFF3 v3) #6

Juke34 opened this issue Mar 12, 2018 · 8 comments
Assignees

Comments

@Juke34
Copy link
Collaborator

Juke34 commented Mar 12, 2018

We have a user who has used a huge GFF annotation of 3.34 GB. It took ~ 24h computation and apparently it has used more than 50 GB of memory...
We should investigate how to optimise the speedness and the memory usage.

Thread mentioning this here.

@Juke34
Copy link
Collaborator Author

Juke34 commented Mar 23, 2018

maybe avoiding in the FEATURE object
self._load_qualifier_translations(Feature.DEFAULT_QUALIFIER_TRANSLATION_FILE + translation_files)
self._load_feature_translations(Feature.DEFAULT_FEATURE_TRANSLATION_FILE)
for every feature but only once at the beginning will save lot of time.

@Juke34 Juke34 changed the title Improve speedness Improve performance Aug 24, 2018
@Juke34 Juke34 changed the title Improve performance Improve performance (EMBLmyGFF3 v3) Feb 20, 2020
@AdamStuckert
Copy link

Hello,

Thanks for the software, it is quite useful. I really appreciate it.

I'll start this by saying I am likely an edge-case user. I'm converting an 11 GB gff3 for a poison frog with a 6.8 Gbp genome. Currently it is 42 hours in and still writing to a flat file that is 4.4 GB. Is there an explicit flag for multithreading? I'm sure I'll have to do this again, so I'm wondering if there is a way to speed up the process.

Thanks!

@Juke34
Copy link
Collaborator Author

Juke34 commented Oct 9, 2020

Are you using version2?

You can try version3 which is in the branch feature/speedup but not all features are implemented. This version is multithreaded.

Otherwise you can split you files into chunks and run them in parallel using --locus_numbering_start to avoid having similar loci name.

@Juke34
Copy link
Collaborator Author

Juke34 commented Oct 20, 2020

Hi @AdamStuckert, I have made an update of the version 2 to make it faster (it is on branch "speed"). It is not multi threaded but might be 10X faster. Could you give a try on your huge file?

@AdamStuckert
Copy link

Thanks very much @Juke34! I'll install it and test it out today. I'll let you know how it does in the near future.

@Juke34
Copy link
Collaborator Author

Juke34 commented Jan 26, 2021

Hi @AdamStuckert, did you succeed to run the tool from the speed branch? Did you see any improvement in term of time?

@AdamStuckert
Copy link

Hi,

Sorry for the delay. I meant to test this out and then gestures vaguely at the USA. Anyway, it ran in ~24 hours this time with the same genome assembly and annotation file, which is a really dramatic improvement in speed. Thanks!

@Juke34
Copy link
Collaborator Author

Juke34 commented Feb 24, 2021

Thank you for your feedback. I have seen better performance on small files but it is still ~2 times faster on your huge file.
I will merge the branch and release a version 2.1 soon.

To resume:

  • Performance has been improved in version 1.2.5 with a better way to deal with the sequence
  • Performance has been improved in version 2.1 with a better way to deal with translation_files (loaded only once at the beginning then using a dictionary)
  • Performance are even better in version 3 where everything has been redesigned. It is faster and parallelized. But not all options from previous versions are implemented yet, only core set of parameters. It is not yet released and can be found in branch feature/speedup

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants