def parseFullScan(self, i, modifications=False):
scanObj = PeptideObject()<EOL>peptide = str(i[<NUM_LIT:1>])<EOL>pid=i[<NUM_LIT:2>]<EOL>scanObj.acc = self.protein_map.get(i[<NUM_LIT:4>], i[<NUM_LIT:4>])<EOL>if pid is None:<EOL><INDENT>return None<EOL><DEDENT>if modifications:<EOL><INDENT>sql = '<STR_LIT>'%pid<EOL>for row in self.conn.execute(sql):<EOL><INDENT>scanObj.addModification(peptide[row[<NUM_LIT:1>]], str(row[<NUM_LIT:1>]), str(row[<NUM_LIT:2>]), row[<NUM_LIT:0>])<EOL><DEDENT><DEDENT>else:<EOL><INDENT>mods = self.mods.get(int(pid))<EOL>if mods is not None:<EOL><INDENT>for modId, modPosition in zip(mods[<NUM_LIT:0>].split('<STR_LIT:U+002C>'),mods[<NUM_LIT:1>].split('<STR_LIT:U+002C>')):<EOL><INDENT>modEntry = self.modTable[str(modId)]<EOL>scanObj.addModification(peptide[int(modPosition)], modPosition, modEntry[<NUM_LIT:1>], modEntry[<NUM_LIT:0>])<EOL><DEDENT><DEDENT>tmods = self.tmods.get(int(pid))<EOL>if tmods is not None:<EOL><INDENT>for modIds in tmods:<EOL><INDENT>for modId in modIds.split('<STR_LIT:U+002C>'):<EOL><INDENT>modEntry = self.modTable[str(modId)]<EOL>scanObj.addModification('<STR_LIT:[>', <NUM_LIT:0>, modEntry[<NUM_LIT:1>], modEntry[<NUM_LIT:0>])<EOL><DEDENT><DEDENT><DEDENT><DEDENT>scanObj.peptide = peptide<EOL>if self.decompressScanInfo(scanObj, i[<NUM_LIT:0>]):<EOL><INDENT>return scanObj<EOL><DEDENT>return None<EOL>
parses scan info for giving a Spectrum Obj for plotting. takes significantly longer since it has to unzip/parse xml