Add .gitattributes and renormalize EOL

This commit is contained in:
Eisuke Kawashima 2021-06-24 07:20:32 +09:00
parent f03cea648f
commit 67fe818429
No known key found for this signature in database
GPG Key ID: 17966AFD52EC0C3D
17 changed files with 5833 additions and 5832 deletions

1
.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
* text=auto

View File

@ -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)

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

View File

@ -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")]

View File

@ -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;
}

View File

@ -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

View File

@ -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&apos;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&apos;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>

View File

@ -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

View File

@ -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
$$$$

View File

@ -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

View File

@ -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
$$$$

View File

@ -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

View File

@ -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

View File

@ -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))