def sequence_parse(self, current_mod, current_position, mod_position, mods, seq):
    '\n        :param seq: sequence input\n        :param mods: external modification input\n        :param mod_position: modification position relative to the modified residue\n        :param current_position: current iterating amino acid position from the input sequence\n        :type current_mod: List[Modification]\n        '
    for (b, m) in self.__load_sequence_iter(iter(seq)):
        if (not m):
            if (mod_position == 'left'):
                if (type(b) == AminoAcid):
                    current_unit = b
                    current_unit.position = current_position
                else:
                    current_unit = self.encoder(b, current_position)
                if (current_mod and (not mods)):
                    for i in current_mod:
                        current_unit.set_modification(i)
                elif ((current_position in self.mods) and current_unit):
                    if (type(self.mods[current_position]) == Modification):
                        current_unit.set_modification(self.mods[current_position])
                    else:
                        for mod in self.mods[current_position]:
                            current_unit.set_modification(mod)
                self.seq.append(deepcopy(current_unit))
                current_mod = []
            if (mod_position == 'right'):
                if (current_mod and (not mods)):
                    for i in current_mod:
                        self.seq[(current_position - 1)].set_modification(i)
                if (type(b) == AminoAcid):
                    current_unit = b
                    current_unit.position = current_position
                else:
                    current_unit = self.encoder(b, current_position)
                if ((current_position in self.mods) and current_unit):
                    if (type(self.mods[current_position]) == Modification):
                        current_unit.set_modification(self.mods[current_position])
                    else:
                        for mod in self.mods[current_position]:
                            current_unit.set_modification(mod)
                self.seq.append(deepcopy(current_unit))
                current_mod = []
            current_position += 1
        elif (not mods):
            current_mod.append(Modification(b[1:(- 1)]))
:param seq: sequence input
:param mods: external modification input
:param mod_position: modification position relative to the modified residue
:param current_position: current iterating amino acid position from the input sequence
:type current_mod: List[Modification]
def sequence_parse(self, current_mod, current_position, mod_position, mods, seq):
    '\n        :param seq: sequence input\n        :param mods: external modification input\n        :param mod_position: modification position relative to the modified residue\n        :param current_position: current iterating amino acid position from the input sequence\n        :type current_mod: List[Modification]\n        '
    for (b, m) in self.__load_sequence_iter(iter(seq)):
        if (not m):
            if (mod_position == 'left'):
                if (type(b) == AminoAcid):
                    current_unit = b
                    current_unit.position = current_position
                else:
                    current_unit = self.encoder(b, current_position)
                if (current_mod and (not mods)):
                    for i in current_mod:
                        current_unit.set_modification(i)
                elif ((current_position in self.mods) and current_unit):
                    if (type(self.mods[current_position]) == Modification):
                        current_unit.set_modification(self.mods[current_position])
                    else:
                        for mod in self.mods[current_position]:
                            current_unit.set_modification(mod)
                self.seq.append(deepcopy(current_unit))
                current_mod = []
            if (mod_position == 'right'):
                if (current_mod and (not mods)):
                    for i in current_mod:
                        self.seq[(current_position - 1)].set_modification(i)
                if (type(b) == AminoAcid):
                    current_unit = b
                    current_unit.position = current_position
                else:
                    current_unit = self.encoder(b, current_position)
                if ((current_position in self.mods) and current_unit):
                    if (type(self.mods[current_position]) == Modification):
                        current_unit.set_modification(self.mods[current_position])
                    else:
                        for mod in self.mods[current_position]:
                            current_unit.set_modification(mod)
                self.seq.append(deepcopy(current_unit))
                current_mod = []
            current_position += 1
        elif (not mods):
            current_mod.append(Modification(b[1:(- 1)]))