glycobook 0.1.0.alpha.22-java → 0.1.0.alpha.23-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/glycobook/Loggerinit.rb +3 -3
- data/lib/glycobook/mol_wurcs.rb +65 -43
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 54291cdf1cc15d9494b5f931527624edea2b22e4406b86a5e2da164c34928d6d
|
4
|
+
data.tar.gz: ceabbea0e098bd5d424d9d2379f1014869242517179a26b04e4d12865bc4a63d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 711e5450c4a6db15dc122620ce179a995260a1203c36d929f922e592ff6b585716ae0513ebec06dc933d7ced9d34ed1450e9853afe0e28c6e8dd6614f1031ecd
|
7
|
+
data.tar.gz: ab7f7c353eb54c5047cbb64b4ff6e51fade4fed1bc7fa95afa7ac597ec9bced8c007cbd9dac8ae627d940367f9ecd17830d1d6bb98f8468761420927f7060293
|
data/lib/glycobook/Loggerinit.rb
CHANGED
@@ -10,18 +10,18 @@ class JRubySLF4JLogger < Logger
|
|
10
10
|
super(STDOUT) # STDOUT is dummy
|
11
11
|
@java_logger = LoggerFactory.getLogger(name)
|
12
12
|
end
|
13
|
-
def add(severity,
|
13
|
+
def add(severity, message, progname, &block)
|
14
14
|
|
15
15
|
message = block.call if block
|
16
16
|
message = message.to_s
|
17
17
|
|
18
18
|
case severity
|
19
19
|
when 0 # Logger::DEBUG
|
20
|
-
@java_logger.
|
20
|
+
@java_logger.info(message)
|
21
21
|
when 1 # Logger::INFO
|
22
22
|
@java_logger.info(message)
|
23
23
|
when 2 # Logger::WARN
|
24
|
-
@java_logger.
|
24
|
+
@java_logger.info(message)
|
25
25
|
when 3, 4# Logger::ERROR, Logger::FATAL
|
26
26
|
@java_logger.error(message)
|
27
27
|
else
|
data/lib/glycobook/mol_wurcs.rb
CHANGED
@@ -11,6 +11,7 @@ java_import 'org.openscience.cdk.io.ISimpleChemObjectReader'
|
|
11
11
|
java_import 'org.openscience.cdk.silent.AtomContainerSet'
|
12
12
|
java_import 'org.openscience.cdk.DefaultChemObjectBuilder'
|
13
13
|
java_import 'org.openscience.cdk.io.SDFWriter'
|
14
|
+
java_import 'org.openscience.cdk.smiles.SmiFlavor'
|
14
15
|
java_import 'org.openscience.cdk.smiles.SmilesGenerator'
|
15
16
|
java_import 'org.openscience.cdk.silent.SilentChemObjectBuilder'
|
16
17
|
java_import 'java.io.StringReader'
|
@@ -22,60 +23,81 @@ java_import 'java.util.ArrayList'
|
|
22
23
|
java_import 'java.io.StringWriter'
|
23
24
|
|
24
25
|
module GlycoBook
|
25
|
-
class MolWURCS
|
26
|
+
class MolWURCS
|
27
|
+
def wurcs2mol(w, format)
|
28
|
+
mols = read_wurcs(w)
|
29
|
+
return {"flag": false,"wurcs": w, "message": "WURCS strings that could not be parsed to the atomic level"} if mols.nil?
|
26
30
|
|
27
|
-
|
31
|
+
case format
|
32
|
+
when "sdf"
|
33
|
+
{"wurcs": w}.merge(export_to_sdf(mols))
|
34
|
+
when "smiles"
|
35
|
+
{"wurcs": w}.merge(export_to_smiles(mols))
|
36
|
+
else
|
37
|
+
{"flag": false,"wurcs": w, "#{format}": "", "message": "Undefined format"}
|
38
|
+
end
|
39
|
+
end
|
28
40
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
41
|
+
private
|
42
|
+
|
43
|
+
# Reads WURCS and returns a molecule set
|
44
|
+
def read_wurcs(w)
|
45
|
+
begin
|
46
|
+
reader = ChemFormatType::WURCS.createReader
|
47
|
+
reader.setReader(StringReader.new(w))
|
48
|
+
return nil unless reader.accepts(AtomContainerSet.java_class)
|
49
|
+
mols = reader.read(AtomContainerSet.new)
|
50
|
+
reader.close
|
51
|
+
mols
|
52
|
+
rescue CDKException, IOException => e
|
53
|
+
e.printStackTrace
|
54
|
+
nil
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
# Exports molecule set to SDF format
|
59
|
+
def export_to_sdf(mols)
|
60
|
+
string_writer = StringWriter.new
|
61
|
+
begin
|
62
|
+
writer = SDFWriter.new(string_writer)
|
63
|
+
write_molecule_set(mols, writer)
|
64
|
+
{"sdf": string_writer.to_s}
|
65
|
+
rescue CDKException, IOException => e
|
66
|
+
e.printStackTrace
|
67
|
+
{"flag": false,"sdf": "", "message": e.message}
|
68
|
+
end
|
69
|
+
end
|
39
70
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
71
|
+
# Exports molecule set to SMILES format
|
72
|
+
def export_to_smiles(mols)
|
73
|
+
smiles_gen = SmilesGenerator.new(SmiFlavor::Isomeric)
|
74
|
+
string_writer = StringWriter.new
|
75
|
+
begin
|
76
|
+
mols.atomContainers.each do |mol|
|
77
|
+
smiles = smiles_gen.create(mol)
|
78
|
+
string_writer.write(smiles)
|
79
|
+
end
|
80
|
+
smiles = string_writer.toString
|
81
|
+
if (smiles == "")
|
82
|
+
{"flag": false,"smiles": smiles, "message": "the case of successfully converted to empty characters in the library"}
|
83
|
+
else
|
84
|
+
{"flag": true,"smiles": smiles}
|
85
|
+
end
|
86
|
+
rescue CDKException, IOException => e
|
87
|
+
e.printStackTrace
|
88
|
+
{"flag": false,"smiles": "", "message": e.message}
|
89
|
+
end
|
90
|
+
end
|
44
91
|
|
45
|
-
|
46
|
-
|
92
|
+
# Writes molecule set using provided writer
|
93
|
+
def write_molecule_set(mols, writer)
|
47
94
|
if writer.accepts(mols.java_class)
|
48
95
|
writer.write(mols)
|
49
96
|
elsif writer.accepts(mols.get_atom_container(0).java_class)
|
50
97
|
writer.write(mols.get_atom_container(0))
|
51
98
|
end
|
52
99
|
writer.close
|
53
|
-
rescue Java::OrgOpenscienceCdkException::CDKException, Java::JavaIo::IOException => e
|
54
|
-
e.printStackTrace()
|
55
100
|
end
|
56
101
|
|
57
|
-
return string_writer.to_s
|
58
|
-
|
59
|
-
elsif format == "smiles"
|
60
|
-
# SMILESジェネレータの生成
|
61
|
-
smiles_gen = SmilesGenerator.absolute()
|
62
|
-
|
63
|
-
string_writer = java.io.StringWriter.new
|
64
|
-
|
65
|
-
begin
|
66
|
-
mols.atomContainers.each do |mol|
|
67
|
-
# 各分子に対してSMILES表現の生成
|
68
|
-
smiles = smiles_gen.createSMILES(mol)
|
69
|
-
string_writer.write(smiles + "\n")
|
70
|
-
end
|
71
|
-
|
72
|
-
# 生成したSMILESの出力
|
73
|
-
return string_writer.toString
|
74
|
-
rescue Java::OrgOpenscienceCdkException::CDKException, Java::JavaIo::IOException => e
|
75
|
-
e.printStackTrace()
|
76
|
-
return ""
|
77
|
-
end
|
78
102
|
end
|
79
103
|
end
|
80
|
-
end
|
81
|
-
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glycobook
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.alpha.
|
4
|
+
version: 0.1.0.alpha.23
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Akihiro Fujita
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-11-
|
11
|
+
date: 2023-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -17,8 +17,8 @@ dependencies:
|
|
17
17
|
- !ruby/object:Gem::Version
|
18
18
|
version: 0.0.2
|
19
19
|
name: java
|
20
|
-
prerelease: false
|
21
20
|
type: :runtime
|
21
|
+
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
@@ -64,7 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
64
64
|
- !ruby/object:Gem::Version
|
65
65
|
version: 1.3.1
|
66
66
|
requirements: []
|
67
|
-
rubygems_version: 3.
|
67
|
+
rubygems_version: 3.4.22
|
68
68
|
signing_key:
|
69
69
|
specification_version: 4
|
70
70
|
summary: Glycobook is a JRuby library for glycaninformatics
|