데이터베이스 사용 실습 – FireProtDB

Introduction

FireProtDB는 단백질 열안정성에 대한 정보를 수집하고 정리한 데이터베이스이다.

이 데이터 베이스를 이용하여 program (Python)을 이용한 데이터베이스 접근 및 활용 방법을 학습한다.

실습 code

아래 code는 FireProtDB에 접속해서 Tm 값과 ddG 값을 가져오고, 각 값의 분포를 나타내는 프로그램이다. 이와 같이 데이터베이스와 프로그램을 연동하여 데이터 분석을 진행할 수 있다.

1. Load libraries

데이터 분석에 사용할 프로그램(library)를 읽는다.

import mysql.connector
import pandas as pd
import seaborn as sns
from scipy.stats import spearmanr

2. Database에 연결한다.

MySQL을 이용하여 FireProtDB에 접속한다.

connection = mysql.connector.connect(
    host='203.254.133.24',
    user='root',
    port='8888',
    password='<비밀번호>',
    database='fireprotdb'
)
cursor = connection.cursor()

(*) <비밀번호>는 수업에서 부여한 비밀번호로 대체하여 입력한다.

3. SQL 명령 실행

SQL 명령어를 작성한다. mutation_experiments table 에서 tm, ddg 값을 선택한다.

sql = 'SELECT tm, ddg FROM mutation_experiments'
cursor.execute(sql)

4. 선택한 값을 dataframe으로 저장

MySQL server로 부터 받은 값을 table 형태로 정리한다.

ddg_list = []
for e in cursor.fetchall():
    try: 
        ddg_list.append([float(e[0]), float(e[1])])
    except:
        pass

ddg_tm = pd.DataFrame(ddg_list, columns=['tm', 'ddg'])

5. Tm 값과 ddG 값 분포도 작성

seaborn 프로그램을 이용하여 Tm 값과 ddG 값에 대한 histogram을 그린다.

sns.histplot(ddg_tm['tm'])
sns.histplot(ddg_tm['ddg'])

6. Tm 값과 ddG 값의 분포

seaborn 프로그램을 이용하여 Tm 값과 ddG 값을 동시에 표현한다.

sns.scatterplot(ddg_tm, x='tm', y='ddg')

7. 변수 간의 통계적 관련성 표기

spearmanr 함수를 이용하여 Tm 값과 ddG 값의 correlation coefficient를 계산하고, 이들의 통계적 유의성을 계산한다.

rho, pv = spearmanr(ddg_tm['tm'], ddg_tm['ddg'])
print(f'rho: {rho}')
print(f'P-value: {pv}')

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top