Esempio n. 1
0
def LORETA(alpha, K, bkdir, MaxNeighbor):    
  
    Ne, Nd = K.shape 
    H = np.eye((Ne))- np.ones((Ne, Ne))/Ne
    K = np.dot(H, K) 
    
    for bkdfilename1 in glob.iglob(bkdir+"/*.Dipoles_1_*"):         
        D1 = read_bk.bkd(bkdfilename1)
    for bkdfilename2 in glob.iglob(bkdir+"/*.Dipoles_2_*"): 
        D2 = read_bk.bkd(bkdfilename2)

    Nd = D1['ndipoles'] + D2['ndipoles']

    Mat1 = np.concatenate((np.matrix(D1['dipole_location_index']['x']),np.matrix(D1['dipole_location_index']['y']), np.matrix(D1['dipole_location_index']['z'])), axis=0)
    Mat2 = np.concatenate((np.matrix(D2['dipole_location_index']['x']),np.matrix(D2['dipole_location_index']['y']), np.matrix(D2['dipole_location_index']['z'])), axis=0)
    VoxCoord  = np.array(np.concatenate((Mat1, Mat2), axis=1))

    Vox2 = VoxCoord*VoxCoord 
    #vcnorms = np.matrix(np.sum(VoxCoord*VoxCoord, axis=0))
    #vcnorms = np.matrix(Vox2.sum(axis=0)) 
    vcnorms = np.matrix(np.sum(Vox2, axis=0)) 
    tridist = vcnorms - 2 * np.dot( VoxCoord.T, VoxCoord) + vcnorms.T
    tridist= np.sqrt(tridist)

    Neighbor = np.array(tridist < MaxNeighbor, dtype=float)  

    B = np.identity(Nd)
    for i in range(Nd):   
        Ni = np.sum(Neighbor[i,:])-1   
        if Ni > 0:
            B[i,:] = -Neighbor[i,:]/Ni 
            B[i,i] = 1 
  
    BigK = np.concatenate((K, alpha * B), axis=0)
    KtK = np.dot(BigK.T, BigK)
    
    T = np.dot(np.linalg.inv(KtK),  BigK.T) 
    Imatrix = T[:, :Ne]

    return Imatrix 
Esempio n. 2
0
from RabbitMQ import Connection

i = 83
DipI = np.zeros(nD)
DipI[i] = 1
plt.plot(K[:, i])
plt.show()

c = Connection.Connection('localhost')
c.connect()
c.sendOrientedData(DipI, "Ori", "4:00pm")
c.sendEEGData(K[:, i], "EEG", "")
c.disconnect()

Dip1 = read_bk.bkd(
    '/Users/jesong1126/Work/EAV_MIE_BrainK/r842_ihm_test1/r842_ihm_test1.Dipoles_1_MRI.bkd'
)
Dip2 = read_bk.bkd(
    '/Users/jesong1126/Work/EAV_MIE_BrainK/r842_ihm_test1/r842_ihm_test1.Dipoles_2_MRI.bkd'
)

d1 = Dip1['dipole_location_index']
d2 = Dip2['dipole_location_index']
Dip_x = np.concatenate((d1['x'], d2['x']), axis=0)
Dip_y = np.concatenate((d1['y'], d2['y']), axis=0)
Dip_z = np.concatenate((d1['z'], d2['z']), axis=0)

Dip_xyz = np.concatenate((Dip_x, Dip_y, Dip_z), axis=0)
Dip_xyz = Dip_xyz.reshape(3, nD)
Dip_xyz = Dip_xyz.T
Esempio n. 3
0
# -*- coding: utf-8 -*-
"""
Created on Fri Jan 30 10:45:29 2015
@author: jesong1126
"""
#import os 
#os.chdir("/Users/jesong1126/Work/Data/EAV/2941_HM") 

import numpy as np
import matplotlib.pyplot as plt 

## 
from braink import read_bk
lbkd = read_bk.bkd('/Users/jesong1126/Python27/GeoPy/data/108_MIE/108_3.Dipoles_left_MRI.bkd')
rbkd = read_bk.bkd('/Users/jesong1126/Python27/GeoPy/data/108_MIE/108_3.Dipoles_right_MRI.bkd')
lbkd['ndipoles'] + rbkd['ndipoles']

lcoord = np.array((lbkd['dipole_location_index']['x'], lbkd['dipole_location_index']['y'], lbkd['dipole_location_index']['z'])).T
rcoord = np.array((rbkd['dipole_location_index']['x'], rbkd['dipole_location_index']['y'], rbkd['dipole_location_index']['z'])).T
VoxCoord = np.concatenate((lcoord, rcoord), axis=0)
nVL = lbkd['ndipoles'] 
nVR = rbkd['ndipoles'] 
mmin = np.min(VoxCoord, axis=0)
mmax = np.max(VoxCoord, axis=0)

fig, ax = plt.subplots(2,2) 
ax[0,0].scatter(VoxCoord[:,0], VoxCoord[:,1], s=100, cmap='hot')   #c=nSigVoxGrpI, 
ax[0,0].set_axis_off()
ax[0,0].set_aspect('equal')    
ax[0,0].set_xlim([mmin[0]-10, mmax[0]+10])
ax[0,0].set_ylim([mmin[1]-10, mmax[1]+10])
Esempio n. 4
0
import os
os.system("open /Applications/EAV/Mimir.app")
from RabbitMQ import Connection 

i=83; DipI= np.zeros(nD); DipI[i] = 1 
plt.plot(K[:,i]); plt.show()


c = Connection.Connection('localhost')
c.connect()
c.sendOrientedData(DipI, "Ori", "4:00pm")
c.sendEEGData(K[:, i], "EEG", "")
c.disconnect()       


Dip1 = read_bk.bkd('/Users/jesong1126/Work/EAV_MIE_BrainK/r842_ihm_test1/r842_ihm_test1.Dipoles_1_MRI.bkd')
Dip2 = read_bk.bkd('/Users/jesong1126/Work/EAV_MIE_BrainK/r842_ihm_test1/r842_ihm_test1.Dipoles_2_MRI.bkd')

d1 = Dip1['dipole_location_index']; d2 = Dip2['dipole_location_index']; 
Dip_x = np.concatenate((d1['x'], d2['x']), axis=0) 
Dip_y = np.concatenate((d1['y'], d2['y']), axis=0) 
Dip_z = np.concatenate((d1['z'], d2['z']), axis=0) 

Dip_xyz = np.concatenate((Dip_x, Dip_y, Dip_z), axis=0)
Dip_xyz = Dip_xyz.reshape(3,nD)
Dip_xyz = Dip_xyz.T 

Dip_xyz[i,:]
 

print(np.min(d1['x']), np.max(d1['x']), np.min(d2['x']), np.max(d2['x']))