statisticalbiotechnology / quandenser

QUANtification by Distillation for ENhanced Signals with Error Regulation
Apache License 2.0
9 stars 1 forks source link

Invalid vector<T> subscript during aligned runs #13

Closed andrewjmc closed 4 years ago

andrewjmc commented 4 years ago

Pending the rerun with the new version from #12, I set up a new run with 296 samples (most were also in the previous run).

Run alignment proceeded up to 24/255 then there was an error: Exception caught: invalid vector<T> subscript which I presume comes from 24/256.

23/256 proceeded fine, though I note that standard errors were unusually small:

Aligned runs: 23 255: rmseComb = 36.6666 rmse1 = 11.9366 rmse2 = 34.6692
Aligned runs: 23 256: rmseComb = 0.417166 rmse1 = 0.00830252 rmse2 = 0.417083
Aligned runs: 23 257: rmseComb = 8.32477 rmse1 = 3.8807 rmse2 = 7.36492

The same seems to apply to some other runs involving 256 too (though not all):

Aligned runs: 22 255: rmseComb = 37.4261 rmse1 = 12.5444 rmse2 = 35.2612
Aligned runs: 22 256: rmseComb = 0 rmse1 = 0 rmse2 = 0
Aligned runs: 22 257: rmseComb = 19.1489 rmse1 = 8.74381 rmse2 = 17.036

I tried to tee the log to a file in PowerShell but it only seems to have got the Dinosaur log. I've copied as much of the console as I can: log2.txt

The mzML for file 256 has the third smallest feature file (10,450 kB) but with a full range of retention times. File 24 seems fine.

I'll run the new binary with the old set of files first to see if original error is bypassed. Then I'll also run it with the new set and see if anything changes.

Best wishes,

Andrew

MatthewThe commented 4 years ago

This is probably due to file 256 having very few clustered MS2 spectra in common with these runs. The easy solution is to require at least, say, 250 retention time pairs and not consider the alignment otherwise. I'll add this check and create a new binary.

In the long run it would, however, be better to come up with a scheme that penalizes the RMSE of alignments with very few retention time pairs.

andrewjmc commented 4 years ago

Super, that's very helpful. It seems I am quite a destructive software tester!

andrewjmc commented 4 years ago

Now I get a different error with this batch of files. Tested twice:

Aligned runs: 0 249: rmseComb = 4.31576 rmse1 = 2.03567 rmse2 = 3.8055
Aligned runs: 0 250: rmseComb = 4.32356 rmse1 = 2.13522 rmse2 = 3.75953
Aligned runs: 0 251: rmseComb = 1.09983 rmse1 = 0.225167 rmse2 = 1.07654
Aligned runs: 0 252: rmseComb = 1.10718 rmse1 = 0.259187 rmse2 = 1.07641
Aligned runs: 0 253: rmseComb = 0.919413 rmse1 = 0.372639 rmse2 = 0.840512
Aligned runs: 0 254: rmseComb = 3.53938 rmse1 = 1.24245 rmse2 = 3.31414
Aligned runs: 0 255: rmseComb = 2.25529 rmse1 = 1.20492 rmse2 = 1.90643

Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at mainCRTStartup()
MatthewThe commented 4 years ago

That could be related to the previous error. Please try the new binary installer: quandenser-v0-02-win64-msvc-x64.zip

andrewjmc commented 4 years ago

Rerunning now and have passed the 0 255 alignment without error, thanks!