pub struct TimsTofSyntheticsFrameBuilderDIA {
pub path: String,
pub precursor_frame_builder: TimsTofSyntheticsPrecursorFrameBuilder,
pub transmission_settings: TimsTransmissionDIA,
pub fragmentation_settings: TimsTofCollisionEnergyDIA,
pub fragment_ions: Option<BTreeMap<(u32, i8, i32), (PeptideProductIonSeriesCollection, Vec<MzSpectrum>)>>,
pub fragment_ions_annotated: Option<BTreeMap<(u32, i8, i32), (PeptideProductIonSeriesCollection, Vec<MzSpectrumAnnotated>)>>,
pub isotope_config: IsotopeTransmissionConfig,
pub fragment_ions_with_transmission: Option<BTreeMap<(u32, i8, i32), FragmentIonsWithComplementary>>,
pub capabilities: InstrumentCapabilities,
}Fields§
§path: String§precursor_frame_builder: TimsTofSyntheticsPrecursorFrameBuilder§transmission_settings: TimsTransmissionDIA§fragmentation_settings: TimsTofCollisionEnergyDIA§fragment_ions: Option<BTreeMap<(u32, i8, i32), (PeptideProductIonSeriesCollection, Vec<MzSpectrum>)>>§fragment_ions_annotated: Option<BTreeMap<(u32, i8, i32), (PeptideProductIonSeriesCollection, Vec<MzSpectrumAnnotated>)>>§isotope_config: IsotopeTransmissionConfigConfiguration for quad-selection dependent isotope transmission (already gated by the instrument capabilities at construction — P5e).
fragment_ions_with_transmission: Option<BTreeMap<(u32, i8, i32), FragmentIonsWithComplementary>>Fragment ions with complementary data for transmission-dependent calculations
capabilities: InstrumentCapabilitiesPhysical instrument capabilities (P5e). Default = Bruker timsTOF.
Implementations§
Source§impl TimsTofSyntheticsFrameBuilderDIA
impl TimsTofSyntheticsFrameBuilderDIA
pub fn new( path: &Path, with_annotations: bool, num_threads: usize, ) -> Result<Self>
pub fn new_with_config( path: &Path, with_annotations: bool, num_threads: usize, isotope_config: IsotopeTransmissionConfig, ) -> Result<Self>
Sourcepub fn new_with_config_and_source(
path: &Path,
with_annotations: bool,
num_threads: usize,
isotope_config: IsotopeTransmissionConfig,
source: &DistributionSource,
) -> Result<Self>
pub fn new_with_config_and_source( path: &Path, with_annotations: bool, num_threads: usize, isotope_config: IsotopeTransmissionConfig, source: &DistributionSource, ) -> Result<Self>
As [new_with_config], but the precursor builder’s occurrence/abundance
distributions come from source (P4: Columns default, or the projector).
Sourcepub fn build_frame(
&self,
frame_id: u32,
fragmentation: bool,
mz_noise_precursor: bool,
uniform: bool,
precursor_noise_ppm: f64,
mz_noise_fragment: bool,
fragment_noise_ppm: f64,
right_drag: bool,
) -> TimsFrame
pub fn build_frame( &self, frame_id: u32, fragmentation: bool, mz_noise_precursor: bool, uniform: bool, precursor_noise_ppm: f64, mz_noise_fragment: bool, fragment_noise_ppm: f64, right_drag: bool, ) -> TimsFrame
pub fn build_frame_annotated( &self, frame_id: u32, fragmentation: bool, mz_noise_precursor: bool, uniform: bool, precursor_noise_ppm: f64, mz_noise_fragment: bool, fragment_noise_ppm: f64, right_drag: bool, ) -> TimsFrameAnnotated
pub fn get_fragment_ion_ids(&self, precursor_frame_ids: Vec<u32>) -> Vec<u32>
pub fn build_frames( &self, frame_ids: Vec<u32>, fragmentation: bool, mz_noise_precursor: bool, uniform: bool, precursor_noise_ppm: f64, mz_noise_fragment: bool, fragment_noise_ppm: f64, right_drag: bool, num_threads: usize, ) -> Vec<TimsFrame>
pub fn build_frames_annotated( &self, frame_ids: Vec<u32>, fragmentation: bool, mz_noise_precursor: bool, uniform: bool, precursor_noise_ppm: f64, mz_noise_fragment: bool, fragment_noise_ppm: f64, right_drag: bool, num_threads: usize, ) -> Vec<TimsFrameAnnotated>
Sourcepub fn render_fragment_scan(
&self,
frame_id: u32,
window: &WindowTransmission,
nce: f64,
data_mode: DataMode,
) -> RenderedEvent
pub fn render_fragment_scan( &self, frame_id: u32, window: &WindowTransmission, nce: f64, data_mode: DataMode, ) -> RenderedEvent
Render a fragment (MS2) frame as a vendor-neutral RenderedEvent::Scan
for a non-IMS instrument (P6e): collapse ONE isolation window’s fragment
signal into the single MS2 spectrum an Astral/Orbitrap records.
Astral has no ion-mobility axis, so (a) each precursor ion is gated into the
window ONCE via WindowTransmission::any_transmitted on its isotope
envelope (an m/z window, NOT a scan range), and (b) every transmitted ion
contributes its fragment series at the FULL mobility marginal
frame_abundance × ion_abundance × total_events (scan factor folded to 1.0)
— the same marginal contract as the MS1 render
(TimsTofSyntheticsPrecursorFrameBuilder::precursor_scan_marginal_spectrum),
NOT the Bruker per-scan scan_abundance sum. The isotope-transmission mode
is None (Astral capabilities gate it off), so the shared
[fragment_series_spectrum] kernel does the per-series scaling. nce is the
window’s normalized collision energy: both the CE key the stored fragments
were predicted at AND the applied CE (the keying is unit-agnostic). A
precursor whose fragments are not stored near nce is SKIPPED (predicted at
a different window’s CE) — compatibility is enforced once at registration
(P6d), so the render core never panics on a per-precursor miss. Returns an
empty-spectrum MS2 Scan when nothing is transmitted / no fragments exist
— the writer must still consume and clear that template slot (zero residual).
Fragments ONLY: precursor-survival signal is intentionally not modelled here
(it is stochastic, which would break this deterministic render), and an
Astral run that configures precursor_survival_* is rejected at config load
rather than silently dropping it.
pub fn build_fragment_frame_annotated( &self, frame_id: u32, fragment_ions: &BTreeMap<(u32, i8, i32), (PeptideProductIonSeriesCollection, Vec<MzSpectrumAnnotated>)>, mz_noise_fragment: bool, uniform: bool, fragment_ppm: f64, mz_min: Option<f64>, mz_max: Option<f64>, intensity_min: Option<f64>, right_drag: Option<bool>, ) -> TimsFrameAnnotated
pub fn get_ion_transmission_matrix( &self, peptide_id: u32, charge: i8, include_precursor_frames: bool, ) -> Vec<Vec<f32>>
pub fn count_number_transmissions( &self, peptide_id: u32, charge: i8, ) -> (usize, usize)
pub fn count_number_transmissions_parallel( &self, peptide_ids: Vec<u32>, charge: Vec<i8>, num_threads: usize, ) -> Vec<(usize, usize)>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TimsTofSyntheticsFrameBuilderDIA
impl RefUnwindSafe for TimsTofSyntheticsFrameBuilderDIA
impl Send for TimsTofSyntheticsFrameBuilderDIA
impl Sync for TimsTofSyntheticsFrameBuilderDIA
impl Unpin for TimsTofSyntheticsFrameBuilderDIA
impl UnsafeUnpin for TimsTofSyntheticsFrameBuilderDIA
impl UnwindSafe for TimsTofSyntheticsFrameBuilderDIA
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.