def update_allelic_expression(self, model=<NUM_LIT:3>):
self.update_probability_at_read_level(model)<EOL>self.allelic_expression = self.probability.sum(axis=APM.Axis.READ)<EOL>if self.target_lengths is not None:<EOL><INDENT>self.allelic_expression = np.divide(self.allelic_expression, self.target_lengths)<EOL><DEDENT>
A single EM step: Update probability at read level and then re-estimate allelic specific expression

:param model: Normalization model (1: Gene->Allele->Isoform, 2: Gene->Isoform->Allele, 3: Gene->Isoform*Allele, 4: Gene*Isoform*Allele)
:return: Nothing (as it performs in-place operations)