mirror of
https://github.com/openbabel/openbabel.git
synced 2025-02-25 18:55:23 -06:00
Add .gitattributes and renormalize EOL
This commit is contained in:
parent
f03cea648f
commit
67fe818429
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@ -0,0 +1 @@
|
||||
* text=auto
|
@ -1,110 +1,110 @@
|
||||
# Check support for native CPU architecture optimizations
|
||||
#
|
||||
# This module will define the following variables:
|
||||
#
|
||||
# NATIVE_FLAGS - compiler flags to enable supported native optimizations
|
||||
# HAVE_SSE2 - SSE2 supported
|
||||
# HAVE_SSE4_2 - SSE4.2 supported
|
||||
# HAVE_AVX - AVX supported
|
||||
# HAVE_AVX2 - AVX2 supported
|
||||
# HAVE_NEON - ARM NEON supported
|
||||
#
|
||||
# Copyright (C) 2018 by Matt Swain <m.swain@me.com>
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
|
||||
include(CheckCXXSourceRuns)
|
||||
|
||||
if(MSVC)
|
||||
set(SSE2_FLAG "/arch:SSE2")
|
||||
set(SSE4_2_FLAG "/arch:SSE2") # /arch:SSE4 flag doesn't exist?
|
||||
set(AVX_FLAG "/arch:AVX")
|
||||
set(AVX2_FLAG "/arch:AVX2")
|
||||
else()
|
||||
set(SSE2_FLAG "-msse2")
|
||||
set(SSE4_2_FLAG "-msse4.2")
|
||||
set(AVX_FLAG "-mavx")
|
||||
set(AVX2_FLAG "-mavx2")
|
||||
endif()
|
||||
|
||||
# Store current CMAKE_REQUIRED_FLAGS so we can reset to this afterwards
|
||||
set(PREVIOUS_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS ${SSE2_FLAG})
|
||||
check_cxx_source_runs("
|
||||
#include <emmintrin.h>
|
||||
int main() {
|
||||
__m128d a, b;
|
||||
double vals[2] = {0};
|
||||
a = _mm_loadu_pd(vals);
|
||||
b = _mm_add_pd(a, a);
|
||||
_mm_storeu_pd(vals, b);
|
||||
return 0;
|
||||
}"
|
||||
HAVE_SSE2)
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS ${SSE4_2_FLAG})
|
||||
check_cxx_source_runs("
|
||||
#include <emmintrin.h>
|
||||
#include <nmmintrin.h>
|
||||
int main() {
|
||||
long long a[2] = { 1, 2};
|
||||
long long b[2] = {-1, 3};
|
||||
long long c[2];
|
||||
__m128i va = _mm_loadu_si128((__m128i*)a);
|
||||
__m128i vb = _mm_loadu_si128((__m128i*)b);
|
||||
__m128i vc = _mm_cmpgt_epi64(va, vb);
|
||||
_mm_storeu_si128((__m128i*)c, vc);
|
||||
if (c[0] == -1LL && c[1] == 0LL)
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
}"
|
||||
HAVE_SSE4_2)
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS ${AVX_FLAG})
|
||||
check_cxx_source_runs("
|
||||
#include <immintrin.h>
|
||||
int main()
|
||||
{
|
||||
__m256 a;
|
||||
a = _mm256_set1_ps(0);
|
||||
return 0;
|
||||
}"
|
||||
HAVE_AVX)
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS ${AVX2_FLAG})
|
||||
check_cxx_source_runs("
|
||||
#include <immintrin.h>
|
||||
int main()
|
||||
{
|
||||
__m256i a = {0};
|
||||
a = _mm256_abs_epi16(a);
|
||||
return 0;
|
||||
}"
|
||||
HAVE_AVX2)
|
||||
|
||||
# Reset CMAKE_REQUIRED_FLAGS
|
||||
set(CMAKE_REQUIRED_FLAGS ${PREVIOUS_CMAKE_REQUIRED_FLAGS})
|
||||
|
||||
# Check if __ARM_NEON is defined TODO: Not sure this works
|
||||
CHECK_SYMBOL_EXISTS(__ARM_NEON "" HAVE_NEON)
|
||||
|
||||
# Set native flags to all supported
|
||||
if(NOT MSVC)
|
||||
# For gcc, clang, intel, just use -march=native to automatically enable all supported flags
|
||||
set(NATIVE_FLAGS "-march=native")
|
||||
# -msse2 -msse4.2 -mavx -mavx2
|
||||
else()
|
||||
# For MSVC, enable flags individually (Don't set /arch:SSE2 if CMAKE_CL_64 - it is on by default)
|
||||
if(HAVE_AVX2)
|
||||
set(NATIVE_FLAGS "${AVX2_FLAG}")
|
||||
elseif(HAVE_AVX)
|
||||
set(NATIVE_FLAGS "${AVX_FLAG}")
|
||||
elseif(HAVE_SSE4_2 AND NOT CMAKE_CL_64)
|
||||
set(NATIVE_FLAGS "${SSE4_2_FLAG}")
|
||||
elseif(HAVE_SSE2 AND NOT CMAKE_CL_64)
|
||||
SET(NATIVE_FLAGS "${SSE2_FLAG}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
mark_as_advanced(NATIVE_FLAGS HAVE_SSE2 HAVE_SSE4_2 HAVE_AVX HAVE_AVX2 HAVE_NEON)
|
||||
# Check support for native CPU architecture optimizations
|
||||
#
|
||||
# This module will define the following variables:
|
||||
#
|
||||
# NATIVE_FLAGS - compiler flags to enable supported native optimizations
|
||||
# HAVE_SSE2 - SSE2 supported
|
||||
# HAVE_SSE4_2 - SSE4.2 supported
|
||||
# HAVE_AVX - AVX supported
|
||||
# HAVE_AVX2 - AVX2 supported
|
||||
# HAVE_NEON - ARM NEON supported
|
||||
#
|
||||
# Copyright (C) 2018 by Matt Swain <m.swain@me.com>
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
|
||||
include(CheckCXXSourceRuns)
|
||||
|
||||
if(MSVC)
|
||||
set(SSE2_FLAG "/arch:SSE2")
|
||||
set(SSE4_2_FLAG "/arch:SSE2") # /arch:SSE4 flag doesn't exist?
|
||||
set(AVX_FLAG "/arch:AVX")
|
||||
set(AVX2_FLAG "/arch:AVX2")
|
||||
else()
|
||||
set(SSE2_FLAG "-msse2")
|
||||
set(SSE4_2_FLAG "-msse4.2")
|
||||
set(AVX_FLAG "-mavx")
|
||||
set(AVX2_FLAG "-mavx2")
|
||||
endif()
|
||||
|
||||
# Store current CMAKE_REQUIRED_FLAGS so we can reset to this afterwards
|
||||
set(PREVIOUS_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS ${SSE2_FLAG})
|
||||
check_cxx_source_runs("
|
||||
#include <emmintrin.h>
|
||||
int main() {
|
||||
__m128d a, b;
|
||||
double vals[2] = {0};
|
||||
a = _mm_loadu_pd(vals);
|
||||
b = _mm_add_pd(a, a);
|
||||
_mm_storeu_pd(vals, b);
|
||||
return 0;
|
||||
}"
|
||||
HAVE_SSE2)
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS ${SSE4_2_FLAG})
|
||||
check_cxx_source_runs("
|
||||
#include <emmintrin.h>
|
||||
#include <nmmintrin.h>
|
||||
int main() {
|
||||
long long a[2] = { 1, 2};
|
||||
long long b[2] = {-1, 3};
|
||||
long long c[2];
|
||||
__m128i va = _mm_loadu_si128((__m128i*)a);
|
||||
__m128i vb = _mm_loadu_si128((__m128i*)b);
|
||||
__m128i vc = _mm_cmpgt_epi64(va, vb);
|
||||
_mm_storeu_si128((__m128i*)c, vc);
|
||||
if (c[0] == -1LL && c[1] == 0LL)
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
}"
|
||||
HAVE_SSE4_2)
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS ${AVX_FLAG})
|
||||
check_cxx_source_runs("
|
||||
#include <immintrin.h>
|
||||
int main()
|
||||
{
|
||||
__m256 a;
|
||||
a = _mm256_set1_ps(0);
|
||||
return 0;
|
||||
}"
|
||||
HAVE_AVX)
|
||||
|
||||
set(CMAKE_REQUIRED_FLAGS ${AVX2_FLAG})
|
||||
check_cxx_source_runs("
|
||||
#include <immintrin.h>
|
||||
int main()
|
||||
{
|
||||
__m256i a = {0};
|
||||
a = _mm256_abs_epi16(a);
|
||||
return 0;
|
||||
}"
|
||||
HAVE_AVX2)
|
||||
|
||||
# Reset CMAKE_REQUIRED_FLAGS
|
||||
set(CMAKE_REQUIRED_FLAGS ${PREVIOUS_CMAKE_REQUIRED_FLAGS})
|
||||
|
||||
# Check if __ARM_NEON is defined TODO: Not sure this works
|
||||
CHECK_SYMBOL_EXISTS(__ARM_NEON "" HAVE_NEON)
|
||||
|
||||
# Set native flags to all supported
|
||||
if(NOT MSVC)
|
||||
# For gcc, clang, intel, just use -march=native to automatically enable all supported flags
|
||||
set(NATIVE_FLAGS "-march=native")
|
||||
# -msse2 -msse4.2 -mavx -mavx2
|
||||
else()
|
||||
# For MSVC, enable flags individually (Don't set /arch:SSE2 if CMAKE_CL_64 - it is on by default)
|
||||
if(HAVE_AVX2)
|
||||
set(NATIVE_FLAGS "${AVX2_FLAG}")
|
||||
elseif(HAVE_AVX)
|
||||
set(NATIVE_FLAGS "${AVX_FLAG}")
|
||||
elseif(HAVE_SSE4_2 AND NOT CMAKE_CL_64)
|
||||
set(NATIVE_FLAGS "${SSE4_2_FLAG}")
|
||||
elseif(HAVE_SSE2 AND NOT CMAKE_CL_64)
|
||||
SET(NATIVE_FLAGS "${SSE2_FLAG}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
mark_as_advanced(NATIVE_FLAGS HAVE_SSE2 HAVE_SSE4_2 HAVE_AVX HAVE_AVX2 HAVE_NEON)
|
||||
|
1866
data/chemdrawcdx.h
1866
data/chemdrawcdx.h
File diff suppressed because it is too large
Load Diff
450
data/patty.rules
450
data/patty.rules
@ -1,225 +1,225 @@
|
||||
# CAT CATION, used for basic functionality; i.e., protonated
|
||||
# ANI ANION, used for acidic functionality; i.e., de-protonated
|
||||
#
|
||||
# POL POLAR, atom is neither an ANION nor a CATION and has a LP
|
||||
# and a polar H, or (due to tautomerization) can be a donor
|
||||
# or an acceptor.
|
||||
#
|
||||
# DON DONOR, an atom that is none of the above and has a polar H.
|
||||
# ACC ACCEPTOR, an atom that is none of the above and has an LP.
|
||||
#
|
||||
# HYD HYRDOPHOBIC, an atom that is none of the above and is an
|
||||
# accessible atom that has hydrophobic functionality
|
||||
#
|
||||
# OTH OTHER, an atom that falls in none of the above classes.
|
||||
* OTH # Default Rule
|
||||
[#8] ACC # O
|
||||
[#7] DON # N
|
||||
[#6,#14] HYD # C, Si
|
||||
[#16] HYD # S
|
||||
[#34] HYD # Se
|
||||
[#16] HYD # P
|
||||
[#33] HYD # As
|
||||
[#9D1,#17D1,#35D1,#53D1,#85D1] HYD # halogens
|
||||
[#9D0,#17D0,#35D0,#53D0,#85D0] ANI
|
||||
[OHD1] POL # hydroxide
|
||||
[OH2] POL # water (NEW)
|
||||
[#1] HYD # H
|
||||
[#1][#7] DON
|
||||
[NH0]#* ACC # :N# (sp)
|
||||
[ND2](*)=* ACC # =N- (sp2)
|
||||
[nH0] ACC # aomatic N - (sp2)
|
||||
[NH;D1]=* POL # HN=X
|
||||
[ND1]=* POL # N=N= (azide)
|
||||
[#7,#15,#33;D4] CAT # quaternary N,P,As
|
||||
# any nonconjugated sp3 N is a basic amine (except next
|
||||
# to conjugated a N)
|
||||
[#7D1]-* CAT
|
||||
[#7D2](-*)-* CAT
|
||||
[#7D3](-*)(-*)-* CAT
|
||||
[#7v4] CAT
|
||||
[#7D3]-N-*=* OTH
|
||||
[#7D3](-*)(-*)-N-*#* OTH
|
||||
# conjugated N's
|
||||
[#7D1]-*=* DON
|
||||
[#7D1]-*:* DON
|
||||
[#7D1]-*#* DON
|
||||
[#7H;D2]-*=* DON
|
||||
[#7H;D2]-*:* DON
|
||||
[#7H;D2]-*#* DON
|
||||
[#7;D3]-*=* OTH # conj & buried
|
||||
[#7;D3]-*:* OTH #
|
||||
[#7;D3](*=*)(-&!@*)*:* OTH
|
||||
[#7;D3]-*#* OTH
|
||||
# amidine
|
||||
#
|
||||
# N+H2
|
||||
# //
|
||||
# CH3--C--:NH2
|
||||
[#7D1]-C(-[#6])=[#7D1] CAT
|
||||
[#7D1]=C(-[#6])-[#7D1] CAT
|
||||
|
||||
# changed to #7D1
|
||||
[#7D1]-C(-S)=[#7D1] CAT
|
||||
[#7D1]=C(-S)-[#7D1] CAT
|
||||
# guanidinium
|
||||
N-C(=N)-N CAT
|
||||
N=C(-N)-N CAT
|
||||
# nitro
|
||||
[OD1]-N=[OD1] ACC
|
||||
[OD1]=N-[OD1] ACC
|
||||
# trisubstituted sp2 amines are cations with exceptions
|
||||
[#7,#15,#33;D3]=* CAT
|
||||
N([OD1])=[OD1] OTH
|
||||
# disbustituted sp amines and exceptions
|
||||
[N+;D2](=*)=* CAT # diazonium -[N+]#
|
||||
[N+;D2]#* CAT # #N-
|
||||
[N+;D2]#[CX1] OTH # isonitrile -N#C:
|
||||
[CX1]#[N+;D2] ACC # isonitrile :C#N-
|
||||
# trisubstituted oxygens, sulfurs and exceptions
|
||||
[#8,#16;D3] CAT # -O(-*)(-*)
|
||||
[#8,#16;D3](=*) CAT # =O-
|
||||
S=[#8,#16;X1] OTH # dative sulfoxides
|
||||
*-[#8,#16;X1] OTH # oxides,sulfides
|
||||
# misc anions
|
||||
[SD1]a ANI
|
||||
# phosphate/arsenate monoanion and S equialents
|
||||
#
|
||||
# O O
|
||||
# | |
|
||||
# P--O (-) and --P--O (-)
|
||||
# /
|
||||
[#8,#16,#34;X1]~[#15,#33;D3]~[#8,#16,#34;D1] ANI
|
||||
[#8,#16,#34;D1]~[#15,#33;D3]~[#8,#16,#34;X1] ANI
|
||||
[#8,#16,#34;X1]~[#15,#33;D4]~[#8,#16,#34;D1] ANI
|
||||
[#8,#16,#34;D1]~[#15,#33;D4]~[#8,#16,#34;X1] ANI
|
||||
|
||||
[#15,#33;D3]([#8,#16,#34;X1])~[#8,#16,#34;D1] OTH
|
||||
[#15,#33;D3]([#8,#16,#34;D1])~[#8,#16,#34;X1] OTH
|
||||
[#15,#33;D4]([#8,#16,#34;X1])~[#8,#16,#34;D1] OTH
|
||||
[#15,#33;D4]([#8,#16,#34;D1])~[#8,#16,#34;X1] OTH
|
||||
# sulfite and selenite anion and S equivalents
|
||||
#
|
||||
# O O
|
||||
# | |
|
||||
# S--O (-) and O--S--O (-)
|
||||
# / |
|
||||
[#8,#16,#34;X1]~[#8,#16,#34;D3]~[#8,#16,#34;D1] ANI
|
||||
[#8,#16,#34;D1]~[#8,#16,#34;D3]~[#8,#16,#34;X1] ANI
|
||||
[#8,#16,#34;X1]~[#8,#16,#34;D4](~[#8,#16,#34;D1])~[#8,#16,#34;X1] ANI
|
||||
[#8,#16,#34;D1]~[#8,#16,#34;D4](~[#8,#16,#34;X1])~[#8,#16,#34;X1] ANI
|
||||
# muscimol anion (first O is ANI, N is ACC)
|
||||
#
|
||||
# *--* *--*
|
||||
# / | / |
|
||||
# (-) O-C O or O=C O
|
||||
# \\ / \ /
|
||||
# N: :N (-)
|
||||
[#8D1][#6]1=[#7][#8]**1 ANI
|
||||
[#7]1=[#6]([#8D1])**[#8]1 ANI
|
||||
[#8]=[#6]1[#7][#8]**1 ANI
|
||||
[#7]1[#6](=O)**[#8]1 ANI
|
||||
# tetrazole anion (all Ns are ANI)
|
||||
#
|
||||
# :N--N: (-) :N--N:
|
||||
# # || / ||
|
||||
# :N C or :N C (aromatic)
|
||||
# \ / \\ /
|
||||
# N: (-) N:
|
||||
[nD2]1[nD2][nD2][nD2]c1 ANI
|
||||
[nD2]1[nD2][nD2]c[nD2]1 ANI
|
||||
[nD2]1[nD2]c[nD2][nD2]1 ANI
|
||||
[nD2]1c[nD2][nD2][nD2]1 ANI
|
||||
# diaminopyrimidine (ring Ns are POL)
|
||||
#
|
||||
# *==*
|
||||
# / \
|
||||
# :N C--NH2 (aromatic)
|
||||
# \\ #
|
||||
# C--N:
|
||||
# /
|
||||
# NH2
|
||||
[nD2]1c(N)[nD2]c(N)aa1 POL
|
||||
[nD2]1c(N)aa[nD2]c1(N) POL
|
||||
# make imidazole Ns both POL
|
||||
#
|
||||
# C==C C==C
|
||||
# / | / |
|
||||
# :N NH or HN N: (aromatic)
|
||||
# \\ / \ #
|
||||
# C C
|
||||
#
|
||||
#
|
||||
n1cncc1 POL
|
||||
# stabilized sulfonamides and phosphonamides
|
||||
#
|
||||
# O
|
||||
# |
|
||||
# a--S--NH2
|
||||
# |
|
||||
# O
|
||||
[ND1]~[SD4](a)(~[#8,#16,#34;D1])(~[#8,#16,#34;D1]) POL
|
||||
[ND1]~[PD4](a)(~[#8,#16,#34;D1])(~[#8,#16,#34;D1]) POL
|
||||
[#8,#16,#34;D1]~[SD4](a)(~[#8,#16,#34;D1])~[ND1] ACC
|
||||
[#8,#16,#34;D1]~[PD4](a)(~[#8,#16,#34;D1])~[ND1] ACC
|
||||
|
||||
[#8,#16,#34;D1]~[SD4](a)(~[#8,#16,#34;D1])~[ND2] ANI
|
||||
[#8,#16,#34;D1]~[PD4](a)(~[#8,#16,#34;D1])~[ND2] ANI
|
||||
[ND2]~[SD4](a)(~[#8,#16,#34;D1])(~[#8,#16,#34;D1]) ANI
|
||||
# carbonyl-hydroxide tautaumers
|
||||
#
|
||||
# !O !O
|
||||
# | |
|
||||
# C C
|
||||
# / \\/ \\
|
||||
# OH X O
|
||||
[OH]C(*)=*C=O POL
|
||||
O=C*=C(*)[OH] POL
|
||||
O=C-*:[#6](*)[OH] POL
|
||||
# carboxylates and S equivalents
|
||||
#
|
||||
# O
|
||||
# #
|
||||
# -C
|
||||
# \
|
||||
# O (-)
|
||||
[#8,#16,#34;D1]C=[#8,#16,#34] ANI
|
||||
[#8,#16,#34]=C[#8,#16,#34;D1] ANI
|
||||
# *==*
|
||||
# / \
|
||||
# * C==O (aromatic)
|
||||
# \\ /
|
||||
# C--C And 4 Cs away
|
||||
# /
|
||||
# OH
|
||||
[OH]c1cc(=O)aaa1 POL
|
||||
O=c1cc([OH])aaa1 POL
|
||||
[OH]c1ccc(=O)aa1 POL
|
||||
O=c1ccc([OH])aa1 POL
|
||||
# special ionizations of adjacent keto/enols
|
||||
[OD1]C=CC(=O)[O]* ANI
|
||||
[OD1]C=CC(=O)[N]* ANI
|
||||
O=C-CC(=O)[O]* ANI
|
||||
O=C-CC(=O)[N]* ANI
|
||||
OC=C-C(=O)C=CO ANI
|
||||
OC-C=C(-O)C=CO ANI
|
||||
# planar buried C bonded to electronegative atom
|
||||
|
||||
[#6D3](=*)-[#7,#8] OTH
|
||||
[#6D3](:*)(:*)[#7,#8] OTH
|
||||
[#6D3](-*)(:*):[#7,#8] OTH
|
||||
[#6D3]=[#7,#8] OTH
|
||||
[#6D2](#*)-[#7,#8] OTH
|
||||
[#6D2](*)#[#7,#8] OTH
|
||||
[#6D2](=*)=[#7,#8] OTH
|
||||
|
||||
[#16D2](#*)-[#7,#8] OTH # buried sp S
|
||||
[#16D2](*)#[#7,#8] OTH
|
||||
[#16D2](=*)=[#7,#8] OTH
|
||||
# misc fixups
|
||||
[ND2](=*)=* OTH # sp buried
|
||||
[ND2](*)#* OTH
|
||||
[#7,#15,#33;D4]=[S,O] OTH
|
||||
[ND3]P(=O) OTH
|
||||
[OD1]-n ACC
|
||||
n-[OD1] OTH
|
||||
# CAT CATION, used for basic functionality; i.e., protonated
|
||||
# ANI ANION, used for acidic functionality; i.e., de-protonated
|
||||
#
|
||||
# POL POLAR, atom is neither an ANION nor a CATION and has a LP
|
||||
# and a polar H, or (due to tautomerization) can be a donor
|
||||
# or an acceptor.
|
||||
#
|
||||
# DON DONOR, an atom that is none of the above and has a polar H.
|
||||
# ACC ACCEPTOR, an atom that is none of the above and has an LP.
|
||||
#
|
||||
# HYD HYRDOPHOBIC, an atom that is none of the above and is an
|
||||
# accessible atom that has hydrophobic functionality
|
||||
#
|
||||
# OTH OTHER, an atom that falls in none of the above classes.
|
||||
* OTH # Default Rule
|
||||
[#8] ACC # O
|
||||
[#7] DON # N
|
||||
[#6,#14] HYD # C, Si
|
||||
[#16] HYD # S
|
||||
[#34] HYD # Se
|
||||
[#16] HYD # P
|
||||
[#33] HYD # As
|
||||
[#9D1,#17D1,#35D1,#53D1,#85D1] HYD # halogens
|
||||
[#9D0,#17D0,#35D0,#53D0,#85D0] ANI
|
||||
[OHD1] POL # hydroxide
|
||||
[OH2] POL # water (NEW)
|
||||
[#1] HYD # H
|
||||
[#1][#7] DON
|
||||
[NH0]#* ACC # :N# (sp)
|
||||
[ND2](*)=* ACC # =N- (sp2)
|
||||
[nH0] ACC # aomatic N - (sp2)
|
||||
[NH;D1]=* POL # HN=X
|
||||
[ND1]=* POL # N=N= (azide)
|
||||
[#7,#15,#33;D4] CAT # quaternary N,P,As
|
||||
# any nonconjugated sp3 N is a basic amine (except next
|
||||
# to conjugated a N)
|
||||
[#7D1]-* CAT
|
||||
[#7D2](-*)-* CAT
|
||||
[#7D3](-*)(-*)-* CAT
|
||||
[#7v4] CAT
|
||||
[#7D3]-N-*=* OTH
|
||||
[#7D3](-*)(-*)-N-*#* OTH
|
||||
# conjugated N's
|
||||
[#7D1]-*=* DON
|
||||
[#7D1]-*:* DON
|
||||
[#7D1]-*#* DON
|
||||
[#7H;D2]-*=* DON
|
||||
[#7H;D2]-*:* DON
|
||||
[#7H;D2]-*#* DON
|
||||
[#7;D3]-*=* OTH # conj & buried
|
||||
[#7;D3]-*:* OTH #
|
||||
[#7;D3](*=*)(-&!@*)*:* OTH
|
||||
[#7;D3]-*#* OTH
|
||||
# amidine
|
||||
#
|
||||
# N+H2
|
||||
# //
|
||||
# CH3--C--:NH2
|
||||
[#7D1]-C(-[#6])=[#7D1] CAT
|
||||
[#7D1]=C(-[#6])-[#7D1] CAT
|
||||
|
||||
# changed to #7D1
|
||||
[#7D1]-C(-S)=[#7D1] CAT
|
||||
[#7D1]=C(-S)-[#7D1] CAT
|
||||
# guanidinium
|
||||
N-C(=N)-N CAT
|
||||
N=C(-N)-N CAT
|
||||
# nitro
|
||||
[OD1]-N=[OD1] ACC
|
||||
[OD1]=N-[OD1] ACC
|
||||
# trisubstituted sp2 amines are cations with exceptions
|
||||
[#7,#15,#33;D3]=* CAT
|
||||
N([OD1])=[OD1] OTH
|
||||
# disbustituted sp amines and exceptions
|
||||
[N+;D2](=*)=* CAT # diazonium -[N+]#
|
||||
[N+;D2]#* CAT # #N-
|
||||
[N+;D2]#[CX1] OTH # isonitrile -N#C:
|
||||
[CX1]#[N+;D2] ACC # isonitrile :C#N-
|
||||
# trisubstituted oxygens, sulfurs and exceptions
|
||||
[#8,#16;D3] CAT # -O(-*)(-*)
|
||||
[#8,#16;D3](=*) CAT # =O-
|
||||
S=[#8,#16;X1] OTH # dative sulfoxides
|
||||
*-[#8,#16;X1] OTH # oxides,sulfides
|
||||
# misc anions
|
||||
[SD1]a ANI
|
||||
# phosphate/arsenate monoanion and S equialents
|
||||
#
|
||||
# O O
|
||||
# | |
|
||||
# P--O (-) and --P--O (-)
|
||||
# /
|
||||
[#8,#16,#34;X1]~[#15,#33;D3]~[#8,#16,#34;D1] ANI
|
||||
[#8,#16,#34;D1]~[#15,#33;D3]~[#8,#16,#34;X1] ANI
|
||||
[#8,#16,#34;X1]~[#15,#33;D4]~[#8,#16,#34;D1] ANI
|
||||
[#8,#16,#34;D1]~[#15,#33;D4]~[#8,#16,#34;X1] ANI
|
||||
|
||||
[#15,#33;D3]([#8,#16,#34;X1])~[#8,#16,#34;D1] OTH
|
||||
[#15,#33;D3]([#8,#16,#34;D1])~[#8,#16,#34;X1] OTH
|
||||
[#15,#33;D4]([#8,#16,#34;X1])~[#8,#16,#34;D1] OTH
|
||||
[#15,#33;D4]([#8,#16,#34;D1])~[#8,#16,#34;X1] OTH
|
||||
# sulfite and selenite anion and S equivalents
|
||||
#
|
||||
# O O
|
||||
# | |
|
||||
# S--O (-) and O--S--O (-)
|
||||
# / |
|
||||
[#8,#16,#34;X1]~[#8,#16,#34;D3]~[#8,#16,#34;D1] ANI
|
||||
[#8,#16,#34;D1]~[#8,#16,#34;D3]~[#8,#16,#34;X1] ANI
|
||||
[#8,#16,#34;X1]~[#8,#16,#34;D4](~[#8,#16,#34;D1])~[#8,#16,#34;X1] ANI
|
||||
[#8,#16,#34;D1]~[#8,#16,#34;D4](~[#8,#16,#34;X1])~[#8,#16,#34;X1] ANI
|
||||
# muscimol anion (first O is ANI, N is ACC)
|
||||
#
|
||||
# *--* *--*
|
||||
# / | / |
|
||||
# (-) O-C O or O=C O
|
||||
# \\ / \ /
|
||||
# N: :N (-)
|
||||
[#8D1][#6]1=[#7][#8]**1 ANI
|
||||
[#7]1=[#6]([#8D1])**[#8]1 ANI
|
||||
[#8]=[#6]1[#7][#8]**1 ANI
|
||||
[#7]1[#6](=O)**[#8]1 ANI
|
||||
# tetrazole anion (all Ns are ANI)
|
||||
#
|
||||
# :N--N: (-) :N--N:
|
||||
# # || / ||
|
||||
# :N C or :N C (aromatic)
|
||||
# \ / \\ /
|
||||
# N: (-) N:
|
||||
[nD2]1[nD2][nD2][nD2]c1 ANI
|
||||
[nD2]1[nD2][nD2]c[nD2]1 ANI
|
||||
[nD2]1[nD2]c[nD2][nD2]1 ANI
|
||||
[nD2]1c[nD2][nD2][nD2]1 ANI
|
||||
# diaminopyrimidine (ring Ns are POL)
|
||||
#
|
||||
# *==*
|
||||
# / \
|
||||
# :N C--NH2 (aromatic)
|
||||
# \\ #
|
||||
# C--N:
|
||||
# /
|
||||
# NH2
|
||||
[nD2]1c(N)[nD2]c(N)aa1 POL
|
||||
[nD2]1c(N)aa[nD2]c1(N) POL
|
||||
# make imidazole Ns both POL
|
||||
#
|
||||
# C==C C==C
|
||||
# / | / |
|
||||
# :N NH or HN N: (aromatic)
|
||||
# \\ / \ #
|
||||
# C C
|
||||
#
|
||||
#
|
||||
n1cncc1 POL
|
||||
# stabilized sulfonamides and phosphonamides
|
||||
#
|
||||
# O
|
||||
# |
|
||||
# a--S--NH2
|
||||
# |
|
||||
# O
|
||||
[ND1]~[SD4](a)(~[#8,#16,#34;D1])(~[#8,#16,#34;D1]) POL
|
||||
[ND1]~[PD4](a)(~[#8,#16,#34;D1])(~[#8,#16,#34;D1]) POL
|
||||
[#8,#16,#34;D1]~[SD4](a)(~[#8,#16,#34;D1])~[ND1] ACC
|
||||
[#8,#16,#34;D1]~[PD4](a)(~[#8,#16,#34;D1])~[ND1] ACC
|
||||
|
||||
[#8,#16,#34;D1]~[SD4](a)(~[#8,#16,#34;D1])~[ND2] ANI
|
||||
[#8,#16,#34;D1]~[PD4](a)(~[#8,#16,#34;D1])~[ND2] ANI
|
||||
[ND2]~[SD4](a)(~[#8,#16,#34;D1])(~[#8,#16,#34;D1]) ANI
|
||||
# carbonyl-hydroxide tautaumers
|
||||
#
|
||||
# !O !O
|
||||
# | |
|
||||
# C C
|
||||
# / \\/ \\
|
||||
# OH X O
|
||||
[OH]C(*)=*C=O POL
|
||||
O=C*=C(*)[OH] POL
|
||||
O=C-*:[#6](*)[OH] POL
|
||||
# carboxylates and S equivalents
|
||||
#
|
||||
# O
|
||||
# #
|
||||
# -C
|
||||
# \
|
||||
# O (-)
|
||||
[#8,#16,#34;D1]C=[#8,#16,#34] ANI
|
||||
[#8,#16,#34]=C[#8,#16,#34;D1] ANI
|
||||
# *==*
|
||||
# / \
|
||||
# * C==O (aromatic)
|
||||
# \\ /
|
||||
# C--C And 4 Cs away
|
||||
# /
|
||||
# OH
|
||||
[OH]c1cc(=O)aaa1 POL
|
||||
O=c1cc([OH])aaa1 POL
|
||||
[OH]c1ccc(=O)aa1 POL
|
||||
O=c1ccc([OH])aa1 POL
|
||||
# special ionizations of adjacent keto/enols
|
||||
[OD1]C=CC(=O)[O]* ANI
|
||||
[OD1]C=CC(=O)[N]* ANI
|
||||
O=C-CC(=O)[O]* ANI
|
||||
O=C-CC(=O)[N]* ANI
|
||||
OC=C-C(=O)C=CO ANI
|
||||
OC-C=C(-O)C=CO ANI
|
||||
# planar buried C bonded to electronegative atom
|
||||
|
||||
[#6D3](=*)-[#7,#8] OTH
|
||||
[#6D3](:*)(:*)[#7,#8] OTH
|
||||
[#6D3](-*)(:*):[#7,#8] OTH
|
||||
[#6D3]=[#7,#8] OTH
|
||||
[#6D2](#*)-[#7,#8] OTH
|
||||
[#6D2](*)#[#7,#8] OTH
|
||||
[#6D2](=*)=[#7,#8] OTH
|
||||
|
||||
[#16D2](#*)-[#7,#8] OTH # buried sp S
|
||||
[#16D2](*)#[#7,#8] OTH
|
||||
[#16D2](=*)=[#7,#8] OTH
|
||||
# misc fixups
|
||||
[ND2](=*)=* OTH # sp buried
|
||||
[ND2](*)#* OTH
|
||||
[#7,#15,#33;D4]=[S,O] OTH
|
||||
[ND3]P(=O) OTH
|
||||
[OD1]-n ACC
|
||||
n-[OD1] OTH
|
||||
|
@ -141,10 +141,10 @@ namespace OpenBabel
|
||||
* to rotate all of the atoms in a molecule.
|
||||
* \code
|
||||
* matrix3x3 rotmatrix = align.GetRotMatrix();
|
||||
* for (unsigned int i = 1; i <= mol.NumAtoms(); ++i) {
|
||||
* vector3 tmpvec = mol.GetAtom(i)->GetVector();
|
||||
* tmpvec *= rotmatrix; //apply the rotation
|
||||
* mol.GetAtom(i)->SetVector(tmpvec);
|
||||
* for (unsigned int i = 1; i <= mol.NumAtoms(); ++i) {
|
||||
* vector3 tmpvec = mol.GetAtom(i)->GetVector();
|
||||
* tmpvec *= rotmatrix; //apply the rotation
|
||||
* mol.GetAtom(i)->SetVector(tmpvec);
|
||||
* }
|
||||
* \endcode
|
||||
* Note that if you wish to use the rotation matrix to find the
|
||||
|
@ -1,33 +1,33 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("OBDotNet")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("The OpenBabel Project")]
|
||||
[assembly: AssemblyProduct("OBDotNet")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2016 The OpenBabel Project")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("0.5.0.0")]
|
||||
[assembly: AssemblyFileVersion("0.5.0.0")]
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("OBDotNet")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("The OpenBabel Project")]
|
||||
[assembly: AssemblyProduct("OBDotNet")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2016 The OpenBabel Project")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("0.5.0.0")]
|
||||
[assembly: AssemblyFileVersion("0.5.0.0")]
|
||||
|
@ -1,421 +1,421 @@
|
||||
/**********************************************************************
|
||||
mdlvalence.h - Implement MDL valence model.
|
||||
|
||||
Copyright (C) 2012 by NextMove Software
|
||||
|
||||
This file is part of the Open Babel project.
|
||||
For more information, see <http://openbabel.org/>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
***********************************************************************/
|
||||
|
||||
/* Return the implicit MDL valence for element "elem" with charge "q". */
|
||||
static unsigned int MDLValence(unsigned int elem, int q, unsigned int val)
|
||||
{
|
||||
switch (elem) {
|
||||
case 1: // H
|
||||
case 3: // Li
|
||||
case 11: // Na
|
||||
case 19: // K
|
||||
case 37: // Rb
|
||||
case 55: // Cs
|
||||
case 87: // Fr
|
||||
if (q == 0 && val <= 1)
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case 4: // Be
|
||||
case 12: // Mg
|
||||
case 20: // Ca
|
||||
case 38: // Sr
|
||||
case 56: // Ba
|
||||
case 88: // Ra
|
||||
switch (q) {
|
||||
case 0: if (val <= 2) return 2; break;
|
||||
case 1: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 5: // B
|
||||
switch (q) {
|
||||
case -4: if (val <= 1) return 1; break;
|
||||
case -3: if (val <= 2) return 2; break;
|
||||
case -2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case -1: if (val <= 4) return 4; break;
|
||||
case 0: if (val <= 3) return 3; break;
|
||||
case 1: if (val <= 2) return 2; break;
|
||||
case 2: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 6: // C
|
||||
switch (q) {
|
||||
case -3: if (val <= 1) return 1; break;
|
||||
case -2: if (val <= 2) return 2; break;
|
||||
case -1: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 0: if (val <= 4) return 4; break;
|
||||
case 1: if (val <= 3) return 3; break;
|
||||
case 2: if (val <= 2) return 2; break;
|
||||
case 3: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 7: // N
|
||||
switch (q) {
|
||||
case -2: if (val <= 1) return 1; break;
|
||||
case -1: if (val <= 2) return 2; break;
|
||||
case 0: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 1: if (val <= 4) return 4; break;
|
||||
case 2: if (val <= 3) return 3; break;
|
||||
case 3: if (val <= 2) return 2; break;
|
||||
case 4: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 8: // O
|
||||
switch (q) {
|
||||
case -1: if (val <= 1) return 1; break;
|
||||
case 0: if (val <= 2) return 2; break;
|
||||
case 1: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 2: if (val <= 4) return 4; break;
|
||||
case 3: if (val <= 3) return 3; break;
|
||||
case 4: if (val <= 2) return 2; break;
|
||||
case 5: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 9: // F
|
||||
switch (q) {
|
||||
case 0: if (val <= 1) return 1; break;
|
||||
case 1: if (val <= 2) return 2; break;
|
||||
case 2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 3: if (val <= 4) return 4; break;
|
||||
case 4: if (val <= 3) return 3; break;
|
||||
case 5: if (val <= 2) return 2; break;
|
||||
case 6: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 13: // Al
|
||||
switch (q) {
|
||||
case -4: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -3: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case -2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case -1: if (val <= 4) return 4; break;
|
||||
case 0: if (val <= 3) return 3; break;
|
||||
case 1: if (val <= 2) return 2; break;
|
||||
case 2: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 14: // Si
|
||||
switch (q) {
|
||||
case -3: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -2: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case -1: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 0: if (val <= 4) return 4; break;
|
||||
case 1: if (val <= 3) return 3; break;
|
||||
case 2: if (val <= 2) return 2; break;
|
||||
case 3: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 15: // P
|
||||
switch (q) {
|
||||
case -2: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 0: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 1: if (val <= 4) return 4; break;
|
||||
case 2: if (val <= 3) return 3; break;
|
||||
case 3: if (val <= 2) return 2; break;
|
||||
case 4: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 16: // S
|
||||
switch (q) {
|
||||
case -1: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case 0: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 1: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 2: if (val <= 4) return 4; break;
|
||||
case 3: if (val <= 3) return 3; break;
|
||||
case 4: if (val <= 2) return 2; break;
|
||||
case 5: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 17: // Cl
|
||||
switch (q) {
|
||||
case 0: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case 1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 3: if (val <= 4) return 4; break;
|
||||
case 4: if (val <= 3) return 3; break;
|
||||
case 5: if (val <= 2) return 2; break;
|
||||
case 6: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 31: // Ga
|
||||
switch (q) {
|
||||
case -4: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -3: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case -2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case -1: if (val <= 4) return 4; break;
|
||||
case 0: if (val <= 3) return 3; break;
|
||||
case 2: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 32: // Ge
|
||||
switch (q) {
|
||||
case -3: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -2: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case -1: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 0: if (val <= 4) return 4; break;
|
||||
case 1: if (val <= 3) return 3; break;
|
||||
case 3: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 33: // As
|
||||
switch (q) {
|
||||
case -2: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 0: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 1: if (val <= 4) return 4; break;
|
||||
case 2: if (val <= 3) return 3; break;
|
||||
case 4: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 34: // Se
|
||||
switch (q) {
|
||||
case -1: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case 0: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 1: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 2: if (val <= 4) return 4; break;
|
||||
case 3: if (val <= 3) return 3; break;
|
||||
case 5: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 35: // Br
|
||||
switch (q) {
|
||||
case 0: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case 1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 3: if (val <= 4) return 4; break;
|
||||
case 4: if (val <= 3) return 3; break;
|
||||
case 6: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 49: // In
|
||||
switch (q) {
|
||||
case -4: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -3: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case -2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case -1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4; break;
|
||||
case 0: if (val <= 3) return 3; break;
|
||||
case 2: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 50: // Sn
|
||||
case 82: // Pb
|
||||
switch (q) {
|
||||
case -3: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -2: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case -1: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 0: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4; break;
|
||||
case 1: if (val <= 3) return 3; break;
|
||||
case 3: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 51: // Sb
|
||||
case 83: // Bi
|
||||
switch (q) {
|
||||
case -2: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 0: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4; break;
|
||||
case 2: if (val <= 3) return 3; break;
|
||||
case 4: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 52: // Te
|
||||
case 84: // Po
|
||||
switch (q) {
|
||||
case -1: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case 0: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 1: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 2: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4; break;
|
||||
case 3: if (val <= 3) return 3; break;
|
||||
case 5: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 53: // I
|
||||
case 85: // At
|
||||
switch (q) {
|
||||
case 0: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case 1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 3: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4; break;
|
||||
case 4: if (val <= 3) return 3; break;
|
||||
case 6: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 81: // Tl
|
||||
switch (q) {
|
||||
case -4: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -3: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case -2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case -1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4; break;
|
||||
case 0: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3; break;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
/* Return the implicit valence for element "elem" with charge "q" when using HYD extension */
|
||||
static unsigned int HYDValence(unsigned int elem, int q, unsigned int val)
|
||||
{
|
||||
int impval = 0;
|
||||
if (elem == 6) { // C
|
||||
impval = 4 - abs(q);
|
||||
} else if (elem == 7 || elem == 15) { // N or P
|
||||
impval = 3 + q;
|
||||
} else if (elem == 8 || elem == 16) { // O or S
|
||||
impval = 2 + q;
|
||||
}
|
||||
if (impval < 0) {
|
||||
impval = 0;
|
||||
}
|
||||
if (val > impval) {
|
||||
impval = val;
|
||||
}
|
||||
return impval;
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
mdlvalence.h - Implement MDL valence model.
|
||||
|
||||
Copyright (C) 2012 by NextMove Software
|
||||
|
||||
This file is part of the Open Babel project.
|
||||
For more information, see <http://openbabel.org/>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation version 2 of the License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
***********************************************************************/
|
||||
|
||||
/* Return the implicit MDL valence for element "elem" with charge "q". */
|
||||
static unsigned int MDLValence(unsigned int elem, int q, unsigned int val)
|
||||
{
|
||||
switch (elem) {
|
||||
case 1: // H
|
||||
case 3: // Li
|
||||
case 11: // Na
|
||||
case 19: // K
|
||||
case 37: // Rb
|
||||
case 55: // Cs
|
||||
case 87: // Fr
|
||||
if (q == 0 && val <= 1)
|
||||
return 1;
|
||||
break;
|
||||
|
||||
case 4: // Be
|
||||
case 12: // Mg
|
||||
case 20: // Ca
|
||||
case 38: // Sr
|
||||
case 56: // Ba
|
||||
case 88: // Ra
|
||||
switch (q) {
|
||||
case 0: if (val <= 2) return 2; break;
|
||||
case 1: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 5: // B
|
||||
switch (q) {
|
||||
case -4: if (val <= 1) return 1; break;
|
||||
case -3: if (val <= 2) return 2; break;
|
||||
case -2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case -1: if (val <= 4) return 4; break;
|
||||
case 0: if (val <= 3) return 3; break;
|
||||
case 1: if (val <= 2) return 2; break;
|
||||
case 2: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 6: // C
|
||||
switch (q) {
|
||||
case -3: if (val <= 1) return 1; break;
|
||||
case -2: if (val <= 2) return 2; break;
|
||||
case -1: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 0: if (val <= 4) return 4; break;
|
||||
case 1: if (val <= 3) return 3; break;
|
||||
case 2: if (val <= 2) return 2; break;
|
||||
case 3: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 7: // N
|
||||
switch (q) {
|
||||
case -2: if (val <= 1) return 1; break;
|
||||
case -1: if (val <= 2) return 2; break;
|
||||
case 0: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 1: if (val <= 4) return 4; break;
|
||||
case 2: if (val <= 3) return 3; break;
|
||||
case 3: if (val <= 2) return 2; break;
|
||||
case 4: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 8: // O
|
||||
switch (q) {
|
||||
case -1: if (val <= 1) return 1; break;
|
||||
case 0: if (val <= 2) return 2; break;
|
||||
case 1: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 2: if (val <= 4) return 4; break;
|
||||
case 3: if (val <= 3) return 3; break;
|
||||
case 4: if (val <= 2) return 2; break;
|
||||
case 5: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 9: // F
|
||||
switch (q) {
|
||||
case 0: if (val <= 1) return 1; break;
|
||||
case 1: if (val <= 2) return 2; break;
|
||||
case 2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 3: if (val <= 4) return 4; break;
|
||||
case 4: if (val <= 3) return 3; break;
|
||||
case 5: if (val <= 2) return 2; break;
|
||||
case 6: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 13: // Al
|
||||
switch (q) {
|
||||
case -4: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -3: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case -2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case -1: if (val <= 4) return 4; break;
|
||||
case 0: if (val <= 3) return 3; break;
|
||||
case 1: if (val <= 2) return 2; break;
|
||||
case 2: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 14: // Si
|
||||
switch (q) {
|
||||
case -3: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -2: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case -1: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 0: if (val <= 4) return 4; break;
|
||||
case 1: if (val <= 3) return 3; break;
|
||||
case 2: if (val <= 2) return 2; break;
|
||||
case 3: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 15: // P
|
||||
switch (q) {
|
||||
case -2: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 0: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 1: if (val <= 4) return 4; break;
|
||||
case 2: if (val <= 3) return 3; break;
|
||||
case 3: if (val <= 2) return 2; break;
|
||||
case 4: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 16: // S
|
||||
switch (q) {
|
||||
case -1: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case 0: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 1: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 2: if (val <= 4) return 4; break;
|
||||
case 3: if (val <= 3) return 3; break;
|
||||
case 4: if (val <= 2) return 2; break;
|
||||
case 5: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 17: // Cl
|
||||
switch (q) {
|
||||
case 0: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case 1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 3: if (val <= 4) return 4; break;
|
||||
case 4: if (val <= 3) return 3; break;
|
||||
case 5: if (val <= 2) return 2; break;
|
||||
case 6: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 31: // Ga
|
||||
switch (q) {
|
||||
case -4: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -3: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case -2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case -1: if (val <= 4) return 4; break;
|
||||
case 0: if (val <= 3) return 3; break;
|
||||
case 2: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 32: // Ge
|
||||
switch (q) {
|
||||
case -3: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -2: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case -1: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 0: if (val <= 4) return 4; break;
|
||||
case 1: if (val <= 3) return 3; break;
|
||||
case 3: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 33: // As
|
||||
switch (q) {
|
||||
case -2: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 0: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 1: if (val <= 4) return 4; break;
|
||||
case 2: if (val <= 3) return 3; break;
|
||||
case 4: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 34: // Se
|
||||
switch (q) {
|
||||
case -1: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case 0: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 1: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 2: if (val <= 4) return 4; break;
|
||||
case 3: if (val <= 3) return 3; break;
|
||||
case 5: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 35: // Br
|
||||
switch (q) {
|
||||
case 0: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case 1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 3: if (val <= 4) return 4; break;
|
||||
case 4: if (val <= 3) return 3; break;
|
||||
case 6: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 49: // In
|
||||
switch (q) {
|
||||
case -4: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -3: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case -2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case -1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4; break;
|
||||
case 0: if (val <= 3) return 3; break;
|
||||
case 2: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 50: // Sn
|
||||
case 82: // Pb
|
||||
switch (q) {
|
||||
case -3: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -2: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case -1: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 0: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4; break;
|
||||
case 1: if (val <= 3) return 3; break;
|
||||
case 3: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 51: // Sb
|
||||
case 83: // Bi
|
||||
switch (q) {
|
||||
case -2: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 0: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4; break;
|
||||
case 2: if (val <= 3) return 3; break;
|
||||
case 4: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 52: // Te
|
||||
case 84: // Po
|
||||
switch (q) {
|
||||
case -1: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case 0: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 1: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 2: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4; break;
|
||||
case 3: if (val <= 3) return 3; break;
|
||||
case 5: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 53: // I
|
||||
case 85: // At
|
||||
switch (q) {
|
||||
case 0: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case 1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case 2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case 3: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4; break;
|
||||
case 4: if (val <= 3) return 3; break;
|
||||
case 6: if (val <= 1) return 1; break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 81: // Tl
|
||||
switch (q) {
|
||||
case -4: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3;
|
||||
if (val <= 5) return 5;
|
||||
if (val <= 7) return 7; break;
|
||||
case -3: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4;
|
||||
if (val <= 6) return 6; break;
|
||||
case -2: if (val <= 3) return 3;
|
||||
if (val <= 5) return 5; break;
|
||||
case -1: if (val <= 2) return 2;
|
||||
if (val <= 4) return 4; break;
|
||||
case 0: if (val <= 1) return 1;
|
||||
if (val <= 3) return 3; break;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
/* Return the implicit valence for element "elem" with charge "q" when using HYD extension */
|
||||
static unsigned int HYDValence(unsigned int elem, int q, unsigned int val)
|
||||
{
|
||||
int impval = 0;
|
||||
if (elem == 6) { // C
|
||||
impval = 4 - abs(q);
|
||||
} else if (elem == 7 || elem == 15) { // N or P
|
||||
impval = 3 + q;
|
||||
} else if (elem == 8 || elem == 16) { // O or S
|
||||
impval = 2 + q;
|
||||
}
|
||||
if (impval < 0) {
|
||||
impval = 0;
|
||||
}
|
||||
if (val > impval) {
|
||||
impval = val;
|
||||
}
|
||||
return impval;
|
||||
}
|
||||
|
||||
|
@ -1,20 +1,20 @@
|
||||
|
||||
Ketcher 02131813502D 1 1.00000 0.00000 0
|
||||
|
||||
7 6 0 0 0 999 V2000
|
||||
1.0000 1.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1.0000 2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1.8660 2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0.5000 2.8660 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
2.7321 2.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1.8660 3.5000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0.0000 2.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0
|
||||
2 3 1 0 0 0
|
||||
2 4 1 1 0 0
|
||||
3 5 1 0 0 0
|
||||
3 6 2 0 0 0
|
||||
2 7 1 6 0 0
|
||||
M END
|
||||
$$$$
|
||||
|
||||
|
||||
Ketcher 02131813502D 1 1.00000 0.00000 0
|
||||
|
||||
7 6 0 0 0 999 V2000
|
||||
1.0000 1.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1.0000 2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1.8660 2.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0.5000 2.8660 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
2.7321 2.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1.8660 3.5000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0.0000 2.0000 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0
|
||||
2 3 1 0 0 0
|
||||
2 4 1 1 0 0
|
||||
3 5 1 0 0 0
|
||||
3 6 2 0 0 0
|
||||
2 7 1 6 0 0
|
||||
M END
|
||||
$$$$
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,123 +1,123 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE CDXML SYSTEM "http://www.cambridgesoft.com/xml/cdxml.dtd" >
|
||||
<CDXML
|
||||
CreationProgram="ChemDraw JS 2.0.0.9"
|
||||
Name="ACS Document 1996"
|
||||
BoundingBox="606.52 196.60 630.25 208.93"
|
||||
WindowPosition="0 0"
|
||||
WindowSize="0 0"
|
||||
FractionalWidths="yes"
|
||||
InterpretChemically="yes"
|
||||
ShowAtomQuery="yes"
|
||||
ShowAtomStereo="no"
|
||||
ShowAtomEnhancedStereo="yes"
|
||||
ShowAtomNumber="no"
|
||||
ShowResidueID="no"
|
||||
ShowBondQuery="yes"
|
||||
ShowBondRxn="yes"
|
||||
ShowBondStereo="no"
|
||||
ShowTerminalCarbonLabels="no"
|
||||
ShowNonTerminalCarbonLabels="no"
|
||||
HideImplicitHydrogens="no"
|
||||
Magnification="666"
|
||||
LabelFont="24"
|
||||
LabelSize="10"
|
||||
LabelFace="96"
|
||||
CaptionFont="24"
|
||||
CaptionSize="10"
|
||||
HashSpacing="2.50"
|
||||
MarginWidth="1.60"
|
||||
LineWidth="0.60"
|
||||
BoldWidth="2"
|
||||
BondLength="14.40"
|
||||
BondSpacing="18"
|
||||
ChainAngle="120"
|
||||
LabelJustification="Auto"
|
||||
CaptionJustification="Left"
|
||||
AminoAcidTermini="HOH"
|
||||
ShowSequenceTermini="yes"
|
||||
ShowSequenceBonds="yes"
|
||||
ShowSequenceUnlinkedBranches="no"
|
||||
ResidueWrapCount="40"
|
||||
ResidueBlockCount="10"
|
||||
ResidueZigZag="yes"
|
||||
NumberResidueBlocks="no"
|
||||
PrintMargins="36 36 36 36"
|
||||
MacPrintInfo="0003000001200120000000000B6608A0FF84FF880BE309180367052703FC0002000001200120000000000B6608A0000100000064000000010001010100000001270F000100010000000000000000000000000002001901900000000000400000000000000000000100000000000000000000000000000000"
|
||||
ChemPropName=""
|
||||
ChemPropFormula="Chemical Formula: "
|
||||
ChemPropExactMass="Exact Mass: "
|
||||
ChemPropMolWt="Molecular Weight: "
|
||||
ChemPropMOverZ="m/z: "
|
||||
ChemPropAnalysis="Elemental Analysis: "
|
||||
ChemPropBoilingPt="Boiling Point: "
|
||||
ChemPropMeltingPt="Melting Point: "
|
||||
ChemPropCritTemp="Critical Temp: "
|
||||
ChemPropCritPres="Critical Pres: "
|
||||
ChemPropCritVol="Critical Vol: "
|
||||
ChemPropGibbs="Gibbs Energy: "
|
||||
ChemPropLogP="Log P: "
|
||||
ChemPropMR="MR: "
|
||||
ChemPropHenry="Henry's Law: "
|
||||
ChemPropEForm="Heat of Form: "
|
||||
ChemProptPSA="tPSA: "
|
||||
ChemPropID=""
|
||||
ChemPropFragmentLabel=""
|
||||
color="0"
|
||||
bgcolor="1"
|
||||
RxnAutonumberStart="1"
|
||||
RxnAutonumberConditions="no"
|
||||
RxnAutonumberStyle="Roman"
|
||||
RxnAutonumberFormat="(#)"
|
||||
><colortable>
|
||||
<color r="1" g="1" b="1"/>
|
||||
<color r="0" g="0" b="0"/>
|
||||
<color r="1" g="0" b="0"/>
|
||||
<color r="1" g="1" b="0"/>
|
||||
<color r="0" g="1" b="0"/>
|
||||
<color r="0" g="1" b="1"/>
|
||||
<color r="0" g="0" b="1"/>
|
||||
<color r="1" g="0" b="1"/>
|
||||
</colortable><fonttable>
|
||||
<font id="24" charset="utf-8" name="Arial"/>
|
||||
</fonttable><page
|
||||
id="12"
|
||||
BoundingBox="0 0 1294.67 614"
|
||||
Width="1294.67"
|
||||
Height="614"
|
||||
HeaderPosition="36"
|
||||
FooterPosition="36"
|
||||
PageOverlap="0"
|
||||
PrintTrimMarks="yes"
|
||||
HeightPages="1"
|
||||
WidthPages="1"
|
||||
DrawingSpace="poster"
|
||||
><fragment
|
||||
id="8"
|
||||
BoundingBox="606.52 196.60 630.25 208.93"
|
||||
Z="2"
|
||||
><n
|
||||
id="7"
|
||||
p="606.67 208.67"
|
||||
Z="1"
|
||||
AS="N"
|
||||
/><n
|
||||
id="9"
|
||||
p="619.14 201.47"
|
||||
Z="3"
|
||||
Element="8"
|
||||
NumHydrogens="1"
|
||||
NeedsClean="yes"
|
||||
AS="N"
|
||||
><t
|
||||
p="615.25 204.94"
|
||||
BoundingBox="615.25 196.60 630.25 205.14"
|
||||
LabelJustification="Left"
|
||||
LabelAlignment="Left"
|
||||
><s font="24" size="10" color="0" face="96">OH</s></t></n><b
|
||||
id="10"
|
||||
Z="4"
|
||||
B="7"
|
||||
E="9"
|
||||
BS="N"
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE CDXML SYSTEM "http://www.cambridgesoft.com/xml/cdxml.dtd" >
|
||||
<CDXML
|
||||
CreationProgram="ChemDraw JS 2.0.0.9"
|
||||
Name="ACS Document 1996"
|
||||
BoundingBox="606.52 196.60 630.25 208.93"
|
||||
WindowPosition="0 0"
|
||||
WindowSize="0 0"
|
||||
FractionalWidths="yes"
|
||||
InterpretChemically="yes"
|
||||
ShowAtomQuery="yes"
|
||||
ShowAtomStereo="no"
|
||||
ShowAtomEnhancedStereo="yes"
|
||||
ShowAtomNumber="no"
|
||||
ShowResidueID="no"
|
||||
ShowBondQuery="yes"
|
||||
ShowBondRxn="yes"
|
||||
ShowBondStereo="no"
|
||||
ShowTerminalCarbonLabels="no"
|
||||
ShowNonTerminalCarbonLabels="no"
|
||||
HideImplicitHydrogens="no"
|
||||
Magnification="666"
|
||||
LabelFont="24"
|
||||
LabelSize="10"
|
||||
LabelFace="96"
|
||||
CaptionFont="24"
|
||||
CaptionSize="10"
|
||||
HashSpacing="2.50"
|
||||
MarginWidth="1.60"
|
||||
LineWidth="0.60"
|
||||
BoldWidth="2"
|
||||
BondLength="14.40"
|
||||
BondSpacing="18"
|
||||
ChainAngle="120"
|
||||
LabelJustification="Auto"
|
||||
CaptionJustification="Left"
|
||||
AminoAcidTermini="HOH"
|
||||
ShowSequenceTermini="yes"
|
||||
ShowSequenceBonds="yes"
|
||||
ShowSequenceUnlinkedBranches="no"
|
||||
ResidueWrapCount="40"
|
||||
ResidueBlockCount="10"
|
||||
ResidueZigZag="yes"
|
||||
NumberResidueBlocks="no"
|
||||
PrintMargins="36 36 36 36"
|
||||
MacPrintInfo="0003000001200120000000000B6608A0FF84FF880BE309180367052703FC0002000001200120000000000B6608A0000100000064000000010001010100000001270F000100010000000000000000000000000002001901900000000000400000000000000000000100000000000000000000000000000000"
|
||||
ChemPropName=""
|
||||
ChemPropFormula="Chemical Formula: "
|
||||
ChemPropExactMass="Exact Mass: "
|
||||
ChemPropMolWt="Molecular Weight: "
|
||||
ChemPropMOverZ="m/z: "
|
||||
ChemPropAnalysis="Elemental Analysis: "
|
||||
ChemPropBoilingPt="Boiling Point: "
|
||||
ChemPropMeltingPt="Melting Point: "
|
||||
ChemPropCritTemp="Critical Temp: "
|
||||
ChemPropCritPres="Critical Pres: "
|
||||
ChemPropCritVol="Critical Vol: "
|
||||
ChemPropGibbs="Gibbs Energy: "
|
||||
ChemPropLogP="Log P: "
|
||||
ChemPropMR="MR: "
|
||||
ChemPropHenry="Henry's Law: "
|
||||
ChemPropEForm="Heat of Form: "
|
||||
ChemProptPSA="tPSA: "
|
||||
ChemPropID=""
|
||||
ChemPropFragmentLabel=""
|
||||
color="0"
|
||||
bgcolor="1"
|
||||
RxnAutonumberStart="1"
|
||||
RxnAutonumberConditions="no"
|
||||
RxnAutonumberStyle="Roman"
|
||||
RxnAutonumberFormat="(#)"
|
||||
><colortable>
|
||||
<color r="1" g="1" b="1"/>
|
||||
<color r="0" g="0" b="0"/>
|
||||
<color r="1" g="0" b="0"/>
|
||||
<color r="1" g="1" b="0"/>
|
||||
<color r="0" g="1" b="0"/>
|
||||
<color r="0" g="1" b="1"/>
|
||||
<color r="0" g="0" b="1"/>
|
||||
<color r="1" g="0" b="1"/>
|
||||
</colortable><fonttable>
|
||||
<font id="24" charset="utf-8" name="Arial"/>
|
||||
</fonttable><page
|
||||
id="12"
|
||||
BoundingBox="0 0 1294.67 614"
|
||||
Width="1294.67"
|
||||
Height="614"
|
||||
HeaderPosition="36"
|
||||
FooterPosition="36"
|
||||
PageOverlap="0"
|
||||
PrintTrimMarks="yes"
|
||||
HeightPages="1"
|
||||
WidthPages="1"
|
||||
DrawingSpace="poster"
|
||||
><fragment
|
||||
id="8"
|
||||
BoundingBox="606.52 196.60 630.25 208.93"
|
||||
Z="2"
|
||||
><n
|
||||
id="7"
|
||||
p="606.67 208.67"
|
||||
Z="1"
|
||||
AS="N"
|
||||
/><n
|
||||
id="9"
|
||||
p="619.14 201.47"
|
||||
Z="3"
|
||||
Element="8"
|
||||
NumHydrogens="1"
|
||||
NeedsClean="yes"
|
||||
AS="N"
|
||||
><t
|
||||
p="615.25 204.94"
|
||||
BoundingBox="615.25 196.60 630.25 205.14"
|
||||
LabelJustification="Left"
|
||||
LabelAlignment="Left"
|
||||
><s font="24" size="10" color="0" face="96">OH</s></t></n><b
|
||||
id="10"
|
||||
Z="4"
|
||||
B="7"
|
||||
E="9"
|
||||
BS="N"
|
||||
/></fragment></page></CDXML>
|
@ -1,49 +1,49 @@
|
||||
!BIOSYM archive 3
|
||||
PBC=ON
|
||||
|
||||
!DATE Jul 17 10:46:21 2012
|
||||
PBC 7.3394 12.8179 15.9616 91.0307 101.7467 89.0972
|
||||
C1 3.188772890 3.001108398 1.786668084 XXXX 1 xx C 0.000
|
||||
C2 4.253416602 4.013682866 -0.275538205 XXXX 1 xx C 0.000
|
||||
C3 3.313825416 1.816757150 -0.391382914 XXXX 1 xx C 0.000
|
||||
C4 2.935065027 1.886311516 0.934823609 XXXX 1 xx C 0.000
|
||||
C5 2.319690315 -0.009379986 0.017304021 XXXX 1 xx C 0.000
|
||||
C6 4.095582494 5.301409393 1.764487856 XXXX 1 xx C 0.000
|
||||
C7 4.252603323 2.853165482 -2.430187538 XXXX 1 xx C 0.000
|
||||
C8 -3.792688130 1.870881907 16.288217777 XXXX 1 xx C 0.000
|
||||
C9 -2.844536946 4.211728835 16.406750657 XXXX 1 xx C 0.000
|
||||
C10 -2.742297990 3.001930933 14.346199104 XXXX 1 xx C 0.000
|
||||
C11 -3.414441380 1.938996695 14.916152737 XXXX 1 xx C 0.000
|
||||
C12 -2.940130742 1.553785054 12.806709043 XXXX 1 xx C 0.000
|
||||
C13 -3.855518066 3.195609215 18.367235545 XXXX 1 xx C 0.000
|
||||
C14 -1.698499240 5.232334667 14.495618998 XXXX 1 xx C 0.000
|
||||
N1 3.859351688 4.033313167 1.074073550 XXXX 1 xx N 0.000
|
||||
N2 3.973732066 2.855728943 -0.996814385 XXXX 1 xx N 0.000
|
||||
N3 2.944473255 0.637608849 -0.965255305 XXXX 1 xx N 0.000
|
||||
N4 2.295955404 0.691063842 1.179136980 XXXX 1 xx N 0.000
|
||||
N5 -3.493247444 3.083601738 16.953020472 XXXX 1 xx N 0.000
|
||||
N6 -2.416816167 4.108462946 15.083749729 XXXX 1 xx N 0.000
|
||||
N7 -2.446131044 2.768109824 13.035736054 XXXX 1 xx N 0.000
|
||||
N8 -3.532716589 1.012495649 13.901514759 XXXX 1 xx N 0.000
|
||||
O1 2.876510629 3.101666522 2.975026093 XXXX 1 xx O 0.000
|
||||
O2 4.809267706 4.979692269 -0.797266762 XXXX 1 xx O 0.000
|
||||
O3 -4.307102795 0.897583587 16.855013817 XXXX 1 xx O 0.000
|
||||
O4 -2.640865242 5.220383036 17.075331535 XXXX 1 xx O 0.000
|
||||
H5 1.856611867 -0.982535652 -0.072698882 XXXX 1 xx H 0.000
|
||||
H6A 5.131801782 5.588237060 1.664670852 XXXX 1 xx H 0.000
|
||||
H6B 3.837805234 5.148472737 2.811906619 XXXX 1 xx H 0.000
|
||||
H6C 3.462398176 6.079338351 1.327509491 XXXX 1 xx H 0.000
|
||||
H7A 3.464932810 3.383753781 -2.969521604 XXXX 1 xx H 0.000
|
||||
H7B 4.281575843 1.814069083 -2.760601239 XXXX 1 xx H 0.000
|
||||
H7C 5.199734068 3.343507882 -2.603464050 XXXX 1 xx H 0.000
|
||||
H12 -2.893980248 1.033091630 11.859390460 XXXX 1 xx H 0.000
|
||||
H13A -2.964078873 3.189888507 18.988322245 XXXX 1 xx H 0.000
|
||||
H13B -4.488314204 2.346626573 18.609273978 XXXX 1 xx H 0.000
|
||||
H13C -4.391867047 4.131721319 18.518674387 XXXX 1 xx H 0.000
|
||||
H14A -2.386615785 6.006257536 14.148746762 XXXX 1 xx H 0.000
|
||||
H14B -1.116604923 4.858610871 13.658399618 XXXX 1 xx H 0.000
|
||||
H14C -1.041518928 5.653448567 15.252978959 XXXX 1 xx H 0.000
|
||||
H4 1.801459945 0.454097388 2.029979940 XXXX 1 xx H 0.000
|
||||
H8 -4.008381489 0.122424262 13.979097021 XXXX 1 xx H 0.000
|
||||
end
|
||||
end
|
||||
!BIOSYM archive 3
|
||||
PBC=ON
|
||||
|
||||
!DATE Jul 17 10:46:21 2012
|
||||
PBC 7.3394 12.8179 15.9616 91.0307 101.7467 89.0972
|
||||
C1 3.188772890 3.001108398 1.786668084 XXXX 1 xx C 0.000
|
||||
C2 4.253416602 4.013682866 -0.275538205 XXXX 1 xx C 0.000
|
||||
C3 3.313825416 1.816757150 -0.391382914 XXXX 1 xx C 0.000
|
||||
C4 2.935065027 1.886311516 0.934823609 XXXX 1 xx C 0.000
|
||||
C5 2.319690315 -0.009379986 0.017304021 XXXX 1 xx C 0.000
|
||||
C6 4.095582494 5.301409393 1.764487856 XXXX 1 xx C 0.000
|
||||
C7 4.252603323 2.853165482 -2.430187538 XXXX 1 xx C 0.000
|
||||
C8 -3.792688130 1.870881907 16.288217777 XXXX 1 xx C 0.000
|
||||
C9 -2.844536946 4.211728835 16.406750657 XXXX 1 xx C 0.000
|
||||
C10 -2.742297990 3.001930933 14.346199104 XXXX 1 xx C 0.000
|
||||
C11 -3.414441380 1.938996695 14.916152737 XXXX 1 xx C 0.000
|
||||
C12 -2.940130742 1.553785054 12.806709043 XXXX 1 xx C 0.000
|
||||
C13 -3.855518066 3.195609215 18.367235545 XXXX 1 xx C 0.000
|
||||
C14 -1.698499240 5.232334667 14.495618998 XXXX 1 xx C 0.000
|
||||
N1 3.859351688 4.033313167 1.074073550 XXXX 1 xx N 0.000
|
||||
N2 3.973732066 2.855728943 -0.996814385 XXXX 1 xx N 0.000
|
||||
N3 2.944473255 0.637608849 -0.965255305 XXXX 1 xx N 0.000
|
||||
N4 2.295955404 0.691063842 1.179136980 XXXX 1 xx N 0.000
|
||||
N5 -3.493247444 3.083601738 16.953020472 XXXX 1 xx N 0.000
|
||||
N6 -2.416816167 4.108462946 15.083749729 XXXX 1 xx N 0.000
|
||||
N7 -2.446131044 2.768109824 13.035736054 XXXX 1 xx N 0.000
|
||||
N8 -3.532716589 1.012495649 13.901514759 XXXX 1 xx N 0.000
|
||||
O1 2.876510629 3.101666522 2.975026093 XXXX 1 xx O 0.000
|
||||
O2 4.809267706 4.979692269 -0.797266762 XXXX 1 xx O 0.000
|
||||
O3 -4.307102795 0.897583587 16.855013817 XXXX 1 xx O 0.000
|
||||
O4 -2.640865242 5.220383036 17.075331535 XXXX 1 xx O 0.000
|
||||
H5 1.856611867 -0.982535652 -0.072698882 XXXX 1 xx H 0.000
|
||||
H6A 5.131801782 5.588237060 1.664670852 XXXX 1 xx H 0.000
|
||||
H6B 3.837805234 5.148472737 2.811906619 XXXX 1 xx H 0.000
|
||||
H6C 3.462398176 6.079338351 1.327509491 XXXX 1 xx H 0.000
|
||||
H7A 3.464932810 3.383753781 -2.969521604 XXXX 1 xx H 0.000
|
||||
H7B 4.281575843 1.814069083 -2.760601239 XXXX 1 xx H 0.000
|
||||
H7C 5.199734068 3.343507882 -2.603464050 XXXX 1 xx H 0.000
|
||||
H12 -2.893980248 1.033091630 11.859390460 XXXX 1 xx H 0.000
|
||||
H13A -2.964078873 3.189888507 18.988322245 XXXX 1 xx H 0.000
|
||||
H13B -4.488314204 2.346626573 18.609273978 XXXX 1 xx H 0.000
|
||||
H13C -4.391867047 4.131721319 18.518674387 XXXX 1 xx H 0.000
|
||||
H14A -2.386615785 6.006257536 14.148746762 XXXX 1 xx H 0.000
|
||||
H14B -1.116604923 4.858610871 13.658399618 XXXX 1 xx H 0.000
|
||||
H14C -1.041518928 5.653448567 15.252978959 XXXX 1 xx H 0.000
|
||||
H4 1.801459945 0.454097388 2.029979940 XXXX 1 xx H 0.000
|
||||
H8 -4.008381489 0.122424262 13.979097021 XXXX 1 xx H 0.000
|
||||
end
|
||||
end
|
||||
|
@ -1,115 +1,115 @@
|
||||
1a28_STR_1_A_1__C__
|
||||
OpenBabel08091015423D
|
||||
Created by: Ligand Depot
|
||||
53 56 0 0 0 0 0 0 0 0999 V2000
|
||||
21.2060 9.9350 63.0810 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
21.2410 9.4460 64.5510 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
22.0000 8.1250 64.6300 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
21.7010 7.3010 65.5120 O 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.1180 7.8720 63.7340 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.4530 8.7270 62.7850 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
24.6970 8.4430 61.9510 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
24.4490 8.6370 60.4430 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.7890 9.9970 60.0980 C 0 0 2 0 0 0 0 0 0 0 0 0
|
||||
22.4340 10.0950 60.8720 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
22.6140 10.0230 62.4340 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
21.6330 11.3540 60.4500 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
21.4320 11.4340 58.9110 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
22.7860 11.4040 58.1690 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
23.4830 10.0600 58.5980 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
24.6740 9.9180 57.6180 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
24.0720 10.4500 56.2670 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
22.7140 11.1490 56.6270 C 0 0 2 0 0 0 0 0 0 0 0 0
|
||||
23.6590 12.6770 58.4540 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.4270 11.2460 63.0070 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
22.3750 12.3880 55.7810 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.2120 12.8760 55.0520 O 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
21.0090 12.9760 55.8570 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
20.7276 10.8908 63.0317 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
20.6527 9.2078 62.5243 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
20.2458 9.3244 64.9248 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
21.7412 10.1758 65.1528 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.6630 7.0024 63.8428 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
25.0364 7.4453 62.1362 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
25.4467 9.1476 62.2449 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.8391 7.8388 60.0744 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
25.4085 8.6310 59.9695 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
24.4496 10.7944 60.3676 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
21.8644 9.2323 60.5958 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
22.1333 12.2343 60.7960 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
20.6637 11.2834 60.8976 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
20.8968 12.3254 58.6584 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
20.8651 10.5799 58.6043 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
22.8549 9.1982 58.5100 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
24.9920 8.9000 57.5319 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
25.5473 10.4506 57.9320 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.9144 9.6459 55.5789 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
24.7422 11.1360 55.7925 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
21.8840 10.5207 56.3794 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.7063 12.8487 59.5091 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.2439 13.5295 57.9582 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
24.6482 12.5163 58.0791 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.5197 11.1475 64.0684 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
22.9363 12.1646 62.7617 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
24.4028 11.2563 62.5682 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
20.4160 12.4137 56.5477 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
20.5512 12.9757 54.8899 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
21.0801 13.9880 56.1971 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
1 11 1 0 0 0 0
|
||||
1 24 1 0 0 0 0
|
||||
1 25 1 0 0 0 0
|
||||
2 3 1 0 0 0 0
|
||||
2 26 1 0 0 0 0
|
||||
2 27 1 0 0 0 0
|
||||
3 4 2 0 0 0 0
|
||||
3 5 1 0 0 0 0
|
||||
5 6 2 0 0 0 0
|
||||
5 28 1 0 0 0 0
|
||||
6 7 1 0 0 0 0
|
||||
6 11 1 0 0 0 0
|
||||
7 8 1 0 0 0 0
|
||||
7 29 1 0 0 0 0
|
||||
7 30 1 0 0 0 0
|
||||
8 31 1 0 0 0 0
|
||||
8 32 1 0 0 0 0
|
||||
9 8 1 0 0 0 0
|
||||
9 33 1 6 0 0 0
|
||||
10 9 1 1 0 0 0
|
||||
10 11 1 0 0 0 0
|
||||
10 12 1 0 0 0 0
|
||||
10 34 1 0 0 0 0
|
||||
11 20 1 1 0 0 0
|
||||
12 13 1 0 0 0 0
|
||||
12 35 1 0 0 0 0
|
||||
12 36 1 0 0 0 0
|
||||
13 14 1 0 0 0 0
|
||||
13 37 1 0 0 0 0
|
||||
13 38 1 0 0 0 0
|
||||
14 19 1 1 0 0 0
|
||||
15 14 1 1 0 0 0
|
||||
15 9 1 0 0 0 0
|
||||
15 16 1 0 0 0 0
|
||||
15 39 1 0 0 0 0
|
||||
16 17 1 0 0 0 0
|
||||
16 40 1 0 0 0 0
|
||||
16 41 1 0 0 0 0
|
||||
17 18 1 0 0 0 0
|
||||
17 42 1 0 0 0 0
|
||||
17 43 1 0 0 0 0
|
||||
18 14 1 0 0 0 0
|
||||
18 21 1 1 0 0 0
|
||||
18 44 1 0 0 0 0
|
||||
19 45 1 0 0 0 0
|
||||
19 46 1 0 0 0 0
|
||||
19 47 1 0 0 0 0
|
||||
20 48 1 0 0 0 0
|
||||
20 49 1 0 0 0 0
|
||||
20 50 1 0 0 0 0
|
||||
21 22 2 0 0 0 0
|
||||
21 23 1 0 0 0 0
|
||||
23 51 1 0 0 0 0
|
||||
23 52 1 0 0 0 0
|
||||
23 53 1 0 0 0 0
|
||||
M END
|
||||
$$$$
|
||||
1a28_STR_1_A_1__C__
|
||||
OpenBabel08091015423D
|
||||
Created by: Ligand Depot
|
||||
53 56 0 0 0 0 0 0 0 0999 V2000
|
||||
21.2060 9.9350 63.0810 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
21.2410 9.4460 64.5510 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
22.0000 8.1250 64.6300 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
21.7010 7.3010 65.5120 O 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.1180 7.8720 63.7340 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.4530 8.7270 62.7850 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
24.6970 8.4430 61.9510 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
24.4490 8.6370 60.4430 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.7890 9.9970 60.0980 C 0 0 2 0 0 0 0 0 0 0 0 0
|
||||
22.4340 10.0950 60.8720 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
22.6140 10.0230 62.4340 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
21.6330 11.3540 60.4500 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
21.4320 11.4340 58.9110 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
22.7860 11.4040 58.1690 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
23.4830 10.0600 58.5980 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
24.6740 9.9180 57.6180 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
24.0720 10.4500 56.2670 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
22.7140 11.1490 56.6270 C 0 0 2 0 0 0 0 0 0 0 0 0
|
||||
23.6590 12.6770 58.4540 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.4270 11.2460 63.0070 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
22.3750 12.3880 55.7810 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.2120 12.8760 55.0520 O 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
21.0090 12.9760 55.8570 C 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
20.7276 10.8908 63.0317 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
20.6527 9.2078 62.5243 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
20.2458 9.3244 64.9248 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
21.7412 10.1758 65.1528 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.6630 7.0024 63.8428 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
25.0364 7.4453 62.1362 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
25.4467 9.1476 62.2449 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.8391 7.8388 60.0744 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
25.4085 8.6310 59.9695 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
24.4496 10.7944 60.3676 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
21.8644 9.2323 60.5958 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
22.1333 12.2343 60.7960 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
20.6637 11.2834 60.8976 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
20.8968 12.3254 58.6584 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
20.8651 10.5799 58.6043 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
22.8549 9.1982 58.5100 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
24.9920 8.9000 57.5319 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
25.5473 10.4506 57.9320 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.9144 9.6459 55.5789 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
24.7422 11.1360 55.7925 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
21.8840 10.5207 56.3794 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.7063 12.8487 59.5091 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.2439 13.5295 57.9582 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
24.6482 12.5163 58.0791 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
23.5197 11.1475 64.0684 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
22.9363 12.1646 62.7617 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
24.4028 11.2563 62.5682 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
20.4160 12.4137 56.5477 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
20.5512 12.9757 54.8899 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
21.0801 13.9880 56.1971 H 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
1 11 1 0 0 0 0
|
||||
1 24 1 0 0 0 0
|
||||
1 25 1 0 0 0 0
|
||||
2 3 1 0 0 0 0
|
||||
2 26 1 0 0 0 0
|
||||
2 27 1 0 0 0 0
|
||||
3 4 2 0 0 0 0
|
||||
3 5 1 0 0 0 0
|
||||
5 6 2 0 0 0 0
|
||||
5 28 1 0 0 0 0
|
||||
6 7 1 0 0 0 0
|
||||
6 11 1 0 0 0 0
|
||||
7 8 1 0 0 0 0
|
||||
7 29 1 0 0 0 0
|
||||
7 30 1 0 0 0 0
|
||||
8 31 1 0 0 0 0
|
||||
8 32 1 0 0 0 0
|
||||
9 8 1 0 0 0 0
|
||||
9 33 1 6 0 0 0
|
||||
10 9 1 1 0 0 0
|
||||
10 11 1 0 0 0 0
|
||||
10 12 1 0 0 0 0
|
||||
10 34 1 0 0 0 0
|
||||
11 20 1 1 0 0 0
|
||||
12 13 1 0 0 0 0
|
||||
12 35 1 0 0 0 0
|
||||
12 36 1 0 0 0 0
|
||||
13 14 1 0 0 0 0
|
||||
13 37 1 0 0 0 0
|
||||
13 38 1 0 0 0 0
|
||||
14 19 1 1 0 0 0
|
||||
15 14 1 1 0 0 0
|
||||
15 9 1 0 0 0 0
|
||||
15 16 1 0 0 0 0
|
||||
15 39 1 0 0 0 0
|
||||
16 17 1 0 0 0 0
|
||||
16 40 1 0 0 0 0
|
||||
16 41 1 0 0 0 0
|
||||
17 18 1 0 0 0 0
|
||||
17 42 1 0 0 0 0
|
||||
17 43 1 0 0 0 0
|
||||
18 14 1 0 0 0 0
|
||||
18 21 1 1 0 0 0
|
||||
18 44 1 0 0 0 0
|
||||
19 45 1 0 0 0 0
|
||||
19 46 1 0 0 0 0
|
||||
19 47 1 0 0 0 0
|
||||
20 48 1 0 0 0 0
|
||||
20 49 1 0 0 0 0
|
||||
20 50 1 0 0 0 0
|
||||
21 22 2 0 0 0 0
|
||||
21 23 1 0 0 0 0
|
||||
23 51 1 0 0 0 0
|
||||
23 52 1 0 0 0 0
|
||||
23 53 1 0 0 0 0
|
||||
M END
|
||||
$$$$
|
||||
|
@ -1,12 +1,12 @@
|
||||
|
||||
OpenBabel04180922312D
|
||||
|
||||
4 3 0 0 0 0 0 0 0 0999 V2000
|
||||
-2.3571 0.4714 0.0000 Br 0 0 0 0 0
|
||||
-1.6427 0.8839 0.0000 C 0 0 3 0 0
|
||||
-0.9282 0.4714 0.0000 Cl 0 0 0 0 0
|
||||
-1.6427 1.7089 0.0000 F 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
2 3 1 0 0 0 0
|
||||
2 4 1 0 0 0 0
|
||||
M END
|
||||
|
||||
OpenBabel04180922312D
|
||||
|
||||
4 3 0 0 0 0 0 0 0 0999 V2000
|
||||
-2.3571 0.4714 0.0000 Br 0 0 0 0 0
|
||||
-1.6427 0.8839 0.0000 C 0 0 3 0 0
|
||||
-0.9282 0.4714 0.0000 Cl 0 0 0 0 0
|
||||
-1.6427 1.7089 0.0000 F 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
2 3 1 0 0 0 0
|
||||
2 4 1 0 0 0 0
|
||||
M END
|
||||
|
@ -1,180 +1,180 @@
|
||||
|
||||
SMMXDraw05171211572D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
9.8125 -5.4375 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -6.6186 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
8.6314 -5.4375 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -4.2564 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
10.9936 -5.4375 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
1 3 1 0 0 0 0
|
||||
1 4 1 0 0 0 0
|
||||
1 5 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
FC(I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171211572D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
9.8125 -5.4375 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -6.6186 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
8.6314 -5.4375 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -4.2564 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
10.9936 -5.4375 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 1 0 0 0
|
||||
1 3 1 6 0 0 0
|
||||
1 4 1 1 0 0 0
|
||||
1 5 1 6 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@@](I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171211572D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
9.8125 -5.4375 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -6.6186 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
8.6314 -5.4375 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -4.2564 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
10.9936 -5.4375 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 1 0 0 0
|
||||
1 3 1 0 0 0 0
|
||||
1 4 1 0 0 0 0
|
||||
1 5 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@@](I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171211572D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
9.8125 -5.4375 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -6.6186 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
8.6314 -5.4375 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -4.2564 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
10.9936 -5.4375 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 1 0 0 0
|
||||
1 3 1 1 0 0 0
|
||||
1 4 1 0 0 0 0
|
||||
1 5 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
FC(I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171211572D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
9.8125 -5.4375 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -6.6186 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
8.6314 -5.4375 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -4.2564 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
10.9936 -5.4375 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 1 0 0 0
|
||||
1 3 1 0 0 0 0
|
||||
1 4 1 6 0 0 0
|
||||
1 5 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
FC(I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171211572D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
9.8125 -5.4375 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -6.6186 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
8.6314 -5.4375 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -4.2564 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
10.9936 -5.4375 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 6 0 0 0
|
||||
1 3 1 6 0 0 0
|
||||
1 4 1 0 0 0 0
|
||||
1 5 1 6 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@@](I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171211572D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
9.8125 -5.4375 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -6.6186 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
8.6314 -5.4375 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -4.2564 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
10.9936 -5.4375 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
1 3 1 6 0 0 0
|
||||
1 4 1 0 0 0 0
|
||||
1 5 1 6 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@@](I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05181211582D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
3.8133 -2.4051 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
3.1050 -2.8176 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0
|
||||
2.3883 -2.4051 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
3.1050 -3.6426 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
3.1050 -1.9926 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
2 1 1 0 0 0 0
|
||||
2 4 1 1 0 0 0
|
||||
2 5 1 6 0 0 0
|
||||
2 3 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@](I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05181211592D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
3.8133 -2.4051 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
3.1050 -2.8176 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
2.3883 -2.4051 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
3.1050 -3.6426 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
3.1050 -1.9926 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
2 1 1 0 0 0 0
|
||||
2 4 1 6 0 0 0
|
||||
2 5 1 1 0 0 0
|
||||
2 3 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@@](I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05181214022D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
13.3521 -10.3531 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6438 -10.7656 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0
|
||||
11.9271 -10.7281 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6438 -11.5906 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6438 -9.9406 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
2 1 1 0 0 0 0
|
||||
2 4 1 1 0 0 0
|
||||
2 5 1 6 0 0 0
|
||||
2 3 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
FC(I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171211572D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
9.8125 -5.4375 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -6.6186 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
8.6314 -5.4375 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -4.2564 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
10.9936 -5.4375 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
1 3 1 0 0 0 0
|
||||
1 4 1 0 0 0 0
|
||||
1 5 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
FC(I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171211572D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
9.8125 -5.4375 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -6.6186 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
8.6314 -5.4375 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -4.2564 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
10.9936 -5.4375 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 1 0 0 0
|
||||
1 3 1 6 0 0 0
|
||||
1 4 1 1 0 0 0
|
||||
1 5 1 6 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@@](I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171211572D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
9.8125 -5.4375 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -6.6186 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
8.6314 -5.4375 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -4.2564 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
10.9936 -5.4375 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 1 0 0 0
|
||||
1 3 1 0 0 0 0
|
||||
1 4 1 0 0 0 0
|
||||
1 5 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@@](I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171211572D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
9.8125 -5.4375 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -6.6186 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
8.6314 -5.4375 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -4.2564 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
10.9936 -5.4375 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 1 0 0 0
|
||||
1 3 1 1 0 0 0
|
||||
1 4 1 0 0 0 0
|
||||
1 5 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
FC(I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171211572D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
9.8125 -5.4375 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -6.6186 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
8.6314 -5.4375 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -4.2564 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
10.9936 -5.4375 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 1 0 0 0
|
||||
1 3 1 0 0 0 0
|
||||
1 4 1 6 0 0 0
|
||||
1 5 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
FC(I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171211572D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
9.8125 -5.4375 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -6.6186 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
8.6314 -5.4375 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -4.2564 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
10.9936 -5.4375 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 6 0 0 0
|
||||
1 3 1 6 0 0 0
|
||||
1 4 1 0 0 0 0
|
||||
1 5 1 6 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@@](I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171211572D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
9.8125 -5.4375 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -6.6186 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
8.6314 -5.4375 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
9.8125 -4.2564 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
10.9936 -5.4375 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
1 3 1 6 0 0 0
|
||||
1 4 1 0 0 0 0
|
||||
1 5 1 6 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@@](I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05181211582D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
3.8133 -2.4051 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
3.1050 -2.8176 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0
|
||||
2.3883 -2.4051 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
3.1050 -3.6426 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
3.1050 -1.9926 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
2 1 1 0 0 0 0
|
||||
2 4 1 1 0 0 0
|
||||
2 5 1 6 0 0 0
|
||||
2 3 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@](I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05181211592D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
3.8133 -2.4051 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
3.1050 -2.8176 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
2.3883 -2.4051 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
3.1050 -3.6426 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
3.1050 -1.9926 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
2 1 1 0 0 0 0
|
||||
2 4 1 6 0 0 0
|
||||
2 5 1 1 0 0 0
|
||||
2 3 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@@](I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05181214022D
|
||||
|
||||
5 4 0 0 1 0 0 0 0 0999 V2000
|
||||
13.3521 -10.3531 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6438 -10.7656 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0
|
||||
11.9271 -10.7281 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6438 -11.5906 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6438 -9.9406 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
2 1 1 0 0 0 0
|
||||
2 4 1 1 0 0 0
|
||||
2 5 1 6 0 0 0
|
||||
2 3 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
FC(I)(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
@ -1,110 +1,110 @@
|
||||
|
||||
SMMXDraw05171215492D
|
||||
|
||||
4 3 0 0 1 0 0 0 0 0999 V2000
|
||||
11.6072 -6.7782 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
10.5836 -7.3674 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
11.6087 -5.5971 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6293 -7.3700 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
1 3 1 1 0 0 0
|
||||
1 4 1 1 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@H](Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171215492D
|
||||
|
||||
4 3 0 0 1 0 0 0 0 0999 V2000
|
||||
11.6072 -6.7782 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0
|
||||
10.5836 -7.3674 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
11.6087 -5.5971 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6293 -7.3700 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
1 3 1 0 0 0 0
|
||||
1 4 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
FC(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171215492D
|
||||
|
||||
4 3 0 0 1 0 0 0 0 0999 V2000
|
||||
11.6072 -6.7782 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
10.5836 -7.3674 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
11.6087 -5.5971 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6293 -7.3700 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
1 3 1 1 0 0 0
|
||||
1 4 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@H](Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171215492D
|
||||
|
||||
4 3 0 0 1 0 0 0 0 0999 V2000
|
||||
11.6072 -6.7782 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
10.5836 -7.3674 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
11.6087 -5.5971 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6293 -7.3700 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 1 0 0 0
|
||||
1 3 1 1 0 0 0
|
||||
1 4 1 1 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@H](Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171215492D
|
||||
|
||||
4 3 0 0 1 0 0 0 0 0999 V2000
|
||||
11.6072 -6.7782 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0
|
||||
10.5836 -7.3674 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
11.6087 -5.5971 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6293 -7.3700 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
1 3 1 6 0 0 0
|
||||
1 4 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@H](Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171215492D
|
||||
|
||||
4 3 0 0 1 0 0 0 0 0999 V2000
|
||||
11.6072 -6.7782 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0
|
||||
10.5836 -7.3674 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
11.6087 -5.5971 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6293 -7.3700 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
1 3 1 1 0 0 0
|
||||
1 4 1 6 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
FC(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05181216212D
|
||||
|
||||
4 3 0 0 1 0 0 0 0 0999 V2000
|
||||
3.8133 -2.4051 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
3.1050 -2.8176 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0
|
||||
2.3883 -2.4051 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
3.1050 -1.9926 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
2 1 1 0 0 0 0
|
||||
2 4 1 1 0 0 0
|
||||
2 3 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@@H](Br)Cl
|
||||
|
||||
SMMXDraw05171215492D
|
||||
|
||||
4 3 0 0 1 0 0 0 0 0999 V2000
|
||||
11.6072 -6.7782 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
10.5836 -7.3674 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
11.6087 -5.5971 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6293 -7.3700 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
1 3 1 1 0 0 0
|
||||
1 4 1 1 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@H](Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171215492D
|
||||
|
||||
4 3 0 0 1 0 0 0 0 0999 V2000
|
||||
11.6072 -6.7782 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0
|
||||
10.5836 -7.3674 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
11.6087 -5.5971 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6293 -7.3700 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
1 3 1 0 0 0 0
|
||||
1 4 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
FC(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171215492D
|
||||
|
||||
4 3 0 0 1 0 0 0 0 0999 V2000
|
||||
11.6072 -6.7782 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
10.5836 -7.3674 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
11.6087 -5.5971 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6293 -7.3700 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
1 3 1 1 0 0 0
|
||||
1 4 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@H](Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171215492D
|
||||
|
||||
4 3 0 0 1 0 0 0 0 0999 V2000
|
||||
11.6072 -6.7782 0.0000 C 0 0 1 0 0 0 0 0 0 0 0 0
|
||||
10.5836 -7.3674 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
11.6087 -5.5971 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6293 -7.3700 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 1 0 0 0
|
||||
1 3 1 1 0 0 0
|
||||
1 4 1 1 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@H](Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171215492D
|
||||
|
||||
4 3 0 0 1 0 0 0 0 0999 V2000
|
||||
11.6072 -6.7782 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0
|
||||
10.5836 -7.3674 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
11.6087 -5.5971 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6293 -7.3700 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
1 3 1 6 0 0 0
|
||||
1 4 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@H](Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05171215492D
|
||||
|
||||
4 3 0 0 1 0 0 0 0 0999 V2000
|
||||
11.6072 -6.7782 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0
|
||||
10.5836 -7.3674 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
11.6087 -5.5971 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
12.6293 -7.3700 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 1 0 0 0 0
|
||||
1 3 1 1 0 0 0
|
||||
1 4 1 6 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
FC(Br)Cl
|
||||
|
||||
$$$$
|
||||
|
||||
SMMXDraw05181216212D
|
||||
|
||||
4 3 0 0 1 0 0 0 0 0999 V2000
|
||||
3.8133 -2.4051 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
3.1050 -2.8176 0.0000 C 0 0 2 0 0 0 0 0 0 0 0 0
|
||||
2.3883 -2.4051 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
3.1050 -1.9926 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
2 1 1 0 0 0 0
|
||||
2 4 1 1 0 0 0
|
||||
2 3 1 0 0 0 0
|
||||
M END
|
||||
> <smiles>
|
||||
F[C@@H](Br)Cl
|
||||
|
@ -1,34 +1,34 @@
|
||||
C1=CC=C(C=C1)[AsH](C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4
|
||||
C[SbH]1(CC2CCCC(C2)C[SbH](CC3CCCC(C3)C1)(C)C)C
|
||||
C1=CC=C(C=C1)C(=O)SC2=C(SC(=P(C3=CC=CC=C3)(C4=CC=CC=C4)C5=CC=CC=C5)S2)SC(=O)C6=CC=CC=C6
|
||||
CC1(C[N+](=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C1)COS(=O)(=O)C.CS(=O)(=O)[O-]
|
||||
COC(=O)C1=C([Se]C(=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)[Se]1)C(=O)OC
|
||||
C[C]1[C]([C]([C]([C]1C)C)C)C.C1CCC(CC1)N2C=CN(C2=[Ru](=CC3=CC=CC=C3)(Cl)Cl)C4CCCCC4.Cl[Rh+]Cl
|
||||
CC1=CC=C(C=C1)C(=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C5=CC=C(C=C5)C
|
||||
CC1=CC=C(C=C1)C(C)C.C1CCC(CC1)N2C=CN(C2=[Ru](=CC3=CC=CC=C3)(Cl)Cl)C4CCCCC4.Cl[Ru]Cl
|
||||
C1=CC=C(C=C1)N2C(=O)C(=P(C3=CC=CC=C3)(C4=CC=CC=C4)C5=CC=CC=C5)C(=O)N(C2=O)C6=CC=CC=C6
|
||||
C1=CC=C(C=C1)P(C2=CC=CC=C2)C(=P(C3=CC=CC=C3)(C4=CC=CC=C4)C5=CC=CC=C5)P(C6=CC=CC=C6)C7=CC=CC=C7
|
||||
C1=CC=C(C=C1)N2C(=NN=N2)C(=P(C3=CC=CC=C3)(C4=CC=CC=C4)C5=CC=CC=C5)C6=NN=NN6C7=CC=CC=C7
|
||||
C1=CC=C(C=C1)C(=O)C(=O)C(=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C(=O)C(=O)C5=CC=CC=C5
|
||||
C1(C(C2C(=O)O[SbH]3(O2)OC(C(C(C4C(=O)O[SbH]5(O4)OC1C(=O)O5)O)O)C(=O)O3)O)O
|
||||
C1=CC=C(C=C1)C2=C3C4=CC=CC5=C4C(=CC=C5)C3=C(C2=P(C6=CC=CC=C6)(C7=CC=CC=C7)C8=CC=CC=C8)C9=CC=CC=C9
|
||||
CC(C)(C1C=CC(=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C=C1)C(=O)OC
|
||||
C1CN2CCN(CCN1CC[N+](=P(CO)(O)O)CC2)P(=O)(CO)O
|
||||
CC1(C(=O)C(=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C1=O)[P+](C5=CC=CC=C5)(C6=CC=CC=C6)C7=CC=CC=C7
|
||||
CC1C([N+]1=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C.[I-]
|
||||
[C-]#[N+][O-].[C-]#[N+][O-].[C-]#[N+][O-].[C-]#[N+][O-].C1=CC=C(C=C1)[AsH](C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4.[Cd+2]
|
||||
C1=CC(=S(=O)([NH3+])[O-])C=CC1=NNC2=C(N=NC2=O)N
|
||||
C1=CC=C(C=C1)C(=O)C(=[As](C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C(=O)C5=CC=CC=C5
|
||||
CC1C([N+]1=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C
|
||||
C1=CC=C(C=C1)[AsH2](CC[AsH2](C2=CC=CC=C2)C3=CC=CC=C3)C4=CC=CC=C4
|
||||
C1=CC=C(C=C1)N=NC(=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)N=NC5=CC=CC=C5
|
||||
COC1=CC=C(C=C1)S(=O)(=O)C(=P(C2=CC=CC=C2)(C3=CC=CC=C3)O)S(=O)(=O)C4=CC=C(C=C4)OC
|
||||
COC(=O)C[AsH](C1=CC=CC=C1)(C2=CC=CC=C2)C3=CC=CC=C3
|
||||
C1=CC=C(C=C1)C2=CC=C(C=C2)[AsH](C3=CC=C(C=C3)C4=CC=CC=C4)(C5=CC=C(C=C5)C6=CC=CC=C6)C7=CC=C(C=C7)C8=CC=CC=C8
|
||||
C1=CC=C(C=C1)C(=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C5=CC=CC=C5
|
||||
COC1=CC=C(C=C1)C(=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C5=CC=C(C=C5)OC
|
||||
C1=CC=C(C=C1)[AsH2](CC[AsH2](C2=CC=CC=C2)C3=CC=CC=C3)C4=CC=CC=C4.Cl[Pt]Cl
|
||||
C1=CC=C(C=C1)P(=C2C(=O)C(=P(C3=CC=CC=C3)(C4=CC=CC=C4)C5=CC=CC=C5)C2=O)(C6=CC=CC=C6)C7=CC=CC=C7
|
||||
CC1=CC2=C(C=C1)C3=C(C2=P(C4=CC=CC=C4)(C5=CC=CC=C5)C6=CC=CC=C6)C=C(C=C3)C
|
||||
C12C3C(=O)O[BiH](O1)(O3)OC2=O
|
||||
C1=CC=C2C(=C1)C(O[SiH-]23C4=CC=CC=C4C(O3)(C(F)(F)F)C(F)(F)F)(C(F)(F)F)C(F)(F)F
|
||||
C1=CC=C(C=C1)[AsH](C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4
|
||||
C[SbH]1(CC2CCCC(C2)C[SbH](CC3CCCC(C3)C1)(C)C)C
|
||||
C1=CC=C(C=C1)C(=O)SC2=C(SC(=P(C3=CC=CC=C3)(C4=CC=CC=C4)C5=CC=CC=C5)S2)SC(=O)C6=CC=CC=C6
|
||||
CC1(C[N+](=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C1)COS(=O)(=O)C.CS(=O)(=O)[O-]
|
||||
COC(=O)C1=C([Se]C(=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)[Se]1)C(=O)OC
|
||||
C[C]1[C]([C]([C]([C]1C)C)C)C.C1CCC(CC1)N2C=CN(C2=[Ru](=CC3=CC=CC=C3)(Cl)Cl)C4CCCCC4.Cl[Rh+]Cl
|
||||
CC1=CC=C(C=C1)C(=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C5=CC=C(C=C5)C
|
||||
CC1=CC=C(C=C1)C(C)C.C1CCC(CC1)N2C=CN(C2=[Ru](=CC3=CC=CC=C3)(Cl)Cl)C4CCCCC4.Cl[Ru]Cl
|
||||
C1=CC=C(C=C1)N2C(=O)C(=P(C3=CC=CC=C3)(C4=CC=CC=C4)C5=CC=CC=C5)C(=O)N(C2=O)C6=CC=CC=C6
|
||||
C1=CC=C(C=C1)P(C2=CC=CC=C2)C(=P(C3=CC=CC=C3)(C4=CC=CC=C4)C5=CC=CC=C5)P(C6=CC=CC=C6)C7=CC=CC=C7
|
||||
C1=CC=C(C=C1)N2C(=NN=N2)C(=P(C3=CC=CC=C3)(C4=CC=CC=C4)C5=CC=CC=C5)C6=NN=NN6C7=CC=CC=C7
|
||||
C1=CC=C(C=C1)C(=O)C(=O)C(=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C(=O)C(=O)C5=CC=CC=C5
|
||||
C1(C(C2C(=O)O[SbH]3(O2)OC(C(C(C4C(=O)O[SbH]5(O4)OC1C(=O)O5)O)O)C(=O)O3)O)O
|
||||
C1=CC=C(C=C1)C2=C3C4=CC=CC5=C4C(=CC=C5)C3=C(C2=P(C6=CC=CC=C6)(C7=CC=CC=C7)C8=CC=CC=C8)C9=CC=CC=C9
|
||||
CC(C)(C1C=CC(=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C=C1)C(=O)OC
|
||||
C1CN2CCN(CCN1CC[N+](=P(CO)(O)O)CC2)P(=O)(CO)O
|
||||
CC1(C(=O)C(=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C1=O)[P+](C5=CC=CC=C5)(C6=CC=CC=C6)C7=CC=CC=C7
|
||||
CC1C([N+]1=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C.[I-]
|
||||
[C-]#[N+][O-].[C-]#[N+][O-].[C-]#[N+][O-].[C-]#[N+][O-].C1=CC=C(C=C1)[AsH](C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4.[Cd+2]
|
||||
C1=CC(=S(=O)([NH3+])[O-])C=CC1=NNC2=C(N=NC2=O)N
|
||||
C1=CC=C(C=C1)C(=O)C(=[As](C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C(=O)C5=CC=CC=C5
|
||||
CC1C([N+]1=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C
|
||||
C1=CC=C(C=C1)[AsH2](CC[AsH2](C2=CC=CC=C2)C3=CC=CC=C3)C4=CC=CC=C4
|
||||
C1=CC=C(C=C1)N=NC(=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)N=NC5=CC=CC=C5
|
||||
COC1=CC=C(C=C1)S(=O)(=O)C(=P(C2=CC=CC=C2)(C3=CC=CC=C3)O)S(=O)(=O)C4=CC=C(C=C4)OC
|
||||
COC(=O)C[AsH](C1=CC=CC=C1)(C2=CC=CC=C2)C3=CC=CC=C3
|
||||
C1=CC=C(C=C1)C2=CC=C(C=C2)[AsH](C3=CC=C(C=C3)C4=CC=CC=C4)(C5=CC=C(C=C5)C6=CC=CC=C6)C7=CC=C(C=C7)C8=CC=CC=C8
|
||||
C1=CC=C(C=C1)C(=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C5=CC=CC=C5
|
||||
COC1=CC=C(C=C1)C(=P(C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4)C5=CC=C(C=C5)OC
|
||||
C1=CC=C(C=C1)[AsH2](CC[AsH2](C2=CC=CC=C2)C3=CC=CC=C3)C4=CC=CC=C4.Cl[Pt]Cl
|
||||
C1=CC=C(C=C1)P(=C2C(=O)C(=P(C3=CC=CC=C3)(C4=CC=CC=C4)C5=CC=CC=C5)C2=O)(C6=CC=CC=C6)C7=CC=CC=C7
|
||||
CC1=CC2=C(C=C1)C3=C(C2=P(C4=CC=CC=C4)(C5=CC=CC=C5)C6=CC=CC=C6)C=C(C=C3)C
|
||||
C12C3C(=O)O[BiH](O1)(O3)OC2=O
|
||||
C1=CC=C2C(=C1)C(O[SiH-]23C4=CC=CC=C4C(O3)(C(F)(F)F)C(F)(F)F)(C(F)(F)F)C(F)(F)F
|
||||
|
@ -1,108 +1,108 @@
|
||||
"""Test OpenBabel executables from Python
|
||||
|
||||
Note: Python bindings not used
|
||||
|
||||
On Windows or Linux, you can run these tests at the commandline
|
||||
in the build folder with:
|
||||
"C:\Program Files\CMake 2.6\bin\ctest.exe" -C CTestTestfile.cmake
|
||||
-R pytest -VV
|
||||
|
||||
You could also "chdir" into build/test and run the test file directly:
|
||||
python ../../../test/testsmartssym.py
|
||||
|
||||
In both cases, the test file is run directly from the source folder,
|
||||
and so you can quickly develop the tests and try them out.
|
||||
"""
|
||||
|
||||
import unittest
|
||||
|
||||
from testbabel import run_exec, BaseTest
|
||||
|
||||
def checkmatch(query, molecules):
|
||||
result = []
|
||||
for smi in molecules:
|
||||
output, error = run_exec("obabel -:%s -s%s -osmi" % (smi, query))
|
||||
result.append(output.strip() != "")
|
||||
return result
|
||||
|
||||
def fastcheckmatch(query, molecules):
|
||||
"""May fail where Open Babel does not output the input query, e.g.
|
||||
[C@@]([H])(Br)(Cl)I is output as [C@@H](Br)(Cl)I"""
|
||||
output, error = run_exec("\n".join(molecules), "obabel -ismi -s%s -osmi" % query)
|
||||
converted = [x.rstrip() for x in output.split("\n")]
|
||||
results = [smi in converted for smi in molecules]
|
||||
return results
|
||||
|
||||
class TestSmartsSym(BaseTest):
|
||||
"""Base class for a series of tests relating to symmetry"""
|
||||
|
||||
def testSelfMatch(self):
|
||||
"""Verify that a molecule matches itself"""
|
||||
data = [
|
||||
'[C@@](F)(Br)(Cl)I',
|
||||
'[C@](F)(Br)(Cl)I',
|
||||
'F[C@](Br)(Cl)I',
|
||||
'[C@H](Br)(Cl)I',
|
||||
'Br[C@H](Cl)I',
|
||||
'[C@]1(Br)(Cl)NC1',
|
||||
'[C@@]1(Br)(Cl)NC1',
|
||||
'Br[C@]1(Cl)NC1',
|
||||
'C1N[C@]1(Cl)Br',
|
||||
'F[C@]1(Br)N[C@]1(Br)Cl',
|
||||
'[C@H]1(Cl)NC1'
|
||||
]
|
||||
for smi in data:
|
||||
output, error = run_exec("obabel -:%s -s%s -osmi" % (smi, smi))
|
||||
self.assertEqual(output.rstrip(), smi)
|
||||
|
||||
def testTetStereo(self):
|
||||
data = ['[C@@](F)(Br)(Cl)I',
|
||||
'[C@](F)(Br)(Cl)I',
|
||||
'F[C@](Br)(Cl)I',
|
||||
'F[C@@](Br)(Cl)I',
|
||||
'C(F)(Br)(Cl)I',
|
||||
'FC(Br)(Cl)I']
|
||||
self.assertEqual(fastcheckmatch(data[0], data[0:6]),
|
||||
[True, False, False, True, False, False])
|
||||
self.assertEqual(fastcheckmatch(data[2], data[0:6]),
|
||||
[False, True, True, False, False, False])
|
||||
self.assertEqual(fastcheckmatch(data[4], data[0:6]), [True]*6)
|
||||
|
||||
def testTetStereoImplicitH(self):
|
||||
data = ['[C@H](Br)(Cl)I',
|
||||
'[C@@H](Br)(Cl)I',
|
||||
'Br[C@H](Cl)I',
|
||||
'Br[C@@H](Cl)I',
|
||||
'BrC(Cl)I',
|
||||
'BrC([H])(Cl)I',
|
||||
'Br[C@@]([H])(Cl)I'
|
||||
]
|
||||
self.assertEqual(checkmatch(data[0], data[0:7]),
|
||||
[True, False, False, True, False, False, True])
|
||||
self.assertEqual(checkmatch(data[2], data[0:7]),
|
||||
[False, True, True, False, False, False, False])
|
||||
self.assertEqual(checkmatch(data[4], data[0:7]), [True]*7)
|
||||
self.assertEqual(checkmatch(data[6], data[0:7]),
|
||||
[True, False, False, True, False, False, True])
|
||||
|
||||
def testRingClosures(self):
|
||||
data = ['[C@]1(Br)(Cl)NC1',
|
||||
'[C@@]1(Br)(Cl)NC1',
|
||||
'Br[C@]1(Cl)NC1',
|
||||
'Br[C@@]1(Cl)NC1',
|
||||
'C1N[C@]1(Cl)Br',
|
||||
'C1NC1(Cl)Br']
|
||||
self.assertEqual(fastcheckmatch(data[0], data[0:6]),
|
||||
[True, False, False, True, True, False])
|
||||
self.assertEqual(fastcheckmatch(data[2], data[0:6]),
|
||||
[False, True, True, False, False, False])
|
||||
self.assertEqual(fastcheckmatch(data[5], data[0:6]), [True]*6)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
testsuite = []
|
||||
allclasses = [TestSmartsSym]
|
||||
for myclass in allclasses:
|
||||
suite = unittest.TestLoader().loadTestsFromTestCase(myclass)
|
||||
testsuite.append(suite)
|
||||
unittest.TextTestRunner().run(unittest.TestSuite(testsuite))
|
||||
"""Test OpenBabel executables from Python
|
||||
|
||||
Note: Python bindings not used
|
||||
|
||||
On Windows or Linux, you can run these tests at the commandline
|
||||
in the build folder with:
|
||||
"C:\Program Files\CMake 2.6\bin\ctest.exe" -C CTestTestfile.cmake
|
||||
-R pytest -VV
|
||||
|
||||
You could also "chdir" into build/test and run the test file directly:
|
||||
python ../../../test/testsmartssym.py
|
||||
|
||||
In both cases, the test file is run directly from the source folder,
|
||||
and so you can quickly develop the tests and try them out.
|
||||
"""
|
||||
|
||||
import unittest
|
||||
|
||||
from testbabel import run_exec, BaseTest
|
||||
|
||||
def checkmatch(query, molecules):
|
||||
result = []
|
||||
for smi in molecules:
|
||||
output, error = run_exec("obabel -:%s -s%s -osmi" % (smi, query))
|
||||
result.append(output.strip() != "")
|
||||
return result
|
||||
|
||||
def fastcheckmatch(query, molecules):
|
||||
"""May fail where Open Babel does not output the input query, e.g.
|
||||
[C@@]([H])(Br)(Cl)I is output as [C@@H](Br)(Cl)I"""
|
||||
output, error = run_exec("\n".join(molecules), "obabel -ismi -s%s -osmi" % query)
|
||||
converted = [x.rstrip() for x in output.split("\n")]
|
||||
results = [smi in converted for smi in molecules]
|
||||
return results
|
||||
|
||||
class TestSmartsSym(BaseTest):
|
||||
"""Base class for a series of tests relating to symmetry"""
|
||||
|
||||
def testSelfMatch(self):
|
||||
"""Verify that a molecule matches itself"""
|
||||
data = [
|
||||
'[C@@](F)(Br)(Cl)I',
|
||||
'[C@](F)(Br)(Cl)I',
|
||||
'F[C@](Br)(Cl)I',
|
||||
'[C@H](Br)(Cl)I',
|
||||
'Br[C@H](Cl)I',
|
||||
'[C@]1(Br)(Cl)NC1',
|
||||
'[C@@]1(Br)(Cl)NC1',
|
||||
'Br[C@]1(Cl)NC1',
|
||||
'C1N[C@]1(Cl)Br',
|
||||
'F[C@]1(Br)N[C@]1(Br)Cl',
|
||||
'[C@H]1(Cl)NC1'
|
||||
]
|
||||
for smi in data:
|
||||
output, error = run_exec("obabel -:%s -s%s -osmi" % (smi, smi))
|
||||
self.assertEqual(output.rstrip(), smi)
|
||||
|
||||
def testTetStereo(self):
|
||||
data = ['[C@@](F)(Br)(Cl)I',
|
||||
'[C@](F)(Br)(Cl)I',
|
||||
'F[C@](Br)(Cl)I',
|
||||
'F[C@@](Br)(Cl)I',
|
||||
'C(F)(Br)(Cl)I',
|
||||
'FC(Br)(Cl)I']
|
||||
self.assertEqual(fastcheckmatch(data[0], data[0:6]),
|
||||
[True, False, False, True, False, False])
|
||||
self.assertEqual(fastcheckmatch(data[2], data[0:6]),
|
||||
[False, True, True, False, False, False])
|
||||
self.assertEqual(fastcheckmatch(data[4], data[0:6]), [True]*6)
|
||||
|
||||
def testTetStereoImplicitH(self):
|
||||
data = ['[C@H](Br)(Cl)I',
|
||||
'[C@@H](Br)(Cl)I',
|
||||
'Br[C@H](Cl)I',
|
||||
'Br[C@@H](Cl)I',
|
||||
'BrC(Cl)I',
|
||||
'BrC([H])(Cl)I',
|
||||
'Br[C@@]([H])(Cl)I'
|
||||
]
|
||||
self.assertEqual(checkmatch(data[0], data[0:7]),
|
||||
[True, False, False, True, False, False, True])
|
||||
self.assertEqual(checkmatch(data[2], data[0:7]),
|
||||
[False, True, True, False, False, False, False])
|
||||
self.assertEqual(checkmatch(data[4], data[0:7]), [True]*7)
|
||||
self.assertEqual(checkmatch(data[6], data[0:7]),
|
||||
[True, False, False, True, False, False, True])
|
||||
|
||||
def testRingClosures(self):
|
||||
data = ['[C@]1(Br)(Cl)NC1',
|
||||
'[C@@]1(Br)(Cl)NC1',
|
||||
'Br[C@]1(Cl)NC1',
|
||||
'Br[C@@]1(Cl)NC1',
|
||||
'C1N[C@]1(Cl)Br',
|
||||
'C1NC1(Cl)Br']
|
||||
self.assertEqual(fastcheckmatch(data[0], data[0:6]),
|
||||
[True, False, False, True, True, False])
|
||||
self.assertEqual(fastcheckmatch(data[2], data[0:6]),
|
||||
[False, True, True, False, False, False])
|
||||
self.assertEqual(fastcheckmatch(data[5], data[0:6]), [True]*6)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
testsuite = []
|
||||
allclasses = [TestSmartsSym]
|
||||
for myclass in allclasses:
|
||||
suite = unittest.TestLoader().loadTestsFromTestCase(myclass)
|
||||
testsuite.append(suite)
|
||||
unittest.TextTestRunner().run(unittest.TestSuite(testsuite))
|
||||
|
Loading…
Reference in New Issue
Block a user