File tree Expand file tree Collapse file tree 5 files changed +25
-5
lines changed Expand file tree Collapse file tree 5 files changed +25
-5
lines changed Original file line number Diff line number Diff line change 1
1
pub mod math;
2
2
pub mod molecule;
3
- mod bingo ;
3
+ mod ringo ;
Original file line number Diff line number Diff line change 1
1
mod index;
2
2
mod search;
3
+ mod index_item;
Original file line number Diff line number Diff line change 1
1
use std:: fs:: File ;
2
2
use std:: io:: { BufRead } ;
3
-
4
3
use crate :: ringo:: molecule:: smiles:: reader:: molecule:: parse_molecule;
4
+ use crate :: ringo:: ringo:: index_item:: IndexItem ;
5
5
6
- fn index ( smiles_file : & str ) {
6
+ fn index ( smiles_file : & str ) -> Vec < IndexItem > {
7
7
// open file for reading
8
8
let fi = File :: open ( smiles_file) . expect ( "Could not open file" ) ;
9
9
10
+ let mut result = Vec :: new ( ) ;
10
11
// open binary file for index
11
-
12
12
let mut offset = 0 ;
13
13
// let mut fo = File::create(smiles_file.to_owned() + ".fp");
14
14
for line in std:: io:: BufReader :: new ( fi) . lines ( ) {
15
15
let line = line. unwrap ( ) ;
16
16
let molecule = parse_molecule ( & line) . unwrap ( ) . 1 ;
17
17
// let ecfp = molecule.ecfp(2, 512);
18
18
// write ecfp and offset to binary file
19
+ result. push ( IndexItem :: new ( offset, molecule. ecfp ( 2 , 512 ) ) ) ;
20
+
19
21
offset += line. len ( ) + 1 ;
20
22
}
23
+ return result;
21
24
}
22
25
23
26
#[ test]
24
27
fn test_index ( ) {
25
- index ( "molecules.smi" ) ;
28
+ let result = index ( "molecules.smi" ) ;
29
+ assert_eq ! ( result. len( ) , 1 ) ;
26
30
}
Original file line number Diff line number Diff line change
1
+ use bit_vec:: BitVec ;
2
+
3
+ pub struct IndexItem {
4
+ pub position : usize ,
5
+ pub fingerprint : Vec < u8 >
6
+ }
7
+
8
+ impl IndexItem {
9
+ pub fn new ( position : usize , fingerprint : BitVec ) -> IndexItem {
10
+ IndexItem {
11
+ position,
12
+ fingerprint : fingerprint. to_bytes ( )
13
+ }
14
+ }
15
+ }
File renamed without changes.
You can’t perform that action at this time.
0 commit comments