<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def generate_report(self):
 """Generates a report on the coiled coil parameters. Returns ------- report: str A string detailing the register and parameters of the coiled coil. """

        # Find register
        lines = ['Register Assignment\n-------------------']
        register, fit = self.heptad_register()
        lines.append('{}\n{}\n'.format(register, '\n'.join(self.cc.sequences)))
        lines.append('Fit Quality - Mean Angular Discrepancy = {:3.2f} (Std Dev = {:3.2f})\n'.format(*fit))
        # Find coiled coil parameters
        lines.append('Coiled Coil Parameters\n----------------------')
        layer_info = (self.radii_layers, self.alpha_layers, self.ca_layers)
        r_layer_aves, a_layer_aves, c_layer_aves = [self.calc_average_parameters(x) for x in layer_info]
        start_line = ['Res#'.rjust(5), 'Radius'.rjust(9), 'Alpha'.rjust(9), 'CrAngle'.rjust(9)]
        lines.append(''.join(start_line))
        for i in range(len(r_layer_aves[0])):
            residue = '{:>5}'.format(i+1)
            average_r = '{:+3.3f}'.format(r_layer_aves[0][i]).rjust(9)
            average_a = '{:+3.3f}'.format(a_layer_aves[0][i]).rjust(9)
            average_c = '{:+3.3f}'.format(c_layer_aves[0][i]).rjust(9)
            line = [residue, average_r, average_a, average_c]
            lines.append(''.join(line))
        # Average for assembly
        lines.append('-'*32)
        residue = '  Ave'
        average_r = '{:+3.3f}'.format(r_layer_aves[1]).rjust(9)
        average_a = '{:+3.3f}'.format(a_layer_aves[1]).rjust(9)
        average_c = '{:+3.3f}'.format(c_layer_aves[1]).rjust(9)
        line = [residue, average_r, average_a, average_c]
        lines.append(''.join(line))
        # Std dev
        residue = 'Std D'
        std_d_r = '{:+3.3f}'.format(numpy.std(r_layer_aves[0])).rjust(9)
        std_d_a = '{:+3.3f}'.format(numpy.std(a_layer_aves[0][:-1])).rjust(9)
        std_d_c = '{:+3.3f}'.format(numpy.std(c_layer_aves[0][:-1])).rjust(9)
        line = [residue, std_d_r, std_d_a, std_d_c]
        lines.append(''.join(line))
        return '\n'.join(lines)