A third-party parallel ITSx implementation
Some of you who think ITSx is running slowly despite being assigned multiple CPUs, particularly on datasets with only one kind of sequences (e.g. fungal) using the -t F
option might be interested in trying out Andrew Krohn’s parallel ITSx implementation. The solution essentially employs a bash script spawning multiple ITSx instances running on different portions of the input file. Although there are some limitations to the script (e.g. you cannot select a custom name for the output and you will only get the ITS1 and ITS2 + full sequences FASTA files, as far as I understand the script), it may prove useful for many of you until we write up a proper solution to the poor multi-thread performance of ITSx (planned for version 1.1). In the coming months, I recommend that you check this solution out! See also the wiki documentation.
My speed tests shows the following (on a quite small test set of fungal ITS sequences):
ITSx parallel on 16 CPUs, all ITS types (option “-t all
“):
3 min, 16 sec
ITSx parallel on 16 CPUs, only fungal ITS types (option “-t f
“):
54 sec
ITSx native on 16 CPUs, all ITS types (options “-t all --cpu 16
“):
4 min, 59 sec
ITSx native on 16 CPUs, only fungal types (options “-t f --cpu 16
“):
5 min, 50 sec
Why fungal only took longer time in the native implementation is a mystery to me, but probably shows why there is a need to rewrite the multithreading code, as we did with Metaxa a couple of years ago. Stay tuned for ITSx updates!
Christmas Holidays
We’re approaching Christmas, and this year I will try to spend lots of time with my family and less time at the computer. We’ll see how that goes, but all in all it means that I will most likely not respond promptly to e-mails until after New Year’s, maybe not until January 8 or 9. If, for example, you have asked a support question and have not received a response before January 12 2015, then please feel free to re-send your e-mail as I should then at least have replied that I cannot solve your issue quickly.
A further note for the future is that I will be on parental leave with my lovely nine-month-old during the entire spring, so answering e-mails will not be my highest priority, and might be neglected entirely in periods. I apologize for all kinds of inconveniences that this might cause, especially for Metaxa, ITSx and Megraft users.
Merry Christmas and a Happy New Year!
Minor ITSx bug fix
A minor bug in the “its1.full_and_partial.fasta” file has been fixed in a minor update to ITSx (1.0.11) released to day. The bug occasionally caused newline characters at the end of a sequence to be skipped and the next entry to begin at the same row. The bug only manifested itself when ITSx was used with the --partial
option and only in the above mentioned FASTA file. If you have been affected by the bug, you should have noticed as the resulting FASTA file would be considered corrupted by most bioinformatics software. The updated version of ITSx can be downloaded here.
ITSx updated to version 1.0.10
After a long delay-time in testing ITSx version 1.0.10 has been made public. The new version patches a bug causing the 3′ anchor not being properly written to file when using the “--anchor hmm
” option. If a number was used for the “--anchor
” option, this bug did not apply. Thus, if you have not been using the “--anchor
” option together with “hmm”, you have not been affected in any way by this bug. Nevertheless, I encourage updating in case you would use the “--anchor hmm
” option in the future. The update can be downloaded here. Happy barcoding!
A bit of advice to becoming-dads – Support issues
I would like to sincerely apologize for that I have been terrible at responding to support issues pertaining to ITSx, Metaxa, Atosh etc. lately. I am currently on 50% parental leave and at the same time I am wrapping up three first-author papers, organizing a workshop and preparing a talk. Thus, support issues has been lagging a bit behind the last weeks to be able to cope with everything else. I have been ticking off most (all?) of my support questions the last couple of days, but if I have any remaining issues that I have missed to reply to, please re-send them to me!
I will try to improve response times, but it is hard when I am working less than usual (also, note that I (strangely) don’t get paid for supporting software, so I have to do this on my “sparetime”). My aim is to respond within a few days, so if I have not done so, please resend your e-mail with a friendly reminder that you are waiting for my response. Reminding me will very likely put your question up the priority pile.
So, my advice to becoming dads is: Do take paternal leave. Do take a lot of it. Share responsibilities with your partner. Because what you get back is awesome. (And also you get a good reason not to answer support questions in time.) But finally, don’t plan to wrap up the last couple of year’s worth of work and arrange a conference at the same time as you take out paternal leave. That will only make you feel insufficient at all fronts.
Keep the spirit high!
ITSx updated to version 1.0.9
I and one of the other developers of ITSx had a discussion a while ago about that using the --anchor
option should output the “anchor sequences” around the ITS regions also for the full-length output file (given that the --truncate
option is activated). I have today changed ITSx to employ this behaviour, updating it to version 1.0.9. The update also improves sensitivity when using the --anchor HMM
option slightly, and can be downloaded here. Happy barcoding!
New ITSx update – added feature plus bug fix
ITSx has today been updated, bringing it to version 1.0.8. This update adds the “--only_full
” option, which restricts output in the ITS1, 5.8S and ITS2 files to only the files that contain the full region, i.e. that both surrounding domains have been detected. The update also fixes a bug with the --anchor
option, and can be downloaded here. Happy barcoding!
ITSx updated to version 1.0.7 – Minor bugfix
Last week, I was informed by an ITSx user that the software behaved strangely when input files containing extremely long sequence identifiers were used. The bug is not likely to have affected a majority of users, but in any case it is now fixed, and ITSx can now handle sequence identifiers of any length. The new update brings ITSx to version 1.0.7, and it can be downloaded here. Happy barcoding!
ITSx chimera bugfix
A user informed me of unexpected behavior regarding potentially chimeric sequences in ITSx, and indeed it turned out to contain a bug that over-reported potential chimeras. This bug is totally unrelated to the new version released this week, and exists in all prior ITSx versions. I strongly encourage everyone to update to ITSx 1.0.6.
I would also like to underscore that ITSx is not a chimera-checker. It detects when sequences look unusual, but all such cases should be further investigated. If you follow this practice, you will see that in some cases ITSx might have over-reported chimeras, and in some instances it will have been correct in its suspicions (and thereby you would be largely unaffected by this bug).
ITSx updated to version 1.0.5
I am on a roll pushing out new software these days, an here’s the latest addition. This version of ITSx was finished up last month and seems to be stable enough for consumption by the users. Version 1.0.5 adds a new option: “--anchor
” which enables extraction of regions flanking the ITS sequences (and the 5.8S, LSU and SSU, if desired). The option allows for extraction of a number of bases at each end, e.g. “--anchor 30
” to get 30 bp before and after each ITS region, or all bases matching the corresponding HMM, by specifying “--anchor HMM
“. The update can be downloaded here.