안녕하세요. 안녕해요입니다.
현재 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을 손쉽게 적용할 수 있는 코드를 가지고 돌아오겠습니다.