<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 431,  comments - 344,  trackbacks - 0
    CDK提供了通過smiles值進行子結構搜索,  org.openscience.cdk.smiles.smarts.SMARTSQueryTool

    package com.founder.cdk;

    import Java.io.File;
    import Java.io.FileNotFoundException;
    import Java.io.FileReader;
    import Java.util.ArrayList;
    import Java.util.List;

    import org.openscience.cdk.ChemFile;
    import org.openscience.cdk.ChemObject;
    import org.openscience.cdk.exception.CDKException;
    import org.openscience.cdk.interfaces.IAtomContainer;
    import org.openscience.cdk.io.MDLV2000Reader;
    import org.openscience.cdk.smiles.smarts.SMARTSQueryTool;
    import org.openscience.cdk.tools.manipulator.ChemFileManipulator;

    public class SMARTSQueryToolTest {

     static SMARTSQueryTool sqt;static {
            try {
                sqt = new SMARTSQueryTool("c2ccc1ccccc1c2");
            } catch (CDKException e) {           
            }
        }

     /**
      * @param args
      */
     public static void main(String[] args) {
      String filename = "H:\\molecules.sdf";
      try {
                MDLV2000Reader reader = new MDLV2000Reader(new FileReader(new File(filename)));
                ChemFile chemFile = (ChemFile) reader.read((ChemObject) new ChemFile());
                List<IAtomContainer> containersList = ChemFileManipulator.getAllAtomContainers(chemFile);
               
                List<IAtomContainer> substructureList = new ArrayList<IAtomContainer>();
                
                sqt.setSmarts("c1ccc3c(c1)ccc4c2ccccc2ccc34");  //重新設置匹配的smiles值
                boolean matched = false;
                for (IAtomContainer molecule : containersList) {
                    matched = sqt.matches(molecule);
                    if (matched){
                     substructureList.add(molecule);
                    }
                }
                System.out.println(substructureList.size());
               
                for (IAtomContainer molecule : substructureList) {
                     System.out.println(molecule.getProperty("ID"));
                }
               
            } catch (CDKException e) {
                e.printStackTrace();
            } catch (FileNotFoundException e) {
               e.printStackTrace();
            }

     }

    }

    通過測試, matches方法速度很慢, 一般一個結構需要200ms-1000ms左右.

    posted on 2009-10-20 08:33 周銳 閱讀(592) 評論(0)  編輯  收藏 所屬分類: JavaCDK
    主站蜘蛛池模板: 亚洲aⅴ无码专区在线观看| 18禁亚洲深夜福利人口| 波霸在线精品视频免费观看| 国产又大又黑又粗免费视频| 国产精品亚洲AV三区| 日韩视频免费在线| 亚洲爆乳无码专区www| 免费少妇a级毛片人成网| 天堂亚洲免费视频| 色噜噜亚洲精品中文字幕| 最近免费中文字幕中文高清| 亚洲av最新在线网址| 午夜无码A级毛片免费视频| 亚洲视频在线观看免费视频| 思思re热免费精品视频66| 在线观看日本亚洲一区| 免费大黄网站在线看| 国产真人无码作爱免费视频 | 四虎影在线永久免费四虎地址8848aa| 亚洲精品久久无码av片俺去也| 国产成人精品高清免费| japanese色国产在线看免费| 久久精品国产精品亚洲精品| 亚洲国产精品免费在线观看| 中文有码亚洲制服av片| 亚洲A丁香五香天堂网| 国产免费一区二区三区在线观看| 麻豆亚洲av熟女国产一区二| 毛片免费观看的视频在线| 国产综合成人亚洲区| 久久久青草青青亚洲国产免观| 114级毛片免费观看| 99亚洲乱人伦aⅴ精品| 亚洲国产精品成人久久| 亚洲第一成年免费网站| 一级a性色生活片久久无少妇一级婬片免费放 | 国产精品99久久免费观看| 亚洲娇小性xxxx色| 亚洲精品无码永久在线观看| 99久久精品免费精品国产| 亚洲欧美成人一区二区三区|