def test_StandardCSD_03(self): '''test using non-standard SI units 3''' # set some parameters for ground truth csd and csd estimates. # contact point coordinates z_j = np.arange(21) * 1E-4 * pq.m # source coordinates z_i = z_j # current source density magnitude C_i = np.zeros(z_i.size) * pq.A / pq.m**2 C_i[7:12:2] += np.array([-.5, 1., -.5]) * pq.A / pq.m**2 # uniform conductivity sigma = 0.3 * pq.mS / pq.m # flag for debug plots plot = False # get LFP and CSD at contacts phi_j, C_i = get_lfp_of_planes(z_j, z_i, C_i, sigma, plot) std_input = { 'lfp': phi_j, 'coord_electrode': z_j, 'sigma': sigma * 1E3 * pq.mS / pq.S, 'f_type': 'gaussian', 'f_order': (3, 1), } std_csd = icsd.StandardCSD(**std_input) csd = std_csd.get_csd() self.assertEqual(C_i.units, csd.units) nt.assert_array_almost_equal(C_i, csd)
_icsd = icsd.SplineiCSD(**icsd_input[m]) icsd_output.update( {'icsd_spline': _icsd.filter_csd(_icsd.get_csd()) * 1E-9}) my_errors['spline'], my_diams['spline'], diam_best['spline'] = \ minimize_icsd_error_brute(m) icsd_input[m].update({'diam': diam_best['spline'] * pq.m}) print 'best diameter spline: %.5e' % diam_best['spline'] _icsd = icsd.SplineiCSD(**icsd_input[m]) icsd_output.update( {'icsd_spline': _icsd.filter_csd(_icsd.get_csd()) * 1E-9}) elif m == 'std': _icsd = icsd.StandardCSD(**icsd_input[m]) icsd_output.update( {'csd_std': _icsd.filter_csd(_icsd.get_csd()) * 1E-9}) print('Compute correlation coefficients between CSD and estimates') my_corrcoefs = {} for m in icsd_input: if m == 'delta': my_corrcoefs['delta'], _, _ = maximize_icsd_correlation_brute(m) elif m == 'step': my_corrcoefs['step'], _, _ = maximize_icsd_correlation_brute(m) elif m == 'spline': my_corrcoefs['spline'], _, _ = maximize_icsd_correlation_brute(m) print('Compute correlation coefficients between CSD and estimates done') ### Mean EPSP, synapses.i, synapses.v with st.dev. ####