int | rhkacq_uid |
int | ks_plot_filefmt |
int | ks_plot_kstmp |
char | ks_psdname [256] |
KSEPG_RELAXATION | ksepg_create_relaxation (double time_delta, double T1, double T2) |
KSEPG_STATE | ksepg_create_state (int size) |
void | ksepg_destruct_state (KSEPG_STATE *state) |
KSEPG_STATE | ksepg_duplicate_state (const KSEPG_STATE *state) |
void | ksepg_dephase (KSEPG_STATE *state, KSEPG_RELAXATION rel_op) |
void | ksepg_compute_rotation (KS_MAT3x3 *rot, double flip) |
void | ksepg_apply_rotation (KSEPG_STATE *state, KS_MAT3x3 *rot_p) |
void | ksepg_refocus (KSEPG_STATE *state, KS_MAT3x3 *rot) |
void | ksepg_next_echo (KSEPG_STATE *state, KS_MAT3x3 *rot, KSEPG_RELAXATION rel_op) |
STATUS | ksepg_get_intensities (const double *flip_angles, int num_echoes, KSEPG_STATE state, double *signal_intensities, double echo_spacing, double T1, double T2) |
STATUS | ksepg_get_intensities_std (const double *flip_angles, double *signal_intensities, int num_echoes, double echo_spacing, double T1, double T2) |
STATUS | ksepg_get_intensities_long (const double *flip_angles, double *signal_intensities, int num_echoes, double echo_spacing, double T1, double T2) |
double | ksepg_solve_trig_eq (double a, double b, double c) |
double | ksepg_track_step (double Fp, double Fm, double Z, double target_Fm, KSEPG_RELAXATION rel_op) |
STATUS | ksepg_track_intensity_curve (double *flip_angles, int num_echoes, KSEPG_STATE state, double scaling_factor, const double *target_curve, double echo_spacing, double T1, double T2) |
STATUS | ksepg_track_intensity_std (double *flip_angles, int num_echoes, double target_intensity, double echo_spacing, double T1, double T2) |
STATUS | ksepg_track_intensity_long (double *flip_angles, int num_echoes, double target_intensity, double echo_spacing, double T1, double T2) |
void | ks_print_epg_sim (const float *flip_angles, const double *si_rel, const double *si_norel, const double *effTEs, const int num_echoes, const double echo_spacing, const double T1, const double T2, KS_DESCRIPTION description) |
void | ks_predownload_plot_epg_sim (KS_DESCRIPTION description) |
STATUS | ksepg_calc_effTE (const float *flip_angles, double *effTEs, int num_echoes, double echo_spacing, double T1, double T2, KS_DESCRIPTION description) |
double | ksepg_max_angle (double *flip_angles, int num_echoes) |
STATUS | ksepg_optimize_constant (double *intensity, double *flip_angles, int num_echoes, double max_flip, double echo_spacing, double T1, double T2, const KSEPG_STATE starting_state) |
STATUS | ksepg_optimize_constant_std (double *intensity, double *flip_angles, int num_echoes, double max_flip, double echo_spacing, double T1, double T2) |
STATUS | ksepg_optimize_constant_long (double *intensity, double *flip_angles, int num_echoes, double max_flip, double echo_spacing, double T1, double T2) |
STATUS | ksepg_generate_intensity_triangle_impl (double *target_intensities, int num_echoes, double center_position, double min_intensity, double max_intensity, double half_size) |
STATUS | ksepg_generate_intensity_periodic_triangle (double *target_intensities, int num_echoes, double center_position, double min_intensity, double max_intensity) |
STATUS | ksepg_generate_intensity_cropped_triangle (double *target_intensities, int num_echoes, double center_position, double min_intensity, double max_intensity) |
STATUS | ksepg_generate_intensity_ramp (double *target_intensities, int num_echoes, double center_position, double min_intensity, double max_intensity) |
STATUS | ksepg_generate_intensity_linear (double *target_intensities, int num_echoes, double center_position, double min_intensity, double max_intensity) |
STATUS | ksepg_track_bounded_curve (double *flip_angles, double *target_intensities, int num_echoes, double min_intensity, double max_intensity, double echo_spacing, double T1, double T2, double center_position, STATUS(*generate_bounded_curve)(double *, int, double, double, double), const KSEPG_STATE starting_state) |
STATUS | ksepg_optimize_bounded_curve (double *min_intensity, double *max_intensity, double *flip_angles, int num_echoes, double max_flip, double echo_spacing, double T1, double T2, double center_position, STATUS(*generate_bounded_curve)(double *, int, double, double, double), const KSEPG_STATE starting_state) |
STATUS | ksepg_optimize_bounded_curve_std (double *min_intensity, double *max_intensity, double *flip_angles, int num_echoes, double max_flip, double echo_spacing, double T1, double T2, double center_position, STATUS(*generate_bounded_curve)(double *, int, double, double, double)) |
STATUS | ksepg_optimize_bounded_curve_long (double *min_intensity, double *max_intensity, double *flip_angles, int num_echoes, double max_flip, double echo_spacing, double T1, double T2, double center_position, STATUS(*generate_bounded_curve)(double *, int, double, double, double)) |
STATUS | ksepg_optimize_rampdown (double *end_intensity, double start_intensity, double *flip_angles, int num_echoes, double max_flip, double echo_spacing, double T1, double T2, const KSEPG_STATE starting_state) |
STATUS | ksepg_half_intensity (double *flip_angles, int num_echoes, double max_flip, double echo_spacing, double T1, double T2, KSEPG_TAIL tail_type) |
STATUS | ksepg_optimize_expdown (double *flip_angles, int num_echoes, double max_flip, double echo_spacing, double T1, double T2, const KSEPG_STATE starting_state) |
STATUS | ksepg_optimize_half_exponential (double *flip_angles, int num_echoes, double max_flip) |
STATUS | ksepg_optimize_half_free (double *flip_angles, int num_echoes, double max_flip) |
STATUS | ksepg_optimize_linear_free (double *flip_angles, int num_echoes, double max_flip, double min_intensity_weight, double echo_spacing, double T1, double T2, const KSEPG_STATE starting_state) |
STATUS | ksepg_optimize_linear_free_std (double *flip_angles, int num_echoes, double max_flip, double min_intensity_weight, double echo_spacing, double T1, double T2) |
STATUS | ksepg_optimize_linear_free_long (double *flip_angles, int num_echoes, double max_flip, double min_intensity_weight, double echo_spacing, double T1, double T2) |
STATUS | ksepg_optimize_linear_free_center_echo (int *_center_echo, int target_eff_TE, int linear_sweep_center_echo, double *flip_angles, int num_echoes, double max_flip, double min_intensity_weight, double echo_spacing, double T1, double T2, const KSEPG_STATE starting_state) |
STATUS | ksepg_optimize_linear_free_center_echo_std (int *center_echo, int target_eff_TE, int linear_sweep_center_echo, double *flip_angles, int num_echoes, double max_flip, double min_intensity_weight, double echo_spacing, double T1, double T2) |
STATUS | ksepg_optimize_linear_free_center_echo_long (int *center_echo, int target_eff_TE, int linear_sweep_center_echo, double *flip_angles, int num_echoes, double max_flip, double min_intensity_weight, double echo_spacing, double T1, double T2) |
STATUS | ksepg_sineTRAPS (double *flip_angles, int etl, int n23, int n4, double an1, double an23, double an4) |
STATUS | ksepg_sineTRAPS2 (float *flip_angles, int etl, KSEPG_TRAPS_DESIGN traps_design, float scaling_factor) |
double | ksepg_calc_relSAR (double *flip_angles, int etl) |
Feature module: Extended Phase Graphs (ksepg.[h,cc])
KSEPG_RELAXATION ksepg_create_relaxation | ( | double | time_delta, |
double | T1, | ||
double | T2 | ||
) |
[in] | time_delta | Time interval over whivh relaxation occurs |
[in] | T1 | T_1 value for the tissue of interest |
[in] | T2 | T_2 value for the tissue of interest |
KSEPG_STATE ksepg_create_state | ( | int | size | ) |
[in] | size | Maximum number of dephasing steps to be modeled |
void ksepg_destruct_state | ( | KSEPG_STATE * | state | ) |
[in,out] | state |
KSEPG_STATE ksepg_duplicate_state | ( | const KSEPG_STATE * | state | ) |
[in] | state | to duplicate |
void ksepg_dephase | ( | KSEPG_STATE * | state, |
KSEPG_RELAXATION | rel_op | ||
) |
The dephasing step shifts F_+ to the right and F_- to the left.
[in,out] | state | |
[in] | rel_op |
void ksepg_compute_rotation | ( | KS_MAT3x3 * | rot, |
double | flip | ||
) |
[out] | rot | The computed rotation matrix |
[in] | flip | Flip angle of the refocusing pulse |
void ksepg_apply_rotation | ( | KSEPG_STATE * | state, |
KS_MAT3x3 * | rot | ||
) |
[in,out] | state | |
[in] | rot |
void ksepg_refocus | ( | KSEPG_STATE * | state, |
KS_MAT3x3 * | rot | ||
) |
This operation differ from ksepg_apply_rotation in that it includes the effect of the crushers.
[in,out] | state | |
[in] | rot | The rotation matrix corresponding to the refocusing pulse |
void ksepg_next_echo | ( | KSEPG_STATE * | state, |
KS_MAT3x3 * | rot, | ||
KSEPG_RELAXATION | rel_op | ||
) |
[in,out] | state | |
[in] | rot | The rotation matrix corresponding to the refocusing pulse between the two echoes |
[in] | rel_op | Relaxation operator corresponding to a periof equal to half of the echo spacing |
STATUS ksepg_get_intensities | ( | const double * | flip_angles, |
int | num_echoes, | ||
KSEPG_STATE | state, | ||
double * | signal_intensities, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2 | ||
) |
ADDDESCHERE
flip_angles | ADDTEXTHERE | |
[in] | num_echoes | ADDTEXTHERE |
[in] | state | ADDTEXTHERE |
signal_intensities | ADDTEXTHERE | |
[in] | echo_spacing | ADDTEXTHERE |
[in] | T1 | ADDTEXTHERE |
[in] | T2 | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_get_intensities_std | ( | const double * | flip_angles, |
double * | signal_intensities, | ||
int | num_echoes, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2 | ||
) |
[in] | flip_angles | Refocusing flip angles |
[out] | signal_intensities | The intensity levels for each echo relative to T=0 |
[in] | num_echoes | Number of echoes in the train |
[in] | echo_spacing | Echo spacing for the FSE train |
[in] | T1 | T_1 value for the tissue of interest |
[in] | T2 | T_2 value for the tissue of interest |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_get_intensities_long | ( | const double * | flip_angles, |
double * | signal_intensities, | ||
int | num_echoes, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2 | ||
) |
ADDDESCHERE
flip_angles | ADDTEXTHERE | |
signal_intensities | ADDTEXTHERE | |
[in] | num_echoes | ADDTEXTHERE |
[in] | echo_spacing | ADDTEXTHERE |
[in] | T1 | ADDTEXTHERE |
[in] | T2 | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
double ksepg_solve_trig_eq | ( | double | a, |
double | b, | ||
double | c | ||
) |
double ksepg_track_step | ( | double | Fp, |
double | Fm, | ||
double | Z, | ||
double | target_Fm, | ||
KSEPG_RELAXATION | rel_op | ||
) |
Attempt to select a refocusing flip angle so that F_-(0) will match a desired target intensity at the next echo.
[in] | Fp | F_+(1) just before the refocusing pulse |
[in] | Fm | F_-(1) just before the refocusing pulse |
[in] | Z | Z(1) just before the refocusing pulse |
[in] | target_Fm | Target for F_-(0) after the refocusing pulse and a dephasing step |
[in] | rel_op | Relaxation operator over the dephasing time |
STATUS ksepg_track_intensity_curve | ( | double * | flip_angles, |
int | num_echoes, | ||
KSEPG_STATE | state, | ||
double | scaling_factor, | ||
const double * | target_curve, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2 | ||
) |
This function attempt to set the refocusing flip angle so that the signal intensity of a certain tissue follows over the echoes the requested curve scaled by a factor.
[out] | flip_angles | Refocusing flip angle |
[in] | num_echoes | Number of echoes in the train |
[in,out] | state | EPG state that will be updated |
[in] | scaling_factor | Scaling factor for the intensity curve |
[in] | target_curve | Target intensity curve to be matched. If NULL it is assumed to be a constant curve equal to one. |
[in] | echo_spacing | Echo spacing for the FSE train |
[in] | T1 | T_1 value for the tissue of interest |
[in] | T2 | T_2 value for the tissue of interest |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_track_intensity_std | ( | double * | flip_angles, |
int | num_echoes, | ||
double | target_intensity, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2 | ||
) |
This function attempt to set the refocusing flip angle so that the signal intensity of a certain tissue is constant over all echoes.
[out] | flip_angles | Refocusing flip angle |
[in] | num_echoes | Number of echoes in the train |
[in] | target_intensity | Target intensity relative to T=0, must be in (0,1) |
[in] | echo_spacing | Echo spacing for the FSE train |
[in] | T1 | T_1 value for the tissue of interest |
[in] | T2 | T_2 value for the tissue of interest |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_track_intensity_long | ( | double * | flip_angles, |
int | num_echoes, | ||
double | target_intensity, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2 | ||
) |
Track the requested intensity level with a modified FSE train where an extra echo with a 90 degree refocusing is inserted at the beginng. It is better suited for long echo trains.
NOTE that the extra echo's data is not meant to be measured.
[out] | flip_angles | Refocusing flip angle |
[in] | num_echoes | Number of echoes in the train |
[in] | target_intensity | Target intensity relative to T=0, must be in (0,1) |
[in] | echo_spacing | Echo spacing for the FSE train |
[in] | T1 | T_1 value for the tissue of interest |
[in] | T2 | T_2 value for the tissue of interest |
STATUS | SUCCESS or FAILURE |
void ks_print_epg_sim | ( | const float * | flip_angles, |
const double * | si_rel, | ||
const double * | si_norel, | ||
const double * | effTEs, | ||
const int | num_echoes, | ||
const double | echo_spacing, | ||
const double | T1, | ||
const double | T2, | ||
KS_DESCRIPTION | description | ||
) |
void ks_predownload_plot_epg_sim | ( | KS_DESCRIPTION | description | ) |
ADDDESCHERE
[in] | description | ADDTEXTHERE |
STATUS ksepg_calc_effTE | ( | const float * | flip_angles, |
double * | effTEs, | ||
int | num_echoes, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2, | ||
KS_DESCRIPTION | desc | ||
) |
[in] | flip_angles | Refocusing flip angles |
[out] | effTEs | Effective echo time for each echo |
[in] | num_echoes | Number of echoes in the train |
[in] | echo_spacing | Echo spacing for the FSE train |
[in] | T1 | T_1 value for the tissue of interest |
[in] | T2 | T_2 value for the tissue of interest |
[in] | desc | Description for printing to file |
STATUS | SUCCESS or FAILURE |
double ksepg_max_angle | ( | double * | flip_angles, |
int | num_echoes | ||
) |
[in] | flip_angles | Refocusing flip angles |
[in] | num_echoes | Number of echoes in the train |
STATUS ksepg_optimize_constant | ( | double * | intensity, |
double * | flip_angles, | ||
int | num_echoes, | ||
double | max_flip, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2, | ||
const KSEPG_STATE | starting_state | ||
) |
intensity | ADDTEXTHERE | |
flip_angles | ADDTEXTHERE | |
[in] | num_echoes | ADDTEXTHERE |
[in] | max_flip | ADDTEXTHERE |
[in] | echo_spacing | ADDTEXTHERE |
[in] | T1 | ADDTEXTHERE |
[in] | T2 | ADDTEXTHERE |
[in] | starting_state | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_optimize_constant_std | ( | double * | intensity, |
double * | flip_angles, | ||
int | num_echoes, | ||
double | max_flip, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2 | ||
) |
STATUS ksepg_optimize_constant_long | ( | double * | intensity, |
double * | flip_angles, | ||
int | num_echoes, | ||
double | max_flip, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2 | ||
) |
ADDDESCHERE
intensity | ADDTEXTHERE | |
flip_angles | ADDTEXTHERE | |
[in] | num_echoes | ADDTEXTHERE |
[in] | max_flip | ADDTEXTHERE |
[in] | echo_spacing | ADDTEXTHERE |
[in] | T1 | ADDTEXTHERE |
[in] | T2 | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_generate_intensity_triangle_impl | ( | double * | target_intensities, |
int | num_echoes, | ||
double | center_position, | ||
double | min_intensity, | ||
double | max_intensity, | ||
double | half_size | ||
) |
The aim is to modulate the FA so that the intensity is the same at the start and the end of the train. There are two possible strategies:
target_intensities | ADDTEXTHERE | |
[in] | num_echoes | ADDTEXTHERE |
[in] | center_position | ADDTEXTHERE |
[in] | min_intensity | ADDTEXTHERE |
[in] | max_intensity | ADDTEXTHERE |
[in] | half_size | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_generate_intensity_periodic_triangle | ( | double * | target_intensities, |
int | num_echoes, | ||
double | center_position, | ||
double | min_intensity, | ||
double | max_intensity | ||
) |
STATUS ksepg_generate_intensity_cropped_triangle | ( | double * | target_intensities, |
int | num_echoes, | ||
double | center_position, | ||
double | min_intensity, | ||
double | max_intensity | ||
) |
ADDDESCHERE
target_intensities | ADDTEXTHERE | |
[in] | num_echoes | ADDTEXTHERE |
[in] | center_position | ADDTEXTHERE |
[in] | min_intensity | ADDTEXTHERE |
[in] | max_intensity | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_generate_intensity_ramp | ( | double * | target_intensities, |
int | num_echoes, | ||
double | center_position, | ||
double | min_intensity, | ||
double | max_intensity | ||
) |
ADDDESCHERE
target_intensities | ADDTEXTHERE | |
[in] | num_echoes | ADDTEXTHERE |
[in] | center_position | ADDTEXTHERE |
[in] | min_intensity | ADDTEXTHERE |
[in] | max_intensity | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_generate_intensity_linear | ( | double * | target_intensities, |
int | num_echoes, | ||
double | center_position, | ||
double | min_intensity, | ||
double | max_intensity | ||
) |
ADDDESCHERE
target_intensities | ADDTEXTHERE | |
[in] | num_echoes | ADDTEXTHERE |
[in] | center_position | ADDTEXTHERE |
[in] | min_intensity | ADDTEXTHERE |
[in] | max_intensity | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_track_bounded_curve | ( | double * | flip_angles, |
double * | target_intensities, | ||
int | num_echoes, | ||
double | min_intensity, | ||
double | max_intensity, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2, | ||
double | center_position, | ||
STATUS(*)(double *, int, double, double, double) | generate_bounded_curve, | ||
const KSEPG_STATE | starting_state | ||
) |
STATUS ksepg_optimize_bounded_curve | ( | double * | min_intensity, |
double * | max_intensity, | ||
double * | flip_angles, | ||
int | num_echoes, | ||
double | max_flip, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2, | ||
double | center_position, | ||
STATUS(*)(double *, int, double, double, double) | generate_bounded_curve, | ||
const KSEPG_STATE | starting_state | ||
) |
STATUS ksepg_optimize_bounded_curve_std | ( | double * | min_intensity, |
double * | max_intensity, | ||
double * | flip_angles, | ||
int | num_echoes, | ||
double | max_flip, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2, | ||
double | center_position, | ||
STATUS(*)(double *, int, double, double, double) | generate_bounded_curve | ||
) |
Optimize the target intensity curve modeled as a bounded curve in order to maximise the intensity at the echo corresponding to the center of the k-space. A bounded curve is parameterized by the maximum and minim intensities over all echoes.
STATUS ksepg_optimize_bounded_curve_long | ( | double * | min_intensity, |
double * | max_intensity, | ||
double * | flip_angles, | ||
int | num_echoes, | ||
double | max_flip, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2, | ||
double | center_position, | ||
STATUS(*)(double *, int, double, double, double) | generate_bounded_curve | ||
) |
STATUS ksepg_optimize_rampdown | ( | double * | end_intensity, |
double | start_intensity, | ||
double * | flip_angles, | ||
int | num_echoes, | ||
double | max_flip, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2, | ||
const KSEPG_STATE | starting_state | ||
) |
STATUS ksepg_half_intensity | ( | double * | flip_angles, |
int | num_echoes, | ||
double | max_flip, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2, | ||
KSEPG_TAIL | tail_type | ||
) |
ADDDESCHERE
flip_angles | ADDTEXTHERE | |
[in] | num_echoes | ADDTEXTHERE |
[in] | max_flip | ADDTEXTHERE |
[in] | echo_spacing | ADDTEXTHERE |
[in] | T1 | ADDTEXTHERE |
[in] | T2 | ADDTEXTHERE |
[in] | tail_type | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_optimize_expdown | ( | double * | flip_angles, |
int | num_echoes, | ||
double | max_flip, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2, | ||
const KSEPG_STATE | starting_state | ||
) |
ADDDESCHERE
flip_angles | ADDTEXTHERE | |
[in] | num_echoes | ADDTEXTHERE |
[in] | max_flip | ADDTEXTHERE |
[in] | echo_spacing | ADDTEXTHERE |
[in] | T1 | ADDTEXTHERE |
[in] | T2 | ADDTEXTHERE |
[in] | starting_state | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_optimize_half_exponential | ( | double * | flip_angles, |
int | num_echoes, | ||
double | max_flip | ||
) |
ADDDESCHERE
flip_angles | ADDTEXTHERE | |
[in] | num_echoes | ADDTEXTHERE |
[in] | max_flip | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_optimize_half_free | ( | double * | flip_angles, |
int | num_echoes, | ||
double | max_flip | ||
) |
ADDDESCHERE
flip_angles | ADDTEXTHERE | |
[in] | num_echoes | ADDTEXTHERE |
[in] | max_flip | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_optimize_linear_free | ( | double * | flip_angles, |
int | num_echoes, | ||
double | max_flip, | ||
double | min_intensity_weight, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2, | ||
const KSEPG_STATE | starting_state | ||
) |
maximize the concave objective function:
f_obj = max_intensity * min_intensity^min_intensity_weight
where both max_intensity and min_intensity are calculated by taking into accout the relexation effect.
[out] | flip_angles | ADDTEXTHERE |
[in] | num_echoes | ADDTEXTHERE |
[in] | max_flip | ADDTEXTHERE |
[in] | min_intensity_weight | ADDTEXTHERE |
[in] | echo_spacing | ADDTEXTHERE |
[in] | T1 | ADDTEXTHERE |
[in] | T2 | ADDTEXTHERE |
[in] | starting_state | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_optimize_linear_free_std | ( | double * | flip_angles, |
int | num_echoes, | ||
double | max_flip, | ||
double | min_intensity_weight, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2 | ||
) |
ADDDESCHERE
flip_angles | ADDTEXTHERE | |
[in] | num_echoes | ADDTEXTHERE |
[in] | max_flip | ADDTEXTHERE |
[in] | min_intensity_weight | ADDTEXTHERE |
[in] | echo_spacing | ADDTEXTHERE |
[in] | T1 | ADDTEXTHERE |
[in] | T2 | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_optimize_linear_free_long | ( | double * | flip_angles, |
int | num_echoes, | ||
double | max_flip, | ||
double | min_intensity_weight, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2 | ||
) |
ADDDESCHERE
flip_angles | ADDTEXTHERE | |
[in] | num_echoes | ADDTEXTHERE |
[in] | max_flip | ADDTEXTHERE |
[in] | min_intensity_weight | ADDTEXTHERE |
[in] | echo_spacing | ADDTEXTHERE |
[in] | T1 | ADDTEXTHERE |
[in] | T2 | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_optimize_linear_free_center_echo | ( | int * | _center_echo, |
int | target_eff_TE, | ||
int | linear_sweep_center_echo, | ||
double * | flip_angles, | ||
int | num_echoes, | ||
double | max_flip, | ||
double | min_intensity_weight, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2, | ||
const KSEPG_STATE | starting_state | ||
) |
The objective is to place the center and modulate the FA so that we get a certain effective TE.
Start placing the center in the middle, target an VFA that would yield an intensity that matches the SE intensity at the requested TE for certain T1/T2 values. Calculate the effective TE. Move the center to the left or right depending if the effective TE is higher or lower than the target TE respectively. Regenerate the VFA modulation with the same target for the center echo.
Does this converge?
_center_echo | ADDTEXTHERE | |
[in] | target_eff_TE | ADDTEXTHERE |
[in] | linear_sweep_center_echo | ADDTEXTHERE |
flip_angles | ADDTEXTHERE | |
[in] | num_echoes | ADDTEXTHERE |
[in] | max_flip | ADDTEXTHERE |
[in] | min_intensity_weight | ADDTEXTHERE |
[in] | echo_spacing | ADDTEXTHERE |
[in] | T1 | ADDTEXTHERE |
[in] | T2 | ADDTEXTHERE |
[in] | starting_state | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_optimize_linear_free_center_echo_std | ( | int * | center_echo, |
int | target_eff_TE, | ||
int | linear_sweep_center_echo, | ||
double * | flip_angles, | ||
int | num_echoes, | ||
double | max_flip, | ||
double | min_intensity_weight, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2 | ||
) |
ADDDESCHERE
center_echo | ADDTEXTHERE | |
[in] | target_eff_TE | ADDTEXTHERE |
[in] | linear_sweep_center_echo | ADDTEXTHERE |
[in] | flip_angles | ADDTEXTHERE |
[in] | num_echoes | ADDTEXTHERE |
[in] | max_flip | ADDTEXTHERE |
[in] | min_intensity_weight | ADDTEXTHERE |
[in] | echo_spacing | ADDTEXTHERE |
[in] | T1 | ADDTEXTHERE |
[in] | T2 | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_optimize_linear_free_center_echo_long | ( | int * | center_echo, |
int | target_eff_TE, | ||
int | linear_sweep_center_echo, | ||
double * | flip_angles, | ||
int | num_echoes, | ||
double | max_flip, | ||
double | min_intensity_weight, | ||
double | echo_spacing, | ||
double | T1, | ||
double | T2 | ||
) |
ADDDESCHERE
center_echo | ADDTEXTHERE | |
[in] | target_eff_TE | ADDTEXTHERE |
[in] | linear_sweep_center_echo | ADDTEXTHERE |
flip_angles | ADDTEXTHERE | |
[in] | num_echoes | ADDTEXTHERE |
[in] | max_flip | ADDTEXTHERE |
[in] | min_intensity_weight | ADDTEXTHERE |
[in] | echo_spacing | ADDTEXTHERE |
[in] | T1 | ADDTEXTHERE |
[in] | T2 | ADDTEXTHERE |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_sineTRAPS | ( | double * | flip_angles, |
int | etl, | ||
int | n23, | ||
int | n4, | ||
double | an1, | ||
double | an23, | ||
double | an4 | ||
) |
Legacy function, please use ksepg_sineTRAPS2 instead.
From the following paper: Weigel, M., & Hennig, J. (2006). Contrast behavior and relaxation effects of conventional and hyperecho-turbo spin echo sequences at 1.5 and 3 T. Magnetic Resonance in Medicine: Official Journal of the Society of Magnetic Resonance in Medicine / Society of Magnetic Resonance in Medicine, 55(4), 826–835.
[out] | flip_angles | Array of flip angles [degrees] |
[in] | etl | Number of refocusing pulses |
[in] | n23 | Index at the FA peak |
[in] | n4 | Index at the start of the tail |
[in] | an1 | RF amplitude at the start of the first ramp [degrees] |
[in] | an23 | RF amplitude on the plateau [degrees] |
[in] | an4 | RF amplitude on the tail [degrees] |
STATUS | SUCCESS or FAILURE |
STATUS ksepg_sineTRAPS2 | ( | float * | flip_angles, |
int | etl, | ||
KSEPG_TRAPS_DESIGN | traps_design, | ||
float | scaling_factor | ||
) |
From the following paper: Weigel, M., & Hennig, J. (2006). Contrast behavior and relaxation effects of conventional and hyperecho-turbo spin echo sequences at 1.5 and 3 T. Magnetic Resonance in Medicine: Official Journal of the Society of Magnetic Resonance in Medicine / Society of Magnetic Resonance in Medicine, 55(4), 826–835.
[out] | flip_angles | Array of flip angles [degrees] |
[in] | etl | Number of refocusing pulses |
[in] | traps_design | Design structure |
[in] | scaling_factor | Scaling factor for all flip angles (1.0 recommended) |
STATUS | SUCCESS or FAILURE |
double ksepg_calc_relSAR | ( | double * | flip_angles, |
int | etl | ||
) |
[in] | flip_angles | Refocusing flip angles |
[in] | etl | Number of echoes in the train |
int rhkacq_uid |
int ks_plot_filefmt |
int ks_plot_kstmp |
char ks_psdname[256] |