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}')
