File: benchmark

package info (click to toggle)
osra 2.1.3-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,468 kB
  • sloc: cpp: 52,893; sh: 3,085; perl: 390; makefile: 328; python: 279; xml: 169; java: 160
file content (55 lines) | stat: -rwxr-xr-x 1,505 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/sh
#\
exec /usr/local/bin/csts  -f "$0" ${1+"$@"}
#source identifier.tcl
#ens::identifier::create

#cmdtrace on

set dir_ideal [lindex $argv 0]
set dir_result [lindex $argv 1]

set tanimoto_list {}
set false_positive_names {}
set false_positive_counts {}
set missing_names {}
set missing_counts {}
set identical 0
set total 0
set filelist [exec find $dir_ideal -name *.sdf]
foreach file1 $filelist {
    set fh1 [molfile open $file1 r]
    set count1 [molfile count $fh1]
    set file2 $file1
#    regsub {.MOL} $file2 {.TIF.sdf} file2
    regsub $dir_ideal $file2 $dir_result file2
    set fh2 [molfile open $file2 r]
    set count2 [molfile count $fh2]
    set k 0
    set hashmap [dict create]
    molfile loop $fh1 eh1 {
        if { [ens get $eh1 E_NATOMS]==0 } continue
	    incr k
	    incr total
	    ens hadd $eh1
	    ens purge $eh1 E_STDINCHI
	    set key1 ""
            if {[catch {ens need $eh1 E_STDINCHI; set key1 [ens show $eh1 E_STDINCHI]}]} {puts "$file1 $k"}
	    if {$key1 ne ""} {dict set hashmap $key1 1}
	}
    set k 0
    molfile loop $fh2 eh2 {
        if { [ens get $eh2 E_NATOMS]==0 } continue
	    incr k
	    ens hadd $eh2
	    ens purge $eh2 E_STDINCHI
	    set key2 ""
            if {[catch {ens need $eh2 E_STDINCHI; set key2 [ens show $eh2 E_STDINCHI]}]} {puts "$file2 $k"}
	    if {$key2 ne "" && [dict exists $hashmap $key2]} {incr identical}
	}
 molfile close $fh1
 molfile close $fh2
}

puts "Identical structures: $identical"
puts "Total structures: $total"