void pulsesequence() { // // Set the Maximum Dynamic Table Number // settablenumber(10); setvvarnumber(30); //Define Variables and Objects and Get Parameter Values CP hx = getcp("HX",0.0,0.0,0,1); strncpy(hx.fr,"dec",3); strncpy(hx.to,"obs",3); putCmd("frHX='dec'\n"); putCmd("toHX='obs'\n"); WMPA cpmg = getcpmg("cpmgX"); strncpy(cpmg.ch,"obs",3); putCmd("chXcpmg='obs'\n"); double aXecho = getval("aXecho"); // define the echoX group in the sequence double t1Xechoinit = getval("t1Xecho"); double pwXecho = getval("pwXecho"); double t2Xechoinit = getval("t2Xecho"); double t1Xecho = t1Xechoinit - pwXecho/2.0 - getval("pwX90")/2.0; if (t1Xecho < 0.0) t1Xecho = 0.0; double t2Xecho = t2Xechoinit - pwXecho/2.0 - cpmg.r1 - cpmg.t2 - getval("ad"); if (t2Xecho < 0.0) t2Xecho = 0.0; DSEQ dec = getdseq("H"); strncpy(dec.t.ch,"dec",3); putCmd("chHtppm='dec'\n"); strncpy(dec.s.ch,"dec",3); putCmd("chHspinal='dec'\n"); //-------------------------------------- // Copy Current Parameters to Processed //------------------------------------- putCmd("groupcopy('current','processed','acquisition')"); // Dutycycle Protection DUTY d = init_dutycycle(); d.dutyon = getval("pwH90") + getval("tHX") + pwXecho + (cpmg.cycles - 1)*cpmg.pw; d.dutyoff = d1 + 4.0e-6; d.c1 = d.c1 + (!strcmp(dec.seq,"tppm")); d.c1 = d.c1 + ((!strcmp(dec.seq,"tppm")) && (dec.t.a > 0.0)); d.t1 = t1Xecho + t2Xecho + getval("rd") + getval("ad") + at - (cpmg.cycles - 1)*cpmg.pw; d.c2 = d.c2 + (!strcmp(dec.seq,"spinal")); d.c2 = d.c2 + ((!strcmp(dec.seq,"spinal")) && (dec.s.a > 0.0)); d.t2 = t1Xecho + t2Xecho + getval("rd") + getval("ad") + at - (cpmg.cycles - 1)*cpmg.pw; d = update_dutycycle(d); abort_dutycycle(d,10.0); // Set Phase Tables settable(phH90,64,table1); settable(phXhx,64,table2); settable(phHhx,64,table3); settable(phXecho,64,table4); settable(phXcpmg,64,table5); settable(phRec,64,table6); setreceiver(phRec); // Begin Sequence txphase(phXhx); decphase(phH90); obspwrf(getval("aXhx")); decpwrf(getval("aH90")); obsunblank(); decunblank(); _unblank34(); delay(d1); sp1on(); delay(2.0e-6); sp1off(); delay(2.0e-6); // H to X Cross Polarization decrgpulse(getval("pwH90"),phH90,0.0,0.0); decphase(phHhx); _cp_(hx,phHhx,phXhx); // H Decoupling On decphase(zero); _dseqon(dec); // X Hahn Echo txphase(phXecho); obspwrf(aXecho); delay(t1Xecho); rgpulse(pwXecho,phXecho,0.0,0.0); delay(t2Xecho); // Apply CPMG Cycles obsblank(); _blank34(); delay(cpmg.r1); startacq(getval("ad")); _cpmg(cpmg,phXcpmg); endacq(); _dseqoff(dec); obsunblank(); decunblank(); _unblank34(); }
pulsesequence() { // Set the Maximum Dynamic Table and v-var Numbers settablenumber(10); setvvarnumber(30); // Define Variables and Objects and Get Parameter Values double aXprep1 = getval("aXprep1"); // Define Tilted Pulses using "prep1X". double pw1Xprep1 = getval("pw1Xprep1"); double pw2Xprep1 = getval("pw2Xprep1"); double phXprep1 = getval("phXprep1"); WMPA wpmlg = getwpmlg("wpmlgX"); strncpy(wpmlg.ch,"obs",3); putCmd("chXwpmlg='obs'\n"); //-------------------------------------- // Copy Current Parameters to Processed //------------------------------------- putCmd("groupcopy('current','processed','acquisition')"); // Dutycycle Protection DUTY d = init_dutycycle(); d.dutyon = getval("pw1Xprep1") + getval("pw2Xprep1") + 2.0*wpmlg.q*wpmlg.cycles*wpmlg.pw; d.dutyoff = d1 + 4.0e-6 + 5.0e-6 + wpmlg.r1 + wpmlg.r2 + at - 2.0*wpmlg.q*wpmlg.cycles*wpmlg.pw; d = update_dutycycle(d); abort_dutycycle(d,10.0); // Set Phase Tables settable(ph1Xprep1,4,table1); settable(ph2Xprep1,4,table2); settable(phXwpmlg,4,table3); settable(phRec,4,table4); setreceiver(phRec); // Set the Small-Angle Step double obsstep = 360.0/(PSD*8192); obsstepsize(obsstep); int phfXprep1 = initphase(phXprep1, obsstep); int phXzero = initphase(0.0, obsstep); // Begin Sequence xmtrphase(phfXprep1); txphase(ph1Xprep1); obspwrf(aXprep1); obsunblank(); decunblank(); _unblank34(); delay(d1); sp1on(); delay(2.0e-6); sp1off(); delay(2.0e-6); // Tilted Preparation Pulse for FSLG or PMLG "prep1X" startacq(5.0e-6); rcvroff(); delay(wpmlg.r1); rgpulse(pw1Xprep1, ph1Xprep1, 0.0, 0.0); rgpulse(pw2Xprep1, ph2Xprep1, 0.0, 0.0); xmtrphase(phXzero); delay(wpmlg.r2); // Apply WPMLG Cycles decblank(); _blank34(); _wpmlg(wpmlg, phXwpmlg); endacq(); obsunblank(); decunblank(); _unblank34(); }
void pulsesequence() { // Set the Maximum Dynamic Table and v-var Numbers settablenumber(20); setvvarnumber(30); // Define Variables and Objects and Get Parameter Values MPSEQ dumbo = getdumbogen("dumboX","dcf1X",0,0.0,0.0,0,1); strncpy(dumbo.ch,"obs",3); putCmd("chXdumbo='obs'\n"); MPSEQ c7 = getpostc7("c7X",0,0.0,0.0,0,1); MPSEQ c7ref = getpostc7("c7X",c7.iSuper,c7.phAccum,c7.phInt,1,1); strncpy(c7.ch,"obs",3); putCmd("chXc7='obs'\n"); WMPA wdumbo = getwdumbogen("wdumboX","dcfX"); strncpy(wdumbo.ch,"obs",3); putCmd("chXwdumbo='obs'\n"); double tXzfinit = getval("tXzf"); //Define the Z-filter delay in the sequence double tXzf = tXzfinit - 5.0e-6 - wdumbo.r1; // Set Constant-time Period for d2. if (d2_index == 0) d2_init = getval("d2"); double d2_ = (ni - 1)/sw1 + d2_init; putCmd("d2acqret = %f\n",roundoff(d2_,12.5e-9)); putCmd("d2dwret = %f\n",roundoff(1.0/sw1,12.5e-9)); //-------------------------------------- // Copy Current Parameters to Processed //------------------------------------- putCmd("groupcopy('current','processed','acquisition')"); // Dutycycle Protection DUTY d = init_dutycycle(); d.dutyon = c7.t + getval("pwXtilt") + d2_ + getval("pwXtilt") + c7ref.t + getval("pwX90") + + wdumbo.q*wdumbo.cycles*wdumbo.pw; d.dutyoff = 4.0e-6 + d1 + tXzfinit + wdumbo.r2 + at - wdumbo.q*wdumbo.cycles*wdumbo.pw; d = update_dutycycle(d); abort_dutycycle(d,10.0); // Set Phase Tables settable(ph1Xc7,4,table1); settable(phXdumbo,4,table2); settable(ph2Xc7,4,table3); settable(phX90,16,table4); settable(phXwdumbo,4,table5); settable(phRec,16,table6); settable(ph1Xtilt,4,table7); settable(ph2Xtilt,4,table8); // Set the Small-Angle Prep Phase double obsstep = 360.0/(PSD*8192); obsstepsize(obsstep); int phfX90 = initphase(0.0, obsstep); //Add STATES Quadrature Phase if (phase1 == 2) initval((45.0/obsstep),v1); else initval(0.0,v1); initval((d2*c7.of[0]*360.0/obsstep),v2); initval(0.0,v3); obsstepsize(obsstep); setreceiver(phRec); // Begin Sequence xmtrphase(v1); txphase(ph1Xc7); obspwrf(getval("aXc7")); obsunblank(); decunblank(); _unblank34(); delay(d1); sp1on(); delay(2.0e-6); sp1off(); delay(2.0e-6); // C7 Recoupling of 2Q coherence _mpseq(c7, ph1Xc7); // F1 Evolution With DUMBO xmtrphase(v3); if (!getval("scXdcf1")){ obspwrf(getval("aX90")); rgpulse(getval("pwXtilt"),ph1Xtilt,0.0,0.0); } obspwrf(getval("aXdumbo")); obsunblank(); _mpseqon(dumbo,phXdumbo); delay(d2); _mpseqoff(dumbo); if (!getval("scXdcf1")){ obspwrf(getval("aX90")); rgpulse(getval("pwXtilt"),ph2Xtilt,0.0,0.0); } obspwrf(getval("aX90")); obsunblank(); // C7 Transfer to 1Q Coherence xmtrphase(v2); _mpseq(c7ref, ph2Xc7); // Z-filter Delay delay(tXzf); // Detection Pulse txphase(phX90); obspwrf(getval("aX90")); startacq(5.0e-6); rcvroff(); delay(wdumbo.r1); rgpulse(getval("pwX90"), phX90, 0.0, 0.0); obsunblank(); xmtrphase(v3); delay(wdumbo.r2); // Apply WPMLG Cycles During Acqusition decblank(); _blank34(); _wdumbo(wdumbo,phXwdumbo); endacq(); obsunblank(); decunblank(); _unblank34(); }
void pulsesequence() { // Set the Maximum Dynamic Table Number settablenumber(10); setvvarnumber(30); // Define Variables and Objects and Get Parameter Values WMPA xx = getxx("xxX"); strncpy(xx.ch,"obs",3); putCmd("chXxx='obs'\n"); //-------------------------------------- // Copy Current Parameters to Processed //------------------------------------- putCmd("groupcopy('current','processed','acquisition')"); // Dutycycle Protection DUTY d = init_dutycycle(); d.dutyon = getval("pwXprep") + 2.0*xx.cycles*xx.pw; d.dutyoff = d1 + 4.0e-6 + 5.0e-6 + xx.r1 + xx.r2 + at - 2.0*xx.cycles*xx.pw; d = update_dutycycle(d); abort_dutycycle(d,10.0); // Set Phase Tables settable(phXprep,4,table1); settable(phXxx,4,table2); settable(phRec,4,table3); setreceiver(phRec); // Set the Small-Angle Prep Phase double obsstep = 360.0/(PSD*8192); obsstepsize(obsstep); int phfXprep = initphase(getval("phXprep"), obsstep); int phXzero = initphase(0.0, obsstep); // Begin Sequence xmtrphase(phfXprep); txphase(phXprep); obspwrf(getval("aXprep")); obsunblank(); decunblank(); _unblank34(); delay(d1); sp1on(); delay(2.0e-6); sp1off(); delay(2.0e-6); // Preparation Pulse with Initial Point startacq(5.0e-6); rcvroff(); delay(xx.r1); rgpulse(getval("pwXprep"), phXprep, 0.0, 0.0); xmtrphase(phXzero); // Apply Semi-windowless WHH4 Cycles decblank(); _blank34(); _xx(xx, phXxx); endacq(); obsunblank(); decunblank(); _unblank34(); }
void pulsesequence() { // Set the Maximum Dynamic Table Number settablenumber(10); setvvarnumber(30); // Define Variables and Objects and Get Parameter Values CP hx = getcp("HX",0.0,0.0,0,1); strncpy(hx.fr,"dec",3); strncpy(hx.to,"obs",3); putCmd("frHX='dec'\n"); putCmd("toHX='obs'\n"); WMPA toss = gettoss5("tossX"); strncpy(toss.ch,"obs",3); putCmd("chXtoss='obs'\n"); DSEQ dec = getdseq("H"); strncpy(dec.t.ch,"dec",3); putCmd("chHtppm='dec'\n"); strncpy(dec.s.ch,"dec",3); putCmd("chHspinal='dec'\n"); //-------------------------------------- // Copy Current Parameters to Processed //------------------------------------- putCmd("groupcopy('current','processed','acquisition')"); // Dutycycle Protection DUTY d = init_dutycycle(); d.dutyon = getval("pwH90") + getval("tHX") + 5.0*toss.pw; d.dutyoff = d1 + 4.0e-6; d.c1 = d.c1 + (!strcmp(dec.seq,"tppm")); d.c1 = d.c1 + ((!strcmp(dec.seq,"tppm")) && (dec.t.a > 0.0)); d.t1 = toss.rtau - 5.0*toss.pw + getval("rd") + getval("ad") + at; d.c2 = d.c2 + (!strcmp(dec.seq,"spinal")); d.c2 = d.c2 + ((!strcmp(dec.seq,"spinal")) && (dec.s.a > 0.0)); d.t2 = toss.rtau - 5.0*toss.pw + getval("rd") + getval("ad") + at; d = update_dutycycle(d); abort_dutycycle(d,10.0); // Set Phase Tables settable(phH90,22,table1); settable(phfXhx,11,table2); settable(phXhx,44,table3); settable(phHhx,4,table4); settable(phHdec,4,table5); settable(phXtoss,44,table6); settable(phRec,44,table7); setreceiver(phRec); obsstepsize(360.0/(PSD*8192)); // Begin Sequence xmtrphase(phfXhx); txphase(phXhx); decphase(phH90); obspwrf(getval("aXhx")); decpwrf(getval("aH90")); obsunblank(); decunblank(); _unblank34(); delay(d1); sp1on(); delay(2.0e-6); sp1off(); delay(2.0e-6); // H to X Cross Polarization - Shifted by -6COG11 decrgpulse(getval("pwH90"),phH90,0.0,0.0); decphase(phHhx); _cp_(hx,phHhx,phXhx); decphase(phHdec); // TOSS5 Sideband Suppression with included // (-6,-5,-6,-5,-6)COG11 Cycle _dseqon(dec); _toss5(toss, phXtoss); // Begin Acquisition with Quadrature Phase obsblank(); _blank34(); delay(getval("rd")); startacq(getval("ad")); acquire(np, 1/sw); endacq(); _dseqoff(dec); obsunblank(); decunblank(); _unblank34(); }
pulsesequence() { // Set the Maximum Dynamic Table and v-var Numbers settablenumber(10); setvvarnumber(30); // Define Variables and Objects and Get Parameter Values double aXprep = getval("aXprep"); double pwXprep = getval("pwXprep"); double phvXprep = getval("phXprep"); WMPA wsam = getwsamn("wsamX"); strncpy(wsam.ch,"obs",3); putCmd("chXwsam='obs'\n"); //-------------------------------------- // Copy Current Parameters to Processed //------------------------------------- putCmd("groupcopy('current','processed','acquisition')"); // Dutycycle Protection DUTY d = init_dutycycle(); d.dutyon = getval("pwXprep") + wsam.cycles1*wsam.cycles*wsam.pw; d.dutyoff = d1 + 4.0e-6 + 5.0e-6 + wsam.r1 + wsam.r2 + at - wsam.cycles1*wsam.cycles*wsam.pw; d = update_dutycycle(d); abort_dutycycle(d,10.0); // Set Phase Tables settable(phXprep,4,table1); settable(phXwsam,4,table2); settable(phRec,4,table3); setreceiver(phRec); // Set the Small-Angle Step double obsstep = 360.0/(PSD*8192); obsstepsize(obsstep); int phfXprep = initphase(phvXprep,obsstep); int phXzero = initphase(0.0,obsstep); // Begin Sequence xmtrphase(phfXprep); txphase(phXprep); obspwrf(aXprep); obsunblank(); decunblank(); _unblank34(); delay(d1); sp1on(); delay(2.0e-6); sp1off(); delay(2.0e-6); // Standard 90-degree prepX pulse for SAM startacq(5.0e-6); rcvroff(); delay(wsam.r1); rgpulse(pwXprep, phXprep, 0.0, 0.0); xmtrphase(phXzero); delay(wsam.r2); // Apply WSAM Cycles decblank(); _blank34(); _wsamn(wsam, phXwsam); endacq(); obsunblank(); decunblank(); _unblank34(); }
void pulsesequence() { // Set the Maximum Dynamic Table Number settablenumber(10); setvvarnumber(30); // Define Variables and Objects and Get Parameter Values WMPA swwhh4 = getswwhh4("swwhh4X"); strncpy(swwhh4.ch,"obs",3); putCmd("chXswwhh4='obs'\n"); //-------------------------------------- // Copy Current Parameters to Processed //------------------------------------- putCmd("groupcopy('current','processed','acquisition')"); // Dutycycle Protection DUTY d = init_dutycycle(); d.dutyon = getval("pwXprep") + 4.0*swwhh4.cycles*swwhh4.pw; d.dutyoff = d1 + 4.0e-6 + 5.0e-6 + swwhh4.r1 + swwhh4.r2 + at - 4.0*swwhh4.cycles*swwhh4.pw; d = update_dutycycle(d); abort_dutycycle(d,10.0); // Set Phase Tables settable(phXprep,4,table3); settable(phXswwhh4,4,table4); settable(phRec,4,table5); setreceiver(phRec); // Set the Small-Angle Prep Phase double obsstep = 360.0/(PSD*8192); obsstepsize(obsstep); int phfXprep = initphase(getval("phXprep"), obsstep); int phXzero = initphase(0.0, obsstep); // Set the Realtime pwXprep adXprep settable(pw90Xprep,4,table1); settable(pw55Xprep,4,table2); int phase90 = (int) (getval("pwXprep")/0.0125e-6); int phase55 = (int) (getval("pwXprep")*54.7/(90.0*0.0125e-6)); tsmult(pw90Xprep,phase90,0); tsmult(pw55Xprep,phase55,0); getelem(pw90Xprep,ct,v1); getelem(pw55Xprep,ct,v2); add(v1,v2,pwXprep); sub(v1,v2,adXprep); // Begin Sequence xmtrphase(phfXprep); txphase(phXprep); obspwrf(getval("aXprep")); obsunblank(); decunblank(); _unblank34(); delay(d1); sp1on(); delay(2.0e-6); sp1off(); delay(2.0e-6); // Incremented Preparation Pulse startacq(5.0e-6); rcvroff(); delay(swwhh4.r1); vdelay(NSEC,adXprep); // Keep Total Time Constant xmtron(); vdelay(NSEC,pwXprep); xmtroff(); xmtrphase(phXzero); delay(swwhh4.r2); // Apply Semi-windowless WHH4 Cycles decblank(); _blank34(); _swwhh4(swwhh4, phXswwhh4); endacq(); obsunblank(); decunblank(); _unblank34(); }