Failed to parse MD tag: 146A138. Reference should match record within deletion

Thanks for a great library for interacting with bam files in rust!

I have run into a rare issue getting alignment entries from a bam file (occurs in exceedingly small number of reads). The reads were aligned using pbmm2 (pacbio's minimap2 wrapper) and then processed using GATK SplitNCigar and a custom R script that makes isoseq data more "variant caller" friendly (as detailed here: https://github.com/vladimirsouza/lrRNAseqVariantCalling). Then run with `samtools calmd -b -@ 20 in.bam $hg38 > in.mdtag.bam'

The error message I receive when accessing the alignment entry for a given position is listed in the title but is expanded upon here:

thread 'main' panicked at 'Record m64272e_230122_062448/100729383/ccs/9569_11265: Failed to parse MD tag: 146A138. Reference should match record within deletion

The read itself is printed below:

m64272e_230122_062448/100729383/ccs/9569_11265	16	chr14	31059217	60	1409S65446N146=2I1X138=	*	0	65738	CCTCACCCTGCCAAAGCACAAGGGGATTTTTCTCTAATATTCACTGTGAGGACCTGGGAGAACTGCAGAAGGTAAAACTCACAAAAATGTGAGGGCCCCTAATGACCGGGTCCCCCTGGAATTTTTTTCTCAGACTTGTCCACATTGAACCTCCGAAAATTCTTTAATTACAGTTTAGGTTTCCCTACCCCAAAACTGGTCCCTGTGAAGGTTTCAGCTCATGAGTTTCTGCTTTTGTAAGTTGGGATTCTCTGTATTTGCTTGCAATCTCTCCAGTTTTTGAGTCAGTAGCTTCCCCTGTGACCGTACTTCTCTTACTGATCTAAGAGAAGTTGTTGCTTTTTAGTTTCTTCAACTTTTCACTTGTTAGGCCAGAGTGGCAACTTCAAGCTTTGTCCATACTTGACCAAAACCCAAAAGTCCTCTTTCCCAACATTTTAATTATTGCCTCATGTTCAAAATTTCATGTAGACTTTTTTACTGATAAAGTATATATTGCTTGATCATTTCAATTTGCCCTTTTGCCAAACACGTACAGAGACACTGTTCTGTTTCTGCTGATTACTACCAGATTACTGATTTCTCATTGTTCCCATTTTAGGTCCAAGCTGCTTAAAAAGCCCTACCTAGATCATTTCTGACTTTTGCTGTAATGCATTTCATTGCTGCCTTGACTTACAAAATGTTATCTCAGAGTCTAGTTGACAAGAAGTACAAGTTTCACTTTGATAACTCTACCAATCTGAAGGAAAGCCTTTCCACTGACTCAACACCATTGCTTGCAGGTTTTCTATGGCTTATAACAAATGACAGCACATTTGCTGTCAGGCAGAAAACTAGCCATTCTAGTAGTGTCAGTAGGTACAAAGAGGGAAAGTACTTTTTCTATAGAAAAAATCATTGTAAGAAACTTTTTTTTTTCCAGGAACATGTACAAAAGCATATTTACTTATGTGGATTTTGTGTGTTTAACAAAAGAATTGAACTTTCATTTATTTTTAGTAAGTAAATAAAAATCGAAAACTGTCTACCTGTTTCATATTATTCATAACAGAAGTCAAGATAAGAAGAGATTAAGAGATAAATGAGAAATAAAAAGAATAGAAATGAGAAAAGAAAGATATACCAAGATATTAAAGGAGAGAAAGAAACTCGCATCTAGAGAGAGGCTAAAGCCATCTCATCAGGTGATGCAGGGTGTATCCTGCCCAGGGCCCCTGGCAAGTAGGGACTGGAAATAAGCTTTTGGTTGGTTTGCTCACTAATTTCCTGCATCTTGCATGCCCATGGAATTGACATCTTAAAAATTTGTACAAAGATACCTATGAATTTTCAGAAGTTTAGAGAAAGGCACTAGAGAGACTAGAGAAGGAAAATTAAAAAGCAAAGCATATACAAGAGCCTGGGGGGGGTACTATGTTCACCATTTGAGTGATAAGATCAATAGAAGTCCAAATCTCAGCATCACACAATATACCCCTGTGACAAACCTGCACATATATCCCCTGAATCTAAAATAAAAATTATATTAATTTTTTTCATCATCTAACAATAATTTTTTTTTTTTTTTTTTTGAGATGGAGTCTCGCTCTGTCACCCAGGCTGGAGTGCAATGGCACAATCTTGGCTCACTGTAACCTACACCTCCCGGGTTAAAGAGATTCTCCTGCCTCAGCCTCCTGAGAAGCTGGGACTA	~o~~~~|R~~~e~~N~~~~~D|~~Vz~~~~6~~~~~w~~~~~~~~{z~y~k~~o~~~L~~~~~~~~~~~~~mwr~~?s~~~oi~~~%fz~|~~~Dau~?~~w~~~~q~~U~~~~~+~~o~`o~~~~~3~~~~n~h~h}~~t~~~~~w~F~h~~q~~~~f~t~~~V~w~~~~~~~~j~~<~~`~~]~~~~~H~~~H~~~q~~~V~~~~~z~_~~^~~~~~~~~~~~~~e~~~~~~~W]~~~~~n~~A~~rz~m~~~~~~j~~~~~p~}~~~~~~p~{~~~~?p~~~~~~~~~~~x~~~J~~~~~~Lb~~~~\~~~~Y~s~~m~~~~o~~~~~~~}\{o~p~~~~V~8f~at~K~~~~~~~R~~~~x~~Z~~q~P~X~u~~O~~w~~~~~~~~~~i~~~t~~~~~~~~~q~~~q~~b~~~Ux~~q~~~~8~~1~^x~~~~^~`~~~~~~~]~r~~~~~~~~~O~~]~~~~~s~~i~~~~~O~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ux~|~~l~~~e~~~G~~%x~)w~~~~~~~~~T~~}a~~~|~~|}~7~~~v~~~~y~~~~~h~~~~w~g~~~~~]q~nb~Ek~g~~Wz~~~d~~W~~j~p~|~~~~x~~~~TV~~S~~~a~~~~~~~~~b~~~~x~~~_{~~~~~joR~~~~T~w~m~~~c~F~CV~~~z~~~~~`~~~w~n~~~~~~~~~~~~~~~~~~~~~x~~~w~|t~~J~~~~~e7~~~p~~~o~~\a8~~~~~y~o~~pu~a~~P~q~~~~~~~y~e~~~f~~~~~~~]~~~l~~~\~~~~~hv~~~~~l~~~r~~~|~u~~~~~~v~~~~~~~~q~~~|~~?{~~~~U~~~ptj~~}~~~~t~~~~~t~~w~~bc~~~c~~}si~~}ai~-~~~~~U~~~~~C~~z~ae~~]~~~S~}~~~~~}~~'oR~~l~R~~~~~~~~~~g~~~~~~uZ~~~~~~~~~U~~~~V{~t~~~~n~or~~~]~~~~y~~xn~~F~w~~q~~~~~X~~~~~~~~~e~~~~~Z~~~~~~4~~u~~~~~p~~~~u~~~~~~~~l~~~~~~~~~~r~~~~~~~~~~~~~~~s~`~~~~~~~~~X~~~~~~Hy~~~~Ku~n~~~~~X~~~~~~~\~~~~~~~~~~~|~~~~~~~~~~g~h~b~e~~]e~~Xt~~~~~~~~~~~j~~~~r~~~~|~~~~~~{~~~~~~o{~~~~}~~~`~~~~~~}~~~~8~~~V~~~8~~K~~~~~v~~U~~~~g~~{~~~~~~~~p~l~|~v~~Xg~~~~~~~~~~e~k~~~~~~~~~~~~~~~i~~~w~~~p~~q~v~~~~~~~A~~uk~~~~~q~~~~~w~~~~~~~~~`~~t~|~~~e~~~~~~~~Ae~~~~~k~~~~~~~{~v~~~q~~~_~~~~~~\~{~~r~~~~~~~~~~~~~~|u~~~~~~~(~~~~~~~~~~~~p~~~{~~{~{~~~~~~~~~}~~~~~~~~`~~s~~~~~~~~~~~~~~~~~~~~~~~X~~~~~~~~`~u~~~~~~~~~~~~~~N~~~~~~~~~~9~~~~~a~p}~y~e~ix~~~~~0~~~~~~~~~~~~~~~/){~~~~~~~~~~~~~~~~*~~~~~~f~~~~~r~~~~~~~~e~~g~~v~~~r~s~~~~~~~k~~}~e~~~~~`~~~~~~~~~`~f~~~~~|~~~_~~g~~~~xx~r~~~{~~W~k~|~~~~~h~~Y~~~~~qu~~~~j~~~~	SA:Z:chr2,186211890,-,1409=287S,60,0;	XA:Z:CB-XM	CB:Z:AAAAACGGGTCGGCTTGG	XC:Z:AAACGGGTCGGCTTGG	XM:Z:CGGATCCCTG	CR:Z:AAACGGGTCGGCTTGG	ma:i:0	nb:i:0	ac:B:i,12,0,10,0	bc:B:S,0,1	ec:f:10.692	rc:i:1	qe:i:11265	we:i:6729532	mg:f:99.3007	di:i:9	dl:i:9	zm:i:100729383	sn:B:f,11.2186,16.3536,4.25498,7.50934	gp:i:1	np:i:10	bq:i:100	rq:f:0.999065	dr:i:10	ds:B:C,130,164,108,101,102,116,145,133,165,108,97,98,101,108,161,57,162,113,101,205,37,48,162,113,115,205,37,32,164,113,117,97,108,176,109,126,126,126,126,126,126,126,126,112,102,126,103,126,115,126,163,115,101,113,176,65,65,84,84,71,67,71,84,65,71,84,84,71,71,67,67,165,114,105,103,104,116,145,133,165,108,97,98,101,108,162,49,48,162,113,101,205,44,71,162,113,115,205,44,55,164,113,117,97,108,176,126,87,111,104,114,126,112,126,126,126,126,126,120,126,126,123,163,115,101,113,176,65,67,65,67,84,84,71,71,84,67,71,67,65,65,84,67	ls:B:C,134,162,98,99,164,48,45,45,49,162,98,113,100,164,108,101,97,100,130,162,113,108,183,126,119,126,126,126,126,126,109,126,126,126,117,126,126,126,126,118,126,126,126,126,111,124,162,115,113,183,84,67,84,65,67,65,67,71,65,67,71,67,84,67,84,84,67,67,71,65,84,67,84,166,110,101,115,116,101,100,192,164,112,53,109,99,0,165,116,114,97,105,108,130,162,113,108,185,101,122,126,126,126,126,126,106,126,126,106,126,120,126,126,126,113,126,126,126,126,121,126,126,126,162,115,113,185,71,84,65,67,84,67,84,71,67,71,84,84,71,65,84,65,67,67,65,67,84,71,67,84,84	qs:i:9569	ws:i:0	bx:B:i,23,25	cx:i:12	RG:Z:5b09fd46/0--1	NM:i:3	MD:Z:146A138

image

I see the above warning in the documentation. Any easy way to check the MD tag with the alignment to avoid panic?

THANKS FOR ANY HELP YOU CAN PROVIDE

Edited by scfurl