-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Hi,
I was trying to combine multiple VCF files generated by vamos, using tryvamos.py combineVCF. I was doing this for multiple sets of VCFs, and it was successful for all of them but one, which kept crashing after running out of memory, even when given 400 times more memory than the other working runs.
After some debugging, I found the problem. So, the process would get stuck inside a while cycle in combineVCF.getHeader line 71. The reason why this happened was that the ordering dictionary looked like this:
{'chr1': 'chr2', 'chr2': 'chr3', 'chr3': 'chr4', 'chr4': 'chr5', 'chr5': 'chr6', 'chr6': 'chr7', 'chr7': 'chr8', 'chr8': 'chr9', 'chr9': 'chr10', 'chr10': 'chr11', 'chr11': 'chr12', 'chr12': 'chr13', 'chr13': 'chr14', 'chr14': 'chr15', 'chr15': 'chr16', 'chr16': 'chr17', 'chr17': 'chr18', 'chr18': 'chr19', 'chr19': 'chr20', 'chr20': 'chr21', 'chr21': 'chr22', 'chr22': 'chrX', 'chrX': 'chrY', 'chrY': 'chrM', 'chrM': 'chrY'}
So, chrY would "point" to chrM and chrM to chrY, causing this infinite loop. I traced back the reason why this was happening and found that in one of my VCFs in this set, chrM was showing up before chrY in the VCF header, whereas in all the others it was the opposite. As said above, all the VCF files I'm using were generated by vamos, some of them by v2.1.3 and others by v2.1.5, all of them given sorted BAM files as inputs. There's only one case where chrM shows up before chrY, so I'm not sure it was my mistake when generating this specific VCF, although I generated it the same way I generated all the others, or if there's some bug that can lead to this behavior.
Best regards,
Hugo