autodeer
¶
Subpackages¶
Submodules¶
Package Contents¶
Classes¶
Analysis and calculation of FieldSweep Experiment. |
|
Analysis and calculation of resonator profiles. |
|
Represents an experimental pulse sequence. |
|
Analysis and calculation of Carr Purcell decay. |
|
Analysis and calculation of Reptime based saturation recovery. |
|
Analysis and calculation of Refocused Echo 2D data. |
|
Represents a sequence or pulse parameter. |
|
Represents the interface connection from autoEPR to the spectrometer. |
|
Represents a sequence or pulse parameter. |
|
Represents a general experimental pulse. |
|
Represents a detection pulse. |
|
DEPRECATION WARNING: THIS WILL BE REMOVED SOON. |
|
Represents a rectangular monochromatic pulse. |
|
Represents an experimental pulse sequence. |
|
Represents a DEER/PELDOR sequence. |
|
Represents a Hahn-Echo sequence. |
|
Represents a T2 relaxation sequence. A Hahn Echo where the interpulse delay increases |
|
Represents a Field Sweep (EDFS) sequence. |
|
Represents a reptime scan of a Hahn Echo Sequence. |
|
Represents a Carr-Purcell sequence. |
|
Represents a 2D Refocused-echo Sequence. |
|
Builds nutation based Resonator Profile sequence. |
|
Builds TWT based Resonator Profile sequence. |
|
Represents a sequence or pulse parameter. |
|
Represents a general experimental pulse. |
|
Represents a detection pulse. |
|
DEPRECATION WARNING: THIS WILL BE REMOVED SOON. |
|
Represents a rectangular monochromatic pulse. |
|
Represents a Gaussian monochromatic pulse. |
|
A general parent class for Frequency Swept Pulses. |
|
Represents a hyperboilc secant frequency-swept pulse. |
|
Represents a linear frequency-swept pulse. |
|
Represents a general experimental pulse. |
|
A class for defining criteria for terminating experiments. This should |
|
A class for defining criteria for terminating experiments. This should |
|
A class for defining criteria for terminating experiments. This should |
|
A class for defining criteria for terminating experiments. This should |
|
Functions¶
|
|
|
Spin Operator Matricies. |
Turns a dictionary of lists into a list of dictionaries. |
|
Turns a list of dictionaries into a dictionary of lists. |
|
|
|
|
|
|
Generates the greatest common dividor on a list of floats |
|
Returns the value or axis of a parameter in microseconds |
|
Returns the value or axis of a parameter in nanoseconds |
|
|
|
|
|
|
|
DEERanalysis_plot Generates a figure showing both the time domain and |
|
Generates a vertical plot of the DEER analysis results, ready for publication. |
|
IdentifyROI Identifies the region of interest. Two methods are sypported |
|
Optimise the pulse positions to maximise the pump-exc overlap. |
|
Plots the pump and excitation profiles as well as the fieldsweep and filter profile. |
|
Normalizes the input vector A to be between 0 and 1. |
|
Calculate the correction factor for the number of averages required to achieve a given MNR in a given time. |
|
Calculates the optimal DEER settings based on the avaliable relaxation data |
|
Detect if the dataset is an ESEEM experiment. |
|
Create a superimposed plot of relaxation data and fits. |
|
|
|
|
|
|
|
Spin Operator Matricies. |
|
|
|
|
|
|
|
Creates a 2x2 summary figure. |
Attributes¶
- autodeer.sop(spins, comps)[source]¶
Spin Operator Matricies.
This function is ported from EasySpin (https://easyspin.org/easyspin/documentation/sop.html)
References:¶
[1] Stefan Stoll, Arthur Schweiger EasySpin, a comprehensive software package for spectral simulation and analysis in EPR J. Magn. Reson. 178(1), 42-55 (2006)
[2] Stefan Stoll, R. David Britt General and efficient simulation of pulse EPR spectra Phys. Chem. Chem. Phys. 11, 6614-6625 (2009)
- Parameters:
- spinslist
A list of each spin and its spin qunatum number
- compsstr
The type of spin operator matrix to create. Options are: x,y,z,+,-,e
- autodeer.transpose_dict_of_list(d)[source]¶
Turns a dictionary of lists into a list of dictionaries.
- autodeer.transpose_list_of_dicts(d)[source]¶
Turns a list of dictionaries into a dictionary of lists.
- autodeer.gcd(values)[source]¶
Generates the greatest common dividor on a list of floats
- Parameters:
- valueslist
_description_
- Parameters:
values (list)
- autodeer.val_in_us(Param, axis=True)[source]¶
Returns the value or axis of a parameter in microseconds
- Parameters:
- Paramautodeer.Parameter
The parameter to be converted
- Returns:
- float or numpy.ndarray
- autodeer.val_in_ns(Param)[source]¶
Returns the value or axis of a parameter in nanoseconds
- Parameters:
- Paramautodeer.Parameter
The parameter to be converted
- Returns:
- float or numpy.ndarray
- class autodeer.FieldSweepAnalysis(dataset)[source]¶
Analysis and calculation of FieldSweep Experiment.
- Parameters:
- datasetxarray.Dataarray
_description_
- Parameters:
dataset (xarray.DataArray)
- data¶
- calc_gyro(LO=None)[source]¶
Calculates the gyromagnetic ratio for a given frequency
- Parameters:
- det_frqfloat
The detection frequency for the field sweep.
- Returns:
- float
The gyromagnetic ratio in G/GHz.
- Parameters:
LO (float)
- Return type:
float
- smooth(*args, **kwargs)[source]¶
Generates a smoothed version of the data using a 1D smoothing spline.
- Returns:
- np.ndarray
The smoothed data.
- plot(norm=True, axis='field', axs=None, fig=None)[source]¶
Generate a field sweep plot
- Parameters:
- normbool, optional
Nomarlisation of the plot to a maximum of 1, by default True
- axisstr, optional
plot field sweep on either the “field” axis or “freq” axis
- Returns:
- Matplotlib.Figure
matplotlib figure
- Parameters:
norm (bool)
axis (str)
- Return type:
matplotlib.figure.Figure
- class autodeer.ResonatorProfileAnalysis(dataset, f_lims=(32, 36))[source]¶
Analysis and calculation of resonator profiles.
- Parameters:
- datasetxr.xarray
The dataset containing the nutations. It must have both a ‘LO’ axis and a ‘pulse0_tp’ axis.
- f_limstuple, optional
The frequency limits of the resonator profile, by default (33,35)
- dataset¶
- n_files¶
- t¶
- f_lims¶
- process_nutations(noisedensity=None, threshold=2, nfft=1000)[source]¶
Uses a power series to extract the resonator profile.
- Parameters:
- noisedensitytuple, optional
If not given the first trace is assumed to be so far off resonance that it is just noise.
- nfft: int, optional
The length of the fft to be used, zero padded if requred, default is 1000.
- threshold: int, optional
The multiples above the noise a single must be to not be excluded, default is 2.
- Returns:
- prof_data: np.ndarray
The resonator profile, give in nutation frequency (GHz)
- prof_frqs: np.ndarray
The frequency axis in GHz
- Parameters:
noisedensity (float)
threshold (int)
nfft (int)
- fit(f_diff_threshold=2, cores=1, multi_mode=False, fc_guess=None)[source]¶
Fit the resonator profile with a sum of lorentzians.
- Parameters:
- f_diff_thresholdfloat, optional
The difference between two peaks at which they will be merged into one, by default 0.03
- plot(fieldsweep=None, axs=None, fig=None)[source]¶
plot.
- Parameters:
- fieldsweepFieldSweepAnalysis, optional
Overlays the FieldSweep if provided, by default None
- axsmatplotlib.Axes, optional
Axes to plot on, by default None
- figmatplotlib.Figure, optional
Figure to plot on, by default None
- Returns:
- Matplotlib.Figure
matplotlib figure object
- autodeer.DEERanalysis(dataset, compactness=True, model=None, ROI=False, exp_type='5pDEER', verbosity=0, remove_crossing=True, **kwargs)[source]¶
- autodeer.DEERanalysis_plot(fit, background, ROI=None, axs=None, fig=None, text=True)[source]¶
DEERanalysis_plot Generates a figure showing both the time domain and distance domain data along with extra important infomation such as the Modulation to Noise Ratio (MNR), Region of Interest (ROI) and the recommended dipolar evolution time for future experiments based upon the ROI.
- Parameters:
- fitDeerlab.FitResult
_description_
- backgroundbool
Should the background fit be plotted.
- ROItuple, optional
The minimum and maximum of the Region of Interest (ROI), by default None
- Returns:
- Figure
A Matplotlib Figure object of the figure.
- Parameters:
background (bool)
- autodeer.DEERanalysis_plot_pub(results, ROI=None, fig=None, axs=None)[source]¶
Generates a vertical plot of the DEER analysis results, ready for publication.
- Parameters:
- resultsDeerlab.FitResult
The results of the DEER analysis.
- ROItuple, optional
The minimum and maximum of the Region of Interest (ROI), by default None
- figmatplotlib.figure.Figure, optional
The figure to plot the results on. If None, a new figure is created.
- axsmatplotlib.axes.Axes, optional
The axes to plot the results on. If None, a new axes is created.
- autodeer.IdentifyROI(P, r, criterion=0.99, method='gauss')[source]¶
IdentifyROI Identifies the region of interest. Two methods are sypported
Methods¶
Gaussian fitting (“gauss”):
Intergration (“int”):
- Parameters:
- Pnp.ndarray
The distance distribution.
- rnp.ndarray
The distance axis
- criterionfloat, optional
The fraction of the distance distribution that must be in the ROI, by default 0.99
- method: str, optional
The method used to calculate region of interest.
- Parameters:
P (numpy.ndarray)
r (numpy.ndarray)
criterion (float)
method (str)
- autodeer.optimise_pulses(Fieldsweep, pump_pulse, exc_pulse, ref_pulse=None, filter=None, verbosity=0, method='brute', nDEER=False, num_ref_pulses=2, full_output=False, resonator=None, **kwargs)[source]¶
Optimise the pulse positions to maximise the pump-exc overlap.
- Parameters:
- Fieldsweepad.FieldSweepAnalysis
The FieldSweep analysis object
- pump_pulsead.Pulse
The pump pulse object
- exc_pulsead.Pulse
The excitation pulse object
- ref_pulsead.Pulse, optional
The refocusing pulse object, by default None
- filterstr or number or list, optional
The filter profile if applicable, by default None. If it is a number a filter is generated with this cutoff frequency. If the string ‘Matched’ is used a matched filter is used. If a list is used the optimisation is performed for each filter and the best is returned.
- verbosityint, optional
The verbosity, by default 0
- methodstr, optional
What search optimisation is used, by default ‘grid’
- nDEERbool, optional
Is the sequence an nDEER sequrence, by default False. If True then the refocusing pulse is not optimised.
- num_ref_pulsesint, optional
The total number of refocusing pulses, by default 2
- full_outputbool, optional
Return the full output, by default False
- resonatorad.ResonatorProfile, optional
The resonator profile, by default None
- Returns
- ——-
- ad.Pulse
The optimised pump pulse
- ad.Pulse
The optimised excitation pulse
- ad.Pulse
The optimised refocusing pulse
- str or number
The best filter, only if a list of filters is provided
- float
The functional value after optimisation, only if full_output is True
- tuple
The grid of the optimisation, only if full_output is True
- tuple
The output of the optimisation, only if full_output is True
- autodeer.plot_overlap(Fieldsweep, pump_pulse, exc_pulse, ref_pulse, filter=None, respro=None, num_ref_pulses=2, axs=None, fig=None)[source]¶
Plots the pump and excitation profiles as well as the fieldsweep and filter profile.
- Parameters:
- Fieldsweepad.FieldSweepAnalysis
The FieldSweep analysis object
- pump_pulsead.Pulse
The pump pulse object
- exc_pulsead.Pulse
The excitation pulse object
- ref_pulsead.Pulse, optional
The refocusing pulse object, by default None
- filterstr or number, optional
The filter profile if applicable, by default None. If it is a number a filter is generated with this cutoff frequency. If the string ‘Matched’ is used a matched filter is used.
- resproad.ResonatorProfileAnalysis, optional
The resonator profile for fitting, by default None. The resonator profile must include the fit.
- num_ref_pulsesint, optional
The total number of refocusing pulses, by default 2
- axsmatplotlib.axes, optional
The axes to plot on, by default None
- figmatplotlib.figure, optional
The figure to plot on, by default None
- autodeer.normalise_01(A)[source]¶
Normalizes the input vector A to be between 0 and 1.
Parameters: A (numpy.ndarray): Input vector to be normalized.
Returns: numpy.ndarray: Normalized vector between 0 and 1.
- autodeer.calc_correction_factor(fit_result, aim_MNR=25, aim_time=2)[source]¶
Calculate the correction factor for the number of averages required to achieve a given MNR in a given time. Parameters ———- fit_result : Deerlab.FitResult
The fit result from the DEER analysis.
- aim_MNRfloat, optional
The desired MNR, by default 25
- aim_timefloat, optional
The desired time in hours, by default 2
Returns¶
- float
The correction factor for the number of averages.
- autodeer.calc_deer_settings(experiment, CPdecay=None, Refocused2D=None, target_time=2, target_MNR=20, waveform_precision=2)[source]¶
Calculates the optimal DEER settings based on the avaliable relaxation data
- Parameters:
- experimentstr
Type of DEER experiment, either ‘auto’, ‘4pDEER’ or ‘5pDEER’
- CPdecayad.CarrPurcellAnalysis
Carr-Purcell relaxation data
- Refocused2Dad.RefocusedEcho2DAnalysis, optional
Refocused 2D data required for ‘4pDEER’, by default None
- target_timeint, optional
Target time for the DEER experiment in hours, by default 2
- target_MNRfloat, optional
Target modulation to noise ratio, by default 20
- waveform_precisionint, optional
Precision of the waveform in ns, by default 2
- Returns:
- dict
- DEER settings, with keys:
-‘ExpType’: ‘4pDEER’ or ‘5pDEER’ -‘tau1’: in us -‘tau2’: in us -‘tau3’: in us, only for 5pDEER -‘AimTime’: in hours
- Parameters:
experiment (str)
Notes
This function will calcate the optimal DEER settings based on the avaliable relaxation data, depending on the experiment type. For 4pDEER, the optimal tau1 and tau2 are calculated based on the refocused 2D data, and for 5pDEER, the optimal tau2 is calculated based on the CPdecay data or refocused 2D if CP decay data is not availiable. If the optimal tau2 for 5pDEER is less than 1.5us, the function will calculate the optimal tau1 and tau2 for 4pDEER instead. This is only possible if the refocused 2D data is availiable, otherwise a non optimal tau1 of 0.4us is used.
- class autodeer.Sequence(*, name, B, LO, reptime, averages, shots, **kwargs)[source]¶
Represents an experimental pulse sequence.
Represents an experimental pulse sequence.
- Parameters:
- namestr
The name of this pulse sequence
- Bfloat
The magnetic field for this sequence in Gauss.
- LOfloat
The central frequency of this sequence. I.e. The frequnecy at which a zero offset pulse is at.
- reptimefloat
The shot repetition time in us.
- averagesint
The number of scans to be accumulated.
- shotsitn
The number of shots per point.
- property seqtable_steps¶
- pulses = '[]'¶
- num_pulses¶
- axes_uuid = '[]'¶
- reduce_uuid = '[]'¶
- LO¶
- averages¶
- shots¶
- name¶
- progTable¶
- addPulse(pulse)[source]¶
Adds a pulse to the next position in the sequence.
- Parameters:
- pulsePulse
The object describing the pulse.
- convert(*, reduce=True)[source]¶
Converts the current sequence to either pulse focused or delay focused depending on the current state
- Parameters:
- reducebool, optional
Reduce to the smallest number of objects, by default True
- class autodeer.CarrPurcellAnalysis(dataset, sequence=None)[source]¶
Analysis and calculation of Carr Purcell decay.
- Parameters:
- dataset
_description_
- Parameters:
sequence (autodeer.sequences.Sequence)
- data¶
- dataset¶
- fit(type='mono')[source]¶
Fit the experimental CP decay
- Parameters:
- typestr, optional
Either a mono or double exponential decay model, by default “mono”
- Parameters:
type (str)
- plot(norm=True, axs=None, fig=None)[source]¶
Plot the carr purcell decay with fit, if avaliable.
- Parameters:
- normbool, optional
Normalise the fit to a maximum of 1, by default True
- Returns:
- Figure
The figure.
- Parameters:
norm (bool)
- Return type:
matplotlib.figure.Figure
- check_decay(level=0.05)[source]¶
Checks that the data has decayed by over 5% in the entire length and less than 5% in the first 30% of the data.
- Parameters:
- levelfloat, optional
The level to check the decay, by default 0.05
- Returns:
- int
0 if both conditions are met, 1 if the decay is less than 5% in the first 30% of the data, and -1 if the decay is less than 5% in the entire length.
- find_optimal(SNR_target, target_time, target_step, averages=None)[source]¶
Calculate the optimal inter pulse delay for a given total measurment time.
- Parameters:
- SNR_target: float,
The Signal to Noise ratio target.
- target_timefloat
The target time in hours
- target_shrtfloat
The shot repettition time of target in seconds
- target_step: float
The target step size in ns.
- averagesint, optional
The total number of shots taken, by default None. If None, the number of shots will be calculated from the dataset.
- Returns:
- float
The calculated optimal time in us
- Parameters:
target_time (float)
- Return type:
float
- class autodeer.ReptimeAnalysis(dataset, sequence=None)[source]¶
Analysis and calculation of Reptime based saturation recovery.
- Parameters:
- dataset
The dataset to be analyzed.
- sequenceSequence, optional
The sequence object describing the experiment. (not currently used)
- Parameters:
sequence (autodeer.sequences.Sequence)
- axis¶
- seq¶
- autodeer.detect_ESEEM(dataset, type='deuteron', threshold=1.5)[source]¶
Detect if the dataset is an ESEEM experiment.
- Parameters:
- datasetxr.DataArray
The dataset to be analyzed.
- typestr, optional
The type of ESEEM experiment, either deuteron or proton, by default ‘deuteron’
- thresholdfloat, optional
The SNR threshold for detection, by default 1.5
- Returns:
- bool
True if ESEEM is detected, False if not.
- autodeer.plot_1Drelax(*args, fig=None, axs=None, cmap=cmap)[source]¶
Create a superimposed plot of relaxation data and fits.
- Parameters:
- argsad.Analysis
The 1D relaxation data to be plotted.
- figFigure, optional
The figure to plot to, by default None
- axsAxes, optional
The axes to plot to, by default None
- cmaplist, optional
The color map to use, by default ad.cmap
- class autodeer.RefocusedEcho2DAnalysis(dataset, sequence=None)[source]¶
Analysis and calculation of Refocused Echo 2D data.
- Parameters:
- dataset
The dataset to be analyzed.
- sequenceSequence, optional
The sequence object describing the experiment. (not currently used)
- Parameters:
sequence (autodeer.sequences.Sequence)
- axis = '[]'¶
- data¶
- dataset¶
- _smooth(elements=3)[source]¶
Used SVD to smooth the 2D data.
- Parameters:
- elementsint, optional
The number of elements to use in the smoothing, by default 3
- Returns:
- np.ndarray
The smoothed data.
- plot2D(contour=True, smooth=False, norm='Normal', axs=None, fig=None)[source]¶
Create a 2D plot of the 2D relaxation data.
- Parameters:
- contourbool, optional
Plot the contour of the data, by default True
- normstr, optional
Normalise the data, by default ‘Normal’. Options are ‘Normal’ and ‘tau2’. With ‘tau2’ normalisation, the data is normalised to the maximum of each row.
- axsAxes, optional
The axes to plot to, by default None
- figFigure, optional
The figure to plot to, by default None
- plot1D(axs=None, fig=None)[source]¶
Create a 1D plot of the 2D relaxation data.
- Parameters:
- axsAxes, optional
The axes to plot to, by default None
- figFigure, optional
The figure to plot to, by default None
- find_optimal(type, SNR_target, target_time, target_step, averages=None)[source]¶
Calculate the optimal inter pulse delay for a given total measurment time, using either 4pulse or 5pulse data.
- Parameters:
- typestr
The type of data to use, either ‘4pDEER’ or ‘5pDEER’
- SNR_targetfloat
The Signal to Noise ratio target.
- target_timefloat
The target time in hours
- target_step: float
The target step size in ns.
- averagesint, optional
The total number of shots taken, by default None. If None, the number of shots will be calculated from the dataset.
- Returns:
- tau1: float
The calculated optimal tau1 in us
- tau2: float
The calculated optimal tau2 in us
- Parameters:
type (str)
target_time (float)
- Return type:
float
- class autodeer.Parameter(name, value, unit='', description='', virtual=False, **kwargs)[source]¶
Represents a sequence or pulse parameter.
A general parameter.
- Parameters:
- namestr
The parameter name
- valuefloat or int
The parameter value, eithe initial or static
- unitstr, optional
The unit of parameter, by default None. Leave as None if unitless.
- descriptionstr, optional
A brief description of the parameter, by default None
- axisnp.ndarray, optional
The difference from the intial value for each position in a dynamic axis. Can be n-dimensional, by default None.
- ax_idlist, optional
- virtual: bool, optional
A virtual paramter is only used to vary other parameters, it is not varied itself and will not be directly passed to a spectrometer. This parameter is never inherited. By default, False
- Attributes:
- progressivebool
Is the parameter used in any progression or is it constant
- progdict
A dict containing progressive programs for this parameter. This list has two elements. 1) The axis_id”s and 2) the “axis” of values.
Examples
Creating a static parameter ``` Par1 = Parameter(
name=”Par1”, value=10, unit=”us”, description=”The first parameter”)
` Creating a dynamic parameter `
Par1 = Parameter(name=”Par1”, value=10, unit=”us”, description=”The first parameter”, axis=np.arange(0,10,1), axis_id=0)
Adding a parameter and a number: ``` Par1 = Parameter(
name=”Par1”, value=10, unit=”us”, description=”The first parameter”)
Par2 = Par1 + 2
- property dim¶
- name¶
- unit¶
- description¶
- virtual¶
- axis = '[]'¶
- ax_id = '[]'¶
- class autodeer.Interface(log=None)[source]¶
Represents the interface connection from autoEPR to the spectrometer.
- pulses¶
- savefolder¶
- savename = "''"¶
- resonator = 'None'¶
- launch(sequence, savename)[source]¶
Launches the experiment and initialises autosaving.
- Parameters:
- sequenceSequence
The sequence to be launched
- savenamestr
The savename for this measurement. A timestamp will be added to the value.
- Parameters:
savename (str)
- terminate_at(criterion, test_interval=2, keep_running=True, verbosity=0, autosave=True)[source]¶
Terminates the experiment upon a specific condition being satisified.
- Parameters:
- criterion_type_
The criteria to be tested.
- test_intervalint, optional
How often should the criteria be tested in minutes, by default 10.
- keep_runningbool, optional
If True, an error will not be raised if the experiment finishes before the criteria is met, by default True.
- verbosityint, optional
The verbosity level, by default 0.
- autosavebool, optional
If True, the data will be autosaved, by default True.
- class autodeer.Parameter(name, value, unit='', description='', virtual=False, **kwargs)[source]¶
Represents a sequence or pulse parameter.
A general parameter.
- Parameters:
- namestr
The parameter name
- valuefloat or int
The parameter value, eithe initial or static
- unitstr, optional
The unit of parameter, by default None. Leave as None if unitless.
- descriptionstr, optional
A brief description of the parameter, by default None
- axisnp.ndarray, optional
The difference from the intial value for each position in a dynamic axis. Can be n-dimensional, by default None.
- ax_idlist, optional
- virtual: bool, optional
A virtual paramter is only used to vary other parameters, it is not varied itself and will not be directly passed to a spectrometer. This parameter is never inherited. By default, False
- Attributes:
- progressivebool
Is the parameter used in any progression or is it constant
- progdict
A dict containing progressive programs for this parameter. This list has two elements. 1) The axis_id”s and 2) the “axis” of values.
Examples
Creating a static parameter ``` Par1 = Parameter(
name=”Par1”, value=10, unit=”us”, description=”The first parameter”)
` Creating a dynamic parameter `
Par1 = Parameter(name=”Par1”, value=10, unit=”us”, description=”The first parameter”, axis=np.arange(0,10,1), axis_id=0)
Adding a parameter and a number: ``` Par1 = Parameter(
name=”Par1”, value=10, unit=”us”, description=”The first parameter”)
Par2 = Par1 + 2
- property dim¶
- name¶
- unit¶
- description¶
- virtual¶
- axis = '[]'¶
- ax_id = '[]'¶
- class autodeer.Pulse(*, tp, t=None, scale=None, flipangle=None, pcyc=[0], name=None, **kwargs)[source]¶
Represents a general experimental pulse.
The class for a general pulse.
- Parameters:
- tpfloat
The pulse length in ns.
- scalefloat
The arbitary experimental pulse amplitude, 0-1.
- tfloat, optional
The pulse start time in ns.
- property bandwidth¶
- property amp_factor¶
The B1 amplitude factor (nutation frequency) for the pulse in GHz
- name¶
- Progression = 'False'¶
- _addPhaseCycle(phases, detections=None)[source]¶
Adds a phase cycle to the pulse sequence.
- Args:
phases (list): List of phases to add to the phase cycle. detections (list, optional): List of detection signs. Defaults to None. If None then all cycles are summed.
- Returns:
None
- _buildFMAM(func, ax=None)[source]¶
Builds the amplitude modulation (AM) and frequency modulation (FM) of a given function.
- Args:
func: A function that takes in an array of values and returns two arrays, representing the AM and FM of the function.
- Returns:
Two arrays representing the AM and FM of the function.
- build_table()[source]¶
Builds a table of variables, axes, and UUIDs for all non-static Parameters in the object.
- Returns:
dict: A dictionary containing the following keys: “Variable”, “axis”, and “uuid”. The values for each key are lists of the corresponding values for each non-static Parameter.
- is_static()[source]¶
Check if all parameters in the pulse object are static.
- Returns:
bool: True if all parameters are static, False otherwise.
- isDelayFocused()[source]¶
Does the pulse contain a specified time, t?
If so then it is not delay focused.
- isPulseFocused()[source]¶
Does the pulse contain a specified time, t?
If so then it is delay focused.
- plot(pad=1000)[source]¶
Plots the time domain representation of this pulse.
- Parameters:
- padint, optional
The number of zeros to pad the data with, by default 1000
- exciteprofile(freqs=None, resonator=None)[source]¶
Excitation profile
Generates the exciatation profiles for this pulse.
This function is ported from EasySpin (https://easyspin.org/easyspin/documentation/sop.html) [1-2], and based upon the method from Gunnar Jeschke, Stefan Pribitzer and Andrin Doll[3].
References:¶
[1] Stefan Stoll, Arthur Schweiger EasySpin, a comprehensive software package for spectral simulation and analysis in EPR J. Magn. Reson. 178(1), 42-55 (2006)
[2] Stefan Stoll, R. David Britt General and efficient simulation of pulse EPR spectra Phys. Chem. Chem. Phys. 11, 6614-6625 (2009)
[3] Jeschke, G., Pribitzer, S. & DollA. Coherence Transfer by Passage Pulses in Electron Paramagnetic Resonance Spectroscopy. J. Phys. Chem. B 119, 13570-13582 (2015)
- Parameters:
- freqs: np.ndarray, optional
The frequency axis. Caution: A larger number of points will linearly increase computation time.
- resonator: ad.ResonatorProfile, optional
- Returns:
- Mx: np.ndarray
The magentisation in the X direction.
- My: np.ndarray
The magentisation in the Y direction.
- Mz: np.ndarray
The magentisation in the Z direction.
- copy(clear=False, **kwargs)[source]¶
Creates a deep-copy of the pulse. I.e. Every parameter object is re-created at another memory space.
Parameter can be chaged at this stage by adding them as keyword- arguments (kwargs).
- Returns:
- Pulse
A deep copy of the pulse
- class autodeer.Detection(*, tp, t=None, freq=0, **kwargs)[source]¶
Bases:
Pulse
Represents a detection pulse.
A general detection pulse.
- Parameters:
- tpfloat
The total time of the detection event. The detection event will be symetrical about the centre time.
- tfloat, optional
The centre time of the detection event
- freq: float, optional
The detection frequency, not all spectrometer support this functionality, by default 0 MHz
- scale = 'None'¶
- freq¶
- pcyc = 'None'¶
- class autodeer.Delay(*, tp, t=None)[source]¶
Bases:
Pulse
DEPRECATION WARNING: THIS WILL BE REMOVED SOON.
Represents a inter-pulse delay pulse.
The class for a general pulse.
- Parameters:
- tpfloat
The pulse length in ns.
- scalefloat
The arbitary experimental pulse amplitude, 0-1.
- tfloat, optional
The pulse start time in ns.
- tp¶
- pcyc = 'None'¶
- scale = 'None'¶
- class autodeer.RectPulse(tp=16, freq=0, t=None, flipangle=None, **kwargs)[source]¶
Bases:
Pulse
Represents a rectangular monochromatic pulse.
- Parameters:
- tpflaot, optional
Pulse Length in ns, by default 16
- freqfloat,optional
Frequency in MHz, by default 0
- tfloat, optional
Time position in ns, by default None
- flipangle_type_, optional
The flip angle in radians, by default None
- freq¶
- class autodeer.Sequence(*, name, B, LO, reptime, averages, shots, **kwargs)[source]¶
Represents an experimental pulse sequence.
Represents an experimental pulse sequence.
- Parameters:
- namestr
The name of this pulse sequence
- Bfloat
The magnetic field for this sequence in Gauss.
- LOfloat
The central frequency of this sequence. I.e. The frequnecy at which a zero offset pulse is at.
- reptimefloat
The shot repetition time in us.
- averagesint
The number of scans to be accumulated.
- shotsitn
The number of shots per point.
- property seqtable_steps¶
- pulses = '[]'¶
- num_pulses¶
- axes_uuid = '[]'¶
- reduce_uuid = '[]'¶
- LO¶
- averages¶
- shots¶
- name¶
- progTable¶
- addPulse(pulse)[source]¶
Adds a pulse to the next position in the sequence.
- Parameters:
- pulsePulse
The object describing the pulse.
- convert(*, reduce=True)[source]¶
Converts the current sequence to either pulse focused or delay focused depending on the current state
- Parameters:
- reducebool, optional
Reduce to the smallest number of objects, by default True
- class autodeer.DEERSequence(*, tau1, tau2, tau3=None, tau4=None, dt, B, LO, reptime, averages, shots, ESEEM_avg=None, **kwargs)[source]¶
Bases:
Sequence
Represents a DEER/PELDOR sequence.
Build a DEER sequence using rectangular pulses
- Parameters:
- tau1int or float
The first interpulse delay in us
- tau2int or float
The second interpulse delay in us
- dtint or float
The time step for DEER measurment in ns
- Bint or float
The B0 field, in Guass
- LOint or float
The LO frequency in GHz
- reptime_type_
The shot repetition time in us
- averagesint
The number of scans.
- shotsint
The number of shots per point
- tau3int or float, optional
The delay between the first static pump pulse in 5-pulse DEER and the 1st refocusing pulse in us, by default None. If the value is None then a 4-pulse sequence is created, otherwise a 5-pulse.
- ESEEM_avg: str
Selecting the ESEEM averaging required. ESEEM averaging works by introducing small stepping in the first tau delay and averaging across them all. Options: * proton - 8 small steps of 8ns * deuteron - 8 small steps of 16ns * None - default
- tau1us¶
- tau1¶
- tau2¶
- dt¶
- deadtime = '200'¶
- ESEEM = 'False'¶
- three_pulse(tp=16)[source]¶
Build a four pulse DEER sequence.
- Parameters:
- tpfloat
Length of default RectPulse in ns, by default 16ns.
- four_pulse(tp=16, relaxation=False)[source]¶
Build a four pulse DEER sequence.
- Parameters:
- tpfloat
Length of default RectPulse in ns, by default 16ns.
- five_pulse(tp=16, relaxation=False, re_step=50, re_dim=100)[source]¶
Build a five pulse DEER sequence.
- Parameters:
- tpfloat
Length of default RectPulse in ns, by default 16ns.
- seven_pulse(tp=16, relaxation=False)[source]¶
Build a seven pulse DEER sequence.
- Parameters:
- tpfloat
Length of default RectPulse in ns, by default 16ns.
- nDEER_CP(n, tp=16, relaxation=False, pcyc='Normal')[source]¶
Generate an nDEER sequence.
The sum of tau1 and tau2 is used as total trace length.
- Parameters:
- nint
The number of refocusing pulses
- tpint, optional
_description_, by default 16
- relaxationbool, optional
_description_, by default False
- pcyc: str, optional
Normal: Phases cycles pump and observer pulses, no DC cycle NormalDC: Phases cycles pump and observer pulses, DC cycle Obs: Phases cycles observer pulses, no DC cycle ObsDC: Phases cycles and observer pulses, DC cycle
- Parameters:
n (int)
- select_pcyc(option)[source]¶
Choose which DEER phase you would like.
Phase cycle
Short Code
Sequence
Steps
Pulse Phase Cycle
Remaining Echoes
Ref.
(x)x|xp|x
DC
ALL
2
[+(+x)-(-x)]
PE12rp, SE(PE12)p3, PE12rpr3
(x)[xp]x
8step_3p
3 pulse
8
[+(+x)-(-x)]
x[x][xp]x
16step_4p
4 pulse
16
[+(+x)-(+y)+(-x)-(-y)]
[+(+x)+(+y)+(-x)+(-y)]
[1]
x|xp|[x][xp]x
16step_5p
5 pulse
16
PEp02r3,b PE1p0r2r3b
[1]
x[x]|xp|(x)(xp)(xp)x
32step_7p
7 pulse
32
[1]
- Parameters:
- optionstr
The short code of the phase cycle. See table above.
- Parameters:
option (str)
- class autodeer.HahnEchoSequence(*, B, LO, reptime, averages, shots, **kwargs)[source]¶
Bases:
Sequence
Represents a Hahn-Echo sequence.
Build a Hahn-Echo sequence using either rectangular pulses or specified pulses. By default no progression is added to this sequence.
- Parameters:
- Bint or float
The B0 field, in Guass
- LOint or float
The LO frequency in GHz
- reptime_type_
The shot repetition time in us
- averagesint
The number of scans.
- shotsint
The number of shots per point
- class autodeer.T2RelaxationSequence(*, B, LO, reptime, averages, shots, step=40, dim=200, **kwargs)[source]¶
Bases:
HahnEchoSequence
Represents a T2 relaxation sequence. A Hahn Echo where the interpulse delay increases
Build a Hahn-Echo sequence using either rectangular pulses or specified pulses. By default no progression is added to this sequence.
- Parameters:
- Bint or float
The B0 field, in Guass
- LOint or float
The LO frequency in GHz
- reptime_type_
The shot repetition time in us
- averagesint
The number of scans.
- shotsint
The number of shots per point
- tau¶
- name = "'T2RelaxationSequence'"¶
- class autodeer.FieldSweepSequence(*, B, LO, Bwidth, reptime, averages, shots, **kwargs)[source]¶
Bases:
HahnEchoSequence
Represents a Field Sweep (EDFS) sequence.
Build a Field Sweep (EDFS) sequence using either rectangular pulses or specified pulses.
- Parameters:
- Bint or float
The B0 field, in Guass
- Bwidth: int or float
The width of the field sweep, in Gauss
- LOint or float
The LO frequency in GHz
- reptime_type_
The shot repetition time in us
- averagesint
The number of scans.
- shotsint
The number of shots per point
- name = "'FieldSweepSequence'"¶
- B¶
- class autodeer.ReptimeScan(*, B, LO, reptime, reptime_max, averages, shots, **kwargs)[source]¶
Bases:
HahnEchoSequence
Represents a reptime scan of a Hahn Echo Sequence.
A Hahn echo sequence is perfomed with the shot repetition time increasing.1
- Parameters:
- Bint or float
The B0 field, in Guass
- LOint or float
The LO frequency in GHz
- reptime: float
The default reptime, this is used for tuning pulses etc…
- reptime_maxnp.ndarray
The maximum shot repetition time in us
- averagesint
The number of scans.
- shotsint
The number of shots per point
- name = "'ReptimeScan'"¶
- class autodeer.CarrPurcellSequence(*, B, LO, reptime, averages, shots, tau, n, dim=100, **kwargs)[source]¶
Bases:
Sequence
Represents a Carr-Purcell sequence.
Build a Carr-Purcell dynamical decoupling sequence using either rectangular pulses or specified pulses.
- Parameters:
- Bint or float
The B0 field, in Guass
- LOint or float
The LO frequency in GHz
- reptime_type_
The shot repetition time in us
- averagesint
The number of scans.
- shotsint
The number of shots per point
- tauint
The maximum total sequence length in us
- nint
The number refocusing pulses
- dimint
The number of points in the X axis
- tau¶
- n¶
- dim¶
- class autodeer.RefocusedEcho2DSequence(*, B, LO, reptime, averages, shots, tau, dim=100, **kwargs)[source]¶
Bases:
Sequence
Represents a 2D Refocused-echo Sequence.
Build a 2D Refocused-echo sequence using either rectangular pulses or specified pulses.
- Parameters:
- Bint or float
The B0 field, in Guass
- LOint or float
The LO frequency in GHz
- reptime_type_
The shot repetition time in us
- averagesint
The number of scans.
- shotsint
The number of shots per point
- tauint
The maximum total sequence length in us
- dim: int
The number of points in both the X and Y axis
- tau1¶
- tau2¶
- class autodeer.ResonatorProfileSequence(*, B, LO, reptime, averages, shots, fwidth=0.3, **kwargs)[source]¶
Bases:
Sequence
Builds nutation based Resonator Profile sequence.
Build a resonator profile nutation sequence using either rectangular pulses or specified pulses.
- Parameters:
- Bint or float
The B0 field, in Guass
- Bwidth: int or float
The width of the field sweep, in Gauss
- LOint or float
The LO frequency in GHz
- reptime_type_
The shot repetition time in us
- averagesint
The number of scans.
- shotsint
The number of shots per point
- fwidth: float
The frequency width of the resonator profile in GHz, by default 0.3GHz
- tau1: float
The delay between the nutating pulse and the Hahn Echo, by default 2000 ns
- tau2: float
The interpulse delay in the Hahn Echo, by default 500 ns
- gyro¶
- fwidth¶
- class autodeer.TWTProfileSequence(*, B, LO, reptime, averages=1, shots=100, **kwargs)[source]¶
Bases:
Sequence
Builds TWT based Resonator Profile sequence.
Represents an experimental pulse sequence.
- Parameters:
- namestr
The name of this pulse sequence
- Bfloat
The magnetic field for this sequence in Gauss.
- LOfloat
The central frequency of this sequence. I.e. The frequnecy at which a zero offset pulse is at.
- reptimefloat
The shot repetition time in us.
- averagesint
The number of scans to be accumulated.
- shotsitn
The number of shots per point.
- class autodeer.Parameter(name, value, unit='', description='', virtual=False, **kwargs)[source]¶
Represents a sequence or pulse parameter.
A general parameter.
- Parameters:
- namestr
The parameter name
- valuefloat or int
The parameter value, eithe initial or static
- unitstr, optional
The unit of parameter, by default None. Leave as None if unitless.
- descriptionstr, optional
A brief description of the parameter, by default None
- axisnp.ndarray, optional
The difference from the intial value for each position in a dynamic axis. Can be n-dimensional, by default None.
- ax_idlist, optional
- virtual: bool, optional
A virtual paramter is only used to vary other parameters, it is not varied itself and will not be directly passed to a spectrometer. This parameter is never inherited. By default, False
- Attributes:
- progressivebool
Is the parameter used in any progression or is it constant
- progdict
A dict containing progressive programs for this parameter. This list has two elements. 1) The axis_id”s and 2) the “axis” of values.
Examples
Creating a static parameter ``` Par1 = Parameter(
name=”Par1”, value=10, unit=”us”, description=”The first parameter”)
` Creating a dynamic parameter `
Par1 = Parameter(name=”Par1”, value=10, unit=”us”, description=”The first parameter”, axis=np.arange(0,10,1), axis_id=0)
Adding a parameter and a number: ``` Par1 = Parameter(
name=”Par1”, value=10, unit=”us”, description=”The first parameter”)
Par2 = Par1 + 2
- property dim¶
- name¶
- unit¶
- description¶
- virtual¶
- axis = '[]'¶
- ax_id = '[]'¶
- autodeer.sop(spins, comps)[source]¶
Spin Operator Matricies.
This function is ported from EasySpin (https://easyspin.org/easyspin/documentation/sop.html)
References:¶
[1] Stefan Stoll, Arthur Schweiger EasySpin, a comprehensive software package for spectral simulation and analysis in EPR J. Magn. Reson. 178(1), 42-55 (2006)
[2] Stefan Stoll, R. David Britt General and efficient simulation of pulse EPR spectra Phys. Chem. Chem. Phys. 11, 6614-6625 (2009)
- Parameters:
- spinslist
A list of each spin and its spin qunatum number
- compsstr
The type of spin operator matrix to create. Options are: x,y,z,+,-,e
- class autodeer.Pulse(*, tp, t=None, scale=None, flipangle=None, pcyc=[0], name=None, **kwargs)[source]¶
Represents a general experimental pulse.
The class for a general pulse.
- Parameters:
- tpfloat
The pulse length in ns.
- scalefloat
The arbitary experimental pulse amplitude, 0-1.
- tfloat, optional
The pulse start time in ns.
- property bandwidth¶
- property amp_factor¶
The B1 amplitude factor (nutation frequency) for the pulse in GHz
- name¶
- Progression = 'False'¶
- _addPhaseCycle(phases, detections=None)[source]¶
Adds a phase cycle to the pulse sequence.
- Args:
phases (list): List of phases to add to the phase cycle. detections (list, optional): List of detection signs. Defaults to None. If None then all cycles are summed.
- Returns:
None
- _buildFMAM(func, ax=None)[source]¶
Builds the amplitude modulation (AM) and frequency modulation (FM) of a given function.
- Args:
func: A function that takes in an array of values and returns two arrays, representing the AM and FM of the function.
- Returns:
Two arrays representing the AM and FM of the function.
- build_table()[source]¶
Builds a table of variables, axes, and UUIDs for all non-static Parameters in the object.
- Returns:
dict: A dictionary containing the following keys: “Variable”, “axis”, and “uuid”. The values for each key are lists of the corresponding values for each non-static Parameter.
- is_static()[source]¶
Check if all parameters in the pulse object are static.
- Returns:
bool: True if all parameters are static, False otherwise.
- isDelayFocused()[source]¶
Does the pulse contain a specified time, t?
If so then it is not delay focused.
- isPulseFocused()[source]¶
Does the pulse contain a specified time, t?
If so then it is delay focused.
- plot(pad=1000)[source]¶
Plots the time domain representation of this pulse.
- Parameters:
- padint, optional
The number of zeros to pad the data with, by default 1000
- exciteprofile(freqs=None, resonator=None)[source]¶
Excitation profile
Generates the exciatation profiles for this pulse.
This function is ported from EasySpin (https://easyspin.org/easyspin/documentation/sop.html) [1-2], and based upon the method from Gunnar Jeschke, Stefan Pribitzer and Andrin Doll[3].
References:¶
[1] Stefan Stoll, Arthur Schweiger EasySpin, a comprehensive software package for spectral simulation and analysis in EPR J. Magn. Reson. 178(1), 42-55 (2006)
[2] Stefan Stoll, R. David Britt General and efficient simulation of pulse EPR spectra Phys. Chem. Chem. Phys. 11, 6614-6625 (2009)
[3] Jeschke, G., Pribitzer, S. & DollA. Coherence Transfer by Passage Pulses in Electron Paramagnetic Resonance Spectroscopy. J. Phys. Chem. B 119, 13570-13582 (2015)
- Parameters:
- freqs: np.ndarray, optional
The frequency axis. Caution: A larger number of points will linearly increase computation time.
- resonator: ad.ResonatorProfile, optional
- Returns:
- Mx: np.ndarray
The magentisation in the X direction.
- My: np.ndarray
The magentisation in the Y direction.
- Mz: np.ndarray
The magentisation in the Z direction.
- copy(clear=False, **kwargs)[source]¶
Creates a deep-copy of the pulse. I.e. Every parameter object is re-created at another memory space.
Parameter can be chaged at this stage by adding them as keyword- arguments (kwargs).
- Returns:
- Pulse
A deep copy of the pulse
- class autodeer.Detection(*, tp, t=None, freq=0, **kwargs)[source]¶
Bases:
Pulse
Represents a detection pulse.
A general detection pulse.
- Parameters:
- tpfloat
The total time of the detection event. The detection event will be symetrical about the centre time.
- tfloat, optional
The centre time of the detection event
- freq: float, optional
The detection frequency, not all spectrometer support this functionality, by default 0 MHz
- scale = 'None'¶
- freq¶
- pcyc = 'None'¶
- class autodeer.Delay(*, tp, t=None)[source]¶
Bases:
Pulse
DEPRECATION WARNING: THIS WILL BE REMOVED SOON.
Represents a inter-pulse delay pulse.
The class for a general pulse.
- Parameters:
- tpfloat
The pulse length in ns.
- scalefloat
The arbitary experimental pulse amplitude, 0-1.
- tfloat, optional
The pulse start time in ns.
- tp¶
- pcyc = 'None'¶
- scale = 'None'¶
- class autodeer.RectPulse(tp=16, freq=0, t=None, flipangle=None, **kwargs)[source]¶
Bases:
Pulse
Represents a rectangular monochromatic pulse.
- Parameters:
- tpflaot, optional
Pulse Length in ns, by default 16
- freqfloat,optional
Frequency in MHz, by default 0
- tfloat, optional
Time position in ns, by default None
- flipangle_type_, optional
The flip angle in radians, by default None
- freq¶
- class autodeer.GaussianPulse(*, tp=32, FWHM=16, freq=0, **kwargs)[source]¶
Bases:
Pulse
Represents a Gaussian monochromatic pulse.
Represents a Gaussian monochromatic pulse.
- Parameters:
- tpfloat
Pulse length in ns, by default 128
- FWHMfloat,
The full width at half maximum of the pulse
- freqfloat, optional
The frequency of the pulse, by default 0
- freq¶
- FWHM¶
- class autodeer.FrequencySweptPulse(*, tp, t=None, scale=None, flipangle=None, pcyc=[0], name=None, **kwargs)[source]¶
Bases:
Pulse
A general parent class for Frequency Swept Pulses.
The class for a general pulse.
- Parameters:
- tpfloat
The pulse length in ns.
- scalefloat
The arbitary experimental pulse amplitude, 0-1.
- tfloat, optional
The pulse start time in ns.
- property Qcrit¶
The critical Q factor for the pulse.
- abstract property sweeprate¶
The sweep rate of the pulse in GHz/ns
- property amp_factor¶
The B1 amplitude factor (nutation frequency) for the pulse in GHz
- class autodeer.HSPulse(*, tp=128, order1=1, order2=6, beta=20, **kwargs)[source]¶
Bases:
FrequencySweptPulse
Represents a hyperboilc secant frequency-swept pulse.
The class for a general pulse.
- Parameters:
- tpfloat
The pulse length in ns.
- scalefloat
The arbitary experimental pulse amplitude, 0-1.
- tfloat, optional
The pulse start time in ns.
- property sweeprate¶
The sweep rate of the pulse in GHz/ns
- order1¶
- order2¶
- beta¶
- class autodeer.ChirpPulse(*, tp=128, **kwargs)[source]¶
Bases:
FrequencySweptPulse
Represents a linear frequency-swept pulse.
The class for a general pulse.
- Parameters:
- tpfloat
The pulse length in ns.
- scalefloat
The arbitary experimental pulse amplitude, 0-1.
- tfloat, optional
The pulse start time in ns.
- property sweeprate¶
The sweep rate of the pulse in GHz/ns
- class autodeer.SincPulse(*, tp=128, freq=0, order=6, window=None, **kwargs)[source]¶
Bases:
Pulse
Represents a general experimental pulse.
Represents a sinc shaped monochromatic pulse.
- Parameters:
- tpint
Pulse length in ns, by default 128
- freqint, optional
The frequency of the pulse, by default 0
- orderint, optional
The order of this sinc function, by default 6
- window_type_, optional
The window function, by default None
- freq¶
- order¶
- window¶
- autodeer.DEERanalysis(dataset, compactness=True, model=None, ROI=False, exp_type='5pDEER', verbosity=0, remove_crossing=True, **kwargs)[source]¶
- class autodeer.Criteria(name, test, description='', end_signal=None)[source]¶
A class for defining criteria for terminating experiments. This should only be subclassed and not used directly.
- Parameters:
name (str)
description (str)
- name¶
- description¶
- test¶
- end_signal¶
- class autodeer.TimeCriteria(name, end_time, description='', night_hours=None, **kwargs)[source]¶
Bases:
Criteria
A class for defining criteria for terminating experiments. This should only be subclassed and not used directly.
Criteria testing for a specific finishing time. The finishing time is given as absolute time in the locale of the computer, it is not how the long the measurment continues for.
- Parameters:
- namestr
Name of the criteria
- end_timefloat
Finishing time in seconds since epoch
- descriptionstr, optional
A description of the criteria, by default None
- night_hourstuple, optional
A tuple of two integers specifying the start and end of night hours. The criteria will always return False during these hours, by default None
- Parameters:
name (str)
end_time (float)
description (str)
night_hours (tuple)
- class autodeer.SNRCriteria(SNR_target, description='', verbosity=0, **kwargs)[source]¶
Bases:
Criteria
A class for defining criteria for terminating experiments. This should only be subclassed and not used directly.
Criteria testing for signal to noise ratio. This checks the SNR of the normalised absolute data using the deerlab SNR noise estimation which is based on the work by Stoher et. al. [1]
- Parameters:
- namestr
_description_
- SNR_targetint
The mimimum SNR value.
- descriptionstr, optional
_description_, by default None
- Parameters:
SNR_target (int)
description (str)
References
[1] F. Stoehr, R. White, M. Smith, I. Kamp, R. Thompson, D. Durand, W. Freudling, D. Fraquelli, J. Haase, R. Hook, T. Kimball, M. Kummel, K. Levay, M. Lombardi, A. Micol, T. Rogers DERSNR: A Simple & General Spectroscopic Signal-to-Noise Measurement Algorithm Astronomical Data Analysis Software and Systems XVII, ASP Conference Series, Vol. 30, 2008, p5.4
- class autodeer.DEERCriteria(mode='Speed', model=None, verbosity=0, update_func=None, **kwargs)[source]¶
Bases:
Criteria
A class for defining criteria for terminating experiments. This should only be subclassed and not used directly.
Criteria for running DEER experiments.
- Parameters:
- tau1_type_
_description_
- tau2_type_
_description_
- tau3_type_, optional
_description_, by default None
- modestr, optional
_description_, by default “Speed”
- Returns:
- _type_
_description_
- autodeer.combo_figure(EDFS, respro, pulses, relaxation, init_deer, long_deer, title=None)[source]¶
- Creates a 2x2 summary figure.
The top left plot is the EDFS and resonator profile, overlapped with the optimised pulses.
The top right plot is the relaxation data and fits.
The bottom left plot is the initial DEER data and fits.
The bottom right plot is the final DEER data and fits.
- Parameters:
- EDFS: ad.FieldSweepAnalysis
The Echo-Detected Field Sweep analysis.
- respro: ad.ResonatorProfileAnalysis
The resonator profile analysis
- pulses: dict
A dictionary containing the optimised pulses.
- relaxation: list
A list containing the relaxation data and fits.
- init_deer: deerlab.FitResult
The initial DEER data and fits.
- long_deer: deerlab.FitResult
The final DEER data and fits.
- title: str, optional
The title of the figure, by default None
- Parameters:
pulses (dict)
relaxation (list)