//By Pirate Henry 2011 and modified by DK
proc ConnectTwoCells() { local targetid,sourceid,type,initW,delay,threshold localobj target,syn,nc,synlist,nclist
sourceid = $1
targetid = $2
type = $3
// initW = $4
delay = $4
// threshold = $6
synlist = $o5 //$o7
nclist = $o6 //$o8
if (!pc.gid_exists(targetid)) { continue } // Can't connect to target if it doesn't exist
cellid = pc.gid2cell(targetid)
if ( sourceid <= 395 ) { if (type == 1 || type == 2) {cellid.dend syn = new pyrD2pyrD_STFD(0.9)}
if (type == 3 || type == 4) {cellid.dend syn = new pyrD2pyrDDA_STFD(0.9)}
if (type == 5 || type == 6) {cellid.dend syn = new pyrD2pyrV_STFD(0.9)}
if (type == 7 || type == 8) {cellid.dend syn = new pyrD2pyrVDA_STFD(0.9)}
if (type == 9 || type == 10) {
cellid.dend syn = new pyrD2interD_STFD(0.9)
}
if (type == 11 || type == 12) {
cellid.dend syn = new pyrD2interV_STFD(0.9)
}
}
if ( sourceid >= 396 && sourceid <=799 ) { if (type == 1 || type == 2) {cellid.dend syn = new pyrV2pyrD_STFD(0.9)}
if (type == 3 || type == 4) {cellid.dend syn = new pyrV2pyrDDA_STFD(0.9)}
if (type == 5 || type == 6) {cellid.dend syn = new pyrV2pyrV_STFD(0.9)}
if (type == 7 || type == 8) {cellid.dend syn = new pyrV2pyrVDA_STFD(0.9)}
if (type == 9 || type == 10) {
cellid.dend syn = new pyrV2interD_STFD(0.9)
}
if (type == 11 || type == 12) {
cellid.dend syn = new pyrV2interV_STFD(0.9)
}
}
if ( sourceid >= 800 && sourceid <=903 ) { if (type == 1) {cellid.soma syn = new interD2pyrD_STFD(0.9)}
if (type == 2) {cellid.soma syn = new interD2pyrDNE_STFD(0.9)}
if (type == 3) {cellid.soma syn = new interD2pyrDDA_STFD(0.9)}
if (type == 4) {cellid.soma syn = new interD2pyrDDANE_STFD(0.9)}
if (type == 5 || type == 6) {cellid.soma syn = new interD2pyrV_STFD(0.9)}
if (type == 7 || type == 8) {cellid.soma syn = new interD2pyrVDA_STFD(0.9)}}
if ( sourceid >= 904 ) { if (type == 1) {cellid.soma syn = new interV2pyrD_STFD(0.9)}
if (type == 2) {cellid.soma syn = new interV2pyrDNE_STFD(0.9)}
if (type == 3) {cellid.soma syn = new interV2pyrDDA_STFD(0.9)}
if (type == 4) {cellid.soma syn = new interV2pyrDDANE_STFD(0.9)}
if (type == 5 || type == 6) {cellid.soma syn = new interV2pyrV_STFD(0.9)}
if (type == 7 || type == 8) {cellid.soma syn = new interV2pyrVDA_STFD(0.9)}}
syn.pregid = sourceid
syn.postgid = targetid
cellid.synlist.append(syn) // To save synapse data, weight and ca+ concentration
syn.srcid= sourceid
syn.destid= targetid
nc = pc.gid_connect(sourceid,syn)
nc.weight = 1
nc.delay = delay
nc.threshold = -10
//printf("%d %d %d %d %d %d\n" ,syn.postgid,syn.pregid, syn.initW, nc.delay, nc.threshold, type)
saveM.printf("%d %d %f %d %d %d\n" ,syn.postgid, syn.pregid, syn.initW, nc.delay, nc.threshold, type)
synlist.append(syn)
nclist.append(nc)
//{pc.barrier()}
}