8

[Space-S x KaKR] 그래프 러닝 및 해커톤

SPACE-S

Mol_id와 SMILES를 merge한 DataFrame 만들기

안녕해요
2022.09.29 06:48
592

안녕하세요. 안녕해요입니다.

현재 Data파일에 SMILES 데이터가 추가되었기 때문에 SMILES와 mol_id를 columns으로 가지는 DataFrame 만드는 방법을 가져왔습니다.

SMILES는 Simplified molecular-input line-entry system으로 분자를 쉽게 문자열로 표기하는 대표적인 방법들 중 하나이고, 가장 많이 사용됩니다. SMILES를 손쉽게 graph로 변환할 수 있는 tools들이 많이 개발되어 있어 분자 관련 연구를 할 때 SMILES를 많이 사용합니다.

 

우선 3가지 데이터를 각각 불러옵니다.

import torch

import pandas as pd

Train = torch.load('data/qm9_train_data.pt') # Dictionary 형태의 데이터
Test = torch.load('data/qm9_test_data.pt')
smiles_df = pd.read_csv('data/mol_id_to_smiles.csv')

그리고 Train, Test에서 각각 사용할 key들을 불러와 DataFrame을 만들어줍니다.

train_df = pd.DataFrame(np.stack((Train['mol_id'], Train['mu']), axis=1), columns=['id', 'mu'])
test_df = pd.DataFrame(Test['mol_id'], columns=['id'])

마지막으로 train파일과 smiles_df의 id에 맞춰 merge해주면 쉽게 mol_id와 SMILES를 merge한 DataFrame을 만들 수 있습니다.

train_df = pd.merge(train_df, smiles_df, on='id')
test_df = pd.merge(test_df, smiles_df, on='id')

Merge된 파일들은 첨부했으니 참고 바랍니다.

 

추후에 SMILES를 활용해 graph를 만들고, 다양한 GNN을 손쉽게 적용할 수 있는 코드를 가지고 돌아오겠습니다.

8
4개의 댓글
로그인 후 이용해주세요!