[go: up one dir, main page]

KR102209526B1 - 병렬 연산을 통한 단백질-리간드 상호 작용 분석 방법 및 장치 - Google Patents

병렬 연산을 통한 단백질-리간드 상호 작용 분석 방법 및 장치 Download PDF

Info

Publication number
KR102209526B1
KR102209526B1 KR1020200046176A KR20200046176A KR102209526B1 KR 102209526 B1 KR102209526 B1 KR 102209526B1 KR 1020200046176 A KR1020200046176 A KR 1020200046176A KR 20200046176 A KR20200046176 A KR 20200046176A KR 102209526 B1 KR102209526 B1 KR 102209526B1
Authority
KR
South Korea
Prior art keywords
ligand
information
gpu
ligands
docking simulation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
KR1020200046176A
Other languages
English (en)
Inventor
채종환
김종철
신재홍
정인석
하민규
윤소정
Original Assignee
주식회사 스탠다임
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 스탠다임 filed Critical 주식회사 스탠다임
Priority to PCT/KR2020/008789 priority Critical patent/WO2021080122A1/en
Application granted granted Critical
Publication of KR102209526B1 publication Critical patent/KR102209526B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/20ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for computer-aided diagnosis, e.g. based on medical expert systems
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B15/00ICT specially adapted for analysing two-dimensional or three-dimensional molecular structures, e.g. structural or functional relations or structure alignment
    • G16B15/30Drug targeting using structural data; Docking or binding prediction
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N33/00Investigating or analysing materials by specific methods not covered by groups G01N1/00 - G01N31/00
    • G01N33/48Biological material, e.g. blood, urine; Haemocytometers
    • G01N33/50Chemical analysis of biological material, e.g. blood, urine; Testing involving biospecific ligand binding methods; Immunological testing
    • G01N33/68Chemical analysis of biological material, e.g. blood, urine; Testing involving biospecific ligand binding methods; Immunological testing involving proteins, peptides or amino acids
    • G01N33/6803General methods of protein analysis not limited to specific proteins or families of proteins
    • G01N33/6845Methods of identifying protein-protein interactions in protein mixtures
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B15/00ICT specially adapted for analysing two-dimensional or three-dimensional molecular structures, e.g. structural or functional relations or structure alignment
    • G16B15/20Protein or domain folding
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B5/00ICT specially adapted for modelling or simulations in systems biology, e.g. gene-regulatory networks, protein interaction networks or metabolic networks

Landscapes

  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Molecular Biology (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Chemical & Material Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • Theoretical Computer Science (AREA)
  • Public Health (AREA)
  • Immunology (AREA)
  • Urology & Nephrology (AREA)
  • Hematology (AREA)
  • Pathology (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Medicinal Chemistry (AREA)
  • Food Science & Technology (AREA)
  • Primary Health Care (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • Cell Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Physiology (AREA)
  • Microbiology (AREA)
  • Databases & Information Systems (AREA)
  • Epidemiology (AREA)
  • Analytical Chemistry (AREA)
  • Biochemistry (AREA)
  • General Physics & Mathematics (AREA)
  • Pharmacology & Pharmacy (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 명세서의 실시 예는 병렬 연산을 통한 단백질-리간드 상호 작용 분석 방법 및 장치를 제공한다. 이를 위한 본 명세서의 실시 예의 분자 도킹과 관련된 시뮬레이션 방법은 복수개의 리간드에 대한 정보를 확인하는 단계; 복수개의 단백질에 대한 그리드(grid) 정보를 포함하는 단백질 정보를 확인하는 단계; 복수개의 리간드에 대한 정보에 따른 각 리간드의 크기를 기반으로 적어도 하나의 리간드 세트를 확인하는 단계; 리간드 세트에 포함되는 리간드의 속성을 기반으로 적어도 하나의 리간드 세트에 대한 스코어를 결정하는 단계; 적어도 하나의 리간드 세트의 스코어 및 분자 도킹 시뮬레이션 수행과 관련된 GPU(Graphics Processing Unit) 코어(core)의 수를 기반으로 선택된 제1 그룹의 리간드 세트에 속하는 리간드 정보 및 단백질 정보를 GPU 메모리에 복사하는 단계; 및 GPU 메모리에 복사된 정보를 기반으로 GPU 코어를 사용하여 분자 도킹 시뮬레이션을 수행하는 단계를 포함한다.

Description

병렬 연산을 통한 단백질-리간드 상호 작용 분석 방법 및 장치 {Method and apparatus for analysis protein-ligand interaction using parallel operation}
본 명세서의 실시 예는 단백질-리간드 상호 작용을 예측하기 위한 분자 도킹 시뮬레이션과 관련된 방법 및 장치에 관한 것이다. 보다 구체적으로 복수의 프로세서를 사용하는 병렬적 연산을 통한 대상 단백질 및 리간드와 관련된 분자 도킹 시뮬레이션을 수행하기 위한 방법 및 장치에 관한 것이다.
분자 도킹 시뮬레이션은 분자 모델링 분야에서 하나의 분자와 다른 분자의 결합과 관련된 정보를 도출하기 위해 사용된다. 이러한 분자 도킹 시뮬레이션은 주로 특정 단백질과 리간드 사이의 상호 작용을 통한 결합과 관련된 시뮬레이션을 위해 사용되고, 이와 같은 방법을 통해 생화학적인 실험 이전에 컴퓨터를 통해서 모의 실험을 하는 것이 가능하다.
이와 같이 분자 도킹 시뮬레이션의 작업은 두 분자가 안정적인 결합을 이룰 수 있는 수용체와 리간드의 포즈(pose)에 대한 정보를 제공할 수 있다. 이때 시뮬레이션 도구는 수용체와 리간드의 포즈가 안정적인 결합을 할 것인지를 여러 가지 연산을 통해 검증할 수 있다.
그러나 이와 같은 연산의 경우 수용체와 리간드의 크기나 구조에 따라 계산량이 증가하게 되며, 이를 효과적으로 처리하기 위한 방법 및 장치가 요구된다.
본 명세서의 실시 예는 상술한 문제점을 해결하기 위하여 제안된 것으로 분자 도킹과 관련된 시뮬레이션 방법 및 장치를 제공하는 것을 목적으로 한다. 또한 본 명세서의 실시 예는 병렬 처리를 통해 복수개의 프로세스를 사용하여 분자 도킹 시뮬레이션을 수행하기 위한 방법 및 장치를 제공하는 것을 목적으로 한다.
상술한 과제를 달성하기 위하여, 본 명세서의 실시 예에 따르는 분자 도킹과 관련된 시뮬레이션 방법은 복수개의 리간드에 대한 정보를 확인하는 단계; 복수개의 단백질에 대한 그리드(grid) 정보를 포함하는 단백질 정보를 확인하는 단계; 복수개의 리간드에 대한 정보에 따른 각 리간드의 크기를 기반으로 적어도 하나의 리간드 세트를 확인하는 단계; 리간드 세트에 포함되는 리간드의 속성을 기반으로 적어도 하나의 리간드 세트에 대한 스코어를 결정하는 단계; 적어도 하나의 리간드 세트의 스코어 및 분자 도킹 시뮬레이션 수행과 관련된 GPU(Graphics Processing Unit) 코어(core)의 수를 기반으로 선택된 제1 그룹의 리간드 세트에 속하는 리간드 정보 및 단백질 정보를 GPU 메모리에 복사하는 단계; 및 GPU 메모리에 복사된 정보를 기반으로 GPU 코어를 사용하여 분자 도킹 시뮬레이션을 수행하는 단계를 포함할 수 있다.
또한, 상술한 과제를 달성하기 위한, 본 명세서의 실시 예에 따르는 분자 도킹 시뮬레이션 장치는, CPU 코어; 복수개의 GPU 코어; 및 제어부를 포함하고, 제어부는, 복수개의 리간드에 대한 정보를 확인하고, 복수개의 단백질에 대한 그리드 정보를 포함하는 단백질 정보를 확인하고, 복수개의 리간드에 대한 정보에 따른 각 리간드의 크기를 기반으로 적어도 하나의 리간드 세트를 확인하고, 리간드 세트에 포함되는 리간드의 속성을 기반으로 적어도 하나의 리간드 세트에 대한 스코어를 결정하고, 적어도 하나의 리간드 세트의 스코어 및 분자 도킹 시뮬레이션 수행과 관련된 GPU 코어의 수를 기반으로 선택된 제1 그룹의 리간드 세트에 속하는 리간드 정보 및 단백질 정보를 GPU 메모리에 복사하고, GPU 메모리에 복사된 정보를 기반으로 GPU 코어를 사용하여 분자 도킹 시뮬레이션을 수행할 수 있다.
본 명세서의 실시 예에 따르면, 분자 도킹과 관련된 시뮬레이션을 위해 각 연산을 병렬적으로 처리할 수 있도록 하는 시뮬레이션 방법 및 장치를 제공한다. 이와 같은 방법 및 장치를 통해 GPU(Graphics Processing Unit)와 같은 병렬 처리에 특화된 프로세서를 사용하여 보다 효과적으로 시뮬레이션을 수행할 수 있다. 또한 본 명세서의 실시 예에 따르면 시뮬레이션을 수행하는 연산 장치의 구성에 따라 병렬 처리와 관련된 절차를 최적화하여 연산 장치에 따라 최적의 시뮬레이션 성능을 도출할 수 있다.
도 1은 본 명세서의 실시 예에 따른 CPU(Central Processing Unit)와 GPU의 구조를 설명하기 위한 도면이다.
도 2는 본 명세서의 실시 예에 따른 도킹 시뮬레이션 방법을 설명하기 위한 흐름도이다.
도 3은 본 명세서의 실시 예에 따른 병렬 연산을 통해 시뮬레이션을 수행하기 위한 방법을 설명하기 위한 흐름도이다.
도 4는 본 명세서의 실시 예에 따라 시뮬레이션을 위한 제1프로세싱 유닛에 대응하는 연산과 자료 구조를 통해 제2프로세싱 유닛에 대응하는 연산과 자료 구조를 확인하여 이를 통해 시뮬레이션과 관련된 연산을 수행하는 방법을 설명하기 위한 흐름도이다.
도 5는 본 명세서의 실시 예에 따른 GPU 코어를 사용한 분자 도킹 시뮬레이션 방법을 설명하기 위한 흐름도이다.
도 6은 본 명세서의 실시 예에 따른 어레이 정보를 포함하는 리간드에 대한 정보를 도식화한 개략도이다.
도 7은 본 명세서의 실시 예에 따른 어레이 정보를 포함하는 리간드에 대한 정보가 GPU 메모리에 복사되는 단계를 설명하기 위한 개략도이다.
도 8은 본 명세서의 실시 예에 따른 리간드 세트를 스코어에 따라 분류하는 방법을 나타내는 개략도이다.
도 9는 본 명세서의 실시 예에 따른 도킹 시뮬레이션이 병렬적으로 수행되는 방법을 나타내는 흐름도이다.
도 10은 본 명세서의 실시 예에 따른 도킹 시뮬레이션 장치를 도식화한 블록도이다.
이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
도 1은 본 명세서의 실시 예에 따른 CPU와 GPU의 구조를 설명하기 위한 도면이다.
도 1을 참조하면 CPU(100) 및 GPU(150)의 구성이 도시된다.
CPU(100)는 제어부(105), 산술 논리 장치(Arithmetic Logic Unit, ALU)(110), 캐쉬 메모리(115) 및 DRAM(120) 중 적어도 하나를 포함할 수 있다.
제어부(105)는 CPU(100) 전반의 동작을 제어할 수 있다. 또한 CPU는 적어도 하나의 ALU(110)를 포함할 수 있으며, ALU(110)는 제어부(105)의 제어를 기반으로 연산을 수행할 수 있다.
캐쉬 메모리(115)는 CPU(100)의 연산과 관련된 데이터를 저장하고 가공할 수 있다. 일 예로 캐쉬 메모리(115)는 메인 메모리에서 가장 자주 사용되는 위치의 데이터를 포함하고 있으며, 상대적으로 저용량이지만 데이터 저장 및 획득을 빠르게 수행할 수 있는 메모리이다. 대부분의 메모리 접근은 특정한 위치의 근방에서 자주 일어나는 경향이 있기 때문에, 데이터를 캐쉬 메모리에 복사해 두면 평균 메모리 접근 시간을 아낄 수 있다.
일 실시 예에서 제어부가 메인 메모리를 읽거나 쓰고자 할 때는, 먼저 그 주소에 해당하는 데이터가 캐쉬에 존재하는지를 살핀다. 만약 그 주소의 데이터가 캐쉬에 있으면 데이터를 캐쉬에서 직접 읽고, 그렇지 않으면 메인 메모리에 직접 접근한다. 이때 대부분의 프로세서는 메인 메모리에 직접 접근해서 전송된 데이터를 캐쉬에 복사해 넣음으로써 다음 번에 같은 주소에 프로세서가 접근할 때 캐쉬에서 직접 읽고 쓸 수 있게 된다.
DRAM(120)은 주 메모리로 CPU(100) 연산과 관련된 데이터를 저장할 수 있다.
GPU(150)는 제어부(155), ALU(160), 캐쉬 메모리(165) 및 DRAM(170) 중 적어도 하나를 포함할 수 있다.
제어부(155)는 대응되는 ALU(160)의 동작을 제어할 수 있다. GPU(150)는 하나 이상의 제어부(155)를 포함할 수 있으며, 제어부(155)는 대응되는 캐쉬 메모리(165) 및 적어도 하나의 ALU(160)를 포함할 수 있다. 이와 같이 별도의 제어부(155) 별로 캐쉬 메모리(165) 및 적어도 하나의 ALU(160)를 포함함으로써 복수의 연산을 병렬적으로 수행할 때 장점을 가질 수 있다.
통상적으로 CPU(100)의 ALU(110)는 GPU(150)의 ALU(160)에 비해서 연산 성능이 뛰어난 경우가 많다. 그러나 GPU(150)는 복수개의 ALU(160)를 구비함으로써 병렬적 연산을 수행할 경우 CPU(100)에 비해서 보다 빠른 연산 성능을 구현할 수 있다. CPU(100)에서 수행하는 연산을 병렬적으로 변환하여 GPU(150)에서 수행하기 위해서는 연산을 변환하고, 캐쉬 메모리 및 메인 메모리 접근을 위한 주소와 관련된 정보도 변환하는 것이 필요하다.
도 2는 본 명세서의 실시 예에 따른 도킹 시뮬레이션 방법을 설명하기 위한 흐름도이다.
도 2를 참조하면, 연산장치에서 도킹 시뮬레이션을 위한 방법이 도시된다.
단계 205에서 연산장치는 단백질 및 리간드 중 적어도 하나를 확인할 수 있다. 실시 예에서 단백질 및 리간드 중 적어도 하나는 사용자로부터 입력 받은 정보, 데이터 베이스에 저장된 정보 및 특정 연산 장치에 의해 학습된 결과 중 적어도 하나를 기반으로 확인될 수 있다.
단계 210에서 상호작용 확인과 관련된 포즈 서치(pose search)를 수행할 수 있다. 실시 예에서 포즈 서치를 위해 연산 장치는 결합과 관련된 에너지 계산 및 최적화를 위한 계산 중 적어도 하나를 수행할 수 있다. 실시 예에서 에너지 계산을 위해 제네틱(Genetic) 알고리즘을 사용할 수 있다. 또한 최적화를 위해서 결합과 관련된 각 요소에 대응하는 미분 방정식과 관련된 해석을 수행할 수 있다.
단계 215에서 위의 연산과 관련된 결과에 따라 상호 작용 결과를 확인할 수 있다.
이와 같이 단백질 및 리간드 사이의 상호작용을 확인하기 위해 포즈 서치를 수행할 수 있다. 이와 같은 포즈 서치를 통해 단백질 및 리간드 사이의 상호 작용을 확인할 수 있으며, 결합 에너지 및 결합 후에 형성되는 분자의 특성을 예측할 수도 있다.
도 3은 본 명세서의 실시 예에 따른 병렬 연산을 통해 시뮬레이션을 수행하기 위한 방법을 설명하기 위한 흐름도이다.
도 3을 참조하면, 연산장치에서 포즈 서치를 위해 병렬 연산을 수행하기 위한 방법이 도시된다.
단계 305에서 연산장치는 포즈 서치와 관련해서 제네틱 알고리즘 해석 및 최적화 미분 방정식 해석 관련 정보를 확인할 수 있다. 포즈 서치와 관련해서 에너지 관련 연산 및 최적화 관련 연산 중 적어도 하나가 수행될 수 있으며, 실시 예에서 연산장치는 대상 단백질 및 리간드의 종류에 따라 그 연산의 방법이나 순서를 다르게 수행할 수 있다.
단계 310에서 병렬 연산을 위한 자료 구조 및 이에 대응하는 메모리 인덱스를 확인할 수 있다. 또한 실시 예에서 관련된 연산을 병렬적으로 수행하기 위해 하나의 연산을 복수개의 연산으로 분할하여 수행하고 이를 병합하는 절차도 수행될 수 있다. 일 예로 CPU에 의해 수행되는 연산을 GPU가 수행할 수 있도록 해당 연산을 복수개의 연산으로 분할하여 분할된 연산을 GPU에서 수행하고, 이를 병합하여 결과 값을 도출하는 방식으로 시뮬레이션을 수행할 수 있다. 이를 위해 GPU에서 연산 수행을 보다 용이하게 하기 위해 GPU에서 연산 수행을 위해 필요한 데이터 구조를 형성하고 이를 GPU와 관련된 메모리에 복사를 수행할 수 있으며, 이를 통해 CPU와 GPU에서 분자 도킹 시뮬레이션과 관련된 병렬적 연산을 수행할 수 있다. 보다 구체적으로 시뮬레이션과 관련된 데이터를 GPU와 관련된 메모리에 복사할 수 있도록 어레이(array) 형태로 변환할 수 있으며, 변환된 데이터는 시뮬레이션과 관련된 분자의 구성과 그 구조에 대한 정보 및 대상 단백질과 관련된 정보 역시 포함할 수 있다. 이와 같이 변환된 데이터를 연산을 수행할 GPU와 관련된 메모리에 복사함으로써 GPU에서 효과적으로 연산을 수행할 수 있으며, 병렬화를 통해 시뮬레이션의 효율이 높아질 수 있다.
단계 315에서 연산장치는 이전 단계에서 확인된 정보 중 적어도 하나를 기반으로 복수의 프로세스에서 분자 도킹 시뮬레이션과 관련된 병렬 연산을 수행할 수 있으며, 수행된 연산 결과를 기반으로 시뮬레이션 결과를 도출할 수 있다.
도 4는 본 명세서의 실시 예에 따라 시뮬레이션을 위한 제1프로세싱 유닛에 대응하는 연산과 자료 구조를 통해 제2프로세싱 유닛에 대응하는 연산과 자료 구조를 확인하여 이를 통해 시뮬레이션과 관련된 연산을 수행하는 방법을 설명하기 위한 흐름도이다.
도 4를 참조하면 실시 예에 따른 연산 장치에서 분자 도킹 시뮬레이션에서 제1프로세싱 유닛에 대응하는 연산과 자료 구조를 기반으로 제2프로세싱 유닛에 대응하는 연산과 자료 구조를 확인하여 이를 기반으로 연산을 수행하는 방법이 도시된다.
단계 405에서 연산 장치는 시뮬레이션을 위한 제1프로세싱 유닛에 대응하는 연산 및 자료 구조를 확인할 수 있다. 실시 예에서 제1프로세싱 유닛은 CPU를 포함할 수 있으며, 시뮬레이션을 위해 수행해야 하는 연산과 이에 대응하는 자료 구조가 확인될 수 있다.
단계 410에서 연산 장치는 확인된 정보를 기반으로 시뮬레이션을 위한 제2프로세싱 유닛에 대응하는 연산 및 자료 구조를 확인할 수 있다. 실시 예에서 제2프로세싱 유닛은 GPU를 포함할 수 있으며, 이전 단계에서 확인된 정보를 기반으로 GPU에서 시뮬레이션을 수행하기 위한 연산과 이에 대응하는 자료 구조가 확인될 수 있다. 실시 예에서 연산 장치는 연산에 사용되는 GPU의 성능을 추가로 고려하여 연산 및 자료 구조를 확인할 수 있다. 또한 실시 예에서 연산 장치는 연산에 사용되는 GPU의 숫자를 기반으로 연산에 수행될 프로세서를 확인할 수 있으며, 확인된 프로세서에 대응하는 자료 구조에 맞는 데이터를 각 프로세서에 대응하는 메모리로 복사하는 동작을 수행할 수도 있다.
단계 415에서 연산장치는 제2프로세싱 유닛을 사용하여 시뮬레이션과 관련된 연산을 수행할 수 있다. 실시 예에서 연산은 병렬적으로 수행될 수 있으며, 병렬 연산과 관련된 제어는 연산장치의 제어부, CPU 및 GPU 중 적어도 하나를 통해 수행될 수 있다. 이와 같은 제어를 통해 제1프로세싱 유닛에 대응하는 연산을 제2프로세싱 유닛에서 병렬적으로 수행할 수 있으며, 이를 병합하여 시뮬레이션과 관련된 최종 연산 결과를 확인할 수 있다.
단계 420에서 연산 장치는 병렬 연산에 따른 결과 값을 확인할 수 있으며, 이를 기반으로 시뮬레이션 결과 값을 도출할 수 있다.
이와 같이 CPU에 대응하는 연산 및 자료 구조를 GPU에서 병렬적으로 수행될 수 있도록 변환하여 시뮬레이션을 수행함으로써 고성능의 하드웨어를 투입하지 않고도 분자 도킹과 관련된 시뮬레이션에 소요되는 시간을 줄일 수 있다.
또한 단백질-리간드 상호 작용을 예측하기 위한 분자 도킹(docking)을 시뮬레이션 할 수 있으며, 이와 같은 시뮬레이션을 위해 Autodock Vina (AD Vina)와 같은 프로그램을 사용할 수 있다. 한편 시뮬레이션을 위해 CPU를 통한 연산을 수행할 수 있으나 도킹 시뮬레이션의 특성상 그 연산이 병렬적으로 수행될 필요성이 있다. 최근에, GPU를 통한 속도를 개선한 가속 분자 시뮬레이션은 분자 역학 시뮬레이션에서 더욱 접근하기 쉬워졌다.
기존의 CPU를 통해 연산을 수행하는 시뮬레이션에 대응하여 이와 같은 시뮬레이션 프로그램의 코드를 포팅(port)하고 GPU 환경에서 실행되도록 최적화 할 수 있다. 이와 같은 연산은 CPU에서 수행되는 연산을 GPU 환경에서 수행되도록 포트 하는데 제한되지 않으며, 분자 도킹 시뮬레이션을 위한 연산을 병렬적으로 처리하기 위해 범용적으로 사용될 수 있다.
일 예로 도킹 시뮬레이션에서 가장 많은 연산이 필요한 프로세스 중 하나는 "포즈 서치(pose search)"이며, 이와 같은 포즈 서치를 병렬 처리를 통한 연산으로 시뮬레이션 함으로써 연산에 필요한 시간을 줄일 수 있다. 보다 구체적으로 도킹과 관련된 시뮬레이션에서 연산의 많은 부분은 도킹을 위한 포즈를 확인하고, 이에 대한 에너지를 계산하는 것에 대응될 수 있다. 이와 같은 연산을 병렬적으로 수행하면 보다 성능 개선이 있을 것으로 보이며, 이와 같은 병렬 연산은 GPU 환경에서 보다 용이하게 구현될 수 있다.
일 예로 CPU에서 구현되는 시뮬레이션과 관련된 코드를 GPU에서 구현되도록 변환하여 시뮬레이션 환경을 구현할 수 있다. 이 때 에너지 계산을 위한 알고리즘과 대응하는 GPU와 관련된 코드를 통해 시뮬레이션 환경을 구현할 수 있다. 또한 포즈 서치를 위해 최적화를 수행할 필요성이 있으며, 이와 같은 최적화를 수행하기 위한 미분 방정식을 계산하는 것을 GPU에서 병렬적으로 처리하기 위한 코드 작성이 필요하다. 이와 같이 CPU에서 구현되는 프로그램을 GPU 환경으로 변환하기 위한 코드 작성이 필요하고, 이를 도킹 시뮬레이션에 최적화 하는 것이 필요하다. 시뮬레이션을 위한 연산을 수행하는 ALU를 지정하는 것 및 캐쉬/메인 메모리 접근에 대해서 CPU에서 구현되는 코드를 GPU에 적용하기 위해서 추가적인 레이어를 구현하는 것이 필요하다. 또한 이와 같은 시뮬레이션 구현을 위해 CPU 및 GPU 상호 운용 가능한 복합 자료 구조 및 이에 대응한 라이브러리가 필요하다. 이와 같은 복합 자료 구조는 단백질, 리간드 및 이들의 도킹 계산에 사용되는 데이터 저장 및 계산과 관련된 정보를 저장하고 처리하기 위한 자료 구조를 포함할 수 있다. 실시 예에서 자료 구조 생성시 정적(static) 메모리를 사용하여 자료 구조를 생성할 수 있다. 또한 이와 같은 연산을 위해 CPU 및 GPU에서 상호 운용 가능하도록 각각 서로 대응될 수 있는 데이터와 관련된 표현을 사용할 수 있다. 또한 자료 구조에 접근하기 위한 인터페이스를 구현하기 위해 CPU와 관련된 코드와 대응되게 GPU와 관련된 코드를 구현할 수 있다.
시뮬레이션을 위한 응용 프로그램에서 일반적으로 매우 큰 도킹 계산이 필요한 단백질-리간드 상호 작용 예측을 식별하기 위해 교차 도킹 캠페인을 수행할 수 있다. 예를 들어, 단일 쿼리(query) 리간드는 표적 단백질의 수에 대응하는 대략 10,000회 가량의 도킹 연산이 필요하며, 이와 같은 연산을 수행하기 위해서 CPU를 통한 병렬 연산은 그 성능 향상의 폭이 크지 않고, 복수의 CPU를 구비한 고성능의 연산 장치가 필요한 바, GPU를 통해 이와 같은 연산을 수행함으로써 보다 저렴한 하드웨어를 통해 연산 속도를 높일 수 있는 효과가 있다. 일 예로 CPU를 통해 수행되는 도킹 시뮬레이션을 통상적인 GPU를 사용한 병렬 처리를 할 경우 기존 대비 10배 이상의 계산을 수행할 수 있다.
앞서 언급했던 AD Vina 프로그램은 몬테카를로 서치(Monte Carlo Search) 및 메트로폴리스-헤이스팅스(Metropolis-Hastings) 알고리즘을 이용하여 분자 도킹을 위한 포즈 서치를 수행할 수 있다. 또한, 쿼지-뉴턴 방법(Quasi-Newton method; 특히, BFGS(Broyden, Fletcher, Goldfarb and Shanno) 방법)을 이용하여 포즈 서치 및 에너지 계산(energy evaluation)을 위한 최적화를 수행할 수 있다.
구체적으로, AD Vina를 통해 PDBQT 파일로부터 리간드와 단백질 정보를 판독하고, 판독된 리간드 정보와 단백질 정보를 기반으로 그리드 캐쉬(grid cache)를 생성할 수 있다. 그리고 생성된 그리드 캐쉬를 이용하여 몬테카를로 서치를 통해 강한 결합 에너지를 가지는 최적의 포즈를 예측할 수 있다.
몬테카를로 서치는 난수 값을 이용한 random sampling 방법으로, 분자 구조를 통계적인 분포를 기반으로 변경하면서 도킹 시뮬레이션을 진행하는 탐색 방법이다. 몬테카를로 서치의 과정으로, 원자 및 분자의 배향(orientation)과 비틀림(torsion) 등을 임의로 바꾸면서 에너지를 계산한다. 그리고 이전 구조의 에너지와 새로운 구조의 에너지가 Boltzmann 분포와 일치하면 새로운 구조를 선택하고, 일치하지 않으면 새로운 구조를 폐기하고 이전 구조로 되돌아가는 방식으로 포즈와 에너지 계산 간에 최적화를 수행한다.
또한, 몬테카를로 서치의 일환으로, 쿼지-뉴턴 방법을 이용하여 포즈 탐색을 수행할 수 있다. 쿼지-뉴턴 방법은 근사 값을 통한 값의 추정 방법으로, 리간드 형태(conformation)의 변경(change) 및 변이(mutate)를 이용하여 에너지 계산 값이 높은 포즈를 추정할 수 있다. 또한, 메트로폴리스-헤이스팅스 알고리즘을 이용하여, 기각 표본을 추출하는 방식으로 포즈 탐색을 수행하고 최적의 단백질-리간드 결합 에너지 계산 값을 갖는 (예를 들어, 20개의) 리간드 형태를 출력할 수 있다. 실시 예에서 출력되는 리간드 형태의 개수는 사용자 설정, 추정되는 표본의 특성 및 연산 장치의 구성 중 적어도 하나를 기반으로 설정될 수 있다.
특히, 에너지 계산과 관련하여, 단백질 정보를 기반으로 생성된 그리드 정보를 기반으로 그리드 캐쉬를 생성할 수 있다. 이러한 그리드 캐쉬의 크기 및 형태는 그리드 캐쉬의 생성 이후에는 그리드 캐쉬의 특성으로 인한 시뮬레이션 실행 시간에 영향을 주지 않는다. 일 예로 단백질 정보를 기반으로 그리드에 대한 캐쉬를 생성할 때 총 소요 시간은 1초 이내 일 수 있으며, 캐쉬 생성에 따라 차후 시뮬레이션에서 단백질 정보를 효율적으로 활용하여 메모리 복사와 같은 중복 작업을 줄일 수 있다.
또한, 리간드에 포함된 원자 수와 자유도에 따라 휴리스틱(heuristic)하게 몬테카를로 서치의 반복 횟수가 결정될 수 있으며, 이는 에너지 계산의 수행 횟수를 결정할 수 있다. 이와 같이 리간드에 포함된 원자 수와 그 자유도에 따라 연산의 수행 횟수가 결정될 수 있으며, 이를 기반으로 연산 수행의 방식 및 연산 수행 대상 프로세서 중 적어도 하나를 결정할 수 있다.
한편, 본 명세서의 실시 예에서는 분자 도킹 시뮬레이션을 위한 연산을 보다 빠르게 처리하기 위해 CPU 및 GPU에서 병렬적으로 연산을 수행할 수 있는 시뮬레이션을 위한 방법 및 장치를 구현하고자 한다. 구체적으로, 본 명세서의 실시 예를 통해 CPU와 GPU의 성능을 동시에 사용하여 최대한 많은 수의 도킹을 일정 시간 내에 처리할 수 있다. 이를 위해 AD Vina에서 사용하는 기본 알고리즘 및 파라미터가 활용될 수 있으며, 도킹에 고려되는 리간드의 수(L) 및 단백질의 수(P)에 따라 한번에 L*P 개의 도킹과 관련된 연산을 병렬적으로 수행하는 방법을 고안할 수 있다.
도 5는 본 명세서의 실시 예에 따른 GPU 코어를 사용한 분자 도킹 시뮬레이션 방법을 설명하기 위한 흐름도이다.
본 명세서의 실시 예에 따르면, 단계 501에서 분자 도킹 시뮬레이션을 하기에 앞서 도킹 시뮬레이션의 대상이 되는 복수개의 리간드에 대한 정보를 확인할 수 있다. 복수개의 리간드에 대한 정보는 리간드 형태(ligand conformation) 정보, 리간드의 원자 수 및 리간드의 자유도 중 하나 이상을 포함하는 리간드의 속성에 관한 정보를 포함할 수 있다.
또한, 단계 503에서 도킹 시뮬레이션의 대상이 되는 복수개의 단백질에 대한 정보를 확인할 수 있으며, 이때의 단백질 정보는 그리드(grid) 정보를 포함할 수 있다. 일 실시 예에 따르면, 단백질 정보는 그리드 캐쉬 형태로 구성된 단백질의 크기, 리간드와 결합하는 부분인 리셉터(receptor)의 구조 등에 관한 정보를 포함할 수 있다.
단계 505에서 복수개의 리간드에 대한 정보에 따른 각 리간드의 크기를 기반으로 적어도 하나의 리간드 세트를 확인할 수 있다. 일 실시 예에 따르면, 리간드의 원자 수 또는 리간드의 자유도에 따라 복수개의 리간드가 하나의 리간드 세트로 클러스터링 될 수 있다. 즉, 리간드의 원자 수 및 리간드의 자유도 중 적어도 하나가 동일한 경우 리간드의 크기가 유사한 것으로 볼 수 있으며, 유사한 리간드 크기를 갖는 리간드들을 하나의 리간드 세트로 클러스터링 할 수 있다. 예를 들어, 복수개의 리간드 L1 내지 Ln은 리간드 세트 S1 내지 Sm으로 분류될 수 있다(n은
Figure 112020039342399-pat00001
(m은 정수)을 만족하는 정수). 이를 통해 유사한 크기의 리간드와 다수의 단백질이 도킹할 수 있도록 시뮬레이션을 구현할 수 있다. 리간드 크기는 도킹 시뮬레이션 되는 시스템의 환경 및 시뮬레이션이 실행되는 리간드의 형태에 따라 다를 수 있다.
단계 507에서 리간드 세트에 포함되는 리간드의 속성을 기반으로 적어도 하나의 리간드 세트에 대한 스코어를 결정할 수 있다. 구체적으로, 리간드 세트에 대한 스코어는 리간드 세트에 포함된 리간드와 관련된 제1 지수 및 제2 지수를 기반으로 결정될 수 있다. 예를 들어, 리간드 세트의 스코어는 제1 지수와 제2 지수를 곱한 값에 대응될 수 있다.
일 실시 예에 따르면, 제1 지수는 리간드 세트에 포함된 리간드의 원자 수 및 리간드 세트에 포함된 리간드의 자유도를 기반으로 결정될 수 있다. 또한, 제2 지수는 리간드 세트에 포함된 리간드의 숫자 및 대응되는 복수개의 단백질의 숫자 정보를 기반으로 결정될 수 있다. 이러한 리간드의 속성은 복수개의 리간드에 대한 정보로부터 확인될 수 있다.
일 실시 예에 따르면, 제1 지수는 리간드의 원자 수, 리간드의 자유도 및 GPU의 wrap size를 기반으로 결정될 수 있다. 보다 구체적으로, 제1 지수는 리간드의 원자 수의 제곱에 비례하고, 리간드의 자유도 및 GPU의 wrap size 중 적어도 하나에 반비례 하는 값에 따라 결정될 수 있다. 이는 단백질-리간드 복합체의 포즈에 따른 에너지 효율이 리간드의 원자 수의 제곱에 비례하고, 리간드의 자유도가 에너지 효율을 낮추는 역할을 하기 때문이다. 또한, GPU의 wrap size에 반비례 하는 값은 도킹 시뮬레이션을 동시에 실행할 수 있는 GPU 쓰레드 블록(Thread Block)의 최대 수에 비례하는 값에 대응될 수 있으며, 이에 따라 동시에 실행 가능한 연산 절차의 수가 결정될 수도 있다.
또는, 제1 지수는 다음의 수학식 1을 이용하여 결정될 수 있다.
[수학식 1]
제1 지수 = roundup (
Figure 112020039342399-pat00002
)
여기서, N은 리간드의 원자 수, w는 GPU의 wrap size, F는 리간드의 자유도를 의미한다. N을 통해 리간드 화합물을 구성하는 원자들 간의 상호영향을 평가할 수 있으며, w는 일반적으로 상수 값 32일 수 있다.
일 실시 예에 따르면, 제2 지수는 리간드 세트에 포함된 리간드의 숫자 및 복수개의 단백질의 숫자 정보 중 적어도 하나에 비례하는 값에 따라 결정될 수 있다. 이는 리간드 세트의 크기(즉, 리간드 세트에 포함된 리간드의 수에 대응될 수 있다)와 단백질의 수가 GPU 메모리로의 데이터 복사에 있어서 선형적으로 직접적인 효과를 끼치기 때문이다.
또는, 제2 지수는 다음의 수학식 2를 이용하여 결정될 수 있다.
[수학식 2]
제2 지수 = e * L * P
여기서, e는 데이터 어레이 변환 상수, L은 리간드 세트에 포함된 리간드의 수, P는 단백질의 수를 의미한다. 일 실시 예에 따르면, e는 기본값 8로 설정될 수 있고, 사용자의 지정으로 설정될 수도 있다. 사용자의 지정으로 설정되는 경우에는 20 이내의 값으로 설정될 수 있다. 또한, e는 도킹 시뮬레이션의 건 당 GPU 코어에서 병렬적으로 처리하는 시뮬레이션의 수에 대응될 수 있다. 이는 도킹 시뮬레이션의 실행 건 당 어레이 정보로 변환되는 데이터의 수와 시뮬레이션 구현 상 대응되는 값일 수 있다.
도킹 시뮬레이션을 위한 다음 단계로, 단계 509에서 적어도 하나의 리간드 세트의 스코어 및 분자 도킹 시뮬레이션 수행과 관련된 GPU 코어의 수를 기반으로 복수개의 리간드 세트가 제1 그룹으로 선택될 수 있으며, 제1 그룹의 리간드 세트에 속하는 리간드 정보 및 단백질 정보를 GPU 메모리에 복사할 수 있다. 또한, 단계 511에서 GPU 메모리에 복사된 정보를 기반으로 GPU 코어를 사용하여 분자 도킹 시뮬레이션을 수행할 수 있다. 일 실시 예에 따르면, GPU 메모리에 복사되는 리간드 정보는 리간드 형태 정보, 리간드의 원자 수 및 리간드의 자유도 중 하나 이상을 포함할 수 있다.
일 실시 예에 따르면, GPU 메모리로 복사되는 정보는 리간드에 대한 정보를 포함하는 어레이(array) 정보일 수 있다. 이 때 어레이 정보는 리간드와 관련된 구성 분자 정보 어레이 및 구성 분자 간 연결 관계 어레이를 포함할 수 있다. 이와 관련하여 도 6을 참조로 설명하도록 한다.
도 6은 어레이 정보를 포함하는 리간드에 대한 정보를 도식화한 개략도이다.
도 6을 참조하면, 리간드와 관련된 구성 분자와 그들의 연결 관계는 트리(tree) 형태로 동작 할당된 상태(610)일 수 있다. 이러한, 동적 할당 상태로는 하나의 프로세서에서 연산을 수행할 수 있으나, 해당 메모리 구조에 적합하지 않은 프로세서에서 연산을 수행하기 어렵다. 본 명세서의 실시 예는 CPU 코어와 GPU 코어 모두에서 상호 운영 가능하도록 리간드에 대한 정보를 어레이 형태의 정보로 표현할 수 있다. 예를 들어, 트리 형태의 리간드 정보(610)를 연속적인 어레이 정보(620)로 구현할 수 있다. 이 때 트리 형태에 따른 데이터와 부모 노드가 동일한 어레이 정보 내에서 각각 병렬적으로 구현될 수 있다. 예를 들어, 트리 형태로 동적 할당된 상태의 정보(610)를 각각의 노드들의 데이터(1, 2, 3, 4, 5, 6 및 7)와 각 노드들의 부모 노드(-, 1, 1, 1, 2, 3 및 3)로 연속적인 어레이 정보(620)로써 구현할 수 있다. 이와 같은 어레이 형태로 리간드 정보(610)을 포함함으로써 각 프로세서에 대응되는 메모리에 데이터 복사를 효과적으로 수행할 수 있으며, 이에 따라 병렬적 연산을 수행하기 용이해진다.
일 실시 예에 따른 리간드 정보를 포함하는 어레이 정보의 구현으로 인하여, 변이(Mutation) 모듈부터, 포즈 서치, 에너지 계산, 최적화 모듈까지 GPU 코어에서 동작 가능하도록 할 수 있다.
이러한, 어레이 정보와 관련된 연산은 GPU의 가상 명령어 셋을 사용할 수 있도록 하는 소프트웨어 또는 하드웨어 레이어와 관련된 도구를 통해서 수행될 수 있으며, 일 예로 CUDA thrust Library을 이용하여 구현될 수 있다. 다만, 복잡도가 높은 자료구조의 표현을 위해 다른 적절한 병렬 알고리즘이 이용될 수 있다.
한편, 단계 509에서 제1 그룹의 리간드 세트에 속하는 리간드 정보 및 단백질 정보가 GPU 메모리에 복사되는 횟수는 리간드 세트에 속하는 리간드의 포즈 탐색 횟수를 기반으로 결정될 수 있다. 이와 관련하여 도 7을 참조로 설명하도록 한다.
도 7은 어레이 정보를 포함하는 리간드에 대한 정보가 GPU 메모리에 복사되는 단계를 설명하기 위한 개략도이다.
도 7을 참조하면, 트리 형태의 리간드 정보(710)가 복수개의 어레이 정보(720-1, 720-2, 720-3)로 구현될 수 있다. 각각의 어레이 정보(720-1, 720-2, 720-3)는 리간드와 관련된 구성 분자 정보, 구성 분자 간 연결 관계, 리간드의 원자 수 및 리간드 분자를 구성하는 원자 좌표(coord)에 관한 어레이 등을 포함하는 리간드에 관한 어레이 정보를 포함할 수 있다.
또한 각각의 어레이 정보(720-1, 720-2, 720-3)는 도킹의 대상이 되는 단백질 정보를 포함할 수 있으며, 이에 따라 어레이 정보 각각은 하나의 리간드와 하나의 단백질 쌍(LP)에 관한 어레이 정보를 포함할 수 있다. 이와 같은 어레이 정보에 도킹을 위한 리간드 및 단백질 쌍에 대한 정보를 모두 포함시킴으로써 연산이 수행될 프로세서와 관련된 메모리에 해당 정보를 한번만 복사하면 해당 프로세서에서 도킹 시뮬레이션과 관련된 연산을 수행할 수 있으며, 이와 같은 절차를 통해 복수개의 프로세서에서 시뮬레이션과 관련된 연산이 병렬적으로 수행되고, 연산 진행 상황에 따라 다음 연산을 수행할 프로세서가 결정되는 환경에서도 메모리 복사 과정만으로 해당 연산을 각 프로세서에서 독립적으로 수행하고 이에 대한 결과를 수신함으로써 연산의 효율성이 높아질 수 있다.
일 실시 예에 따르면, 어레이 정보(720-1, 720-2, 720-3)는 리간드의 포즈 탐색 횟수에 대응하여 GPU 메모리로 복사될 수 있다. 또는, 리간드의 단백질에 대한 결합 구조에 대응하는 어레이 정보가 생성되어 복사될 수 있다. 일 실시 예에 따르면, 리간드의 포즈 탐색 횟수는 리간드의 복잡도에 의해 결정될 수 있으며, 리간드의 복잡도는 리간드의 원자 수 또는 자유도에 기반한다. 다만, 리간드의 원자 수는 단백질-리간드 복합체의 결합 에너지 계산시 GPU 코어의 사용으로 인해 계산 효율 증가로 상쇄될 수 있다. 따라서, 리간드의 자유도에 따라 리간드의 포즈 탐색의 복잡도가 증가될 수 있으며, GPU 메모리로의 복사 횟수를 증가시켜 도킹 시뮬레이션에 따른 연산 부하가 증가할 수 있다.
또한, 어레이 정보(720-1, 720-2, 720-3)는 리간드 세트 단위로 한번에 복사될 수 있다. 즉, GPU 메모리로 한번 복사될 때에 동일한 리간드 세트에 속하는 리간드에 관한 어레이 정보가 함께 복사될 것이다. 예를 들어, 어레이 정보(720-1)와 어레이 정보(720-2)에 포함되는 리간드 정보에 따른 리간드가 원자 수 또는 자유도가 동일하여 동일한 리간드 세트로 구분되는 경우, 어레이 정보(720-1)와 어레이 정보(720-2)는 어레이 정보(720-3)와 다르게 GPU 메모리로 함께 복사될 수 있으며, 각 어레이 정보가 연산이 수행되는 각 GPU에 대응되는 메모리로 분리되어 복사될 수도 있다. 이때 리간드의 포즈 탐색이 완료된 이후 복사가 수행될 수 있다.
일 실시 예에 따르면, 리간드에 대한 정보를 어레이 정보로 구현함에 따라, 복합 형태의 모든 데이터를 연속적인 메모리 형태로 표현할 수 있다. 도킹 시뮬레이션을 위한 도킹 모델(docking model)은 화합물의 구조 및 구성 원소들에 대한 정보뿐만 아니라, 화합물의 모양 및 형태 변화에 대한 정보를 포함하고 있는 복합 구조이다. 따라서, 본 명세서의 실시 예는 이러한 복합 구조를 하나의 연속적인 형태의 메모리로 표현 가능함에 따라, 대량의 도킹 시뮬레이션을 수행할 수 있도록 할 수 있다.
구체적으로, 한 번의 메모리 복사 연산을 통해 CPU 코어와 GPU 코어 간에 데이터 싱크(Synchronization)가 가능하도록 하여, 데이터 동기화에 소요되는 오버헤드를 크게 줄일 수 있으며, 대량의 도킹을 수행하도록 할 수 있다. 이와 관련하여 시스템 내부의 DMA(Direct Memory Access)는 한번에 대량의 메모리를 복사하는데 효율적인 바, 도킹 시뮬레이션의 효율을 높일 수 있다.
한편, 본 명세서의 실시 예에 따르면, 제1 그룹의 리간드 세트는 적어도 하나의 리간드 세트의 스코어와, GPU 코어의 수에 비례하고 GPU의 wrap size에 반비례하는 값에 따라 선택될 수 있다. 여기서 GPU의 wrap size에 반비례 하는 값은 도킹 시뮬레이션을 동시에 실행할 수 있는 GPU 쓰레드 블록의 최대 수에 비례하는 값에 대응될 수 있다. 예를 들어, 리간드 세트 스코어가 GPU 코어의 수를 고려한 계산 값보다 큰 리간드 세트에 대해 제1 그룹으로 선택할 수 있다. 반대로, 리간드 세트 스코어가 GPU 코어의 수를 고려한 계산 값보다 작은 리간드 세트는 제2 그룹으로 선택할 수 있다. 이에 따라, 제1 그룹에 포함된 리간드 세트의 스코어는 제2 그룹에 포함된 리간드 세트의 스코어보다 클 것이다. 또한, 크기가 일정 크기 이상인 리간드를 포함하는 리간드 세트는 GPU 코어에서 도킹 시뮬레이션 될 것이다.
또는, 제1 그룹의 리간드 세트는 다음의 수학식 3을 이용하여 결정될 수 있다.
[수학식 3]
리간드 세트 스코어 >
Figure 112020039342399-pat00003
여기서, k는 GPU 성능 지수에 따르는 상수,
Figure 112020039342399-pat00004
는 GPU 코어의 수, w는 GPU의 wrap size로써 일반적으로 32이다.
이와 관련하여, 도 8은 일 실시 예에 따른 리간드 세트를 스코어에 따라 분류하는 방법을 나타내는 개략도이고, 도 9는 일 실시 예에 따른 제1 그룹에 대한 도킹 시뮬레이션 및 제2 그룹에 대한 도킹 시뮬레이션이 병렬적으로 수행되는 방법을 나타내는 흐름도이다.
도 8 및 9를 참조하면, 복수개의 리간드 세트는 리간드 세트 스코어에 따라 낮은 스코어부터 높은 스코어까지 정렬될 수 있다. 단계 901에서 리간드 세트의 스코어와 GPU 코어의 수를 고려한 계산 값을 비교할 수 있으며, 이 중 리간드 세트 스코어가 GPU 코어의 수를 고려한 계산 값보다 큰 리간드 세트는 단계 902에서 Large Set로 제1 그룹(810)으로 선택될 수 있다. 또한, 리간드 세트 스코어가 GPU 코어의 수를 고려한 계산 값보다 작은 리간드 세트는 단계 903에서 Small Set로 제2 그룹(830)으로 선택될 수 있다. 실시 예에서 GPU 코어의 수를 고려한 계산 값은 GPU 성능 지수 k를 기반으로 결정될 수 있으며, 보다 구체적으로 GPU 성능 지수에 비례하는 값일 수 있다.
일 실시 예에 따르면, 단계 904에서 제1 그룹으로 선택된 리간드 세트(810)에 속하는 리간드 정보 및 단백질 정보는 GPU 메모리로 복사될 수 있다. 그리고 단계 906에서 GPU 메모리에 복사된 정보를 기반으로 GPU 코어(820)에서 도킹 시뮬레이션이 수행될 수 있다. 이를 통해 본 명세서의 실시 예는 리간드 세트 스코어를 통해 전체 도킹 시뮬레이션에 요구되는 GPU 코어의 수를 예측할 수 있다. 또한, 리간드 세트 스코어가 GPU의 블록 할당 가능 최대 값의 일정 이상일 경우, GPU의 성능을 최대로 활용 가능할 것이다. 이를 통해 CPU에서 도킹 계산을 할 때보다 GPU에서 보다 효율적으로 도킹 계산이 가능할 것으로 볼 수 있다.
또한, 제1 그룹에 포함된 리간드 세트(810) 중 스코어가 높은 리간드 세트부터 대응하는 리간드 정보 및 단백질 정보를 GPU 메모리에 복사할 수 있다. 이를 통해, 스코어가 높은 리간드 세트에 대응하는 리간드 순서대로 GPU 코어(820)에서 도킹 시뮬레이션 될 수 있다.
일 실시 예에 따르면, 단계 905에서 제2 그룹의 리간드 세트(830)에 대한 정보 및 단백질 정보를 기반으로 CPU 코어(840)를 사용하여 분자 도킹 시뮬레이션을 수행할 수 있다. 특히, 제2 그룹에 포함된 리간드 세트(830) 중 스코어가 낮은 리간드 세트부터 CPU 코어(840)를 사용하여 분자 도킹 시뮬레이션을 수행할 수 있다.
또한, 제1 그룹에 해당하는 리간드 세트(810)가 GPU 코어(820)에서 시뮬레이션 되는 동안 제2 그룹에 해당하는 리간드 세트(830)는 CPU 코어(840)에서 시뮬레이션 될 수 있다. 즉, 본 명세서의 실시 예에 따르면, 제1 그룹에 대한 도킹 시뮬레이션 및 제2 그룹에 대한 도킹 시뮬레이션이 병렬적으로 수행될 수 있다.
한편, 일 실시 예에 따르면, 분자 도킹 시뮬레이션을 수행하는 단계(511)는 리간드 정보 및 단백질 정보를 기반으로 결정되는 단백질-리간드 복합체(protein-ligand complex)의 포즈에 따른 에너지를 계산(energy evaluation)하는 단계를 포함할 수 있다. 이를 통해 리간드 분자가 단백질 구조에 어떤 구조로 얼마나 강하게 결합할지를 예측하고, 포즈와 에너지를 최적화할 수 있다.
또한, 단백질-리간드 복합체의 포즈에 따른 에너지를 계산하여 도킹 시뮬레이션에 대한 결과 정보를 제공할 수 있다. 예를 들어, 전체 도킹 시뮬레이션의 결과에 대한 정보를 포함하는 리포트를 발행할 수 있다.
본 명세서의 실시 예에 따르면, 복수개의 리간드 세트를 제1 그룹 또는 제2 그룹으로 분류하는 데에는 선형적인 검색만을 수행하므로, 분류에 수행되는 시간이 전제 도킹 시뮬레이션에 소요되는 시간에 비해 미미하다. 예를 들어, 10만 건의 도킹 시뮬레이션을 수행하는 데는 10일 이상이 요구되나, 10만 건의 도킹 모델을 분류하는 데에는 5분 이내의 시간이 소요될 수 있다.
따라서 도킹을 해야하는 리간드 세트와 단백질 세트가 정해져 있을 때, CPU만을 이용하여 도킹을 진행하였을 때와, GPU와 CPU를 함께 이용하여 도킹을 진행하는 때는 약 30%의 시간 절감 효과가 있을 수 있다. 예를 들어, CPU만을 이용하여 도킹을 진행하였을 때 요구되는 시간이 100이면, GPU가 전체 도킹 모델 중 30%에 해당하는 도킹을 수행하는 경우, 전체 도킹 시뮬레이션 수행 시간을 70으로 줄일 수 있다. 또는, 약 10만 건의 도킹 모델에 대해 시뮬레이션하기 위해서는 (48 코어를 가진 컴퓨터를 사용할 경우) 10일 이상의 시간이 필요한데, 이 중 30% 정도를 GPU가 시뮬레이션 한다면, 전체 도킹 시뮬레이션 수행 시간을 7일 정도로 줄일 수 있을 것이다.
한편 실시 예에서 리간드 세트의 스코어링에 따라 시뮬레이션을 수행하는 프로세서를 선택하고 우선적으로 이에 대한 절차를 수행하게 함으로써 각 프로세서의 특징에 적합한 연산을 해당 프로세서가 수행하도록 할 수 있으며, 전체 프로세서의 활용도를 높일 수 있다. 일 예로 특정 그룹으로 미리 리간드 세트를 선택하지 않고, 스코어에 따라 리간드 세트를 정렬하고, 정렬된 양 끝 부분에 해당하는 리간드 세트를 각각 CPU 및 GPU에서 시뮬레이션 시킴으로써 전체 프로세서의 활용을 효과적으로 할 수 있으며, 리간드 세트의 분포가 다양하게 되는 경우에도 이에 따른 연산 속도의 차이가 크지 않을 수 있다.
도 10은 본 명세서의 실시 예에 따른 도킹 시뮬레이션 장치를 도식화한 블록도이다.
본 명세서의 실시 예의 도킹 시뮬레이션 장치는 CPU 코어(1010), GPU 코어(1020) 및 제어부(1030)를 포함할 수 있다.
CPU 코어(1010)는 도 1에 설명된 CPU(100)에 포함되는 장치일 수 있다. 또한, GPU 코어(1020)는 GPU 메모리를 포함할 수 있으며, 도 1에 설명된 GPU(150)에 포함되는 장치일 수 있다. CPU 코어(1010)와 GPU 코어(1020)에 대해 중복되는 설명은 생략하도록 한다.
본 명세서의 실시 예의 제어부(1030)는 복수개의 리간드에 대한 정보를 확인하고, 복수개의 단백질에 대한 그리드 정보를 포함하는 단백질 정보를 확인할 수 있다. 또한, 제어부(1030)는 복수개의 리간드에 대한 정보에 따른 각 리간드의 크기를 기반으로 적어도 하나의 리간드 세트를 확인하고, 리간드 세트에 포함되는 리간드의 속성을 기반으로 적어도 하나의 리간드 세트에 대한 스코어를 결정할 수 있다. 제어부(1030)는 도 1의 제어부(105) 및 제어부(155)중 적어도 하나를 포함할 수 있으며, 도 1의 제어부 이외의 별도의 연산을 위한 제어부의 구성으로 제어부(1030)의 동작을 구현한 것도 가능하다.
또한, 제어부(1030)는 적어도 하나의 리간드 세트의 스코어 및 분자 도킹 시뮬레이션 수행과 관련된 GPU 코어(1020)의 수를 기반으로 선택된 제1 그룹의 리간드 세트에 속하는 리간드 정보 및 단백질 정보를 GPU 메모리에 복사할 수 있다. 그리고, GPU 메모리에 복사된 정보를 기반으로 GPU 코어(1020)를 사용하여 분자 도킹 시뮬레이션을 수행할 수 있다. GPU 메모리는 도 1의 캐쉬 메모리(165), ALU(160) 및 DRAM(170) 중 적어도 하나를 포함할 수 있으며, GPU 연산을 위해 필요한 정보를 저장할 수 있는 별도의 메모리 구조를 통해서도 GPU 메모리의 동작이 수행될 수 있다.
또한, 일 실시 예에 따른 제어부(1030)는 적어도 하나의 리간드 세트의 스코어를 기반으로 선택된 제2 그룹의 리간드 세트에 대한 정보 및 단백질 정보를 기반으로 CPU 코어(1010)를 사용하여 분자 도킹 시뮬레이션을 더 수행할 수 있다.
또한, 제어부(1030)는 제2 그룹에 포함된 리간드 세트 중 스코어가 낮은 리간드 세트부터 CPU 코어(1010)를 사용하여 분자 도킹 시뮬레이션을 수행할 수 있다. 이를 통해 제1 그룹에 대한 도킹 시뮬레이션 및 제2 그룹에 대한 도킹 시뮬레이션을 병렬적으로 수행할 수도 있다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.

Claims (22)

  1. 분자 도킹 시뮬레이션(docking simulation) 방법에 있어서,
    복수개의 리간드에 대한 정보를 확인하는 단계;
    복수개의 단백질에 대한 그리드(grid) 정보를 포함하는 단백질 정보를 확인하는 단계;
    상기 복수개의 리간드에 대한 정보에 따른 각 리간드의 크기를 기반으로 적어도 하나의 리간드 세트를 확인하는 단계;
    상기 리간드 세트에 포함되는 리간드와 관련된 제1 지수 및 제2 지수를 기반으로 상기 적어도 하나의 리간드 세트에 대한 스코어를 결정하는 단계;
    상기 적어도 하나의 리간드 세트의 스코어 및 분자 도킹 시뮬레이션 수행과 관련된 GPU(Graphics Processing Unit) 코어(core)의 수를 기반으로 선택된 제1 그룹의 리간드 세트에 속하는 리간드 정보 및 상기 단백질 정보를 GPU 메모리에 복사하는 단계;
    상기 GPU 메모리에 복사된 정보를 기반으로 상기 GPU 코어를 사용하여 분자 도킹 시뮬레이션을 수행하는 단계; 및
    상기 적어도 하나의 리간드 세트의 스코어를 기반으로 선택된 제2 그룹의 리간드 세트에 대한 정보 및 상기 단백질 정보를 기반으로 CPU 코어를 사용하여 분자 도킹 시뮬레이션을 수행하는 단계를 포함하고,
    상기 제1 지수는 상기 리간드 세트에 포함된 리간드의 원자 수 및 상기 리간드 세트에 포함된 리간드의 자유도를 기반으로 결정되고,
    상기 제2 지수는 상기 리간드 세트에 포함된 리간드의 숫자 및 상기 복수개의 단백질의 숫자 정보를 기반으로 결정되는, 분자 도킹 시뮬레이션 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 제2 그룹에 포함된 리간드 세트 중 스코어가 낮은 리간드 세트부터 상기 CPU 코어를 사용하여 분자 도킹 시뮬레이션이 수행되는, 분자 도킹 시뮬레이션 방법.
  4. 제3항에 있어서,
    상기 제1 그룹에 포함된 리간드 세트의 스코어는 상기 제2 그룹에 포함된 리간드 세트의 스코어보다 큰 것을 특징으로 하는, 분자 도킹 시뮬레이션 방법.
  5. 제3항에 있어서,
    상기 제1 그룹에 대한 도킹 시뮬레이션 및 상기 제2 그룹에 대한 도킹 시뮬레이션이 병렬적으로 수행되는, 분자 도킹 시뮬레이션 방법.
  6. 제1항에 있어서,
    상기 제1 그룹의 리간드 세트는 상기 적어도 하나의 리간드 세트의 스코어 및 상기 GPU 코어의 수에 비례하고 상기 GPU의 wrap size에 반비례하는 값에 따라 선택되는, 분자 도킹 시뮬레이션 방법.
  7. 제1항에 있어서,
    상기 복수개의 리간드에 대한 정보는 리간드 형태(ligand conformation) 정보, 리간드의 원자 수 및 리간드의 자유도 중 하나 이상을 포함하는, 분자 도킹 시뮬레이션 방법.
  8. 제1항에 있어서,
    상기 복사된 정보는
    상기 리간드에 대한 정보를 포함하는 어레이(array) 정보를 포함하며,
    상기 어레이 정보는 상기 리간드와 관련된 구성 분자 정보 어레이 및 상기 구성 분자 간 연결 관계 어레이를 포함하는, 분자 도킹 시뮬레이션 방법.
  9. 제 1항에 있어서,
    상기 제1 그룹의 리간드 세트에 속하는 리간드 정보 및 상기 단백질 정보가 GPU 메모리에 복사되는 횟수는 상기 리간드 세트에 속하는 리간드의 포즈 탐색 횟수를 기반으로 결정되는, 분자 도킹 시뮬레이션 방법.
  10. 제1항에 있어서,
    상기 복사하는 단계는,
    상기 제1 그룹에 포함된 리간드 세트 중 스코어가 높은 리간드 세트부터 대응하는 리간드 정보 및 상기 단백질 정보를 GPU 메모리에 복사하는 단계를 포함하는, 분자 도킹 시뮬레이션 방법.
  11. 삭제
  12. 제1항에 있어서,
    상기 제1 지수는,
    상기 리간드의 원자 수, 상기 리간드의 자유도 및 상기 GPU의 wrap size를 기반으로 결정되는, 분자 도킹 시뮬레이션 방법.
  13. 제12항에 있어서,
    상기 제1 지수는,
    상기 리간드의 원자 수의 제곱에 비례하고, 상기 리간드의 자유도 및 상기 GPU의 wrap size 중 적어도 하나에 반비례하는 값에 따라 결정되는, 분자 도킹 시뮬레이션 방법.
  14. 제1항에 있어서,
    상기 제2 지수는,
    상기 리간드 세트에 포함된 리간드의 숫자 및 상기 복수개의 단백질의 숫자 정보 중 적어도 하나에 비례하는 값에 따라 결정되는, 분자 도킹 시뮬레이션 방법.
  15. 제1항에 있어서,
    상기 도킹 시뮬레이션을 수행하는 단계는,
    상기 리간드 정보 및 상기 단백질 정보를 기반으로 결정되는 단백질-리간드 복합체(protein-ligand complex)의 포즈에 따른 에너지를 계산(energy evaluation)하는 단계를 포함하는, 분자 도킹 시뮬레이션 방법.
  16. 제15항에 있어서,
    상기 도킹 시뮬레이션에 대한 결과 정보를 제공하는 단계를 더 포함하는, 분자 도킹 시뮬레이션 방법.
  17. 도킹 시뮬레이션 장치에 있어서,
    CPU 코어;
    복수개의 GPU 코어; 및
    제어부를 포함하고,
    상기 제어부는,
    복수개의 리간드에 대한 정보를 확인하고,
    복수개의 단백질에 대한 그리드 정보를 포함하는 단백질 정보를 확인하고,
    상기 복수개의 리간드에 대한 정보에 따른 각 리간드의 크기를 기반으로 적어도 하나의 리간드 세트를 확인하고,
    상기 리간드 세트에 포함되는 리간드와 관련된 제1 지수 및 제2 지수를 기반으로 상기 적어도 하나의 리간드 세트에 대한 스코어를 결정하고,
    상기 적어도 하나의 리간드 세트의 스코어 및 분자 도킹 시뮬레이션 수행과 관련된 상기 GPU 코어의 수를 기반으로 선택된 제1 그룹의 리간드 세트에 속하는 리간드 정보 및 상기 단백질 정보를 GPU 메모리에 복사하고,
    상기 GPU 메모리에 복사된 정보를 기반으로 상기 GPU 코어를 사용하여 분자 도킹 시뮬레이션을 수행하고,
    상기 적어도 하나의 리간드 세트의 스코어를 기반으로 선택된 제2 그룹의 리간드 세트에 대한 정보 및 상기 단백질 정보를 기반으로 CPU 코어를 사용하여 분자 도킹 시뮬레이션을 수행하며,
    상기 제1 지수는 상기 리간드 세트에 포함된 리간드의 원자 수 및 상기 리간드 세트에 포함된 리간드의 자유도를 기반으로 결정되고,
    상기 제2 지수는 상기 리간드 세트에 포함된 리간드의 숫자 및 상기 복수개의 단백질의 숫자 정보를 기반으로 결정되는, 분자 도킹 시뮬레이션 장치.
  18. 삭제
  19. 제17항에 있어서,
    상기 제어부는,
    상기 제2 그룹에 포함된 리간드 세트 중 스코어가 낮은 리간드 세트부터 상기 CPU 코어를 사용하여 분자 도킹 시뮬레이션을 수행하는, 분자 도킹 시뮬레이션 장치.
  20. 제19항에 있어서,
    상기 제1 그룹에 포함된 리간드 세트의 스코어는 상기 제2 그룹에 포함된 리간드 세트의 스코어보다 큰 것을 특징으로 하는, 분자 도킹 시뮬레이션 장치.
  21. 제19항에 있어서,
    상기 제어부는,
    상기 제1 그룹에 대한 도킹 시뮬레이션 및 상기 제2 그룹에 대한 도킹 시뮬레이션을 병렬적으로 수행하는, 분자 도킹 시뮬레이션 장치.
  22. 삭제
KR1020200046176A 2019-10-21 2020-04-16 병렬 연산을 통한 단백질-리간드 상호 작용 분석 방법 및 장치 Active KR102209526B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2020/008789 WO2021080122A1 (en) 2019-10-21 2020-07-06 Method and apparatus for analyzing protein-ligand interaction using parallel operation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190130752 2019-10-21
KR20190130752 2019-10-21

Publications (1)

Publication Number Publication Date
KR102209526B1 true KR102209526B1 (ko) 2021-02-01

Family

ID=74571536

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200046176A Active KR102209526B1 (ko) 2019-10-21 2020-04-16 병렬 연산을 통한 단백질-리간드 상호 작용 분석 방법 및 장치

Country Status (2)

Country Link
KR (1) KR102209526B1 (ko)
WO (1) WO2021080122A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115016951A (zh) * 2022-08-10 2022-09-06 中国空气动力研究与发展中心计算空气动力研究所 流场数值模拟方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007219760A (ja) * 2006-02-15 2007-08-30 Fujitsu Ltd ドッキングシミュレーションプログラム、該プログラムを記録した記録媒体、ドッキングシミュレーション装置、およびドッキングシミュレーション方法
KR20100092596A (ko) * 2009-02-13 2010-08-23 건국대학교 산학협력단 분자 도킹 시뮬레이션 방법 및 그 장치
KR101879419B1 (ko) * 2017-03-15 2018-08-17 주식회사 클래스액트 병렬처리 알고리즘을 이용한 태스크 분배 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2381382B1 (en) * 2003-10-14 2017-12-06 Verseon Method and apparatus for analysis of molecular configurations and combinations
US20150051090A1 (en) * 2013-08-19 2015-02-19 D.E. Shaw Research, Llc Methods for in silico screening

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007219760A (ja) * 2006-02-15 2007-08-30 Fujitsu Ltd ドッキングシミュレーションプログラム、該プログラムを記録した記録媒体、ドッキングシミュレーション装置、およびドッキングシミュレーション方法
KR20100092596A (ko) * 2009-02-13 2010-08-23 건국대학교 산학협력단 분자 도킹 시뮬레이션 방법 및 그 장치
KR101879419B1 (ko) * 2017-03-15 2018-08-17 주식회사 클래스액트 병렬처리 알고리즘을 이용한 태스크 분배 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115016951A (zh) * 2022-08-10 2022-09-06 中国空气动力研究与发展中心计算空气动力研究所 流场数值模拟方法、装置、计算机设备和存储介质
CN115016951B (zh) * 2022-08-10 2022-10-25 中国空气动力研究与发展中心计算空气动力研究所 流场数值模拟方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
WO2021080122A1 (en) 2021-04-29

Similar Documents

Publication Publication Date Title
EP3126971B1 (en) Program execution on heterogeneous platform
CN106383695B (zh) 基于fpga的聚类算法的加速系统及其设计方法
CN110674936A (zh) 一种神经网络处理方法、装置、计算机设备及存储介质
CN110689115A (zh) 神经网络模型处理方法、装置、计算机设备及存储介质
Docan et al. Moving the code to the data-dynamic code deployment using activespaces
US20120331278A1 (en) Branch removal by data shuffling
US20180373514A1 (en) Application binary interface cross compilation
CN105468439A (zh) 在cpu-gpu异构框架下遍历固定半径内邻居的自适应并行算法
CN103996216A (zh) 用于曲面细分和几何着色器的电力高效属性处置
US20160071230A1 (en) Configuring resources used by a graphics processing unit
CN104156051A (zh) 基于数据管理功率的设备和方法
CN110516316A (zh) 一种间断伽辽金法求解欧拉方程的gpu加速方法
Crotty et al. Tupleware: Distributed Machine Learning on Small Clusters.
US10289393B2 (en) GPU-executed program sequence cross-compilation
Lukken et al. Past, present and future of computational storage: A survey
KR102209526B1 (ko) 병렬 연산을 통한 단백질-리간드 상호 작용 분석 방법 및 장치
Huang et al. Wisegraph: Optimizing gnn with joint workload partition of graph and operations
Boechat et al. Representing and scheduling procedural generation using operator graphs
CN117009038B (zh) 一种基于云原生技术的图计算平台
CN119105762A (zh) 用于深度学习的迭代编译的方法和电子装置
US10475151B2 (en) Graphics engine resource management and allocation system
US20240095090A1 (en) Cloud-based framework for analysis using accelerators
Ruan et al. Hymr: a hybrid mapreduce workflow system
Renz-Wieland et al. Just move it! Dynamic parameter allocation in action
US20080275683A1 (en) kD TREE AND ENVELOPE TO IMPROVE IDENTIFICATION OF NEAREST ATOMS

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20200416

PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20201104

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20200416

Comment text: Patent Application

PA0302 Request for accelerated examination

Patent event date: 20201104

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

Patent event date: 20200416

Patent event code: PA03021R01I

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20201221

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20210122

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20210125

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20210126

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20231108

Start annual number: 4

End annual number: 4