docs: def parseFullScan(self, i, modifications=False):
          """
          parses scan info for giving a Spectrum Obj for plotting. takes significantly longer since it has to unzip/parse xml
          """
          scanObj = PeptideObject()
          peptide = str(i[1])
          pid=i[2]
          scanObj.acc = self.protein_map.get(i[4], i[4])
          if pid is None:
              return None
          if modifications:
              sql = 'select aam.ModificationName,pam.Position,aam.DeltaMass from peptidesaminoacidmodifications pam left join aminoacidmodifications aam on (aam.AminoAcidModificationID=pam.AminoAcidModificationID) where pam.PeptideID=%s'%pid
              for row in self.conn.execute(sql):
                  scanObj.addModification(peptide[row[1]], str(row[1]), str(row[2]), row[0])
          else:
              mods = self.mods.get(int(pid))
              if mods is not None:
                  for modId, modPosition in zip(mods[0].split(','),mods[1].split(',')):
                      modEntry = self.modTable[str(modId)]
                      scanObj.addModification(peptide[int(modPosition)], modPosition, modEntry[1], modEntry[0])
              tmods = self.tmods.get(int(pid))
              if tmods is not None:
                  for modIds in tmods:
                      for modId in modIds.split(','):
                          modEntry = self.modTable[str(modId)]
                          scanObj.addModification('[', 0, modEntry[1], modEntry[0])
          scanObj.peptide = peptide
          if self.decompressScanInfo(scanObj, i[0]):
              return scanObj
          return None