autodataming的个人博客分享 http://blog.sciencenet.cn/u/autodataming

博文

2dsdf转3d的时候保持手性

已有 4122 次阅读 2014-1-7 21:11 |个人分类:DrugDesign|系统分类:科研笔记

安装chemscript

###########基础知识点###########################

WriteFile(file, format=None)Write StructureData or Reaction into a file with file format indicated by *format*.
If *format* is not specified, the file extension is used.
*format* can be a full mime type, or the second part of a mime type (e.g. "cdx" short for "chemical/x-cdx").
Call StructureData.MimeTypes() to list all supported file formats.
Example:
>>>  m = StructureData.LoadData('CCC')
>>>  m.WriteFile('output.cdx')

>>>  m.ReadFile('output.cdx', 'cdx')


#################第一步把sdf拆分成cdx###########################

# Example 003

from sys import *

from os import *
from os.path import *

from ChemScript12 import *

if not exists('Output'):
  mkdir('Output')

# Make an SD reader object for the output file
reader = SDFileReader('./Input/input.sdf')

fileNumber = 1
m = reader.ReadNext()

while m != None:

  filename = './Output/out%02d' % fileNumber + '.cdxml'
 
  m.WriteFile(filename, 'text/xml')
 
  fileNumber += 1
 
  m = reader.ReadNext()


# close reader
reader.Close()


################第二部把cdx保存为sdf#############################

from ChemScript12 import *
reader=SDFileReader("DWF-14.sdf")
mol=reader.ReadNext()
output=SDFileWriter("./3d.sdf")
while(mol != None):
   mol.ConvertTo3DStructure()
   output.WriteStructure(mol)
   mol=reader.ReadNext()

#####################最后的脚本#####################################

###################bug:  2d的sdf转cdx的时候丢失了注释信息#####################################

from ChemScript12 import *

reader=SDFileReader('total264chiral.sdf')

m=reader.ReadNext()
filebasename=0;
output=SDFileWriter('./3dtotal.sdf')
while(m !=None):
   filebasename+=1
   filename=str(filebasename)+'.cdx'
   m.WriteFile(filename,'cdx')
   mol2=StructureData()
   mol2.ReadFile(filename)
   mol2.ConvertTo3DStructure()
   output.WriteStructure(mol2)
   m=reader.ReadNext()

reader.Close()

########添加了MOLNAME的注释信息,但是又发现了新的问题sdf转cdx的时候,结构扁平化#########

from ChemScript12 import *

reader=SDFileReader('total264chiral.sdf')

m=reader.ReadNext()
filebasename=0;
output=SDFileWriter('./3dtotal.sdf')
while(m !=None):
   filebasename+=1
   filename=str(filebasename)+'.cdx'
   m.WriteFile(filename,'cdx')
   mol2=StructureData()
   mol2.ReadFile(filename)
   mol2.ConvertTo3DStructure()
   mol2["MOLNAME"]=m["MOLNAME"]
   output.WriteStructure(mol2)
   m=reader.ReadNext()

reader.Close()

#############################2dsdftocdx#############################################









 

 



https://wap.sciencenet.cn/blog-950202-756906.html

上一篇:统计配体周围氨基酸的情况
下一篇:量化---晶胞扩展的巧妙方法
收藏 IP: 202.127.19.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-3-29 19:14

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部