def CreateConnection(morphconngraph, edge): SourceCell = edge[0] TargetCell = edge[1] edgedata = _GetEdgeData(morphconngraph, edge) SourcePosition = queries.GetStructureApproxPosition(edgedata['source'].ID) TargetPosition = queries.GetStructureApproxPosition(edgedata['target'].ID) SourcePosition = morphology.correct_scale(SourcePosition) TargetPosition = morphology.correct_scale(TargetPosition) print str(edgedata['source'].ID) + " : " + str(SourcePosition) print str(edgedata['target'].ID) + " : " + str(TargetPosition) conn = net.Connection() conn.id = "0" conn.pre_cell_id = SourceCell.ID conn.post_cell_id = TargetCell.ID (pre_segmentid, pre_fraction) = GetSegmentIdAndFraction(SourceCell.ID, SourcePosition[0:3]) (post_segmentid, post_fraction) = GetSegmentIdAndFraction(TargetCell.ID, TargetPosition[0:3]) conn.pre_segment_id = pre_segmentid conn.post_segment_id = post_segmentid conn.pre_fraction_along = pre_fraction conn.post_fraction_along = post_fraction # print conn.toxml() return conn
def _SynapseWeight(source, target): '''Take the minimum area of the source or target''' src_pos = queries.GetStructureApproxPosition(source.ID) target_pos = queries.GetStructureApproxPosition(target.ID) src_pos = morphology.correct_scale(src_pos) target_pos = morphology.correct_scale(target_pos) return min(src_pos[3], target_pos[3])