S/N calculation is unsafe
For some spectra the signal-to-noise calculation will end in an IndexError like that:
Traceback (most recent call last):
File "/usr/local/bin/QCCalculator", line 11, in <module>
load_entry_point('QCCalculator', 'console_scripts', 'QCCalculator')()
File "/home/walzer/.local/lib/python3.6/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/home/walzer/.local/lib/python3.6/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/home/walzer/.local/lib/python3.6/site-packages/click/core.py", line 1163, in invoke
rv.append(sub_ctx.command.invoke(sub_ctx))
File "/home/walzer/.local/lib/python3.6/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/walzer/.local/lib/python3.6/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/QCCalculator/cli.py", line 114, in basic
rq = getBasicQuality(exp)
File "/QCCalculator/qccalculator.py", line 170, in getBasicQuality
spectrum_acquisition_metrics_MS2['SN'].append(getSN_medianmethod(spec))
File "/QCCalculator/qccalculator.py", line 44, in getSN_medianmethod
median = (spec[spec.size() // 2].getIntensity() + spec[(spec.size() // 2) +1].getIntensity()) / 2
File "pyopenms/pyopenms_7.pyx", line 3205, in pyopenms.pyopenms_7.MSSpectrum.__getitem__
IndexError: invalid index 2