Skip to content

Commit 14763ba

Browse files
committed
#3: cargo fmt
1 parent 1a6b78d commit 14763ba

File tree

9 files changed

+130
-46
lines changed

9 files changed

+130
-46
lines changed

src/ringo/math.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
pub mod similarity;
1+
pub mod similarity;

src/ringo/math/similarity/tanimoto.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@ use fixedbitset::FixedBitSet;
33
pub fn tanimoto_bitset(a: &FixedBitSet, b: &FixedBitSet) -> f32 {
44
let mut and_ = a.clone();
55
and_.intersect_with(b);
6-
return and_.count_ones(..) as f32 / (a.count_ones(..) + b.count_ones(..) - and_.count_ones(..)) as f32;
6+
return and_.count_ones(..) as f32
7+
/ (a.count_ones(..) + b.count_ones(..) - and_.count_ones(..)) as f32;
78
}
89

910
#[cfg(test)]
1011
mod tests {
12+
use crate::ringo::math::similarity::tanimoto::tanimoto_bitset;
1113
use fixedbitset::FixedBitSet;
12-
use crate::ringo::math::similarity::tanimoto::{tanimoto_bitset};
1314

1415
#[test]
1516
fn test_tanimoto_bitset_033() {

src/ringo/molecule/model/molecule.rs

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1+
use crate::ringo::math::similarity::tanimoto::tanimoto_bitset;
12
use crate::ringo::molecule::model::atom::Atom;
23
use crate::ringo::molecule::model::bond::Bond;
34
use crate::ringo::molecule::model::element::atomic_weight;
5+
use crate::ringo::molecule::smiles::reader::molecule::parse_molecule;
46
use crate::ringo::ringo::fingerprint::Fingerprint;
7+
use fixedbitset::FixedBitSet;
58
use petgraph::stable_graph::{EdgeIndex, NodeIndex, StableGraph};
69
use petgraph::visit::EdgeRef;
710
use petgraph::Undirected;
811
use std::borrow::Borrow;
9-
use std::collections::{BTreeSet};
1012
use std::collections::hash_map::DefaultHasher;
13+
use std::collections::BTreeSet;
1114
use std::hash::Hasher;
12-
use fixedbitset::FixedBitSet;
13-
use crate::ringo::math::similarity::tanimoto::tanimoto_bitset;
14-
use crate::ringo::molecule::smiles::reader::molecule::parse_molecule;
1515

1616
pub struct Molecule {
1717
graph: StableGraph<Atom, Bond, Undirected>,
@@ -92,7 +92,15 @@ impl Molecule {
9292
let mut fp = FixedBitSet::new();
9393

9494
for node in self.graph.node_indices() {
95-
ecfp_recursive(&self.graph, radius, 1, node, &mut fp, fp_length, &mut DefaultHasher::new());
95+
ecfp_recursive(
96+
&self.graph,
97+
radius,
98+
1,
99+
node,
100+
&mut fp,
101+
fp_length,
102+
&mut DefaultHasher::new(),
103+
);
96104
}
97105

98106
Fingerprint(fp)
@@ -108,7 +116,6 @@ fn ecfp_recursive(
108116
fp_length: usize,
109117
hasher: &mut DefaultHasher,
110118
) {
111-
112119
if depth > radius {
113120
return;
114121
}
@@ -136,11 +143,16 @@ fn ecfp_recursive(
136143
}
137144
}
138145

139-
140146
#[test]
141147
fn test_ecfp() {
142-
let ecfp_ibuprofen = parse_molecule("CC(C)CC1=CC=C(C=C1)C(C)C(=O)O").unwrap().1.ecfp(2, 128);
143-
let ecfp_naproxen = parse_molecule("CC(C1=CC2=C(C=C1)C=C(C=C2)OC)C(=O)O").unwrap().1.ecfp(2, 128);
148+
let ecfp_ibuprofen = parse_molecule("CC(C)CC1=CC=C(C=C1)C(C)C(=O)O")
149+
.unwrap()
150+
.1
151+
.ecfp(2, 128);
152+
let ecfp_naproxen = parse_molecule("CC(C1=CC2=C(C=C1)C=C(C=C2)OC)C(=O)O")
153+
.unwrap()
154+
.1
155+
.ecfp(2, 128);
144156
let sim = tanimoto_bitset(&ecfp_ibuprofen.0, &ecfp_naproxen.0);
145157
assert!(0.53 < sim && sim < 0.54);
146158
}

src/ringo/molecule/smiles/reader/molecule.rs

Lines changed: 78 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ pub(crate) fn parse_molecule(input: &str) -> IResult<&str, Molecule> {
3434
let mut prev_node = NodeIndex::end();
3535
let mut prev_bond = BondOrder::Single;
3636

37-
3837
for (atom, bond, cycle_digit, open_paren) in atoms_and_bonds {
3938
if let Some(open) = open_paren {
4039
if open {
@@ -223,11 +222,15 @@ mod tests {
223222
7
224223
);
225224
assert_eq!(
226-
m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(1)).unwrap().order,
225+
m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(1))
226+
.unwrap()
227+
.order,
227228
BondOrder::Double
228229
);
229230
assert_eq!(
230-
m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(2)).unwrap().order,
231+
m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(2))
232+
.unwrap()
233+
.order,
231234
BondOrder::Single
232235
);
233236
}
@@ -250,11 +253,15 @@ mod tests {
250253
7
251254
);
252255
assert_eq!(
253-
m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(1)).unwrap().order,
256+
m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(1))
257+
.unwrap()
258+
.order,
254259
BondOrder::Double
255260
);
256261
assert_eq!(
257-
m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(2)).unwrap().order,
262+
m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(2))
263+
.unwrap()
264+
.order,
258265
BondOrder::Double
259266
);
260267
}
@@ -285,19 +292,27 @@ mod tests {
285292
7
286293
);
287294
assert_eq!(
288-
m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(1)).unwrap().order,
295+
m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(1))
296+
.unwrap()
297+
.order,
289298
BondOrder::Double
290299
);
291300
assert_eq!(
292-
m.get_bond_by_atoms(NodeIndex::new(1), NodeIndex::new(2)).unwrap().order,
301+
m.get_bond_by_atoms(NodeIndex::new(1), NodeIndex::new(2))
302+
.unwrap()
303+
.order,
293304
BondOrder::Double
294305
);
295306
assert_eq!(
296-
m.get_bond_by_atoms(NodeIndex::new(1), NodeIndex::new(3)).unwrap().order,
307+
m.get_bond_by_atoms(NodeIndex::new(1), NodeIndex::new(3))
308+
.unwrap()
309+
.order,
297310
BondOrder::Single
298311
);
299312
assert_eq!(
300-
m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(4)).unwrap().order,
313+
m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(4))
314+
.unwrap()
315+
.order,
301316
BondOrder::Single
302317
);
303318
}
@@ -324,16 +339,35 @@ mod tests {
324339
16
325340
);
326341
assert!(m.has_bond(NodeIndex::new(0), NodeIndex::new(1)));
327-
assert!(m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(1)).unwrap().order == BondOrder::Single);
342+
assert!(
343+
m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(1))
344+
.unwrap()
345+
.order
346+
== BondOrder::Single
347+
);
328348
assert!(m.has_bond(NodeIndex::new(1), NodeIndex::new(2)));
329-
assert!(m.get_bond_by_atoms(NodeIndex::new(1), NodeIndex::new(2)).unwrap().order == BondOrder::Single);
349+
assert!(
350+
m.get_bond_by_atoms(NodeIndex::new(1), NodeIndex::new(2))
351+
.unwrap()
352+
.order
353+
== BondOrder::Single
354+
);
330355
assert!(m.has_bond(NodeIndex::new(0), NodeIndex::new(2)));
331-
assert!(m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(2)).unwrap().order == BondOrder::Double);
356+
assert!(
357+
m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(2))
358+
.unwrap()
359+
.order
360+
== BondOrder::Double
361+
);
332362
assert!(m.has_bond(NodeIndex::new(2), NodeIndex::new(3)));
333-
assert!(m.get_bond_by_atoms(NodeIndex::new(2), NodeIndex::new(3)).unwrap().order == BondOrder::Single);
363+
assert!(
364+
m.get_bond_by_atoms(NodeIndex::new(2), NodeIndex::new(3))
365+
.unwrap()
366+
.order
367+
== BondOrder::Single
368+
);
334369
}
335370

336-
337371
#[test]
338372
fn parse_molecule_cycle_branch() {
339373
let m = parse_molecule("N1C(=P)S=1O").unwrap().1;
@@ -360,15 +394,40 @@ mod tests {
360394
8
361395
);
362396
assert!(m.has_bond(NodeIndex::new(0), NodeIndex::new(1)));
363-
assert!(m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(1)).unwrap().order == BondOrder::Single);
397+
assert!(
398+
m.get_bond_by_atoms(NodeIndex::new(0), NodeIndex::new(1))
399+
.unwrap()
400+
.order
401+
== BondOrder::Single
402+
);
364403
assert!(m.has_bond(NodeIndex::new(1), NodeIndex::new(2)));
365-
assert!(m.get_bond_by_atoms(NodeIndex::new(1), NodeIndex::new(2)).unwrap().order == BondOrder::Double);
404+
assert!(
405+
m.get_bond_by_atoms(NodeIndex::new(1), NodeIndex::new(2))
406+
.unwrap()
407+
.order
408+
== BondOrder::Double
409+
);
366410
assert!(m.has_bond(NodeIndex::new(1), NodeIndex::new(3)));
367-
assert!(m.get_bond_by_atoms(NodeIndex::new(1), NodeIndex::new(3)).unwrap().order == BondOrder::Single);
411+
assert!(
412+
m.get_bond_by_atoms(NodeIndex::new(1), NodeIndex::new(3))
413+
.unwrap()
414+
.order
415+
== BondOrder::Single
416+
);
368417
assert!(m.has_bond(NodeIndex::new(3), NodeIndex::new(4)));
369-
assert!(m.get_bond_by_atoms(NodeIndex::new(3), NodeIndex::new(4)).unwrap().order == BondOrder::Single);
418+
assert!(
419+
m.get_bond_by_atoms(NodeIndex::new(3), NodeIndex::new(4))
420+
.unwrap()
421+
.order
422+
== BondOrder::Single
423+
);
370424
assert!(m.has_bond(NodeIndex::new(3), NodeIndex::new(0)));
371-
assert!(m.get_bond_by_atoms(NodeIndex::new(3), NodeIndex::new(0)).unwrap().order == BondOrder::Double);
425+
assert!(
426+
m.get_bond_by_atoms(NodeIndex::new(3), NodeIndex::new(0))
427+
.unwrap()
428+
.order
429+
== BondOrder::Double
430+
);
372431
}
373432

374433
#[test]

src/ringo/ringo.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1+
pub(crate) mod fingerprint;
12
mod index;
2-
mod search;
33
mod index_item;
4-
pub(crate) mod fingerprint;
4+
mod search;

src/ringo/ringo/fingerprint.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ impl<'de> bincode::BorrowDecode<'de> for Fingerprint {
3232

3333
#[cfg(test)]
3434
mod tests {
35-
use fixedbitset::{FixedBitSet};
3635
use crate::ringo::ringo::fingerprint::{Fingerprint, FINGERPRINT_SIZE};
36+
use fixedbitset::FixedBitSet;
3737

3838
#[test]
3939
fn test_fingerprint_encode_decode() {
@@ -42,7 +42,10 @@ mod tests {
4242
fp.0.set(17, true);
4343

4444
let encoded = bincode::encode_to_vec(&fp, bincode::config::standard()).unwrap();
45-
let decoded: Fingerprint = bincode::decode_from_slice(&encoded, bincode::config::standard()).unwrap().0;
45+
let decoded: Fingerprint =
46+
bincode::decode_from_slice(&encoded, bincode::config::standard())
47+
.unwrap()
48+
.0;
4649
assert_eq!(decoded.0.ones().collect::<Vec<usize>>(), vec![1, 17]);
4750
}
4851
}

src/ringo/ringo/index.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
use std::fs::File;
2-
use std::io::{BufRead};
31
use crate::ringo::molecule::smiles::reader::molecule::parse_molecule;
42
use crate::ringo::ringo::index_item::IndexItem;
3+
use std::fs::File;
4+
use std::io::BufRead;
55

66
fn index(smiles_file: &str) {
77
// open file for reading
@@ -13,12 +13,14 @@ fn index(smiles_file: &str) {
1313
for line in std::io::BufReader::new(fi).lines() {
1414
let line = line.unwrap();
1515
let molecule = parse_molecule(&line).unwrap().1;
16-
IndexItem{position: offset, fingerprint: molecule.ecfp(2, 512)};
16+
IndexItem {
17+
position: offset,
18+
fingerprint: molecule.ecfp(2, 512),
19+
};
1720
offset += line.len() + 1;
1821
}
1922
}
2023

21-
2224
#[test]
2325
fn test_index() {
2426
index("molecules.smi");

src/ringo/ringo/index_item.rs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,36 @@
1-
use bincode::{Decode, Encode};
21
use crate::ringo::ringo::fingerprint::Fingerprint;
2+
use bincode::{Decode, Encode};
33

44
#[derive(Debug, Encode, Decode)]
55
pub struct IndexItem {
66
pub position: usize,
7-
pub fingerprint: Fingerprint
7+
pub fingerprint: Fingerprint,
88
}
99

1010
#[cfg(test)]
1111
mod tests {
12+
use crate::ringo::ringo::fingerprint::Fingerprint;
13+
use crate::ringo::ringo::index_item::IndexItem;
1214
use bincode::config::standard;
1315
use bincode::{decode_from_slice, encode_to_vec};
1416
use fixedbitset::FixedBitSet;
15-
use crate::ringo::ringo::index_item::IndexItem;
16-
use crate::ringo::ringo::fingerprint::Fingerprint;
1717

1818
#[test]
1919
fn test_index_item_encode_decode() {
2020
let fp = Fingerprint(FixedBitSet::with_capacity(512));
21-
let mut ii = IndexItem {position: 0, fingerprint: fp};
21+
let mut ii = IndexItem {
22+
position: 0,
23+
fingerprint: fp,
24+
};
2225
ii.position = 0;
2326
ii.fingerprint.0.set(1, true);
2427
ii.fingerprint.0.set(17, true);
2528

2629
let encoded = encode_to_vec(&ii, standard()).unwrap();
2730
let decoded: IndexItem = decode_from_slice(&encoded, standard()).unwrap().0;
28-
assert_eq!(decoded.fingerprint.0.ones().collect::<Vec<usize>>(), vec![1, 17]);
31+
assert_eq!(
32+
decoded.fingerprint.0.ones().collect::<Vec<usize>>(),
33+
vec![1, 17]
34+
);
2935
}
30-
}
36+
}

src/ringo/ringo/search.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

0 commit comments

Comments
 (0)