새소식

Knowledge/강의 관련

[LAIDD]protein data bank 분석 강의 참고 자료

  • -

서두

LAIDD(https://www.laidd.org/)의

[2023] protein data bank 분석(https://www.laidd.org/course/view.php?id=155)

 

 

LAIDD(Lectures on AI-driven Drug Discovery)

 

www.laidd.org

한국제약바이오협회, 인공지능 신약개발 지원센터, 책임 연구원 홍승환님의 강의

와 관련된 글입니다.

본문

[2023] protein data bank 분석강의에서 3강

실습을 따라하는 와중에 pdb download관련 code가 없는것 같아 직접 짠것을 공유.

1.https://dunbrack.fccc.edu/pisces/

 

https://dunbrack.fccc.edu/pisces/

PISCES: A Protein Sequence Culling Server PISCES has two ways of producing subsets of sequences from larger sets: Subsets of protein chains and sequences culled from the entire PDB according to structure quality and maximum mutual sequence identity Subsets

dunbrack.fccc.edu

원하는 기준을 설정한 다음 Submit버튼을 누른다.

나는

cullpdb_pc15.0_res0.0-1.5_noBrks_len40-10000_R0.25_Xray_d2023_08_01_chains1652.txt

을 선택하여 다운 받았다.

NA가 포함된 multiple space로 seperate된 파일이다.(Header가 존재.)

강의에서는 이 파일에서 list.txt로 변환하여 dw_pdb.py에 넣어줘야하는데, 막상 변환하는 코드가 없는것 같아서 직접 작성했다.

#!/usr/bin/env python

"""Usage:
$python ~.py [input_file1] [output_dir]
[input_file1]:PISCES "space" seperated txt file
[output_dir]:output directory path
"""

#Import packages
import sys

#Argument parse
char_input_file1 = sys.argv[1]
char_output_dir = sys.argv[2]

#Functions
def PISCES_DataLoader(char_input_file1):
    ls_FileLines_noHeader = []
    with open(char_input_file1, 'r') as file_PISCES:
        ls_FileLines = file_PISCES.readlines()
        ls_FileLines_noHeader = ls_FileLines[1:]

    return ls_FileLines_noHeader

def PDBchain_sort_split(ls_FileLines_noHeader):
    #
    ls_sort = []
    for Num in range(len(ls_FileLines_noHeader)):
        char_NumLine = ls_FileLines_noHeader[Num].split()
        ls_sort.append(char_NumLine[0])
    ls_sort.sort()

    ls_sort_split = []
    def InsertSpace(char):
        char_output = char[:4]+";"+char[4:]+'\n'
        return char_output
    ls_sort_split = list(map(InsertSpace, ls_sort))

    return ls_sort_split
#Function_main
def main():
    ls_FileLines_noHeader = PISCES_DataLoader(char_input_file1)
    ls_sort_split = PDBchain_sort_split(ls_FileLines_noHeader)

    with open(char_output_dir+"PDB_list.txt", 'w') as file_FinalOutput:
        file_FinalOutput.writelines(ls_sort_split)

#BackBone
if __name__ == "__main__":
    main()

자유롭게 변형해도 좋다.

dw_pdb.py가 ';'으로 구분을 PDBchain의 문자를 구분 하길래 강의에서는 " "(space)로 구분되게 list.txt를 보여주었지만 위의 code는 ';'로 구분되는 결과 파일이 나오도록 설정했다.

의문

error message

*하나하나 잘 다운 받아 지다가 갑자기 404 error를 띄운다. 즉, page not found인데,

*PDBchain이 없는 경우도 있기 때문에 그것을 exception처리를 이미 dw_pdb.py에서 했을텐데...

*그냥 인터넷 연결 오류인가?

#추가된 내용

*2023.09.14_08:04분 추가.

exercise_pdb3.zip파일에 down_pdb.py와 list.txt모두 들어가 있었다.

아이고;;

#주의해 주세요.

*본 저자는 [2023] protein data bank 분석강의의 교수님, 강사님과 연관이 없습니다. 그러므로 덧글 답변이 틀릴 수 있습니다.

*본 저자는 강의 영상 저작권을 준수하며 강의를 무단 유출하지 않습니다.

*본 게시글은 개인적인 의견일 뿐이므로 반박시 반박이 옳습니다.

Contents

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

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