<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_germline_variants(self, germline_nucs, coding_pos):
 """Add potential germline variants into the nucleotide sequence. Sequenced individuals may potentially have a SNP at a somatic mutation position. Therefore they may differ from the reference genome. This method updates the gene germline gene sequence to match the actual individual. Parameters germline_nucs : list of str list of DNA nucleotides containing the germline letter coding_pos : int 0-based nucleotide position in coding sequence NOTE: the self.exon_seq attribute is updated, no return value """

        if len(germline_nucs) != len(coding_pos):
            raise ValueError('Each germline nucleotide should have a coding position')

        es = list(self.exon_seq)
        for i in range(len(germline_nucs)):
            gl_nuc, cpos = germline_nucs[i].upper(), coding_pos[i]
            if not utils.is_valid_nuc(gl_nuc):
                raise ValueError('{0} is not a valid nucleotide'.format(gl_nuc))
            if cpos >= 0:
                es[cpos] = gl_nuc
        self.exon_seq = ''.join(es)