From 6866cc63564dd2159dbc1e6ff794f3e6104c8df0 Mon Sep 17 00:00:00 2001 From: Sander Willems Date: Mon, 6 Nov 2023 19:39:48 +0100 Subject: [PATCH 1/6] CHORE: cargo update ahash --- Cargo.lock | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 316ae88..cc3161c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,9 +10,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" dependencies = [ "getrandom", "once_cell", @@ -21,15 +21,16 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +checksum = "cd7d5a2cecb58716e47d67d5703a249964b14c7be1ec3cad3affc295b2d1c35d" dependencies = [ "cfg-if", "const-random", "getrandom", "once_cell", "version_check", + "zerocopy", ] [[package]] @@ -68,7 +69,7 @@ version = "42.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea9a0fd21121304cad96f307c938d861cb1e7f0c151b93047462cd9817d760fb" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.5", "arrow-buffer", "arrow-data", "arrow-schema", @@ -408,7 +409,7 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash 0.7.6", + "ahash 0.7.7", ] [[package]] @@ -731,7 +732,7 @@ version = "42.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baab9c36b1c8300b81b4d577d306a0a733f9d34021363098d3548e37757ed6c8" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.5", "arrow-array", "arrow-buffer", "arrow-cast", @@ -1125,6 +1126,26 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "zerocopy" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a7af71d8643341260a65f89fa60c0eeaa907f34544d8f6d9b0df72f069b5e74" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9731702e2f0617ad526794ae28fbc6f6ca8849b5ba729666c2a5bc4b6ddee2cd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + [[package]] name = "zstd" version = "0.12.3+zstd.1.5.2" From c58761730e68de8addfb3f6f6ef5d3fd7c4ef38d Mon Sep 17 00:00:00 2001 From: Sander Willems Date: Mon, 6 Nov 2023 19:40:14 +0100 Subject: [PATCH 2/6] CHORE: update timsrust version --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cc3161c..2e4d89a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -929,7 +929,7 @@ dependencies = [ [[package]] name = "timsrust" -version = "0.2.2" +version = "0.2.3" dependencies = [ "bytemuck", "byteorder", diff --git a/Cargo.toml b/Cargo.toml index ef983f7..f41ffe7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "timsrust" -version = "0.2.2" +version = "0.2.3" edition = "2021" description = "A crate to read Bruker timsTOF data" license = "Apache-2.0" From cda1a5dd86938f6d62c1d16a84dc3c914d7319cc Mon Sep 17 00:00:00 2001 From: Vijayaraja G Date: Tue, 19 Dec 2023 17:22:21 -0600 Subject: [PATCH 3/6] Adding collision energy in precursor. --- src/file_readers/common/sql_reader.rs | 14 ++++++++++---- .../common/sql_reader/tables/pasef_frame_msms.rs | 2 ++ .../spectrum_readers/dda_reader/precursors.rs | 3 +++ src/precursors.rs | 1 + 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/file_readers/common/sql_reader.rs b/src/file_readers/common/sql_reader.rs index ac7e993..5c54db7 100644 --- a/src/file_readers/common/sql_reader.rs +++ b/src/file_readers/common/sql_reader.rs @@ -12,14 +12,11 @@ pub struct SqlReader { } impl SqlReader { - fn read_column_from_table< - T: rusqlite::types::FromSql + std::default::Default, - >( + fn read_column_from_table( &self, column_name: &str, table_name: &str, ) -> Vec { - let connection: Connection = get_sql_connection(&self.path); let column_names: Vec = self.get_table_columns(table_name).unwrap(); let order_by: String = column_names.join(", "); @@ -27,6 +24,15 @@ impl SqlReader { "SELECT {} FROM {} ORDER BY {}", column_name, table_name, order_by ); + + self.get_data_from_sql(&query) + } + + fn get_data_from_sql( + &self, + query: &String, + ) -> Vec { + let connection: Connection = get_sql_connection(&self.path); let mut stmt: Statement = connection.prepare(&query).unwrap(); let rows = stmt .query_map( diff --git a/src/file_readers/common/sql_reader/tables/pasef_frame_msms.rs b/src/file_readers/common/sql_reader/tables/pasef_frame_msms.rs index 49332e8..9947bce 100644 --- a/src/file_readers/common/sql_reader/tables/pasef_frame_msms.rs +++ b/src/file_readers/common/sql_reader/tables/pasef_frame_msms.rs @@ -9,6 +9,7 @@ pub struct PasefFrameMsMsTable { pub mz_width: Vec, pub collision_energy: Vec, pub precursor: Vec, + pub collision_energy_by_precursor: Vec, } impl ReadableFromSql for PasefFrameMsMsTable { @@ -28,6 +29,7 @@ impl ReadableFromSql for PasefFrameMsMsTable { .read_column_from_table("CollisionEnergy", table_name), precursor: sql_reader .read_column_from_table("Precursor", table_name), + collision_energy_by_precursor: sql_reader.get_data_from_sql(&"select CollisionEnergy,Precursor from PasefFrameMsMsInfo group by Precursor".to_string()), } } } diff --git a/src/file_readers/spectrum_readers/dda_reader/precursors.rs b/src/file_readers/spectrum_readers/dda_reader/precursors.rs index f0b1753..81b7249 100644 --- a/src/file_readers/spectrum_readers/dda_reader/precursors.rs +++ b/src/file_readers/spectrum_readers/dda_reader/precursors.rs @@ -29,10 +29,12 @@ impl PrecursorReader { let precursor_table: PrecursorTable = PrecursorTable::from_sql(&tdf_reader.tdf_sql_reader); let retention_times: Vec = tdf_reader.frame_table.rt.clone(); + let collision_energy = &pasef_frames.collision_energy_by_precursor; let precursors: Vec = (0..precursor_table.mz.len()) .into_par_iter() .map(|index| { let frame_id: usize = precursor_table.precursor_frame[index]; + let precursor_id: usize = precursor_table.id[index]; let scan_id: f64 = precursor_table.scan_average[index]; Precursor { mz: precursor_table.mz[index], @@ -42,6 +44,7 @@ impl PrecursorReader { intensity: precursor_table.intensity[index], index: index + 1, //TODO? frame_index: frame_id, + collision_energy: collision_energy[index], } }) .collect(); diff --git a/src/precursors.rs b/src/precursors.rs index 544dc56..195beb3 100644 --- a/src/precursors.rs +++ b/src/precursors.rs @@ -8,6 +8,7 @@ pub struct Precursor { pub intensity: f64, pub index: usize, pub frame_index: usize, + pub collision_energy: f64, } /// A type of quadrupole selection. From 08cc65413d6f466f0453f9b4def21ca284cf957b Mon Sep 17 00:00:00 2001 From: Vijayaraja G Date: Tue, 19 Dec 2023 17:35:23 -0600 Subject: [PATCH 4/6] fix: removed unused variable and fixed typo mistake. --- src/file_readers/common/sql_reader/tables/pasef_frame_msms.rs | 2 +- src/file_readers/spectrum_readers/dda_reader/precursors.rs | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/file_readers/common/sql_reader/tables/pasef_frame_msms.rs b/src/file_readers/common/sql_reader/tables/pasef_frame_msms.rs index 9947bce..eb68420 100644 --- a/src/file_readers/common/sql_reader/tables/pasef_frame_msms.rs +++ b/src/file_readers/common/sql_reader/tables/pasef_frame_msms.rs @@ -29,7 +29,7 @@ impl ReadableFromSql for PasefFrameMsMsTable { .read_column_from_table("CollisionEnergy", table_name), precursor: sql_reader .read_column_from_table("Precursor", table_name), - collision_energy_by_precursor: sql_reader.get_data_from_sql(&"select CollisionEnergy,Precursor from PasefFrameMsMsInfo group by Precursor".to_string()), + collision_energy_by_precursor: sql_reader.get_data_from_sql(&"select CollisionEnergy from PasefFrameMsMsInfo group by Precursor".to_string()), } } } diff --git a/src/file_readers/spectrum_readers/dda_reader/precursors.rs b/src/file_readers/spectrum_readers/dda_reader/precursors.rs index 81b7249..fb164ed 100644 --- a/src/file_readers/spectrum_readers/dda_reader/precursors.rs +++ b/src/file_readers/spectrum_readers/dda_reader/precursors.rs @@ -34,7 +34,6 @@ impl PrecursorReader { .into_par_iter() .map(|index| { let frame_id: usize = precursor_table.precursor_frame[index]; - let precursor_id: usize = precursor_table.id[index]; let scan_id: f64 = precursor_table.scan_average[index]; Precursor { mz: precursor_table.mz[index], From fbbbdd3533524ac07f66f053c3fe397130435292 Mon Sep 17 00:00:00 2001 From: Vijayaraja G Date: Thu, 21 Dec 2023 11:33:06 -0600 Subject: [PATCH 5/6] fix: review comment updates --- src/file_readers/common/sql_reader.rs | 2 +- .../common/sql_reader/tables/pasef_frame_msms.rs | 2 -- .../spectrum_readers/dda_reader/precursors.rs | 9 +++++++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/file_readers/common/sql_reader.rs b/src/file_readers/common/sql_reader.rs index 5c54db7..a5e10f0 100644 --- a/src/file_readers/common/sql_reader.rs +++ b/src/file_readers/common/sql_reader.rs @@ -28,7 +28,7 @@ impl SqlReader { self.get_data_from_sql(&query) } - fn get_data_from_sql( + pub fn get_data_from_sql( &self, query: &String, ) -> Vec { diff --git a/src/file_readers/common/sql_reader/tables/pasef_frame_msms.rs b/src/file_readers/common/sql_reader/tables/pasef_frame_msms.rs index eb68420..49332e8 100644 --- a/src/file_readers/common/sql_reader/tables/pasef_frame_msms.rs +++ b/src/file_readers/common/sql_reader/tables/pasef_frame_msms.rs @@ -9,7 +9,6 @@ pub struct PasefFrameMsMsTable { pub mz_width: Vec, pub collision_energy: Vec, pub precursor: Vec, - pub collision_energy_by_precursor: Vec, } impl ReadableFromSql for PasefFrameMsMsTable { @@ -29,7 +28,6 @@ impl ReadableFromSql for PasefFrameMsMsTable { .read_column_from_table("CollisionEnergy", table_name), precursor: sql_reader .read_column_from_table("Precursor", table_name), - collision_energy_by_precursor: sql_reader.get_data_from_sql(&"select CollisionEnergy from PasefFrameMsMsInfo group by Precursor".to_string()), } } } diff --git a/src/file_readers/spectrum_readers/dda_reader/precursors.rs b/src/file_readers/spectrum_readers/dda_reader/precursors.rs index fb164ed..482ede4 100644 --- a/src/file_readers/spectrum_readers/dda_reader/precursors.rs +++ b/src/file_readers/spectrum_readers/dda_reader/precursors.rs @@ -23,13 +23,18 @@ pub struct PrecursorReader { impl PrecursorReader { pub fn new(tdf_reader: &TDFReader) -> Self { + let select_collision_energy_sql = String::from( + "SELECT CollisionEnergy FROM PasefFrameMsMsInfo GROUP BY Precursor", + ); let pasef_frames: PasefFrameMsMsTable = PasefFrameMsMsTable::from_sql(&tdf_reader.tdf_sql_reader); let im_reader: Scan2ImConverter = tdf_reader.im_converter; let precursor_table: PrecursorTable = PrecursorTable::from_sql(&tdf_reader.tdf_sql_reader); let retention_times: Vec = tdf_reader.frame_table.rt.clone(); - let collision_energy = &pasef_frames.collision_energy_by_precursor; + let collision_energies = tdf_reader + .tdf_sql_reader + .get_data_from_sql(&select_collision_energy_sql); let precursors: Vec = (0..precursor_table.mz.len()) .into_par_iter() .map(|index| { @@ -43,7 +48,7 @@ impl PrecursorReader { intensity: precursor_table.intensity[index], index: index + 1, //TODO? frame_index: frame_id, - collision_energy: collision_energy[index], + collision_energy: collision_energies[index], } }) .collect(); From a987472afcbda5e7fbb4902532809f62b27bd4ea Mon Sep 17 00:00:00 2001 From: Vijayaraja G Date: Fri, 22 Dec 2023 09:28:40 -0600 Subject: [PATCH 6/6] tests: added default value in precursor object. --- tests/spectrum_readers.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/spectrum_readers.rs b/tests/spectrum_readers.rs index bff4c43..6da7dec 100644 --- a/tests/spectrum_readers.rs +++ b/tests/spectrum_readers.rs @@ -29,6 +29,7 @@ fn minitdf_reader() { intensity: 0.0, index: 1, frame_index: 1, + collision_energy: 0.0, }), index: 0, }, @@ -43,6 +44,7 @@ fn minitdf_reader() { intensity: 0.0, index: 2, frame_index: 2, + collision_energy: 0.0, }), index: 1, }, @@ -74,6 +76,7 @@ fn tdf_reader_dda() { intensity: 10.0, index: 1, frame_index: 1, + collision_energy: 0.0, }), index: 0, }, @@ -88,6 +91,7 @@ fn tdf_reader_dda() { intensity: 10.0, index: 2, frame_index: 1, + collision_energy: 0.0, }), index: 1, }, @@ -102,6 +106,7 @@ fn tdf_reader_dda() { intensity: 10.0, index: 3, frame_index: 3, + collision_energy: 0.0, }), index: 2, },