새소식

Knowledge/About Tools

[Python][RDKit]mol object저장하기, 불러오기

  • -

서두

RDKit을 사용할 때, Smiles, InChI형식 등에서 mol object를 만든 후 jupyter notebook 상에서 여러 분석을 할 수 있는 경우가 많다.

Mol object를 여러 형식들로 부터 만들 수 있다._1

 

Mol object를 여러 형식들로 부터 만들 수 있다._2

보통 필자는 python list에 여러개의 mol object를 넣고 관리 하며 작업한다.

여러가지 mol object가 mols라는 list에 pointing되어 있는 상태.

본문

만약 매우 많은 수의 mol object를 저장해야 한다면?

rdkit의 mol object다수 저장하는 형식이 .sdf 형식이다.

END로 한 mol의 마지막이 표시되어 있고, $$$$로 구별을 한다.

다음 mol object가 붉은 네모박스 이외에도 계속 나열되어 있다.

 

.sdf로 저장하려면 다음과 같이 하면 된다.

#Import packages
from rdkit import Chem

#Do
writer = Chem.SDWriter(#[문자열로 된 exact file position]#)
for mol in mols:
    writer.write(mol)
writer.close()

#[~]#을 지우고

내부에 "/home/User/PracticeDir/mysdf.sdf" 등 저장될 파일 경로와 함께 파일 이름을 문자열로 적어주면 된다.

 

.sdf파일을 불러오려면 다음과 같이 하면 된다.

#Import packages
from rdkit import Chem

#Do
mymols = Chem.SDMolSupplier(#[.sdf파일의 exact path]#)

#[~]#을 지우고

내부에 "/home/User/PracticeDir/mysdf.sdf" 등 저장된 파일 경로와 함께 파일 이름을 문자열로 적어주면 된다.

단,

type(mymols)

rdkit.Chem.rdmolfiles.SDMolSupplier

결과값이 나온다. 

ls_mymols = list(mymols)

와 같이 list로 저장해도 달라지는 점이 없는 것 같다. list로 형식 변환하여 관리 해도 된다.

결론

Chem.SDWriter()

Multiple mol object를 저장하기 위해.

Chem.SDMolSupplier()

Multiple mol object가 저장된 .sdf 파일을 불러오고 변수에 저장하기 위해.

#Comment

*질문, 수정 요청은 항상 열려 있습니다. 댓글로 부탁드립니다.^^

Reference

1.https://www.herongyang.com/Cheminformatics/RDKit-rdkit-Chem-rdmolfiles-SDF-Files.html

 

SDMolSupplier/SDWriter for SDF Files

Cheminformatics Tutorials - Herong's Tutorial Examples ∟rdkit.Chem.rdmolfiles - Molecular File Module ∟SDMolSupplier/SDWriter for SDF Files This section provides a tutorial example on how to use rdkit.Chem.rdmolfiles.SDMolSupplier(f) and rdkit.Chem.rdm

www.herongyang.com

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.