sim_py2jemris_ismrm2021.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import os
  2. from pulseq_jemris_simulator import simulate_pulseq_jemris, recon_jemris
  3. from scipy.io import savemat, loadmat
  4. import numpy as np
  5. from datetime import datetime
  6. # SPGR
  7. # Create phantom
  8. n = 16
  9. #phantom_info = {'fov': 0.25, 'N': n, 'type': 'cylindrical', 'dim': 2, 'dir': 'z', 'loc': 0}
  10. sps = 'sim/ismrm_abstract/spgr_16_pht/spgr_gspoil_N16_Ns1_TE10ms_TR50ms_FA30deg_acq_111920.seq'
  11. sim_name = 'ismrm_abstract\\spgr_16_pht'
  12. phtmaps = loadmat('sim/ismrm_abstract/spgr_16_pht/ph2bottles16.mat')
  13. FOV = 0.25
  14. N = 16
  15. dr = FOV/N
  16. t1map = np.zeros((N,N,1))
  17. t1map[:,:,0] = 1e-3 * phtmaps['T1map16'] # Original is in ms; convert to seconds
  18. t2map = np.zeros((N,N,1))
  19. t2map[:,:,0] = 1e-3 * phtmaps['T2map16'] # Original is in ms; convert to seconds
  20. pdmap = np.zeros((N,N,1))
  21. pdmap[:,:,0] = phtmaps['PDmap16']
  22. phantom_info = {'T1': t1map, 'T2': t2map, 'PD': pdmap,
  23. 'dr': dr, 'fov': FOV, 'N': N, 'type': 'custom', 'dim': 2, 'dir': 'z', 'loc': 0}
  24. # Simulate
  25. print('Starting at: ', datetime.now())
  26. simulate_pulseq_jemris(seq_path=sps, phantom_info=phantom_info, sim_name=sim_name, coil_fov=0.25)
  27. kk, im, images = recon_jemris(file='sim/' + sim_name + '/signals.h5', dims=[n, n])
  28. savemat('sim/' + sim_name + '/utest_pulseq_sim_output.mat', {'images': images, 'kspace': kk, 'imspace': im})
  29. print('Ending at: ', datetime.now())