Windows 환경에서 RDKit 구축

7370 단어 RDKit

배경.


RDKit 설치 사례와 관련해서는 거의 아나콘다 사례만 있었다.이 방법은 결국 Anaconda의 Python에서만 사용할 수 있습니다.일부 경우 C++와 Anaconda 이외의 Python 환경에서 사용할 수 있도록 응용 프로그램에 결합할 수 있습니다.이를 위해 Anaconda 이외의 설치 방법은 자체적으로 구축해야 한다는 것입니다.그러나 예를 들어 Windows에서 사용하려는 경우 본가의 웹사이트에 구축 절차가 적혀 있지만 정보가 오래돼 2019년 현재 이대로는 구축이 잘 안 된다.
이번에 아래의 환경에서 구축에 성공했기 때문에 기억해야 한다.

컨디션

  • Windows 10
  • VisualStudio 2017
  • CMake 3.12.0
  • boost 1.65.1
  • python3.6.8
  • RDKit 2018_09_2
  • 절차.


    1. Visual Studio 2017 설치


    이 점에 관해서는 일반적으로 많은 정보가 있다고 생각하기 때문에 절차를 생략한다.
    나는 어떻게 설치하는지 잊어버렸다.물론 C++가 필요합니다.

    2. CMake 설치


    CMake 3.12.0-rc12를 설치합니다.
    이것도 정보가 많아서 생략합니다.

    3. Boost 설치


    Boost는 C++의 편리한 기능을 수집하는 라이브러리입니다.
    라이센스는 Boost 라이센스입니다.
    https://dl.bintray.com/boostorg/release/1.65.1/source/
    보다65_다운로드
     
    최신 버전이 아니라 Miso예요.
    만약 boost의 버전과 RDKit의 버전 조합이 다르면 많은 버전이 잘 구축되지 못할 것이다.
      
    다운로드한 후 확장은 C:\boost 1 65 1로 복사됩니다.
    용량이 350MB이기 때문에 펼치기에도 상당한 시간이 걸린다.
      
    참고로 복사 후 boost의 목록은 다음과 같습니다.
    구축 후 폴더가 편해지기 때문에 실패한 후에 다시 할 때 어떤 것을 삭제해야 하는지 기억하기 위해 남긴다.
     

    4. Pytnon3.6 설치


    https://www.python.org/downloads/release/python-368/
    많이.6.8 Windows x86-64executable installer 다운로드
    설치 프로그램이 C:\Python 36에 설치합니다.
    설치 후 아래 명령줄에 따라numby를 설치합니다.
    cd c:\Pytyon36
    .\Scripts\pip.exe install numpy
    

    5. RDKit 다운로드 및 구성


    https://github.com/rdkit/rdkit/releases/tag/Release_2018_09_2
    2010년부터.09_다운로드
     
    다운로드한 후 확장하여 C:\rdkit-release 2018 09 2로 복사합니다.

    6. 환경 변수 설정


    다음과 같이 환경 변수를 설정합니다.
    C:\Python36
    C:\rdkit-Release_2018_09_2\lib

    7.Boost의 구축


    메뉴에서 "Visual Studio 2017"-> "개발자 명령 프롬프트 for VS 2017"을 선택하여 열린 프롬프트에서 다음 순서로 실행합니다.
     
    cd c:\boost_1_65_1
    bootstrap.bat
    b2  architecture=x86 address-model=64  threading=multi runtime-link=shared --build-type=minimal link=static --stagedir=stage/x86_x64 stage 
    b2  architecture=x86 address-model=64  threading=multi runtime-link=shared --build-type=minimal link=shared --stagedir=stage/x86_x64 stage - install
    
     
    C:\Boost\lib에서 다음을 생성했는지 확인합니다.
    - libboost_python3-vc141-mt-1_65_1.lib
    - libboost_numpy3-vc141-mt-1_65_1.lib
    - libboost_random-vc141-mt-1_65_1.lib
    - libboost_serialization-vc141-mt-1_65_1
    이것들은 Python 3에 대한 라이브러리입니다. 이 라이브러리를 생성하면
    이것은 보스와python3이 잘 협력할 수 있다는 증거다.
    단도직입적으로 이런 것들이 만들어질 수 있을지 없을지는 성패를 장악하는 가장 큰 관건이라고 할 수 있다.
    만약 버전의 조합이 좋지 않다면, 이것을 생성할 수 없다.

    8. CMake를 통한 RDKit용 솔루션 생성


    명령 프롬프트에서 다음 작업을 수행합니다.
    cd C:\rdkit-Release_2018_09_2
    mkdir build
    cd build
    cmake -DRDK_BUILD_PYTHON_WRAPPERS=ON -DBOOST_ROOT=C:\Boost\ -DRDK_BUILD_INCHI_SUPPORT=ON -DRDK_BUILD_AVALON_SUPPORT=ON  -G"Visual Studio 15 2017 Win64" ..
    

    9. RDKit의 구축


    C:\rdkit-Release_2018_09_2\build 의 RDKit 입니다.Visual Studio 2017에서 sln 시작
    Visual Studio에 솔루션 구축
    가슴이 뛰는 순간이야.잘 된 줄 알았는데 MMPA가 생각지도 못했어요.cpp의 100번째 줄 근처에서 오류가 발생했습니다.다음은 DEBUG에서 코드를 사용하는 곳입니다.
    #ifdef _DEBUG
        {
          std::string symbol =
              em.getAtomWithIdx(bonds_selected[bi].first)->getSymbol();
          int label = 0;
          em.getAtomWithIdx(bonds_selected[bi].first)
              ->getPropIfPresent(common_properties::molAtomMapNumber, label);
          char a1[32];
          if (0 == label)
            sprintf(a1, "\'%s\'", symbol.c_str(), label);
          else
            sprintf(a1, "\'%s:%u\'", symbol.c_str(), label);
          symbol = em.getAtomWithIdx(bonds_selected[bi].second)->getSymbol();
          label = 0;
          em.getAtomWithIdx(bonds_selected[bi].second)
              ->getPropIfPresent(common_properties::molAtomMapNumber, label);
          char a2[32];
          if (0 == label)
            sprintf(a2, "\'%s\'", symbol.c_str(), label);
          else
            sprintf(a2, "\'%s:%u\'", symbol.c_str(), label);
    
          std::cout << "(" << bonds_selected[bi].first << a1 << ","
                    << bonds_selected[bi].second << a2 << ") ";
        }
    #endif
    
    따라서 목표를 "Release"로 설정하여 구축을 다시 실시합니다.
    예뻐요, 구축 성공!

    10. 구축 후 조정


    C:\rdkit-Release_2018_09_2\build\아래의 각 Release 폴더에pyd 파일 생성
    각 C:\rdkit-release2018_09_2\rdkit 아래로 복사합니다.(다른 좋은 방법이 있을지도 몰라)
    Anaconda가 설치한 RDKit 폴더를 복사하는 방법
    <가상 환경 경로>\Lib\site-packages\rdkit
    등을 참고로 한다.(쓰기가 귀찮아서 생략함).

    11. 환경 변수 재설정


    다음 설정
    - RDBASE C:\rdkit-Release2018_09_설정 2
    - PYTH NPATH에 C:\rdkit-Release 보내기2018_09_추가 2
    -PPath에 C:\Boost\lib 추가

    확인


    C:\Pythhon36에 설치된 Python을 확인합니다.
    c:\Python36>python
    Python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from rdkit import rdBase, Chem
    >>> from rdkit.Chem import AllChem, Draw
    >>> print('rdkit version: {}'.format(rdBase.rdkitVersion))
    rdkit version: 2018.09.2
    >>> Chem.MolToSmiles(Chem.MolFromSmiles('C1=CC=CN=C1'))
    'c1ccncc1'
    
    움직이는 것 같아.이렇게 하면 암화합물 시스템을 개발할 수 있다!

    참고 자료

  • http://www.rdkit.org/docs/Install.html
  • https://codeyarns.com/2013/11/14/how-to-build-rdkit-on-windows/
  • Install RDKit on Windows
    ( http://ms-cheminfo.com/?q=node/24 )
  • http://blog.livedoor.jp/ag_plusplus/archives/68661201.html
  • 4
  • RDKit를 c++로 이동~git clone에서Hello methane까지 이동
    ( https://qiita.com/yanagi3150/items/0866abfd629cce7fec12 )
  • 4
  • 파이톤에서 C++를 호출하여 numby 사용하기
    ( http://tadaoyamaoka.hatenablog.com/entry/2017/05/25/234934 )
  • 메모지


    본손순 201803_2판도 성공을 확인했다.

    좋은 웹페이지 즐겨찾기