KR20240025702A - 2차 및/또는 3차 프로세싱을 수행하기 위한 생물정보학 시스템, 장치, 및 방법 - Google Patents

2차 및/또는 3차 프로세싱을 수행하기 위한 생물정보학 시스템, 장치, 및 방법 Download PDF

Info

Publication number
KR20240025702A
KR20240025702A KR1020247005077A KR20247005077A KR20240025702A KR 20240025702 A KR20240025702 A KR 20240025702A KR 1020247005077 A KR1020247005077 A KR 1020247005077A KR 20247005077 A KR20247005077 A KR 20247005077A KR 20240025702 A KR20240025702 A KR 20240025702A
Authority
KR
South Korea
Prior art keywords
data
instances
alignment
server
sequence
Prior art date
Application number
KR1020247005077A
Other languages
English (en)
Inventor
피터 반 루옌
마이클 룰
라미 미히오
가빈 스톤
마크 햄
에릭 오자드
암논 파셱
암논 파™r
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
Priority claimed from US15/404,146 external-priority patent/US10847251B2/en
Priority claimed from US15/497,149 external-priority patent/US10068183B1/en
Application filed by 일루미나, 인코포레이티드 filed Critical 일루미나, 인코포레이티드
Priority claimed from PCT/US2017/036424 external-priority patent/WO2017214320A1/en
Publication of KR20240025702A publication Critical patent/KR20240025702A/ko

Links

Classifications

    • 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
    • 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
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • G16B50/30Data warehousing; Computing architectures
    • 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
    • G16B30/00ICT specially adapted for sequence analysis involving nucleotides or amino acids
    • G16B30/10Sequence alignment; Homology search
    • 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
    • G16B20/00ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
    • 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
    • G16B25/00ICT specially adapted for hybridisation; ICT specially adapted for gene or protein expression
    • 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
    • G16B40/00ICT specially adapted for biostatistics; ICT specially adapted for bioinformatics-related machine learning or data mining, e.g. knowledge discovery or pattern finding
    • 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
    • G16B45/00ICT specially adapted for bioinformatics-related data visualisation, e.g. displaying of maps or networks
    • 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
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics

Landscapes

  • Life Sciences & Earth Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • Biophysics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Chemical & Material Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Analytical Chemistry (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Epidemiology (AREA)
  • Evolutionary Computation (AREA)
  • Public Health (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Urology & Nephrology (AREA)
  • Hematology (AREA)
  • Biomedical Technology (AREA)
  • Food Science & Technology (AREA)
  • Medicinal Chemistry (AREA)
  • Biochemistry (AREA)
  • General Physics & Mathematics (AREA)
  • Immunology (AREA)
  • Pathology (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
  • Apparatus Associated With Microorganisms And Enzymes (AREA)
  • Genetics & Genomics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

유전 서열 데이터에 대해 생물정보학 분석을 실행하기 위한 시스템, 방법 및 장치가 제공된다. 특정하게는, 서열 분석 파이프라인을 실행하기 위한 게놈학 분석 플랫폼이 제공된다. 이 게놈학 분석 플랫폼은 하나 이상의 제1 집적 회로를 포함하고, 각각의 제1 집적 회로는 하나 이상의 소프트웨어 알고리즘에 응답하는 중앙 프로세싱 유닛(CPU)을 형성하고, 상기 소프트웨어 알고리즘은 상기 CPU에게 상기 서열 분석 파이프라인의 게놈 프로세싱 단계들의 제1 세트를 수행하도록 지시하도록 구성된다. 추가적으로, 제2 집적 회로가 또한 제공되고, 각각의 제2 집적 회로는 필드 프로그래머블 게이트 어레이(FPGA)를 형성하고, 상기 FPGA는 상기 서열 분석 파이프라인의 게놈 프로세싱 단계들의 제2 세트를 수행하기 위해 복수의 물리적 인터커넥트에 의해 상호접속되는 하드와이어드 디지털 로직 회로들의 세트를 배열하도록 펌웨어에 의해 구성되고, 각각의 FPGA의 하드와이어드 디지털 로직 회로들의 세트는 상기 게놈 프로세싱 단계들의 제2 세트를 수행하는 프로세싱 엔진들의 세트로서 배열된다. 공유 메모리가 또한 제공된다.

Description

2차 및/또는 3차 프로세싱을 수행하기 위한 생물정보학 시스템, 장치, 및 방법 {BIOINFORMATICS SYSTEMS, APPARATUS, AND METHODS FOR PERFORMING SECONDARY AND/OR TERTIARY PROCESSING}
관련 출원에 대한 교차 참조
본 출원은 2016년 6월 7일 출원된 미국 출원 제62/347,080호, 2016년 9월 26일 출원된 미국 출원 제62/399,582호, 2016년 10월 28일 출원된 미국 출원 제62/414,637호, 2017년 1월 11일 출원된 미국 출원 제15/404,146호, 2017년 2월 23일 출원된 미국 출원 제62/462,869호, 2017년 3월 9일 출원된 미국 출원 제62/469,442호, 및 2017년 4월 25일 출원된 미국 출원 제15/497,149에 대한 우선권을 주장하며, 각각의 출원의 개시내용들은 그 전체가 인용에 의해 본 명세서에 포함된다.
개시내용의 분야
본 명세서에 설명된 주제는 생물정보학에 관한 것이며, 더 특정하게는 하드웨어 프로세싱 플랫폼과 같은 집적 회로 상에서 게놈 데이터를 분석하기 위한 하나 이상의 함수를 수행하는 것과 같이 생물정보학 프로토콜들을 구현하기 위한 시스템들, 장치들 및 방법들에 관한 것이다.
본 명세서에 상세히 설명된 바와 같이, 고-스루풋 DNA 서열 분석에 대한 일부 주요 계산 과제들은 이용 가능한 게놈 데이터의 폭발적 성장, 그 데이터를 수집할 때의 증가된 정확도 및 감도에 대한 필요성, 및 그러한 게놈 데이터로부터 유도된 광범위한 서열 데이터 세트들에 대한 분석을 수행할 때의 고속, 효율적, 및 정확한 계산 툴들에 대한 필요성을 해결하는 것이다.
차세대 서열분석기(Next Gen Sequencer)들에 의해 생성된 그러한 증가된 서열 분석 스루풋과 보조를 맞추는 것은 전형적으로 상당한 전력 및 현저한 IT 지원 비용을 요구하는 고가의 높은 가용성 저장을 갖는 컴퓨터 클러스터들에서 훨씬 더 많은 수의 더 빠른 프로세서들에서 실행된 멀티스레드 소프트웨어 툴들로서 명시되었다. 중요하게는, 서열 분석 스루풋 레이트들의 미래의 증가들은 이들 2차 프로세싱 솔루션들에 대한 실제 달러 비용들을 가속하는 것으로 변환(translate)될 것이다.
본 명세서에 설명된 디바이스들, 시스템들, 및 이들의 사용 방법들은 적어도 부분적으로 이들 및 다른 그러한 과제들을 해결하기 위해 제공된다.
본 개시내용은 유전 서열 데이터 등의 1차 프로세싱 절차를 통해 생성된 데이터에 대한, 예컨대 유전 서열 데이터에 대한 하나 이상의 게놈학 및/또는 생물정보학 프로토콜의 수행에서 동일한 것을 이용하는 디바이스들, 시스템들, 및 방법들에 관한 것이다. 예를 들어, 다양한 양태들에서, 본 명세서에 제공된 디바이스들, 시스템들, 및 방법들은, 예를 들어, 차세대 서열분석기(Next Gen Sequencer, "NGS")에 의한, RNA 및/또는 DNA의 서열 분석에 의해 생성된 데이터와 같은, 유전 데이터에 대해 2차 및/또는 3차 분석 프로토콜들을 수행하도록 구성된다. 특정한 실시예들에서, 유전 서열 데이터를 프로세싱하기 위한 하나 이상의 2차 프로세싱 파이프라인이 제공된다. 다른 실시예들에서, 유전 서열 데이터를 프로세싱하기 위한 하나 이상의 3차 프로세싱 파이프라인이 제공되고, 예컨대 이 경우 파이프라인들 및/또는 그것의 개별 요소들은 현재 본 기술분야에서 현재 이용 가능한 것보다 더 넓은 범위의 서열 유도 데이터에 대해 우수한 감도 및 개선된 정확도를 전달한다.
예를 들어, 본 명세서에는, 예컨대 유전 서열 데이터 및/또는 그로부터 유도된 다른 데이터에 대해 서열 및/또는 게놈 분석 파이프라인 중 하나 이상을 실행하기 위한 시스템이 제공된다. 다양한 실시예들에서, 이 시스템은 복수의 유전 및/또는 게놈 데이터의 판독(read)을 표현하는 디지털 신호들을 제공하는 하나 이상의 전자 데이터 소스를 포함할 수 있고, 예컨대 이 경우 복수의 게놈 데이터의 판독 각각은 뉴클레오티드들의 서열을 포함한다. 이 시스템은 예컨대 서열 분석된 판독들 중 하나 이상, 하나 또는 복수의 유전 기준 서열, 및 하나 이상의 유전 기준 서열의 하나 이상의 인덱스를 저장하기 위한 메모리, 예를 들어, DRAM, 또는 캐시를 추가로 포함할 수 있다. 이 시스템은 FPGA, ASIC, 또는 sASIC, 및/또는 CPU 및/또는 GPU와 같은 하나 이상의 집적 회로를 추가적으로 포함할 수 있는데, 이 집적 회로는, 예를 들어, FPGA, ASIC, 또는 sASIC에 대해, 복수의 물리적 전기적 인터커넥트에 의해 상호접속되는 하드와이어드 디지털 로직 회로들의 세트로 형성될 수 있다. 이 시스템은 본 명세서에 개시된 방법들 중 하나 이상을 구현하는 데 사용하기 위한 양자 컴퓨팅 프로세싱 유닛을 추가적으로 포함할 수 있다.
다양한 실시예들에서, 복수의 전기적 인터커넥트 중 하나 이상은, 예를 들어, 직접적으로, 적합한 유선 연결을 통해, 또는 간접적으로 예컨대 무선 네트워크 연결(예를 들어, 클라우드 또는 하이브리드 클라우드)을 통해, 전자 데이터 소스와 연결되거나 연결 가능할 수 있는 하나 이상의 집적 회로에 대한 입력을 포함할 수 있다. 서열분석기와의 연결에 관계없이, 본 개시내용의 집적 회로는 복수의 게놈 데이터의 판독을, 예를 들어, 직접 서열분석기로부터 또는 연관된 메모리로부터 수신하도록 구성될 수 있다. 판독들은 표준 FASTQ 또는 BCL 파일 형식으로 디지털 방식으로 인코딩될 수 있다. 따라서, 이 시스템은 집적 회로가 메모리에 액세스할 수 있게 하기 위해 메모리 인터페이스를 포함하는 물리적 인터커넥트일 수 있는 하나 이상의 전기적 인터커넥트를 갖는 집적 회로를 포함할 수 있다.
특정하게는, 집적 회로의 하드와이어드 디지털 로직 회로는 프로세싱 엔진들의 세트로서 배열될 수 있고, 예컨대 이 경우 각각의 프로세싱 엔진은, 유전 데이터의 복수의 판독에 대해뿐만 아니라 그로부터 유도된 다른 데이터에 대해, 아래에 본 명세서에 설명된 바와 같이, 서열, 게놈, 및/또는 3차 분석 파이프라인에서 하나 이상의 단계를 수행하기 위해 하드와이어드 디지털 로직 회로들의 서브세트로 형성될 수 있다. 예를 들어, 하드와이어드 디지털 로직 회로들의 각각의 서브세트는 분석 파이프라인에서 하나 이상의 단계를 수행하기 위해 와이어드 구성일 수 있다. 추가적으로, 집적 회로가 FPGA인 경우, 서열 및/또는 추가 분석 프로세스에서의 그러한 단계들은 분석 프로세스 동안 FPGA의 부분 재구성을 수반할 수 있다.
특정하게는, 이 프로세싱 엔진들의 세트는 복수의 판독 중의 판독 내의 뉴클레오티드들의 서열 중 적어도 일부에 따라, 메모리 인터페이스를 통해 메모리로부터 하나 이상의 유전 기준 서열들의 인덱스에 액세스하여, 인덱스에 기초하여 하나 이상의 유전 기준 서열의 하나 이상의 세그먼트에 판독을 매핑하기 위한, 예를 들어 와이어드 구성의, 매핑 모듈을 포함할 수 있다. 추가적으로, 이 프로세싱 엔진들의 세트는 메모리 인터페이스를 통해 메모리로부터의 하나 이상의 유전 기준 서열에 액세스하여, 판독, 예를 들어, 매핑된 판독을, 예를 들어, 매핑 모듈로부터 수신된 및/또는 메모리에 저장된, 하나 이상의 유전 기준 서열의 하나 이상의 세그먼트 내의 하나 이상의 위치에 정렬시키는 와이어드 구성의 정렬 모듈을 포함할 수 있다.
게다가, 이 프로세싱 엔진들의 세트는 하나 이상의 유전 기준 서열에서의 하나 이상의 위치에 따라 각각의 정렬된 판독을 소팅하기 위한 소팅 모듈을 포함할 수 있다. 더욱이, 이 프로세싱 엔진들의 세트는 예컨대 매핑, 정렬, 및/또는 소팅된 판독들을 예컨대 기준 게놈에 대해 프로세싱하고, 그에 의해 서열 분석된 유전 데이터와 기준 게놈 기준 데이터 사이의 변동들과 함께 사용하기 위한 및/또는 그러한 변동들을 상세히 기술하기 위한 HMM 판독 및/또는 변이 추출 파일을 생성하기 변이 추출 모듈을 포함할 수 있다. 다양한 경우들에서, 복수의 물리적 전기적 인터커넥트 중 하나 이상은 매핑 모듈 및/또는 정렬 및/또는 소팅 및/또는 변이 추출 모듈들로부터의 결과 데이터를 통신하기 위한 집적 회로로부터의 출력을 포함할 수 있다.
특정하게는, 매핑 모듈에 관하여, 다양한 실시예들에서, 유전 기준 데이터의 인덱스를 사용하여 유전 데이터의 복수의 판독에 대해 매핑 분석 파이프라인을 실행하기 위한 시스템이 제공된다. 다양한 경우들에서, 유전 서열, 예를 들어, 판독, 및/또는 유전 기준 데이터는 시스템의 메모리에 저장될 수 있는 뉴클레오티드들의 서열에 의해 표현될 수 있다. 매핑 모듈은 집적 회로 내에 포함될 수 있고, 복수의 물리적 전기적 인터커넥트에 의해 상호접속되는 미리 구성된 및/또는 하드와이어드 디지털 로직 회로들의 세트로 형성될 수 있으며, 물리적 전기적 인터커넥트들은 집적 회로가 메모리에 액세스할 수 있게 하기 위한 메모리 인터페이스를 포함할 수 있다. 더 특정한 실시예들에서, 하드와이어드 디지털 로직 회로들은 프로세싱 엔진들의 세트로서 배열될 수 있고, 예컨대 이 경우 각각의 프로세싱 엔진은 하드와이어드 디지털 로직 회로들의 서브세트로 형성되어, 복수의 게놈 데이터의 판독에 대해 서열 분석 파이프라인에서 하나 이상의 단계를 수행한다.
예를 들어, 일 실시예에서, 이 프로세싱 엔진들의 세트는 하드와이어드 구성의 매핑 모듈을 포함할 수 있고, 여기서 매핑 모듈, 및/또는 그의 하나 이상의 프로세싱 엔진은, 예컨대 복수의 물리적 전기적 인터커넥트 중 하나 이상을 통해, 게놈 데이터의 판독을 수신하고, 그로부터 시드를 생성하는 방식으로 판독의 일부를 추출하도록 구성된다. 그러한 경우에, 판독은 뉴클레오티드들의 서열에 의해 표현될 수 있고, 시드는 판독에 의해 표현된 뉴클레오티드들의 서열의 서브세트를 표현할 수 있다. 매핑 모듈은 판독들 중 하나 이상, 판독들의 시드들 중 하나 이상, 기준 게놈들 중 하나 이상의 기준 게놈의 적어도 일부, 및/또는 하나 이상의 인덱스, 예컨대 하나 이상의 기준 게놈으로부터 구축된 인덱스를 포함하는 메모리를 포함하거나 그러한 메모리에 연결 가능할 수 있다. 특정 경우들에서, 매핑 모듈의 프로세싱 엔진은 시드 및 인덱스를 이용하여 시드에 기초하여 인덱스 내의 어드레스를 계산한다.
일단 어드레스가 계산되거나 달리 유도되고/되거나 예컨대 온보드 또는 오프보드 메모리에 저장되면, 메모리 내의 인덱스에서 이 어드레스에 액세스하여 이 어드레스로부터 레코드, 예컨대 유전 기준 서열 내의 위치 정보를 표현하는 레코드를 수신할 수 있다. 그 후, 이 위치 정보를 이용하여 레코드에 기초하여 판독으로부터 유전 기준 서열로의 하나 이상의 매칭 위치를 결정할 수 있다. 그 후, 매칭 위치들 중 적어도 하나를 메모리 인터페이스를 통해 메모리에 출력될 수 있다.
다른 실시예에서, 이 프로세싱 엔진들의 세트는 예컨대 미리 구성된 및/또는 하드와이어드 구성의 정렬 모듈을 포함할 수 있다. 이 경우에, 프로세싱 엔진들 중 하나 이상은 복수의 물리적 전기적 인터커넥트 중 하나 이상을 통해 판독 데이터에 대한 매핑된 위치들 중 하나 이상을 수신하도록 구성될 수 있다. 그 후, 각각의 매핑된 위치에 대해 메모리(내부 또는 외부)에 액세스하여 매핑된 위치에 대응하는 기준 서열/게놈의 세그먼트를 검색할 수 있다. 각각의 검색된 기준 세그먼트에 대한 판독의 정렬을 그 정렬에 대한 스코어와 함께 계산할 수 있다. 일단 계산되면, 판독의 적어도 하나의 최고 스코어링 정렬이 선택되고 출력될 수 있다. 다양한 경우들에서, 정렬 모듈은 또한 정렬을 계산할 때, 예를 들어 선형 또는 아핀 갭 스코어링을 갖는 스미스-워터만(Smith- Waterman) 알고리즘, 갭이 있는 정렬 알고리즘, 및/또는 갭이 없는 정렬 알고리즘 중 하나 이상과 같은, 동적 프로그래밍 알고리즘을 구현할 수 있다. 특정한 경우들에서, 정렬의 계산은 먼저 각각의 기준 세그먼트에 대한 갭이 없는 정렬을 수행하는 것, 및 갭이 없는 정렬 결과들에 기초하여, 갭이 있는 정렬들을 추가로 수행할 기준 세그먼트들을 선택하는 것을 포함할 수 있다.
다양한 실시예들에서, 소프트웨어 및/또는 하드웨어 구성들 중 하나 또는 양쪽 모두에서 구현될 때, 본 기술분야에 현재 공지된 방법들, 디바이스들, 및 시스템들보다 더 우수한 프로세싱 속도, 더 나은 프로세싱된 결과 정확도, 및 향상된 전체 효율성을 생성하는 개선된 변이 추출 함수들을 수행하기 위한 변이 추출 모듈이 제공될 수 있다. 구체적으로는, 일 양태에서, 소프트웨어로 및/또는 하드웨어로 변이 추출 연산들을 수행하기 위한, 예컨대 유전 서열 데이터에 대해 하나 이상의 HMM 연산을 수행하기 위한 개선된 방법들이 제공된다. 다른 양태에서, 변이 추출 연산의 적어도 일부가 하드웨어로 구현되는, 그러한 개선된 변이 추출 연산들을 수행하기 위한 집적 회로를 포함하는 새로운 디바이스들이 제공된다.
따라서, 다양한 경우들에서, 본 명세서에 개시된 방법들은, 하드와이어드 및/또는 양자 디지털 로직 회로들의 제1 서브세트에 의해, 복수의 판독을 하나 이상의 유전 기준 서열의 하나 이상의 세그먼트에 매핑하는 단계를 포함할 수 있다. 추가적으로, 이 방법들은 집적 및/또는 양자 회로들에 의해, 예를 들어, 복수의 물리적 전기적 인터커넥트 중 하나 이상에 의해, 그와 연관된 캐시 또는 메모리로부터, 매핑된 판독들 중 하나 이상 및/또는 유전 기준 서열들 중 하나 이상에 액세스하는 단계; 및 하드와이어드 및/또는 양자 디지털 로직 회로들의 제2 서브세트에 의해, 복수의 매핑된 판독을 하나 이상의 유전 기준 서열의 하나 이상의 세그먼트에 정렬시키는 단계를 포함할 수 있다.
다양한 실시예들에서, 이 방법은 집적 및/또는 양자 회로에 의해, 예를 들어, 복수의 물리적 전기적 인터커넥트 중 하나 이상에 의해 그와 연관된 캐시 또는 메모리로부터, 정렬된 복수의 판독에 액세스하는 단계를 추가적으로 포함할 수 있다. 그러한 경우에, 이 방법은 하드와이어드 및/또는 양자 디지털 로직 회로들의 제3 서브세트에 의해, 정렬된 복수의 판독을 하나 이상의 유전 기준 서열에서의 그들의 위치들에 따라 소팅하는 단계를 포함할 수 있다. 특정 경우들에서, 이 방법은 예컨대 집적 및/또는 양자 회로의 복수의 물리적 전기적 인터커넥트 중 하나 이상에 의해, 매핑 및/또는 정렬 및/또는 소팅으로부터의 결과 데이터를 출력하는 단계를 추가로 포함할 수 있고, 예컨대 이 경우 그 결과 데이터는 매핑 및/또는 정렬 및/또는 소팅된 복수의 판독의 위치들을 포함한다.
일부 경우들에서, 이 방법은, 피험자의 서열 분석된 유전 샘플로부터 유도된, 매핑, 정렬, 및/또는 소팅된 데이터가 어떻게 기준 서열과 상이한지를 결정하여, 2개의 샘플 사이의 유전 차이들을 묘사하는 변이 추출 파일을 생성할 목적을 위해, 예컨대 하드와이어드 및/또는 양자 디지털 로직 회로들의 추가 서브세트에 의해, 획득된 결과 데이터를 이용하는 단계를 추가적으로 포함할 수 있다. 따라서, 다양한 실시예들에서, 이 방법은, 집적 및/또는 양자 회로에 의해, 예를 들어, 복수의 물리적 전기적 인터커넥트 중 하나 이상에 의해 그와 연관된 캐시 또는 메모리로부터, 매핑 및/또는 정렬 및/또는 소팅된 복수의 판독에 액세스하는 단계를 추가로 포함할 수 있다. 그러한 경우에, 이 방법은, 매핑, 정렬, 및/또는 소팅된 판독들이 하나 이상의 기준, 예를 들어, 단상형(haplotype), 서열들에 대해 어떻게 달라지는지를 상세히 기술하는 변이 추출 파일을 생성하기 위해, 하드와이어드 및/또는 양자 디지털 로직 회로들의 제3 또는 제4 서브세트에 의해, 액세스된 판독들에 대해, 변이 추출 함수, 예를 들어, HMM 또는 쌍 HMM 연산을 수행하는 단계를 포함할 수 있다.
따라서, 본 개시내용의 특정한 양태들에 따르면, 유전 및/또는 게놈 서열 분석 데이터에 대해 2차 및/또는 3차 분석들을 수행하기 위한 콤팩트한 하드웨어, 예를 들어, 칩 기반, 또는 양자 가속 플랫폼이 본 명세서에 제시된다. 특정하게는, 예컨대 서열 분석된 유전 데이터 또는 그로부터 유도된 게놈 데이터에 대해, 2차 및/또는 3차 유전 분석을 수행하기 위해 특정하게 설계된 하드와이어드 및/또는 양자 디지털 로직 회로들의 플랫폼 또는 파이프라인이 제공된다. 특정하게는, 프로세싱 엔진들의 세트로서 배열될 수 있는 하드와이어드 디지털 및/또는 양자 로직 회로들의 세트가 제공될 수 있고, 예컨대 이 경우 프로세싱 엔진들은 본 개시내용의 프로세싱 플랫폼 상에 미리 구성된 및/또는 하드와이어드 및/또는 양자 구성으로 존재할 수 있고, DNA 및/또는 RNA 데이터에 대해 유전 분석에 관련된 2차 매핑 및/또는 정렬 및/또는 변이 추출 연산들을 수행하기 위해 특정하게 설계될 수 있고, 및/또는 결과 데이터에 대해 다른 3차 프로세싱을 수행하기 위해 특정하게 설계될 수 있다.
특정한 경우들에서, 하나 이상의 게놈학 및/또는 생물정보학 2차 및/또는 3차 프로세싱 프로토콜들의 수행에서 동일한 것을 이용하는 본 디바이스들, 시스템들, 및 방법들은 소프트웨어로 구현되는 표준 2차 프로세싱 파이프라인들보다 수 자릿수 더 빠른 프로세싱 속도의 개선을 산출하도록 최적화되었다. 추가적으로, 본 명세서에 제시된 바와 같은 파이프라인들 및/또는 그의 컴포넌트들은 게놈학 및 생물정보학 프로세싱의 목적을 위해 광범위한 서열 유도 데이터 세트들에 대해 더 나은 감도 및 정확도를 제공한다. 다양한 경우들에서, 이들 연산 중 하나 이상은 범용 중앙 프로세싱 유닛 및/또는 그래픽 프로세싱 유닛 및/또는 양자 프로세싱 유닛으로서 구성되거나 그의 일부인 집적 회로에 의해 수행될 수 있다.
예를 들어, 게놈학 및 생물정보학은 정보 기술 및 컴퓨터 사이언스를 유전학 및/또는 분자 생물학 분야들에 적용하는 것과 관련된 분야들이다. 특히, 생물정보학 기법들은 예컨대 개인으로부터의 다양한 유전 및/또는 게놈 데이터를 프로세싱하고 분석하여 해당 데이터에 대한 정성적 및 정량적 정보를 결정하기 위해 적용될 수 있으며, 그러한 정보는 이후 질병 상태들 및/또는 이들의 잠재성을 예방, 치료, 개선, 및/또는 적어도 식별하고, 따라서, 개인 맞춤화된 레벨에서 건강 관리의 안전성, 품질, 및 유효성을 개선하기 위한 예방, 치료, 및/또는 진단 방법들의 개발에서 다양한 실무자들에 의해 사용될 수 있다. 그러므로, 게놈학 및 생물정보학 분야들은, 개인 맞춤화된 건강 관리를 증진시키는 데 집중하기 때문에, 사후적이 아니고 사전적인 개인 맞춤화된 건강 관리를 촉진하고, 이는 치료가 필요한 피험자에게 그들 자신의 건강에 더 많이 관련될 기회를 제공한다. 본 명세서에 개시된 유전학, 게놈학, 및/또는 생물정보학 기술들을 이용하는 것의 이점은 분자 생물학적, 예를 들어 유전 데이터의 정성적 및/또는 정량적 분석들이 더 광범위한 샘플 세트들에 대해 훨씬 더 높은 속도 레이트로 그리고 종종 더 정확하게 수행될 수 있고, 따라서 개인 맞춤화된 건강 관리 시스템의 출현을 촉진시킨다는 점이다. 특정하게는, 다양한 실시예들에서, 게놈학 및/또는 생물정보학 관련 작업들은 마이크로-어레이 분석 파이프라인, 게놈, 예를 들어, 전체 게놈 분석 파이프라인, 유전형(genotyping) 분석 파이프라인, 엑솜(exome) 분석 파이프라인, 에피게놈(epigenome) 분석 파이프라인, 메타게놈(metagenome) 분석 파이프라인, 마이크로바이옴(microbiome) 분석 파이프라인, 공동 유전형 분석(joint genotyping)을 포함하는, 유전형 분석 파이프라인, 구조적 변이, 체세포 변이(somatic variants), 및 GATK를 포함하는 변이 분석 파이프라인들뿐만 아니라, RNA 서열 분석 및 다른 유전 분석 파이프라인들 중 하나 이상을 포함하는 게놈학 파이프라인을 형성할 수 있다.
따라서, 이들 이점을 이용하기 위해, 예컨대 범용 CPU 및/또는 GPU에 의한 배치를 위한 그리고/또는 양자 프로세싱 플랫폼의 하나 이상의 양자 회로들에서 구현될 수 있는, 하나 또는 일련의 그러한 생물정보학 기반 분석 기법들을 수행하기 위한 향상된 및/또는 더 정확한 소프트웨어 구현들이 존재한다. 그러나, 전통적으로 구성된 소프트웨어 기반 생물정보학 방법들 및 시스템들의 공통적인 특성은 그것들이 노동 집약적이고, 그러한 범용 프로세서들 상에서 실행하는 데 긴 시간이 걸리며, 오류들이 발생하기 쉽다는 것이다. 따라서, 더 큰 백분율 정확도로 더 적은 노동 및/또는 프로세싱 집약적 방식으로 양자 프로세싱 유닛의 CPU 및/또는 GPU에 의해 소프트웨어로 구현되는 것과 같은 이들 알고리즘을 수행할 수 있는 본 명세서에서 구현된 바와 같은 생물정보학 시스템들은 유용할 것이다.
그러한 구현들이 개발되어 본 명세서에 제시되었고, 예컨대 이 경우 게놈학 및/또는 생물정보학 분석들은 본 개시내용의 프로세싱 유닛들 및/또는 집적 회로들에 의해 유도된 유전 서열 데이터를 이용하는 시스템에서 CPU 및/또는 GPU 및/또는 양자 컴퓨터 상에서 실행되는 최적화된 소프트웨어에 의해 수행된다. 게다가, 유의해야 할 점은 이 원시 디지털 데이터를 분석, 저장, 및 공유하는 비용이 그것을 생성하는 비용을 훨씬 앞질렀다는 점이다. 따라서, 집합적으로 그러한 데이터를 저장하는 비용의 대가로 데이터를 재생하는 속도를 치환하는 방식으로 그러한 데이터의 저장을 최적화하는 "저스트인 타임(just in time)" 저장 및/또는 검색 방법들이 또한 본 명세서에서 제시된다. 그러므로, 본 명세서에서 제시된 데이터 생성, 분석, 및 "저스트인 타임" 또는 "JIT" 저장 방법들은 계속 증가하는 원시 데이터 생성 및 저장과 그로부터 추구되는 실제 의료 통찰력 사이에서 있는 오랫동안 느꼈지만 충족되지 않은 장애물인 주요한 병목 현상을 해결한다.
따라서, 예컨대 펌웨어 상에서 및/또는 소프트웨어로 하나 이상의 생체분석 연산을 수행하기 위해, 범용 프로세서와, 예컨대 하드웨어 프로세싱 플랫폼 상의 집적 회로 중 하나 또는 양쪽 모두에서, 예를 들어, 게놈 데이터를 분석하기 위한 하나 이상의 함수를 수행하기 위한 것과 같은, 게놈학 및/또는 생물정보학 프로토콜들 또는 그의 부분들을 구현하기 위한 시스템들, 장치들, 및 방법들이 본 명세서에 제시된다. 예를 들어, 아래에 본 명세서에 설명된 바와 같이, 다양한 구현들에서, 1차, 2차, 및/또는 3차 프로세싱 플랫폼에서 하나 이상의 프로세스를 가속하기 위해 집적 회로 및/또는 양자 회로가 제공된다. 다양한 경우들에서, 집적 회로는 유전 분석 관련 작업들, 예컨대, 매핑, 정렬, 변이 추출, 압축, 압축해제 등을 가속된 방식으로 수행하는 데 이용될 수 있고, 이에 따라 집적 회로는 하드웨어 가속 구성을 포함할 수 있다. 추가적으로, 다양한 경우들에서, 집적 및/또는 양자 회로가 제공될 수 있고, 예컨대 이 경우 그 회로는 생성된 매핑 및/또는 정렬 및/또는 변이 추출된 데이터에 대해 하나 이상의 게놈학 및/또는 생물정보학 프로토콜을 수행하도록 구성되는 프로세싱 유닛의 일부이다.
특정하게는, 제1 실시예에서, 제1 집적 회로가, 마더보드에 결합되거나 그것에 달리 부착된 FPGA, ASIC 및/또는 sASIC로 형성되고 게놈학 분석 파이프라인에서 적어도 서열 분석 함수들의 제1 세트를 수행하도록 적응되는 하드와이어드 디지털 로직 회로들의 세트로서 구성될 수 있거나, FPGA의 경우에는 그와 같이 구성되도록 펌웨어에 의해 프로그램 가능할 수 있고, 예컨대 이 경우 이 집적 회로는 서열 분석 결과 데이터를 생성하기 위해 유전 데이터에 대해 매핑, 정렬 및/또는 변이 추출 연산에서 하나 이상의 단계를 수행하도록 적응되는, 프로세싱 엔진들의 세트로서 배열된 하나 이상의 디지털 로직 회로를 포함하도록 위에 본 명세서에 설명된 바와 같이 구성된다. 이 제1 집적 회로는 예를 들어 매핑 및/또는 정렬 및/또는 다른 절차들로부터의 결과 데이터를 메모리에 통신하기 위한 것과 같은, 복수의 물리적 전기적 인터커넥트로 형성된 출력을 추가로 포함할 수 있다.
추가적으로, 제2 집적 및/또는 양자 회로가 마더보드에 포함되거나, 결합되거나 그것에 달리 부착될 수 있고, 통신 인터페이스를 통해 메모리와 통신할 수 있다. 제2 집적 및/또는 양자 회로는 매핑 및/또는 정렬 및/또는 변이 추출된 서열 분석 결과 데이터를 수신하도록 구성되는 중앙 프로세싱 유닛(CPU) 또는 그래픽 프로세싱 유닛(GPU) 또는 양자 프로세싱 유닛(QPU)으로서 형성될 수 있고, 매핑, 정렬, 및/또는 변이 추출된 서열 분석 결과 데이터에 대해 게놈 분석 파이프라인의 하나 이상의 게놈학 및/또는 생물정보학 함수를 수행하도록 구성되는 CPU 또는 GPU에 지시하도록 구성되는 하나 이상의 소프트웨어 알고리즘에 응답하도록 적응될 수 있다. 구체적으로는, 게놈학 및/또는 생물정보학 관련 작업들은 마이크로-어레이 분석, 게놈 파이프라인, 예를 들어, 전체 게놈 분석 파이프라인, 유전형 분석 파이프라인, 엑솜 분석 파이프라인, 에피게놈 분석 파이프라인, 메타게놈 분석 파이프라인, 마이크로바이옴 분석 파이프라인, 공동 유전형 분석을 포함하는, 유전형 분석 파이프라인, 구조적 변이, 체세포 변이, 및 GATK를 포함하는 변이 분석 파이프라인들뿐만 아니라, RNA 서열 분석 및 다른 유전 분석 파이프라인들 중 하나 이상을 포함하는 게놈학 분석 파이프라인을 형성할 수 있다.
예를 들어, 일 실시예에서, 제2 집적 회로의 CPU 및/또는 GPU 및/또는 QPU는 전게놈 변이(genome-wide variation) 분석, 전체 엑솜 DNA 분석, 전체 전사체 RNA 분석, 유전자 기능 분석, 단백질 기능 분석, 단백질 결합 분석, 정량적 유전자 분석, 및/또는 유전자 조립 분석 중 하나 이상을 포함하는 전체 게놈 분석 파이프라인과 같은 전체 게놈 분석 파이프라인을 실행하기 위해 게놈 분석 파이프라인을 배열하도록 구성되는 소프트웨어를 포함할 수 있다. 특정 경우들에서, 전체 게놈 분석 파이프라인은 조상 분석, 개인용 의료 이력 분석, 질병 진단, 약물 발견, 및/또는 단백질 프로파일링 중 하나 이상의 목적을 위해 수행될 수 있다. 특정한 경우에, 전체 게놈 분석 파이프라인은 종양학 분석의 목적을 위해 수행된다. 다양한 경우들에서, 이 데이터의 결과들은 시스템 전체에 걸쳐, 예를 들어, 글로벌하게 이용 가능하게 될 수 있다.
다양한 경우들에서, 제2 집적 및/또는 양자 회로의 CPU 및/또는 GPU 및/또는 양자 프로세싱 유닛(QPU)은 공동 유전형 분석을 포함하는 유전형 분석과 같은, 유전형 분석을 실행하기 위해 게놈 분석 파이프라인을 배열하도록 구성되는 소프트웨어를 포함할 수 있다. 예를 들어, 공동 유전형 분석은 주어진 결정된 유전형이 진정한 유전형인 절대 확률을 초래하는 베이지안 확률 계산과 같은 베이지안 확률 계산을 사용하여 수행될 수 있다. 다른 경우들에서, 소프트웨어는 결국 마이크로바이옴 분석의 수행에서 이용될 수 있는 메타게놈 결과 데이터를 생성하기 위해 메타게놈 분석을 수행하도록 구성될 수 있다.
특정 경우들에서, 제1 및/또는 제2 집적 회로 및/또는 메모리는 주변 컴포넌트 인터커넥트(PCI) 카드와 같은 확장 카드 상에 하우징될 수 있다. 예를 들어, 다양한 실시예들에서, 집적 회로들 중 하나 이상은 PCIe 카드에 결합되거나 마더보드와 달리 연관된 하나 이상의 칩일 수 있다. 다양한 경우들에서, 집적 및/또는 양자 회로(들) 및/또는 칩(들)은 서버 팜의 일부와 같은 서버 또는 컴퓨터 또는 서열분석기 내의 컴포넌트일 수 있다. 특정 실시예들에서, 집적 및/또는 양자 회로(들) 및/또는 확장 카드(들) 및/또는 컴퓨터(들) 및/또는 서버(들)는 인터넷, 예를 들어, 클라우드를 통해 액세스 가능할 수 있다.
게다가, 일부 경우들에서, 메모리는 휘발성 랜덤 액세스 메모리(RAM), 예를 들어, 직접 액세스 메모리(DRAM)일 수 있다. 특정하게는, 다양한 실시예들에서, 메모리는, 예를 들어, 기준 단상형 서열 데이터를 저장하기 위한 HMEM인 제1 메모리, 및 예를 들어, 게놈 서열 데이터의 판독을 저장하기 위한 RMEM인 제2 메모리와 같은 적어도 2개의 메모리를 포함할 수 있다. 특정한 경우들에서, 2개의 메모리 각각은 기입 포트 및/또는 판독 포트를 포함할 수 있고, 예컨대 이 경우 기입 포트 및 판독 포트는 각각 별개의 클록에 액세스한다. 추가적으로, 2개의 메모리 각각은 다수의 유전 서열을 저장하고/하거나 결과 데이터를 프로세싱하기 위한 플립-플롭 구성을 포함할 수 있다.
따라서, 다른 양태에서, 시스템은 예컨대 CPU 및/또는 GPU 및/또는 양자 프로세싱 플랫폼에 의해 실행되는, 소프트웨어를 통해 일부 계산 작업들을 수행하는 것, 및/또는 펌웨어를 통해, 예컨대 연관된 집적 회로의 하드웨어, 예를 들어, FPGA, ASIC 및/또는 sASIC를 통해 다른 계산 작업들을 수행하는 것과 관련하여, 그의 컴포넌트 부분들 사이에 메모리 리소스들을 공유하도록 구성될 수 있다. 이는 다수의 상이한 방식으로, 예컨대 CPU/GPU/QPU와 FPGA, 예를 들어, 칩 또는 PCIe 카드 사이의 직접적인 느슨한 또는 타이트한 결합에 의해 달성될 수 있다. 그러한 구성들은 CPU/GPU/QPU 및 연관된 집적 회로 양쪽 모두에 의해 사용되고 액세스되는 게놈학 및/또는 생물정보학 분석들과 연관된 큰 데이터 구조들의 프로세싱에 관련된 연산들을 분산시킬 때 특히 유용할 수 있다. 특정하게는, 다양한 실시예들에서, 예컨대 전체 프로세싱 함수, 타이밍, 및 효율을 가속하기 위해, 본 명세서에 설명된 바와 같이, 게놈학 파이프라인을 통해 데이터를 프로세싱할 때, 다수의 상이한 연산이 데이터에 대해 실행될 수 있고, 이 연산들은 소프트웨어 및 하드웨어 프로세싱 컴포넌트들 양쪽 모두를 수반할 수 있다.
결과적으로, CPU 및/또는 GPU 및/또는 QPU 상에서 실행되는 소프트웨어 컴포넌트(들) 및/또는 칩, 예를 들어, FPGA 내에 구현된 하드웨어 컴포넌트 사이에서, 데이터가 공유되고/되거나 달리 전달될 필요가 있을 수 있다. 따라서, 게놈학 및/또는 생물정보학 프로세싱 파이프라인에서의 다양한 단계들 중 하나 이상, 또는 그의 일부가 하나의 디바이스, 예를 들어, CPU/GPU/QPU에 의해 수행될 수 있고, 다양한 단계들 중 하나 이상이 하드와이어드 디바이스, 예를 들어, FPGA에 의해 수행될 수 있다. 그러한 경우에, CPU/GPU/QPU 및/또는 FPGA는 그러한 데이터의 효율적인 전송을 허용하는 방식으로 통신가능하게 결합될 수 있으며, 이 결합은 메모리 리소스들의 공유 사용을 수반할 수 있다. 그러한 작업들의 분산 및 그러한 작업들의 수행을 위한 정보의 공유를 달성하기 위해, 다양한 CPU들/GPU들/QPU들이 서로에 대해, 또는 하드웨어 디바이스들, 예를 들어, FPGA, 또는 다른 칩 세트에, 예컨대 퀵 패스 인터커넥트(quick path interconnect)에 의해 느슨하게 또는 타이트하게 결합될 수 있다.
특정하게는, 다양한 실시예들에서, 게놈학 분석 플랫폼이 제공된다. 예를 들어, 이 플랫폼은 마더보드, 메모리, 및 예컨대 CPU/GPU/QPU, 매핑 모듈, 정렬 모듈, 소팅 모듈, 및/또는 변이 추출 모듈 중 하나 이상을 형성하는, 복수의 집적 및/또는 양자 회로를 포함할 수 있다. 구체적으로는, 특정한 실시예들에서, 이 플랫폼은 제1 집적 및/또는 양자 회로, 예컨대 중앙 프로세싱 유닛(CPU) 또는 그래픽 프로세싱 유닛(GPU)을 형성하는 집적 회로, 또는 양자 프로세서를 형성하는 양자 회로를 포함할 수 있고, 이는 본 명세서에 설명된 바와 같이, 게놈학 분석 함수들의 하나 이상의 세트를 수행하도록 CPU/GPU/QPU에 지시하도록 구성되는 하나 이상의 소프트웨어 또는 다른 알고리즘들에 응답하는 예컨대 이 경우 CPU/GPU/QPU는 마더보드와 연결하기 위한 제1 세트의 물리적 전자 인터커넥트들을 포함한다. 다양한 경우들에서, 메모리는 또한 마더보드에 부착될 수 있고, 추가로 예컨대 제1 세트의 물리적 전자 인터커넥트들 중 적어도 일부를 통해 CPU/GPU/QPU와 전자적으로 연결될 수 있다. 그러한 경우들에서, 메모리는 복수의 게놈 데이터의 판독, 및/또는 적어도 하나 이상의 유전 기준 서열, 및/또는 하나 이상의 유전 기준 서열의 인덱스를 저장하도록 구성될 수 있다.
추가적으로, 이 플랫폼은 하나 이상의 다른 집적 회로(들)를 포함할 수 있고, 예컨대 이 경우 다른 집적 회로들 각각은, 예컨대 포인트-투-포인트 인터커넥트 프로토콜을 통해, CPU/GPU/QPU 및 메모리와 연결하기 위한 제2 세트의 물리적 전자 인터커넥트들을 갖는 필드 프로그래머블 게이트 어레이(FPGA)를 형성한다. 집적 회로 FPGA인 경우와 같은 그러한 경우에, FPGA는 제2 세트의 게놈학 분석 함수들, 예를 들어, 매핑, 정렬, 변이 추출 등을 수행하기 위해 복수의 물리적 인터커넥트들에 의해 상호접속되는 하드와이어드 디지털 로직 회로들의 세트를 구성하기 위해 펌웨어에 의해 프로그램 가능할 수 있다. 특정하게는, FPGA의 하드와이어드 디지털 로직 회로들은 게놈 분석의 서열 분석 파이프라인에서 하나 이상의 미리 구성된 단계를 수행하기 위한 프로세싱 엔진들의 세트로서 배열될 수 있고, 예컨대 이 경우 이 세트(들)의 프로세싱 엔진들은 매핑 및/또는 정렬 및/또는 변이 추출 모듈 중 하나 이상을 포함하고, 그 모듈들은 프로세싱 엔진들의 별개의 또는 동일한 서브세트들로 형성될 수 있다.
지적한 바와 같이, 시스템은 하나 이상의 프로세싱 엔진을 포함하도록 구성될 수 있고, 다양한 실시예들에서, 포함된 프로세싱 엔진은 자체가 게놈 서열의 판독의 뉴클레오티드들의 서열이 하나의 상태로부터 다른 상태로, 예컨대 매칭 상태에서 삽입결실 상태(indel state)로, 또는 매칭 상태에서 결실 상태로, 및/또는 역으로 다시 예컨대 삽입 또는 결실 상태에서 역으로 매칭 상태로 가는 하나 이상의 전이 확률을 결정하도록 구성될 수 있다. 추가적으로, 다양한 경우들에서, 집적 회로는 파이프라인 구성을 가질 수 있고/있거나 프로세싱 엔진들의 제2 세트를 포함하는 것과 같은, 하드와이어드 디지털 로직 회로들의 제2 및/또는 제3 및/또는 제4 서브세트를 포함할 수 있고, 여기서 프로세싱 엔진들의 제2 세트는 게놈 서열의 판독을 기준 단상형 서열에 매핑하여 매핑된 판독을 생성하도록 구성된 매핑 모듈을 포함한다. 하드와이어드 디지털 로직 회로들의 제3 서브세트가 또한 포함될 수 있고 예컨대 이 경우 프로세싱 엔진들의 제3 세트는 매핑된 판독을 기준 단상형 서열 내의 하나 이상의 위치에 정렬시키도록 구성된 정렬 모듈을 포함한다. 하드와이어드 디지털 로직 회로들의 제4 서브세트가 추가로 포함될 수 있고 예컨대 이 경우 프로세싱 엔진들의 제4 세트는 매핑 및/또는 정렬된 판독을 염색체 내의 그의 상대적 위치들에 대해 소팅하도록 구성된다. 위와 같이, 다양한 이들 경우에서, 매핑 모듈 및/또는 정렬 모듈 및/또는 소팅 모듈은 예를 들어 변이 추출 모듈과 함께, 확장 카드 상에 물리적으로 통합될 수 있다. 그리고 특정 실시예들에서, 확장 카드는 차세대 서열분석기 등과 같은 유전 서열분석기와 물리적으로 통합될 수 있다.
따라서, 일 양태에서, 유전 데이터와 같은 서열 분석 파이프라인의 하나 이상의 단계를 실행하기 위한 장치가 제공되며, 여기서 유전 데이터는 하나 이상의 유전 기준 서열(들), 예컨대, 가설 단상형 서열, 하나 이상의 유전 기준 서열(들)의 인덱스, 및/또는 복수의, 예컨대 유전 및/또는 게놈 데이터의 판독을 포함하고, 그 데이터는 하나 이상의 공유 메모리 디바이스에 저장되고, 예를 들어, 함께 타이트하게 또는 느슨하게 결합되는 CPU/GPU/QPU 및/또는 FPGA와 같은 분산된 프로세싱 리소스에 의해 프로세싱될 수 있다. 그러므로, 다양한 경우들에서, 이 장치는 집적 회로를 포함할 수 있으며, 이 집적 회로는 하나 이상, 예를 들어, 세트의 하드와이어드 디지털 로직 회로들을 포함할 수 있으며, 이 하드와이어드 디지털 로직 회로들의 세트는 예컨대 하나 또는 복수의 물리적 전기적 인터커넥트에 의해 상호접속될 수 있다.
따라서, 시스템은 복수의 물리적 전기적 인터커넥트에 의해 상호접속되는 하나 이상의 디지털 로직 회로로 형성된 집적 회로를 포함하고, 상기 복수의 물리적 전기적 인터커넥트 중 하나 이상은 메모리 인터페이스 및/또는 캐시 중 하나 이상을 갖고, 상기 집적 회로가 상기 메모리 및/또는 그 위에 저장된 데이터에 액세스하여 그것을, 예컨대, 상기 CPU/GPU/QPU와 연관된 칩, 예를 들어, FPGA 사이에 캐시 일관성 있는 방식으로 검색하도록 구성될 수 있다. 다양한 경우들에서, 디지털 로직 회로들은 적어도 디지털 로직 회로들의 제1 서브세트를 포함할 수 있고, 예컨대 이 경우 디지털 로직 회로들의 제1 서브세트는 프로세싱 엔진들의 제1 세트로서 배열될 수 있고, 이 프로세싱 엔진은 캐시 및/또는 직접 또는 간접적으로 결합된 메모리에 저장된 데이터에 액세스하도록 구성될 수 있다. 예를 들어, 프로세싱 엔진들의 제1 세트는 위에 설명된 바와 같이 매핑 및/또는 정렬 및/또는 소팅 분석에서의 하나 이상의 단계, 및/또는 게놈 서열 데이터 및 단상형 서열 데이터의 판독에 대한 HMM 분석을 수행하도록 구성될 수 있다.
더 특정하게는, 프로세싱 엔진들의 제1 세트는, 예를 들어, 메모리 인터페이스를 통해, 메모리에서 단상형 서열 데이터 및 게놈 서열 데이터의 판독 내의 뉴클레오티드들의 서열의 적어도 일부에 액세스하도록 적응되는, 그리고 또한 게놈 서열 데이터의 판독 내의 뉴클레오티드들의 서열의 적어도 일부 및 단상형 서열 데이터 내의 뉴클레오티드들의 서열의 적어도 일부에 대해 HMM 분석을 수행하여 HMM 결과 데이터를 생성하도록 구성될 수 있는, 예컨대 디지털 로직 회로들의 서브세트의 제1 구성의, HMM 모듈을 포함할 수 있다. 추가적으로, 복수의 물리적 전기적 인터커넥트 중 하나 이상은, 예컨대 HMM 모듈로부터의 HMM 결과 데이터를, 예컨대 서버 또는 서버 클러스터의 CPU/GPU/QPU로 통신하기 위한 집적 회로로부터의 출력을 포함할 수 있다.
따라서, 일 양태에서, 예컨대 유전 서열 데이터에 대해 서열 분석 파이프라인을 실행하기 위한 방법이 제공된다. 유전 데이터는 하나 이상의 유전 기준 또는 단상형 서열, 하나 이상의 유전 기준 및/또는 단상형 서열의 하나 이상의 인덱스, 및/또는 복수의 게놈 데이터 판독을 포함할 수 있다. 이 방법은 유전 서열 데이터의 다양한 반복들을 수신, 액세스, 매핑, 정렬, 소팅하고/하거나 그의 결과들을 하나 이상의 변이 추출 파일을 생성하기 위한 방법에서 이용하는 것 중 하나 이상을 포함할 수 있다. 예를 들어, 특정 실시예들에서, 이 방법은 전자 데이터 소스로부터의 집적 회로에 대한 입력에서, 복수의 게놈 데이터의 판독 중 하나 이상을 수신하는 단계를 포함할 수 있으며, 게놈 데이터의 각각의 판독은 뉴클레오티드들의 서열을 포함할 수 있다.
다양한 경우들에서, 집적 회로는 하나 이상의 프로세싱 엔진로서 배열될 수 있는 하드와이어드 디지털 로직 회로들의 세트로 형성될 수 있다. 그러한 경우에, 프로세싱 엔진은 와이어드 구성일 수 있는 하드와이어드 디지털 로직 회로들의 서브세트로 형성될 수 있다. 그러한 경우에, 프로세싱 엔진은 유전 서열 데이터의 다양한 반복들을 수신, 액세스, 매핑, 정렬, 소팅하고/하거나 그의 결과들을 하나 이상의 변이 추출 파일을 생성하기 위한 방법에서 이용하는 것 하나 이상을 구현하기 위한 것과 같은 하나 이상의 미리 구성된 단계를 수행하도록 구성될 수 있다. 일부 실시예들에서, 제공된 디지털 로직 회로들은 예컨대 입력을 포함할 수 있는 복수의 물리적 전기적 인터커넥트에 의해 상호접속될 수 있다.
이 방법은 집적 회로에 의해 복수의 물리적 전기적 인터커넥트 중 하나 이상을 통해 메모리로부터, 본 명세서에 상세히 기술된 연산들 중 하나 이상을 수행하기 위한 데이터에 액세스하는 단계를 추가로 포함할 수 있다. 다양한 경우들에서, 집적 회로는 FPGA, ASIC, 또는 구조화된 ASIC의 일부로서 내장된 또는 달리 포함된 것과 같은 칩셋의 일부일 수 있고, 메모리는 칩 및/또는 그와 연관된 CPU/GPU/QPU 중 하나 또는 양쪽 모두에 직접 또는 간접적으로 결합될 수 있다. 예를 들어, 메모리는 그 자체가 칩에, 예를 들어, 느슨하게 결합되는 CPU/GPU/QPU 및 칩에 각각 결합된 복수의 메모리일 수 있다.
다른 경우들에서, 메모리는 그 자체가 FPGA에, 예를 들어, 타이트한 프로세싱 인터커넥트 또는 퀵 패스 인터커넥트, 예를 들어, QPI를 통해 타이트하게 결합되고, 그에 의해 예컨대 캐시 일관성 있는 방식으로 FPGA에 의해 액세스 가능한 CPU/GPU/QPU에 결합될 수 있는 단일 메모리일 수 있다. 따라서, 집적 회로는, 예를 들어, 매핑 연산의 수행에서, 복수의 판독, 하나 이상의 유전 기준 또는 이론적 기준 서열, 및/또는 하나 이상의 유전 기준 서열의 인덱스 중 하나 이상에 액세스하기 위한 것과 같은, 본 명세서에 제시된 기준들을 수행하는 것과 관련된 데이터에 액세스하기 위해 메모리에 직접 또는 간접적으로 결합될 수 있다.
그러므로, 다양한 경우들에서, 본 개시내용의 다양한 양태들의 구현들은: 본 명세서에 상세히 설명된 하나 이상의 특징을 포함하는 장치들, 시스템들, 및 방법들뿐만 아니라, 하나 이상의 머신(예를 들어, 컴퓨터들 등)으로 하여금 본 명세서에 설명된 연산들을 초래하게 하도록 동작가능한 유형적으로 구현된 머신 판독가능 매체를 포함하는 물품들을 포함할 수 있지만, 이에 제한되는 것은 아니다. 유사하게, 하나 이상의 프로세서 및/또는 하나 이상의 프로세서에 결합된 하나 이상의 메모리를 포함할 수 있는 컴퓨터 시스템이 또한 설명된다. 따라서, 본 내용의 하나 이상의 구현과 일관된 컴퓨터 구현되는 방법들은 단일 컴퓨팅 시스템에 또는 컴퓨팅 또는 수퍼-컴퓨팅 뱅크에서와 같이, 다수의 컴퓨터를 포함하는 다수의 컴퓨터 시스템에 상주하는 하나 이상의 데이터 프로세서에 의해 구현될 수 있다.
그러한 다수의 컴퓨팅 시스템은 네트워크(예를 들어, 인터넷, 무선 광역 네트워크, 로컬 영역 네트워크, 광역 네트워크, 유선 네트워크, 물리적 전기적 인터커넥트 등)를 통한 연결, 다수의 컴퓨팅 시스템 중 하나 이상 사이의 직접 연결 등을 통한 연결을 포함하지만 이에 제한되는 것은 아닌 하나 이상의 연결을 통해 연결될 수 있고 데이터 및/또는 커맨드들 또는 다른 명령어들 등을 교환할 수 있다. 컴퓨터 판독가능 저장 매체를 포함할 수 있는 메모리가 하나 이상의 프로세서로 하여금 본 명세서에 설명된 알고리즘들 중 하나 이상과 연관된 연산들 중 하나 이상을 수행하게 하는 하나 이상의 프로그램을 포함, 인코딩, 저장 등을 할 수 있다.
본 명세서에 설명된 내용의 하나 이상의 변형의 상세 사항들이 첨부 도면들 및 아래의 설명에 설명된다. 본 명세서에 설명된 내용의 다른 특징들 및 이점들은 설명, 도면들, 및 청구항들로부터 명백할 것이다. 현재 개시된 내용의 특정 특징들은 엔터프라이즈 리소스 소프트웨어 시스템 또는 다른 비즈니스 소프트웨어 솔루션 또는 아키텍처에 관련하여 예시적인 목적을 위해 설명되지만, 그러한 특징들은 제한적인 것으로 의도된 것이 아니라는 것이 쉽게 이해될 것이다. 본 개시내용에 후속하는 청구항들은 보호 내용의 범위를 정의하도록 의도된다.
본 명세서에 포함되어 그의 일부를 구성하는 첨부 도면들은 본 명세서에 개시된 내용의 특정 양태들을 나타내고, 설명과 함께, 개시된 구현들과 연관된 원리들 중 일부를 설명하는 데 도움이 된다.
도 1a는 복수의 유전 샘플을 그 위에 갖는 서열 분석 플랫폼을 도시하는 것으로, 복수의 예시적인 타일뿐만 아니라, 서열 분석된 판독들의 3차원 표현도 도시되어 있다.
도 1b는 표현된 다양한 레인들을 갖는 플로우 셀의 표현을 도시한다.
도 1c는 서열 분석된 판독들의 성상도를 보여주는, 도 1b의 플로우 셀 플랫폼의 하부 코너를 도시한다.
도 1d은 도 1 및 도 2의 판독들에 대해 수행되는 서열 분석의 결과들의 가상 어레이를 도시하는 것으로, 여기서 판독들은 출력 열별 순서(column by column order)로 제시된다.
도 1e는 열별 순서로부터 행별 판독 순서로의 결과 판독들의 전치(transposition)가 구현될 수 있는 방법을 예시한다.
도 1f는 열별 순서로부터 행별 판독 순서로의 결과 판독들의 전치를 도시한다.
도 1g는 전치를 수행하기 위한 시스템 컴포넌트들을 도시한다.
도 1h는 전치 순서를 도시한다.
도 1i는 서열 분석된 데이터를 전자적으로 전치시키기 위한 아키텍처를 도시한다.
도 2는 하나의 상태로부터 다른 상태로 가는 전이 확률들을 예시하는 HMM 3-상태 기반 모델을 도시한다.
도 3a는 HMM 인터페이스 구조를 포함하는 본 개시내용의 집적 회로의 하이-레벨 뷰를 도시한다.
도 3b는 HMM 클러스터 특징들을 더 상세히 보여주는, 도 3a의 집적 회로를 도시한다.
도 4는 소프트웨어 및 하드웨어 상호작용 양쪽 모두를 포함하는 시스템 전체에 걸친 HMM 관련 데이터 흐름의 개관을 도시한다.
도 5는 예시적인 HMM 클러스터 칼라 연결들을 도시한다.
도 6은 예시적인 HMM 하드웨어 가속기 내의 주요 기능 블록들의 하이-레벨 뷰를 도시한다.
도 7은 예시적인 HMM 행렬 구조 및 하드웨어 프로세싱 흐름을 도시한다.
도 8은 행렬 내의 HMM M, I, 및 D 상태 계산들에서의 인근의 셀들 사이의 데이터 흐름 및 종속성을 보여주는 도 2의 일부의 확대도를 도시한다.
도 9는 M, I, D 상태 업데이트들에 유용한 예시적인 계산들을 도시한다.
도 10은 전이 확률들과 관련된 도 9의 가정들을 단순화하는 효과들 및 일부 M, I, D 가산기 리소스들을 최종 합 연산들과 공유하는 효과를 포함하는 M, I, 및 D 상태 업데이트 회로들을 도시한다.
도 11은 로그 도메인 M, I, D 상태 계산 상세 사항들을 도시한다.
도 12는 GOP, GCP 및 전이 확률들 사이의 관계를 보여주는 HMM 상태 전이도를 도시한다.
도 13은 도 12의 일반 상태 전이도를 지원하기 위한 HMM 전이확률(Transprobs) 및 프라이어(Priors) 생성 회로를 도시한다.
도 14는 GOP, GCP 및 전이 확률들 사이의 관계를 보여주는 단순화된 HMM 상태 전이도를 도시한다.
도 15는 단순화된 상태 전이를 지원하기 위한 HMM 전이확률 및 프라이어 생성 회로를 도시한다.
도 16은 예시적인 이론적 HMM 행렬을 도시하고 그러한 HMM 행렬이 어떻게 횡단(traverse)될 수 있는지를 예시한다.
도 17a는 다영역 공동 검출 프리프로세싱 절차를 수행하기 위한 방법을 제시한다.
도 17b는 도 17a의 프리프로세싱 절차에서와 같은 연결 행렬을 계산하기 위한 예시적인 방법을 제시한다.
도 18a는 판독들의 파일업(pileup)에서 2개의 상동(homologous) 서열 분석된 영역 사이의 예시적인 이벤트를 도시한다.
도 18b는 2개의 서열 사이의 뉴클레오티드 차이를 경계 지정하는, 도 18a의 구성된 판독들을 도시한다.
도 18c는 가속된 변이 추출 연산을 수행하는 데 사용될 수 있는 드 브루인(De Brujin) 그래프의 다양한 버블들을 도시한다.
도 18d는 본 명세서에 설명된 바와 같이 트리 함수를 프루닝하는 것의 표현을 도시한다.
도 18e는 도 18c의 버블들 중 하나를 도시한다.
도 19는 도 17의 연결 행렬에 따른 예시적인 파일업의 그래픽 표현이다.
도 20은 도 17a 및 도 17b의 프리프로세싱 절차를 수행하기 위한 프로세싱 행렬이다.
도 21은 도 20의 방법들에 따른 드 브루인 그래프에서의 버블 형성의 예이다.
도 22는 예시적인 드 브루인 그래프를 통한 변이 경로의 예이다.
도 23은 예시적인 소팅 함수의 그래픽 표현이다.
도 24는 프루닝된 다영역 공동 검출 절차에 대한 프로세싱 행렬의 다른 예이다.
도 25는 2개의 영역에 대한 쌍 판독들의 공동 파일업을 예시한다.
도 26은 본 명세서에 개시된 바에 따른 확률 테이블을 제시한다.
도 27은 다영역 공동 검출 절차에 대한 프로세싱 행렬의 추가 예이다.
도 28은 도 25의 공동 파일업에 대한 후보 솔루션들의 선택을 표현한다.
도 29는 프루닝 함수가 수행된 후의, 도 28의 파일업에 대한 후보 솔루션들의 추가 선택을 표현한다.
도 30은 MRJD 함수의 수행 후의, 도 28의 최종 후보들, 및 그들의 연관된 확률들을 표현한다.
도 31은 MRJD 및 종래의 검출기에 대한 ROC 곡선들을 예시한다.
도 32는 기준들의 서열 유사도의 함수로서 디스플레이된 도 31의 동일한 결과들을 예시한다.
도 33a는 본 개시내용의 CPU와 FPGA 사이의 느슨한 결합을 예시하는 예시적인 아키텍처를 도시한다.
도 33b는 본 개시내용의 CPU와 FPGA 사이의 타이트한 결합을 예시하는 예시적인 아키텍처를 도시한다.
도 34a는 본 개시내용의 CPU 및 FPGA의 직접 결합을 도시한다.
도 34b는 도 34a의 CPU 및 FPGA의 직접 결합의 대안적인 실시예를 도시한다.
도 35는 조합된 CPU 및 FPGA의 패키지의 실시예를 도시하는 것으로, 여기서 2개의 디바이스는 공통 메모리 및/또는 캐시를 공유한다.
도 36은 하나 이상의 메모리 및/또는 캐시를 공유하는 CPU들의 코어를 예시하는 것으로, CPU들은 공유 또는 공통 메모리 또는 캐시들을 또한 포함할 수 있는 하나 이상의 FPGA와 통신하도록 구성된다.
도 37은 시스템 전체에 걸친 데이터 전송의 예시적인 방법을 예시한다.
도 38은 도 36의 실시예를 더 상세히 도시한다.
도 39는 본 개시내용의 시스템의 하나 이상의 작업의 프로세싱을 위한 예시적인 방법을 도시한다.
도 40a는 온사이트 및/또는 클라우드 기반 게놈학 프로세싱 및 분석을 위한 게놈 인프라스트럭처에 대한 블록도를 도시한다.
도 40b는 본 명세서에 개시된 BioIT 분석을 수행하기 위한 클라우드 기반 게놈학 프로세싱 플랫폼의 블록도를 도시한다.
도 40c는 예시적인 게놈학 프로세싱 및 분석 파이프라인에 대한 블록도를 도시한다.
도 40d는 예시적인 게놈학 프로세싱 및 분석 파이프라인에 대한 블록도를 도시한다.
도 41a는 온사이트 및/또는 클라우드 기반 게놈학 프로세싱 및 분석을 위한 게놈 인프라스트럭처에 대한 도 40a의 로컬 및/또는 클라우드 기반 컴퓨팅 함수의 블록도를 도시한다.
도 41b는 온사이트 및/또는 클라우드 기반 게놈학 프로세싱 및 분석을 위한 게놈 인프라스트럭처에 대한 컴퓨팅 함수에 관하여 더 상세히 예시하는 도 41a의 블록도를 도시한다.
도 41c는 온사이트 및/또는 클라우드 기반 게놈학 프로세싱 및 분석을 위한 게놈 인프라스트럭처에 대한 제3자 분석 함수에 관하여 더 상세히 예시하는 도 40의 블록도를 도시한다.
도 42a는 하이브리드 클라우드 구성을 예시하는 블록도를 도시한다.
도 42b는 하이브리드 클라우드 구성을 예시하는, 도 42a의 블록도를 더 상세히 도시한다.
도 42c는 하이브리드 클라우드 구성을 예시하는, 도 42a의 블록도를 더 상세히 도시한다.
도 43a는 본 명세서에서 제시된 바와 같은 1차, 2차, 및/또는 3차 분석 파이프라인을 예시하는 블록도를 도시한다.
도 43b는 본 명세서에서의 시스템의 방법들 및 디바이스들에 의한 실행을 위한 예시적인 3차 프로세싱 후성유전학(epigenetics) 분석을 제공한다.
도 43c는 본 명세서에서의 시스템의 방법들 및 디바이스들에 의한 실행을 위한 예시적인 3차 프로세싱 메틸화 분석을 제공한다.
도 43d는 본 명세서에서의 시스템의 방법들 및 디바이스들에 의한 실행을 위한 예시적인 3차 프로세싱 구조적 변이 분석을 제공한다.
도 43e는 본 명세서에서의 시스템의 방법들 및 디바이스들에 의한 실행을 위한 예시적인 3차 코호트 프로세싱 분석을 제공한다.
도 43f는 본 명세서에서의 시스템의 방법들 및 디바이스들에 의한 실행을 위한 예시적인 공동 유전형 3차 프로세싱 분석을 제공한다.
도 44는 본 개시내용의 분석 파이프라인에 대한 흐름도를 도시한다
도 45는 본 개시내용의 구현에 따른 하드웨어 프로세서 아키텍처의 블록도이다.
도 46은 다른 구현에 따른 하드웨어 프로세서 아키텍처의 블록도이다.
도 47은 또 다른 구현에 따른 하드웨어 프로세서 아키텍처의 블록도이다.
도 48은 유전 서열 분석 파이프라인을 예시한다.
도 49는 유전 서열 분석 하드웨어 플랫폼을 이용하는 프로세싱 단계들을 예시한다.
도 50a는 본 개시내용의 구현에 따른 장치를 예시한다.
도 50b는 본 개시내용의 대안적인 구현에 따른 다른 장치를 예시한다.
도 51은 구현에 따른 게놈학 프로세싱 시스템을 예시한다.
위에 요약된 바와 같이, 본 개시내용은 1차 프로세싱 절차를 통해 생성된 데이터에 대한, 예컨대 유전 서열 데이터에 대한 매핑, 정렬, 소팅, 및/또는 변이 추출 프로토콜과 같은 하나 이상의 게놈학 및/또는 생물정보학 프로토콜의 수행에서 동일한 것을 이용하기 위한 디바이스들, 시스템들, 및 방법들에 관한 것이다. 예를 들어, 다양한 양태들에서, 본 명세서에 제공된 디바이스들, 시스템들, 및 방법들은, 예를 들어, 차세대 서열분석기("NGS")에 의해, RNA 및/또는 DNA의 서열 분석에 의해 생성되는 데이터와 같은, 유전 데이터에 대해 2차 분석 프로토콜들을 수행하도록 구성된다. 특정 실시예들에서, 유전 서열 데이터를 프로세싱하기 위한 하나 이상의 2차 프로세싱 파이프라인들이 제공되고, 예컨대 이 경우 파이프라인들 및/또는 이들의 개별 요소들은 본 기술분야에서 현재 이용 가능한 것보다 더 넓은 범위의 서열 유도 데이터에 대해 우수한 감도 및 개선된 정확도를 산출하도록 분산 및/또는 최적화된 방식으로 소프트웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 추가적으로, 위에 요약된 바와 같이, 본 개시내용은 예컨대 하나 이상의 변이 추출 파일을 이용하는, 예컨대 매핑된, 정렬된, 및/또는 다른 유전 서열 데이터에 대한 하나 이상의 게놈학 및/또는 생물정보학 3차 프로토콜, 예컨대 마이크로-어레이 분석 프로토콜, 게놈, 예를 들어 전체 게놈 분석 프로토콜, 유전형 분석 프로토콜, 엑솜 분석 프로토콜, 에피게놈 분석 프로토콜, 메타게놈 분석 프로토콜, 마이크로바이옴 분석 프로토콜, 공동 유전형 분석을 포함하는, 유전형 분석 프로토콜, 구조적 변이, 체세포 변이, 및 GATK를 포함하는 변이 분석 프로토콜들뿐만 아니라, RNA 서열 분석 프로토콜들 및 다른 유전 분석 프로토콜들의 수행에서 동일한 것을 이용하기 위한 디바이스들, 시스템들, 및 방법들에 관한 것이다.
따라서, DNA/RNA 서열 분석 데이터의 2차 및/또는 3차 분석을 수행하기 위한 소프트웨어 및/또는 하드웨어, 예를 들어, 칩 기반의 가속 플랫폼 분석 기술들이 본 명세서에 제공된다. 더 특정하게는, 예컨대 소프트웨어 구현 및/또는 하드와이어드 구성의 프로세싱 엔진들의 플랫폼, 또는 파이프라인으로, 이는 2차 유전 분석, 예를 들어, 매핑, 정렬, 소팅, 및/또는 변이 추출을 수행하기 위해 특정하게 설계되었고; 그리고/또는 알려진 소프트웨어 단독으로 구현되는 표준 파이프라인들보다 수 자릿수 더 빠른 프로세싱 속도의 구현을 산출하는 최적화된 형식으로 생성되었을 수 있는 유전 기반 서열 분석 데이터에 대해, 3차 유전 분석, 예컨대, 마이크로-어레이 분석, 게놈, 예를 들어, 전체 게놈 분석, 유전형 분석, 엑솜 분석, 에피게놈 분석, 메타게놈 분석, 마이크로바이옴 분석, 공동 유전형 분석을 포함하는 유전형 분석, 구조적 변이 분석, 체세포 변이 분석, 및 GATK 분석을 포함하는 변이 분석뿐만 아니라 RNA 서열 분석 및 다른 유전 분석을 수행하기 위해 특정하게 설계될 수 있다. 추가적으로, 본 명세서에서 제시된 파이프라인들은 핵산 또는 단백질 유도 서열과 같은 광범위한 서열 유도 데이터 세트들에 대해 더 나은 감도 및 정확도를 제공한다.
위에 지적한 바와 같이, 다양한 경우들에서, 생물정보학 프로세싱의 목표는 사람의 개별 게놈들 및/또는 단백질 서열들을 결정하는 것이며, 그 결정들은 유전자 발견 프로토콜들에서뿐만 아니라 예방 및/또는 치료 요법들에서 이용되어 각각의 특정한 사람 및 인류 전체의 생활을 더 좋게 향상시킬 수 있다. 게다가, 개인의 게놈 및/또는 단백질 호칭에 대한 지식은 예컨대 약물 발견 및/또는 FDA 시험들에서, 약물들이 있다면, 어느 것이 개인에게 효과가 있을 가능성이 있을지 및/또는 어느 것이 유해한 부작용을 가질 가능성이 있을지를, 예컨대 개인의 게놈 및/또는 그로부터 유도된 단백질 프로파일을 분석하고 그것을 그러한 약물 투여로부터의 예측된 생물학적 반응과 비교함으로써 더 잘 예측하는 데 이용될 수 있다.
그러한 게놈학 및 생물정보학 프로세싱은 일반적으로 잘 정의되어 있지만 전형적으로 분리된 3개의 단계의 정보 프로세싱을 수반한다. 1차 프로세싱이라 지칭되는 제1 단계는 DNA/RNA 서열 분석을 수반하는데, 여기서 피험자의 DNA 및/또는 RNA를 획득하여 다양한 프로세스들을 적용하고 그에 의해 피험자의 유전 코드가 머신 판독가능 디지털 코드, 예를 들어 FASTQ 파일로 변환된다. 2차 프로세싱이라 지칭되는 제2 단계는 피험자의 생성된 디지털 유전 코드를 그 개인의 유전 구성(genetic makeup)의 결정에, 예를 들어, 그 개인의 게놈 뉴클레오티드 서열을 결정하기 위해 이용하는 것을 수반한다. 그리고, 3차 프로세싱이라 지칭되는 제3 단계는 피험자의 유전 구성에 대해 하나 이상의 분석을 수행하여 그로부터 치료상 유용한 정보를 결정하는 것을 수반한다.
따라서, 일단 피험자의 유전 코드를, 예컨대 NextGen 서열분석기에 의해 서열 분석하여, 예를 들어, FASTQ 및/또는 BCL 파일 형식으로, 피험자의 유전 코드의 머신 판독가능 디지털 표현을 생성하면, 서열분석기 및/또는 서열 분석 프로토콜로부터 획득된 디지털 인코딩된 유전 서열 데이터를 추가로 프로세싱하는 것, 예컨대 디지털 방식으로 표현된 데이터에 2차 프로세싱을 적용하는 것이 유용할 수 있다. 예를 들어, 이 2차 프로세싱은 개인의 전체 게놈 및/또는 단백질 프로파일을 매핑 및/또는 정렬 및/또는 달리 조립하는 데 이용될 수 있고, 예컨대 이 경우 개인의 전체 유전 구성이 결정되고, 예를 들어, 여기서 개인의 전체 게놈의 조성이 식별되도록 각각의 및 모든 염색체의 각각의 및 모든 뉴클레오티드가 순차적 순서로 결정된다. 그러한 프로세싱에서는, 개인의 게놈을 예컨대 기준 표준, 예를 들어, 인간 게놈 프로젝트 등으로부터 획득된 하나 이상의 게놈과 같은 기준 게놈과의 비교에 의해 조립하여 개인의 유전 구성이 기준(들)의 구성과 어떻게 상이한지를 결정할 수 있다. 이 프로세스는 변이 추출이라고 일반적으로 알려져 있다. 어느 한 사람과 다른 사람의 DNA 사이의 차이는 1,000개의 염기 쌍 중 1이기 때문에, 그러한 변이 추출 프로세스는 피험자의 게놈 데이터를 분석하고 그 유전 서열이 주어진 기준과 어떻게 상이한지를 결정하기 위해, 파이프라인에서와 같이 동시에 및/또는 차례 차례로 수행될 필요가 있을 수 있는 많은 단계들을 요구하여, 매우 노동 및 시간 집약적일 수 있다.
예컨대 개별 피험자의 주어진 쿼리 서열에 대한 변이 추출 파일을 생성하기 위해, 2차 분석 파이프라인을 수행함에 있어; 유전 샘플, 예를 들어, DNA, RNA, 또는 단백질 샘플 등이 피험자로부터 획득될 수 있다. 그 후, 피험자의 DNA/RNA를, 예를 들어, 1차 프로세싱 단계에서, 예를 들어, NextGen 서열분석기(NGS) 및/또는 서열분석기-온-칩(sequencer-on-a-chip) 기술에 의해 서열 분석하여, 예컨대 오버샘플링된 방식으로, 개인의 게놈의 일부분 또는 전부를 커버하는 다수의 판독 서열 세그먼트들("판독들")을 생성할 수 있다. 서열 분석 디바이스에 의해 생성된 최종 결과물은 피험자의 게놈의 작은 세그먼트들을 표현하는, 짧은 서열들, 예를 들어, 판독들, 예를 들어, 개인의 전체 게놈을 표현하는 짧은 유전 서열들의 집합일 수 있다. 지적한 바와 같이, 전형적으로, 이들 판독에 의해 표현되는 정보는 이미지 파일 또는 디지털 형식, 예컨대 FASTQ, BCL, 또는 다른 유사한 파일 형식일 수 있다.
특정하게는, 전형적인 2차 프로세싱 프로토콜에서, 기준 게놈과의 비교에 의해 피험자의 유전 구성이 조립된다. 이 비교는 수백만 개의 짧은 판독 서열들로부터의 개인의 게놈의 재구성 및/또는 개인의 DNA의 전체와 예시적인 DNA 서열 모델과의 비교를 수반한다. 전형적인 2차 프로세싱 프로토콜에서, 원시 서열 분석된 판독 데이터를 포함하는 서열분석기로부터 이미지, FASTQ, 및/또는 BCL 파일이 수신된다. 피험자의 게놈을 표준 기준 게놈의 것과 비교하기 위해서는, 이들 판독 각각이 어디에서 기준 게놈에 매핑하는지, 예컨대 각각이 서로에 대해 어떻게 정렬되는지, 그리고/또는 각각의 판독이 염색체 순서로 어떻게 소팅될 수 있는지를 결정하여 각각의 판독이 어느 위치에 있는지 그리고 어느 염색체에 속하는지를 결정하는 것이 필요하다. 이들 함수 중 하나 이상은 예를 들어 일단 조립되면 전체 길이 서열 전체에 대해 변이 추출 함수를 수행하기 전에 행해질 수 있다. 구체적으로는, 일단 게놈에서 각각의 판독이 어디에 속하는지가 결정되면, 전체 길이의 유전 서열을 결정할 수 있으며, 그 후 피험자의 유전 코드와 레퍼런트(referent)의 것 간의 차이들을 평가할 수 있다.
예를 들어, 전형적인 2차 프로세싱 조립 프로토콜에서 기준 기반 조립은 피험자의 서열 분석된 게놈 DNA/RNA와 하나 이상의 표준, 예를 들어, 알려진 기준 서열들의 것의 비교를 수반한다. 다양한 매핑, 정렬, 소팅, 및/또는 변이 추출 알고리즘들이 이들 프로세스를 촉진시키는 것을 돕기 위해 개발되었다. 따라서, 이들 알고리즘은, 각각의 염색체 상에서 어디에 각각의 특정한 판독이 위치하는지를 결정하기 위해, 서열분석기에 의해 전달되는 이미지, FASTQ, 및/또는 BCL 파일로부터 수신된 수백만 개의 판독들을 매핑, 정렬, 및/또는 소팅하는 것 중 하나 이상의 일부 변형을 포함할 수 있다. 유의할 점은 이들 프로세스는 예컨대 미국 특허 제9,014,989호 및 제9,235,680호에 기술된 방법들 및/또는 디바이스들에 의해, 소프트웨어 또는 하드웨어로 구현될 수 있다는 점이고, 상기 특허 양쪽 모두 Edico Genome Corporation에 양도되었고 그 전체가 본 명세서에 인용에 의해 포함된다. 종종 이들 다양한 알고리즘 및/또는 하드웨어 구현의 기능 이면의 공통적인 특징은 그들이 그들의 프로세싱 함수를 촉진시키기 위해 인덱스 및/또는 어레이를 이용한다는 것이다.
예를 들어, 매핑과 관련하여, 서열 분석된 판독들의 많은 양, 예를 들어 전부를 프로세싱하여 그들 판독이 가능하게 정렬될 수 있는 기준 게놈 내의 가능한 로케이션들을 결정할 수 있다. 이 목적을 위해 이용될 수 있는 하나의 방법은 판독 대 기준 게놈의 직접 비교를 수행하여 매칭하는 모든 위치들을 찾는 것이다. 다른 방법은 기준 게놈 내의 다양한 위치들에 판독들을 매핑할 목적을 위해 프리픽스(prefix) 또는 서픽스(suffix) 어레이를 이용하거나, 또는 프리픽스 또는 서픽스 트리를 구축하는 것이다. 그러한 함수를 수행하는 데 유용한 전형적인 알고리즘은 버로우즈-휠러 변환(Burrows-Wheeler transform)으로, 이는 반복적인 데이터의 서열들을 압축하는 압축 공식을 이용하여 판독들의 선택을 기준에 매핑하는 데 이용된다.
추가의 방법은 해시 테이블을 이용하는 것이고, 예컨대 이 경우 판독들의 선택된 서브세트, 선택된 길이 "k"의 k-mer, 예를 들어 시드가 키들로서 해시 테이블에 배치되고, 기준 서열이 동등한 k-mer 길이 부분들로 분할되고, 알고리즘에 의해 해시 테이블 내로 그들 부분 및 그들의 로케이션이 해싱 함수에 따라 그들이 매핑되는 테이블 내의 그들 로케이션들에 삽입된다. 이 함수를 수행하는 전형적인 알고리즘은 기본 로컬 정렬 검색 툴(Basic Local Alignment Search Tool)인 "BLAST"이다. 그러한 해시 테이블 기반 프로그램들은 쿼리 뉴클레오티드 또는 단백질 서열들을 하나 이상의 표준 기준 서열 데이터베이스들과 비교하고 매칭들의 통계적 유의성을 계산한다. 이들과 같은 방식들로, 임의의 주어진 판독이 기준 게놈에 대해 가능하게 어디에 위치하는지가 결정될 수 있다. 이들 알고리즘이 유용한 것은 예컨대 이들 알고리즘의 사용 없이는 피험자의 게놈이 직접 비교에 조립되는 경우와 같이, 다른 경우보다 그들이 더 적은 메모리, 더 적은 룩 업들, LUT들을 필요로 하고, 따라서 그들의 함수들의 수행에서 더 적은 프로세싱 리소스들 및 시간을 필요로 하기 때문이다.
추가적으로, 정렬 함수는, 사실상 예컨대 원래의 서열분석 프로토콜에 의해 서열분석됨으로써 그것이 실제로 유도된 로케이션인, 게놈 내의 다수의 위치에 판독이 매핑될 수 있는 경우들에서와 같이, 주어진 판독이 게놈 상에서 매핑될 수 있는 모든 가능한 로케이션들을 결정하도록 수행될 수 있다. 이 함수는 게놈의 다수의 판독, 예를 들어, 매핑된 판독에 대해 수행될 수 있고, 피험자의 DNA/RNA의 일부분 또는 전체 유전 서열을 표현하는 순서화된 뉴클레오티드 염기들의 스트링이 획득될 수 있다. 순서화된 유전 서열과 함께, 임의의 주어진 뉴클레오티드 위치에 대해 그 위치에 있을 것으로 예측되는 뉴클레오티드, 예를 들어 "A", "C", "G", "T"(또는 "U")가 사실상 그 할당된 위치에 속하는 뉴클레오티드일 우도(likelihood)를 표현하는 스코어가, 주어진 위치에서 각각의 뉴클레오티드에 대해 주어질 수 있다. 정렬 함수들을 수행하기 위한 전형적인 알고리즘들은 니들만-분쉬(Needleman-Wunsch) 및 스미스-워터만 알고리즘들을 포함한다. 어느 경우든, 이들 알고리즘은 피험자의 쿼리 게놈 서열의 스트링과 기준 게놈 서열의 스트링 사이의 서열 정렬들을 수행하고, 그에 의해 전체 게놈 서열들을 하나씩 비교하는 대신에 가능한 길이들의 선택의 세그먼트들을 비교한다.
판독이 어느 염색체에 속하는지 및/또는 그 염색체의 시작으로부터의 그것의 오프셋을 식별하는 것을 포함할 수 있는, 예컨대 기준 게놈에 대한 위치가 일단 판독들에 할당되면, 그 판독들은 위치에 의해 소팅될 수 있다. 이는 다운스트림 분석들이 본 명세서에 설명된 오버샘플링 절차들을 이용하는 것을 가능하게 할 수 있다. 게놈 내의 주어진 위치와 중첩하는 모든 판독들은 소팅 후에 서로 인접할 것이고 그들을 파일업으로 조직하고 쉽게 검사하여 그들의 대부분이 기준 값과 일치하는지 여부를 결정할 수 있다. 그들이 일치하지 않으면, 변이가 플래깅될 수 있다.
예를 들어, 다양한 실시예들에서, 본 개시내용의 방법들은 예를 들어 하나 이상의 기준 게놈과 관련하여, 그의 DNA/RNA가 서열 분석된 개인의 하나 이상, 예컨대 모든 유전 변이를 식별하는 변이 추출 파일(VCF)을 생성하는 것을 포함한다. 예를 들어, 일단 실제 샘플 게놈이 알려지고 기준 게놈과 비교되면, 그 둘 사이의 변형들이 결정될 수 있고, 기준 게놈(들)과 샘플 게놈 사이의 모든 변형/편차의 리스트가 호출될 수 있고, 예를 들어, 변이 추출 파일이 생성될 수 있다. 특정하게는, 일 양태에서, 기준 서열(들)에 대한 피험자의 유전 서열의 모든 변형들을 포함하는 변이 추출 파일이 생성될 수 있다.
위에 지적한 바와 같이, 2개의 유전 서열 사이의 그러한 변형들은 다수의 이유에 기인할 수 있다. 그러므로, 그러한 파일을 생성하기 위해서는, 피험자의 게놈은 그의 변이들을 결정하기 전에 서열 분석되고 재구축되어야 한다. 그러나, 그러한 조립을 생성하려고 시도할 때 발생할 수 있는 여러 문제들이 있다. 예를 들어, 서열분석 프로세스에서 발생하는 화학, 서열분석 머신, 및/또는 인간 오류의 문제들이 있을 수 있다. 더욱이, 그러한 재구성들을 문제 있는 것으로 만드는 유전 아티팩트들이 있을 수 있다. 예를 들어, 그러한 조립들을 수행하는 데 있어서의 전형적인 문제는 때때로 그들 자신을 반복하는 게놈의 거대한 부분들, 예컨대 동일한 뉴클레오티드들의 스트링들을 포함하는 게놈의 긴 섹션들이 있다는 점이다. 그러므로, 임의의 유전 서열이 모든 곳에서 고유하지 않기 때문에, 게놈 내의 어디에서 식별된 판독이 실제로 매핑되고 정렬되는지를 결정하는 것이 어려울 수 있다. 추가적으로, 예컨대 피험자의 유전 서열 내의 하나의 염기가 다른 것을 치환한, 단일 뉴클레오티드 다형성(single nucleotide polymorphism, SNP)이 있을 수 있고; 복수의 뉴클레오티드들의 보다 광범위한 치환들이 있을 수 있고; 하나 또는 다수의 염기가 피험자의 유전 서열에 추가되거나 이로부터 결실된 경우와 같은, 삽입 또는 결실이 있을 수 있고, 및/또는 예를 들어, 2개의 염색체의 다리들의 교차에 의해 야기되는 구조적 변이가 있을 수 있고, 및/또는 단순히 서열에서의 시프트를 야기하는 오프셋이 있을 수 있다.
따라서, 변형에 대한 2개의 주요 가능성이 존재한다. 하나는, 예를 들어 사람의 게놈이 사실상 기준의 것과는 특정한 로케이션에서 상이한 경우, 문제의 특정한 로케이션에 실제 변이가 있는데, 예를 들어, SNP(하나의 염기 치환, 길이에서 하나 이상의 뉴클레오티드의) 삽입 또는 결실에 기인하는 자연적 변이가 있고, 및/또는 하나의 염색체로부터의 DNA 물질이 상이한 염색체 또는 다리 상으로 교차된 경우 또는 특정 영역이 DNA에서 두 번 카피된 경우와 같은 구조적 변이가 있다. 대안적으로, 화학 또는 머신, 서열분석기, 또는 정렬기 또는 다른 인간 오류 중 어느 하나를 통해 판독 데이터에 문제가 있음으로 인해 변이가 야기될 수 있다. 본 명세서에 개시된 방법들은 이들 유형의 오류들을 보상하는 방식으로, 더 특정하게는 화학, 머신 또는 인간에 기인하는 변형, 및 서열 분석된 게놈에서의 실제 변형들에서의 오류들을 구별하는 방식으로 이용될 수 있다. 더 구체적으로는, 본 명세서에 설명된 것과 동일한 것을 이용하는 방법들, 장치들 및 시스템들은 이들 2개의 상이한 유형의 변형들 간을 명확하게 구별하고, 따라서 생성된 임의의 추출 파일들의 정확도를 더 잘 보장하여 진정한 변이들을 올바르게 식별하도록 개발되었다.
그러므로, 특정한 실시예들에서, 유전 분석들을 수행하기 위한 기술들의 플랫폼이 제공되는데, 이 플랫폼은 매핑, 정렬, 소팅, 로컬 재정렬, 중복 마킹, 염기 품질 스코어 재측정, 변이 추출, 압축, 및/또는 압축해제 함수들 중 하나 이상의 수행을 포함할 수 있다. 예를 들어, 다양한 양태들에서, 파이프라인이 제공될 수 있는데, 이 파이프라인은 자동화된 서열분석기로부터 디지털, 예를 들어, FASTQ 또는 BCL 파일 형식 및/또는 이미지 파일에서 획득된 데이터와 같은, 하나 이상의 개인의 게놈 서열에 대해, 본 명세서에 설명된 바와 같은, 하나 이상의 분석 함수를 수행하는 것을 포함한다. 실행되는 전형적인 파이프라인은 하나 이상의 개인 피험자의 일부분 또는 전체 게놈과 같은, 하나 이상의 서열 분석 유전 물질을 포함할 수 있고, 그 유전 물질은 DNA, ssDNA, RNA, rRNA, tRNA 등을 포함할 수 있거나, 및/또는 일부 경우들에서 유전 물질은 DNA의 엑솜들, 에피솜들과 같은 코딩 또는 비코딩 영역들을 표현할 수 있다. 파이프라인은 예컨대 디지털화된 유전 데이터에 대해 이미지 프로세싱 절차, 염기 추출 및/또는 오류 정정 연산을 수행하는 것 중 하나 이상을 포함할 수 있거나, 및/또는 유전 데이터에 대해 매핑, 정렬, 및/또는 소팅 함수를 수행하는 것 중 하나 이상을 포함할 수 있다. 특정 경우들에서, 파이프라인은 디지털화된 유전 데이터에 대해 재정렬, 중복제거, 염기 품질 또는 스코어 재측정, 감소 및/또는 압축, 및/또는 압축해제 중 하나 이상을 수행하는 것을 포함할 수 있다. 특정 경우들에서, 파이프라인은 유전 데이터에 대해, 은닉 마르코프 모델과 같은 변이 추출 연산을 수행하는 것을 포함할 수 있다.
따라서, 특정 경우들에서, 이들 플랫폼 함수들 중 하나 이상의 구현은 피험자의 컨센서스 게놈 서열을 결정 및/또는 재구성하는 것, 피험자의 게놈 서열을 레퍼런트 서열, 예를 들어, 기준 또는 모델 유전 서열과 비교하는 것, 피험자의 게놈 DNA 또는 RNA가 레퍼런트와 상이한 방식, 예를 들어, 변이 추출을 결정하는 것, 및/또는 피험자의 게놈 서열에 대해 3차 분석, 예컨대 전게놈 변이 분석, 유전자 기능 분석, 단백질 기능 분석, 예를 들어 단백질 결합 분석, 게놈 및/또는 전사체의 정량적 및/또는 조립 분석뿐만 아니라, 다양한 진단 및/또는 예방 및/또는 치료 평가 분석을 수행하는 것 중 하나 이상을 수행하기 위한 것이다.
위에 지적한 바와 같이, 일 양태에서, 이들 플랫폼 함수, 예를 들어, 매핑, 정렬, 소팅, 재정렬, 중복 마킹, 염기 품질 스코어 재측정, 변이 추출, 압축, 및/또는 압축해제 함수들 중 하나 이상이 소프트웨어로 구현되도록 구성된다. 일부 양태들에서, 이들 플랫폼 함수들, 예를 들어 매핑, 정렬, 소팅, 로컬 재정렬, 중복 마킹, 염기 품질 스코어 재측정, 압축해제, 변이 추출, 압축, 및/또는 압축해제 함수들 중 하나 이상이 하드웨어, 예를 들어, 펌웨어로 구현되도록 구성된다. 특정 양태들에서, 이들 유전 분석 기술들은 덜 프로세싱 집약적인 그리고/또는 덜 시간 소모적인 방식으로 및/또는 더 큰 백분율 정확도로 실행되는 소프트웨어에 의해 구현될 수 있는 개선된 알고리즘들을 이용할 수 있고, 예를 들어, 하드웨어 구현된 기능성은 더 빠르고, 덜 프로세싱 집약적이고, 더 정확하다.
예를 들어, 특정 실시예들에서, 본 명세서에 개시된 바와 같이, 그러한 1차, 2차, 및/또는 3차 프로세싱을 수행하기 위한 개선된 알고리즘들이 제공된다. 개선된 알고리즘들은 예컨대, 위에 제시된 것들 중 하나와 같은 자동화된 서열분석기로부터 획득된 FASTQ 또는 BCL 파일 형식으로, 예컨대 서열 분석 플랫폼으로부터 획득된 DNA/RNA 서열 데이터의 디지털 표현 및/또는 이미지 파일에 대해, 매핑, 정렬, 소팅 및/또는 변이 추출 함수들 중 하나 이상을 더 효율적으로 그리고/또는 더 정확하게 수행하는 것에 관한 것이다. 특정한 실시예들에서, 개선된 알고리즘들은 로컬 재정렬, 중복 마킹, 염기 품질 스코어 재측정, 변이 추출, 압축 및/또는 압축해제 함수들 중 하나 이상을 더 효율적으로 및/또는 더 정확하게 수행하는 것에 관한 것이다. 게다가, 아래에 본 명세서에 더 상세히 설명된 바와 같이, 특정한 양태들에서, 이들 유전 분석 기술들은 동일한 것을 수행하기 위한 다양한 전통적인 소프트웨어 구현들보다 덜 프로세싱 집약적 및/또는 덜 시간 소모적인 방식으로 그리/또는 더 큰 백분율 정확도로 실행되는 소프트웨어 및/또는 하드웨어 중 하나 이상에 의해 구현될 수 있는 개선된 알고리즘들과 같은 하나 이상의 알고리즘을 이용할 수 있다. 다양한 경우들에서, 양자 프로세싱 플랫폼 상에서의 구현을 위한 개선된 알고리즘들이 제공된다.
그러므로, 다양한 양태들에서, 예를 들어, 하나 이상의 최적화된 알고리즘을 통해 그리고/또는 하나 이상의 최적화된 집적 및/또는 양자 회로 상에서, 예컨대 하나 이상의 하드웨어 프로세싱 플랫폼 상에서 게놈 데이터와 같은 유전 데이터를 분석하기 위한 하나 이상의 함수를 수행하기 위한 것과 같은, 생물정보학 프로토콜들을 구현하기 위한 시스템들, 장치들, 및 방법들이 본 명세서에 제시된다. 하나의 경우에, 하나 이상의 알고리즘을, 예를 들어, 소프트웨어로 및/또는 펌웨어로 및/또는 양자 프로세싱 회로에 의해, 생물정보학 프로토콜에서 게놈 데이터를 분석하기 위한 하나 이상의 단계의 수행을 위해 구현하기 위한 시스템 및 방법이 제공되고, 예컨대 이 경우 단계들은 매핑, 정렬, 소팅, 로컬 재정렬, 중복 마킹, 염기 품질 스코어 재측정, 변이 추출, 압축 및/또는 압축해제 중 하나 이상의 수행을 포함할 수 있고; 3차 프로세싱 플랫폼에서의 하나 이상의 단계를 추가로 포함할 수 있다. 따라서, 특정 경우들에서, 방법들을 수행하기 위한 소프트웨어, 펌웨어, 하드웨어, 및/또는 양자 프로세싱 알고리즘들을 포함하는 방법들이 본 명세서에 제시되며, 여기서 방법들은 매핑, 정렬, 소팅, 재정렬, 중복 마킹, 염기 품질 스코어 재측정, 변이 추출, 압축, 압축해제, 및/또는 하나 이상의 3차 프로세싱 프로토콜들과 같은 하나 이상의 유전 분석 함수들을 구현하기 위한 알고리즘과 같은 알고리즘의 수행을 수반하고, 여기서 예를 들어 펌웨어를 포함하는 알고리즘은 그것이 구현되어야 하는 방식에 따라 최적화되었다.
특히, 그 알고리즘이 소프트웨어 솔루션에서 구현되어야 하는 경우, 알고리즘 및/또는 그에 수반되는 프로세스들은 그 미디어에 의한 실행을 위해 더 빠르게 및/또는 더 나은 정확도로 수행되도록 최적화되어 있다. 마찬가지로, 알고리즘의 함수들이 하드웨어 솔루션에서, 예를 들어, 펌웨어로서, 구현되어야 하는 경우, 그 하드웨어는 그 미디어에 의한 실행을 위해 더 빠르게 및/또는 더 나은 정확도로 수행되도록 이들 함수 및/또는 그에 수반되는 프로세스들을 최적화된 방식으로 수행하도록 설계되었다. 게다가, 그 알고리즘이 양자 프로세싱 솔루션에서 구현되는 경우, 알고리즘 및/또는 그에 수반되는 프로세스들은 그 미디어에 의한 실행을 위해 더 빠르게 및/또는 더 나은 정확도로 수행되도록 최적화되었다. 예를 들어, 이들 방법은 예컨대 반복적인 매핑, 정렬, 소팅, 변이 추출 및/또는 3차 프로세싱 절차에서 이용될 수 있다. 다른 경우에서, 본 명세서에 설명된 바와 같이, 생물정보학 프로토콜에서 게놈 데이터를 분석하기 위한 하나 이상의 단계의 수행을 위한 하나 이상의 알고리즘의 함수들을 구현하기 위한 시스템들 및 방법들이 제공되며, 그 함수들은 하나 이상의 범용 프로세서 및/또는 수퍼 컴퓨터 및/또는 양자 컴퓨터와 결합되거나 그렇지 않을 수 있는 하드웨어 및/또는 양자 가속기 상에서 구현된다.
더 구체적으로는, 일부 경우들에서, 피험자의 유전 조성에 관한 데이터에 대해 2차 분석을 수행하기 위한, 방법들 및/또는 그들 방법을 구현하기 위한 머신이 제공된다. 하나의 경우에, 수행될 분석은 피험자 게놈의 기준 기반 재구성을 수반할 수 있다. 예를 들어, 기준 기반 매핑은 기준 게놈의 이용을 수반하는데, 그것은 단일 또는 다수의 개인의 게놈을 서열 분석함으로써 생성될 수 있거나, 또는 그것은 예를 들어 개인의 유전 서열을 결정 및 재구성하기 위해 및/또는 그들의 유전 구성과 표준 기준 사이의 차이를 결정, 예컨대 변이 추출을 위해 임의의 개인의 유전 물질, 예를 들어, DNA/RNA가 비교될 수 있는 원형의 표준 기준 게놈을 생성하는 방식으로 조합된 다양한 사람들의 DNA/RNA의 융합일 수 있다.
특정하게는, 피험자의 서열 분석된 DNA/RNA에 대해 2차 분석을 수행하는 이유는 피험자의 DNA/RNA가 기준의 것으로부터 어떻게 달라지는지를 결정하기 위한 것, 예컨대 기준의 것으로부터 피험자의 뉴클레오티드 서열 내의 차이들의 하나, 다수 또는 전부를 결정하기 위한 것이다. 예를 들어, 임의의 2명의 랜덤한 사람의 유전 서열들 사이의 차이들은 약 1,000개의 염기 쌍 중 1이며, 이는 3십억 개를 넘은 염기 쌍들의 전체 게놈을 고려할 때 1인당 최대 3,000,000개의 분기하는 염기 쌍의 변형에 달한다. 이들 차이를 결정하는 것은, 예컨대 예방 또는 치료가 피험자의 DNA 또는 그로부터 생성된 단백질들과 어떻게 상호작용할 것으로 예측되는지에 기초하여, 예를 들어 유전적 이상으로 인한 질병 상태의 발생의 잠재성 및/또는 예방 또는 치료 모달리티의 성공의 우도를 예측하기 위해, 예컨대 3차 분석 프로토콜에서 유용할 수 있다. 다양한 경우들에서, 피험자의 게놈의 데노보(de novo) 및 기준 기반 재구성 양쪽 모두를 수행하여 하나의 결과를 다른 것과 대조하여 확인하고, 바람직한 경우, 변이 추출 프로토콜의 정확도를 개선하는 것이 유용할 수 있다.
따라서, 일 양태에서, 다양한 실시예들에서, 일단 피험자의 게놈이 재구성되고/되거나 VCF가 생성되면, 그 후 그러한 데이터에 3차 프로세싱을 적용하여 그것을 해석하여, 예컨대 이 사람이 어떤 질병을 앓고 있거나 그러할 잠재성이 있는지를 식별하는 것과 관련하여 이 데이터가 무엇을 의미하는지를 결정하기 위해 및/또는 질병 상태를 개선 및/또는 예방하기 위해 이 피험자가 어떤 치료들 또는 생활습관 변경들을 이용하기를 원할 수 있는지를 결정할 수 있다. 예를 들어, 피험자의 유전 서열 및/또는 그들의 변이 추출 파일을 분석하여 질병 상태의 존재 또는 잠재성을 지시하는 임상적으로 관련된 유전 마커들 및/또는 제안된 치료 또는 예방 요법이 피험자에 대해 가질 수 있는 효능을 결정할 수 있다. 그 후, 이 데이터는 질병 상태를 치료 및/또는 예방하는 것과 같이 피험자의 삶의 질을 개선하기 위해 하나 이상의 치료 또는 예방 요법을 피험자에게 제공하는 데 이용될 수 있다.
특정하게는, 일단 하나 이상의 개인의 유전 변형이 결정되면, 그러한 변이 추출 파일 정보는 의료적으로 유용한 정보를 개발하는 데 이용될 수 있으며, 이는 차례로 예를 들어 다양한 알려진 통계 분석 모델들, 건강 관련 데이터 및/또는 의료적으로 유용한 정보를 이용하여, 예를 들어 진단 목적들, 예를 들어 질병 또는 그에 대한 잠재성의 진단,(예를 들어, 질병 변이를 표현하는 마커들을 찾는) 임상적 해석을 위해, 다양한 임상 시험들에서 피험자가 포함되어야 하는지 제외되어야 하는지를 결정하기 위해, 및 다른 그러한 목적들에 이용될 수 있다. 더 특정하게는, 다양한 경우들에서, 생성된 게놈학 및/또는 생물정보학 프로세싱된 결과의 결과 데이터는 마이크로-어레이 분석 프로토콜, 게놈, 예를 들어 전체 게놈 분석 프로토콜, 유전형 분석 프로토콜, 엑솜 분석 프로토콜, 에피게놈 분석 프로토콜, 메타게놈 분석 프로토콜, 마이크로바이옴 분석 프로토콜, 공동 유전형 분석을 포함하는, 유전형 분석 프로토콜, 구조적 변이, 체세포 변이, 및 GATK를 포함하는 변이 분석 프로토콜들뿐만 아니라, RNA 서열 분석 프로토콜들 및 다른 유전 분석 프로토콜들과 같은 하나 이상의 게놈학 및/또는 생물정보학적 3차 프로토콜의 수행에서 이용될 수 있다.
유전적 기형들에 의해 야기된 질병 상태들의 수가 유한하기 때문에, 3차 프로세싱에서는 특정한 유형의 변이들, 예를 들어, 질병 상태들의 시작과 관련이 있는 것으로 알려진 것들을, 예를 들어 하나 이상의 유전 기반 질병 마커들이 피험자의 변이 추출 파일에 포함되어 있는지를 결정함으로써 쿼리할 수 있다. 결과적으로, 다양한 경우들에서, 본 명세서에 개시된 방법들은 예컨대 그에 대한 게놈 마커들의 데이터베이스에서의, 알려진 질병 서열 변이에 대조하여, VCF 및/또는 생성된 서열을 분석, 예를 들어 스캐닝하여, VCF 및/또는 생성된 서열에서의 유전 마커의 존재를 식별하고, 존재한다면 유전적으로 유도된 질병 상태에 대한 존재 또는 잠재성에 관해 추출을 작성하는 것을 수반할 수 있다. 많은 수의 알려진 유전 변형들 및 그러한 변형들에 의해 야기되는 질병들을 앓고 있는 많은 수의 개인들이 있기 때문에, 일부 실시예들에서, 본 명세서에 개시된 방법들은 전체 게놈에 대한 서열 분석된 데이터 및/또는 예를 들어 그것에 관한, 예컨대 개인 또는 복수의 개인으로부터의 변이 추출 파일, 및 질병 상태를 링크시키는 하나 이상의 데이터베이스의 생성 및/또는 생성된 데이터베이스를 검색하여 특정한 피험자가 그러한 질병 상태를 갖는 성향을 갖게 할 유전 조성을 갖는지를 결정하는 것을 수반할 수 있다.
그러한 검색은 하나의 전체 게놈을 하나 이상의 다른 것과 비교하는 것, 또는 변형들만을 포함하는 단편(fragment)과 같은 게놈의 단편을, 예컨대 기준 게놈들 또는 그의 단편들의 데이터베이스에서의 하나 이상의 다른 게놈의 하나 이상의 단편과 비교하는 것을 수반할 수 있다.
따라서, 다양한 경우들에서, 본 개시내용의 파이프라인은 하나 이상의 모듈을 포함할 수 있으며, 그 모듈들은 유전 데이터, 예를 들어 서열 분석된 유전 데이터에 대해 이미지 프로세싱 또는 염기 추출 및/또는 오류 정정 연산 및/또는 매핑 및/또는 정렬 및/또는 소팅 함수와 같은 하나 이상의 함수를 수행하도록 구성된다. 그리고 다양한 경우들에서, 파이프라인은 하나 이상의 모듈을 포함할 수 있으며, 그 모듈들은 유전 데이터에 대해 로컬 재정렬, 중복제거, 염기 품질 스코어 재측정, 변이 추출, 예를 들어, HMM, 감소 및/또는 압축, 및/또는 압축해제 중 하나 이상을 수행하도록 구성된다. 추가적으로, 파이프라인은 하나 이상의 모듈을 포함할 수 있고, 그 모듈들은 마이크로-어레이 프로토콜, 게놈, 예를 들어, 전체 게놈 프로토콜, 유전형 분석 프로토콜, 엑솜 분석 프로토콜, 에피게놈 분석 프로토콜, 메타게놈 분석 프로토콜, 마이크로바이옴 분석 프로토콜, 공동 유전형 분석 프로토콜을 포함하는, 유전형 프로토콜, 구조적 변이, 체세포 변이, 및 GATK를 포함하는 변이 분석 프로토콜들뿐만 아니라, RNA 서열 분석 프로토콜들 및 다른 유전 분석 프로토콜들과 같은 3차 분석 프로토콜을 수행하도록 구성된다.
이들 모듈 중 다수는 소프트웨어에 의해 또는 하드웨어 상에서, 로컬로 또는 원격으로, 예를 들어, 소프트웨어 또는 하드웨어를 통해, 예컨대, 클라우드 상에서, 예를 들어, 원격 서버 및/또는 서버 뱅크, 예컨대 양자 컴퓨팅 클러스터 상에서 수행될 수 있다. 추가적으로, 파이프라인의 단계들 및/또는 이들 모듈들 중 다수는 옵션이고/이거나 임의의 논리적 순서로 배열될 수 있고/있거나 전체적으로 생략될 수 있다. 예를 들어, 본 명세서에 개시된 소프트웨어 및/또는 하드웨어는 이미지 프로세싱 및/또는 염기 추출 또는 서열 정정 알고리즘을 포함하거나 그렇지 않을 수 있고, 예컨대 이 경우 그러한 함수들이 통계적 편향을 초래할 우려가 있을 수 있다. 결과적으로, 시스템은 원하는 정확도 및/또는 효율의 레벨에 따라 각각 염기 추출 및/또는 서열 정정 함수를 포함하거나 그렇지 않을 수 있다. 그리고 위에 지적한 바와 같이, 파이프라인 함수들 중 하나 이상은 예컨대 기준 기반 게놈 재구성을 통해 피험자의 게놈 서열의 생성에 이용될 수 있다. 또한, 위에 지적한 바와 같이, 특정 경우들에서, 2차 프로세싱 파이프라인으로부터의 출력은 게놈 또는 그의 일부분에서의 모든 변이 또는 일부분을 나타내는 변이 추출 파일(VCF, gVCF)일 수 있다.
특정하게는, 판독이 어느 염색체에 속하는지 및/또는 그 염색체의 시작으로부터의 그것의 오프셋을 식별하는 것을 포함할 수 있는, 기준 게놈에 대한 위치가 일단 판독들에 할당되면, 그것들은 예컨대 위치에 의해 중복제거 및/또는 소팅될 수 있다. 이는 다운스트림 분석들이 본 명세서에 설명된 다양한 오버샘플링 프로토콜들을 이용하는 것을 가능하게 한다. 게놈 내의 주어진 위치와 중첩하는 모든 판독들은 소팅 후에 서로 인접하여 배치될 수 있고, 그들을 쌓아올려, 예를 들어, 파일업을 형성하고 쉽게 검사하여 그들의 대부분이 기준 값과 일치하는지 여부를 결정할 수 있다. 그들이 일치하지 않으면, 위에 지적한 바와 같이, 변이가 플래깅될 수 있다.
따라서, 매핑과 관련하여 위에 지적한 바와 같이, 서열분석기로부터 획득된 이미지 파일, BCL 파일, 및/또는 FASTQ 파일은 개인의 전체 게놈 또는 일부분을 표현하는 뉴클레오티드 서열 데이터의 짧은 스트링들로 이루어진 복수, 예를 들어, 수백만 내지 십억 또는 그 이상의 판독들로 구성된다. 예를 들어, 본 명세서에 개시된 2차 분석 파이프라인들에서의 제1 단계는, 예컨대, 서열분석기와 같은 게놈 데이터 생성 장치로부터의 게놈학 및/또는 생물정보학 데이터의 수신이다. 전형적으로, 서열분석기, 예를 들어, NextGen 서열분석기에 의해 생성된 데이터는 BCL 파일 형식일 수 있고, 이는 일부 경우들에서, 예컨대 본 명세서에 설명된 2차 프로세싱 플랫폼으로의 전송 전에 또는 그 후에, FASTQ 파일 형식으로 변환될 수 있다. 특정하게는, 인간 게놈을 서열 분석할 때, 피험자의 DNA 및/또는 RNA는 염기별로(on a base per base basis) 식별되어야 하고, 여기서 그러한 서열 분석의 결과들은 BCL 파일이다. BCL 파일은 피험자의 전체 게놈 또는 적어도 일부를 구성하는 서열들의 집합의 각각의 서열의 각각의 염기에 대해 이루어진 염기 추출들 및 품질 스코어들을 포함하는 이진 파일이다.
전통적으로, 서열분석기 생성된 BCL 파일은 FASTQ 파일로 변환되고, 이는 그 후 추가 프로세싱을 위해, 예컨대 그것의 게놈학 변이를 결정하기 위해, 본 명세서에 개시된 바와 같은 2차 프로세싱 플랫폼으로 전송될 수 있다. FASTQ 파일은 생물학적 서열(예를 들어, 뉴클레오티드 서열) 및 그의 대응하는 품질 스코어들 양쪽 모두를 전송 및 저장하기 위한 텍스트 기반 파일 형식이며, 여기서 서열 문자, 예를 들어, A, C, G, T, 및/또는 U, 및 품질 스코어 양쪽 모두는 각각 간결성을 위해 단일 ASCII 문자로 인코딩될 수 있다. 따라서, 이 시스템 및 다른 시스템들 내에서, 추가 프로세싱의 목적을 위해 사용되는 것은 FASTQ 파일이다. 비록 게놈학 프로세싱을 위한 FASTQ 파일의 이용이 유용하기는 하지만, 서열분석기 장치에서 구현된 바와 같이, 생성된 BCL 파일을 FASTQ 파일로 변환하는 것은 시간 소모적이고 비효율적이다. 그러므로, 일 양태에서, 본 명세서에 설명된 바와 같이, BCL 파일을 FASTQ 파일로 직접 변환하고 및/또는 그러한 데이터를 본 플랫폼 파이프라인들에 직접 입력하기 위한 디바이스들 및 방법들이 제공된다.
예를 들어, 다양한 실시예들에서, 차세대 서열분석기, 또는 서열분석기 칩(sequencer on a chip) 기술이 수신된 유전 데이터에 대해 서열 분석 연산을 수행하도록 구성될 수 있다. 예를 들어, 도 1a와 관련하여 알 수 있는 바와 같이, 유전 데이터(6a)는 차세대 서열분석기 내로의 삽입을 위해 서열 분석 플랫폼(6)에 결합되어 반복적 방식으로 서열 분석될 수 있고, 따라서 각각의 서열은 뉴클레오티드를 하나씩 차례 차례 단계별로 추가하는 것에 의해 성장될 것이다. 구체적으로는, 서열 분석 플랫폼(6)은 플랫폼(6) 상에 타일들(6b)을 형성하기 위해 격자 같은 방식으로 배열되는 피험자로부터의 다수의 템플릿 뉴클레오티드 서열(6a)을 포함할 수 있고, 이 템플릿 서열들(6a)이 서열 분석될 것이다. 플랫폼(6)은 서열 분석 반응들을 수행하도록 적응되는 서열분석기의 플로우 셀 (6c)에 추가될 수 있다.
서열 분석 반응이 일어남에 따라, 각각의 단계에서 형광 태그(6d)를 갖는 뉴클레오티드가 플로우 셀 (6c)의 플랫폼(6)에 추가된다. 혼성화 반응이 발생하면, 형광이 관찰되고, 이미지가 취해지고, 이미지는 그 후 프로세싱되고, 적절한 염기 추출이 이루어진다. 이는 모든 템플릿 서열들, 예를 들어, 전체 게놈이 서열 분석되고 판독들로 변환되고, 그에 의해 시스템의 판독 데이터를 생성할 때까지 염기별로 반복된다. 그러므로, 일단 서열 분석되면, 생성된 데이터, 예를 들어, 판독들은 서열 분석 플랫폼으로부터 2차 프로세싱 시스템으로 전송될 필요가 있다. 예를 들어, 전형적으로, 이 이미지 데이터는 BCL 및/또는 FASTQ 파일로 변환되고, 이는 그 후 시스템으로 전송될 수 있다.
그러나, 다양한 경우들에서, 이 변환 및/또는 전송 프로세스가 더 효율적으로 이루어질 수 있다. 구체적으로는, 2차 프로세싱 시스템 내에서 빠르게 프로세싱될 수 있는 파일들로의 촉진된 BCL 변환을 위한 방법들 및 아키텍처들이 본 명세서에 제시된다. 더 구체적으로는, 특정한 경우들에서, 원시 BCL 또는 FASTQ 파일들을 전송하는 대신에, 서열 분석 연산의 각각의 타일을 표현하는 생성된 이미지들이 시스템 내로 직접 전송되고, 매핑 및 정렬 등을 위해 준비될 수 있다. 예를 들어, 타일들은 적합하게 구성된 PCIe를 통해 ASIC, FPGA, 또는 QPU에 스트리밍될 수 있고, 판독 데이터는 그로부터 직접 추출될 수 있고, 판독들은 매핑 및 정렬 및/또는 다른 프로세싱 엔진들 내로 진행된다.
특정하게는, 도 1a와 관련하여 알 수 있는 바와 같이, 서열분석기에 의해 획득된 타일들로부터 FPGA/CPU/GPU/QPU로의 데이터의 전송에 관하여, 서열 분석 플랫폼(6)은 3-D 큐브(6c)로서 이미징될 수 있고, 그 안에서 성장 서열들(6a)이 생성된다. 본질적으로, 도 1b와 관련하여 알 수 있는 바와 같이, 서열 분석 플랫폼(6)은 전방에 8개 및 후방에 8개로, 16개의 레인으로 구성될 수 있으며, 이들은 약 96개의 타일(6b)을 형성하도록 구성될 수 있다. 각각의 타일(6b) 내에는 서열 분석되고 그에 의해 판독들을 형성할 다수의 템플릿 서열(6a)이 있고, 여기서 각각의 판독은 피험자의 게놈의 주어진 영역에 대한 뉴클레오티드 서열을 표현하고, 각각의 열(column)은 하나의 파일을 표현하고, 디지털 방식으로 인코딩될 때 파일당 8 비트씩 모든 파일에 대해 1 바이트를 표현하고, 예컨대 이 경우 2 비트는 추출된 염기를 표현하고, 나머지 6 비트는 품질 스코어를 표현한다.
더 특정하게는, 차세대 서열 분석과 관련하여, 서열 분석은 전형적으로 서열 분석을 위해 자동화된 서열분석기 내에 입력되는 플로우 셀들(6c)을 형성하는 유리 플레이트들(6) 상에서 수행된다. 도 1b와 관련하여 알 수 있는 바와 같이, 플로우 셀(6c)은 함께 16개의 레인을 형성하는 8개의 수직 열 및 8개의 수평 행(전방 및 후방)으로 구성된 플랫폼(6)이고, 여기서 각각의 레인은 전체 게놈의 서열 분석에 충분하다. 서열 분석될 피험자의 DNA 및/또는 RNA(6a)는 타일들(6b)을 형성하기 위해 플랫폼(6)의 열들과 행들의 유동적으로 격리된 교차부들 사이의 지정된 위치들 내에서 연관되고, 여기서 각각의 타일은 서열 분석될 템플릿 유전 물질(6a)을 포함한다. 따라서, 서열 분석 플랫폼(6)은 피험자로부터의 다수의 템플릿 뉴클레오티드 서열을 포함하고, 그 서열들은 플랫폼 상의 타일들의 격자 같은 방식으로 배열된다. (도 1b 참조.) 그 후 유전 데이터(6)는 각각의 서열이 플로우 셀 내로 뉴클레오티드를 하나씩 차례 차례 단계별로 도입하는 것에 의해 성장되는 반복적 방식으로 서열 분석되고, 여기서 각각의 반복적 성장 단계는 서열 분석 사이클을 표현한다.
지적한 바와 같이, 각각의 단계 이후에 이미지가 캡처되고, 예를 들어 이미지들의 성장 서열이 BCL 파일이 생성되는 기초를 형성한다. 도 1c와 관련하여 알 수 있는 바와 같이, 서열 분석 절차로부터의 판독들은 클러스터들을 형성할 수 있고, 이론적인 3-D 큐브(6c)를 형성하는 것은 이들 클러스터이다. 따라서, 이 이론적 3-D 큐브 내에서, 서열 분석되는 각각의 성장하는 뉴클레오티드 가닥의 각각의 염기는 x 차원 및 y 차원을 가질 것이다. 이 3-D 큐브(6c)로부터의 이미지 데이터 또는 타일들(6b)은 추출되어 2차원 맵으로 컴파일될 수 있고, 이로부터 도 1ad에서 보이는 바와 같은 행렬이 형성될 수 있다. 행렬은 수평 축을 표현하는 서열 분석 사이클들, 및 수직 축을 표현하는 판독 아이덴티티들로 형성된다. 따라서, 도 1c를 참조하여 알 수 있는 바와 같이, 서열 분석된 판독들은 플로우 셀 (6c) 내의 클러스터들을 형성하고, 이 클러스터들은 사이클별로, 수직 및 수평 축에 의해 정의될 수 있고, 각각의 판독에 대해 각각의 사이클로부터의 염기별 데이터가, 예컨대 스트리밍 및/또는 파이프라인 방식으로, 도 1d의 행렬에 삽입될 수 있다.
구체적으로는, 각각의 사이클은 하나의 또는 여러 인간 게놈들을 서열 분석할 때 레인당 약 십억 개 이상의 판독의 성장을 표현할 수 있는 하나의 뉴클레오티드의 추가에 의해 플로우 셀 내의 각각의 판독의 잠재적 성장을 표현한다. 예를 들어, 뉴클레오티드 염기의 추가에 의한 각각의 판독의 성장은 성장 단계들 사이의 플로우 셀 (6c)의, 타일들(6b)의 이미지들의 반복적인 캡처링에 의해 식별된다. 이들 이미지로부터, 염기 추출들이 이루어지고, 품질 스코어들이 결정되고, 도 1d의 가상 행렬이 형성된다. 따라서, 행렬에 입력된 품질 스코어 및 염기 추출 양쪽 모두가 있을 것이고, 여기서 각각의 사이클로부터의 각각의 타일은 별개의 파일을 표현한다. 유의해야 할 점은 서열 분석이 집적 회로에 대해 수행되는 경우, 감지된 전자 데이터가 이미지 데이터를 치환할 수 있다는 점이다.
예를 들어, 도 1d와 관련하여 알 수 있는 바와 같이, 이미지들이 캡처되고 프로세싱되고, 염기들이 추출되고, 사이클별로, 각각의 판독에 대해 품질 스코어들이 결정됨에 따라 됨에 따라 행렬 자체는 반복적으로 성장할 것이다. 이는 플로우 셀의 각각의 타일에 대해, 판독 내의 각각의 염기에 대해 반복된다. 예를 들어, 도 1c의 판독들의 클러스터는 번호가 매겨지고 수직 축으로서 행렬에 입력될 수 있다. 마찬가지로, 사이클 수는 수평 축으로서 입력될 수 있고, 그 후 염기 추출 및 품질 스코어를 입력하여 행렬을 열별로, 행별로 채울 수 있다. 따라서, 각각의 판독은 서열분석기에 따라 판독당 다수의 염기, 예를 들어, 약 100 또는 150개에서 최대 1000개 이상의 염기들에 의해 표현될 것이고, 타일당 최대 천만 개 이상의 판독이 있을 수 있다. 따라서, 각각이 천만 개의 판독을 갖는 약 100개의 타일이 존재하는 경우, 행렬은 약 십억 개의 판독을 포함할 것이고, 이들은 조직되어 2차 프로세싱 장치로 스트리밍될 필요가 있다.
따라서, 그러한 조직은 데이터를 신속하고 효율적으로 프로세싱하는 데 기본적이다. 그러므로, 일 양태에서, 본 명세서에 개시된 시스템의 파이프라인들 내로 데이터가 더 직접적으로 그리고 효율적으로 스트리밍될 수 있는 방식으로, 가상 서열 분석 행렬로 표현되는 데이터를 전치시키기 위한 방법들이 본 명세서에서 제시된다. 예를 들어, 도 1c의 스타 클러스터에 의해 표현되는 바와 같은 서열 데이터의 생성은 대체로 조직되지 않으며, 이는 데이터 프로세싱 관점에서 문제 있다. 특정하게는, 데이터가 서열 분석 연산에 의해 생성됨에 따라, 그것은 사이클당 하나의 파일로서 조직되고, 이는 서열 분석 연산의 종료까지는, 생성된 수백만 개의 파일이 있다는 것을 의미하고, 그 파일들은 도 1e에서, 실선들에 의해 경계 지정된, 열들 내의 데이터에 의해 표현된다.
그러나, 본 명세서에 개시된 바와 같이, 2차 및/또는 3차 프로세싱의 목적을 위해, 파일 데이터는 도 1e의 파선에 의해 경계 지정된, 판독 데이터로 재조직될 필요가 있다.
더 특정하게는, 서열분석기에 의해 생성된 데이터를 2차 프로세싱 데이터로 더 효율적으로 스트리밍하기 위해, 가상 행렬에 의해 표현되는 데이터는, 예컨대 사이클당 타일들의 열별 기준으로부터 판독들 각각의 염기들을 식별하는 행별 기준으로 파일 데이터를 재조직하는 것에 의해 전치되어야 한다. 구체적으로는, 행렬을 형성하는 생성된 파일들의 데이터 구조는, 서열분석기에 의해 생성됨에 따라, 사이클별, 열별 기준으로 조직된다. 본 명세서에 개시된 프로세스들에 의해, 이 데이터는, 판독별, 행별 기준으로, 가상 행렬 내에서 보이는 바와 같이, 표현되도록, 예를 들어, 실질적으로 동시에 전치될 수 있으며, 여기서 각각의 행은 개별 판독을 나타내고, 각각의 판독은 순차적 번호의 염기 추출들 및 품질 스코어들에 의해 표현되고, 그에 의해 각각의 판독에 대한 서열 및 그의 신뢰도 양쪽 모두를 식별한다. 따라서, 본 명세서에 설명된 바와 같은 전치 연산에서, 메모리 내의 데이터는, 예를 들어, 가상 행렬 내에서, 입력 데이터 순서를 표현하는, 열별 기준으로부터 출력 데이터 순서를 표현하는 행별 기준으로 재조직되고, 그에 의해 데이터 순서를 수직에서 수평 조직으로 전치시킬 수 있다. 게다가, 비록 프로세스는 소프트웨어로 효율적으로 구현될 수 있기는 하지만, 그것은 하드웨어로 및/또는 양자 프로세서에 의해 구현되는 것에 의해 훨씬 더 효율적이고 더 빠르게 만들어질 수 있다.
예를 들어, 다양한 경우들에서, 이 전치 프로세스는 하드웨어로 구현됨으로써 가속될 수 있다. 예를 들어, 일 구현에서, 제1 단계에서, 예를 들어, 서열분석기의 호스트 소프트웨어는 입력 데이터를, 예를 들어, 입력 순서에서, 열별 기준으로, FPGA와 연관된 메모리에 기입할 수 있다. 구체적으로는, 데이터가 생성되어 연관된 메모리에 저장됨에 따라, 데이터는 사이클별로 조직될 수 있고, 여기서 데이터는 별개의 개별 파일들로서 저장된다. 이 데이터는 도 1a의 3-D 큐브에 의해 표현될 수 있다. 이 생성된 열 조직된 데이터는 그 후, 예를 들어, 진행 중에, 하드웨어 내로 큐잉 및/또는 스트리밍될 수 있는데 하드웨어에서는 전용 프로세싱 엔진들이 열 조직된 데이터를 큐잉(queue up)하고, 그 데이터를, 위에 본 명세서에 설명된 방식으로, 예컨대 3-D 타일 데이터를 2-D 행렬로 변환하는 것에 의해, 열별 사이클 순서 구성으로부터 행별 판독 순서 구성으로 전치시킬 것이고, 그에 의해 열 데이터는, 예를 들어, 판독별 기준으로 행 데이터로 재조직될 수 있다. 그 후, 이 전치된 데이터는 더 전략적인 순서로 메모리에 저장될 수 있다.
예를 들어, 호스트 소프트웨어는 입력 데이터를 칩, 예를 들어, FPGA와 연관된 메모리에, 예컨대 열별 입력 순서(column-wise input order)로 기입하도록 구성될 수 있고 마찬가지로 하드웨어는, 도 1f에 제시된 바와 같이, 전략적 방식으로 메모리 내로 판독되도록 하는 방식으로 데이터를 큐잉하도록 구성될 수 있다. 구체적으로는, 하드웨어는 레지스터들(8a)의 어레이를 포함할 수 있고, 그 안으로 예컨대 열로부터의 하나의 염기를 행들로 조직되는 레지스터들로 기입함으로써, 사이클 파일들이 개별 판독 데이터로 분산되고 재조직될 수 있다. 더 구체적으로는, 도 1g와 관련하여 알 수 있는 바와 같이, 전치 프로세싱 엔진(8)을 포함하는 하드웨어 디바이스(1)는 전치될 데이터를 큐잉할 수 있는 DRAM 포트(8a)를 포함할 수 있고, 여기서 포트는 외부 메모리(8c) 및/또는 복수의 레지스터와 연관되는 메모리 인터페이스(8b)에 동작가능하게 결합되고, 사이클당 증가된 양의 트랜잭션들을 핸들링하도록 구성되며, 큐잉된 데이터는 버스트들에서 전송된다.
특정하게는, 이 전치는 한 번에 하나의 데이터 세그먼트에 대해 행해질 수 있고, 예컨대 이 경우 메모리 액세스들은 DDR 전송 레이트의 최대 이점을 취하는 방식으로 큐잉된다. 예를 들어, DRAM과 관련하여, DDR의 최소 버스트 길이는 예를 들어 64 바이트일 수 있다. 따라서, 호스트 메모리에 저장된 열 배열된 데이터는 각각의 메모리 액세스로, 대응하는, 예를 들어, 64 바이트의 데이터에 상당하는 열이 획득되는 방식으로 액세스될 수 있다. 그러므로, 메모리의 하나의 액세스로, 예를 들어, 대응하는 "64" 사이클 또는 파일을 표현하는 타일의 일부분이 열별 기준으로 액세스될 수 있다.
그러나, 도 1f와 관련하여 알 수 있는 바와 같이, 비록 호스트 메모리 내의 데이터는 열 데이터로서 액세스되기는 하지만, 하드웨어로 전송될 때, 그것은 연관된 더 작은 메모리들, 예를 들어, 레지스터들에 상이한 순서로 업로드될 수 있고, 그에 의해, 데이터는, 예컨대 DDR의 최소 버스트 레이트에 따라, 바이트, 예를 들어, 64 바이트의 행별 판독 데이터로 변환되어, 액세스당 대응하는 "64"개의 메모리 유닛 또는 블록을 생성할 수 있다. 이는 도 1d의 가상 행렬에 의해 예시되어 있고, 여기서, 다수의 판독, 예를 들어, 64개의 판독이 블록 단위로 액세스되고, 도 1e에 의해 표현되는 바와 같이, 세그먼트 단위로 메모리 내로 판독되고, 예컨대 이 경우 각각의 레지스터, 또는 플립-플롭이 특정한 판독을 설명하여, 예를 들어, 64 사이클 x 64 판독 x 판독당 8 비트 = 32K개의 플립-플롭이 된다. 구체적으로는, 이는 하드웨어에서 다양한 상이한 방식들로 달성될 수 있고, 예컨대 이 경우 입력 배선이 열 순서화와 매칭하도록 조직되고, 출력 배선이 행 순서화와 매칭하도록 조직된다. 그러므로 이러한 구성에서, 하드웨어는 사이클당 "64"개의 상이한 어드레스에 판독 및/또는 기입 양쪽 모두를 행하도록 적응될 수 있다.
더 특정하게는, 하드웨어는, 판독의 각각의 염기가 단일 레지스터(또는 행 내의 다수의 레지스터들)에 기입되고 따라서 각각의 블록이 완료될 때, 새롭게 순서화된 행 데이터가 출력, 예를 들어, FASTQ 데이터로서 행별 조직으로 메모리에 전송되도록, 레지스터들의 어레이와 연관될 수 있다. 그 후, FASTQ 데이터는 추가 프로세싱을 위해, 2차 프로세싱 시스템의 하나 이상의 추가 프로세싱 엔진에 의해, 예컨대 본 명세서에 설명된 바와 같은, 매핑, 정렬, 및/또는 변이 추출 엔진에 의해 액세스될 수 있다. 유의해야 할 점은, 본 명세서에 설명된 바와 같이, 전치는 작은 블록 단위로 수행되지만, 시스템은 경우에 따라 더 큰 블록들의 프로세싱을 위해서도 적응될 수 있다는 점이다.
지적한 바와 같이, 일단 BCL 파일이 위에 설명된 바와 같이, FASTQ 파일로 변환되고/되거나, BCL 또는 FASTQ 파일이 2차 프로세싱 플랫폼에 의해 달리 수신되면, 수신된 데이터에 대해 매핑 연산이 수행될 수 있다. 매핑은, 일반적으로, 기준 게놈 내에서 매칭이 있는 모든 로케이션에 판독들을 플로팅하는 것을 수반한다. 예를 들어, 판독의 크기에 따라, 판독이 기준 게놈 내에서 대응하는 서열과 실질적으로 매칭하는 하나 또는 복수의 로케이션이 있을 수 있다. 그러므로, 본 명세서에 개시된 매핑 및/또는 다른 함수들은 하나 이상의 판독이 기준 게놈에서 매칭할 수 있는 모든 가능한 로케이션들 중에서 실제로 그것들이 매핑되는 진정한 로케이션이 어디인지를 결정하도록 구성될 수 있다.
예를 들어, 다양한 경우들에서, 기준 게놈의 인덱스가 생성되거나 또는 달리 제공되어, 판독들 또는 판독들의 부분들이 인덱스를 참조하여, 예를 들어 룩업 테이블(LUT) 내에서 검색될 수 있도록 하고, 그에 의해 기준 내의 로케이션들의 표시들을 검색하여, 기준에 판독들을 매핑할 수 있다. 그러한 기준의 인덱스는 다양한 형태들로 구성될 수 있으며 다양한 방식들로 쿼리될 수 있다. 일부 방법들에서, 인덱스는 프리픽스 및/또는 서픽스 트리(tree)를 포함할 수 있다. 특정한 방법들에서, 인덱스는 기준의 버로우즈/휠러 변환으로부터 유도될 수 있다. 그러므로, 대안적으로, 또는 프리픽스 또는 서픽스 트리를 이용하는 것에 추가하여, 버로우즈/휠러 변환이 데이터에 대해 수행될 수 있다. 예를 들어, 버로우즈/휠러 변환은 기준 게놈을 저장하기 위해 할당된 공간에서와 같이 콤팩트한 형식으로 프리픽스 및/또는 서픽스 트리와 추상적으로 동등한 트리-유사 데이터 구조를 저장하는 데 이용될 수 있다. 다양한 경우들에서, 저장된 데이터는 트리-유사 구조에 있지 않고, 오히려 기준 서열 데이터는 수반 알고리즘이 "트리"를 효과적으로 이동하기 위해 샘플 판독들에 관련하여 기준이 검색될 수 있게 하도록 매우 특정한 방식으로 그것을 변환하기 위해 상이한 순서로 스크램블링되었을 수 있는 선형 리스트에 있다.
추가적으로, 다양한 경우들에서, 인덱스는 하나 이상의 해시 테이블을 포함할 수 있고, 본 명세서에 개시된 방법들은, 판독들을 기준에, 예를 들어, 기준의 인덱스에 매핑하려는 노력으로 판독들의 하나 이상의 부분에 대해 수행될 수 있는 해시 함수를 포함할 수 있다. 예를 들어, 대안적으로, 또는 기준 게놈 및 피험자 서열 데이터에 대해 프리픽스/서픽스 트리 및/또는 버로우즈/휠러 변환 중 하나 또는 양쪽 모두를 활용하여, 하나가 다른 것에 대조하여 매핑되는 위치를 찾는 것에 추가하여, 다른 그러한 방법은 해시 테이블 인덱스의 생성 및/또는 해시 함수의 수행을 수반한다. 해시 테이블 인덱스는 그 후 판독의 하나 이상의 부분과 비교되어 하나가 다른 것과 매칭할 수 있는 위치를 결정할 수 있는 기준 게놈의 서열들로부터 구축된 큰 기준 구조일 수 있다. 마찬가지로, 해시 테이블 인덱스는 그 후 기준 게놈의 하나 이상의 서열과 비교되고 그에 의해 하나가 다른 것과 매칭할 수 있는 위치를 결정하는 데 이용될 수 있는 판독의 부분들로부터 구축될 수 있다.
해시 테이블의 구현은 패턴 매칭을 수행하기 위한 빠른 방법이다. 각각의 룩업은 수행하는데 거의 일정한 양의 시간이 소요된다. 그러한 방법은 매칭을 찾기 위해 쿼리마다 많은 프로브들(그 수는 고유 패턴을 찾는데 얼마나 많은 비트가 필요한지에 따라 달라질 수 있음)을 요구할 수 있는 버로우즈-휠러 방법, 또는 log2(N)개의 프로브를 취하는 이진 검색 방법과 대비될 수 있으며, 여기서 N은 테이블에서의 시드 패턴들의 수이다. 게다가, 비록 해시 함수가 기준 게놈을 임의의 주어진 길이, 예를 들어 28개의 염기 쌍의 시드들의 세그먼트들로 분해할 수 있고, 그 후 시드들을 디지털, 예를 들어, 56 비트의 이진 표현으로 변환할 수 있을지라도, 동시에 또는 동일한 방식으로 모든 56 비트를 전부 액세스할 필요는 없다. 예를 들어, 해시 함수는 각각의 시드에 대한 어드레스가 해시 테이블에 액세스하기 위해 초기 키 또는 어드레스로서 이용될 수 있는 약 28 내지 약 32 비트 또는 약 30 비트를 포함하여, 56 비트 미만의 수, 예컨대 약 18 내지 약 44 또는 46 비트, 예컨대 약 20 내지 약 40 비트, 예컨대 약 24 내지 약 36 비트에 의해 지정되는 방식으로 구현될 수 있다. 예를 들어, 특정 경우들에서, 약 26 내지 약 29 비트가 해시 테이블에 대한 1차 액세스 키로서 이용될 수 있으며, 약 27 내지 약 30 비트가 남게 되고, 이는 제1 키를 더블 체킹하기 위한 수단으로서 이용될 수 있으며, 예를 들어 제1 키와 제2 키가 양쪽 모두 해시 테이블의 동일한 셀에 도달하면, 상기 로케이션이 그들이 속한 위치라는 것이 비교적 명확하다.
예를 들어, 디지털 방식으로 표현된 시드의 제1 부분, 예를 들어 약 26 내지 약 32, 예컨대 약 29 비트가 1차 액세스 키를 형성하고 해싱될 수 있고 제1 단계에서 룩업될 수 있다. 그리고, 제2 단계에서, 나머지 약 27 내지 약 30 비트, 예를 들어, 2차 액세스 키가 해시 테이블 내로, 예컨대, 해시 체인에, 제1 패스를 확인하는 수단으로서 삽입될 수 있다. 따라서, 임의의 시드에 대해, 그것의 원래 어드레스 비트들은 제1 단계에서 해싱될 수 있고, 2차 어드레스 비트들은 제2 확인 단계에서 이용될 수 있다. 그러한 경우에, 시드들의 제1 부분은 1차 레코드 로케이션에 삽입될 수 있고, 제2 부분은 2차 레코드 체인 로케이션에서 테이블 내에 피팅될 수 있다. 그리고, 위에 지적한 바와 같이, 다양한 경우들에서, 이들 2개의 상이한 레코드 로케이션은 예컨대 체인 형식 레코드에 의해 위치적으로 분리될 수 있다.
특정한 경우들에서, 브루트 포스 선형 스캔(brute force linear scan)을 이용하여 기준을 판독, 또는 그의 부분들과 비교할 수 있다. 그러나, 브루트 포스 선형 검색을 이용하여 시드가 매칭하는 로케이션에 대한 기준 게놈을 스캐닝하면, 3십억 개가 넘은 로케이션들을 체크해야 할 수 있다. 그 검색은 본 명세서에 개시된 방법들에 따라, 소프트웨어 또는 하드웨어로 수행될 수 있다. 그럼에도 불구하고, 본 명세서에 설명된 바와 같이, 해싱 접근법을 사용함으로써, 각각의 시드 룩업은 대략 일정한 양의 시간으로 발생할 수 있다. 종종, 로케이션은 소수, 예를 들어, 단일의 액세스에서 확인될 수 있다. 그러나, 다수의 시드들이 테이블 내의 동일한 로케이션에 매핑되는, 예를 들어, 그들이 충분히 고유하지 않은 경우들에서, 현재 룩업되는 시드를 찾기 위해 소수의 추가적인 액세스들이 이루어질 수 있다. 그러므로, 비록 기준 게놈과 관련하여, 주어진 100개의 뉴클레오티드 길이 판독에 대해 매칭시킬 가능한 로케이션이 30M 또는 그 이상 있을지라도, 해시 테이블 및 해시 함수는 그 판독이 기준 게놈 내의 어디에서 나타날 것인지를 빠르게 결정할 수 있다. 따라서, 해시 테이블 인덱스를 사용함으로써, 판독 맵들 및 정렬들을 결정하기 위해, 예를 들어, 브루트 포스에 의해, 전체 기준 게놈을 검색할 필요가 없다.
위 내용을 고려하여, 임의의 적합한 해시 함수가 이들 목적들을 위해 이용될 수 있지만, 다양한 경우들에서, 각각의 시드에 대한 테이블 어드레스를 결정하는 데 사용되는 해시 함수는, 위에 지적한 바와 같이 2k-비트 프리미티브 다항식에 기초할 수 있는 순환 중복 검사(CRC)일 수 있다. 대안적으로, 예컨대 2k 비트들 중 일부를 단순히 드롭함으로써, 사소한 해시 함수 매핑기가 이용될 수 있다. 그러나, 다양한 경우들에서, CRC는 동시에 테이블 혼잡을 피하면서 유사한 시드들을 더 잘 분리할 수 있는 더 강한 해시 함수일 수 있다. 이는 특히 예컨대 본 명세서에 설명된 전용 하드웨어로 CRC들을 계산할 때 속도 페널티가 없는 경우에 유익할 수 있다. 그러한 경우들에서, 각각의 시드에 대해 채워진 해시 레코드는 시드가 발생했던 기준 위치, 및 해싱 전에 역 상보화되었는지를 나타내는 플래그를 포함할 수 있다.
매핑 함수의 수행으로부터 반환된 출력은 하나 이상의 기준 게놈에 하나 이상의, 예를 들어, 각각의 판독이 매핑되는 위치에 대한 가능성들의 리스트일 수 있다.
예를 들어, 각각의 매핑된 판독에 대한 출력은 판독이 기준 게놈에서 매칭하는 서열에 매핑될 수 있는 가능한 로케이션들의 리스트일 수 있다. 다양한 실시예들에서, 판독의 전부는 아니더라도 판독의 적어도 한 조각, 예를 들어 판독의 시드에 대한 기준에의 정확한 매칭이 추구될 수 있다. 따라서, 다양한 경우들에서, 모든 판독들의 모든 부분들이 기준 게놈의 모든 부분들과 정확히 매칭할 필요는 없다.
본 명세서에 설명된 바와 같이, 이들 연산 모두는 소프트웨어를 통해 또는 예를 들어 회로 보드의 일부로서, 예컨대 칩 상에, 예컨대 집적 회로에 하드와이어드됨으로써 수행될 수 있다. 예를 들어, 이들 알고리즘 중 하나 이상의 기능은 칩 상에, 예컨대 FPGA(필드 프로그래머블 게이트 어레이) 또는 ASIC(애플리케이션 특정 집적 회로) 칩 내로 내장될 수 있으며, 그것들이 그러한 하드웨어로 구현되기 때문에 더 효율적으로 수행되도록 최적화될 수 있다. 추가적으로, 이들 매핑 함수들 중 하나 이상, 예를 들어 2개 또는 3개 모두는 매핑 모듈과 같은 모듈을 형성할 수 있으며, 이 모듈은 시스템, 예를 들어 파이프라인의 일부를 형성할 수 있으며, 이는 개인의 실제 전체 게놈 서열 또는 그의 일부분을 결정하기 위한 프로세스에서 이용된다.
하드웨어로 해시 모듈을 구현하는 것의 이점은 프로세스가 가속될 수 있고 따라서 훨씬 더 빠른 방식으로 수행될 수 있다는 것이다. 예를 들어, 소프트웨어가 이들 다양한 함수 중 하나 이상을 수행하기 위한 다양한 명령어들을 포함할 수 있는 경우, 그러한 명령어들의 구현은 종종 예컨대 실행 전에 데이터 및 명령어들이 저장 및/또는 페칭 및/또는 판독 및/또는 해석될 것을 요구한다. 그러나, 위에 지적한, 그리고 본 명세서에 더 상세히 설명된 바와 같이, 칩은 명령어들의 시퀀스 중 하나 이상을 페칭하고, 해석하고/하거나 수행할 필요없이 이들 함수를 수행하도록 하드와이어드될 수 있다. 오히려, 칩은 그러한 함수들을 직접 수행하도록 와이어링될 수도 있다. 따라서, 다양한 양태들에서, 본 개시내용은 위에 설명된 매핑, 예를 들어, 해싱 모듈의 부분들 또는 전부가 FPGA 또는 ASIC와 같은 칩 상에 하드와이어드된 집적 회로들과 같은 하나 이상의 네트워크 회로에 의해 구현될 수 있도록 구성될 수 있는 커스텀 하드와이어드 머신에 관한 것이다.
예를 들어, 다양한 경우들에서, 해시 테이블 인덱스가 구성될 수 있고, 해시 함수가 칩 상에서 수행될 수 있고, 다른 경우들에서, 해시 테이블 인덱스는 칩을 벗어나서, 예컨대 호스트 CPU에 의해 실행되는 소프트웨어를 통해 생성될 수 있지만, 일단 생성되면, 하드웨어 상에 로딩되거나 그에 의해 달리 액세스 가능하게 되거나, 예컨대 해시 모듈을 실행할 때 칩에 의해 이용된다. 특정하게는, 다양한 경우들에서, FPGA와 같은 칩은, 예컨대 낮은 레이턴시 인터커넥트, 예컨대 QPI 인터커넥트에 의해, 호스트 CPU에 타이트하게 결합되도록 구성될 수 있다. 더 특정하게는, 칩 및 CPU는 아래에 더 상세히 설명된 바와 같이, 하나 이상의 메모리 리소스, 예를 들어, DRAM을 캐시 일관성 있는 구성으로 공유하는 방식으로 함께 타이트하게 결합되도록 구성될 수 있다. 그러한 경우에, 호스트 메모리는, 호스트 메모리에 저장될 수 있지만, 예컨대 해시 또는 다른 매핑 함수의 수행에서의 그것의 사용을 위해 FPGA에 의해 용이하게 액세스 가능하게 될 수 있는 기준 인덱스, 예를 들어, 해시 테이블을 구축 및/또는 포함할 수 있다. 특정한 실시예들에서, CPU 및 FPGA 중 하나 또는 양쪽 모두는 하나 이상의 캐시 또는 레지스터를 포함할 수 있으며, 이들은 하나의 캐시 내의 저장된 데이터가 다른 캐시에 의해 실질적으로 미러링될 수 있도록 일관성 있는 구성에 있도록 함께 결합될 수 있다.
따라서, 위 내용을 고려하여, 런-타임에서, 예를 들어, 기준 게놈의 인덱스, 또는 구성된 또는 구성될 해시 테이블을 포함하는 하나 이상의 이전에 구성된 해시 테이블이 온보드 메모리에 로딩될 수 있거나, 적어도 아래에 본 명세서에 더 상세히 설명된 바와 같이, 그의 호스트 애플리케이션에 의해 액세스 가능하게 될 수 있다. 그러한 경우에, 예를 들어, FASTQ 파일 형식으로 저장된 판독들이, 예컨대 매핑 및/또는 정렬 및/또는 소팅 엔진에 의한 사용을 위해, 온보드 프로세싱 엔진들에, 예를 들어, 메모리 또는 캐시 또는 그와 연관된 다른 레지스터에 호스트 애플리케이션에 의해 전송될 수 있으며, 예컨대 이 경우 그의 결과들이 전송되어 변이 추출 함수를 수행하기 위해 사용될 수 있다. 그에 대하여, 위에 지적한 바와 같이, 다양한 경우들에서, 중첩하는 시드들의 파일업이, 예를 들어, 시드 생성 함수를 통해 생성될 수 있고, 서열 분석된 판독들 또는 판독 쌍들로부터 추출될 수 있고, 일단 생성되면, 시드들을, 예컨대 인덱스에 대조하여 해싱하고, 해시 테이블에서 룩업하여, 기준에서 후보 판독 매핑 위치들을 결정할 수 있다.
더 특정하게는, 다양한 경우들에서, 매핑 모듈이 제공될 수 있고, 예컨대 이 경우 매핑 모듈은 예컨대 하드와이어드 구성으로, 하나 이상의 매핑 함수를 수행하도록 구성된다. 구체적으로는, 하드와이어드 매핑 모듈은 전형적으로 프리픽스 및/또는 서픽스 트리를 생성하는 소프트웨어 기반 알고리즘, 버로우즈-휠러 변환으로 구현되는 함수들과 같은, CPU 상에서 실행되는 하나 이상의 알고리즘에 의해 전형적으로 수행되는 하나 이상의 함수를 수행하도록 구성될 수 있고, 해시 함수, 예를 들어, 예컨대 기준, 예를 들어, 기준 게놈 서열의 해시 테이블 인덱싱을 이용하거나 그에 달리 의존하는 해시 함수를 실행한다. 그러한 경우들에서, 해시 함수는, 예를 들어, 칩 아키텍처 내의 공간에 의해 기본적으로 제약될 수 있는, 온-보드의 유틸리티를 최대화하도록 그렇게 하여 수행되는 메모리 액세스들의 수, 예를 들어, 대규모 랜덤 액세스들을 최소화하도록 구성될 수 있는 최적화된 매핑 전략과 같은 전략을 구현하도록 구성될 수 있다.
게다가, 특정 경우들에서, 시스템을 더 효율적으로 만들기 위해, 호스트 CPU/GPU/QPU는, 집적 회로의 프로세싱 엔진들이 호스트 메모리 메모리에 대한 준비된 액세스를 할 수 있도록 하기 위해, 예컨대, 낮은 레이턴시 인터페이스, 예를 들어, 퀵 패스 인터커넥트(QPI)에 의해, 연관된 하드웨어, 예를 들어, FPGA에 타이트하게 결합될 수 있다. 특정한 경우들에서, 호스트 CPU와 결합된 칩과 그들 각각의 연관된 메모리들, 예를 들어, 하나 이상의 DRAM 사이의 상호작용은 캐시 일관성 있도록 구성될 수 있다. 그러므로, 다양한 실시예들에서, 집적 회로가 제공될 수 있는데, 이 집적 회로는 예를 들어, 하나 또는 복수의 물리적 전기적 인터커넥트에 의해 상호접속될 수 있는 와이어드 구성에 있을 수 있는 하나 이상의 디지털 로직 회로를 포함하는 방식으로 미리 구성되고, 예를 들어, 프리와이어드되고, 다양한 실시예들에서, 하드와이어드 디지털 로직 회로들은 매핑 모듈과 같은 하나 이상의 모듈을 형성하도록 하나 이상의 프로세싱 엔진 내에 배열될 수 있다.
따라서, 다양한 경우들에서, 매핑 모듈이, 예컨대 제1 미리 구성된 와이어드, 예를 들어 하드와이어드 구성으로 제공될 수 있고, 이 매핑 모듈이 다양한 매핑 함수들을 수행하도록 구성된다. 예를 들어, 매핑 모듈은, 예를 들어, 프로세스 인터커넥트, 예를 들어, 퀵 패스 인터커넥트 등과 같은 메모리 인터페이스를 통해, 메모리 또는 그와 연관된 캐시로부터, 하나 이상의 유전 기준 서열의 인덱스, 및/또는 유전 기준 서열, 및/또는 피험자의 서열 분석된 유전 샘플로부터 유도된 복수의 판독에서의 뉴클레오티드들의 서열의 적어도 일부에 액세스하도록 구성될 수 있다. 매핑 모듈은 또한, 예컨대 인덱스에 기초하여, 하나 이상의 유전 기준 서열의 하나 이상의 세그먼트에 판독을 매핑하도록 구성될 수 있다. 예를 들어, 다양한 특정한 실시예들에서, 본 명세서에서 제시된 매핑 알고리즘 및/또는 모듈은 해시 테이블을 구축하거나, 달리 구성하기 위해 이용될 수 있고 그에 의해 피험자로부터의 서열 분석된 유전 물질의 판독, 또는 그의 일부분을 기준 게놈의 하나 이상의 세그먼트와 비교하여, 매핑된 판독들을 생성할 수 있다. 그러한 경우에, 일단 매핑이 수행되면, 정렬이 수행될 수 있다.
예를 들어, 기준 게놈에 대조하여 시드들에 대해 모든 가능한 매칭들이 어디 있는지가 결정된 후에, 주어진 판독이 매칭할 수 있는 모든 가능한 로케이션들 중 어느 것이 사실상 그것이 정렬되는 정확한 위치인지가 결정되어야 한다. 그러므로, 매핑 후에 하나 이상의 판독이 기준 게놈에서 매칭하는 것으로 보이는 다수의 위치들이 있을 수 있다. 결과적으로, 정확히 동일한 것을 나타내는 것으로 보이는 복수의 시드가 있을 수 있으며, 예를 들어, 그것들은 판독에서의 시드 위치를 고려하면 기준 상의 정확히 동일한 위치에 매칭할 수 있다. 따라서, 실제 정렬은 각각의 주어진 판독에 대해 결정되어야 한다. 이 결정은 여러 상이한 방식들로 이루어질 수 있다.
하나의 경우에서, 모든 판독들을 평가하여, 매핑, 예를 들어, 해시 룩업 프로세스 동안 위치 정보를 반환한 판독으로부터 모든 시드에 의해 표시된 위치들에 기초하여 기준 게놈에 대한 그들의 정확한 정렬을 결정할 수 있다. 그러나, 다양한 경우들에서, 정렬을 수행하기 전에, 시드 체인 필터링 함수가 그 시드들 중 하나 이상에 대해 수행될 수 있다. 예를 들어, 특정한 경우들에서, 기준 게놈에 대조하여 동일한 일반 장소에 매핑하는 것으로 보이는 주어진 판독과 연관된 시드들은 동일한 일반 영역을 참조하는 단일 체인으로 집성될 수 있다. 하나의 판독과 연관된 모든 시드들은 각각의 시드가 하나의 체인만의 멤버가 되도록 하나 이상의 시드 체인으로 그룹화될 수 있다. 그 후, 판독이 기준 게놈 내의 각각의 표시된 위치에 정렬되게 하는 것은 그러한 체인(들)이다.
구체적으로는, 다양한 경우들에서, 그것들 모두가 기준에서 동일한 일반 로케이션(들)에 속한다는 것을 나타내는 동일한 지원 증거를 가진 모든 시드들을 함께 수집하여 하나 이상의 체인을 형성할 수 있다. 따라서, 함께 그룹화되거나, 적어도 그것들이 기준 게놈에서, 예를 들어, 특정한 밴드 내에서 서로 가까이 있을 것으로 보이는 시드들은 시드들의 체인으로 그룹화될 것이며, 이 밴드 외부에 있는 것들은 상이한 시드들의 체인으로 만들어질 것이다. 일단 이들 다양한 시드가 하나 이상의 다양한 시드 체인으로 집성되면, 체인들 중 어떤 것이 실제로 정렬될 정확한 체인을 표현하는지를 결정할 수 있다. 이는 적어도 부분적으로는, 정확한 것이 아닐 가능성이 높은 약한 시드 체인들을 제거하도록 설계된 휴리스틱인 필터링 알고리즘을 이용하여 행해질 수 있다.
이들 매핑, 필터링, 및/또는 편집 함수들 중 하나 이상을 수행하는 것으로부터의 결과는 각각의 판독에 대해 그 판독이 기준 게놈과 매칭될 수 있는 모든 가능한 로케이션들의 리스트를 포함하는 판독들의 리스트이다. 그러므로, 서열분석기로부터 획득되는 이미지 파일, BCL 파일, 및/또는 FASTQ 파일의 판독들이 기준 게놈에 매핑되는 위치, 예를 들어 전체 게놈에서 다양한 판독들이 매핑되는 위치를 빠르게 결정하도록 매핑 함수가 수행될 수 있다. 그러나, 판독들 중 임의의 것에서 오류 또는 유전 변형이 발생하면, 기준과의 정확한 매칭을 얻을 수 없고/없거나 하나 이상의 판독이 매칭하는 것으로 보이는 여러 장소가 있을 수 있다. 따라서, 다양한 판독들이 게놈 전체에 대해 실제로 정렬되는 위치를 결정해야 한다.
따라서, 매핑 및/또는 필터링 및/또는 편집 후에, 많은 수의 판독들에 대한 로케이션 위치들이 결정되고, 개별 판독들의 일부에 대해 다수의 로케이션 위치들이 결정되면, 이제는 모든 가능한 로케이션들 중 어느 것이 사실상 다양한 판독들이 정렬되는 진정한 또는 가장 가능성이 있는 위치인지를 결정할 필요가 있다. 그러한 정렬은 매핑된 판독들을 기준 게놈에 매칭시키고 그에 대해 정렬 함수를 실행하는 동적 프로그래밍 알고리즘과 같은 하나 이상의 알고리즘에 의해 수행될 수 있다. 예시적인 정렬 함수는 하나 이상, 예를 들어 모든 판독들을 기준과 비교하는데, 예컨대 이들을 서로 그래픽 관계로, 예를 들어 테이블, 예를 들어, 가상 어레이 또는 행렬에서와 같이 배치함으로써 그렇게 하고, 여기서 기준 게놈 또는 매핑된 판독들 중 하나의 서열은 하나의 차원 또는 축, 예를 들어 수평 축 상에 배치되고, 다른 하나는 반대 차원들 또는 축, 예컨대 수직 축 상에 배치된다. 그 후, 어레이를 통해 개념적 스코어링 파면(scoring wave front)을 통과시켜, 예컨대 행렬의 각각의 셀에 대한 정렬 스코어들을 계산함으로써 기준 게놈과의 판독들의 정렬을 결정한다.
스코어링 파면은 스미스-워터만 및/또는 니들만-분쉬 및/또는 관련 알고리즘들과 같은 정렬 알고리즘에서 적용가능한 동적 프로그래밍의 규칙들에 따라 독립적으로 및/또는 동시에 스코어링될 수 있는 행렬의 하나 이상의, 예를 들어 모든 셀들, 또는 그 셀들의 일부분을 표현한다. 정렬 스코어들은 예컨대 좌측에서 우측으로 상단 행에 있는 모든 스코어들을 계산한 다음, 이어서 좌측에서 우측으로 다음 행에 있는 모든 스코어들을 계산하는 등에 의해 순차적으로 또는 다른 순서들로 계산될 수 있다. 이러한 방식으로, 대각선 방향으로 스위핑하는 대각선 파면은 일련의 파면 스텝들에서 동시에 또는 병렬적으로 계산된 스코어들의 배치(batch)들의 최적 서열을 표현한다.
예를 들어, 일 실시예에서, 판독이 매핑된 세그먼트를 포함하는 기준 게놈의 윈도우가 수평 축 상에 배치될 수 있고, 판독은 수직 축 상에 위치될 수 있다. 이와 같은 방식으로, 어레이 또는 행렬, 예를 들어 가상 행렬이 생성되고, 그에 의해 판독의 각각의 위치에서의 뉴클레오티드는 기준 윈도우 내의 각각의 위치에서의 뉴클레오티드와 비교될 수 있다. 파면이 어레이를 통해 통과함에 따라, 판독을 기준 윈도우에 정렬시키는 잠재적인 모든 방식들이 고려되며, 이는 그 판독을 기준 서열과 매칭시키기 위해 하나의 서열에 대한 변경들이 요구되는 경우, 예컨대 판독의 하나 이상의 뉴클레오티드를 다른 뉴클레오티드들로 변경하거나, 또는 하나 이상의 새로운 뉴클레오티드를 하나의 서열에 삽입하거나, 또는 하나의 서열로부터 하나 이상의 뉴클레오티드를 결실하는 것을 포함한다.
정확한 정렬을 달성하기 위해 요구될 수 있는 변경들의 범위를 표현하는 정렬 스코어가 생성되며, 이 스코어 및/또는 다른 연관된 데이터가 어레이의 주어진 셀들에 저장될 수 있다. 어레이의 각각의 셀은 판독 축 상의 그의 위치에서의 뉴클레오티드가 기준 축 상의 그의 위치에서의 뉴클레오티드와 정렬될 가능성에 대응하고, 각각의 셀에 대해 생성된 스코어는 판독 및 기준 윈도우에서의 셀의 위치들로 종단하는 부분 정렬을 표현한다. 임의의 셀에서 생성된 최고 스코어는 기준 윈도우에 대한 판독의 최상의 전체 정렬을 표현한다. 다양한 경우들에서, 정렬은, 예컨대 니들만-분쉬 또는 유사한 알고리즘을 이용하여 전체 판독이 기준 윈도우의 일부 부분에 정렬되어야 하는, 글로벌(global)일 수 있거나; 또는 다른 경우들에서, 정렬은, 예컨대 스미스-워터만 또는 유사한 알고리즘을 이용하여 판독의 일부분만이 기준 윈도우의 일부분에 정렬될 수 있는, 로컬(local)일 수 있다.
따라서, 다양한 경우들에서, 정렬 함수는 예컨대 매핑 모듈로부터 획득된 데이터에 대해 수행될 수 있다. 그러므로, 다양한 경우들에서, 정렬 함수는, 개인의 실제 전체 게놈 서열 또는 그의 일부분을 결정하기 위한 프로세스에서 예컨대 매핑 모듈과 추가로 이용되는 시스템, 예컨대 파이프라인의 일부를 형성할 수 있는, 정렬 모듈과 같은 모듈을 형성할 수 있다. 예를 들어, 매핑 모듈로부터와 같이 매핑 함수의 수행으로부터 반환된 출력, 예를 들어 모든 판독들 또는 그 중 하나 이상이 하나 이상의 기준 게놈에서의 하나 이상의 위치에 매핑되는 곳에 관한 가능성들의 리스트는 정렬 함수에 의해 피험자의 서열 분석된 DNA의 실제 서열 정렬을 결정하기 위해 이용될 수 있다.
그러한 정렬 함수가 때때로 유용할 수 있는 것은, 위에 설명된 바와 같이, 종종, 다양한 상이한 이유들로 인해, 서열 분석된 판독들이 항상 기준 게놈과 정확하게 매칭하는 것은 아니기 때문이다. 예를 들어, 판독들 중 하나 이상에 SNP(단일 뉴클레오티드 다형성), 예를 들어 단일 위치에서 하나의 뉴클레오티드가 다른 것을 치환하는 것이 있을 수 있고; 판독 서열들 중 하나 이상을 따라 하나 이상의 염기의 "삽입결실(indel)", 삽입 또는 결실이 있을 수 있고 - 그 삽입 또는 결실이 기준 게놈에는 존재하지 않음 -; 및/또는 이들 겉보기 변형들 중 하나 이상을 야기하는 서열분석 오류(예를 들어, 샘플 준비 및/또는 서열분석기 판독 및/또는 서열분석기 출력 등에서의 오류들)가 있을 수 있다. 따라서, 예컨대 SNP 또는 삽입결실에 의해 판독이 기준으로부터 달라질 때, 이는 기준이 샘플링된 진정한 DNA 서열과 상이하기 때문일 수 있거나, 판독이 샘플링된 진정한 DNA 서열과 상이하기 때문일 수 있다.
문제는 모든 우도에서 2개의 서열이 다수의 상이한 방식으로 서로 달라질 것이라는 사실을 고려하여 판독들을 기준 게놈에 올바르게 정렬시키는 방법을 알아내는 것이다.
다양한 경우들에서, 예컨대 프리픽스/서픽스 트리 또는 버로우즈/휠러 변환, 또는 해시 테이블 및/또는 해시 함수와 같은 매핑 함수로부터의 정렬 함수에 대한 입력은 하나 이상의 판독이 하나 이상의 기준 서열의 하나 이상의 위치에 매칭할 수 있는 가능성들의 리스트일 수 있다. 예를 들어, 임의의 주어진 판독에 대해, 이는 주어진 판독이 게놈에서 매핑되는, 예컨대 1개의 로케이션 또는 16개, 또는 32개, 또는 64개, 또는 100개, 또는 500개 또는 1,000개 이상의 로케이션에서, 기준 게놈 내의 임의의 수의 위치들과 매칭할 수 있다. 그러나, 임의의 개별 판독은 게놈의 단지 하나의 특정 부분으로부터 유도, 예를 들어 서열 분석되었다. 그러므로, 주어진 특정한 판독이 유도된 곳으로부터 진정한 로케이션을 찾기 위해, 정렬 함수, 예를 들어, 스미스-워터만 갭이 있는 또는 갭이 없는 정렬, 니들만-분쉬 정렬 등을 수행하여, 예컨대 매칭이 발생하는 가능한 위치들 모두를 비교하고, 어느 로케이션의 정렬 스코어가 가장 큰지에 기초하여 모든 가능성들 중 어느 것이 판독이 서열 분석된 게놈에서의 가장 가능성이 있는 로케이션인지를 결정함으로써 게놈에서 판독들 중 하나 이상이 실제로 유도된 위치를 결정할 수 있다.
지적한 바와 같이, 전형적으로, 알고리즘을 이용하여 그러한 정렬 함수를 수행한다. 예를 들어, 스미스-워터만 및/또는 니들만-분쉬 정렬 알고리즘을 이용하여 2개 이상의 서열을 서로 대조하여 정렬시킬 수 있다. 이 경우에, 그것들은 판독이 기준 게놈에 매핑되는 임의의 주어진 위치에 대해 매핑이 사실상 판독이 유래된 곳으로부터의 위치일 확률들을 결정하는 방식으로 이용될 수 있다. 전형적으로 이들 알고리즘은 소프트웨어에 의해 수행되도록 구성되지만, 본 명세서에서 제시된 바와 같은 다양한 경우들에서, 이들 알고리즘 중 하나 이상은 아래에 본 명세서에 더 상세히 설명된 바와 같이, 하드웨어로 실행되도록 구성될 수 있다.
특히, 정렬 함수는 하나 이상의 미스매칭 부분, 예를 들어, SNP들, 삽입들, 결실들, 구조적 아티팩트들 등의 존재에도 불구하고, 적어도 부분적으로, 판독들의 하나 이상, 예를 들어, 모두를 기준 게놈에 정렬시켜 판독들이 게놈에서 올바르게 피팅될 가능성이 있는 곳을 결정하도록 동작한다. 예를 들어, 치환들 및/또는 삽입결실들 및/또는 구조적 변이들을 고려하면서, 하나 이상의 판독이 기준 게놈과 대조하여 비교되고, 게놈에 대조하여 판독에 대한 최상의 가능한 피팅이 결정된다. 그러나, 판독의 수정된 버전들 중 어떤 것이 기준 게놈에 대조하여 최상으로 피팅되는지를 더 잘 결정하기 위해, 제안된 변경들을 고려해야 하며, 이에 따라 스코어링 함수가 또한 수행될 수 있다.
예를 들어, 스코어링 함수는 예를 들어 전체 정렬 함수의 일부로서 수행될 수 있으며, 그에 의해 정렬 모듈이 그의 함수를 수행하고, 하나 이상의 변경을 다른 것과 비교되는 서열에 도입하여, 예를 들어, 둘 사이의 더 나은 또는 최상의 피팅을 달성함에 따라, 더 나은 정렬을 달성하기 위해 이루어지는 각각의 변경에 대해, 정렬이 수행됨에 따라 정렬에 대한 스코어도 결정되는, 예컨대 매칭하는 것들이 검출되는 경우 스코어가 증가되고, 도입된 각각의 변경에 대해 페널티가 발생되는 방식으로, 시작 스코어, 예를 들어 완벽한 스코어 또는 제로 시작 스코어 중 어느 하나로부터 수가 감해지고, 따라서, 가능한 정렬들에 대한 최상의 피팅은, 예를 들어, 모든 가능한 수정된 판독들 중 어떤 것이 최고 스코어를 가진 게놈에 피팅하는지를 알아냄으로써 결정될 수 있다. 따라서, 다양한 경우들에서, 정렬 함수는 최고 스코어링 정렬을 달성하기 위해 판독(들)에 대해 행해질 필요가 있는 변경들의 최상의 조합을 결정하도록 구성될 수 있으며, 그 정렬은 그 후 정확한 또는 가장 가능성이 있는 정렬인 것으로 결정될 수 있다.
따라서, 위 내용을 고려하여, 정렬 함수를 수행함으로써 달성될 수 있는 적어도 2개의 목표가 존재할 수 있다. 하나는 기준 게놈 내의 위치와, 그 위치에서 판독을 기준 세그먼트에 매칭시키는 데 필요한 변경들이 무엇인지에 대한 설명을 포함하는 최상의 정렬의 보고이며, 다른 하나는 정렬 품질 스코어이다. 예를 들어, 다양한 경우들에서, 정렬 모듈로부터의 출력은 콤팩트한 특이 갭이 있는 정렬 보고(Compact Idiosyncratic Gapped Alignment Report), 예를 들어 CIGAR 스트링일 수 있으며, CIGAR 스트링 출력은 그들의 최상의 피팅 정렬을 달성하기 위해 판독들에 대해 수행된 모든 변경들을 상세히 기술하는 보고, 예를 들어 쿼리가 실제로 기준과 정렬되는 방법을 나타내는 상세히 기술된 정렬 명령어들이다. 그러한 CIGAR 스트링 판독은, 주어진 피험자의 게놈 뉴클레오티드 서열에 대해, 기준 게놈과 대조하여 비교하여 예측된 변형들이 단지 머신, 소프트웨어, 또는 인간의 오류에 기인하는 것이 아니라 사실상 진정한 변형들임을 더 잘 결정하기 위해 프로세싱의 추가 스테이지들에서 유용할 수 있다.
위에 설명된 바와 같이, 다양한 실시예들에서, 정렬은 전형적으로 순차적인 방식으로 수행되며, 알고리즘 및/또는 펌웨어는 예컨대 매핑 모듈로부터, 판독, 및 판독이 잠재적으로 하나 이상의 기준 게놈에 매핑될 수 있는 하나 이상의 가능한 로케이션에 관한 판독 서열 데이터를 수신하고, 예컨대 하나 이상의 메모리, 예컨대 연관된 DRAM들로부터, 판독이 매핑될 수 있는 하나 이상의 기준 게놈 내의 하나 이상의 위치에 관한 게놈 서열 데이터를 추가로 수신한다.
특히, 다양한 실시예들에서, 매핑 모듈은 예컨대 FASTQ 파일로부터의 판독들을 프로세싱하고, 이들 각각을 그들이 가능하게 정렬될 수 있는 기준 게놈 내의 하나 이상의 위치에 매핑한다. 그 후, 정렬기는 이들 예측된 위치를 취하고 그것들을 이용하여 예컨대 판독들이 기준 게놈과 비교될 수 있는 가상 어레이를 구축함으로써 그 판독들을 기준 게놈에 정렬시킨다.
이 함수를 수행함에 있어서, 정렬기는 각각의 개별 판독에 대해 각각의 매핑된 위치를 평가하고, 특히 기준 게놈 내의 다수의 가능한 위치들에 매핑되는 그들 판독을 평가하고, 각각의 위치가 정확한 위치일 가능성을 스코어링한다. 그것은 그 후 최상의 스코어들, 예를 들어 2개의 최상의 스코어를 비교하고, 특정한 판독이 실제로 어디에 정렬되는지에 대해 결정한다. 예를 들어, 제1 및 제2의 최상의 정렬 스코어들을 비교할 때, 정렬기는 스코어들 사이의 차이를 검토하고, 이들 사이의 차이가 큰 경우, 더 큰 스코어를 가진 것이 정확한 신뢰도 스코어가 높을 것이다. 그러나, 이들 사이의 차이가 작은, 예를 들어 제로인 경우, 2개의 위치 중 어느 것으로부터 실제로 판독이 유도되었는지를 알릴 수 있는 데 있어 신뢰도 스코어는 낮고, 더 많은 프로세싱이 기준 게놈에서 판독이 유도된 진정한 로케이션을 명확하게 결정할 수 있는 데는 더 많은 프로세싱이 유용할 수 있다.
그러므로, 정렬기는 부분적으로 주어진 판독이 기준 게놈 내의 주어진 로케이션에 매핑되는 그의 추출을 만들 때 제1과 제2의 최상의 신뢰도 스코어들 사이의 가장 큰 차이를 찾고 있다. 이상적으로, 정렬의 최상의 가능한 선택의 스코어는 그 서열에 대해 제2의 최상의 정렬에 대한 스코어보다 현저히 더 크다. 정렬 스코어링 방법이 구현될 수 있는 많은 상이한 방식들이 존재하는데, 예를 들어, 예컨대 본 명세서에 개시된 방법들에 따라, 어레이의 각각의 셀이 스코어링될 수 있거나, 또는 셀들의 서브-부분이 스코어링될 수 있다. 다양한 경우들에서, 뉴클레오티드 매칭들, 뉴클레오티드 미스매칭들, 삽입들, 및 결실들에 대한 스코어링 파라미터들은 임의의 다양한 양 또는 음 또는 제로 값들을 가질 수 있다. 다양한 경우들에서, 이들 스코어링 파라미터는 이용가능한 정보에 기초하여 수정될 수 있다. 예를 들어, 뉴클레오티드 매칭 스코어들, 뉴클레오티드 미스매칭 스코어들, 갭(삽입 및/또는 결실) 페널티들, 갭 개방 페널티들, 및/또는 갭 확장 페널티들 중 임의의 것 또는 모두를 포함하는 스코어링 파라미터들이 현재의 판독 뉴클레오티드 또는 위치와 연관된 염기 품질 스코어에 따라 달라지게 함으로써 정확한 정렬들을 달성할 수 있다. 예를 들어, 염기 품질 스코어가 서열 분석 또는 다른 오류가 존재할 높은 확률을 나타내는 경우 스코어 보너스들 및/또는 페널티들을 더 작게 만들 수 있다. 염기 품질에 민감한 스코어링은 예를 들어, 대응하는 스코어링 파라미터들을 반환하는, 염기 품질 스코어를 이용하여 액세스되는, 고정된 또는 구성가능한 룩업 테이블을 이용하여 구현될 수 있다.
FPGA 또는 ASIC와 같은 집적 회로의 하드웨어 구현에서, 스코어링 파면은 16개 셀, 또는 32개 셀, 또는 64개 셀, 또는 128개 셀 등과 같은 스코어링 셀들의 선형 어레이로서 구현될 수 있다. 스코어링 셀들 각각은 정렬 스코어들을 계산하기 위해 와이어드 구성에서 디지털 로직 요소들로 구축될 수 있다. 그러므로, 파면의 각각의 단계, 예를 들어 각각의 클록 사이클, 또는 일부 다른 고정된 또는 가변적인 시간 유닛에 대해, 스코어링 셀들 각각, 또는 셀들의 일부분은 가상 정렬 행렬에서 새로운 셀에 요구되는 스코어 또는 스코어들을 계산한다. 개념적으로, 다양한 스코어링 셀들은 예를 들어 행렬의 좌측 하단에서 우측 상단으로 연장되는 직선을 따라 본 명세서에 논의된 바와 같은 스코어링 파면에 대응하는, 정렬 행렬 내의 다양한 위치들에 있는 것으로 고려된다. 디지털 로직 설계의 분야에서 잘 이해되는 바와 같이, 물리적 스코어링 셀들 및 그들에 포함된 디지털 로직은 집적 회로 상에 유사한 방식으로 물리적으로 배열될 필요는 없다.
따라서, 파면이 가상 정렬 행렬을 스위핑하는 단계들을 취함에 따라, 스코어링 셀들의 개념적 위치들은 각각의 셀을 대응하여 업데이트하고, 예를 들어 개념적으로 우측으로 한 스텝 "이동"하거나, 예를 들어 정렬 행렬에서 아래쪽으로 한 스텝 이동한다. 모든 스코어링 셀들은 동일한 상대 개념 움직임을 하며, 대각선 파면 배열을 온전히 유지한다. 파면이 예를 들어 행렬에서 수직 아래쪽 스텝, 또는 수평 우측 스텝으로, 새로운 위치로 이동할 때마다, 스코어링 셀들은 새로운 개념 위치들에 도달하고, 그들이 진입한 가상 정렬 행렬 셀들에 대한 정렬 스코어들을 계산한다. 그러한 구현에서, 선형 어레이에서의 이웃 스코어링 셀들은 쿼리(판독) 뉴클레오티드들, 기준 뉴클레오티드들, 및 이전에 계산된 정렬 스코어들을 전달하도록 결합된다. 기준 윈도우의 뉴클레오티드들은 파면의 한쪽 말단, 예를 들어 선형 어레이의 우측 상단 스코어링 셀에 순차적으로 공급될 수 있고, 그곳으로부터 파면의 길이를 따라 아래로 순차적으로 시프트할 수 있으며, 따라서 임의의 주어진 시간에, 스코어링 셀들의 수와 길이가 같은 기준 뉴클레오티드들의 세그먼트가 셀들 내에 존재하고, 각각의 연속적인 스코어링 셀에 하나의 연속적인 뉴클레오티드가 존재한다.
예를 들어, 파면이 수평으로 스텝 이동할 때마다, 다른 기준 뉴클레오티드가 우측 상단 셀에 공급되고, 다른 기준 뉴클레오티드들은 파면을 통해 좌측 아래로 시프트한다. 기준 뉴클레오티드들의 이러한 시프팅은 정렬 행렬을 통해 우측으로 스코어링 셀들의 파면의 개념적 움직임의 기저의 현실(underlying reality)일 수 있다.
그러므로, 판독의 뉴클레오티드들은 파면의 대향 말단, 예를 들어, 선형 어레이의 좌측 하단 스코어링 셀에 순차적으로 공급될 수 있고, 그곳으로부터 파면의 길이를 따라 위로 순차적으로 시프트할 수 있으며, 따라서 임의의 주어진 시간에, 스코어링 셀들의 수와 길이가 같은 쿼리 뉴클레오티드들의 세그먼트가 셀들 내에 존재하고, 각각의 연속적인 스코어링 셀에 하나의 연속적인 뉴클레오티드가 존재한다. 마찬가지로, 파면이 수직으로 스텝 이동할 때마다, 다른 쿼리 뉴클레오티드가 좌측 하단 셀에 공급되고, 다른 쿼리 뉴클레오티드들은 파면을 통해 우측 위로 시프트한다. 쿼리 뉴클레오티드들의 이러한 시프팅은 정렬 행렬을 통해 아래쪽으로 스코어링 셀들의 파면의 개념적 움직임의 기저의 현실이다. 따라서, 기준 뉴클레오티드들의 시프트를 커맨딩함으로써, 파면은 수평으로한 스텝 이동될 수 있고, 쿼리 뉴클레오티드들의 시프트를 커맨딩함으로써, 파면은 수직으로 한 스텝 이동될 수 있다. 그러므로, 예컨대 삽입들 또는 결실들 없이 쿼리 및 기준 서열들의 전형적인 정렬을 따르기 위해, 일반적으로 대각선 파면 이동을 생성하기 위해, 파면 스텝들이 교대하는 수직 및 수평 방향들로 커맨딩될 수 있다.
따라서, 선형 어레이 내의 이웃 스코어링 셀들은 이전에 계산된 정렬 스코어들을 전달하도록 결합될 수 있다. 스미스-워터만 또는 니들만-분쉬 또는 그러한 변이와 같은 다양한 정렬 스코어링 알고리즘들에서, 가상 정렬 행렬의 각각의 셀 내의 정렬 스코어(들)는 현재 셀의 바로 좌측, 현재 셀의 위 및 현재 셀의 대각선 방향으로 좌측 위에 있는 3개의 셀과 같은 행렬의 다른 셀들에서 이전에 계산된 스코어들을 이용하여 계산될 수 있다. 스코어링 셀이 그것이 진입한 다른 행렬 위치에 대해 새로운 스코어(들)를 계산할 때, 그러한 다른 행렬 위치들에 대응하는 그러한 이전에 계산된 스코어들을 검색해야 한다. 이들 이전에 계산된 스코어들은 동일한 셀 내에서 이전에 계산된 스코어들의 저장 및/또는 선형 어레이 내의 하나 또는 2개의 이웃 스코어링 셀에서 이전에 계산된 스코어들의 저장으로부터 획득될 수 있다. 이는 가상 정렬 행렬 내의 3개의 기여 스코어 위치(바로 좌측, 위 및 대각선 방향으로 좌측 위)가 현재 스코어링 셀, 또는 선형 어레이 내의 그의 이웃 스코어링 셀들 중 어느 하나에 의해 스코어링되었을 것이기 때문이다.
예를 들어, 행렬 내의 바로 좌측 셀은, 가장 최근의 파면 스텝이 수평(우측)이었다면, 현재 스코어링 셀에 의해 스코어링되었을 것이고, 또는 가장 최근의 파면 스텝이 수직(아래쪽)이었다면 선형 어레이 내의 좌측 아래의 이웃 셀에 의해 스코어링되었을 것이다. 유사하게, 행렬 내의 바로 위 셀은, 가장 최근의 파면 스텝이 수직(아래쪽)이었다면 현재 스코어링 셀에 의해 스코어링되었을 것이고, 또는 가장 최근의 파면 스텝이 수평(우측)이었다면 선형 어레이 내의 우측 위의 이웃 셀에 의해 스코어링되었을 것이다.
특정하게는, 행렬 내의 대각선 방향으로 좌측 위 셀은, 가장 최근의 2개의 파면 스텝이 상이한 방향들, 예를 들어 아래 그 후 우측, 또는 우측 그 후 아래이었다면 현재 스코어링 셀에 의해 스코어링되었을 것이고, 또는 가장 최근의 2개의 파면 스텝이 양쪽 모두 수평(우측)이었다면, 선형 어레이 내의 우측 위의 이웃 셀에 의해 스코어링되었을 것이고, 또는 가장 최근의 2개의 파면 스텝이 양쪽 모두 수직(아래쪽)이었다면 선형 어레이 내의 좌측 아래의 이웃 셀에 의해 스코어링되었을 것이다.
따라서, 마지막 하나 또는 2개의 파면 스텝 방향에 관한 정보를 고려함으로써, 스코어링 셀은 이웃 셀들 사이의 결합을 활용하여, 적합한 이전에 계산된 스코어들을 선택하고, 그 자체 내에서, 및/또는 이웃 스코어링 셀들 내에서 그것들에 액세스할 수 있다. 변형에서, 파면의 2개의 말단에 있는 스코어링 셀들은 무효, 또는 제로, 또는 최소값 스코어들로 하드-와이어드된 그들의 외측 스코어 입력들을 가질 수 있으며, 따라서 그것들은 이들 극단적인 셀들에서 새로운 스코어 계산들에 영향을 주지 않을 것이다. 따라서, 파면은 수직 및 수평, 예를 들어, 대각선 스텝들에서 파면을 개념적으로 이동시키기 위해 반대 방향들로 어레이를 통해 기준 및 쿼리 뉴클레오티드들을 시프트시키기 위한 그러한 결합, 및 파면에 의해 진입된 새로운 가상 행렬 셀 위치들에서 정렬 스코어(들)를 계산하기 위해 이웃 셀들에 의해 이전에 계산된 스코어들에 액세스하기 위한 결합과 함께, 스코어링 셀들의 선형 어레이에 구현되고, 따라서 그것은 예컨대 파면의 연속적인 스텝들을 커맨딩하여 행렬을 통해 그것을 스위핑함으로써 가상 행렬 내의 셀들의 밴드, 파면의 폭을 스코어링하는 것이 가능하다.
따라서, 정렬될 새로운 판독 및 기준 윈도우에 대해, 파면은 스코어링 행렬 내부에 위치하기 시작할 수 있거나, 유리하게는, 외부로부터 시작하여, 예를 들어, 행렬의 좌측 또는 위 또는 대각선 방향으로 좌측 및 좌측 상단 모서리의 위로 스코어링 행렬에 점진적으로 진입할 수 있다. 예를 들어, 파면은 가상 행렬의 좌측 상단 셀의 바로 좌측에 위치한 그의 좌측 상단 스코어링 셀로 시작될 수 있으며, 그 후 파면은 일련의 수평 스텝들에 의해 행렬 내로 우측으로 스위핑하고, 행렬의 좌측 상단 영역에 있는 셀들의 수평 밴드를 스코어링할 수 있다. 파면이 기준과 쿼리 사이의 예측된 정렬 관계에 도달할 때, 또는 증가하는 정렬 스코어들로부터 매칭이 검출될 때, 파면은 교대하는 수직 및 수평 스텝들에 의해, 대각선 방향으로 우측 아래로 스위핑하기 시작하고, 행렬의 중간을 통해 셀들의 대각선 밴드를 스코어링할 수 있다. 좌측 하단의 파면 스코어링 셀이 정렬 행렬의 하단에 도달하면, 파면은 파면 셀들의 일부 또는 전부가 정렬 행렬의 경계들 밖으로 스위핑할 때까지 연속적인 수평 스텝들에 의해 다시 우측으로 스위핑을 시작하고, 행렬의 우측 하단 영역에서의 셀들의 수평 밴드를 스코어링할 수 있다.
그러한 정렬 절차들 중 하나 이상은 본 명세서에 설명된 기능성을 수용하도록 수정되었을 수 있는 니들만-분쉬 정렬 알고리즘 및/또는 스미스-워터만 정렬 알고리즘과 같은 임의의 적합한 정렬 알고리즘에 의해 수행될 수 있다. 일반적으로, 이들 알고리즘 양쪽 모두 및 이들과 유사한 것들이 기본적으로, 일부 경우들에서, 유사한 방식으로 수행된다. 예를 들어, 위에 설명된 바와 같이, 이들 정렬 알고리즘은 전형적으로 유사한 방식으로 가상 어레이를 구축하여, 다양한 경우들에서, 수평 상단 경계가 그의 염기 쌍 조성에 따라 어레이의 상단 행을 가로질러 배치될 수 있는 게놈 기준 서열을 표현하도록 구성될 수 있다. 마찬가지로, 수직 경계는 그들의 뉴클레오티드 서열 순서가 일반적으로 그들이 매핑된 기준의 뉴클레오티드 서열과 매칭하도록 제1 열을 따라 아래쪽으로 순서대로 위치된 서열분석되고 매핑된 쿼리 서열들을 표현하도록 구성될 수 있다. 그 후, 중간 셀들에는 주어진 위치에서 쿼리의 관련 염기가 기준에 대해 그 위치에 위치될 확률에 대한 스코어들이 채워질 수 있다. 이 함수를 수행함에 있어서, 스와스(swath)가 중간 셀들 내의 행렬을 채우는 스코어들을 가로질러 대각선 방향으로 이동될 수 있고, 표시된 위치에 있는 쿼리의 각각의 염기에 대한 확률이 결정될 수 있다.
최적의 글로벌(또는 세미-글로벌) 정렬들을 생성하고, 전체 판독 서열을 기준 게놈의 일부 세그먼트에 정렬시키는 니들만-분쉬 정렬 함수와 관련하여, 파면 조향은 전형적으로 정렬 행렬의 상단 에지로부터 하단 에지까지 완전히 스위핑하도록 구성될 수 있다. 파면 스위핑이 완료될 때, 정렬 행렬의 하단 에지(판독의 말단에 대응) 상의 최대 스코어가 선택되고, 정렬은 행렬의 상단 에지(판독의 시작에 대응) 상의 셀로 역 추적된다. 본 명세서에 개시된 다양한 경우들에서, 판독들은 임의의 길이일 수 있고, 임의의 크기일 수 있고, 정렬이 어떻게 수행되는지에 대한 광범위한 판독 파라미터들을 필요로 하지 않으며, 예를 들어 다양한 경우들에서 판독은 염색체만큼 길 수 있다. 그러나, 그러한 경우에, 메모리 크기 및 염색체 길이가 제한 인자가 될 수 있다.
최적의 로컬 정렬들을 생성하고, 전체 판독 서열 또는 판독 서열의 일부를 기준 게놈의 일부 세그먼트에 정렬시키는 스미스-워터만 알고리즘과 관련하여, 이 알고리즘은 판독의 전체 또는 부분 정렬에 기초하여 가능한 최상의 스코어링을 찾도록 구성될 수 있다. 그러므로, 다양한 경우들에서, 파면 스코어링된 밴드는 예컨대 매우 긴 판독이 기준 게놈에 대한 그의 중간 매핑에서 시드들만을 갖는 경우에 정렬 행렬의 상단 및/또는 하단 에지들로 확장되지 않을 수 있지만, 일반적으로 파면은 여전히 행렬의 상단에서 하단까지 스코어링할 수 있다. 로컬 정렬은 전형적으로 2개의 조정에 의해 달성된다. 첫째, 정렬 스코어들은 제로(또는 다른 일부 플로어) 아래로 떨어지는 것이 결코 허용되지 않으며, 달리 계산된 셀 스코어가 음수이면, 제로 스코어가 치환되고, 새로운 정렬의 시작을 표현한다. 둘째, 반드시 하단 에지를 따라 있는 것은 아닌, 행렬 내의 임의의 셀에서 생성된 최대 정렬 스코어가 정렬의 말단으로 이용된다. 정렬은 이 최대 스코어로부터 행렬을 통해 위로 그리고 좌측으로 제로 스코어까지 역 추적되고, 이는 비록 행렬의 상단 행에 있지 않더라도 로컬 정렬의 시작 위치로서 이용된다.
위 내용을 고려하여, 가상 어레이를 통한 여러 상이한 가능한 경로들이 존재한다. 다양한 실시예들에서, 파면은 가상 어레이의 좌측 상부 모서리로부터 시작하여, 최대 스코어의 식별자들을 향하여 아래로 이동한다. 예를 들어, 모든 가능한 정렬 결과들을 수집, 프로세싱, 상관 및 스코어링하여 최대 스코어를 결정할 수 있다. 경계의 말단이나 어레이의 말단에 도달하고/하거나 모든 프로세싱된 셀들에 대해 최고 스코어를 야기하는 계산이 결정되면(예를 들어, 전체 최고 스코어가 식별되면), 최고 스코어를 달성하도록 취해진 경로를 찾기 위해 역 추적이 수행될 수 있다. 예를 들어, 예측된 최대 스코어를 야기하는 경로가 식별될 수 있고, 일단 식별되면, 최대 스코어가 유도된 방법을 결정하기 위해, 예를 들어, 파면 스코어링 셀들에 의해 계산된 것과 같이 식별된 최대 스코어의 달성을 야기한 경로를 되짚어 가는 최상의 스코어 정렬 화살표들을 따라 역방향으로 이동함으로써 감사가 수행될 수 있다.
이러한 역방향 재구성 또는 역 추적은 결정된 최대 스코어로부터 시작하고, 이전 셀들을 통해 역방향으로 작업하여 테이블을 따라 위로 그리고 초기 경계, 예컨대 어레이의 시작, 또는 로컬 정렬의 경우에 제로 스코어까지 역으로 완전히 최대 스코어의 달성을 야기한 스코어들을 갖는 셀들의 경로를 탐색하는 것을 수반한다. 역 추적 동안, 정렬 행렬에서 특정한 셀에 도달하면, 다음 역 추적 스텝은 현재 셀에서 스코어를 구성하기 위해 선택된 최상의 스코어에 기여한, 바로 좌측, 또는 위, 또는 대각선 방향으로 좌측 위의 이웃 셀까지이다. 이러한 방식으로, 최대 스코어의 진화가 결정될 수 있으며, 그에 의해 최대 스코어가 달성된 방법을 알아낼 수 있다.
역 추적은 코너, 또는 에지, 또는 경계에서 끝날 수 있거나, 어레이의 좌측 상부 코너에서와 같이 제로 스코어에서 끝날 수 있다. 따라서, 적합한 정렬을 식별하고, 그에 의해 개인 또는 그의 부분으로부터 유도된 샘플 게놈 서열이 어떻게 기준 DNA의 게놈 서열과 매칭하거나, 달리 그와 정렬되는지를 표현하는 CIGAR 가닥 판독을 생성하는 것은 그러한 역 추적이다.
일단 각각의 판독이 매핑되는 곳이 결정되고, 또한 각각의 판독이 정렬되는 곳이 결정되면, 예를 들어, 피험자의 DNA에 대한 뉴클레오티드 서열이 알려지도록 각각의 관련 판독에 위치, 및 그 위치가 정확한 정렬일 확률을 반영하는 품질 스코어가 주어지면, 예컨대 어레이를 통해 역방향으로 위로 이동하는 역 추적 함수를 수행하여 샘플 게놈 서열에서 그의 적합한 순서로 모든 핵산의 아이덴티티를 결정함으로써 피험자의 다양한 판독들 및/또는 게놈 핵산 서열의 순서가 검증될 수 있다. 결과적으로, 일부 양태들에서, 본 개시내용은 모듈들의 파이프라인의 일부일 수 있는 모듈과 같이 예를 들어 정렬 및 역 추적 함수 양쪽 모두를 수행하는 정렬 모듈의 일부인 역 추적 함수에 관한 것이고, 예컨대 파이프라인은 개인으로부터 게놈 샘플을 형성하고, 그 데이터를 매핑 및/또는 정렬하는 것과 같이 원시 서열 판독 데이터를 취하는데 관여하며, 그 데이터는 그 후 소팅될 수 있다.
역 추적 연산을 용이하게 하기 위해, 스코어 선택 결정을 인코딩하는, 정렬 행렬 내의 각각의 스코어링된 셀에 대한 스코어링 벡터를 저장하는 것이 유용하다. 선형 갭 페널티들을 갖는 고전적인 스미스-워터만 및/또는 니들만-분쉬 스코어링 구현들에 대해, 스코어링 벡터는 옵션으로 0 내지 3의 2-비트 정수로서 저장될 수 있는 4개의 가능성을 인코딩할 수 있다: 예를 들어: 0= 새로운 정렬(선택된 널 스코어); 1 = 수직 정렬(위에 선택된 셀로부터의 스코어, 갭 페널티에 의해 수정됨); 2 = 수평 정렬(선택된 좌측의 셀로부터의 스코어, 갭 페널티에 의해 수정됨); 3 = 대각선 정렬(위 및 좌측에 선택된 셀로부터의 스코어, 뉴클레오티드 매칭 또는 미스매칭 스코어에 의해 수정됨). 옵션으로, 각각의 스코어링된 행렬 셀에 대한 계산된 스코어(들)는 또한(표준적으로 저장되는 최대 달성된 정렬 스코어에 추가하여) 저장될 수 있지만, 이는 일반적으로 역 추적에는 필요하지 않으며, 많은 양의 메모리를 소비할 수 있다. 그 후, 역 추적을 수행하는 것은 스코어링 벡터들을 추종하는 것의 문제가 된다; 역 추적이 행렬 내의 주어진 셀에 도달했을 때, 다음 역 추적 스텝은 그 셀에 대한 저장된 스코어링 벡터에 의해 결정되는데, 예를 들어: 0= 역 추적 종료; 1 = 위쪽으로 역 추적; 2 = 좌측으로 역 추적; 3 = 대각선 방향으로 좌측 위로 역 추적.
그러한 스코어링 벡터들은 정렬 행렬의 차원들에 따라 배열된 2차원 테이블에 저장될 수 있으며, 파면에 의해 스코어링된 셀들에 대응하는 엔트리들만이 채워진다. 대안적으로, 메모리를 보존하고, 생성된 스코어링 벡터들을 그들이 생성됨에 따라 더 용이하게 기입 하고, 다양한 크기들의 정렬 행렬들을 더 용이하게 수용하기 위해, 스코어링 벡터들은, 예를 들어 64-셀 파면으로부터 64개의 2-비트 스코어링 벡터를 저장하는 128 비트와 같이 스코어링 셀들의 단일 파면으로부터 스코어링 벡터들을 저장하도록 크기가 정해진 각각의 행을 갖고, 행의 수는 정렬 연산에서 파면 스텝들의 최대 수와 동일한 테이블에 저장될 수 있다. 추가적으로, 이 옵션에 대해, 각각의 테이블 행에 추가의, 예를 들어 129번째 비트를 저장하고, 예를 들어 이 파면 위치에 선행하는 수직 파면 스텝에 대해서는(0), 및 이 파면 위치에 선행하는 수평 파면 스텝에 대해서는 1을 인코딩하는, 다양한 파면 스텝들의 방향들에 대한 레코드가 유지될 수 있다. 그러한 추가의 비트는 역 추적 중에 각각의 테이블 행의 스코어링 벡터들이 대응하는 가상 스코어링 행렬 위치들을 계속 추적하는 데 이용될 수 있으며, 각각의 연속적인 역 추적 스텝 후에 적, 절한 스코어링 벡터가 검색될 수 있다. 역 추적 스텝이 수직 또는 수평인 경우, 다음 스코어링 벡터는 이전 테이블 행으로부터 검색되어야 하지만, 역 추적 스텝이 대각선인 경우, 다음 스코어링 벡터는 이전의 2개의 행으로부터 검색되어야 하는데, 그 이유는 파면은 어느 하나의 셀을 스코어링하는 것에서부터 그로부터 대각선 방향으로 우측 아래의 셀을 스코어링하는 것으로 이동하기 위해 2개의 스텝을 취해야 했기 때문이다.
아핀 갭 스코어링의 경우, 스코어링 벡터 정보는 예를 들어 스코어링된 셀당 4 비트까지 확장될 수 있다. 예를 들어 2-비트 스코어 선택 방향 표시자에 추가하여, 2개의 1-비트 플래그, 수직 확장 플래그, 및 수평 확장 플래그가 추가될 수 있다. 스미스-워터만 또는 니들만-분쉬 또는 유사한 정렬 알고리즘들에 대한 아핀 갭 스코어링 확장들의 방법들에 따르면, 각각의 셀에 대해, 그 셀에서 종단되는 최상의 스코어링 정렬을 표현하는 1차 정렬 스코어에 추가하여, '수직 스코어'가 최종 수직 스텝으로 그 셀에 도달하는 최대 정렬 스코어에 대응하여 생성되어야 하고, '수평 스코어'가 최종 수평 스텝으로 그 셀에 도달하는 최대 정렬 스코어에 대응하여 생성되어야 하고; 3개의 스코어 중 임의의 것을 계산할 때, 그 셀로의 수직 스텝은 위의 셀로부터의 1차 스코어 마이너스 갭 개방 페널티를 이용하는 것, 또는 위의 셀로부터의 수직 스코어 마이너스 갭 확장 페널티를 이용하는 것 중, 어느 쪽이든 더 큰 것을 이용하여 계산될 수 있고; 그 셀로의 수평 스텝은 좌측의 셀로부터의 1차 스코어 마이너스 갭 개방 페널티를 이용하는 것, 또는 좌측의 셀로부터의 수평 스코어 마이너스 갭 확장 페널티를 이용하는 것 중, 어느 쪽이든 더 큰 것을 이용하여 계산될 수 있다. 수직 스코어 마이너스 갭 확장 페널티가 선택되는 경우, 스코어링 벡터에서의 수직 확장 플래그는 설정되어야, 예를 들어, '1'이어야 하고, 그렇지 않으면 그것은 설정되지 않아야, 예를 들어, '0'이어야 한다.
수평 스코어 마이너스 갭 확장 페널티가 선택되는 경우, 스코어링 벡터에서의 수평 확장 플래그는 설정되어야, 예를 들어, '1'이어야 하고, 그렇지 않으면 그것은 설정되지 않아야, 예를 들어, '0'이어야 한다. 어파인 갭 스코어링을 위한 역 추적 중에, 언제든지 시간 역 추적은 주어진 셀로부터 위쪽으로 수직 스텝을 취하고, 그 셀의 스코어링 벡터의 수직 확장 플래그가 설정되면, 다음의 역 추적 스텝 또한 위의 셀에 대한 스코어링 벡터에 관계없이 수직이어야 한다. 마찬가지로, 언제든지 역 추적은 주어진 셀로부터 좌측으로 수평 스텝을 취하고, 그 셀의 스코어링 벡터의 수평 확장 플래그가 설정되면, 다음의 역 추적 스텝 또한 좌측의 셀에 대한 스코어링 벡터에 관계없이 수평이어야 한다. 따라서, 어떤 수 NR의 행들을 갖는, 스코어링 벡터들의 그러한 테이블, 예를 들어, 선형 갭 스코어링을 이용하는 64개의 셀에 대해 행당 129 비트, 또는 아핀 갭 스코어링을 이용하는 64개의 셀에 대해 행당 257 비트는 스코어링 파면이 NR개의 스텝 또는 더 적은 수를 취한 정렬 스코어링을 종결한 후 역 추적을 지원하기에 충분하다.
예를 들어, 300개의 뉴클레오티드 판독을 정렬할 때, 필요한 파면 스텝의 수는 항상 1024 미만일 수 있으므로, 테이블은 257x1024 비트, 또는 대략 32 킬로바이트일 수 있으며, 이는 많은 경우들에서 집적 회로 내부의 합리적인 로컬 메모리일 수 있다. 그러나, 매우 긴 판독들, 예를 들어 100,000개의 뉴클레오티드가 정렬되어야 하는 경우, 스코어링 벡터들에 대한 메모리 요건들은 예를 들어 8 메가바이트와 같이 상당히 클 수 있으며, 이는 집적 회로 내부의 로컬 메모리로서 포함하는데 비용이 많이 들 수 있다. 그러한 지원을 위해, 스코어링 벡터 정보는 집적 회로 외부의 벌크 메모리, 예를 들어 DRAM에 기입될 수 있지만, 그러면 대역폭 요건들, 예를 들어 정렬기 모듈마다 클록 사이클당 257 비트가 과도할 수 있으며, 이로 인해 병목 현상이 발생하고 정렬기 성능이 크게 저하될 수 있다. 따라서, 정렬을 완료하기 전에 스코어링 벡터들을 처리하는 방법을 갖는 것이 바람직하며, 이에 따라 이들의 저장 요건들은 예를 들어 증분적 역 추적들을 수행하고, 예를 들어 정렬의 스코어링 벡터 이력의 초기 부분들로부터 증분 부분 CIGAR 스트링들을 생성하도록 제한적으로 유지될 수 있으며, 스코어링 벡터들의 그러한 초기 부분들은 그 후 폐기될 수 있다. 문제는 정렬 스코어링이 완료될 때까지는 알려지지 않는 정렬의 말단의 최대 스코어링 셀에서 역 추적이 시작할 것으로 생각되므로, 정렬이 완료되기 전에 시작된 임의의 역 추적이 궁극적인 최종의 최적 정렬 경로를 따라서가 아니라, 잘못된 셀로부터 시작될 수 있다는 것이다.
그러므로, 예를 들어 지금까지 스코어링된 정렬 행렬 셀들에 대한 부분 스코어링 벡터 정보를 포함하는 부분 정렬 정보로부터 증분적 역 추적을 수행하는 방법이 제공된다.
현재 완료된 정렬 경계, 예를 들어 특정한 스코어링된 파면 위치로부터, 역 추적은 경계 상의 모든 셀 위치들로부터 개시된다. 모든 경계 셀들로부터의 그러한 역 추적은 순차적으로 또는 유리하게는 특히 하드웨어 구현으로 수행될 수 있고, 모든 역 추적들이 함께 수행될 수 있다. 이들 다수의 역 추적들로부터 정렬 표기법들, 예를 들어 CIGAR 스트링들을 추출할 필요는 없으며, 역 추적 동안 이들이 어떤 정렬 행렬 위치들을 통과하는지를 결정하기만 하면 된다. 스코어링 경계로부터의 동시 역 추적의 구현에서, 역 추적들 중 임의의 것이 대응하는 위치를 통과하는지를 표현하는, 예를 들어 모두 '1'로 초기화된, 정렬 셀들의 수에 대응하는, 다수의 1-비트 레지스터들이 활용될 수 있다. 동시 역 추적의 각각의 스텝에 대해, 이들 레지스터 내의 모든 현재 '1'에 대응하는 스코어링 벡터들을, 예를 들어 스코어링 벡터 테이블의 한 행으로부터, 검사하여 다음의 동시 역 추적 스텝을 위해 레지스터들 내의 각각의 '1'에 대한 다음의 위치로 이어지는, 레지스터들 내의 각각의 '1'에 대응하는 다음의 역 추적 스텝을 결정할 수 있다.
중요하게는, 공통 역 추적 경로들 상에 함께 병합되는 다수의 동시 역 추적들에 대응하여 레지스터들 내의 다수의 '1'이 공통 위치들에 병합되는 것이 용이하게 가능하다. 일단 동시 역 추적들 중 2개 이상이 함께 병합되면, 이들은 무기한 병합된 상태로 유지되는데, 그 이유는 이후 이들은 동일한 셀로부터의 스코어링 벡터 정보를 활용할 것이기 때문이다. 경험적 및 이론적 이유들로, 높은 확률로, 동시 역 추적들 모두가 예를 들어 파면의 스코어링 셀들의 수의 작은 배수, 예를 들어 8배일 수 있는 비교적 적은 수의 역 추적 스텝들에서, 단일 역 추적 경로에 병합되는 것이 관찰되었다. 예를 들어, 64-셀 파면을 이용하면, 높은 확률로, 주어진 파면 경계로부터의 모든 역 추적들이 512개의 역 추적 스텝 내에서 단일 역 추적 경로에 병합된다. 대안적으로, 모든 역 추적들이 역 추적 스텝들의 수, 예를 들어 512개 내에서 종료되는 것도 가능하며, 드문 일이 아니다.
따라서, 다수의 동시 역 추적들은 그것들 모두가 예를 들어 512개의 역 추적 스텝 또는 더 적은 수에서 종료되거나 단일 역 추적 경로에 병합될 만큼 뒤로 충분히 먼 스코어링 경계, 예를 들어 스코어링된 파면 위치로부터 수행될 수 있다. 그것들 모두가 단일 역 추적 경로에 함께 병합되면, 그것들이 병합되는 스코어링 행렬 내의 로케이션으로부터, 또는 단일 역 추적 경로를 따라 더 뒤의 임의의 거리로부터, 부분 정렬 정보로부터의 증분적 역 추적이 가능하다. 병합 지점 또는 더 뒤의 임의의 거리로부터의 추가 역 추적은 대응하는 정렬 표기법, 예를 들어 부분적인 CIGAR 스트링을 기입 하는 것을 포함하는, 보통의 단일 역 추적 방법들에 의해 개시된다.
이 증분적 역 추적, 및 예를 들어 부분 CIGAR 스트링은 임의의 가능한 최종 역 추적의 일부이어야 하고, 예를 들어, 정렬이 완료된 후의 결과일 전체 CIGAR 스트링은, 그러한 최종 역 추적이 동시 역 추적이 시작된 스코어링 경계에 도달하기 전에 종료되지 않는 한, 스코어링 경계에 도달하면 동시 역 추적 경로들 중 하나를 추종하고, 단일 역 추적 경로에 병합되어야 하기 때문에, 이제 증분적으로 추출된다.
따라서, 예를 들어 추출된 단일 역 추적의 시작에 선행하는 파면 위치들에 대한 모든 테이블 행들에서 증분적으로 추출된 역 추적에 대응하는 행렬 영역들에 대한 모든 스코어링 벡터들은 안전하게 폐기될 수 있다. 최종 역 추적이 최대 스코어링 셀로부터 수행될 때, 스코어링 경계에 도달하기 전에 종료되는 경우(또는 대안적으로, 추출된 단일 역 추적의 시작에 도달하기 전에 종료되는 경우), 증분 정렬 표기법, 예를 들어 부분 CIGAR 스트링은 폐기될 수 있다. 최종 역 추적이 추출된 단일 역 추적의 시작으로 계속되면, 그의 정렬 표기법, 예를 들어 CIGAR 스트링은 그 후 증분 정렬 표기법, 예를 들어, 부분 CIGAR 스트링 상에 그래프팅될 수 있다. 더욱이, 매우 긴 정렬에서, 모든 역 추적들이 종료되거나 병합될 때까지, 스코어링 경계, 예를 들어 스코어링된 파면 위치로부터 동시 역 추적을 수행하는 프로세스와, 이어서 정렬 표기법 추출을 갖는 단일 역 추적이, 다양한 연속적인 스코어링 경계들로부터 여러 번 반복될 수 있다. 그 후 각각의 연속적인 증분적 역 추적으로부터의 증분 정렬 표기법, 예를 들어 부분 CIGAR 스트링은 새로운 동시 역 추적 또는 단일 역 추적이 조기에 종료되지 않는 한 누적된 이전의 정렬 표기법들 상에 그래프팅될 수 있으며, 이 경우 누적된 이전의 정렬 표기법들은 폐기될 수 있다. 궁극적인 최종 역 추적은 마찬가지로 완전한 역 추적 설명, 예를 들어 CIGAR 스트링을 위해 가장 최근의 누적된 정렬 표기법들 상에 그의 정렬 표기법을 그래프팅한다.
따라서, 이러한 방식으로, 동시 역 추적들이 항상 제한된 수의 스텝들, 예를 들어 512개의 스텝에서 함께 병합되는 것으로 가정하면, 스코어링 벡터들을 저장하는 메모리는 제한적으로 유지될 수 있다. 동시 역 추적들이 제한된 수의 스텝들에서 병합 또는 종료되는 것에 실패한 드문 경우들에서, 완전한 정렬을 위해 모든 스코어링 벡터들을 예컨대 외부 DRAM에 저장하는 것과 같은 가능하게 상이한 또는 전통적인 방법에 의해, 현재의 정렬에 실패하는 것, 또는 더 높은 제한으로 또는 제한 없이 이를 반복하는 것을 포함하는 다양한 예외 조치들이 취해질 수 있다.
변형에서, 그러한 정렬에 실패하는 것이 합리적일 수 있는데, 그 이유는 그러한 실패한 정렬이 정렬 보고에 이용될 최상의 스코어링 정렬이 되는 것은 극히 드물고, 훨씬 더 드물 것이기 때문이다.
옵션의 변형에서, 스코어링 벡터 저장은 물리적으로 또는 논리적으로 다수의 별개의 블록들, 예를 들어 각각 512개의 행으로 분할될 수 있으며, 각각의 블록의 최종 행은 동시 역 추적을 개시하기 위한 스코어링 경계로서 이용될 수 있다. 옵션으로, 동시 역 추적은 단일 블록, 예를 들어 512개의 스텝 내에서 종료되거나 병합되도록 요구될 수 있다. 옵션으로, 동시 역 추적들이 더 적은 수의 스텝에서 병합되더라도, 그럼에도 불구하고 병합된 역 추적은 이전 블록에서 단일 역 추적의 추출을 개시하기 전에 전체 블록을 통해 계속될 수 있다. 따라서, 스코어링 벡터들이 블록 N에 완전히 기입되고, 블록 N+1에 기입이 시작된 후, 블록 N에서 동시 역 추적이 개시될 수 있고, 이어서 블록 N-1에서의 단일 역 추적 및 정렬 표기법 추출이 수행될 수 있다. 동시 역 추적, 단일 역 추적, 및 정렬 스코어링의 속도가 모두 유사하거나 동일하고, 예를 들어 집적 회로의 병렬 하드웨어에서 동시에 수행될 수 있는 경우, 블록 N-1에서의 단일 역 추적은 블록 N+2를 채우는 스코어링 벡터들과 동시일 수 있으며, 블록 N+3이 채워질 때, 블록 N-1은 해제되고 재활용될 수 있다.
따라서, 그러한 구현에서, 최소 4개의 스코어링 벡터 블록이 이용될 수 있고, 주기적으로 활용될 수 있다. 그러므로, 정렬기 모듈에 대한 총 스코어링 벡터 저장은 예를 들어 각각 257 x 512 비트의 4개의 블록, 또는 대략 64 킬로바이트가 될 수 있다. 변형에서, 현재의 최대 정렬 스코어가 현재의 파면 위치보다 앞선 블록에 대응한다면, 이 블록 및 이전 블록은 재활용되기보다는 보존될 수 있으며, 따라서 최종 역 추적은 그것이 최대 스코어로 유지되면 이 위치로부터 개시될 수 있고; 추가의 2개의 블록을 이러한 방식으로 보존되게 하는 것은 최소, 예를 들어 6개의 블록으로 이끈다.
다른 변형에서, 중첩된 정렬들을 지원하기 위해, 스코어링 파면은 위에 설명된 바와 같이 하나의 정렬 행렬로부터 다음 정렬 행렬로 점진적으로 교차하며, 예를 들어, 1개 또는 2개의 추가 블록과 같은 추가 블록들, 예를 들어 총 8개의 블록, 예를 들어 대략 128 킬로바이트가 활용될 수 있다. 따라서, 그러한 제한된 수의 블록들, 예를 들어 4개의 블록 또는 8개의 블록이 주기적으로 이용되면, 스코어링 벡터들을 위한 외부 메모리를 이용하지 않고, 임의의 긴 판독들, 예를 들어 100,000개의 뉴클레오티드 또는 전체 염색체의 정렬 및 역 추적이 가능하다. 예컨대 위 내용과 관련하여 이해해야 하는 점은, 비록 매핑 함수가 일부 경우들에서는, 예컨대 매핑기와 관련하여 설명되었을 수 있고/있거나 정렬 함수가 일부 경우들에서는, 예컨대 정렬기와 관련하여 설명되었을 수 있지만, 이들 상이한 함수들은 정렬기로서 본 기술분야에서 일반적으로 참조되는 동일한 아키텍처에 의해 순차적으로 수행될 수 있다는 것이다.
따라서, 다양한 경우들에서, 본 명세서에 설명된 바와 같은 매핑 함수 및 정렬 함수 양쪽 모두는 정렬기로 이해될 수 있는 공통 아키텍처에 의해 수행될 수 있으며, 특히 그들 경우에서 정렬 함수를 수행하기 위해, 매핑 함수가 먼저 수행될 필요가 있다.
다양한 경우들에서, 본 개시내용의 이용의 디바이스들, 시스템들, 및 이들의 방법들은, 데이터 세트 내의 판독들에 대해 적합한 정렬을 결정하기 위해 이후 스코어링될 수 있는 완전-판독 갭이 없는 및/또는 갭이 있는 정렬들 중 하나 이상을 수행하도록 구성될 수 있다. 예를 들어, 다양한 경우들에서, 프로세싱될 데이터에 대해 갭이 없는 정렬 절차가 수행될 수 있고, 그 후 그 갭이 없는 정렬 절차에 이어서 하나 이상의 갭이 있는 정렬, 및/또는 선택적 스미스-워터만 정렬 절차가 수행될 수 있다. 예를 들어, 제1 단계에서, 갭이 없는 정렬 체인이 생성될 수 있다. 본 명세서에 설명된 바와 같이, 그러한 갭이 없는 정렬 함수들은, 갭들을 고려할 필요없이, 빠르게 수행될 수 있고, 그 후에는 갭이 없는 정렬을 수행하는 제1 단계 후에, 그 후 갭이 없는 정렬을 수행하는 것이 이어질 수 있다.
예를 들어, 정렬 함수는 판독 및/또는 기준 중 하나 이상에 갭들을 삽입할 필요없이 임의의 주어진 뉴클레오티드 서열, 예를 들어 판독이 어떻게 기준 서열에 정렬되는지를 결정하기 위해 수행될 수 있다. 그러한 정렬 함수를 수행하는 중요한 부분은 문제의 서열 대 기준 게놈의 서열에서 어디에 그리고 어떻게 미스매칭들이 있는지를 결정하는 것이다. 그러나, 인간 게놈 내의 큰 상동성(homology) 때문에, 이론적으로, 임의의 주어진 뉴클레오티드 서열은 대표적인 기준 서열에 대체로 매칭할 것이다. 미스매칭들이 있는 경우, 이들은 비교적 검출하기 용이한 단일 뉴클레오티드 다형성에 기인할 가능성이 있을 것이고, 또는 이들은 문제의 서열에서의 삽입 또는 결실에 기인할 것이며, 이는 검출하기가 훨씬 더 어렵다.
결과적으로, 정렬 함수를 수행할 때, 대부분의 시간, 문제의 서열은 기준 서열과 매칭할 것이고, SNP에 기인한 미스매칭이 있는 경우, 이는 용이하게 결정될 것이다. 그러므로, 그러한 분석을 수행하기 위해 비교적 많은 양의 프로세싱 능력이 요구되지 않는다. 그러나, 기준 서열에 관하여 문제의 서열에 삽입들 또는 결실들이 존재하는 경우 어려움들이 발생하는데, 그 이유는 그러한 삽입들 및 결실들은 정렬에서의 갭들에 해당하기 때문이다. 그러한 갭들은 정확한 정렬을 결정하기 위해 더 광범위하고 복잡한 프로세싱 플랫폼을 요구한다. 그럼에도 불구하고, 작은 백분율의 삽입결실만이 있을 것이기 때문에, 수백만 개의 갭이 없는 정렬이 수행되는 것에 비해 상대적으로 더 작은 백분율의 갭이 있는 정렬 프로토콜만이 수행될 필요가 있다. 그러므로, 단지 작은 백분율의 갭이 없는 정렬 함수들 모두는 서열 내의 삽입결실의 존재에 기인하는 추가 프로세싱에 대한 필요성을 초래하고, 따라서 갭이 있는 정렬을 필요로 할 것이다.
갭이 없는 정렬 절차에서 삽입결실이 표시될 때, 그들 서열만이 스미스 워터만 정렬(SWA)과 같은 진보된 정렬 함수를 수행하도록 구성된 정렬 엔진과 같은, 추가 프로세싱을 위한 정렬 엔진으로 전달된다. 따라서, 갭이 없는 또는 갭이 있는 정렬 중 어느 하나가 수행되어야 하기 때문에, 본 명세서에 개시된 디바이스들 및 시스템들은 리소스들의 훨씬 더 효율적인 사용이다. 더 특정하게는, 특정 실시예들에서, 갭이 없는 및 갭이 있는 정렬 양쪽 모두가, 주어진 선택의 서열들에 대해, 예를 들어, 하나 직후에 다른 하나에 대해, 수행될 수 있고, 그 결과들은 각각의 서열에 대해 비교되고, 최상의 결과가 선택된다. 그러한 배열은, 예를 들어, 정확도의 향상을 원하고, 요구되는 프로세싱을 수행하기 위한 증가된 양의 시간 및 리소스들이 용인할 만한 경우에 구현될 수 있다.
특정하게는, 다양한 경우들에서, 프로세싱 집약적 스미스 워터만 함수를 관여시키지 않고 제1 정렬 단계가 수행될 수 있다. 그러므로, 복수의 갭이 없는 정렬이 덜 리소스 집약적이고 덜 시간 소모적인 방식으로 수행될 수 있고, 더 적은 리소스들이 필요하기 때문에, 칩 상의 그러한 프로세싱을 위해 더 적은 공간이 전용될 필요가 있다. 따라서, 더 적은 시간을 필요로 하는 더 적은 프로세싱 요소들을 사용하여 더 많은 프로세싱이 수행될 수 있고, 따라서, 더 많은 정렬들이 수행될 수 있고, 더 나은 정확도가 달성될 수 있다. 더 특정하게는, 스미스 워티만 정렬을 수행하기 위한 더 적은 칩 리소스 구현들은 덜 적은 칩 면적을 이용하여 전용될 필요가 있는데, 그 이유는 그것은 갭이 없는 정렬을 수행하는 데 필요한 프로세싱 요소들에 대한 칩 면적을 갭이 있는 정렬들을 수행하기 위해 필요로 하는 만큼 많이 필요로 하지 않기 때문이다. 칩 리소스 요건들이 내려감에 따라, 더 많은 프로세싱이 더 짧은 시간 기간 내에 수행될 수 있고, 수행될 수 있는 프로세싱이 많을수록, 더 나은 정확도가 달성될 수 있다.
따라서, 그러한 경우들에서, 예를 들어 적합하게 구성된 갭이 없는 정렬 리소스들에 의해 수행될, 갭이 없는 정렬 프로토콜이 이용될 수 있다. 예를 들어, 본 명세서에 개시된 바와 같이, 다양한 실시예들에서, 정렬 프로세싱 엔진이 제공되고 예컨대 이 경우 프로세싱 엔진은, 예를 들어, 전자 데이터 소스로부터 하나 이상의 뉴클레오티드 서열을 나타내는 디지털 데이터와 같은, 예를 들어, 게놈 데이터의 하나 이상의 판독을 표현하는, 디지털 신호를 수신하고, 예컨대 먼저 그 데이터에 대해 갭이 없는 정렬 함수를 수행함으로써 그 데이터를 기준 서열에 매핑 및/또는 정렬시키도록 구성되고, 그 갭이 없는 정렬 함수에 이어서 그 후, 필요하다면, 예컨대 스미스 워터만 정렬 프로토콜을 수행함으로써 갭이 있는 정렬 함수가 수행될 수 있다.
결과적으로, 다양한 경우들에서, 갭이 없는 정렬 함수는, 예를 들어, 갭이 없는 정렬기를 이용하여, 판독의 연속 부분에 대해 수행되고, 갭이 없는 정렬이 끝에서 끝까지 가면, 예를 들어 판독이 완료되면, 갭이 있는 정렬이 수행되지 않는다. 그러나, 갭이 없는 정렬의 결과들이 삽입결실이 존재하는 것, 예를 들어, 판독이 클리핑되거나 달리 불완전한 것을 나타내는 경우, 갭이 있는 정렬이 수행될 수 있다. 따라서, 갭이 없는 정렬 결과들은, 예를 들어, 갭이 있는 정렬이 필요한지를 결정하는 데 이용될 수 있고, 여기서 갭이 없는 정렬은 갭 영역으로 연장되지만, 판독의 전체 길이를 연장하지는 않으며, 예컨대 이 경우 판독은 어느 정도까지 클리핑, 예를 들어, 소프트 클리핑될 수 있고, 그 후 클리핑된 곳에서 갭이 있는 정렬이 수행될 수 있다.
그러므로, 다양한 실시예들에서, 완전성 및 정렬 스코어들에 기초하여, 갭이 있는 정렬이 수행되는 것은 갭이 없는 정렬이 클리핑되어 끝나는, 예를 들어, 끝에서 끝까지 가지 않는 경우만이다. 더 특정하게는, 다양한 실시예들에서, 최상의 식별가능한 갭이 없는 및/또는 갭이 있는 정렬 스코어를 추정하고, 예컨대 갭이 있는 정렬을 수행함으로써, 그 스코어가 추가 분석을 보증할 만큼 충분히 양호한지를 결정하기 위한 컷오프 라인으로서 이용할 수 있다. 따라서, 높은 스코어가 정렬이 완전하고, 따라서, 갭이 없는 것을 나타내고, 더 낮은 스코어가 정렬이 완전하지 않고, 갭이 있는 정렬이 수행될 필요가 있는 것을 나타내도록 정렬의 완전성 및 그의 스코어가 이용될 수 있다. 그러므로, 높은 스코어가 얻어지는 경우, 갭이 있는 정렬이 수행되지 않지만, 스코어가 충분히 낮은 경우에만 갭이 있는 정렬이 수행된다. 물론, 다양한 경우들에서, 더 많은 수의 정렬들이 수행될 수 있게 하는 수의 갭이 있는 및/또는 갭이 없는 정렬기들이 칩 아키텍처 내에 배치되고, 따라서 더 많은 양의 데이터를 검토할 수 있도록, 브루트 포스 정렬 접근법이 이용될 수 있다.
더 특정하게는, 다양한 실시예들에서, 각각의 매핑 및/또는 정렬 엔진은 하나 이상의, 예를 들어, 2개의 스미스-워터만, 정렬기 모듈을 포함할 수 있다. 특정 경우들에서, 이들 모듈은 글로벌(엔드-투-엔드) 갭이 없는 정렬 및/또는 로컬(클리핑된) 갭이 있는 정렬을 지원하고, 어파인 갭 스코어링을 수행하도록 구성될 수 있고, 각각의 말단에서 클리핑되지 않은 스코어 보너스들을 생성하도록 구성될 수 있다. 염기 품질 민감 매칭 및 미스매칭 스코어링도 지원될 수 있다. 예를 들어, 집적 회로의 일부로서 예를 들어 2개의 정렬 모듈이 포함되는 경우, 각각의 스미스-워터만 정렬기는 스코어링 셀들의 반대-대각선(anti-diagonal) 파면으로서 구성될 수 있고, 그 파면은 가상 정렬 직사각형을 통해 '이동'하여, 그것이 스위핑하는 셀들을 스코어링한다.
그러나, 더 긴 판독들에 대해, 스미스-워티만 파면은 또한, 예컨대 정렬 파면 및 스코어링되는 셀들이 스코어링 밴드를 빠져나가지 않도록 보장하기 위해, 누적된 삽입결실들을 통해 최상의 정렬을 추적하도록, 자동 조향을 지원하도록 구성될 수 있다. 배경에서, 로직 엔진들은 현재의 파면 스코어들을 검사하고, 최대 값들을 찾고, 최대 아래의 임계 거리에 걸쳐 셀들의 서브세트들을 플래깅하고, 2개의 극단 플래그들 사이의 중간점을 타겟으로 하도록 구성될 수 있다. 그러한 경우에, 자동 조향은 타겟이 파면 중심에 있을 때 대각선으로 실행되도록 구성될 수 있지만, 예컨대 삽입결실들의 존재로 인해, 그것이 드리프트하는 경우에 타겟을 다시 중심에 오도록 하기 위해 필요에 따라 똑바로 수평으로 또는 수직으로 실행되도록 구성될 수 있다.
정렬 모듈로부터의 출력은 매핑 품질 스코어(MAPA)와 함께 SAM(텍스트) 또는 BAM(예를 들어, SAM의 이진 버전) 파일이며, 이 품질 스코어는 기준에 대한 판독의 예측되고 정렬된 로케이션이 실제로 판독이 유도되는 곳이라는 신뢰도를 반영한다. 따라서, 일단 각각의 판독이 매핑되는 곳이 결정되었고, 각각의 판독이 정렬되는 곳이 추가로 결정되었다면, 예를 들어 피험자의 DNA에 대한 뉴클레오티드 서열뿐만 아니라 피험자의 DNA가 기준의 것과 어떻게 상이한지(예를 들어, CIGAR 스트링이 결정되었음)가 알려지도록 각각의 관련 판독에 위치, 및 그 위치가 정확한 정렬일 확률을 반영하는 품질 스코어가 주어졌다면, 피험자의 게놈 핵산 서열을 표현하는 다양한 판독들은 염색체들 상의 판독의 정확한 로케이션이 결정될 수 있도록 염색체 로케이션에 의해 소팅될 수 있다. 결과적으로, 일부 양태들에서, 본 개시내용은 예컨대 소팅 모듈에 의해 수행될 수 있는 소팅 함수에 관한 것이며, 그 소팅 모듈은 모듈들의 파이프라인의 일부일 수 있으며, 예컨대 파이프라인은 개인으로부터 게놈 샘플을 형성하고, 그 데이터를 매핑 및/또는 정렬하는 것과 같이 원시 서열 판독 데이터를 취하는데 관여하며, 그 데이터는 그 후 소팅될 수 있다.
더 특정하게는, 판독이 어느 염색체에 속하는지 및/또는 그 염색체의 시작으로부터의 그것의 오프셋을 식별하는 것을 포함할 수 있는, 예컨대 기준 게놈에 대한 위치가 일단 판독들에 할당되면, 그 판독들은 위치에 의해 소팅될 수 있다. 소팅은 예컨대 다운스트림 분석들에서 유용할 수 있으며, 그에 의해 게놈 내의 주어진 위치와 중첩되는 모든 판독들이 예컨대 소팅 모듈을 통해 프로세싱된 후에 서로 인접하도록 파일업으로 형성될 수 있고, 그에 의해 대부분의 판독들이 기준 값과 매칭하는지 여부가 쉽게 결정될 수 있다. 그러므로, 대부분의 판독들이 기준 값과 일치하지 않는 경우, 변이 추출이 플래깅될 수 있다. 따라서, 소팅은, 동일한 로케이션을 커버하는 모든 판독들이 물리적으로 함께 그룹화되도록, 동일한 염색체 위치와 같은 비교적 동일한 위치에 정렬되어 파일업을 생성하는 판독들의 하나 이상의 소팅을 수반할 수 있고; 파일업의 판독들을 분석하여 기준 게놈에 비해 판독들이 게놈에서 실제 변이를 나타낼 수 있는 곳을 결정하는 것을 추가로 수반할 수 있으며, 그 변이는, 예컨대 파일업의 컨센서스에 의해, 소수의 판독들에 의해 나타내질 수 있는 서열 분석 방법들에서의 오류 또는 머신 판독 오류와 같은 오류와 구별 가능할 수 있다.
일단 데이터가 획득되었다면, 데이터를 클린업하기 위해 실행될 수 있는 하나 이상의 다른 모듈이 있다. 예를 들어, 개인의 게놈 서열을 결정하기 위한 것과 같이, 예를 들어, 서열 분석 파이프라인에 포함될 수 있는 하나의 모듈은 로컬 재정렬 모듈일 수 있다. 예를 들어, 판독의 말단에서 발생하는 삽입들 및 결실들을 결정하는 것은 종종 어렵다. 이는 스미스-워터만 또는 이와 동등한 정렬 프로세스가 스코어링이 그의 존재를 검출할 수 있을 정도로 삽입결실을 넘어서는 충분한 컨텍스트가 부족하기 때문이다. 결과적으로, 실제 삽입결실은 하나 이상의 SNP로서 보고될 수 있다. 그러한 경우에, 임의의 주어진 판독에 대한 예측된 로케이션의 정확도는 매핑 및/또는 정렬 및/또는 소팅된 판독 데이터에 대해 로컬 재정렬을 수행함으로써 향상될 수 있다.
그러한 경우들에서, 파일업들은, 예컨대 문제의 위치가 임의의 주어진 판독의 말단에 있고, 동일한 위치가 파일업의 일부 다른 판독의 중간에 있을 가능성이 있는 경우, 적합한 정렬을 명확하게 하는 것을 돕기 위해 이용될 수 있다. 따라서, 로컬 재정렬을 수행함에 있어서, 파일업 내의 다양한 판독들을 분석하여, 파일업 내의 판독들 중 일부가 다른 판독이 삽입결실을 포함하지 않거나, 오히려 그 위치에서 치환을 포함하는 주어진 위치에 삽입 또는 결실이 존재했다는 것을 나타내는지를 결정할 수 있으며, 그 후 삽입결실은 예컨대 기준 내에, 그것이 존재하지 않는 곳에 삽입될 수 있고, 그 영역과 중첩하는 로컬 파일업 내의 판독들을 재정렬하여 삽입 및/또는 결실이 그곳에 없었을 때 집합적으로 더 나은 스코어가 달성되는지를 알 수 있다. 따라서, 개선이 있는 경우, 파일업의 전체 판독 세트를 검토할 수 있고, 전체 세트의 스코어가 개선되었다면 그 위치에 실제로 삽입결실이 있었다고 결정하는 것이 명확하다. 이와 같은 방식으로, 염색체의 말단에 판독을 더 정확하게 정렬시키기 위한 컨텍스트가 충분하지 않다는 사실이 임의의 개별 판독에 대해 보상될 수 있다.
그러므로, 로컬 재정렬을 수행할 때, 하나 이상의 삽입결실이 위치될 수 있는 하나 이상의 파일업이 검사되고, 임의의 주어진 위치에 삽입결실을 추가함으로써 전체 정렬 스코어가 향상될 수 있는지가 결정된다.
예를 들어, 개인의 게놈 서열을 결정하기 위한 것과 같은 서열 분석 파이프라인에 포함될 수 있는 다른 모듈은 중복 마킹 모듈일 수 있다. 예를 들어, 서열 분석 단계 동안 발생할 수 있는 화학적 오류들을 보상하기 위해 중복 마킹 함수가 수행될 수 있다. 예를 들어, 위에 설명된 바와 같이, 일부 서열 분석 절차들 동안 핵산 서열들은 비드들에 부착되고, 라벨링된 뉴클레오티드 염기들을 이용하여 그 곳으로부터 구축된다. 이상적으로, 비드당 하나의 판독만이 있을 것이다. 그러나, 때때로 다수의 판독이 단일 비드에 부착되고, 이로 인해 부착된 판독의 카피들의 수가 너무 과다해진다. 이 현상은 판독 중복으로 알려져 있다.
정렬이 수행되고, 결과들이 획득되고, 및/또는 소팅 함수, 로컬 재정렬, 및/또는 중복제거가 수행된 후에, 결과적인 데이터에 변이 추출 함수가 이용될 수 있다. 예를 들어, 전형적인 변이 추출 함수 또는 그것의 부분들은 예컨대 집적 회로 상에, 소프트웨어 및/또는 하드와이어드 구성으로 구현되도록 구성될 수 있다. 특정하게는, 변이 추출은, 모든 다양한 정렬된 판독들로부터의 모든 중첩 영역들이 "파일업"을 형성하도록, 기준 상의 주어진 로케이션에 정렬되는 모든 판독들을 그룹화들로 위치시키는 것을 수반하는 프로세스이다. 그 후 기준 게놈의 주어진 영역을 커버하는 판독들의 파일업을 분석하여, 샘플링된 개인의 DNA/RNA의 가장 가능성이 있는 실제 콘텐츠가 해당 영역 내에 있는 것을 결정한다. 이는 그 후 게놈의 모든 영역에 대해 단계별로 반복된다. 결정된 콘텐츠는 기준 게놈으로부터 "변형들" 또는 "변이들"로 지칭되는 차이들의 리스트를 생성하고, 각각은 다른 메타데이터와 함께 연관된 신뢰 수준을 갖는다.
가장 흔한 변이들은 단일 염기가 기준과 상이한 단일 뉴클레오티드 다형성(SNP)들이다. SNP들은 인간 게놈 내의 1000개의 위치 중 약 1개에서 발생한다. 다음으로 가장 흔한 것은 (기준으로의) 삽입들 및 (기준로부터의) 결실들이고, 또는 집합적으로 "삽입결실들"이다. 이들은 더 짧은 길이에서 더 흔하지만, 임의의 길이일 수 있다. 그러나, 서열 분석된 세그먼트들("판독들")의 집합이 랜덤하여, 일부 영역들이 다른 것들보다 더 깊은 커버리지를 가질 것이기 때문에, 추가적인 문제들이 발생한다. 또한, 멀티-베이스 치환들, 및 길이 변경 치환들이라고 생각될 수 있는 치환들 및 삽입결실들의 조합들, 및 다염기 치환들을 포함하는 더 복잡한 변이들도 존재한다. 표준 소프트웨어 기반 변이 추출기들은 이들 모두를 식별하는 데 어려움이 있고, 변이 길이들에 대한 다양한 제한이 있다. 더 긴 변형들, 및 염색체들의 큰 변형들을 수반하는 많은 다양한 엑조틱 "구조적 변이들"을 식별하기 위해 소프트웨어 및/또는 하드웨어 양쪽 모두에서 더 특수화된 변이 추출기들이 필요하다.
그러나, 변이 추출은 소프트웨어로 구현하기에 어려운 절차이고, 하드웨어로 배치하기에는 더 어려운 크기의 세계이다. 이들 유형의 오류들을 고려하고 및/또는 검출하기 위해, 전형적인 변이 추출기들은 다음의 작업들 중 하나 이상을 수행할 수 있다. 예를 들어, 이들은 가설 유전형들의 세트(좌위(locus)에서 하나 또는 2개의 염색체의 콘텐츠)를 생각해내고, 베이지안 계산을 사용하여, 관찰된 증거를 고려하여 각각의 유전형이 진실일 사후 확률을 추정하고, 가장 가능성 있는 유전형을 그의 신뢰 수준과 함께 보고할 수 있다. 이에 따라 변이 추출기들은 단순하거나 복잡할 수 있다. 더 단순한 변이 추출기들은 수행되는 추출의 정확한 위치에서 정렬된 판독 파일업 내의 염기들의 열만을 검토한다. 더 진보된 변이 추출기들은, 수행되는 추출 주위의, 윈도우에서와 같은 컨텍스트를 고려하도록 구성될 수 있는 "단상형 기반 추출기들"이다.
"단상형(haplotype)"는 단일 공통 "가닥" 내의 특정한 DNA 콘텐츠(뉴클레오티드 서열, 변이들의 리스트 등)이고, 예를 들어, 영역 내의 2개의 이배체 가닥 중 하나이고, 단상형 기반 추출기는 동일한 판독에서 나타나는 것에 의해 그 차이들이 링크되는 베이지안 함의를 고려한다. 따라서, 본 명세서에서 제안되는 바와 같은 변이 추출 프로토콜은 게놈 분석 툴 키트(Genome Analysis Tool Kit, GATK)에서 및/또는 은닉 마르코프 모델(Hidden Markov Model, HMM) 툴 및/또는 드 브루인 그래프 함수를 사용하여 수행되는 것들과 같은 하나 이상의 개선된 함수들을 구현할 수 있고, 예컨대 이 경우 GATK 단상형 추출기, 및/또는 HMM 툴, 및/또는 드 브루인 그래프 함수에 의해 전형적으로 이용되는 하나 이상의 이들 함수는 소프트웨어로 및/또는 하드웨어로 구현될 수 있다.
더 특정하게는, 본 명세서에서 구현되는 바와 같이, 다양한 상이한 변이 추출 연산들이 소프트웨어 또는 하드웨어로 수행되도록 구성될 수 있고, 다음의 단계들 중 하나 이상을 포함할 수 있다. 예를 들어, 변이 추출 함수는, 예컨대, 다수의 판독이 기준과 불일치하는 장소들을 식별하기 위한, 그리고 식별된 활성 영역 주위에 윈도우를 생성하기 위한, 따라서 이들 영역만이 추가 프로세싱을 위해 선택될 수 있도록 하는, 활성 영역 식별을 포함할 수 있다. 추가적으로, 국부적인 단상형 조립이 행해질 수 있고, 예컨대 이 경우, 각각의 주어진 활성 영역에 대해, 모든 중첩하는 판독들이 "드 브루인 그래프"(DBG) 행렬로 조립될 수 있다. 이 DBG로부터, 행렬을 통한 다양한 경로들이 추출될 수 있고, 여기서 각각의 경로는 적어도 하나의 가닥 상에서 진정한 DNA 서열이 무엇일 수 있는지에 대한 후보 단상형, 예를 들어, 가설들을 구성한다.
게다가, 단상형 정렬이 행해질 수 있고, 예컨대 이 경우 각각의 추출된 단상형 후보는 기준으로부터의 어떤 변형(들)을 그것이 암시하는지를 결정하기 위해 다시 기준 게놈으로 정렬, 예를 들어, 스미스-워터만 정렬될 수 있다. 더욱이, 판독 우도 계산이 수행될 수 있고, 예컨대 이 경우 각각의 판독을 각각의 단상형 또는 가설에 대조하여 테스트하여, 그 단상형이 샘플링된 진정한 원래의 DNA임을 가정하여 판독을 관찰할 확률을 추정할 수 있다.
이들 프로세스들에 관하여, 판독 우도 계산은 전형적으로 수행될 가장 리소스 집약적이고 시간 소모적인 연산일 것이며, 종종 쌍 HMM 평가를 요구한다. 추가적으로, 아래에 설명된 바와 같이, 로컬로 및 글로벌로 고유한 K-mer들을 식별하는 연관된 연산들을 이용하여, 판독들의 각각의 파일업에 대한 드 브루인 그래프들의 구성하는 것 또한 리소스 집약적 및/또는 시간 소모적일 수 있다. 따라서, 다양한 실시예들에서, 이들 단계들 중 하나 이상을 수행하는 데 관련되는 다양한 계산들 중 하나 이상은, 본 명세서에 설명된 바와 같이, 예컨대 집적 회로에 의해 가속된 방식으로 수행되기 위해, 최적화된 소프트웨어 방식 또는 하드웨어로 구현되도록 구성될 수 있다.
위에 지적한 바와 같이, 다양한 실시예들에서, 소프트웨어로 및/또는 하드웨어 또는 이들의 조합으로 구현되는 본 개시내용의 단상형 추출기는 다음과 같은 연산들 중 하나 이상을 포함하도록 구성될 수 있다: 활성 영역 식별, 국부적인 단상형 조립, 단상형 정렬, 판독 우도 계산, 및/또는 유전형. 예를 들어, 본 개시내용의 디바이스들, 시스템들, 및/또는 방법들은 매핑, 정렬, 및/또는 소팅된 결과 데이터를 생성하기 위해 피험자의 서열 분석된 DNA/RNA로부터 획득된 데이터에 매핑, 정렬, 및/또는 소팅 연산 중 하나 이상을 수행하도록 구성될 수 있다. 그 후, 이 결과 데이터는 예컨대 그에 대해 중복제거 연산을 수행하는 것에 의해 클린업될 수 있고/있거나, 그 결과 데이터에 대해 위에 언급된 단계들 중 하나 이상을 포함하는 변이 추출 연산을 수행하여 그에 대한 변이 추출 파일을 생성하기 위해 그 데이터는 하나 이상의 전용 단상형 추출기 프로세싱 엔진들에 전달될 수 있다. 그러므로, 서열 분석된 그리고/또는 기준 게놈 내의 특정한 위치들에 매핑 및/또는 정렬된 모든 판독들에 추가 프로세싱을 적용하여, 결정된 서열이 기준 게놈 내의 임의의 주어진 지점에서 기준 서열과 어떻게 상이하는지를 결정할 수 있다.
따라서, 다양한 실시예들에서, 본 명세서에 개시된 바와 같은, 디바이스, 시스템, 및/또는 그의 사용의 방법은 획득된 결과 데이터에 대해 활성 영역 식별 연산을 수행하기 위해 소프트웨어 및/또는 하드와이어드 구성으로 구현되는 변이 또는 단상형 추출기 시스템을 포함할 수 있다.
활성 영역 식별은, 예를 들어, 판독들의 파일업 내의 다수의 판독들이 기준과 불일치하는 장소들을 식별하고 결정하는 것을 수반하고, 불일치들("활성 영역들") 주위의 하나 이상의 윈도우를 생성하여 그 윈도우 내의 영역이 추가 프로세싱을 위해 선택될 수 있도록 하는 것을 추가로 수반한다. 예를 들어, 매핑 및/또는 정렬 단계 동안, 식별된 판독들은 기준 게놈 내의 영역들에 매핑 및/또는 정렬되며, 여기서 이들은 피험자의 유전 서열에서 유래한 것으로 예상된다.
그러나, 게놈의 임의의 주어진 영역에 대한 서열 분석된 판독들의 오버샘플링을 생성하는 방식으로 서열 분석이 수행됨에 따라, 기준 서열 내의 임의의 주어진 위치에서 그 영역과 라인업되고 정렬되는 서열 분석된 판독들 중 임의의 것 및/또는 모두의 파일업이 보일 수 있다. 주어진 영역 또는 파일업 위치에서 정렬 및/또는 중첩하는 이들 판독 모두는 변이 추출기 시스템에 입력될 수 있다. 그러므로, 분석되고 있는 임의의 주어진 판독에 대해, 판독은 그의 의심되는 중첩 영역에서 기준과 비교될 수 있고, 그 판독은 기준의 알려진 서열로부터의 그의 서열의 임의의 차이를 나타내는지를 결정하기 위해 기준과 비교될 수 있다. 임의의 삽입 또는 결실 없이 판독이 기준에 라인업되고 모든 염기들이 동일하면, 정렬은 양호한 것으로 결정된다.
그러므로, 임의의 주어진 매핑 및/또는 정렬된 판독에 대해, 판독은 기준과 상이한 염기들을 가질 수 있고, 예를 들어, 판독은 염기가 미스매칭되는 위치를 생성하는 하나 이상의 SNP를 포함할 수 있고/있거나 판독은, 예를 들어, 정렬에 갭을 생성하는, 하나 이상의 삽입 및/또는 결실을 가질 수 있다. 따라서, 이들 경우 중 임의의 것에서, 추가 프로세싱에 의해 고려될 필요가 있는 하나 이상의 미스매칭이 있을 것이다. 그럼에도 불구하고, 시간을 절약하고 효율을 증가시키기 위해, 그러한 추가 프로세싱은 인지된 미스매칭이 사소하지 않은, 예를 들어, 노이즈가 아닌 차이(non-noise difference)인 경우들로 제한되어야 한다. 미스매칭의 유의성을 결정함에 있어서, 파일업 내의 다수의 판독이 기준으로부터 불일치하는 장소들이 활성 영역으로서 식별될 수 있고, 그 후 활성 영역 주위의 윈도우를 이용하여 이후 추가 프로세싱을 적용할 수 있는 불일치의 좌위를 선택할 수 있다. 그러나, 불일치는 사소하지 않은 것이어야 한다. 이는 많은 방식으로 결정될 수 있는데, 예를 들어, 문제의 각각의 좌위에 대해 비-기준 확률이 계산될 수 있고, 이는 예컨대, 현저화게 기준과 불일치하는 판독들로부터 충분히 현저한 양의 표시인 것으로 간주되는 주어진 임계치 위와 같은, 염기 매칭 대 미스매칭 품질 스코어들을 분석함으로써 이루어진다.
예를 들어, 30개의 매핑 및/또는 정렬된 모든 판독들이 라인업 및/또는 중첩하여 기준 내의 주어진 위치, 예를 들어 활성 영역에서 파일업을 형성하고, 30개의 판독 중에서 단지 1개 또는 2개만이 기준과 불일치하면, 추가 프로세싱을 위한 최소 임계치는 충족되지 않은 것으로 간주될 수 있고, 일치하지 않는 판독(들)은 일치하는 28개 또는 29개의 판독을 고려하여 무시될 수 있다. 그러나, 파일업 내의 판독들 중 3개 또는 4개, 또는 5개 또는 10개 또는 그 이상이 불일치하면, 그 불일치는 추가 프로세싱을 보증할 만큼 충분히 통계적으로 중요할 수 있고, 식별된 차이 영역(들) 주위의 활성 영역이 결정될 수 있다. 그러한 경우에, 그 차이를 둘러싸는 염기들을 확인하는 활성 영역 윈도우를 취하여 그 차이를 둘러싸는 영역에 향상된 컨텍스트를 제공할 수 있고, 이웃 위치들에 걸쳐 분포된 비-기준 확률들의 합 및 가우시안 분포를 수행하는 것과 같은 추가 프로세싱 단계들을 취하여 그 영역을 추가로 조사하고 프로세싱하여 활성 영역이 선언되어야 하는지 그리고 그렇다면 기준으로부터의 어떤 변이들이 있다면 그 영역 내에 존재하는지를 알아낼 수 있다. 따라서, 활성 영역의 결정은 진정한 변이 또는 판독 오류가 발생했는지를 명확히 결정하기 위해 추가의 프로세싱이 필요할 수 있는 영역들을 식별한다.
특정하게는, 많은 경우들에서, 서열들의 파일업 내의 모든 영역에 추가 프로세싱을 적용하는 것은 바람직하지 않기 때문에, 활성 영역이 식별될 수 있고, 그에 의해 추가 프로세싱을 필요로 하는 것으로 결정될 수 있는 진정한 변이 또는 판독 오류가 발생했는지를 명확히 결정하기 위해 추가의 프로세싱이 필요할 수 있는 곳은 그들 영역만이다. 그리고, 위에 지적한 바와 같이, 활성 영역의 윈도우의 크기를 결정하는 것은 추정된 변이의 크기일 수 있다. 예를 들어, 다양한 경우들에서, 활성 윈도우의 경계들은 1 또는 2 또는 약 10 또는 20 또는 심지어 약 25 또는 약 50 내지 약 200 또는 약 300, 또는 약 500 또는 약 1000 염기 길이 이상 달라질 수 있고, 여기서 추가 프로세싱이 행해지는 것은 활성 윈도우의 경계들 내부만이다. 물론, 활성 윈도우의 크기는 그것이 차이의 통계적 유의성을 결정하기 위한 컨텍스트를 제공하는 한 임의의 적합한 길이일 수 있다.
그러므로, 단지 하나 또는 2개의 격리된 차이가 존재하면, 활성 윈도우는 실제 변이가 존재하는 통계적 추출을 행하기에 충분한 컨텍스트를 갖도록 활성 영역 내의 하나 이상 내지 수십 개의 염기를 커버하기만 하면 될 수 있다. 그러나, 클러스터 또는 다발의 차이들이 존재하면, 또는 더 많은 컨텍스트를 원하는 삽입결실들이 존재하면, 윈도우는 더 크도록 구성될 수 있다. 어느 경우에도, 클러스터에서 발생할 수 있는 임의의 차가 및 모든 차이를 분석하여, 하나 이상의 활성 영역에서 그들 모두를 분석하는 것이 바람직할 수 있는데, 그 이유는 그렇게 하는 것이 각각의 개별 차이에 대한 정보를 지원하는 것을 제공할 수 있고 관여된 활성 윈도우의 수를 감소시킴으로써 프로세싱 시간을 절약할 것이기 때문이다. 다양한 경우들에서, 활성 영역 경계들은 약 0.00001 또는 약 0.00001 또는 약 0.0001 또는 그 미만 내지 약 0.002 또는 약 0.02 또는 약 0.2 또는 그 이상과 같은, 주어진 임계치를 통과하는 활성 확률들에 의해 결정될 수 있다. 그리고 활성 영역이 주어진 임계치, 예를 들어, 약 300 내지 500 염기 또는 1000 염기 또는 그 이상보다 더 길면, 그 영역은 서브-영역들로, 예컨대 최저 활성 확률 스코어를 갖는 좌위에 의해 정의된 서브-영역들에 의해 분할될 수 있다.
다양한 경우들에서, 활성 영역이 식별된 후에, 국부적인 단상형 조립 절차가 수행될 수 있다. 예를 들어, 각각의 활성 영역에서, 모든 쌓아올려진 및/또는 중첩하는 판독들이 "드 브루인 그래프"(DBG)로 조립될 수 있다. DBG는 선택된 활성 영역과 중첩한 모든 판독들에 기초한 지향성 그래프일 수 있고, 그 활성 영역은 약 200 또는 약 300 내지 약 400 또는 약 500 염기 길이 또는 이상일 수 있고, 그 활성 영역 내에서, 변이들의 존재 및/또는 아이덴티티가 결정되어야 한다. 다양한 경우들에서, 위에 지적한 바와 같이, 예컨대 차이를 둘러싸는 추가적인 컨텍스트를 원할 수 있는 경우, 활성 영역은, 예를 들어, 문제의 좌위의 각각의 방향에서 다른 약 100 또는 약 200개 또는 그 이상의 염기를 포함시키는 것에 의해 확장되어 확장된 활성 영역을 생성할 수 있다. 따라서, 활성 영역과 중첩하는 부분들을 갖는 모든 판독들을 쌓아올려, 예를 들어, 파일업을 생성하고, 중첩 부분들을 식별하고, 판독 서열들을 단상형 추출기 시스템 내로 스레딩하고, 그에 의해 마치 퍼즐의 조각들과 같이, 드 브루인 그래프의 형태로 함께 조립하는 것은, 확장된 또는 그렇지 않은, 활성 영역 윈도우로부터이다.
따라서, 임의의 주어진 활성 윈도우에 대하여, 파일업을 형성하는 판독들이 존재할 것이고, 따라서 집단으로 파일업은 파일업 내의 다양한 중첩하는 판독들의 중첩 영역들이 활성 윈도우 내의 전체 서열을 커버하는 서열 경로를 포함할 것이다. 그러므로, 활성 영역 내의 임의의 주어진 좌위에서, 비록 임의의 주어진 판독은 전체 활성 영역을 확장하지 않을 수 있지만, 그 좌위와 중첩하는 복수의 판독이 존재할 것이다. 이것의 결과는, 활성 영역 내의 서열 내의 임의의 주어진 좌위에 대해 변이가 실제로 존재하는지 여부를 결정하는 데 있어서 DBG에 의해 파일업 내의 다양한 판독들의 다양한 영역들이 이용된다는 것이다. 이 결정이 행해지는 것은 활성 윈도우 내이기 때문에, 고려되는 것은 활성 윈도우의 경계들 내의 임의의 주어진 판독의 부분들이고, 활성 윈도우 외부에 있는 부분들은 폐기될 수 있다.
지적한 바와 같이, DBG 시스템 내에 공급되는 것은 활성 영역 내의 기준과 중첩하는 판독들의 섹션들이다. 그 후, DBG 시스템은 퍼즐과 같은 판독들을 그래프로 조립하고, 그 후 서열 내의 각각의 위치에 대해, 그 위치에 대한 중첩하는 판독들의 집합에 기초하여, 임의의 주어진 경우에 대해 매칭 또는 미스매칭이 있는지, 그리고 미스매칭이 존재하는 경우, 그 미스매칭의 확률이 얼마인지가 결정된다. 예를 들어, 파일업 내의 판독들의 세그먼트들이 서로 중첩되는 개별 장소들이 있는 경우, 이들은 그들의 매칭 영역들에 기초하여 서로 정렬될 수 있고, 매칭의 지점들에 의해 결정된 바와 같이, 매칭하는 판독들을 함께 스트링 또는 스티칭하는 것으로부터, 그 세그먼트 내의 각각의 위치에 대해, 임의의 주어진 위치에서 판독들이 서로 매칭 또는 미스매칭하는지 그리고 어느 정도로 그런지가 확립될 수 있다. 그러므로, 컴파일되는 2개 이상의 판독이 잠시 동안 동일하게 라인업되고 서로 매칭되는 경우, 단일 스트링을 갖는 그래프가 생길 것이다; 그러나, 2개 이상의 판독이 차이의 지점에 올 때, 그래프 내의 분기가 형성될 것이고, 2개 이상의 판독 사이의 매칭이 재개될 때까지, 2개 이상의 분기 스트링이 생길 것이다.
그러므로, 그래프를 통한 경로들은 종종 직선이 아니다. 예를 들어, 판독의 k-mer들이 기준의 k-mer들 및/또는 예를 들어, 파일업 내의 하나 이상의 중첩하는 판독으로부터의 k-mer들과 달라지는 경우, 차이의 지점에서 그래프에 "버블"이 형성될 것이고, 2개의 서열 사이의 매칭이 재개될 때까지 2개의 상이한 경로 라인을 따라 계속될 2개의 분기 스트링을 초래할 것이다. 각각의 정점에는 각각의 K-mer들이 파일업 내의 모든 판독들에서 얼마나 많은 횟수 중첩하는지를 식별하는 가중된 스코어가 주어질 수 있다. 특정하게는, 하나의 측면으로부터 다른 측면으로 생성된 그래프를 통해 연장되는 각각의 경로에 카운트가 주어질 수 있다. 그리고 동일한 k-mer들이 다수의 판독으로부터 생성되는 경우, 예를 들어, 각각의 k-mer가 동일한 서열 패턴을 갖는 경우, 이들은 k-mer가 이미 존재하는 k-mer 경로와 중첩하는 경로에 대해 카운트를 증가시킴으로써 그래프에서 고려될 수 있다. 그러므로, 동일한 k-mer가 동일한 서열을 갖는 다수의 중첩하는 판독으로부터 생성되는 경우, 그래프 사이의 경로의 패턴은 다시 거듭거듭 반복될 것이고 그래프를 통해 이 경로를 횡단하기 위한 카운트는 그와 대응하여 증분적으로 증가될 것이다. 그러한 경우에, 패턴은 k-mer의 제1 인스턴스에 대해서만 기입되고, 카운트는 그 패턴을 반복하는 각각의 k-mer에 대해 증분적으로 증가된다. 이 모드에서, 어떤 변형들이 발생하는지 그리고 어느 곳인지를 결정하기 위해 파일업 내의 다양한 판독들이 하베스팅될 수 있다.
이와 같은 방식으로, 그래프 행렬은 10개의 염기 세그먼트에서 판독의 길이를 순차적으로 이동하는 것에 의해 각각의 주어진 판독으로부터 생성될 수 있는 모든 가능한 N개의 염기 k-mer, 예를 들어, 10개의 염기 k-mer를 취함으로써 형성될 수 있으며, 여기서 각각의 새로운 10개의 염기 세그먼트의 시작은 마지막으로 생성된 10개의 염기 세그먼트로부터 하나의 염기만큼 오프셋된다. 그 후, 이 절차는 활성 윈도우 내에서 파일업 내의 모든 판독에 대해 동일한 것을 행함으로써 반복될 수 있다. 생성된 K-mer들은 그 후 생성된 K-mer들 사이의 동일한 매칭의 영역들이 그들이 중첩하는 영역들에 매핑되어, 데이터 구조, 예를 들어, 그래프를 구축하도록, 서로 정렬될 수 있고, 그 데이터 구조는 그 후 스캐닝될 수 있고 매칭 및 미스매칭의 백분율이 결정될 수 있다. 특정하게는, 기준 및 그와 함께 정렬된 임의의 이전에 프로세싱된 k-mer들을 다음에 생성된 k-mer에 관하여 스캐닝하여, 인스턴트 생성된 k-mer가 이전에 생성된 k-mer의 임의의 부분과 매칭 및/또는 중첩되는지를 결정하고, 인스턴트 생성된 k-mer과 매칭하는 것으로 발견된 것은 그 후 적합한 위치에서 그래프에 삽입될 수 있다.
일단 구축되면, 그래프는 스캐닝될 수 있고 이 매칭에 기초하여 기준에 대한 판독들에서의 임의의 주어진 SNP들 및/또는 삽입결실들이 피험자의 유전 코드의 실제 변형 또는 프로세싱 또는 다른 오류의 결과일 가능성이 있는지가 결정될 수 있다. 예를 들어, 주어진 영역에서, 모든 판독들의 전부 또는 상당한 부분의 k-mer들의 전부 또는 상당한 부분이 동일한 SNP 및/또는 삽입결실 미스매칭을 포함하지만, 동일한 방식으로 기준과 상이하다면, 기준 게놈에 비해 피험자의 게놈에 실제로 SNP 및/또는 삽입결실 변형이 있는 것으로 결정될 수 있다. 그러나, 제한된 수의 판독들로부터의 제한된 수의 k-mer만이 아티팩트를 증거하는 경우, 그것은 문제의 위치에서의 진정한 변형을 나타내지 않고 머신 및/또는 프로세싱 및/또는 다른 오류에 의해 야기될 가능성이 있다.
지적한 바와 같이, 의심되는 변이가 있는 경우, 그래프 내에 버블이 형성될 것이다. 구체적으로는, 주어진 판독 영역 모두 내의 모든 K-mer들이 모두 기준과 매칭하는 경우, 이들은 선형 그래프를 형성하는 방식으로 라인업될 것이다. 그러나, 주어진 좌위에서 염기들 사이의 차이가 존재하는 경우, 그 차이의 좌위에서 그래프는 분기할 것이다. 이 분기는 k-mer 내의 임의의 위치에 있을 수 있고, 결과적으로 그 차이의 지점에서 그 차이를 포함하는 10개의 염기 k-mer가 그래프 내의 k-mer들 중 나머지로부터 분기할 것이다. 그러한 경우에, 그래프를 통해 상이한 경로를 형성하는 새로운 노드가 형성될 것이다.
그러므로, 모든 것이 일치했을 수 있는 경우, 예를 들어, 그래프 중인 주어진 새로운 k-mer 내의 서열이 그것이 그래프에서 정렬하는 서열과 매칭하고 있는 경우, 그 차이의 지점까지 그 k-mer에 대한 경로는 일반적으로 그래프에 대한 경로와 매칭할 것이 높은 선형일 것이지만, 그 차이의 지점 후에는, 그 그래프를 통한 새로운 경로가 출현하여 새롭게 그래프된 k-mer의 서열에 표현된 차이를 수용할 것이다. 이 분기는 그래프 내의 새로운 노드에 의해 표현된다. 그러한 경우에, 새롭게 분기하는 경로에 매칭되는 그래프에 추가될 임의의 새로운 k-mer들은 그 노드에서의 카운트를 증가시킬 것이다. 그러므로, 호(arc)를 지원하는 모든 판독에 대해, 카운트는 증분적으로 증가될 것이다.
다양한 그러한 경우들에서, k-mer 및/또는 그것이 표현하는 판독은, 예를 들어, 분기의 지점 후에, 다시 한 번 매칭을 시작하고, 그에 따라 이제 k-mer가 기준 서열의 k-mer에 의해 표현되는 그래프를 통해 주 경로와 매칭하는 것을 시작하는 수렴의 지점이 존재하게 될 것이다. 예를 들어, 자연적으로 잠시 후에 분기된 노드를 지원하는 판독(들)은 시간이 지남에 따라 그래프에 재결합할 것이다. 따라서, 시간이 지남에 따라, 그 판독에 대한 k-mer들은 주 경로에 다시 재결합할 것이다. 더 특정하게는, 판독 내의 주어진 좌위에서의 SNP에 대해, 그 SNP에서 시작하는 k-mer은 주 그래프로부터 분기할 것이고, 판독과 기준 사이의 미스매칭의 좌위와 중첩하는 k-mer 당 10개의 염기가 존재하기 때문에, 약 10개의 노드에 대해 개별적으로 유지될 것이다. 그러므로, SNP에 대해, 11번째 위치에서, 판독 내의 좌위를 커버하는 k-mer들은 정확한 매칭이 재개됨에 따라 주 경로에 재결합할 것이다. 결과적으로, 주어진 좌위에서 SNP를 갖는 판독의 K-mer들이 기준 서열에 의해 표현된 주 그래프에 재결합하기 위해서는 10개의 시프트가 필요할 것이다.
위에 지적한 바와 같이, 전형적으로, 기준 경로인 하나의 주 경로 또는 라인 또는 백본이 존재하고, 분기가 존재하는 경우, 판독과 백본 그래프 사이에 차이가 존재하는 노드에서 버블이 형성된다. 따라서 백본으로부터 분기하고 버블을 형성하는 일부 판독들이 있으며, 그 분기는 변이의 존재를 나타낼 수 있다. 그래프가 프로세싱됨에 따라, 버블들 내의 버블들 내의 버블들이 기준 백본을 따라 형성될 수 있고, 따라서 그들이 적층되고 그래프를 통한 복수의 경로가 생성될 수 있다. 그러한 경우에, 기준 백본에 의해 표현되는 주 경로, 제1 분기의 하나의 경로, 및 제1 분기 내의 제2 분기의 추가 경로가, 모두 주어진 윈도우 내에, 존재할 수 있고, 그래프를 통한 각각의 경로는 실제 변형을 표현할 수 있거나, 서열 분석 오류, 및/또는 PCR 오류, 및/또는 프로세싱 오류 등에 의해 야기되는 것과 같은 아티팩트일 수 있다.
일단 그러한 그래프가 생성되면, 그래프를 통한 어느 경로들이 샘플 게놈 내에 존재하는 실제 변형들을 표현하고 어느 것들이 단순한 아티팩트들인지가 결정되어야 한다. 비록, 핸들링 또는 머신 오류들을 포함하는 판독들은 샘플 파일업 내의 대부분의 판독들에 의해 지원되지 않을 것으로 예상되지만, 이는 항상 그렇지는 않다. 예를 들어, PCR 프로세싱에서의 오류들은 전형적으로 DNA 샘플을 준비할 때 발생하는 복제 실수의 결과일 수 있고, 그러한 실수들은 복제된 서열에 삽입 및/또는 결실이 추가되는 결과를 초래하는 경향이 있다. 그러한 삽입결실 오류들은 판독들 사이에서 더 일관될 수 있고, 결국 PCR 복제에서의 그러한 실수로부터 동일한 오류를 갖는 다수의 판독들을 생성하는 것으로 끝날 수 있다. 결과적으로, 그러한 오류들 때문에 그러한 분기의 지점에 대한 더 높은 카운트 라인이 생길 수 있다.
그러므로, 일단 그래프를 통한 많은 경로들을 갖는, 그래프 행렬이 형성되면, 다음 스테이지는 그래프를, 예를 들어, 좌측에서 우측으로 횡단하고 그에 의해 그를 통한 모든 경로들을 추출하는 것이다. 하나의 경로는 기준 백본일 것이지만, 도중에 다양한 버블들을 따르는 다른 경로들이 있을 것이다. 모든 경로들은 횡단되어야 하고 그들의 카운트는 표로 작성된다. 예를 들어, 그래프가 하나의 지점에 2 레벨 버블 및 다른 지점에 3 레벨 버블을 갖는 경로를 포함하는 경우, 그 그래프를 통해(2 x 3)6개의 경로가 존재할 것이다. 따라서, 경로들 각각은 개별적으로 추출될 필요가 있으며, 그 추출된 경로들은 후보 단상형들이라고 지칭된다. 그러한 후보 단상형들은 무엇이 서열 분석된 피험자의 실제 DNA를 실제로 대표할 수 있는지에 대한 이론들을 표현하고, 단상형 정렬, 판독 우도 계산, 및/또는 유전형 중 하나 이상을 포함하는 다음의 프로세싱 단계들을 이용하여 이들 이론을 테스트하여, 이들 이론 중 어느 것이든 및/또는 각각이 정확한 확률들을 찾을 수 있다. 따라서, 드 브루인 그래프 재구성의 구현은 테스트할 양호한 세트의 가설들을 신뢰성 있게 추출하는 방법을 표현한다.
예를 들어, 본 명세서에 개시된 바와 같이, 변이 추출 함수를 수행함에 있어서, 예컨대 주어진 영역 내의 파일업 내의 다수의 판독이 기준과 일치하는 장소들을 식별하기 위한, 그리고 식별된 활성 영역 주위에 윈도우를 생성하기 위한, 따라서 이들 영역만이 추가 프로세싱을 위해 선택될 수 있도록 하는, 활성 영역 식별 연산이 구현될 수 있다. 추가적으로, 국부적인 단상형 조립이 행해질 수 있고, 예컨대 이 경우, 각각의 주어진 활성 영역에 대해, 파일업 내의 모든 중첩하는 판독들이 "드 브루인 그래프"(DBG) 행렬로 조립될 수 있다. 이 DBG로부터, 행렬을 통한 다양한 경로들이 추출될 수 있고, 여기서 각각의 경로는 적어도 하나의 가닥 상에서 진정한 DNA 서열이 무엇일 수 있는지에 대한 후보 단상형, 예를 들어, 가설들을 구성한다.
게다가, 단상형 정렬이 행해질 수 있고, 예컨대 이 경우 각각의 추출된 단상형 후보는 기준으로부터의 어떤 변형(들)을 그것이 암시하는지를 결정하기 위해 다시 기준 게놈으로 정렬, 예를 들어, 스미스-워터만 정렬될 수 있다. 더욱이, 판독 우도 계산이 수행될 수 있고, 예컨대 이 경우 각각의 판독을 각각의 단상형에 대조하여 테스트하여, 그 단상형이 샘플링된 진정한 원래의 DNA임을 가정하여 판독을 관찰할 확률을 추정할 수 있다. 마지막으로, 유전형 분석이 구현될 수 있고, 변이 추출 파일이 생성될 수 있다. 위에 지적한 바와 같이, 이들 연산 중 임의의 것 또는 모두는 소프트웨어로 및/또는 하드웨어로 최적화된 방식으로 구현되도록 구성될 수 있고, 다양한 경우들에서, DBG 행렬을 구축하고 그로부터 후보 단상형들을 추출하는 것의 리소스 집약적이고 시간 소모적인 속성 때문에, 그리고/또는 은닉 마르코프 모델(HMM) 평가의 관여를 포함할 수 있는, 판독 우도 계산 및/또는 단상형 정렬을 수행하는 것의 리소스 집약적이고 시간 소모적인 속성 때문에, 이들 연산(예를 들어, 국부적인 단상형 조립, 및/또는 단상형 정렬, 및/또는 판독 우도 계산) 또는 이들의 일부분은, 예컨대 본 명세서에 설명된 바와 같은 집적 회로에 의해 가속된 방식으로 수행되도록, 하드와이어드 형태로 구현된 이들의 연산의 하나 이상의 함수를 갖도록 구성될 수 있다. 다양한 경우들에서, 이들 작업은 양자 컴퓨팅 디바이스에서와 같은 하나 이상의 양자 회로에 의해 구현되도록 구성될 수 있다.
따라서, 다양한 경우들에서, 동일한 것을 수행하기 위한 디바이스들, 시스템들, 및 방법들은 단상형 정렬 및/또는 판독 우도 계산을 수행하도록 구성될 수 있다. 예를 들어, 지적한 바와 같이, 각각의 추출된 단상형은 기준으로부터의 어떤 변형(들)을 그것이 암시하는지를 결정하기 위해 다시 기준 게놈으로 정렬, 예를 들어, 스미스-워터만 정렬될 수 있다. 다양한 예시적인 경우들에서, 다음의 예시적인 스코어링 파라미터들에 따라 스코어링이 행해질 수 있다: 매칭(match) = 20.0; 미스매칭(mismatch) = -15.0; 갭 개방(gap open) -26.0; 및 갭 연장(gap extend) = -1.1, 다른 스코어링 파라미터들이 사용될 수도 있다. 따라서, 이러한 방식으로, CIGAR 가닥이 생성되어 단상형과 연관되어 조립된 단상형을 생성할 수 있으며, 이 조립된 단상형이 결국 변이들을 식별하는 데 사용될 수 있다. 따라서, 이와 같은 방식으로, 주어진 판독이 주어진 단상형과 연관되는 가능성이 모든 판독/단상형 조합에 대해 계산될 수 있다. 그러한 경우에, 가능성은 은닉 마르코프 모델(HMM)을 이용하여 계산될 수 있다.
예를 들어, 다양한 조립된 단상형들은 SW 정렬과 유사한 동적 프로그래밍 모델에 따라 정렬될 수 있다. 그러한 경우에, 가상 행렬이 생성될 수 있고, 예컨대 이 경우 예를 들어 DBG에 의해 생성된 후보 단상형이 가상 어레이의 한 축 상에 위치될 수 있고, 판독은 다른 축 상에 위치될 수 있다. 그 후, 행렬은 그래프를 통해 추출된 경로들을 횡단하고 임의의 주어진 경로가 진정한 경로인 확률들을 계산함으로써 생성된 스코어들로 채워질 수 있다. 그러므로, 그러한 경우에, 전형적인 SW 정렬 프로토콜로부터의 이 정렬 프로토콜의 차이는 어레이를 통한 가장 가능성 있는 경로를 찾는 것과 관련하여, 단상형에 대한 판독들의 정렬에 대한 총 확률을 제공하도록 구성되는 HMM 모델에 의해 수행되는 계산과 같은 최대 우도 계산이 사용된다는 것이다. 그러므로, 이 경우에, 실제 CIGAR 가닥 정렬이 생성될 필요는 없다. 오히려 모든 가능한 정렬들이 고려되고 이들의 가능성들이 합산된다. 쌍 HMM 평가는 리소스 및 시간 집약적이고, 따라서, 집적 회로 내의 하드와이어드 구성 내에 또는 양자 컴퓨팅 플랫폼 상의 양자 회로들을 통해 그의 연산들을 구현하는 것은 매우 유리하다.
예를 들어, 각각의 판독을 각각의 후보 단상형에 대조하여 테스트하여, 그 단상형이 샘플링된 원래의 DNA를 대표하는 진실임을 가정하여 판독을 관찰할 확률을 추정할 수 있다. 다양한 경우들에서, 이 계산은 예를 들어 PCR 또는 서열 분석 오류들 등에 의해 단상형 후보가 수정되었을 수 있고, 관찰된 판독에 변형이 도입되었을 수 있는 다양한 가능한 방식들을 모델링하도록 구성될 수 있는 "쌍 은닉 마르코프 모델"(HMM)을 평가함으로써 수행될 수 있다. 그러한 경우들에서, HMM 평가는 판독에서의 임의의 분기가 오류 모델의 결과일 수 있는 가능성을 고려하여 관찰된 판독에 임의의 일련의 마르코프 상태 전이들이 도달하는 총 확률을 계산하기 위해 동적 프로그래밍 방법을 이용할 수 있다. 따라서, 그러한 HMM 계산들은, 예컨대 증폭 및/또는 서열 분석 아티팩트들에 의해, 판독들 중 하나 이상에 도입되었을 수 있는 모든 가능한 SNP들 및 삽입결실들을 분석하도록 구성될 수 있다.
특정하게는, 쌍 HMM은 기준 후보 단상형들에 대한 판독의 모든 가능한 정렬들을 그들 각각과 연관된 확률과 함께 가상 행렬에서 고려하고, 모든 확률들이 합산된다. 주어진 경로를 따른 모든 변이들의 모든 확률들의 합을 가산하여 각각의 판독에 대한 하나의 중요한 확률을 얻는다. 그 후, 이 프로세스는 모든 쌍에 대해, 모든 단상형, 판독 쌍에 대해 수행된다. 예를 들어, 주어진 영역, 예를 들어, 6개의 단상형 후보의 영역과 중첩하는 6 파일업 클러스터가 존재하면, 그리고 파일업이 약 백 개의 판독을 포함하면, 600개의 HMM 연산이 수행될 필요가 있을 것이다. 더 특정하게는, 6개의 단상형이 존재하면, 경로를 통해 6개의 분기가 있을 것이고 각각의 것이 그 영역에 대한 피험자의 실제 유전 코드와 매칭되는 정확한 경로일 확률이 계산되어야 한다. 결과적으로, 모든 판독들에 대한 각각의 경로가 고려되어야 하고, 이 주어진 단상형에 도달할 각각의 판독에 대한 확률이 계산되어야 한다.
쌍 은닉 마르코프 모델은 샘플링된 DNA 내의 진정한 단상형이 가능한 상이한 검출된 판독으로 변환될 수 있는 방법에 대한 근사 모델이다. 이들 유형의 변환들은 PCR 프로세스에 의해, 다른 샘플 준비 단계들 중 하나 이상에 의해, 및/또는 서열 분석 프로세스에 의해 야기된 오류 등에 의해 유전 샘플 세트에 도입된 삽입결실들 및 SNP들의 조합이라는 것이 관찰되었다. 도 2와 관련하여 알 수 있는 바와 같이, 이들 유형의 오류들을 고려하기 위해, 기저의 3-상태 염기 모델이 이용될 수 있고, 예컨대 이 경우: (M = 정렬 매칭, I = 삽입, D = 결실)이고, 추가로 I <-> D를 제외하고 임의의 전이가 가능하다.
도 2와 관련하여 알 수 있는 바와 같이, 3-상태 염기 모델 전이들은 시간 서열이 아니라, 오히려 각각의 서열에서 위치 0에서 시작하는 후보 단상형 및 판독 서열들을 통한 진행의 서열에 있으며, 여기서 제1 염기는 위치 1이다. M으로의 전이는 양쪽 서열에서의 위치 +1을 암시한다; I로의 전이는 판독 서열에서만의 위치 +1을 암시한다; D로의 전이는 단상형 서열에서만의 위치 + 1을 암시한다. 동일한 3-상태 모델은 또한, 본 명세서에 설명된 바와 같은, 스미스-워터만 및/또는 니들만-분쉬 정렬들의 기저를 이루도록 구성될 수도 있다. 따라서, 본 명세서에 설명된 바와 같은, 그러한 3-상태 모델은, SW 및/또는 NW 프로세스에서 이용되고 그에 의해 어파인 갭(삽입결실) 스코어링을 허용할 수 있고, 여기서 갭 개방(I 또는 D 상태에 진입함)은 갭 연장(I 또는 D 상태에 남아 있음)보다 가능성이 더 적을 것으로 추정된다. 그러므로, 이 경우에, 쌍 HMM은 정렬로서 보일 수 있고, CIGAR 스트링은 다양한 상태 전이들의 서열을 인코딩하도록 생성될 수 있다.
다양한 경우들에서, 3-상태 염기 모델은 전이 확률들이 위치에 의해 달라지도록 허용함으로써 복잡할 수 있다. 예를 들어, 모든 M개의 전이의 확률들은 그의 염기 품질 스코어가 주어진 다음 판독 염기, 및 대응하는 다음 단상형 염기를 관찰하는 사전 확률들과 곱해질 수 있다. 그러한 경우에, 염기 품질 스코어들은 서열 분석 SNP 오류의 확률로 변환될 수 있다. 2개의 염기가 매칭될 때, 사전 확률은 1 마이너스 이 오류 확률로서 간주되고, 그것들이 미스매칭할 때, 그것은 오류 확률을 3으로 나눈 값으로 간주되는데 이는 3개의 가능한 SNP 결과가 있기 때문이다.
위의 논의는 추상 "마르코비시(Markovish)" 모델에 관한 것이다. 다양한 경우들에서, 최대 우도 전이 서열이 또한 결정될 수 있고, 이는 본 명세서에서 정렬이라고 지칭되고, 니들만-분쉬 또는 다른 동적 프로그래밍 알고리즘을 사용하여 수행될 수 있다. 그러나, 다양한 경우들에서, 본 명세서에 개시된 바와 같이, 변이 추출 함수를 수행함에 있어서, 최대 우도 정렬, 또는 임의의 특정한 정렬이 주요 관심사일 필요는 없다. 오히려, 총 확률은, 예를 들어, 단상형을 고려하여 판독을 관찰할 총 확률을 계산함으로써 계산될 수 있는데, 이는 임의의 단상형 위치에서의 판독 위치 0으로부터 임의의 단상형 위치에서의 판독 종료 위치까지 그래프를 통한 모든 가능한 전이 경로들의 확률들의 합이고, 각각의 성분 경로 확률은 단순히 다양한 구성 전이 확률들의 곱이다.
경로 확률들의 합을 구하는 것은 또한, 위에 설명된 바와 같이, 가상 어레이를 이용하고 동적 프로그래밍 알고리즘을 이용하여 행해질 수도 있고, 그에 따라 (0 ... N) x (0 ... M) 행렬의 각각의 셀에는, M, D 및 I 전이 상태들에 대응하여, 계산된 3개의 확률 값이 존재하게 된다. (또는 동등하게, 3개의 행렬이 존재한다.) 행렬의 상단 행(판독 위치 0)은 D 상태들에서 확률 1.0으로, I 및 M 상태들에서 0.0으로 초기화될 수 있고; 좌측 열(단상형 위치 0)의 나머지는 모두 0으로 초기화될 수 있다. (소프트웨어에서, 초기 D 확률들은 언더플로우를 피하기 위해 배정밀도 최대 값, 예를 들어, 2^1020 근처로 설정될 수 있지만, 이 인자는 나중에 정규화될 수 있다.)
이 3-대-1 계산 종속성은 셀들이 계산될 수 있는 순서를 한정한다. 이들은 각각의 행에서 좌측에서 우측으로, 행들을 통하여 상부에서 하부로 진행하거나, 또는 각각의 열에서 상부에서 하부로, 우측으로 진행하여 계산될 수 있다. 추가적으로, 이들은 반대-대각선 파면들에서 계산될 수 있고, 여기서 다음 단계는 모든 셀들 (n,m)을 계산하는 것이고, 여기서 n+m은 증분된 스텝 번호와 동일하다. 이 파면 순서는 반대-대각선 내의 모든 셀들이 서로 독립적으로 계산될 수 있다는 이점을 갖는다. 그 후 행렬의 하단 행은, 최종 판독 위치에서, 완료된 정렬들을 표현하도록 구성될 수 있다. 그러한 경우에, 단상형 추출기는 모든 하단 행 셀들의 I 및 M 확률들을 합산함으로써 작업할 것이다. 다양한 실시예들에서, 시스템은 이중 카운팅을 피하기 위해, 하단 행 내에서 어떠한 D 전이도 허용되지 않거나, 거기서 0.0의 D 전이 확률이 사용될 수 있도록 설정될 수 있다.
본 명세서에 설명된 바와 같이, 다양한 경우들에서, 각각의 HMM 평가는 서열 쌍에 대해, 예컨대 후보 단상형 및 판독 쌍에 대해 작용할 수 있다. 예를 들어, 주어진 활성 영역 내에서, 세트의 단상형들 각각은 세트의 판독들 각각에 대해 HMM 평가될 수 있다. 그러한 경우에, 소프트웨어 및/또는 하드웨어 입력 대역폭은 세트의 판독들 및/또는 세트의 단상형들을 한 번 전송하고, 소프트웨어 및/또는 하드웨어가 NxM 쌍 연산들을 생성하게 함으로써 감소 및/또는 최소화될 수 있다. 특정 경우들에서, 스미스-워터만 평가기는 각각이 그 자신의 판독 및 단상형 데이터의 카피를 갖는, 개별 HMM 연산들을 큐잉하도록 구성될 수 있다. 스미스-워터만(SW) 정렬 모듈은 선형 공간에서의 쌍 HMM 계산을 실행하도록 구성될 수 있거나 또는 로그 확률 공간에서 동작할 수 있다. 이는 고정 소수점 값들을 갖는 확률 값들의 거대 범위에 걸쳐 정밀도를 유지하는 데 유용하다. 그러나, 다른 경우들에서, 부동 소수점 연산들이 사용될 수 있다.
3개의 병렬 승산(예를 들어, 로그 공간에서의 가산), 그 후 2개의 직렬 가산(~5-6개의 스테이지 근사화 파이프라인), 그 후 추가 승산이 있다. 그러한 경우에, 전체 파이프라인은 약 L= 12-16 사이클 길이일 수 있다. I & D 계산들은 길이의 약 절반일 수 있다. 파이프라인에는 각각의 사이클마다 다수의 입력 확률, 예컨대, 2개 또는 3개 또는 5개 또는 7개 또는 그 이상의 입력 확률이, 예컨대 하나 이상의 이미 계산된 이웃 셀로부터 공급될 수 있다(좌측으로부터의 M 및/또는 D, 및/또는 위로부터의 M 및/또는 I, 및/또는 좌측 위로부터의 M 및/또는 I 및/또는 D). 이는 또한 하나 이상의 단상형 염기, 및/또는 하나 이상의 판독 염기와, 예컨대 각각의 사이클마다, 연관된 파라미터들, 예를 들어, 프리프로세싱된 파라미터들을 포함할 수 있다. 이는 폴-스루 레이턴시(fall-through latency) 후에, 각각의 사이클마다 하나의 셀에 대해 M & I & D 결과 세트를 출력한다.
위에 지적한 바와 같이, 본 명세서에 개시된 바와 같이, 변이 추출 함수를 수행함에 있어서, 드 브루인 그래프가 공식화될 수 있고, 파일업 내의 모든 판독들이 동일할 때, DBG는 선형일 것이다. 그러나, 차이들이 존재하는 경우, 그래프는 차이들의 영역들을 나타내는 "버블들"을 형성하여, 다수의 경로들이 기준 정렬과 매칭하는 것으로부터 분기하고 그 후 나중에 매칭 정렬에서 재결합되는 결과를 초래할 것이다. 이 DBG로부터, 적어도 하나의 가닥 상에서 진정한 DNA 서열이 무엇일 수 있는지에 대한 후보 단상형, 예를 들어, 가설들을 형성하는, 다양한 경로들이 추출될 수 있고, 그 가설들은 데이터에 대해 HMM, 또는 수정된 HMM 연산을 수행함으로써 테스트될 수 있다. 게다가 또한, 유전형 함수가 이용될 수 있고 예컨대 이 경우 후보 단상형들의 가능한 이배체 조합들이 형성될 수 있고, 이들 각각에 대해, 전체 판독 파일업을 관찰하는 조건부 확률이 계산될 수 있다. 그 후, 이들 결과는, 관찰된 전체 판독 파일업이 주어지면, 각각의 유전형이 진실인 절대 확률을 계산하기 위해 베이지안 공식 모듈에 공급될 수 있다.
그러므로, 본 명세서에 설명된 디바이스들, 시스템들, 및 이들의 사용 방법들에 따라, 다양한 경우들에서, 유전형 분석이 수행될 수 있고, 이 유전형 분석은 소프트웨어로 및/또는 하드웨어로 및/또는 양자 프로세싱 유닛에 의해 최적화된 방식으로 구현되도록 구성될 수 있다. 예를 들어, 후보 단상형들의 가능한 이배체 조합들이 형성될 수 있고, 각각의 조합에 대해, 예컨대 쌍 HMM 평가로부터 각각의 단상형을 고려하여 각각의 판독을 관찰하는 구성 확률들을 사용하여, 전체 판독 파일업을 관찰하는 조건부 확률이 계산될 수 있다. 이들 계산의 결과는, 관찰된 전체 판독 파일업이 주어지면, 각각의 유전형이 진실인 절대 확률을 계산하기 위해 베이지안 공식에 공급된다.
따라서, 다양한 양태들에서, 본 개시내용은 생성 및/또는 공급된 데이터에 대해 단상형 또는 변이 추출 연산을 수행하여 그에 대한 변이 추출 파일을 생성하기 위한 시스템에 관한 것이다. 구체적으로는, 위에 본 명세서에 설명된 바와 같이, 특정한 경우들에서, 변이 추출 파일은 하나의 서열과 다른 것 사이의 차이, 예컨대 샘플 서열과 기준 서열 사이의 차이를 인코딩하는 디지털 또는 다른 그러한 파일일 수 있다. 구체적으로는, 다양한 경우들에서, 변이 추출 파일은 하나 이상의 기준 게놈과 비교하여 사람의 유전 구성에서의 유전 및/또는 구조적 변형들을 설명하거나 달리 상세히 기술하는 텍스트 파일일 수 있다.
예를 들어, 단상형은 세트의 유전, 예를 들어, DNA 및/또는 RNA, 변형들, 예컨대 사람의 염색체 내에 존재하고 이에 따라 자식에게 전달되고 그에 의해 함께 유전될 수 있는 다형성들이다. 특정하게는, 단상형은 대립 유전자들의 조합, 예를 들어, 돌연변이에 의해 발생할 수 있는 것과 같은 유전자의 복수의 대안적인 형태 중 하나를 지칭할 수 있고, 그 대립 유전자의 변형들은 전형적으로 염색체 상의 동일한 장소에서 발견된다. 그러므로, 사람의 게놈의 아이덴티티를 결정함에 있어서, 특정한 사람의 유전 서열이 어떤 형태의 다양한 상이한 가능한 대립 유전자들에 대해 코딩하고 있는지를 아는 것이 중요하다. 특정한 경우들에서, 단상형은 동일한 염색체 상의 동일한 위치에서 발견될 수 있는 하나 이상의, 예를 들어, 세트의, 뉴클레오티드 다형성들(예를 들어, SNP들)을 지칭할 수 있다.
전형적으로, 다양한 실시예들에서, 본 명세서에 그리고 위에 설명된 바와 같이, 피험자에 대한, 유전형, 예를 들어 대립 유전자의 단상형들을 결정하기 위해, 개인의 유전 서열에서 SNP들 및/또는 삽입들 및/또는 결실들, 즉 삽입결실들을 동시에 결정하기 위해, 단상형 추출 프로그램, 예를 들어, GATK를 이용하는 알고리즘과 같은, 소프트웨어 기반 알고리즘이 관여될 수 있다. 특히, 이 알고리즘은 프로세싱되고 있는 유전 서열의 하나 이상의 활성 영역에서의 단상형의 로컬 데-노보 조립을 위한 것과 같은 하나 이상의 단상형 조립 프로토콜을 수반할 수 있다. 그러한 프로세싱은 전형적으로 랜덤하게 변화하는 시스템들을 예시하는 데 사용되는 확률적 및/또는 통계적 모델인 은닉 마르코프 모델(HMM)이라고 지칭되는 프로세싱 함수의 배치를 수반하는데 예컨대 이 경우 시스템 내의 미래 상태들이 그것에 선행하는 이벤트들의 시퀀스가 아니라 현재 상태에만 의존하는 것으로 가정된다.
그러한 경우들에서, 모델링되는 시스템은 특성들을 포함하거나, 그렇지 않으면 관찰되지 않은(은닉된) 상태들을 갖는 마르코프 프로세스인 것으로 가정된다. 특정한 경우들에서, 모델은 단순한 동적 베이지안 네트워크를 포함할 수 있다. 특정하게는, 유전 변형을 결정하는 것과 관련하여, 그것의 가장 단순한 형태로, 예컨대 기준 서열, 예를 들어, 가설 단상형의 세그먼트와, 피험자의 DNA 또는 RNA, 예를 들어, 서열분석기로부터 유도된 판독의 세그먼트를 비교할 때, 프로세싱되고 있는 서열에서 임의의 주어진 염기의 아이덴티티에 대한 4개의 가능성 중 하나가 존재한다. 그러나, 그러한 변형을 결정하기 위해서는, 제1 경우에, 피험자의 DNA/RNA를, 예를 들어, 차세대 서열분석기("NGS")를 통해 서열 분석하여, 피험자의 유전 코드를 식별하는 판독 또는 "판독들"을 생성해야 한다. 다음으로, 일단 피험자의 게놈을 서열 분석하여 하나 이상의 판독을 생성하면, 본 명세서에서 위에 더 상세히 설명된 바와 같이, 피험자의 DNA 및/또는 RNA를 대표하는 다양한 판독들을 매핑 및/또는 정렬시킬 필요가 있다. 그 후, 프로세스의 다음 단계는 방금 결정된, 예를 들어, 매핑 및/또는 정렬된, 단지 결정된 피험자의 유전자들이 원형의 기준 서열의 것으로부터 어떻게 달라지는지를 결정하는 것이다. 따라서, 그러한 분석을 수행함에 있어서, 피험자의 주어진 유전자를 잠재적으로 표현하는 판독은 비록 현재 결정되어야 하는 다양한 SNP들 및/또는 삽입결실들을 갖지만 원형의 단상형의 표현이라고 가정된다.
구체적으로는, 특정한 양태들에서, 예를 들어, 가속된 단상형 추출기에서 HMM 함수를 전개하는 것과 같이, 단상형 및/또는 변이 추출 함수를 수행하기 위한 것과 같은, 동일한 것을 실시하기 위한, 디바이스들, 시스템들, 및/또는 방법들이 제공된다. 다양한 경우들에서, 이들 및 본 기술분야에 공지된 다른 그러한 다양한 문제점들을 극복하기 위해, 본 명세서에서 제시된 HMM 가속기는 소프트웨어로 구현되거나, 하드웨어로 구현되거나, 또는 부분적으로는 소프트웨어에 의해 및/또는 부분적으로 하드웨어에 의해 구현되고/되거나 달리 제어되는 것의 조합의 방식으로 연산되도록 구성될 수 있고/있거나 양자 컴퓨팅 구현들을 포함할 수 있다. 예를 들어, 특정한 양태에서, 본 개시내용은 피험자의 DNA 및/또는 RNA 서열 아이덴티티에 관한 데이터 및/또는 피험자의 유전 정보가 기준 게놈의 것과 어떻게 상이할 수 있는지가 결정될 수 있는 방법에 관한 것이다.
그러한 경우에, 이 방법은 HMM 프로토콜을 이용하는 것과 같은, 단상형 또는 변이 추출 함수의 구현에 의해 수행될 수 있다. 특정하게는, HMM 함수는 본 명세서에 설명된 방법에 따라, 하드웨어, 소프트웨어로, 또는 예컨대 가속된 디바이스 상의 하나 이상의 양자 회로를 통해 수행될 수 있다. 그러한 경우에, HMM 가속기는 서열 분석, 매핑, 및/또는 정렬된 데이터를 수신하고 이를 프로세싱하도록, 그것을 프로세싱하여, 예를 들어, 변이 추출 파일을 생성할 뿐만 아니라, 프로세싱된 데이터를 다시 시스템 전체에 걸쳐 전송하도록 구성될 수 있다. 따라서, 이 방법은 데이터가 소프트웨어-제어 CPU 또는 GPU 또는 심지어 QPU와 같은 프로세서로부터 가속된 HMM을 구현하는 단상형 추출기로 전송될 수 있는 시스템을 배치하는 단계를 포함할 수 있고, 그 단상형 추출기는 FPGA, ASIC, 또는 구조화된 ASIC와 같은 마이크로프로세서 칩 상에 배치될 수 있거나, 또는 하나 이상의 양자 회로에 의해 구현될 수 있다. 이 방법은 데이터를 프로세싱하여 HMM 결과 데이터를 생성하기 위한 단계들을 추가로 포함할 수 있고, 그 결과들은 그 후 CPU 및/또는 GPU 및/또는 QPU에 피드백될 수 있다.
특정하게는, 일 실시예에서, 도 3a와 관련하여 알 수 있는 바와 같이, HMM 가속기를 포함하는 생물정보학 파이프라인 시스템이 제공된다. 예를 들어, 하나의 경우에, 생물정보학 파이프라인 시스템은 변이 추출 시스템(1)으로서 구성될 수 있다. 이 시스템은 하드웨어로 구현되는 것으로 예시되지만, 예컨대 양자 컴퓨팅 플랫폼의 하나 이상의 양자 회로를 통해 구현될 수도 있다. 구체적으로는, 도 3a는 HMM 인터페이스 구조의 하이-레벨 뷰를 제공한다. 특정한 실시예들에서, 변이 추출 시스템(1)은 HMM 연산과 같은 변이 추출 연산의 적어도 일부를 가속하도록 구성된다. 그러므로, 다양한 경우들에서, 변이 추출 시스템은 본 명세서에서 HMM 시스템(1)으로서 참조될 수 있다. 시스템(1)은 예컨대 서열 분석된 유전 서열을 하나 이상의 기준 서열과 비교하기 위해, 유전 정보의 서열 분석 및/또는 프로세싱과 관련된 하나 이상의 루틴을 수행하도록 구성된 하나 이상의 중앙 프로세싱 유닛(CPU/GPU/QPU)(1000)을 갖는 서버를 포함한다.
추가적으로, 시스템(1)은 FPGA, ASIC, 또는 sASIC와 같은 마이크로칩(7)을 포함하는, 확장 카드와 같은 주변 디바이스(2)를 포함한다. 일부 경우들에서, 하나 이상의 양자 회로가 제공되고 본 명세서에 설명된 다양한 연산들을 수행하도록 구성될 수 있다. 또한 유의해야 할 점은 용어 ASIC는 적합한 경우에 구조화된 ASIC(sASIC)를 동등하게 지칭할 수 있다는 점이다. 주변 디바이스(2)는 인터커넥트(3), 및 병렬 또는 직렬 버스와 같은 버스 인터페이스(4)를 포함하고, 이는 CPU/GPU/QPU(1000)를 칩(7)과 연결한다. 예를 들어, 디바이스(2)는 PCI, PCI-X, PCIe, 또는 QPI(퀵 패스 인터커넥트)와 같은 주변 컴포넌트 인터커넥트를 포함할 수 있고, 예컨대 낮은 레이턴시, 높은 데이터 전송 레이트들을 위해, CPU/GPU/QPU(1000)를 주변 디바이스(2)에 동작가능하게 및/또는 통신가능하게 연결하도록 적응되는 버스 인터페이스(4)를 포함할 수 있다. 따라서, 특정한 경우들에서, 인터페이스는 마이크로칩(7)과 연관되는 주변 컴포넌트 인터커넥트 익스프레스(PCIe)(4)일 수 있으며, 마이크로칩은 HMM 가속기(8)를 포함한다. 예를 들어, 특정한 경우들에서, HMM 가속기(8)는 가속된 HMM 함수를 수행하도록 구성되고, 예컨대 이 경우 HMM 함수는, 특정 실시예들에서, FPGA, AISC, 또는 sASIC의 하드웨어에서 또는 하나 이상의 적합하게 구성된 양자 회로를 통해 적어도 부분적으로 구현될 수 있다.
구체적으로는, 도 3a는 HMM 작업을 포함하는 것과 같은 변이 추출 함수의 하나 이상의 프로세스를 수행하기 위한, 복수의 프로세싱 엔진(13a 내지 13m+1)과 같은 하나 이상의 엔진(13)의 예시적인 조직을 갖는 HMM 가속기(8)의 하이-레벨 도면을 제시한다. 따라서, HMM 가속기(8)는 데이터 분배기(9), 예를 들어, CentCom, 및 하나 이상의 인스턴스(13)로서 조직될 수 있거나 달리 이를 포함하는 하나의 또는 다수의 프로세싱 클러스터(11 내지 11n+1)로 구성될 수 있으며, 예컨대 이 경우 각각의 인스턴스는 작은 엔진(13a 내지 13m+1)과 같은 프로세싱 엔진으로서 구성될 수 있다. 예를 들어, 분배기(9)는, 예컨대 CPU/GPU/QPU(1000)로부터 데이터를 수신하고, 그 데이터를 다수의 HMM 프로세싱 클러스터(11) 중 하나 이상에 분배 또는 달리 전송하도록 구성될 수 있다.
특정하게는, 특정 실시예들에서, 분배기(9)는 온-보드 PCIe 인터페이스(4)와 HMM 가속기 모듈(8) 사이에 논리적으로 위치될 수 있고, 예컨대 이 경우 인터페이스(4)는 예컨대 인터커넥트 또는 다른 적합하게 구성된 버스(5), 예를 들어, PCIe 버스를 통해 분배기(9)와 통신한다. 분배기 모듈(9)은 예컨대 하나 이상의 클러스터 버스(10)를 통해 하나 이상의 HMM 가속기 클러스터(11)와 통신하도록 적응될 수 있다. 예를 들어, HMM 가속기 모듈(8)은, 클러스터들(11a 내지 11n+1)의 어레이로서 구성되거나 달리 이를 포함할 수 있고, 예컨대 이 경우 각각의 HMM 클러스터(11)는 클러스터 허브(11)로서 구성되거나 달리 이를 포함할 수 있고/있거나 하나 이상의 인스턴스(13)를 포함할 수 있고, 이 인스턴스는 그에 의해 수신된 데이터에 대해 하나 이상의 연산을 수행하도록 적응되는 프로세싱 엔진(13)으로서 구성될 수 있다. 따라서, 다양한 실시예들에서, 각각의 클러스터(11)는 클러스터 허브(11a 내지 11n+1)로서 형성될 수 있거나 달리 이를 포함할 수 있고, 여기서 허브들 각각은 다수의 HMM 가속기 엔진 인스턴스들(13a 내지 13m+1)과 동작가능하게 연관될 수 있으며, 예컨대 이 경우 각각의 클러스터 허브(11)는 클러스터(11) 내의 복수의 프로세싱 엔진(13a 내지 13m+1)에 데이터를 보내도록 구성될 수 있다.
다양한 경우들에서, HMM 가속기(8)는, 예컨대 판독 형식의, 피험자의 서열 분석된 유전 코드의 각각의 염기를, 기준 서열의 다양한 공지된 또는 생성된 후보 단상형들과 비교하고, 관련된 단상형, 예를 들어, 판독과 매칭하거나 또는 매칭하지 않는 것으로 고려되는 위치에서의 임의의 주어진 염기가 SNP, 삽입, 또는 결실을 포함하고, 그에 의해 결과적으로 고려되는 위치에서의 염기의 변형을 초래할 확률을 결정하도록 구성된다. 특정하게는, 다양한 실시예들에서, HMM 가속기(8)는 아래에 본 명세서에 더 상세히 설명된 바와 같이, 판독의 염기들의 서열이 이들 상태들, 매칭("M"), 삽입("I"), 또는 결실("D") 사이에 이동하는 전이 확률들을 할당하도록 구성된다.
더 특정하게는, 구성에 따라, HMM 가속 함수는 예컨대 CPU/GPU/QPU(1000) 및/또는 마이크로칩(7)에 의해, 소프트웨어로 구현될 수 있고/있거나, 하드웨어로 구현될 수 있고, 마이크로칩(7) 내에 존재, 예컨대 주변 확장 카드 또는 보드(2) 상에 위치될 수 있다. 다양한 실시예들에서, 이 기능성은 부분적으로는, 예를 들어, CPU/GPU/QPU(1000)에 의해 실행되는 소프트웨어로서, 부분적으로는, 칩(7) 상에 구현되는 하드웨어로서 또는 하나 이상의 양자 프로세싱 회로를 통해 구현될 수 있다. 따라서, 다양한 실시예들에서, 칩(7)은 CPU/GPU/QPU(1000)의 마더보드 상에 존재할 수 있거나, 또는 주변 디바이스(2)의 일부일 수 있거나, 또는 양쪽 모두일 수 있다. 결과적으로, HMM 가속기 모듈(8)은 프로세싱 엔진들(13)로의 그리고 그로부터의 데이터의 효율적인 전송을 허용하기 위해 다양한 인터페이스들, 예를 들어, 3, 5, 10, 및/또는 12를 포함하거나 달리 이와 연관될 수 있다.
따라서, 도 2 및 3과 관련하여 알 수 있는 바와 같이, 다양한 실시예들에서, 변이, 예를 들어, 단상형 추출 함수를 수행하도록 구성된 마이크로칩(7)이 제공된다. 마이크로칩(7)은 CPU/GPU/QPU(1000)와 연관될 수 있는데, 예컨대 그와 직접 결합, 예를 들어, 컴퓨터의 마더보드 상에 포함되거나, 또는 그에 간접적으로 결합, 예컨대 하나 이상의 인터커넥트, 예를 들어, 3, 4, 5, 10, 및/또는 12를 통해 CPU/GPU/QPU(1000)에 동작가능하게 결합되는 주변 디바이스(2)의 일부로서 포함될 수 있다. 이 경우에, 마이크로칩(7)은 주변 디바이스(2) 상에 존재한다. 비록 마이크로칩으로서 구성되지만, 가속기는 또한 양자 프로세싱 유닛의 하나 이상의 양자 회로로서 구성될 수 있고, 여기서 양자 회로는 본 명세서에 개시된 함수들 중 하나 이상을 수행하기 위한 하나 이상의 프로세싱 엔진으로서 구성된다는 것을 이해해야 한다.
그러므로, 주변 디바이스(2)는 주변 디바이스(2)를 컴퓨터 및/또는 서버의 중앙 프로세싱 유닛(CPU/GPU/QPU)(1000)에, 예컨대 인터페이스(3), 예를 들어, DMA를 통해 연결하기 위한 것과 같은 병렬 또는 직렬 확장 버스(4)를 포함할 수 있다. 특정한 경우들에서, 주변 디바이스(2) 및/또는 직렬 확장 버스(4)는, 예컨대 연결(5)을 통해, 마이크로칩(7)과 통신하거나 달리 이를 포함하도록 구성된 주변 컴포넌트 인터커넥트 익스프레스(PCIe)일 수 있다. 본 명세서에 설명된 바와 같이, 마이크로칩(7)은 적어도 부분적으로 HMM 가속기(8)로서 구성될 수 있거나 달리 이를 포함할 수 있다. HMM 가속기(8)는 마이크로칩(7)의 일부로서, 예를 들어, 하드와이어드로서 및/또는 그와 연관되어 실행될 코드로서 구성될 수 있고, 예컨대 PCIe 인터페이스(4)를 통해, CPU/GPU/QPU(1000)에 의해 마이크로칩(7)에 공급된 데이터에 대해 은닉 마르코프 모델의 하나 이상의 연산을 수행하기 위한 것과 같은 변이 추출 함수를 수행하도록 구성된다. 마찬가지로, 일단 하나 이상의 변이 추출 함수가 수행되면, 예를 들어 하나 이상의 HMM 연산이 실행되면, 그의 결과는 칩(7)의 HMM 가속기(8)로부터 버스(4)를 통해 CPU/GPU/QPU(1000)로, 예컨대 연결(3)을 통해 전송될 수 있다.
예를 들어, 특정한 경우들에서, 정보를 프로세싱 및/또는 전송하고/하거나 명령어들을 실행하기 위한 CPU/GPU/QPU(1000)가, HMM 가속기(8)로서 적어도 부분적으로 구성되는 마이크로칩(7)과 함께 제공된다. CPU/GPU/QPU(1000)는 마이크로칩(7)의 HMM 가속기(8)와 CPU/GPU/QPU(1000) 사이의 통신을 용이하게 하도록 적응되는 인터페이스(5)를 통해 마이크로칩(7)과 통신하고, 따라서 CPU/GPU/QPU(1000)를 마이크로칩(7)의 일부인 HMM 가속기(8)에 통신가능하게 연결할 수 있다. 이들 기능을 용이하게 하기 위해, 마이크로칩(7)은, 예를 들어 하나 이상의 클러스터(11)를 통해, 데이터를 다수의 HMM 엔진(13)으로 전송하도록 구성되는 CentCom일 수 있는 분배기 모듈(9)을 포함하고, 여기서 각각의 엔진(13)은 데이터를 수신하고 이를 프로세싱하도록, 예컨대 그에 대해 HMM 프로토콜을 실행하고, 최종 값들을 계산하고, 그의 결과들을 출력하고, 동일한 것을 반복하도록 구성된다. 다양한 경우들에서, HMM 프로토콜의 수행은 아래에 본 명세서에 설명된 바와 같이, 하나 이상의 전이 확률을 결정하는 것을 포함할 수 있다. 특정하게는, 각각의 HMM 엔진(13)은 HMM 가상 행렬의 생성 및/또는 평가 중 하나 이상을 포함하는 것과 같은 작업을 수행하여 그에 대한 최종 합 값을 생성하고 출력하도록 구성될 수 있고, 그 최종 합은 아래에 본 명세서에 설명된 바와 같이, 추출된 염기가 가설 단상형 서열 내의 대응하는 염기와 매칭하거나 상이할 개연성 있는 우도를 표현한다.
도 3b는 도 3a의 HMM 클러스터(11)의 상세한 도시를 제시한다. 다양한 실시예들에서, 각각의 HMM 클러스터(11)는 하나 이상의 HMM 인스턴스(13)를 포함한다. 예컨대 칩 또는 양자 컴퓨팅 프로세서 상에, 제공된 리소스의 양에 따라 원하는 것과 같은 하나 또는 다수의 클러스터가 제공될 수 있다. 특정하게는, HMM 클러스터가 제공될 수 있고, 여기서 클러스터는 클러스터 허브(11)로서 구성된다. 클러스터 허브(11)는 분배기(9)로부터 하나 이상의 작업(20)에 관한 데이터를 취하고, 예컨대 하나 이상의 HMM 인스턴스 버스(12)를 통해, 하나 이상의, 예를 들어, 복수의 HMM 인스턴스(13)에 추가로 통신가능하게 연결되고, 이들에 클러스터 허브(11)는 작업 데이터(20)를 전송한다.
시스템 전체에 걸친 데이터 전송을 위한 대역폭은 비교적 낮은 대역폭 프로세스일 수 있고, 일단 작업(20)이 수신되면, 시스템(1)은, 예컨대 메모리를 위해 칩(7)을 벗어날 필요없이 작업을 완료하도록 구성될 수 있다. 다양한 실시예들에서, 하나의 작업(20a)은 임의의 주어진 시간에 하나의 프로세싱 엔진(13a)에 전송되지만, 여러 작업들(20a-n)은 클러스터 허브(11)에 의해 여러 상이한 프로세싱 엔진들(13a 내지 13m+1)에 분배될 수 있고, 예컨대 이 경우 프로세싱 엔진들(13) 각각은 단일 작업(20)에 대해, 예를 들어, 하나 이상의 판독과 하나 이상의 단상형 서열 사이의 단일 비교에 대해, 병렬로 그리고 고속으로 작업할 것이다. 아래에 설명된 바와 같이, 그러한 작업(20)의 수행은 전형적으로 가상 행렬의 생성을 수반할 수 있으며, 그에 의해 피험자의 "판독" 서열들을 하나 이상의, 예를 들어, 2개의 가설 단상형 서열과 비교하여 그들 사이의 차이들을 결정할 수 있다. 그러한 경우들에서, 단일 작업(20)은 예컨대 염기별 기준으로, 행해지는 각각의 비교에 대해 프로세싱될 필요가 있는 다수의 셀을 갖는 하나 이상의 행렬의 프로세싱을 수반할 수 있다. 인간 게놈이 약 3십억 개의 염기 쌍들이므로, (모든 연관된 HMM 작업들의 행렬들 내의 약 20조 개의 셀에 상당하는) 인간 게놈의 30X 오버샘플링을 분석할 때 수행될 대략 1 내지 2십억 개의 상이한 작업들이 존재할 수 있다.
따라서, 본 명세서에 설명된 바와 같이, 각각의 HMM 인스턴스(13)는 서열 데이터, 예컨대 CPU/GPU/QPU(1000)로부터 그에 의해 수신된 데이터에 대해, HMM 프로토콜, 예를 들어, HMM 행렬의 생성 및 프로세싱을 수행하도록 적응될 수 있다. 예를 들어, 위에 설명된 바와 같이, DNA 또는 RNA와 같은 피험자의 유전 물질을 서열 분석함에 있어서, DNA/RNA는 예컨대 길이가 최대 약 100개의 염기인 세그먼트들로 분해된다. 그 후, 이들 100개의 염기 세그먼트의 아이덴티티는, 예컨대 자동화된 서열분석기에 의해 결정되고, Phred 품질 스코어(예를 들어, 전형적으로 로그 스케일에서 0 내지 63의 수이고, 여기서 0의 스코어는 추출된 염기가 정확한 것이라는 최소량의 신뢰도의 나타내고, 20 내지 45의 스코어들은 비교적 정확한 것으로서 용인할 만한 것임)와 함께 판독의 각각의 염기 아이덴티티 양쪽 모두를 저장하는 FASTQ 텍스트 기반 파일 또는 다른 형식으로 "판독"된다.
특정하게는, 위에 지적한 바와 같이, Phred 품질 스코어는 서열 분석 프로세서에 의해, 예를 들어, 자동화된 DNA/RNA 서열분석기에 의해 생성된 핵염기 아이덴티티들의 식별의 품질을 측정하는 품질 표시자이다. 그러므로, 각각의 판독 염기는, 서열분석기가 그 특정 식별의 품질을 평가한 것에 기초한 그 자신의 품질, 예를 들어, Phred, 스코어를 포함한다. Phred는 서열분석기가 추출된 염기 아이덴티티를 정확한 것으로 추정하는 신뢰도를 표현한다. 그 후, 아래에 상세히 설명된 바와 같이, 구현된 HMM 모듈(8)에 의해 이 Phred 스코어를 사용하여, 예를 들어, 매칭 상태의 안팎에서의, 그것의 매칭, 삽입, 및/또는 결실 전이 확률들을 결정함으로써, 그것이 매핑 및/또는 정렬된 단상형과 비교하여 판독에서의 각각의 추출된 염기의 정확도를 추가로 결정한다. 유의해야 할 점은 다양한 실시예들에서, 시스템(1)은, 예컨대 이웃 DNA의 염기들/스코어들 및/또는 단편들을 고려하고 그러한 인자들이 검사 중인 염기, 예를 들어, 셀의 Phred 스코어에 영향을 미치게 함으로써, 그에 대한 HMM 프로토콜의 수행 전에 초기 Phred 스코어를 수정하거나 달리 조정할 수 있다는 점이다.
도 4와 관련하여 알 수 있는 바와 같이, 그러한 경우들에서, 시스템(1), 예를 들어, 컴퓨터/양자 소프트웨어는 탐색될 수 있는, 그리고/또는 시스템(1) 전체에 걸쳐 다양한 코어들 및 이용 가능한 스레드들(1007) 사이에서 병렬화될 수 있는 작업들(20n)로 분해될 수 있는, 본 명세서에 설명된 바와 같은 추가 프로세싱을 적용할 수 있는 서열 분석된 게놈 내의 다양한 활성 영역들(500n)을 결정하고 식별할 수 있다. 예를 들어, 그러한 활성 영역들(500)은 서열 분석된 게놈과 기준 게놈 사이의 변형의 소스들인 것으로 식별될 수 있다. 특정하게는, CPU/GPU/QPU(1000)는 활성 영역(500a, 500b, 500c)을 식별하고, 현재 검사 중인 활성 영역(들)(500a-c)에 기초하여, 예를 들어, 적합하게 구성된 집성기(aggregator)(1008)를 통해, 작업될 다양한 상이한 작업들(20n)을 컴파일하고 집성하는, 실행 중인 다수의 스레드(1007)를 가질 수 있다. 시스템(1)이 최대 효율에서 실행하도록 허용하기 위해 임의의 적합한 수의 스레드들(1007)이 이용될 수 있는데, 예를 들어, 스레드들이 많을수록 대기하는 데 소비되는 활성 시간은 적어진다.
일단 식별되고, 컴파일되고 및/또는 집성되면, 스레드들(1007/1008)은 그 후 활성 작업들(20)을 HMM 모듈(8)의 데이터 분배기(9), 예를 들어, CentCom으로, 예컨대 PCIe 인터페이스(4)를 통해, 예를 들어 파이어 앤 포겟(fire and forget) 방식으로 전송할 것이고, 그 후 그것이 매핑 및/또는 정렬되는 대응하는 활성 영역(500)까지 다시 매칭되도록 HMM(8)이 다시 출력 데이터를 전송하기를 기다리면서 다른 프로세스로 이동할 것이다. 그 후, 데이터 분배기(9)는 작업들(20)을 예컨대 작업별 방식으로 다양한 상이한 HMM 클러스터들(11)에 분배할 것이다. 모든 것이 효율적으로 실행 중일 경우, 이는 선입선출(first in first out) 형식일 수 있지만, 그럴 필요는 없다. 예를 들어, 다양한 실시예들에서, 원시 작업 데이터 및 프로세싱된 작업 결과 데이터는 그들이 이용 가능하게 될 때 시스템을 통해 그리고 시스템에 걸쳐 전송될 수 있다.
특정하게는, 도 2, 도 3, 및 도 4와 관련하여 알 수 있는 바와 같이, 다양한 작업 데이터(20)는 PCIe(4)를 통해 그리고 CentCom(9)을 통해 그리고 계속해서 프로세싱 엔진들(13)에, 예를 들어 클러스터들(11)을 통해 전송될 수 있는 4K 바이트 페이지의 데이터로 집성될 수 있다. 전송되는 데이터의 양은 4K 바이트보다 더 많거나 더 적을 수 있지만, 전형적으로 4K(예를 들어, 1024) 페이지의 데이터 당 약 100개의 HMM 작업을 포함할 것이다. 특정하게는, 이들 데이터는 그 후 데이터 분배기(9)에 의해 다이제스트되고 각각의 클러스터(11)에 공급되는데, 예컨대 이 경우 하나의 4K 페이지가 하나의 클러스터(11)로 전송된다. 그러나, 언제 그리고 이용 가능하게 되는 클러스터들에 기초하여 임의의 주어진 작업(20)이 임의의 주어진 클러스터(11)에 전송될 수 있으므로 그럴 필요는 없다.
따라서, 여기에 제시된 바와 같은 클러스터(11) 접근법은 들어오는 데이터를 프로세싱 엔진들(13)에 고속으로 효율적으로 분배한다. 구체적으로는, 데이터가 CPU/GPU/QPU(1000)로부터, 예를 들어, DMA 연결(3)을 통해, PCIe 인터페이스(4)에 도착함에 따라, 수신된 데이터는 그 후 PCIe 버스(5)를 통해 변이 추출기 마이크로칩(7)의 CentCom 분배기(9)로 전송될 수 있다. 그 후, 분배기(9)는 예컨대 하나 이상의 클러스터 전용 버스(10)를 통해 하나 이상의 HMM 프로세싱 클러스터(11)에 데이터를 전송하고, 그 클러스터(11)는 그 후 예컨대 프로세싱을 위해 예를 들어 하나 이상의 인스턴스 버스(12)를 통해 하나 이상의 프로세싱 인스턴스(13)에 데이터를 전송할 수 있다. 이 경우에, PCIe 인터페이스(4)는 주변 확장 버스(5), 분배기(9), 및/또는 클러스터(10) 및/또는 인스턴스(12) 버스들을 통해 빠른 레이트로, 예컨대 하나 이상의, 예를 들어, 모든 HMM 클러스터들(11a-(n+1)) 내의 하나 이상의, 예를 들어, 모든 HMM 가속기 인스턴스들(13a-(m+1))을 바쁘게 유지할 수 있는 레이트로, 예컨대 연장된 기간의 시간, 예컨대 전체 시간에 걸쳐, 시스템(1)이 실행 중인, 작업들(20)이 프로세싱되고 있는 기간 동안 데이터를 제공하면서도, PCIe 인터페이스(4)를 통해, 하나 이상의 CPU(1000)에 다시 전송될 프로세싱된 HMM 데이터의 출력에 뒤처지지 않도록 적응된다.
예를 들어, 하나 이상의 HMM 가속기 인스턴스(13)에 대해 유휴 시간을 야기하는 인터페이스들(3, 5, 10, 및/또는 12)에서의 임의의 비효율성은 시스템(1)의 전체 프로세싱 시간에 직접 추가할 수 있다. 특정하게는, 인간 게놈을 분석할 때, 다양한 HMM 클러스터들(11)에 분배되고 1시간 미만, 45분 미만, 30분 미만, 15분, 10분, 5분, 또는 그 미만을 포함하는 20분 미만과 같은 시간 동안 프로세싱될 필요가 있는 상이한 작업들(20)이 대략 2십억 개 이상 있을 수 있다.
따라서, 도 4는 일반적으로 위에 설명된 바와 같은, 시스템(1)의 소프트웨어 및/또는 하드웨어 전체에 걸쳐 예시적인 데이터 흐름의 개관을 설명한다. 도 4와 관련하여 알 수 있는 바와 같이, 시스템(1)은 예컨대 PCIe 버스(5)를 통해, 예컨대 PCIe 인터페이스(4)와 분배기(9), 예를 들어, CentCom 사이에 데이터를 전송하도록 부분적으로 구성될 수 있다. 추가적으로, 시스템(1)은 추가로, 예컨대 하나 이상의 클러스터 버스(10)를 통해, 예컨대 분배기(9)와 하나 이상의 HMM 클러스터(11) 사이에 수신된 데이터를 전송하도록 부분적으로 구성될 수 있다. 그러므로, 다양한 실시예들에서, HMM 가속기(8)는 HMM 함수의 하나 이상의 프로세스를 수행하도록 구성된 하나 이상의 클러스터(11)와 같은 하나 이상의 클러스터(11)를 포함할 수 있다. 그러한 경우에, CentCom(9)을 HMM 클러스터(11)에 연결하는, 클러스터 버스(10)와 같은 인터페이스가 존재한다.
예를 들어, 도 5는 HMM 모듈(8)의 내부 및 외부로의, 예컨대 클러스터 모듈의 내부 및 외부로의 인터페이스를 도시하는 하이-레벨 도면이다. 도 6과 관련하여 알 수 있는 바와 같이, 각각의 HMM 클러스터(11)는 전용 클러스터 버스(10)를 통해 CentCom 데이터 분배기(9)와 통신하도록, 예를 들어, 그로부터 데이터를 수신하고/하거나 그것에 최종 결과 데이터, 예를 들어, 합 데이터를 전송하도록 구성될 수 있다. 특정하게는, PCIe 인터페이스(4)가 데이터 분배기(9)와 통신할 수 있게 하는 한 임의의 적합한 인터페이스 또는 버스(5)가 제공될 수 있다. 더 특정하게는, 버스(5)는 데이터 분배기(9)에 전달하는 데 유용한 해석 로직을 포함하는 인터커넥트일 수 있으며, 그 해석 로직은 이 기능성을 제공하기 위해 이용되는 임의의 프로토콜을 수용하도록 구성될 수 있다. 구체적으로는, 다양한 경우들에서, 인터커넥트는 PCIe 버스(5)로서 구성될 수 있다.
추가적으로, 클러스터(11)는 단일 또는 다수의 클록 도메인이 그 안에서 이용될 수 있도록 구성될 수 있고, 그러므로, 하나 이상의 클록이 클러스터(11) 내에 존재할 수 있다. 특정한 경우들에서, 다수의 클록 도메인이 제공될 수 있다. 예를 들어, 더 느린 클록이 예컨대 통신을 위해, 예를 들어, 클러스터(11)와의 통신을 위해 제공될 수 있다. 추가적으로, 본 명세서에 설명된 다양한 상태 계산들을 수행하는 데 사용하기 위해 HMM 인스턴스들(13)에 의해 이용될 수 있는 더 빠른, 예를 들어 고속 클록이 제공될 수 있다.
특정하게는, 다양한 실시예들에서, 도 6과 관련하여 알 수 있는 바와 같이, 시스템(1)은, 제1 경우에, 데이터 분배기(9)가 기존의 CentCom IP를 활용에 따라, 개스킷과 같은 칼라가 제공될 수 있도록 설정될 수 있고, 여기서 개스킷은 HMM 클러스터 인터페이스 또는 버스(10)로부터 CentCom 인터페이스(5)로 그리고 그 반대로 신호들을 변환하도록 구성되도록 설정될 수 있다. 예를 들어, HMM 클러스터 버스(10)는 CPU/GPU(1000)를 HMM 가속기 모듈(8)의 다양한 클러스터들(11)에 통신가능하게 및/또는 동작가능하게 연결할 수 있다. 그러므로, 도 6과 관련하여 알 수 있는 바와 같이, 각각의 판독 및/또는 각각의 단상형에 대한 구조화된 기입 및/또는 판독 데이터가 시스템(1) 전체에 걸쳐 전송될 수 있다.
HMM 엔진 내로 작업(20)에 입력된 후에, HMM 엔진(13)은 전형적으로: a) 즉시(그것이 유휴 상태라면), 또는 b) 그것에 현재 할당된 작업을 완료한 후에 시작할 수 있다. 유의해야 할 점은 각각의 HMM 가속기 엔진(13)은 핑 및 퐁 입력들을 핸들링할 수 있고(예를 들어, 다른 데이터 세트가 로딩되고 있는 동안 하나의 데이터 세트에 작업할 수 있음), 따라서 작업들 사이의 다운시간을 최소화할 수 있다는 점이다. 추가적으로, HMM 클러스터 칼라(11)는 데이터 분배기(9)에 의해 전송된 입력 작업(20)을 자동으로 취하고 그것을 새로운 작업을 수신할 수 있는 클러스터(11) 내의 HMM 엔진 인스턴스들(13) 중 하나에 할당하도록 구성될 수 있다. 특정 작업(20)에 대한 특정 HMM 엔진 인스턴스(13)를 선택할 수 있는 소프트웨어 측에 대한 제어가 필요하지 않다. 그러나, 다양한 경우들에서, 소프트웨어는 그러한 인스턴스들을 제어하도록 구성될 수 있다.
따라서, 위 내용을 고려하여, 시스템(1)은 결과 데이터를 CPU/GPU/QPU로 다시 전송할 때 능률화될 수 있고, 이러한 효율성 때문에, 결과들의 유용성을 달성하기 위해 CPU/GPU/QPU로 돌아갈 필요가 있는 많은 데이터가 존재하지 않는다. 이는 시스템이 시스템 구성에 따라 약 30분 이하, 예컨대 약 25 또는 약 20분 이하, 예를 들어, 약 18 또는 약 15분 이하(약 10 또는 약 7분 이하, 심지어 약 5 또는 약 3분 이하를 포함)의 변이 추출 연산을 달성할 수 있게 한다.
도 6은 FPGA 또는 ASIC(7) 상의, 하드웨어 가속기(8) 내의 예시적인 HMM 엔진(13) 내의 다양한 기능 블록들의 하이-레벨 뷰를 제시한다. 구체적으로는, 하드웨어 HMM 가속기(8) 내에는 다수의 클러스터(11)가 있고, 각각의 클러스터(11) 내에는 다수의 엔진(13)이 존재한다. 도 6은 HMM 엔진(13)의 단일 인스턴스를 제시한다. 도 6과 관련하여 알 수 있는 바와 같이, 엔진(13)은 인스턴스 버스 인터페이스(12), 복수의 메모리, 예를 들어, HMEM(16) 및 RMEM(18), 다양한 다른 컴포넌트들(17), HMM 제어 로직(15)뿐만 아니라, 결과 출력 인터페이스(19)를 포함할 수 있다. 특정하게는, 엔진 측에서, HMM 인스턴스 버스(12)는 메모리들, HMEM(16) 및 RMEM(18)에 동작가능하게 연결되고, 클러스터 허브(11)와 통신하는 인터페이스 로직을 포함할 수 있고, 그 허브는 분배기(9)와 통신하며, 분배기는 차례로 PCIe 인터페이스(4)와 통신하고, 이 PCIe 인터페이스는 CPU/GPU 및/또는 서버(1000)에 의해 실행되는 변이 추출 소프트웨어와 통신한다. 따라서, HMM 인스턴스 버스(12)는 CPU(1000)로부터 데이터를 수신하고 그것을 메모리들, 예를 들어, HMEM 및 RMEM 중 하나 이상에 로딩한다. 이러한 구성은 또한 하나 이상의 양자 회로에서 구현되고 그에 따라 적응될 수 있다.
이들 경우에, 예를 들어, RMEM(18) 내에 로딩되는 주어진 판독 서열당, 적어도 하나 또는 2개 이상의 단상형, 예를 들어 2개의 단상형이, 예를 들어, HMEM(16) 내에 로딩될 수 있도록 충분한 메모리 공간이 할당되어야 하고, 이는 다수의 단상형이 로딩될 때, PCIe 버스(5) 대역폭에 대한 부담을 덜어주는 결과를 초래한다. 특정한 경우들에서, 2개의 단상형 및 2개의 판독 서열이 그들 각각의 메모리들에 로딩될 수 있고, 이는 4개의 서열이 모든 관련 조합에서 함께 프로세싱될 수 있게 한다. 다른 경우들에서, 예컨대 원하는 경우 대역폭을 추가로 덜어주기 위해, 4개, 또는 8개, 또는 16개의 서열, 예를 들어, 서열들의 쌍이 로딩되어, 유사한 방식으로 조합하여 프로세싱될 수 있다.
또한, 일단 메모리들에, 예컨대 메모리의 핑 측에, 새로운 작업(20a)이 로딩되면, 새로운 작업 신호가 표시되도록 그 안에 핑-퐁 구조가 구현될 수 있도록 충분한 메모리가 예약될 수 있고, 제어 로직(15)은 본 명세서 및 아래에 설명된 바와 같이, 예컨대 행렬을 생성하고 필요한 계산을 수행하는 것에 의해, 새로운 작업(20a)을 프로세싱하기 시작할 수 있다. 따라서, 이는 제1 작업(20a)이 프로세싱되고 있는 동안에 그 안에 로딩될 수 있는 다른 작업(20b)이 로딩되도록 메모리의 퐁 측을 이용 가능하게 남기고, 따라서 제1 작업(20a)이 완료될 때, 제2 작업(20b)은 제어 로직(15)에 의해 즉시 프로세싱되기 시작할 수 있다.
그러한 경우에, 제1 작업(20a)의 프로세싱의 종료, 및 제2 작업(20b)의 프로세싱의 시작으로부터 사실상 다운시간, 예컨대, 1 또는 2개의 클록 사이클이 없도록 작업(20b)에 대한 행렬이 프리프로세싱될 수 있다. 그러므로, 메모리 구조들의 핑 및 퐁 측 양쪽 모두를 이용할 때, HMEM(16)은 전형적으로 4개의 단상형 서열, 예를 들어, 2개의 조각을 저장할 수 있고, RMEM(18)은 전형적으로 2개의 판독 서열을 저장할 수 있다. 이 핑-퐁 구성은 단순히 약간의 추가 메모리 공간을 요구하지만, 엔진(13)의 스루풋의 배가를 허용하기 때문에 유용하다.
프로세싱 동안 및/또는 후에, 메모리들(16, 18)은 전이 확률 계산기 및 룩업 테이블(LUT) 블록(17a)에 공급되며, 이 블록은 아래에 설명된 바와 같이 "프라이어(Priors)" 데이터에 관련된 다양한 정보를 계산하도록 구성되고, 이는 차례로 전이 확률들을 계산할 때 사용하기 위해 프라이어(Prior) 결과 데이터를 M, I, 및 D 상태 계산기 블록(17b)에 공급한다. 하나 이상의 스크래치 RAM(17c)이 또한 포함될 수 있는데, 이는 예컨대 스와스의 경계에서의 M, I, 및 D 상태들, 예를 들어, 프로세싱 스와스의 하단 행의 값들을 유지하기 위한 것이고, 이들은 지적한 바와 같이, 다양한 경우들에서, 스와스(35)의 길이와 상응하도록, 길이가 임의의 적합한 양의 셀들, 예를 들어, 약 10개의 셀들일 수 있다.
추가적으로, 개별 결과 출력 인터페이스 블록(19)이 포함될 수 있으며, 따라서 합산들이 끝날 때, 이들, 예를 들어, 4 32-비트 워드가 즉시 CPU/GPU/QPU(1000)의 변이 추출 소프트웨어로 다시 전송될 수 있다. 유의해야 할 점은 이러한 구성은 시스템(1), 구체적으로는, M, I, 및 D 계산기(17b)가, 예를 들어, 작업(20)을 수행하기 위해 결과들을 클리어하는 것만큼 오래 걸리지 않는 한, 출력 인터페이스(19)가 클리어하는 것을 기다리면서 지체되지 않도록 적응될 수 있다는 점이다. 그러므로, 이러한 구성에서, 메모리를 로딩하는 것, MID 계산들을 수행하는 것, 및 결과들을 출력하는 것과 같은, 전체 시스템 파이프라인을 만들기 위해 협력하여 기능하는 3개의 파이프라인 단계가 존재할 수 있다. 게다가, 유의할 점은 임의의 주어진 HMM 엔진(13)은 그들 자신의 출력 인터페이스(19)를 갖는 많은 것들 중 하나이지만, 이들은 공통 인터페이스(10)를 데이터 분배기(9)에 다시 공유할 수 있다는 점이다. 그러므로, 클러스터 허브(11)는 충돌을 피하기 위해 HMM 가속기(8)를 통한 정보의 전송("xfer")을 관리하기 위한 관리 능력을 포함할 것이다.
따라서, 이하에서는, 위에 일반적으로 개략적으로 설명된 바와 같이, HMM 엔진들(13)의 각각의 모듈이 단상형 및 판독 서열 데이터를 수신하고, 그것을 프로세싱하고, 그것에 관한 결과 데이터를 출력함에 따라 그 안에서 수행되는 프로세스들을 상세히 설명한다. 구체적으로는, HMM 클러스터(11) 내의 HMM 엔진(13)에서의 높은 대역폭 계산들은, 위에 설명된 바와 같이, 검사 중인 특정한 판독이 단상형 기준과 매칭되는지뿐만 아니라 그것의 정도를 결정하는 데 이용되는, 매칭(M), 삽입(I), 및 결실(D) 상태 값들을 계산 및/또는 업데이트하는 것에 관한 것이다. 특정하게는, 판독과 함께 판독 내의 각각의 염기에 대한 Phred 스코어 및 GOP 값은 분배기(9)로부터 클러스터(11)로 전송되고 그에 의해 프로세싱을 위해 특정한 프로세싱 엔진(13)에 할당된다. 그 후, 이들 데이터는 프로세싱 엔진(13)의 M, I, 및 D 계산기(17)에 의해, 판독 내의 추출된 염기가 정확한 것일 및/또는 단상형 내의 그 각각의 염기에 매칭하는 것일, 또는 변형, 예를 들어, 삽입 또는 결실의 결과물일 가능성이 많은지 또는 적은지; 그리고/또는 변형이 존재하는 경우, 그러한 변형이 단상형의 진정한 변이성의 가능성이 있는 결과인지 또는 오히려 서열 생성 및/또는 매핑 및/또는 정렬 시스템들에서의 오류의 아티팩트인지를 결정하는 데 이용된다.
위에 지적한 바와 같이, 그러한 분석의 일부는 MID 계산기(17)가, 판독에서의 하나의 염기로부터 다른 염기가, 기준과 비교하여, 하나의 M, I, 또는 D 상태로부터 다른 것으로, 예컨대, 매칭 상태로부터 다른 매칭 상태로, 또는 매칭 상태로부터 삽입 상태로 또는 결실 상태로 가는 전이 확률들을 결정하는 것을 포함한다. 그러한 결정을 함에 있어서, 연관된 전이 확률들 각각이 결정되고 판독과 기준 사이의 임의의 관찰된 변형이 단지 어떤 머신 또는 프로세싱 오류가 아니라 진정한 변형인지를 평가할 때 고려된다. 이들 목적을 위해, 고려되는 각각의 염기에 대한 Phred 스코어는, 매칭 상태 안팎으로의, 예컨대 비교시 매칭 상태로부터 삽입 또는 결실, 예를 들어, 갭이 있는 상태로 가는 전이 확률들을 결정하는데 유용하다. 마찬가지로, 갭이 있는 상태를 계속하거나 갭이 있는 상태, 예를 들어, 삽입 또는 결실 상태로부터, 다시 매칭 상태로 가는 전이 확률들이 또한 결정된다. 특정한 경우들에서, 결실 또는 삽입 상태 안팎으로의, 예를 들어, 갭 계속 상태를 빠져나가는 확률들은 고정된 값일 수 있고, 본 명세서에서 갭 계속 확률 또는 페널티로서 참조될 수 있다. 그럼에도 불구하고, 다양한 경우들에서, 그러한 갭 계속 페널티들은 부동(floating)일 수 있고, 따라서, 시스템 구성의 정확도 요구들에 따라 변경될 수 있다.
따라서, 도 7 및 8과 관련하여 도시된 바와 같이, M, I, 및 D 상태 값들 각각은 각각의 가능한 판독 및 단상형 염기 쌍에 대해 계산된다. 그러한 경우에, 행렬의 하나의 축 상에 평가되고 있는 판독 서열 및 다른 축 상의 연관된 단상형 서열을 포함하는 셀들의 가상 행렬(30)이 형성될 수 있고, 예컨대 이 경우 행렬 내의 각각의 셀은 판독 및 단상형 기준에서의 염기 위치를 표현한다. 그러므로, 판독 및 단상형 서열들이 각각 길이가 100개의 염기인 경우, 행렬(30)은 100x100개의 셀을 포함할 것이고, 그의 주어진 부분은 이 특정한 판독이 이 특정한 기준과 매칭하는 우도 및/또는 정도를 결정하기 위해 프로세싱될 필요가 있을 수 있다. 그러므로, 일단 가상적으로 형성되면, 행렬(30)은 그 후 도 7 및 8에 도시된 바와 같이, 판독 서열에서의 하나의 염기로부터 다른 염기로 이동하고 그것을 단상형 서열의 것과 비교할 때 일어나는 다양한 상태 전이들을 결정하는 데 사용될 수 있다. 구체적으로는, 프로세싱 엔진(13)은, 제어 로직(15)을 이용해 행렬을 횡단할 때, 다수의 셀이 병렬로 및/또는 순차적 방식으로 프로세싱될 수 있도록 구성된다. 예를 들어, 도 7에 도시된 바와 같이, 가상 프로세싱 스와스(35)가 전파되고 행렬(30)을 가로질러 아래로, 예컨대 좌측에서 우측으로 이동하여, 행렬(30)의 개별 셀들을 우측에서 좌측으로 대각선으로 아래로 프로세싱한다.
더 구체적으로는, 도 7과 관련하여 알 수 있는 바와 같이, 행렬(30) 내의 각각의 개별 가상 셀은 추출된 염기의 아이덴티티의 속성을 평가하기 위해 계산될 필요가 있는 M, I, 및 D 상태 값을 포함하고, 도 7에 도시된 바와 같이, 이 프로세스에서의 각각의 셀에 대한 데이터 종속성들은 명확하게 보일 수 있다. 그러므로, 프로세싱되고 있는 현재 셀의 주어진 M 상태를 결정하기 위해, 현재 셀의 대각선으로 위에 있는 셀의 매칭, 삽입, 및 결실 상태들을 현재 셀에 푸시하여 현재 계산되고 있는 셀의 M 상태의 계산에서 이용할 필요가 있다(예를 들어, 따라서, 행렬을 통한 대각선 아래쪽 순방향 진행들은 매칭을 나타낸다).
그러나, I 상태를 결정하기 위해, 현재 셀의 바로 위의 셀에 대한 매칭 및 삽입 상태들만을 프로세싱되고 있는 현재 셀에 푸시할 필요가 있다(따라서, 삽입 상태에서 계속할 때 수직 아래쪽 "갭이 있는" 진행).
마찬가지로, D 상태를 결정하기 위해, 현재 셀의 바로 좌측 셀에 대한 매칭 및 결실 상태들만을 현재 셀에 푸시할 필요가 있다(따라서, 결실 상태에서 계할될 때 수평 크로스-방향(cross-wards) "갭이 있는" 진행). 도 7과 관련하여 알 수 있는 바와 같이, 셀 1(최상단 행에서의 음영된 셀)의 계산이 시작된 후에, 셀 1로부터의 임의의 결과들을 기다리지 않고, 셀 2(제2 행에서의 음영된 셀)의 프로세싱도 시작될 수 있는데, 그 이유는 행 2에서의 이 셀과 프로세싱이 시작되는 행 1의 셀 사이에 데이터 종속성이 없기 때문이다. 이는 적색 화살표로 도시된 바와 같이, 프로세싱이 아래쪽으로 그리고 좌측으로 진행되는 역방향 대각선(35)을 형성한다. 이 역방향 대각선(35) 프로세싱 접근법은 전체 시스템의 프로세싱 효율 및 스루풋을 증가시킨다. 마찬가지로, 셀 (1)에서 생성된 데이터를 즉시 아래의 셀로 전방으로 그리고 최상단 셀 (1)의 우측으로 전방으로 푸시하고, 그에 의해 스와스(35)를 전방으로 전진시킬 수 있다.
예를 들어, 도 7은 하드웨어 프로세싱 흐름을 나타내는 예시적인 HMM 행렬 구조(35)를 도시한다. 행렬(35)은 수평 축의 상단 에지를 따라 실행하도록 위치된, 예를 들어, 36개의 염기를 포함하는, 단상형 염기 인덱스를 포함하고, 셀들의 선택이 M, I, 및 D 확률 상태, 및 현재 상태로부터 이웃 상태로 전이하는 전이 확률들로 채워질 수 있는 셀들의 구조를 형성하는 방식으로 수직 축의 측면 에지를 따라 있도록 위치된 염기 판독 인덱스, 예를 들어, 10개의 염기를 추가로 포함한다. 그러한 경우에, 위에 더 상세히 설명된 바와 같이, 매칭 상태로부터 매칭 상태로의 이동은 행렬(30)을 통한 순방향 대각선 진행을 초래하는 반면, 매칭 상태로부터 삽입 상태로의 이동은 수직 아래쪽 진행 갭을 초래하고, 매칭 상태로부터 결실 상태로의 이동은 수평 진행 갭을 초래한다. 그러므로, 도 8에 도시된 바와 같이, 주어진 셀에 대해, 각각의 셀에 대한 매칭, 삽입, 및 결실 상태들을 결정할 때, 그것의 3개의 인접 셀들의 매칭, 삽입, 및 결실 확률들이 이용된다.
도 7에서의 아래쪽 화살표는 구조(30) 내의 각각의 특정 셀에 대한 M, I, 및 D 상태들을 결정하기 위해 데이터 종속성들(도 7 및 도 8 참조)에 따라 가상 행렬을 따라 점진적으로 이동하는 프로세싱 스와스 또는 파(35)를 생성하도록 구성되는 프로세싱 엔진(들)의 병렬 및 순차적 속성을 표현한다. 따라서, 특정 경우들에서, 수직 또는 수평 축을 따라 배타적으로 각각의 셀을 단순히 계산하기보다는(비록 원한다면 이렇게 할 수 있지만), 위에 설명된 바와 같이, 아래쪽 및 대각선 방식으로 각각의 셀의 아이덴티티들을 계산하는 것이 바람직할 수 있다. 이는, 예컨대 하드웨어 구성을 통해, 수직 또는 수평 축 단독을 따라 개별적으로 그리고 순차적으로 행렬(35)의 가상 셀들을 프로세싱할 때 요구되는 증가된 레이턴시, 예를 들어, 레이턴시로 인한 것이다.
예를 들어, 그러한 경우에, 각각의 새로운 셀을 프로세싱하기 위해, 가상 행렬(30)을 통해, 예컨대 행별 또는 열별 방식으로 선형적으로 그리고 순차적으로 이동할 때, 각각의 선행 셀의 상태 계산들은 완료되어야 할 것이고, 그에 의해 전체적으로 레이턴시 시간을 증가시킨다. 그러나, 아래쪽 및 대각선 방식으로 각각의 새로운 셀의 M, I, D 확률들을 전파할 때, 시스템(1)은 행렬의 행 2의 인접 셀의 프로세싱을 시작하기 전에, 그것의 선행 셀의, 예를 들어 행 1의 프로세싱이 완료되기를 기다릴 필요가 없다. 이는 대각선 배열에서의 셀들의 병렬 및 순차적 프로세싱이 발생하도록 허용하고, 추가로 M, I, 및 D 상태 계산들과 연관된 파이프라인의 다양한 계산 지연들이 은닉되는 것을 허용한다. 따라서, 스와스(35)가 행렬(30)을 가로질러 좌측으로부터 우측으로 이동함에 따라, 계산 프로세싱은 대각선으로 아래쪽으로, 예를 들어, 좌측을 향해 이동한다(도 7에서 화살표로 도시된 바와 같이) . 이러한 구성은 메모리 및/또는 클록별 레이턴시가 주요 관심사인 경우와 같은, 하드웨어 및/또는 양자 회로 구현들에 특히 유용할 수 있다.
이들 구성에서, HMM 엔진(13)의 각각의 호출로부터 출력된, 예를 들어, 전체 행렬(30)을 계산한 후의, 실제 값은 M, I, 및 D 상태들을 포함하는 하단 행(예를 들어, 도 21의 행 35)일 수 있고, 여기서 M 및 I 상태들은 합산하여(D 상태들은 위 계산들을 프로세싱할 때 그들의 기능을 이미 이행하여 이 시점에서 무시될 수 있음), 각각의 판독 및 단상형 인덱스에 대해, 예를 들어, 그 단상형이 샘플링된 진정한 원래의 DNA임을 가정하여 판독을 관찰할 확률을 추정하는 단일 확률일 수 있는 최종 합을 생성할 수 있다.
특정하게는, 예를 들어, 도 7의 행렬(30)의 프로세싱의 결과는, 판독이 그 단상형의 실제 표현일 확률을 표현하는 단일 값일 수 있다. 이 확률은 0과 1 사이의 값이고, HMM 행렬(30) 내의 셀들의 하단 행으로부터 모든 M 및 I 상태들을 합산함으로써 형성된다. 본질적으로, 평가되고 있는 것은 서열 분석 전에, 서열분석기, 또는 연관된 DNA 준비 방법들에서 무언가가 잘못되어, 피험자의 유전 서열 내에 실제로 존재하지 않는 판독으로의 미스매칭, 삽입 또는 결실을 부정확하게 생성하였을 수 있는 가능성이다. 그러한 경우에, 판독은 피험자의 실제 DNA의 진정한 반영이 아니다.
그러므로, 그러한 생성 오류들을 고려하여, 임의의 주어진 판독이 실제로 단상형에 대해 무엇을 표현하는지를 결정할 수 있고, 그에 의해 시스템이 피험자의 유전 서열이, 예를 들어, 집단으로, 어떻게 기준 서열의 것과 상이할 수 있는지를 더 잘 결정할 수 있게 한다. 예를 들어, 많은 단상형들을 많은 판독 서열들에 대조하여 실행하여, 이들 모두에 대한 스코어들을 생성하고, 그에 기초하여 어느 매칭들이 최상의 스코어를 갖는지, 개인의 실제 게놈 서열 아이덴티티가 무엇인지 그리고/또는 그것이 어떻게 기준 게놈으로부터 진정 달라지는지를 결정할 수 있다.
더 특정하게는, 도 8은 도 7의 HMM 상태 행렬(30)의 일부분의 확대도를 도시한다. 도 8에 도시된 바와 같이, 행렬(30) 내의 각각의 셀의 내부 구성뿐만 아니라 전체적으로 행렬의 구조가 주어지면, 계산되고 있는 임의의 주어진 "새로운" 셀에 대한 M, I, 및 D 상태 확률은 이미 계산된 여러 그것의 주위 이웃들의 M, I, 및 D 상태들에 의존한다. 특정하게는, 도 1 및 도 16과 관련하여 더 상세히 도시된 바와 같이, 예시적인 구성에서, 매칭 상태로부터 다른 매칭 상태로 가는 대략 .9998 확률이 존재할 수 있고, 매칭 상태로부터 삽입 또는 결실 중 어느 하나, 예를 들어, 갭이 있는 상태로 가는 .0001 확률(갭 개방 페널티)만이 존재할 수 있다. 게다가, 갭이 있는 삽입 또는 갭이 있는 결실 상태 중 어느 하나에 있을 때, 그 갭이 있는 상태에 머무르는 0.1 확률(갭 연장 또는 계속 페널티)만이 존재할 수 있는 반면, 매칭 상태로 복귀하는 .9 확률이 존재한다. 유의해야할 점은 이 모델에 따르면, 주어진 상태 안팎으로의 모든 확률들은 합해서 1이 되어야 한다는 점이다. 특정하게는, 행렬(30)의 프로세싱은 다양한 갭 개방 또는 갭 계속 페널티를 고려하여, 전이 확률들을 주위로 계산하는 것을 수반하고 최종 합이 계산된다.
그러므로, 이들 계산된 상태 전이 확률들은 행렬(30) 내의 직접 인접하는 셀들로부터, 예컨대, 도 16에서 보이는 바와 같이, 현재 계산되고 있는 그 주어진 셀의 바로 좌측, 상부, 및 대각선으로 위 및 좌측에 있는 셀들로부터 주로 유도된다. 추가적으로, 상태 전이 확률들은 부분적으로 각각의 판독 염기에 수반되는 "Phred" 품질 스코어로부터 유도될 수 있다. 따라서, 이들 전이 확률은 그 특정 셀에 대해, 그리고 마찬가지로 계산되고 있는 임의의 연관된 새로운 셀에 대해 M, I, 및 D 상태 값들을 계산하는 데 유용하다. 유의해야 할 점은 본 명세서에 설명된 바와 같이, 갭 개방 및 갭 계속 페널티들은 고정된 값들일 수 있지만, 다양한 경우들에서, 갭 개방 및 갭 계속 페널티들은 가변적이고 따라서 시스템 내에서 프로그램 가능할 수 있다는 점이다(비록 그러한 가변적인 전이 확률 계산들을 결정하는 데 전용되는 추가 하드웨어 리소스들을 이용함으로써 가능하지만). 그러한 경우들은 더 큰 정확도를 원하는 경우에 유용할 수 있다. 그럼에도 불구하고, 그러한 값들이 일정한 것으로 가정되는 경우, 더 작은 리소스 사용 및/또는 칩 크기가 달성되어, 아래에 설명된 바와 같이, 더 큰 프로세싱 속도를 야기할 수 있다.
따라서, 각각의 새로운 M, I, 및 D 상태 값을 유도하는 데 관련되는 승산 및/또는 추가와 같은 다수의 계산 및/또는 다른 수학 계산이 존재한다. 그러한 경우에, 예컨대 최대 스루풋을 계산하기 위해, 각각의 M, I, 및 D 전이 상태 계산에 관련되는 프리미티브 수학 계산들이 파이프라이닝될 수 있다. 그러한 파이프라이닝은 대응하는 클록 주파수들은 높지만, 파이프라인 깊이가 사소하지 않을 수 있는 방식으로 구성될 수 있다. 게다가, 그러한 파이프라인은 유한 깊이를 갖도록 구성될 수 있고, 그러한 경우들에서는 연산들을 완료하는 데 하나보다 많은 클록 사이클이 필요할 수 있다.
예를 들어, 이들 계산은 프로세서(7) 내부에서 고속으로, 예컨대 약 300MHz로 실행될 수 있다. 이는 예컨대 레지스터들에 의해 많이 FPGA 또는 ASIC을 파이프라이닝하여 각각의 플립-플롭 사이에 수학 계산이 거의 발생하지 않도록 함으로써 달성될 수 있다. 이 파이프라인 구조는 매칭 상태의 입력으로부터 출력으로 가는 데 다수의 사이클의 레이턴시를 초래하지만, 위에 도 7에 제시된 역방향 대각선 컴퓨팅 구조가 주어지면, 이들 레이턴시는 전체 HMM 행렬(30)에 걸쳐 은닉될 수 있고, 예컨대 이 경우 각각의 셀이 하나의 클록 사이클을 표현한다.
그러므로, M, I, 및 D 상태 계산의 수는 제한될 수 있다. 그러한 경우에, 프로세싱 엔진(13)은, 행렬(30)의 다수의 행들 내의 셀들의 그룹화, 예를 들어, 스와스(35)가 아래 제2 스와스의 프로세싱으로 진행하기 전에 그룹으로서(예컨대 도 7에서의 화살표로 예시된 바와 같이 아래-및-좌측-대각선 방식으로) 프로세싱될 수 있는 방식으로 구성될 수 있고, 예를 들어, 여기서 제2 스와스는 프로세싱될 행에 제1 스와스와 동일한 수의 셀들을 포함한다. 이와 같은 방식으로, 본 명세서에 설명된 바와 같은, 가속기(8)의 하드웨어 구현은, 위에 설명된 바와 같이, 전체 시스템을 더 효율적으로 만들도록 적응될 수 있다.
특정하게는, 도 9는 본 명세서에 설명된 다양한 상태 프로세싱 계산을 수행하기 위한 예시적인 계산 구조를 설명한다. 더 특정하게는, 도 9는 HMM 행렬(30)에서 프로세싱되고 있는, 각각의 특정 셀, 셀들의 그룹에 대한 각각의 M, I, 및 D 상태 값을 생성하는 데 관련된 상태 계산을 계산하기 위한 프로세싱 엔진(13)의 3개의 전용 로직 블록(17)을 설명한다. 이들 로직 블록은 하드웨어로 구현될 수 있지만, 일부 경우들에서는, 소프트웨어로, 예컨대 하나 이상의 양자 회로에 의해 수행되도록 구현될 수 있다. 도 9와 관련하여 알 수 있는 바와 같이, 매칭 상태 계산(15a)은 삽입(15b) 또는 결실(15c) 계산 중 어느 하나보다 더 많이 관련되는데, 이는 프로세싱되고 있는 현재 셀의 매칭 상태(15a)를 계산함에 있어서, 다양한 "프라이어" 데이터와 함께 인접 셀들의 모든 이전 매칭, 삽입, 및 결실 상태들이 현재 매칭 계산에 포함되는 반면(도 9 및 도 10 참조), 삽입 및 결실 중 어느 하나와 매칭 상태만이 이들 각각의 계산에 포함되기 때문이다. 그러므로, 도 9와 관련하여 알 수 있는 바와 같이, 매칭 상태를 계산할 때, 3개의 상태 승산기뿐만 아니라, 2개의 가산기, 및 프라이어, 예를 들어, Phred 데이터를 고려하는 최종 승산기가 포함된다. 그러나, I 또는 D 상태를 계산하기 위해, 2개의 승산기와 하나의 가산기만이 포함된다. 유의할 점은 하드웨어에서, 승산기들은 가산기들보다 더 리소스 집약적이라는 점이다.
따라서, 다양한 정도까지, HMM 행렬(30) 내의 각각의 새로운 셀을 프로세싱하기 위한 M, I, 및 D 상태 값들은 HMM 행렬에서 현재 계산되고 있는 셀의 좌측, 상부, 및/또는 대각선으로 좌측 및 위로부터의 "이전의 "M, I, 및 D 상태 값들과 같은 다음 값들에 대한 지식 또는 사전-계산을 이용한다. 추가적으로, 이전 정보를 표현하는 그러한 값들, 즉 "프라이어"는 적어도 부분적으로는 "Phred" 품질 스코어에, 그리고 행렬(30) 내의 주어진 셀에서의 판독 염기 및 기준 염기가 매칭되는지 또는 상이한지에 기초할 수 있다. 그러한 정보는 매칭 상태를 결정할 때 특히 유용하다. 구체적으로는, 도 9와 관련하여 알 수 있는 바와 같이, 그러한 경우들에서, 갭 개방을 보는, 예를 들어, 매칭 상태로부터 삽입 또는 결실 상태로의 전이를 보는; 갭 폐쇄(gap close)를 보는; 예를 들어, 삽입 또는 결실 상태로부터 다시 매칭 상태로 가는; 이전 상태와 동일한 상태로 계속되는 다음 상태를 보는, 예를 들어, 매칭-대-매칭(Match-to-Match), 삽입-대-삽입(Insert-to-Insert), 결실-대-결실(Delete-to-Delete)을 보는 확률을 나타내는 및/또는 추정하는 기본적으로 7개의 "전이 확률"(M-대-M, I-대-M, D-대-M, I-대-I, M-대-I, 및 D-대-D, 및 M-대-D)이 존재한다.
상태 값들(예를 들어, HMM 행렬(30)에서 프로세싱될 임의의 셀에서의), 프라이어, 및 전이 확률들은 [0,1]의 범위 내의 모든 값들이다. 추가적으로, HMM 행렬(30)의 좌측 또는 상단 에지에 있는 셀들에 대한 알려진 시작 조건들이 존재한다. 도 9의 로직(15a)으로부터 알 수 있는 바와 같이, 프로세싱되고 있는 임의의 주어진 셀에 대해 결정되고 있는 특정한 M 상태 계산에서 이용될 수 있는 4개의 승산 및 2개의 가산 계산이 존재한다. 마찬가지로, 15b 및 15c의 로직으로부터 알 수 있는 바와 같이, 각각의 I 상태 및 각각의 D 상태 계산에 대해 각각 관련되는 2개의 승산 및 하나의 가산이 존재한다. 집합적으로, 프라이어 승산기와 함께 이것은 합해서, 프로세싱될 HMM 행렬(8) 내의 각각의 단일 셀과 연관된 M, I, 및 D 상태 계산들에 대해 총 8개의 승산 및 4개의 가산 연산이 된다.
예를 들어 하나의 판독을 하나 또는 2개의 단상형에 비교하는 단일 작업(20)에 대해, 행렬(30)의 계산의 최종 합 출력, 예를 들어, 도 16의 행 34는, 행렬(30)의 전체 하단 행(34)에 걸친 최종 M 및 I 상태들의 합산이며, 이는 HMM 가속기(8)로부터 출력되고 CPU/GPU/QPU(1000)에 전달되는 최종 합 값이다. 이 최종 합산된 값은 판독이 단상형(들)과 얼마나 잘 매칭되는지를 표현한다. 이 값은, 이후 예컨대 동일한 활성 영역(500)으로부터의 다른 작업(20b)으로부터의 결과 출력과 비교될 수 있는 단일 작업(20a)에 대한, 예를 들어 1보다 작은 확률이다. 유의할 점은 30X 커버리지에서 "전형적인" 인간 게놈에서 평가할 HMM 셀이 대략 20조 개가 존재하고, 여기서 이들 20조 개의 HMM 셀들은 모든 연관된 HMM 작업들(20)의 약 1 내지 2십억 개의 HMM 행렬들(30)에 걸쳐 확산된다는 점이다.
그러한 계산들의 결과들은 그 후, 더 정확한 방식으로, 피험자의 유전 서열이, 예를 들어, 염기별 비교에 의해, 하나 이상의 기준 게놈의 것과 어떻게 상이한지를 결정하기 위해, 하나를 다른 하나와 대조하여 비교될 수 있다. 최종 합 계산을 위해, 개별 셀들의 M, I, 및/또는 D 상태들을 계산하기 위해 이미 이용된 가산기들을 재배치하여 최종 합 값을 계산할 수 있는데, 이는 예컨대 재배된 가산기들의 선택에 먹스(mux)를 포함시키고 그에 의해 예를 들어 계산 시간에 대한 하나의 마지막 추가 행을 행렬에 포함시켜 이 최종 합을 계산하는 것이고, 이는 판독 길이가 100개의 염기이면 약 1% 오버헤드에 달한다. 대안적인 실시예에서, 그러한 계산을 수행하기 위해 전용 하드웨어 리소스가 사용될 수 있다. 다양한 경우들에서, M 및 D 상태 계산들을 위한 가산기들에 대한 로직은 최종 합을 계산하기 위해 배치될 수 있고, 이 D 상태 가산기는 합산 값들을 야기하는 최종 프로세싱에서 달리 사용되지 않기 때문에 효율적으로 배치될 수 있다.
특정 경우들에서, 이들 계산 및 관련 프로세스는, 집합으로서 28분마다 30x 커버리지에서 새로운 인간 게놈을 출력할 수 있는(평균적으로) 서열분석기들의 앙상블을 포함하는 것과 같은, 주어진 서열 분석 플랫폼의 출력에 대응하도록 구성될 수 있다(비록 이들은 3일마다 약 150개의 게놈의 그룹들로 서열분석기 앙상블로부터 나오기는 하지만). 그러한 경우에, 본 매핑, 정렬, 및 변이 추출 연산들이 프로세싱 기술들의 그러한 서열 분석 플랫폼 내에 피팅되도록 구성될 때, 본 명세서에 설명된 바와 같이, 서열 분석 클러스터가 게놈을 서열 분석하는 데 걸리는 28분의 일부분(예를 들어, 약 10분)은 본 명세서에 설명된 바와 같은, 적합하게 구성된 매핑기 및/또는 정렬기에 의해, 서열분석기로부터 이미지/BCL/FASTQ 파일을 취하고 게놈을 매핑 및/또는 정렬하는 단계들, 예를 들어, 포스트-서열분석기 프로세싱을 수행하기 위해 이용될 수 있다. 이는 변이 추출 단계를 수행하기 위한 약 18분의 서열 분석 시간 기간을 남기는데, 그 단계 중 HMM 연산은, 예컨대 뉴클레오티드 서열분석기가, 예컨대 다음 28분에 걸쳐, 다음 게놈을 서열 분석하기 전의 주요 계산 컴포넌트이다. 따라서, 그러한 경우들에서, 18분은 게놈의 프로세싱에 따라 프로세싱될 필요가 있는 20조 개의 HMM 셀들을 계산하는 데 배분될 수 있고, 예컨대 이 경우 프로세싱될 HMM 셀들 각각이 약 12개의 수학 연산(예를 들어, 8개의 승산 및/또는 4개의 가산 연산)을 포함한다. 그러한 스루풋은 다음의 계산 역학 (20조 개의 HMM 셀) x (셀당 12 개의 수학 연산)/(18분 x 60초/분)을 허용하고, 이는 지속된 스루풋의 초당 약 222십억 개의 연산이다.
도 10은 도 9에 제공된 회로의 단순화를 제시하는 예시적인 M, I, 및 D 상태 업데이트 회로들을 포함하는 도 9의 프로세싱 엔진의 로직 블록들(17)을 설명한다. 시스템은 메모리 제한되지 않도록 구성될 수 있어, 단일 HMM 엔진 인스턴스(13)(예를 들어, 오버헤드를 더해서, 평균적으로, 클록 사이클당 하나의 셀의 레이트로 HMM 행렬(30) 내의 모든 단일 셀들을 계산하는)가 여러 번(위에 설명된 바와 같이, 스루풋 효율적이도록 적어도 65 내지 70번) 복제될 수 있다. 그럼에도 불구하고, 하드웨어의 크기, 예를 들어, 칩(2)의 크기 및/또는 그것의 연관된 리소스 사용을 최소화하기 위해, 그리고/또는 바람직한 그리고/또는 가능한 만큼 많은 HMM 엔진 인스턴스(13)를 칩(2) 상에 포함시키기 위한 추가의 노력으로, 계산될 전이 확률들 중 하나 이상을 계산하기 위한 프로세싱 인스턴스(13)의 로직 블록들(15a'-c')에 관해 단순화들이 이루어질 수 있다
특히, 예컨대 삽입 및 결실에 대해, 위에 설명된 바와 같은, 갭 개방 패널티(GOP) 및 갭 계속 패널티(GCP)가 동일하고 칩 구성 이전에 알려져 있다고 가정될 수 있다. 이 단순화는 I-대-M 및 D-대-M 전이 확률들이 동일하다는 것을 암시한다. 그러한 경우에, 예를 들어, 도 9에 제시된 승산기들 중 하나 이상이 제거될 수 있는데, 예컨대 공통 삽입결실-대-M 전이 확률 확률과 곱하기 전에 I 및 D 상태들을 사전 추가함으로써 가능하다. 예를 들어, 다양한 경우들에서, I 및 D 상태 계산들이 동일한 것으로 가정되면, 셀당 상태 계산들은 도 10에 제시된 바와 같이 단순화될 수 있다. 특정하게는, I 및 D 상태 값들이 동일하면, I 상태 및 D 상태가 추가될 수 있고, 그 후 그 합이 단일 값과 곱해질 수 있고, 그에 의해 승산을 절감한다. 이는, 도 10과 관련하여 보이는 바와 같이, I 및 D 상태들에 대한 갭 계속 및/또는 폐쇄 페널티들이 동일하기 때문에 행해질 수 있다. 그러나, 위에 지적한 바와 같이, 시스템은 I 및 D 전이 상태 확률들 양쪽 모두에 대한 상이한 값들을 계산하도록 구성될 수 있고, 그러한 경우에, 이러한 단순화는 이용되지 않을 것이다.
추가적으로, 추가 단순화에서, 전용 칩 또는 HMM 행렬의 하단에서 최종 합 연산을 수행하도록 특정하게 구성된 다른 컴퓨팅 리소스들보다는, 본 HMM 가속기(8)는, 계산을 수행하는 데 걸리는 계산 시간, 예를 들어, 오버헤드에 대해, HMM 행렬(30)에 하나 이상의 추가적인 행을 효과적으로 부가하도록 구성될 수 있고, 또한 예컨대 실제의 최종 합산 계산을 수행하기 위해, 필요에 따라 기존의 가산기들에 최종 합 값들을 멀티플렉싱함으로써 M-상태(15a) 및 D-상태(15c) 계산 로직으로부터 하나 이상의 가산기를 "빌리도록" 구성될 수 있다. 그러한 경우에, M 로직(15a), I 로직(15b), 및 D 로직(15c) 블록들 - 이 블록들은 HMM MID 인스턴스(17)의 일부를 함께 형성함 - 을 포함하는 최종 로직은 관련된 다양한 멀티플렉싱과 함께 7개의 승산기 및 4개의 가산기를 포함할 수 있다.
따라서, 도 10은 전이 확률들에 관련된 가정들을 단순화하는 효과들뿐만 아니라, 최종 합 연산들에 대해, 다양한 M, I, 및/또는 D 리소스들, 예를 들어, 가산기 리소스들을 공유하는 효과를 포함하는, M, I, 및 D 상태 업데이트 회로들(15a', 15b', 및 15c')을 설명한다. 도 10에 도시된 바와 같이, M-상태 계산 블록에서 M-상태 경로에 지연 블록이 또한 추가될 수 있다. 이 지연은 승산 및 가산 연산들의 실제 하드웨어 구현들에서의 지연들을 보상하기 위해, 및/또는 제어 로직(예를 들어, 15)을 단순화하기 위해 추가될 수 있다.
도 9 및 도 10에 도시된 바와 같이, 이들 각각의 승산기 및/또는 가산기는 부동 소수점 승산기 및 가산기일 수 있다. 그러나, 다양한 경우들에서, 도 11과 관련하여 알 수 있는 바와 같이, 로그 도메인 구성이 구현될 수 있고 그러한 구성에서는 모든 승산들이 가산들로 변한다. 도 11은 로그 도메인 계산 구성을 이용할 때 발생하는 것과 같이, 모든 승산기들이 가산기들(예를 들어, 15a", 15b", 및 15c")로 변하는 경우에 로그 도메인 계산을 어떻게 보일지를 제시한다. 특정하게는, 모든 승산기 로직은 가산기로 변하지만, 가산기 자체는 함수로 변하거나 달리 이를 포함하고 여기서 함수는 예컨대: f(a,b) = max(a,b) - log2(1+2A(-[a-b])이고, 예컨대 이 경우 수학식의 로그 부분은 그 깊이와 물리적 크기가 요구되는 정밀도에 의해 결정되는 LUT 내에 유지될 수 있다.
전형적인 판독 및 단상형 서열 길이들뿐만 아니라 판독 품질(Phred) 스코어들 및 관련 전이 확률들에 대해 대해 전형적으로 보여지는 값들이 주어지면, 내부 HMM 상태 값들에 대한 동적 범위 요건들은 상당히 엄격할 수 있다. 예를 들어, HMM 모듈을 소프트웨어로 구현할 때, 다양한 HMM 작업들(20)은 단-정밀도(32 비트) 부동 소수점 상태 값들에 대해 구현될 때와 같이 언더런들을 초래할 수 있다. 이는 10의 80승보다 큰 동적 범위를 암시하며, 그에 의해 변이 추출 소프트웨어에게 배정밀도(64 비트) 부동 소수점 상태 값들까지 올릴 것을 요구한다. 그러나, 전체 64 비트 배정밀도 부동 소수점 표현은, 다양한 경우들에서, 일부 부정적인 함의를 가질 수 있는데, 예컨대 콤팩트한 고속 하드웨어가 구현되어야 하는 경우, 저장 및 계산 파이프라인 리소스 요건들 양쪽 모두가 증가될 필요가 있을 것이고, 그에 의해 더 큰 칩 공간을 점유하고, 그리고/또는 타이밍을 느리게 한다. 그러한 경우들에서, 고정 소수점만의 선형 도메인 숫자 표현이 구현될 수 있다. 그럼에도 불구하고, 이 실시예에서, 상태 값들에 대한 동적 범위 요구들은 특정 상황들에서 관련되는 비트 폭들을 결코 바람직하지 않게 만든다. 따라서, 그러한 경우들에서, 본 명세서에 설명된 바와 같이, 고정 소수점만의 로그 도메인 숫자 표현이 구현될 수 있다.
그러한 방식에서, 도 11과 관련하여 알 수 있는 바와 같이, 메모리 및 계산들에서 실제 상태 값을 표현하는 대신에, 숫자의 -로그-베이스-2가 표현될 수 있다. 이는 로그 공간에서의 가산 연산들로 변환되는 선형 공간에서의 승산 연산들을 이용하는 것을 포함하는 여러 이점들을 가질 수 있고; 그리고/또는 숫자들의 이 로그 도메인 표현은 정수 비트들의 수의 작은 증가들만으로 더 넓은 동적 범위를 본질적으로 지원한다. 이들 로그 도메인 M, I, D 상태 업데이트 계산들은 도 11 및 도 12에 설명된다.
도 11의 로직(17) 구성을 도 9의 구성과 비교할 때 알 수 있는 바와 같이, 승산 연산들은 로그 도메인에서 사라진다. 오히려, 이들은 가산 연산들에 의해 대체되고, 가산 연산들은 예를 들어 LUT를 통해, 최대 연산에 이어서 보정 계수 가산으로 표현될 수 있는 함수에 모핑되고, 여기서 보정 계수는 로그 도메인에서 합산되는 2개의 값 사이의 차이의 함수이다. 그러한 보정 계수는 계산되거나 룩업 테이블로부터 생성될 수 있다. 보정 계수 계산 또는 룩업 테이블 구현 중 어느 것이 이용되기에 더 효율적인지는 합 값들 사이의 차이에 대한 요구되는 정밀도(비트 폭)에 의존한다. 따라서, 특정한 경우들에서, 상태 표현을 위한 로그 도메인 비트들의 수는 임의의 주어진 구현에 대해 원하는 품질의 레벨에 따라 대략 8 내지 12개의 정수 비트 플러스 6 내지 24개의 분수 비트일 수 있다. 이는 로그 도메인 상태 값 표현에 대해 14 비트와 36 비트 사이의 어딘가를 암시한다. 게다가, 용인할 만한 품질 및 용인할 만한 하드웨어 크기 및 속도를 제공할 수 있는 로그 도메인 고정 소수점 표현들이 존재하는 것으로 결정되었다.
다양한 경우들에서, 각각의 HMM 작업(20)에 대해 하나의 판독 서열이 전형적으로 프로세싱되는데, 이는 지적한 바와 같이 2개의 단상형 서열과 대조한 비교를 포함할 수 있다. 그리고 단상형 메모리에 대해 위와 같이, 다양한 소프트웨어 구현된 기능들에 현재의 작업(20a)이 여전히 HMM 엔진 인스턴스(13)에 의해 프로세싱되고 있는 동안 새로운 HMM 작업 정보(20b)를 기입하는 능력을 허용하기 위해 판독 서열 메모리(18)에서 핑-퐁 구조가 또한 사용될 수 있다. 그러므로, 판독 서열 저장 요건은 (기입을 위한 하나의 포트, 판독을 위한 하나의 포트, 및/또는 기입 및 판독 포트들에 대한 개별 클록들과 같은) 단일 1024x32 2-포트 메모리에 대한 것일 수 있다.
특정하게는, 위에 설명된 바와 같이, 다양한 경우들에서, 시스템(1)에 의해 이용되는 아키텍처는 서열 분석된 샘플 게놈 내의 주어진 염기가 하나 이상의 기준 게놈 내의 대응하는 염기의 것과 매칭되는지를 결정함에 있어서, 가상 행렬(30)이 형성되도록 구성되고, 여기서 기준 게놈은 이론적으로 수평 축을 가로질러 설정되는 반면, 샘플 게놈을 표현하는 서열 분석된 판독들은 이론적으로 수직 축을 따라 내림차순 방식으로 설정된다. 결과적으로, HMM 계산을 수행할 때, HMM 프로세싱 엔진(13)은, 본 명세서에 설명된 바와 같이, 이 가상 HMM 행렬(30)을 횡단하도록 구성된다. 그러한 프로세싱은 도 7에서와 같이 스와스(35)로서 도시될 수 있는데, 이는 도 8에서 보이는 바와 같이, 가상 어레이를 가로질러 대각선으로 아래로 이동하면서 가상 어레이의 각각의 셀에 대해 다양한 HMM 계산을 수행한다.
더 구체적으로는, 이러한 이론적 횡단은 그 전체적으로 행렬(30)로부터의 셀들(35a)의 행들의 제1 그룹을, 예컨대, 그룹 내의 모든 단상형 및 판독 염기들에 대해, 아래로 행들(35b)의 다음 그룹(예를 들어, 판독 염기들의 다음 그룹)으로 진행하기 전에, 프로세싱하는 것을 수반한다. 그러한 경우에, 제1 그룹에 대한 M, I, 및 D 상태 값들은 이들 M, I, 및 D 상태 값들이 그 후 행렬(30)에서 아래의 다음 그룹(스위스)의 상단 행을 공급하는 데 사용될 수 있도록 행들의 그 초기 그룹의 하단 에지에 저장된다. 다양한 경우들에서, 시스템(1)은 HMM 가속기(8)에서 최대 1008 길이의 단상형들 및/또는 판독들을 허용하도록 구성될 수 있고, 수치 표현은 각각의 상태에 대해 W-비트들을 이용하기 때문에, 이는 M, I, 및 D 상태 저장을 위한 1008워드 x W-비트 메모리를 암시한다.
따라서, 지적한 바와 같이, 그러한 메모리는 단일-포트 또는 더블-포트 메모리일 수 있다. 추가적으로, 예를 들어, 스와스 경계의 결과들을 저장하기 위한, 클러스터-레벨, 스크래치 패드 메모리가 또한 제공될 수 있다. 예를 들어, 위의 개시내용에 따르면, 이미 논의된 메모리들은 엔진-인스턴스(13)당 기준으로 구성된다. 특정한 HMM 구현들에서, 다수의 엔진 인스턴스(13a-(n+1)) 가 CentCom(9)을 통해 PCIe 인터페이스(4) 및 DMA(3)로 단일 연결, 예를 들어 PCIe 버스(5)에 의해 서비스되는 클러스터(11)로 그룹화될 수 있다. 기존의 CentCom(9) 기능성을 사용하여 PCIe 대역폭을 더 효율적으로 활용하기 위해 다수의 클러스터(11a-(n+1))가 인스턴스화될 수 있다
그러므로, 전형적인 구성에서, 16개와 64개 사이 어딘가의 수의 엔진(13m)이 클러스터(11n) 내에서 인스턴스화되고, 1개 또는 4개의 클러스터가 HMM(8)의 전형적인 FPGA/ASIC 구현에서 인스턴스화될 수 있다(예를 들어, 그것이 전용 HMM FPGA 이미지인지 또는 HMM이 서열분석기/매핑기/정렬기 및/또는 본 명세서에 개시된 다른 모듈들과 FPGA 면적(real estate)을 공유해야 하는지에 따라). 특정 경우들에서, HMM 하드웨어에서 클러스터-레벨(11)에서 사용되는 소량의 메모리가 존재할 수 있다. 이 메모리는 클러스터 내의 HMM 엔진 인스턴스들(13)로부터 출력 데이터를 캡처하고 이를 DMA(3) 및 PCIe 4를 통해 CPU(1000)의 소프트웨어로 다시 전송하기 위해 CentCom(9)로 전달하기 위해, 탄성 FIFO(First In First Out)로서 사용될 수 있다. 이론적으로, 이 FIFO는, 데이터가 전형적으로 FIFO에 도착한 후에 거의 즉시 CentCom(9)로 전달되기 때문에, 매우 작을 수 있다(대략 2개의 32-비트 워드). 그러나, 출력 데이터 경로에서 잠재적인 중단들을 흡수하기 위해, 이 FIFO의 크기는 파라미터화 가능하게 될 수 있다. 특정한 경우들에서, FIFO는 512 워드의 깊이와 함께 사용될 수 있다. 따라서, 클러스터-레벨 저장 요건들은 단일 512x32 2-포트 메모리(별개의 판독 및 기입 포트들, 동일한 클록 도메인)일 수 있다.
도 12는 갭 개방 패널티(Gap Open Penalties, GOP), 갭 폐쇄 패널티(Gap Close Penalties, GCP), 및 주어진 판독 서열이 특정한 단상형 서열과 매칭하는지 및 얼마나 잘 매칭하는지를 결정하는 데에 관련되는 전이 확률들 사이의 관계를 묘사하는 다양한 HMM 상태 전이들(17b)을 설명한다. 그러한 분석을 수행할 때, HMM 엔진(13)은, 매칭 상태(15a)를 결정하기 위한 로직 블록, 삽입 상태(15b)를 결정하기 위한 로직 블록, 및 결실 상태(15c)를 결정하기 위한 로직 블록과 같은 적어도 3개의 로직 블록(17b)을 포함한다. 이들 M, I, 및 D 상태 계산 로직(17)은 적절히 구성될 때 예컨대 HMM 계산 흐름의 높은 대역폭 병목 현상들을 피하도록 효율적으로 기능할 수 있다. 그러나, 일단 M, I, D 코어 계산 아키텍처가 결정되면, 시스템 내의 다른 병목 현상들의 발생을 피하기 위해 다른 시스템 향상들도 구성되고 구현될 수 있다.
특정하게는, 시스템(1)은 전체 스루풋을 제한하는 다른 병목 현상들을 생성하지 않도록, 컴퓨팅 코어(1000)로부터 변이 추출기 모듈(2)로 그리고 다시 역으로 정보를 효율적으로 공급하는 프로세스를 최대화하도록 구성될 수 있다. HMM 코어 M, I, D 상태 계산 로직(17)에 공급되는 하나의 그러한 블록은 전이 확률들 및 프라이어 계산 블록이다. 예를 들어, 도 9와 관련하여 알 수 있는 바와 같이, 각각의 클록 사이클은 M, I, D 상태 계산 블록(15a)에 대한 입력에서 7개의 전이 확률 및 하나의 프라이어의 프레젠테이션을 이용한다. 그러나, 도 10의 아키텍처를 야기하는 단순화 후에, M, I, D 상태 계산 블록의 입력에서 각각의 클록 사이클에 대해 4개의 고유 전이 확률 및 하나의 프라이어만이 이용된다. 따라서, 다양한 경우들에서, 이들 계산이 단순화될 수 있고 결과 값들이 생성될 수 있다. 따라서, 프로세스의 이 스테이지에서 스루풋, 효율성을 증가시키고, 병목 현상 형성의 가능성을 감소시킨다.
추가적으로, 위에 설명된 바와 같이, 프라이어들은 조사되는 특정 염기의 판독 품질, 예를 들어, Phred 스코어를 통해 생성되는 값들 및 그 염기가 가상 HMM 행렬(30)에서 평가되는 현재 셀에 대한 가설 단상형 염기와 매칭하는지 여부이다. 관계는 다음 수학식들을 통해 기술될 수 있다: 첫째, 문제의 판독 Phred는 확률 = 10^(-(판독 Phred/10))로서 표현될 수 있다. 그 후, 프라이어는 판독 염기가 가설 단상형 염기와 매칭되는지에 기초하여 계산될 수 있다: 판독 염기 및 가설 단상형 염기가 매칭되는 경우: 프라이어 = 1 - 확률로 표현된 판독 Phred. 그렇지 않으면: 프라이어 = (확률로 표현된 판독 Phred)/3. 이 마지막 수학식에서 3으로 나누는 연산은 4개의 가능한 염기(A, C, G, T)만이 존재한다는 사실을 반영한다. 그러므로, 판독 및 단상형 염기가 매칭되지 않으면, 그것은 3개의 나머지 가능한 염기들 중 매칭되는 하나가 되어야 하고, 3개의 가능성들 각각은 동등하게 가능성이 있는 것으로 모델링된다.
판독-염기마다의 Phred 스코어들이 HMM 하드웨어 가속기(8)에 6-비트 값들로서 전달된다. 그 후, 프라이어들을 유도하기 위한 수학식들은 "매칭" 경우에 대한 64개의 가능한 결과들 및 "매칭하지 않는" 경우에 대한 추가 64개의 가능한 결과들을 갖는다. 이는 128 워드 룩업 테이블로서 하드웨어에서 효율적으로 구현될 수 있고, 여기서 룩업 테이블로의 어드레스는 판독 염기가 가설 단상형 염기와 매칭되는지 여부를 나타내는 단일 비트와 Phred 값을 연결함으로써 형성된 7-비트 수량이다.
게다가, HMM 하드웨어 가속기(8)에 대한 아키텍처의 다양한 구현들에서, 결실 확률들을 매핑 투 삽입(match to insert) 및/또는 매칭 투 결실(match to delete) 확률들을 결정하는 것에 관련하여, 위에 지적한 바와 같이, 매칭 투 삽입 상태 전이, 및 매칭 투 결실 상태 전이에 대해 개별 갭 개방 페널티(GOP)가 지정될 수 있다. 이는 도 12의 상태 전이도에서 M2I 및 M2D 값들이 상이한 것에 해당된다. GOP 값들이 6-비트 Phred-유사 값들로서 HMM 하드웨어 가속기(8)에 전달됨에 따라, 갭 개방 전이 확률들은 다음 수학식들에 따라 계산될 수 있다: M2I 전이 확률 = 10^(-(판독 GOP(I)/10)) 및 M2D 전이 확률 = 10^(-(판독 GOP(D)/10)). 하드웨어에서의 프라이어 유도와 유사하게, 단순한 64 워드 룩업 테이블이 M2I 및 M2D 값들을 유도하기 위해 사용될 수 있다. GOP(I) 및 GOP(D)가 HMM 하드웨어(8)에 잠재적으로 상이한 값들로서 입력되면, 2개의 그러한 룩업 테이블(또는 회로의 나머지의 주파수의 2배로 잠재적으로 클로킹된 하나의 리소스 공유 룩업 테이블)이 활용될 수 있다.
더욱이, 다양한 경우들에서, 매칭 투 매칭(match to match) 전이 확률들을 결정하는 것과 관련하여, 매칭 투 매칭 전이 확률은 다음과 같이 계산될 수 있다: M2M 전이 확률 = 1-(M2I 전이 확률 + M2D 전이 확률). M2I 및 M2D 전이 확률들이 ½의 값 이하인 것으로 구성될 수 있다면, 다양한 실시예들에서, 위 수학식은 전체 효율 및 스루풋을 증가시키는 방식으로 하드웨어로 구현될 수 있다: 예컨대 수학식을 M2M 전이 확률 = (0.5 - M2I 전이 확률) + (0.5 - M2D 전이 확률)이 되도록 재작성하는 것에 의해. 그러한 수학식의 재작성은 M2M이 2개의 64 요소 룩업 테이블에 이어서 가산기를 이용하여 유도될 수 있게 하고, 여기서, 룩업 테이블들은 결과들을 저장한다.
게다가 또한, 삽입 투 삽입(Insert to Insert) 및/또는 결실 투 결실(Delete to Delete) 전이 확률들을 결정하는 것과 관련하여, I2I 및 D2D 전이 확률들은 HMM 하드웨어 가속기(8)에 입력된 갭 계속 확률(GCP) 값들의 함수들이다. 다양한 경우들에서, 이들 GCP 값들은 판독-염기마다의 기준으로 주어진 6-비트 Phred-유사 값들일 수 있다. 그 후 I2I 및 D2D 값들은 다음에 나타낸 바와 같이 유도될 수 있다: I2I 전이 확률 = 10^(-(판독 GCP(I)/10)), 및 D2D 전이 확률 = 10^(-(판독 GCP(D)/10)). 위에 논의된 다른 전이 확률들 중 일부와 유사하게, I2I 및 D2D 값들은 하드웨어로 효율적으로 구현될 수 있고, 이전에 논의된 매칭 투 삽입결실(Match-to-Indel) 룩업 테이블들과 동일한 형태 및 콘텐츠를 갖는 것과 같은, 2개의 룩업 테이블(또는 하나의 리소스 공유 룩업 테이블)을 포함할 수 있다. 즉, 각각의 룩업 테이블은 64 워드를 가질 수 있다.
추가적으로, 삽입 및/또는 결실 투 매칭(Inset and/or Delete to Match) 확률들을 결정하는 것과 관련하여, I2M 및 D2M 전이 확률들은 갭 계속 확률(GCP) 값들의 함수들이고, 다음과 같이 계산될 수 있다: I2M 전이 확률 = 1 - I2I 전이 확률, 및 D2M 전이 확률 = 1 - D2D 전이 확률, 여기서 I2I 및 D2D 전이 확률들은 위에 논의된 바와 같이 유도될 수 있다. 위 수학식들을 구현하기 위한 단순한 감산 연산은 단순히 다른 64 워드 룩업 테이블을 구현하고 그것의 2개의 카피를 이용하여 I2M 및 D2M 유도들을 구현하는 것보다 하드웨어 리소스들에서 더 비쌀 수 있다. 그러한 경우들에서, 각각의 룩업 테이블은 64 워드를 가질 수 있다. 물론, 모든 관련 실시예들에서, 단순한 또는 복잡한 감산 연산들이 적합하게 구성된 하드웨어로 형성될 수 있다.
도 13은 도 12의 일반 상태 전이도를 지원하는, 위에 설명된 바와 같은, HMM 전이 확률들 및 프라이어들에 대한 단순화된 계산을 위한 회로(17a)를 제공한다. 도 13과 관련하여 알 수 있는 바와 같이, 다양한 경우들에서, 단순한 HMM 하드웨어 가속기 아키텍처(17a)가 제시되고, 이 가속기는 삽입 및 결실 전이들에 대한 별개의 GOP 값들을 포함하도록 구성될 수 있고, 및/또는 삽입 및 결실 전이들에 대한 별개의 GCP 값들이 있을 수 있다. 그러한 경우에, 각각의 클록 사이클에서 7개의 고유 전이 확률 및 하나의 프라이어를 생성하는 비용은 아래에 제시된 바와 같이 구성될 수 있다: 8개의 64 워드 룩업 테이블, 하나의 128 워드 룩업 테이블, 및 하나의 가산기.
게다가, 다양한 경우들에서, 본 명세서에서 제시된 바와 같이, 하드웨어(2)는 주어진 칩 타겟 상에(예를 들어, FPGA, sASIC, 또는 ASIC 상에) 가능한 한 많은 HMM 엔진 인스턴스들(13)을 피팅하도록 구성될 수 있다. 그러한 경우에, 전이 확률들 및 프라이어 생성 로직(17a)을 구현하기 위한 비용은 아래의 구성들에 의해 제공되는 비용들에 비해 상당히 감소될 수 있다. 첫째로, 예를 들어, GOP(I) 및 GOP(D)에 대한 별개의 값들이 존재할 수 있는, 도 13에 제시된 바와 같은, 더 일반적인 버전의 상태 전이들을 지원하기보다는, 오히려, 다양한 경우들에서, 삽입 및 결실 전이들에 대한 GOP 값들이 주어진 염기에 대해 동일한 것으로 가정될 수 있다. 이 결과, 위에 지적한 바와 같이, 하드웨어에 대한 여러 단순화가 야기된다.
그러한 경우들에서, 하나의 64 워드 룩업 테이블만이 이용하여 단일 M2Indel 값을 생성하여, M2I 및 M2D 전이 확률 값들 양쪽 모두를 대체할 수 있는 반면, 더 일반적인 경우에는 2개의 테이블이 전형적으로 이용된다. 마찬가지로, 하나의 64 워드 룩업 테이블만을 사용하여 M2M 전이 확률 값을 생성할 수 있는 반면, 일반적인 경우에는 2개의 테이블 및 가산이 전형적으로 이용될 수 있는데, 이는 M2M이 이제는 l-2xM2Indel로서 계산될 수 있기 때문이다.
두 번째로, 삽입 및 결실 양쪽 모두에 대한 서열-의존적 GCP 값이 동일하고 이 값이 HMM 작업(20)의 과정에 걸쳐 변하지 않는다는 가정이 이루어질 수 있다. 이는 다음을 의미한다: 2개의 테이블 대신에 하나의 64 워드 룩업 테이블을 사용하여, 별개의 I2I 및 D2D 값들 대신에 단일 Indel2Indel 전이 확률이 계산될 수 있다; 그리고 2개의 테이블 대신 하나의 64 워드 룩업 테이블을 사용하여, 별개의 I2M 및 D2M 값들 대신에 단일 Indel2Match 전이 확률이 계산될 수 있다.
추가적으로, Inset2Insert 및 Delete2Delete(I2I 및 D2D)를 가정하고 Insert2Match 및 Delete2Match(I2M 및 D2M) 값들이 삽입 및 결실 전이들 사이에서 동일할 뿐만 아니라, 특정한 HMM 작업(20)에 대해 정적일 수 있다는 추가의 단순화 가정이 이루어질 수 있다. 따라서, I2I, D2D, I2M, 및 D2M 전이 확률들을 갖는 더 일반적인 아키텍처에서 연관된 4개의 룩업 테이블들이 완전히 제거될 수 있다. 다양한 이들 경우에서, 정적 Indel2Indel 및 Indel2Match 확률들은 소프트웨어를 통해 또는 RTL 파라미터를 통해 입력되게 될 수 있다(따라서 FPGA에서 프로그램 가능한 비트스트림일 것이다). 특정 경우들에서, 이들 값은 비트스트림 프로그램 가능하게 될 수 있고, 특정 경우들에서, 훈련 모드는 주어진 서열분석기 런 또는 게놈 분석에 대한 전이 확률 정확도를 더 개선하기 위해 훈련 시퀀스를 이용하여 구현될 수 있다.
도 14는 새로운 상태 전이(17b)도가 이들 다양한 단순화 가정을 구현할 때 어떻게 보일 수 있는지를 설명한다. 구체적으로는, 도 14는 위에 설명된 단순화들을 갖는 GOP, GCP, 및 전이 확률들 사이의 관계를 묘사하는 단순화된 HMM 상태 전이도를 설명한다.
마찬가지로, 도 15는 도 14의 단순화된 상태 전이도를 지원하는, HMM 전이 확률들 및 프라이어 생성을 위한, 회로(17a,b)를 설명한다. 도 15와 관련하여 보이는 바와 같이, 해당 상태 전이도의 회로 실현이 제공된다. 따라서, 다양한 경우들에서, HMM 하드웨어 가속기(8)에 대해, 각각의 클록 사이클에서 전이 확률들 및 하나의 프라이어를 생성하는 비용은: 2개의 64 워드 룩업 테이블, 및 1개의 128 워드 룩업 테이블로 감소한다.
위에 설명된 바와 같이, 엔진 제어 로직(15)은, 예를 들어, 하이-레벨 엔진 상태 머신들을 통해, 가상 행렬을 생성하고/하거나 행렬을 횡단하여 스와스의 에지에 도달하도록 구성되고, 여기서 결과 데이터는 예를 들어 최종 합 제어 로직(19)을 통해 최종적으로 합산되고, 예를 들어, put/get 로직을 통해 저장될 수 있다.
따라서, 도 16과 관련하여 알 수 있는 바와 같이, 다양한 실시예들에서, HMM 셀 행렬(30)을 생성 및/또는 횡단하기 위한 방법이 제공된다. 구체적으로는, 도 16은 HMM 가속기 제어 로직(15)이 HMM 행렬 내의 가상 셀들을 어떻게 횡단하는지에 대한 예를 설명한다. 예를 들어, 예시적인 목적들을 위해, 각각의 승산 및 각각의 가산 연산에 대한 5 클록 사이클 레이턴시를 가정하면, M, I, D 상태 업데이트 계산들을 통한 최악의 경우의 레이턴시는 M 업데이트 계산을 통해 전파하는 데 필요할 20 클록 사이클일 것이다. I 및 D 상태 업데이트 계산들에서 절반만큼 많은 연산이 존재하며, 그들 연산에 대해 10 클럭 사이클 레이턴시를 암시한다.
M, I 및 D 계산 연산들에서의 이들 레이턴시 함의들은 셀-대-셀 데이터 종속성들의 다양한 예들을 설명하는 도 16과 관련하여 이해될 수 있다. 그러한 경우들에서, 주어진 셀의 M 및 D 상태 정보는 바로 우측에 있는 HMM 행렬 내의 셀 (예를 들어, 주어진 셀과 동일한 판독 염기를 갖지만, 다음 단상형 염기를 가짐)의 D 상태 계산들에 공급된다. 마찬가지로, 주어진 셀에 대한 M 및 I 상태 정보는 바로 아래에 있는 HMM 행렬 내의 셀 (예를 들어, 주어진 셀과 동일한 단상형 염기를 갖지만, 다음 판독 염기를 가짐)의 I 상태 계산들에 공급된다. 따라서, 특정한 경우들에서, 주어진 셀의 M, I, 및 D 상태들은 HMM 셀 행렬의 다음 대각선 내의 셀들의 D 및 I 상태 계산들에 공급된다.
유사하게, 주어진 셀의 M, I, 및 D 상태들은 하나 우측 및 하나 아래에 있을 셀 (예를 들어, 다음 단상형 염기 및 다음 판독 염기 양쪽 모두를 가짐)의 M 상태 계산을 공급한다. 이 셀은 실제로는 그것을 공급하는 셀로부터 2개의 대각선 떨어져 있다(반면에, I 및 D 상태 계산들은 하나의 대각선 떨어져 있는 셀로부터의 상태들에 의존한다). M 상태 계산들은 2개의 대각선 떨어져 있는 셀들에 의존하는 반면, 하나의 대각선 떨어져 있는 셀들에 의존하는 I 및 D 상태 계산들의 이러한 품질은 하드웨어 설계에 대한 유익한 결과를 갖는다.
특정하게는, 이들 구성이 주어지면, I 및 D 상태 계산들은 M 상태 계산들(예를 들어, 20 사이클)의 절반만큼(예를 들어, 10 사이클) 걸리도록 적응될 수 있다. 그러므로, M 상태 계산들이 동일한 셀에 대해 I 및 D 상태 계산들보다 10 사이클 전에 시작되면, HMM 행렬(30) 내의 셀에 대한 M, I, 및 D 상태 계산들 모두가 동시에 완료될 것이다. 추가적으로, 행렬(30)이 예컨대 그 안에 각각 약 10개의 셀의 스와스(35)를 갖는(예를 들어, 10개의 판독 염기에 걸쳐 있는) 대각선 방식으로 횡단되면: (hap, rd) 좌표 (i, j)에서 주어진 셀에 의해 생성되는 M 및 D 상태들은 (i, j)에서의 셀의 계산 파이프라인을 통해 완전히 통과하자마자 셀 (i+1, j) D 상태 계산들에 의해 사용될 수 있다.
(hap, rd) 좌표 (i, j)에서 주어진 셀에 의해 생성된 M 및 I 상태들은 (i, j)에서의 셀의 계산 파이프라인을 통해 완전히 통과한 1 사이클 후에 셀 (i, j+1) I 상태 계산들에 의해 사용될 수 있다. 마찬가지로, (hap, rd) 좌표 (i, j)에서 주어진 셀에 의해 생성된 M, I, 및 D 상태들은 (i, j)에서의 셀의 계산 파이프라인을 통해 완전히 통과한 1 사이클 후에 셀 (i+1, j+1) M 상태 계산들에 의해 사용될 수 있다. 종합하면, 위 점들은 예를 들어, 10개의 판독의 스와스 길이에 걸쳐 있는 스와스 경로의 대각선을 따라 M, I, 및 D 상태들에 대해 매우 작은 전용 저장이 필요하다는 것을 확립한다. 그러한 경우에, 단지 셀 (i, j) M, I, 및 D 상태 값들을 셀 (i+1, j+1) M 계산들을 위해 하나의 클록 사이클 및 셀 (i, j+1) I 계산들에 하나의 클록 사이클만큼 지연시키기 위해 필요한 레지스터들만 있다. 더욱이, 여기서는 다소 선순환이 존재하는데 그 이유는 주어진 셀에 대한 M 상태 계산들이 그 동일한 셀에 대해 I 및 D 상태 계산들보다 10 클록 사이클 전에 시작되어, 자연적으로 임의의 주어진 셀에 대한 새로운 M, I, 및 D 상태들을 동시에 출력하기 때문이다.
위 내용을 고려하여, 그리고 도 16과 관련하여 알 수 있는 바와 같이, HMM 가속기 제어 로직(15)은 행렬을 횡단하는 방식으로 가상 행렬(30)의 셀들 각각 내의 데이터를 프로세싱하도록 구성될 수 있다. 특정하게는, 다양한 실시예들에서, 연산들은 셀 (0,0)에서 시작하고, M 상태 계산들은 I 및 D 상태 계산들이 시작하는 것보다 10 클록 사이클 전에 시작한다. 횡단할 다음 셀은 셀 (1,0)이어야 한다. 그러나, 셀 (0,0)으로부터의 결과들이 이용 가능해지기 전에 I 및 D 계산들의 시작 후에 10 사이클 레이턴시가 존재한다. 따라서, 하드웨어는 계산 파이프라인에 9개의 "데드" 사이클을 삽입한다. 이들은 도 16에서 0보다 작은 단상형 인덱스를 갖는 셀들로서 도시되어 있다.
(-9,-9)의 행렬 내의 유효 셀 위치를 갖는 데이터 사이클을 완료한 후에, 셀 (0,0)에 대한 M, I, 및 D 상태 값들이 이용 가능하다. 이들(예를 들어, 셀 (0,0)의 M 및 D 상태 출력들)은 이제 셀 (0,1)의 D 상태 계산들을 시작하기 위해 즉시 사용될 수 있다. 하나의 클록 사이클 후에, 셀 (0,0)으로부터의 M, I, 및 D 상태 값들은 셀 (0,1)의 I 상태 계산들 및 셀 (1,1)의 M 상태 계산들을 시작하기 위해 사용될 수 있다.
횡단될 다음 셀은 셀 (2,0)일 수 있다. 그러나, 셀 (1,0)으로부터의 결과들이 이용 가능해지기 전에 I 및 D 계산들의 시작 후에 10 사이클 레이턴시가 존재한다.
따라서, 하드웨어는 계산 파이프라인에 8개의 데드 사이클을 삽입한다. 이들은 셀들 (1,0) 및 (0,1)과 동일한 대각선을 따라 도 16에서와 같이, 0보다 작은 단상형 인덱스를 갖는 셀들로서 도시되어 있다. (-8, -9)의 행렬 내의 유효 셀 위치를 갖는 데이터 사이클을 완료한 후에, 셀 (1,0)에 대한 M, I, 및 D 상태 값들이 이용 가능하다. 이들(예를 들어, 셀 (1,0)의 M 및 D 상태 출력들)은 이제 셀 (2,0)의 D 상태 계산들을 시작하기 위해 즉시 사용된다.
하나의 클록 사이클 후에, 셀 (1,0)으로부터의 M, I, 및 D 상태 값들은 셀 (1,1)의 I 상태 계산들 및 셀 (2,1)의 M 상태 계산들을 시작하기 위해 사용될 수 있다. 그 후, 셀 (0,1)로부터의 M 및 D 상태 값들은 셀 (1,1)의 D 상태 계산들을 시작하기 위해 동시에 사용될 수 있다. 하나의 클록 사이클 후에, 셀 (0,1)로부터의 M, I, 및 D 상태 값들은 셀 (0,2)의 I 상태 계산들 및 셀 (1,2)의 M 상태 계산들을 시작하기 위해 사용된다.
이제, 횡단할 다음 셀은 셀 (3,0)일 수 있다. 그러나, 셀 (2,0)로부터의 결과들이 이용 가능해지기 전에 I 및 D 계산들의 시작 후에 10 사이클 레이턴시가 존재한다. 따라서, 하드웨어는 계산 파이프라인에 7개의 데드 사이클을 삽입한다. 이들은 다시 셀들 (2,0), (1,1) 및 (0,2)와 동일한 대각선을 따라 도 16에서, 0보다 작은 단상형 인덱스를 갖는 셀들로서 도시되어 있다. (-7,-9)의 행렬 내의 유효 셀 위치를 갖는 데이터 사이클을 완료한 후에, 셀 (2,0)에 대한 M, I, 및 D 상태 값들이 이용 가능하다. 이들(예를 들어, 셀 (2,0)의 M 및 D 상태 출력들)은 이제 셀 (3,0)의 D 상태 계산들을 시작하기 위해 즉시 사용된다. 그리고, 따라서, 대각선 내의 다른 10개의 셀에 대한 계산이 시작된다.
그러한 프로세싱은, (35의 판독 길이와 14의 단상형 길이를 갖는) 이 예에서는, (13,0)의 (hap, rd) 좌표에서의 셀에서 시작하는 대각선이 완료된 후에 발생할, 스와스(35a)에서의 마지막 전체 대각선의 끝까지 계속될 수 있다. 도 16의 셀 (4,9)가 횡단된 후에, 횡단할 다음 셀은 셀 (13,1)이어야 한다. 그러나, 셀 (12,1)로부터의 결과들이 이용 가능해지기 전에 I 및 D 계산들의 시작 후에 10 사이클 레이턴시가 존재한다.
따라서, 하드웨어는, 예컨대 좌표 (0, 10)에서의, 다음 스와스(35b)에서의 제1 셀과 연관된 연산들을 시작하도록 구성될 수 있다. 셀 (0, 10)의 프로세싱 후에, 그 후 셀 (13, 1)이 횡단될 수 있다. 셀 (13, 1)에서 시작하는 셀들의 전체 대각선은 그 후 셀 (5, 9)에 도달할 때까지 횡단된다. 마찬가지로, 셀 (5, 9)이 횡단된 후에, 횡단할 다음 셀은 셀 (13, 2)이어야 한다. 그러나, 전과 같이 셀 (12, 2)로부터의 결과들이 이용 가능해지기 전에 I 및 D 계산들의 시작 후에 10 사이클 레이턴시가 존재할 수 있다. 그러므로, 하드웨어는, 예컨대 좌표 (1, 10)에서의, 다음 스와스(35b)에서의 제2 대각선 내의 제1 셀과, 이어서 셀 (0, 11)과 연관된 연산들을 시작하도록 구성될 수 있다.
셀(0, 11)의 프로세싱 후에, 위에 논의된 방법들에 따라, 셀 (13, 2)가 횡단될 수 있다. 셀 (13,2)에서 시작하는 셀들의 전체 대각선(35)은 그 후 셀 (6, 9)에 도달할 때까지 횡단된다. 추가적으로, 셀 (6,9)가 횡단된 후에, 횡단될 다음 셀은 셀 (13, 3)이어야 한다. 그러나, 여기서 다시, 셀 (12,3)으로부터의 결과들이 이용 가능해지기 전에 I 및 D 계산들의 시작 후에 10 사이클 레이턴시 기간이 존재할 수 있다. 따라서, 하드웨어는, 예컨대 좌표 (2,10)에서의, 다음 스와스(35c)의 제3 대각선 내의 제1 셀과, 이어서 셀들 (1, 11) 및 (0, 12)와 연관된 연산들을 마찬가지로 시작하도록 구성될 수 있다.
이는 지적한 바와 같이, 제1 스와스(35a) 내의 마지막 셀 ((hap, rd) 좌표(13, 9)에서의 셀)이 횡단될 때까지 위 내용에 따라 계속되고, 그 지점에서, 로직은 (9, 10)에서의 셀에서 시작하여, 제2 스와스(35b)에서의 대각선들을 횡단하는 데에 완전히 전용될 수 있다. 위에 개략적으로 설명된 패턴은, 하단 스와스(35c)(이 예에서, 인덱스 30, 또는 더 큰 것을 갖는 판독 염기들과 연관된 셀들)에 도달할 때까지, 필요에 따라 10 판독만큼 많은 스와스에 대해 반복된다.
하단 스와스(35)에서는, 35보다 큰 판독 인덱스들을 갖고 13보다 큰 단상형 인덱스들을 갖는 셀들로서 도 16에 도시된 바와 같이, 더 많은 데드 셀들이 삽입될 수 있다. 추가적으로, 최종 스와스(35c)에서, 추가적인 셀들의 행이 효과적으로 추가될 수 있다. 이들 셀은 도 16에서 라인 35에 표시되고, 최종 합 연산들이 발생하고 있는 최종 스와스의 각각의 대각선에서 전용 클록 사이클에 관련된다. 이들 사이클에서, 바로 위의 셀의 M 및 I 상태들은 함께 가산되고, 그 결과 그 자체가 (HMM 행렬(30)의 좌측 에지에서 0으로 초기화되는) 실행 최종 합과 합산된다.
위의 논의를 컨텍스트로 하여, 그리고 도 16을 고려하여, 35의 판독 길이 및 14의 단상형 길이의 이 예에 대해, 102개의 데이터 사이클, 최종 합 연산들과 연관된 14개의 사이클, 및 파이프라인 레이턴시의 20개의 사이클로, 총 102+14+20= 146개의 오버헤드 사이클이 존재한다는 것을 아는 것이 가능하다. 또한, 10보다 큰 판독 길이를 갖는 임의의 HMM 작업(20)에 대해, 도 16의 좌측 상부 코너에서의 데드 사이클들은 판독 길이에 독립적이라는 것을 알 수 있다. 또한, 도 16의 하단 및 우측 하단 부분에서의 데드 사이클들은 판독 길이에 의존하며, mod(판독 길이, 10) = 9를 갖는 판독들의 경우는 데드 사이클이 가장 적고 mod(판독 길이, 10) = 0의 경우는 데드 사이클이 가장 많다. 게다가, 오버헤드 사이클들은 단상형 길이들이 증가함에 따라(더 큰 행렬, 부분적으로 고정된 수의 오버헤드 사이클들) 또는 판독 길이들이 증가함에 따라 HMM 행렬(30) 평가 사이클의 총 백분율이 더 작아지는 것을 알 수 있다(주: 이는 판독 길이 - 행 수 - 가 증가함에 따라 행렬 내의 최종 합 행과 연관된 오버헤드의 백분율이 감소되는 것을 지칭함). 대표적 전체 인간 게놈 런들로부터의 그러한 히스토그램 데이터를 이용하여, 위에 설명된 방식으로 HMM 행렬을 횡단하는 것은 전체 게놈 프로세싱을 위해 10% 미만의 오버헤드를 초래하는 것으로 결정되었다.
추가 방법들은, M 및 D 상태 계산 로직과 가산기들을 공유하기보다는 최종 합 연산들에 대한 전용 로직을 갖는 것을 포함하여 오버헤드 사이클의 양을 감소시키기 위해 이용될 수 있다. 이는 HMM 행렬(30)의 하나의 행을 제거한다. 큐에서 다음 HMM 작업에 대한 HMM 행렬 연산을 시작하기 위해 데드 사이클을 사용하는 것.
HMM 행렬(30)의 10개 행의 각각의 그룹화는 HMM 가속기 기능에서 "스와스"(35)를 구성한다. 유의할 점은, 스와스의 길이가 시스템의 효율 및/또는 스루풋 요구를 충족시키도록 증가되거나 감소될 수 있다는 것이다. 그러므로, 스와스 길이는 약 5개의 행 이하 내지 약 50개의 행 이상, 예컨대 약 10개의 행 내지 약 45개의 행, 예를 들어, 약 15개 또는 약 20개의 행 내지 약 40개의 행 또는 약 35개의 행일 수 있고, 길이가 약 25개의 행 또는 약 30개의 행의 셀들인 것을 포함한다.
다른 경우라면 도 16의 행렬의 우측 에지에서의 데드 사이클들일 수 있는 하베스팅 사이클들과 관련된, 위의 섹션에 언급된 예외들을 이용하면, HMM 행렬은 한 번에 하나의 스위스를 프로세싱할 수 있다. 도 16과 관련하여 알 수 있는 바와 같이, 각각의 스와스(35a)의 하단 행 내의 셀들의 상태들은 다음 스와스(35b)의 상단 행 내의 상태 계산 로직에 공급된다. 결과적으로, 각각의 스와스의 하단 행 또는 에지에서의 셀들에 대한 상태 정보를 저장(put)하고 검색(get))할 필요가 있을 수 있다.
이것을 행하기 위한 로직은 다음 중 하나 이상을 포함할 수 있다: HMM 행렬(30) 내의 셀에 대한 M, I, 및 D 상태 계산들이 mod(판독 인덱스, 10) = 9를 갖는 셀에 대해 완료될 때, 결과를 M, I, D 상태 저장 메모리에 저장하는 것. HMM 행렬(30) 내의 셀에 대한 M 및 I 상태 계산들(예를 들어, D 상태 계산들이 행렬에서 그들 위의 셀들로부터의 정보를 요구하지 않는 경우)이 mod(판독 인덱스, 10) = 0을 갖는 셀에 대해 시작될 때, M, I, D 상태 저장 메모리 내의 적절한 장소로부터 이전에 저장된 M, I, 및 D 상태 정보를 검색한다. 이들 경우에서 유의할 점은, 열 0(좌측 열) D 상태 계산들에 공급되는 M, I, 및 D 상태 값들에서도 그런 것처럼, HMM 행렬(30)에서의 행 0(상단 행) M 및 I 상태 계산들에 공급되는 M, I, 및 D 상태 값들은 단순히 미리 결정된 상수 값이고 메모리로부터 리콜될 필요가 없다는 점이다.
위에 언급된 바와 같이, HMM 가속기는 최종 합 연산들의 목적을 위해 단순히 존재하도록 HMM 하드웨어 가속기 내의 전용 합산 리소스를 포함하거나 그렇지 않을 수 있다. 그러나, 특정한 경우들에서, 본 명세서에 설명된 바와 같이, 추가 행이 HMM 행렬(30)의 하단에 추가될 수 있고, 이 추가의 행과 연관된 클록 사이클들이 최종 합산 연산들을 위해 사용될 수 있다. 예를 들어, 합 자체는 M+I 연산을 행하기 위해 M 상태 계산 로직으로부터 가산기를 빌림으로써(예를 들어, 도 13에 따라), 그리고 추가로, 새롭게 형성된 M+I 합을 실행 최종 합 누적 값에 추가하기 위해 D 상태 계산 로직으로부터 가산기를 빌림으로써 달성될 수 있다. 그러한 경우에, 최종 합 연산을 활성화하기 위한 제어 로직은 HMM 횡단 연산을 가이드하는 판독 인덱스가 작업에 대한 입력된 판독 서열의 길이와 동일할 때마다 효과가 나타날 것이다. 이들 연산은 도 16의 샘플 HMM 행렬(30)의 하단 쪽으로 라인 34에서 볼 수 있다.
그러므로, 위에서 알 수 있는 바와 같이, 일 구현에서, 변이 추출기는 매핑기 및/또는 정렬기 엔진들을 이용하여, 예컨대 주어진 로케이션, 예를 들어, 염색체 로케이션에 관하여, 다양한 판독들이 어디서 유래했는지에 대한 우도를 결정할 수 있다. 그러한 경우들에서, 변이 추출기는 예컨대 그것에 바로 인접하지 않은 다른 영역들과는 독립적으로, 그 위치에서 기저의 서열을 검출하도록 구성될 수 있다. 이는 관심 있는 영역이 단일 판독(또는 쌍-말단 서열 분석(paired-end sequencing)을 위한 한 쌍의 판독)의 스팬(span)에 걸쳐 게놈의 임의의 다른 영역과 유사하지 않은 경우 특히 유용하고 잘 작용한다. 그러나, 인간 게놈의 상당한 부분은 변이 추출을 행할 수 있는 이 기준을 충족시키지 않으며, 예를 들어, NGS가 생성하는 판독들로부터 피험자의 게놈을 재구성하는 프로세스를 어렵게 만들 수 있다.
특정하게는, DNA 서열 분석은 극적으로 개선되었지만, 변이 추출은 주로 게놈의 중복 구조로 인해, 어려운 문제로 남아 있다. 그러나, 본 명세서에 개시된 바와 같이, 게놈의 중복성에 의해 제시되는 복잡성은, 적어도 부분적으로, 짧은 판독 데이터에 의해 구동되는 관점에서 극복될 수 있다. 더 특정하게는, 본 명세서에 개시된 바와 같은 디바이스들, 시스템들, 및 그것을 이용하는 방법들은 다른 경우라면 낮은 변이 추출 정확도에 의해 특징지어졌을 수 있는 상동 또는 유사 영역들에 집중하는 방식으로 구성될 수 있다. 특정 경우들에서, 그러한 낮은 변이 추출 정확도는 전형적으로 매우 낮은 판독 MAPQ들을 야기할 수 있는 상동 영역들에 대한 판독 매핑 및 정렬들에서 관찰된 어려움들로부터 기인할 수 있다. 따라서, 예컨대 이들 상동 영역에 존재하는 정보를 공동으로 고려함으로써, 상동 영역들에서 변이들(SNP들, 삽입결실들 등)을 정확하게 추출하는 전략적 구현들이 본 명세서에 제시된다.
예를 들어, 게놈의 많은 영역들은 상동이고, 예를 들어, 이들은, 예를 들어, 다수의 로케이션에서, 게놈 내의 다른 곳에 위치한 거의 동일한 카피들을 가지며, 결과적으로, 판독의 진정한 소스 로케이션은 상당한 불확실성을 겪을 수 있다. 구체적으로는, 판독들의 그룹이 예를 들어 명백한 상동성으로 인해 낮은 신뢰도로 매핑되는 경우, 전형적인 변이 추출기는 비록 판독들이 유용한 정보를 포함할 수 있을지라도 판독들을 무시하고 프로세싱하지 않을 수 있다. 다른 경우들에서, 판독이 잘못 매핑되는 경우(예를 들어, 1차 정렬이 판독의 진정한 소스가 아님), 검출 오류들이 생길 수 있다. 더 구체적으로는, 이전에 구현된 짧은 판독 서열 분석 기술들은 이들 문제들에 민감했고, 종래의 검출 방법들은 종종 게놈의 큰 영역들을 어둠 속에 남긴다.
일부 경우들에서, 이들 문제를 완화시키기 위해 긴 판독 서열 분석이 이용될 수 있지만, 그것은 전형적으로 훨씬 더 높은 비용 및/또는 더 높은 오류율들을 갖고, 더 오래 걸리고/거나 다른 단점들을 겪는다. 따라서, 다양한 경우들에서, 본 명세서에 설명된 바와 같이 다영역 공동 검출 연산을 수행하는 것이 유익할 수 있다. 예를 들어, 각각의 영역을 별개로 고려하는 대신 및/또는 긴 판독 서열 분석을 수행하는 대신에, 다영역 공동 검출(MRJD) 방법이 이용될 수 있고, 예컨대 이 경우 MRJD 프로토콜은 판독들의 그룹이 유래했을 수 있는 다수의, 예를 들어, 모든 로케이션들을 고려하고, 예를 들어, 낮은 또는 비정상적 신뢰도 및/또는 확실성 스코어들에 관계없을 수 있는, 모든 이용 가능한 정보를 이용하여 기저의 서열들을 함께, 예를 들어, 공동으로 검출하려고 시도한다.
예를 들어, 통계적으로 균일한 커버리지를 갖는 이배체 유기체에 대해, 위에 설명된 바와 같은, 브루트 포스 베이지안 계산이 변이 추출 분석에서 수행될 수 있다. 그러나, 브루트 포스 MLRD 계산에서, 계산의 복잡성은 영역의 수 N 및 고려될 후보 단상형의 수 K에 따라 빠르게 증가한다. 특정하게는, 후보 단상형의 모든 조합을 고려하기 위해, 확률을 계산할 후보 솔루션의 수는 종종 기하급수적일 수 있다. 예를 들어, 아래에 더 상세히 설명된 바와 같이, 브루트 포스 구현에서, 후보 단상형들의 수는 활성 위치들의 수를 포함하고, 본 명세서에 개시된 바와 같은 드 브루인 그래프의 구축에서와 같이, 변이 추출 연산에서 후보 단상형들의 리스트를 생성하기 위해 그래프 조립 기법이 이용된다면, 활성 위치들의 수는 그래프에서 독립적인 "버블들"의 수이다. 그러므로, 그러한 브루트 포스 계산은 구현하기에 엄청나게 비쌀 수 있으며, 이에 따라 브루트 포스 베이지안 계산들이 엄청나게 복잡할 수 있다.
따라서, 일 양태에서, 도 17a에 제시된 바와 같이, 그러한 브루트 포스 계산들의 복잡성을 감소시키기 위한 방법이 본 명세서에 제공된다. 예를 들어, 위에 개시된 바와 같이, DNA/RNA 서열 분석의 속도 및 정확도는, 특히 본 명세서에 개시된 방법들에 관련하여, 극적으로 개선되었지만, 변이 추출, 예를 들어, 서열분석기가 생성하는 판독들로부터 피험자의 게놈을 재구성하는 프로세스는, 주로 게놈의 중복 구조로 인해, 어려운 문제로 남아 있다. 따라서, 본 명세서에 개시된 디바이스들, 시스템들, 및 방법들은 긴 판독 서열 분석과 대조적으로 짧은 판독 데이터에 의해 구동되는 관점에서 게놈의 중복성에 의해 제공되는 복잡성들을 감소시키도록 구성된다. 특히, 반드시 긴 판독 서열 분석을 수행할 필요없이 일반적으로 낮은 변이 추출 정확도에 의해 특징지어지는, 게놈의 상동 및/또는 유사한 영역들을 고려하는 매우 긴 판독 검출을 수행하기 위한 방법들이 본 명세서에 제공된다.
예를 들어, 일 실시예에서, 다영역 공동 검출을 수행하기 위한 시스템 및 방법이 제공된다. 구체적으로는, 제1 경우에, 예컨대 본 명세서에 개시된 방법들을 이용하여 일반적인 변이 추출 연산이 수행될 수 있다. 특정하게는, 일반적인 변이 추출기는 기준 게놈 서열을 이용할 수 있고, 이 기준 게놈은 모델 게놈 내의 모든 염기를 제시한다. 이 기준은 그에 의해 피험자의 게놈이 기준 게놈과 비교되는 분석의 백본을 형성한다. 예를 들어, 위에 논의된 바와 같이, 차세대 서열분석기를 이용하여, 피험자의 게놈을 부분 서열들, 예를 들어, 판독들, 전형적으로 약 100 내지 1,000개의 염기들로 분해될 수 있고, 이 판독들은 마치 그림조각 퍼즐을 끼워 맞추는 것과 같이, 매핑되고 기준에 정렬될 수 있다.
일단 피험자의 게놈이 피험자의 실제 게놈과 비교하여 이 기준 게놈을 이용하여 매핑 및/또는 정렬되었다면, 예를 들어, 염기별 기준으로, 피험자의 게놈이 기준 게놈과는 어느 정도로, 그리고 어떻게 상이한지가 결정될 수 있다. 특정하게는, 예컨대 염기별 기준으로, 피험자의 게놈을 하나 이상의 기준 게놈에 비교할 때, 분석은 서열들을 따라 반복적으로 이동하면서 하나를 다른 것(들)과 비교하여 그들이 일치하는지 불일치하는지를 결정한다. 따라서, 서열들 내의 각각의 염기는, 도 18a의 위치 A에 의해 표현되는 바와 같이, 추출될 위치를 표현한다.
구체적으로는, 피험자의 게놈에 대해 추출되는 기준의 모든 위치 A에 대해, 큰 샘플 세트의 판독들이 모두 임의의 주어진 위치 A에서 서로 중첩될 수 있는 방식으로 서열들의 파일업, 예를 들어, 판독들이 매핑되고 정렬될 것이다. 특정하게는, 이 오버샘플링은 다수의 판독, 예를 들어 1 내지 100개 이상을 포함할 수 있고, 여기서 파일업 내의 판독들 각각은 추출되는 영역과 중첩하는 뉴클레오티드들을 갖는다. 따라서, 염기로부터 염기로의 이들 판독의 추출은 추출들을 행하는 서열들을 따라 슬라이딩하는 프로세싱 윈도우의 형성을 수반하고, 여기서 윈도우의 길이, 예를 들어 임의의 주어진 시간에 검사 중인 염기들의 수는 결정의 활성 영역을 형성한다. 그러므로, 윈도우는 추출되는 샘플 내의 염기들의 활성 영역을 표현하고, 여기서 추출은 활성 영역 내에서의 파일업의 모든 판독들에서 주어진 위치, 예를 들어 A에서의 각각의 염기를 비교하는 것을 수반하고, 여기서 판독들의 파일업의 수에서 그 위치에서의 염기의 아이덴티티는 추출되는 그 위치의 염기의 진정한 아이덴티티에 대한 증거를 제공한다.
이 목적을 위해, 각각의 판독 세그먼트에 대해 유도된 관련 MAPQ 신뢰 스코어에 기초하여, 특정 신뢰 스코어 내에서, 매핑 및 정렬이 정확하게 수행되었다는 것이 일반적으로 결정될 수 있다. 그러나, 판독들의 매핑 및 정렬이 정확한지 여부, 또는 판독들 중 하나 이상이 다른 곳에 실제로 속하는지에 대해, 아무리 작아도, 여전히 문제가 남아 있다. 따라서, 일 양태에서, 변이 추출을 수행할 때 신뢰도를 개선하기 위한 디바이스들 및 방법들이 본 명세서에 제공된다.
특정하게는, 다양한 경우들에서, 변이 추출기는 본 명세서에 설명된 바와 같이, 하나 이상의 다영역 공동 검출 연산을 수행하도록 구성될 수 있으며, 이는 달성가능한 결과들에서 더 큰 신뢰도를 제공하기 위해 이용될 수 있다. 예를 들어, 그러한 경우에, 변이 추출기는 유사한 것으로 보이는 특정 영역들을 결정하기 위해 게놈 내의 다양한 영역들을 분석하도록 구성될 수 있다. 예를 들어, 도 18a와 관련하여 알 수 있는 바와 같이, 기준 영역 A, 및 기준 영역 B가 존재할 수 있으며, 여기서 기준 서열들은 서로 매우 유사하지만, 예를 들어, 다른 염기 쌍 매칭의 소수의 영역을 갖는데, 예컨대 이 경우 예시적인 기준(Ref) A는 "A"를 갖고, 예시적인 기준 B는 "T" 를 갖지만, 이들 소수의 다른 것들 밖에서는, 문제의 영역 내의 다른 모든 곳이 매칭하는 것처럼 보일 수 있다. 유사도들의 범위 때문에, 이들 2개의 영역, 예를 들어, 기준 A 및 기준 B는 전형적으로 상동, 또는 파라로거스(paralogous) 영역들로 간주될 것이다.
도시된 바와 같이, 2개의 기준 영역 A 및 B는 99% 유사하다. 비교적 유사한, 예를 들어, 약 93% 유사한, 다른 영역들, 예를 들어, 기준들 C 및 D가 존재할 수 있지만, 기준 영역들 A 및 B 사이의 99% 유사도와 비교하여, 기준 영역들 C 및 D는 상동인 것으로 간주되지 않을 것이거나, 적어도 실제로 상동이 되는 보다 적은 기회를 가질 것이다. 그러한 경우에, 변이 추출 절차들은 기준 영역들 C와 D 사이의 차이들을 적절하게 호출할 수 있지만, 특정 경우들에서는, 예를 들어, 그들의 높은 상동성 때문에 기준 영역들 A 및 B의 높은 상동 영역들 사이의 차이들을 호출하는 어려움들을 가질 수 있다. 특정하게는, 기준 서열들 A 및 B와 기준 서열들 C 및 D 간의 부동성(dissimilarity)의 정도 때문에, 기준 서열(Ref Seq) A 또는 B에 매핑 및 정렬되는 판독들은 기준 서열 C 또는 D에 잘못 매핑될 것이라고 예상되지 않을 것이다. 그러나, 기준 서열 A에 매핑 및 정렬되는 판독들은 기준 서열 B에 잘못 매핑될 수 있다는 것을 예상할 수 있다.
상동성의 정도가 주어지면, 영역 A와 B 사이의 잘못된 매핑이 상당히 가능성이 있을 수 있다. 따라서, 정확도를 증가시키기 위해, 시스템이 예컨대 매핑, 정렬 및/또는 변이 추출 절차를 수행할 때, 상동 영역들 사이의 차이를 구별 및/또는 고려할 수 있는 것이 바람직할 수 있다. 구체적으로는, 기준 A 내의 영역에 매핑 및 정렬되는 판독들의 파일업을 생성하고, 기준 B 내의 영역에 매핑 및 정렬되는 판독들의 파일업을 생성할 때, 판독들 중 임의의 것은 사실상 잘못된 장소에 잘못 매핑될 수 있고, 이에 따라, 더 나은 정확도를 달성하기 위해, 본 명세서에 개시된 변이 추출 연산들을 수행할 때, 이들 상동 영역들, 및 그에 매핑 및 정렬되는 판독들은, 예컨대 본 명세서에 설명된 바와 같은, 공동 검출 프로토콜, 예를 들어, 다영역 공동 검출 프로토콜에서 함께 고려되어야 한다.
따라서, 다영역 공동 검출(MRJD)에 관한 디바이스들, 시스템들뿐만 아니라 이들의 사용 방법들이 본 명세서에서 제시되는데, 예컨대 이 경우 다양한 식별된 상동 영역들의 다양한 파일업들로부터의 복수의 예를 들어 모든 판독들이 함께 고려되고, 예컨대 이 경우 각각의 로케이션에 대한 단일 추출을 행하는 대신에, 상동인 것으로 보이는 모든 로케이션에 대해 공동 추출이 이루어진다. 그러한 공동 추출들을 행하는 것이 유리한 이유는, 각각의 기준에 대한 추출을 개별적으로 행하려고 시도하기 전에, 먼저 문제의 다양한 판독들이 어느 기준의 어느 영역에 실제로 매핑 및 정렬되는지가 결정되어야 할 것이고, 그것은 본질적으로 불확실하고, 제안된 공동 검출에 의해 해결되는 바로 그 문제이기 때문이다. 그러므로, 2개의 기준의 영역들이 그렇게 유사하기 때문에, 어느 판독들이 어느 영역들에 매핑하는지를 결정하는 것은 매우 어렵다. 그러나, 이들 영역이 공동으로 추출된다면, 어느 상동 판독들이 어느 기준 영역에 대해 매핑하는지에 대한 선행 결정을 할 필요는 없다. 따라서, 공동 추출을 행할 때, 제2 기준, 예를 들어, B 상의 다른 영역에 대해 상동인 하나의 기준, 예를 들어, A 상의 영역의 파일업에서의 임의의 판독들이 기준 A 또는 기준 B에 속할 수 있다는 가정이 이루어질 수 있다.
결과적으로, 원하는 경우, 본 명세서의 디바이스들, 시스템들, 및 방법들에서 구현되는 변이 추출 알고리즘에 대한 추가로 MRJD 프로토콜이 구현될 수 있다. 예를 들어, 하나의 반복에서, 변이 추출 알고리즘은 샘플 및 기준 게놈들 내의 주어진 영역에 대한 매핑 및/또는 정렬된 판독들에서 제시된 증거를 취하고, 기준 게놈과의 비교에 기초하여, 샘플의 게놈 내에 있는 것으로 보이는 것이 사실상 존재할 가능성을 분석하고, 증거가 주어지면 샘플이 기준과 실제로 어떻게 상이한지에 대한 결정을 하는데, 예를 들어, 이 증거가 주어지면 변이 추출기는 판독과 기준 사이에 상이한 것들에 대한 가장 가능성 있는 응답을 결정한다. 그러나, MRJD는 VC 알고리즘과 함께 구현될 수 있는 추가 알고리즘이며, 여기서 MRJD는 변이 추출기가 관찰된 차가, 예를 들어, 피험자의 판독에서의 관찰된 차이가 사실상 기준으로부터의 진정한 편차인지를 더 정확하게 결정하는 데 도움을 주도록 구성된다.
따라서, MJRD 분석에서의 제1 단계는 하나 이상의 기준, 예를 들어, 기준 A 및 기준 B의 복수의 영역에서의 서열과, 피험자의 판독들의 하나 이상의 영역에서의 파일업 서열들 사이의 대응성의 백분율에 기초하여, 상동 영역들의 식별을 수반한다. 특정하게는, 기준 A 및 기준 B는 실제로는 동일한 유전 물질의 이배체 형태일 수 있으며, 예컨대 이 경우 염색체의 주어진 영역의 2개의 카피가 존재한다. 그러므로, 이배체 기준들이 분석되고 있는 경우, 다양한 위치들에서, 기준 A는 하나의 특정한 뉴클레오티드를 가질 수 있고, 그 동일한 위치에서 기준 B에, 다른 뉴클레오티드가 존재할 수 있다. 이 예에서, 기준 A 및 기준 B는 "A"에 대한 위치 A에서 동형(homozygous)이다. 그러나, 도 18a에서 알 수 있는 바와 같이, 피험자의 DNA는 이 위치 A에서 이형 접합체(heterozygous)이고, 예컨대 이 경우 기준 A의 파일업의 판독들과 관련하여, 피험자의 염색체의 하나의 대립 유전자는 "A"를 갖지만, 다른 대립 유전자는 "C"를 가지며, 또 기준 B와 관련하여, 피험자의 염색체의 다른 카피가 위치 A에서 양쪽 대립 유전자에 대해 "A"를 갖는다. 이는 또한 더욱 복잡해지고, 여기서 분석되는 샘플은, 예를 들어, 그들 자연적으로 발생하는 가변적인 위치들 중 하나에서 돌연변이, 예컨대 위치 A(도시되지 않음)에서 이형 접합체 SNP를 포함한다.
도 18b의 기준 A와 관련하여 알 수 있는 바와 같이, 위치 A에서, 피험자의 샘플은 위치 A에 이형 접합체가 있음을 나타내는 판독들을 포함할 수 있고, 예컨대 이 경우 판독들 중 일부는 이 위치에서 "C"를 포함하고, 판독들 중 일부는 이 위치에서 "A"를 나타낸다(예를 들어, Haplotypea1 = "A", Ha2 = "C"); 한편 기준 B와 관련하여, 위치 A에서의 판독들은 동형 접합성(homozygosity)을 나타내고, 예컨대 이 경우 파일업 내의 모든 판독들이 그 위치에서 "A"를 갖는다(예를 들어, Hb1 = "A", Hb2 = "A"). 그러나, MRJD는, 판독들 중 어느 하나가 잘못된 로케이션에 있을 수 있는 가능성을 고려하면서, 기준의 양쪽 영역들에 매핑되는 모든 판독들을 분석함으로써 공동 추출을 동시에 행함으로써 이들 어려움을 극복한다. 다양한 상동 영역들이 식별된 후에, 다음 단계는 상동 기준 영역들 사이의 대응 관계를 결정하는 것이고, 그 후, MRJD에 관하여, 다양한 적용가능한 판독들이 2개의 상동 영역 사이에 "매핑될 것으로 추정되는" 곳에 대한 매핑기 및/또는 정렬기 결정이 폐기될 수 있고, 오히려, 이들 판독들 중 임의의 것이 비교되는 임의의 상동 영역들 중 임의의 것에 속할 수 있다는 것을 알고, 이들 상동 영역들 내의 파일업들 중 임의의 것에서의 모든 판독들이 집합적으로 함께 고려될 수 있다. 그러므로, 이들 공동 추출을 결정하기 위한 계산들은, 아래에 더 상세히 설명된 바와 같이, 이들 판독들 중 임의의 것이 상동 기준 영역들 중 임의의 것으로부터, 그리고 적용가능한 경우, 기준 영역들 중 어느 하나의 어느 하나의 단상형으로부터 유래했을 가능성을 고려한다.
유의할 점은, 비록 앞의 내용은 기준 내의 다수의 상동성의 영역에 관련한 것이지만, 동일한 분석이 단일 영역 검출에 대해서도 적용될 수 있다는 점이다. 예를 들어, 도 18b와 관련하여 알 수 있는 바와 같이, 단일 영역에 대해서도, 임의의 주어진 영역에 대해, 피험자의 유전 샘플이 특정 영역에 대해 가질 수 있는 2개의 별개의 단상형, 예를 들어, H1 및 H2가 존재할 수 있고, 이들이 단상형이기 때문에, 이들이 서로 매우 유사할 가능성이 있다. 결과적으로, 이들 위치가 하나가 다른 하나와 별개로 분석된다면, 고려되는 진정한 변형들이 있는지를 결정하기가 어려울 수 있다. 따라서, 상동 영역들에 관련하여 수행되는 계산들은 비-상동 영역들에 대해서도 유용한데, 그 이유는 임의의 특정 영역이 이배체일, 예를 들어, 제1 단상형(H1) 및 제2 단상형(H2) 양쪽 모두를 가질 가능성이 있기 때문이고, 따라서 영역들을 공동으로 분석하는 것은 시스템의 정확도를 향상시킬 것이다. 마찬가지로, 위에 설명된 바와 같이 2-기준 영역, 예를 들어, 상동 영역에 대해, 추출되는 것은 제1 영역에 대한 HA1 및 HA2, 및 제2 영역에 대한 HA1 및 HA2이다(이는 일반적으로, 각각의 염색체에 대한 2개의 가닥 및 각각의 가닥에 대한 2개의 영역 = 4개의 이배체형에 상당한다.
따라서, MRJD는 하나 이상의, 예를 들어 모든 상동 영역들에 대해 초기 응답을 결정하기 위해 이용될 수 있고, 그 후 단일 영역 검출이 하나 이상의, 예를 들어, 모든 단일 또는 비-상동 영역들에 다시 적용될 수 있으며(예를 들어, 동일한 기본 분석을 이용하여), 따라서 더 나은 정확도가 달성될 수 있다. 그러므로, 단일 영역 비-공동 검출이 또한 수행될 수 있다. 예를 들어, 단일 영역 검출에 관하여, 후보 단상형들(HA1)에 대해, 현재 반복들에서, 기준 영역은 약 300 내지 500 염기 쌍 길이일 수 있고, 기준의 상부에 그래프, 예를 들어, 도 18c에 제시된 바와 같은 드 브루인 그래프가 예컨대 판독들로부터의 K-mer들로부터 구축되며, 여기서 기준과 상이한 임의의 로케이션이 그래프에 분기 경로 또는 "버블"을 형성하고, 이로부터 단상형들이 추출되고, 여기서 각각의 추출된 단상형, 예를 들어, 분기 경로는 검사 중인 활성 영역의 특정한 로케이션에서의 염색체들의 2개의 가닥 중 하나 상에 있을 수 있는 것에 대한 잠재적인 가설을 형성한다.
그러나, 도 18c와 관련하여 보이는 바와 같이, 그래프를 통해 다수의 분산 경로, 예를 들어, 다수의 버블이 형성되어 있고, 많은 수의 단상형들이 추출된다면, 계산들을 관리할 수 있게 유지하기 위해 최대 컷오프가 도입될 수 있다. 컷오프는 임의의 통계적으로 유의미한 수, 예컨대, 35, 50, 100, 125-128, 150, 175, 200, 또는 그 이상 등일 수 있다. 그럼에도 불구하고, 특정 경우들에서, 실질적으로 더 많은 수, 예를 들어, 모든 단상형이 고려될 수 있다.
그러한 경우에, 시작부터 끝까지, 예를 들어, 서열의 시작부터 종료까지 완전한 소스 투 싱크 단상형들을 추출하는 대신에, 개별 버블들과 연관된 서열들만이 추출될 필요가 있는데, 예를 들어 버블들만이 기준에 정렬될 필요가 있다. 따라서, 버블들이 DBG로부터 추출되고, 서열들이 기준에 정렬되고, 이들 정렬로부터, 다양한 버블들의 서열들이 기준과 상이한 이유에 대하여, 특정 SNP들, 삽입들, 결실들 등이 결정될 수 있다. 그러므로, 이와 관련하여, 분석을 위한 상이한 모든 가설 단상형들이 다양한 버블들 모두에 관한 서열들을 상이한 조합들로 혼합하고 매칭하는 것으로부터 유도될 수 있다. 이와 같은 방식으로, 추출될 모든 단상형들이 열거될 필요가 없다. 다영역 공동 검출을 수행하기 위한 이들 방법은 아래에 본 명세서에 더 상세히 설명된다.
게다가, 추상적으로, 비록 이들 후보 단상형 모두가 테스트될 수 있을지라도, 성장하는 트리 알고리즘이 수행될 수 있으며 여기서 생성되는 그래프는 성장하는 트리처럼 보이기 시작한다. 예를 들어, 공동 단상형들/이배체형들의 분기 트리 그래프는, 트리가 성장할 때, 기저의 알고리즘은 점점 더 많은 계산들이 행해짐에 따라 동시에 트리를 성장 및 프루닝 양쪽 모두를 수행하도록 기능하고, 다양한 상이한 후보 가설들이 단순히 너무 사실 같지 않은 것이 명백해지는 방식으로 구축될 수 있다. 그러므로, 트리가 성장하고 프루닝됨에 따라, 가설 단상형들 모두가 계산될 필요는 없다.
구체적으로는, 트리 함수의 성장과 관련하여, 2개의 기준 사이에, 또는 기준들과 판독들 사이에, 해결되고 있는 주어진 위치들에 어떤 염기가 존재하는지에 관해 불일치가 존재하는 경우, 어느 염기가 어느 위치에 실제로 속하는지가 결정되어야 하고, 그러한 불일치를 고려하여, 어떤 차이들이 SNP들, 삽입결실들 등에 의해 야기될 수 있는지 대 어떤 것이 머신 오류들인지가 결정되어야 한다. 따라서, 트리를 성장시킬 때, 예를 들어, SW 또는 NW 정렬 등을 통해, 드 브루인 그래프로부터 버블들을 추출하고, 이들을 출현하는 트리 그래프 내에 위치시킬 때, 추출될 각각의 버블은, 가능한 SNP들, 삽입결실들, 및/또는 기준으로부터의 다른 차이들을 표현하는, 트리 그래프 내의 이벤트가 된다. 도 18c를 참조한다.
특정하게는, DBG에서, 버블들은 기준으로부터의 미스매칭들을 표현하는데, 예를 들어, 삽입결실들(어느 염기들이 추가되거나 결실되었는지), SNP들(어느 염기들이 상이한지) 등을 대표한다. 결과적으로, 버블들이 기준(들)에 정렬됨에 따라, 이 둘 사이의 다양한 차이들은 이벤트들로서 분류되고, 다양한 이벤트들, 예를 들어, 버블들의 리스트가 생성된다. 따라서, 그 후 예를 들어, 가능한 SNP들 및 삽입결실들의 가능한 이벤트들의 어떤 조합이 피험자의 유전 서열의 실제 변형들을 야기했는지, 예를 들어, 확률에 기초하여 실제 다양한 단상형들(예를 들어, 4개) 각각에서의 진실이 무엇인지에 대한 결정이 이루어진다. 더 특정하게는, 루트 G0(주어진 세그먼트에 대한 이벤트들을 표현함)를 형성하는 어느 하나의 후보, 예를 들어 공동 이배체형 후보는 4개의 단상형을 가질 수 있고, 4개의 단상형 각각은 이벤트들의 식별된 서브세트를 형성할 것이다.
그러나, 도 18d와 관련하여 알 수 있는 바와 같이, 트리 함수의 성장 및/또는 프루닝을 수행할 때, 모든 이벤트 조합의 전체 서브세트의 전체 리스트가 모두 한 번에 결정될 수 있지만, 그럴 필요는 없다. 대신에, 결정은 단일 위치(G0), 예를 들어 하나의 이벤트에서 시작하고, 트리는 거기서부터 한 번에 하나의 이벤트씩 성장되고, 이는 프루닝 함수를 통해 다양한 낮은 확률 이벤트들을 해결되지 않은 채로 남길 수 있다. 그러므로, 도 18d와 관련하여 알 수 있는 바와 같이, 트리 함수를 성장시키는 것과 관련하여, 계산은 (이배체 유기체에 대한) 단상형들, 예를 들어, HA1, HA2, HB1, HB2를 결정하는 것으로 시작하고, 여기서 초기 단상형들은 그들 각각의 기준, 예를 들어, 기준 A 및 B와 관련하여 모두 해결되지 않은 것으로 간주되고, 기본적으로 이벤트들 중 어느 것도 존재하지 않는다.
따라서, 초기 시작 지점은 트리의 루트가 G0이고, 모든 이벤트들이 해결되지 않은 공동 이배체형이다. 그 후, 특정 이벤트, 예를 들어 초기 버블이 결정을 위한 원점으로서 선택되고, 그에 의해 초기 이벤트는 모든 단상형들에 대해 해결되어야 하고, 여기서 이벤트는, 예컨대 위치 1에서의 SNP 또는 삽입결실의 잠재적 존재와 관련하여, 기준으로부터의 분기의 제1 지점일 수 있다. 도 18e에 예시된 바와 같이, 위치 1에서, "C"가 "A"를 치환한, SNP와 같은 이벤트 또는 버블이 존재하며, 따라서 기준은 위치 1에 "A"를 갖지만, 문제의 판독은 "C"를 갖는다. 그러한 경우에, 파일업에서의 이 위치에 대해, 4개의 단상형이 존재하고, 각각이 기준에서와 같이 "A", 또는 이벤트" C"를 가질 수 있기 때문에, 이 위치를 해결하기 위해 잠재적으로 24 = 16개의 가능성이 존재한다. 그러므로, 계산은 루트로부터, 위치 1에서의 이벤트에 대한 잠재적 분해능들을 표현하는 16개의 분기로 즉시 이동한다.
따라서, 도 18d와 관련하여 알 수 있는 바와 같이, 4개의 단상형 모두에 대한 모든 잠재적인 서열들, 예를 들어, HA1, HA2, HB1, HB2가 제시할 수 있고, 여기서 위치 1에서 기준에 따른 "A", 또는 그 하나의 이벤트에 대한, SNP의 존재를 나타내는, 이벤트" C" 중 어느 하나가 존재하고, 여기서 이벤트 "C"는 그래프를 통해 다양한 버블 경로들을 검사함으로써 결정된다. 따라서, 각각의 분기 또는 자식 노드에 대해, 각각의 분기는 기준에 따른 또는 기준으로부터 분기하는 위치 1에서 염기의 우도에 기초하여 다를 수 있는 반면, 이벤트들의 나머지는 해결되지 않은 채로 남는다. 그 후, 이 프로세스는 각각의 분기 노드에 대해, 그리고 변형 버블들 내의 각각의 염기에 대해 반복되어, 모든 단상형에 대한 모든 이벤트를 해결할 것이다. 그러므로, 확률들은 다양한 잠재적인 단상형들을 고려하여 임의의 특정한 판독을 관찰하기 위해 재계산될 수 있다.
특정하게는, 각각의 노드에 대해, 4개의 단상형이 있을 수 있고, 각각의 단상형은 파일업에서 각각의 판독과 대조하여 비교될 수 있다. 예를 들어, 일 실시예에서, SW, NW, 및/또는 HMM 엔진은 각각의 노드를 분석하고 각각의 노드에 대한 4개의 단상형 각각을 고려한다. 결과적으로, 각각의 노드를 생성하는 것은, 각각의 판독에 대해 비교하여 그 노드에 대한 모든 단상형, 예를 들어, 4를 고려함으로써 그 노드를 분석하도록 SW 및/또는 HMM 엔진을 활성화하고, 여기서 SW 및/또는 HMM 엔진은 단상형들 각각에 대한 하나의 판독에 대한 하나의 단상형 및 모든 생존 가능한 노드들에 대한 판독들 각각을 고려한다.
그러므로, 이 예의 예시적인 목적들을 위해, 하나의 단상형의 하나의 영역에 대한 이형 접합체 SNP "C"가 존재하는, 예를 들어, 하나의 염색체의 하나의 가닥은 "C"를 갖지만, 다른 가닥들에 대한 이 위치에서의 다른 모든 염기는 그렇지 않은, 예를 들어, 이들은 모두 기준 "A"와 매칭하는 경우라면, 예컨대, 진정한 노드에 대해, 위치 1에서 대부분의 "A"를 갖고, 소수, 예를 들어 약 ¼의 판독들이 "C"를 갖는 것에 의해, 파일업 내의 모든 판독들이 이러한 발견을 지원할 것으로 예상될 것이다. 따라서, 상이한 노드에서의 임의의 나중의 관찰가능한 판독들이 위치 1의 다수의 "C"를 보여준다면, 그 노드가 진정한 노드일 가능성이 없을 것이고, 예를 들어, 낮은 확률을 가질 것인데, 그 이유는 그것들의 발생을 가능성 있게 만들기 위해 파일업 내의 이 위치에서 C를 갖는 충분한 판독들이 충분하지 않을 것이기 때문이다. 구체적으로는, 문제의 판독들에서 이 위치에서의 "C"의 존재는 진정한 단상형 후보라기보다는, 서열 분석 또는 다른 과학적 오류의 증거일 가능성이 더 많을 것이다. 결과적으로, 특정 노드들이, 진정한 노드에 비하여, 결국 작은 확률들을 갖는다면, 그것은 이들이 예를 들어, 파일업 내의 대부분의 판독들에 의해 지원되지 않기 때문이고, 따라서, 이들 노드는 프루닝되고, 그에 의해 진정한 노드(들)는 보존하는 방식으로, 낮은 확률들의 노드들을 폐기할 수 있다.
따라서, 일단 이벤트 1 위치가 결정되면, 다음 이벤트 위치가 결정될 수 있고, 본 명세서에 설명된 프로세스들은 그 후 그 새로운 위치에 대해, 지금까지 프루닝되지 않은 생존 노드들 중 임의의 것에 관련하여 반복될 수 있다. 특정하게는, 이벤트 2는 기존의 이용 가능한 노드들로부터 선택될 수 있고, 그 이벤트는, 예컨대 새로운 단상형들(예를 들어, 4)뿐만 아니라, 위치 2에 대한 가능한 변이들을 설명하는 다양한 분기들(예를 들어, 16)을 다시 한 번 정의하는 것에 의해, 위치 2에 있는 염기의 가능성 있는 아이덴티티를 결정하기 위한 G1 루트의 역할을 할 수 있다. 그러므로, 이 동일한 프로세스를 반복하는 것을 통해, 이벤트 2가 이제 해결될 수 있다. 따라서, 도 18d와 관련하여 알 수 있는 바와 같이, 일단 위치 1이 결정되면, 위치 2에 대한 새로운 노드가 선택될 수 있고, 그의 16개의 잠재적인 단상형 후보가 고려될 수 있다. 그러한 경우에, HA1, HA2, HB1, HB2의 각각에 대한 후보들이 결정될 수 있지만, 이 경우에, 위치 1이 이미 해결되었기 때문에, 위치 1에서의 단상형들 각각에 대한 뉴클레오티드 아이덴티티를 결정하는 것에 관련하여, 위치 2의 분해능을 나타내는, 도 18d에 제시된 바와 같이, 위치 2의 단상형들 각각에 대해, 이제 해결될 것은 위치 2이다.
일단 이 프로세스가 끝나면, 예를 들어, 프루닝되지 않은 모든 자식 노드들 및 자식 노드들의 자식들을 포함하여, 일단 모든 이벤트가 프로세싱되고 해결되면, 프루닝되지 않은 트리의 노드들은 검사될 수 있고, 확률 스코어들에 기초하여, 어느 트리가 공동 이배체형을 표현하는지, 예를 들어, 예를 들어, 어느 서열이 참일 가장 높은 확률을 갖는지가 결정될 수 있다. 따라서, 이러한 방식으로, 프루닝 함수 때문에, 전체 트리가 구축될 필요가 없으며, 예를 들어, 분석이 계속됨에 따라 결국 트리의 대부분이 프루닝될 것이고, 따라서 전체 계산의 양은 비-프루닝 함수들에 비해 크게 감소된다(비록 비-공동 이배체형 추출, 예를 들어, 단일 영역 추출을 수행하는 것보다 실질적으로 더 많지만). 따라서, 본 분석 모듈들은, 예를 들어 공동 이배체형 분석을 이용하여, 높은 정도의 정확도로 높은 상동성의 2개 이상의 영역을 결정하고 해석할 수 있으며, 전통적인 방법들은, 예를 들어 거짓 양성 및 결단력 없음 때문에 단순히 그러한 영역들을 전혀 분해할 수 없다.
특정하게는, 다양한 변이 추출기 구현들은 단순히 높은 상동성의 영역들에 대해 분석을 수행하지 않도록 구성될 수 있다. 본 반복들은 현장에서 이들 및 다른 그러한 문제들을 극복한다. 더 특정하게는, 본 디바이스들, 시스템들, 및 이들의 이용 방법들은 높은 상동성의 영역들의 발생에도 불구하고, 더 큰 비율의, 예를 들어, 모든 단상형을 고려하도록 구성될 수 있다. 물론, 이들 계산의 속도는, 그러한 계산들의 결과들이 참일 낮은 확률을 가지는 것으로 결정될 수 있는 특정 계산들을 수행하지 않음으로써, 예컨대 본 명세서에 설명된 바와 같이, 프루닝 함수를 구현함으로써, 추가로 증가될 수 있다.
이들 구성, 예를 들어, 공동 이배체형 분해능 및 프루닝의 이점은, 이제는 예를 들어, 분석되는 염기들의 활성 영역 윈도우의 크기가, 약 수백 개의 염기가 프로세싱되는 것으로부터 수천 개의, 또는 심지어 수만 또는 수십만 개의 염기가 함께, 예컨대 하나의 연속 활성 영역에서, 프로세싱되는 것으로 증가될 수 있다는 점이다. 분석의 활성 윈도우의 크기의 이러한 증가는 임의의 주어진 위치에서 임의의 특정 뉴클레오티드의 아이덴티티를 결정할 때 더 많은 증거가 고려될 수 있게 하고, 그에 의해 뉴클레오티드의 아이덴티티의 더 정확한 결정이 이루어질 수 있는 더 큰 컨텍스트를 허용한다. 마찬가지로, 더 큰 컨텍스트는 기준으로부터의 하나 이상의 편차를 갖는 하나 이상의 영역을 커버하는 하나 이상의 판독을 비교할 때 지원 증거가 더 잘 체이닝되는 것을 가능하게 한다. 그러므로, 그러한 방식으로, 하나의 이벤트가 다른 이벤트에 연결될 수 있고, 다른 이벤트 자체는 또 다른 이벤트에 연결될 수 있고, 등등이고, 이들 연결들로부터, 현재 고려 중인 주어진 특정 이벤트에 대한 보다 정확한 추출이 이루어질 수 있고, 그에 의해 더 멀리 떨어져 있는, 예를 들어, 수백 개 내지 수천 개의 염기 또는 그 이상 떨어져 있는 증거가 현재의 변이 추출을 하는 데 유익할 수 있게 하고(임의의 주어진 판독이 단지 전형적으로 수백 개의 염기 길이일 수 있다는 사실에도 불구하고), 그에 의해 본 명세서의 프로세스들을 훨씬 더 정확하게 만들 수 있다.
특정하게는, 이와 같은 방식으로, 활성 영역은 수천 개 내지 수만 개, 심지어 수십만 개의 염기 또는 그 이상을 포함하도록 추가로 만들어질 수 있고, 결과적으로, 모든 단상형을 추출함으로써 드 브루인 그래프를 형성하는 방법을 피할 수 있는데, 그 이유는 제한된 수의 단상형들, 생존 가능할 수 있는 버블들을 갖는 것들만을 탐색할 필요가 있고, 생존 가능한 것들조차도, 일단 이들이 더 이상 생존 가능하지 않은 것이 명확해지면 이들은 프루닝될 수 있고, 생존 가능한 것으로 남아 있는 것들에 대해, 체이닝을 이용하여 궁극적으로 행해지는 변이 추출들의 정확도를 개선할 수 있기 때문이다. 이는 모두 양자 및/또는 하드웨어 컴퓨팅에 의해 가능하게 된다. 그것은 또한 CPU 또는 GPU에 의해 소프트웨어로 수행될 수 있지만, 더 느릴 것이다.
유의해야 할 점은 위 예들에 관련하여, 드 브루인 그래프에 의해 생성된 이들 단상형 이론들을 고려하여, 결정되고 있는 것은 입력 데이터, 예를 들어, 판독들의 확률이라는 점이다. 그러나, 예컨대 공동 이배체형의 이론으로부터 평가된 증거 및 판독들을 고려하여 최고의 피팅을 결정하는 반대 확률까지, 공동 이배체형을 고려하여 판독들의 확률을 결정하기 위해, 베이즈 정리를 이용하는 것도 유용할 수 있다. 따라서, 도 18c와 관련하여 알 수 있는 바와 같이, 생성된 드 브루인 그래프로부터, 일단 다영역 공동 검출 및/또는 프루닝이 발생했다면, 세트의 잠재적인 단상형들이 생길 것이고, 그 후 이들 단상형들은 피험자의 실제 판독들과 대조하여 테스트될 것이다. 구체적으로는, 각각의 수평 단면은 단상형, 예를 들어, B1을 표현하고, 이에 대해 그 후 다른 HMM 프로토콜을 적용하여 판독들과 대조하여 테스트하여 단상형 B1을 고려하여 특정 판독의 확률을 결정할 수 있다.
그러나, 특정 경우들에서, 단상형, 예를 들어, B1은 아직 완전히 결정되지 않을 수 있지만, HMM은 여전히 수행되는 데 유용할 수 있고, 그러한 경우에, 수정된 HMM 계산, 예를 들어, 아래 논의된, 부분적으로 결정된(PD)-HMM 연산이 수행될 수 있고, 여기서 단상형은 그 안에 결정되지 않은 변이들, 예를 들어, 아직 결정되지 않은 SNP들 및/또는 삽입결실들을 갖도록 허용되고, 이에 따라, 계산은 해결되지 않은 위치들에서의 변이들의 임의의 조합을 고려하여 달성가능한 응답에 대한 최고 가능한 확률을 계산하는 것과 유사하다. 따라서, 이는 트리 함수의 반복적 성장을 추가로 용이하게 하며, 여기서 트리의 실제 성장, 예를 들어, PD-HMM 연산들의 수행은 모든 가능한 변이들이 알려져 있는 계산들에만 제한될 필요는 없다. 그러므로, 이러한 방식으로, 특정 후보 단상형들에서 알려지지 않은 가능한 이벤트들의 결정되지 않은 영역들이 여전히 존재함에도 불구하고, 노드들의 트리를 성장시키기 위해, 반복적인 방식으로 다수의 PD-HMM 계산들이 수행될 수 있고, 트리를 트리밍하는 것이 가능해지는 경우, PD-HMM 리소스들을 프루닝된 노드들을 계산하는 것으로부터 유동적으로 시프트하여 진정한 유전형을 성공적으로 특징짓기 위한 가장 큰 확률을 가지는 가능성들만을 프로세싱할 수 있다.
따라서, 특정 염기가 어느 하나의 위치에 실제로 존재하는 확률을 결정할 때, 그 위치에서의 염기의 아이덴티티는 생존 가능한 후보를 표현하는, 각각의 염색체, 예를 들어 각각의 단상형의 각각의 영역 상의 그 위치에서의 아이덴티티에 기초하여 결정될 수 있다. 그러므로, 임의의 후보에 대해, 결정되고 있는 것은 동시에 4개의 단상형들 각각에서의 문제의 위치에서의 주어진 염기의 아이덴티티이다. 특정하게는, 결정되고 있는 것은 결정된 우도를 고려하여 파일업들 각각의 판독들을 관찰할 확률이다. 구체적으로는, 각각의 후보는 공동 이배체형을 표현하고, 따라서 각각의 후보는 약 4개의 단상형을 포함하고, 이는 다음 수학식에서 G = 유전형으로서 제시될 수 있고, 여기서 G = 게놈의 염색체의 단일 이배체 영역의 4개의 단상형, 예를 들어, 공동 이배체형이다. 그러한 경우에, 계산될 것은 그들이 사실상 진실인 것으로 가정하여 파일업들 내의 서열들의 식별된 후보 판독 염기들 각각을 실제로 관찰할 확률이다. 이 초기 결정은 위에 본 명세서에 설명된 바와 같이, HMM 단상형 계산에 의해 수행될 수 있다.
예를 들어, HMM(오류 모델) = 에 의해 결정된 바와 같은 후보 "공동 이배체형" = 4개의 단상형: (영역 A: HA1HA2, 및 영역 B: HB1HB2) = 에 대해
그러므로, 특정 단상형 Ha1이 이 영역에서의 진정한 서열이고, 판독이 거기로부터 온 것이라고 가정하면, 이 판독 서열 Ha1이 실제로 관찰된 가능성이 무엇인가이다. 따라서, HMM 계산기는 Ha1 단상형이 진실인 것으로 가정하여, 문제의 주어진 판독 서열을 실제로 관찰할 우도가 무엇인지를 결정하는 기능을 한다.
구체적으로는, 판독이 실제로 단상형과 매칭되면, 이는 물론 매우 높은 확률일 것이다. 그러나, 문제의 특정 판독이 단상형과 매칭하지 않으면, 거기로부터의 임의의 편차가 실제 변형이 아니라, 서열 분석 또는 서열 분석 머신 오류와 같은 과학적 오류에 의해 설명 가능해야 한다. 그러므로, HMM 계산은 오류 모델들의 함수이다. 구체적으로는, 그것은 분석되는 특정 판독들을 관찰하기 위해 발생해야 하는 오류들의 필요한 조합의 확률이 무엇인지를 묻는다. 결과적으로, 이 모델에서는 하나의 영역만이 고려되고 있는 것이 아니라, 다수의 가닥에서의 다수의 영역에서의 다수의 위치가 동시에 고려되고 있다(예를 들어, 하나의 영역에서 최대 아마 도 2개의 단상형을 고려하는 것 대신에, 이제 동시에 고려되고 있는 것은 문제의 모든 영역들로부터의 모든 판독 데이터를 이용하여, 동시에, 임의의 주어진 영역에서의 임의의 주어진 위치에 대한 4개의 단상형의 가능성이다. 이제, 이들 프로세스, 예를 들어, 트리 프루닝, 다영역 공동 검출, 및 PD-HMM이 더 상세히 설명될 것이다.
구체적으로는, 도 17 및 도 18과 관련하여 알 수 있는 바와 같이, 하이-레벨 프로세싱 체인이 제공되는데, 예컨대 이 경우 프로세싱 체인은 다음 단계들 중 하나 이상을 포함할 수 있다: 상동 영역들을 식별하고 입력하는 단계, 입력 상동 영역들의 프리프로세싱을 수행하는 단계, 프루닝된 매우 긴 판독(very long read, VLRD) 또는 다영역 공동 검출(MJRD)을 수행하는 단계, 및 변이 추출 파일을 출력하는 단계. 특정하게는, 상동 영역들을 식별하는 것과 관련하여, 매핑, 정렬, 및/또는 소팅된 SAM 및/또는 BAM 파일, 예를 들어, CRAM이 본 명세서에 설명된 바와 같은, MRJD 알고리즘을 구현하는 다영역 공동 검출 프로세싱 엔진에 대한 1차 입력으로서 사용될 수 있다. MJRD 프로세싱 엔진은 CPU 및/또는 GPU 및/또는 양자 컴퓨팅 플랫폼과 같은 집적 회로의 일부, 실행 소프트웨어, 예를 들어, 양자 알고리즘이거나, 또는 FPGA, ASIC 등 내에 구현될 수 있다. 예를 들어, 위에 개시된 매핑기 및/또는 정렬기는, 예를 들어, 1차 정렬들과 함께 각각의 판독에 대한 N개의 2차 정렬을 출력하는 설정들을 갖는 CRAM 파일을 생성하기 위해 사용될 수 있다. 그 후, 이들 1차 및 2차 판독들이 상동 영역들의 리스트를 식별하기 위해 사용될 수 있으며, 그 상동 영역들은 기준 게놈의 N개의 영역 사이의 사용자 정의 유사도 임계치에 기초하여 계산될 수 있다. 그 후, 식별된 상동 영역들의 이 리스트는 적합하게 구성된 MRJD 모듈의 프리프로세싱 스테이지에 공급될 수 있다.
따라서, 프리프로세싱 단계에서, 모든 세트의 상동 영역들에 대해, 세트 내의 하나 이상의, 예를 들어, 모든 영역으로부터의 1차 정렬들을 사용하는 것에 의해, 공동 파일업이 먼저 생성될 수 있다. 예를 들어, 도 19를 참조한다. 그 후, 이 공동 파일업을 이용하여, 활성/후보 변이 위치들(SNP들/삽입결실들)의 리스트가 생성될 수 있고, 그에 의해 이들 후보 변이 각각은 MRJD 프리프로세싱 엔진(들)에 의해 프로세싱 및 평가될 수 있다. 계산 복잡성을 감소시키기 위해, 후보 변이들의 프로세싱의 순서를 정의하는 데 사용될 수 있는 연결 행렬이 계산될 수 있다.
그러한 구현들에서, 다영역 공동 검출 알고리즘은 생성된 연결 행렬에서 정의된 프로세싱 순서에 기초하여 각각의 식별된 후보 변이를 평가한다. 먼저, 하나 이상의 후보 공동 이배체형(Gi)이 생성되고 후보 변이가 주어질 수 있다. 다음으로, 공동 이배체형들 각각의 사후 확률들(P(Gi|R))이 계산될 수 있다. 이들 사후 확률로부터, 유전형 행렬이 계산될 수 있다. 다음으로, 최저 사후 확률들을 갖는 N개의 이배체형을 프루닝하여 계산들의 계산 복잡성을 감소시킬 수 있다. 그 후, 평가되고 있는 현재 후보 변이에 대한 증거를 제공하는 다음 후보 변이가 포함될 수 있고 위의 프로세스가 반복된다. 예컨대 현재 변이에 대한 상동 영역 세트 내의 하나 이상의, 예를 들어, 모든 영역으로부터의 하나 이상의, 예를 들어 모든 후보 변이로부터의 정보를 포함시킨 후, 최종 유전형 행렬로부터 변이 추출이 행해질 수 있다. 따라서, 활성 위치들 각각이 모두 위의 방식으로 평가될 수 있고, 그에 의해 결과적으로 최종 VCF 파일이 생긴다.
특정하게는, 도 17b와 관련하여 알 수 있는 바와 같이, 다음 단계들 또는 블록들 중 하나 이상을 포함하는 것과 같은, MJRD 프리프로세싱 단계가 구현될 수 있다: 식별 및 조립된 공동 파일업이 로딩되고, 그 후 조립된 공동 파일업으로부터 후보 변이 리스트가 생성되고, 연결 행렬이 계산된다. 특정하게는, 다양한 경우들에서, 예컨대 다중 판독 공동 검출 연산과 같은 하나 이상의 변이 추출 연산을 수행하기 전에 프리프로세싱 방법이 수행될 수 있다. 그러한 연산들은 공동 파일업들의 로딩, 공동 파일업들로부터의 변이 후보들의 리스트를 생성하는 것, 및 연결 행렬을 계산하는 것에 관한 단계들을 포함하는, 하나 이상의 프리프로세싱 블록을 포함할 수 있다. 이제, 그와 연관된 블록들 및 잠재적 단계들 각각이 더 상세히 논의될 것이다.
구체적으로는, 제1 공동 파일업 프리프로세싱 블록이 분석 절차에 포함될 수 있다. 예를 들어, 식별된 스팬에 대한 다양한 기준 영역들이, 예컨대 매핑 및/또는 정렬된 판독들로부터 추출될 수 있다. 특정하게는, 상동 영역들의 리스트를 이용하여, 각각의 세트의 상동 영역들에 대한 공동 파일업이 생성될 수 있다. 다음으로, 세트 내의 N개의 상동 영역에 대응하는 N개의 기준 영역들을 추출하기 위해 사용자 정의 스팬이 사용될 수 있다. 후속하여, 예컨대 N개의 기준 영역들 내의 모든 염기들의 범용 좌표계를 생성하는 데 사용될 수 있는, 스미스-워터만 정렬을 이용하여, 하나 이상의, 예를 들어, 모든 기준 영역들이 정렬될 수 있다. 게다가, 그 후 각각의 영역에 대응하는 모든 1차 판독들이 입력 SAM 또는 BAM 파일로부터 추출되고 범용 좌표들에 매핑될 수 있다. 이 매핑은, 예컨대 각각의 판독에 대해 CRAM 파일에 존재하는 정렬 정보(CIGAR)를 사용하여, 본 명세서에 설명된 바와 같이 행해질 수 있다. 일부 판독 쌍들이 이전에 매핑되지 않은 시나리오에서, 판독들은 그 각각의 기준 영역에 매핑 및/또는 정렬, 예를 들어, 스미스-워터만 정렬될 수 있다.
더 특정하게는, 일단 공동 파일업이 생성되고 로딩되면(예를 들어, 도 19를 참조한다), 예컨대 공동 파일업으로부터, 후보 변이 리스트가 생성될 수 있다. 예를 들어, 공동 파일업으로부터 식별될 수 있는 다양한 후보 변이들(SNP들/삽입결실들)을 추출하기 위해 드 브루인 그래프(DBG) 또는 다른 조립 그래프가 생성될 수 있다. 일단 DBG가 생성되면, 그래프 내의 다양한 버블들은 변이 후보들의 리스트를 유도하도록 마이닝될 수 있다.
특정하게는, 모든 판독들이 주어지면, 각각의 기준 영역을 백본으로서 사용하여 그래프가 생성될 수 있다. 그 후, 식별된 후보 변이 위치들 모두는 범용 좌표들에 정렬될 수 있다. 그 후, 연결 행렬이 계산될 수 있으며, 여기서 이 행렬은 판독 길이 및/또는 삽입 크기의 함수일 수 있는, 활성 위치들의 프로세싱의 순서를 정의한다. 본 명세서에서 언급된 바와 같이, 도 19는 염색체 1 내의 2개의 상동 영역의 공동 파일업의 예를 도시한다. 비록 이 파일업이 염색체 1의 2개의 상동 영역을 참조하고 있지만, 이는 단지 예시적인 목적을 위한 것이며, 이는 염색체에 관계없이 임의의 및 모든 상동 영역에 대해 파일업 프로세스의 생성이 사용될 수 있기 때문이다.
도 20과 관련하여 알 수 있는 바와 같이, 후보 변이 리스트가 다음과 같이 생성될 수 있다. 먼저, 본 명세서에 개시된 방법들에 따라, 공동 파일업이 형성될 수 있고, 드 브루인 그래프(DBG) 또는 다른 조립 그래프가 구성될 수 있다. 그 후, DBG는 공동 파일업들로부터 후보 변이들을 추출하는 데 사용될 수 있다. DBG의 구성은 그래프를 통한 대안적인 경로들을 표현하는, 변형들을 나타내는 버블들을 생성하는 방식으로 수행되며, 각각의 대안적인 경로가 후보 단상형이다. 예를 들어, 도 20 및 도 21을 참조한다.
따라서, 그래프 내의 다양한 버블들은 후보 변이 단상형 위치들의 리스트를 표현한다. 그러므로, 모든 판독들이 주어지면, 각각의 기준 영역을 백본으로서 사용하여 DBG가 생성될 수 있다. 그 후, 후보 변이 위치들 모두는 범용 좌표들에 정렬될 수 있다. 구체적으로는, 도 20은 DBG를 생성하고 그것을 이용하여 후보 단상형들을 생성하는 프로세스를 설명하는 흐름도를 예시한다. 더 구체적으로는, 드 브루인 그래프는 SNP들 및 삽입결실들의 후보 변이 리스트를 생성하기 위해 이용될 수 있다. MRJD에 의해 공동으로 프로세싱되고 있는 N개의 영역이 존재하는 것으로 가정하면, N개의 드 브루인 그래프들이 구성될 수 있다. 그러한 경우에, 모든 그래프는 백본으로서 하나의 기준 영역 및 N개의 영역에 대응하는 모든 판독들을 사용할 수 있다.
예를 들어, 하나의 방법적 구현에서, DBG가 구성된 후에, 후보 단상형들은 후보 이벤트들에 기초하여 드 브루인 그래프로부터 추출될 수 있다. 그러나, 본 명세서에 설명된 바와 같은, MRJD 프리프로세싱 프로토콜을 이용할 때, N개의 영역이 공동 프로세싱될 수 있고, 예컨대 이 경우 영역들의 길이는 수천 개의 염기 이상일 수 있고, 추출될 단상형의 수는 기하급수적으로 매우 빠르게 증가할 수 있다. 따라서, 계산 복잡성을 감소시키기 위해, 전체 단상형들을 추출하는 대신에, 후보 변이들을 대표하는 버블들만이 그래프들로부터 추출될 필요가 있다.
드 브루인 그래프에 형성된 버블 구조들의 예가 도 21에 도시되어 있다. 공동으로 프로세싱될 영역들의 수가 식별된다. 이는 추종될 수 있는 2개의 프로세싱 경로 중 하나를 결정한다. 공동 영역들이 식별되면, 모든 판독들이 DBG를 형성하는 데 사용될 수 있다. 가능한 변이들을 나타내는 버블들이 다양한 후보 단상형들을 식별하도록 추출될 수 있다. 구체적으로는, 각각의 버블에 대해, 기준 백본으로의 대안적인 경로들에 대해 SW 정렬이 수행될 수 있다. 이로부터, 후보 변이들이 추출될 수 있고, 각각의 그래프로부터의 이벤트들이 저장될 수 있다.
그러나, 다른 경우들에서, 일단 제1 프로세스가 수행되어, 하나 이상의 DBG를 생성하고/하거나 i가 이제 0과 동일하면, 모든 DBG들로부터의 모든 후보 이벤트들의 합집합이 생성될 수 있고, 여기서 임의의 중복들이 제거될 수 있다. 그러한 경우에, 모든 후보 변이들을, 예컨대 범용 좌표계에 매핑하여, 후보 리스트를 생성할 수 있고, 후보 변이 리스트는 MJRD 모듈과 같은 프루닝 모듈에 대한 입력으로서 전송될 수 있다. 전체 단상형을 추출하는 대신에 버블 추출만을 수행하는 예가 도 22에 도시되어 있다. 이 경우에, 본 명세서에 설명된 바와 같이, 추출되고 프로세싱되는 가능한 변이들을 보여주는 것은 단지 버블 영역이다.
구체적으로는, 일단 대표적인 버블들이 추출되면, 후보 변이(들) 및 기준에서의 그의 위치를 얻기 위해, 버블 경로 및 대응하는 기준 백본의 글로벌 정렬, 예를 들어, 스미스-워터만 정렬이 수행될 수 있다. 이는 모든 드 브루인 그래프들에서 모든 추출된 버블들에 대해 행해질 수 있다. 다음으로, 모든 추출된 후보 변이들의 합집합이 N개의 그래프로부터 취해질 수 있고, 중복 후보들이, 있다면, 제거될 수 있고, 고유 후보 변이 위치들이 공동 파일업으로부터 획득된 범용 좌표계에 매핑될 수 있다. 이 결과 "프루닝된(Pruned)" MRJD 알고리즘에 대한 입력으로서 역할을 할 수 있는 N개의 영역에 대한 후보 변이 위치들의 최종 리스트가 생긴다.
위에 본 명세서에 설명된 바와 같은, 특정한 프리프로세싱 블록들에서, 연결 행렬이 계산될 수 있다. 예를 들어, 연결 행렬은 판독 길이 및 삽입 크기의 함수와 같은, 활성, 예를 들어, 후보, 위치들의 프로세싱의 순서를 정의하기 위해 사용될 수 있다. 예를 들어, 계산 복잡성을 추가로 감소시키기 위해, 연결 행렬을 계산하여 드 브루인 그래프로부터 획득되는 식별된 후보 변이들의 프로세싱의 순서를 정의할 수 있다. 이 행렬은 어느 후보 변이들을 먼저 프로세싱할지를 결정하기 위해 소팅 함수로서 또는 그와 함께 구성되고 이용될 수 있다. 따라서, 이 연결 행렬은 쌍-말단 판독들의 평균 판독 길이 및 삽입 크기의 함수일 수 있다. 따라서, 주어진 후보 변이에 대해, 삽입 크기의 정부 배수 또는 판독 길이의 내에 있는 다른 후보 변이 위치들은 다른 위치들에서의 후보 변이들에 비해 더 높은 가중치들을 갖는다. 이는 이들 후보 변이들이 평가되는 현재 변이에 대한 증거를 제공할 가능성이 더 크기 때문이다. 본 명세서에서 구현된 바와 같은, 예시적인 소팅 함수가 101의 평균 판독 길이 및 300의 삽입-크기에 대해 도 23에 도시되어 있다.
MJRD 프루닝 함수에 관하여, 위에 언급된 바와 같은, 프루닝된 MRJD 알고리즘의 예시적인 단계들이 도 24에 제시되어 있다. 예를 들어, MRJD 플랫폼 및 알고리즘에 대한 입력은 N개의 영역의 공동 파일업, 예를 들어, 모든 후보 변이들(SNP들/삽입결실들), 돌연변이 모델에 기초한 사전 확률들, 및 연결 행렬이다. 따라서, 프루닝된 MRJD 프로세싱 플랫폼에 대한 입력은 공동 파일업, 식별된 활성 위치들, 생성된 연결 행렬, 및 사후 확률 모델, 및/또는 이들의 결과들일 수 있다.
다음으로, 리스트 내의 각각의 후보 변이가 프로세싱될 수 있고, 다른 변이들이 연결 행렬을 이용하여 프로세싱되고 있는 현재 후보에 대한 증거로서 연속적으로 추가될 수 있다. 따라서, 현재 후보 변이 및 임의의 지원 후보가 주어지면, 후보 공동 이배체형들이 생성될 수 있다. 예를 들어, 공동 이배체형은 2N개의 단상형의 세트이며, 여기서 N은 공동으로 프로세싱되는 영역의 수이다. 후보 공동 이배체형들의 수 M은 공동으로 프로세싱되는 영역들의 수, 고려되는 활성/후보 변이들의 수, 및 상들의 수의 함수이다. 공동 이배체형들을 생성하기 위한 예가 아래에 제시된다.
P = 1에 대해, 고려되는 활성/후보 변이 위치들의 수;
N = 2, 공동으로 프로세싱되는 영역들의 수;
M = 22.N.P = 24 = 16개의 후보 공동-이배체형들
그러므로, 모든 판독들 및 양쪽 기준 영역들을 고려하여, 단일 후보 활성 위치에 대해, 2개의 단상형을 'A' 및 'G'라고 한다.
고유의 단상형 = 'A' 및 'G'
후보 이배체형들 = 'AA', 'AG', 'GA' 및 'GG',(1개의 영역에 대한 4개 후보).
후보 공동 이배체형들 =
Figure pat00003
따라서, 후보 공동 이배체형들을 이용하여, 모든 후보 공동 이배체형 세트마다 각각의 단상형에 대한 단상형이 주어지면 판독 우도들이 계산될 수 있다. 이는 본 명세서에 설명된 바와 같은, HMM 알고리즘을 이용하여 행해질 수 있다. 그러나, 그렇게 함에 있어서, HMM 알고리즘은, 아직 프로세싱되지 않은 단상형 내의 후보 변이들(SNP들/삽입결실들)이 고려되는 것을 가능하게 하기 위해, 그의 표준 사용 사례로부터 수정될 수 있다. 후속하여, 수정된 HMM으로부터의 결과들을 이용하여 공동 이배체형(P(ri|Gm))이 주어지면 판독 우도들이 계산될 수 있다. 이는 아래 공식을 이용하여 행해질 수 있다.
2-영역 공동 검출의 경우에 대해:
, 여기서 는 영역이고 j는 위상 이다. 이 주어지면, 모든 판독들에 대해 을 계산하는 것이 간단하다. 다음으로, 베이즈 공식을 사용하여, 사후 확률 및 사전 확률 로부터 계산될 수 있다.
게다가, 모든 후보 공동 이배체형들에 대해 사후 확률들이 주어지면 각각의 영역에 대해 중간 유전형 행렬이 계산될 수 있다. 유전형 행렬에서의 각각의 이벤트 조합에 대해, 그 이벤트를 지원하는 모든 공동 이배체형들의 사후 확률들이 합산될 수 있다. 이 시점에서, 유전형 행렬은 현재 후보를 지원하는 모든 후보 변이들이 포함되지는 않았기 때문에 "중간"으로 간주될 수 있다. 그러나, 앞에서 보이는 바와 같이, 공동 이배체형 후보들의 수는 후보 변이 위치들의 수 및 영역들의 수에 따라 기하급수적으로 증가한다. 이는 결국 사후 확률들을 계산하는데 요구되는 계산을 기하급수적으로 증가시킨다. 따라서, 계산 복잡성을 감소시키기 위해, 이 스테이지에서, 유지할 공동 이배체형들의 수가 사용자 정의되고 프로그램 가능하도록 사후 확률들에 기초한 공동 이배체형들의 수가 프루닝될 수 있다. 마지막으로, 최종 유전형 행렬은 중간 유전형 행렬을 이용하여 계산되는 변이들의 사용자 정의 신뢰 메트릭에 기초하여 업데이트될 수 있다. 이들 프로세스들의 다양한 단계들은 도 24의 프로세스 흐름도에서 설명된다.
위의 프로세스는 모든 후보 변이들이 연결 행렬을 이용하여 프로세싱되고 있는 현재 후보들에 대한 증거로서 포함될 때까지 반복될 수 있다. 일단 모든 후보들이 포함되었다면, 현재 후보의 프로세싱이 행해진다. 후보 변이들을 프로세싱하기 위한 다른 중단 기준들도 가능하다. 예를 들어, 더 많은 후보 변이들이 추가됨에 따라 신뢰도가 증가를 중단했을 때 프로세스가 중단될 수 있다. 이 분석은, 도 24에 예시된 바와 같이, 리스트 내의 다른 모든 후보 변이들에 대해 동일한 방식으로 재시작되고 반복될 수 있고, 그에 의해 MRJD의 출력에서의 최종 변이 추출 파일을 초래할 수 있다. 따라서, 각각의 영역을 별개로 고려하는 대신에, 본 명세서에 설명된 바와 같은, 다영역 공동 검출 프로토콜을 이용하여, 판독들의 그룹이 유래했을 수 있는 모든 위치들을 고려할 수 있고 모든 이용 가능한 정보를 이용하여 공동으로 기저의 서열들을 검출하려고 시도한다.
따라서, 다영역 공동 검출을 위해, 예시적인 MRJD 프로토콜은 본 명세서에 개시된 방법들에 따라 다음 수학식들 중 하나 이상을 이용할 수 있다. 구체적으로는, 평가될 각각의 영역을 별개로 고려하는 대신에, MRJD는 판독들의 그룹이 유래되었을 수 있는 복수의 로케이션을 고려하고, 예컨대 유용한 많은, 예를 들어, 모든 이용 가능한 정보를 사용하여, 기저의 서열들을 공동으로 검출하려고 시도한다. 예를 들어, 하나의 예시적인 실시예에서:
N은 공동으로 프로세싱될 영역들의 수라고 한다. 그리고 Hk는 후보 단상형이라고 하고, k = 1...K이고, 이들 각각은 기준 서열에 대한 다양한 SNP들, 삽입들 및/또는 결실들을 포함할 수 있다. 각각의 단상형 Hk는 단일 가닥(또는 "상(phase)", 예를 들어, 모계 또는 부계)을 따라 단일 영역을 표현하고, 이들은 연속적일 필요는 없다(예를 들어, 이들은 갭들 또는 "무상관(don't care)" 서열들을 포함할 수 있다).
Gm은 양쪽 상 Φ = 1,2(이배체 유기체에 대한) 및 모든 영역 n = 1...N에 대한 후보 솔루션이라고 한다:
여기서 각각의 요소 은 후보들의 세트 {H1...Hk}로부터 선택된 단상형이다.
먼저, 각각의 판독의 확률이, 예를 들어, 은닉 마르코프 모델(HMM)을 이용하여, 각각의 후보 단상형 P(ri|Hk)에 대해 계산될 수 있다. 쌍 판독을 갖는 데이터세트들의 경우에, ri는 쌍 {ri,1, ri,2}를 나타내고, 이다. 링크된 판독들(예를 들어, 바코딩된 판독들)을 갖는 데이터 세트들의 경우, ri는 동일한 긴 분자로부터 유래하는 판독들의 그룹 {ri,1... ri,NL}을 나타내고, 이다.
다음으로, 각각의 후보 솔루션 Gm(m = 1...M)에 대해, 각각의 판독의 조건부 확률 및 전체 파일업의 조건부 확률 을 계산한다.
다음으로, 관찰된 파일업을 고려하여 각각의 후보 솔루션의 사후 확률이 계산된다: 여기서 P(Gm)은 후보 솔루션의 사전 확률을 나타내며, 이는 아래에 본 명세서에서 상세히 제시된다.
마지막으로, 모든 후보 변이 Vj의 상대 확률이 계산되고, 예컨대 이 경우 는 Gm이 변이 Vj를 지원하는 것을 나타내고, 는 Gm이 기준을 지원하는 것을 나타낸다. VCF 파일에서, 이는 Phred 스케일로 품질 스코어로서 보고될 수 있다:
다양한 변이 추출 연산들을 수행하기 위한 예시적인 프로세스가, 종래의 및 MRJD 검출 프로세스들이 비교되는 도 25와 관련하여 본 명세서에 설명된다. 구체적으로는, 도 25는 그 기준 서열들이 관심 있는 범위에 걸쳐 단지 3개의 염기만큼 상이한 2개의 영역에 대한 쌍 판독의 공동 파일업을 예시한다. 모든 판독들은 영역 #1 또는 영역 #2 중 어느 하나로부터 오는 것으로 알려져 있지만, 임의의 개별 판독이 어느 영역으로부터 유래했는지는 확실히 알려져 있지 않다. 유의할 점은, 위에 설명된 바와 같이, 염기들은 2개의 기준이 상이한, 예를 들어, 버블 영역들, 또는 판독들이 기준과 상이한 위치들에 대해서만 도시되어 있다는 점이다. 이들 영역은 활성 위치들로서 지칭된다. 다른 모든 위치들은 이들이 계산에 영향을 미치지 않기 때문에 무시될 수 있다.
따라서, 도 25와 관련하여 알 수 있는 바와 같이, 종래의 검출기에서, 판독 쌍들(1-16)은 영역 #2에 매핑될 것이고, 이들은 단독으로 영역 #2에서의 변이 추출을 위해 사용될 것이다. 이들 판독 모두는 영역 #2에 대한 기준과 매칭되며, 따라서 어떠한 변이도 추출되지 않을 것이다. 마찬가지로, 판독 쌍들(17-23)은 영역 #1에 매핑될 것이고, 이들은 단독으로 영역 #1에서의 변이 추출을 위해 사용될 것이다. 알 수 있는 바와 같이, 이들 판독 모두는 영역 #1에 대한 기준과 매칭되며, 따라서 어떠한 변이도 추출되지 않을 것이다. 그러나, 판독 쌍들(24-32)은 영역 #1 및 영역 #2에 동등하게 잘 매핑되고(각각은 ref #1 및 ref #2에 대한 1-염기 차이를 가짐), 따라서 매핑은 불확정적이고, 전형적인 변이 추출기는 이들 판독을 단순히 무시할 것이다. 이에 따라, 종래의 변이 추출기는 도 25에서 보이는 바와 같이, 어느 영역에 대해서도 변이 추출을 하지 않을 것이다.
그러나, MRJD에 의하면, 도 25는 결과가 종래의 방법들을 이용하여 수신한 것과 완전히 상이하다는 것을 예시한다. 관련 계산들이 아래에 제시된다. 이 경우에, N = 2개의 영역이다. 추가적으로, 각각이 2개의 후보 염기를 갖는 3개의 위치들이 있다(그 카운트가 충분히 낮은 염기들을 안전하게 무시할 수 있고, 이 예에서는 그 카운트는 각각의 위치에서 2개의 염기를 제외하고 모두 0이다). 모든 조합들이 고려되는 경우, 이는 K = 23 = 8개의 후보 단상형: H1 = CAT, H2 = CAA, H3 = CCT, H4 = CCA, H5 = GAT, H6 = GAA, H7 = GCT, H8 = GCA를 생성할 것이다.
모든 후보 단상형들의 모든 조합들이 고려되는 브루트 포스 계산에서, 후보 솔루션들의 수는 M = K2N = 82.2 = 4096이고, 각각의 후보 솔루션 Gm에 대해 P(Gm/R)가 계산될 수 있다. 다음은 2개의 후보 솔루션에 대한 이 계산을 예시한다:
여기서 Gm1은 변이를 갖지 않고(이는 종래의 검출기에 의해 발견되는 솔루션임), Gm2는 영역 #1의 위치 #2에 단일 이형 접합체 를 갖는다.
확률 P(ri|Hk)는 HMM의 염기 품질 및 다른 파라미터들을 포함하는 다양한 인자들에 의존한다. 염기 추출 오류들만이 존재하고 모든 염기 추출 오류들이 동등하게 가능성이 있다고 가정될 수 있으며, 따라서, 이고, 여기서, Pe는 염기 추출 오류의 확률이고, Np(i)는 판독 i에 의해 중첩되는 활성 염기 위치(들)의 수이고, Ne(i)는 단상형 Hk를 가정한, 판독 i에 대한 오류들의 수이다. 따라서, pe = 0.01이라고 가정될 수 있으며, 이는 Phred 20의 염기 품질에 대응한다. 도 26에 제시된 표는 모든 판독 쌍들 및 모든 후보 단상형들에 대해 P(ri|Hk)를 보여준다. 2개의 맨 우측 열은 P(ri|Gm1) 및 P(ri|Gm2)를 보여주고, 그 곱이 하단에 있다. 도 26은 이고, Gm2에 유리하게 15 자릿수의 차이를 보여주고 있다.
사후 확률 P(Gm|R)는 사전 확률 P(Gm)에 의존한다. 이 예를 완료하기 위해, 단순한 IID(independent identically distributed) 모델이 가정될 수 있고, 따라서 Nv 변이들을 갖는 후보 솔루션의 사전 확률이 이고, Np는 활성 위치들의 수(이 경우 3)이고, Pv는 이 예에서는 0.01인 것으로 가정된 변이의 확률이다. 이는 , 및 을 산출한다. 유의할 점은 Gm2는 영역 #1에 걸쳐 이형 접합체이고, 단상형들의 모든 이형 접합체 쌍들은 (단순히 상들을 스와핑함으로써 획득된) 동일한 확률을 갖는 미러 이미지 표현을 갖는다는 점이다. 이 경우에, Gm2 및 그의 미러 이미지들에 대한 확률들의 합은 합해서 1.000이다. 개별 변이들의 확률들을 계산하면, Phred 50.4의 품질 스코어를 갖는, 영역 #1의 위치 #2에서의 이형 접합체 가 보일 수 있다.
따라서, 알 수 있는 바와 같이, 브루트 포스 변이 추출 연산을 수행하기 위한 추출 연산을 수행하기 위한 막대한 계산 복잡성이 존재하며, 이 복잡성은 본 명세서에 설명된 바와 같은, 다영역 공동 검출을 수행함으로써 감소될 수 있다. 예를 들어, 위 계산의 복잡성은 영역의 수 N 및 후보 단상형의 수 K에 따라 빠르게 증가한다. 후보 단상형들의 모든 조합을 고려하기 위해, 확률을 계산할 후보 솔루션의 수는 M = K2N이다. 브루트 포스 구현에서, 후보 단상형의 수는 K= 2Np이고, 여기서 Np는 활성 위치의 수이다(예를 들어, 위에 예시된 바와 같이, 후보 단상형들의 리스트를 생성하기 위해 그래프 조립 기법이 사용된다면, Np는 그래프에서 독립적인 버블들의 수이다). 그러므로, 단순한 브루트 포스 계산은 구현하기에 엄청나게 비쌀 수 있다. 예를 들어, N = 3이고 Np = 10이면, 후보 솔루션들의 수는 M = 23.2.10 = 260 = 1018이다. 그러나, 실제로는, 이보다 훨씬 더 높은 Np 값들을 갖는 것은 드문 일이 아니다.
결과적으로, 중요한 베이지안 계산이 엄청나게 복잡할 수 있기 때문에, 다음 설명은 그러한 계산의 복잡성을 감소시키기 위한 추가의 방법들을 제시한다. 예를 들어, 다른 실시예의 제1 단계에서, 적은 수의 위치 (또는 심지어 단일 위치 )으로 시작하여, 베이지안 계산이 그들 위치에 걸쳐 수행될 수 있다. 계산의 끝에서, 그 확률이 미리 정의된 임계치 아래로 떨어지는 후보들은 예컨대 위에 설명된 바와 같이, 트리 함수의 프루닝에서 제거될 수 있다. 그러한 경우에, 임계치는 적응적일 수 있다.
다음으로, 제2 단계에서, 위치들의 수 는 작은 수 만큼 증가될 수 있고(예컨대 다음 같은 것: ), 생존 후보들은, 트리 함수를 성장시키는 것에서와 같이, 새로운 위치(들)에서 하나 이상의, 예를 들어, 모든 가능한 후보들과 조합될 수 있다. (1) 베이지안 계산을 수행하고, (2) 트리를 프루닝하고, (3) 트리를 성장시키는 이들 단계는 그 후 중단 기준이 충족될 때까지, 예를 들어 순차적으로 반복될 수 있다. 그 후, 임계치 이력을 이용하여 결과의 신뢰도(예를 들어, 진정한 솔루션이 발견된 또는 발견되지 않은 확률)를 결정할 수 있다. 이 프로세스는 도 27에 제시된 플로우차트에 예시되어 있다.
이 접근법에 대한 다양한 가능한 변형들이 존재한다는 것을 이해해야 한다. 예를 들어, 지적한 바와 같이, 프루닝 임계치는, 예컨대 생존 후보들의 수에 기초하여 적응적일 수 있다. 예를 들어, 단순한 구현은 후보들의 수를 고정된 수 아래로 유지하기 위해 임계치를 설정하는 반면, 더 복잡한 구현은 추가 후보들을 포함시키는 것의 비용-편익 분석에 기초하여 임계치를 설정할 수 있다. 게다가, 단순한 중단 기준들은 결과가 충분한 신뢰 수준으로 발견된 것, 또는 더 많은 위치들이 추가됨에 따라 초기 위치에 대한 신뢰도가 증가를 중단한 것일 수 있다. 게다가 또한, 더 복잡한 구현은 더 많은 위치들을 계속 추가하는 것의 일부 유형의 비용-편익 분석을 수행할 수 있다. 추가적으로, 도 27과 관련하여 알 수 있는 바와 같이, 새로운 위치들이 추가되는 순서는, 초기 위치(들)까지의 거리 또는 이들 위치가 이미 포함된 위치들에 얼마나 많이 연결되어 있는지(예를 들어, 쌍 판독들과의 중첩의 양)와 같은 여러 기준들에 의존할 수 있다.
이 알고리즘의 유용한 특징은 진정한 솔루션이 발견되지 않은 확률이 정량화될 수 있다는 것이다. 예를 들어, 각각의 단계에서 모든 프루닝된 분기들의 확률들을 단순히 합산함으로써 유용한 추정치가 획득된다: . 그러한 추정치는 결과 변이 추출들의 신뢰도를 계산하는 데 유용하다: . 양호한 수신기 동작 특성(ROC) 곡선들을 생성하기 위해서는 양호한 신뢰 추정치들이 필수적이다. 이는 다른 애드 혹 복잡성 감소들에 비해 이 프루닝 방법의 주요 이점이다.
도 25의 예시적인 파일업으로 돌아가서, 가장 좌측 위치(위치 #1)로부터 시작하여, 각각의 반복에서 Phred 60의 프루닝 임계치을 이용하여, 한 번에 하나의 염기 위치씩 우측을 향해 작업하여: 는 j번째 반복에 대한 후보 솔루션들을 나타낸다고 한다. 도 28은 감소하는 확률의 순서로 리스팅된, 염기 C 및 G의 모든 조합을 표현하는, 제1 반복에서의 후보 솔루션을 보여준다. (상들을 스와핑함으로써 획득된) 동등한 미러 이미지 표현들을 갖는 임의의 솔루션에 대해, 단일 표현만이 여기에 도시되어 있다. 모든 후보 솔루션들에 대한 확률들이 계산될 수 있고, 프루닝 임계치를 초과하는 확률들(도 28에서 실선으로 표시됨)은 드롭될 수 있다. 도 28과 관련하여 알 수 있는 바와 같이, 본 명세서에 개시된 프루닝 방법의 결과로서, 6개의 후보가 생존한다.
다음으로, 도 29와 관련하여 알 수 있는 바와 같이, 트리는 반복 #1로부터의 생존 후보들 및 위치 #2에서의 후보 염기들(C 및 A)의 모든 조합들을 발견함으로써 성장될 수 있다. 다시 감소하는 확률의 순서로 도시된, 새로운 후보들의 부분 리스트가 도 29에 도시되어 있다. 다시, 확률들이 계산되고 프루닝 임계치과 비교될 수 있고, 이 경우에 5개의 후보가 생존한다.
마지막으로, 반복 #2로부터의 생존 후보들 및 위치 #3(A 및 T)에서의 후보 염기들의 모든 조합들이 결정될 수 있다. 최종 후보들 및 그들의 연관된 확률들이 도 30에 도시되어 있다. 따라서, 개별 변이들의 확률들을 계산할 때, Phred 50.4의 품질 스코어를 갖는, 영역 #1의 위치 #2에서의 이형 접합체 가 결정되고, 이는 브루트 포스 계산에서 발견된 동일한 결과이다. 이 예에서, 프루닝은 최종 결과에 유의미한 영향을 미치지 않았지만, 일반적으로 프루닝은 계산에 영향을 미칠 수 있고, 종종 더 많은 신뢰도 스코어를 초래한다.
시스템의 성능 및 복잡성에 영향을 미칠 수 있는 이 접근법의 구현들에 대해 많은 가능한 변형들이 존재하고, 상이한 변형들이 상이한 시나리오들에 대해 적절할 수 있다. 예를 들어, 어느 영역들을 포함시킬지를 결정하는 데 변형들이 있을 수 있다. 예를 들어, 다영역 공동 검출을 실행하기 전에, 변이 추출기는 주어진 활성 영역이 다른 영역들과 개별적으로 또는 공동으로 프로세싱되어야 하는지를 결정하도록 구성될 수 있고, 공동으로라면, 그것은 어느 영역들을 포함시킬지를 결정할 수 있다. 다른 경우들에서, 일부 구현들은 이 결정을 통지하거나 달리 행하기 위해 매핑기에 의해 제공되는 2차 정렬들의 리스트에 의존할 수 있다. 다른 구현들은, 예컨대 기준 게놈의 검색에 기초하여, 오프라인으로 계산된 상동 영역들의 데이터베이스를 사용할 수 있다.
따라서, 그러한 연산들에서의 유용한 단계는 어느 위치들을 포함시킬지를 결정하는 데 있다. 예를 들어, 유의해야 할 점은 다양한 관심 있는 영역들이 자족적(self-contained)이고/이거나 인접 영역들로부터 격리되지 않을 수 있다는 점이다. 따라서, 파일업 내의 정보는 총 판독 길이(예를 들어, 쌍 판독 길이 또는 긴 분자 길이)보다 훨씬 더 많이 분리된 염기들의 확률에 영향을 줄 수 있다. 이에 따라, MRJD 계산에 어느 위치들을 포함시킬지가 결정되어야 하고, 위치들의 수는 제약되지 않는다(심지어 프루닝에 의해서도). 예를 들어, 일부 구현들은 위치들의 중첩 블록들을 프로세싱하고 그들 위치에서의 신뢰 수준들 또는 그들 위치에서의 증거의 완전성(예를 들어, 블록의 중간 인근의 위치들은 전형적으로 에지 근처의 것들보다 더 완전한 증거를 가짐)에 기초하여 위치들의 서브세트에 대한 결과들을 업데이트할 수 있다.
다른 결정 인자는 새로운 위치들이 추가될 수 있는 순서일 수 있다. 예를 들어, 프루닝된 MRJD에 대해, 새로운 위치들을 추가하는 순서는 성능에 영향을 미칠 수 있다. 예를 들어, 일부 구현들은 이미 포함된 위치들까지의 거리, 또는 이들 위치와의 연결성의 정도(예를 들어, 양쪽 위치들과 중첩하는 판독의 수)에 기초하여 새로운 위치들을 추가할 수 있다. 추가적으로, 프루닝이 어떻게 수행될 수 있는지에 대한 많은 변형이 또한 존재한다. 위에 설명된 예에서, 프루닝은 고정 확률 임계치에 기초하지만, 일반적으로 프루닝 임계치는 적응적이거나 생존 후보의 수에 기초할 수 있다. 예를 들어, 단순한 구현은 후보들의 수를 고정된 수 아래로 유지하기 위해 임계치를 설정하는 반면, 더 복잡한 구현은 추가 후보들을 포함시키는 것의 비용-편익 분석에 기초하여 임계치를 설정할 수 있다.
다양한 구현들은 사전 확률들 P(Gm|R) 대신에 확률들 P(R|Gm)에 기초하여 프루닝을 수행할 수 있다. 이는 (상들에 추가하여) 영역들에 걸쳐 동등한 미러 이미지 표현들의 제거를 허용하는 이점을 갖는다. 이 장점은 매우 낮은 사전 확률들을 갖는 후보들을 프루닝하지 않는 단점에 의해 적어도 부분적으로 오프셋되며, 이는 다양한 경우들에서 유익할 수 있다. 이에 따라, 유용한 솔루션은 시나리오에 의존할 수 있다. 프루닝이, 예컨대 P(R|Gm)에 기초하여 수행된다면, 베이지안 계산은 최종 반복 후에 한 번 수행될 것이다.
게다가 위의 예에서, 프로세스는 도시된 파일업 내의 모든 염기 위치들을 프로세싱한 후에 중단되었지만, 다른 중단 기준들도 가능하다. 예를 들어, 염기 위치들의 서브세트만이(예를 들어, 중첩 블록들을 프로세싱할 때) 해결되고 있다면, 서브세트에 대한 결과가 충분한 신뢰 수준으로 발견되었을 때, 또는 더 많은 위치들이 추가됨에 따라 신뢰도가 증가를 중단했을 때 프로세스는 중단될 수 있다. 그러나, 더 복잡한 구현은 더 많은 위치들을 추가하는 것의 잠재적인 값에 대해 계산 비용을 가중시키는, 일부 유형의 비용-편익 분석을 수행할 수 있다.
사전 확률들이 또한 유용할 수 있다. 예를 들어, 위 예에서, 단순한 IID 모델이 사용되었지만, 다른 모델들이 사용될 수도 있다. 예를 들어, 유의해야 할 점은 변이들의 클러스터들은 IID 모델에 의해 예측되는 것보다 더 흔한 것이라는 점이다. 또한 유의해야 할 점은 기준들이 상이한 위치들에서 변이들이 발생할 가능성이 더 많다는 점이다. 따라서, 그러한 지식을 사전 확률 P(Gm)에 통합하는 것은 검출 성능을 개선하고 더 나은 ROC 곡선을 산출할 수 있다. 특정하게는, 유의해야 할 점은 상동 영역들에 대한 사전 확률들은 게놈학 커뮤니티에서 잘 이해되지 않고, 이 지식은 여전히 진화하고 있다는 점이다. 이에 따라, 일부 구현들은 더 나은 정보가 이용 가능해짐에 따라 선험적 모델들을 업데이트할 수 있다. 이는 더 많은 결과들이 생성됨에 따라 자동으로 행해질 수 있다. 그러한 업데이트들은 동일한 샘플에 대한 게놈의 다른 생물학적 샘플들 또는 다른 영역들에 기초할 수 있고, 그 학습들은 더 빠르고 정확한 분석을 더 촉진하기 위해 본 명세서의 방법들에 적용될 수 있다.
따라서, 일부 경우에, 반복적 MJRD 프로세스가 구현될 수 있다. 구체적으로는, 본 명세서에 설명된 방법은, 복잡성을 더 감소시키고 및/또는 시스템의 검출 성능을 증가시키기 위해, 관련 영역들 사이에 메시지 전달을 허용하도록 확장될 수 있다. 예를 들어, 하나의 로케이션에서의 계산의 출력은 인근의 위치에서의 계산에 대한 입력 사전 확률로서 사용될 수 있다. 추가적으로, 일부 구현들은 원하는 성능/복잡성 트레이드오프를 달성하기 위해 프루닝 및 반복의 조합을 이용할 수 있다.
게다가, 샘플 준비는 MRJD 프로세스를 최적화하도록 구현될 수 있다. 예를 들어, 쌍-말단 서열 분석을 위해, 종래의 검출을 사용할 때 삽입 크기에 대해 타이트한 분포를 갖는 것이 유용할 수 있다. 그러나, 다양한 경우들에서, 삽입 크기의 변형을 도입하는 것은 MRJD에 대한 성능을 상당히 개선할 수 있다. 예를 들어, 샘플은 종래의 검출을 위해 전형적으로 구현되는 것보다 더 높은 분산을 갖는 바이모달 분포, 멀티-모달 분포, 또는 벨 곡선-유사 분포를 의도적으로 도입하도록 준비될 수 있다.
도 31은 기준 서열 유사도의 정도가 변화하고, N = 2이도록 단일 상동 카피를 갖는 게놈의 선택된 영역들에 걸쳐 인간 샘플 NA12878에 대한 MRJD 및 종래의 검출기에 대한 ROC 곡선들을 예시한다. 이 데이터세트는 101의 판독 길이 및 약 400의 평균 삽입 크기를 갖는 쌍-말단 서열 분석을 사용하였다. 도 31과 관련하여 알 수 있는 바와 같이, MRJD는 종래의 검출 방법들보다 이들 영역들에 대해 극적으로 개선된 감도 및 특이성을 제공한다. 도 32는 1000 염기의 윈도우에 걸쳐 측정된, 기준들의 서열 유사도의 함수로서 표시된 동일한 결과들을 예시한다(예를 들어, 기준들이 1000개 중 10개의 염기만큼 다르면, 유사도는 99.0 퍼센트이다). 이 데이터세트에 대해, 종래의 검출은 서열 유사도 -0.98에서 나쁘게 수행하기 시작하는 반면, MRJD는 0.995까지 그리고 심지어 넘어서 상당히 잘 수행한다는 것을 알 수 있다.
추가적으로, 다양한 경우들에서, 이 방법은, 복잡성을 추가로 감소시키고/시키거나 검출 성능을 증가시키기 위해, 관련 영역들 사이의 메시지 전달을 허용하도록 확장될 수 있다. 예를 들어, 하나의 로케이션에서의 계산의 출력은 인근의 로케이션에서의 계산에 대한 입력 사전 확률로서 사용될 수 있고, 일부 구현들에서는, 원하는 성능/복잡성 트레이드오프를 달성하기 위해 프루닝 및 반복의 조합을 이용할 수 있다. 특정한 경우들에서, 위에 지적한 바와 같이, 다영역 공동 검출을 실행하기 전에, 변이 추출기는 주어진 활성 영역이 다른 영역들과 개별적으로 또는 공동으로 프로세싱되어야 하는지를 결정할 수 있다. 추가적으로, 위에 지적한 바와 같이, 일부 구현들은 그러한 결정을 행하기 위해 매핑기에 의해 제공되는 2차 정렬들의 리스트에 의존할 수 있다. 다른 구현들은 기준 게놈의 검색에 기초하여 오프라인으로 계산된 상동 영역들의 데이터베이스를 사용할 수 있다.
위 내용을 고려하여, 쌍-결정된 은닉 마르코프 모델(Pair-Determined Hidden Markov Model, PD-HMM)은 MRJD의 이점들을 이용하는 방식으로 구현될 수 있다. 예를 들어, MRJD는 각각의 가능한 공동 이배체형을 고려하여 판독들의 일부분 또는 전부를 관찰할 확률을 개별적으로 추정할 수 있는데, 여기서 공동 이배체형은 상동 기준 영역 당 배수성(ploidy) 당 하나의 단상형을 포함하고, 예를 들어, 이배체 염색체들 내의 2개의 상동 영역에 대해, 각각의 공동 이배체형은 4개의 단상형을 포함할 것이다. 그러한 경우들에서, 가능한 단상형들의 일부분 또는 전부는, 예컨대, 구성됨으로써, 예를 들어, 각각의 기준 영역을 사소하지 않은 증거가 있는 모든 변이들의 모든 가능한 서브세트에 의해 변형함으로써 고려될 수 있다. 그러나, 긴 상동 기준 영역들의 경우, 가능한 변이들의 수는 크고, 따라서 단상형들(변이들의 조합들)의 수는 기하급수적으로 커지고, 공동 이배체형들(단상형들의 조합들)의 수는 천문학적일 수 있다.
결과적으로, MRJD 계산들을 다루기 쉽게 유지하기 위해, 모든 가능한 공동 이배체형들을 테스트하는 것은 유용하지 않을 수 있다. 오히려, 일부 경우들에서, 시스템은 "가장 가능성 있는" 공동 이배체형들의 작은 서브세트만이 테스트되는 방식으로 구성될 수 있다. 이들 "가장 가능성 있는" 공동 이배체형들은 부분적으로 결정된 공동 이배체형들의 트리를 증분적으로 구성함으로써 결정될 수 있다. 그러한 경우에, 트리의 각각의 노드는 상동 기준 영역 당 배수성 당 부분적으로 결정된 단상형을 포함하는 부분적으로 결정된 공동 이배체형일 수 있다. 이 경우에, 부분적으로 결정된 단상형은 부분적으로 결정된 가능한 변이들의 서브세트에 의해 변이된 기준 영역을 포함할 수 있다. 따라서, 부분적으로 결정된 가능한 변이들의 서브세트는, 각각의 가능한 변이에 대해, 다음 3개의 상태 중 하나의 표시를 포함할 수 있다: 변이가 결정되고 존재하는 것, 변이가 결정되고 부재하는 것, 또는 변이가 아직 결정되지 않은 것, 예를 들어, 그것이 존재하거나 부재할 수 있는 것. 트리의 루트에서는, 모든 단상형들에서 모든 변이들이 결정되지 않는다; 루트로부터 연속적으로 추가로 분기하는 트리 노드들은 각각의 노드의 공동 이배체형의 각각의 단상형에 존재하거나 부재하는 것으로 결정된 연속적으로 더 많은 변이들을 갖는다.
추가로, 위에 설명된 바와 같이, 이 공동 이배체형 트리의 컨텍스트에서, MRJD 계산의 양은, 모든 공동 이배체형 노드들이, 다른 더 가능성이 있는 분기들 또는 노드들에 비해, 가능성이 없는, 예를 들어, 중간 정도로 내지 극도로 가능성이 없는 트리의 분기들을 트리밍하는 것에 의해 제한되고 다루기 쉽게 유지된다. 따라서, 그러한 트리밍은 여전히 단지 부분적으로 결정되는 노드들에서 분기들에 대해 수행될 수 있다; 예를 들어, 여러 또는 다수의 변형들이 여전히 트리밍된 노드의 공동 이배체형의 단상형들로부터 존재하거나 부재하는 것으로 결정되지 않는다. 따라서, 그러한 경우에, 부분적으로 결정된 단상형의 진실을 가정하여 각각의 판독을 관찰할 우도를 추정하거나 바운딩할 수 있는 것이 유용하다. "부분적으로 결정된 쌍 은닉 마르코프 모델"에 대한 "PD-HMM"으로 나타낸, 수정된 쌍 은닉 마르코프 모델(pHMM) 계산은 진정한 단상형 H*가 부분적으로 결정된 단상형 H와 일관되는 것을 가정하여 판독 R을 관찰할 확률 P(R|H)를 추정하는 데 유용하다. 이 컨텍스트에서 일관된다는 것은 일부 특정한 진정한 단상형 H*는 부분적으로 결정된 단상형 H와 그 존재 또는 부재가 H에서 결정되는 모든 변이들에 관하여 일치하지만, H에서 결정되지 않은 변이들에 대해서, H*는 각각의 결정되지 않은 변이에 의해 변형되거나 변형되지 않은 기준 서열과 일치할 수 있다는 것을 의미한다.
유의할 점은 결정된 변이 위치들만을 포함하도록 선택된 H의 일부 더 짧은 서브-단상형에 대해 통상의 pHMM 계산을 실행하는 것은 일반적으로 적절하지 않다는 점이다. 그들의 기하학적 순서와는 상당히 다른 효율적인 순서로 해결되는 결정되지 않은 변이들이 갖는 공동 이배체형 트리를 구축하여, 해결되는 결정되지 않은 변형들을 구축하여, 부분적으로 결정된 단상형 H가 전형적으로 결정된 것들과 인터리브된 많은 결정되지 않은 변이 위치들을 갖도록 하는 것이 일반적으로 중요하다. PCR 삽입결실 오류들을 적절하게 고려하기 위해, 모든 결정된 변이들 및 그 주위의 유의미한 반경을 통해 스패닝하는 pHMM-유사 계산을 사용하는 것이 유용하며, 이는 결정되지 않은 변이 위치들을 피하려는 시도들과 호환가능하지 않을 수 있다.
따라서, PD-HMM에 대한 입력들은 판독 R의 추출된 뉴클레오티드 서열, R의 추출되는 뉴클레오티드들의 염기 품질 스코어들(예를 들어, Phred 스케일), 베이스라인 단상형 HO, 및 HO로부터의 결정되지 않은 변형들(편집들)의 리스트를 포함할 수 있다. 결정되지 않은 변이들은 단일-염기 치환들(single-base substitutions, SNP들), 다중-염기 치환들(multiple-base substitutions, MNP들), 삽입들, 및 결실들을 포함할 수 있다. 유리하게는, 결정되지 않은 SNP들 및 결실들을 지원하는 것이 적절할 수 있다. 결정되지 않은 MNP는 다수의 독립적인 SNP들로서 불완전하지만 적절하게 표현될 수 있다. 결정되지 않은 삽입은 먼저 베이스라인 단상형으로의 삽입을 편집하고, 그 후 그 삽입을 원상태로 돌릴 대응하는 결정되지 않은 결실을 나타내는 것에 의해 표현한다.
제한된 상태 메모리 및 로직을 갖는 하드웨어 엔진 구현을 용이하게 하기 위해, 결정되지 않은 결실들에 제한을 두어, 예컨대 2개의 결정되지 않은 결실이 중첩되지 않도록 할 수 있다(동일한 베이스라인 단상형 염기들을 삭제한다). 부분적으로 결정된 단상형이 그러한 제한을 위반하는 결정되지 않은 변이들로 테스트되어야 하는 경우, 이는 하나 이상의 결정되지 않은 변이를 더 많은 수의 PD-HMM 연산들에서 결정된 변이들로 변환하여, 그 변이들이 존재하거나 부재하는 경우들을 커버하는 것에 의해 해결될 수 있다. 예를 들어, 2개의 결정되지 않은 결실 A 및 B가 베이스라인 단상형 H0에서 서로 중첩함으로써 위반된다면, 결실 B는 H0B를 생성하기 위해 H0로 편집될 수 있고, 결정되지 않은 결실 A만을 사용하여, 하나는 베이스라인 단상형 HO에 대해, 그리고 다른 하나는 베이스라인 단상형 H0B에 대해, 2개의 PD-HMM 연산이 수행될 수 있고, 2개의 PD-HMM 연산의 최대 확률 출력은 유지될 수 있다.
PD-HMM 연산의 결과는 임의의 결정되지 않은 변이들의 서브세트를 갖는 HO를 편집함으로써 형성될 수 있는 모든 단상형들 H* 중에서 최대 P(R|H*)의 추정치일 수 있다. 최대화는 로컬로 행해질 수 있고, 단상형으로부터 인접한 결정되지 않은 변이가 존재하거나 존재하지 않은 것처럼 주어진 셀에서의 pHMM-유사 동적 프로그래밍에 기여하고, 어느 것이든 더 나은 스코어들이, 예를 들어, 더 큰 부분 확률에 기여한다. 동적 프로그래밍 동안의 그러한 로컬 최대화는 개별 순수 H* 단상형들에 걸친 진정한 최대화보다 최대 P(R|H*)의 더 큰 추정치들을 초래할 수 있지만, 차이는 일반적으로 중요하지 않다.
하나 이상의 매칭 뉴클레오티드 값이 각각의 단상형 위치에 대해 특정되도록 허용함으로써, 결정되지 않은 SNP들이 PD-HMM에 통합될 수 있다. 예를 들어, HO의 염기 30이 'C'이고 결정되지 않은 SNP가 이 'C'를 'T'로 대체하면, PD-HMM 연산의 단상형은 위치(30)를 염기들 'C' 및 'T' 양쪽 모두에 매칭하는 것으로서 표시할 수 있다. 통상의 pHMM 동적 프로그래밍에서, 'M' 상태로의 임의의 전이는 (단상형 위치가 판독 위치와 매칭하는 경우) 정확한 염기 추출의 확률과 또는 (단상형 위치가 판독 위치와 미스매칭하는 경우) 특정 염기 추출 오류의 확률과 경로 확률을 곱하는 결과를 초래한다; PD-HMM에 대해, 이는 판독 위치가 가능한 단상형 염기(예를 들어, 'C' 또는 'T')와 매칭하면 정확한 추출 확률을 사용하고, 그렇지 않으면 염기 추출 오류 확률을 사용함으로써 수정된다.
결정되지 않은 단상형 결실들은 옵션으로 결실된 단상형 위치들을 플래깅하고, 확률 손실 없이 정렬 경로들이 결정되지 않은 결실 단상형 세그먼트들에 걸쳐 수평으로 스킵하는 것을 허용하도록 pHMM의 동적 프로그래밍을 수정함으로써 PD-HMM 내로 혼입될 수 있다. 이는 다양한 방식으로 행해질 수 있지만, M, I, 및/또는 D 상태들에서의 확률 값들이 통상의 갭 개방 또는 갭 확장 확률들에 의해 감소되지 않고 결정되지 않은 결실의 스팬에 걸쳐 (단상형 축을 따라) 수평으로 전송할 수 있다는 공통 속성을 갖는다.
하나의 특정한 실시예에서, 결정되지 않은 결실들이 시작되는 단상형 위치들은 "F1"으로 플래깅되고, 결정되지 않은 결실들이 종료되는 위치들은 "F2"로 플래깅된다. HMM 행렬(단상형 수평/판독 수직)의 각각의 셀에 대한 M, I, 및 D "상태들"(부분 확률 표현들)에 추가하여, 각각의 PD-HMM 셀은 BM, BI, 및 BD "바이패스" 상태들을 더 포함할 수 있다. F1-플래깅된 단상형 열들에서, BM, BI, 및 BD 상태들은 각각 좌측의 셀의 M, I, 및 D 상태들로부터 카피된 값들을 수신한다. 비-F2-플래깅된 단상형 열들, 특히 결정되지 않은 결실의 내부로 연장되는 F1 플래깅된 열 말단으로 시작하는 열들에서, BM, BI, 및 BD 상태들은, 그들의 값들을, 각각, 우측의 셀의 BM, BI, 및 BD 상태들로 전송한다. F2-플래깅된 단상형 열들에서, 인접 셀들의 상태들을 계산하는 데 사용되는 M, I, 및 D 상태들 대신에, M 및 BM 중 최대 값이 사용되고, I 및 BI 중 최대 값이 사용되고, D 및 BD 중 최대 값이 각각 사용된다. 이는 M 및 BM으로부터의, I 및 BI로부터의, 및 D 및 BD 레지스터로부터의 신호들의 멀티플렉싱된 선택으로서 F2 열에서 예시되어 있다.
유의할 점은 비록 BM, BI, 및 DB 상태 레지스터들이 F1 내지 F2 열들에 표현될 수 있고, 최대화 M/BM, I/BI, 및 D/BD 멀티플렉서들이 F2 열에 도시될 수 있지만, 이들 컴포넌트들은 모든 셀 계산들에 대해 존재할 수 있고, 결정되지 않은 결실이 임의의 위치에서 핸들링되는 것을 가능하게 하고, 단상형 전체에 걸쳐 대응하는 F1 및 F2 플래그들을 가지는 다수의 결정되지 않은 결실들을 가능하게 한다는 점이다. 또한 유의할 점은 단일 염기 결정되지 않은 결실의 경우에 대해, F1 및 F2 플래그들이 동일한 열에 있을 수 있다는 점이다. 추가로 유의해야 할 점은 셀들의 PD-HMM 행렬은 로직 M, I, D, BM, BI, 및 BD 상태 계산들의 개략적인 표현으로서 도시될 수 있지만, 하드웨어 구현에서, 더 적은 수의 셀 계산 로직 요소들이 존재할 수 있고, 높은 클록 주파수들에서 M, D, I, BM, BI, 및 BD 상태 값들을 계산하기 위해 적절하게 파이프라이닝될 수 있고, 행렬 셀들은 PD-HMM 계산의 고유한 로직 종속성들과 일관된 다양한 순서로, 다양한 정도의 하드웨어 병렬성으로 계산될 수 있다는 점이다.
따라서, 이 실시예에서, 하나의 열 내의 pHMM 상태 값들은 결정되지 않은 결실의 바로 좌측에 있을 수 있고 이는 캡처되고 우측으로, 변경되지 않은 채로, 이 결정되지 않은 결실의 최우측 열에 전송될 수 있고, 여기서 이들은 정상 경로 스코어들을 비트할 때마다 pHMM 계산들로 대입된다. 이들 최대 값이 선택되는 경우, "바이패스" 상태 값들 BM, BI, 및 BD는 결정되지 않은 결실이 존재하는 것으로 간주되는 로컬 동적 프로그래밍 결과들을 표현하는 반면, "정상" 상태 값들 M, I, 및 D는 결정되지 않은 결실이 부재하는 것으로 간주되는 로컬 동적 프로그래밍 결과들을 표현한다.
다른 실시예에서, F1 플래깅된 열들에서 M 상태로부터 수신하는 BM 상태, 또는 M, D, 및/또는 I 상태들의 합을 수신하는 것과 같은 단일 바이패스 상태가 사용될 수 있다. 다른 실시예에서, "바이패스" 상태들을 사용하기보다는, 갭 개방 및/또는 갭 확장 페널티들이 결정되지 않은 결실들의 열들 내에서 제거된다. 다른 실시예에서, 바이패스 상태들은 사용되고 있는 로컬 최대화보다는, 결정되지 않은 결실들의 동적 프로그래밍에 추가적으로 기여한다. 추가 실시예에서, 더 많거나 더 적은 또는 상이하게 정의된 또는 상이하게 위치하는 단상형 위치 플래그들이 결정되지 않은 결실에서 멤버십을 나타내는 단일 플래그와 같은 바이패스 또는 유사한 거동을 트리거하기 위해 사용된다. 추가적인 실시예에서, 예컨대 추가적인 플래그들 및/또는 바이패스 상태들을 이용하여, 2개 이상의 중첩하는 결정되지 않은 결실들이 참여할 수 있다. 추가적으로, 결정되지 않은 결실보다는, 또는 그에 추가하여, 단상형 내의 결정되지 않은 삽입들이 지원된다. 마찬가지로, 단상형 축 상의 결정되지 않은 결실들 및/또는 삽입들보다는 또는 그에 추가하여, 판독 축 상의 결정되지 않은 삽입들 및/또는 결실들이 지원된다. 다른 실시예에서, 결정되지 않은 다중-뉴클레오티드 치환들이 원자 변이들(모두 존재 또는 모두 부재)로서 지원된다. 추가 실시예에서, 결정되지 않은 길이-변화하는 치환들이 원자 변이들로서 지원된다. 다른 실시예에서, 결정되지 않은 변이들이 고정된 또는 구성가능한 확률 또는 스코어 조정들로 페널티가 주어진다.
이 PD-HMM 계산은 "통상의" pHMM 계산을 위한 하드웨어 엔진 아키텍처의 확장에 의해, 예컨대 FPGA 또는 ASIC 기술에서, 하드웨어 엔진으로서 구현될 수 있거나, 양자 컴퓨팅 플랫폼에서 하나 이상의 양자 회로에 의해 구현될 수 있다. 다양한 또는 연속적인 셀들에 대한 M, I, 및 D 상태 값들을 계산, 전송, 및 저장하기 위한 엔진 파이프라인 로직에 추가하여, 본 명세서에 그리고 위에 설명된 바와 같이, BM, BI, 및 BD 상태 값들을 계산, 전송, 및 저장하도록 병렬 파이프라인 로직이 구성될 수 있다. M, I, 및 D 상태 값들의 저장 및 검색을 위한 메모리 리소스들 및 포트들은 BM, BI, 및 BD 상태 값들의 저장 및 검색을 위한 유사한 또는 더 넓은 또는 더 깊은 메모리 리소스들 및 포트들을 동반할 수 있다. F1 및 F2와 같은 플래그들은 연관된 단상형 염기들과 함께 메모리들에 저장될 수 있다.
예를 들어 결정되지 않은 SNP 단상형 위치들에 대한 다수의 매칭 뉴클레오티드가 임의의 방식으로, 예컨대 가능한 뉴클레오티드 값 당 1 비트의 벡터를 사용하여 인코딩될 수 있다. pHMM 행렬에서의 셀 계산 종속성들은 PD-HMM에서 변경되지 않고, 따라서 다수의 셀 계산들의 파이프라이닝은 PD-HMM에 대해 동일하게 유지될 수 있다. 그러나, "정상" 및/또는 "바이패스" 상태 값들을 비교하고 더 큰 것들을 선택하기 위한 요건으로 인해 완전한 셀 계산을 위해 시간 및/또는 클록 사이클들에서의 레이턴시는 PD-HMM에 대해 다소 증가한다. 따라서, PD-HMM 셀 계산을 위한 하나 이상의 추가의 파이프라인 스테이지들을 포함시켜, 추가적인 클록 사이클의 레이턴시를 초래하는 것이 유리할 수 있다. 추가적으로, 종속성 문제없이 채워진 더 긴 파이프라인을 유지하기 위해, 하나 이상의 행에 의해 계산된 셀들의 각각의 "스와스" 를 넓게 하는 것이 더 유리할 수 있다.
이 PD-HMM 계산은 통상의 pHMM 계산보다 2배 많은 상태 값들(M, I, 및 D에 추가하여, BM, BI, 및 BD)을 추적하고, 동등한 스루풋 엔진 실시예에 대한 하드웨어 리소스들의 약 2배를 요구할 수 있다. 그러나, PD-HMM 엔진은, 존재하거나 부재하는 결정되지 않은 변이들의 별개의 조합을 표현하는 각각의 단상형에 대해 한 번 실행되는 통상의 pHMM 엔진에 대해, 증가하는 수의 결정되지 않은 변이들에 대해 기하급수적 속도 및 효율적인 이점들을 갖는다. 예를 들어, 부분적으로 결정된 단상형이, 그 각각이 독립적으로 존재하거나 부재할 수 있는, 30개의 결정되지 않은 변이들을 갖는다면, 다른 경우라면 pHMM이 프로세싱할 필요가 있을 2^30, 또는 십억 개보다 많은 별개의 특정한 단상형이 존재한다.
따라서, 본 명세서에 개시된 이들 및 다른 그러한 연산들은 기준에 대하여 판독들이 변화하도록 피험자의 게놈에 무엇이 발생했는지를 더 잘 이해하고 정확하게 예측하도록 수행될 수 있다. 예를 들어, 비록 돌연변이들의 발생이 랜덤일 수 있지만, 그들의 발생의 우도는 어느 정도는 잠재적으로 예측가능한 것으로 보이는 경우들이 존재한다. 특정하게는, 일부 경우들에서, 돌연변이들이 발생할 때, 이들은 특정 정의된 위치들에서 그리고 특정 형태들로 발생할 수 있다. 더 특정하게는, 돌연변이들은, 이들이 발생한다면, 하나의 대립 유전자 또는 다른 것 또는 양쪽 모두 상에서 발생할 것이고, 예컨대 염색체들의 말단들에서, 다른 것들에 걸쳐 특정 로케이션들에서 발생하는 경향을 가질 것이다. 결과적으로, 이러한 및 다른 연관된 정보는 게놈의 하나 이상의 영역에서의 돌연변이의 가능성 있는 존재를 더 잘 평가하기 위해 생성되고 이용될 수 있는 돌연변이 모델들을 개발하는 데 사용될 수 있다. 예를 들어, 다양한 선험적 지식, 예를 들어, 하나 이상의 돌연변이 모델을 고려함으로써, 게놈 변이 분석을 수행할 때, 예컨대 유전 돌연변이의 더 정확한 경계들을 이용하여, 더 나은 그리고 더 정확한 게놈 분석 결과들이 획득될 수 있다.
그러한 돌연변이 모델들은 다양한 알려진 돌연변이들 및/또는 서로 함께 또는 달리 랜덤하지 않게 발생하는 것으로 보이는 돌연변이들의 빈도 및/또는 로케이션에 대한 설명을 제공할 수 있다. 예를 들어, 주어진 염색체의 말단들을 향하여 변형들이 더 주로 발생하는 것으로 결정되었다. 따라서, 공지된 모델의 돌연변이들이 생성되고, 여기서 데이터베이스에 저장되고, 분석되고 있는 게놈 데이터 내의 하나 이상의 변형의 존재에 대한 더 나은 예측을 하기 위해 시스템에 의해 사용될 수 있다. 추가적으로, 본 명세서에서 수행되는 분석들에 의해 유도된 다양한 결과 데이터를 분석하고, 예컨대 본 명세서에 개시된 머신 학습 원리들에 따라, 특정 변이 추출을 할 때에 관하여 시스템에 더 잘 통지하는 데 사용할 수 있도록 하기 위해, 아래에 본 명세서에 더 상세히 설명되는 바와 같은, 머신 학습 프로세스가 또한 구현될 수 있다. 구체적으로는, 머신 학습은 특히 결정된 변형들에 관하여 집합적 데이터 세트들에 대해 구현될 수 있고, 이 학습은 결국 더 정확한 변이 결정들을 행하기 위해 이용될 수 있는 더 포괄적인 돌연변이 모델들을 더 잘 생성하는 데 이용될 수 있다.
그러므로, 시스템은 모든 다양한 변형 데이터를 관찰하고, 다양한 상관들에 대해 그 데이터를 마이닝하도록 구성될 수 있고, 상관들이 발견되는 경우, 그러한 정보는 더 나은 가중치를 가중하고 따라서 예컨대 진행중 기준으로 다른 게놈 샘플들에서의 다른 변형들의 존재를 더 정확하게 결정하는 데 이용될 수 있다. 따라서, 이와 같은 방식으로, 시스템, 특히 변이 추출 메커니즘은, 더 나은 그리고 더 정확한 결과 데이터를 얻기 위해, 전방으로 이동하면서 더 나은 변이 추출들을 하기 위해 학습된 변이 상관 데이터에 관하여 끊임없이 업데이트될 수 있다.
구체적으로는, 시스템에서 더 나은 분석을 달성하기 위해 성장하는 돌연변이 모델을 업데이트하기 위해 원격측정이 이용될 수 있다. 이는, 예컨대 동일한 지리적 인구집단 내에 있는 것으로부터, 어떤 식으로든 서로 연결되어 있는 샘플들을 분석할 때 특정 유용할 수 있고/있거나, 다수의 기준 게놈 중 어느 기준 게놈이 특정한 샘플을 분석하는 데 이용되는 더 나은 기준 게놈일 수 있는지를 결정하는 데 이용될 수 있다. 게다가, 다양한 경우들에서, 돌연변이 모델 및/또는 원격 측정은 시스템 프로세스들에서 이용될 기준 게놈을 더 잘 선택하고, 그에 의해 시스템의 결과들의 정확도 및 효율을 향상시키기 위해 이용될 수 있다. 특정하게는, 복수의 기준 게놈이 본 명세서의 분석들 중 하나 이상에서 이용될 수 있는 경우, 가장 적절한 기준 게놈을 적용하기 위해 예컨대 돌연변이 모델을 적용함으로써 다른 것들에 대해 사용하기 위한 특정 기준 게놈이 선택될 수 있다.
유의해야 할 점은 2차 분석을 수행할 때, 매핑되고 정렬되는 게놈의 각각의 영역에 대한 기본 구조는 하나 이상의 기저의 유전자를 포함할 수 있다는 점이다. 따라서, 다양한 경우들에서, 기저의 유전자들 및/또는 이들이 코딩하는 단백질들의 기능들에 대한 이러한 이해는 2차 분석을 수행할 때 유익할 수 있다. 특정하게는, 3차 표시들 및/또는 결과들은, 예컨대 생물학적 컨텍스트적으로 민감한 돌연변이 모델의 프로세스에서, 본 시스템에 의해 실행되고 있는 2차 분석 프로토콜들에서 유용할 수 있다. 더 특정하게는, DNA가 유전자들을 코딩하고, 그 유전자들이 단백질을 코딩하므로, 돌연변이 및/또는 동떨어진 기능들을 초래하는 그러한 단백질에 대한 정보가, 피험자의 게놈에 대한 2차 및/또는 3차 분석의 수행에서 이용되는 돌연변이 모델들을 통지하는 데 사용될 수 있다.
예를 들어, 예컨대 돌연변이된 단백질들을 코딩하는 샘플 세트의 유전자들에 대한, 3차 분석은 그러한 돌연변이들을 코딩하는 것으로 알려진 게놈 영역들의 2차 분석을 수행할 때 유익할 수 있다. 그러므로, 위에 설명된 바와 같이, 본 명세서에 개시된 다양한 2차 분석 연산들을 수행할 때 더 나은 정확성 및 효율을 달성하기 위해 본 명세서에서 사용되는 돌연변이 모델들을 통지 및/또는 업데이트하기 위해 다양한 3차 프로세싱 결과들이 사용될 수 있다. 구체적으로는, 단백질들을 코딩하고/하거나 잠재적으로 그러한 돌연변이들을 포함하는 것으로 알려진 영역들의 2차 분석을 수행할 때, 돌연변이된 단백질들, 예를 들어, 컨텍스트적 3차 분석에 관한 정보가 돌연변이 모델을 업데이트하는 데 사용될 수 있다.
따라서, 위 내용을 고려하여, FPGA-가속 매핑, 정렬, 소팅, 및/또는 변이 추출 애플리케이션들을 수반하는 실시예들에 대해, 이들 함수 중 하나 이상은 소프트웨어 및 하드웨어(HW) 프로세싱 컴포넌트들 중 하나 또는 양쪽 모두, 예컨대 종래의 CPU, GPU, QPU 상에서 실행되는 소프트웨어, 및/또는 FPGA, ASIC, sASIC 등에서 구현될 수 있는 것과 같은 펌웨어에서 구현될 수 있다. 그러한 경우들에서, CPU 및 FPGA는 하나의 디바이스, 예를 들어, CPU 또는 FPGA 상의 하나의 단계로부터의 결과들을 다른 디바이스 상의 다음 단계에서 프로세싱되도록 전달하도록 통신할 수 있을 필요가 있다. 예를 들어, 매핑 함수가 실행되는 경우, 기준의 인덱스와 같은 큰 데이터 구조들의 구축은 CPU에 의해 구현될 수 있고, 여기서 그에 대한 해시 함수의 실행은 FPGA에 의해 구현될 수 있다. 그러한 경우에, CPU는 데이터 구조를 구축하여, 그것을 DRAM과 같은 연관된 메모리에 저장할 수 있고, 이 메모리는 그 후 FPGA 상에서 실행되는 프로세싱 엔진들에 의해 액세스될 수 있다.
예를 들어, 일부 실시예들에서, CPU와 FPGA 사이의 통신들은 PCIe 버스와 같은 주변 버스, USB, 또는 이더넷과 같은 네트워킹 인터페이스와 같은 임의의 적합한 인터커넥트에 의해 구현될 수 있다. 그러나, PCIe 버스는 CPU와 FPGA 사이의 비교적 느슨한 통합일 수 있으며, 그에 의해 그 둘 사이의 전송 레이턴시가 비교적 높을 수 있다. 따라서, 비록 하나의 디바이스(예를 들어, CPU 또는 FPGA)가 다른 디바이스에 부착된 메모리에 액세스할 수 있지만(예를 들어, DMA 전송에 의해) , 액세스된 메모리 영역(들)은 캐싱 가능하지 않은데, 그 이유는 2개의 디바이스 사이에 캐시 일관성을 유지하기 위한 시설이 없기 때문이다. 결과적으로, CPU와 FPGA 사이의 전송들이 큰, 하이-레벨 프로세싱 단계들 사이에서 발생하도록 제약되고, 많은 양의 입력 및 출력을 디바이스들 사이에 큐잉하여 이들이 높은 레이턴시 연산들을 기다리면서 서로 느리게 하지 않도록 해야 한다. 이는 본 명세서에 개시된 다양한 프로세싱 연산들을 느리게 한다. 더욱이, FPGA가 캐싱 가능하지 않은 CPU 메모리에 액세스할 때, 그러한 액세스의 전체 부하는 그의 내부 캐시 인터페이스들에 비해 대역폭 제한되는 CPU의 외부 메모리 인터페이스들에 부과된다.
따라서, 그러한 느슨한 CPU/FPGA 통합 때문에, 일반적으로 FPGA 인터페이스에 대해 "중앙집중식" 소프트웨어 제어를 가질 필요가 있다. 그러한 경우들에서, 다양한 소프트웨어 스레드들은 다양한 데이터 유닛들을 프로세싱하고 있을 수 있지만, 이들 스레드가 FPGA 엔진이 수행하기 위한 작업을 생성할 때, 작업은 "중앙" 버퍼들에 집성되어야 하며, 이는 예컨대 단일 집성기 소프트웨어 스레드에 의해, 또는 커널-공간 드라이버와 같은 중앙 소프트웨어 모듈에 의해 관리되는 DMA 패킷들을 통한 집성된 작업의 전송과 함께, 세마포어들을 통한 다중 스레드 로킹 집성 액세스에 의해 이루어진다. 그러므로, 결과들이 HW 엔진들에 의해 생성됨에 따라, 역방향 프로세스가 발생하여, 소프트웨어 드라이버가 HW로부터 DMA 패킷들을 수신하고, 및 집성해제기(de-aggregator) 스레드가 결과들을 다양한 대기하는 소프트웨어 워커 스레드들에 분배한다. 그러나, HW FPGA 로직과의 통신의 이러한 중앙집중식 소프트웨어 제어는 리소스 사용에서 번거롭고 고가이고, 소프트웨어 스레딩 및 HW/소프트웨어 통신의 효율을 감소시키고, 실제 HW/소프트웨어 통신 대역폭을 제한하고, 그것의 레이턴시를 극적으로 증가시킨다.
추가적으로, 도 33a와 관련하여 알 수 있는 바와 같이, CPU(1000)와 FPGA(7) 사이의 느슨한 통합은 각각의 디바이스가 DRAM들(1014, 14)과 같은 그 자신의 전용 외부 메모리를 갖도록 요구할 수 있다. 도 33a에 도시된 바와 같이, CPU(들)(1000)는 DDR3 또는 DDR4 DIMM들과 같은 시스템 마더보드 상의 그 자신의 DRAM(1014)을 갖고 있는 반면, FPGA(7)는 높은 레이턴시 PCIe 버스와 같은 하나 이상의 DDR3 버스(6)를 통해 FPGA(7)에 직접 연결될 수 있는, 4개의 8GB SODIMM과 같은 그 자신의 전용 DRAM들(14)을 갖는다. 마찬가지로, CPU(1000)는 예컨대 적합하게 구성된 버스(1006)에 의해 그 자신의 DRAM(1014)에 통신가능하게 결합될 수 있다. 위에 지적한 같이, FPGA(7)는 하나 이상의 프로세싱 엔진(13)을 포함하도록 구성될 수 있고, 이 프로세싱 엔진들은 본 명세서에 설명된 바와 같은 생물정보학 파이프라인에서 하나 이상의 함수를 수행하도록 구성될 수 있고, 예컨대 이 경우 FPGA(7)는 매핑 엔진(13a), 정렬 엔진(13b), 및 변이 추출 엔진(13c)을 포함한다. 본 명세서에 설명된 다른 엔진들이 또한 포함될 수 있다. 다양한 실시예들에서, CPU의 하나 또는 양쪽 모두는, 하나 이상의 메모리 및/또는 프로세싱 엔진과 같은, 시스템의 다양한 컴포넌트들 중 하나 이상에 의해 그에 전송되는 결과 데이터와 같은, 데이터를 저장할 수 있는 캐시(1014a, 14a)를 각각 포함하도록 구성될 수 있다.
게놈 프로세싱을 위해 FPGA(7)에 의해 수행될, 본 명세서에 개시된 연산들 중 다수는 기저의 연산들의 수행을 위해 큰 메모리 액세스를 요구한다. 구체적으로는, 관련된 큰 데이터 유닛들, 예를 들어 3+ 십억 개의 뉴클레오티드 기준 게놈, 서열분석기 판독 데이터의 100+ 십억 개의 뉴클레오티드 등으로 인해, FPGA(7)는, 예컨대 서열 분석된 DNA/RNA 쿼리로부터의 시드들을 3Gbp 기준 게놈에 매핑하고/하거나, 대조하여 정렬시킬, 예를 들어, 기준 게놈으로부터 후보 세그먼트들을 페칭할 목적으로, 30GB 해시 테이블 또는 다른 기준 게놈 인덱스와 같은 인덱스에 액세스하기 위해 많은 횟수 호스트 메모리(1014)에 액세스할 필요가 있을 수 있다.
따라서, 본 명세서에 개시된 시스템의 다양한 구현들에서, 예컨대 매핑, 정렬 및/또는 변이 추출 연산의 수행에서, 하나 이상의 하드와이어드 프로세싱 엔진(13)에 의해 다수의 빠른 랜덤 메모리 액세스들이 발생할 필요가 있을 수 있다. 그러나, FPGA(7)가 호스트 CPU(1000)에 부착된 메모리(1014)에 주변 버스(3) 또는 다른 네트워킹 링크를 통해 다수의 작은 랜덤 액세스를 수행하는 것은 엄청나게 비실용적일 수 있다. 예를 들어, 그러한 경우들에서, 반환 데이터의 레이턴시들은 매우 높을 수 있고, 버스 효율은 예를 들어 그러한 작은 랜덤 액세스들에 대해 매우 낮을 수 있고, CPU 외부 메모리 인터페이스(1006)에 대한 부담은 엄청나게 클 수 있다.
추가적으로, 각각의 디바이스의 그 자신의 전용 외부 메모리를 필요로 하는 결과로서, 전체 CPU(1000) + FPGA(7) 플랫폼의 전형적인 폼 팩터는 예를 들어 일부 애플리케이션들에 대해 바람직할 수 있는 것보다 더 크도록 강제된다. 그러한 경우들에서, 하나 이상의 CPU(1000) 및 지원 칩(7) 및 메모리들(1014 및/또는 14)에 대한 표준 시스템 마더보드에 추가하여, 큰 FPGA 패키지(이는 심지어 여러 외부 메모리 버스에 대한 충분한 핀을 갖도록 더 클 필요가 있을 수도 있다) 및 여러 메모리 모듈(1014, 14)을 위한 공간이 보드 상에 필요하다. 그러나, 표준 마더보드들은 이들 컴포넌트를 포함하지 않고 또한 이들을 위한 공간을 쉽게 갖지도 않을 것이므로, 실제 실시예는 FPGA(7), 그것의 메모리(14), 및 다른 지원 컴포넌트들, 예컨대 CPU 마더보드 상의 PCIe 확장 슬롯에 연결된, 전원을 포함하는, 확장 카드(2)를 활용하도록 구성될 수 있다. 확장 카드(2)를 위한 공간을 갖기 위해, 시스템은 1U 또는 2U 또는 더 큰 랙-마운트 서버와 같은 충분히 큰 섀시에 있도록 제조될 수 있다.
위 내용을 고려하여, 다양한 경우들에서, 도 33b와 관련하여 알 수 있는 바와 같이, 이들 요인을 극복하기 위해, CPU(1000)를 FPGA(7)와 타이트한 결합 배열에 있도록 구성하도록 적응하는 것이 바람직할 수 있다. 특정하게는, 다양한 경우들에서, FPGA(7)는 예컨대 퀵 패스 인터커넥트(QPI)와 같은, 저 레이턴시 인터커넥트(3)에 의해, CPU(1000)에 타이트하게 결합될 수 있다. 구체적으로는, 더 타이트한 CPU+FPGA 통합을 확립하기 위해, 2개의 디바이스는 임의의 적합한 낮은 레이턴시 인터페이스, 예컨대 INTELS® 퀵 패스 인터커넥트(QPI) 또는 하이퍼트랜스포트(HT)와 같은, "프로세서 인터커넥트" 또는 유사한 것에 의해 연결될 수 있다.
따라서, 도 33b와 관련하여 보이는 바와 같이, 시스템(1)이 제공되고 이 시스템은 CPU(1000)와 프로세서, 예컨대 FPGA(7) 양쪽 모두를 포함하고, 양쪽 디바이스들은 하나 이상의 메모리 모듈과 연관된다. 예를 들어, 도시된 바와 같이, CPU(1000)는 예컨대 적합하게 구성된 버스(1006)를 통해 DRAM(1014)에 결합될 수 있고, 마찬가지로, FPGA(7)는 DDR3 버스(6)를 통해 연관된 메모리(14)에 통신가능하게 결합된다. 그러나, 이 경우에, 예컨대 전형적인 높은 레이턴시 인터커넥트, 예를 들어, PCIe 인터페이스에 의해 서로 결합되는 대신에, CPU(1000)는 QPI와 같은 낮은 레이턴시, 하이퍼 트랜스포트 인터커넥트(3)에 의해 FPGA(7)에 결합된다. 그러한 경우에, 그러한 인터커넥트들의 고유한 낮은 레이턴시 속성으로 인해, CPU(1000) 및 FPGA(7)의 연관된 메모리들(1014, 14)은 서로 용이하게 액세스 가능하다. 추가적으로, 다양한 경우들에서, 이러한 타이트한 결합 구성으로 인해, 디바이스들과 연관된 하나 이상의 캐시(1114a/14a)는 서로에 대해 일관성 있도록 구성될 수 있다.
그러한 타이트하게 결합된 CPU/FPGA 인터커넥트의 일부 주요 특성들은 높은 대역폭, 예를 들어 12.8GB/s; 낮은 레이턴시, 예를 들어 100-300ns; 효율적인 원격 메모리 액세스들, 및 예를 들어, 대략 64 바이트 이하의 효율적인 작은 메모리 전송들을 허용하도록 설계된 적응된 프로토콜; 및 캐시 액세스 및 캐시 일관성을 위한 지원되는 프로토콜 및 CPU 통합을 포함한다. 그러한 경우들에서, 주어진 CPU(1000)와의 그러한 타이트한 통합을 위해 사용하기 위한 자연적 인터커넥트는 그의 네이티브 CPU-대-CPU 인터커넥트(1003)일 수 있으며, 이는 다수의 코어 및 다수의 CPU가 공유 메모리(1014) 공간에서 병렬로 동작하는 것을 가능하게 하기 위해 본 명세서에서 이용될 수 있고, 그에 의해 캐시 일관성 있는 방식으로 서로의 캐시 스택들 및 외부 메모리의 액세스를 허용한다.
따라서, 도 34a 및 도 34b와 관련하여 알 수 있는 바와 같이, 보드(2)가 제공되고, 예컨대 이 경우 보드는 예컨대 네이티브 CPU-CPU 인터커넥트들(1003a 및 1003b)과 같은 복수의 인터커넥트(1003)를 통해 하나 이상의 CPU(1000)를 수용하도록 구성될 수 있다. 그러나, 이 경우에, 도 34a에 도시된 바와 같이, 인터커넥트(1003b)를 통해 그와 결합되는 다른 CPU보다는, CPU(1000)가 인터커넥트(1003a)에 결합되도록 구성되고, 본 개시내용의 FPGA(7)가 그와 결합되도록 구성된다. 추가적으로, 시스템(1)은 CPU(1000)가 예컨대 낮은 레이턴시, 타이트한 결합 인터커넥트(3)에 의해, 연관된 FPGA(7)에 연결될 수 있도록 구성된다. 그러한 경우들에서, 각각의 디바이스들(1000, 7)과 연관된 각각의 메모리(1014, 14)는 예컨대 높은 대역폭, 캐시 일관성 있는 방식으로 서로 액세스 가능하도록 될 수 있다.
마찬가지로, 도 34b와 관련하여 알 수 있는 바와 같이, 시스템은 또한 패키지들(1002a 및/또는 1002b)을 수용하도록 구성될 수 있는데, 예컨대 이 경우 패키지들 각각은 낮은 예컨대 레이턴시 인터커넥트들(3a 및 3b)을 통해 하나 이상의 FPGA(7a, 7b)에 타이트하게 결합되는 하나 이상의 CPU(1000a, 1000b)를 포함하고, 예컨대 이 경우 시스템 아키텍처가 주어지면, 각각의 패키지(2a 및 2b)는 예컨대 타이트 결합 인터커넥트(3)를 서로 결합될 수 있다. 게다가, 도 35와 관련하여 알 수 있는 바와 같이, 다양한 경우들에서, 패키지(1002a)가 제공될 수 있고, 이 패키지(1002a)는 FPGA(7)와 같은 집적 회로와 밀접하게 결합되는 방식으로 제조된 CPU(1000)를 포함한다. 그러한 경우에, CPU(1000)와 FPGA(7)의 밀접한 결합 때문에, 시스템은 이들이 예컨대 그 안에 저장된 데이터와 관련하여, 일관되고, 일관성 있고, 어느 하나의 디바이스에 의해 쉽게 액세스 가능한 방식으로 캐시(1014a)를 직접 공유할 수 있도록 구성될 수 있다.
그러므로, 그러한 경우들에서, FPGA(7), 및 또는 패키지(2a/2b)는, 사실상, 다른 CPU로 가장할 수 있고, 그에 의해 마치 다수의 CPU가 멀티-소켓 마더보드(1002) 상에 있거나, 또는 다수의 CPU 코어가 멀티-코어 CPU 디바이스 내에 있는 것처럼, 하나 이상의 CPU와 캐시-일관성 있는 공유 메모리 환경에서 동작할 수 있다. 그러한 FPGA/CPU 인터커넥트를 이용하여, FPGA(7)는, 포함되거나 액세스될 수 있는 또는 그렇지 않을 수 있는, 그 자신의 전용 외부 메모리(14)를 갖기보다는, CPU 메모리(1014)를 효율적으로 공유할 수 있다.
따라서, 그러한 구성에서는, 빠른, 짧은, 랜덤 액세스들이, 예컨대 낮은 레이턴시로, 인터커넥트(3)에 의해 효율적으로 지원된다. 이는 FPGA(7) 내의 다양한 프로세싱 엔진들(13)이 CPU 메모리(1000) 내의 큰 데이터 구조들에 액세스하는 것을 실용적이고 효율적으로 만든다.
예를 들어, 도 37과 관련하여 알 수 있는 바와 같이, 본 명세서에 개시된 방법들 중 하나 이상을 수행하기 위한 시스템이 제공되며, 예컨대 이 경우 방법은 본 명세서에 설명된 바와 같은, 하나 이상의 매핑 및/또는 정렬 및/또는 변이 추출 함수와 같은, 본 개시내용의 함수들을 공유된 방식으로 수행하기 위한 하나 이상의 단계를 포함한다. 특정하게는, 하나의 단계(1)에서는, 예컨대 NGS 및/또는 CPU(1000)에 의해, 데이터 구조가 생성되거나 달리 제공될 수 있고, 이 데이터 구조는 그 후 DRAM(1014)과 같은 연관된 메모리(2)에 저장될 수 있다. 이 데이터 구조는, 예컨대 본 명세서에 설명된 것들과 관련한, 임의의 데이터 구조일 수 있지만, 이 경우에, 예컨대 매핑 및/또는 정렬 및/또는 변이 추출 함수들의 수행을 위한, 서열 분석된 데이터의 복수의 판독 및/또는 기준 게놈 및/또는 기준 게놈의 인덱스일 수 있다.
예컨대 매핑 및/또는 정렬 등의 함수들과 관련한, 제2 단계(2)에서는, 예컨대 타이트한 결합 인터페이스(3)에 의해 CPU(1000)와 연관된 FPGA(7)가, CPU 연관된 메모리(1014)에 액세스하여, 저장된 서열 분석된 판독들, 기준 게놈(들), 및/또는 그의 인덱스에 관하여 하나 이상의 액션을 수행할 수 있다. 특정하게는, 단계(3)에서, 예를 들어, 예시적인 매핑 연산에서, FPGA(7)는 데이터 구조, 예를 들어, 서열 분석된 판독들 및/또는 기준 서열들에 액세스하여, 그로부터 하나 이상의 시드를 생성할 수 있고, 예컨대 이 경우 데이터 구조는 하나 이상의 판독 및/또는 게놈 기준 서열을 포함한다. 그러한 경우에, 시드들, 예를 들어, 기준 및/또는 판독 서열들은 그에 대해 해시 함수를 수행하는 목적을 위해 이용될 수 있는데, 이는 예컨대 기준 게놈에 대해 하나 이상의 위치에 매핑된 하나 이상의 판독을 생성하기 위한 것이다.
추가 단계(3)에서는, 매핑된 결과 데이터가, 예를 들어, 호스트 메모리(1014)에 또는 연관된 DRAM(14)에 저장될 수 있다. 추가적으로, 일단 데이터가 매핑되면, FPGA(7), 또는 그의 프로세싱 엔진(13)은 정렬 엔진으로서 재구성, 예를 들어, 부분적으로 재구성될 수 있고, 그 후 정렬 엔진은 저장된 매핑된 데이터 구조에 액세스하여 그에 대해 정렬 함수를 수행하여, 기준 게놈에 정렬된 하나 이상의 판독을 생성할 수 있다. 추가적인 단계(4)에서, 호스트 CPU는 그 후 매핑 및/또는 정렬된 데이터에 액세스하여 그에 대해 하나 이상의 함수를 수행할 수 있는데, 이는 예컨대 드 브루인 그래프("DBG")의 생성을 위한 것이고, 그 후 DBG는 그것의 연관된 메모리에 저장될 수 있다. 마찬가지로, 하나 이상의 추가적인 단계에서, FPGA(7)는 다시 한 번 호스트 CPU 메모리(1014)에 액세스하여 DBG에 액세스하고 그에 대해 HMM 분석을 수행하여 하나 이상의 변이 추출 파일을 생성할 수 있다.
특정한 경우들에서, CPU(1000) 및/또는 FPGA(7)는 하나 이상의 메모리 캐시를 가질 수 있고, 이들은 2개의 디바이스 사이의 인터페이스의 타이트한 결합으로 인해, 별개의 캐시들이, 예컨대 그 안에 저장된 과도적 데이터, 예를 들어, 결과 데이터, 예컨대 본 명세서에서의 하나 이상의 함수의 수행으로부터의 결과들에 관련하여, 일관성 있게 할 것이다. 이와 같은 방식으로, 데이터는 타이트하게 결합된 디바이스들 사이에서 실질적으로 심리스하게 공유될 수 있고, 그에 의해 예컨대 생물정보학 파이프라인에서 함수들의 파이프라인이 함께 엮일 수 있게 한다. 따라서, 그러한 경우에, FPGA(7)가 부착된 그 자신의 전용 외부 메모리(14)를 갖는 것이 더 이상 필요하지 않을 수 있고, 그러므로, 그러한 타이트한 결합 구성으로 인해, 저장된 판독들, 기준 게놈, 및/또는 기준 게놈 인덱스는, 본 명세서에 설명된 바와 같이, 예컨대 판독 매핑 및 정렬, 및 다른 게놈 데이터 프로세싱 연산들을 위해, 예를 들어, 캐시 일관성 있는 방식으로 집중적으로 공유될 수 있다.
추가적으로, 도 38과 관련하여 알 수 있는 바와 같이, 낮은 레이턴시 및 캐시 일관성 구성들뿐만 아니라 본 명세서에서 논의된 다른 컴포넌트 구성들은, 예컨대 추가 프로세싱을 위해, 데이터 구조 또는 프로세싱 스레드(20)를 다른 디바이스에 다시 돌려주기 전에, 하나의 디바이스에서(예를 들어, CPU 또는 FPGA에서) 더 작은 하위 레벨 연산들이 수행될 수 있게 한다. 예를 들어, 하나의 경우에, CPU 스레드(20a)는 FPGA 하드웨어 로직(13)이 프로세싱할 많은 양의 작업을 큐잉하도록 구성될 수 있고, 동일한 또는 다른 스레드(20b)가 그 후, 예컨대 실질적으로 나중 시간에, 그에 의해 생성된 결과 데이터의 큰 큐를 프로세싱하도록 구성될 수 있다. 그러나, 다양한 경우들에서, 본 명세서에서 제시된 바와 같이, 단일 CPU 스레드(20)가 결합된 FPGA 하드웨어 엔진(13)에 차단 "함수 호출"을 하는 것이 더 효율적일 수 있고, 이 CPU는 FPGA의 하드웨어 기능이 완료되자마자 소프트웨어 실행을 재개하도록 설정될 수 있다. 그러므로, DMA(14)에 의해 FPGA(7)로 스트리밍하기 위해 패킷들에 데이터 구조들을 패키징하고, 그것들이 반환될 때 결과들을 패킹 해제하기보다는, 소프트웨어 스레드(20)는 단순히 메모리 포인터를 FPGA 엔진(13)에 제공할 수 있고, 이 엔진은 제자리에서, 캐시-일관성 있는 방식으로 공유 메모리(1014/14)에 액세스하여 그것을 수정할 수 있다.
특정하게는, 본 명세서에 제공된 구조들 사이의 관계가 주어지면, 소프트웨어/하드웨어 협력의 입도는 훨씬 더 미세할 수 있으며, 다양한 할당된 소프트웨어 스레드들(20)로부터의 함수 호출들과 같은, 훨씬 더 작은 하위 레벨의 연산들이 다양한 하드웨어 엔진들(13)에 의해 수행되도록 할당된다. 예를 들어, 느슨한 CPU/FPGA 인터커넥트 플랫폼에서는, DNA/RNA 판독 매핑, 정렬 및/또는 변이 추출의 효율적인 가속을 위해, 완전 매핑/정렬/변이 추출 파이프라인이 하나 이상의 소프트웨어 및/또는 FPGA 엔진으로서 구성될 수 있고, 매핑되지 않고 정렬되지 않은 판독들이 소프트웨어로부터 하드웨어로 스트리밍되고, 완전히 매핑되고 정렬된 판독들이 하드웨어로부터 다시 소프트웨어로 스트리밍되고, 여기서 예컨대 변이 추출을 위해 프로세스가 반복될 수 있다. 본 명세서에 설명된 구성들에 관련하여, 이는 매우 빠를 수 있다. 그러나, 다양한 경우들에서, 그러한 시스템은 유연성, 복잡성, 및/또는 프로그램 가능성의 제한들을 겪을 수 있는데, 그 이유는 전체 매핑/정렬 및/또는 변이 추출 파이프라인이 하드웨어 회로에서 구현되고, 이는 비록 FPGA에서 재구성가능하기는 하지만, 일반적으로 소프트웨어보다 유연성과 프로그램 가능성이 훨씬 덜하고, 따라서 덜 알고리즘적인 복잡성으로 제한될 수 있기 때문이다.
대조적으로, 본 명세서에 개시된 구성들에서 QPI 또는 다른 인터커넥트과 같은 타이트한 CPU/FPGA 인터커넥트를 이용하여, 시드 생성 및/또는 매핑, 레스큐 스캐닝, 갭이 없는 정렬, 갭이 있는, 예를 들어, 스미스-워터만, 정렬 등과 같은 여러 리소스 고가의 개별 연산들이 별개의 개별적으로 액세스 가능한 하드웨어 엔진들(13)로서 구현될 수 있고(예를 들어, 도 38 참조), 전체 매핑/정렬 및/또는 변이 추출 알고리즘들은 소프트웨어로 구현될 수 있고, 전체 매핑/정렬 및/또는 변이 추출 알고리즘들은, 특정 고가의 프로세싱 단계들에 대한 FPGA로의 로우-레벨 가속 호출들과 함께, 소프트웨어에서 구현될 수 있다. 이러한 프레임워크는 특정 가속 추출들을 제외하고는, 완전한 소프트웨어 프로그램 가능성을 허용하고, 표준 하드웨어 구현 연산들보다 더 큰 알고리즘적 복잡성 및 유연성을 가능하게 한다.
더욱이, 개별 로우-레벨 FPGA 하드웨어 가속 추출들에 의해 가속된 소프트웨어 실행의 그러한 프레임워크에서는, 하드웨어 가속 기능들이 다수의 목적을 위해 더 쉽게 공유될 수 있다. 예를 들어, 하드웨어 엔진들(13)이 큰 모놀리식 파이프라인들을 형성할 때, 개별 파이프라인 서브컴포넌트들은 일반적으로 그들의 환경에 맞추어 특수화될 수 있고, 타이트하게 결합되지 않는 한, 일반적으로 어떤 목적을 위해서도 액세스 가능하지 않을 수 있는, 하나의 파이프라인 내에서만 상호접속될 수 있다. 그러나, 스미스-워터만 정렬, 갭이 없는 정렬, 드 브루인 또는 조립 그래프 구성, 및 다른 그러한 연산들과 같은 많은 게놈 데이터 프로세싱 연산들은 다양한 상위 레벨의 부모 알고리즘들에서 사용될 수 있다. 예를 들어, 본 명세서에 설명된 바와 같이, 스미스-워터만 정렬은, 예컨대 기준 게놈에 관련하여, DNA/RNA 판독 매핑 및 정렬에서 사용될 수 있지만, 또한 단상형 기반 변이 추출기들에 의해, 예컨대 HMM 분석 및/또는 변이 추출 함수에서, 후보 단상형들을 기준 게놈에, 또는 서로, 또는 서열 분석된 판독들에 정렬시키는 데 사용되도록 구성될 수 있다. 그러므로, 일반적인 소프트웨어 함수 호출들을 통해 다양한 개별 로우-레벨 하드웨어 가속 함수들을 노출시키는 것은 동일한 가속 로직(예를 들어, 13)이 게놈 데이터 프로세싱 애플리케이션 전체에 걸쳐, 예컨대 정렬 및 변이 추출 양쪽 모두, 예를 들어, HMM 연산들의 수행에서 활용되는 것을 가능하게 할 수 있다.
또한 타이트한 CPU/FPGA 상호접속을 이용하여, 본 명세서에 설명된 다양한 FPGA 하드웨어 엔진들(13)과의 통신에 대해 중앙집중식보다는 분사된 CPU(1000) 소프트웨어 제어를 하는 것이 실용적이다. 멀티-스레드, 멀티-코어, 및 멀티-CPU 소프트웨어 설계의 광범위한 실시들에서, 많은 소프트웨어 스레드들 및 프로세스들은, 상호통신을 관리하기 위한 어떤 중앙 소프트웨어 모듈들, 드라이버들, 또는 스레드들도 없이, 심리스하게 통신하고 협력한다. 그러한 형식에서, 이는 모든 CPU들 내의 모든 코어들 내의 모든 스레드들에게 보이는, 캐시-일관성 있는 공유 메모리 때문에 실용적이다; 반면 코어들과 CPU들 사이의 물리적으로 일관성 있는 메모리 공유는 프로세서 인터커넥트, 예를 들어 QPI 또는 HT를 통한 상호통신에 의해 발생한다.
도 36 내지 도 38과 관련하여 알 수 있는 바와 같이, 유사한 방식으로, 본 명세서에 제공된 시스템들은 하나 또는 다수의 코어들 및/또는 CPU들(예를 들어, 1000a, 100b, 및 1000c) 상에서 실행되는 다수의 프로세스들, 및 다수의 스레드들(예컨대, 20a, b, c)을 포함하는 타이트한 CPU/FPGA 인터커넥트 구성에 있을 수 있는 다수의 CPU들 및/또는 FPGA들을 가질 수 있다. 이에 따라, 시스템 컴포넌트들은, 서로, 예를 들어, 다양한 CPU(들) 및/또는 FPGA 하드웨어 가속 엔진들 사이에, 예컨대 다양한 상이한 CPU(들)와 FPGA(들) 사이의 캐시-일관성 있는 메모리 공유의 사용에 의해, 분산된 방식으로 통신 및 협력하도록 구성된다. 예를 들어, 도 36과 관련하여 알 수 있는 바와 같이, 다수의 CPU 코어들(1000a, 1000b, 및 1000c)은 하나 이상의 메모리, 예를 들어, DRAM(1014), 및/또는 그와 연관된 하나 이상의 층, 예를 들어, L1, L2, L3 등, 또는 레벨들을 갖는 하나 이상의 캐시를 공유하는 방식으로 함께 결합될 수 있다. 마찬가지로, 도 38과 관련하여, 다른 실시예에서, 단일 CPU(1000)는 하나 이상의 메모리, 예를 들어 DRAM(1014), 및/또는 그와 연관된 하나 이상의 층 또는 레벨을 갖는 하나 이상의 캐시(1014a)를 공유하는 방식으로 함께 결합될 수 있는 다수의 코어(1000a, 1000b, 및 1000c)를 포함하도록 구성될 수 있다.
그러므로, 어느 한 실시예에서, 하나 이상의 CPU 코어(1000)로부터의 하나 이상의 소프트웨어 스레드(20)로부터, 예를 들어, FPGA의 하드웨어 엔진(13)으로, 또는 그 반대로 전달될 데이터는, 각각의 디바이스에게 보이는, 공유 메모리(1014), 또는 캐시 및/또는 그의 층에서 연속적으로 및/또는 심리스하게 업데이트될 수 있다. 추가적으로, 공유 메모리(1014) 내의 데이터를 프로세싱하기 위한 요청들, 또는 그 안에서 업데이트된 결과들의 통지는 소프트웨어 및/또는 하드웨어 사이에서, 예컨대 적합하게 구성된 버스, 예를 들어, DDR4 버스를 통해, 예컨대 공유 메모리 자체 내에서 구현될 수 있는 큐들에서 시그널링될 수 있다. 제어, 전송, 및 데이터 보호를 위한 표준 소프트웨어 메커니즘들, 예컨대 세마포어들, 뮤텍스들, 및 원자 정수들이 또한 소프트웨어/하드웨어 조정을 위해 유사하게 구현될 수 있다.
결과적으로, 일부 실시예들에서, 도 36에 예시된 바와 같이, 타이트한 CPU/FPGA 인터커넥트를 통한 캐시 일관성 있는 메모리 공유로 인해, FPGA(7)가 그 자신의 전용 메모리(14), 또는 다른 외부의 리소스들을 가질 필요가 없기 때문에, FPGA(7)를 확장 카드들의 사용 없이 종래의 CPU(1000) 마더보드들 내에 더 콤팩트하고 네이티브하게 패키징하는 것이 훨씬 더 실용적이 된다. 예를 들어, 도 34a 및 도 34b 및 도 35를 참조한다. 여러 패키징 대안이 이용 가능하다. 구체적으로는, FPGA(7)는, 예컨대 작은 PC 보드(2), 또는 CPU 소켓 패키지(2a) 내의 FPGA 다이의 대안적 와이어 본드 패키징과 같은 적합한 인터포저의 사용에 의해, 도 34a 및 34b에 도시된 바와 같이 CPU 소켓 내의 멀티-CPU 마더보드 상에 설치될 수 있고, 여기서 CPU 소켓 핀들은 FPGA 핀들에 적절하게 라우팅되고, 전력 및 접지 연결들, 프로세서 인터커넥트(3)(QPI, HT 등), 및 다른 시스템 연결들을 포함한다. 따라서, FPGA 다이 및 CPU 다이는 패키지(2a) 내에 만들어진 전력, 접지, 및 CPU/FPGA 인터커넥트를 포함하는 필요한 연결들과 동일한 멀티-칩 패키지(MCP)에 포함될 수 있다. 다이 간 연결들은 다이 간 와이어-본딩에 의해, 또는 공통 기판 또는 인터포저에 대한 연결에 의해, 또는 적층된 다이들 사이의 본딩된 패드들 또는 스루-실리콘 비아들에 의해 이루어질 수 있다.
추가적으로, 다양한 구현들에서, FPGA 및 CPU 코어들은 시스템-온-칩(SOC) 방법을 사용하여 단일 다이 상에 제조될 수 있다(도 35 기준). 이들 경우 중 임의의 것에서, 커스텀 로직(예를 들어, 17)이 FPGA(7) 내부에서 인스턴스화되어, 양쪽 모두가 CPU/FPGA 인터커넥트(3)를 통해, 예를 들어, 적절하게 전용 프로토콜들에 의해 통신하고, 내부 FPGA 엔진들(13)로부터의 메모리 액세스 요청들을 서비스하고, 변환하고, CPU/FPGA 인터커넥트(3)로, 적절한 프로토콜들을 통해, 공유 메모리(1014a)로 라우팅할 수 있다. 추가적으로, 이 로직의 일부 또는 전부는, 이 목적을 위해 FPGA 로직 면적을 다 사용해버리는 것을 피하기 위해, 커스텀 실리콘으로 경화될 수 있고, 예컨대 이 경우 경화된 로직은 CPU 다이, 및/또는 FPGA 다이, 또는 별개의 다이 상에 존재할 수 있다. 또한, 이들 경우 중 임의의 것에서, 전원 및 열 소산 요건들은, 예컨대 단일 패키지(MCP 또는 SOC) 내에서, 적절하게 달성될 수 있다. 게다가, FPGA 크기 및 CPU 코어 카운트는 안전한 전력 포락선 내에 머무르도록 선택될 수 있고/있거나, 동적 방법들(클록 주파수 관리, 클록 게이팅, 코어 디스에이블, 전력 아일랜드들 등)을 이용하여, 변화하는 CPU 및/또는 FPGA 계산 요구들에 따라 전력 소비를 조절할 수 있다.
이들 패키징 옵션 모두는 여러 이점들을 공유한다. 타이트하게 통합된 CPU/FPGA 플랫폼은 다양한 크기의 표준 마더보드 및/또는 시스템 섀시와 호환가능하게 된다. FPGA가 CPU 소켓 내의 인터포저를 통해 설치된다면(도 34a 및 도 34b 기준), 적어도 듀얼-소켓 마더보드(1002)가 이용될 수 있다. 다른 경우들에서, 3개의 CPU + 1개의 FPGA, 2개의 CPU + 2개의 FPGA, 또는 1개의 CPU + 3개의 FPGA 등의 구성이 구현되도록 허용하기 위해 쿼드-소켓 마더보드가 이용될 수 있다. 각각의 FPGA가 CPU(MCP 또는 SOC)와 동일한 칩 패키지 내에 존재한다면, 단일 소켓 마더보드가 이용될 수 있고, 잠재적으로 매우 작은 섀시 내에 있을 수 있다((비록 듀얼 소켓 마더보드가 도시되어 있지만); 이는 또한 매우 잘 상향 스케일링되는데(예를 들어, 4-소켓 서버 마더보드 상의 4개의 FPGA 및 4개의 멀티-코어 CPU), 그럼에도 불구하고, 1U 랙-마운트 서버와 같은 콤팩트한 섀시에서 동작할 수 있다.
따라서, 다양한 경우들에서, 따라서, CPU 및 FPGA 가속을 통합하기 위해 확장 카드가 설치될 필요가 없을 수 있는데, 그 이유는 FPGA(7)가 CPU 소켓(1003)에 통합될 수 있기 때문이다. 이러한 구현은 확장 카드의 추가의 공간 및 전력 요건들을 피하고, 비교적 낮은 신뢰성 컴포넌트들에 관련하여 확장 카드들이 때때로 갖는 다양한 추가적인 고장 포인트들을 피한다. 더욱이, 대량으로 제조되기 때문에 효율적이면서도 저비용인, 표준 CPU 냉각 솔루션들(히트 싱크들, 히트 파이프들, 및/또는 팬들)이 CPU 소켓들 내의 FPGA들 또는 CPU/FPGA 패키지들에 적용될 수 있는 반면, 확장 카드들을 위한 냉각은 고가이고 비효율적일 수 있다.
마찬가지로, FPGA/인터포저 및/또는 CPU/FPGA 패키지는 CPU 소켓의 전체 전원(예를 들어, 150W)을 포함할 수 있는 반면, 표준 확장 카드는 전력 제한될 수 있다(예를 들어, PCIe 버스로부터의 25W 또는 75W). 다양한 경우들에서, 게놈 데이터 프로세싱 애플리케이션들에 대해, 모든 이들 패키징 옵션은, 예컨대 DNA 서열분석기 내에, 타이트하게 통합된 CPU+FPGA 계산 플랫폼의 용이한 설치를 가능하게 할 수 있다. 예를 들어, 전형적인 현대의 "차세대" DNA 서열분석기들은 서열 분석 제어 및 데이터 취득을 위한 서열 분석 장치에 와이어링된, 표준 또는 커스텀 서버 마더보드를 포함하는 섀시 내의 서열 분석 장치(샘플 및 시약 저장, 유체 공학 튜빙 및 제어, 센서 어레이, 1차 이미지 및/또는 신호 프로세싱)를 포함한다. 본 명세서에 설명된 바와 같은, 타이트하게 통합된 CPU+FPGA 플랫폼은 그러한 서열분석기에서 예컨대 단순히 하나 이상의 FPGA/인터포저 및/또는 FPGA/CPU 패키지들을 그것의 기존 마더보드의 CPU 소켓들에 설치함으로써, 또는 대안적으로, 본 명세서에 개시된 바와 같이, 예를 들어, 타이트하게 결합된 CPU(들) 및 FPGA(들) 양쪽 모두를 갖는 새로운 마더보드를 설치함으로써 달성될 수 있다. 게다가, 이들 패키징 옵션 모두는 예컨대 매우 높은 신뢰성/이용가능성을 갖는 콤팩트한/조밀한 서버들을 포함하는 클라우드 액세스 가능 및/또는 데이터센터 서버 랙 내에 타이트하게 통합된 CPU+FPGA 플랫폼의 용이한 배치를 가능하게 하도록 구성될 수 있다.
그러므로, 본 명세서의 교시에 따라, DNA(또는 RNA) 서열 분석으로부터 매핑 및 정렬, 소팅 및/또는 중복제거, 변이 추출까지 데이터에 대한 많은 프로세싱 스테이지들이 있으며, 이는 이용되는 1차 및/또는 2차 및/또는 3차 프로세싱 기술들 및 그들의 애플리케이션들에 따라 달라질 수 있다. 그러한 프로세싱 단계들은 다음 중 하나 이상을 포함할 수 있다: 서열분석기로부터의 전기적 측정들에 대한 신호 프로세싱, 서열분석기로부터의 광학 측정들에 대한 이미지 프로세싱, 가장 가능성 있는 뉴클레오티드 서열 및 신뢰도 스코어들을 결정하기 위해 프로세싱된 신호 또는 이미지 데이터를 사용하는 염기 추출, 저품질 또는 다클론성 클러스터들을 갖는 서열 분석된 판독들의 필터링, 어댑터, 키 서열, 바코드, 및 저품질 판독 말단의 검출 및 트리밍뿐만 아니라 데노보 서열 조립, 드 브루인 그래프 및/또는 서열 그래프의 생성 및/또는 활용, 편집, 트리밍, 클린업, 수복, 채색, 주석, 비교, 변환, 분할, 스플라이싱, 분석, 서브그래프 선택, 횡단, 반복, 재귀, 검색, 필터링, 가져오기, 내보내기, 판독들을 기준 게놈에 매핑, 판독들을 기준 게놈 내의 후보 매핑 로케이션들에 정렬, 기준 영역에 매핑된 판독들의 로컬 조립, 정렬된 위치에 의한 판독들의 소팅, PCR 또는 광학적 중복을 포함한, 중복 판독들의 마킹 및/또는 제거, 삽입결실 일관성을 위한 다수의 중첩 판독들의 재정렬, 염기 품질 스코어 재측정, 변이 추출(단일 샘플 또는 공동), 구조적 변이 분석, 카피 번호 변이 분석, 체세포 변이 추출(예를 들어, 종양 샘플만, 매칭된 종양/정상, 또는 종양/매칭되지 않은 정상, 등), RNA 스플라이스 접합 검출, RNA 대안 스플라이싱 분석, RNA 전사체 조립, RNA 전사체 발현 분석, RNA 차등 발현 분석, RNA 변이 추출, DNA/RNA 차이 분석, DNA 메틸화 분석 및 추출, 변이 품질 스코어 재측정, 변이 필터링, 알려진 변이 데이터베이스로부터의 변형 주석, 샘플 오염 검출 및 평가, 표현형 예측, 질병 테스트, 치료 반응 예측, 맞춤 치료 설계, 혈통 및 돌연변이 이력 분석, 인구집단 DNA 분석, 유전 마커 식별, 게놈 데이터를 표준 형식 및/또는 압축 파일(예를 들어, FASTA, FASTQ, SAM, BAM, VCF, BCF)로 인코딩, 표준 형식으로부터 게놈 데이터를 디코딩, 게놈 데이터 서브세트들의 쿼리, 선택 또는 필터링, 게놈 파일들의 일반 압축 및 압축해제(gzip, BAM 압축), 게놈 데이터에 대한 특수화된 압축 및 압축해제(CRAM), 게놈 데이터 암호화 및 복호화, 게놈 데이터로부터의 통계 계산, 비교, 프레젠테이션, 게놈 결과 데이터 비교, 정확도 분석 및 보고, 게놈 파일 저장, 아카이브, 검색, 백업, 복구, 및 전송뿐만 아니라 게놈 데이터베이스 구성, 쿼리, 액세스 관리, 데이터 추출 등.
이들 연산 모두는 전통적인 계산 플랫폼들 상에서 구현될 때 상당히 느리고 고가일 수 있다. 그러한 배타적으로 소프트웨어 구현된 연산들의 나태성은 부분적으로 알고리즘들의 복잡성에 기인할 수 있지만, 전형적으로 데이터를 이동시키는 것과 관련하여 높은 레이턴시를 초래하는 매우 큰 입력 및 출력 데이터세트들로 인한 것이다. 본 명세서에 개시된 디바이스들 및 시스템들은, 부분적으로는 다양한 하드웨어 프로세싱 엔진들의 구성, 다양한 하드웨어 구현들에 의한 가속에 기인하는, 및/또는 부분적으로는 CPU/FPGA 타이트 결합 구성들에 기인하는 이들 문제들을 극복한다. 따라서, 도 39와 관련하여 알 수 있는 바와 같이, 하나 이상의, 예를 들어, 모든 이들 연산은 본 명세서에 설명된 바와 같이, CPU들(1000) 및 FPGA들(7)의 협력에 의해, 예컨대 분산 프로세싱 모델에서 가속화될 수 있다. 예를 들어, 일부 경우들(암호화, 일반 압축, 판독 매핑, 및/또는 정렬)에서, 전체 연산 함수는 커스텀 FPGA 로직에서 실질적으로 또는 전체적으로 구현될 수 있고(예컨대 하드웨어 설계 방법, 예를 들어, RTL에 의해), 예컨대 이 경우 CPU 소프트웨어는 주로 워커 스레드들(20)을 통해 프리프로세싱하기 위해 큰 데이터 패킷들을 컴파일하는, 예컨대 데이터를 하나 이상의 하드웨어 구현된 프로세싱 엔진들에 의해 프로세싱될 다양한 작업들로 집성하고, 다양한 데이터 입력들을, 예컨대 선입선출 형식으로 FPGA 엔진(들)(13) 중 하나 이상에 공급하고/하거나, 그로부터 결과들을 수신하는 기능을 제공한다.
예를 들어, 도 39와 관련하여 알 수 있는 바와 같이, 다양한 실시예들에서, 워커 스레드는, 예컨대 높은 대역폭, 낮은 레이턴시, 포인트 투 포인트 인터커넥트 프로토콜, 예를 들어 QPI 3을 통해, 예를 들어, DDR3을 통해 FPGA(7)로 전송하기 위한 준비로 큐잉되고/되거나 추가로 집성될 수 있는 더 큰 작업 패킷들로 컴파일 및/또는 스트리밍될 수 있는 작업 데이터의 다양한 패킷들을 생성한다. 특정한 경우들에서, 데이터는 FPGA로 전송되는 특정 데이터 세트들에 따라 버퍼링될 수 있다. 일단 패키징된 데이터가 FPGA(7)에 의해, 예컨대 캐시 일관성 있는 방식으로 수신되면, 그것은 프로세싱되어 하나 이상의 특수화된 클러스터(11)로 전송될 수 있고, 그에 의해 그것은 추가로 프로세싱 엔진들의 하나 이상의 세트로 보내지고 그에 의해 본 명세서에 설명된 파이프라인 연산들 중 하나 이상에 따라 프로세싱될 수 있다.
일단 프로세싱되면, 그 후 결과 데이터는 클러스터로 다시 전송될 수 있고, 포스트 프로세싱을 위해 점유된 타이트 결합 포인트 투 포인트 인터커넥트를 통해 CPU로 다시 전송되기 위해 큐잉될 수 있다. 특정 실시예들에서, 데이터는 포스트 프로세싱 전에 집성해제기 스레드에 전송될 수 있다. 일단 포스트 프로세싱이 발생하면, 데이터는 데이터를 기다리고 있을 수 있는 초기 워커 스레드(20)로 다시 전송될 수 있다. 그러한 분산 프로세싱은 위에 본 명세서에 개시된 함수들에 특히 유익하다. 특정하게는, 이들 함수는 그들의 알고리즘 복잡성(비록 매우 높은 순수 계산 부담을 갖지만)이 매우 제한되고, 그들 각각이 그들의 다양한 서브-연산들에 걸쳐 상당히 균일한 계산 비용을 갖도록 구성될 수 있다는 사실들에 의해 구별 가능하다.
그러나, 다양한 경우들에서, 큰 패킷들에서 데이터를 프로세싱하기보다는, 더 작은 서브-루틴들 또는 개별 함수 프로토콜들 또는 요소들이 수행될 수 있으며, 예컨대 그 데이터에 대해 그 파이프라인에 대한 전체 프로세싱 함수들을 수행하기보다는, 파이프라인의 하나 이상의 함수에 관한 것이 수행될 수 있다. 그러므로, 유용한 전략은 임의의 주어진 연산에서 하나 이상의 임계 계산-집약적 서브-함수들을 식별하고, 그 후, 그 서브-함수를 커스텀 FPGA 로직(하드웨어 가속)에서 구현하고(예컨대, 집약적 서브-함수(들)에 대해), 한편 연산의 균형, 및 이상적으로는 많은 또는 대부분의 알고리즘 복잡성은, 도 39와 관련하여, 본 명세서에 설명된 바와 같이, CPU들/GPU들/QPU들 상에서 실행할 소프트웨어에서 구현하는 것일 수 있다.
일반적으로, 많은 게놈 데이터 프로세싱 연산들에 대해, 알고리즘 복잡성의 작은 백분율이 전체 컴퓨팅 부하의 큰 백분율을 차지하는 것이 전형적이다. 예를 들어, 전형적인 예로서, 주어진 함수의 수행에 대한 알고리즘 복잡성의 20%가 계산 부하의 90%를 차지할 수 있는 반면, 알고리즘 복잡성의 나머지 80%가 계산 부하의 10%만을 차지할 수 있다. 그러므로, 다양한 경우들에서, 본 명세서에 설명된 시스템 컴포넌트들은, 하드웨어 설계에서 다루기 쉽고 유지 가능할 수 있고, 따라서 FPGA에서 이것을 실행하도록 구성될 수 있는 커스텀 FPGA 로직에서 매우 효율적으로 실행되도록, 높은, 예를 들어, 20% 이상의 복잡성 부분을 구현하도록 구성될 수 있다; 이는 결국 CPU 계산 부하를 90%만큼 연산 부하를 감소시킬 수 있고, 그에 의해 10x 전체 가속을 가능하게 한다. 다른 전형적인 예들은 훨씬 더 극단적일 수 있는데, 예컨대 이 경우 알고리즘 복잡성의 10%가 계산 부하의 98%를 차지할 수 있고, 그 경우 본 명세서에 설명된 바와 같이 FPGA 가속을 10% 복잡성 부분에 적용하는 것이 훨씬 더 용이해지지만, 또한 최대 50x 순 가속을 가능하게 할 수 있다. 극단적인 가속 프로세싱을 원하는 다양한 경우들에서, 이들 함수 중 하나 이상은 양자 프로세싱 유닛에 의해 수행될 수 있다.
그러나, 그러한 "단편적(piecemeal)" 또는 분산 프로세싱 가속 접근법들은, 느슨하게 통합된 CPU/GPU+FPGA 플랫폼 상에서보다는, 타이트하게 통합된 CPU/GPU+FPGA 플랫폼에서 구현될 때 더 실용적일 수 있다. 특정하게는, 느슨하게 통합된 플랫폼에서, FPGA 로직에서 구현될 부분, 예를 들어, 함수들은 FPGA 엔진(들)에 대한 입력 데이터의 크기를 최소화하고, FPGA 엔진(들)으로부터의 출력 데이터를, 예컨대 각각의 데이터 유닛들에 대해 최소화하도록 선택될 수 있고, 추가적으로 소프트웨어/하드웨어 경계를 높은 레이턴시들에 대해 내성을 유지하도록 구성될 수 있다. 그러한 경우들에서, 하드웨어 및 소프트웨어 부분들 사이의 경계는, 예를 들어, 느슨하게 통합된 플랫폼 상에서, 특정한 낮은 대역폭/높은 레이턴시 컷-포인트들을 통해 그려지도록 강제될 수 있고, 이 분할들은 다른 경우라면 알고리즘 복잡성 및 계산 부하들의 파티셔닝을 최적화할 때 바람직하지 않을 수 있다. 이는 종종, 하드웨어 부분의 경계들을 확대하여, 하드와이어드 형식으로 알고리즘 복잡성의 바람직하지 않게 큰 부분을 포함하거나, 하드웨어 부분의 경계들을 축소하여, 조밀한 계산 부분을 갖는 부분들을 바람직하지 않게 배제하는 결과를 야기할 수 있다.
대조적으로, 타이트하게 통합된 CPU/GPU+FPGA 플랫폼 상에서, 캐시-일관성 있는 공유 메모리 및 높은 대역폭/낮은 레이턴시 CPU/GPU/FPGA 인터커넥트로 인해, 게놈 데이터 프로세싱 연산의 낮은 복잡성/높은 계산 부하 부분들은 최적화된 소프트웨어/하드웨어 경계들과 함께, 커스텀 FPGA 로직에서의 구현을 위해 매우 정밀하게 선택될 수 있다(예를 들어, 본 명세서에 설명된 하드웨어 엔진(들)을 통해). 그러한 경우에, 비록 데이터 유닛이 원하는 소프트웨어/하드웨어 경계에서 큰 경우에도, 그것은 여전히 프로세싱을 위해 FPGA 하드웨어 엔진으로 효율적으로 핸드오프될 수 있는데, 이는 단지 그 특정한 데이터 유닛에 대한 포인터를 전달함으로써 가능하다. 특정하게는, 그러한 경우에, 도 33b에 따라, FPGA(7)의 하드웨어 엔진(13)은 DRAM(1014) 내에 저장된 데이터 유닛의 모든 요소에 액세스할 필요가 없을 수 있다; 오히려, 그것은 CPU/GPU 캐시에 의해 서비스되는 낮은 레이턴시 인터커넥트(3')를 통한 효율적인 작은 액세스들로, 예를 들어, 캐시(1014a) 내의, 필요한 요소들에 액세스할 수 있고, 그에 의해 전체 데이터 유닛이 도 33a에 따라, 느슨한 인터커넥트(3)를 통해, 예컨대 DRAM(1014)의 DMA에 의해 액세스되고/되거나 FPGA(7)로 전송되어야 하는 경우보다 더 적은 총 대역폭을 소비한다.
그러한 경우들에서, 하드웨어 엔진(13)은, 데이터 유닛의 전체 카피를 DMA에 의해 CPU/GPU 메모리로 스트리밍하지 않고, 프로세싱 결과들을 CPU/GPU 메모리(1014) 내의 제자리의 데이터 유닛에 주석할 수 있다.
비록 원하는 소프트웨어/하드웨어 경계가 소프트웨어 스레드(20)가 하드웨어 엔진(13)으로 높은 레이턴시, 비-차단 큐잉 핸드오프를 하기에 적절하지 않은 경우에도, 그것은 하드웨어 엔진이 완료될 때까지 짧은 레이턴시 동안 슬리핑하면서, 하드웨어 엔진(13)에 대한 차단 함수 호출을 잠재적으로 행할 수 있고, 그 레이턴시는, 도 33b에서와 같이, 캐시-일관성 있는 공유 메모리, 낮은 레이턴시/높은 대역폭 인터커넥트, 및 분산 소프트웨어/하드웨어 조정 모델에 의해 극적으로 감소된다.
특정한 경우들에서, 신호/이미지 프로세싱 및 염기 추출의 특정 알고리즘들 및 요건들이 서열분석기 기술마다 달라지기 때문에, 그리고 서열분석기의 센서로부터의 원시 데이터의 양이 전형적으로 엄청나기(gargantuan) 때문에(이는 신호/이미지 프로세싱 후에 막대한(enormous) 것으로 감소되고, 염기 추출 후에 단지 거대한(huge) 것으로 감소됨), 그러한 신호/이미지 프로세싱 및 염기 추출은 서열분석기 자체 내에서, 또는 서열분석기에 높은 대역폭 전송 채널에 의해 연결된 인근의 컴퓨팅 서버 상에서 효율적으로 수행될 수 있다. 그러나, DNA 서열분석기들은, 기존의 중앙 프로세싱 유닛("CPU") 및/또는 그래픽 프로세싱 유닛 "GPU" 기반 신호/이미지 프로세싱 및 염기 추출이, 개별적으로 그리고 단독으로 구현될 때, 작업에 점점 더 부적절해지도록, 무어의 법칙을 초과하는 증가율로 점점 더 높은 스루풋들을 달성하고 있었다. 그럼에도 불구하고, 타이트하게 통합된 CPU + FPGA 및/또는 GPU + FPGA 및/또는 GPU/CPU + FPGA 플랫폼이 콤팩트하고 그러한 서열분석기 내에, 예를 들어, 서열분석기의 마더보드 상에 위치된 CPU 및/또는 GPU 및/또는 FPGA 칩으로서 용이하게 인스턴스화되거나, 또는 서열분석기의 마더보드에 인접한 서버에, 또는 서열분석기로부터 원격으로 액세스 가능한 클라우드 기반 서버 시스템에 용이하게 설치되도록 구성될 수 있기 때문에, 그러한 서열분석기는 본 명세서에 설명된 커스텀 FPGA/ASIC 하드웨어 엔진들에 의해 제공되는 대규모 계산 가속을 제공하는 이상적인 플랫폼일 수 있다.
예를 들어, 본 명세서에 제공된 시스템은 가속된 CPU, GPU, 및/또는 FPGA; CPU + FPGA; GPU + FPGA; GPU/CPU + FPGA; QPU; CPU/QPU; GPU/QPU; CPU 및/또는 GPU 및/또는 QPU + FPGA 플랫폼에 의해 구현되도록 1차, 2차, 및/또는 3차 프로세싱, 또는 그의 부분들을 수행하도록 구성될 수 있다. 게다가, 예를 들어, 하나 이상의 FPGA 및/또는 QPU 하드웨어 엔진을 포함하는 그러한 가속된 플랫폼들은, 본 명세서에 설명된 바와 같이, 클라우드-기반 시스템들에서의 구현에 유용하다. 예를 들어, 신호/이미지 프로세싱, 염기 추출, 매핑, 정렬, 소팅, 중복제거, 및/또는 변이 추출 알고리즘들, 또는 그의 부분들은 일반적으로 많은 양의 부동 소수점 및/또는 고정 소수점 수학, 특히 가산 및 승산을 요구한다. 이들 함수는 또한 예컨대 양자 프로세싱 플랫폼에서 구현되도록 하나 이상의 양자 프로세싱 회로에 의해 수행되도록 구성될 수 있다.
특정하게는, 큰 최신 FPGA들/양자 회로들은 수천 개의 고속 승산 및 가산 리소스들을 포함한다. 더 특정하게는, 이들 회로는 그들 상에 또는 그들에 의해 구현될 수 있는 커스텀 엔진들을 포함할 수 있으며, 이 커스텀 엔진들은 단순한 일반 CPU들의 능력들을 훨씬 초과하는 레이트들로 병렬 산술 연산들을 수행하도록 구성될 수 있다. 마찬가지로, 단순한 GPU들은 더 비슷한 병렬 산술 리소스들을 가진다. 그러나, GPU들은 종종 그들이 완전히 활용되지 못하게 할 수 있는 곤란한 아키텍처 제한들 및 프로그래밍 제한들을 갖는다. 따라서, 이들 FPGA 및/또는 양자 프로세싱 및/또는 GPU 산술 리소스들은, 예컨대 본 명세서의 함수들을 실행하기 위해 필요한 계산들을 수행하기 위해, 거의 100% 효율로 정확히 설계된 방식으로 연산하도록 설계에 의해 와이어링되거나 달리 구성될 수 있다. 따라서, GPU 카드들은 타이트하게 통합된 CPU 및/또는 FPGA를 갖는 마더보드 상의 확장 슬롯들에 추가될 수 있고, 그에 의해 모든 3개의 프로세서 유형들이 협력할 수 있게 한다(비록 GPU는 여전히 그 자신의 제한들 및 느슨한 통합의 제한들 모두와 협력할 수 있지만).
더 특정하게는, 다양한 경우들에서, 그래픽 프로세싱 유닛(GPU)들과 관련하여, GPU는, 전체적으로 또는 부분적으로, 그 함수를 수행하기 위해 필요한 기저 계산들의 프로세싱 속도를 가속하기 위해, 본 명세서 설명된 바와 같은, 함수들 중 하나 이상을 구현하도록 구성될 수 있다. 더 특정하게는, GPU는 매핑, 정렬, 소팅, 중복제거 및/또는 변이 추출 프로토콜에서 하나 이상의 작업들을 수행하여, 예컨대 계산들 중 하나 이상, 예를 들어, 그 안에 관련된 가산들 및 승산들과 같은, 많은 양의 부동 소수점 및/또는 고정 소수점 수학을 가속하여, 서버의 CPU 및/또는 FPGA와 함께 작업하여 애플리케이션 및/또는 프로세싱 수행을 가속하고 그러한 함수들을 수행하기 위해 요구되는 계산 사이클들을 단축하도록 구성된다. GPU/CPU/FPGA 카드들을 갖는, 본 명세서에 설명된 바와 같은, 클라우드 서버들은 계산 집약적 작업들을 쉽게 프로세싱하고 가상화를 위해 활용될 때 더 원활한 사용자 경험을 전달하도록 구성될 수 있다. 그러한 계산 집약적 작업들은 또한 예컨대 양자 프로세싱 유닛에 의해 수행되도록 클라우드에 오프로딩될 수 있다.
따라서, 공유 메모리 플랫폼을 갖는 타이트하게 통합된 CPU+FPGA 또는 GPU+FPGA 및/또는 CPU/GPU/FPGA가 예컨대 신호/이미지 프로세싱, 염기 추출, 매핑, 정렬, 소팅, 중복제거, 및/또는 변이 추출 함수들을 위해, 서열분석기 내에서 이용되거나, 클라우드 기반 서버에 부착된다면, 증분적 개발 프로세스에서와 같이 달성된 이점이 있을 수 있다. 예를 들어, 초기에, 염기 추출, 매핑, 정렬, 소팅, 중복제거, 및/또는 변이 추출을 위한 동적 프로그래밍 함수와 같은 계산 부하의 제한된 부분이 하나 이상의 FPGA 엔진에서 구현될 수 있는 반면, 다른 작업은 CPU 및/또는 GPU 확장 카드에서 행해질 수 있다. 그러나, 본 명세서에서 제시된, 타이트한 CPU/GPU/FPGA 통합 및 공유 메모리 모델은 나중에, GPU, FPGA, 및/또는 양자 가속을 위한 추가적인 계산 집약적 함수들을 증분적으로 선택하는 것을 용이하게 하기 위해 추가로 구성될 수 있고, 이는 그 후 프로세싱 엔진들로서 구현될 수 있고, 다양한 이들의 함수는 실행을 위해 FPGA(들)로 오프로딩될 수 있고/있거나 일부 경우들에서는, 예를 들어, QPU에 의한 수행을 위해, 클라우드 상에 오프로딩될 수 있고, 그에 의해 신호/이미지/염기 추출/매핑/정렬/변이 프로세스를 가속시킬 수 있다. 그러한 증분적 진행들은 다양한 1차 및/또는 2차 및/또는 3차 프로세싱 기술들의 증가하는 스루풋에 뒤처지지 않기 위해 필요에 따라 구현될 수 있다.
그러므로, 예를 들어, 기준 게놈에 대한 하나 이상의 판독뿐만 아니라, 소팅, 중복제거, 및/또는 변이 추출의 판독 매핑 및 정렬은 그러한 GPU 및/또는 FPGA 및/또는 QPU 가속의 도움을 받을 수 있다. 구체적으로는, 매핑 및 정렬 및/또는 변이 추출, 또는 그것의 부분들은 부분적으로 또는 전체적으로 커스텀 FPGA 로직으로서 구현될 수 있는데, 예컨대 "매핑 및/또는 정렬 및/또는 변이 추출될" 판독들이 CPU/GPU 메모리로부터 FPGA 매핑/정렬/변이 추출 엔진들로 스트리밍되고, 매핑 및/또는 정렬 및/또는 변이 추출된 판독 레코드들이 다시 밖으로 스트리밍되고, 이는 예컨대 소팅 및/또는 변이 추출의 수행에서, 추가로 다시 온-보드로 스트리밍될 수 있다. 이러한 유형의 FPGA 가속은 느슨하게 통합된 CPU/GPU+FPGA 플랫폼에서 작용하고, 본 명세서에 설명된 구성들에서는 극히 빠를 수 있다. 그럼에도 불구하고, 타이트하게 통합된 CPU/GPU/QPU + FPGA 플랫폼으로 이동함으로써 얻어질 수 있는 일부 추가적인 이점들이 있다.
따라서, 매핑 및 정렬 및 변이 추출과 관련하여, 일부 실시예들에서, 본 명세서에 설명된 바와 같은, 타이트하게 통합된 CPU/GPU+FPGA 및/또는 양자 프로세싱 플랫폼의 공유된 이점은, 매핑/정렬/변이 추출 가속, 예를 들어, 하드웨어 가속이 시드 생성 및/또는 매핑, 시드 체인 형성, 쌍 말단 레스큐 스캐닝, 갭이 없는 정렬, 및 갭이 있는 정렬(스미스-워터만 또는 니들만-분쉬), 드 브루인 그래프 형성, HMM 계산의 수행과 같은 여러 개별 계산 집약적 연산들로 효율적으로 분할될 수 있다는 것이고, 예컨대 이 경우 CPU 및/또는 GPU 및/또는 양자 컴퓨팅 소프트웨어는 더 가벼운(그러나 반드시 덜 복잡하지는 않은) 작업들을 수행하고, 필요에 따라 개별 하드웨어 및/또는 다른 양자 컴퓨팅 엔진들에 대한 가속 호출들을 행할 수 있다. 그러한 모델은, 예를 들어, 단계들과 높은 레이턴시들 사이에서 앞뒤로 전송하기 위한 많은 양의 데이터로 인해, 전형적인 느슨하게 통합된 CPU/GPU+FPGA 플랫폼에서 덜 효율적일 수 있지만, 캐시-일관성 있는 공유 메모리, 높은 대역폭/낮은 레이턴시 인터커넥트, 및 분산 소프트웨어/하드웨어 조정 모델을 갖는 타이트하게 통합된 CPU+FPGA, GPU + FPGA, 및/또는 양자 컴퓨팅 플랫폼에서는 더 효율적일 수 있다. 추가적으로, 예컨대 변이 추출과 관련하여, 비터비 및 포워드 알고리즘들을 포함하는 은닉 마르코프 모델(HMM) 및/또는 동적 프로그래밍(DP) 알고리즘들 양쪽 모두가, 예컨대 본 명세서에 설명된 FPGA들 및 양자 회로들의 병렬 셀룰러 레이아웃에 적합하도록 하는 구성에서, 관찰된 센서 측정들을 설명하는 가장 가능성 있는 원래의 서열을 계산하기 위해, 염기 추출/매핑/정렬/소팅/중복제거 연산과 연관하여 구현될 수 있다.
구체적으로는, 분산 프로세싱 구성에서 하드웨어 및/또는 소프트웨어 리소스들의 효율적인 이용은 하드웨어 및/또는 양자 컴퓨팅 가속을 개별 계산 집약적 함수들로 변형시킨 결과로 생길 수 있다. 그러한 경우들에서, 본 명세서에 개시된 함수들 중 여러 개는 모놀리식 순수-하드웨어 엔진에서 덜 계산 집약적이도록 수행될 수 있지만, 그럼에도 불구하고, 여전히 알고리즘적으로 복잡할 수 있고, 따라서 많은 양의 물리적 FPGA 리소스들(룩업 테이블들, 플립-플롭들, 블록-RAM들 등)을 소비할 수 있다. 그러한 경우들에서, 다양한 개별 함수들의 일부 또는 전부를 소프트웨어로 이동시키는 것은, 상당한 양의 FPGA 영역을 포기하는 대가로, 이용 가능한 CPU 사이클들을 차지할 수 있다. 이들 경우 중 특정한 것에서, 자유로워진 FPGA 영역은 계산 집약적 매핑/정렬/변이 추출 서브-함수들에 대한 더 큰 병렬성을 확립하고, 따라서 가속을 증가시키고, 또는 다른 게놈 가속 함수들을 위해 사용될 수 있다. 그러한 이점들은 또한 양자 컴퓨팅 플랫폼에 의한 구현을 위해 하나 이상의 전용 양자 회로에 계산 집약적 함수들을 구현함으로써 달성될 수 있다.
그러므로, 다양한 실시예들에서, 본 명세서에 개시된 하나 이상의 함수의 알고리즘 복잡성은 순수 하드웨어 또는 순수 양자 컴퓨팅 구현에서 구성됨으로써 다소 감소될 수 있다. 그러나, 쌍-말단 판독들에 대한 후보 정렬들의 쌍들을 비교하고/하거나, 미묘한 매핑 품질(MAPQ) 추정들을 수행하는 것과 같은 일부 연산들은 매우 낮은 계산 부하들을 나타내고, 따라서 CPU/GPU 및/또는 양자 컴퓨팅 소프트웨어에서 더 복잡하고 정확한 프로세싱으로부터 이익을 얻을 수 있다. 그러므로, 일반적으로, 하드웨어 프로세싱을 특정 계산 집약적 연산들로 변형시키는 것은 CPU/GPU 부분들에서 더 복잡하고 정확한 알고리즘들이 이용되는 것을 허용할 것이다.
더욱이, 다양한 실시예들에서, 본 명세서에 개시된 매핑/정렬/소팅/중복제거/변이 추출 연산들의 전체 또는 일부는, 더 알고리즘적으로 복잡한 계산들이 하드웨어에서 하이 레벨들에서 및/또는 하나 이상의 양자 회로를 통해 이용될 수 있는 방식으로 구성될 수 있고, 예컨대 이 경우 호출된 계산 집약적 하드웨어 및/또는 양자 함수들은 동적 또는 반복적 순서로 수행되도록 구성될 수 있다. 특정하게는, 모놀리식 순수-하드웨어/양자 프로세싱 설계는 선형 파이프라인으로서 더 효율적으로 기능하는 방식으로 구현될 수 있다. 예를 들어, 프로세싱 동안 하나의 스미스-워터만 정렬이 스코어링 대역을 빠져나가는 진정한 정렬 경로, 예를 들어, 위에 설명된 바와 같은 스와스의 증거를 표시한다면, 이를 정정하기 위해 다른 스미스-워터만 정렬이 호출될 수 있다. 그러므로, 이들 구성은 본질적으로 FPGA 하드웨어/양자 가속을 절차적 추상화의 형태와 같은 개별 함수들로 변형시킬 수 있으며, 이는 더 높은 레벨 복잡성이 그것의 상부에 쉽게 구축될 수 있게 할 것이다.
추가적으로, 다양한 경우들에서, 매핑/정렬/변이 추출 알고리즘들 및 그의 특징들 내의 유연성은 하드웨어 및/또는 양자 가속을 개별 계산 집약적 함수들로 변형시키고, CPU 및/또는 GPU의 소프트웨어에서 다른, 예를 들어, 덜 집약적인 부분들을 수행하도록 시스템을 구성함으로써 개선될 수 있다. 예를 들어, 비록 하드웨어 알고리즘들이 FPGA들에서 수정되고 재구성될 수 있지만, 일반적으로, 예를 들어, 펌웨어를 통한, 하드웨어 설계들에 대한 그러한 변경들은 소프트웨어 코드에 대한 유사한 변경들보다 여러 배 많은 설계 노력을 요구할 수 있다. 그러한 경우들에서, 비교적 잘 정의되어 있는, 시드 체인 형성, 쌍 말단 레스큐 스캐닝들, 갭이 없는 정렬, 갭이 있는 정렬, 및 HMM과 같은, 매핑 및 정렬 및 소팅 및 중복제거, 및/또는 변이 추출의 계산 집약적 부분들은 따라서 안정적인 함수들이고 빈번한 알고리즘 변경들을 필요로 하지 않는다. 따라서, 이들 함수는 하드웨어에서 적합하게 최적화될 수 있는 반면, CPU/GPU 소프트웨어에 의해 실행될 수 있는 다른 함수들은 소프트웨어에서 상당히 더 용이한 알고리즘들의 증분적 개선을 위해 더 적절하다. 그러나, 일단 완전히 개발되면 하드웨어에서 구현될 수 있다. 이들 함수 중 하나 이상은 또한 양자 프로세싱 머신의 하나 이상의 양자 회로에서 구현되도록 구성될 수 있다.
따라서, 다양한 경우들에서, 변이 추출(DNA 또는 RNA, 단일 샘플 또는 공동, 생식세포 또는 체세포 등과 관련한)도 또한 FPGA 및/또는 양자 가속으로부터, 예를 들어 그것의 다양한 계산 집약적 함수들과 관련하여 이익을 얻을 수 있다. 예를 들어, 위에 설명된 바와 같이, 잠재적 변이 주위의 윈도우 내에 제공되는 컨텍스트로부터 유도된 증거에 대한 염기들을 추출하는 단상형 기반 추출기들은 종종 가장 계산 집약적인 연산이다. 이들 연산들은 후보 단상형(예를 들어, 문제의 게놈 좌위에서 샘플링된 가닥들 중 적어도 하나의 진정한 서열의 이론을 표현하는 단일-가닥 뉴클레오티드 서열)을 각각의 서열 판독에 비교하여, 예컨대, 단상형의 진실을 고려하여 판독을 관찰하는 조건부 확률을 추정하는 것을 포함한다.
그러한 연산은 MRJD, 쌍 은닉 마르코프 모델(쌍-HMM), 및/또는 동적 프로그래밍 알고리즘에 의해 서열 분석 또는 샘플 준비(PCR, 등)에서 오류들의 가능한 조합들의 확률들을 합산하는 쌍-결정된 은닉 마르코프 모델(PD-HMM) 계산 중 하나 이상을 통해 수행될 수 있다. 그러므로, 그에 대하여, 시스템은 쌍-HMM 또는 PD-HMM 계산이 하나 이상의, 예를 들어, 병렬, FPGA 하드웨어 또는 양자 프로세싱 엔진들에 의해 가속될 수 있도록 구성될 수 있는 반면, CPU/GPU/QPU 소프트웨어는 느슨하게 통합된 또는 타이트하게 통합된 CPU+FPGA, 또는 GPU+FPGA 및/또는 CPU 및/또는 GPU+FPGA 및/또는 QPU 플랫폼 중 어느 하나에서 부모 단상형 기반 변이 추출 알고리즘의 나머지를 실행하도록 구성될 수 있다. 예를 들어, 느슨한 통합에서, 소프트웨어 스레드들은 선택된 활성 영역(기준 게놈의 윈도우 또는 인접 서브세트)과 중첩하는 판독들로부터 드 브루인 및/또는 조립 그래프를 구성하고 준비하고, 그래프로부터 후보 단상형들을 추출하고, 예컨대 쌍-HMM 또는 PD-HMM 비교를 위해, FPGA 하드웨어 엔진들로 DMA 전송을 위해 단상형-판독 쌍들을 큐잉할 수 있다. 그 후, 동일한 또는 다른 소프트웨어 스레드들이 큐잉되고 FPGA로부터 CPU/GPU 메모리로 다시 DMA-전송된 쌍-HMM 결과들을 수신하고, 최종 변이 추출들을 행하기 위해 유전형 및 베이지안 확률 계산들을 수행할 수 있다. 물론, 이들 함수 중 하나 이상은 하나 이상의 양자 컴퓨팅 플랫폼 상에서 실행되도록 구성될 수 있다.
예를 들어, 도 38과 관련하여 알 수 있는 바와 같이, CPU/GPU(1000)는 각각이 연관된 DRAM(1014)에 액세스할 수 있는, 하나 이상의, 예를 들어, 복수의 스레드(20a, 20b, 및 20c)를 포함할 수 있고, DRAM은 작업 공간(1014a, 1014b, 및 1014c)을 갖고, 그 안에서 각각의 스레드(20a, 20b, 및 20c)가 각각 액세스하여, 큰 데이터 구조들과 같은 하나 이상의 데이터 구조에 대해 하나 이상의 연산을 수행할 수 있다. 이들 메모리 부분들 및 이들의 데이터 구조들은, 예컨대 각각의 캐시 부분들(1014a')을 통해, 예컨대 FPGA(7)의 하나 이상의 프로세싱 엔진(13a, 13b, 13c)에 의해 액세스될 수 있고, 이 프로세싱 엔진들은 예컨대 매핑, 정렬, 소팅, 및/또는 변이 추출을 위해, 본 명세서에 설명된 연산들 중 하나 이상의 수행에서, 참조된 데이터 구조들에 액세스할 수 있다. 높은 대역폭, 타이트한 결합 인터커넥트(3) 때문에, 데이터 구조들에 관한 그리고/또는 프로세싱 결과들에 관련된 데이터는 CPU 및/또는 GPU 및/또는 QPU 및/또는 연관된 FPGA 사이에 실질적으로 심리스하게, 예컨대 캐시 일관성 있는 방식으로 공유되어, 프로세싱 효율을 최적화할 수 있다.
따라서, 일 양태에서, 본 명세서에 개시된 바와 같이, 시스템이 제공될 수 있고 이 시스템은 그것의 컴포넌트 부분들 사이에, 예컨대 CPU 및/또는 GPU 및/또는 QPU에 의해 실행되는 것과 같은 소프트웨어를 통해 일부 계산 작업들 또는 서브-함수들을 수행하고, 예컨대 FPGA 및/또는 ASIC 또는 구조화된 ASIC와 같은 연관된 칩의 하드웨어를 통해, 다른 계산 작업들 또는 서브 함수들을 수행하는 것과 관련하여, 메모리 리소스들을 공유하도록 구성된다. 이는 다수의 상이한 방식으로, 예컨대 CPU/GPU/QPU와 칩, 예를 들어, FPGA 사이의 직접적인 느슨한 또는 타이트한 결합에 의해 달성될 수 있다. 그러한 구성들은, CPU 및/또는 GPU 및/또는 QPU 및 집적 회로 양쪽 모두에 의해 사용되고 액세스될 큰 함수들 또는 서브-함수들을 갖는, 본 명세서에 설명된 바와 같은 큰 데이터 구조들의 프로세싱에 관련된 연산들을 분배할 때 특히 유용할 수 있다. 특정하게는, 다양한 실시예들에서, 예컨대 전체 프로세싱 함수, 타이밍, 및 효율을 가속하기 위해, 본 명세서에 설명된 바와 같이, 게놈학 파이프라인을 통해 데이터를 프로세싱할 때, 다수의 상이한 연산이 데이터에 대해 실행될 수 있고, 이 연산들은 소프트웨어 및 하드웨어 프로세싱 컴포넌트들 양쪽 모두를 수반할 수 있다.
결과적으로, 데이터는 CPU 및/또는 GPU 및/또는 QPU 상에서 실행되는 소프트웨어 컴포넌트와 칩, 예를 들어 FPGA 또는 ASIC 내에 구현되는 하드웨어 컴포넌트 사이에, 공유되고/되거나 달리 전달될 필요가 있을 수 있다. 따라서, 프로세싱 파이프라인 내의 다양한 단계들 중 하나 이상, 또는 그 일부가 하나의 디바이스, 예를 들어, CPU/GPU/QPU에 의해 수행될 수 있고, 다양한 단계들 중 하나 이상은 다른 디바이스, 예를 들어, FPGA 또는 ASIC에 의해 수행될 수 있다. 그러한 경우에, CPU 및 FPGA는 그러한 데이터의 효율적인 전송을 허용하는 방식으로, 예컨대 포인트 투 포인트 인터커넥트에 의해 통신가능하게 결합될 필요가 있고, 이 결합은 메모리 리소스들의 공유 사용을 수반할 수 있다. 그러한 작업들의 분배 및 그러한 작업들의 수행을 위한 정보의 공유를 달성하기 위해, CPU 및/또는 GPU 및/또는 QPU는 서로 및/또는 FPGA, 또는 다른 칩셋에 느슨하게 또는 타이트하게 결합될 수 있고, 워크플로우 관리 시스템이 작업 부하를 효율적으로 분배하도록 포함될 수 있다.
그러므로, 특정한 실시예들에서, 게놈학 분석 플랫폼이 제공된다. 예를 들어, 이 플랫폼은 마더보드, 메모리, 및 예컨대 CPU/GPU/QPU, 매핑 모듈, 정렬 모듈, 소팅 모듈, 및/또는 변이 추출 모듈 중 하나 이상을 형성하는, 복수의 집적 회로를 포함할 수 있다. 구체적으로는, 특정한 실시예들에서, 이 플랫폼은 제1 집적 회로, 예컨대 중앙 프로세싱 유닛(CPU) 및/또는 그래픽 프로세싱 유닛(GPU)을 형성하는 집적 회로를 포함할 수 있고, 이 집적 회로는 본 명세서에 설명된 바와 같이, 게놈학 분석 함수들의 하나 이상의 세트를 수행하도록 CPU/GPU에 지시하도록 구성되는 하나 이상의 소프트웨어 알고리즘들에 응답하고, 예컨대 이 경우 CPU/GPU는 마더보드와 연결하기 위한 제1 세트의 물리적 전자 인터커넥트들을 포함한다. 다른 실시예들에서, 양자 프로세싱 유닛이 제공되며, 여기서 QPU는 본 명세서에 개시된 함수들 중 하나 이상을 수행하도록 구성되는 하나 이상의 양자 회로를 포함한다. 다양한 경우들에서, 메모리가 제공되며, 여기서 메모리는 또한 마더보드에 부착될 수 있고, 추가로, 예컨대 제1 세트의 물리적 전자 인터커넥트들 중 적어도 일부를 통해, CPU 및/또는 GPU 및/또는 QPU와 전자적으로 연결될 수 있다. 그러한 경우들에서, 메모리는 복수의 게놈 데이터의 판독, 및/또는 적어도 하나 이상의 유전 기준 서열, 및/또는 하나 이상의 유전 기준 서열의, 예를 들어, 해시 테이블과 같은, 인덱스를 저장하도록 구성될 수 있다.
추가적으로, 이 플랫폼은 하나 이상의 제2 집적 회로(들)를 포함할 수 있고, 예컨대 이 경우 각각의 제2 집적 회로는, 예컨대 포인트-투-포인트 인터커넥트 프로토콜을 통해, CPU 및 메모리와 연결하기 위한 제2 세트의 물리적 전자 인터커넥트들을 갖는 필드 프로그래머블 게이트 어레이(FPGA) 또는 ASIC, 또는 구조화된 ASIC를 형성한다. 그러한 경우에, FPGA(또는 구조화된 ASIC)는 제2 세트의 게놈학 분석 함수들, 예를 들어 매핑, 정렬, 소팅, 중복제거, 변이 추출, 예를 들어 HMM 함수 등을 수행하기 위해 복수의 물리적 인터커넥트들에 의해 상호접속되는 하드와이어드 디지털 로직 회로들의 세트를 구성하도록 펌웨어에 의해 프로그램 가능할 수 있다. 특정하게는, FPGA의 하드와이어드 디지털 로직 회로들은 게놈학 분석 플랫폼의 서열 분석 파이프라인에서 하나 이상의 미리 구성된 단계를 수행하기 위한 프로세싱 엔진들의 세트로서 배열될 수 있고, 예컨대 이 경우 이 세트(들)의 프로세싱 엔진들은 매핑 및/또는 정렬 및/또는 소팅 및/또는 중복제거 및/또는 변이 추출 모듈 중 하나 이상을 포함하고, 그 모듈들은 프로세싱 엔진들의 별개의 또는 동일한 서브세트들로 형성될 수 있다.
예를 들어, 변이 추출과 관련하여, 쌍-HMM 또는 PD-HMM 계산은 단상형 기반 변이 추출 프로토콜의 가장 계산-집약적 단계들 중 하나이다. 그러므로, 본 명세서에 설명된 바와 같이, 하나 이상의 FPGA 또는 양자 프로세싱 엔진에서 이 단계를 가속시킴으로써 변이 추출 속도가 크게 개선될 수 있다. 그러나, 도 38과 관련하여 보이는 바와 같이, 변이 추출, 또는 그의 일부의 더 큰 고속화를 달성하거나, CPU/GPU 부하 및 요구되는 CPU/GPU 코어들의 수를 감소시키기 위해, 또는 이들 양쪽 모두를 달성하기 위해, 추가적인 FPGA 및/또는 QP 엔진들에서 다른 계산-집약적 단계들을 가속시키는 데 추가적인 이점이 있을 수 있다.
FPGA 및/또는 양자 프로세싱 엔진들에 구현될 수 있는, 변이 추출에 관련한, 추가적인 계산-집약적 함수들은 다음을 포함한다: 추출가능 영역 검출 - 여기서 적절한 깊이 및/또는 품질의 정렬된 판독들에 의해 커버되는 기준 게놈 영역들이 프로세싱을 위해 선택된다; 활성 영역 검출 - 여기서 가능한 변이들의 사소하지 않은 증거를 갖는 기준 게놈 좌위가 식별되고, 이들 좌위 주위의 충분한 컨텍스트의 윈도우들이 추가 프로세싱을 위한 활성 영역들로서 선택된다; 드 브루인 또는 다른 조립 그래프 구성 - 여기서 활성 영역과 중첩하는 판독들 및/또는 그들 판독으로부터의 K-mer들이 그래프로 조립된다; 낮은-커버리지 또는 저품질 경로들을 트리밍하고, 댕글링 헤드 및 테일 경로들을 그래프 내의 기준 백본 상에 결합함으로써 이들을 수복하는 것, K-mer로부터 그래프의 서열 표현으로의 변환, 유사한 분기들을 병합하고 그래프를 달리 단순화하는 것과 같은, 조립 그래프 준비; 조립 그래프로부터 후보 단상형들을 추출하는 것; 그뿐만 아니라, 예를 들어, 각각의 단상형에 의해 표현되는 기준으로부터의 변이들(SNP들 및/또는 삽입결실들)을 결정하고, 그의 뉴클레오티드 위치들을 기준과 동기화시키기 위해, 예를 들어, 스미스-워터만 정렬에 의해, 기준 게놈에 후보 단상형들을 정렬시키는 것.
이들 함수 모두는 FPGA 내의 고성능 하드웨어 엔진들로서, 및/또는 양자 컴퓨팅 플랫폼의 하나 이상의 양자 회로에 의해 구현될 수 있다. 그러나, 변이 추출 소프트웨어 내의 많은 통합 포인트들로부터 그러한 다양한 하드웨어 가속 함수들을 호출하는 것은 느슨하게 결합된 CPU/GPU/QPU+FPGA 플랫폼 상에서 비효율적이 될 수 있고, 따라서 타이트하게 통합된 CPU/GPU/QPU+FPGA 플랫폼이 바람직할 수 있다. 예를 들어, 드 브루인 그래프, 또는 다른 조립 그래프로부터 단상형들을 구성하고, 준비하고, 추출하는 것과 같은 다양한 단계별 프로세싱 방법들은 타이트하게 통합된 CPU/GPU/QPU+FPGA 플랫폼으로부터 강력하게 이익을 얻을 수 있다. 추가적으로, 조립 그래프들은 크고 복잡한 데이터 구조들이고, 이들을 CPU 및/또는 GPU와 FPGA 사이에서 반복적으로 전달하는 것은 리소스 고가이고 상당한 가속을 억제할 수 있다.
그러므로, 타이트하게 통합된 CPU/GPU/QPU 및/또는 FPGA 플랫폼을 이용하는 그러한 그래프 프로세싱을 위한 이상적인 모델은 CPU 및/또는 GPU 및/또는 QPU 소프트웨어 및 FPGA 하드웨어 함수들에 의한 교대 프로세싱을 위해 캐시-일관성 있는 공유 메모리에 그러한 그래프들을 유지하는 것이다. 그러한 경우에, 주어진 그래프를 프로세싱하는 소프트웨어 스레드는 하드웨어 엔진에 의해 다양한 계산-집약적 그래프 프로세싱 단계들을 반복적으로 명령할 수 있고, 그 후 소프트웨어는 결과들을 검사하고, 도 39의 프로세스에서 예시된 바와 같이, 하드웨어 호출들 사이에 다음 단계들을 결정할 수 있다. 이 프로세싱 모델은 적합하게 구성된 워크플로우 관리 시스템에 의해 제어될 수 있고/있거나, 데이터 구조 API 또는 객체 지향 방법 인터페이스와 같은 소프트웨어 패러다임들에 대응하도록 구성될 수 있지만, 컴퓨팅 집약적 함수들은 커스텀 하드웨어 및/또는 양자 프로세싱 엔진들에 의해 가속되며, 이는 캐시-일관성 있는 공유 메모리 및/또는 높은 대역폭/낮은 레이턴시 CPU/GPU/QPU/FPGA 인터커넥트들을 갖는, 타이트하게 통합된 CPU 및/또는 GPU 및/또는 QPU+FPGA 플랫폼 상에 구현됨으로써 실용적이 된다.
따라서, 서열 분석된 판독들을 기준 게놈에 매핑 및 정렬시키는 것에 추가하여, 판독들은 "데노보(de novo)", 예를 들어, 기준 게놈 없이 조립될 수 있는데, 예컨대 이는 예를 들어, 파일업 내의 판독들 사이의 겉보기 중첩을 검출하는 것 - 여기서 이들은 완전히 또는 대부분 일치함 -, 및 이들을 더 긴 서열들, 콘틱들, 스캐폴드들, 또는 그래프들로 결합하는 것에 의해 이루어진다. 이 조립은 또한 로컬로, 예컨대 주어진 염색체 또는 그의 부분에 매핑하도록 결정된 모든 판독들을 사용하여 행해질 수 있다. 이러한 방식의 조립은 또한 기준 게놈 또는 하나의 세그먼트를 조립된 구조 내에 포함시킬 수 있다.
그러한 경우에, 완전히 일치하지 않는 판독 서열들을 함께 결합하는 복잡성으로 인해, 그래프 구조가 이용될 수 있고, 예컨대 이 경우 중첩하는 판독들이 하나의 세그먼트에서 단일 서열 상에서 일치하지만, 위에 설명된 바와 같이, 인접 세그먼트 내의 다수의 서열들로 분기될 수 있다. 따라서, 그러한 조립 그래프는 서열 그래프일 수 있으며, 여기서 각각의 에지 또는 노드는 연결된 에지들 또는 노드들에서의 서열들에 대해 인접하여 붙어있는 것으로 간주되는 하나의 뉴클레오티드 또는 뉴클레오티드들의 서열을 표현한다. 특정한 경우들에서, 그러한 조립 그래프는 k-mer 그래프일 수 있으며, 여기서 각각의 노드는 (전형적으로) 고정 길이 k의 k-mer 또는 뉴클레오티드 서열을 표현하고, 여기서 연결된 노드들은, 전형적으로 k-1 뉴클레오티드들에 의해 중첩되는, 더 긴 관찰된 서열들에서 서로 중첩되는 것으로 간주된다. 다양한 방법들에서, 하나 이상의 서열 그래프들과 k-mer 그래프들 사이에서 수행되는 하나 이상의 변환이 있을 수 있다.
비록 조립 그래프들이 단상형 기반 변이 추출에서 이용되고, 이용되는 그래프 프로세싱 방법들 중 일부가 유사하지만, 중요한 차이들이 있다. 데노보 조립 그래프들은 일반적으로 훨씬 더 크고, 더 긴 k-mer들을 이용한다. 변이-추출 조립 그래프들은 예컨대 사이클이 없고 기준 서열 백본을 따라 소스에서 싱크로 흐르는 것과 같이, 상당히 구조화되고 비교적 단순하도록 제약되는 반면, 데노보 조립 그래프들은 더 구조화되지 않고 복잡하게 되는 경향이 있으며, 사이클들, 댕글링 경로들, 및 다른 이상들이 허용될 뿐만 아니라 특수 분석을 겪을 수 있다. 때때로, 데노보 조립 그래프 채색이 이용되어, 노드들 및 에지들에 "컬러들"을 할당하고, 예를 들어, 그것들이 어느 생물학적 샘플로부터 온 것인지, 또는 기준 서열과 매칭하는지를 나타낸다. 그러므로, 더 광범위한 그래프 분석 및 프로세싱 함수들이, 데노보 조립 그래프들에 대해, 종종 반복적으로 또는 재귀적으로, 이용될 필요가 있고, 특히 데노보 조립 그래프들의 크기 및 복잡성으로 인해, 프로세싱 함수들은 극도로 계산 집약적인 경향이 있다.
그러므로, 위에 설명된 바와 같이, 타이트하게 통합된 CPU/GPU/QPU+FPGA 플랫폼 상에서의, 그러한 그래프 프로세싱을 위한 이상적인 모델은, CPU/GPU/QPU 소프트웨어와 FPGA 하드웨어 함수들 사이의 교대 프로세싱을 위해 캐시-일관성 있는 공유 메모리에 그러한 그래프들을 유지하는 것이다. 그러한 경우에, 주어진 그래프를 프로세싱하는 소프트웨어 스레드는 하드웨어 엔진에 의해 수행될 다양한 계산-집약적 그래프 프로세싱 단계들을 반복적으로 명령할 수 있고, 그 후 그 결과들을 검사하고, 그에 의해 예컨대 적합한 하드웨어 호출들을 행함으로써 하드웨어에 의해 수행될 다음 단계들을 결정할 수 있다. 위와 같이, 이 프로세싱 모델은, 캐시 일관성 있는 공유 메모리 및 높은 대역폭/낮은 대역폭 CPU/FPGA 인터커넥트를 갖는, 타이트하게 통합된 CPU+FPGA 플랫폼 상의 구현에 의해 크게 이익을 얻는다.
추가적으로, 아래에 본 명세서에 설명된 바와 같이, 3차 분석은 그래프 조립 및/또는 변이 추출을 따를 수 있는 게놈 프로세싱을 포함하는데, 이는 임상 응용에서, 본 명세서에 설명된 바와 같이, 변이 주석, 표현형 예측, 질병 검사, 및/또는 치료 반응 예측을 포함할 수 있다. 그러한 타이트하게 통합된 CPU/GPU/QPU+FPGA 플랫폼 상에서의 3차 분석을 수행하는 것이 유익한 이유는 그러한 플랫폼 구성이 매우 계산 집약적인, 1차 및/또는 2차 프로세싱의 효율적인 가속을 가능하게 하고, 편의성 및 감소된 회송 시간을 위해 그리고 큰 게놈 데이터 파일의 전송 및 카피를 최소화하기 위해, 동일한 플랫폼 상에서 3차 분석을 계속하는 것이 이상적이라는 것이다. 그러므로, 느슨하게 또는 타이트하게 통합된 CPU/GPU/QPU+FPGA 플랫폼이 양호한 선택이지만, 타이트하게 결합된 플랫폼은 추가적인 이점들을 포함할 수 있는데, 그 이유는 3차 분석 단계들 및 방법들이 애플리케이션마다 크게 달라지고, 계산-집약적인 단계들이 3차 분석을 느리게 하는 임의의 경우에, 그들 단계의 커스텀 FPGA 가속이 최적화된 방식으로 구현될 수 있기 때문이다.
예를 들어, 타이트하게 통합된 CPU/GPU/QPU 및/또는 FPGA 플랫폼 상에서의 3차 분석에 대한 특정한 이점은, 부분 또는 중간 3차 결과들에 응답하여, 2차 프로세싱의 CPU/GPU/QPU 및/또는 FPGA 가속을 이용하여, 게놈 데이터를 반복적으로 재분석하는 능력이며, 이는 타이트한 통합 구성으로부터 추가적으로 이득을 얻을 수 있다. 예를 들어, 3차 분석이 가능한 표현형 또는 질병을 검출한 후에, 그러나 그 검출이 참인지 거짓인지에 관한 제한된 신뢰도로 인해, 검출에 영향을 미치는 그 검출에 영향을 미치는 특정한 판독들 및 기준 영역들에 대해 극히 높은 노력으로 집중된 2차 재분석이 수행될 수 있고, 따라서 관련된 변이 추출들의 정확도 및 신뢰도를 개선하고, 결국 검출 추출에서의 신뢰도를 개선할 수 있다. 추가적으로, 3차 분석이 분석된 개인의 조상 또는 구조적 변이 유전형들에 관한 정보를 결정하면, 특정 개인에 더 적절한, 상이한 또는 수정된 기준 게놈을 이용하여 2차 분석이 반복될 수 있으며, 따라서 변이 추출들의 정확도를 향상시키고 추가 3차 분석 단계들의 정확도를 개선할 수 있다.
그러나, 1차 및 2차 프로세싱(아마도 별도의 플랫폼 상에서 가속된) 후에 CPU-전용 플랫폼 상에서 3차 분석이 수행되면, 2차 프로세싱 툴들을 갖는 재-분석은 3차 분석 플랫폼 자체에 대해 유용하기에는 너무 느릴 가능성이 있으며, 대안은 더 빠른 플랫폼으로의 전송인데, 이 플랫폼 또한 엄청나게 느리다. 따라서, 3차 분석 플랫폼 상에 임의의 형태의 하드웨어 또는 양자 가속의 부재 시에, 분석 함수들의 용이한 재분석 또는 반복적인 2차 분석 및/또는 파이프라이닝의 가능성 없이, 3차 분석이 시작되기 전에 1차 및 2차 프로세싱이 일반적으로 완료되어야 한다. 그러나, FPGA 및/또는 양자-가속 플랫폼, 및 특히 2차 프로세싱이 최대로 효율적인 타이트하게 통합된 CPU 및/또는 GPU 및/또는 QPU 및/또는 FPGA 플랫폼 상에서는, 반복적인 분석이 실용적이고 유용하게 된다.
따라서, 위에 지적한 바와 같이, 본 명세서에 개시된 모듈들은 칩의 하드웨어에서, 예컨대 그 안에서 하드와이어드됨으로써 구현될 수 있고, 그러한 경우들에서, 그들의 구현은, 그들의 함수가, 소프트웨어로 구현되는 것에 비해, 더 빠른 속도로 더 큰 정확도로 일어날 수 있는 것일 수 있고, 예컨대 이 경우 페칭, 판독, 및/또는 실행될 최소한의 명령어들이 존재한다. 추가적으로, 다양한 경우들에서, 이들 모듈 중 하나 이상에 의해 수행될 함수들은, 그 함수들 중 다양한 것들이 호스트 CPU 및/또는 GPU 및/또는 QPU 소프트웨어에 의해 구현되도록 구성될 수 있도록 분산될 수 있는 반면, 다른 경우들에서, 다양한 다른 함수들은 연관된 FPGA의 하드웨어에 의해 수행될 수 있고, 예컨대 이 경우 2개 이상의 디바이스가 그들 각각의 함수들을 서로 예컨대 심리스한 방식으로 수행한다. 그러한 목적들을 위해, CPU, GPU, QPU, 및/또는 FPGA 또는 ASIC 또는 구조화된 ASIC는, 예컨대 QPI, CCVI, CAPI 등과 같은 낮은 레이턴시, 높은 대역폭의 인터커넥트를 통해, 타이트하게 결합될 수 있다. 따라서, 일부 경우들에서, 이들 모듈 중 하나 이상에 의해 수행될 높은 계산 집약적 함수들은 하나 이상의 양자 회로에 의해 구현되는 양자 프로세서에 의해 수행될 수 있다.
그러므로, 고유 하드웨어 및/또는 양자 프로세싱 구현이 주어지면, 본 개시내용의 모듈들은, 예컨대, 단지 CPU 소프트웨어에서 구현될 때와 같이, 명령어들을 페칭, 판독 및/또는 실행할 필요없이, 그들의 연산 파라미터들에 따라 직접 기능할 수 있다. 추가적으로, 메모리 요건들 및 프로세싱 시간들이 더 감소될 수 있는데, 예컨대 이 경우 칩 내의 통신들이 외부 메모리에 확장적으로 액세스하는 것보다는, 예컨대 캐시 일관성 있는 방식으로, 예를 들어, FPGA/CPU/GPU/QPU 캐시에 로컬로 저장된 파일들을 통해 이루어진다. 물론, 일부 경우들에서, 칩 및/또는 카드는 병렬 프로세싱 능력을 향상시키기 위해 더 많은 온 보드 메모리와 같은 더 많은 메모리를 포함하도록 크기가 조정될 수 있고, 그에 의해 결과적으로 프로세싱 속도가 훨씬 더 빨라진다. 예를 들어, 특정 실시예들에서, 본 개시내용의 칩은 내장된 DRAM을 포함할 수 있으며, 따라서 칩은 외부 메모리에 의존할 필요가 없고, 따라서 결과적으로 프로세싱 속도가 더 증가될 것이고, 예컨대 이 경우 다양한 경우들에서 외부, 예를 들어 호스트 메모리에 의존하는 해시 테이블 및 해시 함수 대신에, 버로우즈-휠러 알고리즘 또는 드 브루인 그래프가 이용될 수 있다. 그러한 경우들에서, 일부 또는 전체 파이프라인의 실행은 예컨대 시작부터 끝까지, 6 또는 10 또는 12 또는 15 또는 20분 이하로 완수될 수 있다.
위에 지적한 바와 같이, 임의의 주어진 모듈이 하드웨어 상에 위치되거나, 또는 그로부터 원격으로, 예컨대 클라우드 상에서 액세스 가능한 서버 상에 위치되는 다양한 상이한 지점들이 있다. 주어진 모듈이 칩에 위치, 예를 들어, 칩에 하드와이어드되어 있는 경우에, 그의 함수가 하드웨어에 의해 수행될 수 있지만, 원하는 경우, 모듈은 칩으로부터 원격으로 위치될 수 있고, 그 지점으로부터 플랫폼은 클라우드를 통해 액세스 가능한 서버, 예를 들어, 양자 서버와 같이, 원격 로케이션에 관련 데이터를 전송하기 위한 필요 수단을 포함할 수 있고, 따라서 사용자 선택의 원하는 프로토콜에 따라, 데이터의 추가 프로세싱을 위해 특정한 모듈의 기능성이 관여될 수 있다.
따라서, 플랫폼의 일부는 본 명세서에 개시된 모듈들 중 하나 이상의 모듈의 함수에 따른 하나 이상의 작업을 수행하기 위한 웹 기반 인터페이스를 포함할 수 있다. 예를 들어, 매핑, 정렬, 및/또는 소팅이 모두 칩 상에서 발생할 수 있는 모듈들인 경우, 다양한 경우들에서, 로컬 재정렬, 중복 마킹, 염기 품질 스코어 재측정, 및/또는 변이 추출 중 하나 이상이 클라우드 상에서 행해질 수 있다.
특정하게는, 일단 유전자가, 예를 들어, 하나 이상의 1차 및/또는 2차 프로세싱 프로토콜에서, 예를 들어, 피험자로부터의 유전 서열 데이터가 하나 이상의 기준 서열과 어떻게 상이한지를 결정하기 위해, 예컨대, 하나 이상의 변이 추출 파일을 생성하도록, 예컨대 매핑, 정렬 및/또는 소팅되는 것에 의해 생성 및/또는 프로세싱되면, 본 개시내용의 추가 양태는 도 40에 도시된 바와 같이, 예컨대 추가, 예를 들어 3차 프로세싱을 위해 그 생성 및/또는 프로세싱된 유전 데이터에 대해 하나 이상의 다른 분석 함수를 수행하는 것에 관련될 수 있다. 예를 들어, 시스템은 생성 및/또는 2차 프로세싱된 데이터의 추가 프로세싱을 위해 구성될 수 있고, 이는 예컨대 그 데이터를, 마이크로-어레이 분석 파이프라인, 게놈, 예를 들어, 전체 게놈 분석 파이프라인, 유전형 분석 파이프라인, 엑솜 분석 파이프라인, 에피게놈 분석 파이프라인, 메타게놈 분석 파이프라인, 마이크로바이옴 분석 파이프라인, 공동 유전형 분석을 포함하는, 유전형 분석 파이프라인, 구조적 변이 파이프라인, 체세포 변이 파이프라인, 및 GATK 및/또는 MuTect2 파이프라인을 포함하는 변이 분석 파이프라인뿐만 아니라, RNA 서열 분석 파이프라인 및 다른 유전 분석 파이프라인들 중 하나 이상과 같은, 하나 이상의 3차 프로세싱 파이프라인(700)을 통해 실행하는 것에 의해 수행될 수 있다.
추가적으로, 다양한 경우들에서, 본 1차 및/또는 2차 및/또는 3차 파이프라인 중 하나 이상에 의해 생성되는 데이터를 이용한, 예컨대 NIPT, NICU, 암, LDT, AgBio, 및 다른 그러한 질병의 진단, 예방, 및/또는 치료를 포함한, 예컨대 질병 진단, 치료 처치, 및/또는 예방 방지를 위한, 프로세싱(800)의 추가적인 계층이 제공될 수 있다. 예를 들어, 특정한 생체분석 파이프라인은 게놈 파이프라인, 에피게놈 파이프라인, 메타게놈 파이프라인, 유전형 분석 파이프라인, 변이, 예를 들어, GATK/MuTect2 파이프라인, 및 다른 그러한 파이프라인을 포함한다. 그러므로, 본 명세서에 개시된 디바이스들 및 방법을 사용하여 유전 서열 데이터를 생성할 수 있고, 그 후 그 데이터를 사용하여, 예컨대 예방 및/또는 치료 처치 및/또는 개발 모달리티들을 위해서뿐만 아니라 특정한 및/또는 일반적인 질병 진단을 위해, 본 명세서에 개시된 디바이스들 및 방법들에 따라 다른 3차 프로세싱 파이프라인의 실행을 추가로 겪을 수 있는 하나 이상의 변이 추출 파일 및/또는 다른 연관된 데이터를 생성할 수 있다. 예를 들어, 도 41b, 도 41c 및 도 43을 참조한다.
위에 설명된 바와 같이, 본 명세서에 제시된 방법들 및/또는 시스템들은 유전 서열 데이터를 생성 및/또는 달리 취득하는 것을 포함할 수 있다. 그러한 데이터는, NGS 또는 임의의 적합한 소스로부터, 예컨대 "서열분석기 칩 기술"에 생성되거나 달리 취득될 수 있다. 일단 생성 및/또는 취득되면, 본 명세서의 방법들 및 시스템들은 그 데이터에, 예컨대 하나 이상의 2차 프로세싱 프로토콜들(600)에 의한 추가 프로세싱을 적용하는 것을 포함할 수 있다. 2차 프로세싱 프로토콜들은, 예를 들어, 피험자로부터의 유전 서열 데이터가 하나 이상의 기준 서열 또는 게놈과 어떻게 상이한지를 결정하기 위해, 예컨대 하나 이상의 변이 추출 파일을 생성하기 위해, 생성된 유전 서열 데이터의 매핑, 정렬, 및 소팅 중 하나 이상을 포함할 수 있다. 본 개시내용의 추가 양태는 전술한 서열분석기 기술을 호스팅하는 것과 동일한 칩 또는 칩셋 상에서 또는 그와 연관되어 수행될 수 있는, 추가적인 프로세싱, 예를 들어, 3차 프로세싱(700/800)을 위해, 생성 및/또는 프로세싱된 유전 데이터, 예를 들어, 2차 결과 데이터에 대해 하나 이상의 다른 분석 함수를 수행하는 것에 관한 것이다.
따라서, 제1 경우에, 예컨대 도 37 내지 도 41에서 설명된 바와 같은, 유전 서열 데이터의 생성, 취득, 및/또는 전송과 관련하여, 그러한 데이터는 로컬로 또는 원격으로 생성될 수 있고/있거나 그의 결과들은 그 후 예컨대 로컬 컴퓨팅 리소스(100)에 의해 직접적으로 프로세싱될 수 있거나, 추가 프로세싱을 위해, 예를 들어, 2차 및/또는 3차 프로세싱(도 42 기준)을 위해, 원격 로케이션에, 예컨대 원격 컴퓨팅 리소스(300)에 전송될 수 있다. 예를 들어, 생성된 유전 서열 데이터는 로컬로, 그리고 직접 프로세싱될 수 있고, 예컨대 이 경우 서열 분석 및 2차 프로세싱 기능성들은 온-사이트(10)의 동일한 디바이스 내에 및/또는 동일한 칩셋 상에 하우징된다. 마찬가지로, 생성된 유전 서열 데이터는 로컬로, 그리고 간접적으로 프로세싱될 수 있고, 예컨대 이 경우 서열 분석 및 2차 프로세싱은 동일한 시설 또는 로케이션을 공유하지만 공간에 의해 분리될 수 있는(비록 예컨대 로컬 네트워크(10)를 통해 통신가능하게 연결되지만) 개별 장치들에 의해 개별적으로 행해진다. 추가 경우에, 유전 서열 데이터는 예컨대 NGS에 의해 원격으로 유도될 수 있고, 그 결과적 데이터는 클라우드 기반 네트워크(30/50)를 통해, 예컨대 서열분석기로부터 지리적으로 분리된 오프-사이트 원격 로케이션(300)으로 전송될 수 있다.
구체적으로는, 도 40a에 예시된 바와 같이, 다양한 실시예들에서, 데이터 생성 장치, 예를 들어, 뉴클레오티드 서열분석기(110)가 온 사이트에 제공될 수 있고, 예컨대 이 경우 서열분석기는 "서열분석기 칩" 또는 NGS이고, 서열분석기는 로컬 컴퓨팅 리소스(100)와 직접 또는 간접적으로 예컨대 로컬 네트워크 연결(10/30)에 의해 연관된다. 로컬 컴퓨팅 리소스(100)는 데이터 생성(110) 및/또는 데이터 취득(120) 메커니즘(들) 중 하나 이상을 포함하거나 달리 이와 연관될 수 있다. 그러한 메커니즘들은 피험자 또는 피험자 그룹의 하나 이상의 유전 서열들에 관련된 아날로그, 디지털, 및/또는 전자기 데이터와 같은, 데이터를 생성 및/또는 달리 취득하도록 구성되는 임의의 메커니즘일 수 있고, 예컨대 이 경우 유전 서열 데이터는 BCL 또는 FASTQ 파일 형식이다.
예를 들어, 그러한 데이터 생성 메커니즘(110)은 유전 서열 정보를 생성하기 위한 서열분석기, 예컨대, NGS, 서열분석기 칩, 또는 다른 유사한 메커니즘과 같은 1차 프로세서일 수 있다. 게다가, 그러한 데이터 취득 메커니즘(120)은 생성된 유전 서열 정보와 같은 데이터를 수신하고; 및/또는 데이터 생성기(110) 및/또는 컴퓨팅 리소스(100)와 함께, 본 명세서에 설명된 바와 같이 생성 및/또는 취득된 서열 데이터에 대해 매핑기, 정렬기, 소팅기, 및/또는 변이 추출기 프로토콜을 실행하도록 구성된 2차 프로세싱 파이프라인 장치와 같이, 그 데이터에 하나 이상의 2차 프로세싱 프로토콜에 적용할 수 있도록 구성된 임의의 메커니즘일 수 있다. 다양한 경우들에서, 데이터 생성(110) 및/또는 데이터 취득(120) 장치들은 예컨대 로컬 저장(200)을 위해, 예컨대 로컬 네트워크(10)를 통해 함께 네트워킹될 수 있거나; 예컨대 유전 서열 정보의 1차 및/또는 2차 프로세싱과 관련된 디지털 데이터와 같은 데이터를 예컨대 원격 프로세싱(300) 및/또는 저장(400)을 위해, 예컨대 원격 로케이션으로 전송하고/하거나 그로부터 수신하기 위해, 로컬 및/또는 클라우드 기반 네트워크(30)를 통해 함께 네트워킹될 수 있다. 다양한 실시예들에서, 이들 컴포넌트들 중 하나 이상이 본 명세서에 설명된 바와 같은 하이브리드 네트워크에 의해 함께 통신가능하게 결합될 수 있다.
로컬 컴퓨팅 리소스(100)는 또한 컴파일러(130) 및/또는 프로세서(140), 예컨대 생성된 및/또는 취득된 데이터 및/또는 그와 연관된 데이터를 컴파일하도록 구성된 컴파일러(130), 및 생성된 및/또는 취득된 및/또는 컴파일된 데이터를 프로세싱하고/하거나 예컨대 1차, 2차, 및/또는 3차 프로세싱을 수행하기 위해, 본 명세서에 설명된 바와 같이, 시스템(1) 및 그것의 컴포넌트들을 제어하도록 구성된 프로세서(140)를 포함하거나 달리 이와 연관될 수 있다. 예를 들어, 임의의 적합한 컴파일러가 이용될 수 있지만, 특정 경우들에서, 시스템 컴포넌트들 사이의 데이터의 효율적이고 일관성 있는 전송을 위해, 위에 논의된 바와 같은 타이트 결합 구성을 구현함으로써 추가 효율이 달성될 수 있을 뿐만 아니라, 저스트-인-타임(JIT) 컴퓨터 언어 컴파일러 구성을 구현함으로써 추가로 달성될 수 있다. 게다가, 특정 경우들에서, 프로세서(140)는 생성, 수신, 및/또는 플랫폼 파이프라인들의 다양한 스테이지들을 통해 프로세싱될 데이터에 관련한 다양한 시스템 컴포넌트들의 기능을 제어하기 위한 워크플로우 관리 시스템을 포함할 수 있다.
구체적으로는, 본 명세서에서 사용된 저스트-인-타임(JIT)은 취득된 및/또는 생성된 파일 형식들을 하나의 형태로부터 다른 형태로 변환하기 위한 디바이스, 시스템, 및/또는 방법을 지칭한다. 넓은 사용 구조에서, 본 명세서에 개시된 JIT 시스템은 다양한 코드를 하나의 형태로부터 다른 형태로 변환하는 방식으로 구현될 수 있는 컴파일러(130) , 또는 다른 컴퓨팅 아키텍처, 예를 들어, 프로세싱 프로그램을 포함할 수 있다. 예를 들어, 일 구현에서, JIT 컴파일러는 바이트코드, 또는 해석되어야 하는 명령어들을 포함하는 다른 프로그램 코드를, 예컨대 특정 머신 언어에 의한 명령어들의 해석에 대한 필요없이, 거의 즉시 실행을 위해, 연관된 프로세서(140)에 직접 전송될 수 있는 명령어들로 변환하는 기능을 할 수 있다. 특정하게는, 코딩 프로그램, 예를 들어, 자바 프로그램이 기입된 후에, 소스 언어 문들은 임의의 주어진 특정 하드웨어 플랫폼의 프로세싱 언어와 매칭하는 명령어들을 포함하는 코드로 컴파일되기보다는, 컴파일러, 예를 들어 자바 컴파일러에 의해 바이트코드로 컴파일될 수 있다. 따라서, 이 바이트코드 컴파일 액션은 임의의 플랫폼에 전송되고 그의 기저의 프로세서에 관계없이 그 플랫폼 상에서 실행될 수 있는 플랫폼-독립적인 코드이다. 따라서, 적합한 컴파일러는 바이트코드를 즉시 실행될 수 있는 플랫폼 특정 실행가능 코드로 컴파일하도록 구성된 컴파일러일 수 있다. 이 경우에, JIT 컴파일러는 하나의 파일 형식을 다른 파일 형식으로 즉시, 예컨대 "온 더 플라이(on the fly)"로 변환하도록 기능할 수 있다.
그러므로, 본 명세서에 설명된 바와 같은, 적합하게 구성된 컴파일러는 본 기술분야의 다양한 결점을 극복할 수 있다. 구체적으로는, 특정 언어로 작성된 과거 컴파일 프로그램들은 그것이 구현되어야 하는 각각의 특정 컴퓨터 플랫폼에 의존하여 재컴파일 및/또는 재작성되어야 한다. 본 컴파일 시스템에서, 컴파일러는 프로그램을 한 번만 작성 및 컴파일하도록 구성될 수 있고, 일단 특정 형태로 작성되면, 하나 이상의 다른 형태들로 거의 즉시 변환될 수 있다. 더 구체적으로는, 컴파일러(130)는 JIT일 수 있거나, 그것이 구현되는 특정 컴퓨터 플랫폼에 의존하여 재컴파일 및/또는 재작성될 필요가 없는 플랫폼 불가지론적 언어로 명령어들을 작성할 수 있는, 다른 유사한 동적 변환 컴파일러 형식일 수 있다. 예를 들어, 특정 사용 모델에서, 컴파일러는 컴파일된 바이트코드, 및/또는 다른 코딩된 명령어들을, 컴퓨팅 플랫폼에 관계없이, 하나의 파일 형식을 다른 하나 형식으로 변환하기 위해 주어진 특정 프로세서에 의해 이해가능한 명령어들로 해석하도록 구성될 수 있다. 주로, 본 명세서의 JIT 시스템은, 예를 들어, 유전 코드를 표현하는 것과 같은, 하나의 유전 파일을 수신하고 - 여기서 파일은, 예를 들어, 유전 서열분석기로부터 생성된 BCL 또는 FASTQ 파일임 -, 그것을, 예컨대, 본 명세서에 개시된 방법들을 이용하여, 다른 형식으로, 예컨대 SAM, BAM 및/또는 CRAM 파일로 빠르게 변환할 수 있다.
특정하게는, 다양한 경우들에서, 본 명세서에 개시된 시스템은 한 번에 하나 또는 복수의 바이트코드 명령어 변환들을 핸들링하는, 가상 컴파일 머신과 같은, 제1 및/또는 제2 컴파일러(130a 및 130b)를 포함할 수 있다. 예를 들어, 본 시스템 플랫폼 내에서, 자바 유형 저스트-인-타임 컴파일러, 또는 다른 적합하게 구성된 제2 컴파일러를 사용하는 것은, 예를 들어, 프로그램이 그 플랫폼 상에서 초기에 컴파일되었던 것처럼, 이후에 특정 시스템 코드로 변환될 수 있는 바이트코드로 명령어들을 컴파일하는 것을 가능하게 할 것이다. 따라서, 일단 코드가, 예컨대, JIT 컴파일러(들)(130)에 의해, 컴파일 및/또는 (재)컴파일되면, 그것은 컴퓨터 프로세서(140)에서 더 빠르게 실행될 것이다. 그러므로, 다양한 실시예들에서, 저스트-인-타임(JIT) 컴파일, 또는 다른 동적 변환 컴파일은, 실행 전보다는, 예를 들어, 실행 시간에, 주어진 프로그램의 실행 동안 수행되도록 구성될 수 있다. 그러한 경우에, 이는 머신 코드로의 변환 또는 다른 형식으로의 변환의 단계(들)를 포함할 수 있으며, 이는 그 후 즉시 실행될 수 있고, 그에 의해 하나 이상의 사전 컴파일(ahead-of-time compilation, AOT) 및/또는 해석을 가능하게 한다.
더 특정하게는, 본 시스템 내에서 구현되는 바와 같이, 전형적인 게놈 서열 분석 데이터 흐름은 일반적으로 예컨대 BCL, FASTQ, SAM, BAM, CRAM, 및/또는 VCF 파일 형식, 또는 이들의 등가물의, 하나 이상의 컴퓨팅 플랫폼으로부터 유도된 하나 이상의 파일 형식의 데이터를 생성한다. 예를 들어, 전형적인 DNA 서열분석기(110), 예를 들어 NGS는 본 명세서에서 예컨대 BCL 및/또는 FASTQ 파일의, 판독들로서 지정되는 추출된 염기들을 표현하는 원시 신호들을 생성하고, 이는 옵션으로 더 프로세싱, 예를 들어, 향상된 이미지 프로세싱, 및/또는 압축(150)될 수 있다. 마찬가지로, 생성된 BCL/FASTQ 파일들의 판독들은 그 후 본 명세서에 설명된 바와 같이, 시스템 내에서 추가로 프로세싱되어, 매핑 및/또는 정렬 데이터를 생성할 수 있고, 이렇게 생성된 예를 들어, 매핑 및 정렬된 판독들의 데이터는 SAM 또는 BAM 파일 형식, 또는 대안적으로 CRAM 파일 형식일 수 있다. 게다가, SAM 또는 BAM 파일은 그 후, 예컨대 변이 추출 절차를 통해 프로세싱되어, VCF 파일 또는 gVCF 파일과 같은 변이 추출 파일을 생성할 수 있다. 따라서, 이들 생성된 BCL, FASTQ, SAM, BAM, CRAM, 및/또는 VCF 파일들 모두는, 일단 생성되면, 모두 예컨대 시스템 메모리 아키텍처에 로컬로(200) 또는 원격으로(400) 저장될 필요가 있는 (극히) 큰 파일들이다. 이들 파일들 중 어느 하나의 저장은 고가이다. 이들 파일 형식들 모두의 저장은 극히 고가이다.
지시한 바와 같이, 저스트-인-타임(JIT) 또는 다른 듀얼 컴파일 또는 동적 변환 컴파일 분석은 그러한 높은 저장 비용을 감소시키도록 본 명세서에서 구성되고 배치될 수 있다. 예를 들어, 하나 이상의 파일 형식(예를 들어, BCL, FASTQ, SAM, BAM, CRAM, 및/또는 VCF 등)에 대한 액세스를 제공하면서, 하나의 형식(예를 들어, 압축된 FASTQ 또는 BAM 등)으로만 데이터를 저장하도록 JIT 분석 방식이 본 명세서에서 구현될 수 있다. 그러한 빠른 파일 변환 프로세스는 본 명세서에 개시된 각각의 하드웨어 및/또는 양자 가속 플랫폼들을 이용하여, 예를 들어, 매핑, 정렬, 소팅, 및/또는 변이 추출(또는 중복제거, HMM 및 스미스-워터만, 압축 및 압축해제 등과 같은 이들의 컴포넌트 함수들)을 위해, FPGA와 같은 집적 회로 상의 하드웨어 엔진들에서, 또는 양자 프로세서에 의해 게놈 데이터를 빠르게 프로세싱함으로써 달성될 수 있다. 그러므로, 그러한 가속과 함께 JIT 또는 유사한 분석을 구현함으로써, 게놈 데이터는 정상 파일 액세스와 비슷한 속도로, 온 더 플라이로 원하는 파일 형식들을 생성하는 방식으로 프로세싱될 수 있다. 따라서, 액세스 속도의 손실을 거의 또는 전혀 갖지 않는 JIT-유사 프로세싱에 의해 상당한 저장 절약이 실현될 수 있다.
특정하게는, 2개의 일반적인 옵션은 JIT-유사 프로세싱을 위해 액세스 가능하도록 본 명세서에서 생성된 게놈 데이터의 기저의 저장에 유용하고, 이들은 정렬되지 않은 판독들(예를 들어, 압축된 FASTQ, 또는 정렬되지 않은 압축된 SAM, BAM, 또는 CRAM 파일들을 포함할 수 있음)의 저장, 및 정렬된 판독들(예를 들어, 압축된 BAM 또는 CRAM 파일들을 포함할 수 있음)의 저장을 포함한다. 그러나, 본 명세서에 개시된 가속된 프로세싱은 언급된 파일 형식들 중 임의의 것이 빠르게, 예를 들어, 온 더 플라이로 유도될 수 있게 하기 때문에, 저장을 위한 기저의 파일 형식은 가장 작은 압축된 파일 크기를 달성하도록 선택될 수 있고, 그에 의해 저장의 비용을 감소시킨다. 따라서, 프로세싱되지 않은, 예를 들어 원시의 정렬되지 않은 판독 데이터에 대한 비교적 더 작은 파일 크기 때문에, 데이터 필드들이 최소화되도록 정렬되지 않은 판독들을 저장하는 이점이 있다. 마찬가지로, 프로세싱 및 압축된 데이터를, 예컨대 CRAM 파일 형식으로 저장하는 것의 이점이 있다.
더 구체적으로는, 본 명세서에 개시된 디바이스들, 시스템들, 및 이들의 사용 방법들에 의해 달성가능한 빠른 프로세싱 속도들을 고려하면, 많은 경우들에서, 각각의 및 모든 판독들에 대해 매핑 및/또는 정렬 정보를 저장할 필요가 없을 수 있는데, 그 이유는 이 정보가, 필요에 따라, 예컨대 온 더 플라이로 유도될 수 있기 때문이다. 게다가, 비록 압축된 FASTQ(예를 들어, FASTQ.gz) 파일 형식이 유전 서열 데이터의 저장을 위해 일반적으로 사용되지만, 그러한 정렬되지 않은 판독 데이터는 또한, SAM, BAM, 또는 CRAM 파일들에서의 포스트 매핑 및/또는 정렬과 같은, 더 진보된 압축 형식들로도 저장될 수 있으며, 이는 예컨대 콤팩트한 이진 표현 및/또는 더 타겟팅된 압축 방법들의 사용에 의해 파일 크기를 더 감소시킬 수 있다. 그러므로, 이들 파일 형식은 저장 전에 압축되고, 저장 후에 압축해제되고, 빠르게, 예컨대 온 더 플라이로 프로세싱되어, 하나의 파일 형식을 다른 파일 형식으로 변환할 수 있다.
정렬된 판독들을 저장하는 것의 이점은 각각의 판독의 서열 콘텐츠 중 많은 것 또는 전부가 생략될 수 있다는 것이다. 구체적으로는, 예컨대 판독의 표시된 변이 정렬 위치들에서의, 판독 서열들과 선택된 기준 게놈 사이의 차이들만을 저장함으로써 시스템 효율이 향상되고 저장 공간이 절약될 수 있다. 더 구체적으로는, 기준으로부터의 차이들이 보통 희소하므로, 정렬된 위치 및 차이들의 리스트는 종종 원래의 판독 서열보다 더 콤팩트하게 저장될 수 있다. 따라서, 다양한 경우들에서, 정렬된 판독 형식의 저장은, 예를 들어, 정렬된 판독들의 차이들에 관련된 데이터를 저장할 때, 정렬되지 않은 판독 데이터의 저장보다 선호될 수 있다. 그러한 경우에, 정렬된 판독 및/또는 변이 추출 형식이 예컨대 JIT 절차에서, 기저의 저장 형식으로서 사용되는 경우, SAM, BAM 및/또는 CRAM, 압축된 파일 형식들과 같은 다른 형식들이 또한 사용될 수 있다.
저장될 정렬 및/또는 정렬되지 않은 판독 파일 데이터와 함께, 본 명세서에서 결정된 다양한 계산들로부터 유도된 메타데이터와 같은 매우 다양한 다른 데이터가 또한 저장될 수 있다. 그러한 계산된 데이터는 판독 매핑, 정렬 및/또는 후속 프로세싱 데이터, 예컨대 정렬 스코어, 매핑 신뢰도, 기준으로부터의 편집 거리 등을 포함할 수 있다. 특정 경우들에서, 그러한 메타데이터 및/또는 다른 추가 정보는, 예컨대 본 명세서에 설명된 가속된 데이터 프로세싱에 의해, 그것이 온 더 플라이로 재생될 수 있는 경우들에서, JIT 분석을 위한 기저의 저장에 유지될 필요가 없다.
메타데이터에 관하여, 이 데이터는, 하나의 파일 형식으로부터 다른 파일 형식으로의 변환으로 어떻게 역방향으로 순방향으로 가는지에 대해 시스템에게 지시하는 작은 파일일 수 있다. 그러므로, 메타데이터 파일은 시스템이 임의의 다른 파일 유형의 비트 호환가능 버전을 생성할 수 있게 한다. 예를 들어, 최초 데이터 파일로부터 전방으로 진행하면, 시스템은 메타데이터의 명령어들만을 액세스하고 구현할 필요가 있다. 빠른 파일 형식 변환과 함께, JIT는 또한, 예컨대 게놈학 드롭박스 메모리 캐시에서, 빠른 압축 및/또는 압축해제 및/또는 저장을 가능하게 한다.
아래에 더 상세히 논의되는 바와 같이, 일단 서열 데이터가 생성되면(110), 그것은 로컬로(200) 저장될 수 있고/있거나, 원격으로, 예컨대 클라우드 액세스 가능한 드롭박스-유사 메모리 캐시(400)에 저장을 위해 액세스 가능하게 될 수 있다. 예를 들어, 일단 게놈 드롭박스에 있는, 데이터는 클라우드(50) 상에서 액세스 가능한 것으로 보일 수 있고, 그 후, 예를 들어, 실질적으로 즉시 추가로 프로세싱될 수 있다. 이는, 예컨대 데이터의 자동 업로드 및 프로세싱을 용이하게 하는 클라우드(50) 인터페이스의 양측에 하나씩, 복수의 매핑/정렬/소팅/변이 추출 시스템들(100/300)이 존재할 때 특히 유용하며, 이는 예컨대 본 명세서에 설명된 JIT 기술을 이용하여 추가 프로세싱될 수 있다.
예를 들어, JIT 컴파일 및/또는 프로세싱을 위한 기저의 저장 형식은 기준에서의 판독 이름, 염기 품질 스코어들, 정렬 위치, 및/또는 배향과 같은 최소 데이터 필드들, 및 기준으로부터의 차이들의 리스트만을 포함할 수 있고, 예컨대 여기서 각각의 필드는 그 데이터 유형에 대해 최적의 방식으로 압축될 수 있다. 다양한 다른 메타데이터가 저장 파일에 포함되고/되거나 달리 이와 연관될 수 있다. 그러한 경우에, JIT 분석을 위한 기저의 저장은 로컬 파일 시스템(200)에, 예컨대 하드 디스크 드라이브들 및 솔리드 스테이트 드라이브들 상에, 또는 NAS 또는 객체 또는 드롭박스 같은 저장 시스템(400)과 같은 네트워크 저장 리소스에 있을 수 있다. 특정하게는, BCL, FASTQ, SAM, BAM, CRAM, VCF 등과 같은 다양한 파일 형식들이 JIT 프로세싱 및/또는 저장을 위해 제출될 수 있는 게놈 데이터세트에 대해 생성되었을 때, JIT 또는 다른 유사한 컴파일 및/또는 분석 시스템이 데이터를 저장을 위해 단일 기저의 저장 형식으로 변환하도록 구성될 수 있다. 가속된 게놈 데이터 프로세싱에 의해 다른 모든 원하는 형식들을 재생하는 데 필요한 메타데이터 및/또는 다른 정보(작은 것일 수 있음)와 같은 추가적인 데이터가 또한 파일과 연관되고 저장될 수 있다. 그러한 추가 정보는 다음 중 하나 이상을 포함할 수 있다: 재생될 파일 형식들의 리스트, 각각의 형식을 재생하기 위한 데이터 프로세싱 커맨드, 기준 게놈의 고유 ID(예를 들어, URL 또는 MD5/SHA 해시), 예컨대 매핑, 정렬, 소팅, 변이 추출, 및/또는 본 명세서에 설명된 바와 같은 임의의 다른 프로세싱을 위한, 다양한 파라미터 설정들, 프로세싱 단계들을 위한 랜덤화 시드들, 예를 들어, 의사 랜덤화를 활용하여, 동일한 결과들을 결정론적으로 재생하는 것, 사용자 인터페이스 등.
다양한 경우들에서, JIT 또는 유사한 동적 변환 프로세싱 및/또는 분석 시스템에서 저장 및/또는 검색될 데이터는 다양한 방식들로 사용자 또는 다른 애플리케이션들에 제시될 수 있다. 예를 들어, 한 가지 옵션은, 예컨대 SAM, BAM, CRAM, 또는 다른 커스텀 파일 형식으로서의 저장 및/또는 검색을 위한, 표준 또는 커스텀 "JIT 객체" 파일 형식의 JIT 분석 저장을 가지고, JIT 객체를 본 명세서에 개시된 가속된 프로세싱을 이용하여 원하는 형식(예를 들어, 로컬 임시 저장(200)에서의)으로 빠르게 변환하는 사용자 툴들을 제공하는 것이다. 다른 옵션은, 다양한 파일 형식들에 대한 파일 시스템 액세스가 JIT 절차를 활용하고, 따라서 단지 하나의 파일 유형이 저장될 필요가 있고, 이들 파일 유형으로부터, 다른 모든 파일들이 온 더 플라이로 생성될 수 있는 방식으로 BCL, FASTQ, SAM, BAM, CRAM, VCF 등과 같은 다수의 파일 형식들의 외관을 사용자, 및 사용자 애플리케이션들에 제시하는 것이다. 추가 옵션은 대신 JIT 객체로서 제시될 수 있는 특정 파일 형식들(BCL, FASTQ, SAM, BAM, CRAM, VCF 등)을 달리 수락하고, 호출될 때 자동으로 원하는 데이터 형식들(예를 들어, BCL, FASTQ, SAM, BAM, CRAM, VCF 등)로 데이터를 획득하기 위해 JIT 분석을 자동으로 호출할 수 있는 사용자 툴들을 만드는 것이다.
따라서, JIT 절차들은 기저의 저장된 압축 파일 형식을 빠르게 프로세싱함으로써 단일 파일 형식으로부터 다수의 파일 형식, 예를 들어, BCL, FASTQ, SAM, BAM, CRAM, VCF 등에 대한 액세스를 제공하는 데 유용하다. 추가적으로, JIT는 단일 파일 형식만이 액세스되어야 하는 경우에도 계속 유용한데, 그 이유는 액세스된 형식을 직접 저장하는 것에 비해 압축이 여전히 달성되기 때문이다. 그러한 경우에, 기저의 파일 저장 형식은 액세스된 파일 형식과 상이할 수 있고/있거나, 메타데이터를 덜 포함할 수 있고/있거나, 액세스된 형식보다 더 효율적으로 압축될 수 있다. 게다가, 그러한 경우에, 위에 논의된 바와 같이, 파일은 저장 전에 압축되고, 검색 시에, 예를 들어 자동으로 압축해제된다.
다양한 경우들에서, 본 명세서에 제공되는 JIT 분석의 방법들은 또한, 전송 시간을 최소화하고 소비된 네트워크 대역폭을 감소시키기 위해, 인터넷 또는 다른 네트워크를 통해, 게놈 데이터의 전송을 위해 사용될 수 있다. 특정하게는, 하나의 저장 애플리케이션에서, 단일 압축된 기저의 파일 형식이 저장될 수 있고/있거나 하나 이상의 형식이 압축해제 및/또는 가속된 게놈 데이터 프로세싱을 통해 액세스될 수 있다. 유사하게, 전송 애플리케이션에서, 단일 압축된 기저의 파일 형식만이, 예를 들어, 소스 네트워크 노드로부터 목적지 네트워크 노드로 전송될 필요가 있고, 예컨대 이 경우 기저의 형식은 주로 가장 작은 압축 파일 크기에 대해 선택될 수 있고/있거나, 모든 원하는 파일 형식들이 목적지 노드에서 게놈 데이터 프로세싱에 의해 또는 게놈 데이터 프로세싱을 위해, 예컨대 온 더 플라이로 생성될 수 있다. 이러한 방식으로, 하나의 압축된 데이터 파일 형식만이 저장 및/또는 전송을 위해 사용될 필요가 있으며, 그 파일 형식으로부터 다른 다양한 파일 형식들이 유도될 수 있다.
따라서, 도 40a를 고려하여, 본 명세서에 설명된 바와 같은 하드웨어 및/또는 양자 가속된 게놈 데이터 프로세싱은 전송을 위해 기저의 형식을 생성 및/또는 압축하는 소스 네트워크 노드와, 압축해제하고/하거나 가속된 게놈 데이터 프로세싱에 의해 다른 원하는 파일 형식들을 생성하는 목적지 네트워크 노드 양쪽 모두에서(또는 이들에 의해) 활용될 수 있다. 그럼에도 불구하고, 소스 노드 또는 목적지 노드 중 하나만이 하드웨어 및/또는 양자 가속된 게놈 데이터 프로세싱을 활용하는 경우에도 전송 애플리케이션에서 JIT 또는 다른 동적 변환 분석이 계속 유용하다. 예를 들어, 많은 양의 게놈 데이터를 전송하는 데이터 서버는 다양한 목적지로의 전송을 위해 압축된 기저의 형식을 생성하기 위해 하드웨어 및/또는 양자 가속된 게놈 데이터 프로세싱을 활용할 수 있다. 그러한 경우들에서, 각각의 목적지는 다른 원하는 데이터 형식들을 생성하기 위해 더 느린 소프트웨어 게놈 데이터 프로세싱을 이용할 수 있다. 그러므로, 비록 JIT 분석의 속도 이점이 목적지 노드에서 감소되지만, 전송 시간, 및 네트워크 이용이 여전히 유용하게 감소되고, 소스 노드는 그것의 대응하는 하드웨어 및/또는 양자 가속된 게놈 데이터 프로세싱 장치로 인해 효율적으로 많은 그러한 전송들을 서비스할 수 있다.
게다가, 다른 예에서, 예를 들어, 다양한 소스들로부터 많은 양의 게놈 데이터의 업로드들을 수신하는 데이터 서버는 하드웨어 및/또는 양자 가속된 게놈 데이터 프로세싱 및/또는 저장을 활용할 수 있는 반면, 다양한 소스 노드들은 CPU/GPU 상에서 실행되는 더 느린 소프트웨어를 사용하여 전송을 위해 압축된 기저 파일 형식을 생성할 수 있다. 대안적으로, 하드웨어 및/또는 양자 가속된 게놈 데이터 프로세싱은, 소스 및 목적지 노드들 사이의, 게이트웨이 서버와 같은 하나 이상의 중간 네트워크 노드들에 의해, JIT 또는 다른 동적 변환 분석 방법들에 따라, 압축된 기저의 파일 형식으로 게놈 데이터를 전송 및/또는 수신하는 데 이용되고, 따라서 과도한 소프트웨어 프로세싱으로 상기 중간 네트워크 노드들에 과중한 부담을 주지 않고 감소된 전송 시간 및 네트워크 이용의 이점들을 얻는다.
그러므로, 도 40a와 관련하여 알 수 있는 바와 같이, 특정 경우들에서, 로컬 컴퓨팅 리소스(100)는 JIT 컴파일러와 같은 컴파일러(130)를 포함할 수 있고, 생성된 및/또는 취득된 1차 및/또는 2차 프로세싱된 데이터(또는 3차 데이터)와 같은, 데이터를 압축하기 위해 구성되는 압축기 유닛(150)을 추가로 포함할 수 있고, 그 데이터는, 예컨대 로컬(10) 및/또는 클라우드(30) 및/또는 하이브리드 클라우드 기반(50) 네트워크를 통해 전송하기 전에, 예컨대 JIT 분석 절차에서 압축될 수 있고, 그것은 전송 후에 및/또는 사용 전에 압축해제될 수 있다.
위에 설명된 바와 같이, 다양한 경우들에서, 시스템은 예컨대 매핑, 정렬, 소팅, 및/또는 변이 추출 연산을 수행하여, 하나 이상의 매핑, 정렬, 소팅, 중복제거, 및/또는 변이 추출된 결과 데이터를 생성하기 위한 제1 집적 및/또는 양자 회로(100)를 포함할 수 있다. 추가적으로, 시스템은, 예컨대 3차 프로세싱을 위해, 하나 이상의 게놈학 및/또는 생물정보학 파이프라인 분석들의 수행에서 결과 데이터를 이용하기 위한 것과 같은 추가 집적 및/또는 양자 회로(300)를 포함할 수 있다. 예를 들어, 제1 집적 및/또는 양자 회로(100)에 의해 생성된 결과 데이터는, 예를 들어, 추가 게놈학 및/또는 생물정보학적 파이프라인 프로세싱 절차의 수행에서, 제1 또는 제2 집적 및/또는 양자 회로(300)에 의해 사용될 수 있다. 구체적으로는, 게놈학 데이터의 2차 프로세싱이 제1 하드웨어 및/또는 양자 가속 프로세서(100)에 의해 수행되어 결과 데이터를 생성할 수 있고, 그 결과 데이터에 대해 3차 프로세싱이 수행될 수 있고, 예컨대 이 경우 추가 프로세싱은 제1 집적 회로에 동작가능하게 결합되는 CPU 및/또는 GPU 및/또는 QPU(300)에 의해 수행된다. 그러한 경우에, 제2 회로(300)는 제1 회로(100)에 의해 생성된 게놈학 변이 데이터의 3차 프로세싱을 수행하도록 구성될 수 있다. 따라서, 제1 집적 서버로부터 유도된 결과 데이터는, 예컨대 제2 집적 및/또는 양자 프로세싱 회로(300)에 의한 3차 프로세싱에 관련하여 본 명세서에 설명된 추가 프로세싱 단계들을 구동하는 분석 엔진으로서 역할을 한다.
그러나, 이들 1차 및/또는 2차 및/또는 3차 프로세스 단계들 각각에서 생성된 데이터는 막대하여, 예컨대 로컬로(200) 또는 원격으로(400) 저장을 위해 매우 높은 리소스 및/또는 메모리 비용들을 요구한다. 예를 들어, 제1 1차 프로세싱 단계에서는, 예컨대 BCL 및/또는 FASTQ 파일 형식으로, 생성된 핵산 서열 데이터(110)가, 예컨대 NGS(110)로부터 수신될 수 있다(120). 이 서열 데이터의 파일 형식에 관계없이, 데이터는 본 명세서에 설명된 바와 같이 2차 프로세싱 프로토콜에서 이용될 수 있다. 예컨대 BCL 및/또는 FASTQ 파일 형식으로, NGS로부터 직접적으로 1차 서열 데이터를 수신하고 프로세싱하는 능력은 매우 유용하다. 특정하게는, NGS로부터의 서열 데이터 파일, 예를 들어, BCL을 FASTQ 파일로 변환하는 대신에, 파일은 NGS로부터, 예를 들어, BCL 파일로서 직접 수신될 수 있고, 예컨대 JIT 시스템에 의해 수신되고, 예를 들어, 온 더 플라이로, FASTQ 파일로 변환되는 것에 의해 프로세싱될 수 있고, 이는 그 후 본 명세서에 설명된 바와 같이, 프로세싱되어, 예컨대 매핑, 정렬, 소팅, 중복제거, 및/또는 변이 추출된 결과 데이터를 생성할 수 있고, 이는 그 후 예컨대 SAM, BAM, 및/또는 CRAM 파일로 압축될 수 있고/있거나 예컨대 개시된 게놈학 3차 프로세싱 파이프라인들 중 하나 이상에 의한 추가 프로세싱을 겪을 수 있다.
따라서, 일단 생성된 그러한 데이터는 일부 방식으로 저장될 필요가 있다. 그러나, 그러한 저장은 리소스 집약적일 뿐만 아니라, 또한 비용이 많이 든다. 구체적으로는, 전형적인 게놈학 프로토콜에서, 일단 생성된 서열 분석된 데이터는 큰 FASTQ 파일로서 저장된다. 그 후, 예컨대 매핑 및/또는 정렬 프로토콜이 적용됨으로써 일단 프로세싱되면, BAM 파일이 생성되고, 이 파일은 또한 전형적으로 저장되고, 예컨대 FASTQ 및 BAM 파일 양쪽 모두를 저장해야 함으로써, 게놈 데이터 저장의 비용을 증가시킨다. 게다가, 예컨대 변이 추출 프로토콜이 적용됨으로써 일단 BAM 파일이 프로세싱되면, VCF 파일이 생성되고, 이 VCF도 전형적으로 저장될 필요가 있다. 그러한 경우에, 생성된 유전 데이터를 적절하게 제공하고 이용하기 위하여, FASTQ, BAM, 및 VCF 파일들 3개 모두가 로컬로(200) 또는 원격으로(400) 저장될 필요가 있을 수 있다. 추가적으로, 원래의 BCL 파일도 저장될 수 있다. 그러한 저장은 비효율적일 뿐만 아니라 메모리 리소스 집약적이고 고가이다.
그러나, JIT 컴파일, 압축, 및 저장과 함께, 본 명세서에서 구현되는 하드웨어 및/또는 양자 프로세싱 아키텍처들의 계산 능력은 이들 비효율, 리소스 비용, 및 경비를 크게 개선한다. 예를 들어, 예컨대 BCL 파일을 FASTQ 파일로 변환하고, 그 후 FASTQ 파일을 SAM 또는 BAM 파일로 변환하고, 그 후 BAM 파일을 CRAM 및/또는 VCF 파일로, 그리고 다시 역으로 변환하기 위해, 본 가속된 집적 회로들에 의해 구현되는 방법들 및 달성되는 프로세싱 속도들을 고려하여, 본 시스템은 그러한 데이터의 효율적인 프로세싱 및/또는 저장을 위해 필요한 컴퓨팅 리소스들의 수 및/또는 파일 크기들을 크게 감소시킨다. 이들 시스템들 및 방법들의 이점들은 단지 하나의 파일 형식, 예를 들어, BCL, FASTQ, SAM, BAM, CRAM, 및/또는 VCF만이 저장될 필요가 있고, 그로부터 다른 모든 파일 형식들이 유도되고 프로세싱될 수 있다는 사실에 의해 더 향상된다. 특정하게는, 단지 하나의 파일 형식만이 저장될 필요가 있고 그러한 파일로부터 다른 파일 형식들 중 임의의 것이, 본 명세서에 개시된 방법들에 따라, 빠르게, 예를 들어, 온 더 플라이로, 예컨대 저스트인 타임, 또는 JIT 컴파일 형식으로 생성될 수 있다.
예를 들어, 전형적인 종래 방법들에 따르면, NGS 서열분석기에 의해 생성되는 FASTQ 파일들의 프로세싱 및 저장을 위해 많은 양의 컴퓨팅 리소스들, 예를 들어, 서버 팜들 및 큰 메모리 뱅크들이 필요하다. 특정하게는, 전형적인 경우에, 일단 NGS가 큰 FASTQ 파일을 생성하면, 서버 팜이 FASTQ 파일을 수신하고 이를 BAM 및/또는 CRAM 파일로 변환하기 위해 이용될 것이고, 이 프로세싱은 하루 이상 걸릴 수 있다. 그러나, 일단 생성되면, BAM 파일 자체가 저장되어야 하고, 이는 추가 시간 및 리소스들을 요구한다. 마찬가지로, BAM 또는 CRAM 파일은 VCF를 생성하는 방식으로 프로세싱될 수 있으며, 이 또한 또 다른 하루 이상이 걸릴 수 있고, 그 파일도 저장될 필요가 있을 것이고, 그에 의해 추가의 리소스 비용 및 경비가 발생한다. 더 특정하게는, 전형적인 경우에, 인간 게놈에 대한 FASTQ 파일은 파일마다 약 90GB의 저장을 소비한다. 마찬가지로, 전형적인 인간 게놈 BAM 파일은 약 160GB를 소비할 수 있다. VCF 파일도 저장될 필요가 있을 수 있다(비록 그러한 파일들은 FASTQ 및/또는 BAM 파일들보다 상당히 더 작기는 하지만). SAM 및 CRAM 파일들도 2차 프로세싱 절차들 전체에 걸쳐 생성될 수 있고, 이들도 저장될 필요가 있을 수 있다.
본 명세서에 제공된 기술들 전에, 하나의 단계로부터 다른 단계로, 예를 들어, 하나의 파일 형식으로부터 다른 파일 형식으로 가는 것은 계산 집약적이었고, 그러므로, 이들 파일 형식들에 대한 모든 데이터는 전형적으로 저장되어야 할 것이다. 이는 부분적으로 사용자가 돌아가서 파일들 중 하나 이상을 재생하기를 원하는 경우, 다양한 파일들을 재생하는 데 관련된 프로세스들을 재실행하기 위해 많은 양의 컴퓨팅 리소스들 및 시간을 필요로 할 것이고 그에 의해 높은 금전적 비용이 발생한다는 사실에 기인한다. 게다가, 이들 파일들이 저장 전에 압축되는 경우, 그러한 압축은 재사용 전에, 압축해제를 위해 요구되는 것과 거의 동일한 시간으로, 약 2 내지 약 5 내지 약 10 또는 그 이상의 시간이 걸릴 수 있다. 이들 높은 비용으로 인해, 전형적인 사용자들은 저장 전에 그러한 파일들을 압축하지 않을 것이고, 또한 전형적으로 2개, 3개 또는 그 이상의 파일 형식, 예를 들어, BCL, FASTQ, BAM, VCF 모두를 저장하여, 증가된 시간에 걸쳐 증가된 비용이 발생할 것이다.
따라서, 본 명세서에서 이용되는 JIT 프로토콜들은, 프로세싱뿐만 아니라 저장 양쪽 모두를 위해 감소된 시간 및 비용으로, 향상된 효율을 실현하기 위해, 본 하드웨어 및/또는 양자 가속기들에 의해 달성되는 가속된 프로세싱 속도들을 이용한다. 상이한 파일 형식들로 동일한 일반 데이터의 2개, 3개, 또는 그 이상의 카피들을 저장하는 대신에, 단지 하나의 파일 형식이 저장될 필요가 있고, 온 더 플라이로, 다른 파일 유형들 중 임의의 것이, 예컨대, 본 명세서에서 논의된 가속된 프로세싱 플랫폼들을 사용하여 재생될 수 있다. 특정하게는, FASTQ 파일을 저장하는 것으로부터, 본 디바이스들 및 시스템들은 예컨대 30분 이내에, 예컨대 20분 내에, 또는 약 15 또는 10분 내에, 또는 그 이하에서, 역방향으로 BCL 파일로, 또는 순방향으로 BAM 파일로, 그리고 그 후 더 나아가 VCF로 가는 것을 용이하게 한다.
그러므로, 본 명세서에 개시된 하드와이어드/양자 프로세싱 엔진들에 의해 제공되는 프로세싱의 속도와 파이프라인들을 사용하면, 단지 단일 파일 형식만이 저장될 필요가 있는 반면, 다른 파일 형식들은 그로부터 용이하게 빠르게 생성될 수 있다. 따라서, 3개의 파일 형식 모두를 저장해야 하는 대신에, 단일 파일 형식이 저장될 필요가 있고, 그로부터 임의의 다른 파일 형식이 사용자가 원하는 추가 프로세싱 단계들에 대해 예컨대 온 더 플라이, 저스트 인 타임으로 재생될 수 있다. 결과적으로, 시스템은 사용자가 단순히 디바이스의 연관된 디스플레이에 제시된 것과 같은 그래픽 사용자 인터페이스와 상호작용하면, 예를 들어, 사용자가 GUI에 제시된 FASTQ, BAM, VCF 등의 버튼을 클릭하면, 원하는 파일 형식이 제시될 수 있고, 한편 배경에서는, 시스템의 프로세싱 엔진들 중 하나 이상이 요청된 파일 형식의 요청된 파일을 저장된 파일 형식으로 재생하는 데 필요한 가속된 프로세싱 단계들을 수행할 수 있도록 사용이 용이하도록 구성될 수 있다.
전형적으로, BCL, FASTQ, SAM, BAM, CRAM, 및/또는 VCF 파일의 압축된 버전 중 하나 이상이, 시스템이 압축된 및/또는 저장된 파일을 생성하기 위해 어떻게 실행되었는지에 대한 모든 구성들을 포함하는 작은 메타파일과 함께, 저장될 것이다. 그러한 메타파일 데이터는 어떻게 특정 파일 형식, 예를 들어, FASTQ 및/또는 BAM 파일이 생성되었는지, 및/또는 다른 파일 형식들 중 임의의 것을 생성하기 위해 역방향으로 또는 순방향으로 가기 위해 어떤 단계들이 필요할 것인지를 상세히 설명한다. 이 프로세스는 아래에 본 명세서에 더 상세히 설명된다. 이와 같은 방식으로, 프로세스는 메타파일에 저장된 구성을 이용하여 순방향으로 진행하거나 반전되어 역방향으로 갈 수 있다. 이는 컴퓨팅 함수가 저장 함수들과 번들링되면 약 80% 이상의 저장 및 경제적 비용의 감소일 수 있다.
따라서, 위 내용을 고려하여, 도 40a와 관련하여 알 수 있는 바와 같이, 데이터 분석 및 저장을 위한 클라우드 기반 서버 시스템이 제공된다. 예를 들어, 본 명세서에 개시된 바와 같은, 클라우드 액세스 가능 서버 시스템을 사용하여, 사용자는, 예컨대 입력 데이터의 저장을 위해 저장 디바이스와 연결할 수 있다. 예를 들어, 원격 사용자는 게놈학 및/또는 생물정보학 데이터를 예컨대 그의 저장 및/또는 프로세싱을 위해, 시스템에 입력하기 위해 시스템에 액세스할 수 있다. 특정하게는, 예를 들어, 로컬 컴퓨팅 리소스(100)를 사용하는 시스템의 원격 사용자는, 예를 들어, 하나 이상의 개인들의 하나 이상의 서열 분석된 게놈들과 같은, 게놈 데이터를 업로드하기 위해 시스템(1)에 액세스할 수 있다. 아래에 상세히 설명된 바와 같이, 시스템은 예를 들어, 적합하게 구성된 API에 액세스하는 사용자 인터페이스를 포함할 수 있고, 이는 사용자가 BioIT 플랫폼에 액세스하여, 프로세싱될 데이터를 업로드하고, 프로세싱의 파라미터들을 제어하고, 및/또는 플랫폼으로부터 출력, 예를 들어, 결과 데이터를 다운로드할 수 있게 할 것이다.
구체적으로는, 시스템은 저장(400), 및/또는 저장된 파일들의 수신을 위해, 시스템의 하나 이상의 메모리에의 액세스를 가능하게 하는 API, 예를 들어, S3 또는 "S3-유사" 객체를 포함할 수 있다. 예를 들어, 클라우드 액세스 가능한 API 객체가 존재할 수 있고, 예컨대 이 경우 이 API는 데이터 파일들을 클라우드(50)에, 예컨대 하나 이상의 저장 버킷(500), 예를 들어, S3 버킷에 저장하도록 구성가능하다. 따라서, 시스템은 사용자가, 예컨대 개인용 컴퓨팅 디바이스 상의 클라우드 기반 인터페이스를 통해 API에 액세스함으로써, 예를 들어, S3 또는 S3-유사 API를 통해, 원격으로 저장된 파일들에 액세스하는 것을 허용하도록 구성될 수 있다.
따라서, 그러한 API는 클라우드(50)에 대한 액세스를 가능하게 하도록 구성되고, 그에 의해 사용자가 본 명세서에 개시된 클라우드 기반 서버들(300) 중 하나 이상과 연결하여, 예컨대, 주어진 저장된 파일을 업로드 및/또는 다운로드하여, 파일들을 클라우드 서버(300)와 로컬 하드 드라이브(100) 사이에 액세스 가능하게 만들 수 있다. 이는, 예를 들어, 원격 사용자가 서버(300) 상의 데이터에 액세스하고/하거나 그로부터 데이터를 다운로드하는 것을 가능하게 하고, 그 데이터에 대해 로컬로(100) 또는 서버(300) 상에서 하나 이상의 애플리케이션 및/또는 계산을 실행하고, 그 후 변환된 데이터를, 예를 들어 저장(200) 및/또는 추가 프로세싱을 위해 다시 클라우드(50)로 또는 그로부터 전송하도록 API를 호출하는 데 유용할 수 있다. 이는 게놈 데이터의 검색, 분석, 및 저장에 특히 유용하다.
그러나, 데이터의 전형적인 클라우드 기반 저장, 예를 들어, "S3" 저장은 고가이다. 이 비용은 게놈학 및 생물정보학의 분야들과 연관된 많은 양의 데이터를 저장할 때 증가되며, 여기서 그러한 비용들은 종종 엄청나게 된다. 추가적으로, 예를 들어, 로컬로(100) 또는 원격으로(300) 사용을 위해, 및/또는 저장(400)을 위해 데이터를 기입, 업로드 및/또는 다운로드하는 데 필요한 시간도 그러한 고가의 클라우드 기반 저장 솔루션들을 덜 매력적으로 만든다. 본 명세서에 개시된 본 솔루션들은 이들 및 다른 그러한 필요들을 극복한다.
특정하게는, 본 명세서에서 제시된 전형적인 "S3" 또는 다른 전형적인 클라우드 기반 객체 API를 통해 진행하는 대신에, 전송 속도 및/또는 데이터의 저장 비용을 감소시키도록 구현될 수 있는 대안적인 S3-호환가능한 API이다. 그러한 경우에, 사용자가 파일을 저장하기를 원할 때, 전형적인 클라우드 기반, 예를 들어, S3, API를 통해 진행하는 대신에, 대안적인 서비스 API 시스템, 예를 들어, 본 명세서에 개시된 독점적 S3 호환가능한 API는 계산 인스턴스, 예를 들어, 시스템의 CPU 및/또는 FPGA 인스턴스를 론치할 것이고, 이는 파일을 압축하도록 기능할 것이고, 데이터가 무엇인지 및/또는 파일이 어떻게 생성되었는지 등을 나타내는 것에 관련한 메타데이터 인덱스를 생성할 것이고, 그 후 압축된 파일을 S3 호환가능한 저장-유사 버킷(400)에 저장할 것이다. 따라서, 저장치(400) 전에 데이터를 압축하고/하거나, 검색 시에 데이터를 압축해제하기 위해, 대안적인 API에 의해 론치될 수 있는 계산 인스턴스(300)를 이용하는 클라우드 기반 50 서비스가 본 명세서에 제시된다. 따라서, 그러한 경우에, 저장되는 것은 실제 파일이 아니라, 오히려 저장되는 것은 원래의 파일의 압축된 버전이다.
구체적으로는, 그러한 경우에, 초기 파일은 제1 형식일 수 있고, 이는 독점적 S3 호환가능한 API를 통해 시스템에 로딩될 수 있고, 이 독점적 S3 호환가능한 API는 파일, 예를 들어, F1 파일을 수신하고, 그 후 그 파일에 대해 계산 함수를 수행할 수 있고/있거나, 그 후 파일을, 예컨대 적합하게 구성된 CPU/GPU/QPU/FPGA 프로세싱 엔진(300)을 통해 파일을 압축하고, CPU/GPU/QPU/FPGA 프로세싱 엔진은 그 후 압축된 파일을 저장을 위해, 압축된, 예를 들어, 압축된 F1 파일로서 준비한다. 그러나, 압축되고 저장된 파일이 검색될 필요가 있을 때, 그것은 그 후 압축해제될 수 있고, 이 압축해제된 파일이 그 후 사용자에게 반환될 수 있다. 이 가속된 압축 및 압축해제 시스템의 이점은 압축된 파일의 저장(400)이 저장 비용들의 엄청난 절약을 의미한다는 점이며, 이 이점은 본 명세서에 개시된 시스템들에 의해 달성되는 컴퓨팅 및/또는 압축 기능들에 의해 가능하게 된다.
그러므로, 본 시스템들에 의해 달성되는 빠르고 효율적인 컴퓨팅 및/또는 압축 기능성들 때문에, 사용자는 파일이 저장 전에 압축되고, 후속하여 저장 후 압축해제되어 사용자의 인터페이스에서 제시되는 것을 알 필요조차 없다. 특정하게는, 시스템은 빠르고 효율적으로 기능하여, 사용자는 요청된 데이터를 저장 및/또는 검색할 때 행해지는 다수의 압축, 계산, 및/또는 압축해제 단계들을 인식할 필요가 없고, 사용자에게, 이는 모두 심리스하고 적시적인 것으로 보인다. 그러나, 본 저장 시스템이 이전의 저장 시스템들보다 덜 비용이 들고 더 효율적일 것이라는 사실은 명백할 것이다.
따라서, 위 내용을 고려하여, 객체-기반 저장 서비스들이 본 명세서에 제공되며, 이 저장 서비스들은 저장 기능성과 함께 계산 및/또는 압축 인스턴스를 조합함으로써 더 낮은 비용으로 제공될 수 있다. 그러한 경우에, 전형적인 저장 비용들은 훨씬 더 낮은 레벨로 제공되는 계산 비용들을 치환할 수 있는데, 그 이유는 본 명세서에 설명된 바와 같이, 계산 비용들이 본 명세서에 설명된 바와 같이 예컨대 FPGA 및/또는 양자 컴퓨팅 플랫폼(300)에 의해 가속된 방식으로 구현될 수 있기 때문이다. 그러므로, 본 명세서에 개시된 가속된 플랫폼들은 훨씬 더 낮은 비용들 및 더 큰 효율 및 속도로 압축 및 저장 양쪽 모두가 수행될 수 있을 뿐만 아니라 빠르게 압축해제 및 검색될 수 있는 데이터의 빠른 압축된 저장을 가능하게 하는 빠르고 효율적인 저장 및 검색 시스템으로서 구성될 수 있다. 이는 게놈학 데이터 저장(400)과 관련하여 특히 유용하며, 위에 본 명세서에 개시된 최신의 저스트 인 타임 프로세싱 기능성들과 호환가능하다. 따라서, 본 명세서에 개시된 디바이스들, 시스템들, 및 방법들에 따르면, 객체 저장 서비스가 제공될 수 있으며, 이 저장 서비스는 게놈학 프로세싱 결과 데이터를 저장하기 위해 게놈학 특정 압축과 같은 빠른 압축 기능성을 구현한다.
더 특정하게는, 도 40a와 관련하여 알 수 있는 바와 같이, 하나의 예시적인 구현에서, 본 명세서에 제공되는 BioIT 시스템들은, 파이프라인 서버 시스템(300), 예를 들어, 그의 일부가, 예를 들어, 결합된 메타데이터 파일에 기초하여, 초기(F1) 파일을 (CF1) 파일의 압축된 버전과 연관시키도록 적응되는 데이터베이스(400)에 동작가능하게 연결되는, API, 예를 들어, S3 호환가능한 API에서 요청을 수신하도록 구성될 수 있다. 마찬가지로, 일단 원래의 CF1 파일들이 압축해제되고 프로세싱되면, 결과로 생긴 결과 데이터(F2) 파일들이 그 후 압축되어 CF2 파일로서 저장될 수 있다. 따라서, 데이터베이스(400)로부터 파일의 검색을 원할 때, 서버(300)는 적합하게 구성된 메타데이터를 통해 원래 파일을 압축된 파일과 이미 연관시킨 API를 갖고, 그러므로, 검색이 요청될 때, 시스템의 워크플로우 관리 컨트롤러(WMS)는 계산 인스턴스(300)를 론치할 것이고, 이 계산 인스턴스는 적합한 계산 인스턴스를 론치하여, 임의의 필요한 계산을 수행하고/하거나 추가 프로세싱, 전송 및/또는 요청 사용자(100)에의 제시를 위해 파일을 압축해제할 것이다.
그러므로, 다양한 실시예들에서, 예시적인 방법은 하나 이상의 단계를 임의의 논리적 순서로 포함할 수 있다: 1) 요청이 API, 예를 들어, S3 호환가능한 API를 통해 들어오고, 2) API가 WMS와 통신하고, 3) WMS가 데이터베이스를 채우고 계산 인스턴스(들)를 개시하고, 4) 계산 인스턴스(들)가 F1 파일에 대해 필요한 압축을 수행하고, 특성 메타데이터 및/또는 다른 관련 파일 연관들(X)을 생성하여, 예를 들어, CF1 X1 파일을 생성하고, 4) 그에 의해 저장(400)을 위해 데이터를 준비한다. 그 후, 이 프로세스는 F2, F3, Fn 파일들, 예를 들어, 다른 프로세싱된 정보에 대해 반복될 수 있고, 따라서 WMS가 압축된 파일이 어떻게 생성되었는지 뿐만 아니라, 어디에 그리고 어떻게 그것이 저장되었는지를 알게 된다. 유의해야 할 점은 이 시스템의 고유 특징은 여러 상이한 사용자들(100)이 저장된 데이터(400)에 실질적으로 동시에 액세스하도록 허용될 수 있다는 점이다. 예를 들어, 본 명세서에 개시된 압축 시스템들 및 방법들은 본 명세서에 개시된 BioT 플랫폼들과 함께 유용하며, 그에 의해 프로세싱 프로세스 동안 언제든지 결과 데이터가 본 명세서의 방법들에 따라 압축되고 저장될 수 있고, 정당한 허가를 가진 다른 사람들에게 액세스 가능할 수 있다.
게놈 분석을 수행하는 것과 관련하여, 사용자(100)는, 예를 들어, S3 또는 S3 호환가능한 API와 같은 게놈 분석 API를 통해, 본 명세서에서의 시스템(300)에 액세스하여, 예컨대 BCL 및/또는 FASTQ 파일 또는 다른 파일 형식으로, 게놈 데이터를 업로드하고, 그에 의해 매핑, 정렬, 소팅, 중복제거, 변이 추출 및/또는 다른 연산들과 같은 하나 또는 게놈학 연산들의 수행을 요청할 수 있다. 시스템(300)은 워크플로우 관리자 API에서 요청을 수신하고, 워크플로우 관리자 시스템은 그 후 들어오는 요청들을 평가하고, 작업들을 인덱싱하고, 큐를 형성하고, 리소스들을 할당하고(예를 들어, 인스턴스 할당), 파이프라인 흐름을 생성한다. 따라서, 요청이 들어오고 프리프로세싱되고 큐잉될 때, 그 후 인스턴스 할당기, 예를 들어, API는 작업 프로젝트들에 따라, 아래에 본 명세서에 더 상세히 설명된, 다양한 작업 특정 인스턴스들을 스핀 업할 것이다. 그러므로, 일단 작업들이 인덱싱되고, 큐잉되고, 및/또는 적합한 데이터베이스(400)에 저장되면, 워크플로우 관리자는 저장(400), 예를 들어, S3 또는 S3 호환가능 저장으로부터 데이터를 풀링하고, 적합한 인스턴스를 사이클 업할 것이고, 이 인스턴스는 파일을 검색하고, 그 데이터에 대해 적합한 프로세스들을 실행하여 요청된 작업들 중 하나 이상을 수행한다.
추가적으로, 복수의 작업이 데이터에 대해 수행되도록 요청되어, 복수의 인스턴스의 수행을 요구하는 경우, 그 후 일단 제1 인스턴스가 그의 연산들을 수행하면, 결과 데이터는 압축되어 예컨대 적합한 메모리 인스턴스, 예를 들어, 제1 데이터베이스, 예컨대 탄성 또는 유연성 저장 디바이스에 저장되어, 추가 파이프라인 인스턴스(들)가 스핀 업되고, 예컨대 위에 본 명세서에 개시된 시스템들 및 방법들에 따라, 추가 프로세싱을 위해 결과 데이터를 검색하는 동안 대기한다. 게다가, 새로운 요청들이 들어오고 및/또는 현재 작업들이 실행되고 있음에 따라, 워크플로우 관리 시스템은, 시스템을 통한 데이터 흐름 및 시스템의 프로세스들의 실행을 효율적으로 유지하기 위해, 인스턴스 할당기 API를 통해, 작업들을 적합한 인스턴스들에 할당하기 위해 큐를 끊임없이 업데이트할 것이다.
마찬가지로, 시스템(300)은 추가 프로세싱 및/또는 전송 전에, 원래의 요청자(100) 또는 지정된 당사자에게 다시 전송하기 전에, 끊임없이 결과 데이터를 취하고, 데이터(200/400)를 예를 들어 제1 또는 제2 데이터베이스에 저장할 수 있다. 특정 경우들에서, 결과 데이터는, 본 명세서에 개시된 바와 같이, 저장(400) 및/또는 전송 전에 압축될 수 있다. 게다가, 위에 지적한 바와 같이, 생성된 결과 데이터 파일들은, 압축될 때, 적절한 메타 데이터 및/또는 다른 연관된 데이터를 포함할 수 있고, 여기서 결과 데이터는 시스템을 통해 흐름에 따라 상이하게 지정될 수 있는데(예컨대 F1 파일로부터 F1C 파일로 F2 파일로, F2C 파일로, 등등), 이는 데이터가 예를 들어 파일 연관들 API에 의해 지시되는 바와 같이, 플랫폼 파이프라인을 통해 프로세싱되고 이동하기 때문이다.
따라서, 본 명세서에 개시된 바와 같은, 독점적 전용 API들 때문에, 시스템은 다른 서비스들이 결합될 수 있는 공통 백본을 가질 수 있고/있거나 파이프라인 연산들 모두가 원활하고 효율적으로 실행되도록 하기 위해 추가적인 리소스들, 예를 들어, 인스턴스들을 온라인으로 가져올 수 있다. 마찬가지로, 원하는 경우, 압축 및 저장된 결과 데이터 파일들이 호출될 수 있고, 그에 의해 워크플로우 관리자는 적절한 계산 및/또는 압축해제 데이터베이스 인스턴스를 스핀 업하여 요청자에게 제시하기 위해 결과 데이터를 압축해제할 것이다. 유의할 점은 다양한 경우들에서, 지정된 계산 및 압축 인스턴스뿐만 아니라 지정된 계산 및 압축해제 인스턴스는 단일 또는 다수의 인스턴스들일 수 있고, CPU, FPGA, 또는 타이트하게 결합된 CPU/FPGA, 타이트하게 결합된 CPU/CPU, 또는 타이트하게 결합된 FPGA/FPGA로 구현될 수 있다는 점이다. 특정 경우들에서, 이들 및 본 명세서에 개시된 다른 인스턴스들 중 하나 이상은 양자 프로세싱 유닛으로서 구현될 수 있다.
따라서, 본 명세서의 개시내용을 고려하여, 일 양태에서, 게놈 서열 분석 연산을 수행함에 있어서 다수의 연산들 중 하나 이상을 수행하는 디바이스가 제공된다. 예를 들어, 일단 데이터가, 예를 들어, 원격 사용자(100)에 의해 수신되고/되거나 클라우드 기반 시스템 내에 저장되면(400), 입력 데이터는 WMS에 의해 액세스될 수 있고, 추가 프로세싱을 위해, 예를 들어, 2차 분석을 위해 준비될 수 있고, 그 후 그의 결과들은, 예를 들어, 압축되고, 저장(400)되고/되거나, 시스템(300)에 의해 추가적인 프로세싱, 예를 들어, 3차 프로세싱을 겪은 후에 다시 로컬 사용자(100)에 전송될 수 있다.
특정 경우들에서, 본 명세서에 개시된 2차 프로세싱 단계들은, 특정한 구현들에서, 로컬 컴퓨팅 리소스(100)에 의해 수행될 수 있고, 소프트웨어 및/또는 하드웨어에 의해, 예컨대 박스 상부 컴퓨팅 리소스(200)에 의해 실행되는 것에 의해 구현될 수 있고, 여기서 컴퓨팅 리소스(200)는 CPU들의 코어, 예컨대 약 4개 내지 약 14개 내지 약 24개 또는 그 이상의 CPU 코어들을 포함하고, 하나 이상의 FPGA를 추가로 포함할 수 있다. 로컬 박스 상부 컴퓨팅 리소스(100)는 120GB의 RAM 메모리와 같은 큰 저장 블록(200)에 액세스하도록 구성될 수 있고, 이 액세스는 직접적(예컨대 그와 직접 결합되는 것에 의해), 또는 간접적(예컨대 로컬 클라우드 기반 네트워크(30)를 통해 그와 통신가능하게 결합되는 것에 의해)일 수 있다.
구체적으로는, 로컬 시스템 내에서, 데이터가 적합하게 구성된 SSD 드라이브들을 통해 메모리(200)로 또는 그로부터 전송될 수 있고, 이 드라이브들은 메모리(200)에 프로세싱 작업 데이터, 예를 들어, 프로세싱될 게놈학 작업들을 기입하고, 그로부터 프로세싱된 결과 데이터를 판독하도록 적응되어 있다. 다양한 실시예들에서, 로컬 컴퓨팅 리소스(100)는 서열분석기(110)에 통신가능하게 결합될 수 있고 이로부터, 예를 들어, 서열분석기로부터 BCL 및/또는 FASTQ 파일이 획득되고, SSD 드라이버들에 직접 예컨대 적합하게 구성된 인터커넥트를 통해 기입될 수 있다. 그 후, 로컬 컴퓨팅 리소스(100)는 데이터에 대해 하나 이상의 2차 프로세싱 연산을 수행할 수 있다. 예를 들어, 일 실시예에서, 로컬 컴퓨팅 리소스는 24개의 CPU를 갖는 LINUX® 서버이고, 이 CPU들은 본 명세서에 개시된 2차 프로세싱 연산들 중 하나 이상을 수행하도록 적응되는 적합하게 구성가능한 FPGA에 결합될 수 있다.
그러므로, 특정한 경우들에서, 로컬 컴퓨팅 디바이스(100)는 유전학 데이터에 대해 2차 및/또는 3차 프로세싱 중 하나 이상을 수행하도록 구성되는 BioIT 칩셋을 갖는 "작업대" 컴퓨팅 솔루션일 수 있다. 예를 들어, 본 명세서에 개시된 바와 같이, 컴퓨팅 리소스(100)는, 컴퓨팅 디바이스에 삽입되고 그에 의해 하나 이상의 내부 CPU, GPU, QPU 코어 및/또는 연관된 메모리와 연관되는 PCIe 카드와 연관될 수 있다. 특정하게는, 그 안에 하나 이상의 FPGA/ASIC 칩셋을 갖는 프로세싱 유닛들, 연관된 메모리들, 및/또는 연관된 PCIe 카드(들)를 포함하는 컴퓨팅 디바이스(100)의 컴포넌트들은 서로 통신할 수 있고, 이들 모두는 하우징 내에, 예컨대, 본 기술분야 내에 전형적인 박스 세트 방식으로 제공될 수 있다. 더 특정하게는, 박스 세트는 작업대 사용을 위해 구성될 수 있고, 또는 다양한 경우들에서, 그것은 원격으로 액세스 가능한 서버 랙 내에서 구성 및 제공 및/또는 사용 가능할 수 있다. 다른 실시예들에서, CPU/FPGA/메모리 칩셋들 및/또는 연관된 인터커넥트 익스프레스 카드(들)는 차세대 서열 분석 디바이스 내에서 그와 하나의 유닛을 형성하도록 연관될 수 있다.
따라서, 하나의 특정한 경우에, 데스크톱 박스 세트는 하나 이상의 FPGA에 결합된 복수의 CPU/GPU/QPU를 포함할 수 있는데, 예컨대 단일 하우징 내에서, 1개, 또는 2개, 또는 3개, 또는 그 이상의 FPGA에 결합될 수 있는, 4개의 CPU/GPU, 또는 8개, 또는 12개, 16개, 20개, 22개 또는 24개의 CPU, 또는 그 이상을 포함할 수 있다. 구체적으로는, 하나의 특정한 경우에, 박스 세트 컴퓨팅 리소스가 제공되고, 이 컴퓨팅 리소스는 24개의 CPU 코어, 재구성가능한 FPGA, 데이터베이스, 예를 들어 128x8 RAM, 하나 이상의 SSD를 포함하고, 예컨대 이 경우 FPGA는 연산들 사이에, 예컨대 매핑 및 정렬을 수행하는 것 사이에 적어도 부분적으로 재구성가능하도록 적응된다. 따라서, 그러한 경우에, 서열 분석 장치(110)에 의해 생성된 BCL 및/또는 FASTQ 파일들은, 프로세싱을 위해, CPU로 판독되고/되거나 FPGA로 전송될 수 있고, 그의 결과 데이터는 SSD 드라이브들을 통해 연관된 CPU로 다시 판독될 수 있다. 결과적으로, 이 실시예에서, 로컬 컴퓨팅 시스템(100)은 연관된 FPGA에 다양한 고 계산 기능성들을 오프로드하도록 구성될 수 있고, 그에 의해 생물정보학 프로세싱의 속도, 정확도, 및 효율을 향상시킬 수 있다. 그러나, 비록 데스크톱 박스 세트 솔루션(100)이, 예를 들어, 로컬 시설에서 유용하는 하지만, 그것은 박스 세트로부터 원격으로 위치할 수 있는 복수의 사용자에 의해 액세스되는 데는 적합하지 않을 수 있다.
특정하게는, 다양한 경우들에서, 클라우드 기반 서버 솔루션(50)이 제공될 수 있고, 예컨대 이 경우 서버(300)가 원격으로 액세스 가능할 수 있다. 따라서, 특정한 경우들에서, 본 명세서에 개시된 집적 회로들(CPU, FPGA, QPU) 중 하나 이상이 제공되어 클라우드(50) 기반 인터페이스를 통해 액세스되도록 구성될 수 있다. 그러므로, 특정한 경우들에서, 위에 설명된 바와 같은, 작업대 박스 세트 컴퓨팅 리소스가 제공될 수 있고, 여기서 박스 세트 구성은 클라우드에 휴대용이도록 그리고 원격으로 액세스 가능하도록 구성된다. 그러나, 그러한 구성은 원격 사용자들로부터의 많은 양의 트래픽을 핸들링하기에 충분하지 않을 수 있다. 따라서, 다른 경우들에서, 본 명세서에 개시된 집적 회로들 중 하나 이상은 서버 랙의 일부로서 구성 가능한 서버 기반 솔루션(300)으로서 구성될 수 있고, 예컨대 이 경우 서버 액세스 가능한 시스템은 예컨대 클라우드(50)를 통해 원격으로 액세스되도록 특정하게 구성된다.
예를 들어, 일 실시예에서, 컴퓨팅 리소스, 또는 하나 이상의, 예를 들어, 다수의 CPU 및/또는 GPU 및/또는 QPU 코어들, 및 연관된 메모리들을 갖는 로컬 서버(100)가 본 명세서에 개시된 FPGA들/ASIC들 중 하나 이상과 함께 제공될 수 있다. 특정하게는, 위에 지적한 바와 같이, 일 구현에서, 데스크톱 박스 세트가 제공될 수 있고, 이 박스 세트는 SSD들, 128 x 8 RAM, 및 하나 이상의 BioIT FPGA/ASIC 회로들을 갖는 18 내지 20개 내지 24개 또는 그 이상의 CPU/GPU 코어 박스 세트를 포함하고, 박스 세트가 원격으로 액세스 가능할 수 있게 하는 방식으로 적응되는 송신기들, 수신기들, 안테나들뿐만 아니라 WIFI, 블루투스, 및/또는 셀룰러 통신 능력들을 갖는 적합하게 구성된 통신 모듈을 추가로 포함한다. 단일 FPGA가 제공되는 경우와 같은 이 구현에서, FPGA(들)는 게놈학 분석 파이프라인의 다양한 단계들 중 하나 이상 사이에 재구성되도록, 예컨대 부분적으로 재구성되도록 적응될 수 있다.
그러나, 다른 경우들에서, 서버 시스템이 제공되고, 최대 약 20개 내지 24개 내지 30개 내지 34개 내지 36개 또는 그 이상의 CPU/GPU 코어들 및 약 972GB의 RAM, 또는 그 이상을 포함할 수 있고, 이는 하나 이상의, 예컨대, 약 2개 또는 4개 또는 약 6개 또는 약 8개 또는 그 이상의 FPGA들과 연관될 수 있고, 이 FPGA들은 본 명세서에 설명된 바와 같이 구성가능할 수 있다. 예를 들어, 일 구현에서, 하나 이상의 FPGA는 게놈학 분석 파이프라인의 다양한 단계들 중 하나 이상 사이에 재구성되도록, 예컨대 부분적으로 재구성되도록 적응될 수 있다. 그러나, 다양한 다른 구현들에서, 전용 FPGA들의 세트가 제공될 수 있고, 예컨대 이 경우 각각의 FPGA는 매핑, 정렬, 변이 추출 등과 같은 특정 BioIT 연산을 수행하도록 전용되고, 그에 의해 재구성 단계를 제거한다.
따라서, 다양한 경우들에서, 하나 이상의 FPGA가 제공될 수 있고, 예컨대 이 경우 FPGA(들)는 다양한 파이프라인 연산들 사이에 재구성가능하도록 적응된다. 그러나, 다른 경우들에서, FPGA들 중 하나 이상은 부분적으로 또는 완전히 구성될 필요없이 하나 이상의 함수를 수행하는 것에 전용되도록 구성될 수 있다. 예를 들어, 본 명세서에 제공된 FPGA들은 BioIT 파이프라인에서 하나 이상의 계산 집약적 연산들을 수행하는 것에 전용되도록 구성될 수 있고, 예컨대 이 경우 하나의 FPGA는 제공되어 매핑 연산을 수행하는 것에 전용되고, 다른 FPGA는 제공되어 정렬 연산을 수행하도록 구성된다(비록 일부 경우들에서는, 단일 FPGA가 제공되어 매핑 및 정렬 연산 양쪽 모두를 수행하는 것 사이에 적어도 부분적으로 재구성되도록 구성될 수 있지만).
추가적으로, 재구성가능하거나 전용되는 FPGA에 의해 또한 수행될 수 있는 파이프라인의 다른 연산들은 BCL 변환/전치 연산, 스미스-워터만 연산, HMM 연산, 로컬 재정렬 연산, 및/또는 다양한 다른 변이 추출 연산들을 포함할 수 있다. 마찬가지로, 다양한 파이프라인 연산들은 시스템의 연관된 CPU들/GPU들/QPU들 중 하나 이상에 의해 수행되도록 구성될 수 있다. 그러한 연산들은, 예컨대 소팅, 중복제거, 및 다른 변이 추출 연산들을 수행하기 위한, 파이프라인의 하나 이상의 덜 계산 집약적인 연산들일 수 있다. 그러므로, 중요한 시스템은 CPU/GPU/QPU에 의한 부분과 하드웨어에 의한, 예컨대 시스템의 FPGA/ASIC에 의한 부분의 연산들의 조합을 수행하도록 구성될 수 있다.
따라서, 도 40b와 관련하여 알 수 있는 바와 같이, 클라우드 기반 시스템(50)의 다양한 구현들에서, 시스템은 복수의 인스턴스, 및/또는 인스턴스들의 레벨들을 포함하는 복수의 컴퓨팅 리소스를 포함할 수 있고, 예컨대 이 경우 인스턴스들 및/또는 인스턴스들의 층들은 본 명세서에 개시된 BioIT 파이프라인 연산들 중 하나 이상을 수행하도록 구성된다. 예를 들어, 본 명세서에 제공된 게놈 파이프라인 분석의 전용 함수들을 수행하기 위해 다양한 CPU/GPU/QPU 및/또는 하드와이어드 집적 회로 인스턴스들이 제공될 수 있다. 예를 들어, 매핑을 수행하기 위한 FPGA 인스턴스, 정렬을 수행하기 위한 다른 것, 로컬 재정렬 및/또는 다른 스미스-워터만 연산들을 수행하기 위한 다른 것, HMM 연산을 수행하기 위한 다른 것 등과 같은, 전용 게놈 분석 연산들을 수행하기 위한 다양한 FPGA 인스턴스들이 제공될 수 있다.
마찬가지로, 신호 프로세싱, 소팅, 중복제거, 압축, 다양한 변이 추출 연산 등을 수행하기 위한 CPU/GPU/QPU 인스턴스와 같은 전용 게놈 분석 연산들을 수행하기 위한 다양한 CPU/GPU/QPU 인스턴스들이 제공될 수 있다. 그러한 경우들에서, 예컨대 시스템 전체에 걸쳐 계산되고, 컴파일되고, 프로세싱됨에 따라 결과 데이터를 수신하기 위한, 파이프라인의 다양한 계산 단계들 사이에, 예컨대 다양한 CPU 및/또는 FPGA 인스턴스들 및/그의 층들 사이에, 연관된 메모리 또는 메모리들이 제공될 수 있다. 게다가, 유의해야 할 점은 다양한 CPU 및/또는 FPGA 인스턴스들의 크기는 클라우드 기반 시스템의 계산 요구에 따라 달라질 수 있고 작은 것부터 내지 중간 것 내지 큰 것 내지 매우 큰 것까지 이르기까지 다양할 수 있으며, CPU/GPU/QPU 및 FPGA/ASIC 인스턴스들의 수도 마찬가지로 달라질 수 있다는 점이다.
추가적으로, 도 40b와 관련하여 알 수 있는 바와 같이, 시스템은 시스템 전체에 걸쳐 그리고 하나의 인스턴스로부터 다른 인스턴스로 및/또는 하나의 메모리로부터 다른 메모리로의 데이터의 이동을 스케줄링하고 지시하도록 구성되는 워크플로우 관리자를 추가로 포함할 수 있다. 일부 경우들에서, 메모리는 인스턴스 특정인 전용 메모리들인 복수의 메모리일 수 있고, 다른 경우들에서, 메모리는 탄성이고 따라서 하나의 인스턴스로부터 다른 인스턴스로 스위칭 가능한 하나 이상의 메모리, 예컨대, 스위칭 가능한 탄성 블록 저장 메모리일 수 있다. 또 다른 경우들에서, 메모리는 비특정적이고 따라서 예컨대 탄성 파일 저장을 위해, 복수의 인스턴스들 통신가능하게 결합될 수 있는 인스턴스일 수 있다.
게다가, 워크플로우 관리자는, 어떤 작업들이 수행될 필요가 있는지, 언제 그리고 어떤 리소스가 그러한 작업들의 수행에 활용될지를 결정하기 위해서뿐만 아니라 작업들을 큐잉하고 이들을 리소스에서 리소스로, 예컨대 인스턴스에서 인스턴스로 보내기 위해 전용되고/되거나 구성되는 CPU/GPU/QPU 코어와 같은 전용 인스턴스 자체일 수 있다. 워크플로우 관리자는, 프로세서, 예를 들어, CPU/GPU/QPU 코어에 의해 실행될 수 있는 전용 인스턴스인 탄성 제어 노드를 형성하고/하거나 부하 추정기를 포함할 수 있거나 달리 이로서 구성될 수 있다. 다양한 경우들에서, 워크플로우 관리자는 그에 연결된 데이터베이스를 가질 수 있으며, 이는 프로세싱될 필요하거나 프로세싱 중이거나 프로세싱 완료된 모든 작업들을 관리하도록 구성될 수 있다. 그러므로, WMS 관리자는 시스템 전체에 걸쳐 데이터가 어떻게 흐르는지를 검출 및 관리하고, 시스템 리소스들을 어떻게 할당하고, 언제 더 많은 리소스들을 온라인으로 가져올지를 결정하도록 구성될 수 있다.
위에 지적한 바와 같이, 특정 경우들에서, 작업대 및/또는 서버 기반 솔루션 양쪽 모두가 제공될 수 있으며, 여기서 컴퓨팅 디바이스는 Z의 크기를 갖는 하나 이상의 FPGA로 공급하도록 구성될 수 있는 크기 Y를 갖는 복수의 X CPU 코어 서버를 포함하고, 여기서 X, Y, 및 Z는 시스템의 프로세싱 요구에 따라 달라질 수 있지만, 최적화되도록 선택되고/되거나 달리 구성되어야 하는 수들이다(예를 들어, 10, 14, 18, 20, 24, 30 등). 예를 들어, 전형적인 시스템 구성들은 본 명세서에 설명된 시스템의 BioIT 연산들을 수행하기 위해 최적화된다. 구체적으로는, 특정 시스템 구성들은 다양한 CPU/GPU/QPU 인스턴스들로부터 시스템의 FPGA들과 같은 다양한 집적 회로들로의 데이터의 흐름을 최대화하도록 최적화되었으며, 여기서 CPU 및/또는 FPGA의 크기는 시스템의 프로세싱 요구들에 기초하여 서로 관련하여 달라질 수 있다. 예를 들어, CPU 및/또는 FPGA 중 하나 이상은 비교적 작은, 중간인, 큰, 특대형(extra-large), 또는 특특대형(extra-extra-large)인 크기를 가질 수 있다. 더 구체적으로는, 시스템 아키텍처는 CPU/FPGA 하드웨어가, 모든 실행 시간들 동안에 양쪽 인스턴스 플랫폼들을 비지(busy) 상태로 유지하도록 최적으로 효율적인 방식으로 실행되도록 크기가 정해지고 구성되는 방식으로 구성될 수 있고, 예컨대 이 경우 CPU들은 FPGA(들)보다 4 대 1, 8 대 1, 16 대 1, 32 대 1, 64 대 2 등으로 수적으로 우세하다.
그러므로, 비록 큰 FPGA 능력들을 갖는 것이 일반적으로 양호하지만, 프로세싱될 필요가 있는 충분한 데이터가 시스템에 공급되고 있는 것이 아니라면, 데이터를 프로세싱하기 위해 고용량 FPGA를 갖는 것은 효율적이지 않을 수 있다. 그러한 경우에, 단일 또는 부분 FPGA만이 구현될 수 있다. 특정하게는, 이상적인 배열에서, 워크플로우 관리 시스템은 시스템 및 그것의 컴포넌트들을 풀타임 계산중인 상태로 유지하는 방식으로 구성되는 식별된 CPU들 및/또는 FPGA들에 데이터의 흐름을 지시한다. 예를 들어, 하나의 예시적인 구성에서, 하나 이상의, 예를 들어, 2개, 3개, 또는 4개 또는 그 이상의 CPU/GPU/QPU 코어들이 작은, 중간, 큰, 특대형 FPGA, 또는 그의 일부로 데이터를 공급하도록 구성될 수 있다. 구체적으로는, 일 실시예에서, 예컨대 본 명세서에 개시된 BioIT 프로세싱 연산들 중 하나 이상을 수행하기 위한, CPU 특정 인스턴스가 제공될 수 있고, 예컨대 이 경우 CPU 인스턴스는 클라우드 액세스 가능하고 4, 8, 16, 24, 30, 36개까지 CPU 코어들을 포함하고, 이 코어들은 하나 이상의 FPGA의 일부에 동작가능하게 결합되도록 구성될 수도 있고 구성되지 않을 수도 있다.
예를 들어, 클라우드 액세스 가능 서버 랙(300)이 제공될 수 있는데, 여기서 서버는 FPGA 인스턴스에 동작가능하게 연결 가능한 약 4개의 CPU 코어 내지 약 16개 내지 약 24개의 CPU 코어를 갖는 CPU 코어 인스턴스를 포함한다. 예를 들어, FPGA 인스턴스가 제공될 수 있고, 예컨대 이 경우 FPGA의 평균 크기가 X이고, 포함된 FPGA는 약 1/8X, X, 2.5X에서 8X까지, 또는 심지어 약(16X), 또는 그 이상의 크기일 수 있다. 다양한 경우들에서, 추가적인 CPU/GPU/QPU 코어들 및/또는 FPGA들이 포함되고/되거나 조합된 인스턴스로서 제공될 수 있고, 예컨대 이 경우 프로세싱할 많은 양의 데이터가 존재하고, 여기서 CPU 코어들의 수는 FPGA(들)을 풀타임 비지 상태로 유지하도록 선택된다. 그러므로, CPU들 대 FPGA(들)의 비율은 데이터 흐름을 최적화하는 방식으로 조합되는 것에 의해 비례될 수 있고, 따라서, 시스템은, 예를 들어, 워크플로우에 기초한 이용을 최적화하면서 비용을 최소화하기 위해, 필요에 따라 탄성적으로 위 또는 아래로 스케일링되도록 구성될 수 있다.
그러나, CPU(들)가 FPGA를 비지 및/또는 완전히 활용되는 상태로 유지하기에 충분한 작업을 생성하지 않는 경우, 구성은 이상적이라고는 할 수 없을 것이다. 따라서, 모든 실행 시간 동안 양쪽 인스턴스 플랫폼들을 비지 상태로 유지하는 방식으로, 본 CPU들/GPU들/QPU들이 이용 가능한 FPGA(들), 및/또는 그 일부에 최적으로 공급하도록 보장하기 위해 CPU/FPGA 소프트웨어/하드웨어가 효율적으로 실행되도록 적응되는 방식으로, 함께 직접 결합될 수 있거나, 또는 함께 결합될 수 있는 하나 이상의 인스턴스의 유연한 아키텍처가 본 명세서에 제공된다. 따라서, 그러한 시스템이 클라우드로부터 액세스 가능하도록 허용하는 것은, 워크플로우 관리자에 의해 큐잉되고, 최적으로 효율적인 방식으로 데이터를 수신 및 프로세싱할 수 있도록 구성되는 특정 CPU/FPGA 리소스들로 보내지도록 복수의 데이터가 시스템에 제공되는 것을 보장할 것이다.
예를 들어, 일부 구성들에서, 클라우드 액세스 가능한 인스턴스들은 복수의 수 및 크기의 CPU들/GPU들/QPU들을 포함할 수 있고, 추가적으로, 복수의 수 및 크기의 FPGA들(또는 ASIC들) 및/또는 QPU들을 포함하는 클라우드 액세스 가능한 인스턴스들이 존재할 수 있다. 심지어 이들 인스턴스의 조합을 갖는 인스턴스들이 있을 수도 있다. 그러나, 다양한 반복들에서, 제공된 CPU/GPU/QPU 및/또는 FPGA/QPU 및/또는 혼합된 인스턴스들은 본 명세서에 개시된 본 BioIT 파이프라인 프로세싱 플랫폼들을 효율적으로 실행하기 위해 하나의 인스턴스는 너무 많이 및/또는 다른 인스턴스는 너무 적게 가질 수 있다. 따라서, 예컨대 클라우드(50)를 통해 액세스 가능하게 만들어지는, 파이프라인들의 생물정보학 및/또는 게놈학 프로세싱 플랫폼의 효율적인 형성 및/또는 사용을 위한 시스템들 및/또는 아키텍처들, 그것의 유연한 조합들, 및/또는 이들을 구현하기 위한 방법들이 본 명세서에 제시된다.
그러한 시스템들에서, 선택된 CPU(들)/GPU들/QPU들의 수 및 구성들은 덜 계산 집약적인 연산들을 프로세싱하도록 선택되고 구성될 수 있고, FPGA(들) 및/또는 QPU들의 수 및 구성들은 계산 집약적인 작업들을 핸들링하도록 적응될 수 있고, 예컨대 이 경우 데이터는 CPU/GPU/QPU와 FPGA/QPU 인스턴스들 사이에서 심리스하게 앞뒤로 전달된다. 추가적으로, 절차들의 다양한 단계들 사이 및/또는 다양한 상이한 인스턴스 유형들 사이에 데이터, 예를 들어, 결과 데이터의 저장을 위한 하나 이상의 메모리가 제공될 수 있고, 그에 의해 상당한 인스턴스 레이턴시의 기간을 피한다. 구체적으로는, 매핑 및 정렬 동안, 계산의 집약적인 속성 때문에 CPU/GPU가 거의 이용되지 않고, 이들 작업은 하드웨어 구현에 의해 수행되도록 구성된다. 마찬가지로, 변이 추출 동안, 작업들은 그들의 작업들에서 CPU/FPGA 인스턴스들 사이에 거의 상당히 분산되는 방식으로 분할될 수 있고, 예컨대 이 경우 스미스-워터만 및 HMM 연산들은 하드웨어에 의해 수행될 수 있고, 다양한 다른 연산들은 하나 이상의 CPU/GPU/QPU 인스턴스들 상에서 실행되는 소프트웨어에 의해 수행될 수 있다.
따라서, 본 명세서에 설명된 아키텍처 파라미터들은 반드시 일-세트 아키텍처로 제한되지는 않고, 오히려 시스템은 그의 구현들을 조직하고, 워크플로우 관리자에 의존하여 어떤 인스턴스들이 언제, 어떻게, 그리고 얼마나 오래 활성인지를 결정하고, 어느 인스턴스들에 대해 어느 계산들이 수행되는지를 지시하기 위해 더 많은 유연성을 갖도록 구성된다. 예를 들어, 온라인으로 가져오고, 동작적으로 함께 결합될 CPU들 및/또는 FPGA들의 수는 활성화된 CPU들 및 FPGA들뿐만 아니라 그들에 수반되는 소프트웨어/하드웨어가 최적으로 비지 상태로 유지되는 방식으로 선택되고 구성되어야 한다. 특정하게는, CPU들의 수, 및 그들의 기능은, FPGA들의 수, 또는 그의 일부를 풀타임 비지 상태로 유지하도록, 따라서, CPU들은 FPGA(들)에 최적으로 그리고 효율적으로 공급하여, 양쪽 인스턴스들 및 그들의 컴포넌트 부분들을 능숙하게 실행되는 상태로 유지하도록 구성되어야 한다.
그러므로, 이러한 방식으로, 시스템의 워크플로우 관리 컨트롤러는 워크플로우에 액세스하여 그것을, CPU들/GPU들/QPU들에 의해 더 최적으로 수행될 수 있는 작업들이 그들 연산을 최적으로 수행하기 위해 필요한 수의 CPU들에 보내지도록, 그리고 FPGA(들)/ASIC들/QPU들에 의해 더 최적으로 수행될 수 있는 작업들이 이들 연산을 최적으로 수행하기 위해 필요한 수의 FPGA들에 보내지도록 하는 방식으로, 조직 및 분할하도록 구성될 수 있다. 이들 연산의 결과 데이터를 하나의 인스턴스로부터 다른 인스턴스로 효율적으로 전송하기 위해 탄성 및/또는 효율적인 메모리가 추가로 포함될 수 있다. 이러한 방식으로, 머신들 및 메모리들의 조합은 수행될 작업의 범위, 및 그 작업을 효율적으로 그리고 더 비용 효과적으로 가장 잘 수행하기 위한 인스턴스들의 최적의 구성 및 사용에 기초하여 최적으로 스케일링되도록 구성되고 조합될 수 있다.
구체적으로는, 본 명세서에 설명에 클라우드 기반 아키텍처들은, 이전의 아키텍처 제안들에서의 다양한 공지된 결점들이, 그 형식으로 구현되는 것에 의해 최적화되도록 적절한 함수들을 수행하는 것에 올바른 인스턴스를 전용시킬 수 있도록 더 의도적인 방식으로 조직된, 예를 들어 FPGA들, 또는 그것의 부분들의 다양한 상이한 하드웨어 인스턴스들에 유연하게 더 많은 CPU/GPU/QPU 코어 인스턴스들이 액세스할 수 있게 함으로써 극복될 수 있는 비효율들을 야기할 수 있다는 것을 보여준다. 예를 들어, 시스템은 선택된 FPGA 인스턴스(들) 풀타임 비지 상태로 유지하기 위해 이용 가능한 FPGA/QPU 인스턴스(들)에 최적으로 공급될 수 있는 결과 데이터를 생성하는 데 풀타임 비지 상태가 되도록 원격으로 액세스 가능할 수 있는 더 많은 비율의 이용 가능한 CPU/GPU 인스턴스들이 존재하도록 구성될 수 있다. 따라서, 가능한 한 효율적이고 풀타임 비지 상태인 구조화된 아키텍처를 제공하는 것이 바람직하다. 유의해야 할 점은 너무 적은 수의 CPU들이 너무 많은 FPGA들에 공급하여 FPGA들 중 하나 이상이 불충분하게 활용되는 구성은 효율적이지 않으므로 피해야 한다는 점이다.
일 구현에서, 도 40b와 관련하여 알 수 있는 바와 같이, 아키텍처는 제1 수의 X CPU 코어들, 예를 들어 4개 내지 약 30개의 CPU 코어들을 갖는 제1 레벨, 및 1개 내지 12개 또는 그 이상의 FPGA 인스턴스들을 갖는 제2 레벨과 같은 여러 상이한 층들 또는 레벨들을 사실상 포함하도록 구성될 수 있으며, 여기서 FPGA들의 크기는 작은 것에서 중간 내지 큰 것 등으로 다양할 수 있다. CPU 코어들의 제3 레벨 및/또는 추가 FPGA들의 제4 레벨 등이 또한 포함될 수 있다. 그러므로, 클라우드 기반 서버(300)에는, 예컨대 본 명세서에 설명된 하나 이상의 레벨에, 다수의 이용 가능한 인스턴스, 예컨대 단순히 CPU들 또는 GPU들을 포함하는 인스턴스들 및/또는 FPGA들을 포함하는 인스턴스들 및/또는 이들의 조합들이 존재한다. 따라서, 이와 같은 방식으로, 아키텍처는 가장 집약적인, 특정 컴퓨팅 함수들은 하드웨어 인스턴스들 또는 QPU들에 의해 수행되고, CPU들을 통해 실행될 수 있는 함수들은 일반적인 프로세싱 목적들을 위해 적절한 레벨에서의 적절한 CPU/GPU에 보내지도록 유연하게 또는 탄성적으로 조직될 수 있고, 필요한 경우 CPU/FPGA 인스턴스들의 수는 필요에 따라 시스템 내에서 증가 또는 감소될 수 있다.
예를 들어, 아키텍처는 시스템 비용을 최소화하면서 동시에 최적의 이용을 최대화하도록 탄성적으로 크기가 정해질 수 있다. 구체적으로는, 아키텍처는 다양한 상이한 가상 레벨들에서 다양한 인스턴스들을 조합함으로써 효율을 최대화하고 레이턴시를 감소시키도록 구성될 수 있다. 특정하게는, 복수의, 예를 들어, 상당한 및/또는 모든, 레벨 1 CPU/GPU 인스턴스들이 매핑 FPGA 및/또는 정렬 FPGA와 같은 특정 함수들을 수행하도록 특정하게 구성된 다양한 레벨 2 FPGA 인스턴스들에 공급하도록 구성될 수 있다. 추가 레벨에서, 예컨대 소팅 및/또는 중복제거 연산들 및/또는 다양한 변이 추출 연산들을 수행하기 위한, 하나 이상의 추가적인(또는 레벨 1과 동일한) CPU들이 제공될 수 있다. 게다가 또한, FPGA들의 하나 이상의 추가적인 층들이 니들만-분쉬, 스미스-워터만, HMM, 변이 추출 연산 등을 수행하도록 구성될 수 있다. 그러므로, 제1 레벨 CPU들은 예컨대 추가 파이프라인 분석을 위해 데이터의 큐잉 및 준비를 포함하는, 일반적인 프로세싱 단계들을 수행하기 위해, 게놈학 분석의 초기 레벨을 형성하는 데 관여할 수 있고, 그 데이터는 일단 하나 또는 다수의 CPU들에 의해 프로세싱되면, 하나 이상의 추가 레벨의 전용 FPGA 인스턴스들에 공급될 수 있고, 예컨대 이 경우 FPGA 인스턴스는 집약적인 컴퓨팅 함수들을 수행하도록 구성된다.
이러한 방식으로, 특정한 구현에서, 파이프라인 내의 CPU/GPU 인스턴스들은 그들의 데이터를, 일단 준비되면, 하나 또는 2개의 매핑 및 정렬 레벨 2 FPGA 인스턴스들로 라우팅한다. 일단 매핑의 수행이 완료되면, 결과 데이터는 메모리에 저장되고/되거나 그 후 정렬 인스턴스로 공급될 수 있으며, 여기서 예컨대 적어도 하나의 전용 레벨 2 FPGA 인스턴스에 의해 정렬이 수행될 수 있다. 마찬가지로, 프로세싱된 매핑 및 정렬된 데이터는 그 후 메모리에 저장되고/되거나 추가 프로세싱을 위해 레벨 3 CPU 인스턴스로 보내질 수 있는데, 이는 동일한 레벨 1이거나, 예컨대 덜 프로세싱 집약적인 게놈학 분석 함수를 수행하기 위한, 예컨대 소팅 함수를 수행하기 위한 상이한 인스턴스일 수 있다. 추가적으로, 일단 레벨 3 CPU들이 그들의 프로세싱의 수행을 완료하면, 그 후 결과적인 데이터는, 예컨대 추가 게놈학 프로세싱 집약적인 기능들을 위해, 예컨대 예를 들어, NW 또는 SW 전용 FPGA 인스턴스에서, 니들만-분쉬(NW), 스미스-워터만(SW) 프로세싱 함수를 수행하기 위해, 다시 다른 레벨 2 인스턴스들의 FPGA들로, 또는 레벨 4 FPGA 인스턴스로 포워딩될 수 있다. 마찬가지로, 예컨대 SW 전용 FPGA에 의해 일단 SW 분석의 수행이 완료되면, 프로세싱된 데이터는 하나 이상의 연관된 메모리로 전송되고/되거나, 추가로 프로세싱 파이프라인을 따라, 예컨대 전용 FPGA 및/또는 추가 층의 CPU 프로세싱 코어에서, 예컨대 HMM 및/또는 변이 추출 분석을 수행하기 위해, 다른, 예를 들어, 레벨 4 또는 5, 또는 다시 레벨 1 또는 3의, CPU 및/또는 FPGA 인스턴스로 전송될 수 있다.
이와 같은 방식으로, 레이턴시 및 효율 문제들은 하나 이상의 상이한 레벨 상의, 다양한 상이한 인스턴스들을 조합하여, 게놈학 프로세싱을 위한 파이프라인 플랫폼을 제공하는 것에 의해 극복될 수 있다. 그러한 구성은 인스턴스들의 스케일링 및/또는 조합보다 더 많은 것을 수반할 수 있으며, 인스턴스들은 전용 함수를 수행하는 것에 특수화되도록 구성될 수 있다. 그러한 경우에, 단일 인스턴스가 파이프라인의 엔드-투-엔드 프로세싱을 수행하기보다는, 매핑 FPGA 인스턴스는 매핑만 수행하고, 마찬가지로 정렬 FPGA는 정렬만을 수행하고, 등등이다. 하지만, 다른 구성들에서, FPGA들 중 하나 이상이, 예컨대 파이프라인 작업들을 수행하는 사이에, 적어도 부분적으로 재구성될 수 있다. 예를 들어, 특정 실시예들에서, 본 명세서에서 수행될 게놈학 분석들은 다단계 프로세스이므로, FPGA 상의 코드는 프로세싱 프로세스를 통해 중도에서 변경되도록 구성될 수 있는데, 예컨대 FPGA가 매핑 연산을 완료하는 경우, 그것은 정렬, 변이 추출, 스미스-워터만, HMM 등 중 하나 이상을 수행하도록 재구성될 수 있다.
그러므로, 파이프라인 관리자, 예를 들어, 워크플로우 관리 시스템은 레벨 1 CPU 인스턴스들에 의해 형성되는 게놈학 프로세싱 요청들의 큐를, 개별 작업들로 분해되고, 집성되고, 적절한 작업 특정 CPU로 라우팅되고 그 후 예를 들어 레벨 2에서, 추가 프로세싱을 위한, 예컨대 매핑 및/또는 정렬을 위한 작업 특정 FPGA 인스턴스들로 라우팅되도록 관리하는 기능을 할 수 있고, 매핑 및 정렬된 데이터는 일단 프로세싱되면, 예컨대 변이 추출 모듈의 다양한 단계들의 수행을 위해, 결과 데이터의 CPU/FPGA 프로세싱의 다음 레벨로 역방향 또는 순방향으로 전송될 수 있다.
예를 들어, 변이 추출 함수는 소프트웨어로 수행될 수 있는 복수의 연산들로 분할되고, 그 후 하나 이상의 FPGA 하드웨어 인스턴스들에서 스미스-워터만 및/또는 HMM 프로세싱으로 포워딩되고, 그 후 계속된 변이 추출 연산들을 위해 CPU로 전송될 수 있으며, 예컨대 이 경우 전체 플랫폼은 고가의 FPGA 인스턴스들의 비용을 최소화하면서, 이용을 최대화하고, 레이턴시를 최소화하고, 따라서 연산들을 최적화하도록 탄성적으로 그리고/또는 효율적으로 크기가 정해지고 구현될 수 있다. 따라서, 이러한 방식으로, 그들의 순수 프로세싱 용량 및 하드와이어드 특이성 때문에 더 적은 하드웨어 인스턴스들이 필요하고, 따라서, FPGA의 수와 CPU의 수가 최소화될 수 있으며, 그들의 예를 들어, FPGA들의 사용이 최대화될 수 있고, 따라서 시스템은 모든 인스턴스들을 풀타임 비지 상태로 유지하도록 최적화된다. 그러한 구성은 게놈학 프로세싱 분석을 위해, 특히 매핑, 정렬, 및 변이 추출을 위해 최적으로 설계된다.
본 명세서에 개시된 파이프라인 아키텍처에, 예를 들어, 부착물로서 포함될 수 있는 추가적인 구조적 요소는, 파이프라인의 전체에 걸쳐 데이터, 예를 들어, 결과 데이터가 전이됨에 따라 이 데이터의 블록 저장을 제공하는 기능을 하도록 구성될 수 있는 하나 이상의 탄성 및/또는 효율적인 메모리 모듈들이다. 따라서, 하나 이상의 탄성 블록 데이터 저장(EBDS) 및/또는 하나 이상의 효율적인(유연한) 블록 데이터 저장 모듈들이 하나 이상의 프로세싱 레벨들 사이에, 예를 들어, 상이한 인스턴스들 및/또는 인스턴스 레벨들 사이에 삽입될 수 있다. 그러한 경우에, 저장 디바이스는 데이터가 프로세싱되고 결과들이 획득됨에 따라, 프로세싱된 결과들이, 예컨대 전용 FPGA 프로세싱 모듈에 의한, 다음 레벨의 프로세싱으로 라우팅되기 전에 저장을 위해 저장 디바이스에 보내질 수 있도록 구성될 수 있다. 동일한 저장 디바이스가 모든 인스턴스들 사이에 이용될 수 있거나, 다수의 저장 디바이스들이 예컨대 결과 데이터의 저장 및/또는 컴파일을 위해 및/또는 큐잉을 위해, 다양한 인스턴스들 및/또는 인스턴스 레벨들 사이에 이용될 수 있다. 따라서, 하나 이상의 메모리는 시스템의 다양한 인스턴스들이 동일한 또는 유사한 파일들을 보고 그에 액세스할 수 있도록 동일한 메모리에 결합되고/되거나 그에 액세스할 수 있는 방식으로 제공될 수 있다. 따라서, 하나 이상의 탄성 메모리(복수의 인스턴스에 순차적으로 결합될 수 있는 메모리) 및/또는 효율적인 메모리(복수의 인스턴스에 동시에 결합될 수 있는 메모리)가 존재할 수 있으며, 그에 의해 시스템의 다양한 인스턴스들이 동일한 또는 유사한 메모리에 대해 판독 및 기입하도록 구성된다.
예를 들어, 그러한 탄성 메모리들을 이용하는 구성들에 관련한 하나의 예시적인 실시예에서, 하나의 인스턴스 및/또는 하나의 프로세싱 레벨로부터 다른 것으로 직접 데이터를 전송하기 전에, 데이터는 저장을 위해 EBDS, 또는 다른 메모리 디바이스 또는 구조, 예를 들어, 효율적인 메모리 블록으로 라우팅되고, 그 이후 적절한 하드와이어드-프로세싱 모듈로 라우팅될 수 있다. 구체적으로는, 블록 저장 모듈이 메모리 저장을 위해 노드에 부착될 수 있고 여기서 데이터가 하나의 레벨에서의 저장을 위해 BSD에 기입될 수 있고, BSD는 저장된 데이터를 다음 프로세싱 레벨로 라우팅하기 위해 다른 노드로 플립될 수 있다. 이러한 방식으로, 하나 이상의, 예를 들어 다수의 BDS 모듈들이 파이프라인에 포함될 수 있고 파이프라인의 전체에 걸쳐 데이터의 전이에 참여하기 위해 하나의 노드에서 다른 노드로 플립되도록 구성될 수 있다.
게다가, 위에 지적한 바와 같이, 예컨대 하나의 인스턴스에서 다른 인스턴스로 스위칭될 필요없이, 하나 이상의 인스턴스에 동시에 결합될 수 있는 디바이스와 같은, 더 유연한 파일 저장 디바이스가 이용될 수 있다. 이와 같은 방식으로, 시스템은 시스템의 각각의 레벨에서 탄성적으로 스케일링될 수 있고, 예컨대 이 경우 각각의 레벨에는 그 레벨에서 데이터를 프로세싱하기 위한 상이한 수의 노드들이 있을 수 있고, 일단 프로세싱되면 결과 데이터는 하나 이상의 연관된 EBDS 디바이스들에 기입될 수 있고, 그 후 시스템의 다음 레벨로 스위칭되어 저장된 데이터를 해당 레벨에서의 특정 작업들의 수행을 위해 프로세서들의 다음 레벨에 이용 가능하게 만들 수 있다.
따라서, 데이터가 프로세싱, 예를 들어, 프리프로세싱을 위해 준비됨에 따라, 프로세싱 파이프라인에, 예를 들어, 그에 수반되는 노드들에 많은 단계들이 존재하고, 그 데이터는 일단 준비되면 하나의 레벨의 적절한 프로세싱 인스턴스로 보내지고 여기서 결과 데이터가 생성될 수 있고, 그 후 결과 데이터는 예를 들어 EDS 디바이스 내에 저장되고, 큐잉되고, 인스턴스들의 다음 노드로 플립됨으로써 다음 프로세싱 스테이지를 위해 준비되고, 다음 순서의 FPGA 및/또는 CPU 프로세싱 인스턴스들에 의한 프로세싱을 위해 다음 인스턴스로 라우팅될 수 있고, 여기서 추가 결과 데이터가 생성될 수 있고, 다시 일단 생성되면 결과 데이터는 동일한 것으로 다시 보내지거나 다음 프로세싱 스테이지로 진행되기 전에 저장을 위해 다음 레벨의 EDS로 포워딩될 수 있다.
특정하게는, 하나의 특정 구현에서, 파이프라인을 통한 흐름은 다음과 같이 보일 수 있다: CPU(예를 들어, 4 CPU 코어, 또는 C4 인스턴스): 데이터 준비(큐잉 및/또는 저장됨); FPGA(예를 들어, 2XL FPGA - 전체 서버의 1/8, 또는 F1 인스턴스): 매핑, 임시 저장; FPGA(예를 들어, 2XL FPGA - 전체 서버의 1/8, 또는 F1 인스턴스): 정렬, 임시 저장; CPU: 정렬, 임시 저장; CPU: 중복제거, 임시 저장; CPU: 변이 추출 1, 임시 저장; FPGA(예를 들어, F1 또는 16XL, 또는 F2 인스턴스): 스미스-워터만, 임시 저장; FPGA(예를 들어, F1 또는 F2 인스턴스): HMM, 임시 저장; CPU: 변이 추출 2, 임시 저장; CPU: VCGF, 임시 저장 등. 추가적으로, 시스템을 통한 데이터의 흐름을 제어 및/또는 지시하기 위해 워크플로우 관리 시스템이 포함될 수 있고, 예컨대 이 경우 WMS는 CPU 코어, 예컨대 4 코어 CPU, 또는 C4 인스턴스에서 구현될 수 있다. 유의할 점은 이들 단계 중 하나 이상은 임의의 논리적 순서로 수행될 수 있고, 예컨대 다양한 상이한 조합들로 소프트웨어 및/또는 하드웨어로 구현되는 임의의 적합하게 구성된 리소스에 의해 구현될 수 있다는 점이다. 그리고 유의해야 할 점은 이들 연산 중 임의의 것이 예컨대 본 명세서에 설명된 BioIT 프로세싱을 형성하기 위해, 하나 이상의 이론적인 프로세싱 레벨에서 하나 이상의 CPU 인스턴스 및 하나 이상의 FPGA 인스턴스 상에서 수행될 수 있다는 점이다.
지적한 바와 같이, 워크플로우 관리자가 포함될 수 있고, 예컨대 이 경우 WMS는 하나 이상의 CPU 코어에 구현된다. 그러므로, 다양한 경우들에서, WMS는 그것에 동작적으로 결합된 데이터베이스를 가질 수 있다. 그러한 경우에, 데이터베이스는 큐잉될 다양한 연산들 또는 작업들, 보류중인 작업들뿐만 아니라 이전에 또는 현재 수행될 모든 작업들의 이력을 포함한다. 이에 따라, WMS는 수행될 임의의 새로운 작업들을 식별하기 위해 시스템 및 데이터베이스를 모니터링한다. 결과적으로, 보류중인 작업이 식별될 때, WMS는 그 데이터에 대해 새로운 분석 프로토콜을 개시하고 그것을 적절한 인스턴스 노드(들)에 맡긴다. 따라서, 워크플로우 관리자는 모든 입력 파일들이 어디에 저장되어, 프로세싱되고 있는지, 또는 저장될 것인지를 계속 추적하여 알고, 따라서, 다양한 프로세싱 노드들의 인스턴스들에게 주어진 위치에서 각각의 파일들에 액세스하고, 파일들의 판독을 시작하고, 프로세싱 명령어들의 구현을 시작하고, 어디에 결과 데이터를 기입할지를 지시하고 명령한다. 그리고, 그런 이유로, WMS는 시스템들에게 결과 데이터를 다운 라인 프로세싱 노드들에 전달하는 것에 관해 지시한다. WMS는 또한 각각의 프로세싱 단계 또는 레벨의 동적 스케일링을 가능하게 하기 위해 언제 새로운 인스턴스를 작동시켜 온라인으로 가져올 필요가 있는지를 결정한다. 그러므로, WMS는 각각의 레벨에서 수행되어야 하는 개별 작업들을 식별하고, 조직하고, 지시하고, 추가로 기입되고 있는 결과 데이터를 메모리에 저장되도록 지시하고, 일단 하나의 작업이 완료되면, 다른 노드가 작동하고, 다음 작업을 판독하고, 다음 반복 연산을 수행한다.
이와 같은 방식으로, 입력 작업들은 많은 상이한 인스턴스들에 걸쳐 확산될 수 있고, 그 인스턴스들은 더 적은 또는 점점 더 많은 인스턴스들을 포함시킴으로써, 예를 들어, 독립적으로 또는 집합적으로 스케일링될 수 있다. 이들 인스턴스는 리소스들의 사용을 더 효율적으로 밸런싱하도록 노드들을 구축하기 위해 이용될 수 있으며, 여기서 그러한 인스턴스들은 부분 또는 전체 인스턴스를 포함할 수 있다. 워크플로우 관리자는 또한 예컨대 본 명세서에 개시된 프로세싱 단계들 사이에, 하나 이상의 메모리의 사용을 지시 및/또는 제어할 수 있다. 다양한 인스턴스들은 또한 서버를 가상화하기 위해 그것들이 서로 및/또는 다양한 메모리들과 통신하도록 허용하기 위해 상보적 프로그래밍을 포함할 수 있다. WMS는 또한 노드들의 사용을 탄성적으로 제어하기 위해 부하 추정기를 포함할 수 있다.
게다가, 메모리들의 사용에 관련하여, 하나 이상의 EBDS, 또는 다른 적합하게 구성된 데이터 및/또는 파일 저장 디바이스들이, 예컨대 다양한 상이한 프로세싱 단계들 사이에 일시적인 저장을 위해, 예를 들어, 다양한 레벨의 인스턴스들 사이에, 다양한 노드들 중 하나 이상에 부착될 수 있다. 그러므로, 저장 디바이스는 다양한 인스턴스들 모두에 결합되도록 구성된 단일 저장 디바이스, 예를 들어, 탄성 파일 저장과 같은 효율적인 메모리 블록일 수 있거나, 인스턴스들 사이에서 스위칭 가능한 인스턴스 또는 인스턴스 유형 당 하나의 저장 디바이스, 예를 들어 탄성 블록 저장 디바이스와 같은 다수의 저장 디바이스들일 수 있다. 따라서, 이와 같은 방식으로, 각각의 레벨의 프로세싱 인스턴스들 및/또는 메모리는 예컨대 하나 또는 여러 게놈을 프로세싱하기 위해, 예컨대 각각의 상이한 노드들 또는 노드 레벨들 사이에서, 필요에 따른 기준으로 탄성적으로 스케일링될 수 있다.
본 명세서에서의 아키텍처를 고려하여, 하나 또는 다수의 게놈들이, 예컨대, 도 1에서 지적한 바와 같이, 차세대 서열분석기의 플로우 셀의 하나 이상의 레인으로부터, 프로세싱을 위해 시스템에 도입될 수 있다. 구체적으로는, 본 명세서에 설명된 바와 같이, 클라우드 기반 서버 시스템(300)을 제공하는 것은, 다수의 작업들이 프로세싱을 위해 쌓아올려지고/지거나 큐잉될 수 있게 할 것이고, 이 작업들은 시스템의 다양한 상이한 인스턴스들에 의해 동시에 또는 순차적으로 프로세싱될 수 있다. 그러므로, 파이프라인은 하나의 인스턴스로부터 다른 인스턴스로의 데이터의 효율적인 프로세싱을 용이하게 하기 위해 적합하게 구성된 메모리 디바이스들에 결합되는 프로세서들의 가상 행렬에 의해 프로세싱되고 있는 다수의 작업들을 지원하도록 구성될 수 있다. 게다가, 지적한 바와 같이, 단일 메모리 디바이스가 제공될 수 있고, 여기서 메모리 디바이스는 복수의 상이한 인스턴스에, 예를 들어, 동시에 결합되도록 구성된다. 다른 경우들에서, 메모리 디바이스는, 예를 들어, 단일 시간에 제1 인스턴스에 결합되고, 그 후 재구성되고/되거나 제1 인스턴스로부터 달리 분리되고, 제2 인스턴스로 스위칭되도록 구성될 수 있는 탄성 유형 메모리 디바이스일 수 있다.
이에 따라, 일 구현에서, 하나 이상의 탄성 블록 저장 디바이스가 포함될 수 있고, 시스템은 스위칭 제어 메커니즘을 포함하도록 구성될 수 있다. 예를 들어, 스위치 컨트롤러가 포함되고 그러한 메모리 디바이스들이 하나의 인스턴스에서 다른 인스턴스로 스위칭될 때 이들의 기능을 제어하도록 구성될 수 있다. 이 구성은 전용 프로세서들의 파이프라인을 통한 데이터의 전송을 허용하고, 그에 의해 예를 들어 모든 인스턴스들 사이에 시스템의 효율을 증가시키도록 배열될 수 있는데, 예컨대 시스템을 통해 데이터를 흐르게 하여, 각각의 레벨이 독립적으로 스케일링될 수 있게 하고 효율적으로 스케일링하기 위해 필요에 따라 프로세서들을 온라인으로 가져올 수 있게 한다.
추가적으로, 워크플로우 관리 시스템 알고리즘은 작업들의 수, 이 작업들을 프로세싱하기 위한 리소스들의 수, 프로세싱의 순서를 결정하도록 구성될 수 있고, 하나 이상의 유연한 스위칭 디바이스들의 플립 또는 스위칭에 의해 하나의 노드로부터 다른 노드로의 데이터의 흐름을 지시하고, 필요한 경우에는, 워크플로우의 증가를 핸들링하기 위해 추가적인 리소스들을 온라인으로 가져올 수 있다. 유의해야 할 점은 이 구성은 비효율적이며 너무 많은 시간이 걸리는 하나의 인스턴스로부터 다음 인스턴스로의 데이터의 카피를 피하도록 적응될 수 있다는 점이다. 오히려, 탄성 저장을 하나의 인스턴스 세트로부터 다른 세트로 플립함으로써, 예를 들어, 하나의 노드로부터 그것을 풀링하고 제2 노드에 부착함으로써, 시스템의 효율성을 크게 향상시킬 수 있다. 게다가, 다양한 경우들에서, EBSD를 이용하는 대신에, 하나로부터 다른 것으로 플립될 필요없이 다수의 인스턴스들에 결합될 수 있는 하나 이상의 탄성 파일 저장 디바이스, 예를 들어 단일 메모리 디바이스들이 이용될 수 있어서, 인스턴스들 사이의 데이터의 전송을 더 향상시켜, 시스템을 훨씬 더 효율성 있는 것으로 만들 수 있다. 추가적으로, 유의해야 할 점은, 본 명세서에서 앞에서 지적한 바와 같이, 다른 구성에서, 아키텍처의 CPU들은 서로에 대해 직접적일 수 있다. 마찬가지로, 다양한 FPGA들이 직접 함께 결합될 수 있다. 그리고, 위에 지적한 바와 같이, CPU들은 FPGA들에 직접 결합될 수 있고, 예컨대 이 경우 그러한 결합은 위에 설명된 바와 같이, 타이트한 결합 인터페이스를 통해 이루어진다.
따라서, 시스템 전체의 관점에서, 생성된 결과 데이터의 사용자 저장 및 액세스에 관하여, 생성된 결과 데이터 모두가 저장될 필요는 없다. 예를 들어, 생성된 결과 데이터는 전형적으로 특정 파일 형식, 예를 들어, BCL, FASTQ, SAM, BAM, CRAM, VCF 파일일 것이다. 그러나, 이들 파일 중 각각의 것은 방대하고 이들 모두의 저장은 많은 메모리를 소비하며, 그에 의해 많은 비용을 발생시킨다. 그럼에도 불구하고, 본 명세서에서 본 디바이스들, 시스템들, 및 방법들의 이점은, 이들 파일 모두가 저장될 필요가 없다는 것이다. 오히려, 시스템의 컴포넌트들 및 방법들에 의해 달성가능한 빠른 프로세싱 속도들 및/또는 빠른 압축 및 압축해제 레이트들을 고려하면, 단일 파일 형식, 예를 들어 압축된 파일 형식만이, 예컨대 클라우드 기반 데이터베이스(400)에 저장될 필요가 있다. 구체적으로는, 단일 데이터 파일 형식만이 저장될 필요가 있고, 그 파일 형식으로부터, 시스템의 디바이스들 및 방법들을 구현하여, 다른 모든 파일 형식들이 유도될 수 있다. 그리고, 시스템에 의해 달성되는 빠른 압축 및 압축해제 레이트들로 인해, 그것은 전형적으로 압축된 파일, 예를 들어, CRAM 파일이다.
특정하게는, 도 40a와 관련하여 알 수 있는 바와 같이, 일 구현에서, 로컬 컴퓨팅 리소스(100)의 사용자는 데이터, 예컨대 게놈학 데이터, 예를 들어, BCL 및/또는 FASTQ 파일을 클라우드 기반 컴퓨팅 리소스, 예를 들어, 서버(300)에 의한 수신을 위해 클라우드(50)를 통해 시스템 내로 업로드할 수 있다. 그 후 서버(300)는 데이터(400)를 일시적으로 저장할 것이거나, 사용자(100)에 의한 작업 요청에 따라 데이터의 프로세싱을 시작할 것이다. 입력 데이터를 프로세싱할 때, 컴퓨팅 리소스(300)는 그에 의해 예컨대 SAM 또는 BAM 및/또는 VCF 파일로 결과 데이터를 생성할 것이다. 그 후 시스템은 이들 파일 중 하나 이상을 저장할 수 있거나, 또는 이들 파일 중 하나 이상을 압축하여 그들을 저장할 수 있다. 그러나, 비용을 낮추고 리소스들을 더 효율적으로 이용하기 위해, 시스템은 단일, 예를 들어 압축된 파일을 저장할 수 있고, 그 파일로부터 다른 모든 파일 형식들이, 예컨대 본 명세서에 개시된 디바이스들 및 방법들을 이용하여 생성될 수 있다. 따라서, 시스템은 비용 효과적인 방식으로 클라우드(50)를 통해 액세스 가능한 서버(300) 연관된 데이터베이스(400) 상에 저장될 수 있는 데이터 파일들, 예를 들어, 결과 데이터를 생성하도록 구성된다.
따라서, 로컬 컴퓨팅 리소스(100)를 사용하여, 시스템의 사용자는 클라우드(50) 기반 서버(300)에 로그 온 및 액세스할 수 있고, 서버(300) 또는 데이터베이스(400)에 데이터를 업로드할 수 있고, 그 데이터에 대해 수행되는 하나 이상의 작업을 요청할 수 있다. 그 후, 시스템(300)은 요청된 작업들을 수행하고 결과 데이터를 데이터베이스(400)에 저장할 것이다. 언급된 바와 같이, 특정한 경우들에서, 시스템(300)은 생성된 결과 데이터를 CRAM 파일과 같은 단일 파일 형식으로 저장할 것이다. 게다가, 버튼의 클릭에 의해, 사용자는 저장된 파일에 액세스할 수 있고, 그 후 버튼의 다른 클릭에 의해, 다른 파일 형식들 모두가 액세스 가능하게 될 수 있다. 예를 들어, 본 명세서에 개시된 방법들에 따라, 시스템의 빠른 프로세싱 능력들을 고려하면, 그것은 그 후 장면 배후에서, 예를 들어, 온 더 플라이로 프로세싱되고 생성될 것이고, 따라서, 프로세싱 시간 및 부담뿐만 아니라 저장 비용 양쪽 모두를 삭감할 것이고, 예컨대 이 경우 컴퓨팅 및 저장 함수들이 함께 번들링된다.
특정하게는, 본 명세서에 개시된 가속된 연산들을 수행하는 속도에 의해 가능하게 되는 이 효율적이고 빠른 저장 프로세스의 2개 부분이 존재한다. 더 특정하게는, 매핑, 정렬, 소팅, 중복제거, 및/또는 변이 추출의 다양한 프로세싱 연산들이 하드와이어드 및/또는 양자 프로세싱 구성에서 구현될 수 있기 때문에, 하나 이상의 파일 형식으로 결과 데이터를 생성하는 것은 빠르게 달성될 수 있다. 추가적으로, 본 명세서에 개시된 밀접한 결합 아키텍처 때문에, 예를 들어, FASTQ, SAM, BAM, CRAM, VCF 파일 형식의 결과 데이터의 심리스한 압축 및 저장이 추가로 달성된다.
게다가 또한, 시스템의 디바이스들에 의해 제공되는 가속된 프로세싱 때문에, 그리고 연관된 저장 디바이스들과의 그들의 심리스한 통합 때문에, 시스템의 프로세싱 연산들의 결과로 생기는 데이터 - 이 데이터는 저장되어야 함 - 는 양쪽 모두 효율적으로 저장 전에 압축되고 저장 후에 압축해제될 수 있다. 그러한 효율들은 그에 의해 저장 비용 및/또는 사용 전에 파일의 압축해제와 관련된 페널티를 낮춘다. 따라서, 이들 이점 때문에, 시스템은 단일 파일 유형만의 심리스한 압축 및 저장과 함께, 사용자에 의해 요청되거나 필요에 따라 다른 파일 유형들 중 임의의 것의 온-더-플라이 재생을 가능하게 하도록 구성될 수 있다. 예를 들어, BAM 파일, 또는 그와 연관된 압축된 SAM 또는 CRAM 파일이 저장될 수 있고, 그 파일로부터 다른 것들이, 예를 들어, VCF 또는 FASTQ 또는 BCL 파일을 각각 재생하기 위해, 순방향 또는 역방향으로 생성될 수 있다.
예를 들어, 일 실시예에서, FASTQ 파일은 원래 시스템에 입력되거나, 달리 생성되고 저장될 수 있다. 그러한 경우에, 순방향으로 갈 때, 파일의 체크섬이 취해질 수 있다. 마찬가지로, 일단 결과 데이터가 생성되면, 역방향으로 갈 때, 다른 체크섬이 생성될 수 있다. 그 후, 이들 체크섬은, 순방향 또는 역방향에서, 시스템에 의해 생성 및/또는 재생성될 임의의 추가 파일 형식들이 서로 및/또는 그들의 압축된 파일 형식들에 동일하게 매칭되도록 보장하기 위해 이용될 수 있다. 이와 같은 방식으로, 필요한 데이터 모두가 가능한 한 효율적인 방식으로 저장되는 것이 보장될 수 있고, WMS는 어디에 데이터가 저장되어 있는지, 어떤 파일 형식으로 저장되어 있는지, 원래의 파일 형식이 무엇이었는지를 정확히 알고, 이 데이터로부터, 시스템은 (일단 템플릿이 원래 생성되면) 파일 형식들 사이에서 순방향 또는 역방향으로 가면서 동일한 방식으로 임의의 파일 형식을 재생할 수 있다.
그러므로, "저스트인 타임" 컴파일의 속도 이점은, 예컨대 이전에 생성된 FASTQ 파일로부터 BAM 파일을 생성할 때, 관련 파일들의 하드웨어 및/또는 양자 구현된 생성에 의해 부분적으로 가능하게 된다. 특정하게는, SAM 및 CRAM 파일들을 포함하는 압축된 BAM 파일들은 압축된 저장된 파일을 압축해제하기 위해 프로세싱하기 전에 걸리는 증가된 시간 때문에 전형적으로 데이터베이스 내에 저장되지 않는다.
그러나, JIT 시스템은 이것이 실질적인 페널티 없이 행해질 수 있게 한다. 더 특정하게는, 본 명세서에 개시된 디바이스들 및 프로세스들을 구현하여, 생성된 서열 데이터가 빠르게, 예를 들어, 거의 즉각적으로 압축 및 압축해제될 수 있을 뿐만 아니라, 효율적으로 저장될 수도 있다. 추가적으로, 저장된 파일로부터, 그것이 어떤 파일 형식으로 저장되어 있든 관계없이, 다른 파일 형식들 중 임의의 것이 단지 순간에 재생될 수 있다.
그러므로, 도 40c를 참조하여 알 수 있는 바와 같이, 가속된 하드웨어 및/또는 양자 프로세싱이 매핑 및 정렬, 소팅, 중복제거, 및 변이 추출과 같은 다양한 2차 프로세싱 절차들을 수행할 때, 압축의 추가 단계가 또한, 압축된 형태로 저장되기 전에, 예컨대 올인원 프로세스에서 수행될 수 있다. 그 후, 사용자가 압축된 데이터를 분석하거나 또는 달리 사용하기를 원할 때, 파일이 검색, 압축해제, 및/또는 하나의 파일 형식으로부터 다른 파일 형식으로 변환되고/되거나, 분석될 수 있는데, 이는 예컨대 JIT 엔진(들)이 하드와이어드 프로세서 내에 로딩되거나, 양자 프로세서 내에 구성되고, 압축된 파일에 JIT 파이프라인의 하나 이상의 절차에 적용하는 것에 의해 이루어진다.
따라서, 다양한 경우들에서, 시스템이 연관된 FPGA를 포함하는 경우, FPGA는 완전히 또는 부분적으로 재구성될 수 있고, 및/또는 양자 프로세싱 엔진이 JIT 절차를 수행하도록 조직될 수 있다. 특정하게는, JIT 모듈은 시스템 내에 로딩되고/되거나 하나 이상의 엔진으로서 구성될 수 있으며, 이 엔진들은 배경에서 작업하도록 구성되는 하나 이상의 압축 엔진(150)을 포함할 수 있다. 그러므로, 주어진 파일 형식이 호출될 때, JIT-유사 시스템은 요청된 형식의 파일을 생성하기 위해 요청된 데이터에 대해 필요한 연산들을 수행할 수 있다. 이들 연산은 압축 및/또는 압축해제뿐만 아니라, 요청된 데이터를 식별된 파일 형식으로 유도하기 위한 변환을 포함할 수 있다.
예를 들어, 유전 데이터가 생성될 때, 그것은 보통 BCL 파일과 같은 원시 데이터 형식으로 생성되고, 그것은 그 후 예를 들어, 데이터를 생성하는 NGS에 의해, FASTQ 파일로 변환될 수 있다. 그러나, 본 시스템에서, 예컨대 BCL 또는 다른 원시 파일 형식의 원시 데이터 파일들이 JIT 모듈로 스트리밍되거나 달리 전송될 수 있으며, 이 JIT 모듈은 그 후 데이터를 FASTQ 파일로 그리고/또는 다른 파일 형식으로 변환할 수 있다. 예를 들어, 일단 FASTQ 파일이 생성되면, FASTQ 파일은, 본 명세서에 개시된 바와 같이, 프로세싱될 수 있고, 대응하는 BAM 파일이 생성될 수 있다. 그리고 마찬가지로, BAM 파일로부터, 대응하는 VCF가 생성될 수 있다. 추가적으로, SAM 및 CRAM 파일들도 적절한 단계들 동안 생성될 수 있다. 이들 단계들 중 각각의 것은, 특히 일단 적절한 파일 형식이 생성되면, 매우 빠르게 수행될 수 있다. 그러므로, 일단 BCL 파일이, 예를 들어, 서열분석기로부터 직접 수신되면, BCL은, 예컨대 하드웨어 및/또는 양자 구현된 매핑/정렬/소팅/변이 추출 절차에 의해, FASTQ 파일로 변환되거나, SAM, BAM, CRAM, 및/또는 VCF 파일로 직접 변환될 수 있다.
예를 들어, 하나의 사용 모델에서, 전형적인 서열 분석 기구 상에서, 많은 수의 상이한 피험자의 게놈들이 병렬로 실행될 단일 서열 분석 기구의 개별 레인들에 로딩될 수 있다. 결과적으로, 실행의 끝에서, 상이한 레인들 모두로부터 유도되고 상이한 피험자들 각각의 전체 게놈들을 표현하는 많은 수의 다양한 BCL 파일들이 멀티플렉스 컴플렉스에서 생성된다. 따라서, 이들 멀티플렉싱된 BCL 파일들은 그 후 디멀티플렉싱될 수 있고, 각각의 개별 피험자에 대한 유전 코드를 표현하는 각각의 FASTQ 파일들이 생성될 수 있다. 예를 들어, 하나의 서열 분석 실행에서 N개의 BCL 파일이 생성되면, 이들 파일은 각각의 피험자에 대해 디멀티플렉싱되고, 계층화되고, 함께 스티칭될 필요가 있을 것이다. 이러한 스티칭은 각각의 피험자의 유전 물질이 BCL 파일들로 변환되는 복잡한 프로세스이고, 그 파일들은 이후 FASTQ 파일로 변환되거나 매핑, 정렬 및/또는 소팅, 변이 추출 등을 위해 직접 사용될 수 있다. 이 프로세스는 프로세스의 다양한 단계들을 크게 가속화하도록 자동화될 수 있다.
게다가, 도 40a와 관련하여 알 수 있는 바와 같이, 일단 이 데이터가 생성되고(110), 따라서 저장될 필요가 있다면(예를 들어, 어떤 파일 형식이 선택되든지 관계없이), 데이터는 패스워드 보호 및/또는 암호화된 메모리 캐시에, 예컨대 전용 게놈학 드롭박스-유사 메모리(400)에 저장될 수 있다. 따라서, 생성 및/또는 프로세싱된 유전 데이터가 서열분석기로부터 나옴에 따라, 데이터는 프로세싱 및/또는 저장되고 다른 시스템들에서 다른 사용자들에게 이용 가능하게 될 수 있다(예컨대, 드롭박스-유사 캐시(400)에서). 그러한 경우에, 자동화된 생물정보학 분석 파이프라인 시스템은 그 후 캐시 내의 데이터에 액세스하고 자동으로 그것의 프로세싱을 시작할 수 있다. 예를 들어, 시스템은 마이크로프로세서 또는 다른 지능, 예를 들어, 인공 지능과 같은 컨트롤러를 갖는 관리 시스템, 예를 들어, 워크플로우 관리 시스템(151)을 포함할 수 있고, 이는 예를 들어, 메모리 캐시로부터 BCL 및/또는 FASTQ 파일들의 검색을 관리하고, 그 후 그 정보의 프로세싱을 지시하여, BAM, CRAM, SAM, 및/또는 VCF를 생성하고, 그에 의해 자동으로 다양한 프로세싱 결과들을 생성 및 출력하고/하거나 그것을 드롭박스 메모리(400)에 저장한다.
이러한 사용 모델 내에서 구현되는 바와 같은, JIT 프로세싱의 고유한 이점은, JIT가 생성된 다양한 유전 파일들이, 예를 들어, 데이터 저장 전에, 압축되고, 사용 후에 빠르게 압축해제될 수 있게 한다는 것이다. 그러므로, JIT 프로세싱은 데이터가 서열분석기에서 나옴에 따라 그것을 컴파일 및/또는 압축 및/또는 저장할 수 있고, 여기서 그러한 저장은 보안 게놈 드롭박스 메모리 캐시에 있다. 이 게놈 드롭박스 캐시(400)는 하나 이상의 자동화된 서열분석기(110)로부터 수신된 게놈학 데이터의 저장을 위해 구성되는 클라우드(50) 액세스 가능한 메모리 캐시일 수 있고, 예컨대 이 경우 서열분석기(들)는 메모리 캐시(400)로부터 원격으로 위치한다.
특정하게는, 일단 서열 데이터가, 예를 들어 원격 NGS에 의해, 생성되면(110), 그것은 전송 및/또는 저장(400)을 위해 압축(150)될 수 있어, 클라우드(50)에 업로드되고 저장되고 있는 데이터의 양을 감소시킬 수 있다. 그러한 업로드, 전송, 및 저장은, 예컨대 전송 전에, 시스템에서 행해지는 데이터 압축(150) 때문에 빠르게 수행될 수 있다. 추가적으로, 일단 클라우드 기반 메모리 캐시(400)에 업로드되고 저장되면, 데이터는 그 후 로컬로(100) 또는 원격으로(300)로 검색되어, 본 명세서에 개시된 BioIT 파이프라인의 디바이스들, 시스템들, 및 방법들에 따라 프로세싱되어, SAM, BAM, 및/또는 CRAM 파일과 같은, 매핑, 정렬, 소팅, 및/또는 변이 추출 파일을 생성할 수 있고, 이는 그 후 생성된 파일, 예를 들어, SAM, BAM, CRAM 등의 파일이 어떻게 생성되었는지에 대한 정보를 설명하는 메타파일과 함께 저장될 수 있다.
그러므로, 메타데이터와 함께 취해질 때, 압축된 SAM, BAM, 및/또는 CRAM 파일은 그 후 프로세싱되어, FASTQ 및/또는 VCF 파일들과 같은 다른 파일 형식들 중 임의의 것을 생성할 수 있다. 따라서, 위에 논의된 바와 같이, 온 더 플라이로, JIT는 압축된 BAM 파일로부터 FASTQ 파일 또는 VCF를 재생하는 데 사용될 수 있고 그 반대도 마찬가지이다. BCL 파일도 유사한 방식으로 재생될 수 있다. 유의해야 할 점은 SAM 및 CRAM 파일들이 마찬가지로 압축 및/또는 저장될 수 있고, 다른 파일 형식들 중 하나 이상을 생성하는 데 사용될 수 있다는 점이다. 예를 들어, CRAM되지 않을 수 있는 CRAM 파일이 변이 추출 파일을 생성하는 데 사용될 수 있고, SAM 파일에 대해서도 마찬가지이다. 그러므로, SAM, BAM 및/또는 CRAM 파일만이 저장될 필요가 있고, 이들 파일로부터, 다른 파일 형식들, 예를 들어, VCF, FASTQ, BCL 파일들이 재생될 수 있다.
따라서, 도 40a와 관련하여 알 수 있는 바와 같이, 매핑 및/또는 정렬 및/또는 소팅 및/또는 변이 추출 기구(110), 예를 들어, 작업대 컴퓨터가 온-사이트(100)에 있을 수 있고/있거나 다른 제2 대응하는 기구(300)가 원격으로 위치하고 클라우드(50)에서 액세스 가능하게 될 수 있다. 이 구성은, 본 명세서에 개시된 디바이스들 및 방법들과 함께, 사용자가 본 명세서에 개시된 바와 같이, "클라우드에서" BioIT 분석을 빠르게 수행하여, 결과 데이터를 생성하는 것을 가능하게 하도록 적응된다. 그 후 결과 데이터는 압축되도록 프로세싱될 수 있고, 일단 압축되면, 데이터는 예를 들어, 다시 로컬 컴퓨팅 리소스(100)로 전송을 위해 구성될 수 있거나, 클라우드(400)에 저장될 수 있고, 로컬 컴퓨팅 리소스(100)에 의해 클라우드 기반 인터페이스를 통해 액세스 가능하게 될 수 있다. 그러한 경우에, 압축된 데이터는 SAM, BAM, CRAM, 및/또는 VCF 파일일 수 있다.
구체적으로는, 제2 컴퓨팅 리소스(300)는 다른 작업대 솔루션일 수 있거나, 또는 그것은 서버 구성된 리소스일 수 있고, 예컨대 이 경우 이 컴퓨팅 리소스는 클라우드(50)를 통해 액세스 가능하게 되고, 매핑 및/또는 정렬 및/또는 소팅 및/또는 변이 추출 기구를 수행하도록 구성된다. 그러한 경우에, 사용자는 클라우드 기반 서버(300)에게 업로드된 데이터, 예를 들어 BCL 및/또는 FASTQ 데이터에 대해 하나 이상의 BioIT 작업을 수행하라고 요청할 수 있다. 이 경우에, 서버(300)는 그 후 저장 및/또는 압축된 파일(들)에 액세스할 것이고, 그 데이터를 프로세싱하여 해당 데이터를 빠르게 프로세싱하고 하나 이상의 결과 데이터를 생성할 수 있고, 이 데이터는 그 후 압축 및/또는 저장될 수 있다. 추가적으로, 결과 데이터 파일로부터, 하나 이상의 BCL, FASTQ, SAM, BAM, VCF, 또는 다른 파일 형식들이, JIT 프로세싱을 이용하여, 예를 들어, 온 더 플라이로 생성될 수 있다. 이 구성은 전형적인 전송 속도 병목 현상을 완화시킨다.
그러므로, 다양한 실시예들에서, 시스템(1)은 예컨대 로컬 데이터 생성, 압축(150), 및/또는 저장(200)을 위해, 로컬로(100) 위치될 수 있는 제1 매핑 및/또는 정렬 및/또는 소팅 및/또는 변이 추출 기구(100)를 포함할 수 있고; 제2 기구(300)가 원격으로 위치되고 클라우드(50)에서 연관될 수 있고, 그에 의해 제2 기구(300)는 생성 및 압축된 데이터를 수용하고 그것을, 예를 들어, 연관된 저장 디바이스(400)를 통해 저장하도록 구성된다. 일단 저장되면, 데이터는 저장된 파일들의 압축해제 및 하나 이상의 다른 파일 형식들로의 변환을 위해 액세스될 수 있다.
따라서, 시스템의 일 구현에서, 데이터 생성 장치, 예를 들어, 서열분석기(110)에 의해 생성되는 데이터, 예컨대 BCL 또는 FASTQ 파일 형식의 원시 서열 데이터가 업로드되고 클라우드(50)에, 예컨대 연관된 게놈학 드롭박스-유사 메모리 캐시(400)에 저장될 수 있다. 그 후, 이 데이터는 본 명세서에 설명된 바와 같은, 제1 매핑 및/또는 정렬 및/또는 소팅 및/또는 변이 추출 기구(100)에 의해 직접 액세스될 수 있거나, 서버 리소스(300)에 의해 간접적으로 액세스될 수 있고, 이 서버 리소스는 그 후 이 서열 데이터를 프로세싱하여 매핑, 정렬, 소팅, 및/또는 변이 결과 데이터를 생성할 수 있다.
따라서, 다양한 실시예들에서, 본 명세서에 개시된 저장 디바이스들 중 하나 이상은 클라우드를 통해, 적절한 허가들로, 액세스 가능하도록 구성될 수 있다. 예를 들어, 시스템의 결과 데이터의 다양한 것이 압축되고/되거나 메모리, 또는 다른 적합하게 구성된 데이터베이스에 저장될 수 있고, 여기서 데이터베이스는, 게놈학 드롭박스 캐시(400)로서 구성되고, 예컨대 이 경우 다양한 결과 데이터가, 원격으로 액세스 가능할 수 있는, SAM, BAM, CRAM 및/또는 VCF 파일에 저장될 수 있다. 구체적으로는, 유의해야 할 점은, 도 40a와 관련하여, 로컬 기구(100)가 제공될 수 있다는 점이고, 이 로컬 기구는 서열 분석 기구(110) 자체와 연관될 수 있거나, 또는 그로부터 원격일 수 있지만, 로컬 클라우드(30)를 통해 서열 분석 기구(110)와 연관될 수 있고, 로컬 기구(100)는 추가로 로컬 저장 시설(200) 또는 원격 메모리 캐시(400)와 연관될 수 있으며, 예컨대 이 경우 원격 메모리 캐시는 게놈학 드롭박스로서 구성된다. 게다가, 다양한 경우에, 제2 매핑 및/또는 정렬 및/또는 소팅 및/또는 변이 추출 기구(300), 예를 들어, 적절한 권한을 갖는 클라우드 기반 기구가 또한 게놈학 드롭박스(400)와 연결되어, 로컬 컴퓨팅 리소스(100)에 의해 저장된, 파일들, 예를 들어, 압축된 파일들에 액세스할 수 있고, 그 후 그들 파일을 압축해제하여, 그 결과들을 추가, 예를 들어, 2차 또는 3차 프로세싱에 이용 가능하게 만들 수 있다.
따라서, 다양한 경우들에서, 시스템은 데이터가 생성되고 서열분석기(110)로부터, 예컨대 원시 데이터 형식으로 나옴에 따라, 클라우드(50) 내로 즉시 업로드되어 게놈학 드롭박스(400)에 저장될 수 있거나, 업로드되어 저장(400)되기 전에 추가 프로세싱 및/또는 압축을 위해 BioIT 프로세싱 시스템(300)으로 전송될 수 있도록 능률화될 수 있다. 일단 메모리 캐시(400) 내에 저장되면, 시스템은 그 후 즉시 데이터를, 검색, 압축, 압축해제를 위해, 및/또는 예컨대 다른 연관된 BioIT 프로세싱 장치(300)에 의한 추가 프로세싱을 위해 큐잉할 수 있고, 그 후 그것은 결과 데이터로 프로세싱될 때 나중에 추가 사용을 위해 압축 및/또는 저장(400)될 수 있다. 이 시점에서, 3차 프로세싱 파이프라인이 개시될 수 있으며, 그에 의해 2차 프로세싱으로부터의 저장된 결과 데이터는, 예컨대 본 명세서에 개시된 방법들에 따른, 3차 분석을 위해 압축해제되어 사용될 수 있다.
그러므로, 다양한 실시예들에서, 시스템은 서열분석기(110)로부터 나오는 모든 데이터가 전송 및/또는 저장(200) 전에, 예를 들어, 로컬 컴퓨팅 리소스(100)에 의해 압축될 수 있거나, 또는 그 데이터가 저장(400)을 위해 게놈학 드롭박스 폴더 내로 직접 전송될 수 있도록 파이프라이닝될 수 있다. 일단 그에 의해 수신되면, 저장된 데이터는 그 후 예컨대 원격 컴퓨팅 리소스(300)에 의한, 검색 및 압축 및 압축해제를 위해 실질적으로 즉시 큐잉될 수 있다. 압축해제된 후에, 데이터는 예컨대 매핑, 정렬, 소팅, 및/또는 변이 추출을 위한 프로세싱을 위해 실질적으로 즉시 이용 가능하여 2차 프로세싱된 결과 데이터를 생성할 수 있고, 이는 그 후 저장을 위해 재압축될 수 있다. 그 후, 압축된 2차 결과 데이터는 그 후, 예를 들어, 게놈학 드롭박스(400)에서 액세스되고, 압축해제되고/되거나 하나 이상의 3차 프로세싱 절차에서 사용될 수 있다. 데이터가 저장될 때 압축되고 검색될 때 실질적으로 즉시 압축해제될 수 있으므로, 그것은 단순히 드롭박스 저장 캐시(400)에 액세스함으로써, 상이한 시간들에서 다수의 상이한 시스템들에 의해 그리고 다수의 상이한 생체분석 프로토콜들에서의 사용을 위해 이용 가능하다.
따라서, 이들과 같은 방식들로, 본 명세서에서 제시된 BioIT 플랫폼 파이프라인들은 데이터 생성 및/또는 분석의 엄청난 유연성을 제공하도록 구성될 수 있고, 다수의 형식들의 특정 형태들의 유전 데이터를 핸들링하여 그 데이터를 프로세싱하고 다양한 다운스트림 분석을 위해 호환가능한 출력 형식들을 생성하도록 적응된다. 따라서, 도 40c와 관련하여 알 수 있는 바와 같이, 다음의 단계들 중 하나 이상을 포함할 수 있는 유전 서열 분석을 수행하기 위한 디바이스들, 시스템들, 및 방법들이 본 명세서에서 제시된다: 먼저, 파일 입력이 수신되고, 입력은 예컨대 압축된 파일 형식의 FASTQ 또는 BCL 또는 다른 형태의 유전 서열 파일 형식 중 하나 이상일 수 있고, 그 파일은 그 후 압축해제되고/되거나 본 명세서에 개시된 다수의 단계를 통해 프로세싱되어 VCF/gVCF를 생성할 수 있고, 이 파일은 그 후 압축 및/또는 저장 및/또는 전송될 수 있다. 그러한 압축 및/또는 압축해제는 프로세스 전체에 걸쳐 임의의 적합한 스테이지에서 일어날 수 있다.
예를 들어, 일단 BCL 파일이 수신되면, 그것은, 예컨대 본 명세서에 개시된 순차적 방식으로, 분석들의 파이프라인을 겪을 수 있다. 예를 들어, 일단 수신되면, BCL 파일은 예컨대 FASTQ 및/또는 FASTQgz 파일 형식으로 변환 및/또는 디멀티플렉싱될 수 있고, 그 파일은 본 명세서에 설명된 장치들 및/또는 그들의 사용 방법들에 따라 매핑 및/또는 정렬되도록, 예를 들어, 서버(300)의 매핑 및/또는 정렬 모듈에 전송될 수 있다. 추가적으로, 다양한 경우들에서, 예컨대 SAM 또는 BAM 파일 형식의 매핑 및 정렬된 데이터는 위치 소팅될 수 있고/있거나 임의의 중복들이 마킹되고 제거될 수 있다. 그 후, 파일들은 예를 들어, 전송 및/또는 저장을 위해 예컨대 CRAM 파일을 생성하도록 압축될 수 있거나, 변이 추출, 예를 들어, HMM, 모듈로 포워딩되어, 프로세싱되어 변이 추출 파일, VCF 또는 gVCF를 생성할 수 있다.
더 구체적으로는, 도 40c 및 도 40d와 관련하여 알 수 있는 바와 같이, 특정 경우들에서, 시스템에 의해 수신될 파일은 서열 분석 장치, 예를 들어, NGS(110)로부터 직접 시스템에 스트리밍되거나 달리 전송될 수 있으며, 이에 따라 전송된 파일은 BCL 파일 형식일 수 있다. 수신된 파일이 BCL 파일 형식인 경우, 그것은 시스템에 의한 프로세싱을 위해 FASTQ 파일로 변환, 및/또는 달리 디멀티플렉싱될 수 있거나, 또는 그 BCL 파일이 직접 프로세싱될 수 있다. 예를 들어, 플랫폼 파이프라인 프로세서들은 도 1과 관련하여 설명된 바와 같이, 서열분석기로부터 직접 스트리밍되는 BCL 데이터를 수신하도록 구성될 수 있거나, 또는 그것은 FASTQ 파일 형식으로 데이터를 수신할 수 있다. 그러나, 서열 데이터를 그것이 서열분석기로부터 스트리밍될 때 직접 수신하는 것은, 데이터가 원시 서열 분석 데이터로부터 즉시, 예를 들어, 출력을 위해 SAM, BAM, 및/또는 VCF/gVCF 중 하나 이상으로 직접 프로세싱되는 것으로 가는 것을 가능하게 하기 때문에 유용하다.
따라서, 일단 BCL 및/또는 FASTQ 파일이, 예를 들어 컴퓨팅 리소스(100 및/또는 300)에 의해 수신되면, 그것은 컴퓨팅 리소스에 의해 매핑 및/또는 정렬될 수 있고, 그 매핑 및/또는 정렬은 단일 말단 또는 쌍 말단 판독들에 대해 수행될 수 있다. 예를 들어, 일단 수신되면, 서열 데이터는, 분석을 위해, 예컨대 약 10 내지 약 20, 예컨대 26 또는 50, 또는 100, 또는 150 bp 또는 그 이하에서 약 1K, 또는 약 2.5K, 또는 약 5K, 심지어 약 10K bp 또는 그 이상까지 다양할 수 있는 판독 길이들을 갖는, 판독들로 컴파일될 수 있다. 마찬가지로, 일단 매핑 및/또는 정렬되면, 서열은 그 후 예컨대 기준 범위에 의한 비닝 및/또는 기준 위치에 의한 빈들의 소팅을 통해, 소팅, 예컨대 위치 소팅될 수 있다. 게다가, 서열 데이터는, 예컨대 시작 위치 및 CIGAR 스트링에 기초하여, 중복 마킹을 통해 프로세스되어, 고품질 중복 보고를 생성할 수 있고, 이 시점에서 임의의 마킹된 중복들이 제거될 수 있다. 결과적으로, 매핑 및 정렬된 SAM 파일이 생성될 수 있고, 이는 예컨대 저장 및/또는 추가 프로세싱을 위해, BAM/CRAM 파일을 형성하도록 압축될 수 있다. 더욱이, 일단 BAM/CRAM 파일이 검색되면, 매핑 및/또는 정렬된 서열 데이터는 시스템의 변이 추출 모듈, 예컨대 재조립을 갖는 단상형 변이 추출기로 포워딩될 수 있고, 이는 일부 경우들에서, 소프트웨어 및/또는 하드웨어의 조합으로 구현될 수 있는 스미스-워터만 정렬 및/또는 은닉 마르코프 모델 중 하나 이상을 이용하여, VCF를 생성할 수 있다.
그러므로, 도 40d에서 보이는 같이, 시스템 및/또는 그의 컴포넌트들 중 하나 이상은 BCL 데이터를 FASTQ 또는 SAM/BAM/CRAM 데이터 형식들로 변환할 수 있도록 구성될 수 있으며, 이는 그 후 추가 프로세싱 및/또는 데이터 재구성을 위해 시스템 전체에 전송될 수 있다. 예를 들어, 일단 BCL 데이터가 수신되고/되거나 FASTQ 파일로 변환되고 디멀티플렉싱되고/되거나 중복제거되면, 데이터는 그 후 예컨대 매핑 및/또는 정렬을 위해, 본 명세서에 개시된 파이프라인 모듈들 중 하나 이상으로 포워딩될 수 있고, 이는 프로세싱되고 있는 샘플들의 수에 따라 하나 이상의, 예를 들어, 여러 SAM/BAM 파일들이 생성되는 결과를 야기할 것이다. 그 후, 이들 파일은 소팅, 중복제거되고, 변이 추출 모듈로 포워딩되어, 하나 이상의 VCF 파일을 생성할 수 있다. 이들 단계는 더 큰 컨텍스트 및 정확도를 위해 반복될 수 있다. 예를 들어, 일단 서열 데이터가 매핑 또는 정렬되어, 예를 들어, SAM 파일을 생성하면, 이 SAM 파일은 하나 이상의 BAM 파일들로 압축될 수 있고, 이는 그 후 VCF 엔진으로 전송되어, 시스템의 프로세싱 전체에 걸쳐 VCF/gVCF로 변환될 수 있고, 이는 그 후 CRAM 파일로 압축될 수 있다. 결과적으로, 시스템을 따라 출력될 파일들은 Gzip 및/또는 CRAM 파일일 수 있다.
특정하게는, 도 40c 및 도 40d와 관련하여 알 수 있는 바와 같이, 하나 이상의 파일이, 일단 생성되면, 압축되고/되거나 하나의 시스템 컴포넌트로부터 다른 시스템 컴포넌트로, 예를 들어, 로컬(100)로부터 원격 리소스(300)로 전송될 수 있고, 그 후 일단 수신되면 압축해제되거나(예를 들어, 이전에 압축되었다면), 변환/디멀티플렉싱될 수 있다. 더 특정하게는, 일단 BCL 파일이 로컬(100) 또는 원격(300) 리소스에 의해 수신되면, 그것은 FASTQ 파일로 변환될 수 있고 이는 이후에 매핑 및/또는 정렬되도록 시스템의 집적 회로(들)에 의해 프로세싱될 수 있거나, 또는 그러한 프로세싱을 위해 원격 리소스(300)에 전송될 수 있다. 일단 매핑 및/또는 정렬되면, 예를 들어, SAM 파일 형식의 결과적인 서열 데이터는, 예컨대 1회 이상, 예를 들어, BAM/CRAM 파일로 압축되는 것에 의해 더 프로세싱될 수 있고, 그 후 데이터는 위치 정렬, 중복 마킹, 및/또는 변이 추출에 의해 프로세싱될 수 있고, 예를 들어, VCF 형식의 그 결과들은 그 후 한 번 더 압축되고/되거나 저장되고/되거나 예컨대 원격 리소스(300)로부터 로컬(100) 리소스로 전송될 수 있다.
더 특정하게는, 시스템은 BCL 데이터를 직접 프로세싱하도록 적응될 수 있고, 그에 의해 FASTQ 파일 변환 단계를 제거할 수 있다. 마찬가지로, BCL 데이터는 파이프라인에 직접 공급되어 샘플 당 고유 출력 VCF 파일을 생성할 수 있다. 요구가 있는 즉시 중간 SAM/BAM/CRAM 파일들이 또한 생성될 수 있다. 따라서, 시스템은 서열 정보를 포함하는 BCL 또는 FASTQ 데이터 파일과 같은 하나 이상의 데이터 파일을 수신 및/또는 전송하고, 그것을 프로세싱하여, SAM/BAM/CRAM 데이터 파일과 같은, 압축된 데이터 파일을 생성하도록 구성될 수 있다.
따라서, 도 41a와 관련하여 알 수 있는 바와 같이, 사용자는 압축된 파일에 액세스하고 이를 생성된 BCL(111c) 및/또는 FASTQ 파일(111d)의 원래 버전으로 변환하기를 원할 수도 있다(예컨대 그 데이터에 대해, 예컨대 오류 정정을 위해 추가의, 예를 들어, 더 진보된 신호 프로세싱(111b)을 적용하기 위해). 대안적으로, 사용자는 예를 들어 BCL 또는 FASTQ 파일 형식(111)의 원시 서열 데이터를 액세스하고, 그 데이터에 대해, 예컨대 매핑(112) 및/또는 정렬(113) 및/또는 다른 관련 함수들(114/115)을 위한, 추가 프로세싱을 적용할 수 있다.
예를 들어, 이들 절차들로부터의 결과 데이터는 이후 압축 및/또는 저장되고/되거나 예컨대 정렬(114a), 중복제거(114b), 재측정(114c), 로컬 재정렬(114d), 및/또는 압축/압축해제(114e)를 위한 추가 프로세싱(114)을 겪을 수 있다. 그 후 동일한 또는 다른 사용자가 매핑 및/또는 정렬된 결과 데이터의 압축된 형태에 액세스하고, 그 후 예를 들어, HMM, 스미스-워터만, 변환 등을 통해 하나 이상의 변이 추출(115)을 생성하기 위해 데이터에 대해 다른 분석을 실행하기를 원할 수 있고, 이는 이후 압축 및/또는 저장될 수 있다. 그 후, 시스템의 추가적인 사용자가 압축된 VCF 파일(116)에 액세스하고, 그것을 압축해제하고, 그 데이터에 하나 이상의 3차 프로세싱 프로토콜을 적용할 수 있다.
게다가, 사용자가 파이프라인 비교를 수행하기를 원할 수 있다. 매핑/정렬/소팅/변이 추출은 다양한 게놈 분석을 수행하는 데 유용하다. 예를 들어, 그 후 추가의 DNA 또는 RNA 분석, 또는 어떤 다른 종류의 분석을 원한다면, 사용자는 다른 파이프라인을 통해 데이터를 실행하기를 원할 수 있고, 그러므로 재생된 원래의 데이터 파일에 액세스할 수 있는 것이 매우 유용하다. 마찬가지로, 이 프로세스는 예컨대 상이한 SAM/BAM/CRAM 파일을 생성하거나, 재생성하기를 원할 수 있는 경우 유용할 수 있으며, 예컨대 이 경우 생성되는 새로운 또는 상이한 기준 게놈이 존재하고, 그러므로 새로운 기준 게놈에 매핑 및 정렬을 재실행하는 것을 원할 수 있다.
압축된 SAM/BAM/CRAM 파일들을 저장하는 것은 시스템(1)의 사용자가 기준 게놈이 결과 데이터의 백본을 형성한다는 사실을 이용할 수 있게 하기 때문에 더 유용하다. 그러한 경우에, 중요한 것은 기준과 일치하는 데이터가 아니라, 어떻게 데이터가 기준과 불일치하는가이다. 그러므로, 기준과 불일치하는 데이터만이 저장에 필수적이다. 결과적으로, 시스템(1)은 시스템의 사용자들에게 중요하고/하거나 유용한 것만을 저장함으로써 이 사실을 이용할 수 있다. 따라서, 전체 게놈 파일(기준과의 일치 및 불일치를 보여줌), 또는 그의 서브-부분(기준과의 일치 또는 불일치만을 보여줌)이 압축되고 저장되도록 구성될 수 있다. 따라서, 검사 중인 게놈과 기준 사이의 차가 및/또는 변이만이 검사에 가장 유용한 것이므로, 다양한 실시예들에서, 기준과 동일한 무엇도 다시 검토될 필요가 없기 때문에, 이들 차이만이 저장될 필요가 있다는 것을 알 수 있다. 따라서, 임의의 주어진 게놈이 기준과 약간만 상이하기 때문에, 예를 들어, 99%의 인간 게놈들이 전형적으로 동일하기 때문에, BAM 파일이 생성된 후에, 검토 및/또는 저장될 필요가 있는 것은 기준 게놈 사이의 변이들만이다.
추가적으로, 도 41b와 관련하여 알 수 있는 바와 같이, 본 명세서에 제공된 클라우드 액세스 가능한 시스템(1)의 다른 유용한 컴포넌트는 시스템 흐름을 자동화하는 데 사용될 수 있는 워크플로우 관리 컨트롤러(151)이다. 그러한 시스템 애니메이션은, 다양한 시스템 컴포넌트를 이용하여, 데이터가 이용 가능하게 됨에 따라 및/또는 이용 가능하게 되는 경우에, 로컬로(100) 또는 원격으로(300) 그에 액세스하고 그 후 실질적으로 자동으로 그 데이터에 대해 예컨대 본 명세서에 개시된 BioIT 파이프라인들과 관련하여, 추가 프로세싱 단계들을 적용하는 것을 포함할 수 있다. 따라서, 워크플로우 관리 컨트롤러(151)는 시스템의 다양한 파이프라인들(예를 들어, 111,112,113,114, 및/또는 115)에 지시하기 위한 코어 자동화 기술이고, 다양한 경우들에서, 인공 지능 컴포넌트(121a)를 이용할 수 있다.
예를 들어, 시스템(1)은 시스템의 다양한 데이터를 분석하고, 그에 응답하여 그의 발견들을 워크플로우 관리 시스템(151)과 통신하도록 구성되는 인공 지능(A/I) 모듈을 포함할 수 있다. 특정하게는, 다양한 경우들에서, A/I 모듈은 시스템에 제시되는 다양한 게놈 데이터뿐만 아니라 그 데이터의 프로세싱에 의해 생성되는 결과 데이터를 분석하여, 그 데이터 및/또는 시스템에 입력될 수 있는 임의의 다른 데이터 사이의 다양한 관계들을 식별하고 결정하도록 구성될 수 있다. 더 특정하게는, A/I 모듈은 복수의 다른 인자들과 대응하여 다양한 게놈 데이터를 분석하여, 다양한 인자들, 예를 들어, 데이터 포인트들 사이의 임의의 관계, 예를 들어, 효과 기반 관계들을 결정하도록 구성될 수 있으며, 이는 결정된 게놈 데이터, 예를 들어 변이 데이터에 대한 고려된 인자들의 효과들, 및 그 반대에 대해 유익할 수 있다.
구체적으로는, 아래에 더 상세히 설명된 바와 같이, A/I 모듈은 시스템에 의해 생성된 피험자의 게놈학 데이터를 해당 피험자 또는 다른 사람들에 대한, 임의의 전자 의료 레코드들과 상관시켜 그들 사이의 임의의 관계들 및/또는 임의의 다른 관련 인자들 및/또는 데이터를 결정하도록 구성될 수 있다. 따라서, 이들 인자들이 피험자 및/또는 그들의 게놈 데이터 및/또는 건강에 미칠 수 있는 임의의 관련 효과들 및/또는 관계들을 결정함에 있어서 시스템에 의해 사용될 수 있는 그러한 다른 데이터는 다음을 포함한다: NIPT 데이터, NICU 데이터, 암 관련 데이터, LDT 데이터, 환경 및/또는 Ag Bio 데이터, 및/또는 다른 그러한 데이터. 예를 들어, 분석될 추가 데이터는 환경 데이터, 클래드 데이터, 마이크로바이옴 데이터, 메틸화 데이터, 구조적 데이터, 예를 들어, 키메라 또는 짝 판독 데이터, 생식세포 변이 데이터, 대립 유전자 데이터, RNA 데이터, 및 피험자의 유전 물질에 관련된 다른 그러한 데이터와 같은 다른 인자들에 의해 유도될 수 있다. 그러므로, A/I 모듈은 시스템을 통해 흐르는 다양한 관련 데이터를 하나 이상의 다른 가능한 관련된 효과 기반 인자들과 함께 하나 이상의 피험자의 게놈에서 결정된 변이들에 링크시키는 데 사용될 수 있다.
특정하게는, A/I 엔진은 CPU/GPU/QPU 상에서 실행되도록 구성될 수 있고/있거나, 그것은 FPGA 및/또는 양자 프로세싱 유닛에서 구현될 수 있는 가속된 AI 엔진으로서 실행되도록 구성될 수 있다. 구체적으로는, AI 엔진은 시스템의 다양한 데이터베이스들 중 하나 이상, 예를 들어, 모두와 연관되어, AI 엔진이 시스템을 통해 흐르는 다양한 데이터를 탐색하고 프로세싱할 수 있도록 할 수 있다. 추가적으로, 그의 게놈이 프로세싱되고 있는 피험자가 게놈 및 환자 레코드 데이터 양쪽 모두에 액세스하기 위한 적절한 인가를 제공하는 경우, 시스템은 그 후 다양한 데이터 세트들을 서로 상관시키도록 구성되고, 추가로 데이터를 마이닝하여 다양한 중요한 대응 관계들, 연관성들, 및 관계들을 결정할 수 있다.
더 구체적으로는, A/I 모듈은 입력 데이터에 관하여 머신 학습 프로토콜을 구현하도록 구성될 수 있다. 예를 들어, 본 명세서에서 수행되고 있는 분석으로부터 생성되는 복수의 피험자의 게놈학 데이터는 데이터베이스에 저장될 수 있다. 마찬가지로, 적절한 인가 및 인증으로, 그의 게놈 DNA가 프로세싱된 피험자들에 대한 전자 의료/건강 레코드들(EMR)이 획득될 수 있고, 마찬가지로 데이터베이스에 저장될 수 있다. 아래에 더 상세히 설명된 바와 같이, 프로세싱 엔진(들)은 피험자 게놈 데이터뿐만 아니라 그들의 EMR 데이터를 분석하여, 그 둘 사이의 임의의 상관들을 결정하도록 구성될 수 있다. 이들 상관들은 이후 탐색되고, 관찰된 관계들이 강화될 것이고, 그의 결과들은 시스템의 다양한 함수들을 더 효과적으로 그리고 더 효율적으로 수행하기 위해 사용될 수 있다.
예를 들어, AI 프로세싱 엔진은 피험자의 게놈 데이터에, 그들 피험자의 알려진 질병들 또는 상태들과 상관하여, 액세스할 수 있고, 이 분석으로부터, AI 모듈은 그 데이터에 기초하여 예측 상관들을 수행하여, 다른 개인들에서의 질병 및/또는 다른 유사한 상태들의 존재를 더 많이 예측할 수 있게 되도록 학습할 수 있다. 특정하게는, 예를 들어 질병 마커의 존재와 관련하여, 다른 사람들의 게놈들과 그들의 EMR 사이의 그러한 상관들을 결정함으로써, A/I 모듈은 다른 사람들의 게놈들에서, 그러한 상관들, 예를 들어, 시스템 결정된 질병 마커를 식별하고, 그에 의해 질병 또는 다른 식별가능한 상태들의 가능성을 예측할 수 있도록 학습할 수 있다. 더 특정하게는, 공지된 또는 결정된 유전 질병 마커들과 비교하여 피험자의 게놈을 분석함으로써, 그리고/또는 피험자의 게놈에서의 변이를 결정함으로써, 그리고/또는 추가로, 게놈 데이터와 피험자의 건강 상태(예를 들어, EMR) 사이의 잠재적 관계를 결정함으로써, A/I 모듈은 샘플링되고 있는 피험자에 대해서만이 아니라, 미래에 샘플링될 수 있는 다른 사람들에 대해서 결론들을 추출할 수 있을 것이다. 이는, 예를 들어, 체계적 방식으로, 피험자별 기준으로 행해질 수 있거나, 또는 인구집단들 내에서 및/또는 지리적으로 별개의 로케이션들 내에서 행해질 수 있다.
더 특정하게는, 본 시스템들에 관하여, 판독들의 파일업이 생성된다. 파일업은 유의미한 변이의 더 높은 확률을 갖는 것으로 알려진 영역들과 중첩할 수 있다. 따라서, 한편으로 시스템은 파일업을 분석하여 변이의 존재를 결정할 것이고, 동시에 그의 이전 발견들에 기초하여, 변이가 거기에 존재해야 하는 또는 존재하지 않아야 하는 우도를 이미 알 것이고, 예를 들어, 그것은 응답이 무엇이어야 하는지에 대한 초기 예측을 가질 것이다. 예상되는 변이가 거기에 존재하는지 아닌지는 다른 사람들의 게놈들의 해당 영역을 분석할 때 유익할 것이다. 예를 들어, 이는 시스템이 변이 추출을 더 잘하고/하거나 그들 변이를 하나 이상의 질병 상태 또는 다른 건강 상태와 더 잘 연관시키는 데 사용되고 있는 데이터 포인트들의 합 내의 하나의 데이터 포인트일 수 있다.
예를 들어, 예시적인 학습 프로토콜에서, A/I 분석은 게놈 내의 하나 이상의 영역의, 예컨대 하나 이상의 건강 상태에 대한 코딩이 의심되는 영역들에 대한, 파일업의 전자 이미지를 취하는 것, 및 그 이미지를 다른 파일업들로부터의 공지된 변이 추출들과 연관시키는 것을 포함할 수 있고, 예컨대 이 경우 그들 변이는 질병 상태들과 관련되는 것으로 알려지거나 알려지지 않은 것일 수 있다. 이는 시스템이 정보를 프로세싱하고, 적절한 연관들을 행하고, 정확한 추출들을 점점 더 빠르게, 그리고 더 큰 정확도로 행하도록 학습하는 것으로 되풀이해서 행해질 수 있다. 일단 질병을 야기하는 것으로 의심되는 게놈의 다양한, 예를 들어, 모든 알려진 영역들에 대해 이것이 수행되면, 동일한 것이 게놈의 나머지에 대해 반복될 수 있다(예를 들어, 전체 게놈이 검토될 때까지). 마찬가지로, 이는 복수의 샘플 게놈에 대해, 거듭거듭 되풀이해서 반복되어, 더 빨리, 그리고 더 큰 효율로 더 정확한 추출들을 하도록 시스템, 예를 들어, 변이 추출기를 훈련시키고/시키거나, 3차 프로세싱 모듈이 건강하지 않은 상태들을 더 잘 식별할 수 있게 할 수 있다.
따라서, 시스템은 알려진 응답들을 갖는 많은 입력들을 수신하고, 분석을 수행하고, 응답을 계산하고, 그에 의해, 프로세스로부터 학습하고, 예를 들어, 하나의 게놈에 관하여, 파일업의 이미지를 렌더링하고, 그 후, 미래의 파일업들이 건강하지 않은 상태들에 관련된 것으로 알려진 이전에 캡처된 이미지들과 유사하다는 것이 더 쉽게 결정됨에 따라, 점점 더 빨리, 다른 게놈에 기초한 추출을 행하도록 학습한다. 따라서, 시스템은, 예를 들어, 패턴 인식들에 기초하여, 변이들의 존재에 관한 예측들을 행하고/하거나 그들 변이의 존재와 하나 이상의 의료 상태들 사이의 관계를 예측하는 것을 학습하도록 구성될 수 있다.
더 구체적으로는, 시스템이 부분 또는 전체 게놈 분석들을 수행하고, 예를 들어 복수의 샘플에서, 변형들과 다양한 상태들 사이의 관계를 결정하면 할수록, 시스템은, 예를 들어, 파일업들의 부분 또는 전체 게놈 이미지들에 기초한 예측들을 더 잘 할 수 있게 된다. 이는 파일업들 및/또는 다른 판독 분석의 이미지들에 기초하여 질병 상태들을 예측할 때 유용하고, EMR(표현형 데이터를 포함함), 파일업 이미지, 및/또는 공지된 변이들(유전형 데이터) 및/또는 예를 들어 예측들이 이루어질 수 있는 질병 상태들 또는 조건들 중 하나 이상 사이의 상관의 구축을 포함할 수 있다. 다양한 경우들에서, 시스템은 연관들 내의 데이터를 포함하도록, 피험자의 의료 레코드의 일부일 수 있는 물리적 노트들 중 임의의 것을 전사할 수 있도록, 전사 함수를 포함할 수 있다.
하나의 사용 모델에서, 피험자는 모바일 폰 또는 다른 컴퓨팅 디바이스와 같은 모바일 추적기 및/또는 센서를 가질 수 있는데, 이는 피험자의 로케이션을 추적하는 것뿐만 아니라 그 로케이션에서 사용자의 환경적 및/또는 생리적 상태들을 감지하는 것 양쪽 모두를 위해 구성될 수 있다. 다른 감지된 데이터도 수집될 수 있다. 예를 들어, 모바일 컴퓨팅 디바이스는 GPS 트래커를 포함할 수 있고/있거나 그것의 로케이션은 셀룰러 타워들에 의한 삼각측량에 의해 결정될 수 있고, 예를 들어 셀룰러, WIFI, 블루투스, 또는 다른 적합하게 구성된 통신 프로토콜을 통해 그의 수집된 데이터를 전송하도록 추가로 구성될 수 있다. 그러므로, 모바일 디바이스는 모바일 컴퓨터의 소유자가 그들의 매일 생활에서 마주치는 피험자의 지리적 로케이션들, 환경 조건들, 생리학적 상태, 및 다른 감지된 데이터에 관한 환경 데이터를 추적 및 카테고리화할 수 있다. 수집된 로케이션, 환경, 생리학적, 건강 데이터, 및/또는 다른 연관된 데이터, 예를 들어 ZNA 데이터는 이후, 예를 들어, 규칙적으로 그리고 주기적으로 본 명세서에서의 시스템 데이터베이스들 중 하나 이상에 전송될 수 있고, 여기서 수집된 ZNA 데이터는 본 명세서에서의 시스템에 의해 결정된 피험자의 환자 이력, 예를 들어, EMR 레코드, 및/또는 그들의 게놈 데이터와 상관될 수 있다.
마찬가지로, 다양한 경우들에서, 이들 데이터 중 하나 이상은, 예컨대 본 명세서에 개시된 인공 지능에 따라, 더 큰, 예를 들어 전국적 스케일로 분석되도록, ZNA 수집 및 분석 플랫폼으로부터, 예를 들어, 정부 시설에서의, 중앙 리포지토리에 전달될 수 있다. 예를 들어, 데이터베이스, 예를 들어, 정부 제어 데이터베이스는 피험자의 환경 데이터와 비교될 수 있는 기록된 환경 데이터를 가질 수 있다. 예를 들어, 하나의 예시적인 경우에, 엄마, 아빠, 및 그들의 자식에 대해 NICU 테스트가 수행될 수 있고, 그 후 그 셋의 생활 전체에 걸쳐, 그들의 환경 및 게놈 및 의료 레코드 데이터가 계속 수집되고 서로 및/또는 하나 이상의 모델과, 예컨대 개인들의 수명에 걸쳐, 특히 예컨대 환경적으로 영향력이 강한 인자들로 인한, 돌연변이들의 시작과 관련하여, 비교될 수 있다. 이 데이터 수집은 개인의 수명에 걸쳐 수행될 수 있고, 데이터 수집 데이터베이스를 더 잘 구축하고, 유전 변이에 대한 그러한 인자들의 효과들, 및 그 반대를 더 잘 예측하기 위해, 가족 전체에 대해 수행될 수 있다.
따라서, 워크플로우 관리 컨트롤러(151)는 시스템(1)이 하나 이상의 소스, 예컨대 하나 또는 다수의 서열 분석 기구들(예를 들어(110a, 110b), 110c 등)로부터의 입력들, 및 단일 서열 분석 기구(110)로부터의 다수의 입력들을 수신하는 것을 허용하고, 여기서 수신되는 데이터는 다수의 피험자들의 게놈들을 표현한다. 그러한 경우들에서, 워크플로우 관리 컨트롤러(151)는 모든 들어오는 데이터를 계속 추적할 뿐만 아니라, 또한 효율적으로 조직하고, 수신된 데이터의 2차 및/또는 3차 프로세싱을 용이하게 한다. 따라서, 워크플로우 관리 컨트롤러(151)는 시스템(1)이 작은 서열 분석 센터 및 큰 서열 분석 센터 양쪽 모두에 심리스하게 연결할 수 있게 하고, 여기서 모든 종류의 유전 물질이 동시에 하나 이상의 서열 분석 기구(110)를 통해 동시에 나오고 있을 수 있고, 이들 모두는 예컨대 클라우드(50)를 통해, 시스템(1) 내로 전달될 수 있다.
더 구체적으로는, 도 41a와 관련하여 알 수 있는 바와 같이, 다양한 경우들에서, 하나 또는 다수의 샘플들이 시스템(1) 내에서 수신될 수 있고, 그러므로 시스템(1)은 예컨대 다중 샘플 프로세싱 체제로, 순차적으로 또는 병렬로 샘플들을 수신하고 효율적으로 프로세싱하도록 구성될 수 있다. 따라서, 다중 샘플 프로세싱을 능률화 및/또는 자동화하기 위해, 시스템은 포괄적인 워크플로우 관리 시스템(WMS) 또는 LIMS(실험실 정보 관리 시스템)(151)에 의해 제어될 수 있다. WMS(151)는 사용자들이 임의의 파이프라인에 대한 다수의 워크플로우 런을 쉽게 스케줄링하는 것뿐만 아니라, NGS 분석 알고리즘들, 플랫폼 파이프라인들, 및 그들의 수반되는 애플리케이션들을 조정하거나 가속화하는 것을 가능하게 한다.
그러한 경우에, 각각의 런 시퀀스는 그것의 시퀀스의 유형, 파일 형식, 및/또는 어떤 프로세싱 단계들이 수행되었는지, 그리고 어떤 프로세싱 단계들이 수행될 필요가 있는지를 나타내는 바코드를 가질 수 있다. 예를 들어, 바코드는 "이것은 파일 형식 Y의, 피험자 X의 게놈 런이고, 따라서 이 데이터는 파이프라인 Z를 통과해야 한다"라는 것을 나타내는 매니페스트를 포함할 수 있고, 또는 마찬가지로 "이것은 이 보고 시스템에 들어갈 필요가 있는 A의 결과 데이터이다"라는 것을 나타낼 수도 있다. 따라서, 데이터가 수신되고, 프로세싱되고, 시스템을 통해 전송됨에 따라, 바 코드들 및 결과들은 LIMS(실험실 정보 관리 시스템)와 같은 워크플로우 관리 시스템(151) 내로 로딩될 것이다. 이 경우에, LIMS는 실험실들의 관리를 위해 이용되는 표준 툴이거나, 프로세스 흐름을 관리하기 위해 사용되는 특정하게 설계된 툴일 수 있다.
어떤 경우이든, 워크플로우 관리 컨트롤러(151)는, 결과들이 사용자에게 전송될 때까지, 예를 들어, 저장 및/또는 프로세싱을 위해, 바 코딩된 샘플이 주어진 사이트에 도착하는 때로부터, 이를 추적한다. 특정하게는, 워크플로우 관리 컨트롤러(151)는 모든 데이터가 시스템 엔드-투-엔드를 통해 흐를 때 이를 추적하도록 구성된다. 더 특정하게는, 샘플이 들어올 때, 샘플과 연관된 바 코드가 판독되고, 그 판독하는 것에 기초하여, 시스템은 요청된 워크플로우들이 무엇인지를 결정하고, 프로세싱을 위해 샘플을 준비한다. 그러한 프로세싱은 단일 게놈 파이프라인을 통해 실행되는 것과 같이 단순할 수 있거나, 함께 스티칭될 필요가 있는 다수의, 예를 들어, 5개의 파이프라인을 통해 실행되는 것과 같이, 더 복잡할 수 있다. 하나의 특정한 모델에서, 생성 또는 수신된 데이터는 시스템을 통해 실행되어 프로세싱된 데이터를 생성할 수 있고, 그 후 프로세싱된 데이터는 GATK 동등 모듈을 통해 실행될 수 있고, 그 결과들은 비교될 수 있고, 그 후 샘플은 추가의, 예를 들어, 3차 프로세싱(700)을 위해 다른 파이프라인에 전송될 수 있다. 도 41b를 참조한다.
그러므로, 전체로서 시스템은 여러 상이한 프로세싱 파이프라인들에 따라 실행될 수 있다. 사실상, 시스템 프로세스들 중 다수가 상호접속될 수 있고, 여기서 워크플로우 관리자(151)는 새로운 작업이 보류중인 것을 통지받거나 달리 결정하고, 작업 행렬들을 정량화하고, 필요한 분석들을 수행하기 위한 이용가능한 리소스들을 식별하고, 작업을 시스템에 로딩하고, 예를 들어, 서열분석기(110)에서 들어오는 데이터를 수신하고, 그것을 로딩한 다음 그것을 프로세싱한다. 특정하게는, 일단 워크플로우가 설정되면, 이는 저장될 수 있고, 그 후 수정된 바 코드가 그 워크플로우에 할당되고, 자동화된 프로세스가 워크플로우의 지시들에 따라 행해진다.
본 자동화된 워크플로우 관리 시스템(151) 전에는, 시스템, 및 그의 컴포넌트 부분들을 구성하고 설정하는 데 다수의 생물 정보학자와 긴 시간 기간이 필요할 것이고, 그 후 실제로 분석을 실행하는 데 추가 시간이 필요할 것이다. 설상가상으로, 시스템은 분석할 다음 샘플을 수신하기 전에 재구성되어야 할 것이고, 이는 새로운 샘플 세트를 분석하기 위해 시스템을 재구성하는 데 훨씬 더 많은 시간을 필요로 한다. 본 명세서에 개시된 기술에 의하면, 시스템은 완전히 자동화될 수 있다. 본 시스템은, 특정하게는, 다수의 샘플을 자동으로 수신하고, 이들을 다수의 상이한 워크플로우 및 파이프라인에 매핑하고, 이들을 동일한 또는 다수의 상이한 시스템 카드 상에서 실행하도록 구성된다.
따라서, 워크플로우 관리 시스템(151)은 바 코드들의 작업 요건들을 판독하고, 예를 들어, 로케이션에 관계없이, 작업들을 수행하기 위한 리소스들을 할당하고, 샘플 바코드를 업데이트하고, 샘플들을 프로세싱을 위해, 할당된 리소스들, 예를 들어, 프로세싱 유닛들에 보낸다. 그러므로, 수신된 샘플들에 대해 실행될 2차(600) 및/또는 3차(700) 분석 프로토콜들을 결정하는 것은 워크플로우 관리자(151)이다. 이들 프로세싱 유닛은 각각의 데이터 세트에 할당된 연산들을 묘사하고 수행하기 위해 이용 가능한 리소스들이다. 특정하게는, 워크플로우 컨트롤러(151)는, 샘플을 수신 및 판독하는 것, 작업들을 결정하는 것, 그들 작업의 수행, 예를 들어, 2차 프로세싱을 위한 리소스들을 할당하는 것, 모든 시스템 컴포넌트들을 연결하는 것, 및 시스템을 통해 컴포넌트에서 컴포넌트로 샘플 세트를 전진하는 것과 연관된 다양한 연산들을 제어한다. 따라서, 컨트롤러(151)는, 시작부터 끝까지, 예를 들어, 샘플 수신으로부터 VCF 생성까지, 그리고/또는 계속해서 3차 프로세싱까지 전체 시스템을 관리하는 역할을 한다(도 41b 기준).
추가적인 경우들에서, 도 41c와 관련하여 알 수 있는 바와 같이, 시스템(1)은 예컨대 진단, 질병 및/또는 치료 발견 및/또는 그의 예방을 위해, 예를 들어, 2차 및/또는 3차 프로세싱 결과 데이터의 추가적인 프로세싱을 렌더링하도록 구성된 것과 같은, 프로세싱 모듈들(800)의 추가 계층을 포함할 수 있다. 예를 들어, 다양한 경우들에서, 본 1차 및/또는 2차 및/또는 3차 파이프라인들 중 하나 이상에 의해 생성되는 데이터를 이용한, NIPT(123a), NICU(123b), 암(123c), LDT(123d), AgBio(123e), 및 다른 그러한 질병의 진단, 예방, 및/또는 치료를 포함한, 예컨대 질병 진단, 치료 처치, 및/또는 예방 방지(70)를 위한 프로세싱(800)의 추가적인 층이 제공될 수 있다.
따라서, 로컬(30) 및/또는 글로벌 하이브리드(50) 클라우드 네트워크를 생성하고 이용하기 위한 시스템(1)이 본 명세서에서 제시된다. 예를 들어, 현재, 로컬 클라우드(30)는 예컨대 원격 저장 로케이션(400)에 전용 저장을 위해 주로 이용된다. 그러한 경우에, 로컬 컴퓨팅 리소스(140)에 의해 데이터의 컴퓨팅이 로컬(100)로 수행되며, 저장 요구가 방대한 경우, 예컨대 원격 전용 저장 리소스(400)를 이용함으로써, 로컬 컴퓨팅 리소스(140)에 의해 생성된 데이터를 저장하기 위해 로컬 클라우드(30)에 액세스할 수 있다. 그러므로, 생성된 데이터는 전형적으로 온 사이트에서 로컬로(100) 전체적으로 관리된다. 다른 실시예들에서, 데이터는 개인 클라우드 인터페이스(30)를 통해 원격 컴퓨팅 리소스(300)에 안전하게 연결함으로써 생성, 계산 및 관리될 수 있다.
특정하게는, 생물정보학 분석 플랫폼의 일반적인 구현에서, 로컬 컴퓨팅(140) 및/또는 저장(200) 함수들은 온 사이트(100)에 로컬로 유지된다. 그러나, 저장이 로컬 저장 용량을 초과하는 경우, 데이터는 오프 사이트(400)에 전용으로 저장되도록 로컬 클라우드 액세스(30)를 통해 업로드될 수 있다. 게다가, 저장된 데이터(400)가 다른 원격 사용자들에게 이용 가능하게 될 필요가 있는 경우, 그러한 데이터는 전송되어 글로벌 클라우드(50) 인터페이스를 통해 그에 의한 원격 저장(400)을 위해, 그러나 글로벌 액세스를 위해 이용 가능하게 될 수 있다. 그러한 경우에, 컴퓨팅 함수들의 수행을 위해 요구되는 컴퓨팅 리소스들(140)이 최소이지만, 저장 요건들이 방대한 경우, 컴퓨팅 함수(140)는 로컬로(100) 유지될 수 있는 반면, 저장 함수(400)는 예를 들어, 전용 또는 글로벌 액세스 중 어느 하나를 위해 원격으로 유지될 수 있고, 완전히 프로세싱된 데이터는, 예컨대 로컬 프로세싱만을 위한, 로컬 프로세싱 함수(140)와, 예컨대 프로세싱된 데이터의 원격 저장(400)을 위한, 저장 함수(400) 사이에 앞뒤로, 예컨대 위에 본 명세서에 개시된 JIT 프로토콜들을 이용하여, 전송된다.
예를 들어, 이는 예컨대 전형적인 NGS에 의한, 서열 분석 함수(110)에 관하여 예시될 수 있고, 여기서 데이터 생성 및/또는 컴퓨팅 리소스(100)는 유전 물질의 서열 분석에 필요한 함수들을 수행하여 유전 서열 분석된 데이터, 예를 들어, 판독들을 생성하도록 구성되고, 그 데이터는 온사이트(100)에서 생성되고 및/또는 온사이트에서 로컬로(30) 전송된다. 이들 판독은, 일단 생성되면(예컨대 온사이트 NGS에 의해) 그 후 예컨대 추가 프로세싱을 위해 필요할 때 클라우드(30)로부터 리콜되는 방식으로 원격 로케이션(300)에 저장(400)을 위해, 클라우드 네트워크(30)를 통해, 예를 들어, BCL 또는 FASTQ 파일로서 전송될 수 있다. 예를 들어, 일단 서열 데이터가 생성되고 저장되면(예를 들어, 400), 데이터는 그 후 예를 들어, 로컬 사용을 위해, 예컨대 저장 시설(400)로부터 원격인 로케이션에, 예를 들어 로컬로(100) 있는 2차(600) 및/또는 3차(700) 프로세싱 함수들 중 하나 이상의 수행을 위해, 리콜될 수 있다. 그러한 경우에, 로컬 저장 리소스(200)는 단지 클라우드(30/50)로 또는 그로부터의, 예컨대 원격 저장 시설(400)로 또는 그로부터의 전송을 대기하는 동안 데이터가 배치되는 저장 캐시로서의 역할을 한다.
마찬가지로, 데이터를 프로세싱하기 위해 하나 이상의 원격 컴퓨팅 서버 또는 컴퓨팅 클러스터 코어(300)를 요구하는 것과 같이, 컴퓨팅 함수가 방대한 경우, 및 데이터를 프로세싱하는 데 필요한 컴퓨팅 리소스(300)에 비해, 프로세싱된 데이터(200)를 저장하기 위한 저장 요구가 상대적으로 최소인 경우에, 프로세싱될 데이터는, 원격 컴퓨팅 리소스(300)에 의해 프로세싱되도록, 예컨대 클라우드(30)를 통해 전송될 수 있으며, 그 리소스는 컴퓨팅 리소스, 예를 들어, 하나 이상의 수퍼 컴퓨팅 리소스의 하나 이상의 코어 또는 클러스터를 포함할 수 있다. 그러한 경우에, 일단 데이터가 클라우드 기반 컴퓨터 코어(300)에 의해 프로세싱되면, 프로세싱된 데이터는 그 후 로컬로(200) 저장되고 예컨대 로컬 분석 및/또는 진단을 위해, 로컬 컴퓨팅 리소스(140)에 의한 사용을 위해 쉽게 이용가능하게 되도록, 클라우드 네트워크(30)를 통해 전송될 수 있다. 물론, 원격으로 생성된 데이터(300)도 원격으로(400) 저장될 수 있다.
이는 전형적인 제2 프로세싱 함수(600)와 관련하여 추가로 예시될 수 있는데, 예컨대 이 경우 프리-프로세싱된 서열 분석된, 예를 들어, 판독 데이터가 로컬로(200) 저장되고, 예컨대 로컬 컴퓨팅 리소스(100)에 의해 액세스되고, 클라우드 인터넷(30)을 통해 원격 컴퓨팅 시설(300)에 전송되어 그에 의해 추가 프로세싱되어(예를 들어, 2차(600) 또는 3차(700) 프로세싱 함수에서), 프로세싱된 결과 데이터를 획득하고, 이는 그 후 다시 로컬 시설(100)로 그에 의한 저장(200)을 위해 전송될 수 있다. 이는, 로컬 실무자가 BCL 또는 FASTQ 파일을 생성하기 위해 로컬 데이터 생성 리소스(110), 예를 들어 자동 서열분석기를 사용하여 서열 분석된 판독 데이터를 생성하고, 그 후 그 데이터를 네트워크(50)를 통해 원격 컴퓨팅 시설(300)로 전송하고, 이 컴퓨팅 시설은 그 후 그 데이터에 대해 하나 이상의 함수, 예컨대 그 서열 데이터에 대해 버로우즈-휠러 변환 또는 니들만-분쉬 및/또는 스미스-워터만 정렬 함수를 실행하여, 예를 들어 SAM 파일 형식의 결과 데이터를 생성하고, 이는 그 후 압축되고 인터넷(30/50)을 통해, 예를 들어, BAM 파일로서 로컬 컴퓨팅 리소스(100)에 전송되어 그에 의해 하나 이상의 로컬 관리 프로세싱 프로토콜에서 검사되어, 예컨대 VCF를 생성할 수 있고, 이는 그 후 로컬로(200) 저장될 수 있는 경우일 수 있다. 다양한 경우들에서, 데이터는 또한 원격으로(400) 저장될 수 있다.
그러나, 필요한 것은, 본 명세서에서 제시된 하이브리드 클라우드(50) 기반 시스템에서와 같이, 로컬(200)과 원격(400) 저장의 사이뿐만 아니라 로컬(100)과 원격(300) 컴퓨터 프로세싱 사이의 관여 사이의 심리스한 통합이다. 그러한 경우에, 로컬(100) 및 원격(300) 컴퓨팅 리소스가 심리스하게 함께 연산하도록 구성되도록, 또한, 그에 의해 프로세싱될 데이터가, 전송 레이트 및/또는 연산 효율로 인해 고가의 페널티를 지불하지 않고, 로컬(200) 또는 원격(300) 컴퓨팅 리소스에 실시간으로 할당될 수 있도록 시스템을 구성할 수 있다. 이는 예를 들어, 컴퓨팅 리소스들(100 및 300)에 의해 배치되거나 달리 실행될 소프트웨어 및/또는 하드웨어 및/또는 양자 프로세싱이 서로 대응하도록 구성되고/되거나 동일하거나 기능적으로 유사하고, 예를 들어, 하드웨어 및/또는 소프트웨어가 생성 및/또는 수신된 데이터에 대해 동일한 방식으로 동일한 알고리즘을 실행하도록 동일한 방식으로 구성되는 경우일 수 있다.
예를 들어, 도 41a와 관련하여 알 수 있는 바와 같이, 로컬 컴퓨팅 리소스(100)는 데이터를 생성하거나 생성된 데이터를 수신하도록 구성될 수 있으며, 따라서 예를 들어 BCL 및/또는 FASTQ 서열 파일을 생성하기 위해, 예컨대 1차 데이터 생성 및/또는 분석(500)을 위한 데이터 생성 메커니즘(110)을 포함할 수 있다.
이 데이터 생성 메커니즘(110)은, 생성 및/또는 취득된 데이터에 대해 예컨대 와이어드 구성으로 하나 이상의 소프트웨어 애플리케이션을 실행하도록 구성될 수 있고/있거나, 하나 이상의 알고리즘을 수행하도록 하드와이어드될 수 있는 프로세서(140)를 갖는, 본 명세서 전체에 걸쳐 설명된 로컬 컴퓨터(100)일 수 있거나 그와 연관될 수 있다. 예를 들어, 데이터 생성 메커니즘(110)은 서열 분석 데이터(111)와 같은 데이터를 생성하는 것 중 하나 이상을 위해 구성될 수 있다. 다양한 실시예들에서, 생성된 데이터는 전압의 변화, 이온 농도, 전자기 방사 등으로서 검출가능한 데이터와 같은 감지된 데이터(111a)일 수 있다; 및/또는 데이터 생성 메커니즘(110)은 연관된 뉴클레오티드의 서열 또는 체인에서 하나 이상의 뉴클레오티드 아이덴티티를 표현하는 데이터와 같은, 신호, 예를 들어, 아날로그 또는 디지털 신호 데이터를 생성 및/또는 프로세싱하도록 구성될 수 있다. 그러한 경우에, 데이터 생성 메커니즘(110), 예를 들어, 서열분석기(111)는 신호 프로세싱(111b)을 위해 생성된 데이터에 대해 예비 프로세싱을 수행하거나, 서열 아이덴티티 데이터, 예를 들어, BCL 및/또는 FASTQ 파일(111d)을 생성하기 위해 예컨대 데이터에 대해 하나 이상의 염기 추출 연산(111c)을 수행하도록 추가로 구성될 수 있다.
유의해야 할 점은 이 경우에, 생성된 데이터(111)는 예컨대 로컬 데이터 생성(110) 및/또는 컴퓨팅 리소스(140), 예를 들어, NGS 또는 서열분석기 칩에 의해 로컬로 및 직접 생성될 수 있다는 점이다. 대안적으로, 데이터는 예를 들어 원격 NGS와 같은 원격 컴퓨팅 및/또는 생성 리소스에 의해 로컬로 및 간접적으로 생성될 수 있다. 예를 들어, BCL 및/또는 FASTQ 파일 형식의 데이터(111)는, 일단 생성되면, 그 후 로컬 클라우드(30)를 통해 로컬 컴퓨팅 리소스(100)에 간접적으로 전송되어 예컨대 그에 의해 2차 프로세싱(140)되고/되거나 로컬 저장 리소스(200)에 전송되고, 예컨대 추가 로컬 프로세싱(140)을 기다릴 수 있다. 그러한 경우에, 데이터 생성 리소스가 로컬 프로세싱(100) 및/또는 저장(200) 리소스로부터 원격에 있는 경우, 대응하는 리소스들은, 각각의 리소스에 의해 이용되는 원격 및/또는 로컬 저장, 원격 및 로컬 프로세싱, 및/또는 통신 프로토콜들이, 예를 들어, 동일, 유사, 및/또는 동등한 소프트웨어를 실행함으로써, 및/또는 동일, 유사, 및/또는 동등한 하드웨어 구성을 가짐으로써, 및/또는 일부 경우들에서, 제조와 동시에 또는 그 이후에 구현되었을 수 있는 동일 통신 및/또는 전송 프로토콜을 이용함으로써, 서로 원활하게 및/또는 심리스하게 통합되도록 적응될 수 있도록 구성될 수 있다.
구체적으로는, 일 구현에서, 이들 함수들은 하드와이어드 구성으로 구현될 수 있고, 예컨대 이 경우 서열 분석 함수 및 2차 프로세싱 함수는 동일하거나 연관된 칩 또는 칩셋 상에 유지되고, 예를 들어, 예컨대 이 경우 서열분석기 및 2차 프로세서는 본 명세서에 설명된 바와 같이 칩 상에서 직접 상호접속된다. 다른 구현들에서, 이들 함수는 2개 이상의 원격 디바이스들이 서로 심리스하게 통신하도록 허용하기 위해 최적화된, 예를 들어, 양자 프로세서, CPU, 또는 GPU 상에, 소프트웨어를 통해 2개 이상의 별개의 디바이스들 상에 구현될 수 있다. 다른 구현들에서, 언급된 함수들을 수행하기 위한 최적화된 하드웨어 및 소프트웨어 구현들의 조합이 또한 이용될 수 있다.
더 구체적으로는, 매핑, 정렬, 소팅, 변이 추출, 및/또는 로컬(100) 및/또는 원격(300) 컴퓨팅 리소스들에 의해 배치될 수 있는 다른 함수들의 수행에 관하여 동일한 구성들이 구현될 수 있다. 예를 들어, 로컬 컴퓨팅(100) 및/또는 원격(300) 리소스들은 그의 프로세싱 및/또는 결과들이 서로 심리스하게 공유되고/되거나 그에 의해 저장될 수 있는 방식으로, 유전 서열 데이터와 같은, 로컬 및/또는 원격으로 생성된 데이터에 대해, 프로세싱 함수들(112-115)의 하나 이상의 2차(600) 계층, 및/또는 프로세싱 함수들의 3차 계층들(700/800)을 수행하도록 구성되는 소프트웨어 및/또는 하드웨어를 포함할 수 있다. 특정하게는, 로컬 컴퓨팅 함수(100) 및/또는 원격 컴퓨팅 함수(300)는, 예를 들어, BCL 및/또는 FASTQ 파일 형식의 유전 서열 데이터와 같은 1차 데이터를 생성 및/또는 수신하고, 생성 및/또는 취득된 데이터에 대해 하나 이상의 2차(600) 및/또는 3차(700) 프로세싱 프로토콜을 실행하도록 구성될 수 있다. 그러한 경우에, 이들 프로토콜들 중 하나 이상은 양자 프로세서, CPU, 및/또는 GPU 상에서 실행되는 것과 같이, 소프트웨어, 하드웨어, 또는 조합 형식으로 구현될 수 있다. 예를 들어, 데이터 생성(110) 및/또는 로컬(100) 및/또는 원격(300) 프로세싱 리소스는, 소프트웨어에서 및/또는 하드웨어에서 취득된 또는 생성된 데이터에 대해 매핑 연산(112), 정렬 연산(113), 변이 추출(115), 또는 다른 관련 함수(114) 중 하나 이상을 수행하도록 구성될 수 있다.
따라서, 다양한 실시예들에서, 서열분석기(111), 예를 들어, NGS 또는 서열분석기 칩과 같은 데이터 생성 리소스는, 소프트웨어로 및/또는 하드웨어로 구현되든, 또는 이들의 조합이든 간에, 스케줄러, 다양한 분석, 비교기, 그래퍼, 릴리서 등과 같은 프로세서들(500)의 초기 계층을 포함하여, 데이터 생성기(111), 예를 들어, 서열분석기가 생물학적 정보를 예컨대 BCL 또는 FASTQ 파일 형식(111d)의 원시 판독 데이터로 변환하는 것을 보조하도록 더 구성될 수 있다. 게다가, 로컬 컴퓨팅(100) 리소스는, 소프트웨어로 및/또는 하드웨어로 구현되든, 또는 이들의 조합이든 간에, 예컨대 매핑 엔진(112)을 포함할 수 있는, 또는 유전 서열 데이터에 대해 매핑 알고리즘을 실행하기 위한, 예컨대, 상기 데이터에 대해 해시 함수(112a)를 실행하고/하거나 해시 테이블을 구축하기 위해 버로우즈-휠러 변환 및/또는 다른 알고리즘들을 수행하여, 예를 들어, 해시 시드 매핑하여 매핑된 서열 데이터를 생성하기 위한 프로그래밍을 달리 포함할 수 있는 프로세서들(600)의 추가 계층을 포함하도록 더 구성될 수 있다. 게다가 또한, 로컬 컴퓨팅(100) 리소스는, 소프트웨어로 및/또는 하드웨어로 구현되든, 또는 이들의 조합이든 간에, 예컨대 본 명세서에 설명된 바와 같은, 정렬 엔진(113)을 포함할 수 있는, 또는 유전 서열 데이터, 예컨대 매핑된 서열 분석된 데이터에 대해 정렬 알고리즘을 실행하기 위한, 예컨대, 상기 데이터에 대해 갭이 있는 및/또는 갭이 없는 스미스-워터만 정렬, 및/또는 니들만-분쉬, 또는 다른 유사한 스코어링 알고리즘(113a)을 수행하여, 정렬된 서열 데이터를 생성하기 위한 프로그래밍을 달리 포함할 수 있는 프로세서들(600)의 초기 계층을 포함하도록 더 구성될 수 있다.
로컬 컴퓨팅(100) 및/또는 데이터 생성 리소스(110)는 또한, 소프트웨어로 및/또는 하드웨어로 구현되든, 또는 이들의 조합이든 간에, 유전 서열 데이터에 대해, 예컨대 매핑 및/또는 정렬된 서열 데이터에 대해 하나 이상의 다른 프로세싱 함수를 수행하도록 적응될 수 있는, 하나 이상의 다른 모듈(114)을 포함하도록 구성될 수 있다. 따라서, 이 하나 이상의 다른 모듈은 적합하게 구성된 엔진(114)을 포함하거나, 본 명세서에 설명된 방법들에 따라, 정렬(114a), 중복제거(114b), 재측정(114c), 로컬 재정렬(114d), 중복 마킹(114f), 염기 품질 스코어 재측정(114g) 함수(들) 및/또는 압축 함수(예컨대 SAM, 감소된 BAM, 및/또는 CRAM 압축 및/또는 압축해제 파일을 생성하기 위한 것)(114e)와 같은 하나 이상의 다른 프로세싱 함수를 실행하기 위한 프로그래밍을 달리 포함할 수 있다. 다양한 경우들에서, 이들 프로세싱 함수 중 하나 이상은 시스템(1)의 하나 이상의 파이프라인으로서 구성될 수 있다.
마찬가지로, 시스템(1)은, 소프트웨어로 및/또는 하드웨어로 구현되든, 또는 이들의 조합이든 간에, 데이터, 예를 들어 서열 분석, 매핑, 정렬, 및/또는 소팅된 데이터를 변이 추출 파일(116)을 생성하는 방식으로 프로세싱하도록 적응될 수 있는, 모듈(115)을 포함하도록 구성될 수 있다. 특정하게는, 시스템(1)은 하나 이상의 변이 추출 함수, 예컨대 은닉 마르코프 모델(HMM) 및/또는 GATK 함수(115a)를, 예컨대 와이어드 구성으로 및/또는 하나 이상의 소프트웨어 애플리케이션을 통해, 예를 들어 로컬로 또는 원격으로 실행하기 위한 변이 추출 모듈(115) 및/또는 그것을 위한 변환기(115b)를 포함할 수 있다. 다양한 경우들에서, 이 모듈은 시스템(1)의 하나 이상의 파이프라인으로서 구성될 수 있다.
도 41b에 제시된 바와 같이, 특정한 실시예들에서, 시스템(1)은, 시스템 데이터 생성기(110)에 의해 생성되거나, 시스템 취득 메커니즘(120)(본 명세서에 설명됨)에 의해 취득, 예를 들어, 클라우드(30) 또는 하이브리드 클라우드 네트워크(50) 등을 통해 제3자(121)에 의해 그에 전송됨으로써 취득된 데이터, 예를 들어, BCL 및/또는 FASTQ 데이터에 대해, 하나 이상의 추가 프로세싱 함수를 수행하기 위한 컴퓨터 프로세싱 리소스(150)를 이용하도록 구성될 수 있는 로컬 컴퓨팅 함수(100)를 포함할 수 있다. 예를 들어, 제3자 분석기(121)는, 유전 서열 데이터 등과 같은 추가 프로세싱을 필요로 하는 관련 데이터를 생성하도록 원격 컴퓨팅 리소스(300)를 배치할 수 있고, 그 데이터는 추가 프로세싱되도록 네트워크(30/50)를 통해 시스템(1)에 전달될 수 있다. 이는 예를 들어, 원격 컴퓨팅 리소스(300)가, 원시 생물학적 데이터를 취하고, 그것을 그의 디지털 표현으로, 예컨대 유전 서열 데이터의 판독들을 포함하는 하나 이상의 FASTQ 파일들의 형태로 변환하도록 구성된 NGS이고; 예컨대 본 명세서에 설명된 바와 같이, 개인의 생성된 서열이 하나 이상의 기준 서열의 것과 어떻게 상이한지를 결정하기 위해 추가 프로세싱을 원하고/하거나 그의 결과에 추가의, 예를 들어, 3차 프로세싱을 적용하기를 원하는 경우에 유용할 수 있다.
그러한 경우에, 시스템(1)은, 하나 이상의 당사자, 예컨대 1차 및/또는 2차 및/또는 제3자 사용자가, 생성 및/또는 취득된 데이터에 대해 하나 이상의 정량적 및/또는 정성적 프로세싱 함수(152)를 수행할 수 있는 방식으로, 연관된 로컬 프로세싱 리소스(100) 및/또는 그와 연관된, 적합하게 구성된 원격 프로세싱 리소스(300)에 액세스할 수 있도록 적응될 수 있다. 예를 들어, 일 구성에서, 시스템(1)은 예를 들어 1차(500) 및/또는 2차(600) 프로세싱 파이프라인에 추가하여, 제3 계층의 프로세싱 모듈들(700/800)을 포함할 수 있고, 그 프로세싱 모듈들은 생성 및/또는 취득된 1차 및/또는 2차 프로세싱 데이터에 대해 하나 이상의 프로세싱 함수들을 수행하도록 구성될 수 있다.
특정하게는, 일 실시예에서, 시스템(1)은, 변이 추출 파일(116)을 생성하기 위해 원격으로 또는 로컬로 매핑(112), 정렬(113), 소팅(114a) 및/또는 추가 프로세싱(114)된 프로세싱된 유전 서열 데이터(111)를 생성 및/수신하도록 구성될 수 있고, 그 변이 추출 파일은 그 후, 예컨대 제2 및/또는 제3자 분석 요청(121)에 응답하여, 예컨대 시스템(1) 내에서 추가 프로세싱을 겪을 수 있다. 더 특정하게는, 시스템(1)은 제3자(121)로부터 프로세싱 요청들을 수신하도록 구성될 수 있고, 생성 및/또는 취득된 데이터에 대해 그러한 요청된 2차(600) 및/또는 3차 프로세싱(700/800)을 수행하도록 더 구성될 수 있다. 구체적으로는, 시스템(1)은 유전 서열 데이터(111)를 생성 및/또는 취득하도록 구성될 수 있고, 그 유전 서열 데이터를 취하여 그것을 매핑(112), 정렬(113), 및/또는 소팅(114a)하고 그것을 프로세싱하여 하나 이상의 변이 추출 파일(VCF)(116)을 생성하도록 구성될 수 있고, 추가적으로 시스템(1)은, 예를 들어, 시스템(1)에 의해 생성되거나 수신된 하나 이상의 VCF에 관하여, 데이터에 대해 3차 프로세싱 함수(700/800)를 수행하도록 구성될 수 있다.
특정하게는, 시스템(1)은 생성 및/또는 취득된 데이터에 대해 임의의 형태의 3차 프로세싱(700)을 수행하도록 구성될 수 있는데, 예컨대 그것에 하나 이상의 파이프라인 프로세싱 함수(700)를 적용하여 예컨대 게놈, 예를 들어, 전체 게놈, 데이터(122a), 에피게놈 데이터(122b), 메타게놈 데이터(122c) 등을 생성하고, 유전형, 예를 들어, 공동 유전형 데이터(122d), GATK(122e) 및/또는 MuTect2(122f) 분석 데이터를 포함하는, 변이 분석 데이터를 포함하고, 다른 잠재적인 데이터 분석 파이프라인들 중에서도, 예컨대 마이크로-어레이 분석 파이프라인, 엑솜 분석 파이프라인, 마이크로바이옴 분석 파이프라인, RNA 서열 분석 파이프라인, 및 다른 유전 분석 파이프라인을 포함한다. 게다가, 시스템(1)은 생성 및/또는 프로세싱된 데이터에 대해, 예컨대 비침습성 산전 테스트(NIPT)(123a), N/P ICU(123b), 암 관련 진단 및/또는 치료 모달리티들(123c), 다양한 실험실 개발 테스트(LDT)(123d), 농업 생물학적(Ag Bio) 애플리케이션(123e), 또는 다른 그러한 건강 관리 관련(123f) 프로세싱 함수 중 하나 이상을 포함한, 추가적인 계층의 프로세싱(800)을 수행하도록 구성될 수 있다. 도 41c를 참조한다.
그러므로, 다양한 실시예들에서, 1차 사용자가 시스템(1) 및 그의 다양한 컴포넌트들에 직접, 예컨대 그와의 직접 액세스를 통해, 예컨대 본 명세서에서 제시된 로컬 컴퓨팅 리소스(100)를 통해, 액세스하고/하거나 이를 구성하는 경우, 시스템(1)은, 로컬 환경 내에서 시스템(1)을 구성하고 실행하기 위해 로컬 네트워크 또는 인트라넷 연결(10)을 통해 시스템(1)에 연결되는 것과 같이, 제2 당사자에 의해 액세스되도록 구성될 수 있다. 추가적으로, 특정 실시예들에서, 시스템은, 예컨대 하나 이상의 그래픽 사용자 인터페이스(GUI) 컴포넌트를 통해 액세스 가능한 애플리케이션 프로그램 인터페이스(API)를 통해, 제3자(121)를 시스템(1)에 연결하는 연관된 하이브리드-클라우드 네트워크(50)를 통해, 제3자(121)에 의해 액세스 및/또는 구성되도록 적응될 수 있다. 그러한 GUI는 제3자 사용자가 시스템(1)에 액세스할 수 있게 하고, API를 이용하여, 시스템의 다양한 컴포넌트들, 모듈들, 연관된 파이프라인들, 및 다른 연관된 데이터 생성 및/또는 프로세싱 기능성들을 구성하여, 제3자에게 필요 및/또는 유용한 및/또는 그에 의해 실행될 것을 요청하거나 원하는 그들 시스템 컴포넌트들만을 실행하도록 구성될 수 있다.
따라서, 다양한 경우들에서, 본 명세서에서 제시된 시스템(1)은 시스템의 1차, 2차 또는 3차 사용자에 의해 구성가능하도록 적응될 수 있다. 그러한 경우에, 시스템(1)은, 사용자가 시스템(1)을 구성할 수 있게 하고, 그에 의해 분석 시스템 리소스들(예를 들어 152) 중 하나, 모두 또는 선택된 것을 예를 들어, 1차, 2차, 또는 제3자 사용자에 의해 생성, 취득, 또는 달리 시스템에 전송되는 데이터에 대해 실행되도록 배치하는 방식으로 그의 컴포넌트들을 배열하도록 적응될 수 있고, 따라서 시스템(1)은 그의 원하는 결과를 획득하기 위해 사용자에 의해 요청된 분석을 실행하는 데 필요하거나 유용한 시스템의 부분들만을 실행하게 된다. 예를 들어, 이들 및 다른 그러한 목적을 위해, API가 시스템(1) 내에 포함될 수 있으며, 여기서 API는, 사용자가 선택할 수 있고/있거나 달리 원하는 대로 시스템 및 그의 컴포넌트들을 구성 및 동작시키도록 만들 수 있는 시스템 함수 호출의 관련 리스트 및/또는 동작가능 메뉴를 포함하는 그래픽 사용자 인터페이스(GUI)를 포함하거나 달리 그와 동작가능하게 연관되도록 구성된다.
그러한 경우에, GUI 메뉴 및/또는 시스템 함수 호출들은 예컨대 본 명세서에 설명된 1차 및/또는 2차 프로세싱 함수들과 관련하여, 본 명세서의 교시들에 따라, 서열 분석(111), 매핑(112), 정렬(113), 소팅(114a), 변이 추출(115), 및/또는 다른 연관된 함수들(114)을 포함하는 하나 이상의 제1 계층의 연산들(600) 중 사용자 선택가능한 연산들을 지시할 수 있다. 게다가, 원하는 경우, GUI 메뉴 및/또는 시스템 함수 호출들은 게놈, 예를 들어, 전체 게놈, 분석 파이프라인(122a), 에피게놈 파이프라인(122b), 메타게놈 파이프라인(122c), 유전형, 예를 들어, 공동, 유전형 분석 파이프라인(122d), 변이 파이프라인들, 예를 들어, 구조적 변이 파이프라인들을 포함하는 GATK(122e) 및/또는 MuTect2(122f) 분석 파이프라인들뿐만 아니라, 다른 3차 분석 파이프라인, 예컨대, 마이크로-어레이 분석 파이프라인, 엑솜 분석 파이프라인, 마이크로바이옴 분석 파이프라인, RNA 서열 분석 파이프라인, 및 다른 유전 분석 파이프라인을 포함하는, 하나 이상의 제2 계층의 연산들(700) 중의 연산들을 지시할 수 있다. 더욱이, 원하는 경우, GUI 메뉴 및 시스템 함수 호출들은 비침습성 산전 테스트(NIPT)(123a), N/P ICU(123b), 암 관련 진단들 및/또는 치료 모달리티들(123c), 다양한 실험실 개발 테스트들(LDT)(123d), 농업 생물학(Ag Bio) 애플리케이션들(123e), 또는 다른 그러한 건강 관련 관련(123f) 프로세싱 함수들을 포함하는 하나 이상의 제3 계층의 연산들(800) 중 사용자 선택가능한 연산들을 지시할 수 있다.
따라서, 메뉴 및 시스템 함수 호출들은, 예컨대 사용자에 의해 선택 및 구성되는 하나 이상의 데이터 분석 파이프라인을 수행하는 것과 관련하여 시스템 및/또는 그의 컴포넌트 부분들이 구성되도록, 하나 이상의 1차, 2차, 및/또는 3차 프로세싱 함수를 포함할 수 있다.
그러한 경우에, 로컬 컴퓨팅 리소스(100)는 원격 컴퓨팅 리소스(300)에 대응 및/또는 미러링하도록 구성될 수 있고/있거나, 마찬가지로 로컬 저장 리소스(200)는 원격 저장 리소스(400)에 대응 및/또는 미러링하도록 구성되어, 시스템의 다양한 컴포넌트들이 실행될 수 있고/있거나, 그에 의해 생성된 데이터가 시스템(1)의 이용에 의해 선택되는 심리스한 변이 방식으로 로컬로 또는 원격으로 저장될 수 있다. 추가적으로, 특정한 실시예들에서, 시스템(1)은 생성 및/또는 프로세싱된 데이터에 대한 독점적 분석 프로토콜(121a)을 실행하기 위해, 예컨대 그들 사이의 상관들을 발견하도록 설계된 인공 지능 인터페이스를 통해 실행함으로써, 제3자에 의해 액세스 가능하게 될 수 있다.
시스템(1)은 생성 및/또는 취득된 데이터에 대해 임의의 형태의 3차 프로세싱을 수행하도록 구성될 수 있다. 그러므로, 다양한 실시예들에서, 1차, 2차 또는 3차 사용자는 임의의 레벨의 시스템(1) 및 그의 다양한 컴포넌트들에 직접, 예컨대 컴퓨팅 리소스(100)와의 직접 액세스를 통해, 간접적으로, 예컨대 로컬 네트워크 연결(30)을 통해, 또는 적절한 허가를 갖는 적합하게 구성된 API를 통해, 당사자를 시스템(1)에 연결하는 연관된 하이브리드-클라우드 네트워크(50)를 통해, 액세스하고/하거나 이를 구성할 수 있다. 그러한 경우에, 시스템 컴포넌트들은 GUI 선택가능한 메뉴와 같은 메뉴로서 제공될 수 있으며, 여기서 사용자는 사용자 제시 데이터에 대해 실행되기를 원하는 다양한 프로세싱 및 저장 옵션 모두로부터 선택할 수 있다. 게다가, 다양한 경우들에서, 사용자는 사용자가 설계하고 선택한 방식으로 다양한 데이터를 프로세싱하도록 시스템에 채택되어 실행되도록 그들 자신의 시스템 프로토콜을 업로드할 수 있다. 그러한 경우에, GUI 및 연관된 API는 사용자가 시스템(1)에 액세스하고, API 추가를 이용하여, 시스템의 다양한 컴포넌트들, 모듈들, 연관된 파이프라인들, 및 다른 연관된 데이터 생성 및/또는 프로세싱 기능성들을 구성하여, 그 당사자에게 필요 및/또는 유용한 및/또는 그에 의해 실행될 것을 요청하거나 원하는 그들 시스템 컴포넌트들만을 실행할 수 있게 할 것이다.
도 41c와 관련하여, 위의 경계 지정된 모듈들 및 그들 각각의 함수들 및/또는 연관된 리소스들 중 하나 이상은 예컨대 원격 컴퓨팅 리소스(300)에 의해 원격으로 수행되도록 구성될 수 있고, 예컨대 적합하게 구성된 데이터 취득 메커니즘(120)을 통해, 글로벌 클라우드 기반 인터넷 연결(50)을 통해 심리스한 전송 프로토콜에서, 시스템(1)에 전송되도록 더 적응될 수 있다. 따라서, 그러한 경우에, 로컬 컴퓨팅 리소스(100)는 예컨대 그러한 취득된 데이터 및/또는 연관된 정보를 전송 및/또는 수신하도록 구성되는 데이터 취득 메커니즘(120)을 포함할 수 있다.
예를 들어, 시스템(1)은, 프로세싱 함수들이 예컨대 로컬로(100) 및/또는 원격으로(300) 양쪽 모두로 분배되는 클라우드 기반 네트워크(50)를 통해, 데이터의 계속된 프로세싱 및/또는 저장이 심리스하고 안정된 방식으로 발생하는 것을 허용하도록 구성되는 데이터 취득 메커니즘(120)을 포함할 수 있다. 마찬가지로, 그러한 프로세싱의 결과들 중 하나 이상이 로컬로(200) 및/또는 원격으로(400) 저장될 수 있는 경우, 시스템은 리소스가 물리적으로 위치되는 곳에 관계없이 프로세싱 및/또는 저장을 위해 주어진 작업이 어느 로컬 또는 원격 리소스에 전송되어야 할지를 심리스하게 할당한다. 본 명세서에 개시된 바와 같이, 그러한 변이된 프로세싱, 전송 및 취득은 서열분석(111), 매핑(112), 정렬(113), 소팅(114a), 중복 마킹(114c), 중복제거, 재측정(114d), 로컬 재정렬(114e), 염기 품질 스코어 재측정(114f) 함수(들) 및/또는 압축 함수(114g)뿐만 아니라 변이 추출 함수(116) 중 하나 이상을 포함할 수 있다. 로컬로(200) 또는 원격으로(400)로 저장되는 경우, 프로세싱된 데이터는, 프로세싱에서 어떤 상태에 있든, 예컨대 재전송 및/또는 재저장 전에 추가 프로세싱을 위해, 로컬(100) 또는 원격 프로세싱(300) 리소스들에 이용가능하게 될 수 있다.
구체적으로는, 시스템(1)은 유전 서열 데이터(111)를 생성 및/또는 취득하도록 구성될 수 있고, 유전 서열 데이터를 취하여 그것을 로컬(140)로 프로세싱하거나, 적합하게 구성된 클라우드(30) 또는 하이브리드 클라우드(50) 네트워크를 통해 예컨대 원격 프로세싱(300)을 위해 원격 프로세싱 시설로 데이터를 전송하도록 구성될 수 있다. 게다가, 일단 프로세싱되면, 시스템(1)은 프로세싱된 데이터를 원격으로(400) 저장하거나 그것을 다시 로컬 저장(200)을 위해 전송하도록 구성될 수 있다. 따라서, 시스템(1)은 데이터의 로컬 또는 원격 생성 및/또는 프로세싱을 위해 구성될 수 있으며, 예컨대 이 경우 생성 및/또는 프로세싱 단계들은 제1 계층의 1차 및/또는 2차 프로세싱 함수들(600)로부터 온 것일 수 있고, 그 계층은 하나 이상의 변이 추출 파일(VCF)(116)을 생성하기 위해 서열 분석(111), 매핑(112), 정렬(113) 및/또는 소팅(114a) 중 하나 이상을 포함할 수 있다.
게다가, 시스템(1)은 따라서, 데이터의 로컬 또는 원격 생성 및/또는 프로세싱을 위해 구성될 수 있으며, 예컨대 이 경우 생성 및/또는 프로세싱 단계들은 제2 계층의 3차 프로세싱 함수(700)로부터 온 것일 수 있고, 그 계층은 게놈 파이프라인(122a), 에피게놈 파이프라인(122b), 메타게놈 파이프라인(122c), 유전형 분석 파이프라인(122d), 변이, 예를 들어, GATK(122e) 및/또는 MuTect2 분석(122f) 분석 파이프라인뿐만 아니라, 다른 3차 분석 파이프라인, 예컨대, 마이크로-어레이 분석 파이프라인, 마이크로바이옴 분석 파이프라인, 엑솜 분석 파이프라인뿐만 아니라, RNA 서열 분석 파이프라인, 및 다른 유전 분석 파이프라인에 따라 데이터를 생성 및/또는 획득하는 것 중 하나 이상을 포함할 수 있다. 추가적으로, 시스템(1)은 데이터의 로컬 또는 원격 생성 및/또는 프로세싱을 위해 구성될 수 있으며, 예컨대 이 경우 생성 및/또는 프로세싱 단계들은 제3 계층의 3차 프로세싱 함수(800)로부터 온 것일 수 있고, 그 계층은 비침습성 산전 테스트(NIPT)(123a), N/P ICU(123b), 암 관련 진단들 및/또는 치료 모달리티들(123c), 다양한 실험실 개발된 테스트들(LDT)(123d), 농업 생물학적(Ag Bio) 애플리케이션들(123e), 또는 다른 그러한 건강 관리 관련(123f) 프로세싱 함수들을 포함하고 그와 관련된 데이터를 생성 및/또는 획득하는 것 중 하나 이상을 포함할 수 있다.
도 41c에 제시된 바와 같은, 특정한 실시예들에서, 시스템(1)은 하나 이상의 당사자가 시스템에 액세스하여, 연관된 로컬 프로세싱(100) 및/또는 원격 프로세싱 리소스(300)로 또는 그로부터 정보를 전송할 뿐만 아니라, 사용자가 어떤 정보가 프로세싱되고/되거나 시스템(1) 상의 어디에 저장되는지를 선택할 수 있게 하는 방식으로 정보를 로컬로(200) 또는 원격으로(400) 저장하는 것을 가능하게 하도록 더 구성될 수 있다. 그러한 경우에, 사용자는 생성 및/또는 취득된 데이터에 대해 어떤 1차, 2차, 및/또는 3차 프로세싱 함수가 수행되었는지를 결정할 뿐만 아니라, 그들 리소스가 어떻게 배치되고/되거나 그러한 프로세싱의 결과가 어디에 저장되는지를 결정할 수 있다. 예를 들어, 일 구성에서, 사용자는, 데이터가 로컬로 또는 원격으로, 또는 이들의 조합으로 생성되는지, 그것에 2차 프로세싱이 적용되는지, 그렇다면, 2차 프로세싱의 어느 모듈들이 적용되는지, 및/또는 어느 리소스가 그들 프로세싱 중 어느 것을 실행하는지를 선택할 수 있고, 추가로 생성 또는 취득된 데이터에 3차 프로세싱이 적용되는지, 그렇다면, 3차 프로세싱의 어느 모듈들 및/또는 어느 계층들이 적용되는지, 및/또는 어느 리소스가 그들 프로세싱 중 어느 것을 실행하는지, 그리고 마찬가지로, 그들 프로세스의 결과들이 연산들의 각각의 단계에 대해 어디에 저장되는지를 결정할 수 있다.
특정하게는, 일 실시예에서, 사용자는 유전 서열 데이터(111)의 생성은 예컨대 NGS에 의해 원격으로 발생하지만, 데이터의 2차 프로세싱(600)은 로컬로(100) 발생하도록 도 41a의 시스템(1)을 구성할 수 있다. 그러한 경우에, 사용자는 그 후 예컨대, 이용가능한 프로세싱 옵션들의 메뉴로부터 매핑(112), 정렬(113), 소팅(111), 및/또는 VCF(116)의 생성과 같은 프로세싱 함수들을 선택함으로써, 2차 프로세싱 함수들 중 어느 것이 로컬로(100) 발생하는지를 결정할 수 있다. 그 후, 사용자는 로컬로 프로세싱된 데이터에 3차 프로세싱이 적용되는지, 그렇다면 그 데이터를 추가로 프로세싱하기 위해 어느 모듈들이 활성화되는지, 그리고 그러한 3차 프로세싱이 로컬로(100) 또는 원격으로(300) 발생하는지를 선택할 수 있다. 마찬가지로, 사용자는, 3차 프로세싱 옵션들의 다양한 계층들에 대한 다양한 옵션들, 및 임의의 주어진 단계 또는 연산 시간에, 임의의 생성 및/또는 취득된 데이터가 로컬로(200) 또는 원격으로(400) 어디에 저장되는지를 선택할 수 있다. 더 특정하게는, 1차 사용자가 제3자로부터 프로세싱 요청들을 수신하도록 시스템을 구성할 수 있으며, 여기서 제3자는 생성 및/또는 취득된 데이터에 대해 그러한 요청된 1차, 2차, 및/또는 3차 프로세싱을 수행하도록 시스템을 구성할 수 있다. 구체적으로는, 사용자 또는 제2 및/또는 제3자는 로컬로(100) 또는 원격으로(200)의 유전 서열 데이터를 생성 및/또는 취득하도록 시스템(1)을 구성할 수 있다. 추가적으로, 사용자는, 하나 이상의 변이 추출 파일(VCF)을 생성하기 위해, 그 유전 서열 데이터를 취하고 그것을 로컬 또는 원격으로 매핑, 정렬, 및/또는 소팅하도록 시스템(1)을 구성할 수 있다. 추가적으로, 사용자는, 예를 들어, 로컬로 또는 원격으로 하나 이상의 VCF에 관하여, 데이터에 대해 3차 프로세싱 함수를 수행하도록 시스템을 구성할 수 있다.
더 특정하게는 또한, 사용자 또는 다른 당사자는 생성 및/또는 취득된 데이터에 대해 임의의 형태의 3차 프로세싱을 수행하도록 시스템(1)을 구성할 수 있으며, 그 프로세싱이 시스템의 어디에서 행해지는지를 구성할 수 있다. 그러므로, 다양한 실시예들에서, 제1, 제2, 및/또는 제3자(121) 사용자는, 예컨대 하나 이상의 그래픽 사용자 인터페이스(GUI) 컴포넌트를 통해 액세스 가능한 애플리케이션 프로그램 인터페이스(API)를 통해, 제3자(121)를 시스템(1)에 연결하는 연관된 하이브리드-클라우드 네트워크(50)를 통해, 또는 로컬 네트워크 연결(30)을 통해 로컬 컴퓨팅 함수(100)에 직접 액세스함으로써, 시스템(1) 및 그의 다양한 컴포넌트들에 액세스하고/하거나 이들을 구성할 수 있다. 그러한 경우에, 제3자 사용자는 시스템(1)에 액세스하고, API를 이용하여 시스템의 다양한 컴포넌트들, 모듈들, 연관된 파이프라인들, 및 다른 연관된 데이터 생성 및/또는 프로세싱 기능성들을 구성하여, 그 제3자에게 필요 및/또는 유용한 및/또는 그에 의해 실행될 것을 요청하거나 원하는 그들 시스템 컴포넌트들만을 실행하고, 추가로 요청된 프로세싱을 어느 컴퓨팅 리소스들이 제공할 것인지, 및 결과 데이터가 어디에 저장될 것인지를 추가로 할당할 수 있다.
따라서, 다양한 경우들에서, 시스템(1)은 그 시스템(1)을 구성할 수 있는 시스템의 1차, 2차 또는 3차 사용자에 의해 그 사용자가 직접 생성하거나, 시스템(1)에 의해 생성되게 하거나, 예컨대 그와 연관된 네트워크를 통해, 예컨대 데이터 취득 메커니즘(120)을 통해 시스템(1)으로 전송되게 하는 데이터에 대해 실행될 분석 시스템 리소스들 중 하나, 모두, 또는 선택된 것을 배치하는 방식으로 그의 컴포넌트들을 배열하도록 구성가능할 수 있다. 이러한 방식으로, 시스템(1)은 요청 당사자가 원하는 및/또는 요청하는 분석에 필요 또는 유용한 시스템의 그들 부분만을 실행하도록 구성가능하다. 예를 들어, 이들 및 다른 그러한 목적을 위해, API가 포함될 수 있으며, 여기서 API는 원하는 대로 시스템을 구성 및 동작시키기 위해 사용자가 선택할 수 있는 GUI 동작가능 메뉴 및/또는 시스템 함수 호출들의 관련 리스트를 포함하도록 구성된다.
추가적으로, 특정한 실시예들에서, 시스템(1)은 1차 사용자 및/또는 제3자, 예컨대 FDA(Federal Drug Administration)(70b)와 같은 정부 규제 기관에 의해 액세스 가능하게 되거나, 1차 사용자들 및/또는 제3자들이 전자 의료 레코드(EMR) 데이터베이스(70a)를 형성하도록 시스템(1)에 의해 유도되거나 달리 취득 및/또는 컴파일된 유전자 정보의 데이터베이스를 수집, 컴파일 및/또는 그에 액세스할 수 있게 하고/하거나 약물 개발 평가를 위한 FDA와 같은 시스템의 정부 액세스 및/또는 감독을 가능하게 한다. 시스템(1)은 또한 데이터(70c)를 집성하고, 컴파일하고, 및/또는 주석을 하고/하거나 다른 하이 레벨 사용자들이 그에 액세스하는 것을 허용하도록 설정될 수 있다.
따라서, 시스템(1), 및 그의 컴포넌트들은 1차 사용자 또는 제3자와 같은 원격 사용자에 의해 액세스되도록 구성될 수 있고, 따라서, 컴퓨터 리소스들(100 및/또는 300) 중 하나 이상은 사용자 인터페이스를 포함할 수 있고/있거나, 시스템의 잠재적 사용자가 본 명세서에 개시된 BioIT 파이프라인들 중 하나 이상으로의 입력을 위한 샘플 데이터를 전송하도록 그리고/또는 그로부터 결과 데이터를 수신하도록 시스템에 액세스할 수 있게 하기 위한 그래픽 사용자 인터페이스를 갖는 디스플레이 디바이스를 추가로 포함할 수 있다. GUI 또는 다른 인터페이스는 사용자가, 예를 들어, 적합하게 구성된 웹 포털을 통해, 시스템 컴포넌트들을 관리하고, 관여될 컴퓨팅 리소스들이 로컬로(100) 또는 원격으로(300) 이용 가능한지에 관계없이, 샘플 프로세싱 진행을 추적할 수 있게 하도록 구성될 수 있다. 따라서, GUI는 수행될 수 있는 작업들, 예를 들어, 매핑(112), 정렬(113) 등의 세트, 및/또는 작업들을 수행하기 위한 리소스들의 세트를 리스트할 수 있고, 사용자는 그들이 어느 작업들을 실행하기를 원하는지 그리고 어느 리소스들을 사용할지를 스스로 선택할 수 있다. 따라서, 이와 같은 경우에, 각각의 개별 사용자는 고유하게 구축할 수 있거나, 또는 예컨대 그들이 실행되기를 원하는 특정 작업 프로젝트들을 클릭, 드래그, 또는 달리 선택함으로써 미리 결정된 분석 워크플로우를 사용할 수 있다.
예를 들어, 하나의 사용 모델에서, 시스템 상에서 구현되고 실행될 수 있는 다양한 프로세스들을 표현하는 복수의 아이콘을 포함할 수 있는 GUI 인터페이스가 대시보드에 제시된다. 그러한 경우에, 사용자는 선택된 작업 프로세스 아이콘들을 클릭하거나 워크플로우 인터페이스 내로 드래그하여, 원하는 워크플로우 프로세스를 구축할 수 있으며, 이는 일단 구축되면 저장되고 샘플 세트 바코드들에 대한 제어 명령어들을 확립하는 데 사용될 수 있다. 일단 원하는 작업 프로젝트들이 선택되면, 워크플로우 관리 컨트롤러(151)는 원하는 워크플로우 프로세스들(예를 들어, 2차 분석)을 구성하고, 그 후 선택된 분석을 수행하기 위한 리소스들을 식별하고 선택할 수 있다. 일단 워크플로우 분석 프로세스가 시작되면, 시스템을 통한 진행을 추적하기 위해 대시보드가 관찰될 수 있다. 예를 들어, 대시보드는 시스템을 통해 얼마나 많은 데이터가 실행되고 있는지, 데이터에 대해 어떤 프로세스들이 실행되고 있는지, 얼마나 많이 완수되었는지, 얼마나 많은 프로세싱이 남아있는지, 어떤 워크플로우들이 완료되었는지, 및 어느 것이 여전히 액세스될 필요가 있는지, 실행될 최신 프로젝트들, 및 어느 런들이 완료되었는지를 나타낼 수 있다. 본질적으로, 시스템, 또는 그의 서브-부분 상에서 실행 중인 모든 것에 대한 완전한 액세스가 데스크톱에 제공될 수 있다.
게다가, 다양한 경우들에서, 데스크톱은 하나 이상의 탭을 통해 액세스 가능할 수 있는 다양한 상이한 사용자 인터페이스들을 포함할 수 있다. 예를 들어, 시스템 컨트롤들에 액세스하기 위한 하나의 탭은, 선택될 때, 사용자가 로컬로 구현될 수 있는 제어 기능들을 선택하는 것을 허용하는 "로컬 리소스들(100) 탭" 일 수 있다. 선택될 때 사용자가 원격으로 구현될 수 있는 다른 제어 기능들을 선택할 수 있게 하는 "클라우드 리소스들(300)"에 액세스하기 위한 또 다른 탭이 구현될 수 있다. 따라서, 대시보드와 상호작용할 때, 사용자는 어느 리소스들이 어느 작업들을 수행할지를 선택할 수 있고, 이에 따라 프로젝트 요건들을 충족시키기 위해 필요에 따라 리소스 사용을 증가 또는 감소시킬 수 있다.
그러므로, 계산 복잡성이 증가함에 따라 그리고/또는 증가된 속도를 원함에 따라, 사용자(또는 시스템 자체, 예를 들어, WMS(151))는, 원하는 타임프레임 내에서 작업을 완료하기 위해 필요에 따라, 추가적인 로컬(100) 및/또는 클라우드 기반(300) 리소스들을 온라인으로 가져오도록 워크플로우 관리자에게 지시하는, 버튼의 단순한 클릭에 의해, 필요에 따라, 점점 더 많은 리소스들을 온라인으로 가져올 수 있다. 이러한 방식으로, 비록 시스템이 워크플로우 관리자 컨트롤러(151)에 의해 자동화 및/또는 제어되지만, 시스템의 사용자는 여전히 제어 파라미터들을 설정할 수 있고, 필요할 때, 클라우드 기반 리소스들(300)을 온라인으로 가져올 수 있다. 따라서, 컨트롤러(151)는 추가적인 프로세싱 및/또는 저장 리소스들(400)을 온라인으로 가져오기 위해 필요에 따라 클라우드(50/300)로 확장할 수 있다.
다양한 경우들에서, 데스크톱 인터페이스는 모바일 디바이스 및/또는 데스크톱 컴퓨터를 통해 액세스 가능한 모바일 애플리케이션 또는 "앱"으로서 구성될 수 있다. 결과적으로, 일 양태에서, 게놈 마켓플레이스, 또는 코호트가 제공되어, 복수의 사용자가 하나 이상의 연구 프로젝트에서 협업하여, 대시보드 앱, 예를 들어, 웹 기반 브라우저 인터페이스를 통해 액세스 가능한 전자 코호트 마켓플레이스를 형성하는 것을 가능하게 할 수 있다. 이에 따라, 시스템은 협력적 연구를 수행하기 위한 온라인 포럼 및/또는 유전 데이터를 분석하기 위한 다양한 분석 툴을 개발하기 위한 마켓플레이스를 제공할 수 있고, 시스템은 사용자에 의한 시스템의 원격 제어를 가능하게 하기 위해, 앱을 통해, 또는 시스템 인터페이스를 통해 직접 액세스 가능할 수 있다.
따라서, 다양한 실시예들에서, 도 42a와 관련하여 알 수 있는 바와 같이, 하이브리드 클라우드(50)가 제공되고, 하이브리드 클라우드는, 로컬 컴퓨팅(100) 및/또는 저장 리소스(200)를 원격 컴퓨팅(300) 및/또는 저장(400) 리소스와 연결하도록 구성되고, 예컨대 이 경우 로컬 및 원격 리소스들은 먼 곳에, 공간적으로, 지리적으로, 등으로 서로 분리되어 있다. 그러한 경우에, 로컬 및 원격 리소스들은, 둘 간에 심리스하게 디지털 데이터와 같은 정보를 공유하는 방식으로 서로 통신하도록 구성될 수 있다. 특정하게는, 로컬 리소스들은 예컨대 하이브리드 네트워크(50)를 통한 전송 전에, 데이터에 대해 하나 이상의 유형의 프로세싱을 수행하도록 구성될 수 있으며, 원격 리소스들은 데이터의 하나 이상의 유형의 추가 프로세싱을 수행하도록 구성될 수 있다.
예를 들어, 하나의 특정한 구성에서, 시스템(1)은, 생성 및/또는 분석 함수(152)가 예컨대 1차 및/또는 2차 프로세싱 함수를 수행할 목적을 위해 로컬 컴퓨팅 리소스에 의해 로컬로(100) 수행되어, 본 명세서에 개시된 바와 같이, 유전 서열 데이터를 생성 및/또는 프로세싱하도록 구성되도록 구성될 수 있다. 추가적으로, 다양한 실시예들에서, 로컬 리소스들은 게놈, 엑솜 및/또는 에피게놈 분석, 또는 암, 마이크로바이옴 및/또는 다른 DNA/RNA 프로세싱 분석 중 하나 이상과 같이, 데이터에 대해 하나 이상의 3차 프로세싱 함수를 수행하도록 구성될 수 있다. 게다가, 그러한 프로세싱된 데이터가 예컨대 원격 컴퓨팅(300) 및/또는 저장(400) 리소스로 전송될 예정인 경우, 데이터는 예컨대 적합하게 구성된 변환기에 의해 변환될 수 있으며, 변환기는 예컨대 하이브리드 네트워크(50)를 통한 전송 전에, 데이터를 인덱싱, 변환, 압축, 및/또는 암호화하도록 구성될 수 있다.
예컨대 생성 및 프로세싱된 데이터가 추가 프로세싱을 위해 원격 컴퓨팅 리소스, 예를 들어, 서버(300)로 전송되는 경우와 같은 특정한 경우들에서, 그러한 프로세싱은 글로벌 속성일 수 있으며, 복수의 로컬 컴퓨팅 리소스(100)로부터 데이터를 수신하는 것, 그러한 복수의 데이터를 수집하는 것, 그 데이터에 주석을 하는 것, 그것을 비교하여, 예컨대 데이터를 해석하고, 그의 경향을 결정하는 것, 다양한 바이오마커들에 대해 그것을 분석하는 것, 및 진단, 치료 및/또는 예방의 개발을 돕는 것을 포함할 수 있다. 따라서, 다양한 경우들에서, 원격 컴퓨팅 리소스(300)는 데이터 프로세싱 허브로서 구성될 수 있고, 예컨대 이 경우 다양한 소스들로부터의 데이터는 전송되고, 프로세싱되고/되거나, 예컨대 로컬 컴퓨팅 리소스(100)에 의해 액세스됨으로써, 변환 및/또는 전송되기를 기다리는 동안 저장될 수 있다. 더 구체적으로는, 원격 프로세싱 허브(300)는 복수의 리소스(100)로부터 데이터를 수신하고, 그것을 프로세싱하고, 프로세싱된 데이터를 다양한 로컬 리소스들(100)로 다시 분배하여 연구원 및/또는 리소스들(100) 사이의 협업을 가능하게 하도록 구성될 수 있다. 그러한 협업은 다양한 데이터 공유 프로토콜을 포함할 수 있으며, 데이터가 전송을 위해 어떻게 준비될 수 있는지를 제어하기 위해, 시스템(1)의 사용자로 하여금 다양한 보안 프로토콜들 및/또는 프라이버시 설정들 중에서 선택할 수 있게 함으로써, 전송될 데이터를 준비하는 것을 추가적으로 포함할 수 있다.
하나의 특정한 경우에, 도 42b에 제시된 바와 같이, 로컬 컴퓨팅(100) 및/또는 저장(200) 리소스가, 예컨대 사용자의 로케이션에 온-사이트로 제공된다. 컴퓨팅 리소스(100) 및/또는 저장(200) 리소스는 예컨대, 직접 또는 인트라넷 연결(10)을 통해 데이터 생성 리소스(121), 예컨대 본 명세서에 설명된 NGS 또는 서열분석기 칩에 결합될 수 있으며, 서열분석기(121)는 유전 서열 분석 데이터, 예컨대 BCL 및/또는 FASTQ 파일들을 생성하도록 구성된다. 예를 들어, 서열분석기(121)는 그들과 직접적인 통신가능 및/또는 동작가능 연결을 갖도록, 컴퓨팅 리소스(100) 및/또는 저장 유닛(200)과 동일한 장치에 하우징되고/되거나 그의 일부일 수 있거나, 서열분석기(121)와 컴퓨팅 리소스(100) 및/또는 저장 리소스(200)는 서로 분리된 장치들의 일부일 수 있지만, 동일한 시설에 하우징되고, 따라서 케이블 또는 인트라넷(10) 연결을 통해 연결될 수 있다. 일부 경우들에서, 서열분석기(121)는 컴퓨팅(100) 및/또는 저장(200) 리소스와는 분리된 시설에 하우징될 수 있으며, 따라서 인터넷(30) 또는 하이브리드 클라우드 연결(50)을 통해 연결될 수 있다.
그러한 경우들에서, 유전 서열 데이터는 적합하게 구성된 변환기에 의해 변환되기 전에, 프로세싱(100)되어 로컬로(200) 저장될 수 있거나, 생성된 서열 데이터는, 예컨대 로컬로 프로세싱되기 전에 위에 설명된 바와 같이, 예컨대 적합하게 구성된 로컬 연결(10), 인트라넷(30) 또는 하이브리드 클라우드 연결(50)을 통해 변환기 및/또는 분석기(152) 중 하나 이상에 직접 전송될 수 있다. 특정하게는, 데이터 생성 리소스(121)와 같이, 변환기(151) 및/또는 분석기(152)는 그들과 직접적인 통신가능 및/또는 동작가능 연결을 갖도록, 컴퓨팅 리소스(100) 및/또는 저장 유닛(200)과 동일한 장치에 하우징되고/되거나 그의 일부일 수 있거나, 변환기 및/또는 분석기(152)와 컴퓨팅 리소스(100) 및/또는 저장 리소스(200)는 서로 분리된 장치들의 일부일 수 있지만, 동일한 시설에 하우징되고, 따라서 케이블 또는 인트라넷(10) 연결을 통해 연결될 수 있다. 일부 경우들에서, 변환기(151) 및/또는 분석기(152)는 컴퓨팅(100) 및/또는 저장(200) 리소스와는 분리된 시설에 하우징될 수 있으며, 따라서 인터넷(30) 또는 하이브리드 클라우드 연결(50)을 통해 연결될 수 있다.
예를 들어, 변환기는, 예컨대 적합하게 구성된 컴퓨팅 리소스(100) 및/또는 분석기(152)에 의해, 분석 또는 포스트 분석 전에 전송될 데이터를 준비하도록 구성될 수 있다. 예를 들어, 분석기(152)는 예컨대 그 생성된 서열 데이터를 그의 게놈 및/또는 엑솜 특성(152a), 그의 에피게놈 특징(152b), 관심 있는 임의의 다양한 DNA 및/또는 RNA 마커 및/또는 암의 표시자(152c), 및 하나 이상의 마이크로바이옴(152d)과의 그의 관계를 결정하는 것과 관련하여 분석하기 위해, 본 명세서에 개시된 바와 같이, 그 데이터에 대해 2차 및/또는 3차 프로세싱 함수뿐만 아니라, 본 명세서에 개시된 하나 이상의 다른 2차 및/또는 3차 프로세싱을 수행할 수 있다.
지적한 바와 같이, 생성 및/또는 프로세싱된 데이터는, 예컨대 시스템(1)을 통해 그의 하나의 컴포넌트로부터 다른 컴포넌트로, 예컨대 직접, 로컬(10), 인터넷(30), 또는 하이브리드 클라우드(50) 연결을 통해 전송하기 전에, 예컨대 적합하게 구성된 변환기에 의해 변환될 수 있다. 그러한 변환은 변환(151d) - 예컨대 이 경우 데이터는 하나의 형태로부터 다른 형태로 변환됨 -; 이해(151c) - 이해할 수 없는 형태로부터 데이트를 코딩, 디코딩, 및/또는 달리 취하고 그것을 이해할 수 있는 형태로, 또는 하나의 이해할 수 있는 형태로부터 다른 이해할 수 있는 형태로 변환하는 것을 포함함 -; 인덱싱(151b) - 예컨대 하나 이상의 리소스로부터 생성된 데이터를 컴파일 및/또는 수집(collating)하고, 예컨대 생성된 인덱스를 통해, 그것을 위치확인가능 및/또는 검색가능하게 만드는 것; 및/또는 암호화(151a) - 예컨대 인터넷(30) 및/또는 하이브리드 클라우드(50)를 통해 전송하기 전에, 잠금 가능하고 잠금 가능하지 않은 패스워드 보호된 데이터세트를 생성하는 것.
그러므로, 도 42c와 관련하여 알 수 있는 바와 같이, 이들 및/또는 다른 그러한 경우들에서, 하이브리드 클라우드(50)는 시스템의 컴포넌트들 전체에 걸친 데이터의 심리스한 및 보호된 전송을 가능하게 하도록 구성될 수 있고, 예컨대 이 경우 하이브리드 클라우드(50)는 사용자의 검색, 진단, 치료 및/또는 예방 발견 및/또는 개발 요구를 충족시키기 위해 시스템의 다양한 사용자들이 그의 컴포넌트 부분들 및/또는 시스템 자체를 구성할 수 있도록 적응된다. 특정하게는, 하이브리드 클라우드(50) 및/또는 시스템(1)의 다양한 컴포넌트들은, 보안된, 암호화가능 환경에서 통신 가능하게 되는 모든 기간 동안에, 예컨대 시스템의 요구 및 수행되는 분석들의 특정한 사항들에 기초하여, 원하는 방식으로 원하는 리소스들을 배치하도록, 그리고 추가로 로컬로, 원격으로, 또는 그 조합으로 그렇게 행하도록, 사용자가 시스템(1)의 다양한 컴포넌트들을 원격으로 구성할 수 있게 하도록 적응되는 호환가능 및/또는 대응하는 API 인터페이스들과 동작가능하게 연결될 수 있다.
특정한 경우들에서, 시스템(1)은 해석 함수(310)를 수행하도록 구성되는, 해석기와 같은 프로세싱 아키텍처(310)를 포함할 수 있다. 해석기(310)는 생성된 데이터에 대해 하나 또는 일련의 분석 함수를 수행, 예컨대 유전 데이터에 하나 이상의 바이오마커의 존재를 결정하기 위해 주석(311), 해석(312), 진단(313), 및/또는 검출 및/또는 분석 함수를 수행할 수 있다. 해석기(313)는 로컬 컴퓨팅 리소스(100)의 일부이거나 그로부터 분리될 수 있고, 예컨대 이 경우 해석기(310)는 하이브리드 클라우드(50)와 같은 클라우드 인터페이스를 통해 컴퓨팅 리소스(100)에 결합된다.
게다가 추가적인 프로세싱 아키텍처(320)가 포함될 수 있고, 예컨대 이 경우 아키텍처(320)는 협력기로서 구성된다. 협력기(320)는 전송될 데이터의 보안 및/또는 프라이버시를 보장하는 것에 관한 하나 이상의 함수를 수행하도록 구성될 수 있다. 예를 들어, 협력기는 데이터 공유 프로세스(321)를 보장하기 위해, 전송(322)의 프라이버시를 보장하기 위해, 제어 파라미터들(323)을 설정하기 위해, 및/또는 보안 프로토콜(324)을 개시하기 위해 구성될 수 있다. 협력기(313)는 예컨대 프로세싱의 협업을 용이하게 하기 위해, 데이터의 공유를 허용하도록 구성되는데, 예컨대 협력기(320)는 로컬 컴퓨팅 리소스(100)의 일부이거나 그로부터 분리될 수 있고, 예컨대 이 경우 협력기(320)는 하이브리드 클라우드(50)와 같은 클라우드 인터페이스를 통해 컴퓨팅 리소스(100)에 결합된다. 해석기(310), 협력기(320), 및/또는 로컬 컴퓨팅 리소스(100)는, 예컨대 컴퓨팅(300) 및/또는 저장(400) 기능들을 클라우드(50) 내로 오프로딩함으로써 시스템 효율을 향상시키기 위해, 원격 컴퓨팅 리소스(300)에 추가로 결합될 수 있다. 다양한 경우에, 시스템(1)은 보안 제3자 분석(121)이 행해지는 것을 가능하게 하도록 구성될 수 있고, 예컨대 이 경우 제3자는 예컨대 적합하게 구성된 API를 통해 시스템과 연결하고 그를 관여시킬 수 있다.
도 43과 관련하여 알 수 있는 바와 같이, 시스템(1)은 그의 1차 프로세싱 스테이지로부터 2차 및/또는 3차 프로세싱 스테이지로의 유전 정보를 프로세싱하기 위해 체계적 및 동시적 또는 순차적 방식으로 배치될 수 있는 하나 이상의 프로세싱 파이프라인을 각각 갖는 데이터 생성 및/또는 데이터 프로세싱 유닛들의 층들을 포함하는 다중 계층 및/또는 멀티플렉싱된 생체분석 프로세싱 플랫폼일 수 있다. 특정하게는, 하드웨어 및/또는 소프트웨어 및/또는 양자 프로세싱 구현들에서 하나 이상에서 생체분석을 수행하도록 구성된 디바이스들뿐만 아니라, 이들의 사용 방법들, 및/또는 그것을 포함하는 시스템들이 본 명세서에서 제시된다. 예를 들어, 일 실시예에서, 게놈학 프로세싱 플랫폼이 다수의 집적 회로로서 제공되거나 구성될 수 있고, 이 집적 회로들은 범용 CPU 및/또는 GPU, 하드와이어드 구현 및/또는 양자 프로세싱 유닛과 같은, 중앙 또는 그래픽 프로세싱 유닛 중 하나 이상으로서 적응되거나, 또는 달리 그 안에 포함될 수 있다. 특정하게는, 다양한 실시예들에서, 게놈학 프로세싱 플랫폼의 하나 이상의 파이프라인은 양자 프로세싱 유닛의 하나 이상의 집적 및/또는 양자 회로에 의해 구성될 수 있다.
따라서, 본 명세서에 제시된 플랫폼들은, 하나 이상의 집적 회로 상에서 실행될 수 있는, 본 명세서에 개시된, 다양한 유전 서열 분석 및/또는 2차 및/또는 3차 프로세싱 함수들의 수행을 위한 최적화된 소프트웨어 및/또는 하드웨어 및/또는 양자 프로세싱 구현들의 엄청난 능력을 이용하도록 구성될 수 있다. 그러한 집적 회로들은 함께 심리스하게 결합될 수 있고, 3차 생체분석 함수들의 다양한 소프트웨어 및/또는 하드와이어드 기반 애플리케이션들을 위해 구성되는 시스템의 다양한 다른 집적 회로들, 예를 들어, CPU들 및/또는 GPU들 및/또는 QPU들에 추가로 심리스하게 결합될 수 있다.
특정하게는, 다양한 실시예들에서, 이들 프로세스는 CPU, GPU, 및/또는 QPU 상에서 실행되는 최적화된 소프트웨어에 의해 수행될 수 있고/있거나, 동일한 마더보드, 동일한 디바이스 내의 상이한 PCIe 카드들 상에 위치될 수 있는 동일한 디바이스 또는 별개의 디바이스들, 동일한 시설 내의 및/또는 상이한 시설들에 위치하는 별개의 디바이스들의 일부일 수 있는 펌웨어 구성된 집적 회로, 예를 들어, FPGA로서 구현될 수 있다. 따라서, 하나 이상의 프로세싱 유닛 및/또는 집적 회로는, 예컨대 동일한 마더보드, 또는 동일한 하우징 내에 위치되는 별개의 마더보드들에 물리적으로 통합되고/되거나 달리 함께 결합되는 것에 의해 함께, 예를 들어, 타이트하게 직접 결합될 수 있고, 또는 이들은 원격으로, 예컨대 무선으로 및/또는 네트워킹된 인터페이스를 통해, 예컨대 로컬 클라우드(30)를 통해 서로 통신할 수 있는 별개의 마더보드들 또는 pCIE 카드들에 위치될 수 있고, 다양한 실시예들에서 하나 이상의 프로세싱 유닛 및/또는 집적 회로는 지리적으로 서로 원격으로 위치되지만 하이브리드 클라우드(50)를 통해 통신가능할 수 있다. 특정한 경우들에서, 집적 회로(들)는 CPU, GPU, 및/또는 QPU의 일부이거나 이를 형성하고, 집적 회로(들)는 2차 및/또는 3차 분석 플랫폼의 일부로서 배열되고/되거나 그의 일부일 수 있고, 분석들의 하나 이상의 파이프라인을 형성하도록 구성될 수 있고, 여기서, 생성된 다양한 데이터가 다양한 프로세싱 유닛들 및/또는 집적 회로들의 안팎으로, 그들 사이에 앞뒤로, 예컨대 심리스한 및/또는 스트리밍 방식으로 공급될 수 있고, 따라서 다수의 집적 회로 사이의 데이터의 빠른 전송을 가능하게 하고, 더 특정하게는 본 명세서의 분석들을 촉진시킬 수 있다.
예를 들어, 일부 경우들에서, 본 명세서에 개시된 방법들에 따라 사용하기 위한 다양한 디바이스들은 서열 분석 프로토콜을 수행하기 위한 하나 이상의 서열 분석 디바이스들을 포함하거나, 달리 이와 연관될 수 있고, 이 서열 분석 프로토콜은 원격 서열분석기 상에서 실행될 수 있는 소프트웨어에 의해, 예컨대 클라우드 기반 인터페이스를 통해 액세스 가능하게 되는, 코어 서열 분석 시설에 위치하는, 차세대 서열분석기, 예를 들어, Illumina의 HiSeq Ten에 의해 수행될 수 있다. 다른 경우들에서, 서열 분석은 Thermo Fisher의 Ion Torrent, 또는 다른 서열분석기 칩 기술들에 의해 구현되는 것과 같은 서열 분석 칩 상에서 실행되는 하드와이어드 구성으로 수행될 수 있는데, 여기서 서열 분석은 벤치톱 차세대 서열 분석을 전달하는 반도체 기술의 사용에 의해, 및/또는 그래핀 채널 층을 이용하는 전계 효과 트랜지스터로서 또는 달리 이를 포함하도록 구성된 집적 회로에 의해 수행된다. 그러한 경우들에서, 반도체 서열 분석 마이크로칩으로서 또는 이를 포함하도록 구성된 하나 이상의 집적 회로에 의해 서열 분석이 수행되는 경우, 칩(들)은 서열 분석된 데이터에 대해 2차 및/또는 3차 분석을 수행하도록 구성될 수 있는, 본 명세서에 개시된 하나 이상의 다른 프로세싱 유닛 및/또는 집적 회로로부터 원격으로 위치될 수 있다. 대안적으로, 칩들 및/또는 프로세싱 유닛들은 함께 직접 결합되도록, 또는 적어도 서로의 동일한 일반 근접 내에서, 예컨대 동일한 시설 내에서 서로에 대해 비교적 가깝게 위치될 수 있다. 이러한 그리고 다른 그러한 경우들에서, 서열 분석 및/또는 BioIT 분석 파이프라인은 서열분석기에 의해 생성된 원시 서열 분석 데이터가 예컨대 스트리밍 방식으로 직접 분석을 위해 파이프라인의 다른 분석 컴포넌트들에 빠르게 통신, 예를 들어 스트리밍될 수 있도록 형성될 수 있다.
게다가, 일단 원시 서열 데이터(예를 들어, BCL 데이터) 또는 판독 데이터(예를 들어, FASTQ 데이터)가 서열 분석 기구에 의해 생성되면, 이 데이터는 예컨대 생성 및/또는 수신된 DNA, RNA, 및/또는 단백질 서열 데이터를 분석하는 것과 관련하여, 유전 및/또는 단백질 서열들에 대해 다양한 생체분석 함수들을 수행하도록 구성된 집적 회로에 전송될 수 있고, 그에 의해 수신될 수 있다. 이 서열 분석은 예컨대 수신된 데이터에 대해 2차 분석을 수행하기 위해, 및/또는 일부 경우들에서, 질병 진단을 수행하기 위해, 생성 또는 수신된 핵산 또는 단백질 서열을 알려진 서열들의 하나 이상의 데이터베이스와 비교하는 것을 수반할 수 있고, 예컨대 이 경우 비교를 수행하기 위한 알려진 서열들의 데이터베이스는 형태적으로 구별되는 및/또는 동떨어진 서열 데이터, 즉 하나 이상의 질병 상태에 관련되거나 관련되는 것으로 생각되는 유전 샘플들의 데이터를 포함하는 데이터베이스일 수 있다.
따라서, 다양한 경우들에서, 일단 격리되고 서열 분석되면, 유전, 예를 들어, DNA 및/또는 RNA 데이터는 2차 분석을 겪을 수 있고, 이는 수신된 데이터에 대해, 예컨대 매핑, 정렬, 소팅, 변이 추출, 및/또는 그와 유사한 것을 수행하여 매핑 및/또는 정렬된 데이터를 생성하기 위해 수행될 수 있고, 매핑 및/또는 정렬된 데이터는 그 후 매핑 및/또는 정렬된 유전 서열과 기준 서열 사이의 차이를 상세히 기술하는 하나 이상의 VCF를 유도하는 데 사용될 수 있다. 특정하게는, 일단 2차 프로세싱이 발생하면, 유전 정보는 그 후 시스템의 하나 이상의 3차 프로세싱 모듈들 상으로, 예컨대 치료 및/또는 예방 결과들을 유도하기 위한, 그에 의한 추가 프로세싱을 위해 전달될 수 있다. 더 특정하게는, 매핑기/정렬기/변이 추출기는 준비된 표준 VCF 파일을 출력할 수 있으며, 이는 게놈, 예를 들어, 전체 게놈, 분석, 유전형, 예를 들어, 공동 유전형, 분석, 마이크로-어레이 분석, 엑솜 분석, 마이크로바이옴 분석, 에피게놈 분석, 메타게놈 분석, 공동 유전형 분석, 변이 분석, 예를 들어, GATK 분석, 구조적 변이 분석, 체세포 변이 분석 등뿐만 아니라, RNA 서열 분석 또는 다른 게놈 분석과 같은 3차 분석을 수행하기 위한 추가적인 집적 회로에 전달될 수 있다.
그러므로, 본 명세서에서 제시된 생체분석, 예를 들어, BioIT 플랫폼은 예컨대 소프트웨어, 하드와이어드 및/또는 양자 프로세싱 구성으로, 매핑, 정렬, 소팅, 중복 마킹, 단상형 변이 추출, 압축 및/또는 압축해제를 위한 고도로 최적화된 알고리즘을 포함할 수 있다. 예를 들어, 비록 이들 함수 중 하나 이상이 하드와이어드 구성으로 완전히 또는 부분적으로 수행되도록 구성될 수 있지만, 특정한 경우들에서, 2차 및/또는 3차 프로세싱 플랫폼은 하나 이상의 소프트웨어 및/또는 양자 프로세싱 애플리케이션들, 예컨대 하나 이상의 생체분석 함수, 예컨대 아래 본 명세서에 개시된 함수들 중 하나 이상을 수행하는 것에 관한 하나 이상의 프로그램을 실행하도록 구성될 수 있다. 특정하게는, 서열 분석 및/또는 매핑 및/또는 정렬 및/또는 다른 프로세싱된 데이터는 그 후 전체 게놈 분석, 유전형 분석, 마이크로어레이 분석, 엑솜 분석, 마이크로바이옴 분석, 에피게놈 분석, 메타게놈 분석, 공동 유전형 분석, 및/또는 변이, GATK 분석 중 하나 이상을 위해, 예컨대 범용 CPU 및/또는 GPU 및/또는 QPU 상에서 실행되는 소프트웨어에 의해 구현되는(비록 특정 경우들에서 이들 함수 중 하나 이상이 적어도 부분적으로 하드웨어로 구현될 수 있지만), 하나 이상의 다른 고도로 최적화된 알고리즘에 의해 추가로 프로세싱될 수 있다.
따라서, 도 43을 참조하여 알 수 있는 바와 같이, 다양한 실시예들에서, 멀티플렉싱된 생체분석 프로세싱 플랫폼들은 1차, 2차, 및/또는 3차 프로세싱 중 하나 이상을 수행하도록 구성된다. 예를 들어, 1차 프로세싱 스테이지는 시스템(1)으로의 전송을 위해 예컨대 하나 이상의 BCL 및/또는 FASTQ 파일들에서의 유전 서열 데이터를 생성한다. 일단 시스템(1) 내에서, 임의의 연관된 메타데이터를 포함하는 서열 분석된 유전 데이터는 2차 프로세싱 스테이지(600)로 진행되어, 하나 이상의 변이 추출 파일을 생성할 수 있다. 그러므로, 시스템은 또한 하나 이상의 변이 추출 파일을 임의의 연관된 메타데이터, 및/또는 다른 연관된 프로세싱된 데이터와 함께 취하도록 구성될 수 있고, 하나 이상의 3차 프로세싱 스테이지에서, 그에 대해, 예컨대 하나 이상의 진단 및/또는 치료 절차를 수행하는 목적을 위해, 하나 이상의 다른 연산을 수행할 수 있다.
특정하게는, 데이터의 분석은 예를 들어, 예를 들어 원격 컴퓨팅 리소스(100)로부터 이루어진, 사용자 요청(120)에 응답하여, 및/또는 제3자(121)에 의해 제출된 데이터, 및/또는 로컬(200) 및/또는 원격(400) 저장 시설로부터 자동으로 검색된 데이터에 응답하여 개시될 수 있다. 그러한 추가 프로세싱은 다양한 파이프라인 런 프로토콜들(700)이 하나 이상의 피험자의 결정된 유전, 예를 들어, 변이 데이터에 대한 분석들을 수행하도록 구성되는 제1 계층의 프로세싱을 포함할 수 있다. 예를 들어, 제1 계층의 3차 프로세싱 유닛들은 게놈, 에피게놈, 메타게놈, 유전형, 및/또는 다양한 변이 분석, 및/또는 다른 생물정보학 기반 분석을 수행하도록 구성되는 게놈학 프로세싱 플랫폼을 포함할 수 있다. 추가적으로, 제2 3차 프로세싱 계층에서, 다양한 질병 진단, 연구, 및/또는 분석 프로토콜들(800)이 수행될 수 있으며, 이 분석은 NIPT, NICU, 암, LDT, 생물학적, AgBio 애플리케이션들 등 중 하나 이상을 포함할 수 있다.
시스템(1)은 예컨대 전자 의료 레코드(EMR) 데이터, 연방 약물 관리 테스트 및/또는 구조화 데이터, 주석에 관련된 데이터 등과 관련된 본 명세서에 개시된 절차들 및 프로세스들에 관련된 다양한 데이터(900)를 수신 및/또는 전송하도록 추가로 적응될 수 있다. 그러한 데이터는 사용자가 시스템(1)의 이용을 통해 개발되고 및/또는 그에 의해 액세스 가능하게 되는, 생성된 의료, 진단, 치료, 및/또는 예방 모달리티들을 작성 및/또는 그에 액세스하는 것을 가능하게 하는 데 유용하다. 따라서, 다양한 경우들에서, 본 명세서에 제시에 제시된 디바이스들, 방법들, 및 시스템들은 다운스트림 프로세싱에 용이하게 사용 가능한 포럼에서, 유전 및 생체분석 분석의 안전한 수행뿐만 아니라 그의 결과의 안전한 전달을 가능하게 한다. 추가적으로, 다양한 경우들에서, 본 명세서에 제시된 디바이스들, 방법들, 및 시스템들은 예컨대 하나 이상의 건강 모니터링 및/또는 데이터 저장 시설로부터 및/또는 FDA 또는 NIH와 같은 정부 기관으로부터 시스템으로의 데이터를 안전한 전송을 가능하게 한다. 예를 들어, 이 시스템은 예컨대 다운스트림 프로세싱에 용이하게 사용 가능한 포럼에서, 유전 및 생체분석 분석의 수행뿐만 아니라, 그의 결과의 안전한 전달을 위해, 본 명세서에 개시된 방법에 따라 사용하기 위해 건강 관리 및/또는 저장 시설로부터 전송될 수 있는 것과 같은 EMR/PHR 데이터를 안전하게 수신하도록 구성될 수 있다.
특정하게는, 제1 3차 프로세싱 계층(700)은 예를 들어 SAM 또는 BAM 파일 형식의 매핑 및/또는 정렬된 데이터에 대해, 유전학 분석을 수행하기 위한, 및/또는 VCF 형식의 변이 데이터를 프로세싱하기 위한 것과 같은, 하나 이상의 게놈학 프로세싱 플랫폼을 포함할 수 있다. 예를 들어, 제1 3차 프로세싱 플랫폼은 게놈 파이프라인, 에피게놈 파이프라인, 메타게놈 파이프라인, 공동 유전형 분석 파이프라인 중 하나 이상뿐만 아니라, GATK 파이프라인, 구조적 변이 파이프라인, 체세포 변이 추출 파이프라인을 포함하는 하나 이상의 변이 분석 파이프라인을 포함할 수 있고, 일부 경우들에서, RNA-서열 분석 파이프라인을 포함할 수 있다. 하나 이상의 다른 게놈 분석 파이프라인이 또한 포함될 수 있다.
더 구체적으로는, 도 43을 참조하면, 다양한 경우들에서, 다중 계층 및/또는 멀티플렉싱 생체분석 프로세싱 플랫폼은 데이터 생성 및/또는 프로세싱 유닛들의 추가 층을 포함한다. 예를 들어, 특정 경우들에서, 생체분석 프로세싱 플랫폼은 하나 이상의 3차 프로세싱 프로토콜을 수행하는 것에 관한 소프트웨어 및/또는 하드웨어 구현들 중 하나 이상에, 하나 이상의 프로세싱 파이프라인을 통합한다. 예를 들어, 특정한 경우들에서, 3차 프로세싱 파이프라인들(700)의 플랫폼은 게놈 파이프라인, 에피게놈 파이프라인, 메타게놈 파이프라인, 공동 유전형 분석 파이프라인, GATK 파이프라인과 같은 변동 파이프라인, 및/또는 RNA 파이프라인과 같은 다른 파이프라인들 중 하나 이상을 포함할 수 있다. 추가적으로, 3차 프로세싱 분석 플랫폼의 제2 층은 마이크로-어레이 분석 파이프라인, 게놈, 예를 들어, 전체 게놈 분석 파이프라인, 유전형 분석 파이프라인, 엑솜 분석 파이프라인, 에피게놈 분석 파이프라인, 메타게놈 분석 파이프라인, 마이크로바이옴 분석 파이프라인, 공동 유전형 분석을 포함하는, 유전형 분석 파이프라인, 구조적 변이 파이프라인, 체세포 변이 파이프라인, 및 GATK 및/또는 MuTect2 파이프라인을 포함하는 변이 분석 파이프라인뿐만 아니라, RNA 서열 분석 파이프라인 및 다른 유전 분석 파이프라인들 중 하나 이상과 같은, 다수의 프로세싱 파이프라인을 포함할 수 있다.
따라서, 일 실시예에서, 다중 계층 생체분석 프로세싱 플랫폼은 메타게놈학 파이프라인을 포함한다. 예를 들어, 하나 이상의 환경 게놈학 프로세스의 수행을 위한 것과 같은 메타게놈학 파이프라인이 포함될 수 있다. 특정하게는, 다양한 실시 예들에서, 메타게놈학 분석은 유기체들의 그룹이 종 또는 다른 클레이드와 같은 공통 조상으로부터 진화했는지를 결정하도록 구성될 수 있다. 더 특정하게는, 다양한 실시예들에서, 그 안에 다수의 살아 있는 및/또는 죽은 유기체를 포함하는 환경 샘플을 획득할 수 있고, 그로부터 존재하는 DNA/RNA를 본 명세서의 프로세싱 플랫폼들 중 하나 이상을 통해 격리, 서열 분석, 및 프로세싱하여 존재하는 특정 종 및/또는 그에 관련된 하나 이상의 다른 게놈 인자를 식별할 수 있다. 그러한 "환경" 샘플은 다수의 인간 마이크로바이옴(예를 들어, 피부, 혈액, 객담, 대변 샘플들에서 발견되는 미생물을 포함하여, 건강한 사람과 질병이 있는 사람 양쪽 모두와 관련하여 발견되는 미생물들과 관련됨)뿐만 아니라 외부 환경 작용제를 포함할 수 있다.
메타게놈 프로세싱을 수행하기 위해 서열 분석된 유전자 샘플을 유도하는 복수의 방법이 존재한다. 제1 방법은 타겟팅된 16S 리보솜 RNA 복제 및/또는 유전자 서열 분석 프로토콜을 포함한다. 예를 들어, 16S 리보솜 RNA는 종(또는 심지어 하나의 종의 변종)에 걸쳐 매우 다양하다. 따라서, 이 RNA를 격리하고 서열 분석하여 자연적으로 발생하는 생물학적 샘플들로부터 유도되는 생물 다양성의 유전 프로파일을 생성할 수 있고, 이는 시스템의 A/I 또는 다른 데이터베이스에 통지하기 위해 사용될 수 있다. 그러나, 그러한 서열 분석의 문제점은 많은 양의 미생물 생물 다양성을 단순히 그것이 재배된 방식으로 인해 놓칠 수 있다는 것이다.
따라서, 제2 방법은 일단 서열 분석되면 미시적 생명의 유전 다양성을 드러낼 수 있는 샘플링된 군집들의 모든 생물학적 작용제로부터 복수의, 예를 들어 모든 유전자의 샘플들을 생성하기 위해 사용될 수 있는 샷건 및/또는 PCR 지향적 프로토콜을 포함한다. 구체적으로는, 샷건 서열 분석 방법에서는, 예를 들어, 상이한 종의 많은(예를 들어, 수만 개의) 기준 게놈으로부터 총 기준 서열(aggregate reference sequence)이 생성될 수 있다. 그러나, 이 많은 기준 게놈의 총 크기는 엄청나다. 그러므로, 총 기준 서열을 구축하기 위해 각각의 기준 게놈으로부터 하나 이상의 특유의 부분 서열을 선택하는 것이 유리하다.
예를 들어, 그러한 부분 서열은 수백 개의 염기 내지 수천 개의 염기 길이일 수 있고, 이는 이상적으로 다른 종(또는 변종)에서 발생하지 않는 고유한 서열들이다. 이들 부분 서열은 그 후 기준 서열을 구성하기 위해 집성될 수 있다. 따라서, 일단 격리, 서열 분석, 매핑 및 정렬되면, 이들 메타게놈학 서열은 많은 종에 대한 부분 또는 전체 기준 게놈과 대조하여 비교될 수 있고, 유전 생물 다양성이 결정될 수 있다.
그러므로, 메타게놈학은 살아있는 세계에 대한 우리의 이해에 혁명을 일으킬 수 있는 미생물 세계를 보기 위한 강력한 렌즈를 제공한다. 결과적으로, 이들 경우 중 어느 것에서, 샘플에 존재하는 유기체 DNA가 현저히 존재할 때, 그 종은 그 환경 내에 있는 것으로 식별될 수 있다. 이상적으로, 이와 같은 방식으로, 일반적으로 그 환경에 존재하는 다른 종에 공통적이지 않은 종이 식별할 수 있다. 구체적으로는, 모든 종의 커버리지가 획득된 환경 샘플에 대해 정규화될 때, 존재하는 모든 종의 유전 다양성이 결정될 수 있고, 예컨대 특정 유기체의 DNA의 일부분을 생성된 생물학적으로 다양한 기준 유전 서열의 것과 비교하는 것에 의해 전체 커버리지와 대조하여 비교될 수 있다.
이들 분석의 유의성은, 주어진 종의 존재하거나 존재하지 않는 것을 가정하여, 베이지안 방법들에 의해, 예컨대 특정한 유기체의 서열 분석된 판독들을 관찰할 확률을 추정하는 것에 의해 결정될 수 있다. 베이지안 확률 방법들은 이벤트의 확률을, 그 이벤트와 관련될 수 있는 조건들에 기초하여 설명하는 것에 관련된다. 예를 들어, 누군가가 피험자에서 암의 존재를 결정하는 데 관심이 있다면, 그리고 피험자의 나이가 알려져 있다면, 그리고 암이 나이 관련 질병이라고 결정되면, 베이즈의 정리를 사용하여, 피험자의 나이에 관한 정보가 암의 확률을 보다 정확하게 평가하기 위해 사용된다.
구체적으로는, 베이지안 확률 해석으로 그 정리는 주관적인 신뢰의 정도가 관찰된 증거를 설명하기 위해 합리적으로 어떻게 변화할 수 있는지를 표현한다. 베이즈의 정리는 수학적으로 다음 수학식으로 표현된다: P(A/B) = P(B/A) P(A) / P(B) 여기서 A와 B는 이벤트들이고 P(B) ≠ 0이다. P(A) 및 P(B)는 서로 관계없이 A와 B를 관찰할 확률들이다. 조건부 확률인 P(A | B)는 B가 참이라고 가정할 때 이벤트 A를 관찰할 확률이다. P(B | A)는 A가 참이라고 가정할 때 이벤트 B를 관찰할 확률이다.
따라서, 이 컨텍스트에서 베이지안 확률 분석을 수행하기 위한 하나 이상의 단계는 다음 중 하나 이상을 포함할 수 있다: 다양한 분류학적 레벨들: 계, 문, 강, 목, 과, 속, 종, 및/또는 변종(kingdom, phylum, class, order, family, genus, species, and/or strain)에서 존재 추출이 이루어질 수 있다. 그러나, 이것은 DNA가 하위 분류학적 레벨들을 공유하는 유기체들 사이에 점점 더 유사해지는 경향이 있다는 사실로 인해 복잡하다. 추가적으로, 종종 샘플은 상위 분류학적 레벨 내의 다수의 종(또는 하나의 종의 다수의 변종)으로부터의 기준 게놈과 매칭할 수 있고, 그러므로, 많은 경우들에서, 특정 종 또는 변종보다는, 더 일반적인 클레이드(예컨대 속 또는 과)만이 명백하게 존재하는 것으로 추출될 수 있다. 그럼에도 불구하고, 본 명세서에 개시된 디바이스들, 시스템들, 및 그것을 사용하는 방법들이 이들 및 다른 그러한 어려움을 극복하기 위해 이용될 수 있다.
구체적으로는, 일 실시예에서, 샘플로부터 2개 이상의 종 또는 클레이드의 유기체의 존재를 결정하는 방법이 제공된다. 예를 들어, 제1 단계에서, 샘플로부터 게놈 서열 데이터의 판독들이 획득될 수 있고, 예컨대 이 경우에 판독들은 FASTQ 또는 BCL 형식일 수 있다. 판독들을 다수의 게놈 기준 서열들에 매핑하기 위해 게놈 서열의 매핑이 수행될 수 있다. 이 경우에, 게놈 기준 서열들은 전체 게놈일 수도 있고, 또는 각각의 종, 변종 또는 클레이드에 필요한 데이터의 양을 감소시키기 위해 부분 게놈일 수도 있다. 그러나, 게놈의 더 큰 부분들을 사용하면 검출의 감도가 증가할 것이고, 사용되는 각각의 기준 서열은 서로 구별될 각각의 종, 변종, 클레이드를 표현하도록 선택되어야 한다.
이러한 목적으로, 각각의 종 또는 클레이드의 16S 리보솜으로부터의 게놈 서열의 일부분 또는 전부가 사용될 수 있다. 이러한 방식으로, 샘플에 존재할 것으로 의심되는 유기체들의 종, 변종, 또는 클레이드들의 2개 이상의 게놈 기준 서열을, 샘플 내의 이들 그룹의 멤버들을 검출하기 위해 구축할 수 있다. 일단 구축되면, 게놈 기준 서열들 각각에 대한 인덱스가 또한 구축될 수 있다. 인덱스들은 해시 테이블 또는 트리 인덱스, 예컨대 프리픽스 또는 서픽스 트리 인덱스일 수 있다. 일단 인덱스가 구축되면, 샘플 게놈 서열 판독들은 2개 이상의 인덱스 각각과 비교될 수 있다. 그 후, 샘플 게놈 서열 판독들이 인덱스들 각각에 매핑되는지가 결정될 수 있다.
마찬가지로, 게놈 서열의 판독들은 또한 이들이 매핑되는 게놈 기준 서열(들)에 정렬될 수 있다. 이는 본 명세서의 방법들에 따라, 정렬 스코어를 생성할 것이고, 이는 판독이 샘플 내의 유기체의 종 또는 클레이드의 존재 또는 부재를 나타내는 확률을 분석하는 데 사용될 수 있다. 구체적으로는, 매핑 및/또는 정렬은 본 명세서에 설명된 바와 같은, 본 소프트웨어 및/또는 하드웨어 모듈들에 의해 완수될 수 있다. 일부 실시예들에서, 매핑 및 정렬된 데이터는 그 후 추가 분석 및 프로세싱을 위해 컴퓨팅 리소스(100/300)로 전달될 수 있다.
예를 들어, 매핑 및/또는 정렬된 게놈 서열 판독들을 분석하여 게놈 기준 서열을 갖는 유기체가 샘플에 존재할 우도를 결정할 수 있다. 마찬가지로, 환경 샘플에 존재하는 것으로 결정되는 종, 변종 또는 클레이드의 리스트가 보고될 수 있다. 특정 실시예들에서, 리스트는 평가의 통계적 신뢰도를 나타내기 위해 신뢰도 메트릭(예를 들어, P-값)과 함께 보고될 수 있다. 분석된 유기체들의 종, 변종, 또는 클레이드의 전체 리스트는 또한 어떤 종, 변종, 또는 클레이드가 존재했는지의 표시, 및 신뢰도 메트릭과 함께 보고될 수 있다. 유의해야 할 점은 비록 마이크로바이옴의 분석과 관련하여 설명되었지만, 본 명세서에 개시된 다양한 기법들 및 절차들은 적합한 경우, 다른 모든 3차 프로세싱 프로토콜의 분석에 이용될 수 있다는 점이다.
예를 들어, 도 43b는 예컨대 환경 샘플 내의 마이크로바이옴의, 환경 분석을 수행하기 위한 방법의 예시적인 구현을 설명한다. 예를 들어, 제1 경우에, 환경 샘플이 획득될 수 있고, 그로부터 다양한 유전 물질이 격리될 수 있다. 그 후 예컨대 적합하게 구성된 NGS를 통해, 다양한 유전 물질이 프로세싱되고 서열 분석될 수 있다.
결과적으로, 제1 단계 1000에서, 일단 다양한 유전 물질이 예를 들어 NGS에 의해 서열 분석되면, 이는 본 명세서에 개시된 시스템(1)으로 전송될 수 있다. 단계 1010에서, 예를 들어, 샘플 내에서 검출될 관심 있는 1개, 2개 또는 그 이상의 게놈 기준 서열이 구축될 수 있다. 단계 1020에서, 1개, 2개 또는 그 이상의 게놈 기준 서열 각각에 대한 인덱스가 구축될 수 있다. 게다가, 그 후 단계 1030에서, 게놈 샘플의 획득된 서열 분석된 판독은 예컨대 적합하게 구성된 매핑 모듈을 통해, 1개, 2개 또는 그 이상의 인덱스와 비교될 수 있다. 그 후 단계 1040에서, 서열 분석된 판독들의 게놈 샘플이 2개 이상의 인덱스 각각에 매핑되는지가 결정될 수 있다.
이 시점에서, 원한다면, 단계 1050에서, 매핑된 판독들을 게놈 기준 서열과 정렬시켜 정렬 및/또는 정렬 스코어를 생성할 수 있다. 따라서, 일단 샘플 내의 획득된 유전 물질이 매핑 및/또는 정렬되면, 단계 1060에서, 기준 서열을 갖는 주어진 유기체가 샘플 내에 존재할 우도가 결정될 수 있다. 그리고 일단 프로세싱되면 샘플에 존재하는 종, 변종, 및/또는 클레이드의 리스트가 식별 및/또는 보고될 수 있다.
본 명세서에 개시된 3차 프로세싱 플랫폼은 또한 에피게놈 파이프라인을 포함할 수 있다. 특정하게는, 후성유전학은 유기체의 DNA 서열에 인코딩되지 않은 유전 영향을 연구한다. 이 용어는 또한 변화들 자체를 지칭한다: 뉴클레오티드 서열의 변화를 수반하지 않는 게놈에 대한 기능적으로 관련된 변화들. 그럼에도 불구하고, 후성적 변화들은 DNA 염기 서열을 변경하지 않는 염색체의 변화들로 인해 생기는 안정되게 유전성인 표현형이다. 이들 변경은 유전성일 수도 아닐 수도 있다. 특정하게는, 후성적 변화들은 특정 유전자들의 활성화를 변형시키지만, DNA의 유전 코드 서열은 변형시키지 않는다. 그것은 DNA 자체의 마이크로구조(코드가 아님)이거나 연관된 염색질 단백질이 변형되어 활성화 또는 사일런싱을 야기할 수 있다.
에피게놈은 유전자 발현, 발달, 조직 분화 및 전이 가능한 요소들의 억제를 조절하는 데 관련된다. 개인 내에서 대체로 정적인 기저의 게놈과는 달리 에피게놈은 환경 조건에 의해 동적으로 변경될 수 있다. 이 분야는 세포의 게놈 및 프로테옴의 연구인, 게놈학 및 프로테오믹스와 유사하다. 추가적으로, 에피게놈학은 유기체의 DNA와 히스톤 단백질에 대한 화학적 변화들의 기입으로 구성되는 에피게놈으로 알려진, 세포의 유전 물질에 대한 완전한 세트의 후성적 변형들의 연구를 수반한다. 이들 변화는 초세대적 후성적 유전(transgenerational epigenetic inheritance)을 통해 유기체의 자식에게 전달될 수 있다. 에피게놈에 대한 변화들은 염색질의 구조에 대한 변화들 및 게놈의 기능에 대한 변화들을 초래할 수 있다.
이 후성적 메커니즘은 다세포 유기체 내의 분화된 세포들이 그들 자신의 활동에 필요한 유전자들만을 발현할 수 있게 한다. 후성적 변화들은 세포들이 분열될 때 보존된다. 특정하게는, 대부분의 후성적 변화들은 하나의 개개의 유기체의 수명의 과정 내에 발생한다. 그러나, 수정을 초래하는 정자 또는 난자 세포에서 유전자 불활성화가 발생하면, 일부 후성적 변화들이 차세대로 전달될 수 있다. 여러 유형의 후성적 유전 시스템들이 세포 메모리로 알려진 것에 역할을 할 수 있다. 예를 들어, DNA의(예를 들어, 시토신 메틸화 및 히드록시메틸화) 또는 히스톤 단백질의(예를 들어, 라이신 아세틸화, 라이신 및 아르기닌 메틸화, 세린 및 트레오닌 인산화, 라이신 유비퀴틴화(ubiquitination) 및 수모화(sumoylation)) 다양한 공유결합 변형이 많은 유형의 후성적 유전에 중심적 역할을 할 수 있다. 세포 또는 개인의 표현형은 그의 유전자들 중 어느 것이 전사되는지에 의해 영향을 받기 때문에, 유전성 전사 상태는 후성적 효과를 일으킬 수 있다. 세포 및 생리학적 표현 형질에 미치는 효과는 유전자를 켜고 끄고 세포가 유전자를 발현하는 방식에 영향을 미치는 외부 또는 환경 인자들로 인해 생길 수 있다.
예를 들어, DNA 손상이 후성적 변화들을 야기할 수 있다. DNA 손상은 매우 빈번하다. 이들 손상은 대체로 수복되지만 DNA 수복의 부위에는, 후성적 변화들이 남아 있을 수 있다. 특히, DNA에서의 이중 가닥 절단은 DNA 메틸화를 야기하는 것만 아니라 사일런싱 유형의 히스톤 변형들(염색질 리모델링)을 촉진하는 것 양쪽 모두에 의해 프로그램되지 않은 후성적 유전자 사일런싱을 개시할 수 있다. 그러한 변화들을 생성하는 메커니즘의 다른 예들로는 DNA 메틸화와 히스톤 변형이 있고, 이들 각각은 유전자들이 기저의 DNA 서열을 변경하지 않고 어떻게 발현되는지를 변경한다. 뉴클레오솜 리모델링이 또한 DNA 복구의 후성적 사일런싱을 야기하는 것으로 밝혀졌다. 게다가, DNA 손상 화학물질이 또한, 예컨대 산화 스트레스 경로의 활성화를 통해 DNA의 상당한 저메틸화(hypomethylation)를 야기할 수 있다. 추가적으로, 유전자 발현은 DNA의 사일런서 영역들에 부착하는 리프레서 단백질들의 작용을 통해 제어될 수 있다.
이들 후성적 변화는 세포의 수명의 지속기간 동안 세포 분열을 통해 지속될 수 있고, 비록 유기체의 기저의 DNA 서열에 변화들을 수반하지 않더라도 다수의 세대 동안 지속될 수도 있다; 대신, 비유전 인자들이 유기체의 유전자들이 상이하게 거동(또는 "자신을 발현")하게 한다. 후성적 생물학에서의 후성적 변화들의 일 예는 세포 분화의 프로세스이다. 형태 형성 동안, 전능성 줄기 세포들이 배아의 다양한 다능성 세포주가 되고, 배아는 결국 완전히 분화된 세포들이 된다. 다시 말해서, 단일 수정된 난자 세포 -접합체- 가 분열을 계속함에 따라, 결과로 생성된 딸 세포들은 일부 유전자들을 활성화시키면서 다른 것들의 발현을 억제하는 것에 의해 뉴런, 근육 세포, 상피, 혈관의 내피 등을 포함하는 유기체 내의 모든 상이한 세포 유형으로 변화한다.
유전자 발현의 조절의 여러 층이 존재한다. 유전자들이 조절되는 한 가지 방법은 염색질의 리모델링을 통한 것이다. 염색질은 DNA와 그와 연관되는 히스톤 단백질의 복합체이다. DNA가 히스톤 주위를 감싸는 방식이 변화하면, 유전자 발현도 또한 변화할 수 있다. 첫 번째 방법은 히스톤 단백질들을 구성하는 아미노산의 합성 후 변형(post translational modification)이다. 히스톤 단백질은 아미노산의 긴 사슬로 구성되어 있다. 사슬에 있는 아미노산이 변경되면, 히스톤의 형상이 변형될 수 있다. 복제 중에 DNA가 완전히 풀리지 않는다. 그 후, 변형된 히스톤이 DNA의 각각의 새로운 카피로 옮겨지는 것이 가능하다. 일단 거기서, 이들 히스톤은 템플릿으로 작용하여, 주변의 새로운 히스톤들을 새로운 방식으로 형성되도록 개시한다. 이들 변형된 히스톤은, 그들 주변의 히스톤들의 형상을 변경하는 것에 의해, 세포 분열 이후에 혈통 관련 전사 프로그램이 유지되도록할 것이다.
두 번째 방법은 주로 CpG 부위에서, DNA에 메틸기를 첨가하여 시토신을 5- 메틸시토신으로 변환시키는 것이다. 5-메틸시코신은 이중 가닥 DNA에서 구아닌과 쌍을 이루는 보통의 시토신과 매우 유사하다. 그러나, 게놈의 일부 영역들은 다른 것들보다 메틸화가 더 심하고, 메틸화가 심한 영역들은 완전히 이해되지 않은 메커니즘을 통해 전사가 덜 활성화되는 경향이 있다. 시토신의 메틸화는 또한 부모 중 하나의 생식 세포 선으로부터 접합체로 지속되어, 염색체가 한쪽 부모 또는 다른 쪽으로부터 유전되는 것으로 마킹할 수 있다(유전적 각인). 비록 히스톤 변형이 전체 서열에 걸쳐 발생하지만, 히스톤의 구조화되지 않은 N-말단(히스톤 테일이라 지침됨)은 특히 고도로 변형된다. 이들 변형은 아세틸화, 메틸화, 유비퀴틸화, 인산화, 수모화, 리보실화(ribosylation) 및 시트룰린화(citrullination)를 포함한다.
따라서, DNA 메틸화는 일부 DNA 뉴클레오티드, 특히 'C' 염기에 이어서 'G'들, 또는 "CpG" 디뉴클레오티드 상의 메틸기의 존재이다. 프로모터 영역들에서의 메틸화는 유전자 발현을 억제하는 경향이 있다. 메틸화 분석은 주어진 샘플 게놈에서 어떤 'C' 염기가 메틸화되어 있는지를 검출하는 프로세스이다. 아황산염 서열 분석(MethylC-seq)은 전체 게놈 서열 분석을 이용하여 메틸화를 검출하는 가장 일반적인 방법이고, 여기서 메틸화되지 않은 시토신('C') 염기가 화학적으로 우라실('U') 염기로 변환되고, 이는 PCR 증폭 후에 티민('T') 염기가 된다. 메틸화된 C 염기는 변환에 저항한다.
따라서, 본 명세서에 개시된 디바이스들 및 방법들에 따르면, 변형이 DNA 서열에는 영향을 미치지 않지만 유전자 발현에 영향을 미치는 DNA 분자의 변형의 검출이 본 명세서에 제공되며, 이는 예컨대 후성적 유전 물질에 대해 하나 이상의 매핑 및/또는 정렬 연산들을 수행하는 것에 의해 이루어진다. 그러한 방법들에서, 획득된 판독들은 변환된 'T' 염기가 기준 'C' 위치에 정렬할 수 있게 하는 방식으로 기준 게놈에 매핑 및 정렬될 수 있고, 'C' 염기는 매핑/정렬 전에 기준 서열에서 'T'로 대체될 수 있다. 이것은 아황산염 변환된 C들(지금은 T들)을 갖는, 판독들의 정확한 매핑 및 정렬을 가능하게 하고, 따라서 게놈 서열 판독들에서 비-아황산염 변환된(메틸화된) C들을 드러낸다. 역 상보화 정렬의 경우, 상보적인 치환이 사용될 수 있는데, 예를 들어, 'G'들이 'A'들로 대체될 수 있다.
마찬가지로, 기준 인덱스(예를 들어, 해시 테이블) 구축기 및 매핑기/정렬기는 MethylC-seq 사용을 위해 이들 치환을 자동으로 수행하도록 수정될 수 있다. 대안적으로, 매핑기/정렬기는 판독 'T'들의 기준 'C'들로의 순방향 정렬, 및 판독 'A'들의 기준 'G'들로의 역 상보화 정렬을 허용하도록 수정될 수 있다. 본 명세서에 개시된 방법들은 정확도를 개선하고, 판독 'C'들의 기준 'T'들의 잘못된 순방향 정렬, 및 판독 'G'들의 기준 'A'들로의 잘못된 역 상보화 정렬을 방지한다.
추가적으로, 게놈 서열 판독들에서 시토신 염기의 메틸화 상태를 결정하기 위한 방법들이 본 명세서에 제공된다. 예를 들어, 제1 단계에서, 아황산염-처리된 뉴클레오티드 샘플들로부터의 게놈 서열을 판독이 획득될 수 있다. 특정하게는, 이들에 관하여, 2차 프로세싱을 위한 판독들을 생성하기 위해 하나 이상의 수정된 서열 분석 프로토콜이 이용될 수 있다. 구체적으로는, 전체 게놈 중황산염 서열 분석; 감소된 표현 중황산염 서열 분석; 메틸화된 DNA 면역 침전 서열 분석, 및 메틸화-민감성 제한 효소 서열 분석 중 하나 이상이 염기쌍 레벨까지 변화하는 분해능 레벨로, 게놈의 부분들에 걸쳐 DNA 메틸화를 식별하기 위해 사용될 수 있다. 게다가, 예를 들어, 염색질 접근성이 액세스될 수 있는데, 여기서는 DNase I 과민성 부위 서열 분석이 수행될 수 있고, 예컨대 이 경우 게놈에서 개방 또는 접근 가능한 영역을 발견하기 위해 DNase I 효소가 사용될 수 있다. 게다가, 발현 레벨 또는 단백질 코딩 유전자를 식별하기 위해 RNA-서열 분석 및 발현 어레이들이 사용될 수 있다. 특정하게는, 작은 비코딩 RNA, 주로 miRNA들의 발현을 식별하기 위해 smRNA-서열 분석이 사용될 수 있다.
결과적으로, 일단 판독들을 생성하도록 서열 분석되면, 판독들과의 비교를 위해 게놈 기준 서열이 구축될 수 있다. 그 후 게놈 기준 서열에서의 CpG 로케이션들이 마킹될 수 있다. 게다가, 게놈 기준 서열은 게놈 내의 C들을 T들로 대체하는 것에 의해 프리프로세싱될 수 있다. 게놈 기준 서열에 대한 인덱스가 구축될 수 있다. 일단 인덱스가 구축되면, 샘플 게놈 서열 판독들이 인덱스와 비교될 수 있고, 샘플 에피-게놈 서열 판독들이 인덱스에 매핑되는지가 결정될 수 있다.
게다가, 매핑된 판독들을 게놈 기준 서열과 정렬시켜 정렬 스코어를 생성할 수 있다. 특정 실시예들에서, 염기 치환이 판독 서열에서 이루어질 수 있고, 판독은 인덱스와 재비교되고 재정렬될 수 있다. 일부 실시예들에서, 판독 및/또는 매핑 동안 정렬 배향 제한이 활용될 수 있고, 따라서 판독 및 게놈 서열 기준에서 C를 T로 대체하여 순방향 정렬만이 허용되고, 판독 및 게놈 서열 기준에서, G를 A로 대체하여 역 상보화 정렬만이 허용된다.
이들 매핑 및 정렬 절차는 본 명세서에 설명된 다양한 소프트웨어 및/또는 하드웨어 모듈에 의해 완수될 수 있다. 일부 실시예들에서, 매핑 및 정렬된 데이터는 그 후 추가의 분석 및 프로세싱을 위해 CPU/GPU/QPU에 전달될 수 있다. 예를 들어, 매핑 및 정렬된 판독들은 그들의 매핑된 기준 위치에 의해 소팅될 수 있다. 일부 실시예들에서, 중복 판독들이 마킹되고 제거될 수 있다. 각각의 마킹된 기준 CpG 로케이션에 대해 판독들의 파일업으로부터의 중첩 판독들이 분석될 수 있다. 그러한 경우에, 시토신(C)을 대체한 티민(T)이 비-메틸화된 시토신을 나타내며 그러한 것으로 마킹된다. 그리고 판독 서열에 남아 있는 시토신은 메틸화된 시토신으로 마킹될 수 있다. CpG 로케이션들의 역 상보화 정렬들도 메틸화된 또는 비-메틸화된 것으로 마킹될 수 있다. 예를 들어, 아데닌(A)을 대체한 구아닌(G)은 비-메틸화된 시토신(C)의 역 상보화로 마킹되는 반면, 판독 서열에 남아 있는 구아닌(G)은 메틸화된 시토신(C)의 역 상보화로 마킹된다. 각각의 뉴클레오티드 가닥 상의 각각의 CpG 로케이션의 가능성 있는 메틸화 상태가 보고될 수 있고, 메틸화 추출에서 연관된 신뢰도 메트릭(예를 들어 p-값)이 만들어질 수 있다. 일부 실시예들에서, 마킹된 CpG 로케이션들의 메틸화 상태는 염색체들의 이배체 쌍의 각각의 염색체에 대해서도 표시될 수 있다.
히스톤 변형에 관련하여, 히스톤 변형은 DNA가 주위를 감싸는 히스톤 단백질의 다양한 자연적으로 발생하는 화학적 변형을 포함하여, 결과적으로 DNA 감싸기가 더 또는 덜 타이트해지게 한다. 예를 들어, 느슨하게 감싸진 DNA는 더 높은 비율의 유전자 발현과 연관된다. 그러한 히스톤 변형들은 예컨대 변형에 대한 항체를 사용하는 것에 의해, 게놈 전체에 걸친 히스톤 변형의 패턴을 식별하기 위해 사용될 수 있는, 염색질 면역 침전 서열 분석(ChIP-Seq)에 의해 결정될 수 있다. 게다가, ChIP-seq는 히스톤(또는 다른 선택된 단백질)에 타이트하게 결합된 DNA를 격리하고 서열 분석하기 위해 이용될 수 있는 방법이다. ChIP-seq가 수행된 후, 샘플을 준비하고, DNA를 격리하고 서열 분석할 수 있고, 그 후 서열 분석된 DNA를 본 명세서에 개시된 바와 같이 기준 게놈에 매핑/정렬할 수 있고, 매핑된 커버리지를 사용하여 게놈 내의 다양한 좌위(loci)에서의 히스톤 결합의 레벨을 추론할 수 있다. 추가적으로, 구조적 변이를 분석하기 위해 아래에 설명된 방법들과 유사한 ChIP-유도된 뉴클레오티드 서열들을 분석하는 방법들이 본 명세서에 제공된다.
특히 유의할 점은 후성유전학은 암 연구 및 진단에 유용하다는 점이다. 예를 들어, 인간 종양은 DNA 메틸화 및 히스톤 변형 패턴들의 주요 붕괴를 겪는다. 사실상 암성 세포의 비정상적인 후성적 풍경(epigenetic landscape)은 글로벌 게놈 저메틸화, 종양 억제 유전자의 CpG 아일랜드 프로모터 과메틸화(hypermethylation), 임계적 유전자에 대한 변경된 히스톤 코드, 및 모노아세틸화 및 트리메틸화된 히스톤 H4의 글로벌 손실에 의해 특징지어진다. 따라서, 본 명세서에 개시된 방법들은 암 연구 및/또는 진단의 목적을 위해 사용될 수 있다.
게다가, 본 명세서에 개시된 방법들은 하나 이상의 에피게놈 데이터베이스 및/또는 기준 게놈을 생성하는 데 유용할 수 있다. 예를 들어, 본 명세서에 개시된, 예를 들어 시스템의 A/I 학습 프로토콜을 이용하는 방법들은 예컨대, 매우 다양한 세포주, 1차 세포, 및/또는 1차 조직에 걸쳐 보통의, 건강한 개인들로부터의, 에피게놈들의 인간 기준을 생성하는 데 유용할 수 있다. 생성된 그러한 데이터는 이후 본 명세서에 개시된 매핑 및/또는 정렬 프로토콜을 향상시키는 데 사용될 수 있다. 더욱이, 일단 에피게놈 차이들의 데이터베이스가 생성되면, 이 데이터베이스를, 예를 들어, A/I 모듈에 의해 마이닝하여 다양한 질병 상태들, 예컨대 암, 치매, 알츠하이머 질병, 및 다른 신경학적 상태들에서 발생하는 관련 인자들을 더 잘 특징짓고 결정할 수 있다.
따라서, 다양한 경우들에서, 예컨대 세포의 유전 물질 상에서 발생한 하나 이상의 또는 전체 세트의 후성적 변형들을 식별하기 위해, 에피게놈학 분석이 수행될 수 있다. 특정하게는, 본 명세서에 개시된 방법들을 이용하여, 예컨대 유기체의 세포들의 DNA 및 히스톤 단백질에 대한 화학적 변화들의 카탈로그 및/또는 기입을 위해, 유기체, 및/또는 그의 세포들의 에피게놈을 결정할 수 있다. 예를 들어, 예시적인 에피게놈 분석이 도 43c에서 본 명세서에 설명된다.
예를 들어, 제1 단계에서, 유기체로부터 게놈 샘플이 획득될 수 있고, 유전 물질을 그로부터 격리하고 서열 분석할 수 있다. 그러므로, 일단 서열 분석되면, 단계 1000에서, 샘플의 서열 분석된 판독들이 시스템(1)에 전송되고 그에 의해 수신될 수 있다. 이 경우에, 판독들은 중황산염-처리된 뉴클레오티드 샘플로부터 유도될 수 있다. 마찬가지로, 단계 1010에서, 예컨대 에피게놈 샘플 판독들의 비교를 수행하기 위해, 예를 들어, 유기체에 대한 서열들의 게놈 기준이 구축될 수 있다. 단계 1012에서, 게놈 기준 서열(들) 내의 임의의 다양한 CpG 로케이션이 식별될 수 있다.
일단 식별되면, 1014에서, CpG 로케이션의 "C들"이 "T들"로 대체될 수 있고, 단계 1020에서, 변형된 게놈 기준 서열에 대한 인덱스가 생성될 수 있다. 일단 변형된 기준에 대한 인덱스가 생성되면, 단계 1030에서, 샘플의 게놈 서열 판독을 인덱스와 비교할 수 있고, 단계 1040에서 샘플의 게놈 서열 판독들이 인덱스에 매핑하는지를 결정할 수 있는데, 이는 예컨대 본 명세서에 개시된 방법들 및 장치들에 따라 매핑되는 것에 의해 이루어진다. 그 후, 매핑된 판독들이 게놈 기준 서열과 정렬될 수 있고, 정렬 스코어가 생성될 수 있는데, 이는 예컨대 본 명세서에 논의된 바와 같이, 하나 이상의 정렬 연산을 수행하는 것에 의해 이루어진다.
이 시점에서, 몇 개의 다양한 분석 중 하나가 수행될 수 있다. 예를 들어, 단계 1051에서, 더 큰 컨텍스트를 원한다면, 위에서 프로세싱된 판독들 내의 염기 치환들, 및/또는 정렬 배향, 및/또는 파라미터 제약들이 조정될 수 있고, 비교 단계들(1030 내지 1050)이 반복될 수 있다. 이 프로세스 자체는 충분한 레벨의 컨텍스트가 달성될 때까지 원하는 대로 반복될 수 있다. 따라서, 일단 충분한 레벨의 컨텍스트가 달성되면, 매핑 및/또는 정렬된 판독들이, 단계 1080에서, 예컨대, 본 명세서에 개시된 프로세스들에서, 매핑/정렬된 기준 위치에 의해 소팅될 수 있다. 그리고 단계 1081에서, 임의의 중복 판독들이 마킹 및/또는 제거될 수 있다.
게다가, 단계 1082에서, 각각의 마킹된 기준 CpG 로케이션과 중첩하는 판독들의 파일업으로부터의 판독들이 분석될 수 있다. "T"가 "C"로 대체된 경우, 그것은 단계 1083에서 비-메틸화된 "C"로 마킹될 수 있다; 그리고 "C"가 서열에 남아 있는 경우, 단계 1084에서, "C"는 메틸화된 "C"로 마킹될 수 있다. 마지막으로, 단계 1086에서, 각각의 뉴클레오티드 가닥 상의 CpG 로케이션 각각의 가능성 있는 메틸화 상태, 및 메틸화 추출에서의 신뢰도에 대한 결정 및/또는 보고가 또한 이루어질 수 있다.
추가적으로, 유전 물질의 일부가 구조적 변이를 가질 수 있거나, 또는 그와 달리 연관될 수 있는 게놈 물질을 분석하는 방법들이 본 명세서에 제공된다. 특정하게는, 구조적 변형은 유기체의 염색체의 구조의 변형이다. 구조적 변형들은 결실, 중복, 카피-수 변이, 삽입, 역위(inversions), 및 전위(translocations)와 같은, 미시적 및 극미소 유형을 포함하여, 종의 게놈에서의 많은 종류의 변형을 수반한다. 많은 구조적 변이는 유전 질병과 연관이 있다. 사실상, 인간 게놈의 약 13%는 정상 인구집단에서 구조적 변이로 정의되고, 인간 인구집단에서 동형 결실 다형성으로 존재하는 적어도 240개의 유전자가 있다. 그러한 구조적 변이들은 모든 게놈 내에서 수백만 개의 이종의 뉴클레오티드를 포함할 수 있고, 인간의 질병 감수성에 중요한 기여를 할 가능성이 있다.
카피-수 변형은 삽입, 결실, 및 중복을 포함하는 구조적 변형의 큰 카테고리이다. 인간 질병과 관련된 몇 가지 역위가 알려져 있다. 예를 들어, 인자 VIII 유전자에서 반복되는 400kb 역위는 혈우병 A의 일반적인 원인이며, 이두로네이트 2-설파타제(iduronate 2-sulphatase)에 영향을 미치는 더 작은 역위들은 헌터 증후군을 야기할 것이다. 더 많은 예로는 안젤만 증후군과 소토스 증후군을 포함한다. 복잡한 구조적 변형의 가장 일반적인 유형은 비-직렬 중복(non-tandem duplications)이고, 여기서는 서열이 중복되고 게놈의 다른 부분에 역위된 또는 직접 배향으로 삽입된다. 복잡한 구조적 변이의 다른 종류들로는 결실-역위-결실, 중복-역위-중복, 및 내포된 결실들(nested deletions)이 있는 직렬 중복(tandem duplications)를 포함한다. 또한 숨은 전위(cryptic translocations)와 분절성 단부모 이체증(segmental uniparental disomy, UPD)이 있다.
그러나, 비정상적인 DNA 구조의 검출은 문제가 있고, 지금까지 공지된 변이 추출의 범위를 넘어서 있다. 검출에 문제가 있는 그러한 구조적 변이들은 큰 삽입 및 결실(예를 들어, 50-100bp 삽입결실 크기를 넘어섬); 중복, 및 다른 카피-수 변형(CNV); 역위 및 전위, 및 이수성(aneuploidy)(비정상적인 염색체 카피 수: 일염색체성, 이염색체성, 삼염색체성 등)을 가진 것들을 포함한다. 본 명세서에 개시된 특정 경우들에서, 식별된 카피-수 변형들은, 예컨대 정량적 SNP 유전형을 사용하는 것에 의해, 유전 질병이 없는 피험자에 대해 테스트될 수 있다.
구조적 변형 검출은 일반적으로 본 명세서에 개시된 디바이스들 및 방법들을 사용하여 매핑 및 정렬 연산을 수행하는 것으로 시작한다. 예를 들어, 분석될 게놈 샘플의 판독들은 예컨대 키메라 정렬을 지원하는 프로토콜에서, 기준 게놈에 매핑 및 정렬될 수 있다. 구체적으로는, 일부 구조적 변이들(예를 들어, CNV 및 이수성)은 상대적 매핑된 커버리지의 분석에 의해 검출될 수 있다. 그러나, 다른 구조적 변이들(예를 들어, 큰 삽입결실, 역위, 전위)은 클리핑된 및 키메라 정렬의 분석에 의해 검출될 수 있다.
구체적으로는, 각각의 구조적 변이는, 판독이 기준 게놈에 매핑되지 않는, 하나 이상의 "브레이크(break)" 위치를 포함하는데, 예컨대 이 경우 샘플과 기준 간에 기하학적 구조가 변화한다. 그러한 경우에, 파일업은 구조적 변이 브레이크들과 약간 중첩되는 판독들이 브레이크에서 클리핑될 수 있고, 구조적 변이 브레이크들과 상당히 중첩되는 판독들이 키메라적으로 정렬될 수 있도록, 예를 들어, 판독의 2개의 부분이 상이한 기준 로케이션에 매핑되도록 구성될 수 있다. 그러나, 구조적 변이 브레이크들과 중첩하는 판독 쌍들이 모순되게 정렬되어, 2개의 짝 판독들이 크게 상이한 기준 로케이션들에 매핑되고/되거나, 짝 판독들의 상대적 배향이 비정상일 수 있다. 그러한 장애물은 본 명세서에 개시된 방법들에 의해 극복될 수 있다.
예를 들어, 특정 경우들에서, 공지된 구조적 변이들에 관한 데이터가 구조적 변이의 서열을 더 잘 결정하기 위해 사용될 수 있다. 예를 들어, 인간 게놈에서 구조적 변이의 리스트를 갖는 데이터베이스가, 예를 들어, CNV들을 강조하여 컴파일될 수 있고, 그러한 데이터는 적합하게 구성된 가중 프로토콜에서와 같이, 특정 변이들의 서열을 결정하기 위해 사용될 수 있다. 특정하게는, 구조적 변이가 알려진 경우, 그의 "내부" 및 "외부" 좌표를 구조적 변형에 의해 영향을 받을 수 있는 서열의 최소 및 최대 범위로서 이용할 수 있다. 추가적으로, 알려진 삽입, 손실, 이득, 역위, LOH, 외번(everted), transchr 및 UPD 변형들이 분류되어 본 시스템의 지식 베이스에 공급될 수 있다.
다양한 경우들에서, 구조적 변이의 결정은 예컨대 이전에 결정된 서열 분석 데이터를 이용하여, 적합하게 구성된 소프트웨어를 실행하는 CPU/GPU/QPU에 의해 수행될 수 있고, 다른 경우들에서, 구조적 변이 분석은 예컨대 본 명세서에 개시된 하드웨어에서 수행될 수 있다. 따라서, 특정한 경우들에서, 구조적 변이들에 대한 게놈 서열들을 분석하는 방법이 제공된다. 예를 들어, 제1 단계에서, 게놈 서열 판독들이 뉴클레오티드 샘플로부터 수신될 수 있다. 특정 경우들에서, 서열 분석된 판독들은 구조적 변이들을 검출하기 위한 쌍의 말단 또는 짝 쌍 프로토콜들로부터 유도되었을 수 있다. 다음으로 게놈 기준 서열에 대한 인덱스가 구축될 수 있는데, 예컨대 이 경우 인덱스는 해시 테이블 또는 프리픽스 또는 서픽스 트리와 같은 트리일 수 있다. 일단 인덱스가 구축되면, 샘플 게놈 서열 판독들을 인덱스와 비교하여 샘플 게놈 서열 판독들이 인덱스에 매핑되는지를 결정할 수 있다. 그렇다면, 그 후 샘플 게놈 서열 판독들이 이들이 매핑된 게놈 기준 서열에 정렬될 수 있고, 정렬 스코어가 결정될 수 있다.
위에 지적한 바와 같이, 매핑 및 정렬은 본 명세서에 설명된 바와 같은 하드웨어 모듈에 의해 완수될 수 있다. 일부 실시예들에서, 매핑 및 정렬된 데이터는 그 후 추가의 분석 및 프로세싱을 위해 연관된 CPU/GPU/QPU에 전달될 수 있다. 판독들은 매핑된 기준 위치에 의해 소팅될 수 있고, 중복 판독들이 마킹되고 삭제될 수 있다. 2개의 짝 판독의 특이한 상대 정렬들 및/또는 키메라 판독들이 결정될 수 있고, 임의의 검출된 키메라 판독들 및/또는 특이한 상대 정렬들(예를 들어, 큰 삽입결실, 역위, 또는 전위)에 기초하여 가능한 구조적 변이들이 결정될 수 있다. 마찬가지로, 각각의 가능한 구조적 변이의 사후 확률들이 계산될 수 있다. 일부 실시예들에서, 예컨대 키메라 판독들 및/또는 특이한 상대 정렬의 HMM 분석을 이용하여, 구조적 변이 단상형들이 결정될 수 있다. 예를 들어, 그러한 결정을 위해 쌍 HMM이 사용될 수 있다. 쌍 HMM은 하드웨어 모듈을 사용하여 완수될 수 있다.
따라서, 다양한 경우에, 도 43d와 관련하여 알 수 있는 바와 같이, 유기체의 염색체들의 구조의 변형들을 결정하는 방법이 제시된다. 예를 들어, 본 명세서에 개시된 방법들에 따라, 단계 1000에서, 게놈 서열 데이터의 판독들이 수신될 수 있다. 단계 1010에서, 판독들과 기준 서열(들) 사이의 비교를 수행하기 위해 하나 이상의 게놈 기준 서열이 구축될 수 있다. 구체적으로는, 단계 1010에서, 수신된 판독 값들이 생성된 기준과 대조하여 비교될 수 있도록 게놈 기준 서열이 구축될 수 있다. 더 구체적으로는, 이들 목적을 위해, 단계 1020에서, 게놈 기준 서열에 대한 인덱스가 생성될 수 있고, 예를 들어, 단계 1020에서 해시 테이블 또는 프리픽스/서픽스 트리가 생성될 수 있다. 그러므로, 단계 1030에서, 예컨대 본 명세서에 개시된 소프트웨어 및/또는 하드웨어 구현들에 따라, 샘플 게놈 서열의 판독들이 생성된 인덱스와 비교될 수 있다.
단계 1040에서, 샘플 게놈 서열의 판독들이 인덱스에 매핑되는 것으로 결정되면, 단계 1050에서, 매핑된 판독들이 게놈 기준 서열과 정렬될 수 있고, 정렬 스코어가 생성될 수 있다. 단계 1080에서, 샘플 판독들은 그들의 매핑된 기준 위치들에 의해 소팅될 수 있다. 이 시점에서, 단계 1081에서, 중복 판독들이 마킹되고 제거될 수 있다. 게다가, 단계 1090에서, 예를 들어 2개의 짝 판독의 키메라 판독들 및/또는 특이한 상대 정렬들이 검출될 수 있고, 1092에서, 예컨대 검출된 키메라 판독들 및/또는 특이한 상대 정렬들에 기초하여, 가능한 구조적 변이들이 결정될 수 있다. 더욱이, 각각의 가능한 구조적 변이의 사후 확률들이 계산될 수 있고, 옵션으로, 단계 1096에서, 예컨대 키메라 판독들 및/또는 특이한 상대 정렬들의, 본 명세서에 설명된 바와 같은, HMM 분석을 이용하여 구조적 변이 단상형들이 결정될 수 있다.
게다가, 본 명세서에 개시된 디바이스들, 시스템들, 및 방법들은 RNA 서열의 프로세싱을 위해 이용될 수 있다. 특정하게는, 예컨대 스플라이싱된 매핑 및 정렬 프로토콜(예를 들어, 적합하게 구성된 RNA 매핑기/정렬기와 함께)을 이용하여, RNA-서열 판독들을 분석하는 방법들이 본 명세서에서 제시된다. 예를 들어, 일 실시예에서, 예컨대 극히 빠른 RNA-서열 데이터 분석을 위한, 전사체 파이프라인이 제공될 수 있다. 특정하게는, 이 파이프라인은 예컨대 기준만의 정렬뿐만 아니라 주석-보조 정렬과 관련하여 RNA 전사체에 대한 2차 분석을 수행하도록 구성될 수 있다.
따라서, 제1 방법에서, 예를 들어, BCL 및/또는 FASTQ 파일 형식의 원시 판독 데이터가 서열 분석 기구에 의해 생성될 수 있고, 시스템에 입력될 수 있고, 여기서 매핑, 정렬, 및 변이 추출이 수행될 수 있다. 그러나, 다양한 경우들에서, 예컨대 스플라이싱된 정렬들을 가이딩하기 위해, 하나 이상의 유전자 주석 파일(GTF)이 시스템에 입력될 수 있고, 예를 들어, 스플라이스 접합 LUT가 구축되어 사용될 수 있다. 예를 들어, 정렬 정확도 및 스플라이스 접합 테이블이 이용될 수 있다. 결과적으로, 2-단계 정렬이 수행될 수 있는데, 예컨대 이 경우 제1 검출 단계에서는 새로운 스플라이스 접합들이 이용될 수 있고, 이는 그 후 제2 패스 매핑/정렬 단계를 가이딩하는 데 사용될 수 있다. 변이 추출 후에, 시스템은 3차 분석을 위해 준비된 표준 VCF 파일을 출력할 것이다.
특정하게는, 일단 입력 파일이 수신되면, 스플라이싱된 매핑 및 정렬이 예컨대 단일 및 쌍 판독 말단들 양쪽 모두에 대해 수행될 수 있다. 지적한 바와 같이, 구성가능한 접합 필터들이 단일 접합 출력을 제공하기 위해 이용될 수 있다. 기준 범위에 의한 비닝, 및 그 후 기준 위치에 의한 빈들의 소팅을 포함할 수 있는 위치 소팅이 수행될 수 있고, 고품질의 중복 보고를 달성하기 위해 예컨대 시작 위치 및 CIGAR 스트링에 기초하여 중복 마킹이 행해질 수 있고, 그에 의해 임의의 중복들이 제거될 수 있다. 그 후, 예를 들어, SW 및 HMM 프로세싱 엔진을 사용하여 단상형 변이 추출이 수행될 수 있고, 조립이 수행될 수 있다.
추가적으로, 본 명세서에 개시된 디바이스들, 시스템들, 및 방법들은 체세포 변이 추출을 수행하기 위해 이용될 수 있다. 예를 들어, 암성 세포들에서 발생할 수 있는 변이들을 검출하기 위해 체세포 변이 추출 프로토콜이 이용될 수 있다. 특정하게는, 체세포 추출을 위한 게놈 샘플들은 단일 또는 다수의 종양 생체검사로부터 또는 혈액으로부터 획득될 수 있다. 옵션으로, 예컨대 변이 추출 동안 비교를 위해, "정상"(비종양) 샘플이 또한 획득될 수 있는데, 예를 들어, 체세포 변이들은 종양 세포들에서는 발생하지만 정상 샘플의 세포들에서는 발생하지 않을 것이다. 샘플(들)로부터의 DNA/RNA는 예컨대 차세대 서열분석기에 의해 격리 및 서열 분석될 수 있다. 그 후, 각각의 샘플로부터의 서열 분석된 데이터가 2차 프로세싱 플랫폼으로 전송될 수 있고, 판독들이 매핑 및 정렬될 수 있다. 게다가, 판독들에는 SW 및 쌍 HMM 엔진들 중 하나 또는 양쪽 모두에 의한 프로세싱을 포함하는, 복수의 변이 추출 절차를 적용할 수 있다.
그러나, 시스템은 3% 내지 10%(또는 그 이상)와 같은 낮은 변이 대립 유전자 빈도들을 검출할 수 있도록 구성되어야 한다. 더 특정하게는, 유전형 확률 모델이 이용될 수 있고, 여기서 이 모델은 임의의 대립 유전자 빈도들을 허용하도록 구성된다. 이를 허용하는 한 가지 방법은 중첩 판독들에서 관찰된 대립 유전자 빈도들에 대응하는 각각의 변이 유전형 대립 유전자들을 할당하는 것이다. 예를 들어, 중첩 판독들의 10%가 특정 변이를 나타내는 경우, 90% 기준 대립 유전자 및 10% 대안 대립 유전자로 구성되는 유전형을 테스트할 수 있다. 종양/정상 이중 샘플들의 경우, 변이가 종양 샘플에는 존재하지만 정상 샘플에는 존재하지 않는 사후 확률을 추정할 수 있다.
게다가, 체세포 변이 추출기 파이프라인은 종양 이종(tumor heterogeneity)에 관한 정보, 예를 들어, 일련의 별개의 돌연변이 이벤트들이 발생했다는, 예컨대 이 경우 상이한 유전자형들을 갖는 종양(서브클론)의 하나 이상의 섹션이 식별되었다는 정보를 제공하도록 구성될 수 있다. 그러한 서브클론 정보는 변이 대립 유전자 빈도들 및 이들의 분포들의 결정으로부터, 및/또는 다수의 종양 샘플 중에서 차별적으로 변이들을 명시적으로 추출하는 것에 의해 유도될 수 있다.
따라서, 샘플로부터의 암성 세포들의 서열 변이들을 검출하는 방법들이 제공된다. 제1 단계에서, 뉴클레오티드 샘플로부터의 게놈 서열 판독들이 암성 및/또는 정상 세포로부터 획득될 수 있다. 이 서열 판독들은 구조적 변이를 검출하기 위한 것과 유사한 쌍의 말단 또는 짝 쌍 프로토콜로부터 유도될 수 있다. 게놈 기준 서열에 대한 인덱스가 구축될 수 있는데, 예컨대 이 경우 인덱스는 해시 테이블 또는 프리픽스 또는 서픽스 트리와 같은 트리일 수 있다. 예를 들어, 종양의 및/또는 정상 샘플의 샘플 게놈 서열 판독들은 인덱스와 비교될 수 있고, 샘플 게놈 서열 판독들이 인덱스에 매핑되는지가 결정될 수 있다.
그 후, 샘플 게놈 서열 판독들은 이들이 매핑된 게놈 기준 서열에 정렬될 수 있고, 정렬 스코어가 생성될 수 있다. 매핑 및 정렬은 본 명세서에 설명된 바와 같은, 소프트웨어 및/또는 하드웨어 모듈에 의해 완수될 수 있다. 일부 실시예들에서, 매핑 및 정렬된 데이터는 그 후 추가의 분석 및 프로세싱을 위해 CPU/GPU/QPU에 전달될 수 있다. 판독들은 매핑된 기준 위치에 의해 소팅될 수 있고, 임의의 중복 판독들이 마킹되고 삭제될 수 있다. 임의의 변이 대립 유전자 빈도들을 예상하고, 가능한 낮은 대립 유전자 빈도들(예를 들어, 3% 내지 10%)를 검출 및 보고하도록 수정된 베이지안 분석을 이용하여 변이들이 검출될 수 있다.
일부 실시예들에서, 생식세포 변이는 비암성 및 암성 샘플 양쪽 모두에서 검출될 수 있고, 체세포 변이는 암성 샘플에서만 검출될 수 있다. 예를 들어, 생식세포 및 체세포 돌연변이들은 상대적 빈도에 의해 구별될 수 있다. 각각의 가능한 암 변이의 사후 확률들이 계산될 수 있고, 일부 실시예들에서, 키메라 판독들 및/또는 특이한 상대 정렬들의 HMM 분석을 이용하여 구조적 변이 단상형들이 결정될 수 있다. 예를 들어, 그러한 결정을 위해 쌍 HMM이 이용될 수 있다. 쌍 HMM은 본 명세서에 설명된 바와 같은 하드웨어 모듈을 사용하여 완수될 수 있다.
따라서, 다양한 실시예들에서, 예컨대 변이가 암 변이일 확률을 계산하기 위해, 도 43e에 예시된 바와 같은, 체세포 변이 추출 절차가 수행될 수 있다. 예를 들어, 단계 1000에서, 예컨대 암성 및 비암성 유전 샘플들 중 하나 또는 양쪽 모두로부터, 게놈 서열 샘플들의 판독들이, 예를 들어 NGS의 서열 분석을 통해 생성되고/되거나, 적합하게 구성된 클라우드 기반 네트워크 시스템을 통한 전송을 통해 수신될 수 있다. 단계 1010에서, 예컨대 판독들의 비교를 위한 게놈 기준 서열이 생성될 수 있고, 단계 1020에서, 게놈 기준 서열로부터 인덱스가 구축될 수 있고, 단계 1030에서, 예컨대 본 명세서에 개시된 소프트웨어 및/또는 하드웨어 구현들을 이용하여, 샘플 게놈 서열을 인덱스와 비교하여, 1040의 단계에서, 게놈 서열 판독들을 인덱스에 매핑할 수 있다. 게다가, 단계 1050에서, 매핑된 판독들을 게놈 기준 서열과 정렬시켜 정렬 스코어를 생성할 수 있다. 그 후 1080에서, 매핑 및/또는 정렬된 판독들이 기준 위치에 관련하여 소팅될 수 있고, 옵션으로, 1081에서, 임의의 중복 판독들이 마킹되고 제거될 수 있다.
추가적으로, 일단 판독들이 매핑 및/또는 정렬 및/또는 소팅 및/또는 중복제거되면, 단계 1100에서 예컨대 베이지안 분석을 이용하여 변이들이 검출될 수 있고, 1101에서 옵션으로 비암성 및 암성 샘플들 양쪽 모두에서의 생식세포 변이들뿐만 아니라 그 안의 체세포 변이들이 검출될 수 있다. 마찬가지로, 단계 1094에서, 각각의 가능한 암 변이의 사후 확률들이 계산될 수 있다. 게다가, 단계 1096에서, 예컨대 본 명세서에 개시된 바와 같은 소프트웨어 및/또는 하드웨어로 HMM 분석을 구현하여, 옵션으로 암 변이 단상형들이 결정할 수 있다.
더욱이, 본 명세서에 개시된 디바이스들, 시스템들, 및 방법들은 공동 유전형 분석 연산을 수행하도록 구성될 수 있다. 특정하게는, 예컨대 다수의 피험자들의 코호트로부터의 판독들을 공동으로 고려하는 것에 의해, 변이 추출 정확도를 개선하기 위해, 공동 유전형 분석 연산이 이용될 수 있다. 예를 들어, 다양한 경우들에서, 게놈 변형들이 특정 인구집단들에서 고도로 상관될 수 있는데, 예를 들어, 특정 변이들이 복수의 피험자에 공통이다. 그러한 경우들에서, 다수의 DNA(또는 RNA) 샘플들로부터 각각의 변이에 대한 증거를 공동으로 고려하는 것에 의해 변이 추출의 감도 및 특이성이 개선될 수 있다. 구체적으로는, 하나의 피험자에서의 변이에 대한 약한 증거가 다른 샘플들에서의 동일한 변이에 대한 증거에 의해 향상될 수 있기 때문에 감도가 개선될 수 있다. 더 구체적으로는, 거짓 양성 변이에 대한 중간 정도의 증거가 다른 샘플들에서의 동일한 변이에 대한 증거의 부재에 의해 완화될 수 있기 때문에 감도가 개선될 수 있다. 일반적으로, 공동 유전형 분석에 참여하는 샘플이 많을수록, 임의의 주어진 피험자에 대한 변이 추출들이 더 정확해질 수 있다.
공동 유전형 분석은 유전 변이에서 관찰된 상관들을 표현하는 사전 확률들을 사용하여, 주어진 변이를 갖는 모든 피험자들의 다양한 서브세트들에 대한 사후 확률들을 추정하는 것을 수반한다. 다양한 경우들에서, 공동 유전형 분석이 단일 변이-추출 패스에서 수행될 수 있는데, 여기서 다수의 샘플들로부터의 정렬된 판독들이 변이 추출기에 의해 검사된다. 이는 일반적으로 샘플의 수가 작은 경우에만 실용적인데, 그 이유는 수십, 수백, 또는 수천 개의 샘플이 관련될 때, 전체 데이터 크기는 빠르게 액세스하고 조작하기에 비실용적이 되기 때문이다.
대안적으로, 공동 유전형 분석은 먼저 각각의 샘플에 대해 개별적으로 추출을 수행한 다음, 결과들을 공동 유전형 분석 툴과 병합하는 것에 의해 수행될 수 있으며, 공동 유전형 분석 툴은 공동 정보를 이용하여 각각의 피험자에 대한 변이 확률들을 업데이트한다. 이 방법은 각각의 단일 샘플 변이 추출 패스로부터의 추가 출력을 사용하여 변이들에 대한 약한 증거의 영역들 및/또는 공동 프로세싱 없이는 변이가 추출되지 않을 영역들을 더 잘 측정한다. VCF 형식은 단일 샘플 변이 추출로부터 추출된 변이를 표현하기 위해 일반적으로 사용되는 반면, 병합 준비에서 제1-스테이지 변이(및 비-변이) 추출들을 표현하기 위해 특수 gVCF 형식이 사용할 수 있다. gVCF 형식은 변이가 존재하지 않을 가능성이 많은, 다수의 로케이션의 블록들 및 및/는 로케이션들에 대한 레코드들을 포함하며, 따라서 이 정보를 동일한 로케이션들에서의 다른 gVCF 추출들 또는 비-추출들과 병합하여 각각의 피험자에 대한 개선된 공동 유전형 추출들을 생성할 수 있다.
따라서, 공동 유전형 분석 파이프라인은 더 빠르게 더 큰 정확도로 다수의 샘플로부터 변이들을 추출하도록 구성될 수 있다. 추가적으로, 공동 유전형 분석 파이프라인은 샘플들의 코호트로부터의 혈통뿐만 아니라 인구집단 변이 추출을 지원하도록 구성될 수 있다. 예를 들어, 파이프라인은 한 번에 10, 15, 20, 25, 심지어 50개까지 또는 그 이상의 샘플을 프로세싱하도록 구성될 수 있다. 다양한 경우들에서, 인구집단 추출 구성(population calling configuration)은 한 번에 수천 개의 샘플 크기들을 처리하도록 적응될 수 있다. 게다가, 다수의 샘플의 계층적 그룹화 및 속도의 조합은 공동 유전형 분석을 위한 계산 효율적인 분석 솔루션을 제공한다. 추가적으로, 공동 유전형 분석을 위한 대한 샘플들의 서열 분석은 차세대 서열분석기의 동일한 플로우 셀 내에서 수행될 수 있고 그에 의해 시스템이 다중 샘플 입력을 동시에 매핑/정렬하는 것을 가능하게 하고 그에 의해 공동 추출의 전체 프로세스를 가속화할 수 있고, 예컨대 이 경우 BCL 데이터를 파이프라인에 직접 공급하여 각각의 샘플에 대해 고유한 gVCF 파일들을 생성할 수 있다.
따라서, 다수의 피험자의 코호트로부터의 판독들을 공동으로 고려하는 것에 의해 변이 추출 정확도를 개선하는 방법이 본 명세서에 제공된다. 제1 단계에서, 2개 이상의 샘플로부터의 게놈 서열의 판독들이 수신된다. 판독들과의 비교를 위한 게놈 기준 서열이 구축되고, 게놈 기준 서열로부터 인덱스가 생성된다. 그 후 각각의 샘플의 게놈 서열 판독들이 인덱스와 비교되고, 각각의 샘플의 게놈 서열 판독들이 인덱스에 매핑하는지가 결정된다.
그 후 매핑된 판독들은 게놈 기준 서열과 정렬될 수 있고 정렬 스코어가 생성될 수 있다. 판독들은 매핑된 기준 위치에 의해 소팅될 수 있고, 중복 판독들이 마킹 및/또는 제거될 수 있다. 추가적으로, 그 후 판독들의 파일업으로부터의 중첩 판독들을 분석하여 대부분의 판독들이 기준 게놈 서열과 일치하는지를 결정할 수 있다. 각각의 가능한 변이의 사후 확률들이 계산되고, 각각의 개별 샘플에 대한 변이 추출 정확도를 향상시키기 위해 모든 샘플로부터의 변이 추출 데이터가 병합될 수 있다. 이는 각각의 샘플에 대한 변이 추출 정확도(예를 들어, 감도 및 특이성)를 향상시킬 수 있으며, 모든 샘플이 변이 추출 분석을 겪은 후 프로세싱 단계로서 완수될 수 있거나, 또는 이는 각각의 샘플이 변이 추출 분석을 겪을 후, 누적적으로 완수될 수 있다. 변이가 추출되지 않은 영역들에서의 비-기준 대립 유전자들의 우도가 결정될 수 있고, 변이가 추출되지 않은 영역들에서의 비-기준 대립 유전자들의 결정된 우도가 보고될 수 있다.
따라서, 다양한 실시예들에서, 예컨대 변이가 암 변이일 확률을 계산하기 위해, 도 43f에 예시된 바와 같은, 체세포 변이 추출 절차가 수행될 수 있다. 예를 들어, 단계 1000에서, 예컨대 암성 및 비암성 유전 샘플들 중 하나 또는 양쪽 모두로부터, 게놈 서열 샘플들의 판독들이, 예를 들어 NGS의 서열 분석을 통해 생성되고/되거나, 적합하게 구성된 클라우드 기반 네트워크 시스템을 통한 전송을 통해 수신될 수 있다. 단계 1010에서, 예컨대 판독들의 비교를 위한 게놈 기준 서열이 생성될 수 있고, 단계 1020에서, 게놈 기준 서열로부터 인덱스가 구축될 수 있고, 단계 1030에서, 예컨대 본 명세서에 개시된 소프트웨어 및/또는 하드웨어 구현들을 이용하여, 샘플 게놈 서열을 인덱스와 비교하여, 1040의 단계에서, 게놈 서열 판독들을 인덱스에 매핑할 수 있다. 게다가, 단계 1050에서, 매핑된 판독들을 게놈 기준 서열과 정렬시켜 정렬 스코어를 생성할 수 있다. 그 후 1080에서, 매핑 및/또는 정렬된 판독들이 기준 위치에 관련하여 소팅될 수 있고, 옵션으로, 1081에서, 임의의 중복 판독들이 마킹되고 제거될 수 있다.
마찬가지로, 1082에서, 판독들의 파일업으로부터의 중첩 판독들을 분석하여 하나 이상의, 예를 들어, 대부분의 판독들이 기준 게놈 서열(들)과 일치하는지를 결정할 수 있고, 단계 1094에서, 각각의 가능한 변이의 사후 확률들이 계산될 수 있다. 이 시점에서, 단계 1096에서, 원한다면, 예컨대 HMM 분석을 수행하는 것에 의해, 변이 단상형들을 결정할 수 있고/있거나 단계 1120에서, 각각의 개별 샘플에 대한 변이 추출 정확도를 향상시키기 위해 옵션으로, 예를 들어, 모든 샘플로부터의 변이 추출 데이터가 병합될 수 있다. 게다가, 단계 1122에서, 예를 들어, 변이가 추출되지 않은 영역들에서의 비-기준 대립 유전자들의 우도가 결정되고 보고될 수 있다.
추가적으로, 도 43을 참조하여 알 수 있는 바와 같이, 일 양태에서, 시스템에 통합될 수 있고 시스템에 전송되어 입력된 게놈 데이터를 분석하는 데 이용될 수 있는 게놈학 툴들을 사용자들이 개발, 판매, 및 사용할 수 있도록 온라인 앱 스토어가 제공된다. 특정하게는, 게놈 앱 스토어는 원하는 고객들이 예를 들어 NICU 테스트와 같은 유전 테스트들을 개발하는 것을 가능하게 하고, 일단 개발되면 시스템, 예를 들어, 유전 마켓플레이스 상으로, 구매 및 그 위에 플랫폼으로서 실행을 위해 업로드될 수 있고, 따라서 새롭게 개발된 시스템 플랫폼을 실행하는 누구나 웹 포털을 통해 업로드된 테스트들을 전개할 수 있다. 더 특정하게는, 사용자는 웹 포탈 "앱" 스토어를 브라우징하고, 원하는 테스트, 예를 들어, NICU 테스트를 찾고, 그것을 다운로드하고, 예컨대 그들의 업로드 가능한 유전 데이터에 대해 그것을 구현하도록 시스템을 구성할 수 있다. 따라서, 온라인 "코호트" 마켓플레이스는 새로운 유전 분석 애플리케이션들을 전개하는 신속하고 효율적인 방식을 제공하며, 그 애플리케이션은 다운로드된 애플리케이션을 실행하는 본 시스템 플랫폼들 중 임의의 것으로부터 동일한 결과들이 획득되는 것을 가능하게 한다. 더 특정하게는, 온라인 마켓플레이스는 시스템을 이용하여 작업하는 누구나 원격 사용자들이 본 워크플로우 모델들에 따라 사용하기 위해 다운로드하고 구성할 수 있는 유전 분석 애플리케이션들을 개발하기 위한 메커니즘을 제공한다.
본 명세서에 개시된 코호트 마켓플레이스의 다른 양태는 데이터의 안전한 공유를 가능하게 하는 것이다. 예를 들어, 게놈 데이터의 전송 및 저장은 고도로 보호되어야 한다. 그러나, 종종 그러한 유전 데이터는 크고 안전하고 보호된 방식으로 전달하기가 어렵고, 예컨대 이 경우 피험자의 아이덴티티가 제한된다. 따라서, 본 유전학 마켓플레이스는 코호트 참여자들이 피험자를 식별할 필요없이 유전 데이터를 공유할 수 있게 한다. 그러한 마켓플레이스에서, 코호트 참여자들은 질문들 및 프로세스들을 공유하여 그들 각자의 피험자의 게놈들의 아이덴티티를 위험에 노출시키지 않으면서 보호되고 안전한 환경에서 그들의 연구를 진행할 수 있다. 추가적으로, 사용자는 그들 게놈이 누구의 것인지를 식별하지 않고 그들의 샘플 세트들의 분석에서 다른 연구원들의 도움을 얻을 수 있다.
예를 들어, 사용자는 특정 유전형 및/또는 표현형, 예컨대 스테이지 3 유방암을 가진, 및/또는 특정 약물로 치료받은 피험자들을 식별할 수 있다. 이들 약물이 유전 레벨에서 어떻게 암성 세포 성장에 영향을 주는지 확인하기 위해 코호트가 형성될 수 있다. 따라서, 이들 특성은, 여러 가지 중에서도, 예를 들어 원격에 위치한 다른 연구원들이 코호트 기준들 내에서 적합한, 그들이 액세스할 수 있는 피험자들에 대해, 균일한 분석 절차들을 사용하여, 유전 데이터에 대해 표준 유전 분석을 수행할 수 있게 할 코호트 선택 기준들을 형성할 수 있다. 이러한 방식으로, 주어진 연구원은 자신의 과학적 문의를 입증하기 위해 샘플 세트의 모든 멤버들, 예를 들어, 기준들 내에서 적합한 피험자들을 식별하고 안전하게 보호할 책임이 필요 없다.
특정하게는, 연구원 A가 마켓플레이스 내에서 연구 코호트를 설정하고, 피험자들에 대한 적합한 선택 기준들, 실행될 게놈 테스트들, 및 테스트를 실행하는 데 이용되는 파라미터들을 식별할 수 있다. 그 후 연구원 A로부터 원격에 위치한 연구원 B와 C가 코호트에 등록하고 기준들에 매칭하는 피험자들을 선택한 다음, 그들의 피험자들에 대해, 본 명세서에 개시된 균일한 절차들을 이용하여, 지정된 테스트들을 실시하여, 연구원 A가 신속한 방식으로 자신의 연구 목표를 달성하거나 더 잘 완수하는 데 도움을 줄 수 있다. 이는 유전 데이터의 일부만 전송되고, 피험자 아이덴티티가 보호되고, 데이터가 동일한 파라미터들을 이용하는 동일한 유전 분석 시스템을 사용하여 분석됨에 따라, 테스트(들)가 어디서 그리고 어떤 머신에서 실행되는지에 관계없이 결과 데이터는 동일하기 때문에 유익하다. 결과적으로, 코호트 마켓플레이스는 사용자들이 단순히 대시보드 상에 선택 기준 및 실행 파라미터들을 게시하는 것만으로 코호트들을 형성하고 구축할 수 있게 한다. 보상 요금들이 또한 게시될 수 있고 적합하게 구성된 상거래, 예를 들어, 금전 교환, 프로그램을 이용하여 게시하고 지불이 이루어질 수 있다.
그 후, 코호트에의 참여를 수락하는 누구나 기준들 및 데이터 파일(들)을 다운로드하고/하거나 요청된 분석을 수행함에 있어서 그들이 이미 생성 및/또는 저장한 피험자들의 유전 데이터를 사용할 수 있다. 예를 들어, 각각의 코호트 참여자는 그들의 개별 서버들에 저장되는 BCL 및/또는 FASTQ 파일들의 데이터베이스를 갖거나, 생성할 수 있다. 이들 유전 파일들은 우연히 선택 기준들을 충족시키는 피험자들로부터 파생되었을 것이다. 구체적으로는, 피험자의 이 저장된 유전 및/또는 다른 데이터는 코호트 선택 기준들 내에 포함시키기 위한 적합성을 결정하기 위해 스캐닝될 수 있다. 그러한 데이터는 다수의 목적으로 생성되었을 수 있지만, 생성 이유와 관계없이, 일단 생성되면 그것을 선택하여 요청된 파이프라인 분석을 적용하고 코호트 내에 포함시키기 위해 사용할 수 있다.
따라서, 다양한 실시예들에서, 코호트 시스템은 연구원들을 연결하여, 그들이 그들의 리소스들 및 데이터, 예를 들어, 유전 서열 데이터를 풀링할 수 있게 하는 포럼일 수 있다. 예를 들어, 코호트를 관여시키는 것은 제1 연구원이 예컨대 매핑, 정렬, 변이 추출, 및/또는 다른 유사한 것에 관련하여, 다양한 피험자들로부터의 다수의 게놈의 마이닝 및/또는 검사를 요구하는 유전 데이터 분석을 요구하는 프로젝트를 도입할 수 있게 할 것이다. 따라서, 피험자들을 수집하고 개별적으로 샘플 세트들을 수집하는 대신, 코호트 개시자는 이전의 또는 다른 사람들에 의해 수집될 샘플 세트들에 대해 규정된 분석 절차가 실행될 필요성을 알릴 수 있고, 이에 따라 샘플 세트들을 생성하고 그것을 분석하는 집합적 접근법이 본 명세서의 코호트 조직에 의해 제공된다. 특정하게는, 코호트 개시자는 코호트 선택을 설정하고, 잠재적인 코호트 참여자들과 공유될 구성 파일을 작성하고, 예를 들어 워크플로우 폴더 내의 워크플로우 파라미터들을 작성할 수 있고, 그에 의해 예를 들어 워크플로우 관리 시스템을 통해 데이터 생성 및 분석을 자동화할 수 있다. 이 시스템은 거래의 상업적 측면, 예를 들어, 예컨대, 매핑, 정렬, 변이 추출에 관련하여, 및/또는 3차 분석에 관련하여, 분석될 수 있는 유전 데이터 세트들을 코호트 참여자들이 제공하는 것에 대해 그들을 보상하기 위한 지불 프로세싱을 가능하게 할 수 있다.
다양한 실시예들에서, 코호트 구조 분석은 예컨대 이미지 프로세싱 및/또는 염기 품질 스코어 재측정, 메틸화 분석 등에 관련한, 예를 들어, DNA 또는 RNA의 1차 프로세싱에 관한 것일 수 있고; 및/또는 예컨대 매핑, 정렬, 소팅, 변이 추출 등에 관련한, 2차 분석의 수행에 관한 것일 수 있고; 및/또는 예컨대 어레이, 게놈, 에피게놈, 메타게놈, 유전형 분석, 변이, 및/또는 다른 형태의 3차 분석에 관련한, 3차 분석에 관한 것일 수 있다. 추가적으로, 비록 파이프라인들 및 그에 의해 수행되는 분석들 중 다수는 1차 및/또는 2차 프로세싱을 수반할 수 있지만, 본 명세서의 다양한 분석 플랫폼들은 1차 또는 2차 프로세싱에 관한 것이 아닐 수 있다는 점을 이해해야 한다. 예를 들어, 특정 경우들에서, 분석 플랫폼은 배타적으로 예컨대 유전 데이터에 대한 3차 분석, 또는 다른 형태의 게놈학 및/또는 생물정보학 분석을 수행하는 것에 관한 것일 수 있다.
예를 들어, 특정한 실시예들에서, 실행될 특정한 분석 절차에 관련하여, 수행될 분석은 실행되도록 선택된 특정 파이프라인들에 따라, 하나 이상의 다른 2차 및/또는 3차 분석 절차를 적용할 수 있는 결과 데이터를 생성하기 위해, 하나 이상의 매핑, 정렬, 소팅, 변이 추출 등을 포함할 수 있다. 워크플로우는 단순할 수 있거나 그것은 복잡할 수 있는데, 예를 들어, 그것은 하나의 파이프라인 모듈, 예를 들어, 매핑, 또는 매핑, 정렬, 소팅, 변이 추출, 및/또는 다른 것들과 같은 다수의 모듈의 수행을 요구할 수 있지만, 중요한 파라미터는 코호트에 참여하는 각각의 사람에 대해 워크플로우가 동일해야 한다는 것이다. 특정하게는, 시스템의 고유한 특징은 코호트를 설정하는 요청자가, 그들 절차가 어디에서 또는 어떤 머신들 상에서 수행되는지에 관계없이, 수행될 분석이 동일한 방식으로 수행되도록 보장하기 위해 제어 파라미터들을 설정한다는 것이다.
결과적으로, 코호트를 설정할 때, 요청자는 구성 파일과 함께 선택 기준들 양쪽 모두를 업로드할 것이다. 그 후 다른 코호트 참여자들은 선택 기준들을 보고 그것들이 제시된 기준들 내에 속하는 유전 정보의 데이터 세트들을 가지고 있는지를 결정할 것이고, 그렇다면 구성 파일의 설정들에 기초하여, 데이터에 대해 요청된 분석을 수행할 것이다. 연구원들은 코호트 참여자로서 선택되기 위해 등록할 수 있고, 가입이 많으면 참여자들을 선택하기 위해 추첨이나 대회가 개최될 수 있다. 다양한 경우들에서, 입찰 시스템이 개시될 수 있다. 코호트 참여자들에 의해 생성된 결과 데이터는 온사이트에서 또는 클라우드 상에서 프로세싱될 수 있으며, 구성 파일을 추종하는 한 데이터의 프로세싱은 동일할 것이다. 특정하게는, 구성 파일은 BioIT 분석 디바이스가 어떻게 구성될 것인지를 제시하고, 일단 디바이스가 규정된 구성에 따라 설정되면, 시스템과 연관된 디바이스가 어디에(예를 들어, 로컬로 또는 원격으로) 위치하든 관계없이 동일한 방식으로 요청된 유전 분석을 수행할 것이다. 그 후 결과 데이터를 코호트 마켓플레이스에 업로드할 수 있고, 수신된 결과 데이터를 고려하여 지불이 제공되고 수신될 수 있다.
예를 들어, 유전 데이터의 분석은 로컬로 수행될 수 있고, 결과가 클라우드 상에 업로드되거나, 유전 데이터 자체가 업로드될 수 있고, 분석은 클라우드, 예를 들어, 서버 또는 서버 네트워크, 예컨대 클라우드와 연관된 양자 프로세싱 플랫폼 상에서 실행될 수 있다. 다양한 경우들에서, 피험자의 아이덴티티를 더 잘 보호하기 위해 결과 데이터만을 업로드하는 것이 유용할 수 있다. 특정하게는, 결과 데이터만을 업로드함으로써, 보안이 보호될 뿐만 아니라, 많은 양의 데이터를 전송할 필요가 없고, 그에 의해 시스템 효율이 향상된다.
더 특정하게는, 다양한 경우들에서, 하나 이상의 파이프라인으로부터의 결과 데이터를 포함하는 압축 파일이 업로드될 수 있고, 일부 경우들에서는, 변형들의 설명을 포함하는 파일만이 업로드될 필요가 있다. 일부 경우들에서는, 예를 들어 "예" 또는 "아니오"와 같은 텍스트 응답과 같은 응답만이 주어질 필요가 있다. 그러한 응답들이 선호되는 것은 그것들이 피험자의 아이덴티티를 제시하지 않기 때문이다. 그러나, 분석이 온라인으로, 예를 들어, 클라우드에서 수행될 필요가 있다면, 선택된 BCL 및/또는 FASTQ 파일들이 업로드되고, 분석이 수행될 수 있고, 그 후 결과 데이터는 다시 초기 제출자에게 푸시될 수 있고, 제출자는 그 후 결과 데이터를 코호트 인터페이스에서 업로드할 수 있다. 그 후 원래의 원시 데이터는 온라인 메모리로부터 삭제될 수 있다. 이러한 그리고 다른 그러한 방식들로, 코호트 요청자는 피험자의 아이덴티티들에 액세스할 수 없을 것이다.
"저스트인 타임 분석"(JIT)에서 이용되는 것과 같은 압축은 코호트 효율을 향상시키는 데 특히 유용하다. 예를 들어, 전형적인 절차들을 사용하여, 코호트 시스템 안팎으로 데이터를 이동시키는 것은 매우 고가이다. 따라서, 비록 다양한 구성들에서, 시스템에 업로드된 원시 및/또는 압축되지 않은 데이터가 거기에 저장될 수 있지만, 특정한 경우들에서, 데이터는 업로드되기 전에 압축될 수 있고, 그 후 데이터는 시스템 내에서 프로세싱될 수 있고, 그 후 결과는 시스템 밖으로 전송되기 전에 압축될 수 있고, 예컨대 이 경우 압축은 JIT 프로토콜에 따라 실시된다. 이 경우에, 예컨대 압축된 형태의, 그러한 데이터의 저장은 덜 고가이고, 따라서 코호트 시스템은 매우 비용 효율적이다.
추가적으로, 다양한 경우들에서, 온라인 마켓플레이스 내에 복수의 코호트가 제공될 수 있고, 본 명세서에 설명된 압축 프로세스가 주어지면, 데이터가 하나의 코호트로부터 다른 코호트로 전송되어, 다양한 상이한 코호트들의 연구원들이 그들 사이에 데이터를 공유할 수 있는데, 이는 본 명세서에 개시된 압축 방법들이 없다면 엄청나게 비용이 많이 들 수 있다. 특정하게는, JIT 압축의 속도와 효율이 없다면 일단 클라우드로 전송된 데이터는 전형적으로 클라우드에 머무를 것이다(비록 그것은 검토 및 조작을 위해 그 안에서 액세스 가능할 것이지만). 그러나, JIT는 로컬 및/또는 클라우드 기반 프로세싱 양쪽 모두에 대해 데이터가 빠르게 클라우드로 및 그로부터 전송될 수 있게 한다. 게다가, 도 41b 및 도 43과 관련하여 알 수 있는 바와 같이, 특정한 경우들에서, 시스템(1)은 생성 및/또는 2차 프로세싱된 데이터에, 예를 들어, 로컬(100) 및/또는 원격(300) 컴퓨팅 리소스를 통해 추가 프로세싱을 적용하도록 구성될 수 있는데, 예컨대 그것을 마이크로-어레이 분석 파이프라인, 게놈, 예를 들어, 전체 게놈 분석 파이프라인, 유전형 분석 파이프라인, 엑솜 분석 파이프라인, 에피게놈 분석 파이프라인, 메타게놈 분석 파이프라인, 마이크로바이옴 분석 파이프라인, 공동 유전형 분석을 포함하는, 유전형 분석 파이프라인, 구조적 변이 파이프라인, 체세포 변이 파이프라인, 및 GATK 및/또는 MuTect2 파이프라인을 포함하는 변이 분석 파이프라인뿐만 아니라, RNA 서열 분석 파이프라인들, 및/또는 다른 3차 프로세싱 파이프라인 중 하나 이상과 같은 하나 이상의 3차 프로세싱 파이프라인을 통해 실행한다. 그러한 프로세싱으로부터의 결과 데이터는 그 후 압축되고/되거나 원격으로 저장(400)될 수 있고/있거나 로컬로 저장(200)되도록 전송될 수 있다.
특정하게는, 이들 함수 중 하나 이상, 예를 들어 모두는 로컬로, 예를 들어, 사이트(10) 상에서, 로컬 클라우드(30) 상에서, 또는 하이브리드 클라우드(50)를 통한 제어된 액세스를 통해 수행될 수 있다. 그러한 경우에, 사용자가 시스템(1)의 기능성을 제어하여 자신의 개인적 필요를 충족시키고/시키거나, 동일한 또는 유사한 결과를 추구하는 다른 사람들을 위해 그에 액세스를 허용할 수 있게 하는 개발자 환경이 작성된다. 결과적으로, 로컬인지 원격인지와 관계없이 시스템 전체에 걸쳐서 안전하게 전달될 수 있는 데이터 사이의 연결 및 관련 데이터를 생성하기 위해, 시스템의 다양한 컴포넌트들, 프로세스들, 절차들, 툴들, 계층, 및 계층 구조들은, 사용자가 사용자 결정의 희망 및 프로토콜들에 따라 시스템의 어느 컴포넌트들이 어느 데이터에 대해, 어느 시간에, 어떤 순서로 실행되어야 하는지를 선택할 수 있게 하는 예컨대 GUI 인터페이스를 통해 구성가능할 수 있다. 지적한 바와 같이, 이들 컴포넌트는 예를 들어, 로케이션 및/또는 어떻게 연결되는지에 관계없이, 예컨대 타이트하게 결합된 구성 및/또는 심리스 클라우드 기반 결합에 의해, 및/또는 예컨대 시스템 전체에 걸쳐 분산된 대응하는 API 인터페이스들을 이용하는 것에 의해, 동일한 또는 유사한 방식으로 동일한 또는 유사한 프로세스들을 실행하기 위해, 예를 들어, JIT 프로토콜을 통해 구성가능한 것에 의해, 함께 심리스하게 통신하도록 만들어질 수 있고, 그러한 것의 이용은 다양한 사용자들이 다양한 컴포넌트들을 유사한 방식으로 다양한 절차들을 실행하도록 구성할 수 있게 한다.
예를 들어, API는 시스템(1)의 각각의 특정한 컴포넌트에 의해 실행될 프로세스와 관련하여 헤더 파일에 정의될 수 있으며, 여기서 헤더는 기능성을 설명하고, 전달되는 파라미터들, 수신된 입력들, 전송된 출력들과 같은 기능을 어떻게 호출하는지, 이것이 발생하는 방식, 무엇이 어떻게 들어오는지, 무엇이 어떻게 나가는지, 무엇이 어떤 방식으로 반환되는지를 결정한다. 예를 들어, 다양한 실시예들에서, 시스템의 하나 이상의 계층의 하나 이상의 파이프라인을 형성할 수 있는 컴포넌트들 및/또는 그의 요소들 중 하나 이상은, 예컨대 사용자 및/또는 하나 이상의 제2 및/또는 제3자 애플리케이션들에 의해 입력된 명령어들에 의해 구성가능할 수 있다. 이들 명령어는 시스템의 다양한 드라이버들 중 하나 이상과 통신하는 대응하는 API들을 통해 시스템에 전달되어, GUI와 같은 사용자가 선택할 수 있는 인터페이스에 의해 결정될 수 있는 미리 선택된 파라미터 구성이 주어진 경우, 시스템의 어떤 부분들, 예를 들어, 시스템의 어떤 모듈들 및/또는 어떤 프로세스(들)가, 언제, 어떤 순서로 활성화되어야 하는지에 대해 드라이버(들)에게 지시할 수 있다. 특정하게는, 시스템(1)의 하나 이상의 DMA 드라이버는 각각의 컴포넌트의 커널 레벨 및 시스템(1) 전체에서와 같이 대응하는 방식으로 실행되도록 구성될 수 있다. 그러한 경우에, 제공된 커널들 중 하나 이상은, 적용가능한 레지스터 및 모듈에 액세스하도록 시스템(1)의 다양한 컴포넌트의 하드웨어 및 기능들에 대한 액세스를 제공하여 이들이 시스템(1) 상에서 실행되는 프로세스 및 방식을 구성하고 지시하는 그들 자신의 매우 낮은 레벨의 기본 API를 가질 수 있다. 구체적으로는, 이 층의 상단에는, 서비스 기능들의 가상 층이 구축되어, 커널(들)로 파일을 내려보내고 결과들을 가져와서, 관련 데이터를 인코딩, 암호화, 및/또는 전송하고 그에 대해 더 높은 레벨의 기능을 추가로 수행하는 다수의 기능들에 이용되는 빌딩 블록을 형성할 수 있다. 그 층의 상단에는, 사용자가 인터페이싱할 수 있는 API 레벨일 수 있는, 그들 서비스 기능을 이용하는 추가적인 층이 구축될 수 있으며, 이는 주로 시스템(1) 전체 또는 그 컴포넌트 부분들의 구성, 파일 다운로드 및 결과 업로드를 위해 기능하도록 적응될 수 있고, 그 파일들 및/또는 결과들은 시스템 전체에 걸쳐 로컬로 또는 글로벌하게 전송될 수 있다. 추가 API들이 데이터의 보안 저장과 관련하여 위에 더 상세히 설명된 바와 같이 구성되고 포함될 수 있다.
시스템의 다양한 API들, 메모리들, 및/또는 펌웨어의 그러한 구성은 레지스터들과 통신하고 또한 함수 호출들을 수행하는 것을 포함할 수 있다. 예를 들어, 위에 본 명세서에 설명된 바와 같이, 매핑 및/또는 정렬 및/또는 소팅 및/또는 변이 추출, 또는 본 명세서에 설명된 다른 2차 및/또는 3차 함수들을 실행하기 위한 단계들을 예를 들어 순차적으로 수행하는 데 필요하고/하거나 유용한 하나 이상의 함수 호출들은, 하드웨어 연산들 및/또는 관련 알고리즘에 따라 구현되어 필요한 프로세스들을 생성하고 필요한 단계들을 수행할 수 있다.
구체적으로는, 특정 실시예들에서 이들 연산 중 하나 이상은 하나 이상의 구조에 기초할 수 있기 때문에, 이들 연산을 구현하는 데 필요한 다양한 구조들이 구성될 필요가 있을 수 있다. 따라서, 이 함수를 수행하는 함수 호출이 존재할 것이고, 함수 호출은 연산의 수행을 위해 필요한 구조가 구축되게 할 것이고, 이 때문에 함수는 구조 파라미터 파일이 저장되는 곳의 파일 이름을 수용할 것이고, 그 후 필요한 구조를 포함 및/또는 구성하는 하나 이상의 데이터 파일을 생성할 것이다. 다른 함수 호출은 각각의 알고리즘을 통해 생성된 구조를 로딩하고 이를 칩 및/또는 시스템(1)의 메모리로 전송하고/하거나, 이를 하드웨어가 이들이 있을 것으로 예상하는 올바른 지점에 배치하는 것일 수 있다. 물론, 시스템(1)의 다양한 다른 선택된 함수들의 수행을 위해서도, 다양한 데이터가 칩 상에 다운로드될 필요가 있고/있거나 시스템 생성기로 달리 전송될 필요가 있을 것이며, 구성 관리자는, 예컨대 칩 및/또는 시스템 전체의 플랫폼들의 계층들의 파이프라인 모듈들이 그들의 함수들을 수행하기 위해 필요한 모든 것을, 칩 및/또는 시스템 상에 있거나 그에 부착되거나 그에 연관된 메모리로 로딩함으로써, 이들 함수를 수행할 수 있다.
추가적으로, 시스템은 시스템의 다양한 컴포넌트들이 서로 통신할 수 하도록 구성되어, 시스템(1)의 하나 이상의 칩으로 하여금, 서열분석기(121), 컴퓨팅 리소스(100/300), 변환기(151), 분석기(152), 해석기(310), 협력기(320), 이들과 함께 포함된 다른 시스템 컴포넌트의 회로 보드와 인터페이스하여, FASTQ 및/또는 다른 생성 및/또는 프로세싱된 유전 서열 분석 파일들을 예컨대 일단 이들이 생성 및/또는 프로세싱된 즉시 서열분석기 또는 다른 프로세싱 컴포넌트로부터 직접 수신하고, 그 후 그 정보를 구성 관리자로 전송할 수 있게 하고, 구성 관리자는 그 후 그 정보를 하드웨어 및/또는 소프트웨어의 적합한 메모리 뱅크들에 보내고, 하드웨어 및/또는 소프트웨어는 그 정보가 하드웨어, 소프트웨어 및/또는 시스템 전체의 관련 모듈들에서 이용가능하게 만들어, 그들이 그 정보에 대해 자신의 지정된 함수들을 수행하여, 기준 게놈과 관련하여 샘플 DNA/RNA에 대해 염기들을 추출, 매핑, 정렬, 소팅 등을 하고/하거나 그에 대해 연관된 2차 및/또는 3차 프로세싱 연산들을 수행할 수 있게 한다.
따라서, 다양한 실시예들에서, 클라이언트 레벨 인터페이스(CLI)가 포함될 수 있으며, 여기서 CLI는 사용자가 이들 함수 중 하나 이상을 직접 호출하는 것을 허용할 수 있다. 다양한 실시예들에서, CLI는, 시스템의 하드웨어 및/또는 다양한 다른 소프트웨어 애플리케이션의 액세스 가능성 및/또는 이용을 구성하도록 적응되는, 예를 들어 GUI를 갖는 소프트웨어 애플리케이션일 수 있다. 따라서, CLI는 명령어들, 예를 들어 인수들(arguments)을 수용하고 단순히 애플리케이션 프로그램을 호출하여 기능성을 이용가능하게 만드는 프로그램일 수 있다. 위에 지적한 바와 같이, CLI는 커맨드 라인 기반 또는 GUI(그래픽 사용자 인터페이스) 기반일 수 있다. 라인 기반 커맨드는 GUI 아래의 레벨에서 발생하고, GUI는 어떤 모듈들, 어떤 파이프라인들, 어떤 계층들, 어떤 플랫폼들이 이용될 것인지 및 그들의 이용 파라미터를 기술하는 기능 박스에 대한 클릭을 갖는 윈도우 기반 파일 관리자를 포함한다. 예를 들어, 동작 시, 명령을 받으면, CLI는 기준을 찾고, 해시 테이블 및/또는 인덱스를 생성할 필요가 있는지를 결정하거나, 이미 생성된 경우 그것이 저장된 위치를 찾고, 생성된 해시 테이블 및/또는 인덱스 등의 업로드를 지시할 것이다. 이들 유형의 명령어들은 GUI에서 사용자가 연관된 칩(들)/시스템(1)을 선택하여 수행할 수 있는 사용자 옵션들로서 나타날 수 있다.
더욱이, 라이브러리가 포함될 수 있으며, 라이브러리는, 예컨대 개인의 의료 이력 및 조상 분석, 또는 질병 진단, 약물 발견, 치료, 및/또는 하나 이상의 다른 분석 등과 같은 다양한 분석을 위해 예컨대 전체 게놈 및/또는 단백질 분석과 관련하여, 하드웨어 및/또는 연관된 소프트웨어의 전형적 사용자 선택 기능에 지향된 파일들과 같은 기존의, 편집가능한 구성 파일을 포함할 수 있다. 이들 유형의 파라미터들은 예컨대 그러한 분석을 수행하기 위해 미리 설정될 수 있고 라이브러리에 저장될 수 있다. 예를 들어, 본 명세서에 설명된 플랫폼이 예컨대 집단적 레벨에서 NIPT, NICU, 암, LDT, AgBio, 및 관련 연구를 위해 이용되는 경우, 미리 설정된 파라미터들은 플랫폼이 단순히 개인 레벨에서, 게놈 및/또는 혈통 기반 연구를 연구하는 것에 관한 경우와는 상이하게 구성될 수 있다.
더 특정하게는, 개인의 특정 진단을 위해, 정확도가 중요한 인자일 수 있다. 따라서, 시스템의 파라미터들은 증가된 정확도를 보장하도록 설정될 수 있다(비록 그 대가로 아마도 속도가 감소되겠지만). 그러나, 다른 게놈학 애플리케이션들의 경우, 속도가 주요 결정 요인일 수 있고 따라서 시스템의 파라미터들은 속도를 최대화하도록 설정될 수 있지만, 이로 인해 일부 정확도가 희생될 수 있다. 따라서, 다양한 실시예들에서, 상이한 작업들을 수행하기 위해 종종 이용되는 파라미터 설정들은 이용 편의성을 용이하게 하기 위해 라이브러리에 미리 설정될 수 있다. 그러한 파라미터 설정들은 또한 시스템(1)을 실행하는 데 이용되는 필요한 소프트웨어 애플리케이션들 및/또는 하드웨어 구성들을 포함할 수 있다. 예를 들어, 라이브러리는 API를 실행하는 코드를 포함할 수 있으며, 샘플 파일, 스크립트 및 시스템(1)을 실행하는 데 필요한 임의의 다른 보조 정보를 추가로 포함할 수 있다. 그러므로, 라이브러리는 다양한 실행파일들뿐만 아니라 API를 실행하기 위한 소프트웨어를 컴파일하도록 구성될 수 있다.
추가적으로, 도 42c 내지 도 43과 관련하여 알 수 있는 바와 같이, 시스템은 시스템 컴포넌트들 중 하나 이상이 원격으로 수행될 수 있도록 구성될 수 있으며, 예컨대 이 경우 시스템 컴포넌트는 해석 기능(310) 및/또는 협력 기능(320)과 같은 데이터에 대한 하나 이상의 비교 기능들을 실행하도록 적응된다. 예를 들어, 해석 프로토콜이 데이터에 이용되는 경우, 해석 프로토콜(312)은 데이터를 분석하여 그에 대한 결론을 도출하고/하거나 그에 대한 다양한 관계들을 결정하도록 구성될 수 있으며, 하나 이상의 다른 분석 프로토콜들이 또한 수행될 수 있는데, 이는 하나 이상의 바이오마커(314)의 존재 또는 부재를 결정하기 위해 데이터에 주석을 하는 것(311), 데이터에 대한 진단을 수행하는 것(313) 및/또는 데이터를 분석하는 것을 포함할 수 있다.
지적한 바와 같이, 이들 기능들 중 하나 이상은 WMS에 의해 지시될 수 있고, 및/또는 본 명세서에 개시된 A/I 모듈에 의해 수행될 수 있다.
추가적으로, 협력 프로토콜이 수행되는 경우, 시스템(1)은 데이터 공유(321)가 발생할 수 있는 전자 포럼을 제공하도록 구성될 수 있으며, 데이터 공유 프로토콜은, 데이터의 아이덴티티 및 소스가 시스템(1)의 사용자로부터 은닉될 수 있도록 데이터가 암호화 및/또는 패스워드 보호될 수 있게 하는 사용자 선택가능한 보안(324) 및/또는 프라이버시(322) 설정들을 포함할 수 있다. 특정한 경우들에서, 시스템(1)은 제3자 분석기(121)가 데이터에 대한 가상 시뮬레이션을 실행하는 것을 허용하도록 구성될 수 있다. 게다가, 생성된 것, 해석된 데이터 및/또는 하나 이상의 협력 분석들을 겪은 데이터는, 예컨대 추가 프로세싱 및/또는 분석을 위해 원격(300) 또는 로컬(100) 컴퓨팅 리소스에 이용가능하게 되도록 원격으로(400) 또는 로컬로(200) 저장될 수 있다.
다른 양태에서, 도 44와 관련하여 알 수 있는 바와 같이, 하나 이상의 2차 및/또는 3차 프로세싱 프로토콜들이 실행될 수 있는 하나 이상의 데이터 파일을 생성하기 위해 시스템을 이용하는 방법이 제공된다. 예를 들어, 이 방법은 온사이트, 클라우드 기반 및/또는 하이브리드 게놈 및/또는 생물정보학 생성 및/또는 프로세싱 및/또는 분석 중 하나 이상을 위한 게놈 인프라스트럭처를 제공하는 단계를 포함할 수 있다.
그러한 경우에, 게놈 인프라스트럭처는, 예컨대 관심 있는 게놈 서열 또는 그에 속하는 프로세싱된 결과 데이터와 같은 데이터에 대해 하나 이상의 분석 프로세싱 함수들을 수행할 수 있도록 시스템을 구성하기 위한 하나 이상의 구성가능한 프로세싱 구조들을 저장하도록 구성되는 하나 이상의 메모리를 갖는 생물정보학 프로세싱 플랫폼을 포함할 수 있다. 이 메모리는 프로세싱될 관심 있는 게놈 서열, 예컨대, 일단 생성 및/또는 취득되면, 하나 이상의 유전 기준 서열을 포함할 수 있고/있거나, 하나 이상의 유전 기준 서열의 인덱스 및/또는 그에 관한 스플라이스 접합들의 리스트를 추가적으로 포함할 수 있다. 시스템은 또한, 예를 들어 관심 있는 프리프로세싱되거나 프로세싱된 게놈 서열들과 같은 데이터에 대해 시스템의 어떤 프로세싱 함수들이 실행될 것인지를 선택함으로써 예컨대 시스템을 구성하기 위한 구성가능한 프로세싱 구조들 중 하나 이상을 옵션들의 리스트로부터 선택하는 플랫폼 애플리케이션 프로그래밍 인터페이스(API)를 갖는 입력을 포함할 수 있다. 이용가능한 옵션들 중에서 데이터에 대해 실행되길 원하는 것을 사용자가 선택할 수 있는 메뉴를 제시하기 위해, 예컨대 API와 동작가능하게 연관되는 그래픽 사용자 인터페이스(GUI)가 또한 존재할 수 있다.
그러므로, 이들 및/또는 다른 그러한 경우들에서, 하이브리드 클라우드(50)는 시스템의 컴포넌트들 전체에 걸쳐 데이터의 심리스한 및 보호된 전송을 가능하게 하도록 구성될 수 있고, 예컨대 이 경우 하이브리드 클라우드(50)는, 사용자의 검색, 진단, 치료 및/또는 예방 발견 및/또는 개발 요구를 충족시키도록, 시스템의 다양한 사용자들이 그의 컴포넌트 부분들 및/또는 시스템 자체를, 예를 들어, WMS를 통해 구성할 수 있게 하도록 적응된다. 특정하게는, 하이브리드 클라우드(50) 및/또는 시스템(1)의 다양한 컴포넌트들은, 보안된, 암호화가능 환경에서 통신 가능하게 되는 모든 기간 동안에, 예컨대 시스템의 요구 및 수행되는 분석들의 특정한 사항들에 기초하여, 원하는 방식으로 원하는 리소스들을 배치하도록, 그리고 추가로 로컬로, 원격으로, 또는 그 조합으로 그렇게 행하도록, 사용자가 시스템(1)의 다양한 컴포넌트들을 원격으로 구성할 수 있게 하도록 적응되는 호환가능 및/또는 대응하는 API 인터페이스들과 동작가능하게 연결될 수 있다.
위에 설명된 바와 같이, 시스템은, 복수의 물리적 전기적 인터커넥트들에 의해 상호접속될 수 있는 구성가능한, 예를 들어, 미리 구성된 및/또는 하드와이어드의 디지털 로직 회로들의 하나 이상의 세트로 형성될 수 있는 하나 이상의 집적 회로 상에서 구현될 수 있다. 그러한 경우에, 집적 회로는 예를 들어 메모리로부터 하나 또는 복수의 구성가능한 구조 프로토콜을 수신하기 위해 메모리 인터페이스와 같은 입력을 가질 수 있고, 또한 구성가능한 프로세싱 구조 프로토콜들에 따라 하나 이상의 구조를 집적 회로 상에 구현하도록 적응될 수 있다. 입력의 메모리 인터페이스는 또한 복수의 게놈 데이터의 판독의 형태일 수 있는 게놈 서열 데이터를 수신하도록 구성될 수 있다. 이 인터페이스는 또한 하나 이상의 유전 기준 서열 및 인덱스(들)에 액세스하도록 적응될 수 있다.
다양한 경우들에서, 디지털 로직 회로들은 디지털 로직 회로들의 서브세트로 각각 형성되는 프로세싱 엔진들의 세트로서 배열될 수 있다. 디지털 로직 회로들 및/또는 프로세싱 엔진들은, 1차, 2차, 및/또는 3차 프로세싱 프로토콜의 하나 이상의 미리 구성가능한 단계를 수행하여 게놈 서열 데이터의 복수의 판독을 생성하고/하거나, 예컨대 유전 기준 서열(들) 또는 다른 유전 서열 유도 정보에 따라 복수의 게놈 데이터의 판독을 프로세싱하도록 구성될 수 있다. 집적 회로는 또한, 예컨대 플랫폼 애플리케이션 프로그래밍 인터페이스(API)에 따라, 1차, 2차, 및/또는 3차 프로세싱으로부터 결과 데이터를 출력하기 위해 출력을 가질 수 있다.
특정하게는, 다양한 실시예들에서, 디지털 로직 회로들 및/또는 프로세싱 엔진들의 세트들은 복수의 게놈학 프로세싱 파이프라인을 형성할 수 있는데, 예컨대 이 경우 각각의 파이프라인은 생물정보학 프로세싱 플랫폼에 의한 1차 및/또는 2차 프로세싱으로부터 결과 데이터를 수신하고 그에 대해 하나 이상의 분석 프로세스를 수행하여 결과 데이터를 생성하기 위해 플랫폼 애플리케이션 프로그래밍 인터페이스에 의해 정의되는 입력을 가질 수 있다. 추가적으로, 복수의 게놈학 프로세싱 파이프라인은 1차 및/또는 2차 프로세싱된 데이터로부터의 결과 데이터에 대해 실행될 2차 및/또는 3차 프로세싱 연산을 정의하는 공통 파이프라인 API를 가질 수 있는데, 예컨대 이 경우 복수의 프로세싱 파이프라인 각각은 2차 및/또는 3차 프로세싱 연산들의 서브세트를 수행하고 파이프라인 API에 따라 2차 및/또는 3차 프로세싱의 결과 데이터를 출력하도록 구성된다.
그러한 경우들에서, 복수의 게놈 분석 애플리케이션은 메모리 및/또는 연관된 검색가능 애플리케이션 리포지토리에 저장될 수 있는데, 예컨대 이 경우 복수의 게놈 분석 애플리케이션 각각은, 예컨대 복수의 게놈학 프로세싱 파이프라인 중 하나 이상에 의한 1차, 2차, 및/또는 3차 프로세싱의 결과 데이터로부터 프리프로세싱 또는 포스트 프로세싱된 게놈 데이터의 타겟팅된 분석을 수행하기 위한 예컨대 컴퓨터 프로세서에 의한 실행을 위해 컴퓨터에 의해 전자 매체를 통해 액세스 가능하다. 특정한 경우들에서, 복수의 게놈 분석 애플리케이션 각각은 API에 의해 정의될 수 있고, 1차, 2차, 및/또는 3차 프로세싱의 결과 데이터를 수신하고/하거나, 프리프로세싱되거나 포스트 프로세싱된 게놈 데이터의 타겟팅된 분석을 수행하고, 타겟팅된 분석으로부터의 결과 데이터를 하나 이상의 게놈 데이터베이스 중 하나에 출력하도록 구성될 수 있다.
이 방법은, 예를 들어, GUI의 메뉴로부터, 시스템의 복수의 이용가능한 게놈 프로세싱 파이프라인 중 하나 이상의 게놈 프로세싱 파이프라인을 선택하는 단계; 애플리케이션 리포지토리에 저장되는 복수의 게놈 분석 애플리케이션 중 하나 이상의 게놈 분석 애플리케이션을 선택하는 단계; 및 컴퓨터 프로세서를 이용하여, 하나 이상의 선택된 게놈 분석 애플리케이션을 실행하여 1차, 2차, 및/또는 3차 프로세싱의 결과 데이터로부터 게놈 데이터의 타겟팅된 분석을 수행하는 단계를 추가적으로 포함할 수 있다.
추가적으로, 다양한 실시예들에서, 매핑, 정렬, 및 소팅, 및 변이 추출 모두는 칩 상에서 행해질 수 있고, 다양한 실시예들에서, 로컬 재정렬, 중복 마킹, 염기 품질 스코어 재측정 및/또는 3차 프로세싱 프로토콜들 및/또는 파이프라인들 중 하나 이상도 또한 칩 상에서 또는 소프트웨어로 행해질 수 있고, 다양한 경우들에서, SAM 및/또는 BAM 및/또는 CRAM과 같은 다양한 압축 프로토콜들도 또한 칩 상에서 행해질 수 있다. 그러나, 일단 1차, 2차, 및/또는 3차 프로세싱된 데이터가 생성되면, 그것은 예컨대 전송되기 전에, 예컨대 시스템을 가로질러 전송되고, 예컨대 변이 추출 모듈, 2차, 3차, 및/또는 예컨대 해석 및/또는 협력 분석 프로토콜을 포함하는 다른 프로세싱 플랫폼의 수행을 위해 클라우드로 전송되기 전에 압축될 수 있다. 이는 3차 프로세싱을 포함하는 변이 추출이 예를 들어 업계에서 이용하는 하나의 표준화된 합의 알고리즘이 없는 이동 타겟일 수 있다는 사실을 고려할 때 특히 유용할 수 있다.
그러므로, 예컨대 원격 사용자들에 의해, 원하는 대로 상이한 유형의 결과를 달성하기 위해 상이한 알고리즘들이 이용될 수 있으며, 이에 따라 이 함수의 수행을 위한 클라우드 기반 모듈을 갖는 것은 임의의 특정한 주어진 순간에 어떤 알고리즘이 유용한지를 선택하는 유연성을 허용하고, 또한 직렬 및/또는 병렬 프로세싱을 허용하기 위해 유용할 수 있다. 따라서, 본 명세서에 개시된 모듈들 중 어느 하나는 예를 들어 칩 상에서 하드웨어로서 구현되거나 예를 들어 클라우드 상에서 소프트웨어로서 구현될 수 있지만, 특정 실시예들에서는, 칩 상에서 그들의 함수를 수행할 수 있도록 모든 모듈들을 구성할 수 있거나, 예컨대 클라우드 상에서 원격으로 그들의 함수를 수행할 수 있도록 모든 모듈들을 구성할 수 있거나, 또는 일부는 하나 이상의 칩 상에 위치되고 일부는 클라우드 상에 위치되는 모듈들의 혼합이 존재할 것이다. 게다가, 지적한 바와 같이, 다양한 실시예들에서, 칩(들) 자체는 NGS 및/또는 서열분석기 칩과 같은 유전 서열분석기와 함께, 그리고 일부 실시예들에서는 그와 즉시 동작하여 기능하도록 구성될 수 있다.
더 구체적으로는, 다양한 실시예들에서, 본 개시내용의 장치는 예컨대 데이터 분석 모듈들의 파이프라인을 이용하여 게놈 데이터를 프로세싱하도록 구성되는 칩과 같은 칩일 수 있다. 따라서, 도 45와 관련하여 알 수 있는 바와 같이, 게놈학 파이프라인 프로세서 칩(100)은 게놈학 파이프라인 프로세서 시스템(10)의 연관된 하드웨어와 함께 제공된다. 칩(100)은 외부 메모리(102)("DDR3 메모리 컨트롤러"에서)에 대한 하나 이상의 연결 및 예를 들어 호스트 컴퓨터(1000)와 같은 외부 세계에 대한 연결(104)(예컨대, PCIe 또는 QPI 인터페이스)를 갖는다. 크로스바(108)(예를 들어, 스위치)는 다양한 요청자들에게 메모리 인터페이스들에 대한 액세스를 제공한다. DMA 엔진들(110)은 호스트와 프로세서 칩(100)의 외부 메모리들(102) 사이에서(크로스바(108)를 통해) 및/또는 호스트와 중앙 컨트롤러(112) 사이에서 고속으로 데이터를 전송한다. 중앙 컨트롤러(112)는 칩 동작들을 제어하는데, 특히 다수의 프로세싱 엔진들(13)의 노력들을 조정한다. 프로세싱 엔진들은 물리적 전기적 인터커넥트들에 의해 상호접속되는 하드와이어드 디지털 로직 회로들의 세트로 형성되고, 엔진 클러스터들(11/114)로 조직된다. 일부 구현들에서, 하나의 클러스터(11/114) 내의 엔진들(13)은 아비터(115)를 통해 하나의 크로스바 포트를 공유한다. 중앙 컨트롤러(112)는 엔진 클러스터들 각각에 대한 연결들을 갖는다. 각각의 엔진 클러스터(11/114)는 매핑기(120)(또는 매핑 모듈), 정렬기(122)(또는 정렬 모듈), 및 소팅기(124)(또는 소팅 모듈)를 포함하는, 게놈 데이터를 프로세싱하기 위한 다수의 프로세싱 엔진(13)을 가지며, 변이 추출과 같은 다른 함수들의 수행을 위한 하나 이상의 프로세싱 엔진이 또한 제공될 수 있다. 그러므로, 엔진 클러스터(11/114)는 변이 추출기 모듈과 같은 다른 엔진들 또는 모듈들도 또한 포함할 수 있다.
본 명세서에 설명된 구현들과 일관되는 하나의 데이터 흐름 모델에 따라, 호스트 CPU(1000)는 DMA 엔진들(110)을 통해 커맨드들 및 데이터를 중앙 컨트롤러(112)에 전송하며, 중앙 컨트롤러(112)는 데이터를 프로세싱 엔진들(13)에 로드 밸런싱한다. 프로세싱 엔진들은 프로세싱된 데이터를 중앙 컨트롤러(112)로 반환하며, 중앙 컨트롤러(112)는 이를 다시 DMA 엔진들(110)을 통해 호스트로 스트리밍한다. 이 데이터 흐름 모델은 매핑 및 정렬 및 변이 추출에 적합하다. 지적한 바와 같이, 다양한 경우들에서, 호스트 CPU와의 통신은, 예컨대 2개 이상의 디바이스의 연관된 메모리 요소 사이에 캐시 일관성을 유지하기 위해, 낮은 레이턴시, 높은 대역폭 인터커넥트, 예컨대 QPI와 같은 비교적 느슨한 또는 타이트한 결합을 통해 이루어질 수 있다.
예를 들어, 다양한 경우들에서, 다양한 전력 및/또는 공간 제약으로 인해, 예컨대 본 명세서에 설명된 하이브리드 소프트웨어/하드웨어 가속 환경에서 매핑/정렬/변이 추출과 같은 빅 데이터 분석을 수행하는 경우, 시스템 디바이스들 사이에 데이터가 빠르게 그리고 심리스하게 이동될 필요가 있는 경우, 결합된 디바이스들과의 사이에, 예컨대 서열분석기, DSP(디지털 신호 프로세서), CPU 및/또는 GPU 또는 및/또는 CPU/GPU 하이브리드, 가속된 집적 회로, 예를 들어, FPGA, ASIC(네트워크 카드 상의)뿐만 아니라, 다른 스마트 네트워크 가속기들과의 사이에, 빠르고 캐시-일관성 있는 방식으로 시스템 전체에 걸쳐 그러한 데이터 전송을 수행하기 위해 캐시 일관성 있는 타이트한 결합 인터페이스가 유용할 수 있다. 그러한 경우들에서, 적합한 캐시 일관성 있는 타이트-결합 인터커넥트는, 예컨대 상이한 명령어 세트 아키텍처들(ISA)을 사용한, 다수의 프로세싱 플랫폼들 사이의 프로세싱이 상이한 플랫폼들 사이에 및/또는 예를 들어 하드와이어드 FPGA 구현 가속기와 같은 하나 이상의 연관된 가속기와 함께 데이터를 일관성 있게 공유하여 효율적인 이종 컴퓨팅을 가능하게 하고, 그에 의해, 다양한 경우들에서 클라우드 기반 서버 시스템으로서 구성될 수 있는 시스템의 컴퓨팅 효율성을 상당히 개선하는 것을 보장하도록 구성되는 단일 인터커넥트 기술 사양 중 하나 이상일 수 있다. 그러므로, 특정 경우들에서, QPI, 일관성 있는 프로세서 가속기 인터페이스 CAPI, NVLink/GPU, 또는 다른 적합한 인터커넥트 프로토콜과 같은 높은 대역폭, 낮은 레이턴시, 캐시 일관성 있는 인터커넥트 프로토콜을 이용하여, 예컨대 그 기능이, 프로세싱될 다양한 데이터가 시스템 내의 어디에 존재하든 관계없이 다양한 시스템 컴포넌트들 사이에 심리스하게 데이터에 액세스하고, 이를 프로세싱하고, 이동시킬 필요를 요구하는 가속 엔진들의 사용을 수반할 수 있는 매핑, 정렬, 및/또는 변이 추출 계산 함수들에 관한, 시스템의 다양한 컴포넌트들 사이의 다양한 데이터 전송들을 촉진시킬 수 있다. 그리고, 그러한 데이터가 RAM 또는 DRAM과 같은 연관된 메모리 디바이스 내에 유지되는 경우, 전송 활동들은 촉진되고 일관성 있는 검색 및 메모리 내 데이터베이스 프로세싱을 추가로 수반할 수 있다.
특정하게는, 특정한 실시예들에서, 그러한 이종 컴퓨팅은 감소된 명령 세트 컴퓨팅 형식으로 상호접속될 수 있는 다수의 프로세싱 및/또는 가속 아키텍처들을 포함할 수 있다. 그러한 경우에, 그러한 인터커넥트 디바이스는, 시스템 내의 모든 컴퓨팅 컴포넌트가 단일의 일관되고, 일관성 있는 방식으로 하나 이상의 연관된 메모리에 어드레싱, 판독, 및/또는 기입하는 것을 허용하도록 구성되는 코히어런트 연결 인터커넥트 6(CCVI) 디바이스일 수 있다. 더 특정하게는, CPU 및/또는 GPU 또는 CPU/GPU 하이브리드, FPGA 및/또는 연관된 메모리들 등과 같은 시스템의 다양한 디바이스들을 서로, 예컨대 극도로 감소된 레이턴시 레이트들을 증가시키면서 다양한 컴포넌트들 사이의 전송 레이트들을 입증하면서 다양한 컴포넌트들 사이의 전송 레이트들을 증가시키도록 구성되는 높은 대역폭 방식으로, 연결하기 위해 CCVI 인터커넥트가 이용될 수 있다. 구체적으로는, 시스템의 컴포넌트들이 데이터가 어디에 존재하든 관계없이 데이터에 액세스하고 이를 프로세싱할 수 있게 하기 위해, 그리고 다른 경우라면 데이터를 일관성 있게 만들기 위해 구현될 필요가 있는 복잡한 프로그래밍 환경들에 대한 필요없이, CCVI 인터커넥트가 이용되고 구성될 수 있다. 가속화하고, 예를 들어, 프로세싱 시간을 감소시키고 정확도를 증가시키기 위해 이용될 수 있는 다른 그러한 인터커넥트들은 QPI, CAPI, NVLink, 또는 시스템의 다양한 컴포넌트들을 상호접속하고/하거나 연관된 PCI-익스프레스 주변 인터커넥트의 상부에 올라탈 수 있도록 구성될 수 있는 다른 인터커넥트를 포함한다.
그러므로, 본 명세서에 설명된 구현들과 일관되는 대안적 데이터 흐름 모델에 따라, 호스트 CPU(1000)는 DMA 엔진들(110) 및 크로스바(108)를 통해 직접, 또는 중앙 컨트롤러(112)를 통해 외부 메모리(1014)로 데이터를 스트리밍한다. 호스트 CPU(1000)는 중앙 컨트롤러(112)로 커맨드들을 전송하고, 중앙 컨트롤러(112)는 어떤 데이터를 프로세싱할지에 대해 프로세싱 엔진들에 지시하는 커맨드들을 프로세싱 엔진들(13)에 전송한다. 타이트한 결합 때문에, 프로세싱 엔진들(13)은 외부 메모리(1014) 또는 그와 연관된 캐시로부터 직접 입력 데이터를 액세스하고, 그것을 프로세싱하고, 결과들을 다시 외부 메모리(1014)에, 예컨대, 타이트하게 결합된 인터커넥트(3)를 통해 기입하여, 중앙 컨트롤러(112)에 상태를 보고한다. 중앙 컨트롤러(112)는 결과 데이터를 다시 외부 메모리(1014)로부터 호스트(1000)로 스트리밍하거나, DMA 엔진들(110)을 통해 결과 데이터 자체를 페칭하도록 호스트에 통지한다.
도 46은 엔진 클러스터(11/214) 내부의 프로세싱 엔진들(13)의 전체 정원을 나타내는, 게놈학 파이프라인 프로세서 및 시스템(20)을 예시한다. 파이프라인 프로세서 시스템(20)은 하나 이상의 엔진 클러스터(11/214)를 포함할 수 있다. 일부 구현들에서, 파이프라인 프로세서 시스템(20)은 4개 이상의 엔진 클러스터들(11/214)을 포함한다. 프로세싱 엔진들(13) 또는 프로세싱 엔진 유형들은 매핑기, 정렬기, 소팅기, 로컬 재정렬기, 염기 품질 재측정기, 중복 마커, 변이 추출기, 압축기 및/또는 압축해제기를 포함할 수 있지만 이에 제한되지는 않는다. 일부 구현들에서, 각각의 엔진 클러스터(11/214)는 각각의 프로세싱 엔진 유형의 엔진을 갖는다. 따라서, 동일한 유형의 모든 프로세싱 엔진들(13)은 상이한 크로스바 포트들을 통해 동시에 크로스바(208)에 액세스할 수 있는데, 그 이유는 이들이 각각 상이한 엔진 클러스터(11/214)에 있기 때문이다. 반드시 모든 프로세싱 엔진 유형이 모든 엔진 클러스터(11/214)에 형성될 필요는 없다. 매핑기(및 부착된 정렬기(들)) 및 소팅기와 같이 대규모 병렬 프로세싱 또는 메모리 대역폭을 필요로 하는 프로세싱 엔진 유형들은 파이프라인 프로세서 시스템(20)의 모든 엔진 클러스터에 나타날 수 있다. 다른 엔진 유형들은 그것들의 성능 요건 또는 파이프라인 프로세서 시스템(20)의 성능 요건을 충족시키기 위해 필요에 따라 엔진 클러스터들(214) 중 하나 또는 일부에만 나타날 수 있다.
도 47은 위에 설명된 엔진 클러스터들(11)에 추가하여, 하나 이상의 내장된 중앙 프로세싱 유닛들(CPU들)(302)을 보여주는 게놈학 파이프라인 프로세서 시스템(30)을 예시한다. 그러한 내장된 CPU들의 예들은 스냅드래곤® 또는 표준 ARM®코어들을 포함하거나, 다른 경우들에서는 FPGA일 수 있다. 이들 CPU는, DBG의 구축 또는 HMM의 수행과 같은, 진보된 변이 추출과 같은 완전히 프로그래밍 가능한 bio-IT 알고리즘들을 실행한다. 그러한 프로세싱은 필요에 따라 CPU 코어들(302)에 의해 호출될 수 있는 다양한 엔진 클러스터들(11)에서의 컴퓨팅 함수들에 의해 가속된다. 더욱이, 매핑 및 정렬과 같은 엔진 중심적 프로세싱조차도 CPU 코어들(302)에 의해 관리될 수 있어, 프로그램 가능성이 향상된다.
도 48은 게놈학 파이프라인 프로세서 시스템 및 방법에 대한 프로세싱 흐름을 예시한다. 일부 바람직한 구현들에서는, 데이터에 대한 3개의 패스가 존재한다. 제1 패스는 엔진들(13)을 통해 스트리밍된 전체 판독 세트를 사용하는 매핑(402) 및 정렬(404)을 포함한다. 제2 패스는 소팅(406)을 포함하는데, 여기서는 소팅될 하나의 큰 블록(예컨대, 이전에 단일 염색체에 매핑된 상당 부분 또는 모든 판독들)이 메모리에 로딩되고, 프로세싱 엔진에 의해 소팅되고, 호스트로 반환된다. 제3 패스는 다운스트림 스테이지들(로컬 재정렬(408), 중복 마킹(410), 염기 품질 스코어 재측정(BQSR)(412), SAM 출력(414), 감소된 BAM 출력(416), 및/또는 CRAM 압축(418))을 포함한다. 제3 패스의 단계들 및 함수들은 임의의 조합 또는 부조합으로, 임의의 순서로, 단일 패스로 수행될 수 있다.
그러므로, 이러한 방식으로 데이터는 하나 이상의 프로세싱 엔진으로부터 비교적 심리스하게, 예컨대 본 명세서에 설명된 방법들 중 하나 이상에 따라 호스트 CPU에 전달된다. 그러므로, 위에 설명된 것과 같은 가상 파이프라인 아키텍처가 판독들을 호스트로부터 메모리의 순환 버퍼들로, 순차적으로 하나씩 프로세싱 엔진을 통해, 다시 호스트로 다시 스트리밍하는 데 이용된다. 일부 구현들에서, CRAM 압축해제는 별개의 스트리밍 기능일 수 있다. 일부 구현들에서, SAM 출력(414), 감소된 BAM 출력(416), 및/또는 CRAM 압축(418)은 변이 추출, 압축 및 압축해제로 대체될 수 있다.
다양한 경우들에서, 서열 분석 파이프라인의 하드웨어 구현이 설명된다. 이는 FPGA 또는 ASIC 또는 구조화된 ASIC 구현과 같은 다수의 상이한 방식들로 행해질 수 있다. FPGA 또는 ASIC 또는 구조화된 ASIC에 의해 구현되는 기능 블록들은 도 49에 제시된다. 따라서, 시스템은 서열 분석을 행하기 위한 다수의 블록들 또는 모듈들을 포함한다. 하드웨어 실현에 대한 입력은 FASTQ 파일일 수 있지만, 이 형식으로 제한되지는 않는다. FASTQ 파일에 추가하여, FPGA 또는 ASIC 또는 구조화된 ASIC에 대한 입력은 NGS와 같은 기술로부터의 플로우 스페이스 정보(Flow Space Information)와 같은 사이드 정보로 구성된다. 블록들 또는 모듈들은 다음의 블록들: 오류 제어, 매핑, 정렬, 소팅, 로컬 재정렬, 중복 마킹, 염기 품질 재측정, BAM 및 사이드 정보 감소 및/또는 변이 추출을 포함할 수 있다.
이들 블록 또는 모듈은 하드웨어 내부에 존재할 수 있거나 하드웨어에 의해 구현될 수 있지만, 서열 분석 파이프라인을 실현하는 목적을 달성하기 위해 이들 블록들 중 일부가 생략되거나 다른 블록들이 추가될 수 있다. 블록 2와 블록 3은 서열 분석 파이프라인 플랫폼의 2개의 대안을 설명한다. 서열 분석 파이프라인 플랫폼은 클라우드 및/또는 클러스터 저장을 갖는 호스트(즉, PC, 서버, 클러스터 또는 클라우드 컴퓨팅)에 의해 보조되는 소프트웨어 및 FPGA 또는 ASIC 또는 구조화된 ASIC를 포함한다. 블록 4 내지 블록 7은 서열 분석 파이프라인이 가질 수 있는 다양한 인터페이스들을 설명한다. 블록 4 및 블록 6에서 인터페이스는 PCIe 및/또는 QPI/CAPI/CCVI/NVLink 인터페이스일 수 있지만, PCIe, QPI, 또는 다른 인터페이스로 제한되지 않는다. 블록 5 및 블록 7에서 하드웨어(FPGA 또는 ASIC 또는 구조화된 ASIC)는 서열분석 머신에 직접 통합될 수 있다. 블록 8 및 블록 9는 PC, 서버 클러스터 또는 서열분석기와 같은 호스트 시스템에 통합된 하드웨어 서열 분석 파이프라인의 통합을 설명한다. 하드웨어 FPGA 또는 ASIC 또는 구조화된 ASIC 주위에 복수의 DDR3 메모리 요소들과 PCIe/QPI/CAPI/CCVI/NVLink 인터페이스가 있다. FPGA/ASIC/sASIC를 갖는 보드는 ARM®, 스냅드래곤®과 같은 저전력 CPU 또는 임의의 다른 프로세서가 될 수 있는 호스트 CPU 및/또는 GPU로 구성되는 호스트 컴퓨터에 연결된다. 블록 10은 3차 분석을 수행하기 위해 제3자 애플리케이션들에 의해 액세스될 수 있는 하드웨어 서열 분석 파이프라인 API를 예시한다.
도 50a 및 도 50b는 본 개시내용의 프로세싱 칩(100), 예를 들어, FPGA를 갖는 확장 카드(104)뿐만 아니라, 예컨대 프로세싱될 데이터 및 결과 데이터와 같은 데이터를 CPU/GPU로부터 FPGA(100)로 앞뒤로 전송하기 위한, 호스트 CPU/GPU와 FPGA(100)를 결합하기 위한 하나 이상의 연관된 요소(105)를 도시한다. 도 50b는 본 개시내용의 복수의, 예를 들어 3개의 프로세싱 칩을 포함하는 복수의, 예를 들어 3개의 슬롯을 갖는 도 50a의 확장 카드를 도시한다.
구체적으로는, 도 50a 및 도 50b에 도시된 바와 같이, 다양한 실시예들에서, 본 개시내용의 장치는 실리콘 필드 프로그래머블 게이트 어레이(FPGA) 또는 애플리케이션 특정 집적 회로(ASIC)(100)에 내장된 것과 같은 컴퓨팅 아키텍처를 포함할 수 있다. FPGA(100)는 컴퓨팅 플랫폼에 플러그인될 수 있는 주변 컴포넌트 인터페이스 - 익스플레스(PCIe) 카드와 같은 인쇄 회로 보드(PCB)(104)에 통합될 수 있다. 다양한 경우들에서, 도 50a에 도시된 바와 같이, PCIe 카드(104)는 단일 FPGA(100)를 포함할 수 있고, 이 FPGA는 로컬 메모리들(105)에 의해 둘러싸일 수 있지만, 다양한 실시예들에서, 도 50b에 도시된 바와 같이, PCIe 카드(104)는 복수의 FPGA(100A, 100B 및 100C)를 포함할 수 있다. 다양한 경우들에서, PCI 카드는 PCIe 버스를 포함할 수 있다. 이 PCIe 카드(104)는 컴퓨팅 플랫폼에 추가되어 극도로 큰 데이터 세트들에 대해 알고리즘을 실행할 수 있다. 대안적인 실시예에서, 도 34와 관련하여 위에 언급된 바와 같이, 다양한 실시예들에서, FPGA는, 예컨대 인터로퍼를 통해, CPU/GPU와 직접 연관되고, 예컨대 QPI, CAPI, CCVI 인터페이스를 통해, 그와 타이트하게 결합되도록 적응될 수 있다. 따라서, 다양한 경우들에서, FPGA를 수반하는 게놈 서열 분석의 전체 워크플로우는 다음을 포함할 수 있다: 샘플 준비, 정렬(매핑 및 정렬을 포함함), 변이 분석, 생물학적 해석, 및/또는 특정 애플리케이션.
그러므로, 다양한 실시예들에서, 본 개시내용의 장치는, 극도로 큰 데이터 세트들에 대해 작용하는 매핑 및 정렬 알고리즘들과 같은 알고리즘들의 고성능 실행을 달성하는 컴퓨팅 아키텍처를 포함할 수 있고, 예컨대 이 경우 데이터 세트들은 열악한 참조 지역성(locality of reference: LOR)을 나타낸다. 이들 알고리즘은 현대의 소위 차세대 서열분석기로부터의 수백만 개의 짧은 판독 서열들로부터 전체 게놈을 재구성하도록 설계되며, 랜덤하게 액세스되는 멀티 기가바이트 데이터 구조들을 필요로 한다. 일단 재구성이 달성되면, 위에 본 명세서에 설명된 바와 같이, 유사한 특성들을 갖는 추가의 알고리즘들을 이용하여 하나의 게놈을 다른 것들의 라이브러리와 비교하고, 유전자 기능 분석 등을 수행한다.
목적 멀티코어 CPU들 및 범용 그래픽 프로세싱 유닛(GPGPU)들을 포함하는 것과 같이, 상세히 본 명세서에 설명된 동작들 중 하나 이상의 수행을 위해 일반적으로 구성될 수 있는 2개의 다른 전형적인 아키텍처가 존재한다. 그러한 경우에, 멀티코어 시스템의 각각의 CPU/GPU는 고전적인 캐시 기반 아키텍처를 가질 수 있는데, 여기서 명령어들 및 데이터는 작지만 극도로 빠른 액세스를 갖는 레벨 1 캐시(L1 캐시)로부터 페칭된다. 다수의 L1 캐시들은 더 크지만 더 느린 공유 L2 캐시에 연결될 수 있다. L2 캐시는 큰 크지만 더 느린 DRAM(동적 랜덤 액세스 메모리) 시스템 메모리에 연결될 수 있거나, 훨씬 더 크지만 더 느린, 이후 DRAM에 연결될 수 있는 L3 캐시에 연결될 수 있다. 이 배열의 이점은 프로그램들 및 데이터가 참조 지역성을 나타내는 애플리케이션들은 거의 마치 이들이 DRAM만큼 크지만 L1 캐시만큼 빠른 단일 메모리를 갖는 컴퓨터 상에서 실행되는 것처럼 거동한다는 점일 수 있다. 완전 맞춤형의 고도로 최적화된 CPU들은 예를 들어 2 내지 4GHz와 같은 매우 높은 클록 레이트로 동작하기 때문에, 이 아키텍처는 양호한 성능을 달성하는 데 필수적일 수 있다. 추가적으로, 도 33과 관련하여 상세히 논의된 바와 같이, 다양한 실시예들에서, CPU는 시스템 전체에 걸쳐 전송된 데이터의 속도 및 일관성뿐만 아니라 성능을 더 향상시키기 위해 예컨대 QPI, CCVI, CAPI와 같은 높은 대역폭, 낮은 레이턴시 인터커넥트를 통해, 본 명세서에 설명된 다양한 연산들에 관련된 하나 이상의 함수를 실행하도록 구성된 FPGA와 같은 FPGA에 타이트하게 결합될 수 있다. 그러한 경우에, 위에 언급된 바와 같이, 2개의 디바이스 사이에 캐시 일관성이 유지될 수 있다.
게다가, 예컨대 그들 자신의 작은 L1 캐시를 각각 갖는 매우 많은 수의 작은 CPU들을 구현함으로써 이 아키텍처를 확장하기 위해 GPGPU들이 이용될 수 있는데, 여기서 각각의 CPU는 데이터의 상이한 서브세트들에 대해 동일한 명령어들을 실행한다. 이는 소위 SIMD(Single Instruction stream, Multiple Data stream) 아키텍처이다. 많은 수의 CPU들에 걸쳐 명령어 페치 및 디코드 로직을 공유함으로써 경제성이 얻어질 수 있다. 각각의 캐시는 상호접속 네트워크를 통해 다수의 큰 외부 DRAM들에 액세스할 수 있다. 수행될 계산이 고도로 병렬화될 수 있다고 가정하면, GPGPU들은 많은 수의 컴퓨팅 리소스를 가지고 있음으로 인해 범용 CPU들에 비해 상당한 이점을 갖는다. 그럼에도 불구하고, 그들은 여전히 캐싱 아키텍처를 가지고 있으며, 그들의 성능은 충분히 높은 정도의 참조 지역성을 갖지 않는 애플리케이션들에 의해 손상된다. 그로 인해 높은 캐시 미스 레이트 및 외부 DRAM에서 데이터가 도착하기를 기다리는 동안 유휴 상태인 프로세서들이 야기된다.
예를 들어, 다양한 경우들에서, 동적 RAM들이 시스템 메모리에 이용될 수 있는데 그 이유는 이들이 정적 RAM(SRAM)들보다 더 경제적이기 때문이다. 경험 법칙은 DRAM들이 SRAM들과 동일한 비용에 대해 4x 용량을 가졌다는 것이다. 그러나, DRAM들에 선호하여 SRAM들에 대한 수요가 감소함으로 인해, 그 차이는 높은 수요에 있는 DRAM들을 선호하는 규모의 경제성으로 인해 상당히 증가하였다. 비용과는 별개로, DRAM들은 동일한 실리콘 영역에 배치된 SRAM들보다 4x 조밀한데 그 이유는 이들이 SRAM의 플립-플롭을 구현하기 위한 비트당 4개의 트랜지스터와 비교하여 비트당 하나의 트랜지스터 및 커패시터만을 필요로 하기 때문이다. DRAM은 커패시터 상의 전하의 존재 또는 부재로서 단일 비트의 정보를 표현한다.
이러한 배열의 문제점은 전하가 시간이 지남에 따라 감소하므로 주기적으로 리프레시되어야 한다는 것이다. 이를 수행할 필요성은, 메모리를 독립적인 블록들로 조직하고 요청마다 메모리의 다수의 워드들을 전달하는 메커니즘들에 액세스하는 아키텍처를 초래했다. 이는 주어진 블록이 리프레시되는 동안 이용불가능한 시간들을 보상할 수 있다. 아이디어는 주어진 블록이 이용가능한 동안 많은 데이터를 이동시키는 것이다. 이는 일정한 양의 시간에 단일 액세스로 메모리의 임의의 위치가 이용가능한 SRAM들과는 대조적이다. 이 특성은 메모리 액세스가 블록 지향적이기보다는 단일 워드 지향적이 될 수 있게 한다. DRAM들은 캐싱 아키텍처에서 잘 작동하는데, 그 이유는 각각의 캐시 미스가 메모리의 블록이 DRAM으로부터 판독되는 것으로 이어지기 때문이다. 참조 지역성의 이론은 단지 워드 N에 액세스하면, 아마도 워드 N+1, N+2, N+3, 및 기타 등등에 곧 액세스하게 된다는 것이다.
도 51은 생물정보학 프로세싱(10)을 위한 것과 같은, 도 50의 확장 카드들 중 하나 이상을 포함하는, 본 개시내용의 시스템(500)의 예시적인 구현을 제공한다. 시스템은 본 명세서에 설명된 바와 같이 염기 추출, 오류 정정, 매핑, 정렬, 소팅, 조립, 변이 추출 등과 같은, 프로세싱 파이프라인에서의 하나 이상의 함수를 수행하도록 구성되는 Bio IT 프로세싱 칩(100)을 포함한다.
시스템(500)은 하나 이상의 프로세서(100)의 온보드 기능을 구성하도록 적성되는 구성 관리자를 추가로 포함한다. 구체적으로는, 다양한 실시예들에서, 구성 관리자는, 시스템(500)의 하나 이상의 프로세싱 함수를 구성하기 위해, 예컨대, 느슨하게 또는 타이트하게 결합된 인터커넥트를 통해 적합하게 구성된 드라이버에 의해, FPGA, 예를 들어 펌웨어의 내부 컨트롤러에 명령어들을 전달하도록 적응된다. 예를 들어, 구성 관리자는 수신된 명령어들에 따라 매핑, 정렬, 소팅, 변이 추출 등과 같은 하나 이상의 원하는 연산들을 수행하도록 그와 연관된 내부 프로세싱 클러스터들(11) 및/또는 엔진들(13)을 구성하도록 적응될 수 있다. 이러한 방식으로, 호스트 시스템(1000)으로부터 칩(100)으로 제공된 데이터에 대한 요청된 프로세싱 연산들을 수행하기 위한 프로세싱 엔진(13)을 포함하는 클러스터들(11)만이 수신된 명령어들에 따라 데이터를 프로세싱하도록 관여될 수 있다.
추가적으로, 다양한 실시예들에서, 구성 관리자는 또한, 예컨대 시스템(500)의 앱에 의해 제시되는 사용자 인터페이스(GUI)에 의해, 예컨대, 위에 본 명세서에 더 상세히 설명된 바와 같이, API 연결을 통해, 제3자 사용자에 의해, 예컨대 원격으로 자체 적응되도록 적응될 수 있다. 추가적으로, 구성 관리자는 하나 이상의 기준 또는 개별적으로 서열 분석된 게놈들 및/또는 그의 인덱스를 포함하는 데이터베이스 및/또는 하나 이상의 이전에 매핑, 정렬, 및/또는 소팅된 게놈들 또는 그의 부분들과 같은 데이터베이스를 형성하거나 달리 포함하는 메모리와 같은 하나 이상의 외부 메모리에 연결될 수 있다. 다양한 경우들에서, 데이터베이스는, 예컨대 새롭게 매핑되고, 정렬된 유전 서열들 또는 그에 관련된 VCF와 같은, 예컨대 하나 이상의 3차 프로세싱 프로토콜들의 수행을 위해 질병 상태를 특징짓는 하나 이상의 유전 프로파일을 추가로 포함할 수 있다.
시스템(500)은 또한 클라우드 또는 적어도 하이브리드 클라우드(504) 통신 플랫폼을 형성하기 위해 예컨대 인터넷을 통해 원격 통신들을 허용하도록 웹 기반 액세스를 포함할 수 있다. 이와 같은 방식으로, Bio IT 프로세서로부터 생성된 프로세싱된 정보, 예를 들어, 결과 데이터는 암호화되고, 예컨대 외부, 예를 들어, 원격, 데이터베이스에, 전자 건강 레코드로서 저장될 수 있다. 다양한 경우들에서, EMR 데이터베이스는, 예컨대 질병 상태들 또는 경향들을 결정하기 위해, 또는 그에 관련된 하나 이상의 예방 또는 치료의 유효성을 분석하기 위한 목적을 위해, 데이터에 대해 하나 이상의 통계적 분석을 수행하기 위해, 그 안에 저장된 유전 정보와 관련하여 검색가능할 수 있다. 그 후, 그러한 정보는 EMR 데이터와 함께 추가 프로세싱되고/되거나 유전 정보의 소스의 기밀성을 보증하는 방식으로 추가 데이터베이스(508)에 저장될 수 있다.
더 특정하게는, 도 51은 유전 서열 데이터에 대해 서열 분석 파이프라인을 실행하기 위한 시스템(500)을 예시한다. 시스템(500)은 컴퓨팅 시스템을 포함하는 구성 관리자(502)를 포함한다. 구성 관리자(502)의 컴퓨팅 시스템은 퍼스널 컴퓨터 또는 다른 컴퓨터 워크스테이션을 포함할 수 있거나, 네트워킹된 컴퓨터들의 모음에 의해 구현될 수 있다. 구성 관리자(502)는, 하나 이상의 독점적 애플리케이션과 함께 서열분석기 또는 기타 게놈학 데이터 소스로부터의 게놈학 데이터를 프로세싱하기 위한 구성을 생성하는 하나 이상의 API에 의해 컴퓨팅 시스템과 연결된 하나 이상의 제3자 애플리케이션을 추가로 포함할 수 있다. 구성 관리자(502)는 구성을 게놈학 파이프라인 프로세서 시스템(10)에 로딩하는 드라이버들을 추가로 포함한다. 게놈학 파이프라인 프로세서 시스템(10)은, 전자 건강 레코드(506) 또는 다른 지식 데이터베이스(508)에 결과 데이터의 저장을 위해, 웹(504) 또는 다른 네트워크에 결과 데이터를 출력하거나 웹(504) 또는 다른 네트워크를 통해 액세스될 수 있다.
본 명세서의 여러 곳에서 논의된 바와 같이, 게놈학 파이프라인 프로세서를 구현하는 칩은 서열분석기에 연결되거나 통합될 수 있다. 칩은 또한 예를 들어, 인터로퍼를 통해 직접, 또는 예를 들어, PCIe를 통해 확장 카드 상에서 간접적으로 연결 또는 통합될 수 있고, 확장 카드는 서열분석기에 연결 또는 통합될 수 있다. 다른 구현들에서, 칩은 서열분석기에 연결되는 서버 컴퓨터에 연결되거나 통합되어, 서열분석기로부터의 게놈 판독들을 서버로 전송할 수 있다. 또 다른 구현들에서, 칩은 컴퓨터들 및 서버들의 클라우드 컴퓨팅 클러스터에서 서버에 연결되거나 통합될 수 있다. 시스템은 칩을 포함하는 서버에 (예컨대, 이더넷을 통해) 연결된 하나 이상의 서열분석기를 포함할 수 있으며, 여기서 게놈 판독들은 다수의 서열분석기에 의해 생성되고, 서버에 전송된 다음, 칩에서 매핑되고 정렬된다.
예를 들어, 일반적으로 차세대 DNA 서열분석기(NGS) 데이터 파이프라인들에서, 1차 분석 스테이지 프로세싱은 일반적으로 주어진 서열분석 기술에 특정적이다. 이 1차 분석 스테이지는 서열분석기 내부에서 검출된 물리적 신호들을 연관된 품질(신뢰도) 스코어를 갖는 뉴클레오티드 서열의 "판독들", 예를 들어, FASTQ 형식 파일들 또는 서열 및 일반적으로 품질 정보를 포함하는 다른 형식들로 번환하는 기능을 한다. 위에 언급된 바와 같이, 1차 분석은 종종 이용된 서열분석 기술에 본질적으로 상당히 특정적이다. 다양한 서열분석기들에서, 뉴클레오티드들은 형광 및 전하, 전류 또는 방사된 광의 변화를 감지함으로써 검출된다. 일부 1차 분석 파이프라인들은 종종 다음을 포함한다: 센서 출력을 증폭, 필터링, 분리, 및 측정하는 신호 프로세싱; 예컨대 양자화, 데시메이션(decimation), 평균화, 변환 등에 의한 데이터 감소; 의미 있는 신호를 식별하고 향상시키고, 이들을 특정 판독들 및 뉴클레오티드들과 연관시키는 이미지 프로세싱 또는 수치 프로세싱(예를 들어, 이미지 오프셋 계산, 클러스터 식별); 서열 분석 기술 아티팩트들을 보상하기 위한 알고리즘 프로세싱 및 휴리스틱(예를 들어, 페이징 추정, 크로스-토크 행렬); 베이지안 확률 계산; 은닉 마르코프 모델; 염기 추출(서열의 각각의 위치에서 가장 가능성 있는 뉴클레오티드의 선택); 염기 추출 품질(신뢰도) 추정 등. 위에 본 명세서에 논의된 바와 같이, 이들 단계 중 하나 이상은 집적 회로, 예를 들어, FPGA에 의해 구현되는 것과 같은 하드웨어에서 필요한 프로세싱 함수들 중 하나 이상을 구현함으로써 이익을 얻을 수 있다. 게다가, 그러한 형식이 달성된 후에, 예컨대, 판독들을 기준 게놈에 매핑 및 정렬, 소팅, 중복 마킹, 염기 품질 스코어 재측정, 로컬 재정렬, 및 변이 추출에 의해, 서열 분석된 샘플 DNA(또는 RNA 등)의 콘텐츠를 결정하기 위해, 본 명세서에 설명된 바와 같이 2차 분석이 진행된다. 그 후, 결정된 DNA 콘텐츠로부터 의료 또는 연구 함의를 추출하기 위해 3차 분석이 이어질 수 있다.
따라서, 위 프로세싱 함수들의 순차적 속성을 고려하여, 단일 집적 회로, 또는 단일 확장 카드 상에 위치된 다수의 집적 회로에 1차, 2차, 및/또는 3차 프로세싱 가속을 통합하는 것이 유리할 수 있다. 이는, 서열분석기들이 유용하도록 1차 및 2차 분석 양쪽 모두를 전형적으로 요구하고 다양한 3차 프로세싱 프로토콜들에서 더 이용될 수 있는 데이터를 생성하고, 이들을 단일 디바이스에 통합하는 것이 비용, 공간, 전력, 및 리소스 공유의 측면에서 가장 효율적이기 때문에 유익할 수 있다. 그러므로, 하나의 특정한 양태에서, 본 개시내용은 유전 서열 데이터에 대해 서열 분석 파이프라인을 실행하기 위한 시스템과 같은 시스템에 관한 것이다. 다양한 경우들에서, 시스템은, 디지털 신호들, 예를 들어, 복수의 게놈 데이터의 판독을 표현하는 디지털 신호들을 제공하는 데이터 소스와 같은 전자 데이터 소스를 포함할 수 있으며, 여기서 복수의 게놈 데이터의 판독의 각각은 뉴클레오티드들의 서열을 포함한다. 시스템은 하나 이상의 유전 기준 서열 및/또는 하나 이상의 유전 기준 서열의 인덱스를 저장하는 메모리와 같은 하나 이상의 메모리를 포함할 수 있고/있거나; 시스템은 ASIC, FPGA, 또는 sASIC와 같은 칩을 포함할 수 있다.
본 명세서에 설명된 내용의 하나 이상의 양태 또는 특징은 디지털 전자 회로, 집적 회로, 특수 설계된 애플리케이션 특정 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 또는 구조화된 ASIC 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합으로 실현될 수 있다.
이들 다양한 양태 또는 특징은 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어들을 수신하고 그리고 이들에 데이터 및 명령어들을 전송하기 위해 결합된, 특수 또는 범용일 수 있는 적어도 하나의 프로그램 가능한 프로세서를 포함하는 프로그램 가능한 시스템 상에서 실행가능 및/또는 해석가능한 하나 이상의 컴퓨터 프로그램에서의 구현을 포함할 수 있다. 프로그램 가능한 시스템 또는 컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 원격에 있으며, 전형적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터들 상에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들 덕분에 발생한다.
프로그램들, 소프트웨어, 소프트웨어 애플리케이션들, 애플리케이션들, 컴포넌트들, 또는 코드라고도 지칭될 수 있는 이들 컴퓨터 프로그램은 프로그램 가능한 프로세서에 대한 머신 명령어들을 포함하고, 하이-레벨 절차 및/또는 객체 지향 프로그래밍 언어, 및/또는 어셈블리/기계어로 구현될 수 있다. 본 명세서에 사용되는, 용어 "머신 판독가능 매체"는 머신 명령어들을 머신 판독가능 신호로서 수신하는 머신 판독가능 매체를 포함하는 프로그램 가능한 프로세서에 머신 명령어들 및/또는 데이터를 제공하기 위해 사용된, 예를 들어, 자기 디스크들, 광 디스크들, 메모리, 및 프로그래머블 로직 디바이스(PLD)들과 같은 임의의 컴퓨터 프로그램 제품, 장치 및/또는 디바이스를 지칭한다. "머신 판독가능 신호"라는 용어는 머신 명령어들 및/또는 데이터를 프로그램 가능한 프로세서에 제공하는 데 사용되는 임의의 신호를 지칭한다. 머신 판독가능 매체는 예를 들어, 비일시적 솔리드-스테이트 메모리 또는 자기 하드 드라이브 또는 임의의 등가의 저장 매체와 같이, 비일시적으로 그러한 머신 명령어들을 저장할 수 있다. 머신 판독가능 매체는 대안적으로 또는 추가적으로 예를 들어, 하나 이상의 물리적 프로세서 코어와 연관된 프로세서 캐시 또는 다른 랜덤 액세스 메모리와 같이, 일시적 방식으로 그러한 머신 명령어들을 저장할 수 있다.
추가적으로, 21세기에서의 데이터 생성 및 취득에서의 막대한 성장으로 인해, 현대의 개발의 토대가 되는 계속 증가하는 계산 집약적인 분석들을 핸들링할 수 있는 증가된 프로세싱 능력에 대한 필요성이 발생하였다. 수퍼컴퓨터들이 도입되었고, 광범위한 플랫폼들에 걸쳐 기술적 개발을 발전시키는 데 유용하였다. 그러나, 비록 수퍼컴퓨팅이 유용하는 하지만, 오늘날의 기술 회사들 중 다수가 직면하는 매우 복잡한 컴퓨팅 문제들 중 일부에 대해 불충분한 것으로 입증되었다. 특정하게는, 인간 게놈의 서열 분석 이후, 생물학 기술에서의 기술적 진보는 기하급수적이었다. 그럼에도 불구하고, 매일 생성된 원시 데이터의 고속 및 증가된 복잡성를 고려하여, 생성된 데이터의 프로세싱 및 분석에 문제가 있는 병목 현상이 발생했다. 이 병목 현상을 해결하는 것을 돕기 위해 양자 컴퓨터들이 개발되었다. 양자 컴퓨팅은 컴퓨팅에서 새로운 최전선을 나타내며, 세계의 가장 어려운 계산 요구들을 해결하기 위한 완전히 새로운 접근법을 제공한다.
양자 컴퓨팅은 1982년 이후 알려졌다. 예를 들어, International Journal of Theoretical Physics에서, 리처드 파인만(Richard Feynman)은 양자 컴퓨팅을 수행하기 위한 시스템을 이론화하였다. 구체적으로는, 파인만은 컴퓨터 프로세싱의 종래의 기능들이 더 빠르게 효율적으로 수행될 수 있는 방식으로 다른 양자 시스템들을 시뮬레이션하는 데 사용하도록 구성될 수 있는 양자 시스템을 제안하였다. 그 전체가 인용에 의해 본 명세서에 포함되는, Feynman, 1982, International Journal of Theoretical Physics 21, pp. 467-488을 참조한다. 특정하게는, 양자 컴퓨터 시스템은 복잡한 계산들에서 기하급수적 시간 절약을 나타내도록 설계될 수 있다. 그러한 제어가능 양자 시스템들은 양자 컴퓨터로서 일반적으로 알려져 있고, 양자 시스템들을 시뮬레이션하기 위해 사용될 수 있을 뿐만 아니라, 특수화된 양자 알고리즘들을 실행하도록 적응될 수도 있는 범용 프로세싱 컴퓨터들로 성공적으로 개발되었다. 더 특정하게는, 복잡한 문제들은, 시스템의 거동이 방정식의 솔루션에 관한 정보를 제공하는 방식으로 양자 시스템에서 표현될 수 있는, 해밀터니언(Hamiltonian)과 같은 방정식의 형태로 모델링될 수 있다. 그 전체가 인용에 의해 본 명세서에 포함되는, Deutsch, 1985, Proceedings of the Royal Society of London A 400, pp. 97-117을 참조한다. 그러한 경우들에서, 양자 시스템의 거동에 대한 모델을 해결하는 것은 양자 시스템의 입자의 파동-역학적 설명과 관련된 미분 방정식, 예를 들어, 해밀터니언을 해결하는 것을 수반하도록 구성될 수 있다.
본질적으로, 양자 컴퓨팅은 많은 양의 데이터에 대해 다양한 계산들을 극도로 빠르게 수행하기 위해 양자-역학적 현상, 예를 들어, 중첩 및/또는 얽힘을 사용하는 계산 시스템이다. 이에 따라, 양자 컴퓨터들은 종래의 디지털 로직 컴퓨터들에 비해 어마어마한 개선이다. 구체적으로는, 종래의 디지털 로직 회로들은 전도성 기판 상의 전자 회로의 하드와이어링을 통해 형성되는 이진 디지털 로직 게이트들을 사용하여 기능한다. 디지털 로직 회로에서, 트랜지스터의 "온/오프" 상태는 정보의 기본 단위, 예를 들어 비트의 역할을 한다. 특정하게는, 일반적인 디지털 컴퓨터 프로세서는 데이터를 인코딩하기 위해 이진 숫자, 예를 들어, "온" 또는 "오프" 상태의, 예를 들어, 0 또는 1로서의 비트들을 이용한다. 다른 한편, 양자 계산은 데이터를 인코딩하기 위해, 양자 비트들 또는 큐비트(qubit)들이라고 지칭되는 얽힌 상태들의 중첩들을 사용하는 정보 디바이스를 이용한다.
그러한 양자 계산들을 수행하기 위한 기초는 양자 비트를 형성하는 정보 디바이스, 예를 들어, 유닛이다. 큐비트는, 큐비트가 디지털 비트보다 훨씬 더 계산적인 잠재성을 갖는다는 점을 제외하고는, 전통적인 디지털 컴퓨터들에서 디지털 "비트"와 유사하다. 특정하게는, 본 명세서에서 더 상세히 설명된 바와 같이, 디지털 비트에서 발견되는 바와 같이 "0" 및 "1"과 같은 2개의 개별 상태 중 하나만을 인코딩하는 대신에, 큐비트는 또한 "0" 및 "1"의 중첩에 배치될 수 있다. 구체적으로는, 큐비트는 동시에 "0" 및 "1" 상태 양쪽 모두에 존재할 수 있다. 결과적으로, 큐비트는 동시에 양쪽 상태들에 대한 양자 계산을 수행할 수 있다. 일반적으로, N개의 큐비트가 2N개의 상태의 중첩에 있을 수 있다. 따라서, 양자 알고리즘들은 특정 계산들을 가속화하기 위해 이 중첩 속성을 이용할 수 있다.
따라서, 큐비트는 전통적인 디지털 컴퓨터에서의 비트와 유사하고, 코히어런스를 나타내는 정보 디바이스의 유형이다. 특정하게는, 양자 컴퓨팅 디바이스는 복수의 정보 디바이스, 예를 들어, 큐비트, 빌딩 블록들로부터 구축된다. 예를 들어, 양자 컴퓨터의 컴퓨팅 능력은 그것의 빌딩 블록들을 형성하는 정보 디바이스들이 제어가능한 방식으로 함께 결합, 예를 들어, 얽힘에 따라 증가한다. 그러한 경우에, 하나의 정보 디바이스의 양자 상태는 그것이 결합되는 다른 정보 디바이스들 각각의 양자 상태에 영향을 미친다.
따라서, 고전적인 디지털 컴퓨팅에서의 비트와 같이, 양자 컴퓨팅에서의 큐비트는 양자 정보와 같은 정보의 인코딩을 위한 기본 단위의 역할을 한다. 비트와 유사하게, 큐비트는 이 경우에 양자-역학 시스템인 2-상태 시스템에서 데이터를 인코딩한다. 구체적으로는, 큐비트에 대해, 2개의 양자 상태는 단일 광자의 편광을 수반하는 것과 같은 얽힘을 수반한다. 그러므로, 고전적인 시스템에서, 비트가 하나의 상태 또는 다른 상태에 있어야 하는 경우, 양자 컴퓨팅 플랫폼에서, 큐비트는 양쪽 모두의 상태들의 중첩에 동시에 있을 수 있고, 이 속성은 양자 프로세싱에 기본적이다. 결과적으로, 큐비트와 고전적인 비트 사이의 구별되는 특징은 다수의 큐비트가 양자 얽힘을 표현한다는 것이다. 그러한 얽힘은 큐비트들의 세트가 고전적인 시스템에서 가능한 것보다 더 높은 상관을 표현하는 것을 가능하게 하는 논로컬 특성이다.
기능하기 위해서는, 그러한 정보 디바이스들, 예를 들어 양자 비트들은 여러 요건들을 충족시켜야 한다. 첫째, 정보 디바이스는 양자 2-레벨 시스템으로 축소가능해야 한다. 이는 정보 디바이스가 계산을 수행하기 위해 사용될 수 있는 2개의 구별 가능한 양자 상태를 가져야 한다는 것을 의미한다. 둘째, 정보 디바이스들은 얽힘 및 중첩과 같은 양자 효과들을 생성할 수 있어야 한다. 추가적으로, 특정 경우들에서, 정보 디바이스는 정보, 예를 들어, 양자 정보를, 예컨대 코히어런트 형태로 저장하도록 구성될 수 있다. 그러한 경우들에서, 코히어런트 디바이스는 예컨대 대략 마이크로초 또는 그 이상의, 오랜 기간 동안 상당한 열화 없이 지속되는 양자 상태를 가질 수 있다.
특정하게는, 양자 얽힘은 한 쌍 또는 그룹의 입자들이, 이들을 분리하는 공간에도 불구하고, 하나의 입자의 양자 상태가 다른 것과 독립적으로 기술될 수 없는 방식으로 상호작용하도록 생성되거나 달리 구성될 때 발생하는 물리적 현상이다. 결과적으로, 다른 것들과 별개로 하나의 입자의 상태를 기술하는 대신에, 전체로서 시스템에 대한 양자 상태가 기술되어야 한다. 그러한 경우들에서, 얽힌 입자들에 대해 수행되는 위치, 모멘텀, 스핀, 및/또는 편광과 같은 다양한 물리적 속성들의 측정들이 상관된다. 예를 들어, 한 쌍의 입자들이 그들의 전체 스핀이 0으로 알려지는 방식으로 생성되고, 하나의 입자가 특정 축 상에서 시계방향 스핀을 갖는 것으로 밝혀지면, 동일 축 상에서 측정된 다른 입자의 스핀은, 그들의 얽힘으로 인해 예상되는 바와 같이, 반시계방향인 것으로 밝혀질 것이다.
그러므로, 얽힌 쌍의 하나의 입자는 다른 것에 대해 어떤 측정이 수행되었는지, 그리고 어떤 결과인지를 단순히 "안다"(비록 측정 시에 임의로 큰 거리만큼 분리될 수 있는, 입자들 사이에 전달되었을 그러한 정보에 대한 알려진 수단이 존재하지 않더라도). 이러한 관계 때문에, 한 번에 하나의 값만을 가질 수 있는 고전적인 비트들과는 달리, 얽힘은 다수의 상태들이 동시에 작용되는 것을 허용한다. 양자 컴퓨팅의 개발을 위해 활용된 것은 이들 고유한 얽힌 관계들 및 양자 상태들이다.
따라서, 수행될 수 있는 순수한 큐비트 상태들을 이용하는 다양한 종류의 물리적 동작들이 존재한다. 예를 들어, 양자 로직 게이트는 기본 큐비트에 대해 작용하도록 형성되고 구성될 수 있는데, 여기서 큐비트는 유니터리 변환(unitary transformation)을 겪고, 예컨대 이 경우 유니터리 변환은 큐비트의 회전들, 또는 다른 양자 현상들에 대응한다. 사실상, 광자, 전자, 핵 스핀, 코히어런트 광 상태, 광학 격자, 조셉슨 접합, 양자 점 등과 같은, 임의의 2-레벨 시스템이 큐비트로서 사용될 수 있다. 구체적으로는, 양자 게이트는 적은 수의 큐비트들에 대해 작용하는 양자 회로에 대한 기초이다. 예를 들어, 양자 회로는 2개 또는 3개 또는 그 이상과 같은 고정된 수의 큐비트들에 작용하는 양자 게이트들로 구성된다. 따라서, 큐비트들은 양자 회로들의 빌딩 블록들이다(종래의 디지털 회로들에 대해 고전적인 로직 게이트들이 그런 것처럼). 구체적으로는, 양자 회로는 양자 계산을 위한 모델이고, 여기서 계산은 n-비트 레지스터의 양자 역학적 아날로그에 대한 가역적 변환들인 양자 게이트들의 시퀀스이다. 그러한 유사한 구조들은 n-큐비트 레지스터들로서 지칭된다. 그러므로, 고전적인 로직 게이트 게이트들과 달리, 양자 로직 게이트들은 항상 가역적이다.
특정하게는, 본 명세서에 설명된 바와 같이, 디지털 로직 게이트는 단일 이진 출력을 생성하기 위해 하나 이상의 이진 입력들에 대해 논리 연산들, 예를 들어, 부울 함수들을 수행하기 위한 전자 스위치들로서 역할을 하는 하나 이상의 다이오드 또는 트랜지스터를 사용하여 구현될 수 있는 물리적, 와이어링된 디바이스이다. 증폭에 의해, 로직 게이트들은 부울 함수들이 구성될 수 있는 동일한 방식으로 캐스케이드될 수 있어, 부울 로직 모두의 물리적 모델의 구성을 허용하고, 따라서 부울 로직으로 설명될 수 있는 알고리즘들 및 수학들 모두가 디지털 로직 게이트들에 의해 수행될 수 있다. 유사한 방식으로, 양자 로직 게이트들의 캐스케이드가 부울 로직 연산들의 수행을 위해 형성될 수 있다.
양자 게이트들은 일반적으로 행렬들로서 표현된다. 다양한 구현들에서, 양자 게이트는 2k x 2k 단위 행렬로 표현될 수 있는 k개의 큐비트에 작용한다. 그러한 경우들에서, 게이트의 입력 및 출력에서의 큐비트들의 수는 동일해야 하고, 상태를 표현하는 벡터를 게이트를 표현하는 행렬과 곱하는 것에 의해 특정 양자 상태에 대한 게이트의 작용이 밝혀진다. 그러므로, 이러한 구성을 고려하여 양자 계산 연산이 매우 적은 수의 양자 비트에 대해 실행될 수 있다. 예를 들어, 임의의 가능한 확률적 고전적인 알고리즘보다 빠르게 훨씬 더 복잡한 계산들을 실행하도록 구성되는 양자 알고리즘들이 있다. 특정하게는, 양자 알고리즘은 계산의 양자 회로 모델 상에서 실행되는 알고리즘이다.
여기서 고전적인 알고리즘은 고전적인 컴퓨터의 디지털 로직 회로들에 의해 수행될 수 있는 단계별 명령어들 또는 절차들의 유한 시퀀스이고; 양자 알고리즘은 단계별 절차이며, 여기서 단계들 각각은 양자 컴퓨터 상에서 수행될 수 있다. 그러나, 비록 쇼어(Shor), 그로버(Grovar), 및 사이먼(Simon)의 알고리즘들과 같은 양자 알고리즘들이 존재하더라도, 모든 고전적인 알고리즘들이 또한 정확한 구성들을 갖는 양자 컴퓨터 상에서 수행될 수 있다. 양자 알고리즘들은 일반적으로, 예를 들어 중첩 또는 양자 얽힘을 수반하는 것과 같은, 본질적으로 양자인 알고리즘들에 대해 사용된다. 양자 알고리즘들은 해밀터니언 오라클(Hamiltonian oracle) 모델과 같은 양자 계산의 다양한 모델들에서 언급될 수 있다.
따라서, 고전적인 컴퓨터는 각각의 비트가 "1" 또는 "0"으로 표현되는, 비트들로 구성된 메모리를 가지며; 양자 컴퓨터는 단일 큐비트가(1, 0), 또는 이들 2개의 큐비트 상태의 임의의 양자 중첩을 표현할 수 있는, 큐비트들의 시퀀스를 지원한다. 결과적으로, 한 쌍의 큐비트는 4개의 상태의 임의의 양자 중첩에 있을 수 있고, 3개의 큐비트는 8개의 상태의 임의의 중첩에 있을 수 있다. 일반적으로, N개의 큐비트를 갖는 양자 컴퓨터는 동시에 최대 2n개의 상이한 상태의 임의의 중첩에 있을 수 있고, 이는 어느 하나의 시간에 이들 2n개의 상태 중 하나에만 있을 수 있는 보통의 컴퓨터와 비교된다. 따라서, 큐비트들은 그들의 고전적인 대응물들보다 기하급수적으로 더 많은 정보를 유지할 수 있다. 액션에서, 양자 컴퓨터는 양자 로직 게이트들의 고정된 시퀀스로 큐비트들을 조작함으로써 문제를 해결하는 드리프트에 그들 큐비트를 설정함으로써 동작한다. 양자 알고리즘들의 연산들을 형성하는 것은 이 양자 로직 게이트들의 시퀀스이다. 계산은 큐비트들의 시스템을 2n개의 순수 상태 중 하나로 붕괴시키는 측정으로 종료되고, 여기서 각각의 큐비트는 "0" 또는 "1"이고, 그에 의해 고전적인 상태로 분해된다. 그러므로, 전통적인 알고리즘들이 또한 양자 컴퓨팅 플랫폼 상에서 수행될 수 있으며, 여기서 결과는 전형적으로 n개의 고전적인 정보 비트들이다.
표준 표기에서, 큐비트의 기본 상태들은 "0" 및 "1" 상태들로 지칭된다. 그러나, 양자 계산 동안, 일반적으로, 큐비트의 상태는 큐비트가 "0" 기초 상태를 점유하는 0이 아닌 확률 및 "1" 기초 상태를 점유하는 동시 0이 아닌 확률을 갖도록 기본 또는 기초 상태들의 중첩일 수 있다. 따라서, 큐비트의 양자 속성은 기초 상태들의 코히어런트 중첩에 존재하는, 그리고 큐비트의 상태가 위상을 갖는 그의 능력으로부터 크게 유도된다.
큐비트는 큐비트가 디코히어런스(decoherence)의 소스들로부터 충분히 격리되는 한 기초 상태들의 코히어런트 중첩으로서 존재하는 이 능력을 유지할 것이다.
결과적으로, 큐비트를 이용하여 계산을 완료하기 위해, 큐비트의 상태가 측정된다. 위에 지적한 바와 같이, 큐비트의 측정이 완료될 때, 큐비트의 양자 속성은 일시적으로 손실될 수 있고 기초 상태들의 중첩은 "0" 기초 상태 또는 "1" 기초 상태로 붕괴될 수 있다. 따라서, 이와 같은 방식으로, 큐비트는 종래의 디지털 "비트"에 대한 그의 유사성을 회복한다. 그러나, 붕괴된 후의 큐비트의 실제 상태는 측정 동작 바로 전에 존재하는 다양한 확률 상태들에 의존할 것이다. 따라서, 큐비트들은 양자 회로들을 형성하기 위해 이용될 수 있으며, 이들 자체는 양자 컴퓨터를 형성하도록 구성될 수 있다.
양자 컴퓨터의 설계 및 동작에 대한 여러 일반적인 접근법이 있다. 제안된 한 가지 접근법은 양자 컴퓨팅을 위한 회로 모델의 것이다. 회로 모델 양자 컴퓨팅은 긴 양자 코히어런스를 요구하며, 따라서 그러한 접근법을 지원하는 양자 컴퓨터들에서 사용되는 정보 디바이스의 유형은 큐비트일 수 있으며, 이는 정의에 의해 긴 코히어런스 시간들을 갖는다. 따라서, 양자 컴퓨팅을 위한 회로 모델은, 큐비트들이 마치 비트들처럼, 로직 게이트들로 형성될 수 있고 그에 의해 작용될 수 있고, 부울 계산들과 같은 계산들을 수행하기 위해 양자 로직을 이용하여 프로그래밍될 수 있다는 전제에 기초한다. 이러한 방식으로 양자 로직 함수들을 수행하도록 프로그래밍될 수 있는 큐비트들을 개발하기 위한 연구가 행해졌다. 예를 들어, 그 전체가 인용에 의해 본 명세서에 포함되는, Shor, 2001, arXiv.org:quant-ph/0005003를 참조한다. 마찬가지로, 컴퓨터 프로세서는 초전도성 양자 프로세서와 같은 양자 프로세서의 형태를 취할 수 있다.
초전도성 양자 프로세서는 다수의 큐비트 및 연관된 로컬 바이어스 디바이스, 예를 들어, 2개, 3개, 또는 그 이상의 초전도성 큐비트를 포함할 수 있다. 따라서, 비록 다양한 실시예들에서, 컴퓨터 프로세서가 비전통적인 초전도성 프로세서로서 구성될 수 있지만, 다른 실시예들에서, 컴퓨터 프로세서는 초전도성 프로세서로서 구성될 수 있다. 예를 들어, 일부 실시예들에서, 비전통적인 초전도성 프로세서는 중첩, 얽힘, 및/또는 양자 터널링과 같은 양자 효과들에 초점을 맞추지 않도록 구성될 수 있고, 오히려 고전적인 컴퓨터 프로세서들의 동작을 통제하는 원리들과 같은 상이한 원리들을 강조함으로써 동작할 수 있다. 다른 실시예들에서, 컴퓨터 프로세서는 예컨대 중첩, 얽힘, 및/또는 양자 터널링과 같은 다양한 양자 효과들을 통해 프로세싱하도록 적응됨으로써 전통적인 초전도성 프로세서로서 구성될 수 있다.
따라서, 다양한 경우들에서, 그러한 초전도성 프로세서들의 구현에 대한 특정 이점들이 있을 수 있다. 특정하게는, 그들의 자연적 물리적 속성들로 인해, 일반적으로 초전도성 프로세서들은 비-초전도성 프로세서들보다 더 높은 스위칭 속도들 및 더 짧은 계산 시간들이 가능할 수 있고, 따라서 초전도성 프로세서들에 대한 특정 문제들을 해결하는 것이 더 실용적일 수 있다. 게다가, 본 디바이스들, 시스템들, 및 이들의 사용 방법들과 함께 사용될 수 있는 예시적인 양자 프로세서들의 상세 및 실시예들이 USSN(미국 특허 출원 번호)들: 11/317,838; 12/013,192; 12/575,345; 12/266,378; 13/678,266; 및 14/255,561; 뿐만 아니라 이들의 다양한 분할, 계속, 및/또는 부분 계속 출원들; 미국 특허 번호 7,533,068; 7,969,805; 9,026,574; 9,355,365; 9,405,876; 그리고 이들의 모든 외국 대응 건들에 기술되어 있고, 그 전체가 인용에 의해 본 명세서에 포함된다.
게다가, 상기한 것들에 추가하여 복잡한 계산 문제들을 해결하는 데 사용하기 위한 양자 디바이스들 및 시스템들, 및 이들의 사용 방법들이 또한 제시된다. 예를 들어, 본 명세서에 개시된 양자 디바이스들 및 시스템들은, 생물정보학 및/또는 게놈학 프로세싱 파이프라인에서 하나 이상의 단계를 수행하기 위해, 예컨대 이미지 프로세싱, 염기 추출, 매핑, 정렬, 소팅, 변이 추출, 및/또는 다른 게놈학 및/또는 생물정보학 파이프라인에서 하나 이상의 연산의 수행을 위해, 코히어런트 방식으로 하나 이상의 정보 디바이스 및/또는 시스템의 양자 상태를 제어하기 위해 이용될 수 있다. 특정한 실시예들에서, 하나 이상의 연산은 버로우즈-휠러, 스미스-워터만, 및/또는 HMM 연산을 수행하는 것을 포함할 수 있다.
특정하게는, 양자 컴퓨팅 디바이스를 이용하여 복잡한 게놈학 및/또는 생물정보학 계산 문제들을 해결하는 것은 하나 이상의 큐비트를 생성하고 그것을 이용하여 계산 문제의 양자 로직 회로 표현을 형성하는 것, 로직 회로 표현을 개별 최적화 문제로서 인코딩하는 것, 및 양자 프로세서를 이용하여 개별 최적화 문제를 해결하는 것을 포함할 수 있다. 표현은 가산, 감산, 승산, 및/또는 제산 회로에 의한 솔루션을 위한 산술 및/또는 기하학적 문제일 수 있다. 개별 최적화 문제는 소형 최적화 문제들의 세트로 구성될 수 있으며, 각각의 소형 최적화 문제는 로직 회로 표현으로부터 각각의 로직 게이트를 인코딩한다. 예를 들어, 수학 회로는 인수들의 이진 표현들을 이용할 수 있고, 이들 이진 표현은 수학 회로를 표현하기 위해 요구되는 변수들의 총수를 감소시키기 위해 분해될 수 있다. 따라서, 본 명세서의 교시에 따르면, 컴퓨터 프로세서는 디지털 및/또는 아날로그 프로세서, 예를 들어, 초전도성 양자 프로세서와 같은 양자 프로세서의 형태를 취할 수 있다. 초전도성 양자 프로세서는 다수의 큐비트 및 연관된 로컬 바이어스 디바이스, 예를 들어, 하나 이상의 양자 로직 회로 표현으로 형성될 수 있는, 2개 이상의 초전도성 큐비트를 포함할 수 있다.
더 특정하게는, 다양한 실시예들에서, 초전도성 집적 회로가 제공될 수 있다. 구체적으로는, 특정 실시예들에서, 그러한 초전도성 집적 회로는 금속, 예를 들어, 제1 금속 층에 배치되는 제1 초전도성 전류 경로를 포함할 수 있다. 유전체, 예를 들어 제1 유전체 층이 또한 포함될 수 있고, 예컨대 이 경우 이 유전체 층의 적어도 일부가 제1 금속 층 내에 연관되고/되거나 그 위에 탑재된다. 제2 초전도성 전류 경로가 또한 포함되고, 제1 유전체 층 위에 탑재되거나 달리 그와 연관되는 금속 층과 같은 제2 금속 층에 배치될 수 있다. 그러한 실시예에서, 제2 초전도성 전류 경로의 적어도 일부는 제1 초전도성 전류 경로의 적어도 일부를 덮어씌울 수 있다. 마찬가지로, 제2 유전체 층이 또한 포함될 수 있고, 예컨대 이 경우 제2 유전체 층의 적어도 일부가 제2 금속 층과 연관되거나 그 위에 탑재된다. 추가적으로, 제3 초전도성 전류 경로가 포함되고, 제2 유전체 층과 연관되거나 그 위에 탑재될 수 있는 제3 금속 층에 배치될 수 있고, 예컨대 이 경우 제3 초전도성 전류 경로의 적어도 일부가 제1 및 제2 초전도성 전류 경로 중 하나 또는 양쪽 모두의 적어도 일부를 덮어씌울 수 있다. 하나 이상의 추가적인 금속 층, 유전체 층, 및/또는 전류 경로가 또한 그에 따라 포함되고 구성될 수 있다.
게다가, 제1 초전도성 연결이 제1 초전도성 전류 경로와 제3 초전도성 전류 경로 사이에 위치될 수 있는데, 예컨대 이 경우 제1 초전도성 연결은 제1 유전체 층 및 제2 유전체 층 양쪽 모두를 통해 연장된다. 제2 초전도성 연결이 또한 포함되고 제1 초전도성 전류 경로와 제3 초전도성 전류 경로 사이에 위치될 수 있는데, 예컨대 이 경우 제2 초전도성 연결은 제1 유전체 층 및 제2 유전체 층 양쪽 모두를 통해 연장될 수 있다. 추가적으로, 제2 초전도성 전류 경로의 적어도 일부는 제1 초전도성 전류 경로 중 하나 이상의 적어도 일부, 제2 초전도성 전류 경로의 적어도 일부, 및/또는 제1 및 제2 초전도성 연결들에 의해 형성될 수 있는 외부 초전도성 전류 경로에 의해 둘러싸일 수 있다. 따라서, 그러한 경우들에서, 제2 초전도성 전류 경로는 외부 초전도성 전류 경로에 신호를 결합, 예를 들어 유도 결합하도록 구성될 수 있다.
일부 실시예들에서, 제2 초전도성 전류 경로와 외부 초전도성 전류 경로 사이의 상호 인덕턴스는 제1 유전체 층의 두께 및 제2 유전체 층의 두께에 부분선형적으로(sub-linearly) 비례할 수 있다. 제1 및 제2 초전도성 연결들은 또한 각각 적어도 하나의 각각의 초전도성 비아를 포함할 수 있다. 게다가, 다양한 실시예들에서, 제2 초전도성 전류 경로는 입력 신호 라인의 일부일 수 있고, 제1 및 제3 초전도성 전류 경로들 중 하나 또는 양쪽 모두가 초전도성 프로그램 가능한 디바이스에 결합될 수 있다. 다른 실시예들에서, 제2 초전도성 전류 경로는 초전도성 프로그램 가능한 디바이스의 일부일 수 있고, 제1 및 제3 초전도성 전류 경로들 양쪽 모두는 입력 신호 라인에 결합될 수 있다. 특정한 실시예들에서, 초전도성 프로그래밍 가능 디바이스는 초전도성 큐비트일 수 있고, 이는 그 후 하나 이상의 다른 큐비트에 결합, 예를 들어, 양자 결합되어, 예컨대 양자 프로세싱 디바이스의 양자 회로를 형성할 수 있다.
따라서, 계산 문제들, 특히 위에 본 명세서에 설명된 게놈학 및/또는 생물정보학 병목 현상을 해결하는 것과 관련된 문제들을 해결하기 위한 디바이스들, 시스템들, 및 방법들이 본 명세서에 제공된다. 다양한 실시예들에서, 이들 디바이스들, 시스템들 및 방법들은 계산 문제의 로직 회로 표현이 직접 해결될 수 있고/있거나 개별 최적화 문제로서 인코딩될 수 있고, 이후 개별 최적화 문제가 양자 프로세서와 같은 컴퓨터 프로세서를 이용하여 해결될 수 있는 기법을 도입한다. 예를 들어, 특정한 실시예들에서, 그러한 개별 최적화 문제들을 해결하는 것은 로직 회로를 실행하여 원래의 계산 문제를 해결하는 것을 포함할 수 있다.
그러므로, 본 명세서에 설명된 디바이스들, 시스템들, 및 방법들은 예컨대 양자 프로세서로서 및/또는 초전도성 프로세싱에서 사용하도록 구성된, 전통적인 로직 회로들 및/또는 로직 회로 표현들을 포함하는 것과 같은 임의의 형태의 컴퓨터 프로세서를 이용하여 구현될 수 있다. 특정하게는, 이미지 프로세싱, 염기 추출, 매핑, 정렬, 및/또는 변이 추출 생물정보학 파이프라인을 수행하는 데 있어서의 다양한 단계들은 개별 최적화 문제들로서 인코딩될 수 있고, 이에 따라 본 명세서에 개시된 양자 프로세서들을 이용하여 해결되기에 특히 적합할 수 있다. 다른 경우들에서, 그러한 계산들은 그러한 계산을 달성하기 위해 양자 효과들을 이용하는 컴퓨터 프로세서에 의해 더 일반적으로 해결될 수 있다; 그리고/또는 다른 경우들에서, 그러한 계산들은 상세히 본 명세서에 설명된 바와 같은, FPGA, ASIC, 또는 구조화된 ASIC와 같은 전용 집적 회로를 사용하여 수행될 수 있다. 일부 실시예들에서, 개별 최적화 문제는 양자 프로세서에서 로직 회로들, 큐비트들, 및/또는 커플러들을 구성함으로써 문제로서 묘사된다. 일부 실시예들에서, 양자 프로세서는 그러한 개별 최적화 문제들을 해결하는 것을 용이하게 하도록 특정하게 적응될 수 있다.
[본 명세서 및 첨부된 청구항들 전체에 걸쳐 개시된 바와 같이, 종종, 예를 들어, 계산 문제의 "로직 회로 표현"이 참조된다. 컨텍스트에 따라, 로직 회로는 논리 입력들의 세트, 논리 출력들의 세트, 및 논리 입력들을 중간 논리 입력들 및 중간 논리 출력들의 세트를 통해 논리 출력들로 변환하는 로직 게이트들(예를 들어, NAND 게이트들, XOR 게이트들 등)의 세트를 포함할 수 있다. 완전한 로직 회로는 계산 문제에 대한 입력(들)의 표현, 계산 문제의 출력(들)의 표현, 및 입력(들)과 출력(들) 사이의 중간 단계들의 시퀀스의 표현을 포함할 수 있다.
따라서, 본 디바이스들, 시스템들, 및 방법들의 다양한 목적들을 위해, 계산 문제는 그의 입력(들), 그의 출력(들), 입력(들)을 출력(들)으로 변환하는 중간 단계들에 의해 정의될 수 있고 "로직 회로 표현"은 이들 요소들 모두를 포함할 수 있다. 본 기술분야의 통상의 기술자들은 개별 최적화 문제로서 계산 문제의 "로직 회로 표현"의 인코딩, 및 양자 프로세서로의 개별 최적화 문제의 후속 매핑은 임의의 수의 층이 층당 임의의 수의 큐비트를 포함하는 결과를 야기할 수 있다는 것을 인식할 것이다. 더욱이, 그러한 매핑은 임의의 방식의 층간 결합(예를 들어, 상이한 층들의 큐비트들 사이의 결합) 및 층내 결합(예를 들어, 특정 층 내의 큐비트들 사이의 결합)을 가능하게 하기 위해 임의의 방식의 큐비트 간 결합을 구현할 수 있다.
따라서, 지적한 바와 같이, 일부 실시예들에서, 로직 회로의 구조는 층들로 계층화될 수 있다. 예를 들어, 논리 입력(들)은 제1 층을 표현할 수 있고, 각각의 순차적 논리(또는 산술) 연산은 각각의 추가적인 층을 표현할 수 있고, 논리 출력(들)은 다른 층을 표현할 수 있다. 그리고 이전에 설명된 바와 같이, 논리 연산은 실행되는 특정 논리 연산에 따라, 단일 로직 게이트에 의해 또는 로직 게이트들의 조합에 의해 실행될 수 있다. 따라서, 로직 회로 내의 "층"은 구현되는 특정 로직 회로에 따라 단일 로직 게이트 또는 로직 게이트들의 조합을 포함할 수 있다.
결과적으로, 로직 회로의 구조가 층들로 계층화되는(예를 들어, 논리 입력(들)이 제1 층을 표현하고, 각각의 순차적 논리 연산이 각각의 추가적인 층을 표현하고, 논리 출력(들)이 다른 층을 표현하는) 경우와 같은 다양한 실시예들에서, 각각의 층은 양자 및/또는 초전도성 프로세서 내의 큐비트들의 각각의 세트에 의해 구현될 수 있다. 예를 들어, 양자 프로세서의 일 실시예에서, 하나 이상의, 예를 들어, 각각의 행의 큐비트들은 양자 로직 회로의 각각의 층을 표현하도록 프로그래밍될 수 있다. 즉, 특정한 큐비트들은 로직 회로에 대한 입력들을 표현하도록 프로그래밍될 수 있고, 다른 큐비트들은 (하나의 또는 복수의 로직 게이트에 의해 실행되는) 제1 논리 연산을 표현하도록 프로그래밍될 수 있고, 추가의 큐비트들은 (하나의 또는 복수의 로직 게이트에 의해 유사하게 실행되는) 제2 논리 연산을 표현하도록 프로그래밍될 수 있고, 또 다른 큐비트들은 로직 회로의 출력들을 표현하도록 프로그래밍될 수 있다.
추가적으로, 문제의 다양한 층들을 표현하는 큐비트들의 다양한 세트들을 이용하여, 각각의 개별 세트의 독립적인 동적 제어를 가능하게 하는 것이 유리할 수 있다. 게다가, 다양한 실시예들에서, 다양한 직렬 로직 회로들이 양자 프로세서에 매핑될 수 있고, 각각의 큐비트들은 그의 독립적인 제어를 가능하게 하기에 적합한 방식으로 양자 프로세싱을 위한 기능적 상호작용들을 용이하게 하기 위해 매핑될 수 있다. 위 내용으로부터, 본 기술분야의 통상의 기술자들은 임의의 로직 게이트에 대해 유사한 목적 함수가 어떻게 정의될 수 있는지를 인식할 것이다. 따라서, 일부 실시예들에서, 로직 회로를 표현하는 문제는 본질적으로 복수의 소형 최적화 문제로 구성될 수 있으며, 로직 회로 내의 각각의 게이트는 특정 소형 최적화 문제에 대응한다.
그러므로, 본 기술분야에 공지된 시스템들 및 방법들을 이용하여 예시적인 로직 회로 표현들이 생성될 수 있다. 일 예에서, 계산 문제, 예를 들어, 게놈학 및/또는 생물정보학 문제의 로직 회로 표현은 본 명세서에 설명된 바와 같은 고전적인 디지털 컴퓨터 프로세서 및/또는 양자 및/또는 초전도성 프로세서를 이용하여 생성 및/또는 인코딩될 수 있다. 따라서, 계산 문제의 로직 회로 표현은 컴퓨터 판독가능 비일시적 저장 매체 또는 메모리(예를 들어, 휘발성 또는 비휘발성)와 같은 적어도 하나의 컴퓨터 또는 프로세서 판독가능 저장 매체에 저장될 수 있다. 따라서, 본 명세서에 논의된 바와 같이, 계산 문제의 로직 회로 표현은 개별 최적화 문제, 또는 최적화 목적들의 세트로서 인코딩될 수 있고, 예컨대 고전적인 디지털 컴퓨터 프로세싱 패러다임이 문제를 해결하도록 구성되는 경우와 같은 다양한 실시예들에서, 시스템은 로직 회로를 충족시키는 비트 스트링들이 0의 에너지를 갖고 다른 모든 비트 스트링들이 0보다 큰 에너지를 갖도록 구성될 수 있고, 여기서 개별 최적화 문제는 원래의 계산 문제에 대한 솔루션을 확립하는 방식으로 해결될 수 있다.
게다가, 다른 실시예들에서, 개별 최적화 문제는 양자 프로세서와 같은 컴퓨터 프로세서를 이용하여 해결될 수 있다. 그러한 경우에, 개별 최적화 문제를 해결하는 것은, 예를 들어, 양자 프로세서를, 최적화 목적(들)을 충족시키는 비트 스트링을 확립하기 위해 시스템의 에너지를 최소화하는 구성으로 진화시키는 것을 수반할 수 있다. 따라서, 일부 실시예들에서, 개별 최적화 문제를 해결하는 동작은 3개의 동작을 포함할 수 있다. 먼저, 개별 최적화 문제가 컴퓨터 프로세서에 매핑될 수 있다. 일부 실시예들에서, 컴퓨터 프로세서는 양자 및/또는 초전도성 프로세서를 포함할 수 있고, 개별 최적화 문제를 컴퓨터 프로세서에 매핑하는 것은 양자 및/또는 초전도성 프로세서의 요소들(예를 들어, 큐비트들 및 커플러들)을 프로그래밍하는 것을 포함할 수 있다. 개별 최적화 문제를 컴퓨터 프로세서에 매핑하는 것은 컴퓨터 판독가능 비일시적 저장 매체 또는 메모리(예를 들어, 휘발성 또는 비휘발성)와 같은 적어도 하나의 컴퓨터 또는 프로세서 판독가능 저장 매체에서의 개별 최적화 문제를 포함할 수 있다.
따라서, 위 내용을 고려하여, 다양한 경우들에서, 예컨대 게놈 물질에 대해, 서열 분석 파이프라인을 실행하기 위한 디바이스, 시스템, 및 방법이 제공된다. 예를 들어, 게놈 물질은 예컨대 이미지 파일, BCL, FASTQ 파일 등의, 복수의 게놈 데이터의 판독을 포함할 수 있다. 다양한 실시예들에서, 디바이스 및/또는 시스템은, 예를 들어, 메모리에 저장된 하나 이상의 유전 기준 서열의 인덱스를 사용하여, 게놈 데이터, 예를 들어, 게놈 데이터의 판독들에 대해 서열 분석을 실행하기 위해 이용될 수 있으며, 여기서 게놈 데이터의 각각의 판독 및 각각의 기준 서열은 뉴클레오티드들의 서열을 표현한다.
특정하게는, 다양한 실시예들에서, 디바이스는 예컨대 양자 로직 회로들, 예를 들어, 하드와이어드 양자 로직 회로들의 세트로 형성된, 양자 컴퓨팅 디바이스일 수 있으며, 예를 들어, 여기서 로직 회로들은 서로 상호접속된다. 다양한 경우들에서, 양자 로직 회로들은 하나 이상의 초전도성 연결에 의해 상호접속될 수 있다. 추가적으로, 초전도성 연결들 중 하나 이상은, 예컨대 메모리에 액세스하기 위한 메모리 인터페이스를 포함할 수 있다. 로직 회로들 및 인터커넥트들은 함께, 그 자체가 하나 이상의 큐비트의 세트로서 표현되는 양자 상태로서 표현되는 정보를 프로세싱하도록 구성될 수 있다. 더 특정하게는, 하드와이어드 양자 로직 회로들의 세트는 프로세싱 엔진들의 세트로서 배열될 수 있고, 예컨대 이 경우 각각의 프로세싱 엔진은 하드와이어드 양자 로직 회로들의 서브세트로 형성될 수 있고, 게놈 데이터의 판독들에 대해 서열 분석 파이프라인에서 하나 이상의 단계를 수행하도록 구성될 수 있다.
예를 들어, 이 프로세싱 엔진들의 세트는 이미지 프로세싱, 염기 추출, 매핑, 정렬, 소팅, 변이 추출, 및/또는 다른 게놈학 및/또는 생물정보학 프로세싱 모듈을 포함하도록 구성될 수 있다. 예를 들어, 다양한 실시예들에서, 예컨대 제1 하드와이어드 구성의 매핑 모듈이 포함될 수 있다. 추가적으로, 추가 실시예들에서, 예컨대 제2 하드와이어드 구성의 정렬 모듈이 포함될 수 있다. 게다가, 예컨대 제3 하드와이어드 구성의 소팅 모듈이 포함될 수 있다. 그리고, 추가적인 실시예들에서, 예컨대 제4 하드와이어드 구성의 변이 추출 모듈이 포함될 수 있다. 게다가, 다양한 실시예들에서, 추가 하드와이어드 구성들의 이미지 프로세싱 및/또는 염기 추출 모듈이 포함될 수 있고, 예컨대 이 경우 이들 하드와이어드 구성 중 하나 이상은 프로세싱 엔진들의 세트로서 배열될 수 있는 하드와이어드 양자 로직 회로들을 포함할 수 있다.
더 특정하게는, 특정한 경우들에서, 양자 컴퓨팅 디바이스 및/또는 시스템은 매핑 모듈을 포함할 수 있고, 여기서 매핑 모듈은 프로세싱 엔진들의 세트로서 배열되는 양자 로직 회로들의 세트를 포함하고, 이들 중 하나 이상은 매핑 절차의 하나 이상의 단계를 수행하도록 구성된다. 예를 들어, 하나 이상의 양자 프로세싱 엔진은, 예컨대 복수의 초전도성 연결 중 하나 이상을 통해, 게놈 데이터의 판독을 수신하도록 구성될 수 있다. 게다가, 하나 이상의 양자 프로세싱 엔진은, 시드를 생성하기 위해 판독의 일부를 추출하도록 구성될 수 있고, 예컨대 이 경우 시드는 판독에 의해 표현되는 뉴클레오티드들의 서열의 서브세트를 표현할 수 있다. 추가적으로, 양자 프로세싱 엔진들 중 하나 이상은 시드에 기초하여 인덱스 내의 제1 어드레스를 계산하고, 메모리 내의 인덱스 내의 어드레스에 액세스하여, 어드레스로부터 레코드를 수신하도록 구성될 수 있고, 예컨대 이 경우 레코드는 유전 기준 서열 내의 위치 정보를 표현한다. 더욱이, 하나 이상의 양자 프로세싱 엔진은, 예를 들어, 레코드에 기초하여, 판독으로부터 유전 기준 서열로의 하나 이상의 매칭 위치를 결정하고; 그 매칭 위치들 중 적어도 하나를 메모리 인터페이스를 통해 메모리에 출력하도록 구성될 수 있다.
게다가 또한, 매핑 모듈은, 예를 들어, 뉴클레오티드들의 서열의 제1 서브세트에 포함되지 않은 뉴클레오티드들의 서열의 제2 서브세트 및 레코드 양쪽 모두에 기초하여, 인덱스 내의 제2 어드레스를 계산하도록 구성된 프로세싱 엔진들의 세트로서 배열되는 양자 로직 회로들의 세트를 포함할 수 있다. 그 후, 프로세싱 엔진(들)은 메모리 내의 인덱스 내의 제2 어드레스에 액세스하여 제2 어드레스로부터 제2 레코드를 수신할 수 있고, 예컨대 이 경우 제2 레코드 또는 후속 레코드는 유전 기준 서열 내의 위치 정보를 포함한다. 프로세싱 엔진은 위치 정보에 기초하여, 판독으로부터 유전 기준 서열로의 하나 이상의 매칭 위치를 결정하도록 추가로 구성될 수 있다.
추가적으로, 다양한 경우들에서, 양자 컴퓨팅 디바이스 및/또는 시스템은 정렬 모듈을 포함할 수 있고, 여기서 정렬 모듈은 프로세싱 엔진들의 세트로서 배열되는 양자 로직 회로들의 세트를 포함하고, 이들 중 하나 이상은 정렬 절차의 하나 이상의 단계를 수행하도록 구성된다. 예를 들어, 하나 이상의 양자 프로세싱 엔진은 메모리로부터 판독에 대한 복수의 매핑된 위치를 수신하고, 메모리에 액세스하여 매핑된 위치들 각각에 대응하는 유전 기준 서열의 세그먼트를 검색하도록 구성될 수 있다. 정렬 모듈로서 형성된 하나 이상의 프로세싱 엔진은, 유전 기준 서열의 각각의 검색된 세그먼트에 대한 판독의 정렬을 계산하여 각각의 정렬에 대한 스코어를 생성하도록 추가로 구성될 수 있다. 게다가, 일단 하나 이상의 스코어가 생성되었다면, 판독의 적어도 하나의 최고 스코어링 정렬이 선택될 수 있다. 특정한 경우들에서, 양자 컴퓨팅 디바이스는 스미스 워터만 정렬과 같은, 갭이 있는 또는 갭이 없는 정렬을 수행하도록 구성되는 프로세싱 엔진들의 세트로서 배열되는 양자 로직 회로들의 세트를 포함할 수 있다.
게다가, 특정 경우들에서, 양자 컴퓨팅 디바이스 및/또는 시스템은 변이 추출 모듈을 포함할 수 있고, 여기서 변이 추출 모듈은 프로세싱 엔진들의 세트로서 배열되는 양자 로직 회로들의 세트를 포함하고, 이들 중 하나 이상은 변이 추출 절차의 하나 이상의 단계를 수행하도록 구성된다. 예를 들어, 양자 컴퓨팅 변이 추출 모듈은, 예를 들어, 메모리에 저장된 하나 이상의 후보 단상형을 사용하여, 복수의 게놈 데이터의 판독에 대해 분석을 실행하도록 적응되는 양자 로직 회로들의 세트를 포함할 수 있고, 여기서 게놈 데이터의 각각의 판독 및 각각의 후보 단상형은 뉴클레오티드들의 서열을 표현한다.
구체적으로는, 양자 로직 회로들의 세트는 게놈 데이터의 판독들 중 하나 이상을 수신하고, 하나 이상의 후보 단상형을 생성하고/하거나 예를 들어, 메모리로부터, 예컨대 복수의 초전도성 연결 중 하나 이상을 통해 수신하도록 구성되는 하나 이상의 양자 프로세싱 엔진으로서 형성될 수 있다. 게다가, 하나 이상의 양자 프로세싱 엔진은, 메모리로부터의 하나 이상의 후보 단상형 및 게놈 데이터의 판독 중 하나 이상을 수신할 뿐만 아니라, 하나 이상의 판독 각각에서의 뉴클레오티드들을 하나 이상의 후보 단상형과 비교하여, 정확한 변이 추출을 표현하는 각각의 후보 단상형의 확률을 결정하도록 구성될 수 있다. 추가적으로, 양자 프로세싱 엔진들 중 하나 이상은 결정된 확률에 기초하여 출력을 생성하도록 구성될 수 있다.
추가적으로, 다양한 경우들에서, 양자 로직 회로들의 세트는, 적어도 하나의 후보 단상형이, 예를 들어, 복수의 판독의 소스 유기체의 진정한 뉴클레오티드들의 서열인 것에 기초하여 복수의 판독의 각각의 판독을 관찰할 확률을 결정하도록 구성되는 하나 이상의 양자 프로세싱 엔진으로서 형성될 수 있다. 특정한 경우들에서, 결정 확률에 관하여, 하나 이상의 양자 프로세싱 엔진은 은닉 마르코프 모델을 실행하도록 구성될 수 있다. 더 특정하게는, 추가적인 실시예들에서, 하나 이상의 양자 프로세싱 엔진은 복수의 판독을 하나 이상의 연속 뉴클레오티드 서열로 병합하고/하거나 하나 이상의 연속 뉴클레오티드 서열로부터 하나 이상의 후보 단상형을 생성하도록 구성될 수 있다. 예를 들어, 다양한 실시예들에서, 복수의 판독의 병합은 하나 이상의 양자 프로세싱 엔진이 드 브루인 그래프를 구성하는 것을 포함한다.
따라서, 위 내용을 고려하여, 게놈학 및/또는 생물정보학 프로세싱에 관련된 문제를 해결하는 데에 다양한 계산들을 수행하는 시스템이 제공된다. 예를 들어, 시스템은 온사이트 자동화된 서열분석기, 예를 들어 NGS, 및/또는 프로세싱 서버 중 하나 이상을 포함할 수 있으며, 이들 중 어느 하나 또는 양쪽 모두는 하나 이상의 CPU, GPU, 및/또는 다른 집적 회로들을 포함할 수 있는데, 예컨대 서열 분석 파이프라인에서 하나 이상의 단계를 수행하기 위해 본 명세서에 설명된 바와 같이 구성되는 FPGA, ASIC 및/또는 구조화된 ASIC를 포함한다. 특정하게는, 차세대 서열분석기는 복수의 핵산 서열을 서열 분석하여, 서열 분석된 핵산 서열을 표현하는 하나 이상의 이미지, BCL 및/또는 FASTQ 파일을 생성하도록 구성될 수 있고, 이 핵산 서열은 DNA 및/또는 RNA 서열일 수 있다. 이들 서열 파일들은 서열분석기 자체에 의해 또는 연관된 서버 유닛에 의해 프로세싱될 수 있는데, 예컨대 이 경우 서열분석기 및/또는 연관된 서버는 2차 서열 분석 파이프라인에서 하나 이상의 단계를 수행하기 위해 본 명세서에 설명된 바와 같은, FPGA 또는 ASIC와 같은 집적 회로를 포함한다.
그러나, 자동화된 서열분석기 및/또는 연관된 서버가 서열분석기로부터 생성된 데이터에 대해 2차 서열 분석을 수행하도록 구성되지 않은 경우와 같은 다양한 경우들에서, 생성된 데이터는, 예컨대 클라우드 중재 인터페이스를 통해, 데이터에 대해 2차 및/또는 3차 서열 분석을 수행하도록 구성되는 원격 서버로 전송될 수 있다. 그러한 경우에, 클라우드 액세스 가능 서버는, 예컨대 이미지, BCL, 및/또는 FASTQ 형태로 생성된 서열 데이터를 수신하도록 구성될 수 있고, 수신된 데이터에 대해, 1차, 예를 들어, 이미지 프로세싱, 및/또는 2차 및/또는 3차 프로세싱 분석, 예컨대 서열 분석 파이프라인을 수행하도록 추가로 구성될 수 있다. 예를 들어, 클라우드 액세스 가능 서버는 CPU 및/또는 GPU를 포함하는 하나 이상의 서버일 수 있으며, 이들 중 하나 또는 양쪽 모두는 본 명세서에 설명된 바와 같은 FPGA 또는 ASIC와 같은 집적 회로와 연관될 수 있다. 특정하게는, 특정 경우들에서, 클라우드 액세스 가능 서버는 본 명세서에 설명된 바와 같은 양자 컴퓨팅 서버일 수 있다.
구체적으로, 클라우드 액세스 가능 서버는 수신된 데이터에 대해 1차, 2차, 및/또는 3차 게놈학 및/또는 생물정보학 분석을 수행하도록 구성될 수 있으며, 이 분석들은 이미지 프로세싱, 염기 추출, 매핑, 정렬, 소팅, 및/또는 변이 추출 프로토콜들 중 하나 이상에서 하나 이상의 단계를 수행하는 것을 포함할 수 있다. 특정 경우들에서, 단계들 중 일부는 CPU 또는 GPU와 같은 하나의 프로세싱 플랫폼에 의해 수행될 수 있고, 다른 것들은, 서열 분석 파이프라인에서의 단계들 중 다양한 것들을 수행하도록 특정하게 구성되는, FPGA 또는 ASIC와 같은 연관된, 예를 들어, 타이트하게 결합된 집적 회로와 같은 다른 프로세싱 플랫폼에 의해 수행될 수 있다. 그러한 경우들에서, 데이터 및 분석 결과들이 하나의 플랫폼으로부터 다른 플랫폼으로 전송되는 경우, 시스템 및 그 컴포넌트들은 전송 전에 데이터를 압축하고, 일단 전송되면 데이터를 압축해제하도록 구성될 수 있으며, 이에 따라 시스템 컴포넌트들은 예컨대 전송을 위해, SAM, BAM, 또는 CRAM 파일들 중 하나 이상을 생성하도록 구성될 수 있다. 추가적으로, 다양한 실시예들에서, 클라우드 액세스 가능 서버는 본 명세서에 설명된 바와 같이, 서열 분석 파이프라인에서 하나 이상의 단계를 수행하도록 본 명세서에서 구성되는 양자 컴퓨팅 플랫폼일 수 있고, 본 명세서에 개시된 방법들 중 하나 이상에 따른 하나 이상의 2차 및/또는 3차 프로세싱 단계들의 수행을 포함할 수 있다.
게다가, 양자 컴퓨팅과 관련하여, 본 디바이스들, 시스템들, 및 방법들과 함께 이용될 수 있는 예시적 양자 프로세서들 및 이들의 사용 방법들의 상세 및 실시예들이 미국 특허 번호 7,135,701; 7,533,068; 7,969,805; 8,560,282; 8,700,689; 8,738,105; 9,026,574; 9,355,365; 9,405,876; 뿐만 아니라 이들의 다양한 대응 건들에 기술되어 있고, 그 전체가 인용에 의해 본 명세서에 포함된다.
추가적으로, 위에 설명된 인공 지능 모듈에 관련하여, 일 양태에서, 클라우드 액세스 가능 인공 지능 모듈이 제공되고, 본 명세서에 개시된 BioIT 파이프라인의 다른 컴포넌트들 중 하나 이상에 통신가능하게 그리고 동작가능하게 결합되도록 구성된다. 예를 들어, A/I 모듈은 본 명세서에 개시된 시스템의 다양한 프로세스들을 효율적으로 지시 및/또는 제어하기 위해 WMS와 밀접하게 작동할 수 있다. 따라서, 다양한 실시예들에서, A/I 모듈이 제공되며, 여기서 A/I 모듈은 게놈 세계와 임상 세계 사이의 인터페이스로서 역할을 하도록 구성된다.
예를 들어, 다양한 경우들에서, BioIT 시스템은 임상 데이터를 수신하도록 구성될 수 있다. 그러한 경우에, 워크플로우 관리자 시스템은 임상 데이터 및 다른 그러한 데이터를 분석하고, 임상 데이터에 대한 그의 분석에 따라 결과 데이터를 유도하기 위해, 하나 이상의 결정론적 규칙 시스템을 구현하도록 구성될 수 있다. 예를 들어, 특정 실시예들에서, 시스템의 다양한 데이터베이스들은 관계형 아키텍처를 갖도록 구성될 수 있다.
이들 구성은 하나 이상의 테이블 구조에 의해 표현될 수 있다. 그 후, 예를 들어 일련의 테이블들이 이용될 수 있고 그에 의해 반복적인 방식으로 WMS에 의해 상관들이 이루어질 수 있다. 예를 들어, 다양한 사용 모델들에서, 피험자의 이름과 의료 상태에 관하여 제1 상관이 이루어질 수 있다. 그 후 다른 테이블을 이용하여 피험자의 의료 상태와 그들의 약을 상관시킬 수 있다. 마찬가지로, 추가 테이블을 이용하여 증상의 완화 및/또는 질병 자체에 대한 약의 진행을 상관시킬 수 있다. 테이블들을 상관시키기 위해 키가 사용될 수 있으며, 이 키는 질문 프롬프트 또는 커맨드에 응답하여 액세스될 수 있다. 키는 이름, 번호, 예를 들어, 사회 보장 번호, 세금 식별 번호, 직원 번호, 전화 번호 등과 같은 임의의 공통 식별자일 수 있으며, 그에 의해 테이블들 중 하나 이상이 액세스, 상관, 및/또는 질문 응답될 수 있다. 따라서, 키가 없다면, 하나의 테이블 내의 정보와 다른 테이블의 정보 사이의 상관을 구축하는 것이 더 어렵게 된다.
그러나, 다른 경우들에서, A/I 모듈은 생성 및/또는 제공된 데이터에 대해 더 포괄적인 분석을 제공하도록 구성될 수 있다. 예를 들어, A/I 모듈은 시스템의 데이터에 대해 하나 이상의 머신 학습 프로토콜을 구현하도록 구성될 수 있고, 이들은 예를 들어, 시스템에 의해 생성된, 게놈 데이터와, 하나 이상의 피험자의 임상 증거 사이의 상관을, 예컨대 시스템에 입력된 EMR 및 다른 임상적으로 관련된 데이터을 고려하여 행하도록 AI 모듈을 훈련시키도록 고안되어 있다.
구체적으로는, A/I 모듈은 수신된 입력의 유형 및 특성에 기초하여 출력이 어떻게 달성되었는지를 더 빠르게, 예를 들어, 즉시 인식하도록 시스템을 훈련시키는 것에 관한 프로그래밍을 포함할 수 있다. 따라서, 시스템은 그것이 수신하는 입력들, 및 그것이 출력하는 결과들로부터 학습하고, 수신된 데이터의 초기 입력에 기초하여 더 빠르고 정확하게 상관들을 도출할 수 있도록 구성된다. 전형적으로, 입력 데이터는 2개의 일반 유형일 수 있다. 제1 인스턴스에서, 데이터는 출력, 예를 들어, 응답이 알려져 있는 유형일 수 있다. 이러한 유형의 데이터는 시스템에 입력되고 훈련 목적을 위해 사용될 수 있다. 제2 유형의 데이터는, 응답이 알려져 있지 않고, 따라서 결정되어야 하는 것일 수 있고, 이 데이터는 분석이 이루어져야 할 게놈 데이터, 또는 임상적으로 관련 있는 결과들이 결정되어야 할 임상 데이터일 가능성이 있을 것이다. 구체적으로는, 이들 방법들은 제2 종류의 입력 데이터에 대한 결과를 더 잘 예측하도록, 제1 유형의 입력 데이터로부터 학습하는 A/I 모듈의 능력을 향상시키기 위해 사용될 수 있다. 구체적으로는, 이력적 증거에 기초하여, A/I 모듈은 이전에 관찰된 데이터에 기초하여 결과들을 예측하도록 구성될 수 있다.
더 구체적으로는, 임상 게놈학 플랫폼이 본 명세서에서 제시되고, 여기서 임상 게놈학 플랫폼은 게놈학 데이터와 질병들의 임상 결과들을 상관시키도록 구성된다. 그러한 경우에, 피험자들의 임상 프로파일들이 시스템에 입력될 수 있고, 그들의 결정된 게놈 프로파일과 함께 평가될 수 있다. 특정하게는, 이들 2개의 데이터세트를 결합함에 있어서, A/I 모듈은 그들 사이의 다양한 상호관계들을 결정하도록 구성된다. 따라서, 제1 단계에서, 그래프 데이터베이스 또는 지식 그래프가 구성될 수 있다. 예를 들어, 이 경우에, 지식 그래프는 기본적으로 주어, 술어, 및 목적어를 포함하는 3개의 전형적인 요소로 구성될 수 있고, 이들은 노드들을 형성할 수 있고, 노드들 간의 관계가 결정되어야 한다. 임의의 특정 데이터 포인트가 노드로서 선택될 수 있고, 노드들은 큐비트들이 수행되는 것에 기초하여 달라질 수 있다. 결정될 수 있는 여러 상이한 유형의 관계가 존재한다. 예를 들어, 관계들은 그들의 효과들에 기초하여 결정될 수 있는데, 예를 들어, 이들은 효과 기반이다; 또는 이들은 추론들, 예를 들어, 알려져 있지 않지만 결정가능한 관계들에 기초하여 결정될 수 있다.
따라서, 지식 그래프를 구성하는 것에 관하여, 임의의 특정 데이터 포인트가 노드를 형성할 수 있다. 예를 들어, 그래프의 하나의 측면에서 질병 상태가 노드를 형성할 수 있고, 그래프의 다른 측면에서, 유전형, 예를 들어, 변이들의 서열이 노드를 형성할 수 있다. 이들 2개의 노드 사이에는 제3 노드, 예를 들어 하나 이상의 증상, 하나 이상의 약물, 하나 이상의 알레르기, 하나 이상의 다른 상태 또는 표현 형질, 예를 들어 혈압, 콜레스테롤 등과 같은 일련의 제3 노드들이 있을 수 있다. 추가적으로, 이들 노드 사이에는 결정될 수 있는 관계들이 있다.
구체적으로는, 지식 그래프를 구축할 때, 예컨대 의료 레코드 시설로부터, 시스템 내로 입력되는 임상 데이터, 예를 들어, 전자 의료 레코드, 의료 상태들의 가족 이력 등은 전자적으로 암호화되고 안전하게 전송될 수 있다. 마찬가지로, 본 명세서에 설명된 2차 프로세싱 단계들에 따라 피험자로부터의 게놈 데이터가 서열 분석되고 생성될 수 있다. 게다가, 일단 이들 2개의 노드가 확립되면, 하나 이상의 제3 노드가 시스템에 입력될 수 있고, 이들의 존재로부터 2개의 원래의 노드 사이의 관계(들)가 결정될 수 있다.
예를 들어, 일 예에서, 제1 노드는 사람 또는 사람들의 인구집단의 의료 레코드들에 의해 표현될 수 있고, 제2 노드는 질병 특성에 의해 표현될 수 있다. 그러한 경우에, 하나 이상의 제3 노드가 시스템에 입력되고 그래프 내에서 생성될 수 있고, 예컨대 이 경우 제3 노드는 약; 물리적, 생물학적, 정신적, 상태 및/또는 특성; 알레르기; 지리적 영역; 식단, 식품 및/또는 성분; 환경 조건; 지리적 조건; 전력선들, 셀룰러 타워들; 및/또는 다른 유사한 것일 수 있다. 그 후, 이들 3개의 항목 사이의 다양한 연결 포인트들을 분석함으로써 일련의 관계가 결정될 수 있다. 특정하게는, 특정한 경우에, 하나의 노드는 질병 상태를 앓고 환자를 표현할 수 있고, 제2 노드는 환자의 게놈 데이터일 수 있고, 제3 노드들 중에는, 환자의 게놈 변형들, 예를 들어, 염색체별, 피험자의 돌연변이들, 그들의 약물, 생리적 상태 등이 있을 수 있다. 마찬가지로, 이 프로세스는 동일한 진단 및/또는 조건을 갖는 다수의 피험자에 대해 반복될 수 있다. 그러므로, 이와 같은 방식으로 임상 및 게놈학 세계들 사이의 상관이 결정될 수 있다.
따라서, 임상 게놈학 그래프를 구축하는 단계는 앵커 노드들을 정의하는 것이고, 이들은 모든 다양한 공통성들이 정의되고 탐색되는 2개의 경계 요소를 표현한다. 그러므로, 추가 단계는 그래프에서 제3 노드로서 표현될 수 있는, 2개의 앵커 노드 사이의 모든 가능한 알려진 대응 관계들을 정의하는 것이다. 이들 알려진 대응 관계들은 하나의 노드 또는 다른 하나의 특성에 의해 야기되는 효과들 및/또는 그 특성들을 상세히 기술하며 주위에 구축될 수 있다. 이들은 노드들 사이의 알려진 및/또는 관찰가능한 관계들일 수 있다. 이들 알려진 관계들로부터, 제2 유형의 관계가 탐색될 수 있고/있거나 추론들에 기초하여 어떤 관계들이 구축될 수 있는지가 결정될 수 있다. 게다가, 인과적 및/또는 예측가능 결과들을 더 잘 결정하기 위해, 다양한 상이한 관계들이, 예컨대, 확실성의 정도, 공통성의 수, 노드를 공유하는 인스턴스의 수, 공통 관계의 수, 등에 기초하여 가중될 수 있다.
그러므로, 동적 지식 그래프의 구성 및 구현은 임상 게놈학 프로세싱 플랫폼의 심장부에 있다. 지적한 바와 같이, 글로벌 시스템의 다양한 프로세싱 플랫폼들은 그것의 다양한 컴포넌트들 사이에 데이터를 심리스하게 전송하기 위해 함께 결합될 수 있다. 예를 들어, 지적한 바와 같이, 매핑, 정렬, 및/또는 변이 추출 파이프라인들은 그의 데이터, 예를 들어, 결과 데이터를 인공 지능 모듈에 전송하도록 구성될 수 있다. 특정하게는, A/I 모듈은 2차 프로세싱 플랫폼 컴포넌트들 중 하나 이상, 및/또는 시스템의 하나 이상의 다른 컴포넌트로부터의 데이터의 입력들을 수신하도록 구성될 수 있다. 더 특정하게는, A/I 모듈은 매핑기, 정렬기 및/또는 변이 추출 프로세싱 엔진들로부터 매핑, 정렬, 및/또는 변이 추출된 데이터를 수신하고, 그 데이터를 취하고 그것을 이용하여 지식 그래프 내에 하나 이상의 노드를 생성하도록 구성된다. 게다가, 지적한 바와 같이, A/I 모듈은, 하나 이상의 다른 소스로부터, 예컨대 의료 오피스, 건강 관리 서비스 제공자, 연구실, 레코드 저장 시설 등으로부터 입력 데이터를 수신하고 - 예컨대 이 경우 레코드들은 하나 이상의 피험자의 신체적, 정신적 및/또는 감정 웰빙에 관한 데이터를 포함함 -, 그 데이터를 취하고, 지식 그래프 내에 하나 이상의 노드를 생성하도록 구성될 수 있다.
추가적으로, 일단 지식 그래프 아키텍처가 구성되면, 그것은 지식 구조에 점점 더 많은 관련 데이터를 추가하고, 점점 더 많은 잠재적인 노드 및/또는 관계를 구축함으로써 계속적으로 업데이트되고 성장될 수 있다. 그러한 경우에, 경계 노드들은 노드들의 임의의 조합일 수 있고, 이에 따라, 특정 경우들에서, 사용자 선택가능할 수 있다. 예를 들어, 다양한 실시예들에서, 시스템은 제3자에 의해 액세스 가능하도록 구성될 수 있다. 그러한 경우에, 사용자는, 예를 들어, 적합하게 구성된 사용자 인터페이스를 통해 A/I 모듈에 액세스하고, 관련 정보를 시스템에 업로드하고/하거나, 예를 들어, 이들을 클릭하거나 드래그 앤 드롭하는 것에 의해 문의를 바인딩할 관련 노드들을 결정할 수 있고, A/I 모듈에 의해 응답될 관련 질문을 형성할 수 있다. 따라서, 사용자는 경계 노드들을 검토 및/또는 선택하고, 그 후 시스템으로 하여금 선택된 노드들을 이용하여 적절한 지식 맵을 생성하고, 노드들 사이의 관계들을 결정할 수 있게 할 수 있고, 그로부터 다양한 문의들이 쿼리되고 응답될 수 있거나, 적어도, 예를 들어, A/I 시스템에 의해 추론될 수 있다.
예를 들어, 하나의 사용 모델에서, 사용자는 주어진 질병에 대해 특정 약물 투약량이 환자에 어떻게 영향을 미치는지를 알기를 원하는 의사일 수 있다. 결과적으로, 의사는 환자의 EMR, 질병 상태, 및 약물 투약량을 업로드할 수 있고, 이 데이터를 이용하여 A/I 모듈이 적절한 지식 그래프를 생성할 수 있고(및/또는 이미 존재하는 지식 그래프에 추가할 수 있음), 그 지식 그래프로부터 경계 노드들이 선택될 수 있고 관계들이 결정될 수 있다. 게다가, 다양한 경우들에서, 사용자는 환자의 유전 데이터를 업로드할 수 있고, 이 데이터는 2차 프로세싱을 겪을 수 있고, 그의 결과들, 예를 들어, 매핑, 정렬, 및/또는 변이 추출 결과 데이터가 A/I 모듈에 업로드될 수 있다. 그러한 경우에, 질병 및/또는 EMR 및/또는 가족 의료 이력 데이터는 게놈 데이터와 상관될 수 있고 그 데이터로부터 다양한 관계들이 결정되고, 추론들이 평가되고, 예측이 이루어질 수 있다.
구체적으로는, 피험자의 VCF가 시스템에 입력될 수 있고, 예를 들어, 모든 결정된 염색체 속성들이, 예를 들어, 노드들의 성상도로서 업로드될 수 있고, 이 노드들은, 예컨대 시스템에 쿼리하고 그것이 응답이 추론될 수 있는 적절한 연결들을 생성할 수 있게 하는 것에 의해, 피험자에 관련된 다양한 관계들을 결정하는 데 사용될 수 있다. 더 구체적으로는, 하나 이상의 피험자의 표현적 특성, 예를 들어 인간 표현형 온톨로지가 시스템 내로 업로드되어, 노드들의 추가 성상도를 생성할 수 있다. 예를 들어, 2명의 사람의 게놈 및/또는 의료 이력들이 시스템 내로 입력될 때, 이들 사이의 임의의 관계들이, 예컨대 공통 유전형들, 표현형, 상태, 환경, 지리, 알레르기, 민족-문화 배경, 약물 등에 관하여, A/I 모듈에 의해 결정될 수 있다.
게다가, 피험자 내의 또는 피험자들 사이의 2개 이상의 특성 사이의 관계들이 결정될 수 있다. 예를 들어, 피험자의 심장 수축 및 심장 확장 혈압 사이의 관계가 시스템에 의해 결정될 수 있다. 구체적으로는, 일련의 이력적 심장 수축 및 심장 확장 판독들이 시스템 내에 입력될 수 있고, 그에 의해 시스템의 머신 학습 플랫폼이 판독들을 분석하고/하거나 그 둘 사이의 하나 이상의 관계를 결정할 수 있고, 따라서 주어진 심장 수축 입력이 시스템에 입력되면, 둘 사이의 예측 가중치들을 고려하여, 예측된 심장 확장 출력이 주어질 수 있다. 유의해야 할 점은 비록 선행 예들은 단일 피험자 내에서 혈압에 관하여 주어졌지만, 동일한 것은 예컨대 다수의 피험자 및/또는 다양한 조건에 관하여, 서로에 대해 수학적 관계에 있는 임의의 주어진 노드들에 적용될 것이라는 점이다.
추가적으로, 비록 일부 경우들에서, 관계들은 예컨대 정보의 신경망을 형성하기 위해 선형 어레이로 구성될 수 있지만, 다양한 다른 경우들에서, 관계들은 심화 학습 프로토콜에서와 같이 다수의 스테이지들에서 형성될 수 있다. 예를 들어, A/I 시스템은 예컨대 심화 학습의 목적을 위해, 계층화된 또는 멀티 스테이지 방식으로 정보를 프로세싱하도록 적응될 수 있다. 따라서, 시스템은 스테이지들에서 데이터를 평가하도록 구성될 수 있다. 구체적으로는, A/I 모듈은, 예컨대 스테이지별로, 학습 프로토콜을 수행할 때와 같이, 그것이 다양한 데이터를 검사함에 따라, 시스템에 의해, 예를 들어, 관계들의 특성 및/또는 이력적 증거에 기초하여, 데이터 사이의 각각의 연결이 가중되도록 적응될 수 있다.
시스템 내에 개시되는 학습의 스테이지들이 많을수록 접합들 사이의 가중치가 더 나아질 것이고, 학습이 더 깊어질 것이다. 게다가, 스테이지들에서 데이터를 업로드하는 것은 시스템 내의 데이터의 더 큰 수렴을 허용한다. 특정하게는, 업로드될 데이터의 가장 현저한 특징들을 더 잘 조직하고, 가중하고, 분석하기 위해 다양한 특징 추출 패러다임들이 또한 이용될 수 있다. 추가적으로, 데이터를 더 잘 상관시키기 위해, 하나 이상의 사용자는 기본 가중 함수들을 입력 및/또는 변조할 수 있는 반면, 시스템 자체는 활성 학습 프로토콜들에 기초하여 더 진보된 가중 함수를 이용할 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에 설명된 내용의 하나 이상의 양태 또는 특징은 예를 들어, 정보를 사용자에게 디스플레이하기 위한 음극선관(CRT), 액정 디스플레이(LCD) 또는 발광 다이오드(LED) 모니터와 같은 디스플레이 디바이스, 및 예를 들어, 사용자가 입력을 컴퓨터에 제공할 수 있는 마우스 또는 트랙볼과 같은 포인팅 디바이스 및 키보드를 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류의 디바이스들이 또한 사용자와의 상호작용을 제공하기 위해 사용될 수 있다. 예를 들어, 사용자에게 제공된 피드백은 예를 들어, 시각 피드백, 청각 피드백, 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백일 수 있고; 사용자로부터의 입력은 음향, 음성, 또는 촉각 입력을 포함하지만 이에 제한되지 않는 임의의 형태로 수신될 수 있다. 다른 가능한 입력 디바이스들은 터치 스크린들 또는 단일 또는 멀티-포인트 저항성 또는 용량성 트랙패드들과 같은 다른 터치 감지 디바이스들, 음성 인식 하드웨어 및 소프트웨어, 광학 스캐너들, 광학 포인터들, 디지털 이미지 캡처 디바이스들 및 연관된 해석 소프트웨어 등을 포함하지만, 이에 제한되지는 않는다.
본 명세서에 설명된 내용은 원하는 구성에 따라 시스템, 장치, 방법들 및/또는 물품들에서 구현될 수 있다. 전술한 설명에 설명된 구현들은 본 명세서에 설명된 내용과 일관된 모든 구현을 나타내지는 않는다. 대신에, 그것들은 단지 설명된 내용과 관련된 양태들과 일관된 일부 예일 뿐이다. 비록 소수의 변이들이 위에 상세히 설명되었지만, 다른 수정들 또는 추가들이 가능하다. 특히, 본 명세서 설명된 것에 추가하여 추가의 특징들 및/또는 변이들이 제공될 수 있다. 예를 들어, 위에 설명된 구현들은 개시된 특징들의 다양한 조합들 및 부조합들 및/또는 위에 개시된 여러 추가 특징들의 조합들 및 부조합들에 관한 것일 수 있다. 또한, 첨부 도면들에 도시된 및/또는 본 명세서에 설명된 로직 흐름들은 바람직한 결과를 달성하기 위해 도시된 특정 순서, 또는 순차적 순서를 반드시 요구하지는 않는다. 다른 구현들은 다음의 청구항들의 범위 내에 있을 수 있다.

Claims (29)

  1. 서열 분석 파이프라인을 실행하기 위한 게놈학 분석 플랫폼으로서, 상기 게놈학 분석 플랫폼은:
    제1 컴퓨팅 인스턴스 유형의 세트 - 각각의 제1 컴퓨팅 인스턴스 유형은 게놈 서열 데이터를 표현하는 BCL 파일 및/또는 FASTQ 파일 중 하나 이상을 수신하고, 게놈 서열 데이터에 대해 하나 이상의 프리프로세싱 단계를 수행하여 결과 데이터의 제1 세트를 생성하기 위한 하나 이상의 소프트웨어 알고리즘에 의해 구성되는 CPU를 가짐 -;
    제2 컴퓨팅 인스턴스 유형의 세트 - 각각의 제2 컴퓨팅 인스턴스 유형은 결과 데이터의 제1 세트의 적어도 일부에 액세스하고, 서열 분석 파이프라인의 매핑 및 정렬 프로세싱 단계를 수행하여 결과 데이터의 제2 세트를 생성하기 위한 프로세싱 엔진의 세트를 배열하도록 펌웨어에 의해 구성되는 하드와이어드 디지털 로직 회로의 세트를 포함하는 FPGA를 가지며, 여기서 정렬 프로세싱 단계의 수행은 스미스-워터만 단계의 수행을 포함함 -; 및
    결과 데이터의 제2 세트의 적어도 일부에 액세스하고, 서열 분석 파이프라인의 변이 추출 프로세싱 단계를 수행하여 결과 데이터의 제3 세트를 생성하기 위한 제2 컴퓨팅 인스턴스 유형의 제2 세트 - 여기서 변이 추출 프로세싱 단계의 수행은 하나 이상의 은닉 마르코프 모델 (HMM) 프로세싱 단계의 수행을 포함함 -;
    를 포함하는, 게놈학 분석 플랫폼.
  2. 제1항에 있어서, 제1 컴퓨팅 인스턴스의 세트 및 제2 컴퓨팅 인스턴스의 세트와 연결된 재구성가능한 저장을 추가로 포함하며, 재구성가능한 저장은 제1 컴퓨팅 인스턴스 또는 제2 컴퓨팅 인스턴스의 세트의 연속적 활성 컴퓨팅 인스턴스에 의한 판독(read) 및 기입 액세스를 위해 하나 이상의 제1 컴퓨팅 인스턴스의 세트 및 하나 이상의 제2 컴퓨팅 인스턴스의 세트 사이에서 스위칭 가능한 것인 게놈학 분석 플랫폼.
  3. 제1항에 있어서, 재구성가능한 저장이 데이터 통신 네트워크를 통해 제1 컴퓨팅 인스턴스의 세트 및 제2 컴퓨팅 인스턴스의 세트에 연결되는 것인 게놈학 분석 플랫폼.
  4. 제1항에 있어서, 제1 컴퓨팅 인스턴스의 세트 및 제2 컴퓨팅 인스턴스의 세트에 의해 수행되는 서열 분석 파이프라인의 데이터 부하를 추정하기 위한 부하 추정기 로직을 갖는 워크플로우 관리자를 추가로 포함하며, 워크플로우 관리자는 추정된 데이터 부하를 기초로 제1 컴퓨팅 인스턴스의 세트 또는 제2 컴퓨팅 인스턴스의 세트의 수를 인스턴스화하도록 추가로 구성되는, 게놈학 분석 플랫폼.
  5. 제4항에 있어서, 부하 추정기 로직이 데이터 부하의 프로세싱을 위한 게놈학 분석 플랫폼의 효율을 최적화하기 위해 인스턴스화되는 제1 컴퓨팅 인스턴스의 세트 또는 제2 컴퓨팅 인스턴스의 세트의 수를 인스턴스화하도록 추가로 구성되는 것인 게놈학 분석 플랫폼.
  6. 제1항에 있어서, 제3 컴퓨팅 인스턴스의 세트를 추가로 포함하며, 각각의 제3 컴퓨팅 인스턴스는 서열 분석 파이프라인의 게놈 프로세싱 단계의 제3 세트를 수행하도록 그래픽 프로세싱 유닛 (GPU)에 지시하도록 구성되는 하나 이상의 그래픽 프로세싱 알고리즘에 응답하는 적어도 하나의 GPU를 가지며, 여기서 재구성가능한 저장은 데이터 통신 네트워크를 통해 제3 서버 인스턴스의 세트와 연결되는 것인 게놈학 분석 플랫폼.
  7. 서열 분석 파이프라인을 실행하기 위한 게놈학 분석 플랫폼으로서, 상기 게놈학 분석 플랫폼은:
    제1 컴퓨팅 인스턴스 유형의 세트 - 각각의 제1 컴퓨팅 인스턴스 유형은 서열 분석 파이프라인의 게놈 프로세싱 단계의 제1 세트를 수행하여 결과 데이터의 제1 세트를 생성하기 위한 하나 이상의 소프트웨어 알고리즘에 의해 구성되는 CPU를 가짐 -;
    제2 컴퓨팅 인스턴스 유형의 세트 - 각각의 제2 컴퓨팅 인스턴스 유형은 결과 데이터의 제1 세트의 적어도 일부에 액세스하고, 서열 분석 파이프라인의 매핑 및 정렬 프로세싱 단계를 포함하는 게놈 프로세싱 단계의 제2 세트를 수행하여 결과 데이터의 제2 세트를 생성하기 위한 프로세싱 엔진의 세트를 배열하도록 펌웨어에 의해 구성되는 하드와이어드 디지털 로직 회로의 세트를 포함하는 FPGA를 가짐 -;
    결과 데이터의 제2 세트의 적어도 일부에 액세스하고, 서열 분석 파이프라인의 게놈 프로세싱 단계의 제3 세트를 수행하여 결과 데이터의 제3 세트를 생성하기 위한 제2 컴퓨팅 인스턴스 유형의 제2 세트
    를 포함하는, 게놈학 분석 플랫폼.
  8. 제7항에 있어서, 제1 및 제2 컴퓨팅 인스턴스 유형의 세트의 외부에 있는 재구성가능한 저장을 추가로 포함하며, 재구성가능한 저장은 결과 데이터를 수신하고, 저장하고, 액세스를 제공하기 위해 제1 컴퓨팅 인스턴스 유형의 CPU 및 제2 컴퓨팅 인스턴스 유형의 FPGA 사이에서 통신가능하게 스위칭 가능한 것인 게놈학 분석 플랫폼.
  9. 제7항에 있어서, 게놈 프로세싱 단계의 제1 세트가 이미지 프로세싱, 염기 추출, 오류 정정, BCL 변환, 및 FASTQ 프로세싱 중 하나 이상을 포함하는 것인 게놈학 분석 플랫폼.
  10. 제9항에 있어서, 매핑이 버로우즈-휠러 변환 및 해시 테이블 함수 중 하나 이상을 수행하는 것을 포함하는 것인 게놈학 분석 플랫폼.
  11. 제9항에 있어서, 정렬이 스미스-워터만 정렬, 니들만-분쉬 정렬, 갭이 없는 정렬, 및 갭이 있는 정렬의 수행 중 하나 이상을 포함하는 것인 게놈학 분석 플랫폼.
  12. 제11항에 있어서, 게놈 프로세싱 단계의 제2 세트가 소팅 및 중복제거 중 하나 이상을 포함하는 것인 게놈학 분석 플랫폼.
  13. 제7항에 있어서,
    게놈 프로세싱 단계의 제2 세트가 스미스-워터만 연산의 수행을 포함하거나;
    게놈 프로세싱 단계의 제3 세트가 은닉 마르코프 모델 연산을 포함하는 것인
    게놈학 분석 플랫폼.
  14. 제7항에 있어서, 재구성가능한 저장이 데이터 통신 네트워크를 통해 제1 컴퓨팅 인스턴스의 세트 및 제2 컴퓨팅 인스턴스의 세트에 연결되는 것인 게놈학 분석 플랫폼.
  15. 제7항에 있어서, 제1 컴퓨팅 인스턴스의 세트 또는 제2 컴퓨팅 인스턴스의 세트에 의해 수행되는 서열 분석 파이프라인의 데이터 부하를 추정하기 위한 부하 추정기 로직을 갖는 워크플로우 관리자를 추가로 포함하며, 워크플로우 관리자는 추정된 데이터 부하를 기초로 제1 컴퓨팅 인스턴스의 세트 또는 제2 컴퓨팅 인스턴스의 세트의 수를 인스턴스화하도록 추가로 구성되는, 게놈학 분석 플랫폼.
  16. 제15항에 있어서, 부하 추정기 로직이 데이터 부하의 프로세싱을 위한 게놈학 분석 플랫폼의 효율을 최적화하기 위해 인스턴스화되는 제1 컴퓨팅 인스턴스의 세트 또는 제2 컴퓨팅 인스턴스의 세트의 수를 인스턴스화하도록 추가로 구성되는 것인 게놈학 분석 플랫폼.
  17. 제16항에 있어서, 제3 컴퓨팅 인스턴스의 세트를 추가로 포함하며, 각각의 제3 컴퓨팅 인스턴스는 서열 분석 파이프라인의 게놈 프로세싱 단계의 제3 세트를 수행하도록 그래픽 프로세싱 유닛 (GPU)에 지시하도록 구성되는 하나 이상의 그래픽 프로세싱 알고리즘에 응답하는 적어도 하나의 GPU를 가지며, 여기서 재구성가능한 저장은 데이터 통신 네트워크를 통해 제3 서버 인스턴스의 세트와 연결되는 것인 게놈학 분석 플랫폼.
  18. 제7항에 있어서, 서버 컴퓨터의 세트 및 데이터베이스의 세트를 포함하는 온디멘드(on-demand) 클라우드 컴퓨팅 플랫폼을 추가로 포함하며, 서버 컴퓨터의 세트는 제1 서버 인스턴스의 세트 및 제2 서버 인스턴스의 세트를 제공하도록 구성가능한 서버 컴퓨터 인스턴스의 가상 세트를 정의하며, 데이터베이스의 세트는 재구성가능한 저장을 제공하도록 구성가능한 가상 데이터베이스 저장을 정의하는 것인 게놈학 분석 플랫폼.
  19. 서열 분석 파이프라인을 실행하기 위한 게놈학 분석 플랫폼으로서, 상기 게놈학 분석 플랫폼은:
    데이터 통신 네트워크와 연결되는 제1 서버 인스턴스의 세트 및 제2 서버 인스턴스의 세트 - 각각의 제1 서버 인스턴스는 서열 분석 파이프라인의 게놈 프로세싱 단계의 제1 세트를 수행하도록 중앙 프로세싱 유닛 (CPU)에 지시하도록 구성되는 하나 이상의 소프트웨어 알고리즘에 응답하는 적어도 하나의 CPU를 가지며, 각각의 제2 서버 인스턴스는 적어도 하나의 필드 프로그래머블 게이트 어레이 (FPGA)를 갖고, 각각의 FPGA는 서열 분석 파이프라인의 게놈 프로세싱 단계의 제2 세트를 수행하기 위한 프로세싱 엔진의 세트를 형성하기 위해 복수의 물리적 전기적 인터커넥트에 의해 상호접속되는 하드와이어드 디지털 로직 회로의 세트를 배열하도록 펌웨어에 의해 구성됨 -; 및
    데이터 통신 네트워크를 통해 제1 서버 인스턴스의 세트 및 제2 서버 인스턴스의 세트와 연결가능한 탄성 재구성가능한 저장 - 탄성 재구성가능한 저장은 제1 서버 인스턴스 또는 제2 서버 인스턴스의 세트의 연속적 활성 서버 인스턴스에 의한 판독 및 기입 액세스를 위해 하나 이상의 제1 서버 인스턴스의 세트 및 하나 이상의 제2 서버 인스턴스의 세트 사이에서 스위칭 가능함 -
    을 포함하는, 게놈학 분석 플랫폼.
  20. 제19항에 있어서, 제1 서버 인스턴스의 세트 또는 제2 서버 인스턴스의 세트에 의해 수행되는 서열 분석 파이프라인의 데이터 부하를 추정하기 위한 부하 추정기 로직을 갖는 탄성 컨트롤러를 추가로 포함하며, 탄성 제어 노드는 추정된 데이터 부하를 기초로 제1 서버 인스턴스 또는 제2 서버 인스턴스의 수를 인스턴스화하도록 추가로 구성되는 것인 게놈학 분석 플랫폼.
  21. 제20항에 있어서, 부하 추정기 로직이 데이터 부하의 프로세싱을 위한 게놈학 분석 플랫폼의 효율을 최적화하기 위해 인스턴스화되는 제1 서버 인스턴스 또는 제2 서버 인스턴스의 수를 인스턴스화하도록 추가로 구성되는 것인 게놈학 분석 플랫폼.
  22. 제21항에 있어서, 제3 서버 인스턴스의 세트를 추가로 포함하며, 각각의 제3 서버 인스턴스는 서열 분석 파이프라인의 게놈 프로세싱 단계의 제3 세트를 수행하도록 그래픽 프로세싱 유닛 (GPU)에 지시하도록 구성되는 하나 이상의 그래픽 프로세싱 알고리즘에 응답하는 적어도 하나의 GPU를 가지며, 여기서 재구성가능한 저장은 데이터 통신 네트워크를 통해 제3 서버 인스턴스의 세트와 연결되는 것인 게놈학 분석 플랫폼.
  23. 제21항에 있어서, 게놈 프로세싱 단계의 제2 세트가 매핑 및 정렬을 포함하며, 결과 데이터의 제2 세트가 하나 이상의 매핑 및 정렬된 판독을 포함하는 것인 게놈학 분석 플랫폼.
  24. 제23항에 있어서, 정렬이 스미스-워터만 연산의 수행을 포함하는 것인 게놈학 분석 플랫폼.
  25. 제19항에 있어서, 서버 컴퓨터의 세트 및 데이터베이스의 세트를 포함하는 온디멘드 클라우드 컴퓨팅 플랫폼을 추가로 포함하며, 서버 컴퓨터의 세트는 제1 서버 인스턴스의 세트 및 제2 서버 인스턴스의 세트를 제공하도록 구성가능한 서버 컴퓨터 인스턴스의 가상 세트를 정의하며, 데이터베이스의 세트는 재구성가능한 저장을 제공하도록 구성가능한 가상 데이터베이스 저장을 정의하는 것인 게놈학 분석 플랫폼.
  26. 서열 분석 파이프라인을 실행하기 위한 게놈학 분석 플랫폼으로서, 상기 게놈학 분석 플랫폼은:
    하나 이상의 제1 서버 인스턴스 - 각각의 제1 서버 인스턴스는 게놈 분석 플렛폼의 계산 노드를 형성하는 적어도 하나의 중앙 프로세싱 유닛 (CPU)을 가지며, 각각의 CPU는 서열 분석 파이프라인의 게놈 프로세싱 단계의 제1 세트를 수행하도록 CPU에 지시하도록 구성되는 하나 이상의 소프트웨어 알고리즘에 응답함 -;
    하나 이상의 제2 서버 인스턴스 - 각각의 제2 서버 인스턴스는 적어도 하나의 필드 프로그래머블 게이트 어레이 (FPGA)를 가지며, 각각의 FPGA는 서열 분석 파이프라인의 게놈 프로세싱 단계의 제2 세트를 수행하기 위한 프로세싱 엔진의 세트를 형성하기 위해 복수의 물리적 전기적 인터커넥트에 의해 상호접속되는 하드와이어드 디지털 로직 회로의 세트를 배열하도록 펌웨어에 의해 구성됨 -; 및
    하나 이상의 제1 서버 인스턴스 및 제2 서버 인스턴스의 외부에 있는 탄성 재구성가능한 저장 - 재구성가능한 저장은 서열 분석 파이프라인의 게놈 프로세싱 단계의 제1 또는 제2 세트의 결과 데이터를 수신 및 저장하고, 다음 서버 인스턴스에 의한 결과 데이터에의 액세스를 제공하도록 하나 이상의 제1 서버 인스턴스 및 제2 서버 인스턴스 사이에서 통신가능하게 스위칭 가능함 -
    을 포함하는, 게놈학 분석 플랫폼.
  27. 제26항에 있어서, 제1 서버 인스턴스의 세트 또는 제2 서버 인스턴스의 세트에 의해 수행되는 서열 분석 파이프라인의 데이터 부하를 추정하기 위한 부하 추정기 로직을 갖는 탄성 컨트롤러를 추가로 포함하며, 탄성 제어 노드는 추정된 데이터 부하를 기초로 제1 서버 인스턴스 또는 제2 서버 인스턴스의 수를 인스턴스화하도록 추가로 구성되는 것인 게놈학 분석 플랫폼.
  28. 제27항에 있어서, 부하 추정기 로직이 데이터 부하의 프로세싱을 위한 게놈학 분석 플랫폼의 효율을 최적화하기 위해 인스턴스화되는 제1 서버 인스턴스 또는 제2 서버 인스턴스의 수를 인스턴스화하도록 추가로 구성되는 것인 게놈학 분석 플랫폼.
  29. 제28항에 있어서, 서버 컴퓨터의 세트 및 데이터베이스의 세트를 포함하는 온디멘드 클라우드 컴퓨팅 플랫폼을 추가로 포함하며, 서버 컴퓨터의 세트는 제1 서버 인스턴스의 세트 및 제2 서버 인스턴스의 세트를 제공하도록 구성가능한 서버 컴퓨터 인스턴스의 가상 세트를 정의하며, 데이터베이스의 세트는 재구성가능한 저장을 제공하도록 구성가능한 가상 데이터베이스 저장을 정의하는 것인 게놈학 분석 플랫폼.
KR1020247005077A 2016-06-07 2017-06-07 2차 및/또는 3차 프로세싱을 수행하기 위한 생물정보학 시스템, 장치, 및 방법 KR20240025702A (ko)

Applications Claiming Priority (16)

Application Number Priority Date Filing Date Title
US201662347080P 2016-06-07 2016-06-07
US62/347,080 2016-06-07
US201662399582P 2016-09-26 2016-09-26
US62/399,582 2016-09-26
US201662414637P 2016-10-28 2016-10-28
US62/414,637 2016-10-28
US15/404,146 US10847251B2 (en) 2013-01-17 2017-01-11 Genomic infrastructure for on-site or cloud-based DNA and RNA processing and analysis
US15/404,146 2017-01-11
US201762462869P 2017-02-23 2017-02-23
US62/462,869 2017-02-23
US201762469442P 2017-03-09 2017-03-09
US62/469,442 2017-03-09
US15/497,149 US10068183B1 (en) 2017-02-23 2017-04-25 Bioinformatics systems, apparatuses, and methods executed on a quantum processing platform
US15/497,149 2017-04-25
PCT/US2017/036424 WO2017214320A1 (en) 2016-06-07 2017-06-07 Bioinformatics systems, apparatus, and methods for performing secondary and/or tertiary processing
KR1020227035991A KR102638677B1 (ko) 2016-06-07 2017-06-07 2차 및/또는 3차 프로세싱을 수행하기 위한 생물정보학 시스템, 장치, 및 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020227035991A Division KR102638677B1 (ko) 2016-06-07 2017-06-07 2차 및/또는 3차 프로세싱을 수행하기 위한 생물정보학 시스템, 장치, 및 방법

Publications (1)

Publication Number Publication Date
KR20240025702A true KR20240025702A (ko) 2024-02-27

Family

ID=64565307

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020227035991A KR102638677B1 (ko) 2016-06-07 2017-06-07 2차 및/또는 3차 프로세싱을 수행하기 위한 생물정보학 시스템, 장치, 및 방법
KR1020187037783A KR102457669B1 (ko) 2016-06-07 2017-06-07 2차 및/또는 3차 프로세싱을 수행하기 위한 생물정보학 시스템, 장치, 및 방법
KR1020247005077A KR20240025702A (ko) 2016-06-07 2017-06-07 2차 및/또는 3차 프로세싱을 수행하기 위한 생물정보학 시스템, 장치, 및 방법

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020227035991A KR102638677B1 (ko) 2016-06-07 2017-06-07 2차 및/또는 3차 프로세싱을 수행하기 위한 생물정보학 시스템, 장치, 및 방법
KR1020187037783A KR102457669B1 (ko) 2016-06-07 2017-06-07 2차 및/또는 3차 프로세싱을 수행하기 위한 생물정보학 시스템, 장치, 및 방법

Country Status (10)

Country Link
EP (3) EP3982368B1 (ko)
JP (2) JP7046840B2 (ko)
KR (3) KR102638677B1 (ko)
CN (2) CN109416928B (ko)
AU (2) AU2017277636B2 (ko)
BR (1) BR112018075407A2 (ko)
CA (1) CA3026644A1 (ko)
MX (1) MX2018014579A (ko)
RU (1) RU2750706C2 (ko)
SG (2) SG10201913534QA (ko)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108195728A (zh) * 2018-02-01 2018-06-22 山东诺方电子科技有限公司 一种基于多核颗粒物传感器技术的控制***及其控制方法
US11929150B2 (en) * 2019-01-25 2024-03-12 Huawei Technologies Co., Ltd. Methods and apparatuses for performing character matching for short read alignment
US11210554B2 (en) 2019-03-21 2021-12-28 Illumina, Inc. Artificial intelligence-based generation of sequencing metadata
US11783917B2 (en) 2019-03-21 2023-10-10 Illumina, Inc. Artificial intelligence-based base calling
KR102192864B1 (ko) * 2019-03-29 2020-12-18 연세대학교 산학협력단 Ngs 샘플 검증 방법 및 이를 이용한 디바이스
CN110060734B (zh) * 2019-03-29 2021-08-13 天津大学 一种高鲁棒性dna测序用条形码生成和读取方法
CN110135565B (zh) * 2019-05-20 2023-03-24 上海大学 针对神经网络算法在集成电路上实现性能的评估***
CN111983962B (zh) * 2019-05-22 2024-05-07 华晨宝马汽车有限公司 一种用于生成业务流的映射关系的***及方法
US11657252B2 (en) * 2019-06-07 2023-05-23 Meta Platforms, Inc. Point to point connected processing elements with data joiner components
CN110413422A (zh) * 2019-07-05 2019-11-05 建龙阿城钢铁有限公司 一种炼钢光谱数据远程传输方法
CN111753613B (zh) * 2019-09-18 2023-10-10 杭州海康威视数字技术股份有限公司 基于实验操作的图像分析方法、装置、设备及存储介质
CN112561044B (zh) * 2019-09-26 2023-07-14 西安闻泰电子科技有限公司 神经网络模型加速方法及装置、服务器及存储介质
CN110797081B (zh) * 2019-10-17 2020-11-10 南京医基云医疗数据研究院有限公司 激活区域识别方法及装置、存储介质及电子设备
CN110797087B (zh) * 2019-10-17 2020-11-03 南京医基云医疗数据研究院有限公司 测序序列处理方法及装置、存储介质、电子设备
CN110648718B (zh) * 2019-11-28 2020-03-17 南京医基云医疗数据研究院有限公司 变异检测方法及装置、存储介质及电子设备
CN110990063B (zh) * 2019-11-28 2021-11-23 中国科学院计算技术研究所 一种用于基因相似性分析的加速装置、方法和计算机设备
CN113127510B (zh) * 2019-12-31 2024-05-03 深圳云天励飞技术有限公司 数据归档的方法、装置、电子设备及存储介质
CN113222162B (zh) * 2020-01-21 2023-08-08 本源量子计算科技(合肥)股份有限公司 量子逻辑门可移动性的判断方法和***
CN111292805B (zh) * 2020-03-19 2023-08-18 山东大学 一种三代测序数据重叠检测方法及***
CN111445952B (zh) * 2020-03-25 2024-01-26 山东大学 超长基因序列的相似性快速比对方法及***
CN111462821B (zh) * 2020-04-10 2022-02-22 广州微远医疗器械有限公司 病原微生物分析鉴定***及应用
CN111767255B (zh) * 2020-05-22 2023-10-13 北京和瑞精湛医学检验实验室有限公司 从fastq文件分离出样本read数据的优化方法
CN111667239B (zh) * 2020-05-27 2023-04-18 山东建筑大学 一种基于广度遍历+僵枝切除的工作流实现方法
US11657332B2 (en) * 2020-06-12 2023-05-23 Baidu Usa Llc Method for AI model transferring with layer randomization
CN111933218B (zh) * 2020-07-01 2022-03-29 广州基迪奥生物科技有限公司 一种优化的宏基因组binning分析微生物群落的方法
CN111940420B (zh) * 2020-07-17 2022-08-09 中科光绘(上海)科技有限公司 窗口渐进式的激光清洗方法
CN111755072B (zh) * 2020-08-04 2021-02-02 深圳吉因加医学检验实验室 一种同时检测甲基化水平、基因组变异和***片段的方法及装置
CN112205960B (zh) * 2020-09-15 2023-07-21 万达信息股份有限公司 一种视力监测方法、***、管理端和存储介质
CN112397142B (zh) * 2020-10-13 2023-02-03 山东大学 面向多核处理器的基因变异检测方法及***
EP4235679A1 (en) * 2020-10-22 2023-08-30 BGI Genomics Co., Ltd. Shared memory-based gene analysis method and apparatus, and computer device
JP7393439B2 (ja) 2020-10-22 2023-12-06 ビージーアイ ジェノミクス カンパニー リミテッド 遺伝子シークエンシングデータ処理方法及び遺伝子シークエンシングデータ処理装置
CN112582030B (zh) * 2020-12-18 2023-08-15 广州大学 一种基于dna存储介质的文本存储方法
CN112631972B (zh) * 2020-12-24 2022-11-08 山东浪潮科学研究院有限公司 一种实现设备访问的方法及设备
CN112884001B (zh) * 2021-01-15 2024-03-05 广东省特种设备检测研究院珠海检测院 碳钢石墨化自动评级方法和***
CN112837565B (zh) * 2021-01-20 2022-11-11 山东师范大学 一种散点图的多标签教学演示***及方法
CN112885408A (zh) * 2021-02-22 2021-06-01 中国农业大学 一种基于低深度测序检测snp标记位点的方法及装置
KR102545670B1 (ko) * 2021-03-17 2023-06-20 전남대학교산학협력단 조건부 순환 생성적 적대 신경망을 활용한 질병의 진행 과정 이미지 생성 방법 및 그 장치
CN113011734B (zh) * 2021-03-17 2023-07-07 上海数喆数据科技有限公司 一种基于capi和cati的调查数据质量控制方法
CN113392280B (zh) * 2021-06-10 2023-08-04 东北大学 一种面向跨区域的多主模型分布式图计算方法
KR102420860B1 (ko) * 2021-06-16 2022-07-14 (주)오렌지아이 연구 개발을 지원하는 리소스를 매칭하는 방법 및 시스템
CN113205857B (zh) * 2021-07-02 2021-09-28 天津诺禾致源生物信息科技有限公司 基因组性染色体非同源区域的鉴定方法和装置
CN113505137B (zh) * 2021-07-27 2022-07-08 重庆市规划和自然资源信息中心 一种不动产空间图形更新方法
CN113604544B (zh) * 2021-08-03 2023-03-10 北京大学口腔医学院 一种生物材料功能预测评价方法
CN113723931B (zh) * 2021-09-09 2024-04-19 中国工程物理研究院计算机应用研究所 一种适用于多尺度高通量材料计算的工作流建模方法
US20230187020A1 (en) * 2021-12-15 2023-06-15 Illumina Software, Inc. Systems and methods for iterative and scalable population-scale variant analysis
CN114239012A (zh) * 2021-12-15 2022-03-25 成都飞机工业(集团)有限责任公司 一种适用于caa二次开发软件的rsa离线加密技术
CN114237911A (zh) * 2021-12-23 2022-03-25 深圳华大医学检验实验室 基于cuda的基因数据处理方法、装置和cuda构架
CN114358317B (zh) * 2022-03-22 2022-06-21 合肥本源量子计算科技有限责任公司 基于机器学习框架的数据分类方法及相关设备
CN114661688B (zh) * 2022-03-25 2023-09-19 马上消费金融股份有限公司 地址纠错方法及装置
CN114649055B (zh) * 2022-04-15 2022-10-21 北京贝瑞和康生物技术有限公司 用于检测单核苷酸变异和***缺失的方法、设备和介质
CN114818948B (zh) * 2022-05-05 2023-02-03 北京科技大学 一种图神经网络的数据-机理驱动的材料属性预测方法
CN114840250B (zh) * 2022-07-04 2022-10-04 金现代信息产业股份有限公司 一种代码冲突合并方法、***、电子设备及可读存储介质
CN115391284B (zh) * 2022-10-31 2023-02-03 四川大学华西医院 基因数据文件快速识别方法、***和计算机可读存储介质
CN115907019B (zh) * 2023-01-09 2023-11-07 苏州浪潮智能科技有限公司 一种用于气象预测的量子计算机
CN116152189B (zh) * 2023-01-31 2023-12-19 华纺股份有限公司 一种图案织物瑕疵检测方法、***及检测终端机
CN115860768B (zh) * 2023-02-16 2023-06-02 浙江天演维真网络科技股份有限公司 一种基于区块链的溯源方法、装置及其电子设备
CN116186594B (zh) * 2023-04-26 2023-07-04 成都市环境应急指挥保障中心 基于决策网络结合大数据实现环境变化趋势智能检测方法
CN116361239B (zh) * 2023-05-24 2023-07-28 成都交大光芒科技股份有限公司 基于对象特征的对象识别同步方法、装置及电子设备
KR102657482B1 (ko) * 2023-07-05 2024-04-15 메티스엑스 주식회사 전자 장치 및 이를 이용한 연산을 수행하기 위한 방법
CN117687772A (zh) * 2023-07-31 2024-03-12 荣耀终端有限公司 一种算法调度方法及电子设备
CN117036727B (zh) * 2023-10-09 2024-01-05 之江实验室 脑网络数据多层嵌入向量特征提取方法及装置
CN117237352B (zh) * 2023-11-14 2024-02-09 之江实验室 基因芯片的图像处理方法、数据处理装置及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002086161A1 (fr) 2001-04-19 2002-10-31 Hubit Genomix, Inc. Procede permettant d'evaluer le diplotype du genotype d'un individu
JP2007108949A (ja) * 2005-10-12 2007-04-26 Ajinomoto Co Inc 遺伝子発現制御配列の推定方法
CN103080333B (zh) * 2010-09-14 2015-06-24 深圳华大基因科技服务有限公司 一种基因组结构性变异检测方法和***
WO2013097257A1 (zh) * 2011-12-31 2013-07-04 深圳华大基因科技有限公司 一种检验融合基因的方法及***
RU2012124158A (ru) * 2012-03-18 2014-09-20 Пасвэй Геномикс Корпорэйшн Платформы для двухрежимного микрожидкостного генетического анализа и способы двухрежимного генетического анализа с использованием таких платформ
US9600625B2 (en) * 2012-04-23 2017-03-21 Bina Technologies, Inc. Systems and methods for processing nucleic acid sequence data
US20130345066A1 (en) * 2012-05-09 2013-12-26 Life Technologies Corporation Systems and methods for identifying sequence variation
CN102982252A (zh) * 2012-12-05 2013-03-20 北京诺禾致源生物信息科技有限公司 一种高杂合二倍体基因组支架序列组装策略
US9679104B2 (en) 2013-01-17 2017-06-13 Edico Genome, Corp. Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform
WO2014113736A1 (en) * 2013-01-17 2014-07-24 Edico Genome Corp. Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform
US20150363559A1 (en) * 2013-01-29 2015-12-17 Molecular Health Gmbh Systems and methods for clinical decision support
GB2547875B (en) 2013-02-01 2017-12-13 Univ California Methods for meta-genomics analysis of microbes
WO2014186604A1 (en) * 2013-05-15 2014-11-20 Edico Genome Corp. Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform
CA2963425A1 (en) 2014-10-16 2016-04-21 Counsyl, Inc. Variant caller

Also Published As

Publication number Publication date
CN109416928B (zh) 2024-02-06
CA3026644A1 (en) 2017-12-14
EP3465507B1 (en) 2021-09-15
RU2018140888A (ru) 2020-07-09
SG10201913534QA (en) 2020-03-30
SG11201810734YA (en) 2018-12-28
RU2018140888A3 (ko) 2020-10-21
KR20190015368A (ko) 2019-02-13
KR20220146679A (ko) 2022-11-01
RU2750706C2 (ru) 2021-07-01
RU2021118824A (ru) 2021-11-12
KR102457669B1 (ko) 2022-10-20
JP7046840B2 (ja) 2022-04-04
AU2022252718A1 (en) 2022-11-03
EP4362030A2 (en) 2024-05-01
BR112018075407A2 (pt) 2019-03-19
AU2017277636B2 (en) 2022-07-14
JP2022084818A (ja) 2022-06-07
KR102638677B1 (ko) 2024-02-19
MX2018014579A (es) 2019-05-20
EP3982368A1 (en) 2022-04-13
CN118016151A (zh) 2024-05-10
JP7451587B2 (ja) 2024-03-18
CN109416928A (zh) 2019-03-01
JP2019521434A (ja) 2019-07-25
EP3465507A1 (en) 2019-04-10
AU2017277636A1 (en) 2018-12-13
EP3982368B1 (en) 2024-04-10

Similar Documents

Publication Publication Date Title
KR102638677B1 (ko) 2차 및/또는 3차 프로세싱을 수행하기 위한 생물정보학 시스템, 장치, 및 방법
AU2022218629B2 (en) Bioinformatics Systems, Apparatuses, And Methods For Performing Secondary And/or Tertiary Processing
US20210257052A1 (en) Bioinformatics Systems, Apparatuses, and Methods for Performing Secondary and/or Tertiary Processing
US10068183B1 (en) Bioinformatics systems, apparatuses, and methods executed on a quantum processing platform
US20240185958A1 (en) Bioinformatics Systems, Apparatuses, and Methods Executed on an Integrated Circuit Processing Platform
WO2017214320A1 (en) Bioinformatics systems, apparatus, and methods for performing secondary and/or tertiary processing
RU2799750C9 (ru) Биоинформационные системы, устройства и способы для выполнения вторичной и/или третичной обработки
RU2799750C2 (ru) Биоинформационные системы, устройства и способы для выполнения вторичной и/или третичной обработки
JP2024081649A (ja) 二次および/または三次処理を実行するためのバイオインフォマティクスシステム、装置、および方法
NZ789147A (en) Bioinformatics systems, apparatus, and methods for performing secondary and/or tertiary processing
NZ789137A (en) Bioinformatics systems, apparatus, and methods for performing secondary and/or tertiary processing
NZ789149A (en) Bioinformatics systems, apparatuses, and methods for performing secondary and/or tertiary processing

Legal Events

Date Code Title Description
A107 Divisional application of patent