CN118016151A - 用于进行二级和/或三级处理的生物信息学系统、设备和方法 - Google Patents
用于进行二级和/或三级处理的生物信息学系统、设备和方法 Download PDFInfo
- Publication number
- CN118016151A CN118016151A CN202410041852.9A CN202410041852A CN118016151A CN 118016151 A CN118016151 A CN 118016151A CN 202410041852 A CN202410041852 A CN 202410041852A CN 118016151 A CN118016151 A CN 118016151A
- Authority
- CN
- China
- Prior art keywords
- candidate
- read
- alignment
- data
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 917
- 238000000034 method Methods 0.000 title claims abstract description 497
- 238000001514 detection method Methods 0.000 claims abstract description 420
- 230000035772 mutation Effects 0.000 claims abstract description 296
- 238000003860 storage Methods 0.000 claims abstract description 210
- 230000006870 function Effects 0.000 claims description 446
- 102000054766 genetic haplotypes Human genes 0.000 claims description 343
- 230000015654 memory Effects 0.000 claims description 338
- 239000011159 matrix material Substances 0.000 claims description 191
- 238000003780 insertion Methods 0.000 claims description 74
- 230000037431 insertion Effects 0.000 claims description 74
- 238000013138 pruning Methods 0.000 claims description 35
- 238000011156 evaluation Methods 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 description 443
- 210000004027 cell Anatomy 0.000 description 278
- 238000013507 mapping Methods 0.000 description 268
- 230000008569 process Effects 0.000 description 229
- 238000012163 sequencing technique Methods 0.000 description 183
- 108090000623 proteins and genes Proteins 0.000 description 158
- 238000004422 calculation algorithm Methods 0.000 description 150
- 239000000523 sample Substances 0.000 description 130
- 238000004364 calculation method Methods 0.000 description 123
- 230000002068 genetic effect Effects 0.000 description 120
- 239000002773 nucleotide Substances 0.000 description 119
- 125000003729 nucleotide group Chemical group 0.000 description 119
- 108020004414 DNA Proteins 0.000 description 109
- 230000007704 transition Effects 0.000 description 102
- 108091028043 Nucleic acid sequence Proteins 0.000 description 89
- 238000012217 deletion Methods 0.000 description 79
- 230000037430 deletion Effects 0.000 description 78
- 239000010410 layer Substances 0.000 description 71
- 238000003205 genotyping method Methods 0.000 description 64
- 108091032973 (ribonucleotides)n+m Proteins 0.000 description 59
- 230000001133 acceleration Effects 0.000 description 56
- 238000007906 compression Methods 0.000 description 55
- 230000006835 compression Effects 0.000 description 54
- 230000000875 corresponding effect Effects 0.000 description 54
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 49
- 201000010099 disease Diseases 0.000 description 48
- 230000008901 benefit Effects 0.000 description 47
- 241000894007 species Species 0.000 description 47
- 230000005540 biological transmission Effects 0.000 description 46
- 210000000349 chromosome Anatomy 0.000 description 41
- 239000013598 vector Substances 0.000 description 41
- 238000012300 Sequence Analysis Methods 0.000 description 39
- 238000010586 diagram Methods 0.000 description 36
- 238000012546 transfer Methods 0.000 description 36
- 238000011282 treatment Methods 0.000 description 36
- 102000004169 proteins and genes Human genes 0.000 description 35
- 239000002096 quantum dot Substances 0.000 description 35
- 206010028980 Neoplasm Diseases 0.000 description 34
- 239000012634 fragment Substances 0.000 description 34
- 238000011331 genomic analysis Methods 0.000 description 34
- 230000006837 decompression Effects 0.000 description 33
- 238000007726 management method Methods 0.000 description 33
- 238000012360 testing method Methods 0.000 description 31
- 230000001427 coherent effect Effects 0.000 description 30
- 230000001976 improved effect Effects 0.000 description 28
- 230000036961 partial effect Effects 0.000 description 28
- 238000006243 chemical reaction Methods 0.000 description 26
- 108010033040 Histones Proteins 0.000 description 25
- 230000008878 coupling Effects 0.000 description 25
- 238000010168 coupling process Methods 0.000 description 25
- 238000005859 coupling reaction Methods 0.000 description 25
- 238000005457 optimization Methods 0.000 description 25
- 230000000694 effects Effects 0.000 description 23
- 230000007246 mechanism Effects 0.000 description 23
- 201000011510 cancer Diseases 0.000 description 22
- 238000012252 genetic analysis Methods 0.000 description 22
- 238000013459 approach Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 20
- 230000002093 peripheral effect Effects 0.000 description 20
- 108700028369 Alleles Proteins 0.000 description 19
- 230000009850 completed effect Effects 0.000 description 19
- 230000007613 environmental effect Effects 0.000 description 19
- 238000007792 addition Methods 0.000 description 18
- 230000011987 methylation Effects 0.000 description 18
- 238000007069 methylation reaction Methods 0.000 description 18
- 244000005700 microbiome Species 0.000 description 18
- 230000002829 reductive effect Effects 0.000 description 18
- 230000008859 change Effects 0.000 description 17
- 238000003745 diagnosis Methods 0.000 description 17
- 235000019506 cigar Nutrition 0.000 description 16
- 102000006947 Histones Human genes 0.000 description 15
- 239000002245 particle Substances 0.000 description 15
- 238000003559 RNA-seq method Methods 0.000 description 14
- 230000010354 integration Effects 0.000 description 14
- 239000000203 mixture Substances 0.000 description 14
- 230000002441 reversible effect Effects 0.000 description 14
- 206010069754 Acquired gene mutation Diseases 0.000 description 13
- OPTASPLRGRRNAP-UHFFFAOYSA-N cytosine Chemical compound NC=1C=CNC(=O)N=1 OPTASPLRGRRNAP-UHFFFAOYSA-N 0.000 description 13
- 230000012010 growth Effects 0.000 description 13
- 230000004048 modification Effects 0.000 description 13
- 238000012986 modification Methods 0.000 description 13
- 230000035945 sensitivity Effects 0.000 description 13
- 230000037439 somatic mutation Effects 0.000 description 13
- 230000014509 gene expression Effects 0.000 description 12
- 230000036541 health Effects 0.000 description 12
- 230000037361 pathway Effects 0.000 description 12
- 238000007781 pre-processing Methods 0.000 description 12
- 238000011160 research Methods 0.000 description 12
- 230000009466 transformation Effects 0.000 description 12
- 239000008186 active pharmaceutical agent Substances 0.000 description 11
- 238000010276 construction Methods 0.000 description 11
- 238000012937 correction Methods 0.000 description 11
- 238000011161 development Methods 0.000 description 11
- 230000018109 developmental process Effects 0.000 description 11
- 238000010208 microarray analysis Methods 0.000 description 11
- 238000013519 translation Methods 0.000 description 11
- 230000014616 translation Effects 0.000 description 11
- 230000000295 complement effect Effects 0.000 description 10
- 238000013461 design Methods 0.000 description 10
- 239000003814 drug Substances 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 10
- 230000001973 epigenetic effect Effects 0.000 description 10
- 238000007405 data analysis Methods 0.000 description 9
- 229940079593 drug Drugs 0.000 description 9
- 230000008995 epigenetic change Effects 0.000 description 9
- 230000033001 locomotion Effects 0.000 description 9
- 238000005259 measurement Methods 0.000 description 9
- 150000007523 nucleic acids Chemical class 0.000 description 9
- 230000008093 supporting effect Effects 0.000 description 9
- 230000001225 therapeutic effect Effects 0.000 description 9
- 238000013473 artificial intelligence Methods 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 8
- 230000002759 chromosomal effect Effects 0.000 description 8
- 238000001914 filtration Methods 0.000 description 8
- 239000002184 metal Substances 0.000 description 8
- 238000002360 preparation method Methods 0.000 description 8
- 230000002265 prevention Effects 0.000 description 8
- 238000006467 substitution reaction Methods 0.000 description 8
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 7
- 238000007667 floating Methods 0.000 description 7
- 230000007614 genetic variation Effects 0.000 description 7
- 239000003550 marker Substances 0.000 description 7
- 102000054765 polymorphisms of proteins Human genes 0.000 description 7
- 230000000069 prophylactic effect Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000000392 somatic effect Effects 0.000 description 7
- 230000007067 DNA methylation Effects 0.000 description 6
- 238000001712 DNA sequencing Methods 0.000 description 6
- 230000037429 base substitution Effects 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 6
- 230000002596 correlated effect Effects 0.000 description 6
- 230000009977 dual effect Effects 0.000 description 6
- 238000000605 extraction Methods 0.000 description 6
- 210000004602 germ cell Anatomy 0.000 description 6
- UYTPUPDQBNUYGX-UHFFFAOYSA-N guanine Chemical compound O=C1NC(N)=NC2=C1N=CN2 UYTPUPDQBNUYGX-UHFFFAOYSA-N 0.000 description 6
- 238000002372 labelling Methods 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 6
- 239000000463 material Substances 0.000 description 6
- 230000008520 organization Effects 0.000 description 6
- 239000000126 substance Substances 0.000 description 6
- 238000009966 trimming Methods 0.000 description 6
- 108010077544 Chromatin Proteins 0.000 description 5
- 238000003491 array Methods 0.000 description 5
- 238000003766 bioinformatics method Methods 0.000 description 5
- 210000003483 chromatin Anatomy 0.000 description 5
- 239000000470 constituent Substances 0.000 description 5
- 230000003247 decreasing effect Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 230000008439 repair process Effects 0.000 description 5
- 238000000844 transformation Methods 0.000 description 5
- 230000005945 translocation Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000007727 cost benefit analysis Methods 0.000 description 4
- 229940104302 cytosine Drugs 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000030279 gene silencing Effects 0.000 description 4
- QAOWNCQODCNURD-UHFFFAOYSA-M hydrogensulfate Chemical compound OS([O-])(=O)=O QAOWNCQODCNURD-UHFFFAOYSA-M 0.000 description 4
- 238000011068 loading method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 239000000047 product Substances 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 238000007671 third-generation sequencing Methods 0.000 description 4
- RWQNBRDOKXIBIV-UHFFFAOYSA-N thymine Chemical compound CC1=CNC(=O)NC1=O RWQNBRDOKXIBIV-UHFFFAOYSA-N 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000011269 treatment regimen Methods 0.000 description 4
- 102000040650 (ribonucleotides)n+m Human genes 0.000 description 3
- 238000010207 Bayesian analysis Methods 0.000 description 3
- LSNNMFCWUKXFEE-UHFFFAOYSA-M Bisulfite Chemical compound OS([O-])=O LSNNMFCWUKXFEE-UHFFFAOYSA-M 0.000 description 3
- 102100039869 Histone H2B type F-S Human genes 0.000 description 3
- 101001035372 Homo sapiens Histone H2B type F-S Proteins 0.000 description 3
- 206010020751 Hypersensitivity Diseases 0.000 description 3
- 208000026350 Inborn Genetic disease Diseases 0.000 description 3
- KDXKERNSBIXSRK-UHFFFAOYSA-N Lysine Natural products NCCCCC(N)C(O)=O KDXKERNSBIXSRK-UHFFFAOYSA-N 0.000 description 3
- 239000004472 Lysine Substances 0.000 description 3
- 238000007476 Maximum Likelihood Methods 0.000 description 3
- 238000012952 Resampling Methods 0.000 description 3
- 208000031655 Uniparental Disomy Diseases 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 3
- 150000001413 amino acids Chemical class 0.000 description 3
- 108010038083 amyloid fibril protein AS-SAM Proteins 0.000 description 3
- 238000003556 assay Methods 0.000 description 3
- 239000011324 bead Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 239000012472 biological sample Substances 0.000 description 3
- 239000000090 biomarker Substances 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 230000006806 disease prevention Effects 0.000 description 3
- 238000011143 downstream manufacturing Methods 0.000 description 3
- 238000007876 drug discovery Methods 0.000 description 3
- 230000001747 exhibiting effect Effects 0.000 description 3
- 208000016361 genetic disease Diseases 0.000 description 3
- 230000017525 heat dissipation Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000011065 in-situ storage Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000000813 microbial effect Effects 0.000 description 3
- 238000007481 next generation sequencing Methods 0.000 description 3
- 102000039446 nucleic acids Human genes 0.000 description 3
- 108020004707 nucleic acids Proteins 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000009897 systematic effect Effects 0.000 description 3
- 230000002103 transcriptional effect Effects 0.000 description 3
- 239000011800 void material Substances 0.000 description 3
- 108020004465 16S ribosomal RNA Proteins 0.000 description 2
- XXQGYGJZNMSSFD-UHFFFAOYSA-N 2-[2-(dimethylcarbamoyl)phenoxy]acetic acid Chemical compound CN(C)C(=O)C1=CC=CC=C1OCC(O)=O XXQGYGJZNMSSFD-UHFFFAOYSA-N 0.000 description 2
- LRSASMSXMSNRBT-UHFFFAOYSA-N 5-methylcytosine Chemical class CC1=CNC(=O)N=C1N LRSASMSXMSNRBT-UHFFFAOYSA-N 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 2
- 102100022443 CXADR-like membrane protein Human genes 0.000 description 2
- 102000053602 DNA Human genes 0.000 description 2
- 230000005778 DNA damage Effects 0.000 description 2
- 231100000277 DNA damage Toxicity 0.000 description 2
- 230000033616 DNA repair Effects 0.000 description 2
- 102000007260 Deoxyribonuclease I Human genes 0.000 description 2
- 108010008532 Deoxyribonuclease I Proteins 0.000 description 2
- 108010021466 Mutant Proteins Proteins 0.000 description 2
- 102000008300 Mutant Proteins Human genes 0.000 description 2
- 108091005461 Nucleic proteins Proteins 0.000 description 2
- 244000141353 Prunus domestica Species 0.000 description 2
- ISAKRJDGNUQOIC-UHFFFAOYSA-N Uracil Chemical compound O=C1C=CNC(=O)N1 ISAKRJDGNUQOIC-UHFFFAOYSA-N 0.000 description 2
- 230000001594 aberrant effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 2
- 230000021736 acetylation Effects 0.000 description 2
- 238000006640 acetylation reaction Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 2
- 230000007815 allergy Effects 0.000 description 2
- 208000036878 aneuploidy Diseases 0.000 description 2
- 231100001075 aneuploidy Toxicity 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000007622 bioinformatic analysis Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 239000008280 blood Substances 0.000 description 2
- 210000004369 blood Anatomy 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 230000032823 cell division Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- HVYWMOMLDIMFJA-DPAQBDIFSA-N cholesterol Chemical compound C1C=C2C[C@@H](O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2 HVYWMOMLDIMFJA-DPAQBDIFSA-N 0.000 description 2
- 238000007451 chromatin immunoprecipitation sequencing Methods 0.000 description 2
- 238000004040 coloring Methods 0.000 description 2
- 238000005056 compaction Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000005314 correlation function Methods 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001647 drug administration Methods 0.000 description 2
- 230000004049 epigenetic modification Effects 0.000 description 2
- 238000010195 expression analysis Methods 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 150000002500 ions Chemical class 0.000 description 2
- 125000002496 methyl group Chemical group [H]C([H])([H])* 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000026731 phosphorylation Effects 0.000 description 2
- 238000006366 phosphorylation reaction Methods 0.000 description 2
- 230000004962 physiological condition Effects 0.000 description 2
- 230000010287 polarization Effects 0.000 description 2
- 238000009598 prenatal testing Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- 230000004224 protection Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000002864 sequence alignment Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 210000001082 somatic cell Anatomy 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 208000024891 symptom Diseases 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 238000002560 therapeutic procedure Methods 0.000 description 2
- 229940113082 thymine Drugs 0.000 description 2
- 210000001519 tissue Anatomy 0.000 description 2
- 238000013518 transcription Methods 0.000 description 2
- 230000035897 transcription Effects 0.000 description 2
- 238000011277 treatment modality Methods 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- 230000034512 ubiquitination Effects 0.000 description 2
- 238000010798 ubiquitination Methods 0.000 description 2
- MTCFGRXMJLQNBG-REOHCLBHSA-N (2S)-2-Amino-3-hydroxypropansäure Chemical compound OC[C@H](N)C(O)=O MTCFGRXMJLQNBG-REOHCLBHSA-N 0.000 description 1
- 108010052418 (N-(2-((4-((2-((4-(9-acridinylamino)phenyl)amino)-2-oxoethyl)amino)-4-oxobutyl)amino)-1-(1H-imidazol-4-ylmethyl)-1-oxoethyl)-6-(((-2-aminoethyl)amino)methyl)-2-pyridinecarboxamidato) iron(1+) Proteins 0.000 description 1
- 229930024421 Adenine Natural products 0.000 description 1
- GFFGJBXGBJISGV-UHFFFAOYSA-N Adenine Chemical compound NC1=NC=NC2=C1N=CN2 GFFGJBXGBJISGV-UHFFFAOYSA-N 0.000 description 1
- VWEWCZSUWOEEFM-WDSKDSINSA-N Ala-Gly-Ala-Gly Chemical compound C[C@H](N)C(=O)NCC(=O)N[C@@H](C)C(=O)NCC(O)=O VWEWCZSUWOEEFM-WDSKDSINSA-N 0.000 description 1
- 208000024827 Alzheimer disease Diseases 0.000 description 1
- 208000009575 Angelman syndrome Diseases 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 206010006187 Breast cancer Diseases 0.000 description 1
- 208000026310 Breast neoplasm Diseases 0.000 description 1
- 102100025074 C-C chemokine receptor-like 2 Human genes 0.000 description 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 206010061765 Chromosomal mutation Diseases 0.000 description 1
- 102100026735 Coagulation factor VIII Human genes 0.000 description 1
- 108091026890 Coding region Proteins 0.000 description 1
- 108091029523 CpG island Proteins 0.000 description 1
- 108091029430 CpG site Proteins 0.000 description 1
- 230000006429 DNA hypomethylation Effects 0.000 description 1
- 230000030933 DNA methylation on cytosine Effects 0.000 description 1
- 206010012289 Dementia Diseases 0.000 description 1
- IAZDPXIOMUYVGZ-UHFFFAOYSA-N Dimethylsulphoxide Chemical compound CS(C)=O IAZDPXIOMUYVGZ-UHFFFAOYSA-N 0.000 description 1
- 108090000790 Enzymes Proteins 0.000 description 1
- 102000004190 Enzymes Human genes 0.000 description 1
- 241000206602 Eukaryota Species 0.000 description 1
- 108010054218 Factor VIII Proteins 0.000 description 1
- 201000003542 Factor VIII deficiency Diseases 0.000 description 1
- 102100029531 Fas-activated serine/threonine kinase Human genes 0.000 description 1
- 241001123946 Gaga Species 0.000 description 1
- 206010064571 Gene mutation Diseases 0.000 description 1
- 108700039691 Genetic Promoter Regions Proteins 0.000 description 1
- 208000009292 Hemophilia A Diseases 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 101000911390 Homo sapiens Coagulation factor VIII Proteins 0.000 description 1
- 101001053479 Homo sapiens Dihydropyrimidinase-related protein 5 Proteins 0.000 description 1
- 101000917570 Homo sapiens Fas-activated serine/threonine kinase Proteins 0.000 description 1
- 101001128634 Homo sapiens NADH dehydrogenase [ubiquinone] 1 beta subcomplex subunit 2, mitochondrial Proteins 0.000 description 1
- AYFVYJQAPQTCCC-GBXIJSLDSA-N L-threonine Chemical compound C[C@@H](O)[C@H](N)C(O)=O AYFVYJQAPQTCCC-GBXIJSLDSA-N 0.000 description 1
- 102100032194 NADH dehydrogenase [ubiquinone] 1 beta subcomplex subunit 2, mitochondrial Human genes 0.000 description 1
- 208000012902 Nervous system disease Diseases 0.000 description 1
- 208000025966 Neurological disease Diseases 0.000 description 1
- 108010047956 Nucleosomes Proteins 0.000 description 1
- 108700026244 Open Reading Frames Proteins 0.000 description 1
- 238000012408 PCR amplification Methods 0.000 description 1
- 240000000543 Pentas lanceolata Species 0.000 description 1
- 206010036790 Productive cough Diseases 0.000 description 1
- 108010026552 Proteome Proteins 0.000 description 1
- 108091008109 Pseudogenes Proteins 0.000 description 1
- 102000057361 Pseudogenes Human genes 0.000 description 1
- 230000009948 RNA mutation Effects 0.000 description 1
- 108091081062 Repeated sequence (DNA) Proteins 0.000 description 1
- 102000009661 Repressor Proteins Human genes 0.000 description 1
- 108010034634 Repressor Proteins Proteins 0.000 description 1
- MTCFGRXMJLQNBG-UHFFFAOYSA-N Serine Natural products OCC(N)C(O)=O MTCFGRXMJLQNBG-UHFFFAOYSA-N 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 108091027568 Single-stranded nucleotide Proteins 0.000 description 1
- 201000003696 Sotos syndrome Diseases 0.000 description 1
- AYFVYJQAPQTCCC-UHFFFAOYSA-N Threonine Natural products CC(O)C(N)C(O)=O AYFVYJQAPQTCCC-UHFFFAOYSA-N 0.000 description 1
- 239000004473 Threonine Substances 0.000 description 1
- 208000037280 Trisomy Diseases 0.000 description 1
- 102000044209 Tumor Suppressor Genes Human genes 0.000 description 1
- 108700025716 Tumor Suppressor Genes Proteins 0.000 description 1
- 206010046542 Urinary hesitation Diseases 0.000 description 1
- ROXBGBWUWZTYLZ-UHFFFAOYSA-N [6-[[10-formyl-5,14-dihydroxy-13-methyl-17-(5-oxo-2h-furan-3-yl)-2,3,4,6,7,8,9,11,12,15,16,17-dodecahydro-1h-cyclopenta[a]phenanthren-3-yl]oxy]-4-methoxy-2-methyloxan-3-yl] 4-[2-(4-azido-3-iodophenyl)ethylamino]-4-oxobutanoate Chemical compound O1C(C)C(OC(=O)CCC(=O)NCCC=2C=C(I)C(N=[N+]=[N-])=CC=2)C(OC)CC1OC(CC1(O)CCC2C3(O)CC4)CCC1(C=O)C2CCC3(C)C4C1=CC(=O)OC1 ROXBGBWUWZTYLZ-UHFFFAOYSA-N 0.000 description 1
- 229960000643 adenine Drugs 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 208000026935 allergic disease Diseases 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000019552 anatomical structure morphogenesis Effects 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000006217 arginine-methylation Effects 0.000 description 1
- 238000002869 basic local alignment search tool Methods 0.000 description 1
- 238000013398 bayesian method Methods 0.000 description 1
- 230000002902 bimodal effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000010364 biochemical engineering Methods 0.000 description 1
- 239000003124 biologic agent Substances 0.000 description 1
- 230000008512 biological response Effects 0.000 description 1
- 238000001574 biopsy Methods 0.000 description 1
- 238000001369 bisulfite sequencing Methods 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 230000024245 cell differentiation Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 238000007385 chemical modification Methods 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 239000003153 chemical reaction reagent Substances 0.000 description 1
- 235000012000 cholesterol Nutrition 0.000 description 1
- 108091006090 chromatin-associated proteins Proteins 0.000 description 1
- 210000001726 chromosome structure Anatomy 0.000 description 1
- 230000006329 citrullination Effects 0.000 description 1
- 238000005253 cladding Methods 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000011109 contamination Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000002405 diagnostic procedure Methods 0.000 description 1
- 230000037213 diet Effects 0.000 description 1
- 235000005911 diet Nutrition 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 208000022602 disease susceptibility Diseases 0.000 description 1
- 208000035475 disorder Diseases 0.000 description 1
- 230000005782 double-strand break Effects 0.000 description 1
- 238000009509 drug development Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000001887 electron backscatter diffraction Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 210000002257 embryonic structure Anatomy 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000003891 environmental analysis Methods 0.000 description 1
- 230000007608 epigenetic mechanism Effects 0.000 description 1
- 210000002919 epithelial cell Anatomy 0.000 description 1
- 210000001808 exosome Anatomy 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000004720 fertilization Effects 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000011365 genetic imprinting Effects 0.000 description 1
- 238000012268 genome sequencing Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003306 harvesting Methods 0.000 description 1
- 210000003917 human chromosome Anatomy 0.000 description 1
- 244000005702 human microbiome Species 0.000 description 1
- 238000009396 hybridization Methods 0.000 description 1
- 125000004029 hydroxymethyl group Chemical group [H]OC([H])([H])* 0.000 description 1
- 230000006607 hypermethylation Effects 0.000 description 1
- 238000001114 immunoprecipitation Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000002779 inactivation Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000009812 interlayer coupling reaction Methods 0.000 description 1
- 230000003902 lesion Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000006216 lysine-methylation Effects 0.000 description 1
- 230000036244 malformation Effects 0.000 description 1
- 230000008774 maternal effect Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000001404 mediated effect Effects 0.000 description 1
- 238000002483 medication Methods 0.000 description 1
- 108091070501 miRNA Proteins 0.000 description 1
- 238000002493 microarray Methods 0.000 description 1
- 238000012543 microbiological analysis Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 201000002273 mucopolysaccharidosis II Diseases 0.000 description 1
- 208000022018 mucopolysaccharidosis type 2 Diseases 0.000 description 1
- 210000000663 muscle cell Anatomy 0.000 description 1
- CJWXCNXHAIFFMH-AVZHFPDBSA-N n-[(2s,3r,4s,5s,6r)-2-[(2r,3r,4s,5r)-2-acetamido-4,5,6-trihydroxy-1-oxohexan-3-yl]oxy-3,5-dihydroxy-6-methyloxan-4-yl]acetamide Chemical compound C[C@H]1O[C@@H](O[C@@H]([C@@H](O)[C@H](O)CO)[C@@H](NC(C)=O)C=O)[C@H](O)[C@@H](NC(C)=O)[C@@H]1O CJWXCNXHAIFFMH-AVZHFPDBSA-N 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 108091027963 non-coding RNA Proteins 0.000 description 1
- 102000042567 non-coding RNA Human genes 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 210000001623 nucleosome Anatomy 0.000 description 1
- 230000036542 oxidative stress Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008775 paternal effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 230000035479 physiological effects, processes and functions Effects 0.000 description 1
- 230000035790 physiological processes and functions Effects 0.000 description 1
- 102000040430 polynucleotide Human genes 0.000 description 1
- 108091033319 polynucleotide Proteins 0.000 description 1
- 239000002157 polynucleotide Substances 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000011321 prophylaxis Methods 0.000 description 1
- 230000004853 protein function Effects 0.000 description 1
- 238000004451 qualitative analysis Methods 0.000 description 1
- 238000013442 quality metrics Methods 0.000 description 1
- 238000004445 quantitative analysis Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000010350 quantum mechanical simulation Methods 0.000 description 1
- 230000005233 quantum mechanics related processes and functions Effects 0.000 description 1
- -1 rRNA Proteins 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000007261 regionalization Effects 0.000 description 1
- 230000014493 regulation of gene expression Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000007634 remodeling Methods 0.000 description 1
- 108091008146 restriction endonucleases Proteins 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 210000003705 ribosome Anatomy 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 238000013077 scoring method Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000010008 shearing Methods 0.000 description 1
- 210000003491 skin Anatomy 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 208000024794 sputum Diseases 0.000 description 1
- 210000003802 sputum Anatomy 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000004797 therapeutic response Effects 0.000 description 1
- 210000003014 totipotent stem cell Anatomy 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
- 210000004881 tumor cell Anatomy 0.000 description 1
- 238000012108 two-stage analysis Methods 0.000 description 1
- 229940035893 uracil Drugs 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 210000003556 vascular endothelial cell Anatomy 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
- 238000012070 whole genome sequencing analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01N—INVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
- G01N33/00—Investigating or analysing materials by specific methods not covered by groups G01N1/00 - G01N31/00
- G01N33/48—Biological material, e.g. blood, urine; Haemocytometers
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B30/00—ICT specially adapted for sequence analysis involving nucleotides or amino acids
- G16B30/10—Sequence alignment; Homology search
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B50/00—ICT programming tools or database systems specially adapted for bioinformatics
- G16B50/30—Data warehousing; Computing architectures
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B20/00—ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
- G16B20/20—Allele or variant detection, e.g. single nucleotide polymorphism [SNP] detection
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B40/00—ICT specially adapted for biostatistics; ICT specially adapted for bioinformatics-related machine learning or data mining, e.g. knowledge discovery or pattern finding
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B45/00—ICT specially adapted for bioinformatics-related data visualisation, e.g. displaying of maps or networks
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B50/00—ICT programming tools or database systems specially adapted for bioinformatics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
- H04N25/70—SSIS architectures; Circuits associated therewith
- H04N25/76—Addressed sensors, e.g. MOS or CMOS sensors
- H04N25/77—Pixel circuitry, e.g. memories, A/D converters, pixel amplifiers, shared circuits or shared components
- H04N25/772—Pixel circuitry, e.g. memories, A/D converters, pixel amplifiers, shared circuits or shared components comprising A/D, V/T, V/F, I/T or I/F converters
- H04N25/773—Pixel circuitry, e.g. memories, A/D converters, pixel amplifiers, shared circuits or shared components comprising A/D, V/T, V/F, I/T or I/F converters comprising photon counting circuits, e.g. single photon detection [SPD] or single photon avalanche diodes [SPAD]
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B20/00—ICT specially adapted for functional genomics or proteomics, e.g. genotype-phenotype associations
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B25/00—ICT specially adapted for hybridisation; ICT specially adapted for gene or protein expression
Landscapes
- Life Sciences & Earth Sciences (AREA)
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- Biophysics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Evolutionary Biology (AREA)
- Biotechnology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Chemical & Material Sciences (AREA)
- Analytical Chemistry (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Proteomics, Peptides & Aminoacids (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Genetics & Genomics (AREA)
- Epidemiology (AREA)
- Software Systems (AREA)
- Public Health (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Biomedical Technology (AREA)
- Hematology (AREA)
- Urology & Nephrology (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)
Abstract
本文涉及用于进行二级和/或三级处理的生物信息学系统、设备和方法。具体而言,本文提供了一种通过联合评估映射到参考序列的两个以上的同源区域的读长来提高变异检测准确性的方法和系统。通过联合评估映射到参考序列的两个以上的同源区域的读长来提高变异检测准确性的方法包括访问多个序列读长的联合堆积、从所述联合堆积中确定一组候选变异、定义所述候选变异的处理顺序、根据定义的处理顺序对所述一组候选变异中的每个候选变异进行评估以及根据对所述候选变异的评估结果生成识别一个或多个候选变异的变异检测文件。本文还提供了一种计算机可读存储设备,通过联合评估映射到参考序列的两个以上的同源区域的读长来提高变异检测准确性。
Description
相关申请的交叉引用
本申请是申请号为201780035840.3,发明名称为“用于进行二级和/或三级处理的生物信息学系统、设备和方法”的中国申请的分案申请,该申请是PCT发明专利申请PCT/US2017/036424进入中国国家阶段的申请,申请日为2017年6月7日,其要求了以下专利申请的优先权日:
申请日为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 Sequencers)生成的如此增长的测序通量保持同步通常表现为多线程软件工具,多线程软件工具已经在计算机集群中的更多数量的更快处理器上执行,这些处理器需要大量的功率、显著的IT支持成本及昂贵的高可用性存储器。重要的是,未来二级处理方案在通量测序速度的提高转化为加速增加的实际美元成本。
本公开提供的设备、系统及其使用方法,至少部分地用以解决这些和其他的这样挑战。
发明内容
本公开涉及用于对初级处理程序产生的数据(例如基因序列数据)执行一种或多种基因组学和/或生物信息学方案的装置、系统和方法。例如,在各个方面,本文提供的装置、系统和方法用于对基因组数据(例如通过下一代基因测序仪Next Gen Sequencer(NGS)对RNA和/或DNA测序产生的数据)执行二级和/或三级分析方案。在具体实施例中,提供了用于处理基因序列一个或多个二级处理管道。在其他实施例中,提供了用于基因序列一个或多个三级处理管道。例如其中的管道和/或其单个元件,相较于现有技术,对于获得的序列数据在更广的范围提供更高的灵敏度和改进的准确度。
例如,本文提供了一种系统,例如用于对基因序列数据和/或由其衍生的其他数据执行一个或多个序列和/或基因组分析管道。在各种实施例中,该系统可包括一个或多个电子数据源,电子数据源提供代表基因和/或基因组数据的多个读长(read)的数字信号,例如基因组数据的多个read中的每一个包括核苷酸序列。该系统可以进一步包括存储器,例如DRAM或高速缓冲存储器,例如用于存储一个或多个测序read、一个或多个基因参考序列以及一个或多个基因参考序列的一个或多个索引。该系统可以进一步包括一个或多个集成电路,例如FPGA、ASIC或sASIC和/或CPU和/或GPU集成有电路。例如,对于FPGA、ASIC或sASIC,可以是由通过多个物理电子互连互连的一组硬连线数字逻辑电路形成。该系统可进一步包括量子计算处理单元,用于实现本文公开的一种或多种方法。
在各种实施例中,一个或多个电子互连可包括连接到一个或多个集成电路的输入,所述输入可以,例如经由合适的有线连接直接连接或间接地如经由无线网络连接(例如,云或混合云),连接于电子数据源。无论与测序仪如何连接,本公开的集成电路可以用于直接从测序仪或从相关的存储器接收基因组数据的多个read。所述read可以以FASTQ标准或BCL文件格式进行数字编码。相应地,该系统可以包括具有一个或多个电子互连的集成电路,所述电子互连可以是包括存储器接口的物理互连,以允许集成电路访问存储器。
具体地,集成电路的硬连线数字逻辑电路可以作为一组处理引擎,例如其中每个处理引擎可以由硬连线数字逻辑电路的子集形成,以便对如下文所述的基因数据的多个read以及由基因数据衍生的其他数据执行测序、基因数据或/和三级分析管道的一个或多个步骤。例如,硬连线数字逻辑电路的每个子集可以以硬连线配置来执行分析管道中的一个或多个步骤。另外,在集成电路是FPGA的情况下,序列和/或进一步分析过程中的这些步骤可能涉及在分析过程中FPGA的部分重新配置。
具体地,该组处理引擎可以包括映射模块(mapping module),例如,以有线配置的方式,根据多个read的一个read中的核苷酸序列的至少部分,通过存储器界面从存储器访问一个或多个基因参考序列的索引,基于该索引将read映射到一个或多个基因参考序列的一个或多个片段。另外,该组处理引擎可以包括有线配置的比对模块(alignment module),以经由存储器接口从存储器访问一个或多个基因参考序列,以与read进行比对,例如,将映射的read与(例如从所述映射模块接收的和/或存储在所述存储器中的)一个或多个基因参考序列的一个或多个片段的一个或多个位置进行比对。
更进一步地,该组处理引擎可以包括排序模块(sorting module),以便根据一个或多个基因参考序列中的一个或多个位置对每个比对过的read进行排序。更进一步地,该组处理引擎可以包括变异检测模块(variant call module),例如用于处理(例如与参考基因组相关)映射的、比对的和/或排序的read,从而产生HMM读出(HMM readout)和/或供使用的变异检测文件或/和细化测序基因数据和参考基因组参考数据之间的变化变异。在各种实施试中,一个或多个物理电子互连可以包括集成电路的输出端,用于传送映射模块和/或比对模三维和/或排序模块和/或变异检测模块的结果数据。
具体地,关于映射模块,在各种实施例中,提供了一种用于使用基因参考数据的索引对基因数据的多个read执行映射分析管道的系统。在各种实施方式中,基因序列(例如,read)和/或基因参考数据可以由存储在系统的存储器中人核苷酸序列来表示。映射模块可以包括在集成电路内,并且可以由一组预设的和/或由多个物理电子互连互连的硬连线的数字逻辑电路形成,所述物理电子互连可以包括使得集成电路访问存储器的存储器接口。在更具体的实施例中,硬连线数字逻辑电路可以被布置为一组处理引擎,例如其中每个处理引擎由硬连线数字逻辑电路的子集形成,以在序列分析管道中对多个基因组数据的read执行一个或多个步骤。
例如,在一个实施例中,该组处理引擎可以包括硬连线配置的映射模块,其中映射模块和/或其一个或多个处理引擎用于(例如通过一个多个物理电子互连中的一个或多个)接收基因组数据的read以及用于用这种方式提取read的一部分产生种子。在这种情况下,read可以由核苷酸序列来表示,并且种子可以表示由read所表示的核苷酸序列的子集。映射模块可以包括或可连接到存储器,该存储器包括一个或多个read、read的一个或多个种子、一个或多个参考基因组的至少一部分、和/或一个或多个索引。所述索引是从一个或多个参考基因组构建形成的。在某些情况下,映射模块的处理引擎基于种子使用种子和索引来计算索引内的地址。
一旦(例如在板载或板外存储器中)计算或以其他方式得出和/或存储地址,就可以在存储器中的索引中访问该地址,以便从该地址接收表示基因参考序列中的位置信息的记录。然后,该位置信息可用于基于记录确定从read到基因参考序列的一个或多个匹配位置。然后,可以经由存储器接口将至少一个匹配位置输出到存储器。
在另一个实施例中,一组处理引擎可以包括(例如以预设和/或硬连线配置的)比对模块。在这种情况下,一个或多个处理引擎,用于(经由多个物理电子互连中的一个或多个)接收对应所述read数据的一个或多个映射位置。然后,可以针对每个映射位置访问存储器(内部或外部)以检索对应于映射位置的参考序列/基因组的片段。计算read相对每个检索的参考片段的比对值,并用分值表示比对值。计算完成后,选择并输出read具高分值的比对值。在各种情况下,比对模块还可以用动态编程算法计算比对值,例如Smith-Waterman算法中的一个或多个,例如,线性评分法或仿射空位评分的有空位比对算法和/或无空位比对算法。在特定情况下,比对值的计算可以包括首先对每个参考片段执行无空位比对,并且基于无空位比对,选择参考片段以进一步执行空位比对。
在各种实施例中,提供了一种变异检测模块,用于执行改进的变异检测函数,当在软件和/或硬件配置中实现所述变异检测函数时,相较于现有系统、装置及方法,可达成更快的处理速度、更高的处理结果的准确度并提高整体效率。具体地,在一个方面,提供了用于在软件和/或硬件中对基因序列数据执行变异检测操作(例如一个或多个HMM操作)的改进方法。在另一方面,提供了包括用于执行这种改进的变异检测操作的集成电路的新装置,其中变异检测操作的至少一部分以硬件实现。
因此,在各种实施例中,本文公开的方法可以包括通过硬连线和/或量子数字逻辑电路的第一子集将多个read映射到一个或多个基因参考序列的一个或多个片段。另外,所述方法可以包括由集成和/或量子集(例如,多个物理电子互连中的一个或多个)从存储器或与其相关联的高速缓存中访问一个或多个映射的read和/或一个或多个基因参考序列。所述方法还包括通过硬连线和/或量子数字逻辑电路的第二子集,将多个映射的read与一个或多个基因参考序列的一个或多个片段进行比对。在各种实施例中,该方法还包括通过集成和/或量子集(例如,多个物理电子互连中的一个或多个)从存储器或与其相关联的高速缓存中访问所述比对的多个read。在这种情况下,该方法还可以包括通过硬连线和/或量子数字逻辑电路的第三子集,根据比对的多个read在一个或多个基因参考序列中的位置,对比对的多个read进行排序。在某些情况下,该方法可以进一步包括(例如通过集成和/或量子集的多个物理电子互连中的一个或多个)输出来自映射和/或比对和/或排序的结果数据,其中结果数据包括映射的和/或比对的和/或排序的多个read的位置。
在一些情况下,该方法可以进一步包括:(例如通过硬连线和/或量子数字逻辑电路的另一子集)使用获得的结果数据,来确定来自受试者的测序的基因样品的映射的、比对的和/或排序的数据与参考序列的不同,以产生描述两个样品之间的基因差异的变异检测文件。相应地,在各种实施例中,该方法可以进一步包括通过集成和/或量子集(例如,多个物理电子互连中的一个或多个)从存储器或与其相关联的高速缓存访问映射的和/或比对的和/或排序的多个read。在这样的实例中,该方法可以包括通过硬连线和/或量子数字逻辑电路的第三或第四子集对所访问的read执行变异检测函数,例如HMM或配对的HMM操作,以便产生变异检测文件,所述变异检测文件细化映射的、比对的和/或排序的read与一个或多个(如单倍型)参考序列的read的不同。
因此,根据本公开的具体方面,本文提供了一种(例如基于芯片的)紧凑的硬件或量子加速的平台,用于对基因和/或基因组测序数据执行二级和/或三级分析。具体地,提供了一种硬连线的平台或管道和/或量子数字逻辑电路,其专门设计用于对例如测序的基因数据或自其衍生的基因组数据执行二级和/或三级基因分析。具体的,提供了一组硬连线数字和/或量子逻辑电路,其可以被布置为一组处理引擎,例如所述处理引擎可以是本公开的一处理平台的预配置和/或硬连线和/或量子配置;其专门设计成用于对DNA和/或RNA数据执行与基因分析相关的二级映射和/或比对和/或变异检测操作,和/或专门设计成用于对结果数据执行其他三级处理。
在具体情况下,优化使用本发明的装置、系统和方法执行一种或多种基因组学和/或生物信息学二级和/或三级处理方案,提高了处理速度,比用软件实现的标准二级处理管道快了几个数量级。另外,为了基因组学和生物信息学处理的目的,本文所述的管道和/或其组件在广泛的序列衍生数据集上提供了更好的灵敏度和准确度。在各种情况下,这些操作中的一个或多个可以由集成电路执行,所述集成电路是通用中央处理单元和/或图形处理单元和/或量子处理单元或/和其一部分。
例如,基因组学和生物信息学是涉及到将信息技术和计算机科学应用于基因学和/或分子生物学的领域。具体地,生物信息学技术可用于处理和分析各种(例如来自个体人)基因和/或基因组数据,以便确定所述数据的定性和定量信息,所述信息然后可以被各种从业者用于预防、治疗或/和用于预防、治疗、改善和/或至少识别疾病和/或其潜在状态的诊断方法,从而在个体化水平上改善医疗保健的安全性、质量和有效性。因此,由于专注于推进个性化医疗保健,基因组学和生物信息学领域促进个性化的医疗保健是积极的,而不是被动的,这使得需要治疗的主体有机会更多地参与他们自己的健康。利用本公开的基因学、基因组学和/或生物信息学技术的优点是以更快的速率及更高的准确性对更宽范围的样品组进行对分子生物学(例如基因)数据的定性和/或定量分析,从而加快了个性化医疗保健系统的出现。具体地,在各种实施例中,基因组学和/或生物信息学相关任务可以形成基因组学管道,基因组学分析管道包括一个或多个微阵列分析、基因组管道(例如全基因组分析管道)、基因分型分析管道、外显子组分析管道、表观基因组分析管道、宏基因组分析管道、微生物组分析管道、包括联合基因分型分析的基因分型分析管道,包括结构变异分析、体细胞变异分析和GATK分析的变异分析管道及RNA序列分析和其他基因分析管道。
因此,为了利用这些优点,需要用于执行一个或一系列这样的基于生物信息学的分析技术的增强的和更准确的(例如由通用CPU和/或GPU的进行开发的和/或可以在一量子处理平台的一个或多量子集中实现的)软件实现。然而,基于生物信息学方法和系统的传统配置软件的共同特征是它们是劳动密集型的,在这样的通用处理器上执行软件需要很长时间,并且容易出错。因此,如本公开所实现的生物信息学系统可以执行这些算法将是有用的,例如由量子处理单元的CPU和/或GPU以较少的劳动和/或处理密集度的方式及以较高的百分比精度,在软件中实现。
这样的实施方式已开发出来并呈现于本文,例如在利用本公开的处理单元和/或集成电路并使用衍生的基因序列数据的系统中,通过在CPU和/或GPU上或/和量子计算机运行的优化软件来分析基因组学和/或生物信息学。进一步地,应当说明的是,分析、存储和共享该原始数字数据的成本远远超过了生成它的成本。因此,提出了“及时(just in time)”存储和/或检索方法,以替代再生数据的速度的方式优化这种数据的存储,以换取共同存储这些数据的成本。因此,此处提出的数据生成、分析和“及时”或“JIT”存储方法解决了一个关键瓶颈,即长期存在于不断增长的原始数据生成和存储与从其寻求实际(real)的医学见解之间但一直未解决的障碍。
因此,本文提出了用于实现基因组学和/或生物信息学方案或其部分的系统、装置和方法,例如通过如硬件处理平台和通用处理器的一个或两个集成电路执行分析基因组数据的一个或多个函数,例如,用软件和/或固件执行一个或多个生物分析操作。例如,如下文所述,在各种实施例中,提供集成电路和/或量子集,以加快初级、二级和/或三级处理平台中的一个或多个过程。在各种情况下,集成电路可以用于以加速方式执行基因分析相关任务,例如映射、比对、变异检测、压缩、解压缩等,并且集成电路可包括硬件加速配置。另外,在各种情况下,可以提供集成和/或量子集,例如集成和/或量子集是处理单元的一部分,该处理单元用于对所生成的映射和/或比对和/或变异检测的数据执行一个或多个基因组学和/或生物信息学方案。
具体地,在第一实施例中,第一集成电路可以由FPGA、ASIC和/或sASIC形成,FPGA、ASIC和/或sASIC可耦合或以其他方式连接到主板,或者可通过固件来编程将FPGA配置为一组硬连线数字逻辑电路,用于在基因组分析管道中执行至少第一组序列分析函数,例如上述配置集成电路包括作为一组处理引擎的一个或多个数字逻辑电路,其用于对基因数据执行映射、比对和/或变异检测操作中的一个或多个步骤,以产生序列分析结果数据。第一集成电路进一步包括(例如由多个物理电子互连形成的)输出端,例如用于将映射和/或比对和/或其他过程的结果数据传送到存储器。
另外,可以包括耦合或以其他方式附接到主板的第二集成和/或量子集,并且经由通信接口与存储器通信。第二集成和/或量子集可以形成中央处理单元(CPU)或图形处理单元(GPU)或量子处理单元(QPU),用于接收映射的和/或比对的和/或变异检测的序列分析结果数据并且适于响应于一个或多个软件算法,所述软件算法用于指示CPU或GPU对映射,对映射的和/或比对的和/或变异检测的序列分析结果数据执行基因组分析管道的一个或多个基因组学和/或生物信息学函数。具体地,基因组学和/或生物信息学相关任务可以形成基因组学分析管道,基因组学分析管道包括一个或多个微阵列分析、基因组管道(例如全基因组分析管道)、基因分型分析管道、外显子组分析管道、表观基因组分析管道、宏基因组分析管道、微生物组分析管道、包括联合基因分型分析的基因分型分析管道,包括结构变异分析、体细胞变异分析和GATK分析的变异分析管道及RNA序列分析和其他基因分析管道。
例如,在一个实施例中,第二集成电路的CPU和/或GPU和/或QPU可以包括用于形成基因组分析管道的软件,用于执行全基因组分析管道,例如全基因组分析管道包括全基因组变异分析、全外显子组DNA分析、全转录组RNA分析、基因功能分析、蛋白质功能分析、蛋白质结合分析、定量基因分析和/或基因组装分析中的一种或多种。在某些情况下,执行全基因组分析管道,用于血统分析、个人病史分析、疾病诊断、药物发现和/或蛋白质分析中的一种或多种的目的。在特定情况下,进行全基因组分析管道,用于肿瘤学分析的目的。在各种情况下,这些数据的结果可在整个(例如全球的)系统使用。
在各种情况下,第二集成和/或量子集的CPU和/或GPU和/或量子处理单元(QPU)用于形成基因组分析管道的软件,用来执行例如包括联合基因分型的基因分型分析。例如,可以使用贝叶斯概率计算来执行联合基因分型分析,例如贝叶斯概率计算,得出当给定且确定的基因型是真实基因型时的绝对概率。在其他情况下,软件可用于执行宏基因组分析,以便产生宏基因组结果数据,该宏基因组结果数据又可以用于执行微生物组分析。
在某些情况下,第一和/或第二集成电路和/或存储器可以容纳在扩展卡(例如外围部件互连(PCI)卡)。例如,在各种实施例中,集成电路的一个或多个可以是耦合到PCIe卡或以其他方式与主板相关联的一个或多个芯片。在各种情况下,集成和/或量子集和/或芯片可以是测序仪或计算机或服务器内的组件,例如服务器场的一部分。在特定实施例中,可以经由互联网(例如,云端)访问集成和/或量子集和/或扩展卡和/或计算机和/或服务器。
此外,在某些情况下,存储器可以是易失性随机存取存储器(RAM),例如直接存取存储器(DRAM)。具体地,在各种实施例中,存储器可以包括至少两个存储器,例如第一存储器为HMEM,用于存储参考单倍型序列数据;以及第二存储器为RMEM,用于存储基因组序列数据的read。在具体情况下,两个存储器中的每一个可以包括写端口和/或读端口,例如其中的写端口和读端口可各自访问单独的时钟。另外,两个存储器中的每一个可以包括用于存储多个基因序列和/或处理结果数据的触发器配置。
因此,在另一方面,该系统在其组成部分之间共享存储器资源,例如,由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或其他芯片组)。
具体地,在各种实施例中,提供了一种基因组学分析平台。例如,所述平台可以包括主板、存储器和多个集成和/或量子集(例如形成CPU/GPU/QPU)、映射模块、比对模块、排序模块和/或变异检测模块。具体地,在具体实施例中,所述平台包括第一集成和/或量子集(如集成电路形成的中央处理单元(CPU)或图形处理单元(GPU)或量子集成电路形成的量子处理器,响应用于指示CPU/GPU/QPU执行本文所述的一组或多组基因组分析函数的一个或多个软件或其他算法,其中所述CPU/GPU/QPU包括与主板连接的第一组物理电子互连。在各种实施例中,通过第一组物理电子互连的至少一部分,存储器还可以连接到主板并且与CPU/GPU/QPU电连接。在这些实施例中,存储器用于存储基因组数据的多个read和/或至少一个或多个基因参考序列和/或一个或多个基因参考序列的索引。
另外,所述平台还可包括一个或多个其他集成电路,其中每个所述其他集成电路形成现场可编程门阵列(FPGA),FPGA具有第二组物理电子互连且通过点对点互连方案可与CPU/GPU/QPU和存储器相连接。在该实施例中,其中集成电路是FPGA,所述FPGA可以通过固件编程以配置一组硬连线数字逻辑电路,硬连线数字逻辑电路通过多个物理互连进行互连以执行第二组基因组分析函数(例如映射、比对、变异检测等)。具体地,FPGA的硬连线数字逻辑电路可被设置为一组处理引擎,以在基因组分析的序列分析管道中执行一个或多个预设步骤,其中该组处理引擎包括一个或多个映射和/或比对和/或变异检测模块,其中这些模块可以由处理引擎的单独或相同子集形成。如其所述,在各实施例中,系统可包括一个或多个处理引擎。所述处理引擎本身可用于确定基因组序列的read的核苷酸序列从一种状态到另一种状态的一个或多个转换概率,例如从匹配状态到插入或缺失状态,或者匹配状态到缺失状态和/或再次返回(例如从插入或缺失状态返回到匹配状态)。另外,在各种实施例中,集成电路可以具有管道配置和/或包括硬连线数字逻辑电路的第二和/或第三和/或第四子集,其包括第二组处理引擎,其中第二组处理引擎包括映射模块,用于将基因组序列的read映射到参考单倍型序列以产生映射的read。硬连线数字逻辑电路的第三子集可包括第二组处理引擎,例如其中第三组处理引擎包括比对模块,用于将映射的read与参考单倍型序列中的一个或多个位置进行比对。硬连线数字逻辑电路的第四子集包括第四组处理引擎,例如其中第四组处理引擎包括排序模块,用于将映射的和/或比对的read排序到染色体中的相对位置。如上所述,在各种实施例中,映射模块和/或比对模块和/或排序模块以及变异检测模块可以物理地集成在扩展卡上。并且在某些实施例中,扩展卡可以与测序仪(例如下一代测序仪等)物理地集成在一起。
因此,在一个方面,提供了用于对基因数据执行序列分析管道的一个或多个步骤的装置,其中基因数据包括一个或多个基因参考序列(例如单倍型或假设的单倍型序列)、一种或多种基因参考序列的索引和/或多种(基因和/或基因组数据)的read,其中基因和/或基因组数据可以存储在一个或多个共享存储器装置内和/或由分布式处理资源(例如CPU/GPU/QPU和/或FPGA)进行处理,CPU/GPU/QPU和/或FPGA紧密地或松散地耦合在一起。因此,在各实施例中,该装置可以包括集成电路,该集成电路可以包括一个或多个(例如,一组)硬连线数字逻辑电路,其中该组硬连线数字逻辑电路可以通过一个或多个物理电子互连进行互连。
因此,该系统包括由一个或多个数字逻辑电路形成的集成电路,所述数字逻辑电路通过多个物理电子互连进行互连,所述多个物理电子互连中的一个或多个具有存储器接口和/或高速缓存,用于集成电路在CPU/GPU/QPU与相关芯片(例如FPGA)之间以高速缓存相干性互连方式访问该存储器和/或其上存储的数据并检索存储器和/或数据。在各种实施例中,数字逻辑电路可以包括数字逻辑电路的至少一第一子集,其中数字逻辑电路的第一子集可被设置成第一组处理引擎,其中该组处理引擎可用于访问直接或间接耦合至存储器的高速缓存存储器储的数据。例如,该第一组处理引擎可用于执行如上所述的映射和/或比对和/或排序分析和/或对基因组序列数据及单倍型序列数据的read进行HMM分析的一个或多个步骤。
更具体地,第一组处理引擎可以包括HMM模块,例如在数字逻辑电路子集的子集的第一种结构中,其适于通过存储器接口访问存储器中的基因组序列数据及单倍型序列数据的read中的核苷酸序列的至少部分,并对基因组序列数据及单倍型序列数据的read中的核苷酸序列的至少部分执行HMM分析,以产生HMM结果数据。另外,多个物理电子互连中的一个或多个可以包括来自集成电路的输出端,用于从HMM模块输出HMM结果数据至诸如服务器或服务器集群的CPU/GPU/QPU。
因此,在一个方面,提供了一种用于对基因序列数据执行序列分析管道的方法。基因数据可包括一个或多个基因参考或单倍型序列、一个或多个基因参考或单倍型序列的一个或多个索引和/或基因组数据的多个read。该方法可以包括接收、访问、映射、比对、排序基因序列数据的各种迭代中的一个或多个和/或在生成一个或多个变异检测文件的方法中使用其结果。例如,在某些实施例中,该方法可以包括在集成电路的输入端接收来自电子数据源的一个或多个基因组数据的多个read中的一个或多个,其中基因组数据的每个read可包括核苷酸的序列。
在各种实施例中,集成电路可以由硬线连接的该组硬连线数字逻辑电路的子集形成,该组硬连线数字逻辑电路的子集可被设置成一个或多个处理引擎。在本实施例中,处理引擎可以由可以处于有线配置的硬连线数字逻辑电路的子集形成。在本实施例中,处理引擎可用于执行一个或多个预设步骤,用于实现接收、访问、映射、比对、排序基因序列数据的各种迭代中的一个或多个和/或在生成一个或多个变异检测文件的方法中使用其结果。在一些实施例中,提供的数字逻辑电路可(例如通过多个物理电子互连)互连,其可以包括一输入端。
该方法还可以包括由在多个物理电子互连中的一个或多个上的集成电路从一存储器访问数据,以执行本文详述的一个或多个操作。在各种实施例中,所述集成电路可以是芯片组的一部分,嵌入或其他包含的方式的芯片组作为FPGA,ASIC或结构化ASIC的一部分,并且存储器可以直接或间接耦合到芯片和/或与其相关联的CPU/GPU/QPU中的一个或两个。例如,存储器可以是多个存储器,每个存储器中的一个耦合到芯片及CPU/GPU/QPU,其中CPU/GPU/QPU本身松散地耦合到芯片。
在其他实施例中,存储器可以是通过紧密处理互连或快速路径互连(例如QPI,快速通道互联通)耦合到CPU/GPU/QPU的单个存储器,其中CPU/GPU/QPU本身紧密耦合到FPGA,因而能以高速缓存相干性的方式被FPGA访问。因此,集成电路可以直接或间接地耦合到存储器,以便访问与执行本文所呈现的函数相关的数据,例如在执行映射操作时,访问多个read的一个或多个、基因参考或理论参考序列中的一个或多个和/或一个或多个基因参考序列的索引。
因此,在各种实施例中,本公开的各个方面的实现可以包括但不限于:包括本文详述的一个或多个特征的装置、系统和方法以及包括有形体现的机器可读介质的物体用于使一个或多个机器(例如,计算机等)产生本文所述的操作。同样地,本公开还描述了计算机系统,其包括一个或多个处理器或/和耦合到一个或多个处理器的一个或多个存储器。因此,与本发明当前主题的一个或多个实现相一致的由计算机实现的方法可以由(例如在计算或超计算库的)的单个计算系统或包含多个计算机的多计算系统内设置的一个或多个处理器来实现。
这样的多计算系统可以经由一个或多个连接方式被连接或交换数据和/或命令或其他指令等,所述连接方式包括但不限于网络连接及多个计算系统中的一个或多个之间的直接连接等。所述网络连接包含互联网、无线广域网、局域网、广域网、有线网络、物理电子互连等。计算机可读存储介质的存储器可包括编码及存储等一个或多个程序,这些程序使一个或多个处理器执行与本文所述的一个或多个算法相关联的一个或多个操作。
附图和以下描述中阐述了本文所述主题的一个或多个变型的细节。根据说明书和附图以及权利要求,本文所述主题的其他特征和优点将会很清楚。描述当前公开的主题的某些特征是为了示例性地说明有关企业资源软件系统或其他商业软件解决方案或体系结构,但可以容易理解的,并非是对这些特征进行限制。本公开所附的权利要求旨在定义受保护主题的范围。
附图说明
包含于本说明书及构成本说明书的一部分的附图,示出了本文公开的主题的某些方面,并且与说明书一起帮助解释与公开的实施方式相关联的一些原理。
图1A示出了设置有多个基因样本的测序平台,还示出了多个示例性图块以及测序read的三维呈现结构。
图1B示出了具有各种通道的流动单元。
图1C示出了图1B中的平台的流动单元的底部的一角,显示了一系统的的测序read。
图ID示出了对图1和图2的read执行测序的结果的虚拟阵列,其中read依列顺序在输出列中列出。
图IE示出了实现结果read依逐列顺序到逐行顺序的转置的方法。
图IF示出了结果read从逐列顺序到逐行顺序的转置。
图1G示出了用于执行转置的系统组件。
图1H示出了转置顺序。
图1I描述了一种用于电子转置测序数据的架构。
图2示出了基于HMM三种状态的模型,其示出了从一个状态到另一个状态的转换概率。
图3A示出了包括HMM接口结构的集成电路的高级视图。
图3B示出了图3A的集成电路,显示了更具体的HMM簇的特征。
图4示出了包含软件和硬件互连的整个系统中的HMM相关数据流的概况。
图5示出了示例性HMM簇环互联。
图6示出了示例性HMM硬件加速器内的主要功能块的高级视图。
图7示出了示例性HMM矩阵结构和硬件处理流程。
图8示出了图2的部分放大视图,示出了数据流及矩阵内的HMM的M、I和D状态计算中邻近单元之间的依赖关系。
图9示出了对M、I、D状态更新有用的示例性计算。
图10示出了M、I和D状态更新电路,包括简化图9与转换概率有关的假设以及与最终求和运算共享一些M、I、D加法器资源的效果。
图11示出了对数(Log)域的M、I、D状态的计算细节。
图12示出了HMM状态转换图,其显示了GOP、GCP和转换概率之间的关系。
图13示出了HMM转换概率(transition probabilities;Transprobs)和先验结果(Priors)生成电路,以支持图12的一般状态转换图。
图14示出了简化的HMM状态转换图,并显示了GOP、GCP和转换位概率之间的关系。
图15示出了HMM转换概率和Priors生成电路,以支持简化的状态转换。
图16示出了示例性理论HMM矩阵及如何遍历这样的HMM矩阵。
图17A示出了用于执行多区域联合检测预处理过程的方法。
图17B示出了图17A中的预处理过程中的计算互连矩阵的示例性方法。
图18A示出了read堆积中两个同源测序区域之间的示例性事件。
图18B示出了图18A构建的read,显示了两个序列之间的核苷酸差异。
图18C示出了用于执行加速变异检测操作的De Brujin图的各种气泡。
图18D示出了如本公开所述的修剪树功能的示例。
图18E示出了图18C的一个气泡。
图19是根据图17的连接矩阵的示例性堆积的示意图。
图20是用于执行图17A和17B的预处理过程的处理矩阵。
图21是根据图20的方法在De Brujin图中的气泡形成的实施例。
图22是通过示例性De Brujin图的变异路径的实施例。
图23是示例性排序功能的示意图。
图24是用于修剪的多区域联合检测过程的处理矩阵的另一实施例。
图25示出了两个区域的成对read的联合堆积。
图26示出本公开的概率表。
图27示出用于多区域联合检测过程的处理矩阵的另一实施例。
图28示出了用于图25的联合堆积的备选方案中的一个。
图29示出了执行修剪功能后用于图28的堆积的备选方案的其中的一个。
图30示出了在执行MRJD函数后图28的最终备选方案及相关概率。
图31示出了MRJD和传统检测器的ROC曲线。
图32示出了与图32相同的结果随参考序列相似性变化的关系图。
图33A示出了本公开的CPU和FPGA之间的松散耦合的结构示意图。
图33B示出了本公开的CPU和FPGA之间的紧耦合的结构示意图。
图34A示出了本公开的CPU和FPGA的直接耦合的结构示意图。
图34B示出了图34A的CPU和FPGA的直接耦合的替换实施例的结构示意图。
图35示出了组合的CPU和FPGA的封装的实施例,其中两个设备共享公共存储器和/或高速缓存。
图36示出了共享一个或多个存储器和/或高速缓冲存储器(Cache)的CPU内核,其中CPU用于与一个或多个FPGA通信,所述FPGA还可以包括共享或公共存储器或高速缓存。
图37示出了整个系统中的数据传输的示例性方法。
图38更详细地示出了图36的实施例。
图39示出了用于处理本公开的系统的一个或多个作业的示例性方法。
图40A示出了用于基于现场和/或云的基因组学处理和分析的基因组基础结构的框图。
图40B示出了用于执行本文公开的BioIT分析的基于云的基因组学处理平台的框图。
图40C示出了示例性基因组处理和分析管道的框图。
图40D示出了示例性基因组处理和分析管道的框图。
图41A示出了图40A的基于本地和/或云的计算函数的框图,用于基于现场和/或云的基因组学处理和分析的基因组基础结构。
图41B示出了图41A的框图及用于基于现场和/或云的基因组学处理和分析的基因组基础结构的计算函数的更多细节。
图41C示出了图40的框图及关于基于现场和/或基于云的基因组学处理和分析的基因组基础结构的第三方分析函数的更多细节。
图42A示出了混合云配置的框图。
图42B更详细地示出了图42A的框图及混合云配置。
图42C更详细地示出了图42A的框图及示出了混合云配置。
图43A示出了本文所示的初级、二级和/或三级分析管道的框图。
图43B示出了用本文的系统的方法和装置执行的示例性三级处理表观基因学分析的流程。
图43C提供了用本文的系统的方法和装置执行的示例性三级处理的甲基化分析的流程。
图43D提供了用本文的系统的方法和装置执行的示例性三级处理的结构变异分析的流程。
图43E提供了用本文的系统的方法和装置执行的示例性三级群组处理的分析流程。
图43F提供了用本文的系统的方法和装置执行三级处理的示例性联合基因分型分析流程。
图44示出了本公开的分析管道的流程图。
图45是根据本公开的实现的硬件处理器架构的框图。
图46是根据另一实施例的硬件处理器架构的框图。
图47是根据再一实施例的硬件处理器架构的框图。
图48示出了基因序列分析管道。
图49示出了使用基因序列分析硬件平台的处理步骤。
图50A示出了根据本公开的实施例的装置。
图50B示出了根据本公开的替代实施例的另一装置。
图51示出了根据一实施例的基因组学处理系统。
具体实施方式
如上所总结的,本公开涉及执行一个或多个基因组学和/或生物信息学方案的装置、系统和使用所述装置及系统的方法,例如,对初级处理过程产生的数据(如基因序列数据)执行映射、比对、排序和/或变异检测方案。例如,在各个方面,本文提供的装置、系统和方法用于对基因数据执行二级分析方案,例如通过下一代测序仪(Next Gen Sequencer,NGS)对RNA和/或DNA测序产生的数据。在具体实施例中,提供了用于处理基因序列数据的一个或多个二级处理管道,例如其中所述管道和/或其各个元件可以以分布方式和/或优化方式软件、硬件或其组合来实现,相较于现有技术,可在处理所获得的更广泛的序列数据时具有优异的灵敏度和改进的准确度。另外,如上所概述的,本公开涉及执行一个或多个基因组学和/或生物信息学三级方案的装置、系统和使用所述装置及系统的方法,例如对映射的、比对的和/或其他基因序列数据(例如一个或多个变异检测文件)执行基因组微阵列分析方案,例如,全基因组分析方案、基因分型分析方案、外显子组分析方案、表观基因组分析方案、宏基因组分析方案、微生物组分析方案、(包括联合基因分型的)基因分型分析方案,(包括结构变异、体细胞变异和GATK分析的)变异分析方案以及RNA测序方案和其他基因分析方案。
因此,本文提供了用于执行DNA/RNA测序数据的二级和/或三级分析的软件和/或(如基于芯片的)硬件及加速平台分析技术。更具体地,(例如以软件实现和/或硬连线配置的)处理引擎的平台或管道,其专门为执行二级基因分析而设计的,例如映射、比对、排序和/或变异检测,和/或专门为执行三级基因分析而设计的,例如微阵列分析、例如基因组(如全基因组)分析、基因分型分析、外显子组分析、表观基因组分析、宏基因组分析、微生物组分析、以及RNA测序分析和其他基因分析,其中,变异分析包括结构变异分析、体细胞变异分析和GATK分析;基因分型分析包括联合基因分型分析;例如基于基因的测序数据是以优化的格式生成,其使处理速度的提高相较于在已知软件中实现标准管道更快。处理速度的提高比单独使用已知软件实现的标准管道更快。另外,本文所呈现的管道在处理广泛的序列衍生的数据集(例如核酸或蛋白质衍生的序列)时提供了更好的灵敏度和更高准确度。
因此,在一些情况下,确定人的个体基因组是生物信息学处理的目标,确定人的个体基因组可以用于基因发现方案以及用于疾病预防和/或治疗方案以更好地提高每个个体和人类的生活。此外,已知个体基因组可以用于例如在药物发现和/或FDA试验中,以更好地预测可能对个体起作用的药物(如果有的话)和/或可能具有有害副作用的药物,例如通过分析个体的基因组和/或由其衍生的蛋白质图谱并将其与施用此类药物的预测生物反应进行比较。
这种生物信息学处理通常涉及三个定义明确,但通常单独的信息处理阶段。第一阶段,称为初级处理,涉及DNA/RNA测序,其中获得受试者的DNA/RNA并用于各种过程,由此受试者的遗传密码被转换为机器可读的数字代码,例如FASTQ文件。第二阶段,称为二级处理,涉及使用生成的受试者的数字遗传密码来确定个体的基因组成,例如确定个体的基因组核苷酸序列和/或变异检测文件,例如个体的基因组与一个或多个参考基因组的不同之处。第三阶段,称为三级处理,涉及对受试者的基因组成进行一项或多项分析,以便从中确定对治疗有用的信息。
因此,一旦(例如通过NextGen测序仪)对受试者的遗传密码进行测序,可产生受试者遗传密码的机器可读的数字表示,例如,以FASTQ和/或BCL文件格式,对从测序仪和/或测序方案获得的数字编码的序列数据进行进一步处理可能有用,例如将数字表示的数据用于二级处理。例如,该二级处理可以用于组装个体的整个基因组图谱,例如确定个体的全部基因组成,例如每个染色体和每个染色体的每个核苷酸以连续顺序确定,由此确定个体的整个基因组的组成。在这样的处理中,个体的基因组可以例如通过与参考基因组(例如标准,例如从人类基因组计划获得的一个或多个基因组)进行比较来组装,以便确定个体的基因组成与参考基因组的区别。这个过程通常被称为变异检测。由于任何一个人与另一个人的DNA/RNA之间的差异是1000个碱基对中的1个,所以这种变异检测过程可能非常费时费力。需要许多步骤在管道中一个接一个地执行和/或同时执行,例如,以分析受试者的基因组数据并确定该基因序列与给定参考的差异。
在执行二级分析管道时,例如用于为单个主体的给定查询序列生成变量检测文件;可以是从主体获得基因样本,例如DNA、RNA、蛋白质样本等。然后,例如,在初级处理步中,以重复采样的方式,例如通过NextGen测序仪(NGS)和/或基于芯片的测序仪技术对受试者的DNA/RNA进行测序,以产生多个覆盖个体基因组的全部或部分产生的多个read序列片段(“read”)。由测序装置产生的最终产物可以是短序列的集合,例如read,其代表受试者基因组的小片段,例如代表个体整个基因组的短基因序列。如所指出的,典型地,由这些reads表示的信息可以是图像文件或数字格式(例如FASTQ、BCL或其他类似的文件格式)
因此,在典型的二级处理方案中,受试者的基因组成通过与参考基因组进行比较来组装。该比较涉及从数百万个短read序列中重建个体基因组和/或将整个个体的DNA和/或RNA与示例性DNA和/或RNA序列模型进行比较。在典型的二级处理方案中,从包含原始序列read数据的测序仪接收FASTQ和/或BCL文件。因此,在这种情况下,为了将受试者的DNA/RNA基因组与标准参考基因组进行比较,需要确定每一个read对应于参考基因组的位置,例如它们彼此之间的比对情况,和/或每个read按染色体顺序进行排序以确定每个read属于哪个染色体和哪个位置。在对整个全长序列执行变异检测函数之前,可能会发生这些函数中的一个或多个。一旦确定了基因组中每个read所属的位置,就可以确定全长基因序列,然后可以评估受试者的遗传密码和参考对象之间的差异。
例如,基于参考对象的组装是典型的二级处理组装方案,涉及将受试者的测序基因组DNA和/或RNA与一种或多种标准(例如已知的参考序列)进行比较。已经开发了各种算法来帮助加快这一过程。这些算法通常包括以下一种或多种的变型:对从数字(例如FASTQ和/或BCL文)文件接收的由测序仪进行通信的数百万个read进行映射、比对和/或排序,以确定每个特定read在每个染色体上的位置或对应于其他地方。应当注意,这些过程可以用软件或硬件实现,例如美国专利第9,014,989和9,235,680号中描述的方法和/或设备,这两件专利已经转让给Edico Genome Corporation,并通过引用整体并入本文。通常,这些各种算法的函数背后的一个共同特征是它们使用索引和/或阵列来加速其处理函数。
例如,关于映射,可以对大量(例如全部)测序read进行处理,以确定read在参考基因组中可能对准的位置。一种可用于此目的的方法是将read与参考基因组进行直接比较以找到所有匹配的位置。为了将read映射到参考DNA/RNA基因组中的各个位置,另一种方法是使用前缀或后缀数组,或构建前缀或后缀。用于执行这种函数的典型算法是Burrows-Wheeler变换,该变换使用压缩重复序列数据的压缩公式将选定的read映射到参考基因组中。
另一种方法是使用散列表,例如将选定的read子集、选定长度为“k”的k-mer(例如种子)作为关键字(key)置于散列表中,并且参考序列被分解成相等的k-mer部分,并且根据散列函数映射到的表中的位置,通过算法将这些部分及其位置插入散列表中。执行此函数的典型算法是“BLAST”(a Basic Local Alignment Search Tool)。这种基于散列表的程序将查询核苷酸或蛋白质序列与一个或多个标准参考序列数据库进行比较,并计算匹配的统计显着性。以这样的方式,可以确定任何给定read可能位于参考基因组的哪个位置。这些算法是有用的,因为它们需要较少的存储器,较少的查找、查找表、并且因此在执行其函数时需要较少的处理资源和时间。否则,例如受试者的基因组不使用这些算法而是通过直接比较进行组装。
另外,可以执行比对函数以确定给定read可以映射到基因组上的所有可能位置,例如当read可以映射到基因组中的多个位置,其实际上是它实际位置,例如通过原始测序方案对其进行排序。该函数可以在基因组的多个read上进行,并且可以获得表示受试者的DNA和/或RNA的部分或全部基因序列的一串有序核苷酸碱基。与有序基因序列一起,对每个核苷酸位置上的任意核苷酸进行评分,该评分表示对于任意给定的核苷酸位置,预测该位置上的核苷酸(例如“A”、“C”、“G”、“T”或“U”)是否实际上是属于该比对位置。用于执行比对函数的典型算法是Needleman-Wunsch和Smith-Waterman。在任一种情况下,这些算法在受试者的查询基因组DNA和/或RNA序列与参考基因组序列之间执行序列比对,由此,将一个选定的可能长度的片段与另一个进行比较代替比较整个基因组序列。
一旦read已经被分配了例如相对于参考基因组的位置(其可包括识别read所属的哪个染色体和/或其与该染色体的起点的偏移),那么read可按位置排序。这可能使下游分析能够利用上述的重复采样。所有与基因组中给定位置重叠的read在排序后彼此相邻,并且它们可以被组织成堆积并且易于检查以确定它们中的大多数是否与参考序列一致。如果他们不是,可以标记变异。
例如,在各种实施例中,本公开的方法包括生成变异检测文件(VCF),该变异检测文件标识一个或多个(例如全部)个体被测DNA/RNA相对于一个或多个参考基因组的基因变异。例如,一旦知道实际样本基因组并与参考基因组进行比较,就可以确定两者之间的差异,并且可以列出参考基因组和样本基因组之间所有变异/偏差的列,例如,可以生成变异检测文件。特别地,在一个方面,可以生成包含主体的基因序列相对于参考序列的所有变异的变异检测文件。
如上所述,两种基因序列之间的这种变异可能是由于许多原因。然而,如上所述,为了产生这样的文件,在确定其变异之前,必须对受试者的基因组进行测序和重建。但是,尝试生成这种组件时可能会出现若干问题。如上所述,测序过程中可能存在化学、测序仪和/或人为错误等问题。另外,可能存在遗传假象使重建出现问题。例如,进行这种组装的问题是有时候有很大一部分基因组会重复,例如包含相同核苷酸串的基因组长片段。因此,由于任何基因序列在任何地方都不是唯一的,因此可能难以确定被识别的read实际上在基因组中哪个位置被映射和比对。例如,可能存在单核苷酸多态性(SNP),例如其中受试者基因序列中的一个碱基已经被另一个碱基取代;可能有多个核苷酸被广泛取代;可能存在插入或缺失,例如其中一个或多个碱基被添加到受试者的基因序列或从受试者的基因序列中删除,和/或可能存在结构变异,例如由于两条染色体交叉导致,和/或可能由于偏移而导致序列的改变。
因此,变异有两种主要的可能性。其一,例如,在特定位置存在实际变异,例如在特定位置,人的基因组确实与参考基因组不同,例如由于SNP(一个碱基取代)、插入或缺失(一个或多个核苷酸长度)导致的结构变异,例如来自一个染色体的DNA物质与不同的染色体或leg交叉,或在DNA某个区域复制两次。其二,由化学或机器、测序仪或比对器或其他人为错误导致read数据出现问题,进而引起变异。因此,使用本文公开的方法可以补偿这些类型的错误,并且更具体地,可区分由化学、机器或人为造成的错误引起的变异,以及测序基因组中的实际变异。更具体地说,已经开发了如本公开描述的方法、设备和使用其的系统,可清楚地区分这两种不同类型的变异,并因此更好地确保所生成的任何检测文件的准确性,从而正确识别真实的变异。
因此,在具体实施方式中,提供了用于执行基因分析的技术平台,其中该平台可以包括以下一项或多项操作:映射、比对、排序、局部重新比对、重复标记、碱基质量评分重新校准、变异检测、压缩和/或解压缩函数。例如,在各个方面中,可以提供管道,其中管道包括在一个或多个个体的基因组的基因序列上执行一个或多个如本公开所述的分析函数,例如从自动测序仪获得的图像文件和/或数字格式的数据,例如FASTQ或BCL。待执行的典型管道可以包括一个或多个受试者的一种或多种测序遗传物质(例如部分或全部基因组),所述遗传物质可以包括DNA、ssDNA、RNA、rRNA、tRNA等,和/或在一些情况下,遗传物质可以代表编码区或非编码区,如外显子组,DNA的游离体。管道可以包括执行一个或多个碱基检测和/或错误校正操作(例如数字化基因数据),和/或可以包括对基因数据执行以下一个或多个函数:映射、比对和/或排序。在某些情况下,管道可以包括对数字化基因数据执行一个或多个:图像处理、碱基检测和/或错误校正和/或对基因数据进行映射、比对和/或排序。在某些情况下,管道可以包括对数字化基因数据执行一个或多个以下:重新比对、去除重复数据(deduplication)、碱基质量或评分重新校准、缩减和/或压缩、和/或解压缩。在某些情况下,管道可能包括对基因数据进行变异检测操作,例如隐马尔可夫模型。
因此,在某些情况下,实现这些平台函数中的一个或多个是为了执行以下一项或多项:确定和/或重建受试者的共有基因组序列,将受试者的基因组序列与参考序列进行比较,例如,参考或模型基因序列,确定受试者的基因组DNA和/或RNA与参考对象的不同(例如变异检测)和/或用于对受试者的基因组序列进行三级分析,例如全基因组分析,例如全基因组变异分析、基因函数分析、蛋白质函数分析(例如蛋白质结合分析)、基因组和/或转录组的定量和/或组装分析,以及各种诊断和/或预防和/或治疗评估分析。
如上所述,在一个方面,在软件中实现这些平台函数中的一个或多个,例如映射、比对、排序、重新比对、重复标记、碱基质量评分重新校准、变异检测、压缩和/或解压缩。在另一些实施例中,在硬件(如固件)中实现这些平台函数中的一个或多个,例如映射、比对、排序、局部比对、重复标记、碱基质量评分重新校准、解压缩、变异检测、压缩和/或解压缩。在某些方面,这些基因分析技术可以采用改进的算法,这些算法可以通过软件来实现,其以较低处理强度和/或较少耗时的方式和/或以较高百分比准确度运行,例如,用硬件实现函数更快、处理强度更低及更准确。
例如,在某些实施例中,提供了用于执行如本公开所述的这种初级、二级和/或三级处理的改进算法。改进的算法是指更有效和/或更准确地执行下述一种或多种:映射、比对、排序和/或变异检测函数中的一个或多个,例如在图像文件和/或从测序平台中获得的DNA/RNA序列数据的数字表示,例如从如上所述之一的自动测序仪中获得的FASTQ或BCL文件格式。在特定实施例中,改进的算法是指可以更有效地和/或更准确地执行下述一种或多种:局部比对、重复标记、碱基质量评分重新校准、变异检测、压缩和/或解压缩。此外,如在下文中更详细描述的,在某些方面,这些基因分析技术可以采用一种或多种算法,例如改进的算法,通过一个或多个硬件和/或软件实现,其以与其他多种现有软件在执行这此函数时相比较低的处理强度和/或者较少耗时的方式和/或更高的百分比准确度运行。在各种情况下,提供了用于在量子处理平台上实现的改进算法。
因此,在各个方面,本文提出了用于实现生物信息学方案的系统、设备和方法,例如用于执行一个或多个分析基因数据(例如基因组数据)的函数,例如经由一个或多个优化的算法和/或在一个或多个优化的集成电路和/或量子电路(例如在一个或多个硬件处理平台上)实现。在一种情况下,本公开提供了例如在软件和/或固件和/或量子处理电路中用于实现一个或多个算法的方法和系统,该算法用于执行在生物信息学方案中分析基因组数据的一个或多个步骤,例如所述步骤可以包括执行以下一项或多项:映射、比对、排序、局部重新比对、重复标记、碱基质量评分重新校准、变异检测、压缩和/或解压缩,及还包括三级处理平台中的一个或多个步骤。因此,在某些情况下,本文提出了包括用于执行方法的软件、固件、硬件和/或量子处理算法的方法,其中所述方法涉及执行算法,所述算法用于实现一个或多个基因传分析函数,例如映射、比对、排序、局部比对、重复标记、碱基质量评分重新校准、解压缩、变异检测、压缩和/或解压缩和/或一个或多个第三处理方案,其中算法(例如包括固件)已根据它的实施方式进行了优化。
特别地,在算法在软件解决方案中实现的情况下,可以优化算法和/或其运算过程,以便该介质更快和/或以更高的准确性执行。同样地,在算法在硬件(如固件)解决方案中实现的情况下,以优化的方式设计硬件以执行这些函数和/或其运算过程,以便该介质更快和/或以更高的准确性执行。此外,在算法在量子处理方案中实现算法的情况下,可以优化算法和/或其运算过程,以便该介质更快和/或以更高的准确性执行。例如,可以采用这些方法,例如用在在迭代映射、比对、排序、变异检测和/或第三级处理过程中。在另一个实例中,提供了用于实现一个或多个算法的函数的系统和方法,用于执行生物信息学方案中的基因组数据的一个或多个步骤,如本公开所述,其中在硬件和/或量子加速器实现的函数,其可以或可以不与一个或多个通用处理器和/或超级计算机和/或量子计算机耦合。
更具体地,在一些情况下,提供了用于对与受试者的基因组成有关的数据执行二级分析的方法和/或机器。在一个实例中,要执行的分析可能涉及基于参考基因组对受试者基因组重建。例如,基于参考对象的映射涉及使用参考基因组,该参考基因组可以通过对单个或多个个体的基因组进行测序而生成,或者该参考基因组可以是将多个人的DNA/RNA合并,以便产生可与任何个体的DNA/RNA比较的原型标准参考基因组,例如用于确定和重构个体的基因序列和/或用于确定其基因组成和标准参考基因组之间的差异,例如变异检测。
更特别地,对受试者的测序DNA/RNA进行二级分析的原因是确定受试者的DNA/RNA与参考对象的不同之处。更具体地说,为了确定受试者的核苷酸序列中的一个或多个或所有与参考对象的差异。例如,任意两个随机的人的基因序列之间的差异是1,000个碱基对中有1个,由于整个基因组有超过30亿个碱基对,因此这意味着每个人有多达3,000,000个不同的碱基对。例如,确定这些差异可能是有用的(例如用于三级分析方案中),可用于预测发生疾病状态的可能性(例如由于基因异常引起的),和/或可能成功地预测疾病预防或者治疗方式,例如与受试者的DNA/RNA或由其产生的蛋白质相关的疾病预防或治疗方案。在各种情况下,基于参考基因对受试者基因组进行重建可能是有用的,可以确认一对一的结果并在需要时提高变异检测方案的准确性。
因此,在一方面,在各种实施例中,一旦已经重建了受试者的基因组和/或已经生成了VCF,则可以将这些数据进行三级处理以对其进行解释,例如用于在识别这个人可能患有哪些疾病时确定这些数据意味着什么,和/或用于确定该受试者采用哪些治疗或生活方式可能改善和/或预防患病状态。例如,可以分析受试者的基因序列和/或其变异检测文件以确定临床相关的基因标记,其指示疾病状态的存在或可能性和/或指示所提出的治疗或预防方案对该受试者可能具有的功效。然后可以使用该数据向受试者提供一种或多种治疗或预防方案,以便改善受试者的生活质量,例如治疗和/或预防疾病。
具体地,一旦确定了一个或多个个体的基因变异,可以使用这种变异检测文件信息来开发医学上有用的信息,其又可用于确定(例如使用各种已知的统计分析模型)健康相关数据和/或医疗有用信息,例如用于诊断目的,例如诊断疾病或潜在因素、临床解释(例如寻找代表疾病变异的标记)、在各种临床试验中是否应该包括或排除受试者,以及其他目的。更具体的,在各种情况下,用产生的基因组学和/或生物信息学处理结果数据执行一个或多个基因组学和/或生物信息学方案,执行基因组微阵列分析方案,例如,全基因组分析方案、基因分型分析方案、外显子组分析方案、表观基因组分析方案、宏基因组分析方案、微生物组分析方案、(包括联合基因分型的)基因分型分析方案,(包括结构变异、体细胞变异和GATK分析的)变异分析方案以及RNA测序方案和其他基因分析方案。
由于存在由遗传畸形引起的有限数量的疾病状态,因此在三级处理中,可以查询某种类型的变异(例如那些已知与发生疾病状态相关的变异),例如通过确定一个或更多基于基因的患病标记物是否包括在受试者的变异检测文件中。因此,在各种情况下,本文公开的方法可包括针对已知的疾病序列变异分析(例如扫描)VCF和/或产生的序列,例如在基因组标记的数据库中,以识别VCF中和/或所产生的序列中是否存在基因标记,并且如果存在的话,则检测出是否已存在或具有潜在的遗传诱导的疾病状态。由于存在大量已知的基因变异和大量个体患有由这种变异引起的疾病,因此在一些实施方案中,本文公开的方法可能需要产生一个或多个连接测序数据的用于整个基因组和/或与其有关的变异检测文件以及患病状态(例如来自一个或多个个体)的数据库,和/或用于搜索所生成的数据库以确定特定受试者是否具有会使他们患有某种疾病的遗传组合物。此类搜索可涉及将一个完整基因组与一个或多个其他基因组或一个基因组的片段(例如仅包含该变异的片段),与一个或多个其他基因组的一个或多个片段进行比较,例如在参考基因组或其片段的数据库中。
因此,在各种情况下,本公开的管道可以包括一个或多个模块,其中这些模块被配置用于执行一个或多个函数,例如图像处理或对基因数据(例如测序基因数据)进行碱基检测和/或纠错操作和/或映射和/或比对(例如,有空位或无空位比对)和/或排序。并且在各种情况下,管道可以包括一个或多个模块,其中模块用于对基因数据执行局部比对、重复标记、碱基质量评分重新校准、变异检测(如HMM)、减少和/或压缩和/或解压缩。另外,管道可以包括一个或多个模块,其中模块用于执行三级分析方案,执行基因组微阵列分析方案,例如,全基因组分析方案、基因分型分析方案、外显子组分析方案、表观基因组分析方案、宏基因组分析方案、微生物组分析方案、(包括联合基因分型的)基因分型分析方案,(包括结构变异、体细胞变异和GATK分析的)变异分析方案以及RNA测序方案和其他基因分析方案。
这些模块中的多个可以由软件或在硬件上执行或远程执行,例如通过软件或硬件(例如在云或远程服务器和/或服务器银行和/或量子计算集群上)来远程执行。另外,管道中的许多步骤和/或模块是可选的和/或可以以任何逻辑顺序布置和/或完全省略。例如,本文公开的软件和/或硬件可以包括或不包括碱基检测或序列校正算法,例如可能担心这些函数会导致统计偏差的情况。因此,系统包括或不包括碱基检测和/或序列校正函数,这取决于所期望的准确性和/或效率水平。并且如上所述,一个或多个管道函数可以用于生成受试者基因组序列,例如通过基于参考组的的基因组重建。同样如上所述,在某些情况下,二级处理管道的输出可以是变异检测文件(VCF,gVCF),指示基因组或其部分中的部分变异或全部变异。
特别地,一旦read被分配了相对于参考基因组的位置,该参考基因组由识别read属于哪个染色体的标识及其与该染色体起始的偏移量组成,则可以按照位置对它们进行和/或重复标记或排序。这使下游分析能够利用本文所述的各种重复采样方案。所有与基因组中给定位置重叠的read可能在排序后彼此相邻,并且它们可以堆积并容易检查以确定它们中的大多数是否与参考一致。如果不,如上所述,则可以标记变异。
因此,如上所述的关于映射,从测序仪获得的图像文件,BCL文件和/或FASTQ文件包含多个read,例如数百万至十亿或更多,该read由表示个体的一部分或全部基因组的短串核苷酸序列数据组成。例如,本文公开的二级分析管道中的第一步是从基因组学数据生成装置(例如测序仪)接收基因组和/或生物信息学数据。通常,由测序仪(例如,NextGen测序仪)产生的数据可以是BCL文件,在某些情况下,BCL文件可以在(例如进入本文所述的二次处理平台)之前或之后将其转换为FASTQ文件。特别地,当对人类基因组进行测序时,必须在逐个碱基的基础上鉴定受试者的DNA和/或RNA,其中这种测序的结果是BCL文件。BCL文件是二进制文件,其包括对构成受试者的至少一部分或全基因组的序列集合的每个序列的每个碱基进行的碱基检测(base calls)调用和质量评分。
现有技术中,测序仪生成的BCL文件转换为FASTQ文件后发送到如本公开所述的二级处理平台,以进行进一步处理,例如确定其基因组变异。FASTQ文件是基于文本的文件格式,用于传输和存储生物序列(例如,核苷酸序列)及其相应的质量评分,为简洁起见,其中序列字母,例如A,C,G,T和/或U及质量评分可以用单个ASCII字符编码。因此,在本系统和其他系统中,FASTQ文件用于进一步处理。尽管使用用于基因组学处理的FASTQ文件是有用的,但是在测试仪装置中将生成的BCL文件转换为FASTQ文件是耗时且低效的。因此,在一个方面,如本公开所述,提供了用于将BCL文件直接转换为FASTQ文件和/或用于将这样的数据直接输入到本平台管道的设备和方法。
例如,在各种实施例中,下一代测序仪或基于芯片技术上的测序仪可用于对接收的基因数据执行测序操作。例如,如图1A所示,基因数据6a可以耦合到测序平台6,用于插入下一代测序仪以迭代方式进行测序,通过逐个添加一个核苷酸使得每个序列生长。具体地,测序平台6可以包括来自受试者的多个模板核苷酸序列6a,模板核苷酸序列6a以网格状方式排列在平台6上形成图块(tile)6b,其中对该模板核苷酸序列6a进行测序。测序平台6可以添加到测序仪的流动单元6c,流动单元6c用于执行测序反应。
当测序反应发生时,在每个步骤中将具有荧光标签6d的核苷酸添加到流动单元6c的平台6中。如果发生杂交反应,则可观察到荧光,拍摄及处理图像,并进行适当的碱基检测。逐个碱基重复进行,直到所有模板序列(例如整个基因组)已被测序并转换成read,从而产生系统的read数据。因此,一旦测序,生成的数据(例如,read)需要从测序平台传输到二级处理系统。例如,该图像数据通常被转换为BCL和/或FASTQ文件,然后可以将其传输到系统中。
然而,在各种实施例中,可以使转换和/或转移过程更有效。具体地,本文给出的是用于加速将BCL转换成可以在二级处理系统内快速处理的文件的方法和结构。更具体地,在特定情况下,不是发送原始BCL或FASTQ文件,而是直接将代表测序操作的每个图块的生成图像传送到系统并准备用于映射和比对等。例如,图块可以通过适当配置的PCIe流化(streamed)到ASIC、FPGA或QPU中,可以从ASIC、FPGA或QPU中直接提取read数据,并且将read数据提前放入映射和比对和/或其他处理引擎中。
具体地,如图1A所示的将从测序仪获得的图块中的数据传输到FPGA/CPU/GPU/QPU,测序平台6可以成像为3D立体6c,生长序列6a也在立体6c中产生。如图1B所示,测序平台6由16个通道组成,其中正面有8个通道及背面有8个通道,测序平台6可以形成大约96个图块6b。在每个图块6b内有可形成read的许多待测序的模板序列6a,其中每个read代表受试者基因组的给定区域的核苷酸序列,每列代表一个文件,进行数字编码用1个字节代表一个文件。每个文件有8位,例如2位代表被识别的碱基,其余6位代表质量值。
更具体地,下一代测序通常在形成流动单元6c的玻璃板6上进行,所述流动单元6c进入自动测序仪进行测序。如图1B所示,流动单元6c是由8行8列构成的平台6,并在流动单元6c的正反两面一起形成16个通道,其中每个通道足以对整个基因组进行测序。待测序的受试者的DNA和/或RNA 6a放入由流体隔离的平台6的行列交叉点之间的指定位置内以形成图块6b,其中每个图块包括待测序的模板基因材料6a。因此,测序平台6包括来自受试者的多个模板核苷酸序列,这些序列在平台上以类似网格的方式排列,如图1B所示。然后以迭代方式对基因数据6进行测序,其中通过逐个将核苷酸逐步引入流动单元中来生长每个序列,其中每个迭代生长步骤代表一个测序周期。
如所指出的,在每个步骤之后获取图像,图像中的生长序列是形成BCL文件的基础。如图1C所示,来自测序程序的read可以形成簇,并且正是这些簇形成理论上的三维立方体6c。因此,在该理论上的三维立方体6c内,进行测序的每个生长的核苷酸链的每个碱基将具有x方向的尺寸及y方向的尺寸。可以从该3-D立方体6c提取图像数据或图块6b编译成二维映射,根据所述二维映射可形成矩阵,如图1D所示。矩阵由表示水平轴的测序周期和表示垂直轴的read标识形成。因此,如图1C所示,测序read在流动单元6c中形成簇,其中这些簇可以由垂直轴和水平轴逐周期地及逐碱基定义,每个read的每个周期的数据可以流式方式和/或管道方式插入到图1D所示的矩阵中。
具体地,每个周期代表由于添加核苷酸产生的流动单元(flow cell)内每个read的潜在生长,如对一个或几个人类基因组进行测序时,每个周期代表每个通道(lane)约10亿或更多read的增长。通过在生长步骤之间迭代捕获流动单元6c的图块6b的图像来识别由于添加核苷酸碱基产生的read的生长。根据这些图像,可以识别碱基、确定质量分值及形成图1D所示的虚拟矩阵。因此,将碱基识别及质量分值均输入矩阵,其中来自每个周期的每个图块表示一个单独的文件。应当说明的是,在集成电路进行测序的情况下,可以用感测的电子数据代替图像数据。
例如,如图1D所示,当逐个周期地对应每个read捕获和处理图像、识别碱基及确定质量分值时,矩阵本身将迭代地增长。对流动单元的每个图块的read的每个碱基重复这一过程。例如,read集群。可以对图1C进行编号并将其作为垂直轴输入矩阵。同样地,可以输入周期数作为水平轴,然后可以输入碱基识别及质量分值,以逐行逐列填充矩阵。因此,每个read可由多个碱基表示,例如,取决于测序仪,每个read由约100~150至1000或更多碱基表示,并且每个图块可能有高达1000万或更多的read。因此,如果存在约100个图块,其中每个图块具有1000万个read,则矩阵将包含大约10亿个read需要进行组织并流化到二级处理装置中。
因此,这种组织是快速有效地处理数据的基础。因此,在一个方面,本文提出了一种移置以虚拟测序矩阵表示的数据的方法,使得数据可以更直接和有效地流化到本文公开的系统的管道中。例如,如图1C的星状簇所表示的测序数据的产生很大程度上是无组织的,从数据处理的角度来看这是有问题的。具体的,每个周期将通过测序操作生成的数据组织为一个文件,这意味着在测序操作结束时会产生数百万个文件,如图IE中实线表示的列数据代表这些文件。然而,为了二级和/或三级处理的目的,如本公开所述的,需要将文件数据重新组织成图1E中的用虚线表示的read数据。
更具体地,为了更有效地将测序仪生成的数据流化到二级处理数据中,应该转置由虚拟矩阵表示的数据,例如每个周期将图块的碱基由逐列转置为逐行而重新组织文件数据,以识别每个read的碱基。具体地,由测序仪产生的形成矩阵的文件的数据结构是逐个循环地逐列组织的。通过本文公开的过程,该数据可以在逐行逐read的基础上基本上同时转置并呈现在虚拟矩阵内,其中每行表示单独的read,并且每个read由碱基识别质量分值的连续数量来表示,从而识别每个read的序列及其置信度。因此,在如本公开所述的转置操作中,存储器内的数据可以例如在虚拟矩阵内进行重新组织,在逐列表示的输入数据顺序转换为逐行表示地输出数据顺序,从而将数据顺序从垂直结构转换为水平结构。此外,尽管该过程可以在软件中有效地实现,但是通过硬件和/或量子处理器可更有效和更快速地实现。
例如,在各种实施例中,可以通过以硬件实现来加速该转置过程。例如,在一个实施例中,在第一步骤中,例如测序仪的主软件可以逐列地(例如,以输入顺序)将输入数据写入与FPGA相关联的存储器中。具体地,当生成数据并将其存储到相关存储器中时,可以逐循环地将数据组织成文件,其中数据被保存为单独的文件。该数据可以由图1A的三维立方体表示。然后,该生成的列组织数据可以被(动态地(in flight))排序和/或流化到硬件中,其中专用处理引擎以上文所述的方式将列组织数据进行排序并将该数据从逐列的循环次序转置到逐行的read顺序。例如通过将三维图块数据转换为二维矩阵,由此可以逐read地将列数据重新组织成行数据。然后,该转置数据可以以更具策略性的顺序存储在存储器中。
例如,主软件用于将输入数据以列式输入顺序写入与芯片(如FPGA)相关联的存储器,并且同样地,硬件用于以某种方式对数据进行排序,使得数据以图1F所示策略性地读入存储器。具体地,硬件可以包括寄存器阵列8a,在寄存器中,对循环文件进行分散及重组成单独的read数据,例如将成列的碱基写入寄存器后转换为成行的碱基。更具体地,如图1G所示,包括转置处理引擎8的硬件设备1包括可以对要转置的数据进行排序的DRAM端口8a,用于处理每个循环增加的事务量,其中排序数据以突发(in burst)方式传输。该端口可耦合到与多个寄存器或外部存储器8c相关联的存储器接口8b。
特别地,这种转换可以一次转置一个数据段,例如以这样的方式排队访问存储器使得最大限度地利用DDR传输速率。例如,对于DRAM,DDR的最小突发长度可以是例如64字节。因此,可以以这样的方式访问成列排布存储在主存储器中的数据,使得每次访问存储器获得相应的例如一列64个字节的数据。因此,通过访问一次存储器,可以逐列地访问图块的一部分,例如64个循环或文件。
然而,如图1F所示,虽然主存储器中的数据作为列数据被访问,但是传输到硬件时,所述数据以不同的顺序上载到相关联的较小存储器(例如寄存器)中,从而根据DDR的最小突发速率可以将逐行read数据转换成字节(例如,64字节),因引便每次访问产生相应的“64”个存储器单元或块。这通过图1D的虚拟矩阵来举例说明,以块的形式访问多个read(例如64个read),并以段的形式读入存储器,如图1E所示,例如每个寄存器或触发器负责一个具体的read,例如64个循环x64个readx8位/read=32K个触发器。具体地,这可以以各种不同的方式在硬件中实现,例如组织输入布线以匹配列排序,并且组织输出布线以匹配行顺序。因此,在该配置中,可以调整硬件以便每个周期读取和/或写入“64”个不同的地址。
更具体地,硬件可以与寄存器阵列相关联,使得read的每个碱基被引导并写入单个寄存器(或一行中的多个寄存器),使得当每个块完成时,新排序的行数据可以作为输出(例如,FASTQ数据)以逐行组织的形式发送到存储器。然后,FASTQ数据可以由二级处理系统的一个或多个其他处理引擎访问,以便进一步(例如通过映射、比对和/或变异检测引擎)进行如本公开所述的处理。应注意的是,如本公开所述,转置以小块的形成执行,然而,根据具体情况,系统也可适用于处理较大的块。
如所指示的,如上所述一旦BCL文件转换为FASTQ文件,和/或BCL或FASTQ文件已经由二级处理平台接收,则可以对接收的数据执行映射操作。通常,映射涉及将read绘制到参考基因组中的所有相匹配的位置。例如,取决于read的大小,可以存在一个或多个read基本上与参考基因组中的相应序列匹配的位置。因此,本文公开的映射和/或其他功能用于确定在参考基因组中一个或多个read可以匹配的所有可能位置中的哪一个实际上是它们映射的真实位置。
例如,在各种实施例中,可以生成或以其他方式提供参考基因组的索引,以便可以参考索引例如在查找表(LUT)内查找read或部分read,从而检索参考基因组中位置的指示,以便将read映射到参考基因组。这种参考基因组的索引可以以各种形式构造并以各种方式查询。在一些方法中,索引可以包括前缀和/或后缀树。在具体的方法中,索引可以从参考基因组的Burrows/Wheeler变换得出。因此,可选地,或者除了采用前缀或后缀树之外,还可以对数据执行Burrows/Wheeler变换。例如,Burrows/Wheeler变换可以紧凑格式在分配用于存储参考基因组的空间中存储抽象地等同于前缀和/或后缀树的树状数据结构。在各种实施例中,存储的数据不是树状结构,而是参考序列数据以线性列表的形式,该线性列表可以被加扰成不同的顺序,以便以特定的方式进行变换,使得所附随的算法可参考所述样本read来搜索参考基因组,以便有效地遍历“树”。
另外,在各种实施例中,索引可以包括一个或多个散列表,并且本文公开的方法可以包括散列函数,可以对read的一个或多个部分上执行该散列函数以将read映射到参考基因组(如参考基因组的索引)。例如,可选地,除了在参考基因组和受试序列数据采用前缀/后缀树和/或Burrows/Wheeler变换以找出其中一对一映射定位的方法之外,还有另一种方法,该方法涉及生成散列表索引和/或执行散列函数。散列表索引可以是从参考基因组的序列构建的大参考结构,然后可以将其与read的一个或多个部分进行比较以确定一个可以与另一个匹配的位置。类似地,散列表索引可以从read的一部分开始构建,然后可以将其与参考基因组的一个或多个序列进行比较,并由此用于确定哪个可以与另一个匹配。
散列表的实施例是用于执行模式匹配的快速方法。每次查找都需要几乎恒定的时间来执行。这可能与Burrows-Wheeler方法形成对比,Burrows-Wheeler方法每次查询需要许多探针(数量可能因需要多少位查找唯一样式而不同)以找到匹配,或者采用log2(N)探针的二进制搜索方法,其中N是表中种子样式的数量。此外,即使散列函数可以将参考基因组分解成任意给定长度(例如,28个碱基对)的种子片段,并且可以将种子转换为56位的数字表示(例如二进制),但是不需要同时或以相同的方式完全访问所有的56位。例如,散列函数可以以这样的方式来实现:每个种子的地址由少于56位指定,例如大约20至大约45位,例如大约25至大约40位,例如大约28到约35位(包括约28到约30位),其可以用作初始密钥或地址以访问散列表。例如,在某些情况下,大约26到大约29位可以用作散列表的主要访问密钥,留下大约27到大约30位,这可以用作用于双重检查第一密钥,例如,如果第一和第二密钥都到达散列表中的同一单元,则相对清楚的是,所述位置是它们所属的位置。
例如,数字表示的种子的第一部分,即大约26到32位,其中29位可以形成初级访问密钥并且可以进行散列并且可以在第一步骤中进行查找。并且,在第二步骤中,剩下的大约27到30位(例如,二级访问密钥)可以被插入到散列表(例如在散列链中),用于确认第一步骤。因此,对于任何种子,可以在第一步骤中对其原始地址位进行散列,并且第二级地址位用于第二确认步骤中。在该实施例中,种子的第一部分可以插入主记录位置,第二部分可以装入辅助记录链位置的表中。并且,如上所述,在各种实施例中,这两个不同的记录位置可以通过链格式记录在位置上分开。
在具体实施例中,可以采用强力线性扫描来比较参考基因组与read或其部分。然而,使用强力线性扫描来扫描参考基因组中种子匹配的位置,可能需要检查超过30亿个位置。根据本文公开的方法,可以用软件或硬件来执行搜索。然而,通过本文所述的散列方法,如本公开所述,查找每个种子的时间大约是恒定的。通常,位置可以在几次(如单次)访问中确定。然而,在(例如区别不够明显的)多个种子映射到表中的相同位置的情况下,可以进行一些额外的访问以找到当前查找的种子。因此,即使对于给定的100个核苷酸长度的read存在30M或更多可能的位置需要与参考基因组相匹配的情况,散列表和散列函数可以快速确定read在参考基因组的显示位置。因此,通过使用散列表索引,不必(强力)搜索整个参考基因组来确定read的映射和比对的位置。
鉴于以上所述,可以采用任何合适的散列函数实现用于这些目的,然而,在各种实施例中,用于确定每个种子的表地址的散列函数可以是可以基于2k位原始多项式的循环冗余校验(CRC)。或者,可以采用普通的散列函数映射器,例如通过简单地舍弃2k位中的一些位。然而,在各种实施中,CRC可以是功能更强的散列函数,其可以更好地分离相似的种子同时避免表拥塞。例如使用本文所述的专用硬件计算CRC时没有速度损失的情况将特别有用。在这种情况下,为每个种子填充的散列记录可以包括种子发生的参考基因组位置以及指示在散列之前是否反向补充的标志。
从映射函数的执行返回的输出可以是关于一个或多个(例如,每个)read映射到一个或多个参考基因组的可能性的列表。例如,每个映射read的输出可以是read映射到参考基因组中的匹配序列的可能位置的列表。在各种实施例中,如果不是寻找全部read,可以将至少一个片段(例如,read的种子)精确匹配到参考基因组。因此,在各种情况下,并非所有read的所有部分都必须精确地匹配到参考基因组的所有部分。
如本公开所述,所有这些操作可以通过软件或者硬连线形成的集成电路(例如作为电路板的一部分的芯片)来执行。例如,这些算法中的一个或多个的函数可以嵌入到芯片中(例如嵌入到FPGA(现场可编程门阵列)或ASIC(专用集成电路)芯片中),并且则于在这样的硬件中实现可以被优化以便执行更有效。另外,这些映射函数中的一个或多个(例如,两个或所有三个)可以形成一模块(如映射模块),其可以形成系统(如管道)的一部分,其中管道用于确定个体的实际完整基因组序列或其部分。
在硬件中实现散列模块的优点在于可以加速过程并因此以更快的方式执行。例如,在软件可以包括用于执行这些各种函数中的一个或多个的各种指令,这些指令的实现通常需要在执行之前存储和/或获取和/或读取和/或解释数据和指令。然而,如上所述及本文所详细地,芯片可以进行硬连线以执行这些函数,而不必获取、解释和/或执行一系列指令。相反,芯片可以进行连线以直接执行这些函数。因此,在各个方面,本公开涉及一种定制硬连线机器,配置成使得如上所述的映射(例如散列)模块的部分或全部可以由一个或多个网络电路(如芯片(例如FPGA或ASIC)的集成电路)来实现。
例如,在各种实例中,可以构造散列表索引并且可以在芯片上执行散列函数。并且在其他实施中,可以通过主CPU运行的软件从芯片生成散列表索引,但是一旦生成,在运行散列模块时,散列表索引会上传到硬件上或以其他方式使得硬件可访问且并由芯片进行使用。具体地,在各种实施例中,芯片(如FPGA)可以用于通过低延迟互连(如QPI)紧密耦合到主CPU。更具体地,芯片和CPU可用这样的方式紧密耦合在一起,以便在高速缓存一致配置中共享一个或多个存储器资源(例如DRAM),如下面会更详细的描述的。在这样的实施例中,主机存储器可以构建和/或包括参考基因组索引(例如散列表),其可以存储在主机存储器中但是可以容易地被FPGA访问用于执行散列或其他映射函数。在具体实施例中,CPU和FPGA中的一个或两者可以包括可以耦合在一起的一个或多个高速缓存或寄存器以形成相干性配置,使得一个高速缓存中的存储数据可以基本上被另一个高速缓存镜像。
因此,鉴于上述情况,在运行时,可以将一个或多个先前构造的散列表(例如包含参考基因组的索引)或现在构建的或将要构建的散列表上传到板载存储器中或者至少可以通过其主机应用程序访问,如下进行的更详细地描述。在一实施例中,例如以FASTQ文件格式存储的read可以由主机应用程序发送到板载处理引擎(例如存储器或高速缓存或与其相关联的其他寄存器),可用于映射和/或比对和/或排序引擎,产生的结果可以发送并用于执行变异检测函数。关于如上所述的方面,在各种实施例中,可以例如通过种子生成函数生成或者从测序的read或read对中提取出一堆重叠的种子,并且种子一旦生成,可以针对索引对种子进行散列及在散列表中查找以便确定参考基因组的备选read的映射位置。
更具体地,在各种实施例中,提供了一种映射模块。例如硬连线配置的映射模块用于执行一个或多个映射函数。具体地,硬连线配置的映射模块通常由在CPU上运行的一个或多个算法执行的一个或多个(通常在基于软件的算法中实现的)函数,该算法产生前缀和/或后缀树、Burrows-Wheeler变换和/或运行散列函数,其中,散列函数利用或依赖(例如参考基因组序列的)散列表索引。在本实施例中,构造散列函数以便实现优化的映射策略,优化的映射策略可以最小化存储器访问的数量(例如,执行大存储器随机访问的数量),最大化板载或其他相关存储器的(受限于芯片架构内的空间的)带宽的效用。
此外,在某些实施例中,为了使系统更有效,主CPU/GPU/QPU可以通过低延迟接口(快速路径互连,QPI)紧密耦合到相关联的硬件(例如FPGA),以使集成电路的处理引擎准备好访问主存储器。在具体实施中,主CPU和耦合芯片以及它们各自的相关存储器(例如,一个或多个DRAM)之间的交互用于实现高速缓存相干性。因此,在各种实施例中,可以提供一种集成电路,其中集成电路,以包括有通过一个或多个物理电子互连互连进行有线配置的一个或多个数字逻辑电路的方式,进行预先配置(例如,预接线)。并且在各种实施例中,硬连线数字逻辑电路可以被设置一个或多个处理引擎中,以便形成一个或多个模块(例如映射模块)。
因此,在各实施例中,提供了一种第一预先配置(如硬线配置)的映射模块,其中映射模块用于执行各种映射函数。例如,映射模块用于访问来源于受试者的测序的基因样品的多个read中的一个read的至少一些核苷酸序列和/或基因参考序列和/或通过存储器接口获取的来自与其相关联的存储器或高速缓存的一个或多个基因参考序列的索引,其中存储器接口为过程互连,如快速路径互连(QPI)等。映射模块还可基于索引用于将read映射到一个或多个基因参考序列的一个或多个片段。例如,在各种具体实施例中,可以用本文所呈现的映射算法和/或模块来构建或以其他方式构建散列表,以对自受试者的测序基因物质的read或其部分与参考基因组的一个或多个片段进行比较,以产生映射的read。在本实施例下,一旦执行了映射,就可以执行比对。
例如,在确定参考基因组与种子所有可能的匹配后,必须确定给定read可能匹配的所有位置中的哪一个实际上是其比对的正确位置。因此,在映射后,一个或多个read段可能有匹配到参考基因组中的多个位置。因此,如果考虑read中种子的位置,则可能存在多个看起来完全相同的种子,例如,它们可能匹配到参考基因组的完全相同的位置。因此,必须确定每个给定的read实际的比对情况。可以用多种不同方式进行确定。
在一个实施例中,对所有read进行评估以它们相对于参考基因组的正确比对,这是基于在映射(例如,散列查找)过程期间返回位置信息的read的每个种子指示的位置来确定的。然而,在各实施例中,在执行比对操作前,先对一个或多个种子执行种子链过滤函数。例如,某些实施例中,与映射到参考基因组相同的一般位置的给定read相关联的种子,可以聚集成引用相同一般区域的单个链。与一read相关联的所有种子可以分组成一个或多个种子链,使得每个种子仅是一个链的成员。这样的链使得read与参考基因组中的每个指示位置比对。
具体地,在各种情况下,具有相同支持证据的所有种子可以被聚集在一起以形成一个或多个链,所述支持证据表明这些种子都属于参考基因组中的相同的大概位置。因此,聚集成组的种子、或者至少表现为在参考基因组的(例如在某个带内)彼此靠近的种子,将被分组成一链种子链,而那些在上述带外的种子将构成不同的种子链。一旦这些种子聚集成一个或多个不同的种子链,就可以确定哪条链实际上代表了待比对的正确链。这可以至少部分地通过使用过滤算法来完成,该过滤算法是用于消除非常不可能是正确的种子链的弱种子链的试探式算法。
执行这些映射、过滤和/或编辑函数的一个或多个的结果是一read列表,对于每一read,该read列表包括read与参考基因组匹配的所有可能位置的列表。因此,执行映射函数,以便快速确定从测序仪获得的图像文件、BCL文件和/或FASTQ文件的read在参考基因组的匹配位置(例如,各read映射到全基因组的位置)。但是,如果任何read或基因变异存在错误,将不能得到read在参考基因组的准确匹配位置和/或可能有多个位置与一个或多个read匹配。因此,必须确定各个read实际上与整个基因组对应的位置。
因此,在映射和/或过滤和/或编辑之后,已经确定了大量read的定位位置,其中对于确定了多个定位位置的一些单独的read,需要确定所有可能位置中的哪一个实际上是各种read比对的真实或最可能的位置。这种比对可以通过一种或多种算法来执行,例如将映射的read与参考基因组进行匹配并在其上运行比对函数的动态编程算法。示例性比对函数将一个或多个(例如,所有read)与参考基因组进行比较,例如通过将它们彼此放置在彼此的图形关系中,例如在表格、虚拟阵列或矩阵,其中将参考基因组序列或映射read之一放置在一个维度或轴上,例如水平轴,而另一个放置在相对的维度或轴上,例如垂直轴。然后将概念评分波前(wave front,波阵面)通过阵列,确定read与参考基因组的比对,例如通过矩阵中每个单元的比对评分。
评分波前代示矩阵的一个或多个(例如所有)单元或这些单元的一部分,可以根据比对算法中适用的动态编程的规则独立地和/或同时地对单元进行评分,其中比对算法为Smith-Waterman和/或Needleman-Wunsch和/或相关算法。可以有依次连续地或其他顺序计算比对评分,例如通过从左到右计算顶行(第一行)中的所有分数,然后从左到右计算下一行中的所有分数等。以这种方式,对角方式扫描的对角线波前代表在一系列波前步骤中同时或并行批量计算分数的最佳顺序。
例如,在一个实施例中,包含有read映射的片段的参考基因组的窗口可以放置在水平轴上,并且read可以放置在垂直轴上。以这种方式,产生阵列或矩阵(例如虚拟矩阵),由此将read中每个位置的核苷酸与参考窗口中每个位置的核苷酸进行比较。当波前通过阵列时,将会考虑read比对到参考窗口的所有可能方式,包括是否需要改变一个序列以使read与参考序列匹配,例如通过改变read的一个或多个核苷酸为其他核苷酸,或将一个或多个新核苷酸插入一个序列,或从一个序列中删除一个或多个核苷酸。
生成的比对评分表示为了实现精确比对而需要进行变化的程度,其中该评分和/或其他相关数据可以存储在阵列的给定单元中。阵列的每个单元对应于read轴上的核苷酸与参考轴上的核苷酸比对的可能性,并且针对每个单元内产生的分数表示部分比对,终止于该单元在read及参考窗口的位置。在任何单元中生成的最高分数表示read与参考窗口的最佳比对。在各种情况下,比对可以是全局比对的,其中整个read必须比对到参考窗口的某些部分,例如使用Needleman-Wunsch或类似算法;或者在其他情况下,比对以是局部的比对,其中只有一部分read比对到参考窗口的一部分,例如通过使用Smith-Waterman或类似算法。
因此,在各种情况下,可以对从映射模块获得的数据执行比对函数。因此,在各种情况下,比对函数可以形成模块(例如比对模块),模块可以形成系统(例如管道)的一部分,系统可与映射模块一起应用确定个体的实际基因组序列的整体或其部分的过程。例如,从执行映射函数的操作(例如映射模块)返回的输出,例如,关于一个或多个或所有read映射到一个或多个参考基因组中的一个或多个位置的可能性的列表,可应用于比对函数,用来确定受试者测序的DNA的实际序列比对。
这种比对函数有时可能是有用的,因为如上所述,由于各种不同的原因,测序的read通常不能总是精确地匹配到参考基因组。例如,在一个或多个read中可能存在SNP(单核苷酸多态性,single nucleotide polymorphism),例如,在一个位置上用一个核苷酸替换另一个核苷酸;可能存在indel(插入缺失),沿着一个或多个read序列的一个或多个碱基存在插入或缺失,而参考基因组中不存在该插入或缺失;和/或可能存在导致这些明显变异的一个或多个排序错误(例如,样本准备和/或测序仪read和/或测序仪readout中的错误等)。因此,当read与参考不同时,例如SNP或Indel,这可能是因为参考基因组不同于样本的真实DNA序列,或者因为read不同于样本的真实DNA序列。问题是要弄清楚如何正确地将read比对到参考基因组,因为这两个序列很可能以多种不同的方式彼此不同。
在各种情况下,对比对函数的输入,例如从映射函数(例如前缀/后缀树、或Burrows/Wheeler变换、或散列表和/或散列函数),可以是关于一个或多个read可以匹配到一个或多个参考序列的一个或多个位置的可能性的列表。例如,对于任意给定的read,其可以匹配参考基因组中的任何数量的位置,例如1个或16个、或32个、或64个、或100个、或500个、或1,000个或更多个位置,其中给定read映射到基因组。但是,任何单独的read仅来自基因组(如经测序得到的)的一个特定部分。因此,为了找到给定的特定read的真实位置,需要执行比对函数,例如,Smith-Waterman有空位或无空位比对,Needleman-Wunsch比对等,以便确定一个或多个read实际来自基因组中的什么位置,例如通过比较可能发生匹配的所有位置并确定在基因组中所有可能的位置中哪一个是对read进行测序的最可能的位置,基于哪个位置比对评分最高。
如上所述,典型的,使用算法来执行这样的比对函数。例如,Smith-Waterman和/或Needleman-Wunsch比对算法可用于将两个或更多个序列彼此比对。在这种情况下,可以使用他们用于确定read映射到参考基因组的任何给定位置是read来源的实际位置的概率。典型的,这些算法通常由软件执行,然而,在各种情况下,例如如本公开所提出的,这些算法中的一个或多个可以用硬件执行,如下面更详细描述的。
具体地,尽管存在一个或多个部分错配(例如单核苷酸多态性(SNP)、插入及缺失、结构变异等),但可以部分地执行比对函数至少将一个或多个(例如全部)read比对到参考基因组,以确定read可能正确比对到参考基因组的合适的位置。例如,考虑取代和/或Indel和/或结构变异,将一个或多个read与参考基因组进行比较,并确定最合适的read比与基因组的匹配。然而,为了更好地确定read的哪个修改版本与参考基因组最佳配合,必须考虑所提出的改变,也可以执行评分函数。
例如,可以执行评分函数(例如,作为整个比对函数的一部分),比对模块执行其函数并引入一个或多个改变到一个进行比较的序列中时,例如,以便实现两个比较序列之间的更好或最佳匹配,对于为了实现更好的比对而进行的每个改变,以从满分或零分作为起始分数,对分数进行扣减,如果执行比对,则确定了比对的评分,例如在检测到匹配的情况下增加评分,并且对于引入的每个变化产生罚分,因此,例如可以确定对于可能比对的最佳组合,例如通过最高分数确定所有可能的经修改的read中的哪一个与基因组配合。因此,在各种情况下,比对函数可以确定需要对read进行的改变的最佳组合,以获得最佳评分,然后确定该比对是正确的或最可能的比对。
鉴于上述情况,执行比对函数可以实现至少两个目标。一个是最佳比对的报告,其包括参考基因组中的位置以及为了使read在该位置匹配参考基因组的片段所需要进行的变化,另一个是比对质量分数。例如,在各种情况下,比对模块的可以输出简要比对信息报告(Compact Idiosyncratic Gapped Alignment Report),例如,CIGAR字符串,其中CIGAR字符串输出是描述对所述read进行的所有改变的详细报告,以便实现最佳配合比对,例如详细的比对说明,说明该查询实际上如何与参考比对。这样的CIGAR字符串readout可用于进一步的处理阶段以更好地确定给定受试者的基因组核苷酸序列与参考基因组相比,预测的变异实际上是真正的变异,而不仅仅是机器、软件或人为错误。
如上所述,在各种实施例中,比对通常按顺序方式执行,其中算法接收(例如从自映射模块))与read以及一个或多个参考基因组的一个或多个位置有关的read,其中read可能潜在地映射到一个或多个参考基因组的一个或多个可能位置;并且进一步接收与一个或多个参考基因组中的一个或多个位置有关的基因组序列数据(例如来自一个或多个存储器),其中read可以映射到该一个或多个参考基因组中的一个或多个位置。具体地,在各种实施例中,映射模块处理例如来自FASTQ文件的read,并且将它们中的每一个映射到参考基因组中的一个或多个可能比对的位置。随后,比对器获取这些预测位置,并使用它们将read与参考基因组进行比对,例如通过构建虚拟阵列,通过该阵列可以将read与参考基因组进行比较。
在执行该函数时,比对器评估每个单独read的每个映射位置,并且特别地评估映射到参考基因组中的多个可能位置的read,并对每个位置是正确的概率进行评分。然后比较最佳评分,例如两个最佳评分,并且对特定read实际比对的位置做出判定。例如,在比较第一个和第二个最佳比对评分时,比对器会查看分数差,如果分数差很大,那么分数较大的分数正确的置信度评分将会很高。然而,在分数差很小(例如零)的情况下,能够从两个位置中得出read实际来源的位置的置信度评分较低。为清楚地确定参考基因组中read来源的真实位置,可能需要进行更多处理。
因此,比对模块是在将给定read映射到参考基因组中的给定位置的过程中部分地寻找第一和第二最佳置信度分数之间的最大差异。理想地,最可能选择的比对分数非常明显地大于该序列的第二最佳比对分数。比对评分方法可以用许多不同方式实施,例如,根据本文公开的方法,可以对阵列的每个单元或对单元件的子部分进行评分。在各种情况下,对核苷酸匹配、核苷酸错配、插入和缺失进行评分的评分参数可以是各种正值或负值或零值。在各种情况下,可以基于可用信息来修改这些评分参数。例如,通过制作评分参数可以获得正确的比对,评分参数包括任一或所有的核苷酸匹配分数、核苷酸错配分数、空位(插入和/或缺失)罚分、空位开放罚分和/或空位延长罚分,评分参数根据当前read的核苷酸或位置相关的碱基质量分数而变化。例如,当碱基质量分数表明测序或其他错误存在的概率较高时,可以使奖励分数和/或罚分制作得更小。例如,可以使用固定或可配置的查找表来实现碱基质量敏感评分,碱基质量分数访问查找表得到相应的评分参数。
在一种硬件实施方式中,在集成电路(例如FPGA,ASIC或结构化ASIC)中实施,可将评分波前作为评分单元的线性阵列,例如16个单元或32个单元或64个单元,或128个单元等。每个评分单元可以由有线配置的数字逻辑元件构建以计算比对评分。因此,对于波前的每个步进,例如每个时钟周期或某个其他固定或可变的时间单位,每个或一部分评分单元计算评分或为虚拟比对矩阵中的新单元进行评分。从概念上讲,不同的评分单元被认为处于比对矩阵中的不同位置,对应于本文讨论的评分波前,例如,沿矩阵中从左下角延伸到右上角的直线。数字逻辑设计领域的技术人员容易理解的是,物理评分单元及其包含的数字逻辑不需要以类似的方式物理布置在集成电路上。
因此,当波前对虚拟比对矩阵进行扫进时,评分单元的概念位置相应地更新每个单元,例如,概念性地“移动”到右侧,或者例如在比对矩阵中向下“移动”。所有评分单元都会进行相同的相对运动,保持对角线波前的完整性。波前每次移动到新的位置时,例如在矩阵中垂直向下或水平向右时,评分单元到达新的概念位置,并计算其输入的虚拟比对矩阵单元的比对评分。在该实施方式中,线性阵列中相邻的评分单元被耦合以传递查询(read)核苷酸、参考核苷酸和先前计算的比对评分。参考窗口的核苷酸可以顺序地馈送到波前的一端,例如线性阵列中的右上评分单元,并且可以从该处依次地向下移动波前的长度,使得在任意给定的时间内,单元存储器在的参考核苷酸片段,其长度等于评分单元数,每个连续评分单元中存在一个连续核苷酸。
因此,每当波前水平步进时,将另一个参考核苷酸馈送到右上方的单元中,并且其他参考核苷酸向下左移通过波前。参考核苷酸的这种移动可能是评分单元波前向右穿过比对矩阵的概念性移动的潜在现实。因此,read的核苷酸可以按顺序馈送到波前的相对端,例如,线性阵列中的左下角的评分单元,并且从该处依次地向上移动波前的长度,使得在任意给定时间内,单元存储器在的查询核苷酸片段,其长度等于评分单元数,每个连续评分单元中存在一个连续核苷酸。同样,每当波前垂直步进时,将另一个查询核苷酸馈送到左下方的单元中,并且其他查询核苷酸向上右移通过波前。查询核苷酸的这种转移是评分单元波前向下通过比对矩阵的概念性移动的潜在现实。因此,通过命令参考核苷酸移位,波前可以水平移动,通过命令查询核苷酸移位,波前可以垂直移动。因此,为了使波前大致沿对角线运动,例如随查询和参考序列的典型比对(没有插入或缺失),可以命令波前在垂直和水平方向上交替步进。
因此,线性阵列中相邻的评分单元可以被耦合以传递先前计算的比对评分。在不同的比对评分算法中,例如Smith-Waterman或Needleman-Wunsch或其变型,可以使用对于矩阵其他单元的先前计算的分数来计算虚拟比对矩阵中每个单元的比对评分,例如最接近当前单元的左边、上方以及对角左上方的三个单元。当评分单元对已输入的另一矩阵单元计算新评分时,它必须检索对应于其他矩阵位置的先前计算的分数。这些先前计算的分数可以通过在相同单元存储器储先前计算的分数和/或在线性阵列中的一个或两个相邻的评分单元中存储先前计算的分数来获得。这是因为虚拟比对矩阵中的三个贡献评分位置(左、上、对角左上)由当前评分单元或线性阵列中其相邻的评分单元之一进行评分。
例如,如果最近的波前步进是水平的(向右),则矩阵中左边最靠近的单元由当前评分单元进行评分;或者如果最近的波前步进是垂直的(向下),则由线性阵列左下方相邻的单元进行评分。类似地,如果最近的波前步进是垂直的(向下),则矩阵中上方最靠近的单元由当前评分单元进行评分;或者如果最近的波前步进是水平的(向右),则由线性阵列右下方相邻的单元进行评分。类似地,如果最近的两个波前步进是不同方向的,例如先下后右,或先右后下,则矩阵中对角线左上的单元由当前评分单元进行评分;或者如果最近的两个波前步进都是水平的(向右),则由线性阵列右下方相邻的单元进行评分;或者如果最近的两个波前步进都是垂直的(向下),则由线性阵列左下方相邻的单元进行评分。
因此,通过考虑最近一个或两个波前的步进方向的信息,评分单元可以利用相邻单元之间的耦合来选择适当的先前计算的分数,在其自身评分单元内和/或相邻评分单元内访问他们。在一个变型中,波前两端的评分单元可能会使其硬连线的外部分数输入为无效或零值或最小值分数,以使它们不会影响这些极端单元格的新分数计算。在线性阵列的评分单元中实现的波前,具有这样的偶合,其中,参考核苷酸和查询核苷酸在相反方向上移动通过阵列,使波前在垂直和水平方向概念性步进移动;或者,访问由相邻的单元先前计算的评分,以计算由波前输入的新的虚拟矩阵单元位置比对分数。相应地,可以对虚拟矩阵中的单元带、波前的宽度进行评分,例如通过命令波前连续步进扫过矩阵。
因此,对于新的read和待比对的参考窗口,波前可以开始映射在评分矩阵内部,或者有利地,可以从外部开始逐渐进入评分矩阵,例如从左侧开始,或者从上方开始,或者左斜方和在矩阵的左上角上方。例如,波前可以由其左上方的评分单元开始,位于虚拟矩阵的左上单元的左侧,然后波前可以通过一系列水平步骤向右扫入矩阵中,对在矩阵左上区域中的水平单元带进行评分。当波前到达参考和查询之间的预测比对关系时,或者当从增加的比对分数中检测到匹配时,通过交替的垂直和水平步骤,波前可以开始对角地向右下方扫动,对通过矩阵中间的对角单元带进行评分。当左下方的波前评分单元到达比对矩阵的底部时,波前可以通过连续的水平步骤再次开始向右扫动,直到一些或全部波前单元扫过比对矩阵的边界,对在矩阵的右下区域中水平单元带进行评分。
一个或多个这样的比对过程可以通过任意合适的比对算法来执行,例如Needleman-Wunsch比对算法和/或Smith-Waterman比对算法,可以修改该算法以适应本文描述的函数。通常,这些算法和类似的算法在某些情况下基本上以类似的方式执行。例如,如上所述,这些比对算法通常以类似的方式构建虚拟阵列,使得在各种情况下,水平顶部边界可以被配置为表示基因组参考序列,其根据碱基对组成可以被布置在阵列顶行。类似地,垂直边界可以被配置为表示经测序和映射的查询序列,该查询序列沿着第一列向下排列,使得它们的核苷酸序列顺序通常与它们所映射到的参考核苷酸序列相匹配。中间的单元填有分数,该分数是关于查询在给定位置的相关碱基位于相对于参考的那个位置的概率。在执行该函数时,可以在中间单元内横跨填充分数的矩阵对角地移动列,并且可以确定查询的每个碱基在指示位置的概率。
关于可进行最佳全局(或半全局)比对的Needleman-Wunsch比对函数,将整个read序列与参考基因组的某个片段比对,波前转向可以被配置为使其典型地一直从比对矩阵的顶部边缘扫到底部边缘。当波前扫进完成时,选择比对矩阵底部边缘(对应于read末端)的最高评分,并且比对被返回到矩阵顶部边缘上的单元(对应于read的起始端)。在本文公开的各种实施例中,read可以是任意长度,任意大小,并且不需要关于执行比对的广泛的read参数,例如在各种情况下,read可以与染色体一样长。然而,在这种情况下,存储容量和染色体长度可能是限制因素。
关于可进行最佳局部比对的Smith-Waterman算法,将整个read序列或read序列的一部分与参考基因组的某个片段对齐,该算法可以基于read的全部或部分比对找到可能的最佳评分。因此,在各种情况下,波前评分带可能不会延伸到比对矩阵的顶部和/或底部边缘,例如如果非常长的read仅在其中间有种子映射到参考基因组,但是通常波前仍然可以从矩阵的顶部到底部进行评分。局部比对通常通过两个调整来实现。首先,比对评分绝不允许低于零(或其他下限值),并且如果另外计算的单元评分为负值,则替换零得分,表示新比对的开始。其次,在矩阵中的任意单元中产生的最高比对评分,不一定沿着底部边缘,可用作比对的终点。向上和向左通过矩阵从这个最高评分到零分,对比对进行回溯,该分数用作局部比对的开始位置,即使它不在矩阵的顶行。
鉴于以上所述,通过虚拟阵列存在几种不同的可能路径。在各种实施例中,波前从虚拟阵列的左上角开始,并且向下朝着最高评分的标识符向下移动。例如,可以对所有可能比对的结果进行收集、处理、关联和评分以确定最高分数。当已经达到边界的末端或阵列的末端和/或当确定了对所有处理过的单元获得最高分数的计算方法(例如,识别出总体最高分数)时,则可以执行回溯(Backtrace),从而找到获得最高分数的路径。例如,可以识别出得到预测的最高评分的路径,并且一旦识别出,就可以执行审查以确定如何获得最高分数,例如沿着最佳评分比对箭头向后移动回溯路径,通过其可获得所识别的最高分数,例如由波前评分单元计算得到的。
这种向后重建或回溯涉及从确定的最高分数开始,并且向后经过先前的单元,该单元可用于对可获得最大评分的单元路径进行导航,一直沿表格向上并返回初始边界,例如阵列的起始,或者零分(在局部比对的情况下)。在回溯期间,已经到达比对矩阵中的特定单元,下一个回溯步骤到达贡献了最佳评分的相邻单元,紧邻向左,或向上,或在对角线左上方,其中,该最佳评分构成当前单元格的评分。以这种方式,可以确定最高分数的变化,由此确定如何实现最高分数。回溯可以在角落、边缘或边界处结束,或者可以以零分结束,例如在阵列的左上角。因此,这种回溯可以识别适当的比对,并产生CIGAR链readout,其表示来自个体的样本基因组序列或其部分,与参考DNA基因组序列匹配或对比的情况。
因此,一旦已经确定了每个read被映射的位置,并且进一步确定了每个read被比对的位置,例如,每个相关的read都被赋予一个位置以及质量评分,该评分反应了该位置是正确比对的概率,知晓受试者的DNA核苷酸序列,则可以验证受试者的不同read和/或基因组核酸序列的顺序,例如通过执行向后通过阵列的追踪回溯函数以便确定样本基因组序列中每个核酸正确顺序。因此,在一些方面中,本公开涉及回溯函数,例如作为比对模块的一部分,该比对模块执行比对和回溯两种函数,例如可以是模块管道的一部分,例如涉及采集原始序列read数据(例如形成个体的基因组样本)、映射和/或比对该数据的管道,然后可以对该数据进行排序。
为了便于回溯操作,可以将用于每个评分单元的评分向量存储在比对矩阵中,对该评分选择决定进行编码。对于采用线性空位罚分进行评分的传统Smith-Waterman和/或Needleman-Wunsch算法,评分向量可以编码四种可能性,其可选择性地被存储为从0到3的2-bit整数,例如:0=新比对(空的分数选择);1=垂直比对(来自上方单元的评分,由空位罚分修改);2=水平比对(来自左边单元评分,通过空位罚分修改);3=对角线比对(来自单元向上和向左选择的评分,通过核苷酸匹配或错配评分修改)。可选地,还可以存储每个评分矩阵单元的计算得分(除了标准存储的获得的最大比对评分之外),但这通常不是回溯所必需的,并且会消耗大量的存储容量。执行回溯随后成为遵循评分向量的问题;当回溯已经到达矩阵中的给定单元时,下一个回溯步骤由该单元的存储评分向量确定,例如:0=终止回溯;1=向上追溯;2=向左回溯;3=斜向左上方的回溯。这样的评分向量可以被存储在根据比对矩阵的维度布置的二维表中,其中仅填充与由波前评分的单元相对应的entry。或者,为了节约存储容量,更容易记录它们生成时的评分向量,并且更容易地容纳各种大小的比对矩阵,可以将评分向量存储在表中,每行的大小被设置为存储来自单个波前评分单元的评分向量,例如128位存储来自64个单元波前的64个2-bit评分矢量,并且行数等于比对操作中波前的最大步骤数。另外,对于该选项,可以保存波前步骤方向的记录,例如,在每个表行中存储额外的(例如,129位)bit,对于该波前位置之前的垂直波前步骤编码例如0,对于在该波前位置之前的水平波前步骤编码1。这个额外的位可以在回溯期间使用,以跟踪每个表格行中的评分向量对应于哪个虚拟评分矩阵位置,以便在每个连续的回溯步骤之后可以检索适当的评分向量。当回溯步骤是垂直或水平的时候,应该从前面的表格行中检索下一个评分向量,但是当回溯步骤是对角线时,应该从之前的两行中检索下一个评分向量,因为波前必须采取两个步骤从任意一个单元移动到单元对角线右下方进行评分。
在仿射空位评分的情况下,评分向量信息可以被扩展,例如,到每个评分单元4位。例如,除了2位分数选择方向指示符,可以添加两个1位标志(flag),一个垂直扩展标志和一个水平扩展标志。根据Smith-Waterman或Needleman-Wunsch的仿射空位评分扩展方法或类似的比对算法,对于每个单元,除了代表最佳评分比对的、终止于该单元的初级比对评分之外,应当产生“垂直评分”,对应于以最终垂直步骤到达该单元的最大比对分数;并且应当产生“水平分数”,对应于以最终水平步骤到达该单元的最大比对分数;当计算三个分数中的任何一个时,可以使用来自上述单元的初级分数减去空位开放罚分或使用来自上述单元的垂直分数减去空位扩展罚分来计算进入该单元的垂直步骤,以较大者为准;并且可以使用从单元到左边的初级分数减去空位开放罚分,或者使用从单元到左边的水平分数减去空位扩展罚分来计算进入该单元的水平步骤,以较大者为准。在选择垂直分数减去空位扩展罚分的情况下,应该在评分向量中设置垂直扩展标记,例如,“1”,否则它应该是未设置的,例如,“0”。
在选择水平分数减去空位扩展罚分的情况下,应该在评分向量中设置水平扩展标记,例如,“1”,否则它应该是未设置的,例如,“0”。在回溯仿射空位评分的过程中,任何时候回溯会从给定单元向上垂直移动,如果设置了该单元的评分向量的垂直扩展标志,则后面的回溯步骤也必须是垂直的,而不管上方单元的评分向量。同样,任何时候回溯都会从给定的单元向左水平移动,如果设置了该单元的评分向量的水平扩展标志,则后面的回溯步骤也必须是水平的,而不管左侧单元的评分向量如何。因此,这样的评分向量表,例如,对于使用线性空位评分的64个单元的每行129位或使用仿射空位评分的64个单元的每行257位,具有一些数量的NR行,足以在结束比对评分之后支持回溯,其中评分波前进行NR步长或更少。
例如,当对齐300个核苷酸的read时,所需的波前步骤的数量可能总是少于1024,因此该表可能是257×1024位或约32千字节,在许多情况下,该表可能是在IC中合理的本地存储器。但是如果需要比对非常长的read,例如100,000个核苷酸,评分向量的存储需求可能相当大,例如,8兆字节,在IC内包括本地存储器可能是非常花费成本的。因此,评分向量信息可以被记录到IC外的大容量存储器中,例如,DRAM,但是随后的带宽要求可能会过多,例如每个比对模块每个时钟周期257位,这可能会造成瓶颈并显着降低比对器性能。因此,希望有一种在完成比对之前处理评分向量的方法,以使它们的存储需求可以保持有界性,例如,以执行增量回溯,从比对的评分向量历史的早期部分产生增量部分CIGAR字符串,随后丢弃所述评分向量的早期部分。面临的挑战是回溯应该从比对终点开始,最高评分单元,直到比对评分完成时才知道,所以在比对完成之前开始的任何回溯可能会从错误的单元开始,而不是沿着最终总体最优比对路径。
因此,给出了一种用于从部分比对信息(例如,包括当前已评分的对比矩阵单元的部分评分向量信息)执行增量回溯的方法。根据当前完成的比对边界,例如特定的评分波前位置,从边界上的所有单元位置开始回溯。来自所有边界单元的这种回溯可以按顺序地执行,或者有利地,特别是在硬件中实现,所有的回溯可以一起执行。不需要从这些多次回溯中提取比对符号,例如CIGAR字符串,仅需要确定在回溯期间它们经过的比对矩阵位置。在从评分边界同时回溯时,可以利用多个1位寄存器,其对应于比对单元的数目,例如全部初始化为1,表示任何回溯是否通过对应位置。对于同时回溯的每一步,对应于这些寄存器中的所有当前'1'的评分向量,例如从评分向量表的一行开始,可以对评分向量进行检查以确定与寄存器中的每个“1”相对应的下一个回溯步骤,使寄存器中的每个“1”的下一个位置,用于下一个同时回溯步骤。
重要的是,很容易使寄存器中的多个“1”合并到共同位置,对应于多个同时回溯合并到公共回溯路径上。一旦两个或更多的同时回溯合并在一起,它们将无限期地合并,因为此后它们将利用来自同一单元的评分向量信息。基于经验和理论,据观察,所有同时回溯在相当少量的回溯步数内很有可能会合并成单一的回溯路径,其中回溯步数是波前评分单元数量的若干倍数,例如可能是一个小的倍数(例如8倍)。例如,来自给定波前(64单元波前)边界的所有回溯在512个回溯步数内很有可能合并为单个回溯路径。或者,对于所有回溯来说,在一定数量的回溯步数内终止也是可能的,并非罕见的,例如,512个回溯步数。
因此,多个同时回溯可以从评分边界执行,例如,评分的波前位置,距离足够远以至于它们全部终止或合并成单个回溯路径,例如,在512个或更少的回溯步数内。如果它们全部合并成单一的回溯路径,则从它们合并的评分矩阵位置或沿着单一回溯路径进一步返回的任意距离,可以从部分比对信息进行增量回溯。通过常规的单一回溯方法,包括记录相应的比对符号,例如部分CIGAR串,从合并点或进一步返回的任意距离开始进行进一步回溯。这种增量回溯,例如部分CIGAR字符串,必须是任意可能的最终回溯的一部分,例如完整的CIGAR字符串,在比对完成后产生,除非这样的最终回溯在到达同时回溯开始的评分边界之前终止,因为如果它到达评分边界,它必须跟随同时回溯路径中的一个,并合入单一的回溯路径,当前被增量提取。
因此,可以安全地丢弃对应于增量提取的回溯的矩阵区域的所有评分向量,例如在提取的单一回溯开始之前的波前位置的所有表行中。当从最高评分单元执行最后的回溯时,如果它在到达评分边界之前终止(或者,如果它在到达提取的单一回溯起始点之前终止),则增量比对记号例如部分CIGAR字符串,可以被丢弃。如果最后的回溯持续到提取的单一回溯起始点,则其比对记号例如CIGAR字符串可以移植到增量比对记号(例如部分CIGAR字符串)上。此外,在非常长的比对中,从评分边界(例如评分的波前位置)同时回溯直到所有回溯终止或合并,然后提取具有比对记号的单一回溯,这一过程可以从不同的、连续的评分边界重复执行。除非新的同时回溯或单一回溯提前终止,否则来自每个连续增量回溯的增量比对记号,例如部分CIGAR字符串,可移植到累积的先前比对记号上,在这种情况下,可以丢弃累积的先前比对记号。最终回溯同样可以将其比对记号移植到最近累积的比对记号上,以获得完整的回溯描述,例如,CIGAR字符串。
因此,以这种方式,假设同时回溯总是在有限数量的步数内合并在一起,例如512步,那么存储评分向量的存储器则可以保持有界。在极少数情况下,同步回溯无法在有限数量的步数内合并或终止,可能需要采取各种例外操作,包括不进行当前比对,或者以更高边界或无边界重复执行,可能采用不同的或传统的方法例如存储完整比对的所有评分向量,例如存储在外部DRAM中。在一个变型中,失败的比对可能是合理的,因为它非常罕见,更罕见的是,失败的比对是比对报告中的最佳评分比对。
在可选的变型中,评分向量存储可以被物理地或逻辑地划分为多个不同的块(block),例如,每个512行,并且每个块中的最后一行可以用作评分边界以开始同时回溯。可选地,同时回溯在单个区块内终止或合并,例如,512步。可选地,如果同时回溯在更少的步数内合并,则在开始提取前一个区块中的单一回溯之前,合并的回溯可以继续贯穿整个区块。因此,在评分向量完全写入block N并开始写入block N+1之后,可以在block N中开始同时回溯,然后在block N-1中进行单一回溯和比对符号提取。如果同时回溯、单一回溯和比对评分的速度都相似或相同,并且可以同时执行,例如在IC中的并行硬件中,则blockN-1中的单一回溯可以与评分向量填充block N+2同时进行,并且当block N+3将被填充时,block N-1可以被释放并再循环。
因此,在这样的实例中,可以采用最少4个评分向量块,并且可以循环利用。因此,比对模块的评分向量总的存储量可以是4个块,其中每个块257×512位,或者例如大约64千字节。在一个变型中,如果当前最高比对评分对应于比当前波前位置更早的区块,则该区块和前一个块可以被保留而不是被再循环。如果仍然是最高评分,则可以从该位置开始最终回溯;具有额外的2个块以这种方式保持可使块最少,例如达到6块。
在另一个变型中,为了支持重叠对齐,可以利用评分波前、附加块(例如1或2个附加块),例如总共8块,例如大约128千字节;其中,评分波前如上所述从一个比对矩阵逐渐横越到下一个比对矩阵。因此,如果循环使用这种有限数量的区块,例如4个块或8个块,则对任意长度的read进行比对和回溯是可能的,例如100,000个核苷酸或整个染色体,而无需对评分向量使用外部存储。应当理解,例如根据如上所述,尽客在某些情况下描述了一种映射函数,但例如描述映射器时,和/或也描述了在某些情况下的比对函数;例如描述比对器时,也描述这些不同的函数可以由相同的架构(在本领域中通常被称为比对器)有顺序地执行。因此,在各种情况下,如本公开所述的映射函数和比对函数能都可以由被理解为比对器的公共架构来执行,尤其是在执行比对函数的那些情况下,首先需要执行映射函数。
在各种情况下,本公开的装置、系统及其使用方法用于执行全read无空位和/或空位比对中的一个或多个,然后可以对其进行评分以在数据集中确定read适合的比对。例如,在各种情况下,通过选择Smith-Waterman算法,可以对要处理的数据执行无空位比对,然后进行一个或多个空位比对。例如,在第一步骤中,可以生成无空位比对链。如本公开所述,由于不需要考虑空位,可以快速执行这种无空位比对函数,执行无空位比对的第一步骤之后可执行空位比对。
例如,在一个或多个read和/或参考序列无插入空位的情况,执行比对函数来确定任何给定的核苷酸序列(例如read)如何比对到参考序列。执行比对函数中重要的部分是确定相对于参考基因组的序列有问题的序列的位置和错配方式。然而,由于人类基因组的高度同源性,理论上,任何给定的核苷酸序列可与代表性的参考序列大致匹配。出现错配,可能是由于单核苷酸多态性(相对容易被检测到),或者由于序列中存在的插入或缺失(难以被检测到)。
因此,在执行比对函数的大多数时间,有问题的序列将与参考序列匹配,并且很容易确定由于存在SNP而错配情况。因此,不需要相对大量的处理功率来执行这种分析。然而,出现困难的情形是,序列中存在相对于参考序列有问题的插入或缺失,因为这种插入和缺失意味着比对中的空位。这种空位需要更更大量和复杂的处理平台来确定正确的比对。然而,由于indel(插入/缺失)仅占有比较小的比例,需要执行的空位比对方案相较于数百万个无空位比对,占有较小的比例。因此,由于序列中存在indel而需要进一步处理的空位比对占所有无空位比对函数中的一小部分。
无空位比对过程出现indel的序列会传送到比对引擎以进行进一步处理,例如传送至执行高级比对函数(例如Smith Waterman比对,SWA)的比对引擎。因此,对于执行无空位或空位比对,本文公开的装置和系统是更有效的使用资源。更具体地,在某些实施例中,可以对选择的给定序列(例如,一个接着一个)地执行无空位和空位比对,然后对每个序列的比对结果进行比较并且选择最佳比对结果。例如,可以实现这样的布置,其中提高的准确度是所期望的,并且用于执行所需处理而增加的时间量和资源量是可接受的。
具体地,在各种情况下,可以执行第一比对步骤而不涉及执行密集的SmithWaterman函数。因此,可以以较少密集资源及较少耗时的方式执行多个无空位比对,并且因为需要资源较小,也就需要较小的芯片上的空间来执行上述处理。因此,可以使用更少的处理元件执行更多的处理,且需要更少的时间,因而,可以执行更多的比对,并且可以具有更好的精度。更具体地,专用于执行Smith Waterman比对的较少芯片实现资源会占用更少的芯片面积,这是由于执行无空位比对的处理元件不需要与执行空位比对的处理元件一样多的芯片面积。由于芯片资源需求的下降,可以在更短的时间内执行更多的处理,并且执行的处理越多,实现的精度就越高。
因此,在这种情况下,可以采用适当配置的无空位比对资源来执行无空位比对方案。例如,如本公开所述的,在各种实施例中,提供了一种比对处理引擎。处理引擎用于接收数字信号,数字信号是来自电子数据源的表示基因组数据的一个或多个read及例如表示一个或多个核苷酸序列的数字数据;处理引擎还用于将该数据映射和/或比对到参考序列,例如首先对该数据执行无空位比对函数,然后执行空位比对函数,如果必要时,通过执行Smith Waterman比对方案上执行上述操作。
因此,在各种情况下,例如,采用无空位比对器,对read的连续部分上执行无空位比对函数,如果无空位比对从端到端进行,例如read是完整的,则不用执行空位比对。然而,如果无空位比对的结果指示存在indel(插入或缺失),例如,read被剪切或者其他方式的不完整,则需要无空位比对。因此,无空位比对结果可用于确定是否需要空位比对,例如,其中无空位比对延伸入空位区域但不用延伸整个read的长度,即read可能被剪切的位置(例如某种程度的软剪切(soft clip)),剪切的位置需要执行空位比对。
因此,在各种实施例中,基于完整性和比对评分,仅当无空位比对的端部(例如不是从一端到另一端)存在剪切时,才需要空位比对。更具体地,在各种实施例中,估计最佳可识别无空位和/或空位比对评分并将其用作截止线,用于判定评分是否足够好以保证进一步分析,例如通过执行空位比对。因此,可以采用比对的完整性及其评分,高评分表示比对是完整的,不需要执行空位比对;低评分表示比对是不完整的,需要执行空位比对。因此,得到高分不需要执行空位比对,只有当评分足够低时,才需执行空位比对。当然,在各种情况下,可以采用蛮力比对方案,使得部署在芯片架构中空位和/或无空位比对器的数量能允许执行更多数量的比对,以查看更大量的数据。
更具体地,在各种实施例中,每个映射和/或比对引擎可包括一个或多个(例如两个或多个Smith-Waterman)比对器模块。在某些情况下,这些模块可以用于支持全局(端到端)无空位比对和/或局部(剪切的)空位比对,以执行仿射空位评分,并且可以用于在每端产生未剥离的分数奖励;这些模块还用于还可以支持碱基质量敏感匹配和错配评分。在两个比对模块作为部分集成电路的情况下,例如,每个Smith-Waterman比对器可以被构造为评分单元的反对角波前,其通过虚拟比对矩阵来“移动”波前扫过评分单元。
然而,对于更长的read,Smith-Waterman波前可以用于支持自动操作,以便通过累积的indel跟踪最佳比对,例如以确保比对波前和被评分的单元不会逃脱评分带。在后台,逻辑引擎可以被配置为检查当前波前分数,找到最大值,在低于最大值的阈值距离上标记单元的子集,并且瞄准两个极端标志之间的中点。在这种情况下,自动操作可以被配置为当目标位于波前中心时对角地运行,但是可以用于在目标漂移时使目标重新居中而水平或垂直地直线运行,例如由于indels的存在。
来自比对模块的输出是SAM(文本)或BAM(例如,SAM的二进制版本)文件以及映射质量评分(MAPQ),该质量评分反映了read的预测和比对位置是其在参考序列中的实际来源位置的置信度。因此,一旦已经确定了每个read被映射的位置,并且进一步确定了每个read比对的位置,例如对每个相关read给定一个位置和质量评分,其中该质量评分反映该位置是正确比对的概率,从而知晓受试者DNA的核苷酸序列,以及受试者的DNA与参考基因组的DNA不同(例如,已经确定CIGAR序列),然后表示受试者的基因组核酸序列的不同read可以通过染色体位置进行排序,以便可以确定染色体上read的确切位置。因此,在一些方面,本公开涉及排序函数,例如可以由排序模块执行,该排序模块可以是模块管道的一部分,例如该管道用于:获取原始序列read数据(例如形成个体的基因组样本)以及映射和/或比对该数据,其中该数据随后可以进行排序。
更具体地说,一旦read被分配了位置,例如相对于参考基因组的位置,其可以包括识别read所属的染色体和/或其与该染色体的起点的偏移,那么可以对read按位置进行排序。排序可以是有用的,例如在下游分析中,由此与基因组中的给定位置重叠的所有read可以形成堆积以彼此相邻,例如在通过排序模块处理之后,由此可以容易地确定大部分read是否与参考值一致。因此,如果大部分read与参考值不一致,则可以标记变异检测。因此,排序可涉及一个或多个对与相对相同的位置(例如相同染色体位置)比对的read进行排序,以便产生堆积,使得覆盖相同位置的所有read被物理地分组在一起;并且所述排序可以进一步涉及分析堆积的read以确定read可以指示基因组中的实际变异的位置(与参考基因组相比较),其中该变异可以例如通过共同的堆积而与“错误”区别开来,例如机器错误或read错误,测序方法中的错误可能由少数read显示。
一旦获得数据,就可以运行一个或多个其他模块以清理数据。例如,可以包括在例如序列分析管道中的一个模块(例如用于确定个体的基因组序列),可以是局部重新比对模块。例如,通常很难确定在read末端发生的插入和缺失。这是因为Smith-Waterman或者等价的比对过程缺乏足够的、超出indel的环境以允许评分并检测其存在。因此,实际indel可能被报告为一个或多个SNP。在这种情况下,可以通过对经过映射和/或比对和/或排序的read数据执行局部重新比对来提高对于任意给定的read的预测位置的准确性。
在这种情况下,可以使用堆积来帮助表明正确的比对,例如所讨论的位置在任意给定的read末端位置,相同的位置可能在堆积的其他read中间。因此,在执行局部重新比对时,可以分析堆积中的各种read,以确定堆积中的一些read是否指示在给定位置存在插入或缺失,其中另一read不包括indel,或者更确切地说包括替代,那么在该位置,然后可以将indel插入,例如插入到参考中,其中在该参考中不存在。重叠该区域的局部堆积中的read可以被重新比对以查看是否在插入和/或缺失不存在时可以获得更好的分数。相应地,如果有改进,可以重新检查堆积中的整组read,并且如果整组的分数已经提高,那么可以很明显地知道在那个位置上确实存在一个indel。以这种方式,对于任意个体read,没有足够的环境来更精确地比对染色体末端的read可以得到补偿。因此,在执行局部重新比对时,检查一个或多个可能存在一个或多个indel的堆积,并且确定是否通过在任意给定位置添加indel来提高整体比对分数。
可以包括另一个模块,例如在序列分析管道中,所述模块例如用于确定个体的基因组序列,该模块可以是重复标记模块(duplicate marking module)。例如,可以执行重复标记函数以补偿在测序阶段可能发生的化学错误。例如,如上所述,在一些测序过程中,将核酸序列连接至珠子并使用标记的核苷酸碱基在该处组合。理想情况下,每个珠子只会有一个read。但是,有时多个read会连接到单个珠子上,这会导致read过多的拷贝。这种现象被称为read重复。
在执行比对并且获得结果和/或执行排序功能,局部重新比对和/或去除重复数据之后,可以对结果数据执行变异检测函数。例如,典型的变异检测函数或其部分可以用软件和/或硬连线配置实现,例如在集成电路上。特别地,变异检测是涉及将比对到参考上的给定位置的所有read进行分组,使得来自所有各种比对的read的所有重叠区域形成“堆积”。然后分析覆盖参考基因组的给定区域的堆积的read,以确定取样个体的DNA/RNA在该区域内最可能实际内容。然后,对于基因组的每个区域,逐步地重复这一过程。确定的内容生成相较于参考基因组的差异(称为“变异”或“变体”)的列表,每个差异具有相关的置信水平以及其他元数据。
最常见的变异是单核苷酸多态性(SNP),其中单个碱基不同于参考序列。SNP发生在人类基因组中约1/1000个位置中。接下来最常见的变异是插入(参考基因)和缺失(从参考基因缺失)或集合的“indels”。这些在较短的长度的序列上更常见,但也可以是任何长度的序列。然而,出现更复杂的变异,是因为序列片段(“read”)的收集是随机的,一些区域将具有比其他区域更广的覆盖范围。还存在更加复杂的变异,其包括多碱基替换,以及可以被认为是长度改变的替代的插入与缺失的组合。基于标准软件的变异检测器难以识别所有这些变异,并且对变异长度具有各种限制。需要软件和/或硬件中更专业的变异检测器来识别更长的变异,以及涉及染色体的大的改变的许多种类的外来“结构变体”。
然而,变异检测是一种难以在软件中实现的过程,并且在硬件中部署更加困难。为了考虑和/或检测这些类型的变异,典型的变异检测器可以执行以下任务中的一个或多个。例如,他们可能提出一组假设基因型(一个基因座上的一个或两个染色体的内容),使用贝叶斯计算来估计每个基因型是观察到的证据的真实性的后验概率,并报告最可能的基因型及其置信水平。因此,变异检测器可以是简单的或复杂的。更简单的变异检测器仅在正在进行的检测的精确位置处查看比对的read堆积的碱基列。更高级的变异检测器是“基于单倍型碱基的变异检测器”,其可以被配置为考虑例如围绕正在进行的检测的窗口内的背景。
“单倍型”是单个共同“链”中的特定DNA内容(核苷酸序列,变异列表等),例如,一个区域中的两个二倍体链中的一个及基于单倍型的检测器考虑贝叶斯的含义,即通过出现在相同的read中将哪些差异联系起来。因此,如本公开所提出的变异检测方案可以实现一种或多种改进的功能,例如在基因组分析工具试剂盒(GATK)单倍型检测器和/或使用隐马尔可夫模型(HMM)工具和/或De Bruijn Graph函数中。例如GATK单倍型检测器和/或HMM工具和/或De Bruijn Graph函数通常采用的一个或多个这些函数并用软件和/或硬件实现。
更具体地,如本公开所实现的,可以配置各种不同的变异检测操作以便在软件或硬件中执行,并且可以包括以下步骤中的一个或多个。例如,变量检测函数可以包括有效区域标识,例如用于标识多个read与参考不一致的位置以及用于在所标识的活性区域周围生成窗口,使得可以仅选择这些区域用于进一步处理。另外,可以进行局部单倍型组装,例如,对于每个给定的活性区域,可以将所有重叠的read组装成DBG(“De Bruijn graph”)矩阵。从该DBG矩阵,可以提取通过该矩阵的各种途径,其中每个途径构成候选单倍型,例如假设真正的DNA序列可以在至少一条链上。此外,可以发生单倍型比对,例如每个提取的单倍型候选物可以比对,例如Smith-Waterman比对,返回参考基因组,以便确定它所暗示的参考基因组的变异。此外,可以执行read可能性计算,例如可以针对每个单倍型或假设测试每个read,以估计观察read的概率,假设单倍型是真实的原始DNA样本。
关于这些过程,read可能性计算通常是最耗费资源且最耗时的操作,通常需要HMM对评估。另外,如下所述,针对每个read堆积构建DBG阵列以及识别局部和全局唯一K-mers的相关操作也可能是最耗费资源且最耗时的操作。因此,在各种实施例中,执行这些步骤中的一个或多个所涉及的各种计算中的一个或多个可以被配置为以优化的软件方式或硬件实现,诸如通过如本公开所述集成电路以加速方式执行。
如上所述,在各种实施例中,以软件和/或硬件或其组合实现的本公开的单倍型检测器可以被配置为包括以下操作中的一个或多个:活性区域识别、局部单倍型组装、单倍型比地、read可能性计算和/或基因分型。例如,本公开的装置、系统和/或方法可以被配置为对从受试者的测序DNA/RNA获得的数据执行映射、比对和/或排序操作中的一个或多个,以生成映射的、比对的和/或排序结果数据。然后可以清除该结果数据,例如通过对其执行去除重复操作和/或可以将数据传送到一个或多个专用单倍型检测处理引擎以执行变异检测操作,变异检测操作包括前述的一个或多个对该结果数据进行处理的步骤,以便生成与其相关的变异检测文件。因此,已经测序和/或已经映射或/和比对到参考基因组中的特定位置的所有read可以进行进一步处理,以确定所确定的序列与参考基因组中任何给定点的参考序列的差异。
因此,在各种实施例中,如本公开所述的设备、系统和/或方法可包括变异或单倍型检测系统,变异或单倍型检测系统以软件和/或硬连线进行配置以对获得的结果数据执行活性区域识别操作。活性区域识别涉及识别和确定read堆积的多个read的与参考序列不一样的位置;还涉及在分歧(“活性区域”)周围生成一个或多个窗口,以选择窗口内的区域进行进一步处理,例如,在映射和/或比对的步骤中,将识别的read映射和/或比对至参考基因组中的预期起源于受试者基因序列区域。
然而,由于测序以这样的方式进行,在基因组的任何给定区域的给定的基因,对测序read重复采样,可以看到任何和/或所有测序read的成行并与该区域对齐的堆积。在给定区域或堆积位置中对齐和/或重叠的所有这些read可以输入到变异检测系统中。因此,对于正在分析的任何给定read,可以将read在可疑重叠区域处与参考进行比较,并且可以将该read与参考进行比较以确定其序列与参考的已知序列是否存在任何差异。如果read一直比对到参考,没有任何插入或缺失且所有碱基相同,则确定比对良好。
因此,对于任何给定的映射和/或比对的read,可以具有与参考不同的碱基,例如,read可以包括一个或多个SNP,产生碱基错配的位置;和/或read可以具有插入和/或缺失中的一个或多个,例如,在比对产生空位。因此,在任何这些情况下,将存在需要通过进一步处理来解决的一个或多个错配。然而,为了节省时间和提高效率,进一步处理应限于发现的错配是有意义的差异,例如非噪声差异。在确定错配的重要性时,识别出堆积的多个read不同于参考的位置并作为活性区域,然后可以使用活性区域周围的窗口来选择错配的基因座以进行进一步处理。然而,错配的应该是有价值的,这可以以多种方式来确定,例如,可以针对每一有问题的基因座计算非参考概率,例如通过分析碱基匹配与误配的质量分数的比值,这些指示read指示明显地与参考不匹配的read的一个给定的阈值。例如,如果映射的和/或比对的read中的30个全部排列和/或重叠,以在参考中的给定位置(例如,活性区域)形成堆积,并且如果30个中仅出现1或2个read与参考不匹配,那么认为进一步处理的最小阈值未被满足,鉴于同意有28或29个read与参考匹配,30个中1或2个不匹配可以忽略。但是,如果堆积中的3或4,或5,或10或更多的read不匹配,那么不匹配可能在统计上足够重要以确保进一步处理,可以确定环绕差异的识别区域的活性区域存。在这样的实例中,可以采用确定围绕该差异的碱基的活性区域的窗口来给予围绕差异的区域增强的背景,以及采用附加的处理步骤(例如执行高斯分布和分布在相邻的不匹配的概率的总和),进一步调查和处理该区域以确定是否应该声明该活跃区域;如果是,该区域内相对于参考基因组的实际变异是什么(如果有的话)。因此,确定活性区域可识别需要额外处理以清楚确定是否已经发生了真实的变异或read错误的区域。
具体地,因为在许多情况下不希望对序列堆积中的每个区域进行进一步处理,所以可以识别活性区域,从而只有那些可能需要额外处理以清楚地确定是否存在真差异的区域或发生read错误,可能被确定为需要进一步处理。并且,如上所述,可以是假定的方差的大小,其确定活性区域的窗口的大小。例如,在各种情况下,活性窗口的边界可以在1或2或约10或20或甚至约25或约50至约200或约300,或约500或约1000个碱基长或更长的范围内变化,其中只有在活动窗口的范围内才能进行进一步处理。当然,活动窗口的大小可以是任何合适的长度,只要它提供确定差异的统计重要性的上下文即可。
因此,如果仅存在一个或两个孤立的差异,则活动窗口可能仅需要覆盖活性区域中的一个或多个到几十个碱基,以便具有足够的背景来统计检测到的实际出现的变异。然而,如果存在差异群集或簇,或者如果存在需要更多背景的indel,则可以将窗口配置得更大。在另一种情况下,可能需要分析可能在群集中发生的任何和所有差异,以便在一个或多个活性区域中进行分析,这是因为这样做可以提供关于每个个体差异的支持信息并且通过减少使用的活动窗口的数量来节省处理时间。在各种情况下,活性区域边界可以通过经裁定给定阈值的活动概率来确定,例如约0.00001或约0.00001或约0.0001或低至约0.002或约0.02或约0.2或更多。并且如果活性区域长于给定阈值,例如,大约300~500个碱基或1000个碱基或更多,那么该区域可以被划分为多个子区域,例如通过具有最低活动概率分数的基因座来定义子区域。
在各种实施例中,在识别活跃区域后,可以执行局部的单倍型组装程序。例如,在每一活跃区域,所有堆积或重叠的read可以构建成德布鲁因图(de Bruijn Graph;DBG)。DBG可以是基于与所选择的活跃区域相重叠的所有read的有向图。该活跃区域的read可以是约200个碱基、300个碱基、400个碱基、500个碱基、或是更多碱基。活跃区域的存在和/或变异身份将被确定。在各种实施例中,如上所述,该活跃区域可以延伸,例如,在所讨论的基因座的每一方向包括另外约100个碱基、200个碱基、或更多碱基,以生成延伸的活跃区域。其中,可能需要围绕其他环境的差异。因此,活跃区域长的窗口延伸或不延伸,具有与该活跃区域重叠的部分的所有read被堆叠(例如生成堆积),重叠部分被识别,以及read序列被线程化到单倍型检测器系统中,从而以De Bruin图的形式构建在一起,就像拼图的片段一样。
因此,对于任何给定的活动窗口,形成有堆叠的read,因此全部堆积将包括序列途径。该序列途径为在该堆积中的各种重叠的read的重叠区域覆盖活动窗口的整个序列。因此,在该活跃区域中的任何给定基因座处,存在与该基因座重叠的多个read,尽管任何给定的read可能不会延伸整个活跃区域。结果是堆积中的各种read的各个区域使用DBG图来确定变异是否实际上存在于该活跃区域内的序列中的任何给定的基因座。如果变异存在于该活跃区域内,可以作出这个结论,该活动窗口的边界内的任何给定read部分被考虑,且该活动窗口的边界外的部分被舍弃。
如上所述,read的那些片段与馈入DBG系统的活跃区域内的相关部分重叠。然后,DBG系统将像拼图的read构建成图形,然后对于序列中的每个位置,及基于该位置的重叠read的集合,确定是否存在任何给定的匹配或不匹配,以及如果存在不匹配,那么不匹配的概率是多少。例如,存在离散位置,该离散位置是堆积中的read片段彼此重叠的位置,它们可以基于它们的匹配区域彼此比对,并且通过将匹配的read串接或拼接在一起,由于它们的匹配点确定的,可以建立该片段内的每个位置,任何给定位置处的read在何种程度上彼此匹配或不匹配。因此,如果编译的两个或多个read排列并且相同地相互匹配一段时间,则将生成具有单个字符串的图形。然而,当两个或更多个read出现差异点时,图形中将形成分支,并且将生成两个或更多个发散字符串,直到两个或更多个read之间的匹配重新开始。
因此,图形的路径通常不是直线。例如,当read的k-mers与参考k-mers和/或来自一个或多个重叠read的k-mers不同时,例如在堆积中,在导致两个发散串的差异点处的图形中将形成“气泡”,且两个发散串将沿着两条不同的路径线继续直到两个序列之间的匹配重新开始。每个顶点可以给一个识别各个k-mers在堆积中的所有read中重叠的次数的加权分数。具体地,通过所生成的图形从一侧到另一侧延伸的每个路径可以给予计数。在从多个read生成相同的k-mers的情况下,例如,其中每个k-mers具有相同的序列模式,可以通过增加k-mers与已存在的k-mers途径重叠的途径的计数,在图形中考虑这些相同的k-mers。因此,在具有相同序列的多个重叠read生成相同的k-mers的情况下,图形之间的路径的图形将一遍又一遍地重复,并且通过图形步行该路径的计数将对应地逐渐增加。在本实施例中,仅针对k-mers的第一个实例记录图案,并且对于重复该图案的每个k-mers递增计数。在这种模式下,可以收集堆积物中的各种read以确定发生的变异和位置。
以这样的方式,通过采用所有可能的N个碱基k-mers,例如,10个碱基k-mers来形成图形矩阵,图形矩阵可以通过在10个碱基片段中顺序地步行read的长度从每个给定的read生成。每新的10个碱基片段的开头与最后生成的10个碱基片段相差一个碱基。然后,可以通过对活动窗口内的堆积的每次read执行相同的过程来重复该过程。然后,生成的k-mers可以彼此比对,使得生成的k-mers之间的相同匹配的区域与k-mers重叠的区域匹配,以便建立数据结构,例如图形,随后可以扫描并确定匹配和不匹配的百分比。具体地,可以相对于下一个生成的k-mers扫描参考k-mers和与其比对的任何先前处理的k-mers,以确定瞬时生成的k-mers是否匹配和/或重叠先前生成的k-mers的任何部分,并且发现匹配即时生成的k-mers的位置可以在适当的位置插入图形中。
一旦构建,可以扫描图形并且可以基于该匹配确定read中关于参考k-mers的任何给定单个碱基上的变异(Single Nucleotide Polymorphisms;SNP)和/或插入缺失是否可能是受试者遗传密码的实际变异或处理结果或其他错误。例如,如果给定区域中所有或大部分read的全部或大部分k-mers包括相同的SNP和/或插入错配,但是以相同的方式不同于参考k-mers。然后,与参考基因组相比,可以确定在受试者的基因组中存在实际的SNP和/或插入缺失变异。然而,如果来自有限数量的read的有限数量的k-mers证明了伪影,则可能是由机器和/或处理和/或其他错误引起的,并且不表示所讨论的位置的真实变异。
如上所述,在存在可疑方差的情况下,图形中将形成气泡。具体地,在所有给定read区域内的所有k-mers都与参考k-mers匹配的情况下,它们将以形成线性图形的方式排列。然而,在给定基因座及在图谱将分支的差异位点处的碱基之间存在差异。该分支可以在k-mers内的任何位置,并且因此在该差异点处,10个碱基k-mers(包括该差异)将与图中的其余k-mers分开。在本实施例中,将形成通过图形形成不同路径的新节点。
因此,在所有事物可能已经达成一致的情况下,例如,给定的新k-mers中的序列绘制成匹配其在图形中比对的序列,直到该k-mers的路径的差异点一般与图形的路径匹配,且该k-mers的路径的差异点是线性的。但是在差异点之后,图形的新路径将出现以适应新绘制的k-mers的序列中表示的差异。该发散由图中的新节点表示。在本实施例中,要添加到图形中的任何新的k-mers与新发散的路径匹配将增加该节点的计数。因此,对于每个read支持arc(Assembly by Reduced Complexity;arc),计数将逐渐增加。
在各种实施例中,k-mers和/或其表示的read将再次开始匹配,例如,在发散点之后,如此,现在有一个收敛点,k-mers开始通过参考序列的k-mers所代表的图形匹配主要途径。例如,一段时间后,支持分支节点的read应该随时间重新加入至该图形。因此,随着时间的推移,该read的k-mers将再次重新加入至该主要途径。更具体地,对于一个read内给定一个基因座处的SNP,从该SNP开始的k-mers将偏离主图并且将保持分开约10个节点,因为每个k-mers有与该read和该参考k-mers之间的不匹配的基因座重叠的10个碱基。因此,对于SNP,在第11位,覆盖该read内的基因座的k-mers将重新加入主要途径,因为恢复了精确匹配。因此,对于在给定基因座处具有SNP的read的k-mers,将需要十个移位以重新加入由参考序列表示的主图。
如上所述,通常存在一个主路径或主线或主干作为参考路径,并且在存在发散的情况下,在该read和该主干图之间存在差异的节点处形成气泡。因此,存在一些与骨架分开并形成气泡的read,该差异可指示变异的存在。当处理图形时,可以沿着该参考主干形成气泡内的气泡内的气泡,使得该气泡堆叠起来并且可以通过该图形创建多个路径。在本实施例中,图形中可以存在由该参考主干表示的主路径,第一发散的一条路径,以及该第一发散内的第二发散的另一路径,全部在给定窗口内,通过图形的每条路径可以表示实际变异或可以是诸如由排序错误和/或PCR错误和/或处理错误等引起的伪像。
一旦生成了这样的图形,就必须确定通过该图形的哪条路径代表样品基因组内存在的实际变异,以及哪些仅仅是人为现象。尽管如此,预期堆积样本中的大多数read将不支持包含处理或机器错误的read,但是,情况并非总是如此。例如,PCR处理中的错误通常可能是在制备DNA样品时发生克隆错误的结果,这种错误倾向于导致插入和/或缺失被添加到克隆序列中。这样的插入缺失错误在read之间可能更一致,并且最终可能生成多个read,这些read具有来自PCR克隆中的该错误的相同错误。因此,由于这种误差,可能导致这种发散点的更高计数线。
因此,一旦形成了图形矩阵,具有通过图形的许多路径,下一阶段将遍历并由此提取通过图形的所有路径,例如,从左到右。一条路径将是该参考主干,但沿途还会有其他路径跟随各种气泡。必须遍历所有路径并将其计数列表。例如,如果图形包括在一个点中具有两个水平气泡而在另一个点中具有三个水平气泡的路径,则通过该图形将存在6(2×3)个路径。因此,每个路径将单独地被提取,所提取的路径被称为候选单倍型。这样的候选单倍型代表了可以真正代表被测序的受试者实际DNA的理论,并且可以采用以下处理步骤,包括单倍型比对,read可能性计算和/或基因分型中的一种或多种来测试这些理论,至于找出任何人和/或每一种理论都是正确的概率。因此,德布鲁因图重建的实现代表了一种可靠地提取一组好的测试假设的方法。
例如,在执行变异检测函数(Variant Call Formation;VCF)时,如本文所公开的,可以实现活跃区域识别运算,例如用于识别在给定区域内的一个堆积的多个read与参考基因序列不一致的位置,以及用于生成围绕所识别的活跃区域的窗口,因此可以仅选择这些区域用于进一步处理。另外,局部单倍型可以构建,例如,对于每个给定的活跃区域,堆积中的所有重叠read可以构建成“德布鲁因图”(DBG)矩阵。从该DBG中可以通过该矩阵提取各种途径,其中每个途径构成候选单倍型,例如,假设真正的DNA序列可以在至少一条链上。
此外,单倍型比对可以发生,例如每个提取的候选单倍型可以比对,例如史密斯-沃特曼(Smith-Waterman;SW)比对,回到参考基因组,以便从暗示的参考基因组确定什么变异。进一步的,可以执行read可能性计算,例如可以针对每个单倍型测试每个read,以估计观察read的概率,假设单倍型是真实的原始DNA样本。最后,可以实施基因分型运算,并生成变异检测文本(variant call file;VCF)。如上所述,这些运算中的任何一个或全部可以用于软件和/或硬件中的优化方式实现,并且在各种实施例中,由于构建DBG矩阵的资源密集和耗时性质和从中提取候选单倍型,和/或由于执行单倍型比对和/或read可能性计算的资源密集和耗时性质,其可包括隐马尔可夫模型(Hidden Markov Model;HMM)评估的参与,这些运算(例如,可以配置局部单倍型组装,和/或单倍型比对,和/或read可能性计算)或其一部分,以使其运算的一个或多个函数以硬连线形式实现,例如以加速方式执行通过如本文所述的集成电路。在各种实施例中,这些任务可以用于由一个或多个量子电路实现,例如在量子计算设备中。
因此,在各种实施例中,可以配置用于执行该装置,系统和方法的装置,系统和方法,以便执行单倍型比对和/或read可能性计算。例如,如上所述,每个提取的单倍型可以比对,例如Smith-Waterman比对,回到参考基因组,以便从暗示的参考基因组确定什么变异。在各种实施例中,可以进行评分,例如根据以下示例性评分参数:匹配=20.0;不匹配=-15.0;起始空位(gap open)=-26.0;以及延伸空位(gap extend)=-1.1,可以使用其他评分参数。因此,以这种方式,可以生成简要比对信息表达式(Compact IdiosyncraticGapped Alignment Report;CIGAR)链,并与单倍型相关联以生成组装的单倍型,组装的单倍型最终可以用于鉴定变异。因此,以这样的方式,与给定单倍型相关的给定read的可能性可以针对所有read/单倍型组合来计算。在本实施例中,可以使用隐马尔可夫模型(HMM)来计算该read的可能性。
例如,可以根据类似于SW比对的动态编程模型来比对各种组装的单倍型。在本实施例中,可以生成虚拟矩阵,例如,DBG生成的候选单倍型可以位于虚拟阵列的一个轴上,并且read可以位于另一个轴上。然后可以通过遍历通过图形提取的路径生成的分数来填充矩阵,并计算任何给定路径是真实路径的概率。因此,在本实施例中,该比对协议与典型的SW的比对协议的不同之处在于,关于找到通过阵列的最可能路径,使用极大可能性计算,例如由HMM模型执行的计算。该HMM模型用于为read与单倍型的比对提供总概率。因此,在本实施例中,不需要产生实际的CIGAR链比对。而是考虑所有可能的比对并且将它们的可能性相加。对HMM评估是资源和时间密集的,因此,在集成电路内的硬连线配置内或通过量子计算平台上的量子电路实现其运算是非常有利的。
例如,可以针对每个候选单倍型测试每个read,以便估计观察read的概率,假设单倍型是采样的原始DNA的真实代表。在各种实施例中,可以通过评估“对隐马尔可夫模型”(HMM)来执行该计算,该HMM用于对单倍型候选可能已被修改的各种可能方式进行建模,例如通过PCR或测序错误等等,并且在观察到的read中引入的变异。在本实施例中,考虑到read中的任何偏差可能是误差模型的结果的可能性,HMM评估可以采用动态编程方法来计算到达观察到的read的任何一系列马尔可夫(Markov)状态转换的总概率。因此,这样的HMM计算可以用于分析可能已经被引入一个或多个read中的所有可能的SNP和插入缺失,例如通过扩增和/或测序伪像。
具体地,成对HMM在虚拟矩阵中考虑该read与该参考候选单倍型的所有可能比对以及与它们中的每一个相关联的概率,并将所有概率相加。将给定路径上的所有变异的所有概率的总和相加,以获得每次read的一个总体概率。然后,针对每对HMM、针对每个单倍型、及针对read对进行该过程。例如,如果存在与给定区域重叠的六个堆积簇,例如六个单倍型候选的区域,并且如果堆积包括大约100个read,则将需要执行600个HMM运算。更具体地,如果存在6个单倍型,则通过该路径将存在6个分支,并且必须计算每个分支是与该区域的受试者的实际遗传密码匹配的正确途径的概率。因此,必须考虑所有read的每个途径,并且计算该给定单倍型的每次read的概率。
成对HMM是用于如何将采样的DNA中的真实单倍型转换成可能的不同检测read的近似模型。已经观察到这些类型的转化是SNP和插入缺失的组合,该SNP和该插入缺失是已经通过PCR过程引入该遗传样品组、通过一个或多个其他样品制备步骤,和/或由测序过程引起的错误等等。如图2中所示,为了解释这些类型的错误,可以采用底层三态基本(base)模型,其中M=比对匹配(alignment match),I=插入(insertion),D=缺失(deletion),进一步的,任何转换可以进行,除了I和D之间的转换。
如图2所示,三态基本模型转换不是在时间序列中,而是在通过候选单倍型和read序列的进展序列中,从每个序列中的位置0开始,其中第一个碱基是位置1。M表示两个序列中的+1位置;向I的转换仅意味着在read序列中的位置+1;并且向D的转换仅意味着单倍型序列中的位置+1。如本文所述,相同的三态模型可以用于作为Smith-Waterman和/或尼德曼-翁施(Needleman-Wunsch;NW)比对的基础。因此,如在此阐述的这种三态模型可以在SW和/或NW过程中使用,从而允许仿射空位(插入缺失)评分,其中假设起始空位(进入I或D状态)比延伸空位更小的可能性(保持在I或D状态)。因此,在本实施例中,对HMM可以被视为比对,并且可以产生CIGAR字符串以编码各种状态转换的序列。
在各种实施例中,由于不同的位置下转换概率不同,因此三态基本模型可能是复杂的。例如,所有M个转换的概率可以乘以观测下一个给定其碱基质量分数的read碱基及相应的下一个单倍型碱基的先验概率。在本实施例中,碱基质量分数可以转换为测序SNP错误的概率。当两个碱基匹配时,先验概率被视为一个减去该错误概率,并且当它们不匹配时,将其视为误差概率除以3,因为存在3个可能的SNP结果。
以上讨论涉及抽象的“马尔可夫”模型。在各种实施例中,还可以确定最大可能性转换序列,其在本文中称为比对,并且可以使用Needleman-Wunsch或其他动态编程算法来执行。但是,在各种实施例中,在执行变异检测文本时,如本文所公开的,最大可能性比对或任何特定比对不必是主要关注点。相反,总概率可以例如通过计算观察到给定单倍型的read的总概率来计算,单倍型是通过图的所有可能转换路径的概率的总和,从在任何单倍型位置处的read位置零到read结束的位置,在任何单倍型位置,每组路径概率仅仅是各种组成转换概率的乘积。
如上所述,还可以通过采用虚拟阵列并使用动态编程算法来执行路径概率的总和,使得在(0...N)*(0...M)矩阵的每个单元中,计算三个概率值,对应于M,D和I三者之间的转换状态。(或者等效地,存在3个矩阵。)矩阵的顶行(read位置零)可以在D状态中初始化为概率1.0,在I和M状态下初始化为0.0;并且左列的其余部分(单倍型位置零)可以初始化为全零。(在软件中,初始D概率可以设置在双精度最大值附近,例如2^1020,以避免下溢,但是这个因子可以在以后标准化。)
该3对1计算依赖性限制了可以计算的单元的顺序。它们可以在每行中从左到右计算,从每个列的顶部到底部或从上到下进行,向右进行。另外,它们可以在反对角波前计算,其中下一步是计算所有单元(n,m),其中n+m等于递增的步数。该波前顺序具有以下优点:反对角线中的所有单元可以彼此独立地计算。然后,在最终read位置处,矩阵的底行可以用于表示完成的比对。在本实施例中,单倍型检测程序将通过对所有底行单元的I和M概率总和来作业。在各种实施例中,可以设置系统使得在底行内不允许D转换,或者可以在那里使用0.0的D转换概率,以避免重复计数。
如本文所述,在各种实施例中,每个HMM评估可以对序列对进行运算,例如对候选单倍型和read对进行运算。例如,在给定的活跃区域内,一组单倍型中的每一个可以相对于一组read中的每一个进行HMM评估。在本实施例中,可以通过一次转换一组read和一组单倍型来减少和/或最小化软件和/或硬件输入带宽,并且让软件和/或硬件生成N*M对运算。在某些情况下,Smith-Waterman评估器可以用于排队各个HMM运算,每个运算具有其自己的read和单倍型数据的拷贝。Smith-Waterman(SW)比对模块可以用于在线性空间中运行对HMM计算或者可以在对数概率空间中运算。这对于使用定点值保持大范围概率值的精度非常有用。但是,在其他情况下,可以使用浮点运算。
存在三个并行乘法(例如,在对数空间中的加法),然后是两个串行加法(~5-6级近似管道),然后是另外的乘法。在本实施例中,完整管道可以是大约L=12-16个循环长。I&D计算可能约为长度的一半。可以向管道馈送多个输入概率,例如每个周期2、或3、或5、或7、或更多输入概率,例如来自一个或多个已经计算的相邻单元(来自左边的M和/或D、来自上方的M和/或I、和/或来自左上方的M和/或I和/或D)。它还可以包括一个或多个单倍型碱基,和/或一个或多个read碱基,例如每个周期的相关参数,例如预处理参数。在潜伏期之后,在每个周期之后输出M&I&D结果集。
如上所述,在执行如本文所公开的变异检测函数时,可以构建DBG,并且当堆积中的所有read相同时,DBG将是线性的。然而,在存在差异的情况下,图形将形成“气泡”,其指示差异区域,导致多个路径偏离匹配参考比对,然后在匹配比对中重新连接。从该DBG可以提取各种路径,其形成候选单倍型,例如,关于真实DNA序列可以在至少一条链上的假设,可以通过对数据执行HMM或修改的HMM运算来测试这些假设。此外,可以采用基因分型函数,例如可以形成候选单倍型的可能二倍体组合,并且对于它们中的每一个,可以计算观察整个read堆积的条件概率。然后可以将这些结果馈送到贝叶斯(Bayesian)公式模块中,以在给定观察到的整个read堆积的情况下计算每个基因型是真实的绝对概率。
因此,根据本文描述的装置,系统和其使用方法,在各种实施例中,可以执行基因分型运算,该基因分型运算可以用于实施软件和/或硬件和/或量子处理单元的优化方式。例如,可以形成候选单倍型的可能的二倍体组合,并且对于每种组合,可以计算观察整个read堆积的条件概率,例如通过使用从成对HMM评估中观察到的给定每单倍型的每个read的组成概率。这些计算的结果进入贝叶斯公式,以便计算每个给定观察到的整个read堆积的真实的基因型的绝对概率。
因此,在各个实施例中,本申请涉及一种用于对生成的和/或提供数据执行单倍型或变异检测运算以便产生与其相关的变异检测文件的系统。具体地,如上所述,在特定情况下,变异检测文件可以是数字或其他此类文件,其编码一个序列与另一个序列之间的差异,例如样本序列和参考序列之间的差异。具体地,在各种实施例中,变异检测文件可以是文本文件,其与一个或多个参考基因组相比,阐述或以其他方式详述人的遗传构成中的遗传和/或结构变化。
例如,单倍型是一组遗传,例如DNA和/或RNA的变异,例如存在于人的染色体中的多态性,因此可以传递给后代并由此一起遗传。具体地,单倍型可以指等位基因的组合,例如基因的多种替代形式之一,例如可以通过突变产生,该等位基因变异通常在染色体上的相同位置发现。因此,在确定人类基因组的身份时,重要的是要知道特定人的基因序列编码的各种不同可能等位基因的形式。在特定情况下,单倍型可以指一个或多个,例如一组核苷酸多态性(例如,SNPs),其可以在同一染色体上的相同位置处发现。
通常,在各种实施例中,为了确定受试者的基因型,例如等位基因单倍型,如本文和上文所述,可以使用基于软件的算法,例如采用单倍型检测程序的算法,例如,基因组分析软件包(Genome Analysis ToolKit;GATK),用于同时测定个体基因序列中的SNP和/或插入和/或缺失,即插入和缺失(indels)。具体地,该算法可以涉及一种或多种单倍型组装方案,例如用于在正在处理的遗传序列的一个或多个活跃区域中单倍型的局部重新组装。这种处理通常涉及部署称为隐马尔可夫模型(HMM)的处理函数,该模型是用于举例说明随机变化的系统的随机和/或统计模型,例如假设系统内的未来状态仅依赖于当前状态,而不是在它之前的事件序列。
在本实施例中,建模的系统具有特征或者被假设为具有未观察到的(隐藏)状态的马尔可夫过程。在特定情况下,该模型可能涉及简单的动态贝叶斯网络。具体地,关于确定遗传变异,在其最简单的形式中,存在被处理的序列中任何给定碱基的同一性的四种可能性之一,例如当比较参考序列的片段,例如假设的单倍型时,和受试者的DNA或RNA,例如,来自测序仪的read。然而,为了确定这种变异,首先,必须对受试者的DNA/RNA进行测序,例如,通过下一代测序仪(“NGS”),以产生识别受试者遗传密码的readout或“read”。接下来,一旦对受试者的基因组进行测序以产生一个或多个read,代表受试者的DNA和/或RNA的各种read需要被映射和/或比对,如上文中非常详细地描述的。然后,该过程的下一步是确定刚刚确定的受试者的基因(例如,已经被映射和/或比对)的基因如何不同于原型参考序列的基因。因此,在进行这样的分析时,假设潜在地代表受试者的给定基因的read是原型单倍型的表示,尽管具有目前待确定的各种SNP和/或插入和缺失。
具体地,在特定方面,用于实施相同的装置,系统和/或方法,例如用于执行单倍型和/或变异检测函数,例如部署HMM函数,比如提供加速单倍型检测器。在各种实施例中,为了克服本领域中已知的这些和其他这样的各种问题,这里提供的HMM加速器可以用于以软件实现,以硬件实现或者以其组合的方式运算。部分地由软件和/或部分地由硬件实现和/或以其他方式控制和/或可以包括量子计算实现。例如,在一个特定方面,本公开内容涉及一种方法,通过该方法可以确定与受试者的DNA和/或RNA序列同一性有关的数据和/或受试者的遗传信息可以如何不同于参考基因组的数据。
在本实施例中,该方法可以通过执行单倍型或变异检测函数来执行,例如采用HMM方案。具体地,HMM函数可以根据本文描述的方法以硬件,软件或经由一个或多个量子电路(诸如在加速设备上)执行。在本实施例中,HMM加速器可以用于接收和处理排序的,映射的和/或比对的数据,以处理该数据,例如,以产生变异检测文件,以及在整个过程中通过该系统发送处理的数据。因此,该方法可以包括部署系统,其中数据可以从处理器(例如软件控制的CPU或GPU或甚至QPU)发送到实现加速HMM的单倍型检测器,该单倍型检测器可以部署在微处理器机芯片上,例如现场可编程门阵列(Field-Programmable Gate Array;FPGA),专用集成电路(Application Specific Integrated Circuits;ASIC)或结构化ASIC(Structured Application Specific Integrated Circuits;sASIC),或由一个或多个量子电路实现。该方法还可以包括用于处理数据以产生HMM结果数据的步骤,然后可以将该结果反馈给中央处理器(Central Processing Unit;CPU)和/或图形处理器(GraphicProcessing Units;GPU)和/或量子点处理器(Quantum dot processing unit;QPU)。
具体地,在一实施例中,如图3A所示,提供了包括HMM加速器的生物信息学管道系统。例如,在一个实例中,生物信息学管道系统可以用于变异检测系统1。该变异检测系统1以硬件实现,但也可以通过一个或多个量子电路实现,例如量子计算平台。具体地,图3A提供了HMM接口结构的高级视图。在特定实施例中,变异检测系统1用于加速变异检测运算的至少一部分,例如HMM运算。因此,在各种实施例中,变异检测系统1在本文中可以被称为HMM系统1。变异检测系统1包括具有一个或多个中央处理单元(CPU/GPU/QPU)1000的服务器,用于执行一个或多个与遗传信息的测序和/或处理相关的程序,例如用于将测序的遗传序列与一个或多个参考序列进行比较。
另外,系统1包括外围设备2,例如扩展卡。外围设备2包括微芯片7,例如FPGA,ASIC或sASIC。在一些情况下,可以提供和配置一个或多个量子电路,以用于执行本文所述的各种运算。值得注意的是,术语ASIC在适当时可以同等地指代结构化ASIC(sASIC)。外围设备2包括互连3和总线接口4,例如并行或串行总线,其将CPU/GPU/QPU 1000与微芯片7连接。例如,外围设备2可以包括外围组件互连,例如作为PCI,PCI-X,PCIe或QPI(快速路径互连),并且可以包括总线接口4,其适于可运算地和/或可通信地将CPU/GPU/QPU 1000连接到外围设备2,从而实现低延迟,高数据传输速率。因此,在特定情况下,接口可以是与微芯片7相关联的PCIe(peripheral component interconnect express;PCIe)4,该微芯片包括HMM加速器8。例如,在特定情况下,HMM加速器8被配置用于执行加速HMM函数,例如在某些实施例中,HMM函数可以至少部分地在FPGA,AISC或sASIC的硬件中实现,或者通过一个或多个适当配置的量子电路实现。
具体地,图3A提供了HMM加速器8的高级图,该HMM加速器8具有一个或多个HMM引擎13的示例性组织,例如多个处理引擎13a~13m+1,用于执行变异检测函数的一个或多个过程,例如,包括HMM任务。因此,HMM加速器8可以由数据分配器9,例如CentCom,和一个或多个处理簇11~11n+1组成,其可以被组织为或以其他方式包括一个或多个HMM引擎13,例如每个实施例可以用作处理引擎,例如小型引擎13a~13m+1。例如,分配器9可以用于接收数据,例如来自CPU/GPU/QPU 1000的数据,以及将该数据发生或以其他方式传送至多个HMM处理簇11中的一个或多个。
具体地,在某些实施例中,分配器9可以逻辑地定位在机载PCIe接口4和HMM加速器模块8之间,例如接口4与分配器9通信的地方,例如通过互连或其他适当的配置总线5,例如,PCIe总线。分发器模块9可以适于与诸如一个或多个簇总线10之类的一个或多个HMM加速器簇11通信。例如,HMM加速器模块8可以用作或者包括簇阵列11a~11n+1,例如,其中每个HMM簇11可以用作或者包括簇集线器11和/或可以包括一个或多个HMM引擎13,该HMM引擎可以作为适于对接收的数据执行一个或多个运算的处理引擎13。因此,在各种实施例中,每个簇11可以形成或者包括一个簇阵列11a~11n+1,其中每个簇可以与多个HMM加速器引擎实例13a~13m+1可运算地相关联,例如每个簇集线器11可以被用于将数据引导到簇11内的多个处理引擎13a~13m+1。
在各种实施例中,HMM加速器8用于将受试者的测序遗传密码的每个碱基(例如以read形式)与参考序列的各种已知或产生的候选单倍型进行比较,并确定任何给定碱基的概率。在被认为与相关单倍型匹配或不匹配的位置处,例如,read包括SNP,插入或缺失,从而导致在所考虑的位置处碱基的变异。具体地,在各种实施例中,HMM加速器8用于为这些状态中的每一个之间的read的碱基序列分配转换概率,匹配(“M”),插入(“I”)或缺失(“D”),如下文更详细描述的。
更具体地,取决于配置,HMM加速函数可以在任一软件中实现,诸如通过CPU/GPU/QPU 1000和/或微芯片7,和/或可以以硬件实现并且可以存在于微芯片7内,例如位于外围扩展卡或板2上。在各种实施例中,该函数可以部分地在该软件中实现,例如,由CPU/GPU/QPU 1000运行,并且该函数还可以部分地在硬件中实现,或是在微芯片7或通过一个或多个量子处理电路实现该函数。因此,在各种实施例中,微芯片7可以存在于CPU/GPU/QPU 1000的主板上,或者它可以是外围设备2的一部分,或同时设置于两者上。因此,HMM加速器模块8可以包括各种接口或以其他方式与各种接口相关联,例如接口3,5,10和/或12,以便允许向处理引擎13和从处理引擎13高效地传输数据。
因此,请一并参阅图2和图3,在各种实施例中,提供了配置用于执行变异(例如单倍型)检测函数的微芯片7。微芯片7可以与CPU/GPU/QPU 1000相关联,例如与其直接耦合,例如设置于计算机的主板上,或间接地耦合到CPU/GPU/QPU 1000上,例如作为可运算地耦合到CPU/GPU/QPU 1000的外围设备2的一部分,例如通过一个或多个互连,例如互连3,4,5,10和/或12。在本实施例中,微芯片7存在于外围设备2上。值得注意的是,尽管被配置为微芯片,但是加速器也可以被配置为量子处理单元的一个或多个量子电路,其中量子电路被配置为用于执行本文公开的一个或多个函数的一个或多个处理引擎。
因此,外围设备2可以包括并行或串行扩展总线4,例如用于将外围设备2连接到计算机和/或服务器的中央处理单元(CPU/GPU/QPU)1000,例如通过接口3,例如直接内存存取(Direct Memory Access;DMA)。在特定实施例中,外围设备2和/或串行扩展总线4可以是PCIe总线(PCIe),该PCIe总线用于,例如通过互连5,与微芯片7通信或以其他方式包括微芯片7。如本文所述,微芯片7可以将HMM加速器8配置为微芯片7的一部分,例如,作为硬连线和/或与其相关联地运行的代码,并且用于执行变异检测函数,例如用于执行隐藏马尔可夫模型的一个或多个运算,用于处理由CPU/GPU/QPU 1000,例如通过PCIe接口4,提供给微芯片7的数据。同样地,一次一个或多个变异检测函数已经执行了,例如,一个或多个HMM运算运行,其结果可以(例如通过互连3)从总线4上的微芯片7的HMM加速器8传送到CPU/GPU/QPU1000。
例如,在特定实施例中,提供了用于处理和/或传送信息和/或执行指令的CPU/GPU/QPU 1000以及至少部分地配置为HMM加速器8的微芯片7。CPU/GPU/QPU 1000通过接口5与微芯片7通信,该接口5适于促进CPU/GPU/QPU 1000与微芯片7的HMM加速器8之间的通信,因此可以可通信地连接CPU/GPU/QPU 1000和微芯片7内的HMM加速器8的部分。为了促进这些函数,微芯片7包括分配器模块9。该分配器模块9可以是CentCom,用于,例如通过一个或多个簇11,将数据传送到多个HMM引擎13,其中每个HMM引擎13用于接收和处理数据,例如通过在HMM引擎13上运行HMM方案,计算最终值,输出其结果,以及重复上述运算。在各种实施例中,HMM方案的性能可以包括确定一个或多个转换概率,如下文所述。具体地,每个HMM引擎13可以用于执行诸如包括生成和/或评估HMM虚拟矩阵中的一个或多个的作业,以产生和输出关于其的最终和值,该最终总和值表示可能的可能性。该可能性为检测碱基与假设的单倍型序列中的相应碱基匹配或不同,如下文所述。
图3B展示了图3A中的HMM簇11的详细描述。在各种实施例中,每个HMM簇11包括一个或多个HMM实例13。例如根据所提供的资源量(例如在芯片或量子计算处理器上)所需的簇,可以提供一个或多个簇。具体地,可以提供一个HMM簇,其中该HMM簇被配置为簇集线器11。簇集线器11从分发器模块9获取与一个或多个作业20有关的数据。进一步地,簇集线器11通过一个或多个HMM实例总线12可通信地连接到一个或多个HMM实例13,簇集线器11向一个或多个HMM实例13发送作业数据20。
用于在整个系统中传输数据的带宽可以是相对低频带宽过程,并且一旦接收到作业20,系统1可以用于完成该作业20,例如无需从微芯片7内提取内存。在各种实施例中,在任何给定时间将一个作业20a发送到一个处理引擎13a,但是簇集线器11可以将若干作业20a-n分配给若干不同的处理引擎13a~13m+1,例如每个处理引擎13a~13m+1。处理引擎13将在单个作业20上工作,例如,一个或多个read与一个或多个单倍型序列之间的单个比较,并行且高速。如下所述,这样的作业20的性能通常可以涉及虚拟矩阵的生成,由此可以将对象的“read”序列与一个或多个(例如,两个)假设的单倍型序列进行比较,以便确定两者之间的差异。在本实施例中,单个作业20可能涉及处理其中具有多个单元的一个或多个矩阵,这些矩阵需要在进行每次比较时进行处理,例如以逐个碱基进行处理。由于人类基因组大约有30亿个碱基对,在分析人类基因组的30X重复采样时,可能会有大约10到20亿个不同的作业要做(这相当于所有矩阵中约20万亿个单元)相关的HMM作业)。
因此,如本文所述,可以调整每个HMM实例13以便对序列数据执行HMM方案,例如HMM矩阵的生成和处理,例如从CPU/GPU/QPU 1000接收的数据。例如,如上所述,在对受试者的遗传物质(例如DNA或RNA)进行测序时,DNA/RNA被分解成片段,例如长度高达约100个碱基。然后,确定这100个碱基片段的身份,例如通过自动定序器,并成基于FASTQ文本的文件或其他格式“read”,该FASTQ文本的文件中存储read的每个碱基身份以及Phred质量分数(例如,通常0到63之间的数字在对数标尺中,其中得分为0表示未检测碱基正确的最小置信度,其中20到45之间的分数通常被认为是相比对确的。
具体地,如上所述,Phred质量分数是质量指标,其测量由测序处理器例如通过自动化DNA/RNA测序仪产生的核碱基鉴定的鉴定质量。因此,每个read碱基包括其自身的质量,例如Phred,基于定序器评估该特定标识的质量的分数。该Phred表示定序器估计其被检测的碱基身份正确的置信度。然后,所实施的HMM模块8使用该Phred分数,如下面详细描述的,以进一步确定read中的每个被检测的碱基的准确性,与其已被映射和/或比对的单倍型相比较,例如通过确定其匹配,插入和/或缺失转换概率,例如,进入和退出匹配状态。值得注意的是,在各种实施例中,系统1可在其上执行HMM方案之前修改或以其他方式调整初始Phred分数,例如通过考虑邻近碱基/得分和/或邻近DNA的片段和允许这些因素影响检查中的碱基的Phred评分,例如单元。
在本实施例中,如图4所示,系统1(例如,计算机/量子软件)可以确定和识别测序基因组内的各种活跃区域500n。各种活跃区域500n可以被探索和/或以其他方式受到如本文所述的进一步处理,其可以分解为作业20n,可以在整个系统1中的各种核心和可用线程1007之间并行化。例如,可以将这样的活跃区域500识别为测序和参考基因组之间的变异来源。具体地,CPU/GPU/QPU 1000可以具有运行的多个线程1007,识别活跃区域500a,500b和500c,基于例如经由适当配置的聚合器1008编译和聚合要处理的各种不同作业20n。当前正在检查的有效区域500a~500c。可以采用任何合适数量的线程1007,以便允许系统1以最大效率运行,例如,线程越多,等待的活动时间越少。
一旦被识别,编译和/或聚合,然后,线程1007和聚合器1008,例如通过PCIe接口4采用即发即弃的方式,将活动作业20传送到HMM模块8的数据分配器9(例如,CentCom),并且在等待HMM模块8发送输出数据以便匹配回到其映射和/或比对的相应活跃区域500时,然后将继续执行不同的过程。然后,数据分配器9将作业20分配给各种不同的HMM簇11,例如以逐个作业的方式分配。如果一切都在高效运行,这可能是先进先出格式,但不一定是这种情况。例如,在各种实施例中,原始作业数据和处理的作业结果数据可以在它们变得可用时通过系统发送并通过系统发送。
具体地,请一并参阅图2,图3和图4,各种作业数据20可以被聚合成4K字节的数据页,其可以经由PCIe 4发送到CentCom 9并且通过CentCom 9,例如通过簇11,发送到处理引擎13。发送的数据量可以多于或少于4K字节,但通常包括每4K(例如1024)页数据的大约100个HMM作业。具体地,这些数据然后被数据分配器9消化并被馈送到每个簇11,例如将一个4K页面发送到一个簇11的情况。然而,上述实施方式不一定是这样的,因为基于可用及何时可用的簇,任何给定的作业20可以被发送到任何给定的簇11。
因此,这里提供的簇11方法有效地将输入数据高速地分发到处理引擎13。具体地,当数据,例如通过DMA互连3,从CPU/GPU/QPU 1000到达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簇11a-(n+1))内的一个或多个HMM加速器实例13a-(m+1)(例如,所有HMM加速器实例13a-(m+1))处于繁忙,如此,在延长的时间段内,例如,在全部时间内,在系统1运行期间,作业20正在处理,同时通过PCIe接口4跟上要发送回一个或多个CPU 1000的已处理HMM数据的输出。
例如,导致一个或多个HMM加速器实例13的空闲时间的接口3,5,10和/或12中在任何低效率时可以直接增加系统1的总处理时间。当分析人类基因组时,可能存在大约两个或更多十亿个不同的作业20,这些作业需要被分发到各个HMM簇11并且在一段时间内被处理,例如在1小时内,在45分钟以下,30分钟以下,20分钟以下(包括15分钟,10分钟,5分钟或更短时间)。
因此,如上所述,图4概述了整个系统1的软件和/或硬件的示例性数据流。如图4所示,系统1可以部分地配置为在PCIe接口4和分配器9(例如CentCom)之间通过PCIe总线5传送数据。另外,系统1还可以部分地配置为在分配器9和一个或多个HMM簇11之间通过一个或多个簇总线10传送所述接收的数据。因此,在各种实施例中,HMM加速器8可以包括一个或多个簇11,例如作为一个或多个簇11配置用于执行HMM函数的一个或多个过程。在本实施例中,系统1包括将CentCom 9连接到HMM簇11的接口。该接口例如是簇总线10。
例如,图5所示为进出HMM模块8的接口的高级图,例如进出簇模块。如图6所示,每个HMM簇11可以用于通过专用簇总线10与CentCom数据分配器9通信,例如,从最终结果数据(例如,和数据)中接收数据和/或将最终结果数据发送至CentCom数据分配器9。具体地,任何合适的接口或总线5可以设置,只要接口或总线5允许PCIe接口4与数据分配器9之间通信即可。更具体地,总线5可以是包括在与数据分配器9通话时有用的解释逻辑的互连,该解释逻辑可以是被配置为适应用于提供此函数的任何方案。具体地,在各种实施例中,互连可以被配置为PCIe总线5。
另外,簇11可以用于设置一个或多个时钟域,因此,簇11内可以设置一个或多个时钟。在特定实施例中,簇11可以设置多个时钟域。例如,簇11可以设置较慢的时钟,用于簇11之间的通信。另外,簇11可以设置更快的时钟,例如高速的时钟,用于供该HMM实例13使用,以执行本文描述的各种状态计算。
具体地,在各种实施例中,如图6所示,可以设置系统1,使得在第一实施例中,当数据分配器9利用现有的CentCom IP时,可以提供诸如垫圈的环,其中垫圈被配置用于将信号从HMM簇接口或HMM簇总线10转换到CentCom接口5,以及用于将信号从CentCom接口5转换到HMM簇接口或HMM簇总线10。例如,HMM簇总线10可以将CPU//GPU 1000可通信地和/或可运算地连接到HMM加速器模块8的各个簇11。因此,如图6所示,可以在整个系统1中发送每个单倍型和/或每次read的结构化写入和/或read数据。
在作业20输入到HMM引擎之后,HMM引擎13通常可以开始:a)如果HMM引擎是空闲的,则立即开始;或者b)在HMM引擎完成其当前分配的任务之后开始。值得注意的是,每个HMM加速器引擎13可以处理因特网包探索器(Packet Internet Groper;ping)和pong输入(例如,可以在一个数据集上工作而另一个数据集正在加载),从而最小化作业之间的停机时间。另外,HMM簇项圈11可以被配置为自动获取由数据分发器9发送的输入作业20,并将作业20分配给可以接收新作业的簇11中的HMM引擎实例13之一。在软件方面不需要可以为特定作业20选择特定HMM引擎实例13的控制。然而,在各种实施例中,软件可以被配置为控制这样的实例13。
因此,鉴于上述情况,当将结果数据传送回CPU/GPU/QPU时,系统1可以被简化,并且这种效率,没有太多数据需要返回到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,多个存储器,例如高速存储器(high speedmemory;HMEM)16和接收缓存(RMEM)18,各种其他组件17,HMM控制逻辑15,以及结果输出接口19。在引擎侧,HMM实例总线12可运算地连接到存储器HMEM 16和RMEM 18,并且可以包括与簇集线器11通信的接口逻辑,该集线器与分配器9通信,分配器9又与PCIe接口4通信。PCIe接口4与由CPU/GPU和/或服务器1000运行的变异检测软件通信。因此,HMM实例总线12从CPU 1000接收数据并将其加载到一个或多个存储器中,例如,HMEM和RMEM。该配置也可以在一个或多个量子电路中实现并相应地进行调整。
在这些实施例中,应当分配足够的存储空间,以使得至少一个或两个或更多个单倍型,例如两个单倍型,可以加载至HMEM 16,每个给定的read序列可以加载至RMEM 18中。当加载多个单倍型时,导致PCIe总线5带宽的负担减轻。在特定实施例中,可以将两个单倍型和两个read序列加载到它们各自的存储器中,这将允许四个序列以所有相关组合一起处理。在其他情况下,可以加载四个,八个或十六个序列,例如,序列对,并且以类似的方式组合处理,以便在需要时进一步简化带宽。
另外,可以保留足够的存储器,以在该存储器内实施ping-pong结构。一旦存储器加载有新作业20a,例如在存储器的ping侧,就指示新的作业信号。控制逻辑15可以开始处理新作业20a,例如通过生成矩阵并执行必要的计算,如本文和下文所述。因此,这使得存储器的pong侧可用,以便加载另一个作业20b,其可以在处理第一作业20a时加载到其中,以使得当第一作业20a完成时,第二作业20b可以立即开始由控制逻辑15处理。
在本实施例中,可以预处理作业20b的矩阵,以使得从第一作业20a的处理结束和第二份工作20b的处理开始之间几乎没有停机时间,例如一个或两个时钟周期。因此,当利用存储器结构的ping和pong侧时,HMEM 16通常可以存储4个单倍型序列,例如两个片段,并且RMEM 18通常可以存储2个read序列。这种ping-pong配置是有用的,因为该结构仅需要一点额外的存储空间,但允许引擎13的吞吐量加倍。
在处理期间和/或在处理之后,存储器16,18馈入转换概率计算器和查找表(Look-Up-Table;LUT)块17a,用于计算与“先验结果(Priors)”数据相关的各种信息,如下所述,将先验结果数据馈送到M,I和D状态计算器块17b,以在计算转换概率时使用。存储器还可以包括一个或多个暂存随机存取存储器(random access memory;RAM)17c,以用于在条带的边界处保持M,I和D状态,例如,处理条带的底行的值,这表明在各种实施例中,可以是任何合适量的单元,例如,约10个单元,其长度可以与条带35的长度相称。
另外,引擎13可以包括单独的结果输出接口块19,使得当总和完成时,总和(例如,4个32位字)可以立即被传送回CPU/GPU/QPU的变异检测软件。值得注意的是,可以调整这种配置,使得系统1,特别是M,I和D计算器17b,不会等待输出接口19清除,例如就像执行作业20那样,只要它不需要花费很长时间来清除结果。因此,在这种配置中,可能有三个管道步骤协同工作以构成整个系统管道,例如加载内存,执行MID计算,以及输出结果。此外,应当注意的,任何给定的HMM引擎13是具有其自己的输出接口19的许多引擎之一,但是它们可以共享回到数据分配器9的公共接口10。因此,簇集线器11将具有管理能力以管理通过HMM加速器8的信息传输(“xfer”),以避免冲突。
因此,以下详述在HMM引擎13的每个模块内执行的过程,也即接收单倍型数据和read序列数据,对其进行处理,并输出与其相关的结果数据,如上文所概述。具体地,HMM簇11内的HMM引擎13中的高带宽计算用于计算和/或更新匹配(M),插入(I)和缺失(D)状态值,其在如上所述,确定被检查的特定read是否与单倍型参考以及其相同程度相匹配。具体地,同时readread、在该read中的每个碱基的Phred得分和起始空位罚分(GOP)值被从分配器9发送到簇11,从而被分配给特定处理引擎13以进行处理。然后,处理引擎13的M,I和D计算器17使用这些数据来确定read中的被检测的碱基是否更可能是正确的和/或是否与在单倍型中对应的碱基匹配,或作为变异的产物,例如插入或缺失;和/或如果存在变异,这种变异是否是单倍型中真实可变性的可能结果,或者更确切地说是序列生成和/或映射和/或比对系统中的错误伪影。
如上所述,这种分析的一部分包括MID计算器17确定从一个M,I或D状态到另一个M,I或D状态的read中从一个碱基到另一个碱基的转换概率与参考序列相比,例如从匹配状态到另一个匹配状态,或匹配状态到插入状态或缺失状态。在进行这样的确定时,在评估read和参考序列之间的任何观察到的变异是真实变异而不仅仅是一些机器或处理误差时,确定并考虑每个相关的转换概率。出于这些目的,所考虑的每个碱基的Phred得分在确定进入和离开匹配状态的转换概率时是有用的,例如从匹配状态到插入或缺失,例如比较中的空位状态。同样地,还确定了延续空位状态或从空位状态(例如,插入或缺失状态)返回到匹配状态的转换概率。在特定情况下,缺失或插入状态之内或之外的概率(例如,退出延续空位状态)可以是固定值,并且在本文中可以称为延续空位概率或延续空位罚分。然而,在各种实施例中,这种延续空位罚分可能是浮动的,因此取决于系统配置的准确性要求而变化。
因此,请一并参阅图7和图8,针对每种可能的read和单倍型碱基配对计算M,I和D状态值中的每一个。在本实施例中,可以形成包含在矩阵的一个轴上评估的read序列的单元的虚拟矩阵30和在另一个轴上的相关的单倍型序列,例如矩阵中的每个单元代表在read和单倍型参考中的碱基位置。因此,如果read和单倍型序列的长度均为100个碱基,则该矩阵30将包括100乘100个单元,其中可能需要处理其给定部分以确定匹配特定参考的该特定read的可能性和/或程度。因此,一旦虚拟矩阵形成,该矩阵30可以用于确定当从read序列中的一个碱基移动到另一个碱基并且将其与单倍型序列的基因进行比较时发生的各种状态转换,如图3和图4所示。具体地,处理引擎13被配置为使得当利用控制逻辑15遍历矩阵时,可以以并行和/或联系的方式处理多个单元。例如,如图7所示,虚拟处理条带35被传播并且在矩阵30上下移动,例如从左到右,从右到左对角线处理矩阵30的各个单元。
更具体地,如图7所示,矩阵30内的每个单个的虚拟单元包括需要被计算的M,I和D状态值,以便评估被检测的碱基身份的性质,如图7所示。在图7中,可以清楚地看到该过程中每个单元的数据依赖性。因此,为了确定正在处理的当前单元的给定M状态,需要将当前单元对角线上方的单元的匹配,插入和缺失状态推入当前单元并用于计算M的状态。当前正在计算的单元(例如,因此通过矩阵的对角线向下,向前表示匹配)。
然而,为了确定I状态,仅需要将当前单元正上方的单元的匹配和插入状态推入正在处理的当前单元中(因此,当继续处于插入状态时,垂直向下“空位”前进))。同样地,为了确定D状态,仅需要将当前单元的直接向左的单元的匹配和缺失状态推入当前单元(因此,当继续处于缺失状态时,水平交叉区“空位”前进)。如图7所示,在计算单元1(最顶行中的阴影单元)开始之后,单元2(第二行中的阴影单元)的处理也可以开始,而不等待单元1的任何结果,因为没有第2行中此单元与处理开始的第1行单元之间的数据依赖关系。这形成了反向对角线35,其中处理向下和向左进行,如红色箭头所示。该反向对角线35处理方法提高了整个系统的处理效率和吞吐量。同样地,在单元1中产生的数据可以立即向前推进到单元并向前推到最顶部单元1的右侧,从而向前推进条带35。
例如,图7描绘了示出硬件处理流程的示例性HMM矩阵结构35。矩阵结构35包括单倍型碱基指数,例如,含有36个碱基,定位成沿水平轴的顶部边缘延伸,并且还包括碱基read指数,例如10个碱基,定位成沿垂直的侧边缘下降,以这样的方式对来自单元结构的轴进行排列,其中可以用M,I和D概率状态填充单元的选择,以及从当前状态转换到相邻状态的转换概率。在本实施例中,如上面更详细地描述的,从匹配状态到匹配状态的移动导致通过矩阵30的向前对角线前进,而从匹配状态移动到插入状态导致垂直向下前进的空位,从匹配状态到缺失状态的移动导致水平前进差距。因此,如图8所示,对于给定的单元,当确定每个单元的匹配,插入和缺失状态时,采用其三个相邻单元的匹配,插入和缺失概率。
图7中的向下箭头表示处理引擎的并行和顺序性质,处理引擎被配置为产生处理条带或波35,其根据数据依赖性沿虚拟矩阵逐渐移动,参见图7和图8。如图7和图8所示,用于确定结构30中的每个特定单元的M,I和D状态。因此,在某些情况下,可能希望以向下和对角方式计算每个单元的标识,如上所述。而不是简单地仅沿垂直或水平轴计算每个单元,尽管如果需要可以这样做。这是由于增加的等待时间(例如,等待时间)增加,该等待时间例如是通过硬件配置单独地且顺序地沿着垂直轴或水平轴处理矩阵35的虚拟单元时所需的。
例如,在本实施例中,当线性地并且顺序地移动通过虚拟矩阵30时,例如逐行或逐列地移动,以便处理每个新单元,每个先前单元的状态计算将必须完成,从而增加整体的延迟时间。然而,当以向下和对角线的方式传播每个新单元的M,I,D概率时,系统1不必等待其先前单元(例如,第一行)的处理在开始处理之前完成。矩阵的第二行中的相邻单元的。这允许对角排列中的单元的并行和顺序处理发生,并且还允许隐藏与M,I和D状态计算相关联的管线的各种计算延迟。因此,当条带35从左向右移过矩阵30时,计算处理向斜下方移动,例如向左移动(如图7中的箭头所示)。配置对于硬件和/或量子电路实现尤其有用,例如存储器和/或逐个时钟延迟是主要考虑因素。
在这些配置中,例如在已经计算出整个矩阵30之后,从HMM引擎13的每次调用输出的实际值可以是包含M,I及D状态的底行(例如,图21中的35行),其中M和I状态可以相加(此时可以忽略D状态已经履行了它们在处理上述计算中的函数),以便产生可能是单个概率的最终总和值。该单个概率为对于每个read和单倍型指数,估计观察read的概率,例如,假设单倍型是真实的原始DNA样本。
具体地,如图7所示,矩阵30的处理结果可以是表示该read是该单倍型的实际代表的概率的单个值。该概率是介于0和1之间的值,并且通过对来自HMM矩阵30中的底部行单元的所有M和I状态总和来形成。基本上,正在评估的是可能出现问题的可能性。测序前的测序仪或相关的DNA制备方法,以便错误地在read中产生错配,插入或缺失,该实际上不存在于受试者的基因序列中。在本实施例中,read并不是受试者实际DNA的真实反映。
因此,考虑到这样的生产错误,可以确定任何给定read相对于单倍型实际代表什么,从而允许系统更好地确定受试者的基因序列(例如,整体)为何不同于参考序列。例如,许多单倍型可以针对许多read序列运行,为所有read序列产生分数,并且基于哪些匹配具有最佳分数来确定,个体的实际基因组序列同一性和/或它与参考基因组的实际区别。
更具体地,图8描述了图7中的HMM状态矩阵30的一部分的放大视图。如图8所示,在矩阵30中给定的每个单元的内部组成,以及整个矩阵的结构,计算任何给定“新”单元的M,I和D状态概率取决于M,I和D已经计算过几个周围邻居的状态。具体地,请一并参阅图1至图16,在示例性配置中,从匹配状态到另一个匹配状态可能的概率大约为0.9998,并且从匹配状态到插入或缺失,例如,有空位的状态可能的概率仅为0.0001(起始空位罚分)。此外,当处于有空位插入或空位缺失状态时,可能仅存在保持在该有空位状态的概率(延长或延续空位惩罚)为0.1,而存在返回该匹配状态的概率为0.9。值得注意的是,根据该模型,进出给定状态的所有概率应总和为1。具体地,矩阵30的处理围绕计算转换概率,考虑各种起始空位罚分或延续空位罚分并计算最终总和。
因此,这些计算的状态转换概率主要来自矩阵30中的直接相邻的单元,例如来自当前正在计算的给定单元的左侧,顶部和对角线上方和左侧的单元,如图16所示。另外,状态转换概率可以部分地源自伴随每个read碱基的“Phred”质量分数。因此,这些转换概率在计算该特定单元的M,I和D状态值时是有用的,并且对于计算的任何相关新单元也是如此。制得注意的是,如本文所述,起始空位罚分和延续空位罚分可以是固定值,然而,在各种实施例中,起始空位罚分和延续空位罚分可以是可变的并且因此可在系统内编程,尽管通过使用额外的硬件专用于确定这种变量转换概率计算的资源。在需要更高精度的情况下,这种情况可能是有用的。然而,当假设这些值是恒定的时,可以实现更小的资源使用和/或芯片尺寸,从而导致更高的处理速度,如下所述。
因此,存在多种计算和/或其他数学计算,例如乘法和/或加法,其涉及导出每个新的M,I和D状态值。在本实施例中,例如为了计算最大吞吐量,每个M,I和D转换状态计算中涉及的原始数学计算可以是管道的。这种管道运算可以以相应的时钟频率高的方式配置,但是管道深度可以是有意义的。此外,这样的管道可以被配置为具有有限的深度,并且在本实施例中,可能花费不止一个时钟周期来完成运算。
例如,这些计算可以在处理器7内部以高速运行,例如在大约300MHz。这可以通过暂存器对FPGA或ASIC进行大量管道来实现,因此在每个触发器之间发生很少的数学计算。该管道结构导致从匹配状态的输入到输出的多个等待时间周期,但是给出了反向对角线计算结构,如图7所示,这些等待时间可以隐藏在整个HMM矩阵30上,例如每个单元代表一个时钟周期。
因此,可以限制M,I和D状态计算的数量。在本实施例中,处理引擎13可以以这样的方式配置:矩阵30的多行中的单元的分组(例如,条带35)可以作为一组处理(例如以下-左-对角线的方式如图7中的箭头所示)。在进行下面的第二条带的处理之前,其中该第二条带包含的行中的单元数量与该第一条带相同,以作为该第一条带处理。以这样的方式,如上所述,可以调整如本文所述的加速器8的硬件实施,以便使整个系统更高速,如上所述。
具体地,图9阐述了用于执行这里描述的各种状态处理计算的示例性计算结构。更具体地,图9给出了处理引擎13的三个专用逻辑块17,用于计算在HMM矩阵30中处理的每个特定单元或单元组的每个M,I和D状态值所涉及的状态计算。这些逻辑块可以用硬件实现,但在某些情况下,可以用软件实现,例如用于由一个或多个量子电路执行。如图9所示,匹配状态计算15a比插入状态计算15b或缺失状态计算15c中的任何一个更复杂,这是因为在计算正在处理的当前单元的匹配状态15a时,所有先前的匹配状态,插入状态和缺失状态是在本匹配计算中包括相邻单元以及各种“先验结果(Priors)”数据(参见图9和10),而在它们各自的计算中仅包括匹配状态以及插入状态和缺失状态。因此,如图9所示,在计算匹配状态时,包括三个状态乘数器,两个加法器和最终乘数器,考虑了先前结果数据,例如Phred。但是,针对计算I状态或D状态,仅包括两个乘法器和一个加法器。值得注意的是,在硬件中,乘法器比加法器更耗费资源。
因此,在不同程度上,用于处理HMM矩阵30中的每个新单元的M,I和D状态值使用以下值的知识或预计算,例如“先前”M,I和D状态值在HMM矩阵中当前正在计算的单元的左侧,上方和/或对角线左侧和上方。另外,表示先验信息或“先验结果(Priors)”的这些值可以至少部分地基于“序列(Phred)”的质量分数,以及矩阵30中给定单元的read碱基和参考基数是否匹配或不同。在确定匹配状态时,此类信息特别有用。具体地,如图9所示,在本实施例中,基本上存在七个“转换概率”(M到M,I到M,D到M,I到I,M到I,D到D,和M到D)表面和/或估计看到起始空位的概率,例如,看到从匹配状态到插入状态或缺失状态的转换;看到空位接近,例如,从插入状态或缺失状态返回到匹配状态;并且看到下一个状态继续处于与先前状态相同的状态,例如匹配到匹配,插入到插入,缺失到缺失。
状态值(例如,在HMM矩阵30中要处理的任何单元中),Priors和转换概率都是[0,1]范围内的值。另外,对于位于HMM矩阵30的左边缘或顶边缘上的单元,还存在已知的起始条件。从图9中的逻辑15a可以看出,存在四个乘法计算和两个加法计算,其可以在针对正在处理的任何给定单元确定的特定M状态计算中使用。同样,从逻辑15b和逻辑15c可以看出,对于每个I状态和每个D状态计算,分别涉及两次乘法和一次加法。总的来,对于与要处理的HMM矩阵8中的每个单个单元相关联的M,I和D状态计算及连同先前的乘数一起总计八次乘法和四次加法运算。
如图16中的34行,其中,对于将一个read与一个或两个单倍型进行比较的单个作业20,矩阵30计算的最终总和输出是矩阵30的整个底行34上的最终M和I状态的总和,这是从HMM加速器8输出并传送到CPU/GPU/QPU 1000的最终总和值。该最终总和值表示read与单倍型匹配的程度。该值是单个作业20a的概率,例如小于1的概率,然后可以将其与另一个作业20b产生的输出进行比较,例如形成相同的活跃区域500。值得注意的是,在30X覆盖的“典型”人类基因组中,有大约20万亿个HMM单元需要进行评估,其中这些20万亿个HMM单元分布在所有相关HMM作业中的大约10到20亿个HMM矩阵30中。
然后,可以将这种计算的结果彼此进行比对,以便以更精确的方式确定受试者的基因序列为何不同于一个或多个参考基因组的基因序列,例如通过逐个碱基比对。对于最终的总和计算,可以重新部署已经用于计算各个单元的M,I和/或D状态的加法器,以便计算最终的总和值,例如将多路复用器包含在重新部署的加法器的选择中,从而将最后一行包含在矩阵中,例如关于计算时间,以计算该最终总和,如果read的长度是100个碱基则相当于约1%的开销(overhead)。在可选实施例中,可以使用专用硬件资源来执行这样的计算。在各种实施例中,可以部署用于M和D状态计算的加法器的逻辑用于计算最终总和,可以有效地部署D状态加法器,因为它不会在最终处理中用于引导总和值。
在某些实施例中,可以配置这些计算和相关过程,以便对应于给定测序平台的输出,例如包括测序仪集合,其作为集体可以每28分钟输出(平均)30X覆盖的新的人类基因组(尽管它们每三天从大约150个基因组的测序仪集合中产生)。在本实施例中,在当前的映射,比对和变异检测运算被配置为适合处理技术的这种测序平台时,测序簇对基因组进行测序所需的28分钟(例如,约10分钟)的一部分可以由适当配置的映射器和/或比对器使用,如本文所述,以便从定序器获取图像/BCL/FASTQ文件结果并执行映射和/或比对基因组的步骤,例如,后定序器处理。这留下了用于执行变异检测步骤的测序时间段的大约18分钟,其中HMM运算是主要计算组件,例如在核苷酸测序仪测序下一个基因组之前,例如在接下来的28分钟内。因此,在本实施例中,可以预算18分钟来计算需要根据基因组的处理来处理的20万亿个HMM单元,例如其中待处理的每个HMM单元包括大约十二个数学运算(例如,八次乘法和/或四次加法运算)。这样的吞吐量允许以下计算动态(20万亿HMM单元)x(每个单元12个数学运算)/(18分钟×60秒/分钟),这是每秒约222亿次运算的持续吞吐量。
图10给出了图9中的处理引擎的逻辑块17,包括示例性M,I和D状态更新电路,该M,I和D状态更新电路在图9中提供了电路的简化。该系统可以被配置为不受存储器限制,因此单个HMM引擎实例13(例如以平均每个时钟周期一个单元的速率加上开销来计算HMM矩阵30中的所有单个单元)可以重复多次(如上所述,吞吐量效率至少65~70次)。然而,为了最小化硬件的大小,例如,芯片2的大小和/或其相关的资源使用,和/或在芯片2上包括尽可能多的HMM引擎实例13和/或可能的是,如所希望的和/或可能的,可以对处理实例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计算“借用”一个或多个加法器逻辑,例如通过在需要时对现有加法器的最终和值进行多路复用技术(MUXing),以便执行实际的最终总和计算。在本实例中,最终逻辑块(包括M逻辑块15a,I逻辑块15b和D逻辑块15c)一起形成HMM MID实例17的一部分,该HMM MID实例17可以包括7个乘法器和4个加法器以及涉及的各种多路复用技术。
因此,图10给出了M,I和D状态更新电路15a',15b'和15c',包括简化与转换概率有关的假设效果,以及共享各种M,I和/或D资源的效果。例如,加法器资源,用于最终的总和运算。如图10所示,延迟块也可以添加到M状态计算块中的M状态路径。该延迟可以添加以补偿乘法和加法运算在实际硬件实施中的延迟,和/或简化控制逻辑,例如逻辑块15。
如图9和图10所示,这些相应的乘法器和/或加法器可以是浮点乘法器和浮点加法器。然而,在各种实施例中,如图11所示,可以实现对数域配置,其中在这种配置中,所有乘法变为加法。图11展示了如果所有乘法器都变成加法器,对数域计算将是什么样的,例如逻辑块15a”,逻辑块15b”和逻辑块15c”,其中重现采用对数域计算配置。具体地,所有乘法器逻辑都变成加法器,但加法器本身变成或以其他方式包括函数,其中函数如:f(a,b)=max(a,b)-log2(1+2^(-[a-b]),例如,等式的对数部分可以保持在LUT内,其LUT的深度和物理尺寸由所需的精度确定。
给定典型的read和单倍型序列长度以及通常针对read(Phred)质量得分和相关转换概率所见的值,对内部HMM状态值的动态范围要求可能非常严格。例如,当在软件中实现HMM模块时,各种HMM作业20可能导致欠载,例如当在单精度(32位)浮点状态值上实现时。这意味着动态范围大于80的10的幂,从而要求变异检测软件提升到双精度(64位)浮点状态值。但是,在各种实施例中,完整的64位双精度浮点表示可能会产生一些负面影响,例如,如果要实现紧凑的高速硬件,则需要增加存储和计算管道资源需求从而占用更大的芯片空间,和/或减慢定时。在本实施例中,可以实现仅定点的线性域号表示。然而,在该实施例中,对状态值的动态范围要求使得在某些情况下涉及的位宽度小于期望值。因此,在本实施例中,可以实现仅定点的对数域号表示,如本文所述。
在本方案中,如图11所示,代替在存储器和计算中表示实际状态值,可以表示以2为底的该数的对数(-log2)。这可能有几个优点,包括在线性空间中使用乘法运算,转换为对数空间中的加法运算;和/或数字的这种对数域表示固有地支持更宽的动态范围,而整数位的数量只有很小的增加。这些对数域M,I,D状态更新计算如图11和图12所示。
比较图11中的逻辑17配置和图9中的逻辑17配置,乘法运算在对数域中消失。相反,乘法运算被加法运算取代,并且加法运算转换为可以表示为最大运算而后表示为校正因子加法的函数,例如,通过LUT,其中校正因子是两者之间的差的函数。这两个值在对数域中求和。可以从查找表计算或生成这样的校正因子。校正因子运算或查找表实现是否更有效地使用取决于总和值之间的差所需的精度(位宽)。因此,在特定实施例中,状态表示的对数域位的数量可以在8到12个整数位加上6到24个小数位的附近,这取决于任何给定实现所需的质量等级。这意味着对于逻辑域状态值表示总共在14到36位之间。此外,已经确定存在可以提供可接受的质量和可接受的硬件大小和速度的对数域定点代表。
在各种实施例中,通常针对每个HMM作业20处理一个read序列,如上所述,read序列可以包括针对两个单倍型序列的比较。并且如上所述,对于单倍型存储器,也可以在read序列存储器18中使用ping-pong结构,以允许各种软件实现的函数能够在HMM仍在处理当前作业20a的同时写入新的HMM作业信息20b。因此,read序列存储要求可以是单个1024×32双端口存储器(例如用于写入的一个端口,用于读取的一个端口和/或用于写入和读取端口的单独时钟)。
具体地,如上所述,在各种实施例中,系统1采用的架构被配置为使得在确定测序样本基因组中的给定碱基是否与一个或多个参考基因组中的相应碱基相匹配时,形成矩阵30,其中参考基因组理论上横跨水平轴设置,而代表样品基因组的测序read理论上以垂直轴下降的方式设定。因此,在执行HMM计算时,如本文所述,HMM处理引擎13被配置为遍历该虚拟HMM矩阵30。这样的处理可以如图7中所述,当条带35沿对角线向下移动并穿过虚拟阵列时,对虚拟阵列的每个单元执行各种HMM计算,如图8所示。
更具体地,该理论遍历涉及从矩阵30整体处理第一组单元行35a,例如对于分组内的所有单倍型和read碱基,然后进行到下一组单元行35b的分组(例如,下一组read碱基)。在本实施例中,第一个分组的M,I和D状态值存储在该初始分组行的底部边缘,以便这些M,I和D状态值可用于在矩阵30中向下馈送至下一个分组(条带)的顶行。在各种实施例中,系统1可以被配置为在HMM加速器8中允许多达1008长度的单倍型和/或read,并且由于数字表示对于每个状态使用W位,这意味着1008字x W位(1008word x W bit)存储器用于M,I和D状态存储。
因此,如上所述,这种存储器可以是单端口存储器或双端口存储器。另外,还可以提供用于存储条带边界的结果的簇级别便笺式存储器。例如,根据上面的公开内容,已经讨论的存储器被配置用于每引擎实例13的基础。在特定的HMM实施中,多个引擎实例13a-(n+1)可以被分组为簇11。簇11由通过CentCom 9的PCIe接口4和DMA 3的单个连接(例如PCIe总线5)提供服务。多个簇13a-(n+1)可以被实例化,以便使用现有的CentCom 9功能更高效地利用PCIe带宽。
因此,在典型配置中,在簇11n内实例化16到64个引擎13m之间的某处,并且可以在HMM 8的典型FPGA/ASIC实现中实例一到四个簇(例如,取决于它是否是专用HMM FPGA图像或者HMM是否必须与定序器/映射器/比对器和/或其他模块共享FPGA空间,如本文所公开的。在特定实施例中,在HMM硬件中的簇级别11处可能存在少量存储器。该存储器可以用作弹性先入先出(“FIFO”)以从簇中的HMM引擎实例13捕获输出数据并将其传递到CentCom 9以进一步通过DMA 3和PCIe 4传送回CPU 1000的软件。理论上,这个FIFO可能非常小(大约两个32位字(32-bit words)),因为数据通常在到达FIFO后几乎立即传递到CentCom 9。但是,为了吸收输出数据路径中的潜在中断,可以使该FIFO的大小可参数化。在特定情况下,FIFO可以使用512字的深度。因此,簇级别存储要求可以是单个512x32双端口存储器(单独的读取和写入端口,相同的时钟域)。
图12阐述了各种HMM状态转换17b,其描绘了起始空位罚分(GOP),结束空位罚分(GCP)和涉及确定给定read序列是否以及如何与特定单倍型序列匹配的转换概率之间的关系。在执行这样的分析时,HMM引擎13包括至少三个逻辑块17b,诸如用于确定匹配状态15a的逻辑块,用于确定插入状态15b的逻辑块,以及用于确定缺失状态的逻辑块15c。这些M,I和D状态计算逻辑17在适当配置时高效地起作用以避免高带宽瓶颈,例如HMM计算流程。然而,一旦确定了M,I,D核计算架构,也可以配置和实现其他系统增强,以避免在系统内发展其他瓶颈。
具体地,系统1可以被配置为最大化将信息从计算核心1000高效地馈送到变异检测器模块2并且再次返回的过程,以便不产生将限制总吞吐量的其他瓶颈。向HMM核M,I,D状态计算逻辑17馈送的一个块是转换概率和先验计算块。例如,如图9所示,每个时钟周期采用七个转换概率的提供,并且在M,I,D状态计算块15a的输入处使用一个先验结果。然而,在图10中的架构简化之后,对于M,I,D状态计算块的输入处的每个时钟周期仅采用四个唯一转换概率和一个先验结果。因此,在各种实施例中,可以简化这些计算并生成结果值。因此,提高了生产量,效率,并降低了在该过程中形成瓶颈的可能性。
另外,如上所述,该先验结果是通过所研究的特定碱基的read质量(例如,Phred评分)产生的值,并且该碱基是否与所评估的当前单元的假设单倍型碱基匹配。可以通过下面的等式描述该关系:首先,所讨论的read的Phred可以表示为概率=10^(-(readPhred/10))。然后,可以基于read的碱基是否与假设单倍型碱基匹配来计算先验结果:如果read碱基和假设单倍型碱基匹配:先验结果=1-表达为概率的readPhred。否则:先验结果=(表示为概率的readPhred)/3。在最后一个等式中的三分法运算反映了只有四个可能的碱基(A,C,G,T)的事实。因此,如果read碱基和单倍型碱基不匹配,那么read碱基必须是确实匹配的三个剩余可能碱基中的一个,并且三种可能性中的每一种作为同样可能被建模。
每个read碱基的Phred分数作为6位值被传递到HMM硬件加速器8。因此,导出先验结果的方程式对于“匹配”情况具有64种可能的结果,并且对于“不匹配”情况具有另外64种可能的结果。这可以在硬件中作为128字查找表中高效地实施,其中,该查找表中的地址是通过将Phred值与指示是否的单个位连接而形成的7位数量,该单个位表明该read碱基与该假设单倍型碱基是否匹配。
此外,关于确定要匹配到插入(Match to Insert;M2I)转换概率和/或匹配到缺失(Match to Delete;M2D)转换概率,在用于HMM硬件加速器8的架构的各种实施例中,可以为匹配到插入状态转换和匹配到缺失状态转换指定单独的间隙开放惩罚(GOP)。这相当于图12中状态转换图中的M2I和M2D值不同。当GOP值作为6位的类似Phred值被传递到HMM硬件加速器8时,可以根据以下等式计算起始空位转换概率:M2I转换概率=10^(-(readGOP(I)/10))和M2D转换概率=10^-(readGOP(D)/10))。类似于硬件中的Priors推导,可以使用简单的64字查找表来导出M2I和M2D值。如果GOP(I)和GOP(D)作为可能不同的值输入到HMM硬件8,那么可以使用两个这样的查找表(或一个资源共享的查找表,可能的时钟频率是电路其余部分的两倍)。
此外,关于确定匹配到匹配(Match to Match;M2M)转换概率,在各种实施例中,匹配到匹配转换概率可以被计算为:M2M转换概率=1-(M2I转换概率+M2D转换概率)。如果M2I和M2D转换概率可以被配置为小于或等于1/2的值,则在各种实施例中,上述等式可以以硬件的方式实现,以便提高整体效率和吞吐量,例如通过重写该等式为:M2M转换概率=(0.5-M2I转换概率)+(0.5-M2D转换概率)。对等式的这种重写允许使用两个64元素查找表和随后的加法器来导出M2M,其中查找表存储结果。
此外,关于确定插入到插入(Inset to Inset;I2I)转换概率和/或缺失到缺失(Delete to Delete;D2D)转换概率,I2I转换概率和D2D转换概率是输入到HMM硬件加速器8的延续空位概率(GCP)值的函数。例如,这些GCP值可以是基于每个read碱基给出的6位Phred样值。然后,可以如上所述导出I2I和D2D值:I2I转换概率=10^(-(readGCP(I)/10)),以及D2D转换概率=10^(-(readGCP(D)/10))。与上面讨论的一些其他转换概率类似,I2I和D2D值可以在硬件中高效地实现,并且可以包括两个查找表(或一个资源共享查找表),例如具有相同的查找表。形式和内容作为前面讨论的匹配到插入缺失查找表。也就是说,每个查找表可以具有64个字。
另外,关于确定插入到匹配(Inset to Match;I2M)转换概率和/或缺失到匹配(Delete to Match;D2M)转换概率,I2M和D2M转换概率是延续空位概率(GCP)值的函数,并且可以被计算为:I2M转换概率=1-I2I转换概率和D2M转换概率=1-D2D转换概率,其中可以如上所述导出I2I和D2D转换概率。实现上述等式的简单减法运算在硬件资源上可能比简单地实现另一个64字查找表并使用它的两个副本来实现I2M和D2M推导更昂贵。在本实施例中,每个查找表可以具有64个字。当然,在所有相关实施例中,可以利用适当配置的硬件形成简单或复杂的减法运算。
图13提供了用于HMM转换概率和先验结果的简化计算的电路17a,如上所述,其支持图12的一般状态转换图。如图13所示,在各种实例中,展示了简单的HMM硬件加速器架构17a,该加速器可以被配置为包括用于插入转换和缺失转换的单独的GOP值,和/或可以存在用于插入转换和缺失转换的单独的GCP值。在本实施例中,产生七个唯一转换概率和一个每个时钟周期之前的成本可以如下配置:八个64字查找表,一个128字查找表和一个加法器。
此外,在各种实施例中,如本文所示,硬件2可以被配置为使得尽可能多的HMM引擎实例13适合于给定的芯片目标(例如在FPGA,sASIC或ASIC上)。在本实施例中,相对于以下配置提供的成本,实现转换概率和先验生成逻辑17a的成本可以显着降低。首先,而不是支持更一般的状态转换版本,如图13所示,其中,在可能存在GOP(I)和GOP(D)的单独值的情况下,可以假设对于给定的碱基,插入转换和缺失转换的GOP值相同。如上所述,这实现了硬件的若干简化。
在本实施例中,可以仅采用一个64字查找表以便生成单个M2Indel值,替换M2I和M2D转换概率值,而在更一般的情况下通常使用两个表。同样地,可以仅使用一个64字查找表来生成M2M转换概率值,而在一般情况下通常可以采用两个表和一个加法,因为现在可以将M2M计算为1-2×M2Indel。
其次,可以假设插入和缺失的依赖于定序器的GCP值是相同的并且该值在HMM作业20的过程中不改变。这意味着:可以使用一个64字查找表而不是两个表来计算单个插入缺失到插入缺失(Indel to Indel;Indel2Indel)转换概率而不是单独的I2I和D2D值;并且可以使用一个64字查找表而不是两个表来计算单个插入缺失到匹配(Indel2Match;I2M)转换概率而不是单独的I2M和D2M值。
另外,可以进行进一步简化的假设,其假设Inset2Insert(I2I)和Delete2Delete(D2D)以及Insert2Match(I2M)和Delete2Match(D2M)值不仅在插入和缺失转换之间相同,但对于特定HMM作业20可以是静态的。因此,可以完全消除在具有I2I,D2D,I2M和D2M转换概率的更一般的架构中相关联的四个查找表。在各种实施例中,静态Indel2Indel和Indel2Match(Indel to Match;Indel2Match)概率可以通过软件或寄存器转换级电路(Register Transfer Level;RTL)参数输入(因此在FPGA中可以进行比特流编程)。在某些情况下,这些值可以是比特流可编程的,并且在某些情况下,可以采用训练序列来实现训练模式,以便进一步改进给定序器运行或基因组分析的转换概率准确度。
图14阐述了当实现这些各种简化假设时新状态转换17b的图可能是什么样的。具体而言,图14阐述了简化的HMM状态转换图,其描述了GOP,GCP和转换概率之间的关系。
同样地,图15给出了用于HMM转换概率和先验结果生成的电路17a,17b,支持图14的简化状态转换图。如图15所示,提供了该状态转换图的电路实现。因此,在各种实施例中,对于HMM硬件加速器8,生成转换概率和每个时钟周期之前的成本减少到:两个64字查找表和一个128字查找表。
如上所述,引擎控制逻辑15被配置用于生成虚拟矩阵和/或遍历矩阵,以便通过高级引擎状态机到达条带的边缘,其中结果数据可以最后通过最终总和控制逻辑19进行求和,例如通过放/取(put/get)逻辑存储。
因此,参考图16,在各种实施例中,提供了用于产生和/或遍历HMM单元矩阵30的方法。具体而言,图16给出了HMM加速器控制逻辑15如何绕过HMM矩阵中的虚拟单元的示例。例如,假设为了示例目的,每个乘法和每个加法运算的5个时钟周期延迟,通过M,I,D状态更新计算的最坏情况延迟将是通过M更新计算传播所需的20个时钟周期。在I和D状态更新计算中有一半的操作,这意味着这些操作有10个时钟周期的延迟。
可以参考图16理解M,I和D计算操作的这些延迟含义,图16给出了单元到单元数据依赖性的各种示例。在本实施例中,给定单元的M和D状态信息馈送HMM矩阵中紧邻右侧的单元的D状态计算(例如,具有与给定单元相同的read碱基,但具有下一单倍型碱基)。同样地,给定单元的M和I状态信息馈送紧接在下面的HMM矩阵中的单元的I状态计算(例如,具有与给定单元相同的单倍型碱基,但具有下一个read碱基)。因此,在特定情况下,给定单元的M,I和D状态馈送至HMM单元矩阵的下一对角线中的单元的D和I状态计算。
类似地,给定单元的M,I和D状态馈送至右侧和下侧的单元的M状态计算(例如,具有下一个单倍型碱基和下一个read碱基)。这个单元实际上是远离馈送它的单元的两个对角线(而I状态和D状态计算依赖于远离一个对角线的单元的状态)。I状态和D状态计算的这种质量依赖于远离一个对角线的单元,而M状态计算依赖于两个对角线的单元,对硬件设计具有有益的结果。
具体地,给定的这些配置,I状态和D状态计算可以适于采用M状态计算(例如,20个周期)的一半(例如,10个周期)。因此,如果在相同单元的I和D状态计算之前10个周期开始M状态计算,则HMM矩阵30中的单元的M,I和D状态计算将全部同时完成。另外,如果矩阵30以对角线方式遍历,例如在其中具有大约10个单元的条带35(例如,持续10个read碱基),则:给定单元在(单倍型,read)(hap,rd)坐标(i,j)处产生的M和D状态可以由单元(i+1,j)D状态计算使用,只要它们一直通过在(i,j)处的单元的计算管道。
在(hap,rd)坐标(i,j)处的给定单元产生的M和I状态可以由单元(i,j+1)I状态计算在它们一直通过在(i,j)处的单元的计算管道之后的一个时钟周期使用。同样地,给定单元在(hap,rd)坐标(i,j)处产生的M,I和D状态可以在它们全部通过在(i,j)处的单元的计算管道之后的一个时钟周期由单元(i+1,j+1)M状态计算使用。总之,上述要点建立在沿着持续条带长度的条带路径的对角线的M,I和D状态需要非常少的专用存储,例如10个read。在本实施例中,只需要将单元(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计算开始之后存在十个周期的延迟。因此,硬件将九个“死”循环插入计算管道。这些显示为图16中具有小于零的单倍型指数的单元。
在完成在(-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计算开始之后存在十个周期的延迟。因此,硬件将8个死循环插入计算管道。这些显示为单倍型指数小于零的单元,如图16中沿着与单元(1,0)和单元(0,1)相同的对角线。在完成在(-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计算开始之后存在十个周期的延迟。因此,硬件将七个死循环插入计算管道。这些显示为单倍型指数小于零的单元,如图16中沿着与单元(1,1)和单元(0,2)相同的对角线。在完成在(-7,-9)的矩阵中具有有效单元位置的死循环之后,可获得单元(2,0)的M,I和D状态值。现在直接使用这些(例如,单元(2,0)的M和D状态输出来开始单元(3,0)的D状态计算。因此,对角线中另外十个单元的计算开始。
这种处理可以继续直到条带35a中的最后一个单元充满对角线的末端。在本实施中,其中,read长度35和单倍型长度14,这种处理将在(13,0)的(hap,rd)坐标处的单元开始的对角线完成之后发生。在遍历图16中的单元(4,9)之后,下一个要遍历的单元应该是单元(13,1)。但是,在单元格(12,1)的结果可用之前,在I和D计算开始之后存在十个周期的延迟。
因此,硬件可以被配置为开始与下一个条带35b中的第一单元相关联的操作,例如在坐标(0,10)处。在处理单元(0,10)之后,可以遍历单元(13,1)。然后遍历以细胞(13,1)开始的单元的整个对角线,直到达到单元(5,9)。同样,在遍历单元格(5,9)之后,下一个要遍历的单元格应该是单元格(13,2)。但是,如前所述,在单元格(12,2)的结果可用之前,在I和D计算开始之后可能存在十个周期的延迟。因此,硬件可以被配置为开始与下一个条带35b的第二对角线中的第一单元相关联的操作,例如在坐标(1,10)处,接着是单元(0,11)。
在处理单元(0,11)之后,可以根据上文公开的方法遍历单元(13,2)。然后,遍历以单元(13,2)开始的单元的整个对角线35,直到达到单元(6,9)。另外,在遍历单元(6,9)之后,要遍历的下一个单元应该是单元(13,3)。然而,这里再次在I和D计算开始之后可能存在十个周期的等待时间段,然后来自单元(12,3)的结果将可用。因此,硬件可以被配置为开始与下一个条带35c的第三对角线中的第一单元相关联的操作,例如在坐标(2,10)处,接着是单元(1,11)和(0,12)等等。
如上所述,继续如上所述,直到遍历第一条带35a中的最后一个单元((hap,rd)坐标(13,9)处的单元,此时逻辑可以是完全专用的。从第(9,10)处的单元开始,穿过第二条带35b中的对角线。上面概述的模式根据需要重复多次10次read,直到达到底部条带35c(本实施例中,那些单元为与具有索引30或更大的read碱基相关联的单元)。
如图16所示,在底部条带35中,可以插入更多的死单元,例如read指数大于35且单倍型指数大于13的单元。此外,在最终条带35c中,另外一排单元可以有效地添加。这些单元在图16中的第35行表示,并且涉及最终总和运算正在发生的最终条带的每个对角线的专用时钟周期。在这些循环中,紧接在上面的单元的M和I状态被加在一起,并且该结果本身与运行的最终总和(该最终总和即为在HMM矩阵30的左边缘处被初始化为零)相加。
参照以上描述,如图16所示,对于read长度35且单倍型长度14的示例,存在102个死循环,与最终总和运算相关联的14个循环,以及20个循环的管道延迟,总共102+14+20=146个周期的开销。还可以看出,对于具有大于10的read长度的任何HMM作业20,图16左上角的死循环与read长度无关。还可以看出,图16的底部和右下部分的死循环取决于read长度,具有mod(read长度,10)=9的read的最少死循环和具有mod(read长度,10)=0的read的最多死循环,其中,mod为取模。可以进一步看出,随着单倍型长度的增加(更大的矩阵,部分固定次数的开销循环)或随着read长度的增加,作为HMM矩阵30评估循环的总百分比的开销循环变得更小(注意:这指的是与矩阵中的最后一行相关联的开销百分比随着read长度-行-计数的增加而减少)。使用来自代表性全人类基因组运行的这种直方图数据,已经确定以上述方式遍历HMM矩阵导致整个基因组处理的开销小于10%。
可以采用其他方法来减少开销循环的数量,包括:具有用于最终总和运算的专用逻辑,而不是与M和D状态计算逻辑共享加法器。这消除了HMM矩阵30的一行。使用死循环开始HMM矩阵运算以用于在队列中的下一个HMM作业。
十行HMM矩阵30的每个分组构成HMM加速器函数中的“条带”35。值得注意的是,可以增加或减少条带的长度,以便满足系统的效率和/或吞吐量要求。因此,样本长度可以是大约五行(或更少)至大约五十行(或更多),例如大约十行至大约四十五行,例如,大约十五行(或大约二十行)至大约四十行(或大约三十五行),包括长度约为25行至约30行的单元。
除上述部分中提到的例外情况,涉及的收获循环是图16中的矩阵右边缘的死循环,HMM矩阵可以一次处理一个条带。如图16所示,每个条带35a的底行中的单元的状态馈送到下一个条带35b的顶行中的状态计算逻辑。因此,可能需要存储(放置)和检索(获取)每个条带的底行或边缘中的那些单元的状态信息。
执行此运算的逻辑可以包括以下中的一个或多个:当HMM矩阵30中的单元的M,I和D状态计算针对具有mod(read索引,10)=9的单元完成时,将结果保存到M,I,D状态存储器中。当M和I状态计算(例如,其中D状态计算不需要来自该矩阵中它们之上的单元的信息)对于HMM矩阵30中的单元开始具有mod(read索引,10)=0的单元,检索先前从M,I,D状态存储器中的适当位置保存了M,I和D状态信息。注意在这些实例中,在HMM矩阵30中馈送行0(顶行)M和I状态计算的M,I和D状态值仅是预定的常数值,并且不需要从存储器中调用,因为对于提供第0列(左列)D状态计算的M和D状态值为真(true)。
如上所述,HMM加速器可以包括或可以不包括HMM硬件加速器中的专用总和资源,使得其仅仅出于最终总和运算的目的而存在。然而,在特定情况下,如本文所述,可以将附加行添加到HMM矩阵30的底部,并且与该额外行相关联的时钟周期可以用于最终总和运算。例如,该总数本身可以通过借用(例如,根据图13)来自M状态计算逻辑的加法器来进行M+I运算,并且进一步通过从D状态计算逻辑借用加法器以添加新形成的M+I总和至运行的最终总和累计值来实现。在本实施中,每当引导HMM遍历运算的read索引等于输入的作业read序列的长度时,激活最终总和运算的控制逻辑可以启动。可以在朝向图16的样本HMM矩阵30的底部的34行处看到这些运算。
因此,如上所述,在一个实施例中,变异检测器可以利用映射器和/或比对器引擎来确定各种read源自何处的可能性,例如关于给定位置,例如染色体位置。在本实施例中,变异检测器可以被配置为检测该位置处的检测序列,例如独立于不紧邻其的其他区域。这是特别有用的,并且当感兴趣的区域在单个read的跨度(或配对末端测序的一对read)上不与基因组的任何其他区域相似时,效果良好。然而,人类基因组的很大一部分不符合该标准,其可以进行变异检测,例如,从NGS产生的read重建受试者基因组的过程具有挑战性。
具体地,虽然DNA测序已经显着改善,但变异检测仍然是一个难题,主要是由于基因组的冗余结构。然而,如本文所公开的,可以至少部分地从由短read数据驱动的视角来克服由基因组冗余提供的复杂性。更具体地,可以以这样的方式配置采用本文所公开的装置,系统和方法,以便集中于可能以低变异检测精度为特征的同源或类似区域。在某些情况下,这种低变异检测准确度可能源于在read映射中观察到的困难以及关于同源区域的比对,其通常可能导致非常低的read映射质量指标(mapping quality;MAPQ)。因此,本文提供的是在同源区域中精确检测变异(SNP,Indel等)的策略性实施方案,例如通过联合考虑这些同源区域中存在的信息。
例如,基因组的许多区域是同源的,例如,它们具有位于基因组中其他位置的近似相同的拷贝,例如,在多个位置,因此read的真实来源位置可能相当不确定。具体地,如果以低置信度映射一组read,例如,由于明显的同源性,典型的变异检测器可以忽略并且不处理read,即使它们可能包含有用信息。在其他情况下,如果read被错误映射(例如,主比对不是read的真来实源),则可能导致检测错误。更具体地,先前实施的短read序列技术易受这些问题的影响,并且常规检测方法通常在黑暗中留下基因组的大区域。
在一些情况下,可以采用长read测序来缓解这些问题,但是它通常具有更高的成本和/或更高的错误率,花费更长的时间和/或遭受其他缺点。因此,在各种实施例中,执行如本文所述的多区域联合检测操作可能是有益的。例如,不是单独考虑每个区域和/或代替执行和分析长read测序,而是可以采用多区域联合检测(multi-region joint detection;MRJD)方法,例如MRJD协议考虑多个位置(例如,所有位置)的方法。一组read可能起源于多个位置,并且尝试使用所有可用信息一起(例如,联合)检测碱基序列,这可能与低或异常的置信度和/或确定性分数无关。
例如,对于具有统计上均匀覆盖的二倍体生物,如上所述的蛮力贝叶斯计算(brute force Bayesian calculation)可以在变异检测分析中执行。然而,在蛮力MLRD计算中,计算的复杂性快速增长。考虑到区域N的数量和要考虑的候选单倍型K的数量。具体地,为了考虑候选单倍型的所有组合,用于计算概率的候选单倍型的数量通常可以是指数的。例如,如下面更详细描述的,在蛮力实施例中,候选单倍型的数量包括活跃位置的数量,如果使用图形组装技术来生成变异检测运算中的候选单倍型列表,例如,在如本文所公开的De Brujin图的构建中,活动位置的数量是图中独立“气泡”的数量。因此,这种蛮力计算实施起来可能过于昂贵,并且因此这种蛮力贝叶斯计算可能过于复杂。
因此,在一个方面,如图17A所示,提供了一种降低这种蛮力计算的复杂性的方法。例如,如上所述,尽管DNA/RNA测序的速度和准确性已显着提高,尤其是对于本文公开的方法,变异检测,例如,从测序仪产生的read重建受试者基因组的过程,仍然存在一个难题,主要是由于基因组的冗余结构。因此,本文公开的装置,系统和方法被配置成从长read数据驱动的视角减少基因组冗余所提供的复杂性,与长read测序相反。具体地,本文提供了用于进行非常长的read检测的方法,其解释了基因组的同源和/或相似区域,其通常以低变异检测准确度为特征,而不必执行长read测序。
例如,在一个实施例中,提供了一种用于执行多区域联合检测的系统和方法。具体地,在第一种情况下,可以执行一般变异检测运算,例如采用本文公开的方法。具体地,一般变异检测器可以使用参考基因组序列,该参考基因组提供模型基因组中的所有碱基。该参考基因组形成分析的主干,通过该分析将受试者的基因组与参考基因组进行比较。例如,如上所述,使用NextGen测序仪,受试者的基因组可以被分解成子序列,例如,read通常每个约100~1,000个碱基,这些read可以被映射并与参考基因组比对,就像拼图一样。
一旦受试者的基因组已经被映射和/或比对,使用该参考基因组与受试者的实际基因组进行比较,例如,在逐个碱基比对的基础上可以确定受试者的基因组在何种程度上以及如何与参考基因组不同。具体地,在将受试者的基因组与一个或多个参考基因组进行比较时,例如在逐个碱基比对的基础上,分析沿着序列迭代地移动,比较一个和另一个的序列,以确定它们是否一致或不一致。因此,序列中的每个碱基表示要检测的位置,例如图18中的位置A所示。
具体地,对于要相对于受试者的基因组被检测的参考的每个位置A,将以这样的方式映射和排列序列的堆积,例如read,使得大的样本read集可以全部在任何给定位置A处彼此重叠。具体地,该过采样可包括多个read,例如,从一个到一百个(或更多个),其中堆积中的每个read具有与被检测的区域重叠的核苷酸。因此,从碱基到碱基检测这些read涉及形成处理窗口,该处理窗口沿着进行检测的序列滑动,其中窗口的长度(例如,在任何给定时间检查的碱基数)形成活动确定的区域。因此,窗口表示被检测样本中碱基的活跃区域,其中检测涉及比较在活跃区域内堆积的所有read中给定位置(例如A)处的每个碱基,其中,在该位置的碱基的身份在read的堆积数量上提供了被检测该位置的碱基的真实身份的证据。
为此目的,基于针对每个read片段导出的相关MAPQ置信度得分,通常可以在某个置信度得分内确定准确地执行映射和比对。然而,无论多么微小,关于read的映射和比对是否准确,如果一个或多个read确实属于其他地方,问题仍然存在。因此,在一个方面,本文提供了用于提高执行变异检测的置信度的设备和方法。
具体地,在各种实施例中,变异检测器可以被配置为执行如本文所述的一个或多个多区域联合检测操作,其可以用于给予可实现结果更大的置信度。例如,在本实施例中,变异检测器可以被配置为分析基因组中的各个区域,以便确定看起来相似的特定区域。例如,如图18A所示,可以存在参考区域A(Ref A)和参考区域B(Ref B),其中参考序列彼此非常相似,但是具有不同碱基对匹配的几个区域,例如其中示例Ref A具有“A”,和示例RefB有一个“T”,但在这些少数异化之外,所讨论的区域内的其他地方可能看似匹配。鉴于相似程度,这两个区域Ref A和Ref B通常被认为是同源的或旁系同源的区域。
如图所示,两个参考区域A和B具有99%的相似性。可能存在其他区域,例如参考区域C(Ref C)和参考区域D(Ref D),它们相对相似,例如约93%相似,但与参考区域A和B之间的99%相似性相比,参考区域C和D将不被考虑同源的,或者至少有一个实际上是同源的机会。在本实施例中,变异检测程序可能能够充分地检测出参考区域C和D之间的差异,但在某些情况下,可能难以检测出参考区域A和B的高度同源区域之间的差异,例如,因为它们的高度同源性。特别是,由于参考序列A和B与参考序列C和D之间的不相似程度,不能期望映射和比对参考序列A或B的read将错误地映射到参考序列C或D。然而,可能会预期映射并与参考序列A比对的read可能会错误映射到参考序列B。
考虑到同源性的程度,区域A和B之间的错误映射是非常可能的。因此,为了提高准确度,可能希望系统能够区分和/或解释同源区域之间的差异,例如当执行映射,比对和/或变异检测过程时。具体而言,当生成堆积的read堆积并比对到参考区域A中的区域,并生成堆积的read堆积并比对到参考区域B内的区域时,任何read实际上可能被错误映射到在执行本文公开的变异检测运算时,为了实现更好的准确性,这些同源区域以及映射和比对的read应该被一起考虑,例如在联合检测协议中,例如,如本文所述的多区域联合检测协议。
因此,本文提供的是设备,系统及其使用方法,其涉及多区域联合检测(MRJD)。其中,来自多个区域的多个(例如全部)read。各种识别的同源区域的各种堆叠被一起考虑,例如,不是对每个位置进行单个检测,而是对看起来是同源的所有位置进行联合检测。进行这样的联合检测是有利的,因为在尝试单独检测每个引用之前,首先必须确定哪个区域,哪个参考,所讨论的各种read的实际映射和比对,本质上是不确定的,以及拟议的联合检测正在解决的问题。因此,因为两个参考的区域非常相似,所以很难确定哪些read映射到哪些区域。然而,如果联合检测这些区域,则没有必要预先确定哪个同源read映射到哪个参考区域。因此,当进行联合检测时,可以假设在一个参考上的区域(例如参考区域A)的堆积中的任何read,与第二参考上的另一个区域(例如参考区域B)同源,可以属于任一参考区域A或参考区域B。
因此,在需要时,除了在本文的设备,系统和方法中实现的变异检测算法之外,还可以实现MRJD协议。例如,在一次迭代中,变异检测算法获取样本和参考基因组中给定区域的映射和/或比对read中呈现的证据,分析样本基因组中似乎存在的可能性。基于与参考基因组的比较,并给出关于样本如何实际上与参考基因组不同的证据的决定。其中,鉴于该证据,变异检测器算法确定read和参考基因组之间的不同的最可能的答案。然而,MRJD是可以与VC(Microsoft Visual C++;VC)算法一起实现的另一算法,其中MRJD被配置为帮助变异检测器更准确地确定观察到的差异(例如,在受试者的read中)是否实际上是真实偏离参考基因组。
因此,MJRD分析中的第一步涉及基于一个或多个参考基因组的多个区域(例如参考区域A和参考区域B)中的序列之间的对应性的百分比来鉴定同源区域,以及受试者的一个或多个区域中的堆积序列。特别是,参考区域A和参考区域B实际上可以是相同遗传物质的二倍体形式,例如染色体的给定区域有两个拷贝。因此,在分析二倍体参考的情况下,在不同的位置中,参考区域A可以具有一个特定的核苷酸,并且在相同位置处,参考区域B可以具有另一种核苷酸。在本实施例中,参考区域A和参考区域B是纯合的,在位置A为“A”。但是,如图18所示,受试者的DNA在该位置A是杂合的,其中相对于参考区域A的堆积的read,受试者染色体的一个等位基因具有“A”,但是另一个等位基因具有“C”,但是相对于参考区域B,受试者染色体的另一个拷贝对于位置A处的两个等位基因具有“A”。这也变得更复杂,其中被分析的样品包含突变,例如,在那些天然存在的可变位置之一,例如位置A的杂合SNP(未显示)。
如图18B中的参考区域A,在位置A处,受试者的样品可以包括表示在位置A处存在杂合性的read,例如其中一些read在该位置A包括“C”,并且一些read在该位置处表示“A”(例如,单倍型a1(H a1)=“A”,H a2=“C”);而对于参考区域B,位置A处的read表示纯合性,例如堆积中的所有read在该位置具有“A”(例如,Hb1=“A”,H b2=“A”)。然而,MRJD通过分析被映射到参考的两个区域的所有read同时进行联合检测来克服这些困难,同时考虑任何一个read可能位于错误位置的可能性。在识别出各种同源区域之后,下一步是确定同源参照区域之间的对应关系,然后,对于MRJD,映射器和/或比对器确定各种适用的read“应该映射”的位置。可以丢弃两个同源区域之间的相互作用,相反,可以将这些同源区域中的任何堆积中的所有read一起集中考虑,知道这些read中的任何一个可以属于被比较的任何同源区域。因此,如下面详细阐述的,用于确定这些联合调用的计算考虑了这些read中的任何一个来自任何同源参照区的可能性,并且在适用的情况下来自任一参考区的任一单倍型。
值得注意的是,尽管前述是参考区域内的多个同源区域,但是同样的分析也可以应用于单个区域检测。例如,如图18B所示,即使对于单个区域,对于任何给定区域,可能存在两个单独的单倍型,例如H1和H2,受试者遗传样品可能具有特定区域,并且因为它们是单倍型,它们可能是非常相似。因此,如果这些位置是相互分离的,则可能很难确定是否存在真正的变化。因此,针对同源区域进行的计算也可用于非同源区域,因为任何特定区域可能是二倍体,例如,具有第一单倍型(H1)和第二单倍型(H2),因此共同分析这些区域以提高系统的准确性。同样地,对于双参考区域,其中,如上所述的被检测的同源区域是第一区域的HA1和H A2以及第二区域的H A1和H A2(每个区域是等同的两条链,通常每条链的染色体和两个区域=4个二倍体型)。
因此,可以采用MRJD来确定关于一个或多个(例如,所有)同源区域的初始答案,然后可以将单个区域检测应用于一个或多个,例如全部,单个或非同源区域,其中,采用相同的碱基分析,因此可以实现更好的精确度。因此,还可以执行单区域非联合检测。例如,针对候选单倍型H A1的单个区域检测,在当前迭代中,参考区域可以是大约300-500个碱基对长,并且,如图18C所示,在该参考序列之上构建图形(例如De Bruijn图),例如来自该read的K-mers,其中任何与该参考序列不同的位置在图中形成发散途径或“泡沫”,从中提取单倍型,其中每个提取的单倍型,例如,发散途径,对于在检查的活跃区域的特定位置处的染色体的两条链中的一条上可能存在的可能性形成潜在的假设。
然而,如果存在许多发散途径,例如,图形形成了大量气泡,如图18C所示,并且提取大量单倍型,然后可以引入最大截止值以保持计算可管理。截止值可以是任何统计上显着的数字,例如35,50,100,125-128,150,175,200或更多等。然而,在某些情况下,基本上更大数量(例如全部)可以考虑单倍型。
在本实施例中,不是从头到尾(例如,从测序开始到测序结束)提取完整的来源以吸收单倍型,而是仅需要提取与各个气泡相相关的序列,其中,仅需要将该气泡与该参考序列比对。因此,从DBG提取该气泡,该序列与该参考序列比对,并且从这些比对可以确定特定SNP,插入,缺失等,关于为什么各种气泡的序列不同于参考序列。因此,在这方面,用于分析的所有不同的假设单倍型可以通过混合和匹配与不同组合中的所有各种气泡有关的序列而得到。这种方式不需要列举要提取的所有单倍型。这些用于执行多区域联合检测的方法在下文中更详细地描述。
此外,抽象地,即使可以测试所有这些候选单倍型,也可以执行树算法的生长,其中,正在生成的图形开始看起来像正在生长的树。例如,联合单倍型/双倍型的分支树图可以以这样的方式构建:随着树的生长,碱基算法在进行越来越多的计算的同时起到生长和修剪树的作用,并且明显地,各种不同的候选假设都太不可能了。因此,随着树的生长和修剪,并非所有假设的单倍型都需要计算。
具体地,关于树函数的生长,当两个参考序列之间或参考序列与read之间存在不一致时,关于在解析的给定位置处存在什么碱基,必须确定哪个碱基实际上属于哪个位置,并且鉴于这种不一致,必须确定哪些差异可能由SNP,Indel等引起,哪些是由机器错误引起。因此,当树生长时,例如,从De Bruijn图中提取气泡,例如通过SW或NW比对,并将它们映射在出现的树图中,每个要提取的气泡成为树图中的事件,这表示可能SNP,Indel和/或与参考序列的其他差异。参阅图18C。
具体地,在DBG中,气泡代表来自参考序列的错配,例如,代表Indels(已经添加或缺失了哪些碱基),SNP(哪些碱基不同)等。因此,气泡与参考序列比对,两者之间的各种差异被分类为事件,并且生成各种事件(例如,气泡)的列表。因此,确定变为:可能事件的什么组合,例如,可能的SNP和Indel导致了受试者基因序列的实际变异,例如,基于概率的每个实际各种单倍型(例如4个单倍型)中的真实性。更具体地,形成根G0(代表给定片段的事件)的任何一个候选者(例如,联合双倍型候选物)可能具有4个单倍型,并且四个单倍型中的每一个将形成事件的识别子集。
然而,如图18D所示,当执行树函数的生长和/或修剪时,可以但不必一次确定所有事件组合的整个子集的完整列表。相反,确定在单个位置G0开始,例如,一个事件,并且树从那里一次生长一个事件,其通过修剪函数可以留下未解决的各种低概率事件。因此,关于树函数的生长,如图18D所示,计算开始于确定单倍型,例如HA1,H A2,H B1,H B2(对于二倍体生物)。其中,初始单倍型被认为都是关于单倍型各自的参考序列(例如参考序列A和参考序列B)未解决的,基本上没有任何事件存在。
因此,初始起始点是树的根G0,并且联合双倍型具有未解决的所有事件。然后选择特定事件(例如,初始气泡)作为确定的原点,由此针对所有单倍型解析初始事件,其中该初始事件可以是来自该参考的第一分散点,例如关于在位置一可能存在SNP或Indel。如图18E中所示,在位置一处,存在事件或气泡,例如SNP,其中“C”已被替换为“A”,使得该参考在位置1处具有“A”,但是read内容有一个“C”。在本实施例中,由于堆积中的这个位置有4个单倍型,并且每个单倍型可以具有“A”,例如在该参考或者事件“C”中,可能有24=16种可能性来解决该位置。因此,计算立即从根移动到16个分支,表示在位置一的事件的潜在分辨率。
因此,如图18D所示,可以阐述所有四种单倍型的所有潜在序列,例如HA1,H A2,HB1,H B2,其中在位置一存在“A”,如根据该参考或事件“C”,表示存在SNP,针对一事件,该事件“C”通过检查该图形中的各种气泡路径来确定。因此,对于每个分支或子节点,每个分支可以基于根据该参考或从该参考偏离的位置一处的碱基的可能性而不同,而其余事件仍然未解决。然后将针对每个分支节点以及变化气泡内的每个碱基重复该过程,以便解析所有单倍型的所有事件。因此,可以重新计算概率以观察给定各种潜在单倍型的任何特定read。
具体地,对于每个节点,可以存在四种单倍型,并且可以将每种单倍型与堆积中的每个read进行比较。例如,在一个实施例中,该SW,NW和/或HMM引擎分析每个节点并考虑每个节点的四个单倍型中的每一个。因此,生成的每个节点激活SW和/或HMM引擎以通过考虑该节点的所有单倍型(例如4个单倍型)来分析该节点,以比较每个read,其中SW和/或HMM引擎考虑一个单倍型对于每个单倍型的一个read和所有可行节点的每个read。
因此,如果出于该实施例的示例性目的,存在对于一个单倍型的一个区域存在杂合SNP“C”的情况。例如,一个染色体的一条链具有“C”,但是对于其他链的全部其他碱基在这个位置不具有“C”,例如,它们都与该参考“A”匹配,那么预计堆积中的所有read都支持这一发现,例如,对于真正的节点,在位置一处具有大部分“A”,并且在位置一处少数read具有“C”(例如,大约1/4)。因此,如果以后有任何可观察的read在不同的节点,在位置一显示多个“Cs”,那么该节点将不太可能是真节点。其中,该节点将具有低概率,因为在该堆积中的这个位置上没有足够的read具有Cs以使它们可能发生。具体而言,更有可能的是,在所述read中该位置存在“C”是测序或其他科学错误的证据,而不是真正的单倍型候选物。因此,如果某些节点最终具有较小的概率,则与真实节点相比,这是因为它们不被大多数read(例如,在堆积中)支持,因此这些节点可能被修剪掉,从而丢弃低概率的节点,但以保留真节点的方式。
因此,一旦确定了事件一个位置,就可以确定下一个事件位置,然后可以针对尚未被修剪的任何幸存节点针对该新位置重复这里描述的过程。具体地,可以从现有的可用节点中选择事件二,并且该事件可以作为G1根用于确定在位置二处的碱基的可能身份,例如通过再次定义新单倍型(例如4个单倍型)以及作为该新单倍型的各种分支,例如16个分支,解释了关于位置二的可能变化。因此,通过重复该相同过程,现在可以解决事件二。因此,如图18D所示,一旦确定了位置一,就可以选择位置二的新节点,并且可以考虑其16个潜在的单倍型候选。在本实施例中,可以确定HA1,H A2,H B1,H B2中的每一个的候选物,但是在本实施例中,由于位置1已经被解析,关于确定位置一处的每个单倍型的核苷酸识别,对于位置二处的每个单倍型,现在将解析位置二。如图18D所示,示出了位置二的分辨率。
一旦完成该过程。一旦已经处理并解决了所有事件,例如,包括所有子节点和未被修剪的子节点的子节点,则树的未被修剪的节点可以被检查,并且可以基于概率分数确定哪个树表示联合双倍型,例如哪个序列具有最高的真实概率。因此,以这种方式,由于修剪函数,不需要构建整个树,例如,随着分析的继续,大部分树将最终被修剪,因此总计的计算量大大超过非修剪函数,虽然远远超过执行非联合双倍型检测,例如单区域检测。因此,本分析模块能够以高精度确定和解析两个或更多个高同源性的区域,例如,采用联合双倍型分析,其中传统方法根本不能够完全解析这些区域,例如,因为假阳性和犹豫不决。
具体地,各种变异检测器的实施可以被配置为简单地不对高同源性的区域执行分析。本迭代克服了本领域中的这些和其他此类问题。更具体地,本发明的装置,系统和它们的使用方法可以配置成考虑更大比例,例如所有单倍型,尽管出现高同源性区域。当然,通过不执行某些计算,可以进一步增加这些计算的速度,其中可以确定这种计算的结果具有低的真实概率,例如通过实施如本文所述的修剪函数。
这些配置(例如,联合双倍型分辨率和修剪)的益处是:在一个连续的活跃区域中,现在可以将活跃区域窗口的大小(例如,被分析的碱基)的大小从大约几百个被处理的碱基增加到可以一起处理数千,甚至数十或数十万个碱基。活跃分析窗口大小的这种增加允许在确定任何给定位置处的任何特定核苷酸的身份时考虑更多证据,从而允许更大的环境可以更准确地确定核苷酸的身份。同样地,当比较覆盖一个或多个具有与该参考区域的一个或多个偏差的区域的一个或多个read时,更大的环境允许支持证据更好地链接在一起。因此,以这种方式,一个事件可以连接到另一个事件,该事件本身可以连接到另一个事件等,并且从这些连接可以进行关于当前正在考虑的给定特定事件的更准确的检测,从而允许来自更远的例如数百到数千个碱基或更远的证据在提供当前变异检测时提供信息(尽管任何给定的read通常仅长达数百个碱基),从而进一步在此处进行处理更准确。
具体地,以这样的方式,可以进一步使活跃区域包括数千,数万,甚至数十万个碱基或更多碱基,因此通过提取所有单倍型以形成De Bruijn图的方法可以避免,因为只有有限数量的单倍型需要探索那些可能幸存的气泡,并且即使是那些可行的,一旦它变得清晰,它们就不再可行,它们可能会被修剪,对于那些仍然可行的,可以使用链接来提高最终变异检测的准确性。这一切都可以通过量子和/或硬件计算实现。这一切也可以由CPU或GPU在软件中执行,但速度会慢一些。
值得注意的是,关于上述实施例,鉴于De Bruijn图产生的这些单倍型理论,输入数据(例如,read)的概率将被确定。然而,采用贝叶斯定理也是有用的,例如用于确定给定联合双倍型的read的概率,直到从联合双倍型理论确定的相反概率,给出read和所评估的证据的最佳拟合。因此,如图18C所示,在生成的De Bruijn图中,一旦发生多区域联合检测和/或修剪,将产生一组潜在的单倍型,然后将针对受试者的实际read测试这些单倍型。具体地,每个水平横截面代表单倍型,例如B1,然后可以对该单倍型进行另一个HMM协议,以便针对read进行测试,以确定给定单倍型B1的特定read的概率。
然而,在某些情况下,单倍型(例如B1)可能尚未完全确定,但是HMM可能仍然可用于执行。在本实施例中,修改的HMM计算,例如,下面讨论的部分确定(partiallydetermined;PD)-HMM运算,可以在单倍型被允许具有未确定的变异(例如,SNP和/或插入缺失)的情况下执行。在其中尚未确定,因此该计算类似于在未解决的位置给出任何变异组合的情况下计算可实现答案的最佳可能概率。因此,这进一步促进了树函数的迭代生长,其中树的实际生长(例如,执行PD-HMM操作)不必仅限于那些已知所有可能变异的计算。因此,以这种方式,可以以迭代方式执行许多PD-HMM计算以生长节点树,尽管事实上在特定候选单倍型中仍然存在未知可能事件的未确定区域,并且其中可以修剪树,PD-HMM资源可以流动地从计算修剪的节点移位,以便仅处理具有成功表征真实基因型的最大概率的那些可能性。
因此,当确定特定碱基实际存在于任何一个位置的概率时,可以基于每个染色体的每个区域上的该位置处的身份来确定该位置处的碱基的身份。其中每个单倍型代表了一个可行的候选物。因此,对于任何候选物,确定的是同时在四种单倍型中的每一种中所讨论的位置处的给定碱基的身份。具体地,确定的是在给定确定的可能性的情况下观察每个堆积的read的概率。具体地,每个候选物代表联合单倍型,因此每个候选物包括大约四个单倍型,其可以在下面的等式中阐述为G=基因型,其中G=基因组染色体的单个二倍体区域的四个单倍型(例如,联合双倍型)。在本实施例中,要计算的是实际观察堆积中序列的每个识别的候选read碱基的概率,假设它们实际上是真实的。该初始确定可以通过HMM单倍型计算来执行,如上文所述。
例如,对于候选“联合二倍体型”=4单倍型:(区域A:HA1H A2和区域B:HB1H B2)=G→P(R/G)由
因此,如果假设特定单倍型Ha1是该区域中的真实序列,并且该read来自该区域,那么实际观察到该read序列Ha1的几率是多少。因此,HMM计算器用于确定,假设Ha1单倍型是真实的,实际观察所讨论的给定read序列的可能性是多少。
具体地,如果read实际上与单倍型匹配,那么这当然是非常高的概率。然而,如果所讨论的特定read与单倍型不匹配,那么来自那里的任何偏差应该可以通过科学错误解释,例如测序或测序机器错误,而不是实际变异。因此,HMM计算是误差模型的函数。具体而言,HMM计算询问必须发生的必要错误组合的概率是多少,以便观察正在分析的特定read。因此,在该模型中,不仅考虑一个区域,而且同时考虑多个链的多个区域的多个位置(例如,不是在一个区域最多可能考虑两个单倍型,现在考虑到同时使用来自所有相关区域的所有read数据,同时为任何给定区域的任何给定位置提供四种单倍型的可能性。这些过程,例如,修剪树,多区域联合检测,和现在将更详细地描述PD-HMM。
具体地,如图17和18所示,提供了高级处理链,例如处理链可以包括以下步骤中的一个或多个:识别和输入同源区域,执行输入同源区域的预处理,执行非常长的read(VLRD))或多区域联合检测(MJRD),S并输出变异检测文件。特别是关于识别同源区域,映射的,比对的和/或分类的SAM和/或BAM文件(例如CRAM)可以用作实现MRJD算法的多区域联合检测处理引擎的主输入,如本文所述。MJRD处理引擎可以是集成电路的一部分,诸如CPU和/或GPU和/或量子计算平台,运行软件(例如量子算法),或者在FPGA,ASIC等中实现。例如,上面公开的映射器和/或比对器可以用于生成CRAM文件,例如,具有为每个read输出N个二级比对以及主要比对的设置。然后可以使用这些初级和二级read来鉴定同源区列表,可以基于参考基因组的N个区域之间的用户定义的相似性阈值来计算同源区。然后,可以将所识别的同源区域列表馈送到适当配置的MRJD模块的预处理阶段。
因此,在预处理阶段,对于每组同源区域,可首先产生联合堆积,例如通过使用来自该组中的一个或多个(例如,每个)区域的主要比对。例如,如图19所示,使用该联合堆积,然后可以生成活动/候选变异位置(SNPS/INDEL)的列表,由此MRJD预处理引擎可以处理和评估这些候选变异中的每一个。为了降低计算复杂度,可以计算互连矩阵,该互连矩阵可以用于定义候选变异的处理顺序。
在本实施例中,多区域联合检测算法基于在所生成的互连矩阵中定义的处理顺序来评估每个识别的候选变异。首先,可以生成一个或多个候选联合双倍型(Gi)并给出候选变异。接下来,可以计算每个联合双倍型(P(Gi|R))的后验概率。根据这些后验概率,可以计算基因型矩阵。接下来,可以修剪具有最低后验概率的N个双倍型,以便降低计算的计算复杂度。然后,可以包括为正在评估的当前候选变异提供证据的下一个候选变异,并重复上述过程。已经包括来自一个或多个(例如所有)来自针对当前变异的同源区域集合中的一个或多个(例如所有)区域的候选变异的信息,可以从最终基因分型矩阵进行变异检测。因此,每个活动位置都可以以上述方式评估,从而产生最终的VCF文件。
具体地,如图17B所示,可以实施MJRD预处理步骤,例如包括以下步骤或块中的一个或多个:加载识别和组装的联合堆积,然后从组装的联合堆积创建候选变异列表,并且计算互连矩阵。具体地,在各种实施例中,可以执行预处理方法,例如在执行一个或多个变异检测操作之前,例如多read联合检测操作。这样的操作可以包括一个或多个预处理块,包括:与联合堆积的加载有关的步骤,从联合堆积生成变异候选的列表,以及计算互连矩阵。现在将更详细地讨论每个块和与其相关的潜在步骤。
具体地,第一联合堆积预处理块可以包括在分析过程中。例如,可以提取用于识别的跨度的各种参考区域,例如从映射和/或比对的read。具体地,使用同源区域列表,可以生成每组同源区域的联合堆积。接下来,可以使用用户定义的跨度来提取对应于集合内的N个同源区域的N个参考区域。随后,可以比对一个或多个(例如所有)参考区域,例如通过使用Smith-Waterman比对,其可以用于生成N个参考区域中所有碱基的通用坐标系。此外,然后可以从输入SAM或BAM文件中提取对应于每个区域的所有主要read,并将其映射到通用坐标。如本文所述,可以完成该映射,例如通过使用CRAM文件中存在的每个read的比对信息(CIGAR)。在先前没有映射一些read对的情况下,可以将read映射和/或比对(例如,Smith-Waterman比对)到其相应的参考区域。
更具体地,一旦产生并加载了联合堆积,如图19所示,可以从该联合堆积创建候选变异列表。例如,可以产生De Bruijn图(DBG)或其他组装图,以便提取可以从联合堆积中识别的各种候选变异(SNP/Indel)。一旦产生DBG,就可以采集图中的各种气泡,以便得到变异候选物列表。
具体地,给定所有read,可以使用每个参考区域作为主干来生成图形。然后可以将所有识别的候选变异位置与通用坐标比对。然后,可以计算互连矩阵,其中该互连矩阵定义活动位置的处理顺序,其可以是read长度和/或插入尺寸的函数。图19显示染色体1中两个同源区域的联合堆积的实例。虽然这堆积是参考染色体1的两个同源区域,但这仅用于示例性目的,因为堆积过程的产生可以用于任何和所有同源区域而不管染色体。
如图20所示,创建候选变异列表可以如下步骤。首先,可以形成联合堆积,并且可以根据本文公开的方法构建De Bruijn图(DBG)或其他组装图。然后,DBG可用于从联合堆积中提取候选变异。该DBG的构建以产生气泡的这种方式进行,该气泡用于指示变化及通过该图形表示候选路径,其中,每个候选路径是候选单倍型,如图20和图21所示。
因此,图中的各种气泡代表候选变异单倍型位置的列表。因此,给定所有read,可以使用每个参考区域作为主干来生成DBG。然后,所有候选变异位置可以与通用坐标比对。具体而言,图20展示了生成DBG并使用其生成候选单倍型的过程的流程图。更具体地,可以采用De Bruijn图以便创建SNP和INDEL的候选变异列表。鉴于MRJD正在联合处理N个区域,可以构建N de-bruijn图。在本实施例中,每个图可以使用一个参考区域作为主干,并且所有read对应于N个区域。
例如,在一实施例中,在构建DBG之后,可以基于候选事件从De Bruijn图中提取候选单倍型。然而,当采用MRJD预处理方案时,如本文所述,可以联合处理N个区域,例如区域的长度可以是几千个碱基或更多,并且待提取的单倍型的数量可以以指数方式快速地增长。因此,为了降低计算复杂性,不是提取整个单倍型,而是仅需要从代表候选变异的图形中提取气泡。
图21展示了在De Bruijn图中形成的气泡结构的一个例子。确定了一些联合处理的区域数量。这确定了可以遵循的两个处理路径之一。如果识别出联合区域,则可以使用所有read来形成DBG。可以提取显示可能变异的气泡,以便鉴定各种候选单倍型。具体地,对于每个气泡,可以在该参考主干的候选路径上执行SW比对。由此,可以提取候选变异并且可以存储来自每个图的事件。
然而,在其他情况下,一旦执行了第一过程,以便生成一个或多个DBG,和/或i现在等于0,然后,可以生成来自所有DBG的所有候选事件的并集,其中,可以缺失任何重复项。在本实施例中,可以将所有候选变异映射到通用坐标系,以便产生候选列表,并且可以将候选变异列表作为输入发送到修剪模块,例如MJRD模块。图22展示了仅进行气泡提取而不是提取整个单倍型。在本实施例中,只有气泡区域显示了如本文所述的提取和处理的可能变异。
具体地,一旦提取了代表性气泡,就可以执行气泡路径的全局比对(例如Smith-Waterman比对),以及执行相应的参考主干,以获取候选变异及其在该参考序列中的位置。这可以对所有De Bruijn图中的所有提取的气泡进行。接下来,可以从N个图中获取所有提取的候选变异的并集,可以去除重复的候选(如果有的话)以及独特的候选变异。位置可以映射到从联合堆积中获得的通用坐标系中。这导致N个区域的候选变异位置的最终列表可以充当“修剪的”MRJD算法的输入。
在特定的预处理块中,如上所述,可以计算互连矩阵。例如,互连矩阵可用于定义活动(例如,候选)位置的处理顺序,例如read长度和插入大小的函数。例如,为了进一步降低计算复杂度,可以计算互连矩阵,以便定义从De Bruijn图获得的所识别的候选变异的处理顺序。该矩阵可以与结合或作为分类函数一起构建和使用,以确定首先处理哪些候选变异。因此,该互连矩阵可以是平均read长度和双末端read(paired-end read)的插入大小的函数。因此,对于给定的候选变异,与插入大小的整数倍或read长度内的其他候选变异位置与其他位置处的候选变异相比具有更高的权重。这是因为这些候选变异更有可能为正在评估的当前变异提供证据。如图23所示,示例性排序函数在图中示出,其中,平均read长度为101,插入尺寸为300。
关于MJRD修剪函数,如上所述,修剪的MRJD算法的示例性步骤在图24中阐述。例如,对MRJD平台和算法的输入是N个区域的联合堆积(例如,所有候选变异(SNP/INDEL)),基于突变模型的先验概率和互连矩阵。因此,对修剪的MRJD处理平台的输入可以是联合堆积,识别的活动位置,生成的互连矩阵和后验概率模型,和/或其结果。
接下来,可以处理列表中的每个候选变异,并且可以连续地添加其他变异作为使用互连矩阵处理的当前候选的证据。因此,给定当前候选变异和任何支持候选物,候选联合双倍型可以生成。例如,联合双倍型是一组2N单倍型,其中N是联合处理的区域的数量。候选联合双倍型M的数量是联合处理的区域的数量,正在考虑的活动/候选变异的数量以及相的数量的函数。产生联合双倍型的一个例子如下所示。
对于:P=1,正在考虑的活跃/候选变异位置的数量;
N=2,联合处理的区域数量;
M=22.N.P=24=16,候选联合双倍型。
因此,对于单个候选活跃位置,给定所有read和两个参考区域,设两个单倍型分别为“A”和“G”。
独特的单倍型='A'和'G';
候选双倍型='AA','AG','GA'和'GG',(1个区域的4个候选物);
候选联合双倍型=
′AAAA′,′AAAG′,′AAGA′,′AAGG′
′AGAA′,′AGAG′,′AGGA′,′AGGG′
′GAAA′,′GAAG′,′GAGA′,′GAGG′
′GGAA′,′GGAG′,′GGGGA′,′GGGG′
因此,使用候选联合双倍型,可以给定每个候选联合双倍型组中每个单倍型的单倍型来计算read可能性。这可以使用HMM算法来完成,如本文所述。然而,在这样做时,可以从其标准用例修改HMM算法,以便考虑尚未处理的单倍型中的候选变异(SNP/INDELs)。随后,可以使用来自修改的HMM的结果,在给定联合双倍型(P(ri|Gm))的情况下计算read可能性。这可以使用下面的公式来完成。
对于2个区域联合检测的情况:
Gm=[θ11,m,θ12,m,θ21,m,θ22,m],其中在θij,m,中,i是该区域,j是相;
P(R|Gm)=∏iP(ri|Gm)。给定P(ri|Gm)可以直接计算所有read的P(R|Gm)。接下来,使用贝叶斯公式,可以从P(R|Gi)和先验概率(P(Gi))计算后验概率(P(Gi|R))。
P(Gi|R)=P(R|Gi)P(Gi)/∑kP(R|Gk)P(Gk)。
此外,给定所有候选联合双倍型的后验概率,可以针对每个区域计算中间基因型矩阵。对于基因型矩阵中的每个事件组合,可以总结支持该事件的所有联合双倍型的后验概率。此时,基因型矩阵可以被认为是“中间的”,因为并非包括支持当前候选者的所有候选变异。然而,如前所述,联合双倍型候选者的数量随着候选变异位置的数量和区域的数量呈指数增长。这反过来指数地增加了计算后验概率所需的计算量。因此,为了降低计算复杂度,在该阶段,可以修剪基于后验概率的联合双倍型的数量,使得要保持的联合双倍型的数量可以是用户定义的和可编程的。最后,可以基于使用中间基因型矩阵计算的变异的用户定义的置信度度量来更新最终的基因型矩阵。这些过程的各个步骤在图24的过程流程图中阐述。
上述过程可以重复,直到包括所有候选变异作为使用互连矩阵处理当前候选物的证据。一旦包括所有候选物,就完成当前候选物的处理。用于处理候选变异的其他停止标准也是可能的。例如,随着更多候选变异的添加,当置信度停止增加时,该过程可以停止。如图24所示,对于列表中的所有其他候选变异,可以以相同的方式重新开始和重复该分析,从而在MRJD的输出处产生最终变异检测文件。因此,不是单独考虑每个区域,而是可以采用如本文所述的多区域联合检测协议,以便考虑一组read可能源自的所有位置,因为它试图使用所有可用信息联合检测碱基序列。
因此,对于多区域联合检测,示例性MRJD协议可以根据本文公开的方法采用以下等式中的一个或多个。具体地,不是考虑单独评估每个区域,而是MRJD考虑可能已经从其发起一组read的多个位置并且尝试联合检测碱基序列,例如通过使用例如全部可用的有用信息。例如,在一个示例性实施例中:
设N是要联合处理的区域的数量。并且设Hk是候选单倍型,k=1...K,其中每一个可以包括相对于参考序列的各种SNP,插入和/或缺失。每个单倍型Hk表示沿单链(或“单相”,例如母本或父本)的单个区域,并且它们不需要是连续的(例如,它们可包括缺口或“不关心”序列)。
设Gm是两个相的候选解Φ=1,2(对于二倍体生物体)并且所有区域n=1...N:
其中每个元素Gm,Φ,n是从候选组{H1...Hk}中选择的单倍型。
首先,例如,通过使用隐马尔可夫模型(HMM),可以针对每个候选单倍型P(ri|Hk)计算每个read的概率。在具有成对read的数据集的情况下,ri表示成对{ri,1,ri,2}和P(ri|Hk)=P(ri,1|Hk)P(ri,2|Hk)。在具有链接read的数据集(例如,索引read)的情况下,ri表示来自相同长分子的read组{ri,1…ri,NL},并且
接下来,对于每个候选解Gm,m=1...M,我们计算每个read的条件概率和整个堆积的条件概率R={r1…rNR}:
接下来,在给定观察到的堆积的情况下,计算每个候选解的后验概率:其中P(Gm)表示候选解的先验概率,这在下面详细说明。
最后,计算每个候选变异Vj的相对概率例如Gm→Vj表示Gm支持变异Vj,以及Gm→ref表示Gm支持该参考序列。在VCF文件中,这可以被报告为phred标度上的质量分数:
本文关于图25阐述了用于执行各种变异检测操作的示例性过程,其中比较了传统的和MRJD检测过程。具体而言,图25示出了两个区域的成对read的联合堆积,其参考序列在感兴趣的范围内仅相差3个碱基。已知所有read来自区域#1或区域#2,但是不确定地任何个体read源自哪个区域。注意,如上所述,碱基仅针对两个参考不同的位置示出,例如,气泡区域,或者该read与该参考不同的位置。这些区域被称为活跃位置。所有其他位置都可以忽略,因为它们不会影响计算。
因此,如图25所示,在传统的检测器中,read对1-16将被映射到区域#2,并且这些仅用于区域#2中的变异检测。所有这些read与该参考序列在区域#2匹配,因此不会检测任何变异。同样,read对17-23将被映射到区域#1,并且这些仅用于区域#1中的变异检测。可以看出,所有这些read与该参考序列在区域#1匹配,因此不会检测任何变异。但是,read对24-32同样可以很好地映射到区域#1和区域#2(每个区域与参考区域#1和参考区域#2都有一个碱基差异),因此映射是不确定的,并且典型的变异检测器将简单地忽略这些读数。这样,传统的变异检测器不会对任一区域进行变异检测,如图25所示。
然而,对于MRJD,图25示出了与使用传统方法接收的结果完全不同的结果。相关的计算在下面给出。在这种情况下,N=2个区域。另外,有三个位置,每个位置具有2个候选碱基(计数足够低的碱基可以安全地忽略,并且在该实施例中,除了每个位置的2个碱基外,所有的计数都为零)。如果考虑所有组合,这将产生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)。以下说明了两种候选解的计算方法:
其中Gm1没有变异(这是常规检测器发现的解),并且Gm2在区域#1的位置#2中具有单个杂合SNP A→C。
概率P(ri|Hk)取决于各种因素,包括碱基质量和HMM的其他参数。可以假设仅存在碱基检测错误并且所有碱基检测错误同样可能,因此P(ri|Hk)=(1-pe)Np(i)-Ne(i)(pe/3)Ne(i),其中pe是碱基检测错误的概率,Np(i)是与read i重叠的活跃碱基位置的数量,以及Ne(i)是read i的错误数,假设单倍型Hk。因此,可以假设pe=0.01,其对应于phred 20的碱基质量。图26显示了对于所有read对和所有候选单倍型的P(ri|Hk)。最右边的两列显示P(ri|Gm1)和P(ri|Gm2),产物位于底部。图26显示P(R|Gm1)=3.5-30andP(R|Gm2)=2.2-15,有利于Gm2的差异为15个数量级。
后验概率P(Gm|R)取决于先验概率P(Gm)。为了完成该示例,可以假设简单的独立同分布(independent identically distributed;IID)模型,使得具有Nv变异的候选解的先验概率是(1-pv)N.Np-Nv(pv/9)Nv,其中Np是活跃位置的数量(在这种情况下为3),Pv是变异的概率,在此示例中假设为0.01。这产生P(Gm)=7.22e-13,以及P(Gm2)=0.500。值得注意的是,Gm2在区域#1上是杂合的,并且所有杂合的单倍型对具有相同概率的镜像图像(通过简单地交换相位获得)。在这种情况下,Gm2及其镜像的概率之和总和为1.000。计算个体变异的概率,在区域#1的位置#2处的杂合A→C SNP,序列(phred)的质量得分为50.4。
因此,可以看出,执行蛮力变异检测操作存在巨大的计算复杂度,如本文所述,通过执行多区域联合检测可以降低复杂性。例如,上述计算的复杂性随着区域N的数量和候选单倍型K的数量而快速增长。为了考虑候选单倍型的所有组合,用于计算概率的候选解的数量是M=K2N。在蛮力实施中,候选单倍型的数量是K=2Np,其中Np是活跃位置的数量(例如,如上所示,如果使用图表组装技术来生成候选单倍型列表,那么Np是图中的独立气泡数)。因此,仅仅蛮力计算实施起来可能过于昂贵。例如,如果N=3且Np=10,则候选解的数量是M=23.2.10=260=1018。然而,实际上,使Np的值远高于此值并不罕见。
因此,因为蛮力贝叶斯计算可能过于复杂,所以下面的描述提出了用于降低这种计算的复杂性的其他方法。例如,在另一实施例的第一步骤中,从少量位置(或甚至单个位置)开始,可以在那些位置上执行贝叶斯计算。在计算结束时,可以消除概率低于预定阈值的候选物,例如在树函数的修剪中,如上所述。在这种情况下,阈值可以是自适应的。
接下来,在第二步骤中,位置数可以增加少量的ΔNp(例如一个:),并且幸存的候选物可以是与新位置处的一个或多个(例如所有)可能的候选物组合,例如在生长树函数中。然后,可以例如顺序地重复这些步骤:(1)执行贝叶斯计算,(2)修剪树,以及(3)生长树,直到满足停止标准。然后可以使用阈值历史来确定结果的置信度(例如,找到真实解的概率)。该过程在图27中所示的流程图中说明。
可以理解的,该方法存在各种可能的变异。例如,所指示的修剪阈值可以是自适应的,例如基于幸存候选物的数量。例如,简单实现可以设置阈值以将候选物的数量保持在固定数量以下,而更复杂的实现可以基于包括附加候选物的成本效益分析来设置阈值。此外,简单的停止标准可以是已经找到具有足够置信水平的结果,或者随着添加更多位置而对初始位置的置信度已经停止增加。此外,更复杂的实施可以执行某种类型的成本效益分析,继续增加更多的位置。另外,如图27所示,新位置的添加顺序可能取决于若干标准,例如到初始位置的距离或这些位置与已包含位置的高度连接程度(例如,与配对read的重叠量)。
该算法的一个有用特征是可以量化未找到真实解的概率。例如,通过简单地将每个步骤中所有修剪分支的概率相加来获得有用的估计:这样的估计对于计算得到的变量检测的置信度是有用的:良好的置信度估计对于产生良好的受试者工作特征(Receiver Operating Characteristic;ROC)曲线至关重要。这是这种修剪方法相对于其他特殊复杂性降低的关键优势。
回到图25的示例堆积,从最左边的位置(位置#1)开始并且一次朝右边的一个碱基位置工作,在每次迭代时使用phred 60的修剪阈值:设表示为第j次迭代的候选解。图28示出了第一次迭代的候选解,表示按降低概率的顺序列出的碱基C和G的所有组合。对于具有等效镜像表示的任何解(通过交换相位获得),此处仅显示单个表示。可以计算所有候选解的概率,并且可以丢弃超出修剪阈值的概率(由图28中的实线指示)。如图28所示,作为本文公开的修剪方法的结果,六个候选物幸存。
接下来,如图29所示,可以通过找到来自迭代#1的幸存候选物和位置#2中的候选碱基(C和A)的所有组合来生长树。新候选物的部分列表如图29所示,并再次以降低概率的顺序示出。同样,可以计算概率并将其与修剪阈值进行比较,并且在这种情况下,5个候选物幸存。
最后,可以确定来自迭代#2的幸存候选物和位置#3(A和T)中的候选碱基的所有组合。最终候选物及其相关概率如图30所示。当计算个体变异的概率时,确定区域#1的#2位置处的杂合A→C SNP,phred的质量分数为50.4,这与蛮力计算中发现的结果相同。在本实施例中,修剪对最终结果没有显着影响,但通常修剪可能会影响计算,且通常会导致更高的置信度分数。
对于该方法的实现存在许多可能的变化,这可能影响系统的性能和复杂性,并且不同的变化可能适合于不同的场景。例如,在决定包括哪些区域时可能存在变异。例如,在运行多区域联合检测之前,变异检测器可以被配置为确定是否应该单独地或者与其他区域联合处理给定的活动区域,并且如果联合,则可以确定要包括哪些区域。在其他情况下,一些实现可以依赖于映射器提供的二级比对的列表,以便通知或以其他方式做出该决定。其他实施方式可以使用离线计算的同源区域的数据库,例如基于参考基因组的搜索。
因此,这种操作中的有用步骤是决定包括哪些位置。例如,值得注意的是,各种感兴趣的区域可能不是独立的和/或与相邻区域隔离的。因此,堆积中的信息可以影响碱基分离的概率远远超过总read长度(例如,成对的read长度或长分子长度)。因此,必须确定在MRJD计算中包括哪些位置,并且该位置的数量不受限制(即使使用修剪)。例如,一些实施例可以处理重叠的位置块并基于这些位置处的置信水平或者那些位置处的证据的完整性来更新位置子集的结果(靠近中间区域的位置通常比边缘附近的位置具有更完整的证据)。
另一个确定因素可以是可以添加新位置的顺序。例如,对于修剪的MRJD,添加新位置的顺序可能影响性能。例如,一些实现可以基于到已经包括的位置的距离或者与这些位置的连接程度(例如,重叠两个位置的read的数量)来添加新位置。另外,关于如何执行修剪也存在许多变化。在上述实施例中,修剪基于固定概率阈值,但是通常修剪阈值可以是自适应的或基于幸存候选物的数量。例如,简单的实现可以设置阈值以保持候选物的数量低于固定数量,而更复杂的实现可以基于包括额外候选物的成本效益分析来设定阈值。
各种实现可以基于概率P(R|Gm)而不是先验概率P(Gm|R)来执行修剪。这具有允许消除跨区域(除了相位)的等效镜像表示的优点。该优点至少部分地被不修剪的具有非常低的先验概率的候选物的缺点所抵消,这在各种实施例中可能是有益的。因此,有用的解可能取决于场景。如果完成修剪,例如基于P(R|Gm),那么贝叶斯计算将在最后一次迭代后执行一次。
此外,在上述实施例中,在处理所示堆积中的所有碱基位置之后停止该过程,但是其他停止标准也是可能的。例如,如果仅解决碱基位置的子集(例如,当处理重叠块时),则当以足够的置信水平找到子集的结果时,或者当置信度已经停止增加时,随着更多位置的增加该过程可以停止。然而,更复杂的实现可以执行某种类型的成本效益分析,将计算成本与增加更多位置的潜在价值进行权衡。
先验概率也可能是有用的。例如,在上述实施例中,使用了简单的IID模型,但也可以使用其他模型。例如,值得注意的是,变异簇比IID模型预测的更常见。还值得注意的是,变异更可能发生在该参考序列不同的位置。因此,将这些知识结合到先验概率P(Gm)中可以改善检测性能并产生更好的ROC曲线。具体地,值得注意的是,同源区域的先验概率在群体基因组学中并未得到很好的理解,并且这种知识仍在不断发展。这样,一些实现可以在更好的信息变得可用时更新先验模型。这可以在产生更多结果时自动完成。这样的更新可以基于相同样品的其他生物样品或基因组的其他区域,这些学习可以应用于本文的方法以进一步促进更快速和准确的分析。
因此,在某些实施例中,可以实现迭代MJRD过程。具体地,可以扩展这里描述的方法以允许在相关区域之间消息传递,以便进一步降低系统的复杂性和/或提高检测性能。例如,一个位置处的计算输出可以用作在附近位置计算的输入先验概率。另外,一些实现可以使用修剪和迭代的组合来实现期望的性能/复杂性权衡。
此外,样品制备可以实施以优化MRJD过程。例如,对于配对末端测序,当使用常规检测时,在插入大小上具有紧密分布可能是有用的。然而,在各种实施例中,引入插入尺寸的变化可以显着改善MRJD的性能。例如,可以准备样品以有意地引入双峰分布,多模态分布或钟形曲线状分布,其具有比通常用于常规检测的更高的方差。
图31示出了MRJD的ROC曲线和人类样品NA12878的常规检测物在基因组的选定区域上具有单个同源拷贝,使得N=2,具有不同程度的参考序列相似性。该数据集使用配对末端测序,read长度为101,平均插入大小为约400。如图31所示,与常规检测方法相比,MRJD在这些区域上提供显着改善的灵敏度和特异性。图32示出了作为参考序列相似性的函数显示的相同结果,在1000个碱基的窗口上测量(例如,如果该参考序列相差1000个碱基中的10个碱基,则相似性为99.0%)。对于该数据集,可以看出常规检测在序列相似性在0.98处开始表现不佳,而MRJD表现得非常好,直至0.995甚至更高。
另外,在各种实施例中,可以扩展该方法以允许在相关区域之间传递消息以进一步降低复杂性和/或提高检测性能。例如,一个位置处的计算输出可以用作附近位置处的计算的输入先验概率,并且在一些实现中可以使用修剪和迭代的组合来实现期望的性能/复杂度权衡。在特定情况下,如上所述,在运行多区域联合检测之前,变异检测器可以确定给定的活动区域是应该单独处理还是与其他区域联合处理。另外,如上所述,一些实现可以依赖于映射器提供的二级比对列表来做出这样的决定。其他实施方式可以基于对参考基因组的搜索的离线计算,使用同源区域的数据库。
如上所述,可以以利用MRJD的益处的方式实施成对确定的隐马尔可夫模型(Pair-Determined Hidden Markov Model;PD-HMM)。例如,MRJD可以单独估计观察给出每种可能的联合双倍型的部分或者所有read的概率。该联合双倍型包含每个同源参照区的每个倍性的一个单倍型,例如,对于二倍体染色体中的两个同源区,每个联合双倍型将包括四个单倍型。在本实施例中,全部或部分可能的单倍型可以被考虑,例如通过构建,通过修饰具有非平凡证据的每个参考区域具有所有变异的每个可能子集。然而,对于长同源参照区域,可能的变异数量很大。因此,单倍型的数量(变异的组合)变得呈指数级增长,并且联合双倍型(单倍型的组合)的数量可以是天文数字。
因此,为了保持MRJD计算易处理,测试所有可能的联合双倍型可能没有用。相反,在一些实施例中,系统可以以这样的方式配置,即仅测试“最可能的”联合双倍型的一小部分。这些“最可能的”联合双倍型可以通过递增地构建部分确定联合双倍型的树来确定。在本实施例中,树的每个节点可以是部分确定的联合双倍型,其包括每个同源参照区的每个倍性的部分确定单倍型。在这种情况下,部分确定单倍型可以包括由部分确定的可能变异的子集修饰的参考区域。因此,可能变异的部分确定的子集可以包括针对每种可能变异的三种状态之一的指示:确定和存在变异,或者确定和不存在变异,或者尚未确定变异,例如,该可能变异的状态可以是存在或不存在。在树的根部,所有变异在所有单倍型中都是未确定的;从根开始连续分支的树节点具有连续地在每个节点的联合双倍型的每个单倍型中确定为存在或不存在的更多变异。
此外,在该联合双倍型树的环境中,如上所述,相对于其他更可能的分支或节点,通过修剪所有联合双倍型节点不太可能(例如,适度到极不可能)的树的分支,MRJD计算量保持有限且易于处理。因此,可以在仍然仅部分确定的节点处的分支上执行这种修整;例如,仍未确定几个或许多变异存在或不存在于修剪节点的联合双倍型的单倍型中。因此,在本实施例中,假设部分确定单倍型的真实性,能够估计或限制观察每次read的可能性是有用的。假设真实单倍型H*是一致的,修改成对隐马尔可夫模型(pair hidden Markovmodel;pHMM)计算,“PD-HMM”表示为“部分确定成对隐马尔可夫模型”,可用于估计假设真实单倍型H*与部分确定单倍型H一致的观察readR的概率P(R|H)。在该上下文中一致意味着对于在单倍型H中确定其存在或不存在的所有变异,一些特定的真实单倍型H*与部分确定单倍型H一致,但对于在单倍型H中未确定的变异,H*可以与每个未确定变异修饰或未修饰的参考序列一致。
注意的是,对于选择为仅包含确定的变异位置的H的一些较短亚单倍型,进行普通pHMM计算通常是不够的。构建具有未确定变异的联合双倍型树以有效的顺序被解析通常是很重要的,这通常与它们的几何顺序完全不同,因此,部分确定单倍型H通常具有与确定单倍型交错的许多未确定的变异位置。为了正确地考虑PCR indel错误,使用跨越所有确定的变异和它们周围的显着半径的类似pHMM的计算是有用的,这可能与尝试避免不确定的变异位置不兼容。
因此,PD-HMM的输入可以包括被read的R的核苷酸序列,R的被检测核苷酸的碱基质量得分(例如,phred量表),基线单倍型H0和来自H0的未确定变异的列表(编辑)。未确定的变异可以包括单碱基取代(SNP),多碱基取代(MNP),插入和缺失。有利地,支持未确定的SNP和缺失可能是足够的。未确定的MNP可能不完善,但充分表示为多个独立的SNP。可以通过首先将该插入编辑到基线单倍型中来表示未确定的插入,然后指示将撤消该插入的相应的未确定的缺失。
可以对未确定的缺失进行限制,以促进具有有限状态存储器和逻辑的硬件引擎实施,例如没有两个未确定的缺失可以重叠(缺失相同的基线单倍型碱基)。如果必须用违反此类限制的未确定变异测试部分确定的单倍型,则可以通过在大量PD-HMM操作中将一个或多个未确定的变异转换成确定的变异来解决这一问题,包括具有存在或不存在的那些变异的情况。例如,如果两个未确定的缺失A和B违背在基线单倍型H0中相互重叠,则可以将缺失B编辑为H0以产生H0B,并且可以仅使用未确定的缺失A执行两个PD-HMM操作,一个用于基线单倍型H0,另一个用于基线单倍型H0B,并且可以保留两个PD-HMM操作的最大概率输出。
PD-HMM操作的结果可以是所有单倍型H*中的最大P(R|H*)的估计,其可以通过使用未确定变异的任何子集编辑H0而形成。最大化可以局部完成,有助于给定单元中的类似pHMM动态编程,就好像相邻的未确定变异存在或不存在于单倍型中,无论哪个得分更好,例如,贡献更大的部分概率得分更好。动态规划期间的这种局部最大化可导致最大P(R|H*)的估计值大于单个纯H*单倍型的真实最大值,但差异通常是无关紧要的。
通过允许为每个单倍型位置指定一个或多个匹配的核苷酸值,可以将未确定的SNP掺入PD-HMM中。例如,如果H0的碱基30是'C'并且未确定的SNP用'T'替换该'C',则PD-HMM操作的单倍型可以指示位置30匹配碱基'C'和'T'。在通常的pHMM动态规划中,任何向“M”状态的转换都会导致路径概率乘以正确碱基检测的概率(如果单倍型位置与read位置匹配)或特定碱基检测错误的概率(如果单倍型位置与读取位置不匹配);对于PD-HMM,如果read位置与可能的单倍型碱基(例如“C”或“T”)匹配,则通过使用正确的检测概率来修改,否则这是碱基检测错误概率。
通过标记任选缺失的单倍型位置,并修改pHMM的动态编程,可以将未确定的单倍型缺失整合到PD-HMM中,以允许比对路径水平地跳过未确定的缺失单倍型区段而没有概率损失。这可以以各种方式完成,但具有共同特性,即M,I和/或D状态中的概率值可以在未确定的缺失的范围内水平地(沿着单倍型轴)传输而不会被普通的起始空位或延伸空位概率减少。
在一个特定实施例中,未确定缺失开始的单倍型位置标记为“F1”,未确定缺失结束的位置标记为“F2”。除了HMM矩阵的每个单元(单倍型水平/read垂直)的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和BM的最大值,使用I和BI的最大值,以及使用D和BD的最大值代替用于计算相邻单元状态的M,I和D状态。这在F2列中被例示为来自M和BM,来自I和BI以及来自D和BD寄存器的信号的多路复用选择。
注意的是,虽然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状态值在任何时候替代pHMM计算。击败正常路径分数。在选择这些最大值的情况下,“旁路”状态值BM,BI和BD表示本地动态编程结果,其中未确定缺失被认为存在的,而“正常”状态值M,I和D表示本地动态编程结果,其中未确定的缺失被认为是不存在的。
在另一个实施例中,可以使用单个旁路状态,例如从F1标记列中的M状态接收的BM状态,或者接收M,D和/或I状态的总和。在另一个实施例中,不是使用“旁路”状态,而是在未确定缺失的列内消除起始空位罚分和/或延伸空位罚分。在另一个实施例中,旁路状态对未确定缺失的向右动态编程有贡献,而不是使用局部最大化。在另一个实施例中,使用更多或更少或不同定义或不同映射的单倍型位置标志来触发旁路或类似行为,例如指示未确定缺失中的成员资格的单个标记。在另外的实施例中,可以参与两个或更多个重叠的未确定缺失,例如使用附加标记和/或旁路状态。另外,支持单倍型中未确定的插入,而不是未确定的缺失或除了未确定的缺失之外。同样地,支持read轴上未确定的插入和/或缺失,而不是单倍型轴上未确定的缺失和/或插入。在另一个实施方案中,支持未确定的多核苷酸取代作为原子变异(全部存在或全部不存在)。在进一步的实施方案中,支持未确定的长度变化取代作为原子变异。在另一个实施例中,未确定的变异以固定或可配置的概率或分数调整来惩罚。
通过扩展用于“普通”pHMM计算的硬件引擎架构,可以将该PD-HMM计算作为硬件引擎(例如FPGA或ASIC技术)来实现,或者可以通过量子计算平台中的一个或多个量子电路来实现。除了用于计算,传输和存储各种或连续的单元的M,I和D状态值的引擎管道逻辑之外,还可以构造并行管道逻辑以计算,传输和存储BM,BI和BD状态值,如本文和上文所述。用于存储和检索M,I和D状态值的存储器资源和端口可以伴随有类似或更宽或更深的存储器资源和端口,用于存储和检索BM,BI和BD状态值。诸如F1和F2的标志可以与相关的单倍型碱基一起存储在存储器中。
可以以任何方式编码未确定的SNP单倍型位置的多个匹配核苷酸,例如使用每个可能的核苷酸值一位的载体。pHMM矩阵中的单元计算依赖性在PD-HMM中未改变,因此PD-HMM的多个单元计算的顺序和管道可以保持相同。然而,由于需要比较“正常”和“旁路”状态值并选择较大的状态值,因此PD-HMM的完整单元计算的时间和/或时钟周期的延迟有所增加。因此,包括用于PD-HMM单元计算的一个或多个额外管道阶段可能是有利的,导致延迟的额外时钟周期。另外,加宽由一行或多行计算的单元的“条带”可能更有利,以保持较长的管道填充而没有依赖性问题。
该PD-HMM计算跟踪两倍于普通pHMM计算的状态值(BM,BI和BD,除了M,I和D之外),并且可能需要大约两倍于等效吞吐量引擎实现的硬件资源。然而,对于增加数量的未确定变异而言,PD-HMM引擎具有指数速度和效率优势,而普通pHMM引擎针对每个单倍型运行一次,表示存在或不存在未确定变异的独特组合。例如,如果部分确定的单倍型具有30个未确定的变异,每个变异可以独立存在或不存在,那么pHMM将需要处理2^30或超过10亿个不同的特异性单倍型。
因此,可以执行本文公开的这些和其他此类操作,以便更好地理解和准确地预测受试者基因组发生的情况,因此read相对于参考序列变化。例如,即使突变的发生可能是随机的,也存在其发生的可能性似乎在某种程度上可预测的情况。具体地,在某些情况下,当发生突变时,它们可以在某些确定的位置和某些形式发生。更具体地,如果突变发生,它们将发生在一个等位基因或另一个等位基因或两者上,并且倾向于在某些位置发生在其他位置上,例如在染色体的末端。因此,该和其他相关信息可用于开发突变模型,其可以生成并用于更好地评估基因组的一个或多个区域中突变的可能存在。例如,通过考虑各种先验知识,例如一种或多种突变模型,当进行基因组变异分析时,可以获得更好和更准确的基因组分析结果,例如更准确的基因突变分界。
此类突变模型可以给出各种已知突变和/或突变的频率和/或位置的说明,这些突变和/或突变似乎彼此结合或以其他方式非随机地发生。例如,已经确定在给定染色体变异的末端更主要地发生变异。因此,可以产生已知的突变模型,将其存储在本文的数据库中,并由系统使用以更好地预测所分析的基因组数据中一种或多种变异的存在。另外,还可以实现如下文更详细描述的机器学习过程,使得可以分析和使用通过本文执行的分析导出的各种结果数据,以更好地通知系统何时进行特定的差异调用。例如,根据本文公开的机器学习原理。具体地,机器学习可以在集合数据集上实现,尤其是关于所确定的变化,并且该学习可以用于更好地生成更全面的变异模型,其反过来可以用于进行更准确的方差确定。
因此,系统可以被配置为观察所有各种变异数据,挖掘用于各种相关的数据,以及在何处找到相关性,这些信息可用于更好地加权,因此更准确地确定其他基因组样品中其他变异(例如持续变异的碱基)的存在。因此,以这样的方式,系统,尤其是变异检测机制,可以相对于学习的变异相关数据不断更新,以便更好地进行变异检测,以便获得更好和更准确的结果数据。
具体地,可以采用遥测技术来更新生长中的突变模型,以便在系统中实现更好的分析。当分析以某种方式彼此连接的样品(例如来自相同的地理群体内)和/或可用于确定多个参考基因组中的哪个参考基因组可能是一个时,这可能是特别有用的。更好的参考基因组,通过该基因组分析特定样品。此外,在各种实施例中,可以采用突变模型和/或遥测技术,以便更好地选择要在系统过程中使用的参考基因组,从而提高系统结果的准确性和效率。具体地,在本文的一个或多个分析中可以使用多个参考基因组的情况下,可以选择特定参考基因组用于其他参考基因组,例如通过应用突变模型,从而选择最合适的参考基因组来应用。
值得注意的是,当进行二级分析时,被映射和比对的基因组的每个区域的碱基结构可包括一个或多个潜在基因。因此,在各种实施例中,当进行二级分析时,对它们编码的蛋白质的潜在基因和/或功能的这种理解可以提供信息。具体地,三级适应症和/或结果可用于由本系统运行的二级分析方案,例如在生物背景敏感性突变模型的过程中。更具体地,由于DNA编码基因,哪些基因编码蛋白质,关于导致突变和/或恶化功能的此类蛋白质的信息可用于通知用于对受试者基因组进行二级和/或三级分析的突变模型。
例如,对编码突变蛋白质的基因样品组进行三级分析,在进行已知编码此类突变的基因组区域的二级分析时可以提供信息。因此,如上所述,各种三级处理结果可用于通知和/或更新本文使用的变异模型,以在执行本文公开的各种二级分析操作时实现更好的准确性和效率。具体地,当对已知编码蛋白质和/或可能包括此类突变的那些区域进行二级分析时,可以使用有关突变蛋白质的信息(例如,上下文的三级分析)来更新突变模型。
因此,鉴于以上内容,对于涉及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传输),但是访问的存储器区域是不可缓存的,因为没有设备可维护缓存两个设备之间的一致性。因此,CPU和FPGA之间的传输限制在大的高级处理步骤之间发生,并且大量的输入和输出必须在设备之间排队,因此它们不会相互减慢等待高延迟运算。这减慢了本文公开的各种处理操作。此外,当FPGA访问不可高速缓存的CPU内存时,这种访问的全部负载都施加在CPU的外部存储器接口上,与其内部高速缓存接口相比,这些接口的带宽受限。
因此,由于这种松散的CPU/FPGA集成,通常需要对FPGA接口进行“集中式”软件控制。在本实施例中,各种软件线程可能正在处理各种数据单元,但是当这些线程为FPGA引擎生成工作时,必须将工作聚合在“中央”缓冲区中,例如通过单个聚合器软件线程,或者由多个线程通过信号量锁定聚合访问,通过由中央软件模块(如内核空间驱动程序)管理的DMA数据包传输聚合工作。因此,当硬件引擎产生结果时,发生反向过程,软件驱动程序从HW接收DMA分组,并且解聚合器线程将结果分发给各种等待的软件工作者线程。然而,这种与HWFPGA逻辑通信的集中式软件控制在资源使用方面既麻烦又昂贵,降低了软件线程和硬件/软件通信的效率。
另外,如图33A所示,CPU 1000和FPGA 7之间的松散集成可能要求每个设备具有其自己的专用外部存储器,例如DRAM 1014,14。如图33A所示,CPU 1000在系统主板上具有其自己的DRAM 1014(例如DDR3或DDR4 DIMM),而FPGA 7具有其自己的专用DRAM 14(例如四个8GB SODIMM),其可以通过一个或多个DDR3总线6(例如高延迟PCIe总线)直接连接到FPGA。同样地,CPU 1000可以可通信地耦合到其自己的DRAM 1014,例如通过适当配置的总线1006。如上所述,FPGA 7可以被配置为包括一个或多个处理引擎13,处理引擎可以被配置用于如本文所述,在生物信息学管道中执行一个或多个函数。其中,FPGA 7包括映射引擎13a,比对引擎13b和变异检测引擎13c,FPGA 7还可以包括如本文所述的其他发动机。在各种实施例中,一个或两个CPU可以被配置为分别包括能够存储数据(例如由系统的各个组件中的一个或多个传送的结果数据)的电脑高速缓冲存储器1014a,14a,例如一个或多个存储器和/或处理引擎。
由FPGA 7执行的用于基因组处理的本文公开的许多操作需要大的存储器访问来执行底层操作。具体而言,由于涉及大数据单元(例如3个以上的核苷酸参考基因组,1亿个核苷酸的测序仪read数据等),FPGA 7可能需要多次访问主机存储器1014,例如用于访问索引,例如30GB哈希表或其他参考基因组索引,例如用于将种子从测序的DNA/RNA查询映射到3Gbp参考基因组,和/或用于从例如参考基因组中取出候选片段以进行比对。
因此,在本文公开的系统的各种实施方式中,许多快速随机存储器访问可能需要由一个或多个硬连线处理引擎13发生,例如在执行映射,比对和/或变异检测时操作。然而,对于FPGA 7来说,通过外围总线3或连接到主CPU 1000的存储器1014的其他网络链路进行如此多的小随机访问可能是非常不切实际的。例如,在本实施例中,返回数据的延迟可以非常高,总线效率可以非常低。其中,对于这种小的随机访问,并且CPU外部存储器接口1006的负担可能非常大。
另外,由于每个设备都需要自己专用的外部存储器,对于某些应用程序,全CPU1000+FPGA 7平台的典型外形尺寸被迫大于可能需要的尺寸。在本实施例中,除了提供一个或多个CPU 1000、支持芯片7和存储器1014和/或14的标准系统主板之外,电路板上需要一个大型FPGA封装(甚至可能需要更大,以便有足够的引脚给多个外部存储器总线)和几个存储器模块1014,14的空间。然而,标准主板不包括这些组件,也不容易为它们留出空间,因此实际的实现可以被配置为利用扩展卡2,该扩展卡2包括FPGA 7,存储器14,以及其他支持组件(例如电源连接到CPU主板上的PCIe扩展槽)。为了给扩展卡2留出空间,可以将系统制造成足够大的机箱,例如1U或2U或更大的机架式服务器。
如上所述,在各种实施例中,如图33B所示,为了克服这些因素,可能希望将CPU1000配置成与FPGA 7紧密耦合的架构。具体地,在各种实施例中,FPGA 7可以通过低延迟互连3或快速路径互连(QPI)紧密耦合到CPU 1000。具体地,为了建立更紧密的CPU加FPGA集成,两个设备可以通过任何合适的低延迟接口连接,例如“处理器互连”或类似的快速路径互连(Quick Path Interconnect;QPI)或HT总线(HyperTransport;HT)。
因此,如图33B所示,提供了一种系统1。该系统包括CPU 1000和处理器(例如FPGA7),其中两个设备都与一个或多个存储器模块相关联。例如,如上所述,CPU 1000可以通过适当配置的总线1006耦合到DRAM 1014,并且同样地,FPGA 7经由DDR3总线6可通信地耦合到相关联的存储器14上。然而,在本实施例中,通过典型的高延迟互连(例如PCIe接口),而不是彼此耦合,例如CPU 1000通过低延迟,超传输互连3(例如QPI)耦合到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 1000,例如通过多个互连1003,例如本机CPU到CPU互连1003a和1003b。然而,在本实施例中,如图34A所示,CPU 1000被配置为耦合到互连1003a,而不是通过互连1003b与另一个CPU耦合,本公开的FPGA 7被配置为与互连1003b耦合。另外,系统1被配置成使得CPU 1000可以耦合到相关联的FPGA 7,例如通过低延迟,紧耦合互连3。在本实施例中,可以制作与各个设备1000,7相关联的每个存储器1014,14,以便彼此可访问,例如以高带宽,高速缓存一致的方式。
同样地,如图34B所示,系统还可以被配置为接收封装1002a和/或1002b。其中,每个封装包括一个或多个CPU 1000a,1000b。该一个或多个CPU 1000a,1000b通过低等待时间互连3a和3b与一个或多个FPGA 7a,7b紧密耦合,例如在给定系统架构的情况下,每个封装2a和2b可以通过紧耦合互连3彼此耦合。此外,如图35所示,在各种实施例中,可以提供封装1002a。其中,封装1002a包括CPU 1000,其以这样的方式制造,以便与诸如FPGA 7的集成电路紧密耦合。在本实施例中,由于CPU 1000和FPGA 7的紧密耦合,系统可以被配置成使得它们能够以任何设备一致,连贯且易于访问的方式直接共享高速缓存1014a,关于存储在其中的数据。
因此,在本实施例中,FPGA 7和/或封装2a/2b实际上可以伪装成另一个CPU,从而在具有一个或多个CPU的高速缓存一致的共享存储器环境中操作,就像多插槽主板1002上有多个CPU,或者多核CPU设备中有多个CPU内核。利用这种FPGA/CPU互连,FPGA 7可以有效地共享CPU存储器1014,而不是具有其自己的专用外部存储器14,其可以包括或不包括或访问。因此,在这样的配置中,互连3有效地支持快速,短的随机访问,例如低延迟。这使得FPGA7中的各种处理引擎13访问CPU存储器1000中的大数据结构变得实用和有效。
例如,如图37所示,提供了用于执行本文公开的一种或多种方法的系统。其中,该方法包括用于执行本公开的函数的一个或多个步骤,诸如一个或多个映射和/或比对和/或变异检测。如本文所述,以共享方式执行函数。具体地,在一个步骤(1)中,可以通过NGS和/或CPU 1000生成或以其他方式提供数据结构,然后可以将该数据结构存储在诸如DRAM1014的相关存储器(2)中。数据结构可以是任何数据结构,例如关于本文所述的数据结构,但在本实施例中,该数据结构可以是测序数据和/或参考基因组的多个read和/或参考基因组的索引,例如用于映射和/或比对和/或变异检测函数的执行。
在第二步骤(2)中,例如关于映射和/或比对等函数,与CPU 1000相关联的FPGA 7(例如通过紧耦合接口3)可以访问CPU相关存储器1014,以便对存储的测序read,参考基因组和/或其索引执行一个或多个动作。具体地,在步骤(3)中,例如,在示例性映射操作中,FPGA 7可以访问数据结构,例如,有序read和/或参考序列,以便从中产生一个或多个种子。其中,数据结构包括一个或多个read和/或基因组参考序列。在本实施例中,种子(例如参考序列和/或read序列)可以用于执行与其相关的映射函数,以产生一个或多个已经相对于参考基因组映射到一个或多个位置的read。
进一步的,在步骤(3)中,映射的结果数据可以存储在例如主机存储器1014中或存储在相关的DRAM 14中。另外,一旦数据被映射,FPGA 7或处理引擎13可以被重新配置,例如部分地重新配置为比对引擎,其然后可以访问存储的映射数据结构以在其上执行比对函数,以便产生已经与参考基因组比对的一个或多个read。在附加步骤(4)中,主机CPU随后可以访问映射和/或比对的数据,以便在其上执行一个或多个函数,例如用于生成De Brujin图(“DBG”),DBG可以存储在其相关的内存中。同样,在一个或多个附加步骤中,FPGA 7可以再次访问主机CPU存储器1014,以便访问DBG并在其上执行HMM分析,以便产生一个或多个变异检测文件。
在特定实施例中,由于两个设备之间的接口的紧密耦合将允许单独的高速缓存是一致的,因此CPU 1000和/或FPGA 7可以具有一个或多个超高速缓冲存储,例如关于存储在其上的过渡数据(例如结果数据,该结果数据为来自本文的一个或多个函数的执行的结果)。以这样的方式,可以在紧密耦合的设备之间基本上无缝地共享数据,从而允许将功能管道编织在一起,例如在生物信息学管道中。因此,在本实施例中,FPGA 7可能不再需要附加其自己的专用外部存储器14,因此,由于这种紧密耦合配置,如本文所述的存储的read,参考基因组和/或参考基因组索引可以例如以高速缓存一致的方式集中共享,例如用于read映射和比对,以及其他基因组数据处理操作。
另外,如图38所示,低延迟和高速缓存一致性配置以及本文讨论的其他组件配置允许在回送数据结构或处理之前,在一个设备(例如,在CPU或FPGA中)中执行更小的更低级操作。例如,在一实施例中,CPU线程20a可以被配置为将用于FPGA硬件逻辑13的大量工作排队以进行处理,并且可以配置相同或另一个线程20b,以处理在较晚时间生成的结果数据大队列。然而,在各种实施例中,如本文所示,单个CPU线程20对耦合的FPGA硬件引擎13进行阻塞“函数调用”可能更有效,一旦完成FPGA的硬件功能,可以设置CPU以恢复软件执行。因此,不是将数据包中的数据结构打包以通过DMA 14流入FPGA 7,并且当数据包返回时解压缩结果,软件线程20可以简单地提供一个存储器指针到FPGA引擎13。该存储器指针可以以高速缓存一致的方式访问和修改共享存储器1014/14。
具体地,给定这里提供的结构之间的关系,软件/硬件协作的粒度可以更精细,分配更小,更低级别的操作,以便由各种硬件引擎13(例如来自各种分配的软件线程20的调用函数)执行。例如,在松散的CPU/FPGA互连平台中,为了有效加速DNA/RNAread映射,比对和/或变异检测,可以构建作为一个或多个软件和/或FPGA引擎的完整的映射/比对和/或变异检测管道,以将未映射和未比对的read从软件流向硬件,并将完全映射和比对的read从硬件流回到软件,其中,对于变异检测,该过程可以重复。关于这里描述的配置可以非常快。然而,在各种实施例中,这样的系统可能受到灵活性,复杂性和/或可编程性的限制,例如因为整个映射/比对和/或变异检测管道在硬件电路中实现,尽管在FPGA中可重新配置,但是通常比软件更不灵活和可编程,因此可能限于算法复杂度较低。
相比之下,使用紧密的CPU/FPGA互连(例如本文公开的配置中的QPI或其他互连),如图38所示,几个资源昂贵的离散操作(例如种子生成和/或映射,修复扫描,无空位比对,空位比对(例如,Smith-Waterman)等)可以实现为不同的可单独访问的硬件引擎13,并且整个映射/比对和/或变异检测算法可以用软件实现,而对于特定昂贵的处理步骤,使用低级加速调用FPGA。与标准硬件实现的操作相比,该构架允许在特定加速调用之外的完整的软件可编程性,并实现更高的算法复杂性和灵活性。
此外,在由离散的低级FPGA硬件加速调用加速的这种软件执行构架中,可以更容易地为了多种目的共享硬件加速功能。例如,当硬件引擎13形成大的单片管道时,各个管道子组件通常可以专用于它们的环境,并且仅在一个管道内互连,除非紧密耦合,否则通常不能用于任何目的。但是许多基因组数据处理操作(例如Smith-Waterman比对,无空位比对,De Bruijn或组装图构建以及其他这样的操作)可用于各种更高级别的父算法中。例如,如本文所述,Smith-Waterman比对可以用于相对于参考基因组的DNA/RNAread映射和比对,但也可以用于基于单倍型的变异检测器使用,以在HMM分析和/或变异检测函数中,将候选单倍型与参考基因组比对,或与测序的read比对。因此,因此,在比对和变异检测(例如HMM)操作的执行中,通过通用软件函数调用暴露各种离散的低级硬件加速功能可以在整个基因组数据处理应用中利用相同的加速逻辑(例如处理引擎13)。
通过紧密的CPU/FPGA互连,在与本文描述的各种FPGA硬件引擎13的通信上具有分布式而非集中式CPU 1000软件控制也是实用的。在多线程,多核和多CPU软件设计的广泛实践中,许多软件线程和进程无缝地进行通信和协作,而无需任何中央软件模块,驱动程序或线程来管理相互通信。在这种格式中,这是实用的,因为高速缓存一致的共享存储器对所有CPU中的所有内核中的所有线程都是可见的;在物理上,内核和CPU之间的一致的存储器共享通过处理器互连(例如,QPI或HT)上的相互通信而发生。
以类似的方式,如图36-38所示,这里提供的系统可以具有多个CPU和/或FPGA。这些CPU和/或FPGA可以处于紧密的CPU/FPGA互连配置中。这些配置包含多个线程(例如20a,b,c),以及在一个或多个内核和/或CPU上运行的多个进程(例如,1000a,100b和1000c)。这样,系统组件被配置用于以分布式方式彼此通信和协作,例如,在各种不同的CPU和/或FPGA硬件加速引擎之间,例如通过在各种CPU和FPGA之间使用高速缓存一致的内存共享。例如,如图36所示,多个CPU核1000a,1000b和1000c可以以这样的方式耦合在一起,以便共享一个或多个存储器(例如,DRAM 1014),和/或一个或多个高速缓存削减一个或多个层(例如,L1,L2,L3等)或与之相关的等级。同样地,如图38所示,在另一个实施例中,单个CPU 1000可以被配置为包括多个内核1000a,1000b和1000c,其可以以这样的方式耦合在一起,以便共享一个或多个存储器(例如,DRAM 1014),和/或具有与其相关联的一个或多个层或级别的一个或多个高速缓存1014a。
因此,在任一实施例中,从一个或多个CPU核1000传递到硬件引擎13(例如FPGA)的从一个或多个软件线程20传递的数据可以在每个设备都可以看到的共享存储器1014或其高速缓存和/或层中连续地和/或无缝地更新,反之亦然。另外,请求处理共享存储器1014中的数据或更新其中的通知结果可以通过适当配置的总线(例如,DDR4总线)在软件和/或硬件之间(例如,可以在共享内存中实现的队列中)发信号通知。用于控制,传输和数据保护的标准软件机制(例如信号量,互斥量和原子整数)也可以类似地用于软件/硬件协调。
因此,在一些实施方式中,如图36所示,由于通过紧密的CPU/FPGA互连上的高速缓存一致的内存共享,不需要FPGA 7具有其自己的专用存储器14或其他外部资源,因此在不使用扩展卡的情况下,将FPGA 7更紧凑地和原生地封装在传统的CPU 1000主板中变得更加实用。例如,如图34A,34B和图35所示,多种封装替代方式可供选择。具体地,FPGA 7可以安装在CPU插座中的多CPU主板上,如图34A和34B所示,例如通过使用适当的插入器(例如小型PC板2),或者在CPU芯片封装2a内的FPGA管芯的替代线键合封装,其中CPU插座引脚被适当地路由到FPGA引脚,并且FPGA 7包括电源、接地互连,处理器互连3(QPI,HT等),以及其他系统互连。因此,FPGA管芯和CPU管芯可以包括在相同的多芯片封装(multi-chip package;MCP)中,在封装2a内进行必要的互连(包括电源,接地和CPU/FPGA互连)。管芯间互连可以通过管芯到管芯的引线键合,或通过互连到公共基底或内插器,或通过在堆叠的管芯之间的键合焊盘或硅通孔来实现。
另外,在各种实施例中,FPGA和CPU核可以使用系统级芯片(system-on-a-chip;SOC)方法在单个管芯上制作,如图35所示。在任何实施例中,可以在FPGA 7内实例化定义逻辑17,以通过CPU/FPGA互连3(例如通过适当的专用协议)进行通信,并且通过适当的协议将来自内部FPGA引擎13的存储器访问请求服务,转换和/或路由到CPU/FPGA互连3,到共享存储器1014a。此外,这些逻辑中的部分或全部可以加固到定制芯片中,以避免耗尽FPGA逻辑空间,例如硬化逻辑可能驻留在CPU芯片和/或FPGA芯片或单独芯片上。而且,在任何这些情况下,可在单个封装(MCP或SOC)内适当实现电源和散热要求。此外,可以选择FPGA大小和CPU内核数量以保持在安全功率范围内,和/或动态方法(时钟频率管理,时钟门控,内核禁用,功率岛等)可用于根据改变CPU和/或FPGA计算需求来调节功耗。
所有这些封装选项都具有多个优点。紧密集成的CPU/FPGA平台与各种尺寸的标准主板和/或系统机箱兼容。如果通过CPU插槽中的插入器安装FPGA,如图34A和34B所示,则可以采用至少一个双插座主板1002。在其他实施例中,可以采用四插槽主板,以允许实现3个CPU和1个FPGA,2个CPU和2个FPGA或1个CPU和3个FPGA等配置。如果每个FPGA与CPU(MCP或SOC)位于相同的芯片封装中,则可以在非常小的机箱中使用单插槽主板(尽管描绘了双插座主板);这也很好地向上扩展,例如,4个FPGA和在4插槽服务器主板上的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测序仪设置在机箱内的测序装置(样品和试剂存储,流体管和控制,传感器阵列,主图像和/或信号处理)以及标准或定制服务器主板。该标准或定制服务器主板连接到测序装置,且用于测序控制和数据采集。如本文所述,可以在这样的定序器中实现紧密集成的CPU+FPGA平台,例如通过在其现有主板的CPU插槽中简单地安装一个或多个FPGA/插入器和/或FPGA/CPU程序包,或者通过安装具有紧密耦合的CPU及FPGA的新主板,如本文所公开的。此外,所有这些封装选项都可以配置为便于轻松部署紧密集成的CPU+FPGA平台,例如云可访问和/或数据中心服务器机架,其包括具有极高可靠性/可用性的紧凑/密集服务器。
因此,根据本文的教导,存在许多处理阶段,用于从DNA(或RNA)测序到映射和比对,到排序和/或去除重复,到变异检测的数据,其可以根据所采用的一级和/或二级和/或三级加工技术及其应用而变化。这样的处理步骤可以包括以下中的一个或多个:来自定序器的电测量的信号处理,来自定序器的光学测量的图像处理,使用处理的信号或图像数据的碱基检测,以确定最可能的核苷酸序列和置信度分数,过滤测序read低质量或多克隆簇,检测和修剪适配器,关键序列,条形码和低质量read端,以及从头序列组装,生成和/或利用De Bruijn图和/或序列图,例如De Bruijn和序列图构建、编辑、修剪、去除、修复、着色、注释、比较、转换、分裂,拼接、分析、子图选择、遍历、迭代、递归、搜索、过滤、导入、导出,包括映射read到参考基因组,比对read到参考基因组中的候选映射位置,映射到参考区域的read的局部组装,通过比对位置排序read,标记和/或去除重复read,包括PCR或光学复制,重复比对多个重叠read以确保插入一致性,碱基质量评分重新校准,变异检测(单个样品或联合),结构变异分析,拷贝数变异分析,体细胞变异检测(例如,仅肿瘤样品,匹配的肿瘤样品/正常样品,或肿瘤样品/不匹配的正常样品等),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的协作来加速一个或多个(例如所有这些操作),例如在分布式处理模型中,如本文所述。例如,在某些情况下(加密,一般压缩,read映射和/或比对),整个操作函数可以基本上或完全在定制FPGA逻辑中实现(例如通过硬件设计方法,例如RTL),例如CPU软件主要用于编译大数据包,以通过工作线程20进行预处理的函数,例如将数据聚合到由一个或多个硬件实现的处理引擎处理的各种作业中,并且馈送各种数据输入,例如在先进先出格式,到一个或多个FPGA引擎13,和/或从其接收结果。
例如,如图39所示,在各种实施例中,工作线程生成各种作业数据分组,其可被编译和/或流向到较大的作业分组中,所述较大的作业分组可排队和/或进一步聚合以通过DDR3到FPGA准备传输,例如,在高带宽,低延迟,点对点互连协议(例如,QPI 3)上传输,可以根据传输到FPGA的特定数据集来缓冲数据。一旦FPGA 7接收到封装数据,例如以高速缓存一致方式,就可以对其进行处理并将其发送到一个或多个专用簇11,从而可以进一步将其引导到一组或多组处理引擎,以便由此进行处理。根据这里描述的一个或多个管道操作。
一旦被处理,结果数据然后可以被发送回簇并排队等待,再通过紧耦合点到互连点到CPU发送回来以进行后期处理。在某些实施例中,可以在后处理之前将数据发送到去聚合器线程。一旦发生了后处理,就可以将数据发送回可能正在等待数据的初始工作线程20。这种分布式处理对于上面公开的函数特别有益。特别地,这些函数可以通过它们的算法复杂性(尽管具有非常高的净计算负担)非常有限的事实来区分,并且它们每个可以被配置为在其各种子操作中具有相当统一的计算成本。
然而,在各种实施例中,不是处理大分组中的数据,而是可以执行较小的子程序或离散函数协议或元素,例如,对应该数据上该管道函数,与管道的一个或多个函数有关,而不是执行整个处理。因此,一个有用的策略可能是在任何给定的运算中识别一个或多个关键的计算密集型子函数,然后在自定义FPGA逻辑(硬件加速)中实现该子函数,例如用于密集子函数。然而,如本文所述,参看图39,在软件中实现操作的平衡,并理想化大部分或大部分算法复杂性,以便在CPU/GPU/QPU上运行。
通常,许多基因组数据处理操作的典型特征是,一小部分算法复杂度占整个计算负载的大部分。例如,作为典型示例,给定函数性能的算法复杂度的20%可能占计算负载的90%,而剩余的80%的算法复杂度可能仅占计算负载的10%。因此,在各种实施例中,这里描述的系统组件可以被配置为实现高(例如,20%或更高)复杂度部分,以便在定制FPGA逻辑中非常有效地运行,这可以是易处理的并且可以维持在硬件设计,因此可以配置为在FPGA中执行;这反过来可以将CPU计算负载降低90%,从而实现10倍的整体加速。其他典型示例可能更加极端,例如10%的算法复杂度可能占计算负载的98%,在这种情况下,如本文所述,将FPGA加速应用于10%复杂度部分甚至更容易,但是也可以实现高达50倍的净加速度。在期望极端加速处理的各种情况下,这些函数中的一个或多个可以由量子处理单元执行。
然而,当在紧密集成的CPU/GPU+FPGA平台中实现时,这种“零碎”或分布式处理加速方法可能更实用,而不是在松散集成的CPU/GPU+FPGA平台上实现。特别地,在松散集成的平台中,可以选择要在FPGA逻辑中实现的部分(例如,函数),以便最小化到FPGA引擎的输入数据的大小,并且最小化来自FPGA引擎的输出数据。FPGA引擎,例如对于每个处理的数据单元,并且另外可以被配置为使软件/硬件边界保持高延迟。在本实施例中,可以在松散集成的平台上强制通过某些低带宽/高等待时间切割点来绘制硬件和软件部分之间的边界,当优化算法复杂度和计算负载的划分时,这些划分可能是不希望的。这通常会导致扩大硬件部分的边界,包括在硬连线格式中算法复杂度的不希望的大部分,或者在缩小硬件部分的边界时,不希望地排除具有密集计算负载的部分。
相比之下,在紧密集成的CPU/GPU+FPGA平台上,由于高速缓存一致的共享存储器和高带宽/低延迟的CPU/GPU/FPGA互连,低复杂度/高计算可以非常精确地选择基因组数据处理操作的加载部分,以便在定制的FPGA逻辑中实现(例如,通过本文所述的硬件引擎)具有优化的软件/硬件边界。在本实施例中,即使数据单元在期望的软件/硬件边界处很大,也可以仅通过将指针传递到特定数据单元而有效地切换到FPGA硬件引擎进行处理。特别地,在本实施例中,如图33B所示,FPGA 7的硬件引擎13可以不需要访问存储在DRAM 1014内的数据单元的每个元件;相反,它可以访问必要的元素,例如,在高速缓存1014a内,通过CPU/GPU高速缓存服务的低延迟互连3'进行有效的小访问,从而比整个数据单元必须消耗更少的聚合带宽。与必须访问和/或传输整个数据单元到FPGA 7相比,消耗的总带宽更少,例如通过DRAM 1014的DMA,通过松散的互连3,如图33A所示。
在实施例中,硬件引擎13可以在CPU/GPU存储器1014中就地将处理结果注释到数据单元中,而不用DMA将数据单元的整个副本流向到CPU/GPU存储器。即使期望的软件/硬件边界不适合于软件线程20来对硬件引擎13进行高延迟,非阻塞排队切换,它也可能潜在地对硬件引擎13进行阻塞函数检测,在硬件引擎完成之前暂停一小段时间,从而缓存一致的共享内存,低延迟/高带宽互连以及分布式软件/硬件协调模型大大减少了延迟,如图33B所示。
在特定实施例中,因为信号/图像处理和碱基检测的特定算法和要求从一个定序器技术变化到另一个定序器技术,并且因为来自定序器的传感器的原始数据的量通常是巨大的(这在信号/图像处理之后被减少到极大,并且在碱基检测之后仅仅是巨大的),这种信号/图像处理和碱基检测可以在定序器本身内有效地执行,或者在通过高带宽传输信道连接到定序器的附近计算服务器上执行。然而,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平台实现。此外,这种加速平台(例如,包括一个或多个FPGA和/或QPU硬件引擎)对于在云端系统中的实现是有用的,如本文所述。例如,信号/图像处理、碱基检测、映射、比对、排序、去除重复、缺失和/或变异检测算法或其部分,通常需要大量的浮点和/或定点数学,特别是加法和乘法。这些函数也可以配置成由一个或多个量子处理电路执行,例如在量子处理平台中实现。
特别地,大型现代FPGA/量子电路包含数千个高速乘法和加法资源。更具体地,这些电路可以包括可以在它们上面或由它们实现的定制引擎,这些定制引擎可以被配置为以远远超过简单通用CPU的能力的速率执行并行算术运算。同样,简单的GPU具有更多可比较的并行算术资源。但是,GPU通常具有笨拙的架构限制和编程限制,可能会阻止它们被充分利用。因此,这些FPGA和/或量子处理和/或GPU算术资源可以通过设计布线或以其他方式配置,以精确地以接近100%的效率以所设计的方式操作,例如用于执行本文中的函数所必需的计算。因此,可以将GPU卡添加到具有紧密集成的CPU和/或FPGA的主板上的扩展槽中,从而允许所有三种处理器类型协作,尽管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的性能,从而加速信号/图像/碱基检测/映射/比对/变异处理。可以根据需要实现这种增量发展,以跟上各种一级和/或二级和/或三级处理技术的增加的吞吐量。
因此,read映射和比对(例如,相对参考基因组的一个或多个read的比对,以及排序、去除重复和/或变异检测)可以从这样的GPU和/或FPGA和/或QPU加速中受益。具体地,映射和比对和/或变异检测或其部分可以部分地或完全地实现为定制FPGA逻辑,诸如使用“待映射和/或比对和/或变异检测”的read流向CPU/GPU内存进入FPGA映射和/或比对和/或变异检测引擎,并且映射和/或比对和/或变异检测的read记录流回来,其可以进一步在排序和/或变异检测的执行中在板上流回。这种类型的FPGA加速在松散集成的CPU/GPU+FPGA平台上工作,并且在本文所述的配置中可能工作得非常快。然而,通过转向紧密集成的CPU/GPU/QPU+FPGA平台可以获得一些额外的优势。
因此,关于映射、比对以及变异检测,在一些实施例中,如本文所述,紧密集成的CPU/GPU+FPGA和/或量子处理平台的共享优点是映射和/或比对和/或变异检测加速,例如硬件加速,可以有效地分成几个离散的计算密集型运算,例如种子生成和/或映射,种子链形成,成对的末端修复扫描,无空位比对和有空位比对(Smith-Waterman或Needleman-Wunsch),De Bruijn图形形成,执行HMM计算等。其中,CPU和/或GPU和/或量子计算软件执行较轻(但不一定不太复杂)的任务,并且可以根据需要对离散硬件和/或其他量子计算引擎进行加速调用。在典型的松散集成的CPU/GPU+FPGA平台中,由于大量数据在步骤之间来回传输和高延迟,这样的模型可能效率较低,但在具有缓存一致的共享内存,高带宽/低延迟互连和分布式软件/硬件协调模型的紧密集成的CPU及FPGA,GPU及FPGA和/或量子计算平台中可能更有效。另外,关于变异检测,隐藏马尔可夫模型(HMM)和/或动态编程(dynamicprogramming;DP)算法(包括维特比(Viterbi)和前向算法)可以实现与碱基检测/映射/比对/排序/去除重复相关联的运算。例如,计算在配置中解释观察到的传感器测量值的最可能的原始序列,以便很好地适合于本文所述的FPGA和量子电路的并行蜂窝布局。
具体地,在分布式处理配置中有效利用硬件和/或软件资源可以通过将硬件和/或量子计算加速减少到离散的计算密集型函数而产生。在本实施例中,本文公开的若干函数可以在单片纯硬件引擎中执行,以便减小计算密集度,然而在算法上仍然可能复杂,因此可能消耗大量的物理FPGA资源(查找表,触发器,块RAM等)。在本实施例中,将各种离散函数的一部分或全部移动到软件可能占用可用的CPU周期,以换取放弃大量的FPGA区域。在某些实施例中,释放的FPGA区域可用于为计算密集型映射/对齐/变异检测子函数建立更大的并行性,从而增加加速,或用于其他基因组加速函数。通过在一个或多个专用量子电路中实现量子计算平台实现的计算密集型函数也可以实现益处。
因此,在各种实施例中,通过配置在纯硬件或纯量子计算实现中,本文公开的一个或多个函数的算法复杂度可以稍微减小。然而,一些运算(例如比较配对端read和成对候选物和/或执行精细映射质量(subtle mapping quality;MAPQ)评估)代表非常低的计算负载,因此可以受益于CPU/GPU和/或量子计算软件中更复杂和更精确的处理。因此,通常将硬件处理减少到特定的计算密集型运算将允许在CPU/GPU部分中采用更复杂和更精确的算法。
此外,在各种实施例中,本文公开的映射/比对/排序/去除重复/变异检测操作的全部或部分可以以这样的方式配置,也即可以在硬件中和/或通过一个或多个量子电路以高等级采用更复杂的计算算法,其中,被调用的计算密集型硬件和/或量子函数被配置为以动态或迭代顺序执行。特别地,可以以某种方式实现单片纯硬件/量子处理设计,以便作为线性管道更有效地运行。例如,在处理期间,如果一个Smith-Waterman比对显示出逃离该得分带(例如如上所述的条带)的真实比对路径的证据,则可以调用另一个Smith-Waterman比对来纠正这个问题。因此,这些配置实质上可以将FPGA硬件/量子加速减少到离散函数,例如程序抽象的形式,这将允许在其上容易地构建更高级别的复杂性。
另外,在各种实施例中,可以通过将硬件和/或量子加速减少到离散的计算密集型函数,以及配置系统以便在CPU和/或GPU的软件中执行其他不太密集的部分,来改进映射/比对/变异检测算法及其特征内的灵活性。例如,尽管可以在FPGA中修改和重新配置硬件算法,但是通常对硬件设计的这种改变(例如,通过固件)可能需要几倍于软件代码的类似改变的设计工作量。在本实施例中,映射和比对以及排序和去除重复和/或变异检测的计算密集部分(例如种子映射,种子链形成,配对端修复扫描,无空位比对,有空位比对和HMM)是稳定函数,并且不需要频繁的算法更改。因此,这些函数可以在硬件中适当地优化,而可以由CPU/GPU软件执行的其他函数更适合于算法的增量改进,并且在软件中更加容易改进。但是,一旦完全开发可以在硬件中实现。一个或多个这些函数可以配置为在量子处理机器的一个或多个量子电路中实现。
因此,在各种实施例中,变异检测(关于DNA或RNA,单个样本或联合样本,种系或体细胞等)也可受益于FPGA和/或量子加速,例如关于其各种密集函数计算。例如,如上所述,单倍型碱基检测器通常是最高的计算密集度运算。如上所述,该单倍型碱基检测器调用基于来自围绕潜在变异的窗口内提供的环境的证据。这些运算包括将候选单倍型(例如,代表所讨论的基因组基因座中至少一个采样链的真实序列的理论的单链核苷酸序列)与每个定序仪读取的read进行比较,以鉴于单倍型的真实性,评估观察到的read的条件概率。
通过MRJD,对隐马尔可夫模型(对HMM)和/或对确定隐马尔可夫模型(PD-HMM)计算中的一个或多个可以用来执行这样的操作,该计算为通过动态编程算法对在测序或样本制备(PCR等)中的错误的可能组合的概率进行求和。因此,相对于此,系统可以被配置为使得一对HMM或PD-HMM计算可以由一个或多个(例如,并行的)FPGA硬件或量子处理引擎加速,而CPU/GPU/QPU软件可以配置成在松散集成或紧密集成的CPU+FPGA或GPU+FPGA或CPU和/或GPU+FPGA和/或QPU平台中执行基于父单倍型的变异检测算法的其余部分。例如,在松散集成中,软件线程可以从与所选活跃区域(参考基因组的窗口或连续子集)重叠的read构建和制备De Bruijn和/或组装图,从该图中提取候选单倍型,以及为DMA传输到FPGA硬件引擎针对成对HMM或PD-HMM比较排队单倍型read。然后,相同或其他软件线程可以接收排队的HMM结果并将DMA从FPGA传输回CPU/GPU存储器,并执行基因分型和贝叶斯概率计算以进行最终变异检测。当然,可以配置这些函数中的一个或多个以便在一个或多个量子计算平台上运行。
例如,如图38所示,CPU/GPU 1000可以包括一个或多个(例如,多个)线程20a,20b和20c,每个线程可以访问相关联的DRAM 1014,该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),映射模块,比对模块,排序模块和/或变异检测模块。具体地,在特定实施例中,平台可以包括第一集成电路,诸如形成中央处理单元(CPU)的集成电路和/或响应于一个或多个软件算法的图形处理单元(GPU),所述软件算法被配置为指示CPU/GPU执行一组或多组基因组分析函数,如本文所述,其中,CPU/GPU包括与该主板连接的第一组物理电子互连。在其他实施例中,该平台提供了量子处理单元(quantum processing unit;QPU)。其中,QPU包括一个或多个量子电路,其被配置用于执行本文公开的一个或多个函数。在各种实施例中,该平台提供了存储器。其中,该存储器也可以附接到该主板并且还可以通过第一组物理电子互连的至少一部分与CPU和/或GPU和/或QPU电连接。在本实施例中,存储器可以被配置用于存储基因组数据的多个read,和/或至少一个或多个遗传参考序列,和/或一个或多个该遗传参考序列的索引,例如哈希表(hashtable)。
另外,平台还可以包括一个或多个第二集成电路。其中,每个第二集成电路形成现场可编程门阵列(field programmable gate array;FPGA)或ASIC,或者具有第二组物理电子互连的结构化ASIC,以通过点对点互连协议连接于CPU和内存。在本实施例中,FPGA(或结构化ASIC)可以由固件编程以配置一组硬连线数字逻辑电路,该硬连线数字逻辑电路通过多个物理互连互连,以执行第二组基因组分析函数,例如映射,比对,排序,去除重复,变异检测,例如HMM函数等。具体地,FPGA的硬连线数字逻辑电路可以设置为一组处理引擎,以在基因组分析平台的序列分析管道中执行一个或多个预先配置的步骤。其中,处理引擎的集合包括映射和/或比对和/或排序和/或去除重复和/或变体检测模块中的一个或多个,这些模块可以由处理引擎的单独或相同子集形成。
例如,关于变异检测,成对HMM或PD-HMM计算是基于单倍型的变异检测协议中最高的计算密集程度的步骤之一。因此,通过在一个或多个FPGA或量子处理引擎中加速该步骤,可以极大地改善变异检测速度,如本文所述。然而,加速在其他FPGA和/或QP引擎中的其他计算密集型步骤可能会带来额外的好处,以实现变异检测或其中一部分的更大加速,或降低CPU/GPU负载和CPU/GPU核所需的数量,或两者兼而有之,如图38所示。
关于变异检测,可以在FPGA和/或量子处理引擎中实现额外的计算密集型函数,该额外的计算密集型函数包括:可检测区域检测,该可检测区域检测为选择处理由比对read的足够深度和/或质量所覆盖的参考基因组区域;活跃区域检测,该活跃区域检测为识别具有可能变异的非平凡证据的参考基因组基因座,并且选择处理围绕这些基因座的充足环境的窗口作为活动区域;De-Bruijn或其他组装图构建,与活跃区域重叠的read和/或来自那些read的K-mers组装成图形,通过将它们连接到图表中的参考主干上以修复悬挂的头部和尾部路径,从K-mers转换到图的序列代表,合并类似的分支,否则简化图;从组装图中提取候选单倍型,以及将候选单倍型与参考基因组比对,例如通过Smith-Waterman比对,例如,从每个单倍型代表的参考序列确定变异(SNP和/或插入缺失),并使其核苷酸位置与该参考序列同步。
所有这些函数可以实现为FPGA内的高性能硬件引擎,和/或量子计算平台的一个或多个量子电路。然而,从变异检测软件中的许多集成点调用这样的各种硬件加速函数可能在松散耦合的CPU/GPU/QPU+FPGA平台上变得低效,因此紧密集成的CPU/GPU/QPU+FPGA平台可能是理想的。例如,各种逐步处理方法,例如:从De Bruijn图或其他组装图中构建、准备及提取单倍型,可以从紧密集成的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互连实现。
相应的,除了将序列read映射及比对至参考基因组,还可以“重建”组装read,例如,在没有参考基因组的情况下,例如可以通过检测read之间的明显重叠(例如,在read堆积中,他们完全或大部分相同),将他们连接入更长的序列、重叠群、支架或图表。这种组装也可以在本地完成,例如将所有待映射的read应用至一给定的染色体或其一部分。这种方式的组装还可以为将一参考基因组或一个参考基因组片段结合到组装的结构中。
在此实施例中,由于将不完全一致的read序列连接在一起的复杂性,故可以采用一图形结构,例如,如前所述,当重叠read可能在一个片段中的单个序列上一致,但在相邻片段中分支成多个序列时。因此,这样的装配图可以是序列图,其中每个边缘或节点代表一个核苷酸或一个核苷酸序列,该序列被认为与相连边缘或节点中的序列邻接。在特定实施例中,这样的装配图可以是k-mer图,其中每个节点代表一个k-mer,或者代表固定长度k(通常的)的核苷酸序列,并且其中连接的节点被认为在较长的观察序列中彼此重叠,通常的,被k-1个核苷酸重叠。在不同的方法中,可以在一个或多个序列图和k-mer图之间进行一个或多个变换。
尽管装配图用于基于单倍型的变异检测,并且所使用的一些图的处理方法是相似的,但是还是有重要的区别。重建组装图通常要大得多,并且使用更长的k-mers。尽管变异检测装配图被限制为非常结构化和相对简单,例如没有循环和没有沿着参考序列主干的源到汇流动,但是重建装配图往往更加非结构化和复杂,循环、悬空路径和其他异常不仅被允许,而且会被特殊分析。重建装配图着色有时会被采用,将“颜色”分配给节点和边缘表示,例如,它们来自哪个生物样品,或者匹配一个参考序列。因此,重建装配图,需要使用更宽泛多样的图形分析和处理函数,这通常是迭代或递归的,特别是由于重建装配图的尺寸和复杂性,这些处理函数往往是计算密集型的。
因此,如前所述,在紧密集成的CPU/GPU/QPU+FPGA平台上,这种图形处理的理想模型是将这种图形保留在缓存一致的共享存储器中,用于在CPU/GPU/QPU软件和FPGA硬件函数之间的交替处理。在此实施例中,处理给定图形的软件线程可以迭代地命令各种计算密集型图形处理步骤,这些处理步骤由硬件引擎执行,然后检查结果,从而确定出由硬件执行的后续步骤,例如通过进行适当的硬件调用执行的后续步骤。如前所述,这种处理模式在紧密集成的CPU+FPGA平台上实现,附带缓存一致的共享内存和高带宽/低潜伏期CPU/FPGA互连,因此非常有益。
另外,如下文所述,三级分析包括基因组处理,该基因组处理可遵循图组装和/或变异检测,在临床应用中,该基因组处理可包括变体注释、表型预测、疾病测试和/或治疗反应预测,如本申请所述。在如此紧密集成的CPU/GPU/QPU+FPGA平台上执行三级分析是有益的,原因是这样的,平台配置能够有效加速计算密集型的初级和/或二级处理,并且为了方便和缩短周转时间,理想的做法是在同一平台上继续进行三级分析,并最大限度地减少大型基因组数据文件的传输和复制。因此,松散集成或紧密集成的CPU/GPU/QPU+FPGA平台是一个不错的选择,但是紧密耦合的平台可能会带来额外的好处,因为三级分析步骤和方法因应用程序而异,并且在任何情况下,当计算密集型步骤减缓三级分析时,这些步骤的惯用FPGA加速都可以以一优化的方式进行。
在一实施例中,在紧密集成的CPU/GPU/QPU和/或FPGA平台上进行三级分析的一个特别的好处是,响应部分或中间的三级结果,利用二级处理的CPU/GPU/QPU和/或FPGA加速,能够迭代地重新分析基因组数据,这些还额外受益于紧密集成配置。例如,在三级分析检测到可能的表型或疾病之后,但是对于检测是真还是假的仍有怀疑,可以对影响检测的特定read和参考区域进行集中的二级再分析,从而提高相关变异检测的准确性和可信度,进而提高检测的可信度。此外,如果三级分析确定了被分析个体的祖先或结构变异基因型的信息,可以用不同的或修正的参考基因组重复进行二级分析,这对于特定个体更合适,因此提高了变异检测的准确性,并提高了进一步的三级分析步骤的准确性。
然而,如果三级分析是在初级和二级处理(可能在单独的平台上加速)后的单一CPU平台上完成的,那么用二级处理工具重新分析可能太慢,对三级分析平台本身没有用处,另一种选择是传输到一个速度更快的平台,但是这样速度还是非常慢。因此,在三级分析平台上没有任何形式的硬件或量子加速的情况下,一级和二级处理通常必须在三级分析开始之前完成,而这没有重新分析或迭代二级分析和/或分析函数的管道化的可能性。但是在FPGA和/或量子加速平台上,特别是在紧密集成的CPU和/或GPU和/或QPU和/或FPGA平台上,二级处理效率最高,迭代分析变得实用和有用。
因此,如前所述,此处揭示的模块可以在芯片的硬件中实现,例如通过芯片中的硬连线实现,并且在此实施例中,与在软件中实现时相比,例如,在软件中有最少的指令要提取、解读和/或执行,它们的函数可以以更快的速度、更高的精度实现。此外,在不同实施例中,由这些模块中的一个或多个执行的函数可以被分布开,使得各种函数可以被配置以便于由主机CPU和/或GPU和/或QPU软件来实现,而在其他实施例中,各种其他函数可以由相关FPGA的硬件来执行,例如在此实施例中,两个或多个设备例如以无缝方式彼此执行它们各自的函数。为此,CPU、GPU、QPU和/或FPGA或ASIC或结构化ASIC可以紧密耦合,例如通过低潜伏期、高带宽互连耦合,例如QPI、CCVI、CAPI等。因此,在一些实施例中,由这些模块中的一个或多个执行的高计算密集型的函数,可以由一个量子处理器执行,这个量子处理器是由一个或多个量子电路实现的。
因此,提供独特的硬件和/或量子处理设施,本申请揭示的模块可以根据它们的操作参数直接运行,例如不需要提取、解读和/或执行指令,例如当仅在CPU软件中实现时。此外,可以进一步减少存储器需求和处理时间,例如芯片内的通信是通过文件进行的,这些文件例如存储在本地的FPGA/CPU/GPU/QPU高速缓存器中,例如通过高速缓存一致的方式,而不是通过大量访问外部存储器。当然,在一些实施例中,芯片和/或卡的尺寸可以被设计为包括更多的存储器,例如更多在板存储器,从而增强并行处理能力,从而得到更快的处理速度。例如,在某些实施例中,本申请揭示的芯片可以包括嵌入式DRAM,使得该芯片不必依赖于外部存储器,这将会使得处理速度进一步提高,例如在可以使用Burrows-Wheeler算法或DeBrujin图的情况下,代替散列表和散函数,因可能在很多实施例中,散列表和散函数依赖于外部存储器,例如主机存储器。在此实施例中,一部分或整个管道的运行可以在6或10或12或15或20分钟或更短时间内完成,例如从开始到结束。
如前所述,这里可以有各种不同的方式,其中任何给定的模块都可以位于硬件上,或者位于远离硬件的位置,例如在云端可访问的服务器上。当以给定模块位于芯片上时,例如硬连线到芯片中的情况下,其函数可以由硬件来执行,然而,如果需要,该模块可以位于远离芯片的位置,在这一点上,平台可以包括必要的工具,用于将相关数据可以通过云访问发送到远程位置,例如服务器,例如量子服务器,这样特定模块的函数即可以用于根据用户选择的期望方案进一步处理数据。因此,平台的一部分可以包括基于网络的界面,用于根据本申请公开的一个或多个模块的函数来执行一个或多个任务。例如,在映射、比对和/或排序都是芯片上可能出现的模块的情况下,在不同实施例中,局部比对、重复标记、基本质量核心重新比对和/或变异检测中的一个或多个可以在云端发生。
具体地,一旦遗传数据已经生成和/或已经处理,例如在一个或多个初级和/或二级处理方案中,例如通过被映射、比对和/或排序,例如产生一个或多个变异检测文件,例如以确定来自受试者的遗传序列数据与一个或多个参考序列有何不同,本申请揭示的另一个方面可以指对生成的和/或处理的遗传数据执行一个或多个其他分析函数,例如用于进一步的,例如三级处理,如图40所示。例如,该系统可以被配置用于生成的数据的进一步处理和/或二级处理的数据的进一步处理,例如通过一个或多个三级处理管道700运行它,三级处理管道为例如一微阵列分析管道及一基因组中的一个或多个,例如为全基因组分析管道、基因分型分析管道、外体分析管道、表观基因组分析管道、宏基因组分析管道、微生物分析管道及基因分型分析管道,基因分型分析管道包括联合基因分型及变体分析管道,变体分析管道包括结构变体管道、体变体管道和GATK和/或MuteCT2管道,以及RNA测序管道及其他基因分析管道。
另外,在其他实施例中,可以提供处理800的一附加层,例如用于疾病诊断、治疗性治疗和/或预防性阻止,例如包括NIPT、NICU、癌症、LDT、AGBio和其他这种疾病诊断、预防和/或治疗,该治疗使用由一个或多个当前的一级和/或二级和/或三级管道产生的数据。例如,特定的生物分析管道包括基因组管道、表观基因组管道、元基因组管道、基因型分型管道、变体管道(例如GATK/MuteCT2管道)以及其他这样的管道。因此,本申请揭示的设备和方法可用于生成遗传序列数据,该数据随后可用于生成一个或多个变异检测文件和/或其他相关数据,这些数据进一步为与本申请揭示的设备和方法一致的其他三级处理管道的执行,例如用于特定和/或一般疾病诊断以及用于预防和/或治疗疗法和/或发展模式。例如,参见图41B、图41C和图43。
如前所述,这里提出的方法和/或系统可以包括遗传序列数据的产生和/或以其他方式的获取。这种数据可以从任何合适的来源生成或获取,例如通过一NGS或“芯片技术上的测序仪”。一旦生成和/或获取,这里的方法和系统可以包括对数据进行进一步处理,例如通过一个或多个二级处理方案600。所述二级处理方案可以包括所生成的遗传序列数据的映射、比对和排序中的一个或多个,例如以产生一个或多个变异检测文件,例如,从而确定来自受试者的遗传序列数据与一个或多个参考序列或基因组有何不同。本申请揭示的另一方面可涉及对所生成和/或处理的遗传数据(例如,二级结果数据)执行一个或多个其他分析函数,例如用于附加处理,例如,三级处理700/800,该处理可在与承载前述测序仪技术的芯片或芯片组相同的芯片或芯片组上执行或与之相关联。
相应的,在一第一实施例中,例如关于遗传序列数据的生成、获取和/或传输,如图37-41所示,这些数据可以在本地或远程产生,和/或其结果然后可以被直接处理,例如由本地计算资源100处理,或者可以被传输到远程位置,例如远程计算资源300,用于进一步处理,例如用于二级和/或三级处理,见图42。例如,所生成的遗传序列数据可以在本地直接处理,例如在测序和二级处理函数位于同一芯片组和/或同一设备现场10内的情况下。同样,所生成的遗传序列数据可以在本地间接进行处理,例如在测序和二级处理函数由不同设备分开进行的情况下,所述不同设备共享相同设施或位置,但是可以通过空间分隔,尽管空间是可通信连接的,例如通过本地网络10。在另一实施例中,遗传序列数据可以远程导出,例如通过远程NGS,并且结果数据可以通过一基于云端的网络30/50传输到一异地远程位置300,例如在地理上与序列发生器分离的位置。
如图40A所示,在不同实施例中,可以在现场提供数据生成设备,例如核苷酸测序仪110,例如其中测序仪是“芯片上的测序仪”或是一NGS,其中测序仪直接或与间接地本地计算资源100相关联,其中,间接地关联例如通过本地网络连接10/30。本地计算资源100可以包括一数据生成机构110和/或一数据获取机构120中的一个或多个,或者与所述数据生成机构110和/或所述数据获取机构120中的一个或多个相关联。这种机构可以是被配置用于生成数据和/或以其他方式获取数据的任何机构,该数据例如为与受试者或受试者组的一个或多个遗传序列相关的模拟、数字和/或电磁数据,例如其中的遗传序列数据是BCL或FASTQ文件格式。
例如,这样的数据生成机构110可以是主处理器,诸如测序仪,诸如芯片上的NGS及测序仪,或者用于生成遗传序列信息的其他类似机构。此外,这种数据获取机构120可以是用于接收数据的任何机构,该数据例如为生成的遗传序列信息;和/或,这种数据获取机构120与数据发生器110和/或计算资源100结合能够使其等同于一个或多个二级处理方案,该二级处理方案诸如为二级处理管道设备,用于对如本申请所述的生成和/或获取的序列数据运行一映射、比对、排序和/或变异检测方案。在不同的实施例中,数据发生器110和/或数据采集装置120可以联网结合,例如通过本地网络10联网结合,例如用于本地存储器200;或者可以通过基于本地和/或云端网络30联网结合,例如用于发送和/或接收数据,所述数据例如为与遗传序列信息的初级和/或二级处理相关的数字数据,该数据例如传输至远程位置或来自远程位置,该数据例如用于远程处理器300和/或存储器400。在不同实施例中,这些组件中的一个或多个可以通过本申请所述的混合网络可通信地耦合在一起。
所述本地计算资源100还可以包括编译器130和/或处理器140,或者所述本地计算资源100还可以以其他方式与编译器130和/或处理器140相关联,例如如本申请所述的,用于编译生成的数据和/或获取的数据和/或与其相关联的数据的编译器130,以及用于处理生成的数据和/或获取的数据和/或编译的数据,和/或用于控制所述系统1及其组件,例如用于执行初级、二级和/或三级处理。例如,可以采用任何合适的编译器,然而,在某些实施例中,为了系统组件之间的数据的传输的高效和一致,不仅可以通过如上文所讨论的紧密耦合配置来实现更高的效率,还可以通过执行一即时(JIT)计算机语言编译器配置来实现更高的效率。此外,在某一实施例中,处理器140可以包括工作流管理系统,所述工作流管理系统用于控制各种系统组件的函数,该函数与生成的、接收的和/或通过平台管道的各个阶段处理的数据相关。
具体地,这里所用的JIT是指,用于将获取和/或生成的文件格式从一种形式转换成另一种形式的设备、系统和/或方法。在广泛的使用结构中,本申请揭示的JIT系统可以包括一编译器130或其他计算架构,例如处理程序,其可以通过将各种代码从一种形式转换成另一种形式的方式来实现。例如,在一种实现方式中,一JIT编译器可以用于:将字节码或包含必须解释的指令的其他程序代码,转换成可以直接发送到相关联的处理器140,以近乎立即执行的指令,例如不需要由特定机器语言解释指令。特别地,在编写了编码程序(例如Java程序)之后,源代码语句可以由编译器(例如Java编译器)编译成字节码,而不是编译成包含与任何给定的特定硬件平台的处理语言相匹配的指令的代码。因此,这个字节码编译动作是与平台无关的代码,可以发送到任何平台,并在该平台上运行,而不管其底层处理器如何。因此,合适的编译器可以是被配置成将字节码编译成平台特定的可执行代码的编译器,这样可执行代码可以立即被执行。在这个实施例中,JIT编译器可以立即将一种文件格式转换成另一种文件格式,例如“即时”。
因此,如本申请所述,一个适当配置的编译器,能够克服本领域中的多种缺陷。具体地说,过去用特定语言编写的编译程序必须根据它实施的各个特定计算机平台来重新编译和/或重写。在本编译系统中,编译器可以被配置成只需编写和编译一次程序,并且一旦以特定形式编写,就可以几乎立即被转换成一种或多种其他形式。更具体地说,编译器130可以是一JIT,或者是另一种类似的动态翻译编译器格式,动态翻译编译器格式是能够以平台不可知的语言编写指令,该语言不需要根据它实施的特定计算机平台来重新编译和/或重写。例如,在特定的使用模型中,编译器可以用于将编译的字节码和/或其他编码指令解释为一给定的特定处理器可以理解的指令,以将一种文件格式转换成另一种文件格式,而不管计算平台如何。原则上,这里的JIT系统能够接收一个基因文件,例如表示遗传代码的基因文件,其中该文件是BCL或FASTQ文件,例如由遗传序列发生器生成,并且例如通过使用本申请公开的方法,快速将其转换成另一种形式,例如SAM、BAM和/或CRAM文件。
具体地,在不同实施例中,本申请公开的系统可以包括第一和/或第二编译器130a和130b,例如一虚拟编译机,其一次处理一个或多个字节码指令转换。例如,在本系统平台内,使用Java类型的即时编译器或其他适当配置的第二编译器,将允许将指令编译成字节码,然后可以将字节码转换成特定的系统代码,例如,就好像程序最初是在该平台上编译的一样。因此,一旦代码已经被编译和/或(重新)编译,例如由所述JIT编译器130编译,它将在计算机处理器140中更快地运行。因此,在不同实施例中,实时(JIT)编译或其他动态翻译编译可以被配置成在给定程序的执行期间完成,例如在运行时完成,而不是在执行之前完成。在此实施例中,这可以包括将代码翻译成机器代码或翻译成另一种格式的步骤,然后可以直接执行该步骤,从而允许一个或多个提前编译(AOT)和/或翻译。
更具体地,如在本系统中实现的,典型的基因组测序数据流通常以一种或多种文件格式产生数据,这些数据来自一个或多个计算平台,所述文件格式例如为一BCL、FASTQ、SAM、BAM、CRAM和/或VCF文件格式,或它们的等同形式。例如,一典型的DNA测序仪110(例如NGS)产生表示检测基础的原始信号,这些信号在这里被指定为read(例如在BCL和/或FASTQ文件中),其能够可选地被进一步处理,例如增强图像处理和/或压缩150。类似地,所生成的BCL/FASTQ文件的read随后可以在系统内被进一步处理,如本申请所述,以便生成映射和/或比对数据,该生成的数据(例如所述映射和/或比对read的)可以是SAM或BAM文件格式,或者可选地是CRAM文件格式。此外,SAM或BAM文件然后可以被处理,例如通过变异检测程序,以便产生变异检测文件,例如VCF文件或GVCF文件。因此,所有这些产生的BCL、FASTQ、SAM、BAM、CRAM和/或VCF文件一旦产生,都是(非常)大的文件,都需要存储在例如本地200或远程400的系统存储器架构中。这些文件中的任何一个的存储都是昂贵的。所有这些文件格式的存储都非常昂贵。
所述的实时(JIT)或其他双重编译或动态翻译编译分析可以在这里配置和部署,以降低这样高的存储成本。例如,一JIT分析方案可以在这里实现,以便仅存储一种格式的数据(例如,压缩的FASTQ或BAM等文件格式),这种格式向一种或多种文件格式(例如,BCL、FASTQ、SAM、BAM、CRAM和/或VCF等)提供了权限。这种快速文件转换过程可以通过快速处理基因组数据来实现,利用在此公申请中揭示的各个硬件和/或量子加速平台,例如用于在集成电路(例如FPGA)上的硬件引擎中,或者通过量子处理器映射、比对、排序和/或变异检测(或者其组件函数,例如去除重复、HMM和Smith-Waterman、压缩和解压缩等)的平台。因此,通过实施JIT或类似的分析以及这种加速,基因组数据可以以与正常文件访问的速度相当的速度被处理,以便即时生成所需的文件格式。因此,通过类似JIT的处理,可以实现节约出相当大的存储,而访问速度几乎没有损失或者没有损失。
具体地,对于在此产生的基因组数据的底层存储,两个通用选项是有用的,以便能够被类似JIT的处理访问,这些选项包括未比对的read的存储(例如,可能包括压缩的FASTQ、或未比对的压缩SAM、BAM或Cram文件)和比对的read的存储(例如,可能包括压缩BAM或Cram文件)。然而,由于此处公开的加速处理允许快速导出任何参考序列文件格式,例如,即时导出,因此可以选择用于存储的底层文件格式,以获得最小的压缩文件大小,从而降低存储成本。因此,由于未处理的(例如原始的未比对的)read数据的文件大小相对较小,存储未比对的read数据有一个优点是使得数据字段最小化。同样,存储经过处理和压缩的数据有一个优点,例如是以CRAM文件格式。
更具体地,鉴于此处公开的设备、系统及其使用方法可实现的快速处理速度,在许多情况下,可能不需要为每一个read存储映射和/或比对信息,因为该信息可以根据需要快速导出,例如即时导出。此外,虽然压缩的FASTQ(例如FASTQ.gz)文件格式通常用于遗传序列数据的存储,但是这种未比对的read数据也可以以更高级的压缩格式存储,例如在SAM、BAM或CRAM文件中进行后映射和/或比对,这可以进一步减小文件大小,例如通过使用紧凑的二进制表示法和/或更有针对性的压缩方法。因此,这些文件格式可以在存储之前被压缩,在存储之后被解压缩,并且被快速处理,例如即时处理,以便从另一个文件格式转换一个文件格式。
存储比对read的一个好处在于,每个read的大部分或全部序列内容可以被省略。具体而言,通过仅存储read序列和所选参考基因组之间的差异,例如在read的指定的变异排列位置,可以提高系统效率并节省存储空间。更具体地说,由于与参考的差异通常是稀疏的,所以,与原始read序列相比,这些差异的比对位置和列表通常可以更紧凑地存储。因此,在不同实施例中,一个比对read格式的存储,例如,当存储的数据与比对read的差异相关时,可能优于未比对read数据的存储。在此实施例中,如果一个比对的read和/或变异检测格式被用作底层存储格式,例如JIT过程,其他格式也可以被使用,其他格式例如为SAM、BAM和/或CRAM,压缩文件格式。
各种其他数据也可以与待存储的比对和/或未比对的read文件数据一起存储,该其他数据例如为本申请确定出的从各种计算指令中导出的元数据。这种计算数据可以包括read映射、比对和/或后续处理的数据,例如比对分数、映射置信度、从参考序列中编辑的距离等。在某些实施例中,这样的元数据和/或其他额外信息不需要保留在底层存储器中用于JIT分析,例如在那些可以即时再现的情况下,例如通过这里描述的加速数据处理从而可以即时再现的情况。
关于元数据,该数据可能是一个小文件,它指示系统如何从一种文件格式向后或向前转换成另一种文件格式。因此,元数据文件允许系统创建任何其他文件类型的位兼容版本。例如,从原始数据文件向前一文件格式,系统只需要访问和实现元数据的指令。除了快速文件格式转换,JIT还支持快速压缩和/或解压缩和/或存储,例如在基于基因组云端的内存缓存中。
在下面更详细地讨论,一旦序列数据被生成110,它就可以被本地存储200,和/或可以被远程存储,例如在云访问的“云存储”高速缓存400中。例如,一旦进入基因组云存储,数据可以在云端50上显示为可访问的,然后可以被进一步处理,例如,基本上可以立即被处理。当存在多个映射/比对/排序/变异检测系统100/300时,这尤其有用,例如可以在云端50界面的任一侧自动上传和处理数据,这些数据可以被进一步处理,例如使用这里描述的JIT技术。
例如,一种底层存储格式,用于JIT编译和/或处理,可以只包含最小的数据字段,例如参考序列中的read名称、碱基质量分数、比对位置和/或参考序列的方向,以及与参考序列的差异列表,例如每个字段可以以适合其数据类型的最佳方式压缩。各种其他元数据可以包括该存储文件和/或以其他方式与该存储文件相关联。在此实施例中,用于JIT分析的底层存储可以位于本地文件系统200中,例如在硬盘驱动器和固态驱动器上,或者可以位于网络存储资源中,例如NAS或对象或Dropbox类存储系统400中。特别是当基因组数据集产生出各种文件格式(如BCL、FASTQ、SAM、BAM、CRAM、VCF等)时,该基因组数据集可以被提交用于JIT处理和/或存储,JIT或其他类似的编译和/或分析系统可以被配置成:将数据转换成用于存储的单个底层存储格式。附加信息(例如元数据和/或其他信息(可能很小),通过加速基因组数据处理,必须再现所有其他所需格式)也可以与文件相关联并存储。这样的附加信息可以包括以下一项或多项,来确定性地再现相同的结果、用户界面等:要再现的文件格式列表、再现每种格式的数据处理命令、参考基因组的唯一ID(例如URL或MD5/SHA散列)、各种参数设置(例如如本申请所述的用于映射、比对、排序、变异检测和/或任何其它处理的参数设置)、处理过程中的随机化种子(例如利用伪随机化)。
在不同实施例中,在JIT或类似的动态翻译处理的数据,和/或分析系统中存储和/或检索的数据,可以以各种方式呈现给用户或其他应用。例如,一种选择是使JIT分析存储具有标准或定制的“JIT对象”文件格式,例如为了存储和/或检索ASAM、BAM、CRAM或其他定制文件格式,可提供用户工具,以使用本申请公开的加速处理程序,将JIT对象快速转换成期望的格式(例如,转换到本地临时存储200中)。另一种选择是向用户和用户应用程序呈现多种文件格式的外观,如BCL、FASTQ、SAM、BAM、CRAM、VCF,以这样的方式,文件系统可以利用JIT程序对各种文件格式进行访问,而只有一种文件类型需要保存,并且所有其他文件都可以即时的从这些文件类型中生成。一个进一步的选择是:形成用户工具然后接受特定的文件格式(BCL、FASTQ、SAM、BAM、CRAM、VCF等),该文件格式能够在被调用时自动被替代呈现为JIT对象,并且可以自动请求JIT分析以获得所需数据格式(例如BCL、FASTQ、SAM、BAM、CRAM、VCF等)的数据。
因此,JIT程序很有用,因JIT程序通过快速处理底层存储的压缩文件格式(例如BCL、Fastq、SAM、BAM、Cram、VCF等),提供从单个文件格式向对多种文件格式的访问。此外,甚至只要一单个文件格式被访问,JIT就仍然有用,因为相对于直接存储这种存取格式,压缩仍然可以实现。在此实施例中,底层文件存储格式可以不同于所访问的文件格式,和/或可以包含较少的元数据,和/或可以比所访问的格式更有效地压缩。此外,在此实施例中,如前所述,文件在存储之前被压缩,并且在检索时被解压缩,例如自动解压缩。
在不同实施例中,本申请提供的JIT分析方法也可以用于,通过互联网或其他网络传输基因组数据,以用最小化传输时间并减少消耗的网络带宽。特别地,在一个存储应用中,可以存储单个压缩的底层文件格式,和/或可以通过解压缩和/或加速基因组数据处理来访问一个或多个格式。类似地,在传输应用中,仅单个压缩的基础文件格式需要被传输,例如从一源网络节点向一目标网络节点传输,例如,其中基础格式可以主要针对最小的压缩文件大小来选择,和/或,所有期望的文件格式可以在目的节点由基因组数据处理或为基因组数据处理而生成,例如动实时生成。以这种方式,只有一种压缩数据文件格式需要用于存储和/或传输,从该文件格式可以导出其他各种文件格式。
因此,参阅图40A,如本申请所述的硬件和/或量子加速基因组数据处理,可以在源网络节点中(或由源网络节点)使用(以生成和/或压缩用于传输的底层格式)和在目标网络节点中(或由目标网络节点)使用(通过加速基因组数据处理来解压缩和/或生成其他期望的文件格式)。然而,即使只有源节点或目的节点中的一个使用硬件和/或量子加速基因组数据处理,JIT或其他动态翻译分析在传输应用中就继续有用。例如,发送大量基因组数据的数据服务器,可以利用硬件和/或量子来加速基因组数据处理,以便生成用于传输到不同目的地的压缩的底层格式。在此实施例中,每个目的地使用较慢的软件基因组数据处理,就能生成其他期望的数据格式。因此,尽管JIT分析的速度优势在目标节点处被削弱,但是传输时间和网络利用率仍然被有效地降低,并且由于其相应的硬件和/或量子加速基因组数据处理设备,源节点能够有效地服务于许多这样的传输。
进一步,在另一个例子中,接收大量基因组数据(例如来自各种来源)上传的数据服务器,可以利用硬件和/或量子加速基因组数据处理和/或存储,而各种来源节点可以使用在CPU/GPU上运行的较慢软件来生成压缩的底层文件格式以供传输。或者,根据JIT或其他动态翻译分析方法,硬件和/或量子加速基因组数据处理被由源节点和目的节点之间的一个或多个中间网络节点(例如网关服务器)利用,以用压缩的底层文件格式发送和/或接收基因组数据,从而获得减少传输时间和网络利用率的好处,而不会因过多的软件处理而使所述中间网络节点负担过重。
因此,从图40A可以看出,在某些实施例中,本地计算资源100可以包括编译器130(例如JIT编译器),并且还可以包括压缩器单元150,压缩器单元150用于压缩数据,所述数据例如为生成和/或获取的初级和/或二级处理数据(或三级数据),这些数据可以被压缩,例如在通过本地10和/或云30和/或基于混合云50的网络传输之前可以被压缩,例如在JIT分析过端程中,这些数据可以在传输和之后被解压缩使用。
如前所述,在不同实施例中,该系统可以包括第一集成电路和/或第一量子电路100,以便生成一个或多个映射、比对、排序、去除重复和/或变异检测结果数据,所述第一集成电路和/或第一量子电路100例如用于执行映射、比对、排序和/或变异检测操作。此外,该系统可以包括一进一步集成的电路和/或一量子电路300,例如用于三级处理,所述进一步集成的电路和/或量子电路300例如用于:在一个或多个基因组学和/或生物信息学管道分析的执行中使用结果数据。例如,由第一集成和/或量子电路100生成的结果数据,可以被,例如第一或第二集成和/或量子电路300,用于执行进一步的基因组学和/或生物信息学管道处理过程。具体地,基因组数据的二级处理可以由第一硬件和/或量子加速处理器100执行,以便产生结果数据,并且可以对该结果数据执行三级处理,例如其中进一步的处理由CPU和/或GPU和/或QPU300执行,所述CPU和/或GPU和/或QPU300可操作地耦合到第一集成电路。在此实施例中,第二电路300可以用于对由第一电路100产生的基因组变化数据执行三级处理。因此,从第一集成服务器获得的结果数据充当分析引擎,驱动进一步处理步骤,该进一步处理步骤可参本申请关于三级处理的描述,该进一步处理步骤例如由第二集成和/或量子处理电路300执行。
然而,在这些初级和/或二级和/或三级过程步骤的每一个中产生的数据可能是巨大的,需要非常高的资源和/或存储成本,例如存储在本地200或远程400。例如,在第一初级处理步骤中,可以例如从NGS110接收120生成的核酸序列数据110(例如BCL和/或FASTQ文件格式的)。不管该序列数据的文件格式如何,该数据都可以用在这里描述的二级处理方案中。直接从NGS接收和处理初级序列数据的能力是非常有用的,初级序列数据例如为BCL和/或FASTQ文件格式的。特别地,作为替代,将序列数据文件从NGS(例如BCL)转换成FASTQ文件,该文件可以直接从NGS(例如作为BCL文件)接收,并且可以被处理,例如该文件通过JIT系统接收和转换,例如在运行中,被转换成FASTQ文件,然后可以被处理,如本申请所述,以产生映射的、比对的、排序的、去除重复数据的和/或变异检测结果数据,然后可以被压缩,例如可以被压缩成SAM、BAM和/或变异检测结果数据。
因此,这些数据一旦产生,需要以某种方式存储。然而,这种存储不仅资源密集型,而且成本高昂。具体来说,在一个典型的基因组方案中,序列数据一旦生成,就被存储为一个大的FASTQ文件。然后,一旦被处理,该处理例如为经受一映射和/或比对方案,一BAM文件即被创建,该BAM文件通常也被存储,此增加了基因组数据存储的费用,例如必须将FASTQ和BAM文件都存储。此外,一旦BAM文件被处理(例如为经受不同的调用方案),就会产生一VCF文件,VCF通常也需要被存储。在此实施例中,为了充分提供和利用生成的遗传数据,FASTQ、BAM和VCF文件中的所有三个都可能需要存储,或者本地存储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,这也可能需要另一天或更长时间,并且生成的VCF文件也需要被存储,从而导致更多的资源成本和费用。更具体地说,在一个典型的例子中,人类基因组的每个FASTQ文件消耗大约90GB的存储空间。同样,典型的人类基因组BAM文件可能消耗大约160GB。VCF文件也可能需要存储,尽管这些VCF文件比FASTQ和/或BAM文件小得多。SAM和CRAM文件也可能在整个二级处理过程中生成,这些文件也可能需要存储。
本申请的先前技术中,从一个步骤到另一个步骤,例如从一种文件格式到另一种文件格式,计算量很大,因此,这些文件格式的所有数据通常都必须存储。这部分是由于这样一个事实,即如果用户曾经想要返回并重新生成一个或多个文件,则需要大量的计算资源和时间来重新执行重新生成各种文件所涉及的过程,从而招致高额的金钱支出。此外,在这些文件在存储之前被压缩时,这种压缩可能需要从大约2到大约5到大约10个小时或者更多的时间,在重新使用之前需要大约相同的解压缩时间。由于这些高昂的费用,通常的用户在存储之前不会压缩这些文件,并且通常会存储所有两种、三种或更多的文件格式,例如BCL、FASTQ、BAM、VCF,这就造成随着时间的推移,成本会增加。
因此,这里采用的JIT方案利用了由当前硬件和/或量子加速器实施的加速处理的速度,以便在处理和存储的时间和成本降低的情况下实现较高的效率。作为代替以不同文件格式存储相同的通用数据的2、3或更多副本,本申请只需要存储一种文件格式,并且在运行中,任何其他文件类型都可以被重新生成,例如使用这里讨论的加速处理平台。特别地,从存储FASTQ文件开始,本发明的设备和系统使得向后转到BCL文件,或者向前转到BAM文件,然后进一步转到VCF变得容易,例如在30分钟内,例如在20分钟内,或者大约在15或10分钟内,或者更短。
因此,使用本申请公开的硬连线/量子处理引擎提供的管道和处理速度,只需要存储单个文件格式,而其他文件格式可以容易且快速地从中生成。因此,不需要存储所有三种文件格式,而是需要存储单个文件格式,任何其他文件格式都可以从该文件格式中重新生成,例如在运行中,及时生成用户期望的进一处理步骤。因此,系统可以被配置为易于使用,例如如果用户简单地与图形用户界面交互,例如在设备的相关联的显示器上呈现,例如用户点击FASTQ、BAM、VCF等呈现在GUI上的按钮,则期望的文件格式即可被提供,而在后台,系统的一个或多个处理引擎可以执行重新生成请求的文件所需的加速处理步骤,该重新生成请求的文件以请求的文件格式从存储的文件中获取。
具体地,一BCL、FASTK、SAM、BAM、CRAM和/或VCF文件的一个或多个的压缩版本将被保存,同时还有一个小图元文件也被保存,该小图元文件包括系统如何运行以创建压缩和/或存储文件的所有配置。此类图元文件数据详细说明了这种特殊的文件格式(例如FASTQ和/或BAM文件)是如何生成的,和/或为了生成任何其他文件格式,向后或向前需要采取哪些步骤。本申请的后面将更详细地描述该过程。以一种方式,例如这种方式,该过程可以使用图元文件中存储的配置向前或向后进行。如果这种计算功能与在这种存储功能捆绑在一起,存储和经济成本可能会降低80%或更多。
因此,鉴于上述情况,并且如可以参考图40A所示的,提供了一种用于数据分析和存储的基于云端的服务器系统。例如,如本申请所公开的,使用云端可访问服务器系统,一用户可以连接一存储设备,所述存储设备例如用于存储输入数据。例如,远程用户可以访问系统以便将基因组学和/或生物信息学数据输入系统,所述系统例如用于存储和/或处理。特别地,系统的远程用户(例如使用本地计算资源100)可以访问系统1,以便上传基因组数据,所述基因组数据例如为一个或多个个体的一个或多个测序基因组。如下文详细描述的,该系统可以包括用户界面,例如为访问适当配置的API,这将允许用户访问BioIT平台以便上传待处理的数据,控制处理的参数,和/或从平台下载输出(例如结果数据)。
具体地,系统可以包括一API,例如S3或“S3样”对象,其允许访问系统的一个或多个存储器,所述API用于存储400和/或接收存储的文件。例如,可以提供一云端可访问API对象,例如其中API是可配置的,以便将数据文件存储在云端50中,例如存储在一个或多个存储桶500中,例如S3桶中。因此,系统可以被配置以允许用户访问远程存储的文件,例如通过S3或类S3API,例如在个人计算设备上通过基于云端的接口访问API。
因此,这个API可以被配置为允许对云端50的访问,从而将用户与本申请公开的一个或多个基于云端的服务器300连接,例如上传和/或下载一给定的存储文件,以使得文件可以在云端服务器300和本地硬盘驱动器100之间访问。例如,对于允许远程用户在服务器300上或从服务器300上提供、访问数据和/或下载数据,并且进一步在本地100或服务器300上对该数据运行一个或多个应用和/或计算,然后调用API将转换后的数据发送回云端50或从云端50发送回(例如用于存储200和/或进一步处理),这可能是有用的。这对于基因组数据的检索、分析和存储特别有用。
然而,典型的基于云端的数据存储(例如“S3”存储)价格昂贵。当存储大量与基因组学和生物信息学领域相关的数据时,这种费用会增加,这种成本往往会变得令人望而却步。此外,记录、上传和/或下载数据以使用(例如,本地100或远程300)和/或存储400所需的时间也使得这种昂贵的基于云的存储解决方案不那么有吸引力。本申请公开的解决方案克服了这些和其它类似需求。
具体地,作为替代这里所呈现的典型的“S3”或其它典型的基于云端的对象API,一替代的S3兼容API可以被实现以降低数据的传输速度和/或存储成本。在此实施例中,当用户想要存储文件,不通过典型的基于云端的API(例如S3API),而选择这种替代服务API系统(例如本申请公开的专有S3兼容API)这种替代服务API系统将启动计算实例(例如系统的CPU和/或FPGA实例,其将用于压缩文件),将生成一个元数据索引,该元数据索引是关于指示数据是什么和/或文件是如何生成的,等等,然后将通过一S3兼容存储类桶400来存储该压缩文件。因此,本申请提供的是基于云端50的服务,其采用可由替代API启动的计算实例300,以便在存储400之前压缩数据,和/或在检索时解压缩数据。因此,在此实施例中,存储的不是实际文件,而是原始文件的压缩版本。
具体地,在此实施例中,初始文件可以是处于第一格式,其可以经由专有的S3兼容API加载到系统中,该API接收文件(例如f1文件),然后可以对该文件执行计算函数,和/或然后压缩该文件(例如经由适当配置的CPU/GPU/QPU/FPGA处理引擎300压缩该文件),该引擎300然后准备压缩文件以存储为压缩文件(例如压缩f1文件)。然而,当需要检索这些压缩和存储的文件时,可以对其进行解压缩,然后可以将该解压缩的文件返回给用户。这种加速压缩和解压缩系统的优点在于,压缩文件的存储400意味着存储成本的不可思议的节省,通过本申请公开的系统,可以实现计算和/或压缩功能,使这一优点成为可能。
因此,由于本系统实现了快速和高效的计算和/或压缩功能,用户甚至不需要知道文件在存储前被压缩,随后存储的文件即被被解压缩并呈现在用户界面上。特别地,该系统运行如此迅速和有效,以至于在存储和/或检索所请求的数据时,用户不需要意识到发生的压缩、计算和/或解压缩步骤的多重性,这对于用户来说都显得无缝和及时。然而,与以前的存储系统相比,现在的存储系统成本更低,效率更高,这一事实将是显而易见的。
因此,鉴于上述情况,在此提供了基于对象的存储服务,其中通过将计算和/或压缩实例与存储功能相结合,可以以较低的成本提供存储服务。在次实施例中,传统的存储成本可以替代为计算成本,该计算成本处于一低得多的水平,因为如前所述,该计算成本可以在一加速模式下实施,例如通过如本申请所述的FPGA和/或量子计算平台300实施。因此,本申请公开的加速平台可以被配置为快速和高效的存储和检索系统,其允许数据的快速压缩存储,该数据可以被压缩和存储,以及以低得多的成本和更高的效率和速度快速解压缩和检索。这对于基因组数据存储400特别有用,并且与上文揭示的即时处理功能兼容。因此,根据本申请公开的设备、系统和方法,可以提供一对象存储服务,其中该存储服务实现快速压缩功能,例如基因组特定压缩,以便存储基因组处理结果数据。
具体而言,如可以参考图40A所示,在一个示例性实施方式中,本申请提供的生物信息学系统可以被配置为使得一管道服务器系统300(例如其一部分)在API(例如S3兼容API处)接收请求,该API可操作地连接到数据库400,该数据库400适于将初始(F1)文件与(CF1)文件(例如基于耦合的元数据)的压缩版本相关联。同样,一旦原始CF1文件被解压缩和处理,结果数据(F2)文件就可以被压缩并存储为CF2文件。因此,当期望从数据库400检索文件时,服务器300具有一API,该API已经通过适当配置的元数据将原始文件与压缩文件相关联,因此,当请求检索时,系统的工作流管理控制器(WMS)将启动计算实例300,该计算实例300将启动适当的计算实例,以便执行任何必要的计算和/或解压缩该文件,以便进一步处理、传输和/或呈现给请求用户100。
在不同实施例中,一示例性方法可以包括以任何逻辑顺序的一个或多个步骤:1)请求通过API进入(例如S3兼容API),2)API与WMS通信,3)WMS填充数据库并启动计算实例,4)计算实例对F1文件执行必要的压缩,并生成特征元数据和/或其他相关文件关联(X),例如,生成一CF1X1文件,4)从而为存储400准备数据。然后,可以对F2、F3、Fn文件(例如其他处理过的信息)重复该过程,以便WMS知道压缩文件是如何生成的,以及它存储在哪里和如何存储的。应当注意,该系统的独特特征在于,可以允许几个不同的用户100基本上同时访问存储的数据400。例如,本申请公开的压缩系统和方法可与本申请公开的BioIT平台结合使用,由此在处理过程中的任何时候,结果数据均可根据本申请的方法被压缩和存储,并可被其他人以正确的权限访问。
关于执行基因组分析,用户100可以例如经由基因组分析API(诸如S3或S3兼容API)访问这里的系统300,上传基因组数据(诸如BCL和/或FASTQ文件或其他文件格式),并由此请求执行一个或多个基因组操作,诸如映射、比对、排序、去除重复、变异检测和/或其他操作。系统300在工作流管理器API处接收请求,然后工作流管理器系统评估传入的请求,索引作业,形成队列,分配资源(例如实例分配),并生成管道流。因此,当请求进入并被预处理和排队时,实例分配器(例如API),将根据工作项目旋转各种作业的特定实施例,下文将对此进行更详细的描述。因此,一旦作业被索引、排队和/或存储在适当的数据库400中,工作流管理器将随后从存储器400(例如S3或S3兼容的存储器)中提取数据,循环一适当的实例,该实例即检索文件,并对数据运行适当的处理以执行一个或多个请求的作业。
另外,其中要求对数据执行多个作业,要求执行多个实例,然后一旦第一实例已经执行了其操作,结果数据就可以被压缩和存储,例如存储在适当的存储器实例中,例如,第一数据库,例如弹性或柔性存储设备中,以便等待另一个管道实例旋转,并检索结果数据以供进一步处理,例如根据本申请前述的系统和方法。此外,随着新的请求进入和/或当前作业正在运行,工作流管理系统将不断更新队列,以便通过实例分配器API将作业分配给适当的实例,从而保持数据流经系统和系统的进程高效运行。
同样的,在进一步处理和/或传输之前(例如传输回原始请求者100或指定方之前),系统300可以持续获取结果数据并将数据200/400存储在例如第一或第二数据库中。在某些实施例中,如本申请所公开的,结果数据可以在存储400和/或传输之前被压缩。此外,如前所述,当压缩时,生成的结果数据文件可以包括适当的元数据和/或其他相关联的数据,其中,当数据被处理并通过平台管道移动时(例如按照文件关联API的指示),结果数据在流经系统时可以被不同地指定(例如从F1文件到F1C文件到F2文件,再到F2C文件,等等)。
因此,由于本申请公开的专有专用API,该系统可以具有公共主干,其他服务可以耦合到该主干,和/或附加资源(例如实例),可以被联机,以确保所有管道操作平稳和有效地运行。类似地,当需要时,可以调用压缩和存储的结果数据文件,由此工作流管理器将旋转适当的计算和/或解压缩数据库实例,以解压缩结果数据从而呈现给请求者。注意,在不同的实施例中,指定的计算和压缩实例以及指定的计算和解压缩实例可以是单个或多个实例,并且可以被实施为一CPU、FPGA或紧密耦合的CPU/FPGA、紧密耦合的CPU/CPU或紧密耦合的FPGA/FPGA。在某些实施例中,本申请公开的这些和其他实施例中的一个或多个可以被实施为量子处理单元。
因此,鉴于本申请的公开内容,在一个方面,提供了一种设备,在执行基因组序列分析操作中,该设备用于执行多种函数中的一种或多种。例如,一旦数据已经被接收(例如被远程用户100)和/或被存储400在基于云端的系统内,输入数据可以被WMS访问,并且可以被准备进一步的处理(例如用于二级分析),其结果然后可以被发送回本地用户100,例如在被压缩、存储400之后,和/或经受附加处理之后,例如由系统服务器300进行的三级处理之后。
在某些实施例中,在特定的实施方式中,本申请公开的二级处理步骤可以由本地计算资源100执行,并且可以由软件和/或硬件实现,例如由机顶盒计算资源200执行,其中计算资源200包括CPU核(例如从大约4到大约14到大约24个或更多个CPU核),并且还可以包括一个或更多个FPGA。本地机顶盒计算资源100可以用于访问大型存储块200(例如120GbS的RAM存储器),该访问可以是直接的(例如通过与其直接耦合),或者间接地(例如通过经由基于本地云端的网络30与其可通信地耦合)。
具体地,在本地系统内,数据可以经由适当配置的SSD驱动器被传输到存储器200或从存储器200传输,SSD驱动器适于将处理作业数据(例如要处理的基因组作业)写入存储器200,以及从存储器200read处理结果数据。在不同实施例中,本地计算资源100可以可通信地耦合到一测序器110,并且直接写入SSD驱动器(例如通过适当配置的互连),一BCL和/或FASTQ文件可以从一测序器110(例如从该测序器)获得。本地计算资源100然后可以对数据执行一个或多个二级处理操作。例如,在一个实施例中,本地计算资源是具有24个CPU的LINUX服务器,这些CPU可以耦合到一适当的可配置的FPGA,该FPGA适用于执行本申请公开的一个或多个二级处理操作。
因此,在特定实施例中,本地计算设备100可以是具有生物(BioIT)芯片集的“工作台”计算解决方案,该生物芯片集用于对遗传学数据执行二级和/或三级处理中的一个或多个。例如,如本申请所公开的,计算资源100可以与插入到计算设备中的PCIe卡相关联,从而与一个或多个内部CPU、GPU、QPU核和/或相关联的存储器相关联。特别地,计算设备100的组件包括处理单元、相关联的存储器和/或相关联的PCIe卡,其内具有一个或多个FPGA/ASIC芯片组,这些组件可以彼此通信,所有这些组件都可以设置在外壳内,例如以本领域中典型的盒组方式。更具体地,所述盒组可以用于工作台用途,或者在不同实施例中,它可以在远程可访问的服务器机架内被配置及被提供和/或可用的。在其它实施例中,所述CPU/FPGA/存储器芯片组和/或相关联的互连快速卡可以在下一代测序设备内相关联,以便在那里形成一个单元。
因此,在一个特定的例子中,桌面盒组可以包括耦合到一个或多个FPGA的多个CPUs/GPUs/qpus,例如4个CPU/GPU,或者8个,或者12个,16个,20个,22个,或者24个CPUs,或者更多,其可以耦合到1个,或者2个,或者3个,或者更多FPGAs,例如在单个外壳内。具体而言,在一个特定实施例中,提供了一种盒组计算资源,其中该计算资源包括24个CPU核、一可重配置FPGA、一数据库(例如128×8RAM)、一个或多个固态硬盘,例如FPGA适于在各操作之间(例如在执行映射和比对之间)至少部分可重配置。因此,在此实施例中,由排序设备110生成的BCL和/或FASTQ文件可以被读入CPU和/或传送到FPGA中进行处理,并且其结果数据可以经由SSD驱动器被读回到相关联的CPU。因此,在该实施例中,本地计算系统100可以被配置成将各种高计算函数下载到相关FPGA,从而提高生物信息学处理的速度、准确性和效率。然而,尽管桌面盒组解决方案100是有用的(例如在一本地设备种),但是它可能不适合于被可能远离盒组的多个用户访问。
具体地,在不同实施例中,可以提供一基于云端的服务器解决方案50,例如其中服务器300可以被远程访问。因此,在特定实施例中,本申请公开的一个或多个集成电路(CPU、FPGA、QPU)可被提供和配置为经由基于云端50的界面被访问。因此,在特定实施例中,可以提供一如前所述的工作台盒组计算资源,其中盒组配置可适配以便于移动到云端并且可远程访问。然而,这种配置可能不足以处理来自远程用户的大量流量。因此,在其他实施例中,本申请公开的一个或多个集成电路可以被配置为一基于服务器的解决方案300,该解决方案可配置为服务器机架的一部分的,例如其中该服务器可访问系统专门用于被远程访问,例如经由云端50。
例如,在一个实施例中,提供一可以结合本申请公开的一个或多个FPGAs/ASICs的计算资源或本地服务器100,该计算资源或本地服务器100具有CPU和/或GPU和/或qpu核以及相关联的存储器中的一个或多个(例如,多重)。特别地,如前所述,在一个实施方式中,可以提供一桌面盒组,其中盒组包括18到20到24个或更多CPU/GPU核心盒组,该核心盒组具有固态硬盘、128×8RAM和一个或多个BioIT的FPGA/ASIC电路,并且还包括适当配置的通信模块,该通信模块具有发射机、接收机、天线以及WIFI、蓝牙和/或蜂窝通信能力,这些通信能力以允许该盒组进行一种方式的适配以使该盒组可被远程访问。在该实施方式中,例如在提供单个FPGA的情况下,FPGA可以适于在基因组分析管道的一个或多个不同步骤之间被重新配置,例如部分重新配置。
然而,在其他实施例中,提供了一种服务器系统,该服务器系统可以包括多达约20至24至30至34至36个或更多CPU/GPU核心和约972GB的RAM或更多RAM,它们可以与一个或多个,例如约两个或四个或约六个或约八个或更多FPGA,相关联,FPGA可以如本申请所述进行配置。例如,在一个实施方式中,一个或多个FPGas可适于在基因组分析管道的一个或多个不同步骤之间被重新配置,例如部分重新配置。然而,在其他不同实施方式中,可以提供一组专用FPGA,例如其中每个FPGA专用于执行特定的生物信息学(BioIT)操作,例如映射、比对、变异检测等,从而避免了重新配置步骤。
因此,在不同实施例中,可以提供一种或多种FPGA,例如其中FPGA是可配置的以在各种管道操作之间可重新配置。然而,在其他实施例中,一个或多个FPGas可以被配置成专用于执行一个或多个函数,而不需要被部分或完全配置。例如,本申请提供的FPGA可以被配置为专用于在BioIT管道中执行一个或多个计算密集型操作,例如其中提供一个FPGA并专用于执行映射操作,并且提供另一个FPGA并将其配置为执行比对操作,尽管在一些实施例中,可以提供单个FPGA并将其配置为在执行映射和比对操作之间可被至少部分地重新配置。
另外,管道中的其他操作也可由可重新配置或专用FPGA执行,该操作可包括执行BCL转换/转置操作、史密斯-沃特曼操作、HMM操作、局部重新比对操作和/或各种其他变异检测操作。同样,各种管道操作可以被配置为由系统的一个或多个相关联的CPU/GPU/QPUS执行。这种操作可以是管道的一个或多个计算强度较低的操作,例如用于预形成排序、去除重复数据和其他变异检测操作。因此,总体系统可以被配置为部分通过CPU/GPU/QPU,部分通过硬件(例如通过系统的FPGA/ASIC),来执行各操作的一组合。
因此,参考图40B可以看出,在基于云端系统50的各种实施方式中,该系统可以包括多个计算资源,该计算资源包括多个实例和/或实例级别,例如其中该实例和/或实例级别被配置为执行本申请公开的一个或多个生物信息(BioIT)管道操作。例如,可以提供各种CPU/GPU/QPU和/或硬连线集成电路实例来执行本申请提供的基因组管道分析的专用函数。例如,可以提供各种FPGA实例来执行专用基因组分析操作,例如一用于执行映射的FPGA实例、另一用于执行比对的FPGA实例、另一用于执行局部比对和/或其他Smith-Waterman操作的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管理器可以用于检测和管理数据如何在整个系统中流动,及用于确定如何分配系统资源,以及何时使更多的资源在线。
如前所述,在某些实施例中,可以一并提供基于工作台和/或服务器的解决方案,其中计算设备包括多个具有尺寸y的x个CPU核服务器,这些服务器可以被配置为馈送到一个或多个具有尺寸z的FPGA中,其中x、y和z是可以根据系统的处理需求而变化的数字,但是应该是可被选择的和/或可以以其他方式配置以被优化的,例如10、14、18、20、24、30等。例如,典型的系统配置被优化用于执行本申请描述的系统的BioIT操作。具体地,某些系统配置已经被优化,以便最大化该数据流,该数据流是从各种CPU/GPU/QPU实例到系统的各种集成电路(例如FPGA)的,其中CPU和/或FPGA的大小可以基于系统的处理需求而彼此相关地变化。例如,CPU和/或FPGA中的一个或多个可以具有一尺寸,该尺寸是相对的小、中等、大、超大或超大。更具体地,系统架构可以以这样的方式配置,使得CPU/FPGA硬件的大小和配置成以最优有效的方式运行,以便在所有运行时间内保持所有的实例平台都处于忙碌状态,例如其中CPU数量超过FPGA的数量,两者比值为4比1、8比1、16比1、32比1、64比2等。
因此,虽然拥有大的FPGA能力通常是好的,但是,如果没有足够的数据需要处理并输入系统,拥有大容量的FPGA来处理数据可能并不高效。在此实施例中,可以仅应用单个或部分FPGA。特别地,在理想的布置中,工作流管理系统将数据流引导到被识别的CPU和/或FPGA,这些CPU和/或FPGA被配置成使得系统及其组件保持全时计算。例如,在一个示例性配置中,一个或多个,例如2个、3个或4个或更多CPU/GPU/QPU核心可以被配置为将数据馈送到小型、中型、大型、超大FPGA或其一部分。具体地,在一个实施例中,可以提供CPU特定的实例,例如用于执行本申请公开的一个或多个生物信息学(BioIT)处理操作,例如其中CPU实例是云端可访问的,并且包括多达4、8、16、24、30、36个CPU核,这些核可以被配置成或可以不被配置成可操作地耦合到一个或多个FPGA中的一部分。
例如,可以提供云端可访问服务器机架300,其中服务器包括具有一CPU核实例,该CPU核实例包括大约4个CPU核到大约16个到大约24个CPU核,这些核是可操作地连接到一FPGA实例的。例如,可以提供一FPGA实例,例如其中一FPGA的平均尺寸是X,并且所包括的FPGA的尺寸可以是大约1/8X、X、2.5X到8X、或者甚至大约16X或更多。在不同实施例中,可以包括额外的多个CPU/GPU/QPU核和/或FPGA,和/或提供作为一组合实例,例如在有大量数据要处理的情况下,以及在CPU核的数量选择好以保持FPGA全时忙碌的情况下。因此,通过优化数据流的方式组合,可以使CPU与FPGA的比率相称,这样,系统可以被配置以可以根据需要弹性地放大或缩小,例如,在基于工作流来优化利用率的同时,最小化费用。
然而,在CPU没有产生足够的工作来保持FPGA忙碌和/或被充分利用时,这个配置将会不理想。因此,本申请提供的是一个或多个实例的灵活架构,其可以直接被耦合在一起,或者能够被耦合在一起,以适于CPU/FPGA软件/硬件有效运行的方式耦合,以确保当前CPU/GPU/QPU最优地馈送可用的FPGA和/或可用的FPGA的一部分,以在所有运行时间内保持所有实例平台忙碌。从而,允许这样的系统可被从云端访问,将确保多个数据被提供给系统,以便给多个数据被该工作流管理器排队,并引导到特定的CPU/FPGA资源,这些CPU/FPGA资源被配置并能够以最优有效的方式接收和处理数据。
例如,在一些配置中,云端可访问实例可以包括具有多个数量和大小的CPU/GPU/QPU,另外,这些云端可访问实例可以包括具有多个数量和大小的FPGA(或ASIC)和/或QPU。甚至可能存在具有这些实例组合的实例。然而,在各种迭代中,所提供的CPU/GPU/QPU和/或FPGA/QPU和/或混合实例可能具有较多的一个实例和/或较少的另一个实例,以有效地运行本申请公开的本生物信息学管道处理平台。因此,在此呈现的是系统和架构、它们的灵活组合和/或用于实现它们的方法,以有效地构建和使用管道的生物信息学和/或基因组学处理平台,例如设置通过云端50可访问。
在这种系统中,所选择的CPU/GPU/QPU的数量和配置可以被选择和配置为处理计算强度较低的操作,FPGA和/或QPU的数量和配置可以被适配为处理计算强度高的任务,例如其中数据在CPU/GPU/QPU和FPGA/QPU实例之间无缝地来回传递。此外,可以提供一个或多个存储器,用于存储在程序的各个步骤之间和/或各不同实例类型之间形成的数据(例如结果数据),从而避免形成大量实例潜伏的周期。具体来说,在映射和比对期间,很少使用CPU/GPU,因为计算的密集性,这些任务被配置为由硬件实现来执行。类似地,在变异检测期间,任务可以以这样的方式被划分,使得任务大致公平地分布在CPU/FPGA实例之间,例如其中史密斯-沃特曼和HMM操作可以由硬件执行,各种其他操作可以由在一个或多个CPU/GPU/QPU实例上运行的软件执行。
因此,此处阐述的架构参数不一定限于一套架构,而是更倾向于系统被配置为具有更大的灵活性来组织其自身的实现,并依赖工作流管理器来确定在何时、如何以及持续多长时间哪些实例是活动的,以及指导在哪些实例上执行哪些计算。例如,被联机并可操作地耦合在一起的这些CPU和/或FPGas应该被选择和配置,这样被激活的CPU和FPGA以及伴随它们的软件/硬件就会保持最佳的忙碌状态。具体而言,这些CPU应被选择及其函数应该被配置,以保持这些FPGA或这些FPGA的一部分全天忙碌,这样CPU就会最优且有效地馈送FPGA,以保持全部实例及其零部件高效运行。
因此,以这种方式中,系统的工作流管理控制器可以用于以这样的方式访问工作流,并组织和划分工作流,使得这些任务可以由CPU/GPU/QPU更优化地执行,这些任务可以被引导这些CPU,以最佳地执行这些操作,并且这些任务可以由FPGA/ASIC/QPU更优化地执行,这些任务可以被引导这些FPGA,以最佳地执行这些操作。还可以包括一弹性存储器和/或一有效存储器,用于将这些操作的结果数据从一个实例有效地传输到另一个实例。以这种方式,机器和存储器的组合可以被配置和组合,以便基于要执行的工作的范围以及实例的最佳配置和使用来优化缩放,从而更高效和更经济地执行该工作。
具体地,这里阐述的基于云端的架构表明,以前的架构产品中的各种已知缺陷可能会导致效率低下,这可以通过灵活地允许更多CPU/GPU/QPU核心实例访问各种不同的硬件实例来克服,例如FPGAs或其部分,这些硬件实例以更有意识的方式组织起来,以便能够将正确的实例专用于执行适当的功能,从而通过实施为该格式得以优化。例如,系统可以被配置成使得有更大比例的可用CPU/GPU实例,这些实例可以被远程访问,以专职产生结果数据,这些结果数据可以最优地馈送到可用FPGA/QPU实例中,从而保持所选FPGA实例专职工作。因此,希望提供一种尽可能高效且专职工作的结构化架构。需要注意的是,那些将太少的CPU馈入太多的FPGA中的配置,使得一种或多种FPGA未被充分利用,这种配置是不够高效的,应该避免。
在一种实施方式中,如可以参考图40B所示,该架构可以被配置以使其虚拟地包括几个不同的层或级别,例如包括有X个第一CPU核(例如从4到大约30个CPU核)的第一级别,以及具有1到12个或更多FPGA实例的二级别,其中这些FPGA的大小可以从小到中到大,等等。还可以包括三级CPU核和/或第四级进一步的FPGA等。因此,在基于云端的服务器300中存在许多可用的实例,例如简单地包括CPU或GPU的实例和/或包括FPGA的实例和/或包括CPU或GPU和FPGA的实例的组合,例如在本申请描述的一个或多个级别中。因此,以这样的方式,该架构可以被灵活或弹性地配置,使得最密集的、特定的计算函数可以由硬件实例或QPUS执行,并且可以通过CPU运行的那些函数被引导到适当级别的适当CPU/GPU,用作一般处理的目的,并且在必要时,CPU/FPGA实例的数量可以根据需要在系统内增加或减少。
例如,该架构可以弹性地调整大小,以既可以最小化系统开销,又可以最大化最佳利用率。具体地,通过在各种不同的虚拟级别上组合各种实例,该架构可以被配置为最大化效率并减少潜伏期。特别地,多个(例如,大量和/或全部)一级CPU/GPU实例可以被配置为馈送到各二级FPGA实例,这些二级FPG实例已经被专门配置为执行特定函数,例如映射FPGA和比对FPGA。在进一步的级别中,可以提供一个或多个附加的(或与级别I相同的)CPU,例如用于执行排序和/或去除重复操作和/或各种变异检测操作。此外,这些FPGA的一个或多个附加层可以被配置用于执行Needleman-Wunsch,Smith-Waterman、HMM、变异检测操作等。因此,第一级CPU可以被接合以形成基因组分析的初始级,例如用于执行一般处理步骤,该一般处理步骤包括排队和准备数据以用于进一步管道分析,这些数据一旦被一个或多个CPU处理,就可以被馈送到一个或多个进一步级别的专用FPGA实例中,例如其中FPGA实例被配置为执行密集计算功能。
以这种方式,在一特定的实施例中,一旦准备好,管道中的CPU/GPU实例就将其数据发送到一个或两个映射和比对的二级FPGA实例去。一旦映射被执行,这些结果数据可以被存储在存储器中和/或随后被馈送到比对实例中,其中比对可以被执行,例如通过至少一个专用的二级FPGA实例。同样,经处理的映射和比对的数据随后可以存储在存储器中和/或被导入到三级CPU实例以进行进一步处理,该CPU实例可以是与第一级相同的或不同的实例,例如用于执行一处理强度较低的基因组分析函数,例如用于执行一排序函数。此外,一旦三级处理器已经执行了它们的处理,结果数据就可以被转发回FPGA的其他二级实例,或者被转至四级FPGA实例,四级FPGA实例例如用于进一步的基因组处理密集函数(例如在NW或SW专用FPGA实例处,例如执行Needman-Wunsch(NW)、Smith-Waterman(SW)处理函数)。类似地,一旦SW分析已经被执行(例如由一SW专用FPGA执行),则处理后的数据可以被发送到一个或多个相关联的存储器和/或进一步沿着处理管道走,例如发送到另一个(例如级别四或五),或者返回到级别一或三的CPU和/或FPGA实例,例如用于执行HMM和/或变异检测分析,例如处在一专用FPGA种和/或CPU处理核心的另一层中。
通过这种方式,例如在一个或多个不同的层次上组合各种不同的实例,可以克服这种潜伏期和效率问题,从而为基因组学处理提供一个管道平台。这种配置可以涉及不止一个缩放和/或组合实例,该实例可以被配置成使得它们专门执行专用函数。在这种实施例中,映射FPGA实例仅执行映射,同样,比对FPGA实例仅执行比对等等,而不是单个实例执行管道的从头到尾的处理。尽管在其它配置中,一个或多个FPGA可以至少部分地重新配置,例如在执行管道任务期间。例如,在某些实施例中,由于此处要执行的基因组分析是一多步骤过程,FPGA上的代码可以被配置成在处理过程的中途可被改变,例如当FPGA完成映射操作时,它可以被重新配置成执行比对、变异检测、Smith-Waterman、HMM等操作中的一个或多个。
因此,该管道管理器(例如工作流管理系统),可以用于管理由I级CPU实例制定的基因组处理请求队列,以便被分解成离散的作业,被聚合,并被传输到适当的作业特定的CPU,然后被传输到作业特定FPGA实例以进行进一步处理,例如用于映射和/或比对(例如在二级),映射和比对的数据一旦被处理,就可以被向后或向前发送到结果数据的下一级CPU/FPGA处理,例如用于执行变异检测模块中的各种步骤。
例如,变异检测函数可以被分成多个操作,这些操作可以在软件中执行,然后被转发到一个或多个FPGA硬件实例中的Smith-waterman和/或hmm处理,然后可以被发送到一CPU,用于进行持续的变异检测操作,例如,其中整个平台被弹性地和/或有效地调整大小和实施,以使昂贵FPGA实例成本最小化,同时最大化利用率,最小化潜伏期,从而优化操作。因此,以这种方式,由于硬件实例的纯处理能力和硬连线特性,需要更少的硬件实例,因此,FPGA的数量与CPU的数量的比值可以最小化,并且它们的使用(例如,FPGA的使用)可以最大化,因此,系统被优化以保持所有实例全时忙碌。这种配置是为基因组学处理分析而优化设计的,尤其是为映射、比对和变异检测而优化设计的。
一附加结构元件可以被包括(例如作为附件)在本申请公开的管道架构中,该附加结构元件是一个或多个弹性和/或有效的存储器模块,其可以被配置成用于当数据(例如,结果数据)在整个管道中转换时,提供数据的块存储。因此,一个或多个弹性块数据存储(EBDS)和/或一个或多个高效(灵活)块数据存储模块可以被插入一个或多个处理级别之间(例如不同实例和/或实例级别之间)。在此实施例中,存储设备可以被配置成使得当数据被处理并且结果被获得时,处理后的结果在被发送到下一级处理之前,可以被引导到存储设备进行存储,例如通过一专用FPGA处理模块。在所有实例或实例级别之间可以使用相同的存储设备,或者在不同实例和/或实例级别之间可以使用多个存储设备,例如用于存储和/或编译和/或用于结果数据的排队。因此,可以以这样的方式提供一个或多个存储器,使得系统的各种实例可以耦合到和/或可以访问到该相同的存储器,以能够查看和访问相同或相似的文件。因此,可以提供一个或多个弹性存储器(能够顺序耦合到多个实例的存储器)和/或有效存储器(能够同时耦合到多个实例的存储器),由此系统的各种实例被配置为对相同或相似的存储器进行读写。
在一个示例性实施例中,例如,关于采用这种弹性存储器的配置,在将数据从一个实例和/或一个处理级别直接发送到另一个实例和/或处理级别之前,数据可以被传输到以EBDS或其他存储设备或结构(例如高效存储块),一存储及之后被传输到适当的硬连线处理模块。具体而言,块存储模块可以附接到一存储器的节点,其中数据可以被写入BSD以在一个级别存储,并且BSD可以被翻转到另一个节点以将存储的数据传输到下一个处理级别。以这种方式,一个或多个(例如多个)BDS模块可以被包括在管道中,并且被配置为被从一个节点翻转到另一个节点,以便参与整个管道中的数据转换中。
进一步,如前所述,可以采用更灵活的文件存储设备,例如能够同时耦合到一个或多个实例的设备,例如不必从一个实例切换到另一个实例。以这样的方式,系统可以在系统的每一级弹性缩放,例如在每一级可能有不同数量的节点用于在该级处理数据,并且一旦处理,结果数据可以被写入一个或多个相关联的EBDS设备,该EBDS设备然后可以被切换到系统的下一级,从而使得存储的数据对于下一级处理器来说是可用的,该下一级处理器在该级执行其特定任务。
因此,在处理管道中(例如在其伴随节点处)有许多步骤,因为数据已被准备好用于处理(例如预处理),其中,数据一旦准备好,就将被引导至一个级别的适当处理实例,在该级别上可以生成结果数据,然后可以将结果数据存储(例如存储在一EDS设备中)、排队及准备进行下一个阶段的处理,其中,可以通过翻转到下一个实例节点并传输到下一个实例以供下一个FPGA和/或CPU处理实例顺序处理,进一步的结果数据可在此处生成,并且再次生成的此结果数据在向前至下一阶段的处理之前,可被引导回到相同级别的EDS或向前至下一个级别的EDS中存储。
具体地,在一个特定的实施例中,通过管道的流程可呈现如下:CPU(例如,4CPU内核或C4实例):数据准备(排队和/或存储);FPGA(例如一2XL的FPGA-全服务器的1/8,或一F1实例):映射、临时存储;FPGA(例如一2XL的FPGA至全服务器的1/8,或一F1实例):比对、临时存储;CPU:排序、临时存储;CPU:去除重复数据、临时存储;CPU:变异检测1,临时存储;FPGA(例如,一F1或16XL或F2实例):Smith-Waterman,临时存储;FPGA(例如F1或F2实例):HMM,临时存储;CPU:变异检测2,临时存储;CPU:VCGF、临时存储等等。此外,可以包括工作流管理系统,以控制和/或引导数据流通过系统,例如在一CPU核(例如4核CPU)或C4实例可以应用WMS。注意,这些步骤中的一个或多个可以以任何逻辑顺序执行,并且可以通过任何适当配置的资源来实现,例如以软件和/或硬件、以各种不同的软件及硬件组合来实现。并且应当注意,这些操作中的任何一个可以在一个或多个CPU实例和一个或多个FPGA实例上执行,以形成本申请所述的BioIT处理,其中该执行是在一个或多个理论处理级别上。
如本申请所述的,可以包括一工作流管理器,例如当在一个或多个CPU内核中实现WMS时。因此,在不同实施例中,WMS可能有一个可操作地与其耦合的数据库。在此实施例中,数据库包括要排队的各种操作或作业、待定作业,以及先前或当前要执行的所有作业的历史记录。因此,WMS监视该系统和数据库,以识别要执行的任何新作业。因此,当一个待定作业被识别时,WMS会对数据发起一个新的分析方案,并将其分发到适当的实例节点。因此,工作流管理器跟踪并知道所有输入文件存储、处理或存储在哪里,从而并引导和指示各个处理节点的实例访问给定位置的各个文件,以开始读取文件,以开始执行处理指令,以及工作流管理器跟踪并知道在哪里写入结果数据。因此,WMS引导系统将结果数据传递到下行处理节点。WMS还确定何时需要启动新实例并使其联机,以允许每个处理步骤或处理级别的动态缩放。因此,WMS识别、组织和引导离散的作业并进一步引导写入存储器的结果数据被存储,该离散的作业必须在每个级别执行,一旦一个作业完成,另一个节点就会启动,读取下一个作业,并执行下一个迭代操作。
以这样的方式,输入作业可以分布在许多不同的实例上,通过包括越来越多或越来越少的实例,这些实例可以被缩放,例如独立地或集体地缩放。这些实例可用于构建节点,以便更有效地平衡资源的使用,其中这些实例可包括一局部的或完整的实例。工作流管理器还可以引导和/或控制一个或多个存储器的使用,例如在本申请公开的处理步骤之间。各种实例还可包括互补编程,以允许它们彼此通信和/或与各种存储器通信,从而虚拟化服务器。WMS还可以包括负载估计器,以便弹性地控制节点的使用。
进一步,关于存储器、一个或多个EBDS或其它适当配置的数据和/或文件存储设备的使用,可以将其附接到各种节点(例如,在各种级别的实例中)的一个或多个,例如用于各种不同处理步骤中的临时存储。因此,存储设备可以是单个存储设备,被配置为耦合到所有各种实例,例如,一有效存储块(诸如弹性文件存储),或者可以是多个存储设备,诸如每个实例或实例类型有一个可在实例之间切换的存储设备,例如,弹性块存储设备。因此,以这样的方式,处理实例和/或存储器的每一级可以按需弹性缩放,例如在不同节点或不同的节点级别之间,例如用于处理一个或多个基因组。
鉴于本申请所述的架构,一个或多个基因组可以被引入到系统中进行处理,例如来自一下一代基因测序器的一流动单元的一个或多个通道,如图1所示。具体地,如本申请所述,提供一基于云端的服务器系统300,该服务器系统300将允许多个作业被堆积和/或排队等待处理,这些作业可以由系统的各种不同实例同时或顺序处理。因此,管道可以被配置为支持多个作业通过一虚拟矩阵被处理,该虚拟矩阵是被耦合到适当配置的存储器设备的处理器上的,以促进从一个实例到另一个实例的有效处理和形成数据。此外,如所述的,可以提供单个存储设备,其中该存储设备被配置为耦合到多个不同的实例(例如同时)。在其他实例中,存储设备可以是一弹性类型的存储设备,其可以被配置为耦合到第一实例(例如在单个时间),然后被重新配置和/或以其他方式与第一实例分离,并切换到第二实例。
这样,在一个实施方式中,可以包括一个或多个弹性块存储设备,并且该系统可以被配置以包括一开关控制机构。例如,一开关控制器可以被包括和配置以控制这些存储设备的函数,当这些存储设备从一个实例切换到另一个实例时。这种配置可以被布置以允许通过专用处理器的管道转移数据,从而提高系统的效率,例如在所有实例中,例如通过使数据流经系统,允许每个级别被独立地缩放,并根据需要使处理器联机以有效地缩放。
另外,工作流管理系统算法可以被配置以确定作业的数量、处理这些作业所需的资源的数量、处理的顺序,并且该工作流管理系统算法通过翻转或切换一个或多个灵活的开关设备,将数据从一个节点流向另一个节点,并且在需要时可以引入额外的联机资源来处理工作流的增加。应当注意,这种配置可以被调整,以避免将数据从一个实例复制到下一个实例,这是低效的并且占用太多时间。相反,通过将弹性存储器从一组实例翻转到另一组实例(例如将其从一个节点拉出并附接到第二个节点),可以大大提高系统的效率。此外,在不同实施例中,作为EBSD的替代,可以采用一个或多个弹性文件存储设备,例如一单个存储设备可以被使用,该设备能够耦合到多个实例而不需要从一个实例翻转到另一个实例,以进一步增强实例之间的数据传输,使得系统更加高效。此外,需要注意的是,如本申请前面所指出的,在另一种配置中,该架构的CPU可以彼此直接连接。同样,各种FPGA可以直接耦合在一起。并且,如前所述,这些CPU可以直接耦合到这些FPGA,例如当这种耦合是经由如前所述的紧密耦合界面时。
因此,关于用户存储和访问生成的结果数据,从全系统的角度来看,不需要存储所有生成的结果数据。例如,生成的结果数据通常采用特定的文件格式,例如BCL、FASTQ、SAM、BAM、CRAM、VCF文件。然而,这些文件中的每一个都很庞大,所有这些文件的存储都将消耗大量内存,从而导致大量开销。然而,本发明的设备、系统和方法的优点在于,不需要存储所有这些文件。相反,该系统的组件和方法可实现超快的处理速度和/或超快的压缩和解压缩速率,且仅单个文件格式(例如压缩文件格式)需要存储(例如存储在基于云的数据库400中)。具体地说,只需要存储单个数据文件格式,系统的设备和方法能够实现从该文件格式导出所有其他文件格式。而且,由于该系统实现的快速压缩和解压缩速率,所以存储的文件格式通常是压缩文件,例如CRAM文件。
具体地,如可以参考图40A所示,在一个实施方式中,本地计算资源100的用户可以经由云端50上传数据(诸如基因组数据(例如BCL和/或FASTQ文件)),以供基于云端的计算资源(例如服务器300)接收。服务器300然后将临时存储该数据400,或者将根据用户100的作业请求开始处理数据。当处理输入数据时,计算资源300将由此产生结果数据,例如产生在SAM或BAM和/或VCF文件中。然后,系统可以存储这些文件中的一个或多个,或者它可以压缩这些文件中的一个或多个并存储这些压缩文件。然而,为了降低成本和更有效地利用资源,系统可以存储单个文件,例如压缩文件,可以从该文件生成所有其他文件格式,例如通过使用本申请公开的设备和方法。因此,该系统被配置为以低成本的方式生成数据文件(例如结果数据),该数据文件可以存储在一可经由云端50访问的服务器300相关联的数据库400上。
因此,使用一本地计算资源100,系统的用户可以登录并访问基于云端50的服务器300,还可以将数据上传到服务器300或数据库400,并且可以请求对该数据执行一个或多个作业。系统300然后将执行所请求的作业并将结果数据存储在数据库400中。如上所述,在特定情况下,系统300将以单个文件格式存储生成的结果数据,例如一CRAM文件。此外,通过点击按钮,用户可以访问存储的文件,并且通过再次点击按钮,所有其他文件格式可以被访问。例如,依照本申请公开的方法,给系统快速的处理能力,处理及生产将在幕后进行(例如即时进行),从而减少处理时间和处理负担以及降低存储成本(例如计算和存储功捆绑在一起时)。
具体地,这种高效、快速的存储过程包含有两个部分,通过本申请公开的加速操作的速度来实现。更具体地,因为映射、比对、排序、去除重复和/或变异检测的各种处理操作可以以硬连线和/或量子处理配置来实现,所以以一种或多种文件格式存在的结果数据可以快速的产生。此外,由于本申请公开的紧密耦合体系结构,进一步实现了结果数据(例如,以FASTQ、SAM、BAM、CRAM、VCF文件格式)的无缝压缩和存储。
进一步,仍然因为系统的设备提供的加速处理,并且因为它们与相关联的存储设备无缝集成,所以从系统的处理操作中产生的数据,即要存储的数据,可以在存储之前被有效压缩,并且在存储之后被解压缩。这样的效率因此降低了存储成本和/或与使用前文件解压缩相关的损失。因此,由于这些优点,该系统可以被配置成使得能够无缝压缩和存储仅单个文件类型,并根据用户的需要或请求即时再生任何其他文件类型。例如,一BAM文件或一与其相关联的压缩SAM或CRAM文件可以被存储,并且从该文件可以产生其他文件,例如,正向或反向,例如分别再现VCF或FASTQ或BCL文件。
例如,在一个实施例中,一FASTQ文件可以最初被输入系统,或者以其他方式生成和存储。在此实施例中,当向前行进时,可以获取文件的校验和。同样,一旦产生结果数据,当回溯时,可以产生另一个校验和。这些校验和然后可用于确保系统生成和/或重新创建(在正向或反向上)的任何其他文件格式彼此完全匹配,和/或与它们的压缩文件格式完全匹配。以这样的方式,可以确保所有必要的数据以尽可能高效的方式存储,并且WMS确切地知道数据存储在哪里、以什么文件格式存储、原始文件格式是什么,并且从该数据中,系统可以在文件格式之间向前或向后,以相同的方式重新生成任何文件格式(一旦最初生成了模板)。
因此,“及时”编译的速度优势部分是由硬件和/或相关文件的量子实现产生来实现的,例如在从一先前生成的FASTQ文件生成一BAM文件。特别是,压缩的BAM文件,包括SAM和CRAM文件,通常不存储在数据库中,因为在处理之前需要增加时间来解压缩这些压缩的存储文件。然而,JIT系统允许这样做而并没有实质性的损失。更具体地说,实施本申请公开的设备和过程,不仅可以快速生成压缩和解压缩的序列数据,例如,几乎瞬间,还可以有效地存储该序列数据。此外,无论以何种文件格式存储,任何其他文件格式都可以在瞬间从存储的文件中重新生成。
因此,参考图40C所示,当加速的硬件和/或量子处理执行各种二级处理程序时,例如映射和比对、排序、去除重复和变异检测,在以压缩形式存储之前,还可以执行进一步的压缩步骤,例如全部在一个过程中。然后,当用户希望分析或以其他方式使用压缩数据时,该文件可以被检索、解压缩和/或从一种文件格式转换成另一种文件格式,和/或被分析,例如通过JIT引擎被加载到硬连线处理器中,或者被配置在量子处理器中,并且使压缩文件受控于该JIT管道的一个或多个过程。
因此,在不同实施例中,当系统包括一相关的FPGA时,该FPGA可以被完全或部分重新配置,和/或以量子处理引擎可以被配置,以便执行一JIT过程。特别地,该JIT模块可以被加载到系统中和/或配置为一个或多个引擎,这些引擎可以包括一个或多个压缩引擎150,其被配置为在后台工作。因此,当调用一给定的文件格式时,该类似JIT的系统可以对所请求的数据执行必要的操作,以产生所请求格式的文件。这些操作可以包括压缩和/或解压缩以及转换,以便以所标识的文件格式导出所请求的数据。
例如,当遗传数据产生时,它通常以原始数据格式(例如一BCL文件)产生,该BCL文件然后可以被转换成一FASTQ文件,例如由产生该数据的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文件,然后这些BCL文件可以被转换成一FASTQ文件,或者直接用于映射、比对和/或排序、变异检测等。该过程可以是自动化的,以便大大加快该进程的各个步骤。
进一步,如参照图40A所示,一旦该数据已经被生成110,并且因此需要被存储(例如,在选择了任何文件格式的情况下),该数据可以被存储在一密码保护的和/或加密的存储器高速缓存中,例如在一专用基因dropbox状存储器400中。因此,当所生成和/或所处理的遗传数据离开测序器时,该数据可以被处理和/或存储,并可用于其他系统上的其他用户,例如在Dropbox状高速缓存400中。在此实施例中,自动生物信息学分析管道系统然后可以访问缓存中的数据并自动开始处理它。例如,该系统可以包括一管理系统,例如工作流管理系统151,其包括一控制器,例如微处理器或其他智能(例如人工智能),该控制器控制(例如从存储器高速缓存中)检索BCL和/或FASTQ文件,然后引导该信息的处理,以便生成一BAM、CRAM、SAM和/或VCF文件,从而自动生成和输出各种处理结果,和/或将其存储在Dropbox存储器400中。
JIT处理在这个使用模型中实现的的一个独特优势在于,JIT允许产生的各种遗传文件被压缩(例如在数据存储之前),并且在使用之前被快速解压缩。因此,JIT处理可以在数据离开测序器时编译和/或压缩和/或存储数据,其中这种存储是在一安全的基因组dropbox存储器缓存中进行。该基因组Dropbox缓存400可以是云端50可访问的存储器高速缓存,其被配置用于存储从一个或多个自动测序器110接收的基因组数据,例如该测序器位于远离存储器高速缓存400的位置。
具体地,一旦序列数据生成110(例如由远程NGS),它就可以被压缩150用于传输和/或存储400,以减少上传到云端50并存储在云端中的数据量。由于该数据压缩150在系统中发生(例如在传输之前),这种上传、传输和存储可以快速执行。此外,一旦上传并存储在基于云端的存储器高速缓存400中,该数据随后可以在本地100或远程300被检索,以通过本申请公开的BioIT管道的设备、系统和方法被处理,从而生成一映射、比对、排序和/或变异检测文件,例如一ASAM、BAM和/或CRAM文件,这些文件然后可以被存储,一元文件伴随这些文件被存储,该元文件阐述了关于如何产生该生成的文件(例如SAM、BAM、CRAM等文件)的信息。
因此,当与元数据一起时,压缩的AM、BAM和/或CRAM文件可以被处理以产生任何其他文件格式,例如FASTQ和/或VCF文件。因此,如上所述,即时地,JIT可以用于从压缩的BAM文件中重新生成该FASTQ文件或VCF,反之亦然。该BCL文件也可以以类似的方式重新生成。应当注意,SAM和CRAM文件同样可以被压缩和/或存储,并且可以用于产生一种或多种其他文件格式。例如,一个CRAM文件,它可以是非CRAM的,可以用来产生一个变异检测文件,同样也可以用于该SAM文件。因此,只需要保存SAM、BAM和/或CRAM文件,并且从这些文件中,即可以再现其他文件格式(例如VCF、FASTQ、BCL文件)。
因此,参照图40A所示,一映射和/或比对和/或排序和/或变异检测设备110(例如工作台计算机),可以为本地设备100和/或另一第二设备300,可以位于远端且可以在云端50中进行访问。此配置连同本申请公开的设备和方法适于使用户能够快速执行本申请公开的“云端”的生物信息学分析,以产生结果数据。结果数据然后可以被处理以便被压缩,并且一旦被压缩,数据可以被配置用于传送,例如,返回到本地计算资源100,或者可以被存储在云端400中,并且可以由本地计算资源100通过基于云端的接口访问。在此实施例中,该压缩数据可以是以SAM、BAM、CRAM和/或VCF文件。
具体地,该第二计算资源300可以是另一个工作台解决方案,或者它可以是服务器配置的资源,例如,其中该计算资源可经由云端50访问,并且被配置用于执行映射和/或比对和/或排序和/或变异检测程序。在此实施例中,用户可以请求基于云端的服务器300对上传的数据(例如BCL和/或FASTQ数据)执行一个或多个生物信息学作业。在此实施例中,服务器300然后将访问存储的和/或压缩的文件,并且可以处理该数据,以快速处理该数据并生成一个或多个结果数据,该结构数据然后可以被压缩和/或存储。此外,通过JIT处理,可以从该结果数据文件生成(例如,动态即时生成)一种或多种BCL、FASTQ、SAM、BAM、VCF或其他文件格式。因此,这种配置缓和了传统传输速度上的瓶颈。
因此,在各种实施例中,系统1可以包括一第一映射和/或比对和/或排序和/或变异检测仪器100,其可以位于本地100,例如用于本地数据产生、压缩150和/或存储200;及一第二仪器300,其可以位于远端并与云端50关联,由此该第二仪器300被配置为接收所生成和压缩的数据并存储该数据,例如经由一关联的存储设备400存储。一旦被存储,该数据就可以被访问,以解压缩存储的文件并将其转换成一种或多种其他文件格式。
因此,在该系统的一个实施方式中,数据(例如,原始序列数据)可以被上传并存储在云端50中(例如存储在相关联的基因组Dropbox状存储器高速缓存400中),其中该数据为BCL或FASTQ文件格式,由一数据生成设备(例如测序器110)生成。然后,如本申请所述,该数据可以由第一映射和/或比对和/或排序和/或变异检测仪器100直接访问,或者可以由服务器资源300间接访问,服务器资源300然后可以处理该序列数据以产生映射、比对、排序和/或变体结果数据。
因此,在不同实施例中,本申请公开的一个或多个存储设备可以被配置以在适当许可的情况下可以经由云端访问。例如,系统的各种结果数据可以被压缩和/或存储在一存储器或其他适当配置的数据库中,其中该数据库被配置为一基因组学Dropbox高速缓存400,例如其中各种结果数据可以存储在一SAM、BAM、CRAM和/或VCF文件中,其可以被远程访问。具体地,应当注意,关于图40A,一本地仪器100可被提供,其中该本地仪器可以与测序仪器110本身相关联,或者它可以远离该测序仪器110,但是经由一本地云端30与测序仪器110相关联,并且该本地仪器100可以进一步与以本地存储设施200或远端缓存400相关联,例如其中远端缓存被配置为基因组dropbox。此外,在不同实施例中,一具有适当权限的第二映射和/或比对和/或排序和/或变异检测仪器300(例如一基于云端的仪器),也可以与该基因组dropbox400连接,以便访问这些由本地计算资源100存储的文件(例如压缩文件),该仪器300然后可以解压缩这些文件以使结果可用于进一步的处理(例如二级或三级处理)。
因此,在不同实施例中,该系统可以被改进,使得当数据被生成并离开测序器110时(例如以原始数据格式),该数据可以被立即上传到云端50中并存储在基因组学Dropbox400中,或者,在上传和存储400之前,该数据可以被传输到生物信息学处理系统300用于进一步处理和/或压缩。一旦存储在缓存400中,系统就可以立即将数据排队以供检索、压缩、解压缩和/或进一步处理,例如由另一个相关联的生物处理设备300进行处理,当处理成结果数据时,该数据可以被压缩和/或存储400以供以后进一步使用。在这一点上,可以启动三级处理管道,按照本申请公开的方法,来自二级处理的存储结果数据可以在三级处理管道被解压缩并用于例如三级分析。
因此,在各种实施例中,系统可以被管道化,使得来自测序器110的所有数据可以在传送和/或存储200之前被压缩(例如,被以本地计算资源100压缩),或者数据可以被直接传送到基因组Dropbox文件夹中用于存储400。一旦在此接收到,存储的数据就可以基本上立即排队以供检索和压缩和/或解压缩,例如由一远程计算资源300进行。解压缩后,数据可以基本上立即用于处理,例如用于映射、比对、排序和/或变异检测,以产生二级处理的结果数据,然后这些二级结果数据可以被重新压缩用于存储。随后,压缩的二级结果数据可以被访问,例如,在基因组dropbox400中,被解压缩,和/或被用于一个或多个三级处理程序。由于数据在存储时可以被压缩,而在检索时基本上立即被解压缩,所以只需访问Dropbox存储高速缓存400,它就可以在不同时间被许多不同的系统在许多不同的生物分析方案中使用。
因此,以这样的方式,这里呈现的生物测试平台管道可以被配置,以使数据生成和/或分析的灵活性极好,并且其适于处理多种格式的特定形式的遗传数据的输入,以使其处理数据并产生与各种下游分析兼容的输出格式。因此,从图40C可以看出,这里呈现的是用于执行遗传测序分析的设备、系统和方法,其可以包括以下步骤中的一个或多个:首先,接收文件输入,该输入可以是一FASTQ或BCL或其他形式的遗传序列文件格式中的一种或多种(例如压缩文件格式),然后该文件可以通过本申请公开的多个步骤被解压缩和/或处理,以生成一VCF/GVCF,然后该文件可以被压缩和/或存储和/或传输。这种压缩和/或解压缩可以在整个过程的任何合适阶段发生。
例如,一旦接收到一BCL文件,就可以将其带入分析管道,例如以本申请公开的顺序方式。例如,一旦被接收,该BCL文件可以被转换和/或解复用,例如转换和/或解复用为FASTQ和/或FASTQgz文件格式,该文件可以被发送到映射和/或比对模块(例如服务器300的),以便根据这里描述的设备及其使用方法进行映射和/或比对。此外,在不同实施例中,映射和比对的数据,例如SAM或BAM文件格式的数据,可以被位置排序,和/或,任何重复可以被标记和移除。这些文件然后可以被压缩,例如产生一CRAM文件,例如用于传输和/或存储,或者可以被转到一变异检测模块,例如HMM模块,以被处理,从而产生一变异检测文件VCF或GVCF。
具体而言,如可以参考图40C和40D所示,在某些实施例中,由系统接收的文件可以从测序设备(例如NGS110)直接流式传输或以其他方式传输到系统,并且传输的文件可以是以一BCL文件格式。在接收到的文件是以一BCL文件格式的情况下,它可以被转换和/或以其他方式解复用为一FASTQ文件以供系统处理,或者该BCL文件可以被直接处理。例如,平台管道处理器可以被配置为接收直接从测序器流送的BCL数据(如有关图1所述),或者它可以接收一FASTQ文件格式的数据。然而,当序列数据从测序器流出时,直接接收序列数据是较好的,因为这使得数据能够直接从原始测序数据转到被直接处理,例如转到一SAM、BAM和/或VCF/GVCF中的一个或多个中进行输出。
因此,一旦接收到BCL和/或FASTQ文件(例如由计算资源100和/或300),它可以由计算资源映射和/或比对,该映射和/或比对可以在单端或双端read上执行。例如,一旦接收到序列数据,该序列数据可以被编译成read,用于分析,例如具有从大约10或大约20,例如26,或50,或100,或150BP或更小到大约1K,或大约2.5K,或大约5K,甚至大约10KBP或更大的read长度。同样,一旦映射和/或比对,序列就可以被排序,例如位置排序,例如通过参考范围的区,和/或通过参考位置的区的排序,来排序。此外,序列数据可以通过重复标记来处理,例如基于起始位置和CIGAR串,以便生成高质量的重复报告,并且任何标记的重复可以在此时被移除。因此,可以生成一映射和比对的SAM文件,其可以被压缩以形成一BAM/CRAM文件,例如用于存储和/或进一步处理的文件。此外,一旦该BAM/CRAM文件已经被检索,映射和/或比对的序列数据可以被转发到系统的一变异检测模块,例如具有重组的单倍型变异检测器,在一些实施例中,该变异检测器可以采用Smith-Waterman比对和/或HiddenMarkov模型中的一个或多个,其可在一软件和/或硬件的组合中实现,以生成一VCF。
因此,如图40D所示,该系统和/或其一个或多个组件可以被配置成能够将BCL数据转换为FASTQ或SAM/BAM/CRAM数据格式,然后这些数据格式可以被发送到整个系统,用于进一步处理和/或数据重建。例如,一旦BCL数据被接收和/或转换成一FASTQ文件并被解复用和/或去除重复,该数据就可以被转发到本申请公开的一个或多个管道模块,例如用于映射和/或比对,这取决于正在处理的会促生一个或多个(例如几个)SAM/BAM文件的样本的数量。然后,这些文件可以被排序、去除重复数据,并转发到一变异检测模块,从而产生一个或多个VCF文件。为了更流畅和准确,可以重复这些步骤。例如,一旦序列数据被映射或比对,例如,以产生SAM文件,该SAM文件就可以被压缩成一个或多个BAM文件,然后该BAM文件可以被传输到一VCF引擎,以便在系统的整个处理过程中被转换成一VCF/GVCF,然后该VCF/GVCF可以被压缩成一CRAM文件。因此,沿着系统输出的文件可以是一Gzip和/或CRAM文件。
具体地,如可以参考图40C和40D所示,一个或多个文件一旦生成,就可以被压缩和/或从一个系统组件传输到另一个系统组件,例如从一本地100传输到一远程资源300,并且一旦被接收,就可以被解压缩(例如如果先前被压缩,或者被转换/解复用)。更具体地,一旦本地资源100或远程资源300接收到该BCL文件,它可以被转换成一FASTQ文件,然后该文件可以被系统的集成电路处理,以便被映射和/或比对,或者可以被传输到远程资源300进行这种处理。一旦被映射和/或比对,结果序列数据(例如SAM文件格式的)可以被进一步处理,例如通过被压缩一次或多次,例如被压缩成一BAM/CRAM文件,该数据然后可以通过位置排序、重复标记和/或变异检测来处理,其结果(例如以一VCF格式)然后可以被再次压缩和/或存储和/或传输(例如从远程资源300到本地资源100)。
更具体地,该系统可以被调整,以便直接处理BCL数据,从而消除一FASTQ文件的转换步骤。同样,BCL数据可以被直接引入到管道,以产生每个样本的一唯一输出VCF文件。中间SAM/BAM/CRAM文件也可以按需生成。因此,该系统可以被配置为接收和/或发送一个或多个数据文件(例如一包含序列信息的BCL或FASTQ数据文件),并对其进行处理,以产生一被压缩的数据文件,例如一SAM/BAM/CRAM数据文件。
因此,如可以参考图41A所示,用户可能想要访问该压缩文件并将其转换为生成的BCL111c和/或FASTQ文件111d的一原始版本,例如用于对数据进行进一步的(例如更高级的)信号处理111b,例如用于纠错。可选地,用户可以访问原始序列数据(例如BCL或FASTQ文件格式111的),并对该数据进行进一步处理,该进一步处理例如用于映射112和/或比对113和/或其他相关函数114/115。例如,来自这些过程的结果数据然后可以被压缩和/或存储和/或经进一步的处理114,该进一步处理例如用于排序114a、去除重复数据114b、重新比对114c、局部重新比对114d和/或压缩/解压缩114e。同一用户或另一用户随后可能想要访问映射和/或比对结果数据的压缩形式,然后对该数据运行另一分析,例如以产生一个或多个变异检测115(例如通过HMM、Smith-Waterman、Conversion等),然后可以对其进行压缩和/或存储。然后,系统的附加用户可以访问压缩的VCF文件116,对其进行解压缩,并使该数据服从一个或多个三级处理方案。
进一步,用户可能想做一管道比较。映射/比对/排序/变异检测对于预形成变体基因组分析非常有用。例如,如果随后需要一进一步的DNA或RNA分析,或某种其他类型的分析,用户可能希望通过在另一条管道运行数据,因此能够访问重新生成的原始数据文件非常有用。同样,该过程可能是有用的,例如在需要创建或重新创建一不同的SAM/BAM/CRAM文件时,例如在产生一新的或不同的参考基因组时,因此可能需要重新与新的参考基因组进行映射并比对。
存储压缩的AM/BAM/CRAM文件更有用,因为它允许系统1的一用户利用这一情况:一参考基因组构成结果数据的主干。在此实施例中,重要的不是与参考一致的数据,而是数据如何与参考不一致。因此,只有与参考不一致的数据才对存储至关重要。因此,系统1可以利用这一事实:仅存储对系统用户重要和/或有用的内容。因此,整个基因组文件(呈现与参考的一致和不一致)或其子部分(仅呈现与参考的一致或不一致)可以被配置为被压缩和存储。因此,可以看出,在各种实施例中,由于只有参考和被检查基因组之间的差异和/或变化对检查最有用,所以只需要存储这些差异,因为与参考相同的任何内容都不需要再次检查。因此,由于任何给定的基因组与参考基因组仅略有不同(例如,99%的人类基因组通常是相同的),因此在BAM文件创建后,仅需要审查和/或保存与参考基因组之间的差异。
另外,从图41B中可以看出,这里提供的云端可访问系统1的另一个有用组件是工作流管理控制器151,其可以用于自动化系统流。这样的系统自动化可以包括利用各种系统组件来访问数据(或者本地100或者远程300),当数据变得可用时和/或在数据变得可用的地方,然后基本上自动地对数据进行进一步的处理步骤,例如关于本申请公开的BioIT管道。因此,工作流管理控制器151是用于引导系统的各种管道(例如,111、112、113、114和/或115)的核心自动化技术,并且在不同实施例中可以采用一人工智能组件121a。
例如,系统1可以包括人工智能(A/I)模块,其被配置为分析系统的各种数据,并响应于此以将其发现与工作流管理系统151通信。具体地,在不同实施例中,A/I模块可以被配置用于分析呈现给系统的各种基因组数据,以及分析通过对该数据的处理生成的结果数据,以便识别和确定该数据之间和/或与可以输入到系统中的任何其他数据之间的各种关系。更具体地,A/I模块可以用于分析与多个其他因素相对应的各种基因组数据,以便确定各种因素(例如数据点)之间的任何关系,例如基于效果的关系,这就所考虑的因素对所确定的基因组数据(例如方差数据)的影响来说可能是有益的,反之亦然。
具体地,如下文更详细描述的,该A/I模块可以被配置成将系统生成的受试者的基因组数据与该受试者或其他人的任何电子医疗记录相关联,以便确定它们之间和/或任何其他相关因素之间和/或数据之间的任何关系。因此,系统在确定这些因素对受试者和/或其基因组数据和/或健康可能具有的任何相关影响和/或关联时,可以使用的这种其他数据包括:NIPT数据、NICU数据、癌症相关数据、LDT数据、环境和/或AgBio数据和/或其他这种数据。例如,用于待分析的进一步数据可以通过其他因素导出,诸如环境数据、包层数据、微生物数据、甲基化数据、结构数据(例如嵌合或交配read数据)、种系变异数据、等位基因数据、RNA数据以及与受试者遗传材料相关的其他此类数据等。因此,A/I模块可用于将流经系统的各种相关数据与一个或多个受试者基因组中确定的变体,以及一个或多个其他可能的基于相关效应的因素联系起来。
具体地,A/I引擎可以被配置为在CPU/GPU/QPU上运行,和/或它可以被配置为作为加速AI引擎运行,其可以在FPGA和/或量子处理单元中实现。具体地,AI引擎可以与系统的各种数据库中的一个或多个(例如,所有)相关联,以便允许AI引擎探索和处理流经系统的各种数据。此外,当其基因组正在被处理的受试者,给予访问基因组和患者记录数据的适当授权时,该系统然后被配置为将各种数据集彼此相关联,并且可以进一步挖掘该数据以确定各种重要的对应、关联和/或关系。
具体地说,该A/I模块可以被配置为执行一关于输入数据的机器学习方案。例如,从本申请执行的分析中产生的多个受试者的基因组数据可以存储在一数据库中。同样,通过适当的授权和认证,可以获得基因组DNA已被处理的受试者的电子医疗/健康记录(EMR),并且该记录同样可以存储在数据库中。如下文更详细描述的,处理引擎可以被配置成分析受试者基因组数据以及他们的EMR数据,以便确定两者之间的任何相关性。然后这些相关性将被进行关系加强的探索及观察,其结果可用于更有效和更高效地执行系统的各种功能。
例如,该AI处理引擎可以访问受试者的基因组数据,与那些受试者的已知疾病或状况相关联,并且从该分析中,人工智能模块可以学习基于该数据执行预测相关的东西,从而变得越来越能够预测在其他个体中的存在的疾病和/或其他类似状况。特别地,通过确定其他人的基因组与其EMR(例如关于疾病标记物的存在)之间的这种相关性,A/I模块可以学习识别其他人的基因组中的这种相关性,例如系统确定的疾病标记物,从而能够预测发生疾病或其他可识别病症的可能性。更具体地,通过讲一分析受试者的基因组与已知或确定的遗传疾病标记进行比较,和/或通过确定受试者基因组中的差异,和/或进一步通过确定基因组数据与受试者健康状况(例如EMR)之间的潜在关系,A/I模块不仅能够得出关于被取样的受试者的相关结论,而且能够得出关于未来可能被取样的其他人的相关结论。这可以以受试者群体为基础,在一个受试者上完成(例如以系统的方式),或者可以在居群中完成和/或在地理位置不同的的人群中完成。
更具体地,就目前的系统而言,产生了一系列的read。该一系列read可能覆盖已知的具有较高显著差异概率的区域。因此,该系统一方面将分析该一系列read以确定差异的存在,同时,基于其先前的发现,会预知差异应该存在还是不应该存在的可能性,例如,它将对答案应该是什么进行初始预测。当分析那个他人基因组的区域时,不管预期的差异是否存在,都会告知。例如,这可以是系统正在使用的数据点总和中的一个数据点,以进行更好的变异检测,和/或更好地将这些变体与一种或多种疾病状态或其他健康状况相关联。
例如,在一示例性学习方案中,A/I分析可以包括拍摄基因组中一个或多个区域(例如对于那些区域,其一个或多个健康状况的编码有嫌疑)的堆积的电子图像,并且将该图像与来自其他堆积的已知变异检测相关联,例如在这些差异已知或未知与疾病状态相关的情况下。随着系统学习处理信息,建立适当的关联,以及更快、更准确地进行正确的检测,这中分析可能会一次又一次地完成。一旦对怀疑引起疾病的基因组的各种已知区域(例如所有已知区域)进行了这种操作,就可以对基因组的其余部分重复这种操作,例如,直到对整个基因组进行了审查。同样,这可以对多个样本基因组一遍又一遍地重复,以便训练系统,例如变异检测者,以便更快、更高效地进行更准确的检测,和/或允许三级处理模块更好地识别不健康状况。
因此,该系统接收许多带有已知答案的输入,执行分析并运算这些答案,从而从该过程中学习,例如,呈现一个关于一个基因组的堆积图像,然后越来越快地学习基于另一个基因组进行检测,因为更容易确定出将要进行的堆积,该堆积类似于已知的与不健康状况相关的先前捕获的图像。因此,该系统可以被配置成例如基于目标识别来学习有关变体的存在的预测,和/或预测这些变体的存在与一种或多种医学状况之间的关系。
具体地说,系统执行的部分或全部基因组分析越多,确定的变体和各种状况(例如,在多个样本中)之间的关系越多,越是善于做出预测,例如,基于堆积的部分或全部基因组图像,系统就变得越好。当基于堆积图像和/或其他read分析预测疾病状态时,这个系统是有用的,这个系统可以包括在EMR(包括表型数据)、堆积图像和/或已知变体(基因型数据)和/或疾病状态或状况中的一个或多个和/或疾病状态或状况之间建立一相关性,例如,可以根据该相关性进行预测。在各种情况下,系统可以包括转录函数,以便能够转录可能是受试者病历的一部分的任何物理笔记,从而将该数据包括在该关联中。
在一次使用模型中,受试者可以拥有移动跟踪器和/或传感器,例如移动电话或其他计算设备,其可以被配置用于跟踪对象的位置以及感测该位置处的用户的环境和/或生理状况。也可以收集其它感测数据。例如,移动计算设备可以包括一GPS跟踪器,和/或其位置可以通过蜂窝塔的三角测量来确定,并且还可以被配置为例如通过蜂窝、WIFI、蓝牙或其他适当配置的通信方案来发送其收集的数据。因此,移动设备可以跟踪和排序与移动计算机的主体所有者的日常生活遇到的地理位置、环境条件、生理状态和其他感测数据有关的环境数据。所收集的位置、环境、生理、健康数据和/或其它相关数据,例如ZNA数据,然后可以例如有规律地和周期性地被传送到这里的一个或多个系统数据库,其中所收集的ZNA数据可以与受试者的患者历史,例如EMR记录和/或其基因组数据(如这里的系统所确定的)相关联。
同样的,在不同实施例中,可以将这些数据中的一个或多个从ZNA收集和分析平台转发到中央储存库,例如在政府设施处,以便进行更大规模(例如在全国范围内)的分析(例如根据本申请公开的人工智能)。例如,数据库,例如政府控制的数据库,可能已经记录了可以与对象的环境数据进行比较的环境数据。例如,在一个示例性实例中,一NICU测试可以在母亲、父亲和他们的孩子身上执行,然后在这三个人的整个生命中,他们的环境和基因组以及病历数据可以被连续地收集和相互关联,和/或在一个或多个模型上关联,例如在个体的生命周期中,尤其是关于突变的发生,例如由于环境影响因素。这种数据收集可以在个体一生中进行,也可以在整个家庭的基础上进行,以便更好地建立数据收集数据库,更好地预测这些因素对遗传变异的影响,反之亦然。
因此,工作流管理控制器151允许系统1接收来自一个或多个资源的输入,例如一个或多个测序仪器,例如110a、110b、110c等,以及接收来自单个测序仪器110的多个输入,其中接收的数据表示多个受试者的基因组。在此实施例中,工作流管理控制器151不仅跟踪所有输入数据,而且还有效地组织和促进接收数据的二级和/或三级处理。因此,工作流管理控制器151允许系统1无缝连接到小型和大型测序中心,其中所有种类的遗传物质同时可以来自一个或多个测序仪器110,所有这些都可以被转移到系统1中,例如通过云端50。
具体而言,如可以参考图41A所示,在不同实施例中,可以在系统1内接收一个或多个样本,因此系统1可以被配置为,或顺序地或并行地,接收和有效地处理样本,例如在多样本处理方案中。因此,为了流畅和/或自动化处理多个样品,该系统可以由一综合工作流管理系统(WMS)或LIMS(实验室信息管理系统)151控制。WMS151使用户能够轻松地为任何管道调度多个工作流运行,,以及使用户能够调整或加速NGS分析算法、平台管道及其附带的应用。
在此实施例中,每个运行序列上可能有一个条形码,指示它是什么类型的序列,它的文件格式,和/或已经执行了什么处理步骤,以及需要执行什么处理步骤。例如,条形码可以包括一个清单表示“这是受试者X的基因组运行,以文件格式Y,因此该数据需要去到管道Z”,或者同样可以表示“这是A的结果数据,需要在该报告系统中运行”。因此,当数据通过系统接收、处理和传输时,条形码和结果将被加载到工作流管理系统151中,例如LIMS(实验室信息管理系统)。在此实施例中,LIMS可能是一用于实验室管理的标准工具,也可能是专门设计的用于管理流程的工具。
在任何情况下,工作流管理控制器151跟踪一条形码样本,从其到达给定地点(例如用于存储和/或处理的地点),直到结果被发送给用户。特别地,工作流管理控制器151被配置成跟踪所有数据,在所有数据端到端地流经系统时。更具体地说,当样本进入时,read与样本相关联的条形码,并且基于该read,系统确定所请求的工作流程是什么,并且准备样本进行处理。这种处理可以是简单的,例如通过单个基因组管道运行,或者可以是更复杂的,例如通过需要交织在一起的多个(例如五个管道)运行。在一个特定模型中,生成的或接收的数据可以通过系统运行以产生处理过的数据,然后处理过的数据可以通过一GATK等效模块运行,结果可以被比较,然后样本可以被传输到另一个管道以进一步处理,例如三级处理700。参见图41B。
因此,系统作为一个整体可以与几条不同的处理管道一致运行。事实上,许多系统进程可以是互连的,其中工作流管理器151被通知或以其他方式确定:新的作业未决,量化作业矩阵,识别可用资源(所述资源用于执行需要的分析作业),将作业加载到系统中,接收例如来自测序器110的数据,将其加载,然后对其进行处理。特别是,一旦建立了工作流,就可以保存工作流,然后一修正后的条形码被分配给该工作流,并且自动化过程根据工作流的指令进行。
在开发目前的自动化工作流管理系统151之前,配置和设置该系统及其组成部件需要许多生物信息学专家并耗用很长时间,然后实际运行分析需要更多时间。为了使事情更加复杂,在接收下一个要分析的样本之前,必须重新配置系统,这需要更多的时间来重新配置系统来分析新的样本集。利用本申请公开的技术,该系统可以完全自动化。特别地,本系统被配置为自动接收多个样本,将它们映射到多个不同的工作流和管道,并在相同或多个不同的系统卡上运行它们。
因此,工作流管理系统151read条形码的作业要求,分配用于执行作业的资源(例如,不管位置如何),更新样本条形码,并将样本引导到所分配的资源(例如,处理单元)用于处理。因此,工作流管理器151确定将在接收的样本上运行的耳二级分析方案600和/或三级分析方案700。这些处理单元是可用于描绘和执行分配给每个数据集的操作的资源。具体而言,工作流控制器151控制各种操作,与该操作相关联的有:接收和read样本、确定作业、为这些作业的执行分配资源(例如,二级处理)、连接所有系统组件以及将样本集从一个组件推进到另一个组件。因此,控制器151用于从开始到结束管理整个系统,例如,从样本接收到VCF生成,和/或通过三级处理,参见图41B。
在一些附加的实施例中,参图41C所示,系统1可以包括另一层处理模块800,例如被配置用于呈现附加处理,例如二级和/或三级处理结果数据的处理,例如用于诊断、疾病和/或治疗发现和/或预防。例如,在不同实施例中,可以提供一额外的处理层800,例如用于疾病诊断、治疗治疗和/或预防预防70,例如包括NIPT123a、NICU123b、癌123c、LDT123d、AgBio123e,以及其他这样的疾病诊断、预防和/或治疗,其使用由一个或多个本申请提供的初级和/或二级和/或三级管道产生的数据。
因此,本申请提供一系统,用于产生和使用本地30和/或全球混合50云端网络。例如,目前,本地云端30主要用于私有存储,例如在远程存储位置400。在此实施例中,数据的计算由本地计算资源140在本地100执行,并且在存储需求广泛的情况下,可以访问本地云端30,以便存储由本地计算资源140生成的数据,例如通过使用远程专用存储资源400存储。因此,生成的数据通常完全在本地100站点上管理。在其他实施例中,可以通过经由一私有云接口30安全地连接到一远程计算资源300来完全异地生成、计算和管理数据。
具体地,在生物信息学分析平台的一般实现中,本地计算140和/或存储200函数在站点100进行本地维护。然而,在存储需求超过本地存储容量的情况下,数据可以经由本地云端访问30上传,以便在站点400之外私下存储。此外,在需要将存储的数据400提供给其他远程用户的情况下,这样的数据可以通过全局云50接口被传输并提供给远程存储400,用于全局访问。在此实施例中,其中执行计算函数所需的计算资源140最小,但是存储需求较大,计算函数140可以在本地100被维护,而存储函数400可以被远程维护,例如用于私有或全局访问,完全处理的数据在本地处理函数140(例如仅用于本地处理)和存储函数400(例如用于处理的数据的远程存储400)之间来回传输,例如通过采用本申请公开的JIT方案。
例如,这可以结合测序函数110来举例说明,例如利用一典型的NGS,其中数据生成和/或计算资源100被配置为执行基因材料测序所需的函数,以便产生基因测序数据(例如read),该数据在现场100产生和/或在本地现场30传送。这些read一旦生成(例如由现场NGS生成),然后可以通过云网络30传输,例如作为BCL或FASTQ文件,例如用于一远程位置300处的存储400,以便在必要时从云端30调用,例如用于进一步处理。例如,一旦序列数据已经被生成并被存储,例如400,该数据然后可以被调用,例如用于本地使用,例如用于二级处理函数600和/或三级处理函数700中的一个或多个的执行,该执行在远离存储设施400的位置进行,例如本地100。在此实施例中,本地存储资源200仅用作存储高速缓存,在该存储高速缓存中放置数据,同时等待传输至云端30/50或从云端30/50传输,例如传输至远程存储设施400或自远程存储设施400传输。
同样的,当计算函数非常庞大时,例如需要一个或多个远程计算服务器或计算集群核心300来处理数据,并且当处理数据所需的计算资源300相比,存储已处理数据200的存储需求相对最小,待处理的数据可以被发送(例如通过云端30),以由远程计算资源300处理,该资源可以包括一个或多个计算资源核心或集群,例如一个或多个超级计算资源。在此实施例中,一旦数据已经被基于云端的计算机核心300处理,处理后的数据可以随后通过云网络30被传送,以便被本地存储200,并且是较快地被本地计算资源140使用,例如用于本地分析和/或诊断。当然,远程生成的数据300也可以远程存储400。
这里结合一典型的二级处理函数600进一步举例说明,例如当预处理的测序数据(例如read的数据)被本地存储200,并且被访问(例如被本地计算资源100访问)并通过云互联网30被传输到远程计算设施300,以便由此被进一步处理,例如在二级处理函数600或三级处理函数700中进一步处理,以获得处理的结果数据,然后可以将处理的结果数据发送回本地设施100以供存储200。这可能是一种情况,其中本地设备使用一本地数据生成资源110(例如,自动测序器)生成测序read数据,以生成一BCL或FASTQ文件,然后通过网络50将该数据发送到远程计算设施300,远程计算设施300随后对该数据运行一个或多个函数,例如对该序列数据运行一Burrows-Wheeler变换或Needman-Wunsch和/或Smith-Watman比对函数,以便生成结果数据(例如,SAM文件格式的结果数据),然后该数据可以通过网络30/50被压缩和传输(例如以一BAM文件格式)至本地计算资源100,以在一个或多个本地管理的处理方案中被检查,例如用于产生一VCF,然后VCF可以被存储在本地200。在各种情况下,数据也可以远程存储400。
然而,需要的是一个本地100和远程300计算机处理之间以及本地200和远程400存储之间的无缝集成,例如本申请呈现的基于混合云50的系统中。在此实施例中,该系统可以被配置成使得本地100和远程300计算资源被配置成无缝衔接地运行,这样要处理的数据可以被实时分配给本地200或远程300计算资源,而不会由于传输速率和/或操作效率而付出大量的代价。例如,可能是这样的情况,由计算资源100和300部署或以其他方式运行的软件和/或硬件和/或量子处理被配置,以彼此对应,和/或彼此相同或彼此功能相似,例如,硬件和/或软件以相同的方式被配置,以用相同的方式对生成和/或接收的数据运行相同的算法。
例如,可以参考图41A所示,一本地计算资源100可以被配置用于生成或接收生成的数据,因此可以包括数据生成机构110(例如用于主数据生成和/或分析500),以便生成一BCL和/或FASTQ序列文件。该数据生成机构110可以是本地计算机100或可以与本地计算机100(如本申请通篇所述的)相关联,本地计算机100包括一处理器140,处理器140可以被配置为运行一个或多个软件应用和/或可以被硬连线,以便对生成和/或获取的数据执行一个或多个算法(例如在一有线配置)。例如,该数据生成机构110可以被配置用于生成一个或多个生成数据,例如排序数据111。在各种实施例中,生成的数据可以是感测数据111a,诸如电压、离子浓度、电磁辐射等的变化可检测的数据;和/或数据生成机构110可以被配置用于生成和/或处理信号,例如模拟或数字信号数据,例如表示相关核苷酸序列或链中的一个或多个核苷酸特性的数据。在此实施例中,数据生成机构110,例如测序器111,还可以被配置为对生成的数据执行初步处理,以便进行信号处理111b,或者对数据执行一个或多个碱基检测操作111c,以便生成序列标识数据,例如一BCL和/或FASTQ文件111d。
应该注意,在此实施例中,产生的数据111可以本地直接产生,例如由本地数据产生110和/或计算资源140(例如芯片上的NGS或测序器)产生。或者,数据可以本地间接地产生,例如通过一远程计算和/或产生资源,例如一远程NGS。数据111(例如BCL和/或FASTQ文件格式的)一旦产生,就可以通过本地云30间接传送到本地计算资源100,例如用于辅助处理140和/或由此存储在本地存储资源200中,例如在等待进一步的本地处理140。在此实施例中,其中数据生成资源是远离本地处理100和/或存储200资源的,相应的资源可以被配置,这样每个资源所采用的远程和/或本地存储、远程和本地处理和/或通信方案可以被适配成相互平稳衔接的或无缝衔接的,例如通过运行相同、相似和/或等效的软件和/或通过具有相同、相似和/或等效的硬件配置,和/或采用相同的通信和/或传输方案,在一些实施例中,这些方案可以在制造时或之后实施。
具体地,在一种实施方式中,这些函数可以以硬连线配置来实现,例如其中测序函数和二级处理函数保持在相同或相关的芯片或芯片组上,例如其中测序器和二级处理器直接互连在义芯片上,如本申请所述。在其他实施方式中,这些函数可以通过软件在两个或更多个单独的设备上实现,例如在一量子处理器、CPU或GPU上实现,该量子处理器、CPU或GPU已经被优化以允许两个远程设备彼此无缝通信。在其他实施例中,也可以采用一优化硬件和软件实现的组合,以执行所述函数。
具体而言,结合映射、比对、排序、变异检测和/或其他函数的实现,该相同的配置可以应用,其中,该其他函数可由本地100和/或远程300计算资源部署。例如,本地计算100和/或远程300资源可以包括软件和/或硬件,该软件和/或硬件被配置为执行处理函数112-115的一个或多个二级600层,和/或执行处理函数的三级层700/800,在本地和/或远程生成的数据(例如遗传序列数据)上,这样,这些处理及其结果可以彼此无缝共享和/或由此存储。特别地,本地计算函数100和/或远程计算函数300可以被配置用于生成和/或接收原始数据,例如遗传序列数据(例如一BCL和/或一FASTQ文件格式的),并对生成和/或获取的数据运行一个或多个二级600和/或三级700处理方案。在此实施例中,这些方案中的一个或多个可以以软件、硬件或软件硬件组合的格式实现,例如在一量子处理器、一CPU和/或一GPU上运行。例如,数据生成110和/或本地100和/或远程300处理资源可以被配置为在软件和/或硬件中,对获取或生成的数据执行映射操作112、比对操作113、变异检测115或其他相关函数114中的一个或多个。
因此,在各种实施例中,数据生成资源,例如测序仪111(如芯片上的NGS或测序仪),无论以软件和/或硬件实现还是以其组合来实现,可配置为包括处理器500的一初始层,例如调度器、各种分析、比对器、图表器、释放器等),以便帮助数据生成器111(例如测序仪)将生物信息转换成原始read数据,例如BCL或FASTQ文件格式111d。进一步地,本地计算100资源,无论以软件和/或硬件实现还是以其组合来实现,可以进一步配置为包括处理器600的另一层,可包括映射引擎112或者包括对基因序列数据运行映射算法(例如执行Burrows-Wheeler变换和/或其他对上述数据构建散列表和/或运行散列函数(例如散列种子映射)的算法)的其他程序,以生成映射的序列数据。更进一步地,本地计算100资源无论是以软件和/或硬件实现还是以其组合实现,都可以进一步配置为包括处理器600的初始层,可包括本公开所述的比对引擎113或者可以另外包括用于对基因序列数据(例如映射的测序数据)运行比对算法(例如用于对所述数据执行有空位和/或无空位的Smith-Waterman和/或Needleman-Wunsch比对算法或其他评分算法113a)的程序,以生成比对序列数据。
本地计算资源100和/或数据生成资源110还可以被配置为包括无论是用软件和/或硬件或者还是其组合实现的一个或多个其他模块114,其适于对基因序列数据执行一个或多个其他处理函数,例如映射的和/或比对的序列数据,因此可以包括适当的配置引擎114或包括用于运行一个或多个其他处理函数的编程,例如排序114a,去除重复数据114b,重新校准114c,局部重新比对114d,重复标记114f,碱基质量评分重新校准114g函数和/或压缩函数(例如产生SAM、简化BAM和/或CRAM压缩和/或解压缩文件)114e,根据本文所描述的方法,该处理函数可以被配置为系统1的一个或多个管道。
类似地,系统1可以被配置成包括无论是用软件和/或硬件或者还是其组合实现的适于处理数据的模块115,例如,经测序的、经映射的、经比对的和/或经排序的数据,以产生变异检测文件116,例如在基于硬件和/或软件的处理中。更具体地,系统1可以包括变异检测模块115,用于运行一个或多个变异检测函数,例如隐马尔可夫模型(HMM)和/或GATK函数115a,例如以有线配置和/或经由一个或多个软件应用程序,例如本地或远程地,和/或用于其的转换器115b。在各种情况下,该模块可以被配置为系统1的一个或多个管道。
在特定实施例中,如图41B所示,系统1可以包括本地计算函数100,其可以被配置为使用计算机处理资源150来对系统生成器110生成的或者由系统获取装置120获取的数据(如BCL和/或FASTQ数据)执行一个或多个其他计算机处理函数(如下所述),例如通过例如由第三方121例如通过云30或混合云网络50向其传送。例如,第三方分析器121可以部署远程计算资源300以生成需要进一步处理的相关数据,例如基因序列数据等,该数据可以通过网络30/50传送给系统1以便进一步处理。例如,在远程计算资源300是NGS的情况下,这可能是有用的,其被配置用于获取原始生物数据并将其转换为其数字表示,例如以包含基因序列数据read的一个或多个FASTQ文件的形式,需要进一步处理,例如以确定所生成的个体的序列与一个或多个参考序列的区别,如本公开所述,和/或期望对其结果进行进一步处理,例如三级处理。
在这种情况下,系统1可以被适配为允许一方或多方(例如初级和/或第二和/或第三方用户)访问关联的本地处理资源100,和/或适当配置的远程处理资源300与其相关联,以便允许用户对生成的和/或获取的数据执行一个或多个定量和/或定性处理函数152。例如,在一种配置中,除了初级600和/或二级600处理管道以外,系统1还可以包括第三级处理模块700/800,所述处理模块可以被配置用于对生成的和/或获取的初级和/或二级处理的数据执行一个或多个处理函数。
具体地,在一个实施例中,系统1可以被配置用于生成和/或接收经处理的基因序列数据111,其已被远程或本地映射112、比对113、排序114a和/或进一步处理114,以便生成变异检测文件116,该变异检测文件然后可以例如在系统1内用于进一步处理,例如响应第二和/或第三方分析请求121。更具体地,系统1可以被配置用于接收来自第三方121的处理请求,并且对所生成的和/或获取的数据执行所请求的这样的三级处理700/800。具体而言,系统1可以被配置用于产生和/或获取基因序列数据111,可以被配置用于获取该基因序列数据和映射112、比对113和/或排序114a以产生一个或多个变异检测文件(VCF)116。另外,系统1可以被配置为对数据执行三级处理函数700/800,所述数据关于例如由系统1产生或接收的一个或多个变异检测文件(VCF)有关。
具体地,系统1可以被配置为对生成的和/或获取的数据执行任何形式的三级处理700,例如通过使其用于一个或多个管道处理函数700其他潜在数据分析管道生成基因组(如全基因组)数据122a、表观基因组数据122b、宏基因组数据122c等,包括联合基因分型数据122d,变异分析数据(包括GATK 122e和/或MuTect2 122f分析数据,其他潜在数据分析管道为:例如微阵列分析管道、外显子组分析管道、微生物组分析管道及RNA序列分析管道和其他基因分析管道。此外,系统1可以被配置用于对生成的和/或处理的数据执行的处理模块800的额外层,例如包括非侵入性产前测试(NIPT)123a、N/P ICU 123b、癌症相关诊断和/或治疗模式123c、各种实验室开发的测试(LDT)123d、农业生物(AgBio)应用程序123e或其他与健康护理相关的处理函数123f,如图41C所示。
因此,在各种实施例中,在主用户可以直接访问和/或配置系统1及其各种组件的情况下,例如通过直接访问(例如通过本地计算资源100),如本公开所述,系统1也可以适用于由第二方访问,例如通过本地网络或内部网连接10连接到系统1,以便在本地环境内配置和运行系统1。另外,在某些实施例中,该系统可适用于由第三方121访问和/或配置,例如通过相关联的混合云网络50,其通过应用程序接口(API)将第三方121连接至系统1,可通过一个或多个图形用户界面(GUI)组件访问。这样的GUI可以被配置为允许第三方用户访问系统1,并且使用该API来配置系统的各种组件、模块、相关联的管道以及其他相关联的数据生成和/或处理函数,以运行只对第三方有用和/或必需的系统组件和/或被请求或希望由此运行的系统组件。
相应地,在各种情况下,本文中呈现的系统1可适于由系统的主用户、第二用户或第三用户配置。在这样的情况下,系统1可适于允许用户配置系统1并且布置其组件,以布置一个、全部或选择的分析系统资源(例如152),从而在生成、获取或传输到系统的数据上运行(例如由主用户、第二方用户或第三方用户),使得系统1仅运行对于运行用户请求的分析所必需或有用的系统部分,以获得其期望的结果。例如,对于这些和其他目的,API可以包括在系统1内,其中API被配置为包括图形用户界面(GUI)或与图形用户界面(GUI)可操作地关联,该图形用户界面(GUI)包括可操作的菜单和/或相关的系统函数调用列表,用户可以根据需要选择和/或配置和操作系统及其组件。
在这种情况下,GUI菜单和/或系统函数调用可以指导第一操作层600中的一个或多个用户可选操作,包括:测序111、映射112、比对113、排序114a、变异检测115,和/或其它根据本文所述的相关函数114,例如关于本文描述的初级处理函数和/或二级处理函数。此外,在需要时,GUI菜单和/或系统函数调用可指导第二操作层700中的一个或多个的操作,包括:基因组管道122a、表观基因组管道122b、宏基因组管道122c、联合基因分型管道122d、GATK 122e和/或MuTect2 122f分析管道。此外,在需要时,GUI菜单和系统函数调用可指导第三层操作800中的一个或多个用户可选操作,包括:非侵入性产前测试(NIPT)123a、N/PICU 123b、癌症相关诊断和/或治疗模式123c、各种实验室开发的测试(LDT)123d、农业生物(AgBio)应用程序123e或其它与健康护理相关的处理函数123f。
因此,菜单和系统函数调用可以包括一个或多个初级、二级和/或三级处理函数,以便配置系统和/或其组成部分,例如由用户选择和配置以执行一个或多个数据分析管道。在这样的实例中,本地计算资源100可以被配置为对应于远程计算资源300和/或镜像远程计算资源300,和/或同样地,本地存储资源200可以被配置为对应远程存储资源400和/或镜像远程存储资源400,因此,系统的各种组件可以运行和/或由此生成的数据可以本地或远程存储,按照使用系统1选择的无缝分布的方式。另外,在特定实施例中,系统1可供第三方访问,用于对所生成和/或处理的数据运行专有分析方案121a,例如通过运行人工智能界面以找到它们之间的相关性。
系统1可以被配置为对生成的和/或获取的数据执行任何形式的三级处理。因此,在各种实施例中,主用户、第二用户或第三用户可以直接(例如通过直接访问计算资源100)或间接地(例如通过本地网络连接10或通过将该方连接到系统1的相关联的混合云网络50)访问和/或配置系统1及其各种组件的任何级别,例如通过具有适当许可的适当配置的API。在这种情况下,系统组件可以呈现为菜单,例如GUI可选菜单,其中用户可以从所有处理和存储选项中进行选择,选择期望在用户提供的数据上运行的处理和存储选项。此外,在各种情况下,用户可以上传他们自己的系统方案以便由系统采用和运行,并按照用户设计和选择的方式处理各种数据。在这种情况下,GUI和相关API允许用户访问系统1并使用API添加并配置系统的各种组件、模块、相关管道以及其他相关联的数据生成和/或处理函数,以运行只对该方有用和/或必需的系统组件和/或被请求或希望由此运行的系统组件。
关于图41C,一个或多个上述划分的模块及其相应的函数和/或相关联的资源可以被配置为远程执行,例如由远程计算资源300执行,并且被发送到系统1,例如通过基于全球云的互联网连接50的无缝传输方案,例如经由适当配置的数据获取装置120。因此,在这种情况下,本地计算资源100可以包括数据获取装置120,例如被配置用于发送和/或接收这样的获取数据和/或关联信息。
例如,系统1可以包括数据获取装置120,该数据获取装置120被配置为允许数据的继续处理和/或存储为无缝且稳定的方式,例如基于云或基于混合网络50,其中处理函数分布在本地100和/或远程300,并且类似地,这样的处理的一个或多个结果可以本地存储200和/或远程存储400,使得系统无缝地分配给本地或远程资源,无论其物理位置在哪里,给定作业将被发送用于处理和/或存储。这样的分布式处理、传输和获取可以包括以下各项中的一项或多项:测序111、映射112、比对113、排序114a、重复标记114c、去除重复数据、重新校准114d、局部重新比对114e、碱基质量评分重新校准114f函数和/或压缩函数114g,以及如本公开所述的变异检测函数116。在本地存储200或远程400的情况下,处理的数据无论处于何种状态,都可以被本地100或远程处理300资源使用,例如用于在重新传输和/或重新传输之前的进一步处理。-存储。在本地存储200或远程存储400的情况下,处理的数据可以处于本地或远程处理300资源中,例如用于重新传输和/或重新存储之前的进一步处理。
具体地,系统1可以被配置用于产生和/或获取基因序列数据111,可以被配置用于获取基因序列数据111并在本地处理140,或者通过适当配置的云30或混合云50网络传输数据,例如传输至远程处理设备用于远程处理300。此外,经过处理后,系统1可以被配置用于远程存储处理的数据400或者将其传送回本地存储器200。因此,系统1可以被配置用于本地或远程生成和/或处理数据,例如该生成和/或处理步骤来自初级和/或二级处理函数600的第一层,该层可以包括以下一个或多个:测序111、映射112、比对113和/或排序114a,以便产生一个或多个变异检测文件(VCF)116。
进一步地,系统1可以被配置用于本地或远程生成和/或处理数据,例如该生成和/或处理步骤来自三级处理函数700的第二层,上述层可以包括生成和/或获取的一个或多个数据,其中数据是关于基因组管道122a、表观基因组管道122b、宏基因组管道122c、基因分型管道122d、变异(例如GATK122e和/或MuTect2)分析122f管道,以及其他三级分析管道,例如微阵列分析管道、外显子组分析管道及RNA测序管道及其他分析管道。另外,系统1可以被配置用于本地或远程生成和/或处理数据,例如该生成和/或处理步骤来自三级处理函数800的第三层,上述层可以包括生成和/或获取的一个或多个数据,其中数据是关于非侵入性产前测试(NIPT)123a、N/P ICU 123b、癌症相关诊断和/或治疗模式123c、各种实验室开发的测试(LDT)123d、农业生物(AgBio)应用程序123e或其他与健康护理相关的处理函数。
在具体实施例中,如图41C所示,系统1还可以被配置为允许一方或多方访问系统,并且将信息传递到关联的本地处理100和/或远程300处理资源或从关联的本地处理100和/或远程处理资源300传输信息,以及在本地200或远程400存储信息,以允许用户选择被处理的信息和/或存储在系统1的位置。在这种情况下,用户不仅可以确定对生成的和/或获取的数据执行什么初级、二级和/或三级处理函数,还可以部署这些资源,和/或选择存储这些处理结果的位置。例如,在一种配置中,用户可以选择本地或远程产生数据,或其组合,以及选择是否进行二级处理;如果是,则确定进行二级处理的模块,和/或运行该过程的资源,并且还可以确定生成的或获取的数据是否进一步进行三级处理;如果是,则确定它接受的第三处理700模块和/或层,和/或运行这些进程的资源,并且同样地,这些进程的结果被存储用于每个操作步骤。
具体地,在一个实施例中,用户可以配置图41A所示的系统1,使得基因序列数据111远程地生成(例如通过NGS),但是数据的二级处理600在本地发生100。在这样的实例中,用户可以确定本地的二级处理函数100,例如通过从可用处理选项的菜单中选择处理函数,例如映射112、比对113、排序111和/或产生VCF 116。然后,用户可以选择本地处理的数据是否经过三级处理,如果是,则可选择被激活的模块以进一步处理该数据,以及这种三级处理是本地发生的还是远程发生的。同样,用户可以选择各种在任何给定的步骤或操作时间内,本地200或远程400存储任何生成的和/或获取的数据的各种三级处理选项。
更具体地,主用户可以将系统配置为接收来自第三方的处理请求,其中第三方可以配置该系统,以便对所生成的和/或获得的数据执行所请求的初级、二级和/或三级处理。具体而言,用户或第二方或第三方可以将系统1配置为用于本地地100或远程地200产生和/或获取基因序列数据,可以配置系统1以本地或远程地获取该基因序列数据以及对其进行映射、比对和/或排序,以便产生一个或多个变异检测文件(VCF),并且另外可以将系统配置为对数据执行三级处理函数,例如关于一个或多个VCF,本地或远程地。
更具体地,用户或其他方可以配置系统1以对所生成的和/或所获取的数据执行任何形式的三级处理,并且该处理在系统中发生位置。因此,在各种实施例中,第一方、第二方和/或第三方121用户可以直接访问和/或配置系统1及其各种组件,例如通过本地网络连接30直接访问本地计算函数100,或通过将第三方121连接到系统1的相关联的混合云网络50,例如通过应用程序接口(API),可通过一个或多个图形用户界面(GUI)组件访问。在这种情况下,第三方用户可以访问系统1并使用API来配置系统的各种组件、模块、相关联的管道以及其他关联的数据生成和/或处理函数,以运行只对第三方有用和/或必需的系统组件和/或被请求或希望由此运行的系统组件,并进一步分配哪些计算资源将提供所请求的处理,以及结果数据将被存储的位置。
相应地,在各种情况下,系统1可以由系统的主用户、第二用户或者第三用户配置,其可以配置系统1以布置其组件,一个、全部或选择的分析系统资源,所述分析系统资源在用户直接生成的、由系统1生成、传送至系统1的数据上运行,例如通过与其相关联的网络,例如通过数据获取装置120。因此,系统1是可配置的,以运行只对请求方有用和/或对分析必需的系统部分。例如,为了这些目的和其他目的,可以包括API,其中API被配置为包括GUI可操作菜单和/或系统函数调用的相关列表,用户可以从中选择系统函数调用以根据需要配置和操作系统。
另外,在特定实施例中,系统1可以由第三方访问,例如政府监管机构,例如联邦药品管理局(FDA)70b,或者允许第三方整理、编译和/或访问由系统1导出或获得和/或汇编的遗传信息的数据库,以便形成电子病历(EMR)数据库70a和/或允许政府对系统的访问和/或监督,例如药物开发评估。系统1还可以被设置为对数据70c进行汇编、编译和/或注释和/或允许其他高级用户访问。
因此,系统1和/或其组件可以被配置为由远程用户(例如主用户或第三方)访问,因此,计算机资源100和/或300中的一个或多个可以包括用户界面,和/或可以进一步包括具有图形用户界面的显示设备,用于允许系统的潜在用户访问系统以便发送样本数据以便进入本文所述的一个或多个生物信息学管道,和/或用于从中接收结果数据。GUI或其他界面可以被配置为允许用户例如经由适当配置的web门户管理系统组件,并且跟踪样本处理进度,而不论要参与的计算资源是在本地100还是远程300提供的。因此,GUI可以列出可以执行的一组作业,例如,映射112、比对齐113等,和/或用于执行作业的一组资源,并且用户可以自己选择想要运行的作业及所使用的资源。因此,在这样的实例中,每个单独的用户可以在用户界面构建唯一的作业,或者可以使用预定的分析工作流程,例如通过点击,拖动或以其他方式选择他们希望运行的特定工作项目。
例如,在一个使用模型中,呈现有GUI界面的标板(dashboard),该GUI界面可以包括表示可以在系统上实现和运行的各种过程的多个图标。在这样的实例中,用户可以点击或拖动所选择的工作过程图标到工作流程界面中,以便构建期望的工作流程过程,保存构建的工作流程过程并用于建立样本集条形码的控制指令。一旦选择了期望的工作项目,工作流程管理控制器151可以配置期望的工作流程过程(例如,二级分析),然后识别并选择用于执行所选分析的资源。
工作流分析过程开始后,可以查看仪表板以跟踪系统的进度。例如,标板可以指示正在通过系统运行的数据量,正在对数据运行的进程,已完成的数量,剩余的处理量,已完成的工作流程以及仍需要访问的数据,要运行的最新项目,以及哪些项目已经完成。实质上,可以向桌面提供对系统上运行的所有内容或其子部分的完全访问。
此外,在各种实例中,桌面可包括可通过一个或多个标签访问的各种不同的用户界面。例如,用于访问系统控件的一个标签可以是“本地资源100标签”,选择该标签时允许用户选择能够在本地实现的控制函数。另一个标签可以配置用于访问“云资源300”,选择该标签时允许用户选择能够远程实现的其他控制功能。因此,在与标板交互时,用户可以选择执行的任务及对应的资源,并且因此可以根据需要增加或减少资源使用以满足项目要求。
因此,随着计算复杂性增加和/或期望增加的速度,用户(或系统本身,例如WMS151)可以根据需要在线提供越来越多的资源,例如仅通过点击按钮,指示工作流管理器根据需要在线提供额外的本地计算资源100和/或基于云的远程计算资源300,以在期望的时间范围内完成任务。以这种方式,尽管系统由工作流管理器控制器151自动执行和/或控制,但系统的用户仍然可以设置控制参数,并且在需要时可以使基于云的远程计算资源300在线。因此,控制器151可以根据需要扩展到云50/300以引入额外的处理和/或存储资源400。
在各种实例中,桌面界面可以被配置为通过移动设备和/或台式计算机访问的移动应用程序或“app”。因此,在一个方面,可以提供基因组市场或群组,以便允许多个用户在一个或多个研究项目中协作,以便形成可通过标板应用程序(基于web的浏览器界面)访问的电子群组市场。因此,系统可以提供用于分析遗传数据的执行协作研究的在线论坛和/或用于开发各种分析工具的市场,该系统可以直接通过系统界面或通过app访问,以允许用户远程控制系统。
因此,在各种实施例中,如图42A所示,提供了混合云50,其中混合云利用远程计算300和/或存储400资源连接本地计算100和/或存储资源200,例如本地资源和远程资源在空间及地理上彼此分离。在这样的情况下,本地和远端资源可以被配置为以某种方式彼此通信,以便在两者之间无缝地共享信息(诸如数字数据)。特别地,本地资源用于(例如在通过混合网络50传输之前)对数据执行一种或多种类型的处理,并且远程资源用于执行一种或多种类型的数据的进一步处理。
例如,在一个特定配置中,可以配置系统1,从而配置生成和/或分析函数152为由本地计算资源在本地执行100,例如用于执行初级和/或二级处理函数,从而生成和/或处理基因序列数据,如本公开所述。另外,在各种实施例中,本地资源可以被配置用于对数据执行一个或多个三级处理函数,例如基因组、外显子组和/或表观基因组分析、或者癌症、微生物组和/或其他DNA/RNA处理分析中的一种或多种。此外,在意图将这种处理的数据传输到例如远程计算300和/或存储400资源的情况下,可以例如通过适当配置的变换器来变换数据,该变换器可以被配置用于索引、转换、压缩和/或加密数据,例如在通过混合网络50传输之前。
在特定实例中,例如将所生成和处理的数据传输到远程计算资源(如服务器300)以进行进一步处理,这样的处理可以具有全局性质并且可以包括:从多个本地计算资源100接收数据;整理所述多种数据;注释数据;比较数据,比如解释数据,确定其趋势;用各种生物标记分析数据;以及帮助开发诊断、治疗和/或预防。因此,在各种情况下,远程计算资源300可以被配置为数据处理集线器,例如在等待被转换和/或传送的同时可以传送、处理和/或存储来自各种源的数据,例如通过被本地计算资源100访问。更具体地,远程处理集线器300可以被配置用于接收来自多个资源100的数据,对其进行处理并且将经处理的数据分发回各本地资源100,以允许研究者和/或资源100之间的协作。这样的协作可以包括各种数据共享方案,并且可以另外包括准备待传送的数据,例如通过允许系统1的用户在各种安全方案中进行选择以及/或隐私设置,以控制数据如何准备传输。
在一个特定实例中,如图42B所示,提供本地计算100和/或存储200资源,例如在用户的位置现场。如本公开所述,计算资源100和/或存储200资源可以耦合到数据生成资源121(例如NGS或如本公开所述的芯片上的测序仪),例如通过直接或者内部网连接10,其中测序仪121用于生成基因序列数据,例如BCL和/或FASTQ文件。例如,测序仪121可以是与计算资源100和/或存储单元200相同的装置的一部分和/或容纳在该装置中,以便具有与其直接可通信和/或可操作的连接,或者测序仪121并且计算资源100和/或存储资源200可以是彼此分开的设备的一部分,但是容纳在相同的设施中,并且因此通过有线连接或内部连接10连接。在一些情况下,测序仪121可以容纳在与计算机100和/或存储器200资源不同的设施中,并且因此可以通过互联网30或混合云50连接。
在这样的情况下,基因序列数据可以在被变换之前,使用适当配置的变换器对其进行处理100并本地存储200,或者所生成的序列数据可以被直接传送到一个或多个变换器和/或分析器152中,例如通过适当配置的本地连接10、内联网30或混合云连接50,如上所述,例如在本地处理之前。特别地,如同数据生成资源121一样,变换器和/或分析器152可以是与计算资源100和/或存储单元200相同的设备的一部分和/或容纳在该设备中,以便具有与其直接可通信和/或可操作的连接,或者变换器和/或分析器152以及计算资源100和/或存储资源200可以是彼此分开的设备的一部分,但是容纳在相同的设施中,并且因此通过有线连接或内联网10连接。在一些情况下,变换器和/或分析器152可以容纳在与计算机100和/或存储器200资源不同的设施中,并且因此可以通过互联网30或混合云50连接。
例如,变换器用于在分析之前或后分析之前准备要传输的数据,例如通过适当配置的计算资源100和/或分析器152。例如,分析器152可以对数据执行二级和/或三级处理函数,如本公开所述,例如用于分析生成的序列数据,序列数据关于确定其基因组和/或外显子特征152a,其表观基因组特征152b,任何各种感兴趣的DNA和/或RNA标记和/或癌症指标152c及其与一个或多个微生物组152d的关系,以及如本公开所述的一个或多个其他二级和/或三级过程。
如上所述,例如通过适当配置的变换器来变换所生成的和/或处理的数据,例如在数据通过系统1从其一个组件传输到另一组件之前,例如通过直接的本地连接10、互联网30或混合云50连接。这样的变换可以包括一个或多个转换151d,例如数据从一种形式转换为另一种形式;理解151c,包括编码、解码和/或将数据从不可理解的形式转化为可理解的形式,或从一个可理解的形式转化为另一个;索引151b,例如包括编译和/或整理来自一个或多个资源的所生成的数据,并且例如经由生成的索引使其可定位和/或可搜索;和/或加密151a,例如在通过互联网30和/或混合云50传输之前,创建可锁定和解锁的由密码保护的数据集。
因此,如图42C所示,在这些和/或其他实例中,混合云50可以被配置为允许在整个系统的组件中无缝且受保护地传输数据,例如混合云50适合于允许系统的各种用户配置系统组成部分和/或系统本身以满足用户的研究、诊断、治疗和/或预防发现和/或开发需求。特别地,混合云50和/或系统1的各种组件可以与兼容的和/或对应的API接口可操作地连接,所述API接口适用于允许用户远程配置系统1的各种组件,从而可以以期望的方式部署期望的资源,并且进一步在本地,远程或者其组合,例如基于系统的需求和正在执行的分析的细节,并且能够一直在安全的/可加密的环境进行通信。
在特定实例中,系统1可以包括处理架构310,例如解释器,其被配置用于执行解释函数310。解释器310可以对生成的数据执行一个或一系列分析功能,例如注释311、解释31、诊断313和/或检测和/或分析函数,用于确定(例如在基因数据中的)一种或多种生物标志物的存在。解释器313可以是本地计算资源100的一部分或与其分离的一部分,其中解释器310经由云接口(诸如混合云50)耦合到计算资源100。
此外,可以包括附加处理架构320,例如将架构320配置为协作器。协作器320用于执行旨在确保传输数据的安全性和/或隐私的一个或多个函数。例如,协作器可以用于保护数据共享过程321,用于确保传输322的隐私,设置控制参数323和/或用于启动安全协议324。协作器313用于共享为了促进处理协作的数据,协作器320可以是本地计算资源100的一部分或与本地计算资源100分开的,例如协作器320经由云界面(例如混合云50)耦合到计算资源。解释器310、协作器320和/或本地计算资源100还可以耦合到远程计算资源300,例如通过将计算300和/或存储400函数卸载到云50中来提高系统效率。在各种情况下,系统1可以允许进行安全的第三方分析121,例如第三方可以与系统连接并与系统互动,例如通过适当配置的API。
如图43所示,系统1可以是一个多层次的和/或复用的生物分析处理平台,其包括处理单元层,每个处理单元具有一个或多个处理管道,所述处理管道可以系统的和/或同时和/或按顺序的方式布置,以处理基因信息,从初级处理阶段到到二级处理阶段和/或三级处理阶段。
特别地,本文提出了用于在硬件和/或软件和/或量子处理实现中的一个或多个中执行基因分析的装置,以及它们的使用方法,以及包括它们的系统。例如,在一个实施例中,可以提供基因组处理平台并将其配置为多个集成电路,该集成电路可以适于或者包括在中央或图形处理单元中的一个或多个中,例如,通用CPU和/或GPU,硬连线实现和/或量子处理单元。具体地,在各种实施例中,基因组学处理平台的一个或多个管道可以由量子处理单元的一个或多个集成和/或量子电路配置成。
因此,本文呈现的平台可以利用优化的软件和/或硬件和/或量子处理实现的巨大能力来执行本文公开的各种基因测序和/或二级和/或三级处理函数,其可以在一个或多个集成电路上运行。这样的集成电路可以无缝地耦合在一起,并且可以进一步无缝地耦合到系统的各种其他集成电路,例如一个系统CPU和/或GPU和/或QPU,该系统用于运行各种软件和/或三级生物分析函数的基于硬连线的应用程序。
具体地,在各种实施例中,这些过程可以由在CPU、GPU和/或QPU上运行的优化软件来执行,和/或可以由固件配置的集成电路(例如FPGA)来实现,其可以是同一设装置的一部分或可以设置在同一主板上的独立装置,如不同PCIe卡位于相同的装置、同一设施的不同装置和/或位于不同设施。因此,一个或多个处理单元和/或集成电路可以直接耦合在一起,例如,紧密地耦合在一起,例如通过物理方式结合到相同的主板中或者位于同一壳体内的单独的主板和/或以其他方式耦合在一起或者位于能够远程地彼此通信的单独主板或pCIE卡上,例如无线地和/或通过网络接口(例如通过本地云30),并且在各种实施例中,一个或多个处理单元和/或集成电路可以在地理上彼此远离地设置,但是可以通过混合云50进行通信。在特定情况下,集成电路形成或者是CPU、GPU和/或QPU的一部分,集成电路布置为和/或二级和/或三级分析平台的一部分,可以形成一个或多个分析管道,其中所生成的各种数据可在各种处理单元和/或集成电路之间来回输入和输出,例如以无缝和/或流式方式,以允许在多个集成电路之间数据快速传输数据,为了加快本文所述的分析。
例如,在一些情况下,根据本文公开的方法使用的各种装置可以包括或者与一个或多个测序装置相关联,用于执行测序方案,其中测序方案可以由软件在远程测序仪(例如位于核心测序设施中的下一代测序仪,例如Illumina的HiSeq Ten)上运行,可通过基于云的接口访问。在其他情况下,测序可以在测序芯片上运行的硬连线配置中进行,例如由Thermo Fisher的Ion Torrent或其他测序仪芯片技术实现,其中测序是通过提供台式下一代测序的半导体技术和/或通过配置有石墨烯沟道层的场效应晶体管的集成电路来执行的。在这种情况下,通过包括半导体测序微芯片的一个或多个集成电路执行测序的情况下,可以远离本文所述的用于对测序数据执行二级和/或三级分析的一个或多个其他处理单元和/或集成电路设置该芯片。或者,芯片和/或处理单元可以彼此相对靠近地设置,以便直接耦合在一起,或者至少在彼此相同的一般距离内,例如在同一设施内。在该实施例和其他实施例中,可以形成测序和/或BioIT分析管道,使得由测序仪生成的原始测序数据可以快速传送(例如,流式传输)到管道的其他分析组件以用于直接分析,例如以流式输方式。
此外,一旦原始测序数据(例如,BCL数据)或read数据(例如,FASTQ数据)由测序仪产生,发送这些数据到用于对基因传和/或蛋白质序列的执行各种生物分析函数的集成电路并由其接收,例如关于分析产生的和/或接收的DNA、RNA和/或蛋白质序列数据。该序列分析可以包括将产生的或接收的核酸或蛋白质序列与一个或多个已知序列的数据库进行比较,例如用于对接收的数据进行二次分析,和/或在一些情况下,用于进行疾病诊断,例如,用于进行比较的已知序列的数据库可以是包含形态学上不同的和/或令人厌恶的(abhorrent)序列数据的数据库,即属于或被认为属于一种或多种患病状态的基因样本的数据。
因此,在各种情况下,一旦分离和测序的基因(例如DNA和/或RA)数据可以进行二次分析,其可以对接收的数据进行,例如执行映射、比对、排序、变异检测等,以便产生映射的和/或比对的数据,然后可以使用该数据导出一个或多个VCF,其详细说明映射的和/或比对的基因序列与参考序列之间的差异。特别地,一旦进行二级处理,基因信息然后可以传递到系统的一个或多个三级处理模块以进行进一步处理,以便得出治疗和/或预防结果。更具体地,在变异检测之后,映射器/比对器/变异检测器可以输出准备好的标准VCF文件,并且可以被传送到另外的集成电路以执行三级分析,例如基因组分析(例如全基因组分析)、基因分型分析(例如联合基因分型分析)、微阵列分析、外显子组分析、微生物组分析,表观基因组分析、宏基因组分析、联合基因分型分析,变异分析(例如GATK分析、结构变异分析、体细胞分析变异分析等),以及RNA测序或其他基因组学分析。
因此,本文提出的生物分析(例如,BioIT)平台可以包括用于映射、比对、排序、重复标记、单倍型变异检测、压缩和/或解压缩的高度优化的算法,例如以软件、硬连线和/或量子处理配置。例如,尽管这些函数中的一个或多个可以完全或部分地以硬连线配置来执行,但是在特定情况下,二级和/或三级处理平台用于运行一个或多个软件和/或量子处理应用,例如用于执行一个或多个生物分析函数的一个或多个程序,如下文描述的一个或多个函数。具体地,然后可以通过一种或多种其他高度优化的算法进一步处理测序的和/或映射的和/或比对的和/或其他处理的数据,例如以下分析的一种或多种:全基因组分析、基因分型分析、微阵列分析、外显子组分析、微生物组分析、表观基因组分析、宏基因组分析、联合基因分型和/或变异分析(例如GATK分析)例如通过在通用CPU和/或GPU和/或QPU上运行的软件实现,尽管在某些情况下,一个或多个这些函数可以至少部分地以硬件来实现。
因此,如图43所示,在各种实施例中,多路复用生物分析处理平台用于执行初级、二级和/或三级处理中的一个或多个。例如,初级处理阶段产生基因序列数据(例如在一个或多个BCL和/或FASTQ文件中),用于传送到系统1中。一旦在系统1内,可以将测序的基因数据(包括任何相关的元数据)送入二级处理阶段600,以产生一个或多个变异检测文件。因此,系统还可以用于将将一个或多个变异检测文件以及任何相关联的元数据和/或其他相关联的处理数据送入一个或多个三级处理阶段中,可以对其上执行一个或多个其他操作,例如,用于进行一种或多种诊断和/或预防和/或治疗程序。
具体地,例如响应用户请求120(例如,从远程计算资源100做出的)和/或响应由第三方121提交的数据和/或从本地200和/或远程400存储设备自动检索的数据,来启动数据分析。这样的进一步处理可以包括第一层处理,其中各种管道运行方案700用于对所确定的一个或多个受试者的基因、变异数据执行分析。例如,三级处理单元的第一层可以包括基因组学处理平台,其用于执行基因组、表观基因组、宏基因组、基因分型和/或各种变异分析和/或基于生物信息学的其他分析。另外,三级处理的第二层,可以执行各种疾病诊断、研究和/或分析方案800,该分析可以包括NIPT、NICU、癌症、LDT、生物学、AgBio应用等中的一种或多种。
特别地,系统1可以进一步适用于接收和/或发送与本文的程序和处理有关的各种数据900,例如涉及电子医疗记录(EMR)数据、联邦药物管理局测试和/或结构化数据、与注释有关的数据等。这样的数据可能是有用的,以便允许用户使用和/或允许访问所产生的医疗、诊断、治疗和/或预防信息,通过使用系统1和/或由此可访问。因此,在各种情况下,本文提出的装置、方法和系统可以容易地用于下游处理的论坛中安全地执行遗传和生物分析分析以及用于安全传送其结果。另外,在各种情况下,本提出的设备、方法和系统允许数据安全地传送到系统中,例如数据来自于一个或多个健康监测和/或数据存储设施和/或来自政府机构(例如FDA或NIH)。例如,系统可以安全地接收EMR/PHR数据,其来自于从医疗保健和/或存储设施并供本文公开的方法(例如用于执行基因和生物分析)使用,以及在可以容易地用于下游处理的论坛中安全地传输其结果。
具体地,三级处理的第一层700可以包括一个或多个基因组学处理平台,例如用于例如对SAM或BAM文件的映射和/或比对的数据执行基因学分析,和/或用对于处理VCF文件中的变异。例如,三级处理平台的第一层可以包括基因组管道、表观基因组管道、宏基因组管道、联合基因分型管道中的一个或多个以及一个或多个变异检测管道(包括GATK管道、结构变异管道、体细胞变异检测用管道),在某些情况下,还可包括RNA序列分析管道;还可以包括一个或多个其他基因组分析管道。
更具体地,如图43所示,在各种情况下,多层和/或多路复用生物分析处理平台包括另一层数据生成和/或处理单元。例如,在某些情况下,生物分析处理平台包含在软件和/或硬件实现中的一个或多个中实现的一个或多个处理管道,其涉及执行一个或多个三级处理方案。例如,在特定情况下,三级处理管道700的平台可以包括基因组管道、表观基因组管道、宏基因组管道、联合基因分型管道、变异管道(例如GATK管道)和/或中的一个或多个其他管道,如RNA管道。另外,三级处理分析平台的第二层可包括多个处理管道,例如微阵列分析管道、基因组(例如全基因组)分析管道、基因分型分析管道、外显子组分析管道、表观基因组分析管道、宏基因组分析管道、微生物组分析管道中的一个或多个,基因分型分析管道包括联合基因分型,变异分析管道包括结构变异管道、体细胞变异管道、GATK和/或MuTect2管道以及RNA测序管道和其他基因分析管道。
因此,在一个实施例中,多层生物分析处理平台包括宏基因组管道。例如,宏基因组管道,用于执行一个或多个环境基因组学过程。具体地,在各种实施例中,宏基因组学分析用于确定一组物种是否从共同的祖先(例如物种或其他进化枝)进化而来。更具体地,在各种实施方案中,可以获得其中含有多种活的和/或死的有机体的环境样本,可以通过本文所述的一个或多个处理平台从中分离、测序和处理存在的DNA/RNA,文中,以识别存在的特定物种和/或与其相关的一种或多种其他基因组因子。这种“环境”样本可能包括多种人类微生物组(例如与健康和患病人体相关的微生物相关,包括在皮肤、血液、痰、粪便样本中发现的微生物)以及外部环境因子。
存在多种用于进行宏基因组处理的测序样本的获取方法。第一种方法包括靶向16S核糖体RNA克隆和/或基因测序方案。例如,16S核糖体RNA在物种(或甚至一个物种的菌株)之间高度可变。因此,可以分离和测序该RNA以产生来自天然存在的生物样本的生物多样性的基因谱,其可以用于系统的A/I或其他数据库的输入。然而,这种测序的问题在于,由于培养的方式,可能遗漏大量的微生物生物多样性。
因此,第二种方法包括鸟枪法和/或PCR方案,其可用于从采样的群落的所有生物制剂中产生多个(例如所有)基因的样本,其一旦测序可揭示微观生命的遗传多样性。具体地,在鸟枪测序方法中,可以例如从许多(例如,数万)不同物种的参考基因组产生聚合参考序列。然而,这许多参考基因组的聚合规模是巨大的。因此,从每个参考基因组中选择一个或多个独特的子序列以构建聚合参考序列是有利的。
例如,这样的子序列可以从几百个碱基到几千个碱基长,理想地其是在其他物种(或菌株)中不存在的独特序列。然后可以聚合这些子序列以构建参考序列。因此,一旦分离、测序、定位和比对,这些宏基因组序列可以与许多物种的部分或完整参考基因组进行比较,并且可以确定遗传生物多样性。
因此,宏基因组学为观察微生物世界提供了强大的镜头,这可以彻底改变我们对生物世界的理解。因此,在这些情况中的任何一种情况下,当样本中存在显着存在的生物DNA时,识别该物种在该环境内。理想地,以这样的方式,可以识别通常存在于该环境中与其他物种不同寻常的物种。具体而言,当对获得的环境样本标准化所有物种的覆盖度时,可以确定所有物种的遗传多样性,并且可以与整个覆盖度进行比较,例如,通过将特定物种DNA的一部分与生成的生物学上不同的参考遗传序列的DNA进行比较。
这些分析的重要性可以通过贝叶斯方法确定,例如通过估计观察特定生物的测序read的概率,假设给定物种存在或不存在。贝叶斯概率方法用于基于可能与该事件相关的条件来描述事件的概率。例如,如果有兴趣确定受试者是否存在癌症,并且如果已知受试者的年龄,并且如果确定癌症是与年龄相关的疾病,则使用贝叶斯定理,受试者的年龄信息可以用于更准确地评估癌症的可能性。
具体地,利用贝叶斯概率解释定理表达了主观信念程度在考虑所观察到的证据如何能够合理地改变。贝叶斯定理在数学上表示为以下等式: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的概率。
因此,在该上下文中用于执行贝叶斯概率分析的一个或多个步骤可以包括以下中的一个或多个:可以针对各种分类级别的进化枝进行存在调用:界、门、纲、目、科、属、种和/或菌株。然而,这变得复杂,由于DNA在具有较低分类级别的物种之间往往越来越相似的事实。此外,通常情况下,样本可能与较高分类级别(或一个物种的多个菌株)内的多个物种的参考基因组相匹配,因此,在许多情况下,只有更一般的进化枝(如属或家族)可以毫无疑问地称为现在,而不是特定的物种或菌株。然而,可以采用本文公开的装置、系统和使用它们的方法来克服这些和其他这样的困难。
具体地,在一个实施例中,提供了用于从样本中确定两种或更多种生物的存在(进化枝)的方法。例如,在第一步中,可以从样本中获得基因组序列数据的read,例如read可以是FASTQ或BCL文件。可以进行基因组序列的映射以将read映射到多个基因组参考序列。在这种情况下,基因组参考序列可以是全基因组、或可以是部分基因组,以减少每个物种、菌株或进化枝所需的数据量。然而,使用较大部分的基因组将增加检测的灵敏度,并且选择所使用的每个参考序列以代表彼此不同的每个物种、菌株或进化枝。
为了该目的,可以使用来自每个物种或进化枝的16S核糖体的全部或部分基因组序列。以这种方式,对可能存在于样本中的物种、菌株或进化枝的两种或更多基因组参考序列进行构建,以便检测样本中这些组的成员。一旦构建,也可以构建每个基因组参考序列的索引。索引可以是散列表或树索引,例如前缀或后缀树索引。一旦构建了索引,就可以将样本基因组序列read与两个或更多个索引中的每一个进行比较。然后可以确定样本基因组序列read是否映射到每个索引。
同样地,也可以将基因组序列的read与它们所映射的基因组参考序列进行比对。根据本文的方法产生比对评分,其可用于分析read指示样本中生物的物种或进化枝的存在或不存在的概率。具体地,映射和/或比对可以由本文所述的软件和/或硬件模块完成。在一些实施例中,然后可以将映射和比对的数据传送到计算资源100/300以进行进一步分析和处理。
例如,可以分析映射和/或比对的基因组序列read以确定具有基因组参考序列的物种存在于样本本的可能性。同样,可以报告确定存在于环境样本中的物种、菌株或进化枝的列表。在某些实施例中,可以用置信度度量(例如P值)来报告列表,以指示评估的统计置信度。还可以报告所分析的物种、菌株或进化枝的完整列表并指示存在哪些物种、菌株或进化枝以及置信度量度。应当注意,尽管对微生物组的分析进行了描述,但是在适当的情况下,在分析所有其他三级处理方案时可以采用本文公开的各种技术和程序。
如图43B示出了用于进行环境分析的方法的示例性实施方式,例如环境样本中的微生物组。例如,在第一种情况下,可以获得环境样本,并且可以从中分离各种基因物质。然后对各种基因物质进行处理和测序,例如通过适当配置的NGS。
因此,在第一步骤1000中,一旦各种遗传物质已经(例如通过NGS)测序,就可以将其传送给本文公开的系统1。在步骤1010中,可以构建一个、两个或更多个感兴趣(例如在样本内检测到)的基因组参考序列。在步骤1020,可以构建一个、两个或更多个基因组参考序列中的每一个的索引。此外,在步骤1030,然后可以将获得的基因组的测序read样本与一个、两个或更多个索引进行比较,例如通过适当配置的映射模块。在步骤1040,然后可以确定测序read的基因组样本是否映射到两个或更多个索引中的每一个。
此时,如果需要,在步骤1050,可以将映射的read与基因组参考序列进行比对以产生比对和/或比对评分。因此,一旦对在样本内获得的基因物质进行了映射和/或比对,在步骤1060,可以确定具有参考序列的给定物种存在于样本内的可能性。并且一旦处理,可以识别和/或报告样本中存在的物种、菌株和/或进化枝的列表。
本文公开的三级处理平台还可包括表观基因组管道。特别地,表观基因学研究在未编码在物种DNA序列中的遗传效应。该术语还指变化本身,即基因组的功能相关变化而其不涉及核苷酸序列的变化。然而,表观基因变化是稳定可遗传的表型,是由于染色体的变化而不改变DNA序列。这些改变可能是可遗传或不可遗传的。特别是,表观基因变化会改变某些基因的活化,但不会改变DNA的基因密码序列。它本身的微观结构(不是代码)或相关的染色质蛋白可能被修饰,导致激活或沉默。
表观基因组参与调节基因表达、发育、组织分化和转座因子的抑制。与在个体内基本上静止的基础基因组不同,表观基因组可以通过环境条件动态改变。该领域类似于基因组学和蛋白质组学,它们是细胞基因组和蛋白质组的研究。此外,表观基因组学涉及对细胞遗传物质的全套表观基因修饰的研究,称为表观基因组由包括物种DNA和组蛋白的化学变化的记录。这些变化可以通过跨代表观基因传递给物种的后代。表观基因组的改变可导致染色质结构的改变和基因组功能的改变。
这种表观基因机制使得多细胞物种中的分化细胞能够仅表达其自身活性所必需的基因。当细胞分裂时,表观基因变化得以保留。特别是,大多数表观基因变化仅发生在一个物种的一生中。然而,如果在精子或卵细胞中发生基因失活导致受精,那么一些表观基因变化可以转移到下一代。几种类型的表观基因系统可能在所谓的细胞记忆中发挥作用。例如,DNA(例如,胞嘧啶甲基化和羟甲基化)或组蛋白(例如赖氨酸乙酰化、赖氨酸和精氨酸甲基化、丝氨酸和苏氨酸磷酸化、以及赖氨酸泛素化和SUMO化)的共价修饰可能在许多类型的表观基因起重要作用。因为细胞或个体的表型基因受其转录的基因的影响,所以可遗传的转录状态可以产生表观基因效应。这种对细胞和生理表型性状的影响可能是由于外部或环境因素导致基因打开和关闭并影响细胞如何表达基因。
例如,DNA损伤可引起表观基因变化。DNA损伤非常频繁。这些损伤在很大程度上得到了修复,但在DNA修复的位置,表观基因变化仍然存在。特别地,DNA中的双链断裂可以通过引起DNA甲基化以及通过促进沉默类型的组蛋白修饰(染色质重塑)来启动未编程的表观遗传基因沉默。产生这种变化的机制的其他实施例是DNA甲基化和组蛋白修饰,每种修饰都改变基因的表达方式而不改变基础DNA序列。还发现核小体重塑导致DNA修复的表观遗传沉默。此外,DNA损伤性化学物质也可引起相当大的DNA低甲基化,例如通过激活氧化应激途径。另外,基因表达可以通过附着于DNA沉默区的阻遏蛋白的作用来控制。
这些表观遗传变化可能持续细胞寿命期间的细胞分裂,也可能持续多代,即使它们不涉及物种的基础DNA序列的变化,相反,非遗传因素导致物种的基因表现(或“表达自己”)不同。真核生物学中表观基因变化的一个例子是细胞分化过程。在形态发生过程中,全能干细胞成为胚胎的各种多能细胞系,其又成为完全分化的细胞。换句话说,通过激活一些基因同时抑制其他基因的表达,单个受精卵细胞-受精卵-继续分裂,所产生的子细胞变为物种中的所有不同细胞类型,包括神经元、肌肉细胞、上皮细胞、血管内皮细胞等。
基因表达有几层调节。调节基因的一种方法是通过重塑染色质。染色质是DNA与其结合的组蛋白的复合物。如果DNA包裹在组蛋白周围的方式发生变化,基因表达也会发生变化。第一种方法是将构成组蛋白的氨基酸进行翻译后修饰。组蛋白蛋白质由长链氨基酸组成。如果链中的氨基酸发生变化,组蛋白的形状可能会被修改。复制期间DNA没有完全解开。然后,可以将修饰的组蛋白携带到DNA的每个新拷贝中。在那里,这些组蛋白可以充当模板,启动周围的新组蛋白以新的方式塑造。通过改变它们周围的组蛋白的形状,这些修饰的组蛋白将确保在细胞分裂后维持谱系特异性转录程序。
第二种方法是向DNA中添加甲基,主要是在CpG位点,将胞嘧啶转化为5-甲基胞嘧啶。5-甲基胞嘧啶的作用与常规胞嘧啶相似,与双链DNA中的鸟嘌呤配对。然而,基因组的某些区域比其他区域甲基化程度更高,而高甲基化区域通过一种尚未完全了解的机制往往转录活性较低。胞嘧啶的甲基化也可以从一个亲本的种系持续进入受精卵,标记染色体是从一个亲本或另一个遗传(遗传印记)进行遗传。尽管组蛋白修饰在整个序列中发生,但组蛋白的非结构化N末端(称为组蛋白尾)被特别地高度修饰。这些修饰包括乙酰化、甲基化、泛素化、磷酸化、SUMO化、核糖基化和瓜氨酸化。
因此,DNA甲基化是在一些DNA核苷酸上存在甲基,尤其是‘C’碱基,然后是‘G'或“CpG”二核苷酸。启动子区域中的甲基化倾向于抑制基因表达。甲基化分析是检测给定样本基因组中‘C’碱基甲基化的过程。亚硫酸氢盐测序(MethylC-seq)是使用全基因组测序检测甲基化的最常用方法,其中未甲基化的胞嘧啶(‘C')碱基化学转化为尿嘧啶(‘U')碱基,后者成为PCR扩增后的胸腺嘧啶(‘T')碱基。甲基化的‘C’碱基抵抗转化。
因此,根据本文公开的装置和方法,本文提供了DNA分子的修饰的检测,其中修饰不影响DNA序列,但确实影响基因表达,例如通过对表观遗传物质进行一种或多种映射和/或比对操作。在这样的方法中,将获得的read映射及比对到参考基因组,在映射/比对之前,允许转化的‘T'碱基与参考基因组的‘C'位置对准及‘C’碱基可以用参考序列中的‘T’碱基替换。这允许read的准确映射和比对,其具有亚硫酸氢盐转化的C碱基(现在为‘T'碱基),从而揭示基因组序列read中的非亚硫酸氢盐转化的(甲基化的)C碱基。对于反向互补的比对,可以使用互补替换,例如,‘G'可以用‘A’碱基代替。
同样地,可以修改参考索引(例如,散列表)构建器和映射器/比对器以自动执行这些替换以供MethylC-seq使用。或者,可以修改映射器/比对器以允许read的‘T'与参考‘C'的正向对齐,以及read‘A'与参考‘G'的反向互补比对。长这里公开的方法提高了准确性,并且防止了读‘C'与参考‘T'的错误地正向比对或者read‘G'与参考‘A'的错误反向互补比对。
另外,本文提供了用于确定基因组序列read中胞嘧啶碱基的甲基化状态的方法。例如,在第一步中,可以从亚硫酸氢盐处理的核苷酸样本中获得基因组序列的read。特别地,在这些方面,可以采用一种或多种修改的测序方案,以产生用于二级处理的read。具体地,全基因组硫酸氢盐测序、减少代表性硫酸氢盐测序、甲基化DNA免疫沉淀测序和甲基化敏感性限制酶测序中的一种或多种用于识别跨基因组部分的DNA甲基化,其分辨率水平低至碱基对水平。此外,可以访问染色质可及性,例如,可以进行DNase I超敏感位点测序,例如可以使用DNase I酶来发现基因组中的开放或可接近区域。此外,可用RNA测序和表达阵列来识别表达水平或蛋白质编码基因。特别地,可用smRNA测序来识别小的非编码RNA(主要是miRNA)的表达。
因此,一旦测序产生read,可以构建基因组参考序列以与read进行比较。然后可以标记基因组参考序列中的CpG位置。此外,可以通过用T'替换基因组中的C'来预处理基因组参考序列。可以构建基因组参考序列的索引。并且一旦构建了索引,就可以将基因组序列read样本与索引进行比较,并且可以确定表基因组序列read样本是否映射到索引。
此外,映射的read与基因组参考序列进行比对,以产生比对评分。在某些实施方案中,可以在read序列中进行碱基取代,并且可以将read与索引进行重新比较及重新比对。在一些实施方案中,可以在read的映射和/或比对中利用比对方向限制,使得仅允许在read和基因组序列参考用C替换T的正向比对并且仅允许在read和基因组序列参考用G替换A的反向互补体比对。
这些映射和比对过程可以通过本文描述的各种软件和/或硬件模块来完成。在一些实施例中,映射和比对的数据传送到CPU/GPU/QPU以进行进一步分析和处理。例如,映射和比对的read可以按其映射的参考位置排序。在一些实施例中,可以标记和去除重复read。可以在每个标记的参考CpG位置上分析read堆积中的重复采样的read。在这种情况下,已经取代胞嘧啶(C)的胸腺嘧啶(T)表示非甲基化的胞嘧啶并且如此标记。并且保留在read序列中的胞嘧啶可以标记为甲基化胞嘧啶。反向互补比对的CpG位置也可以标记为甲基化或非甲基化。例如,已经取代腺嘌呤(A)的鸟嘌呤(G)被标记为非甲基化胞嘧啶(C)的反向互补,而保留在read序列中的鸟嘌呤(G)被标记为非甲基化胞嘧啶(C)的反向互补。可以报告每个核苷酸链上每个CpG位置的可能甲基化状态,并且可以进行甲基化检测中的相关置信度度量(例如p值)。在一些实施例中,还可以为二倍体染色体对的每个染色体指示标记的CpG位置的甲基化状态。
关于组蛋白修饰,组蛋白修饰包括DNA包裹的组蛋白的各种天然存在的化学修饰,导致DNA或多或少紧密包裹。例如,松散包裹的DNA与更高的基因表达率相关。这种组蛋白修饰可以通过染色质免疫沉淀测序(ChIP-Seq)来确定,其可以用于识别组蛋白修饰的全基因组模式,例如通过使用针对修饰的抗体。此外,ChlP-seq是一种用来对与组蛋白(或其他选择的蛋白质)紧密结合的DNA进行分离和测序的方法。在进行ChlP-seq后,可以制备样本,对DNA进行分离并测序,然后可以将测序的DNA映射/比对如本公开所述的参考基因组,并且可以使用映射的覆盖度来推断组蛋白结合在基因组中的各个基因座的程度。另外,还提供了分析ChlP衍生的核苷酸序列的方法,其类似于下文描述的分析结构变异的方法。
特别值得注意的是,表观遗传学在癌症研究和诊断中很有用。例如,人类肿瘤经历DNA甲基化和组蛋白修饰模式的主要破坏。实际上,癌细胞的异常表观基因全景的特征在于全基因组低甲基化,CpG岛启动肿瘤抑制基因的高甲基化,关键基因的组蛋白代码改变以及单乙酰化和三甲基化组蛋白H4的全部丧失。因此,本文公开的方法可用于癌症研究和/或诊断。
此外,本文公开的方法可用于产生一种或多种表观基因组数据库和/或参考基因组。例如,本文公开的(例如采用A/I学习本系统的方案)方法,可用于(例如从正常、健康个体的多种细胞系、原代细胞和/或原代组织)产生人类表观基因组的参考。然后,这种产生的数据可以增强本文公开的映射和/或比对方案。此外,一旦产生了表观基因组差异的数据库,就可以例如通过A/I模块挖掘数据库,以便更好地表征和确定在各种疾病状态中发生的相关因素,例如癌症、痴呆、阿尔茨海默氏病和其他神经系统疾病。
因此,在各种情况下,可以进行表观基因组学分析,用于识别已经发生在细胞遗传物质上的一组或多组或整组表达的表观基因修饰。特别地,采用本文公开的方法,可以确定物种的表观基因组和/或其细胞,以便记载和/或记录物种细胞的DNA和组蛋白的化学变化。例如,本文的图43C中示出的示例性表观基因组学分析。
例如,在第一步中,可以从物种获得基因组样本,并从中分离遗传物质并进行测序。因此,一旦测序,在步骤1000,将测序read样本发送到系统1并由系统1接收。在这种情况下,read可以来自硫酸氢盐处理的核苷酸样本。同样地,在步骤1010,可以构建例如物种序列的基因组参考序列,例如用于与表观基因组read样本进行比较。在步骤1012,可以识别基因组参考序列中的各种CpG位置。
一旦被识别,在步骤1014,参考中的CpG位置的“C’s”可以用“Ts”代替,并且在步骤1020,可以生成修饰的基因组参考序列的索引。一旦产生了修饰参考的索引,在步骤1030,可以将基因组序列read样本与索引进行比较,并且在步骤1040,可以确定基因组序列read样本是否映射到索引,例如通过根据本文公开的方法和装置进行映射。然后可以将映射的read与基因组参考序列进行比对,并且可以生成比对评分,例如通过执行如本公开所述的一个或多个比对操作。
此时,可以执行几种不同分析中的一种。例如,在步骤1051,如果期望更大的环境,则可以调整如上所处理的read的碱基替换,和/或比对方向,和/或参数限制,并且可以重复步骤1030-1050的比较。可以根据需要重复该过程本身,直到达到足够的环境水平。因此,一旦达到足够水平的环境,在步骤1080,可以根据映射/比对的参考位置对映射/比对的read进行如本公开公开的过程中的排序。并且在步骤1081,可以标记和/或移除任何重复的read。
此外,在步骤1082,可以分析与每个标记的参考CpG位置重叠的read堆积的read。在步骤1083,在“T”被“C”代替的位置,可以将其标记为非甲基化的“C”;在步骤1084,在序列中保留“C”的位置,可以将标记为甲基化的“C”。最后,在步骤1086,还可以确定和/或报告每个核苷酸链上每个CpG位置的可能甲基化状态及对甲基化检测的置信度。
另外,本文提供了用于分析基因组物质的方法,其中基因组物质的一部分可以具有结构变异或者可以与结构变异相关联。特别地,结构变异是物种染色体结构的变异。结构变异涉及物种基因组中的多种变异,包括显微和亚显微类型,例如缺失、重复、拷贝数变异、插入、倒位和易位。许多结构变异与遗传疾病有关。事实上,大约13%的人类基因组在正常人群中被定义为结构变异,并且在群体中存在至少240个基因作为纯合缺失多态性存在。这种结构变异可以在每个基因组内包含数百万个异质性核苷酸,并且可能对人类疾病易感性做出重要贡献。
拷贝数变异是一大类结构变异,包括插入、缺失和重复。已知有几种与人类疾病有关的倒位变异。例如,因子VIII基因中反复发作的400kb倒位是A型血友病的常见原因,影响2型硫酸氢酶的较小倒位会引起Hunter综合征。更多的例子包括Angelman综合征和Sotos综合症。最常见类型的复杂结构变异是非串联重复,其中序列被复制并以倒置或直接方向插入基因组的另一部分。其他类型的复杂结构变异包括缺失-倒置-缺失,重复-反转-重复和具有嵌套缺失的串联重复。还有隐性易位和节段性单亲二体(UPD)。
然而,异常DNA结构的检测是有问题的,并且超出了迄今已知的变异检测范围。检测有问题的结构变异包括:大插入和缺失(例如,超过50-100bp插入及缺失indel大小)结构变异;重复和其他拷贝数变异(CNV);反转和易位以及非整倍性变异(染色体拷贝计数异常:单体性、二体性、三体性等)。在本文公开的某些情况下,可以对没有遗传疾病的受试者测试所识别的拷贝数变异,例如通过使用定量SNP基因分型。
结构变异检测通常开始于使用本文公开的装置和方法执行映射和比对操作。例如,将待分析的基因组read样本映射并比对到参考基因组,例如在支持嵌合比对的方案中。具体地,可以通过分析相对映射的覆盖度来检测一些结构变异(例如CNV和非整倍性变异)。然而,可以通过分析剪接和嵌合比对来检测其他结构变异(例如,大插入缺失、倒位、易位)。
具体地,每个结构变异涉及一个或多个“断点”位置,在该位置read不映射到参考基因组,在该位置样本和参考之间的几何形状变化。在这种情况下,堆积可以被配置成使得其中略微重叠在断点的read处被剪切,并且基本重叠在结构变异断点的read可以是进行嵌合(chimerically)比对,例如使read的两部分映射到不同的参考位置。然而,重叠结构变异断点的read对可能不一致地对齐,其中两个配对read(mate reads)映射到范围不同的参考位置,和/或配对read的异常相对位置。这些障碍可以通过本文公开的方法克服。
例如,在某些情况下,可以使用与已知结构变异有关的数据来更好地确定结构变异的序列。例如,可以编译具有人类基因组中的结构变异的列表的数据库,例如,重点在于CNV,并且这样的数据可以用于确定特定变异的序列,例如在适当配置的加权协议中。特别地,在已知结构变异的情况下,其“内”和“外”坐标可以用作可能受结构变化影响的最小和最大序列范围。另外,已知的插入、缺失、增益、反转、LOH、外翻、跨越和UPD变异可以被分类并馈送到本系统的数据中。
在各种情况下,结构变异的确定可以由CPU/GPU/QPU运行适当配置的软件来执行,例如采用先前确定的测序数据,并且在其他情况下,例如可以在本文所公开的硬件中执行结构变异分析。因此,在特定情况下,提供了用于分析结构变异的基因组序列的方法。例如,在第一步中,可以从核苷酸样本中接收基因组序列read。在某些情况下,测序read可能来自用于检测结构变异的双末端(paired end)或配对(mate pair)方案。接下来,可以构建基因组参考序列的索引,例如索引可以是散列表或树(例如前缀或后缀树)。一旦构建了索引,就可以将基因组序列read样本与索引进行比较,以确定基因组序列read样本是否映射到索引。如果是,则可以将基因组序列read样本与它们所映射的基因组参考序列进行比对,并且可以确定比对评分。
如上所述,映射和比对可以由如本公开所述的硬件模块完成。在一些实施例中,然后可以将映射和比对的数据传送到关联的CPU/GPU/QPU以进行进一步分析和处理。可以通过映射的参考位置对read进行排序,并且可以标记和去除重复的read。可以确定两个配对read(mate reads)的嵌合read和/或异常相对比对(unusual relative alignments),并且可以基于任何检测到的嵌合read和/或异常相对比对(例如大插入缺失、倒位或易位)确定可能的结构变异。同样,可以计算每种可能的结构变异的后验概率。在一些实施方案中,可以确定结构变异单倍型,例如通过使用嵌合read和/或异常相对比对的HMM分析。例如,pairHMM可以用于这种确定。可以使用硬件模块来实现pair HMM。
因此,在各种情况下,如图43D所示,提出了一种用于确定物种染色体结构变异的方法。例如,根据本文公开的方法,在步骤1000,可以接收基因组序列数据的read。在步骤1010,可以构建一个或多个基因组参考序列,以将read和参考序列进行比较。具体地,在步骤1010,可以构建基因组参考序列,以便允许将所接收的read与所生成的参考进行比较。更具体地,出于这些目的,在步骤1020,可以生成基因组参考序列的索引,例如,在步骤1020,可以生成散列表或前缀/后缀树。因此,在步骤1030,可以将基因组序列的read样本与所生成的索引进行比较,例如根据本文公开的软件和/或硬件来实现。
如果在步骤1040,确定基因组序列样本的read映射到索引,则在步骤1050,可以将映射的read与基因组参考序列进行比对,并且可以产生比对评分。在步骤1080,可以根据它们的映射参考位置对样本read进行排序。此时,在步骤1081,可以标记并去除重复的read。此外,在步骤1090,可以检测嵌合read和/或(例如两个配对read(mate reads)的)异常相对比对,并且在1092,可以确定可能的结构变异,例如基于检测到的嵌合read和/或异常相对比对。在步骤1092,可以确定可能的结构变异,例如基于检测到的嵌合read和/或异常相对比对。此外,可以计算每种可能的结构变异的后验概率,并且可选地,在步骤1096,可以确定结构变异单倍型,例如通过使用如本公开所述的嵌合read和/或异常相对比对的HMM分析。
此外,本文公开的装置、系统和方法可用于处理RNA序列。特别地,本文提供了用于分析RNA序列read的方法,例如采用剪切(spliced)映射和比对方案(例如,使用适当配置的RNA映射器/比对器)。例如,在一个实施例中,可以提供转录组管道,例如用于超快速RNA序列数据分析。特别地,该管道可以用于对RNA转录物进行二级分析,例如关于仅参考比对(only-reference alignment)以及注释辅助比对(annotation-assisted alignment)。
因此,在第一种方法中,例如以BCL和/或FASTQ文件格式的原始读ta数据可以由测序仪器产生,并且可以输入到系统中,其中可以执行映射、比对准和变异检测。然而,在各种情况下,可以将一个或多个基因注释文件(GTF)输入到系统中,例如以引导剪切(spliced)比对,例如,可以构建和使用剪接点(splice junction)查找表(LUT)。例如,可以采用比对准精和剪接表。因此,可以执行两阶段(2-phase)比对,例如在第一检测阶段中可以采用新的剪接点,然后剪接可以用于引导第二遍映射/比对阶段。变异检测后,系统将输出标准VCF文件,以进行三级分析。
特别地,一旦接收到输入文件,就可以对单个和配对的read端执行剪切映射和比对。如所指出的,可以采用可配置的连接过滤器来提供单个连结输出。可以执行位置排序,其可以包括通过参考范围进行分级,然后通过参考位置对分级进行排序,并且进行重复标记,例如基于起始位置和CIGAR字符串以实现高质量的重复报告,由此可以删除任何重复。然后可以(例如使用SW和HMM处理引擎来)执行单倍型变异检测,并且可以执行组装。
另外,本文公开的装置、系统和方法可以用于执行体细胞变异检测。例如,可以采用体细胞变异检测方案以检测可能在癌细胞中发生的变异。特别地,用于体细胞检测的基因组样本可以从单个或多个肿瘤活组织活查或从血液中获得。任选地,还可以获得“正常”(非肿瘤)样本,用于变异检测中的比较,例如,其中体细胞变异将在肿瘤细胞中发生但不在正常的细胞样本中发生。可以分离样本中的DNA/RNA并对其进行测序,例如通过Next Gen测序仪。然后可以将每个样本的测序数据发送到二级处理平台,并且进行read的映射和比对。此外,对read进行多个变异检测过程,包括由SW和pair HMM引擎中的一个或两个进行的处理。
然而,应该配置系统用于检测低变异等位基因频率,例如3%至10%(或更高)。更具体地,可以采用基因分型概率模型,其中模型被配置为允许任意等位基因频率。允许这种情况的一种方法是在重叠read中对应观察到的等位基因频率给每个变异分配基因型等位基因频率。例如,如果10%的重叠read显示有某种变异,则对由90%参考等位基因和10%替代等位基因组成的基因型。对于肿瘤/正常双重样本,可以估计变异存在于肿瘤样本中而不是正常样本中的后验概率。
此外,体细胞变异检测管道可以用于提供关于肿瘤异质性的信息,例如,发生一系列不同的变异,例如已经识别出具有不同基因型(亚克隆)的肿瘤的一个或多个部分。该亚克隆信息可以通过确定变异等位基因频率及其分布得到,和/或通过从多个肿瘤样本中检测的明显变异得到。
因此,提供了用于检测样本的癌细胞的序列变异的方法。在第一步中,可以从癌细胞和/或正常细胞获得核苷酸样本的基因组序列read。序列read可以来自双末端(pairedend)或配对(mate pair)方案,类似于检测结构变异的方案。可以构建基因组参考序列的索引,例如索引可以是散列表或树(例如前缀或后缀树)。可以将(例如肿瘤和/或正常样本的)基因组序列read样本与索引进行比较,以确定基因组序列read样本是否映射到索引。
然后,可以将基因组序列read样本与它们所映射的基因组参考序列进行比对,并且可以确定比对评分。映射和比对可以由本文所述的硬件模块完成。如本公开所述,映射和对准可以通过软件和/或硬件模块来完成。在一些实施例中,然后可以将映射和比对的数据传送到关联的CPU/GPU/QPU以进行进一步分析和处理。可以通过映射的参考位置对read进行排序,并且可以标记和去除重复的read。可以使用贝叶斯分析来检测变异,该贝叶斯分析被修改以期望任意变异等位基因频率,并且检测和报告可能的低等位基因频率(例如3%至10%)。
在一些实施例中,可以在非癌样本和癌样本中检测种系变异,并且可以仅在癌样本中检测体细胞变异。例如,种系和体细胞突变可以通过相对频率来区分。可以计算每种可能的癌变异的后验概率,并且在一些实施例中,可以使用嵌合read和/或异常相对比对(unusual relative alignments)的HMM分析来确定结构变异单倍型。例如,pair HMM可以用于进行这种确定。可以使用硬件模块来实现pair HMM。
因此,在各种实施例中,如图43E所示,可以执行体细胞变异检测操作,以计算变异是癌症变异的概率。例如,在步骤1000,可以从癌性和非癌性基因样本之一或两个(例如通过NGS的测序)生成基因组序列样本的read,和/或(例如通过在适当配置的基于云的网络系统上的传输)接收基因组序列样本的read。在步骤1010,可以产生(例如用于比较read的)基因组参考序列;在步骤1020,可以从基因组参考序列构建索引,并且在步骤1030,可以将基因组序列样本与索引进行比较,例如使用本文公开的软件和/或硬件来实现,以便在步骤1040将基因组序列read映射到索引。此外,在步骤1050,可以将映射的read与基因组参考序列进行比对以产生比对评分。然后可以在步骤1080根据参考位置将映射的和/或比对的read进行排序,并且可选地,在步骤1081,可以标记和去除任何重复的read。
另外,一旦进行了read的映射和/或比对和/或排序和/或移除,那么在步骤1100,可以检测变异,例如通过使用贝叶斯分析(Bayesian analysis),并且在步骤1101,可任选地检测非癌性和癌性样本中的种系变异以及体细胞变异。同样地,在步骤1094,可以计算每种可能的癌症变异的后验概率。此外,在步骤1096,可任选地确定癌症变异单倍型,例如通过在本文公开的软件和/或硬件中实施HMM分析。
此外,本文公开的装置、系统和方法可以用于执行联合基因分型操作。特别地,可以采用联合基因分型操作可以提高变异检测准确性,例如通过联合考虑来自多个受试者的群组的read。例如,在各种情况下,基因组变异可能与某些群体是高度相关的,例如,某些变异对于多个受试者是共同的。在这种情况下,通过联合考虑来自多个DNA(或RNA)样本的每个变异的证据,可以改善变异检测的灵敏度和特异性。具体而言,通过其他样本中相同变异的证据可以增强一个受试者中变异的弱证据,可以提高灵敏度。更具体地,可以通过缺少其他样本中相同变异的证据来调节假阳性变异的中等证据,可以提高灵敏度。通常,参与联合基因分型的样本越多,对于任何给定受试者的变异检测就越准确。
联合基因分型涉及使用表达遗传变异中观察到的相关性的先验概率,估计具有给定变异的所有受试者的各种子集的后验概率。在各种情况下,可以在单遍变异检测中执行联合基因分型,其中自多个样本的比对read通过变异检测器来检测。这通常仅适用于少量样本,因为当涉及数十、数百或数千个样本时,总数据大小对于快速访问和操作变得不切实际。
或者,可以通过首先对每个样本分别进行变异检测,然后用联合基因分型工具对结果进行合并,联合基因分型工具使用联合信息更新每个受试者的变异概率。该方法使用来自每遍单样本变异检测的额外输出,以便更好地测量变异和/或没有联合处理的无变异检测的区域中的弱证据区域。尽管VCF格式通常用于表示单样本变异检测所检测到的变异,但是在准备合时,可以使用特殊的gVCF格式来表示第一阶段变异(和非变异)检测。gVCF格式包括(很可能不存在变异的)位置的和/或多个位置的块的记录,因此该信息可以与在同一位置的gVCF检测或非检测合并,为每个受试者提供改进的联合基因型检测。
因此,联合基因分型管道可以用于更快且更准确地对多个样本进行变异检测。另外,联合基因分型管道可以进一步用于支持谱系以及来自一组样本的群体变异检测。例如,管道可以用于一次处理多达10、15、20、25,甚至50或更多个样本。在各种情况下,群体检测配置可以适于一次处理数千个大小的样本。此外,多个样本的速度和分层分组的组合为联合基因分型提供了计算上有效的分析解决方案。另外,联合基因分型的样本的测序可以在下一代测序仪的相同流动单元内进行,从而允许系统同时映射/比对多样本输入,从而加速联合检测的整个过程,例如BCL数据可以直接馈送到管道,以为每个样本生成唯一的gVCF文件。
因此,本文提供了通过联合考虑来自多个受试者群组的read来提高变异检测准确性的方法。在第一步中,接收来自两个或更多个样本的基因组序列的read。构建用于与read比较的基因组参考序列,并且从基因组参考序列产生索引。然后将每个样本的基因组序列read与索引进行比较,并确定每个样本的基因组序列read是否映射到索引。
然后可以将映射的read与基因组参考序列进行比对,并且可以生成比对评分。可以通过映射的参考位置对read进行排序,并且可以标记和/或去除重复的read。另外,然后可以分析read堆积的重叠read以确定是否大多数read与参考基因组序列一致。计算每种可能变异的后验概率,并且可以合并来自所有样本的变异检测数据,以便提高每个单独样本的变异检测准确度。这可以提高每个样本的变异检测的准确度(例如,灵敏度和特异性),并且可以在所有样本进行变异检测分析之后作为处理步骤完成,或者可以在每个样本进行变异检测分析之后累积完成。然后,可以确定在没有检测变异的区域中非参考等位基因的可能性,并且可以报告确定在没有检测变异的区域中非参考等位基因的可能性。
因此,在各种实施例中,如图43F所示,可以体细胞变异检测操作,以计算变异是癌症变异的概率。例如,在步骤1000,可以癌性和非癌性基因样本之一或两个(例如通过NGS的测序)生成基因组序列样本的read,和/或(例如通过在适当配置的基于云的网络系统上的传输)接收基因组序列样本的read。在步骤1010,可以产生(例如用于比较read的)基因组参考序列,在步骤1020,可以从基因组参考序列构建索引,并且在步骤1030,可以将基因组序列样本与索引进行比较,例如使用本文公开的软件和/或硬件来实现,以便在步骤1040将基因组序列read映射到索引。此外,在步骤1050,可以将映射的read与基因组参考序列进行比对以产生比对评分。然后可以在步骤1080根据参考位置将映射的和/或比对的read进行排序,并且可选地,在步骤1081,可以标记和去除任何重复的read。
同样地,在步骤1082,可以分析read堆积的重叠read以确定是否一个或多个(例如大多数)read与参考基因组序列一致,并且在步骤1094,估计每个可能的变异的后验概率。此时,在步骤1096,如果需要,例如通过执行HMM分析,可以确定变异单倍型,和/或在步骤1120,并且可以合并(例如来自所有样本的)变异检测数据,以便提高每个单独样本的变异检测准确度,在步骤1122,可以确定和报告在未进行变异检测的区域中非参考等位基因的可能性。
另外,如图43所示,在一个方面,提供在线应用商店以允许用户开发、销售和使用基因组学工具,所述基因组学工具可以结合到系统中并用于分析传输到系统并输入系统的基因组数据。特别地,基因组应用商店使得用户能根据需要开发基因测试(例如,像NICU测试),一旦开发,测试可以上传到系统(例如,基因市场),用于购买和作为平台在其上运行,以便任何人运行新开发的系统平台,可以通过Web门户部署上传的测试。更具体地,用户可以Web门户“app”商店,找到所需要的测试(例如NICU测试),并下载该测试,和/或配置系统(例如在其可上传的基因数据上)实现该测试。因此,在线“群组(cohort)”市场提供了部署新的基因分析应用程序的快速且有效的方式,其中应用程序允许从运行下载的应用程序的任何现有系统平台获得相同的结果。更具体地,在线市场提供了一种机制,供任何人与系统一起工作以开发远程用户可以下载和配置以根据本工作流模型使用的遗传分析应用。
本文公开的群组市场的另一方面是允许数据的安全共享。例如,基因组数据的传递和存储应受到高度保护。然而,这种遗传数据通常很大并且难以以安全和受保护的方式转移,例如例如受试者的身份受到限制。因此,本发明的基因学市场允许群组参与者共享基因数据而不必识别受试者。在这样的市场中,群组参与者可以共享问题和过程,以便在受保护和安全的环境中推进他们的研究,而没有各自受试者基因组的身份的冒险。此外,用户可以在其样本集的分析中寻求其他研究人员的帮助,而无需确定这些基因组属于谁。
例如,用户可以识别具有特定基因型和/或表型的(例如3期乳腺癌和/或已经用特定药物治疗的)受试者。除其他外,这些特征可能形成一个群组选择标准,允许其他研究人员(例如远程研究人员)对遗传数据进行标准遗传分析,对符合群组标准的受试者使用统一的分析程序。以这种方式,给定的研究人员不需要负责识别和保护样本集的所有成员,例如符合标准的受度者,以证实他或她的科学探究。
特别地,研究人员A可以在市场内建立研究群组,并确定爱试者的适当的选择标准、要运行的基因组测试以及运行测试的参数。相对于研究人员A的远程研究人员B和C然后可以在该群组注册,识别和选择符合标准的受试者,然后使用本文公开的统一程序对他们的受试者特定的测试,以帮助研究人员A快速地实现或更好地完成他或她的研究目标。这是受益于只有一部分遗传数据需要传送,受试者身份受到保护,并且当使用相同的遗传分析系统及相同的参数分析数据时,无论在何处和在什么机器测试运行,结果数据将是相同的。因此,群组市场允许用户仅通过在标板上发布选择标准和运行参数来形成和构建群组。还可以通过采用适当配置的商业程序((例如,货币兑换)来发布补偿率并进行支付。
然后,任何被群组接受的参与者都可以下载标准和数据文件和/或使用已经生成和/或存储的受试者的遗传数据来执行所请求的分析。例如,每个群组参与者将具有或能够生成存储在其各自服务器中的BCL和/或FASTQ文件的数据库。这些基因文件将来自恰好符合选择标准的受试者。具体地,可以扫描该存储的受试者的遗传和/或其他数据,以确定包含在群组选择标准内的适合性。这可能出于多种目的而生成这些数据,但不管产生的原因如何,一旦数据产生,可以选择它并进行所请求的管道分析并用于包括在该群组中。
因此,在各种实施例中,群组系统可以是用于连接研究人员的论坛,以便允许他们汇集他们的资源和数据(例如遗传序列数据)。例如,参与群组将允许第一研究人员引入需要遗传数据分析的项目,其需要挖掘和/或检查来自各种受试者的多个基因组,例如关于映射、比对变异检测等。因此,不必单独收集主题和收集样本集,群组发起者可以宣布运行先前收集的样本的规定分析过程的需要或由其他人收集的规定分析过程的需要,并且因此本文的群组组织提供了生成样本集并对其进行分析的集体方法。特别地,群组发起者可以设置群组选择,创建要与潜在群组参与者共享的配置文件,创建(例如,在工作流文件夹内的)工作流参数,并且由此可以(例如,通过工作流管理系统)自动化数据生成和分析,该系统还可以实现交易商业化,例如,用于补偿群组参与者提供可以被分析的遗传数据集的支付处理,例如遗传数据集关于映射、对齐、变异检测和/或关于三级分析。
在各种实施例中,群组结构分析可以针对(例如DNA或RNA的)初级处理,例如关于图像处理和/或碱基质量评分重新校准、甲基化分析等;和/或可以针对二级分析的执行,例如关于映射、比对、排序、变异检测等;和/或可以针对三级分析,例如关于阵列、基因组、表观基因组、宏基因组、基因分型、变异和/或其他形式的三级分析。另外,可以理解的是,尽管由此执行的许多管道和分析可能涉及初级和/或二级处理,但是本文中的各种分析平台可能不涉及初级或二级处理。例如,在某些情况下,分析平台可以专门用于进行三级分析,例如对基因数据或其他形式的基因组学和/或生物信息学分析。
例如,在特定实施例中,关于要运行的特定分析过程,要运行的分析可以包括映射、比对、排序、变异检测等中的一个或多个,以便产生可能的结果数据,结果数据经历一个或多个其他二级和/或三级分析过程,这取决于选择运行的特定管道。工作流可以是简单的或者是复杂的,例如,它可能需要执行一个管道模块(例如映射)或多个模块(例如映射、比对、排序、变异检测和/或其他),但是重要的参数是参与群组的每个人的工作过程应该相同。特别地,该系统的独特特征是建立群组的请求者规定控制参数可确保以相同的方式执行要执行的分析,而不管那些过程在哪执行和在哪些机器上执行。
因此,在设置群组时,请求者将上传选择标准以及配置文件。然后,其他群组参与者将查看选择标准,以确定他们是否具有符合所述规定的标准的遗传信息数据集,如果是,则将基于配置文件的设置对数据执行所请求的分析。研究从员可以注册以被选为群集参与者,如果注册的情况很好,可以通过举行抽奖或竞赛来选择参与者。在各种情况下,可以启动投标系统。群组参与者生成的结果数据可以在现场或在云上进行处理,并且只要遵循配置文件,数据的处理将是相同的。特别地,配置文件规定如何配置BioIT分析设备,并且一旦根据规定的配置对设备进行了设置,与系统相关联的设备将以相同的方式执行所请求的遗传分析,而不管是在本地或远程执行。然后可以将结果数据上传到群组市场上,并且考虑到所接收的结果数据来提出和接收付款。
例如,遗传数据的分析可以在本地执行,并且结果上传到云端;或者遗传数据本身可以上传并且分析在云端运行,例如服务器或服务器网络,例如与云端相关联的量子处理平台。在各种情况下,仅上传结果数据可能是有用的,以便更好地保护受试者的身份。特别是,上传结果数据,不仅安全受到保护,而且不需要传输大量数据,从而提高了系统效率。
更具体地,在各种情况下,可以上传包含来自一个或多个管道的结果数据的压缩文件,并且在一些情况下,仅需要上传包含异描述的文件。在某些情况下,仅需给出答案,例如文本答案,例如“是”或“否”。这样的答案是优选的,因为它们没有规定识别受试者的身份。但是,如果需要在线执行分析(例如,在云端),可以上传选定的BCL和/或FASTQ文件,执行分析,然后可以将结果数据推回到初始提交者,初始提交者随后可以将结果数据上传到群集界面。然后可以从在线存储器中删除最初的原始数据。在这种和其他这样的方式中,群组请求者将无法访问受试者的身份。
例如“即时分析”(JIT)中使用的压缩,在提高群组效率方面特别有用。例如,使用典型的过程,数据进出群集是非常昂贵的。因此,尽管在各种配置中,存储上载到系统的原始和/或未压缩数据,但是在特定情况下,可以在上传之前先压缩数据,然后可以在系统内处理数据,然后在数据输出系统之前进行压缩,例如根据JIT协议实现压缩。在这种情况下,这种数据的存储(例如以压缩形式)的存储成本较低,因此群组系统非常节省成本。
另外,在各种情况下,可以在线市场内提供多个群组,并且进行本文描述的压缩过程,可以将数据从一个群组传输到另一个群组,使得各种不同的群组的研究人在群组之间共享数据。没有这里公开的压缩方法可能会非常昂贵。特别是,一旦传输到云中,没有JIT压缩的数据,通常会留在云中,尽管它可以对数据进行查看和操作。但是,JIT允许数据快速传输到云端和从云端传输,以进行本地和/或基于云的处理。此外,如图41B和43所示,在特定情况下,系统1用于对所生成的和/或二次处理的数据进行进一步处理,例如,通过本地100和/或远程300计算资源,例如通过一个或更多三级处理管道来运行数据,三级处理管道为:例如基因组分析(例如全基因组分析)管道、基因分型分析管道、外显子组分析管道、表观基因组分析管道、宏基因组分析管道、微生物组分析管道、基因分型分析管道(包括联合基因分型)、变异分析管道(例如结构变异分析、体细胞分析变异分析及GATK分析和/或MuTect2管道)以及RNA测序管道和/或其他三级处理管道。然后可以远程400压缩和/或存储来自这种处理的结果数据和/或传送结果数据以便在本地200存储。
因此,这些函数中的一个或多个(例如全部)可以在本地执行,例如在现场10上,在云30上执行,或者通过混合云50的受控访问执行。在这种情况下,创建开发者环境,允许用户控制系统的函数以满足他或她的个人需求和/或允许他人访问寻求相同或类似结果。因此,系统的各种组件、程序、处理、工具、层和层次结构可以是可配置的,例如通过GUI界面来配置,该界面允许用户根据需求和方案选择运行哪些组件,以及对哪些数据、在哪个时间、按照哪个顺序运行,以便生成相关数据和数据之间的连接,所述数据可以在本地或远程地在整个系统中安全地传送。如上所述,无论位置和/或连接方式如何,这些组件都可以无缝地通信,例如通过配置为以相同或相似的方式运行,例如通过采用分散在整个系统中的相应API接口,其允许各种用户配置各种组件以类似方式运行各种过程。
例如,可以在关于由系统1的每个特定组件运行的进程的头文件中定义API,其中头文件描述函数并确定如何调用函数,例如传递的参数、接收到的输入和传输的输出,以及发生这种情况的方式、进入的内容和方式、出去的内容和方式,以及返回的内容和方式。例如,在各种实施例中,一个或多个组件和/或其元件可形成系统的一个或多个层的一个或多个管道,所述一个或多个组件和/或其元件可以是可配置的,例如通过由用户和/或一个或多个第二和/或第三方应用程序输入的指令。这些指令可以经由相应的API传送给系统,所述API与系统的各个驱动器中的一个或多个进行通信,指示驱动器激活系统的哪些部分,例如哪些模块和/或其哪些处理,在什么时间、以什么顺序,在给定预选参数配置时,所述预选参数配置可以由用户可选界面(例如,GUI)来确定。
如上所述,系统1的一个或多个DMA驱动器可以被配置为以相应的方式运行,例如在每个组件和整个系统1的内核级别运行。在这种情况下,所提供的内核中的一个或多个可以具有其非常低级的基本API,其提供对系统1的硬件和各种组件的函数的访问,从而访问适用的寄存器和模块以便配置并指导它们在系统1上运行的处理过程和方式。特别地,在该层之上,可以构建虚拟服务函数层以便形成用于多种函数的构建块,将文件发送到内核并取回结果,编码,加密和/或传输相关数据,并进一步在其上执行更高级别的函数。在该层之上,可以构建使用服务函数的附加层,所述服务函数可以是用户与之对接的API层级,其可以主要用于整个系统1或其组成部分,下载文件和上传结果,其中所述文件和/或结果可以在整个系统中本地或全局传输。如上面关于数据的安全存储详细阐述的,可以配置和包括附加API。
系统的各种API、存储器和/或固件的配置可以包括与寄存器通信并且执行函数调用。例如,如上所述,执行步骤所必需和/或有用的一个或多个函数调用,例如顺序地执行步骤以进行映射和/或比对和/或排序和/或变异检测,或其他如本公开所述的二级和/或三级函数,可以根据硬件操作和/或相关算法来实现,以便生成必要的处理过程并执行所需的步骤。
具体而言,在某些实施例中,因为这些操作中的一个或多个可以基于一个或多个结构,所以可能需要构建实现这些操作所需的各种结构。因此需要一个函数调用,其用于执行这个函数,该函数调用可以构建用于执行操作必要的结构,并且调用将接受存储结构参数文件的文件名,然后将生成一个或多个包含和/或配置必要结构的数据文件。另一个函数调用可以是上传通过相应算法生成的结构,并将结构向下传递到芯片和/或系统1上的存储器,和/或将其放置在硬件期望的正确位置。当然,需要将各种数据下载到芯片上和/或以其他方式传送到系统生成器,以及执行系统1的各种其他选择的函数,配置管理器可以执行这些函数,例如通过上传需要在那里的所有东西,以便芯片和/或整个系统的平台的层的管道模块执行其函数,进入存储器中,所述存储器在芯片和/或系统上,或附接在芯片和/或系统上,或与芯片和/或系统相关联。
另外,系统可以进行配置以允许系统的各种组件彼此通信,API可以进行配置以允许系统1的一个或多个芯片与测序仪121、计算资源100/300、变换器151、分析器152、解释器310、协作器320或其他系统组件(当包括时)的电路板连接,以便直接从测序仪或其他处理组件接收FASTQ和/或其它生成的和/或经处理的基因序列文件,例如数据一旦已经生成和/或经过处理就立即将该信息传送给配置管理器,再将该信息引导至硬件和/或软件中的适当存储体,该硬件和/或软件使该信息对硬件、软件和/或整个系统的相关模块可用,以便它们可以对该信息执行其指定的函数从而相对于参考基因组对样本DNA/RNA进行碱基检测、映射、比对、排序,和/或在其上运行相关的二级和/或三级处理操作。
因此,在各种实施例中,可以包括客户端级接口(CLI),其中CLI可以允许用户直接调用一个或多个这些函数。在各种实施例中,CLI可以是软件应用程序(例如具有GUI),其适于配置系统的硬件和/或各种其他软件应用程序的可访问性和/或使用。因此,CLI可以是接受指令(例如参数)的程序,并且仅通过调用应用程序就可以实现函数。如上所述,CLI可以基于命令行或基于GUI(图形用户界面)。基于行的命令发生在GUI下的一级,其中GUI包括一个基于窗口的文件管理器,点击函数框描述将使用哪些模块、哪些管道、哪些层、哪些平台及其使用的参数。例如,在操作中,如果指示,CLI将定位参考,确定是否需要生成散列表和/或索引,或者如果已经生成了它存储的位置定位,并且指导生成的散列表和/或索引的上传等。这些类型的指令可以在用户可以选择芯片和/或系统1执行的GUI处显示为用户选项。
此外,可以包括文库,其中文库可以包括预先存在的、可编辑的配置文件,例如针对典型用户选择的硬件和/或相关软件的功能的文件,例如关于部分或全基因组和/或蛋白质分析,例如用于各种分析,例如个人病史和血统分析,或疾病诊断,或药物发现,治疗,和/或一种或多种其他分析等。这类参数可以被预先设定,例如用于执行上述分析,并且可以存储在文库中。例如,如果使用本文描述的平台,例如用于NIPT、NICU、癌症、LDT、AgBio以及集体层面上的相关研究,则预设参数可以不同于仅针对研究基因组和/或研究族谱的情况,例如个人水平。
更具体地,对于个体的特定诊断,准确性可能是重要因素,因此可以设置系统的参数以确保提高准确性,尽管可能会降低速度。但是,对于其他基因组学应用而言,速度可能是关键的决定因素,因此系统的参数可能会设置为使速度最大化,但这可能会牺牲一些准确性。相应地,在各种实施例中,用于执行不同任务的经常使用的参数设置可以预先设置到文库中以便于使用。这些参数设置还可以包括运行系统1所需的软件应用程序和/或硬件配置。例如,文库可能包含执行API的代码,并且还可能包含示例文件、脚本以及运行系统1所需的任何其他辅助信息。因此,文库可以被配置为编译用于运行API以及各种可执行文件的软件。
另外,如图42C和43所示,可以配置系统使得可以远程地执行一个或多个系统组件,例如系统组件适于对数据运行一个或多个比较函数,例如解释函数310和/或协作函数320。例如,对数据采用解释方案,该解释方案312可以被配置为分析和得出关于数据的结论和/或确定与其有关的各种关系,也可以执行一个或多个其他分析方案并且其包括注释数据311,对数据执行诊断313,和/或分析数据,以确定一个或多个生物标记314是否存在。如所指出的,这些功能中的一个或多个可以由WMS指导,和/或由本文公开的A/I模块执行。
另外,在采用协作方案的情况下,系统1可以被配置用于提供电子论坛(供数据共享321),该数据共享方案可以包括用户可选的安全性324和/或隐私322设置,以允许数据加密和/或密码保护,使得数据的标识和来源可以对系统1的用户隐藏。在特定情况下,系统1可以被配置为允许第三方分析器121对数据运行虚拟模拟。此外,解释的数据和/或经过一个或多个协作分析得到的数据一旦生成,则可以远程存储400或本地存储200,以供远程300或本地100计算资源使用,例如用于进一步处理和/或分析。
在另一方面,如图44所示,提供了一种使用该系统生成一个或多个数据文件的方法,在该数据文件上可以运行一个或多个二级和/或三级处理协议。例如,该方法可以包括提供基因组基础结构,例如用于现场,基于云的和/或杂交基因组和/或生物信息学生成和/或处理和/或分析中的一种或多种。例如,该方法可以包括提供基因组基础架构,例如用于现场,基于云的和/或杂交基因组和/或生物信息学生成和/或处理和/或分析中的一种或多种。
在这种情况下,基因组学基础架构可以包括具有一个或多个存储器的生物信息学处理平台,所述一个或多个存储器被配置为存储用于配置系统的一个或多个可配置的处理结构,以便系统能够对数据执行一个或多个分析处理函数,例如数据包括:感兴趣的基因组序列或与其有关的处理结果。可以存储包括待处理的基因组序列(例如生成和/或获取的)、一个或多个基因参考序列,和/或可以另外包括一个或多个基因参考序列和/或与之相关的剪接点列表的索引。系统还可以包括具有平台应用程序编程接口(API)的输入,用于从一个或多个可配置的处理结构的选项列表中进行选择,例如用于配置系统,例如通过选择对数据运行系统的哪些处理函数,例如,预处理或经过处理的感兴趣的基因组序列。也可以存在图形用户界面(GUI)以呈现菜单,例如与API可操作地相关联,通过该菜单用户可以选择他或她希望在数据上运行哪些可用选项。
因此,在这些和/或其他实例中,混合云50可以被配置为允许在整个系统的组件中无缝且受保护地传输数据,例如混合云50适合于允许系统的各种用户配置系统组成部分和/或系统本身(例如通过VMS)来满足用户的研究、诊断、治疗和/或预防发现和/或开发需求。特别地,混合云50和/或系统1的各种组件可以与兼容的和/或对应的API接口可操作地连接,所述API接口适用于允许用户远程配置系统1的各种组件,从而可以以期望的方式部署期望的资源,并且进一步在本地,远程或者其组合,例如基于系统的需求和正在执行的分析的细节,并且能够一直在安全的,可加密的环境进行通信。
系统可以在一个或多个集成电路上实现,该集成电路可以由一组或多组可配置的数字逻辑电路(例如预配置的和/或硬连线的)形成,其中所述数字逻辑电路通过多个物理电子互连进行互连。在这样的情况下,集成电路可以具有用于接收例如来自存储器的一个或多个可配置的结构方案的输入(例如存储器接口),并且可以进一步适用于按照可配置的处理结构方案在该集成电路上实现一个或多个结构。输入的存储器接口也可以被配置用于接收基因组序列数据,该基因组序列数据可以是基因组数据的多个read。界面还可以适用于访问一个或多个基因参考序列和索引。
在各种情况下,数字逻辑电路可以被布置为一组处理引擎,每个处理引擎均由数字逻辑电路的子集形成。数字逻辑电路和/或处理引擎可以被配置为执行初级、二级和/或三级处理方案的一个或多个预配置步骤,以便生成多个基因组序列数据read和/或用于处理多个基因组数据read,例如根据基因参考序列或基因序列导出的其他信息。集成电路还可以具有输出,以便输出来自初级处理、二级处理和/或三级处理的结果数据,例如根据平台应用程序编程接口(API)。
具体地,在各种实施例中,数字逻辑电路和/或处理引擎组可以形成多个基因组处理管道,例如每个管道可以具有根据平台应用程序编程接口定义的输入,以接收来自生物信息学处理平台的初级处理和/或二级处理的结果数据,并在其上执行一个或多个分析处理以产生结果数据。另外,多个基因组处理管道可以具有公共管道API,其定义要在来自初级处理和/或二级处理的结果数据上运行的二级和/或三级处理操作,例如多个基因组中的每一个处理管道为执行二级和/或三级处理的子集操作并且根据管道API输出二级和/或三级处理的结果数据。
在这种情况下,可以将多个基因组学分析应用程序存储在存储器和/或相关联的可搜索的应用程序库中,例如每个所述基因组学分析应用程序均可通过计算机等电子介质访问(例如由计算机处理器执行),以便对来自初级、二级和/或三级处理的结果数据的预处理或后处理数据进行目标分析,例如通过一个或多个基因组处理管道。在特定情况下,每个所述基因组学分析应用程序可以由API定义并且可以被配置用于接收初级、二级和/或三级处理的结果数据,和/或用于对预处理或后处理的基因组数据执行目标分析,并且将来自目标分析的结果数据输出到一个或多个基因组数据库中的一个。
该方法可以另外包括:从来自系统的多个可用基因组处理管道中选择(例如从GUI的菜单中选择)一个或多个基因组处理管道;从存储在应用库中的多个所述基因组学分析应用程序中选择一个或多个基因组学分析应用程序;以及用计算机处理器执行一个或多个所选择的基因组学分析应用程序以对初级、二级和/或三级处理的结果数据执行基因组数据的目标分析。
另外,在各种实施例中,映射、比对和排序可以全部在芯片上进行;在一些实施例中,局部重新比对、重复标记、碱基质量评分重新校准和/或一个或多个三级处理方案和/或管道也可以在芯片上进行;在一些实施例中,各种压缩方案,例如SAM和/或BAM和CRAM,也可以在芯片上进行。然而,一旦产生初级、二级和/或三级处理的数据,该数据可以被压缩,例如在被传输之前,例如通过跨系统发送,被发送到云,例如用于变异检测模块、二级、三级和/或其他处理平台,例如包括解释和/或协作分析方案。特别是考虑到变异检测(包括其三级处理)可以是一个移动的目标时(例如,没有一个业界使用的标准化的商定算法),这可能是有用的。
因此,可以采用不同的算法,例如通过远程用户,以根据需要获得不同类型的结果,具有用于执行该函数的基于云的模块可以允许灵活地选择哪种算法在任何特定给定时刻是有用的,以及用于串行和/或并行处理。因此,本文公开的任何一个模块可以被实现为例如芯片上的硬件或者例如云上的软件,但是在某些实施例中,所有模块可以被配置为可以在芯片上执行它们的函数,或者所有模块可以被配置为可以远程地执行它们的函数,例如在云上执行,或者存在模块的混合,其中一些模块被放置在一个或多个芯片上,一些模块被放置在云上。此外,如上所述,在各种实施例中,芯片本身可以被配置为结合基因测序仪(例如NGS和/或芯片上的测序仪)一起操作。
更具体地,在各种实施例中,本公开的装置可以是芯片,例如被配置用于处理基因组学数据的芯片,例如通过采用数据分析模块的管道。据此,参见图45,提供了基因组管道处理器芯片100以及基因组管道处理器系统10的相关硬件。芯片100具有一个或多个连接到外部存储器102(在“DDR3存储控制器”处)的连接,以及连接到外部世界的连接104(例如“PCIe接口”),例如主计算机1000。交叉开关108(例如开关)提供各种请求者对存储器接口的访问。DMA引擎110在主机1000与处理器芯片100的外部存储器102之间(经由交叉开关108)和/或在主机与中央控制器112之间高速传输数据。中央控制器112控制芯片操作,特别是协调多个处理引擎13的工作。处理引擎由一组硬连线数字逻辑电路(通过物理电子互连进行互连)形成,并且被组织成引擎集群11/114。在一些实例中,一个引擎集群11/114中的引擎13经由仲裁器共享一个交叉端口。中央控制器112连接到每个引擎集群。每个引擎集群11/114具有用于处理基因组数据的多个处理引擎13,包括映射器120(或映射模块)、比对器122(或比对模块)和排序器124(或排序模块),还可以提供用于执行其他功能的一个或多个处理引擎,例如变异检测。因此,引擎集群11/114也可以包括其他引擎或模块,例如变异检测模块。
据与本文描述的实施方式一致的一个数据流模型,主机CPU 1000经由DMA引擎110将命令和数据发送到中央控制器112,中央控制器112将数据负载平衡到处理引擎。处理引擎将经处理的数据返回到中央控制器112,中央控制器112经由DMA引擎110将其流回到主机。该数据流模型适合于映射和比对。如所指出的,在各种情况下,与主机CPU的通信可以通过相对松散或紧密的耦合,例如低延迟/高带宽互连(例如QPI),以便维持两个或更多设备的的相关存储器元件之间的高速缓存相干性。
例如,在各种情况下,由于各种功率和/或空间限制,例如在执行大数据分析时,例如在软件/硬件混合加速环境执行映射/比对/变异检测,如本公开所述,其中数据需要在系统设备之间快速无缝地移动,高速缓存一致紧密耦合接口对在整个系统中执行在耦合设备之间进行这种数据传输是有用的,例如以快速及高速缓存一致的方式往返于测序仪、DSP(数字信号处理器)、CPU和/或GPU或CPU/GPU混合、加速集成电路(例如FPGA)、ASIC(在网卡上)以及其他智能网络加速器。在这种情况下,合适的高速缓存一致,紧密耦合互连可以是单个互连技术规范中的一个或多个,单个互连技术规范用于确保处理(例如使用不同的指令集架构(ISA))可以不同平台之间和/或与一个或多个相关联的加速器(例如,硬连线的FPGA实现的加速器)一致地共享数据,以便实现高效的异构计算,从而显着提高系统的计算效率,其可以在各实例中配置为基于云的服务器系统。因此,在某些情况下,可以采用高带宽,低延迟,高速缓存相干性互连方案(例如QPI、相干处理器加速器接口(CAPI)、NVLink/GPU或其他合适的互连协议),以便加速系统的各个组件之间的数据传输,例如涉及映射、比对和/或变异检测计算函数,这些计算函数可能涉及使用加速引擎的函数,其需要在各种系统元件之间无缝地访问、处理和移动数据,而与待处理的各种数据在系统中的位置无关。并且,在相关存储器设备(例如RAM或DRAM)内保存这样的数据的情况下,传输可以进一步涉及加速、一致搜索以及存储器内数据库处理。
特别地,在特定实施例中,这种异构计算可以涉及多个处理和/或加速架构,这些架构可以以简化的指令集计算格式互连。在这种情况下,这种互连设备可以是一致连接互连六(CCVI)设备,其允许系统内的所有计算组件可以对一个或多个相关存储器进行寻址、读取和/或写入,以单个、一致、连贯的方式。更具体地,可以采用CCVI互连,以便连接系统的各种设备,例如CPU和/或GPU或CPU/GPU混合、FPGA和/或相关存储器等彼此连接,例如以高带宽方式(用于增加各种组件之间的传输速率及具有极低的延迟率)。具体地,可以采用和配置CCVI互连,以便允许系统的组件访问和处理数据,而不管数据驻留在何处,并且不需要复杂的编程环境,否则需要实现这些复杂的编程环境以使数据连贯。可以采用的用来加速(例如减少)处理时间和提高准确度的互联包括QPI、CAPI、NVLink或其他互联,其他互联用于互连系统的各种组件和/或搭载相关的PCI-express外围互连的顶部。
因此,根据与本文描述的实施方式一致的备选数据流模型,主CPU 1000直接经由DMA引擎110和交叉开关108或经由中央控制器112将数据流式传输到外部存储器1014中。主CPU 1000将命令发送到中央控制器112,中央控制器112向处理引擎13发送命令,处理引擎13指示处理引擎处理哪些数据。由于紧密耦合,处理引擎13直接从外部存储器1014或与其相关联的高速缓存访问输入数据,对其进行处理,并将结果写回外部存储器1014,例如通过紧密耦合的互连3,将状态报告给中央控制器112。中央控制器112或者将结果数据从外部存储器1014流回到主机1000,或者通知主机经由DMA引擎110获取结果数据。
图46示出了基因组学管道处理器系统20,示出了引擎集群11/214内的全部处理引擎13。管道处理器系统可以包括一个或多个引擎集群11/214。在一些实施方式中,管道处理器系统20包括四个或更多的引擎集群11/214。处理引擎13或处理引擎的类型可以包括但不限于映射器、比对器、排序器、局部重新比对器、碱基质量重新校准器、重复标记、变异检测器、压缩器和/或解压缩器。在一些实施方式中,每个引擎集群11/214具有每个处理引擎类型中的一个。因此,相同类型的所有处理引擎13可以通过不同的交叉开关端口同时访问交叉开关208,因为它们各自位于不同的引擎集群11/214中。不是每个处理引擎类型都需要在每个引擎集群11/214中形成。需要大量并行处理或存储器带宽的处理引擎类型(例如映射器(和附加比对器)和排序器)可能会出现在管道处理器系统的每个引擎集群中。其他引擎类型可以根据需要仅出现在一个或一些引擎集群214中,以满足其性能要求或管道处理器系统20的性能要求。
图47示出了基因组学管道处理器系统30,除了上述的引擎集群11之外还示出了一个或多个嵌入式中央处理单元(CPU)302,在其他情况是FPGA。这种嵌入式CPU的实例包括或standard标准内核。这些CPU执行完全可编程的bio-IT算法,例如高级变异检测,例如构建DBG或执行HMM。这种处理通过引擎群集11的计算函数来加速,其可以根据需要由CPU内核302调用。此外,即使是以引擎为中心的处理,例如映射和比对,也可以由CPU内核302管理,给予它们更高的可编程性。
图48示出了基因组学管道处理器系统和方法的处理流程。在一些优选的实施方式中,对数据进行三次处理。第一次,包括映射402和比对404,全套read通过引擎13流式传输。第二次,包括排序406,其中将待排序的一个大块(例如,先前映射到单个染色体的实质部分或全部read)上传到存储器中,由处理引擎排序并返回给主机。第三次,包括下游阶段(局部重新比对408、重复标记410、碱基质量评分重新校准(BQSR)412、BAM输出414、简化BAM输出416和/或CRAM压缩418)。第三次处理的步骤和函数在单次内可以以任何组合或子组合的方式进行,并且以任何顺序进行。
因此,以这种方式,数据从一个或多个处理引擎相对无缝地传递到主机CPU,例如根据本文描述的一种或多种方法。因此,如上所述的虚拟管道结构用于将来自主机的read流式传输至存储器中的循环缓冲器,通过一个接一个的处理引擎并返回到主机。在一些实施方式中,CRAM解压缩可以是单独的流式传输函数。在一些实施方式中,SAM输出414,简化BAM输出416和/或CRAM压缩418可以用用变异检测、压缩和解压缩替换。
在各种情况下,序列分析管道的硬件实施方式,如下所述。这可以通过许多不同的方式完成,例如FPGA或ASIC或结构化ASIC实现。图49示出了由FPGA或ASIC或结构化ASIC实现的功能块。因此,该系统包括许多块或模块以进行序列分析。对硬件的输入可以是FASTQ文件,但不限于这种格式。除了FASTQ文件之外,FPGA或ASIC或结构化ASIC的输入还包含辅助信息,例如来自NGS等技术的流动空间信息。这些模组或块可包括以下块:错误控制、映射、比对、排序、局部重新比对、重复标记、碱基质量重新校准、BAM和边信息简化以及变异检测。
这些模组或块可以存在于硬件内或由硬件实现,但是可以省略这些块中的一些或添加其他块以实现序列分析管道。块2和3描述了序列分析管道平台的两种替代方案。序列分析管道平台包括FPGA或ASIC或结构化ASIC以及由具有云和/或存储器集群的主机(即,PC,服务器,集群或云计算)辅助的软件。块4-7描述了序列分析管道可以具有的不同接口。在块4和6中,接口可以是PCIe接口和/或QPI/CAPI/CCVI/NV链接接口,但不限于PCIe接口、QPI或其他接口。在块5和7中,硬件(FPGA或ASIC或结构化ASIC)可以直接集成到测序仪器中。块8和9描述了硬件序列分析管道集成到主机系统中,例如PC、服务器集群或测序仪。硬件FPGA或ASIC或结构化ASIC周围有大量DDR3存储器元件和PCIe接口及PCIe/QPI/CAPI/CCVI/NV链接接口。带有FPGA/ASIC/sASIC的电路板连接到主机,主机包含一个主CPU和/或GPU,可以是低功耗CPU(例如)或任何其他处理器。块10示出了可由第三方应用访问以执行三级分析的硬件序列分析管道API。
图50A和50B示出了本公开的处理芯片100(例如,FPGA)的扩展卡104,以及用于将FPGA 100与主机CPU/GPU耦合的一个或多个相关联的元件105,例如用于传输数据,例如要处理的数据和在CPU/GPU与FPGA 100之前传输的结果数据。图50B示出图50A的扩展卡,其具有多个(例如3个)槽,槽包含多个(例如3个)本发明的处理芯片。
具体而言,如图50A和图50B所示,在各种实施例中,本公开的装置可以包括计算体系结构,例如嵌入在FPGA或硅专用集成电路(ASIC)100中,FPGA100可以集成到可插入计算平台的印刷电路板(PCB)104,例如外围组件接口-快速(PCIe)卡。在各种情况下,如图50A所示,PCIe卡104可以包括单个FPGA 100,FPGA可以被本地存储器105包围,然而,在各种实施例中,如图50B所示,PCIe卡104可以包括多个FPGA100A、100B和100C。在各种情况下,PCI卡还可以包括PCIe总线。该PCIe卡104可以被添加到计算平台以对极大数据集执行算法。在可替换的实施例中,如图34所示,在各种实施例中,可以调整FPGA以与CPU/GPU直接相关,例如通过接口元件(interloper),并且与其紧密耦合,例如通过QPI、CAPI、CCVI接口。因此,在各种情况下,涉及FPGA的基因组测序的总体工作流程可包括以下:样本制备、比对(包括映射和比对)、变异分析、生物学解释和/或特定应用。
因此,在各种实施例中,本公开的设备可以包括计算体系结构,其中在该体系中算法可高效执行,例如映射和比对算法,其在极大数据集上运行,例如数据集表现出较差的局部性(LOR)。这些算法被设计用于对来自现代所谓的“新一代测序仪(NGS)”的数百万个短read序列重建全基因组,需要随机存取的数千兆字节的数据结构。一旦重建完成,如上所述,具有相似特征的进一步的算法被用于将一个基因组与其他文库进行比较,进行基因函数分析等。
通常可以构造两个其他典型的体系结构,用于执行这里详细描述的一个或多个操作,例如包括目的多核CPU和通用图形处理单元(GPGPU)。在这种情况下,多核系统中的每个CPU可能具有传统的基于高速缓存的体系结构,其中指令和数据是从1级高速缓存(L1cache)获取的,该1级高速缓存很小但具有极快的访问速度。多个L1缓存可能连接到较大但较慢的共享L2缓存。L2高速缓存可以连接到较大但较慢的DRAM(动态随机存取存储器)系统存储器,或者可以连接到甚至更大但较慢的L3高速缓存,然后其可以连接到DRAM。这种布置的优点可能在于,程序和数据表现出较差的局部性(LOR)的应用程序表现出像在具有与DRAM一样大的单个存储器但是与L1高速缓存一样快的计算机上执行一样。由于全定制,高度优化的CPU以非常高的时钟频率(例如2至4GHz)运行,所以该架构对于实现良好的性能可能是必不可少的。另外,如参考图33详细讨论的那样,在各种实施例中,CPU可以紧密耦合到FPGA,FPGA用于运行与本文描述的各种操作相关的一个或多个函数,诸如经由高带宽,低延迟互连,例如QPI、CCVI、CAPI,以进一步提高整个系统传输数据的性能以及速度和相干性。在这种情况下,如上所述,可以在两个设备之间保持高速缓存相干性。
此外,可以采用GPGPU来扩展该体系结构,例如通过非常大量的小型CPU,每个小型CPU具有其自己的小型L1高速缓存,其中每个CPU在不同的数据子集上执行相同的指令。这是所谓的SIMD(单指令流,多数据流)架构。通过在大量CPU上共享指令获取和解码逻辑,可以获得经济效益。每个高速缓存可通过互连网络访问多个大型外部DRAM。假设要执行的计算具有高度的可并行性,由于GPGPU具有大量计算资源,因此比通用CPU具有显着的优势。尽管如此,它们仍然具有缓存架构,并且它们的性能受到较差的局部性(LOR)的应用程序的损害。使得高速缓存未命中率较高,以及处理器在等待数据从外部DRAM到达时处于空闲状态。
例如,在各种情况下,动态RAM可以用于系统存储器,因为它们比静态RAM(SRAM)更经济。过去的经验法则是,4倍容量的DRAM与SRAM的成本相同。然而,由于SRAM的需求下降,DRAM的需求量非常大,由于规模经济有利于需求量大的DRAM所以这种差距已经大大增加。与成本无关,DRAM的密度是在相同硅片区域的SRAM的4倍,因为它们每个位只需要一个晶体管和电容器,而SRAM的触发器每个位需要4个晶体管。DRAM代表一个信息的单个位,如电容上存在或不存在电荷。
这种布置的一个问题是电荷随时间衰减,所以必须定期刷新。这使得在架构中将存储器组织成独立的块和访问机制,为每个请求提供多个存储字。这补偿了给定块在刷新时不可用的时间,在给定块可用时移动大量数据。这与SRAM形成对比,SRAM中的任何位置在一段恒定时间内的单次访问中是可用的。这个特性允许存储器访问是面向单个字的,而不是面向块的。DRAM在高速缓存体系结构中运行良好,因为每个高速缓存未命中(cachemiss)会使从DRAM读入存储器块。局部性理论是,如果只访问了字N,那么可能会访问字N+1,N+2,N+3等。
图51提供了本公开的系统500的示例性实施例,包括图50的一个或多个扩展卡,例如用于生物信息处理10。系统包括BioIT处理芯片100,其用于执行处理管道中一个或多个函数,例如如本公开所述的碱基检测、错误校正、映射、比对、排序、组装、变异检测等。
系统500还包括配置管理器,其用于配置一个或多个处理器100的机载功能。具体地,在各种实施例中,配置管理器适于将指令传送到FPGA(如固件)的内部控制器,例如通过松散或紧密耦合的互连的适当配置的驱动器,以便配置系统500的一个或多个处理函数。例如,配置管理器可以适于配置内部处理集群11和/或与其相关联的引擎13,以执行一个或多个所需操作,例如映射、比对、排序、变异检测等。以这种方式,可以仅使用包含处理引擎13的集群11来对主机系统1000提供给芯片100的数据执行所请求的处理操作根据接收的指令来处理数据。
另外,在各种实施例中,配置管理器可以进一步适于自身由(例如远程)第三方用户接口(例如通过API接口)来进行调整,如上文更详细描述的。此外,配置管理器可以连接到一个或多个外部存储器,例如形成或以其他方式包含数据库的存储器,其中数据库包括一个或多个参考的或单独测序的基因组和/或其索引,和/或一个或多个先前映射的、比对的、和/或排序的基因组或其部分。在各种情况下,数据库可以进一步包括表征疾病状态的一个或多个遗传谱,例如基于新映射的、比对的基因序列或与其相关的VCF,用于执行一种或多种三级处理方案。
系统500还可以包括基于网络的访问,以允许(例如经由因特网)的远程通信,形成云或至少混合云504通信平台。以这样的方式,Bio IT处理器生成的处理信息(例如结果数据)进行加密并存储在外部(例如,远程)数据库中成为电子健康记录。在各种情况下,EMR数据库(例如存储在其中的遗传信息)是可搜索的,例如对数据执行一个或多个统计分析,例如确定患病状态或趋势或用于分析一种或多种预防剂或与其有关的治疗的有效性。然后,可在进一步的数据库508进一步处理和/或存储这些信息以及EMR数据,以确保遗传信息源的机密性。
更具体地,图51示出了用于对基因序列数据执行序列分析管道的系统500。系统500包括配置管理器502,所述配置管理器502包括计算系统。配置管理器502的计算系统可以包括个人计算机或其他计算机工作站,或者可以由一整组联网计算机来实现。配置管理器502可以进一步包括一个或多个第三方应用,其通过一个或多个API与计算系统连接;与一个或多个专有应用一起产生用于处理来自测序仪或其他基因组数据源的基因组数据的配置。配置管理器502进一步包括将配置上传到基因组学管道处理器系统的驱动器。基因组学管道处理器系统可以输出结果数据到网络504或其他网络,或通过网络504或其他网络访问,以便将结果数据存储在电子健康记录506或其他知识数据库508。
如上述几处所述,基因组学管道处理器的芯片可以连接或集成在测序仪中。芯片也可以(例如直接通过接口元件或间接地)连接或集成)在扩展卡(例如PCIe),并且扩展卡可以连接或集成在测序仪中。在其他实施方式中,芯片可以连接或集成在连接到测序仪的服务器计算机上,以将基因组read从测序仪转移到服务器。在其他实施方式中,芯片可以连接或集成在计算机和服务器的云计算集群中的服务器中。系统可以包括连接(例如通过以太网)到包含芯片的服务器的一个或多个测序仪,其中基因组read由多个测序仪产生,被发送到服务器,然后在芯片中映射和比对。
例如,在通常的新一代DNA测序仪(NGS)数据管道中,初级分析阶段处理通常对于给定的测序技术是特定的。该初级分析阶段用于将在测序仪内检测到的物理信号翻译成具有相关质量(置信)分数的核苷酸序列的“read”,例如FASTQ格式文件或包含序列和一般质量信息的其他格式。如上所述,初级分析通常在本质对所采用的测序技术来说是具体的。在各种测序仪中,通过感测荧光和/或电荷、电流或辐射光的变化来检测核苷酸。一些主要分析管道通常包括:用于放大,滤波,分离和测量传感器输出的信号处理;(例如通过量化、抽取、平均、变换等)的数据简化;图像处理或数字处理以识别和增强有意义的信号,并将它们与特定的长和核苷酸相关联,如图像偏移计算、聚类识别;算法处理和启发式算法,用于补偿测序技术伪像,如定相估计、串扰矩阵;贝叶斯概率计算;隐马尔可夫模型;碱基检测(在序列中的每个位置选择最可能的核苷酸);碱基检测质量(置信度)估计等。如上所述,这些步骤中的一个或多个可以的实现通过在硬件中执行一个或多个必要的处理函数,例如由集成电路(例如FPGA)来实现。在获得这种格式之后,如本公开所述的继续进行二级分析以确定测序样本DNA(或RNA等)的含量,例如通过将read与参考基因组进行映射和比对、排序、重复标记、碱基质量评分重新校准、局部重新校准和变异检测。然后可以进行三级分析,从确定的DNA含量中提取医学或研究暗示。
因此,考虑到上述处理函数的测序本质,将初级、二级和/或三级处理加速集成在单个集成电路或位于单个扩展卡上的多个集成电路可能是有利的。这可能是有益的,因为测序仪产生通常需要进行初级和二级分析的数据(以进一步用于各种三级处理方案),集成在单个设备中,在成本、空间、功率及资源共享方面是最有效的。
因此,在一个特定方面,本公开内容涉及一种对基因序列数据执行序列分析管道的系统。在各种情况下,系统可以包括电子数据源,其中电子数据源提供数字信号,例如代表基因组数据(包括核苷酸序列)的多个read的数字信号。该系统可包括一个或多个存储器,例如存储存储一种或多种遗传参考序列和/或一种或多种遗传参考序列的索引。系统可以包括芯片,例如ASIC、FPGA或sASIC。
本文描述的主题的一个或多个方面或特征可以在数字电子电路、集成电路、专门设计的专用集成电路(ASIC)、现场可编程门阵列(FPGA)或结构化ASIC计算机硬件、固件、软件和/或其组合中实现。
这些各个方面或特征可以包括在一个或多个计算机程序中的实现,其中计算机程序可以包括至少一个可编程处理器的可编程系统上执行和/或解释,为了特殊的或通用的止的,该可编程系统可以将数据和指令发送到存储系统至少一个输入设备和至少一个输出设备,可以从存储系统至少一个输入设备和至少一个输出设备接收数据和指令。可编程系统或计算系统可包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在各个计算机上运行计算程序,并且彼此之间具有客户端-服务器关系。
这些计算机程序也可被称为程序、软件、软件应用程序、应用程序、组件或代码,包括用于可编程处理器的机器指令,并且可以在高级过程和/或对象面向对象的编程语言,和/或汇编/机器语言中实现。如本公开所使用的,术语“机器可读介质”是指任何计算机程序产品、装置和/或设备,例如磁盘、光盘、存储器和可编程逻辑器件(PLD),其可用于提供机器指令和/或数据到可编程处理器,包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。机器可读介质可以非暂时地存储这样的机器指令,例如像非瞬态固态存储器或磁性硬盘驱动器或任何等同的存储介质那样。机器可读介质可以可选地或附加地以瞬态方式存储这样的机器指令,例如像处理器高速缓存或与一个或多个物理处理器内核相关联的其他随机存取存储器一样。
此外,由于21世纪数据生成和获取的巨大增长,人们需要提高处理能力,以便能够处理日益增长的计算密集型分析,现代开发就在此基础上进行。已经引入了超级计算机,并且它已经用于推动各种平台的技术开发。然而,尽管超级计算很有用,但事实证明,它对于当今许多技术公司所面临的一些非常复杂的计算问题是不够的。特别是,由于人类基因组的测序,生物学领域的技术进步是指数级的。然而,鉴于每天产生的原始数据的高速率和增加的复杂性,在处理和分析所产生的数据方面已经形成了一个有问题的瓶颈。已经开发了量子计算机来帮助解决这个瓶颈。量子计算代表了计算领域的新前沿,为解决世界上最具挑战性的计算需求提供了一种全新的方法。
自1982年以来已知量子计算。例如,在国际杂志Theoretical Physics中,RichardFeynman理论化了用于执行量子计算的系统。具体而言,Feynman提出了一种量子系统,其可以用于以这样的方式模拟其他量子系统,使得可以更快速和有效地执行计算机处理的传统的函数,请参见Feynman在1982年的国际杂志Journal of Theory Physics第21期的第467-488页发表的内容,其全部内容在此引入作为参考。特别地,设计的量子计算机系统,处理复杂计算时呈现指数时间节省。这种可控的量子系统通常称为量子计算机,并且已经成功地开发成通用处理计算机,其不仅可以用于模拟量子系统,而且还可以适用于运行专用量子算法。更具体地,复杂问题可以以等式的形式建模,例如哈密顿量(Hamiltonian),更具体地,可以以等式的形式对复杂问题进行建模,该等式可以在量子系统中以系统的行为提供关于等式的解的信息的方式表示。请参见Deutsch,1985在Proceedings of the RoyalSociety of London A第400期第97-117页发表的内容,其全部内容在此引入作为参考。在这种情况下,求解量子系统的行为的模型涉及求解与量子系统的粒子(例如哈密顿量)的波-机械描述相关的微分方程。
实质上,量子计算是使用量子力学现象(例如,叠加和/或纠缠)的计算系统,以非常快速地对大量数据执行各种计算。因此,量子计算机是对传统数字逻辑计算机的巨大改进。具体地,传统的数字逻辑电路通过使用二进制数字逻辑门来起作用,二进制数字逻辑门就通过导电基板上的电子电路的硬连线形成的。在数字逻辑电路中,晶体管的开/关状态用作信息的基本单元,例如“位”。特别地,普通数字计算机处理器在“开”或“关”中使用二进制数字(例如位)来编码数据,如开或关状态为为0或1。另一方面,量子计算采用信息设备,该信息设备使用纠缠状态的叠加(称为量子位(quantum bits或qubits))来编码数据。
执行这种量子计算的基础是信息设备,例如形成量子位的单元。量子位类似于传统数字计算机中的数字“位”,除了量子位具有比数字位更多的计算潜力。特别地,如本公开所详述的,不是仅编码两个离散状态(如数字位中的“0”和“1”)中的一个,量子位也可以置于“0”和“1”的叠加状态中。具体地,量子位可以同时存在于“0”和“1”状态。因此,量子位可以同时对两个状态执行量子计算。通常,N个量子位可以处于2N种状态的叠加。因此,量子算法可以利用这种叠加特性来加速某些计算。
因此,量子位类似于传统数字计算机中的位,并且是一种表现出相干性的信息设备。特别地,量子计算设备由多个信息设备构成,例如,量子位、构建块。例如,量子计算机的计算能力随着形成其构建块的信息设备以可控方式耦合(例如,纠缠)在一起而增加。在这种情况下,一个信息设备的量子状态影响与其耦合的每个其他信息设备的量子状态。
因此,与传统的数字计算中的位一样,量子计算中的量子位用作信息(例如量子信息)编码的基本单元。与位类似,量子位在双态系统中编码数据,在这种情况下,双态系统是一个量子力学系统。具体地,对于量子位,两个量子态涉及纠缠,例如涉及单个光子的偏振。因此,在传统系统中,位必须处于一种状态或另一种状态,在量子计算平台中,量子位可以同时处于两种状态的叠加,这种性质是量子处理的基础。因此,量子位和传统位之间的区别特征是多个量子位表现出量子纠缠。这种纠缠是非局部性质,其允许一组量子位表示比传统系统中可能的更高的相关性。
为了起作用,这种信息设备(例如量子位)必须满足几个要求。首先,信息设备必须可以简化为量子二级系统。这意味着信息设备必须具有两个可区分量子状态,以用于执行计算。其次,信息设备必须能够产生量子效应,如纠缠和叠加。另外,在某些情况下,信息设备可用于存储信息(例如量子信息),以相干形式。在这种情况下,相干设备可以具有量子状态,该量子状态持续存在而不会在很长一段时间内发生显着降级,例如大约几微秒或更长。
特别地,量子纠缠是当一对或一组粒子生成时或以其他方式配置成相互作用的物理现象,这种相互作用使得一个粒子的量子状态不能独立于另一粒子的量子状态来描述(尽管有空间隔离两种粒子)。因此,不是独立于其他粒子而描述一个粒子的量子状态,而是量子状态必须作为整体来为系统描述。在这种情况下,在纠缠粒子上进行的各种物理性质(例如位置、动量、旋转和/或极化)的测量是相关的。例如,如果生成一对粒子,使得它们的总旋转已知为零,并且发现一个粒子在某个轴上顺时针旋转,则在同一轴上测量另一个粒子的旋转,将被发现是逆时针的,由于粒子的纠缠,这是预期的。
因此,纠缠对中的一个粒子简单地“知道”在另一个粒子上进行了什么测量并且具有什么结果,即使在两粒子之间没有已知用于传递这种信息的手段,在测量时可以通过任意大的距离分开。由于这种关系,与一次只能有一个值的传统位不同,纠缠允许同时对多个状态起作用。正是这些独特的纠缠关系和量子态被广泛用于量子计算的发展。
因此,存在采用可以执行的纯量子位状态的各种物理操作。例如,可以进行量子逻辑门并用于操作基本量子位,其中量子位经历单一变换,例如单一变换对应于量子位的旋转或其他量子现象。实际上,任何两级系统都可以用作量子位,例如光子、电子、核自旋、相干光状态、光学晶格、约瑟夫森结、量子点等。具体而言,量子门是在少量量子位上操作的量子电路的基础。例如,量子电路由量子门组成,量子门作用于固定数量的量子位,例如两个或三个或更多。因此,量子位是量子电路的构建模块,就像传统数字电路的传统逻辑门一样。具体地,量子电路是用于量子计算的模型,其中计算是量子门的序列,量子门是在n位寄存器的量子力学模拟上的可逆变换。这种类似结构称为n量子位寄存器。因此,与传统逻辑门不同,量子逻辑门总是可逆的。
具体地,如本公开所述,数字逻辑门是物理有线设备,其可以使用一个或多个二极管或晶体管来实现,所述二极管或晶体管作为电子开关对一个或多个二进制输入执行逻辑操作,以产生单个二进制输出。通过放大,逻辑门可以与布尔函数组合的方式级联,允许构建所有布尔逻辑的物理模型,因此,可以用布尔逻辑描述的所有算法和数学都可以由数字逻辑门执行。以类似的方式,可以形成级联的量子逻辑门以用于执行布尔逻辑运算。
量子门通常表示为矩阵。在各种实施例中,量子门作用于k个量子位,其可以由2k×2k的酉矩阵表示。在这种情况下,门的输入和输出中的量子位的数量应该相等,并且通过将表示状态的向量与表示门的矩阵来相乘来找到门对特定量子状态的作用。因此,考虑到这种配置,可以在非常少量的量子位上执行量子计算操作。例如,量子算法置运行更复杂的计算的速度比任何可能的概率传统算法更快。特别地,量子算法是在量子电路计算模型上运行的算法。
其中传统算法是可以由传统计算机的数字逻辑电路执行的有限序列的逐步指令或过程,其其中每个步骤都可以在量子计算机上执行。然而,即使存在量子算法,例如Shor,Grovar和Simon的算法,所有传统算法也可以在具有正确配置的量子计算机上执行。量子算法通常用于那些固有量子的算法,例如涉及叠加或量子纠缠。量子算法可以在各种量子计算模型中陈述,例如Hamiltonian oracle模型。
因此,传统计算机具有由位组成的存储器,其中每个位由“1”或“0”表示;量子计算机支持一系列量子位,其中单个量子位可以表示这两个量子位状态的一个,零或任何量子叠加。因此,一对量子位可以处于4种状态的任何量子叠加,并且三种量子位可以处于8种状态的任何叠加。通常,具有n个量子位的量子计算机可以同时处于多达2n个不同状态的任意叠加,这与在任何时候只能处于这两个状态之一的普通计算机相比。因此,量子位可以比传统的位保持指数级的信息。在实践中,量子计算机通过将量子位设置在漂移中来操作,该漂移通过使用固定的量子逻辑门序列操纵这些量子位来解决问题。正是这种量子逻辑门序列形成了量子算法的运算。计算以测量结束,将量子位系统分解(collapsing)成2n个纯状态之一,其中每个量子位为“0”或“1”,从而分解成传统状态。因此,传统算法也可以在量子计算平台上执行,其中结果通常是n位传统信息。
在标准符号中,量子位的基本状态被称为“0”和“1”状态。然而,在量子计算期间,量子位的状态通常可以是基本状态或基本状态的叠加状态,使得量子位具有占据“0”基本状态的非零概率和同时占据“1”基本状态的非零概率。因此,量子位的量子特性很大程度上源于它在基本状态的相干叠加中存在的能力,以及量子位具有相位的状态。只要量子位与退相干源充分隔离,量子位将保留作为基本状态的相干叠加存在的能力。
因此,为了使用量子位完成计算,测量量子位的状态。如上所述,当完成量子位的测量时,量子位的量子特性可能暂时失去,并且基本状态的叠加可能会分解(collapse to)到“0”基本状态或“1”基本状态。因此,以这种方式,量子位重新获得其与传统数字“位”的相似性。然而,量子位在崩溃之后的实际状态将取决于紧接在测量操作之前存在的各种概率状态。因此,可以采用量子位来形成量子电路,量子电路本身可以被配置为形成量子计算机。
有几种通用方法来设计和操作量子计算机。已经提出的一种方法是用于量子计算的电路模型。电路模型量子计算需要长量子相干性,因此支持这种方法的量子计算机中使用的信息设备的类型可以是量子位,根据定义它具有长的相干时间。因此,用于量子计算的电路模型基于这样的前提:量子位可以由逻辑门形成并且由逻辑门操作,非常类似于位,并且可以使用量子逻辑来编程以便执行计算,例如布尔计算。已经进行了研究以开发可以进行编程为以这种方式执行量子逻辑功能的量子位。例如,参见Shor,2001,arXiv.org:qua-ph/0005003,其全部内容在此引入作为参考。同样,计算机处理器可以采用量子处理器的形式,例如超导量子处理器。
超导量子处理器可以包括多个量子位和相关的局部偏置装置,例如,两个、三个或更多个超导量子位。因此,尽管在各种实施例中,计算机处理器可以用作非传统的超导处理器,但是在其他实施例中,计算机处理器可以用作超导处理器。例如,在一些实施例中,非传统的超导处理器可以不关注量子效应(例如叠加、纠缠和/或量子隧穿),而是可以通过强调不同的原理来操作,例如那些原理是管理传统计算机处理器的操作。在其他实施例中,计算机处理器可以用作传统的超导处理器,例如适于处理各种量子效应(例如叠加、纠缠和/或量子隧道效应)。
因此,在各种情况下,这种超导处理器的实现可能具有某些优点。特别地,由于它们的自然物理特性,超导处理器通常能够比非超导处理器具有更高的切换速度和更短的计算时间,因此用超导处理器上来解决某些问题可能更实际。此外,可以结合本装置、系统及其使用方法使用的示例性量子处理器的细节和实施例,在以下文件中进行了相关描述,包括申请号为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以及他们所有的国外专利同族,在此通过引用整体并入本文。
此外,除了上述量子装置和系统之外,还提出了用于解决复杂计算问题的方法。例如,本文公开的量子装置和系统可以用于以相干方式控制一个或多个信息装置和/或系统的量子状态,以执行生物信息学和/或基因组学处理管道的一个或多个步骤,例如用于执行图像处理、碱基检测、映射、比对、排序、变异检测和/或其他基因组学和/或生物信息学管道的一个或多个操作。在特定实施例中,一个或多个操作可以包括执行burrow-wheelers、smith-waterma和/或HMM操作。
具体地,使用量子计算设备解决复杂的基因组学和/或生物信息学计算问题可以包括生成一个或多个量子位并使用它来形成表示计算问题的量子逻辑电路,逻辑电路表示编码为离散的优化问题,并使用量子处理器解决离散优化问题。该表示可以是通过加法,减法,乘法和/或除法电路求解的算术和/或几何问题。离散优化问题可以由一组微型优化问题组成,其中每个微型优化问题编码来自逻辑电路表示的相应逻辑门。例如,数学电路可以采用因子的二进制表示,并且可以分解这些二进制表示以减少表示数学电路所需的变量的总数。因此,根据本文的教导,计算机处理器可以采用数字和/或模拟处理器的形式,例如,量子处理器(如超导量子处理器)。超导量子处理器可以包括多个量子位和相关的局部偏置装置,例如两个或更多个超导量子位,其可以形成为一个或多个量子逻辑电路表示。
更具体地,在各种实施例中,可以提供超导集成电路。具体地,在特定实施例中,这种超导集成电路可以包括第一超导电流路径,该第一超导电流路径设置在金属(例如,第一金属层)中。这种超导集成电路还可以包括电介质(例如第一电介质层),例如其中电介质层的至少一部分与第一金属层相关联和/或承载在第一金属层上。这种超导集成电路还可以包括第二超导电流路径并将其设置在第二金属层中,例如第二金属层承载在第一电介质层上承载或以其他方式与第一电介质层相关联。在这样的实施例中,第二超导电流路径的至少一部分可以覆盖第一超导电流路径的至少一部分。同样地,这种超导集成电路也可以包括第二介电层,例如其中第二介电层的至少一部分与第二金属层相关联或承载在第二金属层上。另外,这种超导集成电路可以包括第三超导电流路径并将其设置在第三金属层中,该第三金属层可以与第二电介质层相关联或承载在第二电介质层上,例如其中第三超导电流路径的至少一部分可以覆盖至少一部分第一和第二超导电流路径中的一个或两个。这种超导集成电路还可以相应地包括或配置一个或多个附加金属层、介电层和/或电流路径。
此外,第一超导连接可以位于第一超导电流路径和第三超导电流路径之间,例如第一超导连接延伸穿过第一介电层和第二介电层两者。还可以包括第二超导连接并将其定位在第一超导电流路径和第三超导电流路径之间,例如第二超导连接可以延伸穿过第一介电层和第二介电层两者。另外,第二超导电流路径的至少一部分可以被外部超导电流路径包围,该外部超导电流路径可以由第一超导电流路径中的一个或多个的至少一部分、第二超导电流路径的至少一部分形成和/或第一和第二超导连接构成。因此,在这种情况下,第二超导电流路径可用于将信号耦合(例如,电感耦合)到外部超导电流路径。
在一些实施例中,第二超导电流路径和外部超导电流路径之间的互感可以与第一电介质层的厚度和第二电介质层的厚度成线性比例。第一和第二超导连接每一个还可以包括至少一个相应的超导过孔。此外,在各种实施例中,第二超导电流路径可以是输入信号线的一部分,并且第一和第三超导电流路径中的一个或两个可以耦合到超导可编程设备。在其他实施例中,第二超导电流路径可以是超导可编程设备的一部分,并且第一和第三超导电流路径都可以耦合到输入信号线。在特定实施例中,超导可编程装置可以是超导量子位,其然后可以耦合(例如,量子耦合)到一个或多个其他量子位,以形成(例如量子处理装置)的量子电路。
因此,本文提供了用于解决计算问题(尤其是与解决上文所述的基因组学和/或生物信息学瓶颈相关的问题)的装置、系统和方法。在各种实施例中,这些装置、系统和方法引入了一种技术,由此可以直接求解表示计算问题的逻辑电路和/或可以将表示计算问题的逻辑电路编码为离散优化问题,然后可以使用计算机处理器(例如,如量子处理器)解决离散优化问题。在特定实施例中,解决这种离散优化问题可以包括执行逻辑电路以解决原始计算问题。
因此,本文描述的设备、系统和方法可以使用任何形式的计算机处理器来实现,计算机处理器例如包括传统逻辑电路和/或逻辑电路表示,例如使用量子处理器和/或进行超导处理。具体地,执行图像处理、碱基检测、映射、比对和/或变异检测生物信息学管道的各种步骤可以被编码为离散的优化问题,并且特别适合使用本文公开的量子处理器来解决。在其他情况下,这些计算可以更普遍地通过利用量子效应来实现这种计算的计算机处理器来解决;和/或在其他情况下,这种计算可以使用如本公开详细描述的专用集成电路来执行(例如FPGA、ASIC或结构化ASIC)来解决。在一些实施例中,通过在量子处理器中配置逻辑电路、量子位和/或耦合器来解决离散优化问题。在一些实施例中,量子处理器可以特别适于促进解决这种离散的优化问题。
如在整个说明书和所附权利要求中所公开的,经常参考例如计算问题的“逻辑电路表示”。根据上下文,逻辑电路可以包含一组逻辑输入、一组逻辑输出和一组逻辑门(例如,与非门、异或门等),通过一组中间逻辑输入和中间逻辑输出将逻辑输入转换为逻辑输出。完整的逻辑电路可包括:计算问题的输入的表示、计算问题的输出的表示以及输入和输出之间的中间步骤顺序的表示。
因此,出于本设备、系统和方法的各种目的,计算问题可以由其输入、输出和将输入转换为输出的中间步骤来定义。逻辑电路表示可以包括所有这些元件。本领域技术人员可以理解的是,将计算问题的“逻辑电路表示”编码为离散优化问题以及随后的将离散优化问题映射到映射量子处理器,可以导致每层任意数量的量子位影响任意数量的层。此外,这种映射可以实现任何量子位间耦合以实现任何层间耦合(例如,不同层的量子位之间的耦合)的方案和层内耦合(例如,特定层内的量子位之间的耦合)方案。
因此,如所指示的,在一些实施例中,逻辑电路的结构可以分层为层。例如,逻辑输入可以表示第一层,每个顺序逻辑(或算术)操作可以表示相应的附加层,并且逻辑输出可以表示另一层。并且如前所述,取决于执行的特定逻辑操作,逻辑操作可以由单个逻辑门或逻辑门的组合来执行。因此,逻辑电路中的“层”可以包括单个逻辑门或逻辑门的组合,这取决于所实现的特定逻辑电路。
因此,在各种实施例中,例如逻辑电路的结构分层为层(例如,利用逻辑输入表示第一层、每个顺序逻辑操作表示相应的附加层以及逻辑输出表示代表另一层),每个层可以由量子和/或超导处理器中的相应量子位集体现。例如,在量子处理器的一个实施例中,可以对一个或多个(例如每个)量子位行进行编程以表示量子逻辑电路的相应层。也就是说,编程特定量子位为表示逻辑电路的输入,编程其他量子位为表示第一逻辑运算(由一个或多个逻辑门执行),并且编程另外的量子位为表示第二逻辑运算(类似地由一个或多个逻辑门执行),并且编程再一量子位为表示逻辑电路的输出。
另外,利用表示问题的各个层的各种量子位集,可以有利地实现每个相应的量子位集组的独立动态控制。此外,在各种实施例中,各种系列逻辑电路可以映射到量子处理器并且各个量子位映射到量子处理的交互函数,以适合于实现独立控制的方式。综上所述,本领域技术人员可以理解的是,如何为任何逻辑门定义类似的目标函数。因此,在一些实施例中,表示问题人逻辑电路可以基本上由多个微型优化问题组成,其中逻辑电路中的每个门对应于特定的微型优化问题。
因此,可以使用本领域中已知的系统和方法来生成示例性逻辑电路表示。在一个实施例中,可以使用如本公开所述的传统数字计算机处理器和/或量子和/或超导处理器来生成和/或编码表示计算问题(例如,基因组学和/或生物信息学问题)的逻辑电路。因此,表示计算问题的逻辑电路可以存储在至少一个计算机或处理器可读存储介质中,例如计算机可读非暂时性存储介质或存储器(例如,易失性或非易失性)。因此,如本公开所讨论的,表示计算问题的逻辑电路可以编码为离散优化问题或一组优化目标,并且在各种实施例中,例如当传统数字计算机处理程序用于解决问题时,系统可以使得位串使逻辑电路具有零能量并且所有其他位串具有大于零的能量,通过建立原始计算问题的解决方案来解决离散优化问题。
此外,在其他实施例中,可以使用计算机处理器(例如量子处理器)来解决离散优化问题。在这种情况下,解决离散优化问题然后涉及例如将量子处理器演进到最小化系统能量的配置以便建立满足优化目标的位串。因此,在一些实施例中,解决离散优化问题的方案可包括三个。首先,离散优化问题可以映射到计算机处理器。在一些实施例中,计算机处理器可以包括量子和/或超导处理器,并且将离散优化问题映射到计算机处理器可以包括对量子和/或超导处理器的元件(例如,量子位和耦合器)进行编程。将离散优化问题映射到计算机处理器可以包括将离散优化问题存储在至少一个计算机或处理器可读存储介质中,例如计算机可读非暂时性存储介质或存储器(例如易失性或非易失性)。
因此,鉴于以上所述,在各种情况下,提供了用于对基因组学材料执行序列分析管道的装置、系统和方法。例如,基因组学材料可包括(例如在图像文件、BCL、FASTQ文件等中的)基因组数据的多个read。在各种实施中,所述装置和/或系统可用于执行基因组数据(例如基因组数据的长)的序列分析,例如通过使用例如存储在存储器中的一个或多个遗传参考序列的索引,其中,每基因组数据的read和每个参考序列代表核苷酸序列。
特别地,在各种实施例中,该设备可以是量子计算设备,其由一组量子逻辑电路(例如,硬连线量子逻辑电路)形成,其中逻辑电路彼此互连。在各种情况下,量子逻辑电路可以通过一个或多个超导连接互连。另外,一个或多个超导连接可以包括存储器接口,例如用于访问存储器。逻辑电路和互连可以用于为处理用量子状态表示的信息,该量子状态由一个或多个量子位集本身来表示。更具体地,该组硬连线量子逻辑电路可以被设置为一组处理引擎,例如其中每个处理引擎可以由硬连线量子逻辑电路的子集形成,用于执行基因组数据read的序列分析管道的一个或多个步骤
例如,该组处理引擎包括图像处理、碱基检测、映射、比对、排序、变异检测和/或其他基因组学和/或生物信息学处理模块。例如,在各种实施例中,可以包括(例如以第一硬连线配置的)映射模块。另外,在进一步的实施例中,可以包括(例如以第二硬连线配置的)比对模块。此外,可以包括(例如以第三硬连线配置的)排序模块。并且,在另外的实施例中,可以包括(例如以第四硬连线配置的)变异检测模块。此外,在各种实施例中,可以包括(例如以进一步的硬连线配置的)图像处理和/或碱基检测模块,例如其中这些硬连线配置中的一个或多个可以包括硬连线量子逻辑电路,其可以布置一组处理引擎。
更具体地,在特定情况下,量子计算设备和/或系统可以包括映射模块,其中映射模块包括一组量子逻辑电路,其被布置为一组处理引擎,处理引擎中的一个或多个用于执行映射过程的一个或多个步骤。例如,一个或多个量子处理引擎可以用于接收基因组数据的read,例如通过多个超导连接中的一个或多个。此外,一个或多个量子处理引擎可以用于提取读取的一部分以生成种子,例其中种子可以表示由read表示的核苷酸序列的子集。另外,一个或多个量子处理引擎可以用于基于种子计算索引内的第一地址,并访问存储器中的索引中的地址,以从该地址接收记录,其中例如该记录表示遗传参考序列中的位置信息。此外,一个或多个量子处理引擎可以用于确定(例如基于记录)从read到遗传参考序列的一个或多个匹配位置;并通过存储器接口将至少一个匹配位置输出到存储器。
此外,映射模块可以包括一组量子逻辑电路,其被布置为一组处理引擎,用于计算索引内的第二地址,例如基于记录和不包含在核苷酸序列的第一个子集中的核苷酸序列的第二子集。然后,处理引擎可以访问存储器中的索引中的第二地址,以从第二地址接收第二记录,例如第二记录或后续的记录包括遗传参考序列中的位置信息。处理引擎还可以用于基于位置信息确定从read到遗传参考序列的一个或多个匹配位置。
另外,在各种情况下,量子计算设备和/或系统可以包括比对模块,其中比对模块包括一组量子逻辑电路,其被布置为一组处理引擎,其中一个或多个用于执行比对过程的一个或多个步骤。例如,一个或多个量子处理引擎用于从存储器接收read的多个映射位置并且用于访问存储器以检索对应于每个映射位置的基因参考序列的片段。形成比对模块的一个或多个处理引擎用于计算read与基因参考序列的每个检索的片段的比对,以便为每个比对产生评分。此外,一旦生成了一个或多个评分,就可以选择read的至少一个最佳评分比对。在特定情况下,量子计算设备可以包括一组量子逻辑电路,其被布置为一组处理引擎,其用于执行空位或无空位比对,例如Smith Waterman比对。
此外,在某些情况下,量子计算设备和/或系统可以包括变异检测模块,其中变异检测模块包括一组量子逻辑电路,其被布置为一组处理引擎,一个或者更多处理引擎用于执行变异检测过程的一个或多个步骤。例如,量子计算变异检测模块可以包括一组量子逻辑电路,其适于对基因组数据的多个read执行分析,例如使用(例如存储在存储器中的)一个或多个候选单倍型,其中基因组数据的每个read和每个候选单倍型代表核苷酸序列。
具体地,该组量子逻辑电路可以形成为一个或多个量子处理引擎,其用于接收基因组数据的一个或多个read并生成和/或(例如从存储器)接收一个或多个候选单倍型,例如通过多个超导连接中的一个或多个。此外,一个或多个量子处理引擎可以用于从存储器接收基因组数据的一个或多个read和一个或多个候选单倍型,以及将一个或多个read中的每一个的核苷酸与一个或多个候选单倍型进行比较,以确定每个候选单倍型表示正确变异检测的概率。另外,一个或多个量子处理引擎可以用于基于所确定的概率生成输出。
另外,在各种实例中,该组量子逻辑电路可以形成为一个或多个量子处理引擎,用于确定基于至少一个候选单倍型的多个read中的每一个read为真实核苷酸序列(例如多个read的种属来源的核苷酸序列)的观测概率。在特定情况下,关于确定概率,一个或多个量子处理引擎用于执行隐马尔可夫模型(Hidden Markov Model,HMM)。更具体地,在另外的实施例中,一个或多个量子处理引擎可以用于将多个read合并成一个或多个连续的核苷酸序列,和/或用于从一个或多个连续的核苷酸序列产生一个或多个候选单倍型。例如,在各种实施例中,多个read的合并包括一个或多个量子处理引擎构建De Bruijn图。
因此,鉴于上文,提供了一种用于在解决与基因组学和/或生物信息学处理相关的问题中执行各种计算的系统。例如,系统可以包括一个或多现场自动测序仪(例如,NGS)和/或处理服务器,现场自动测序仪及处理服务器中的一个或两个包括一个或多个CPU、GPU和/或其他集成电路,例如包括(用于执行如本公开所述的序列分析管道中的一个或多个步骤的)FPGA、ASIC和/或结构化ASIC。特别地,下一代测序仪可以用于对多个核酸序列进行测序,以产生代表测序的核酸序列的一个或多个图像、BCL和/或FASTQ文件,该核酸序列可以是DNA和/或或RNA序列。这些测序文件可以由测序仪本身或由相关的服务器单元处理,其中测序仪和/或相关联的服务器包括集成电路(例如FPGA或ASIC),用于执行如本公开所述的二级序列分析管道中的一个或多个步骤。
然而,在各种情况下,例如在自动测序仪和/或相关联的服务器不用于对从测序仪生成的数据执行二级序列分析的情况下,所生成的数据被发送到远程服务器,远程服务器用于对数据执行二级和/或三级序列分析,例如通过云介导的接口。在这样的实例中,云可访问服务器用于接收所生成的(例如图像、BCL和/或FASTQ形式的)序列数据,并且还可以用于对接收的数据执行初级处理分析(例如,图像处理)和/或二级和/或三级处理分析(例如序列分析管道)。例如,云可访问服务器可以包括一个或多个服务器,服务器包括CPU和/或GPU,CPU和/或GPU其中一个或两个可以与集成电路相关联,例如本公开所述的FPGA或ASIC。特别地,在某些情况下,云可访问服务器可以是本文所述的量子计算服务器。
具体地,云可访问服务器可以用于对所接收的数据执行初级、二级和/或三级基因组学和/或生物信息学分析,该分析可以中执行图像处理、碱基检测、映射、比对、排序和/或变异检测方案中的一个或多个步骤。在某些情况下,一些步骤可以由一个处理平台(例如CPU或GPU)执行,而其他步骤可以由另一个处理平台执行,例如相关联的紧密耦合的集成电路,例如FPGA或ASIC,其专门于执行序列分析管道中的各种步骤。在这种情况下,当数据和分析结果从一个平台转移到另一个平台时,系统及其组件可以用于在传输之前压缩数据,并且一旦传输就解压缩数据,并且因此系统组件用于生成SAM、BAM或CRAM文件中的一个或多个,例如用于传输。另外,在各种实施例中,云可访问服务器可以是量子计算平台,其在本文中用于执行如本公开所述的序列分析管道中的一个或多个步骤,并且包括根据本文公开的一种或多种方法执行一个或多个二级和/或三级处理的步骤。
此外,关于量子计算,可以结合本发明的装置、系统和方法使用的示例性量子处理器及其使用方法的细节和实施例在美国专利第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可以以迭代方式进行相关。例如,在各种使用模型中,可以将医疗条件与受试者姓名进行第一关联。然后,可以使用另一个表来将受试者的医疗状况与他们的药物相关联。同样地,可以使用再一个表来关联药物的进展以减轻症状和/或疾病本身。可以使用密钥来关联表,响应于问题提示或命令来访问该密钥。密钥可以是任何公共标识符,例如姓名,号码(例如社会保险号、税号、雇员编号、电话号码等),通过密钥可以访问、关联一个或多个表和/或回答问题。因此,若没有密钥,在一个表中的信息与另一个表中的信息之间建立相关性变得更加困难。
然而,在其他情况下,A/I模块可以用于提供对所生成和/或提供的数据进行更全面的分析。例如,A/I模块用于在系统的数据上实现一个或多个机器学习方案,机器学习方案设计成教导AI模块在(例如由系统生成的)基因组数据与一个或多个受试者的临床积累数据(例如输入系统的EMR和其他临床相关数据)之间建立相关。
具体地,A/I模块可以包括针对训练系统的编程,以更快速地(例如,立即)基于所接收的输入的类型和特征来识别如何实现输出。因此,系统用于从其接收的输入及其输出的结果进行学习,以便能够基于所接收的数据的初始输入更快速和准确地建立相关性。通常,输入数据可以是两种通用类型。在第一种情况下,数据可以是输出(例如答案)已知的类型。这种类型的数据可以输入系统并用于训练目的。第二类数据可能是答案未知并因此必须确定的数据,该数据可能是基因组数据,在此数据的基础上,进行分析或确定临床相关结果的临床数据。具体地,这些方法可用于增强A/I模块来自于第一类输入数据的学习能力,以便更好地预测第二类输入数据的结果。具体地,基于历史证据,A/I模块可以用于基于先前观察到的数据来学习预测结果。
更具体地,本文提供了临床基因组学平台,其中临床基因组学平台用于将疾病的临床结果与基因组学数据相关联。在这种情况下,可以将受试者的临床特征输入到系统中,并且可以对临床特征与确定的其基因组特征一起评估。特别地,在组合这两个数据集时,A/I模块用于确定它们之间的各种相互关系。因此,在第一步骤中,可以构建图形数据库或知识图形。例如,在这种情况下,知识图形可以由三个典型元素组成,其基本上包括客观值、预期值和目标值,共可以形成节点,并且必须确定节点之间的关系。可以选择任何特定数据点作为节点,并且节点可以基于正在执行的查询而变化。可以确定几种不同类型的关系。例如,可以基于它们的效果来确定关系(例如,它们是基于效果的);或者它们可以基于推论来确定(例如,基于未知但可确定的关系)。
因此,关于构建知识图,任何特定数据点可以形成节点。例如,在图的一侧,疾病状况可以形成节点,并且在图的另一侧,基因型(例如,序列变异)可以形成节点。在这两个节点之间可以是第三节点,例如,一系列第三节点,例如一种或多种症状、一种或多种药物、一种或多种过敏、一种或多种其他病症或表型性状(例如血压、胆固醇等)。另外,在这些节点之间是可以确定的关系。
具体地,当构建知识图形时,输入到系统中的临床数据(例如来自医疗记录设施,例如电子病历)及医疗状况的家族史等,可以进行电子加密和安全地转移。同样地,可以根据本文所述的二级处理步骤可以生成来自受试者的基因组数据及进行测序。此外,一旦建立了这两个节点,就可以确定将一个或多个第三节点输入到系统中,可以根据两个原始节点之间的关系。
例如,在一个实施例中,第一节点可以由人或人群的医疗记录表示,第二节点可以由疾病特征表示。在这样的实例中,可以将一个或多个第三节点输入到系统并在图形中生成,例如第三节点可以是药物;身体的、生理的、心理的状况和/或特征;过敏;地理区域;饮食,如食物和/或其成分;环境条件;地理条件;电力线,如通信塔(cellular towers)和/或类似的。然后可以通过分析这三个节点之间的各种点的连接来确定一系列关系。特别地,在特定情况下,一个节点可以代表患有一种疾病的患者,第二个节点可以是患者的基因组数据,并且第三个节点中可以是患者的基因组变异,例如,受试者的染色体突变、他们所用的药物及生理条件等。同样,可以对具有相同诊断和/或病症的多个受试者重复该过程。因此,以这种方式,可以确定临床和基因组学世界之间的相关性。
因此,构建临床基因组学图形的步骤是定义锚节点,这些锚节点代表两个边界元素,在这两个边界元素之间定义和探索所有各种共性。因此,进一步的步骤是定义两个锚节点之间的所有可能的已知对应关系,其可以在图中表示为第三节点。这些已知的对应关系可以围绕由一个节点或另一个节点引起的效果细节和/或一个节点或另一个节点的特征来构建。这些可以形成节点之间的已知和/或可观察的关系。根据这些已知的关系,探索和/或确定可以在推论上建立哪种关系的第二类型的关系。此外,为了更好地确定因果和/或可预测的结果,可以对各种不同的关系进行加权,例如基于确定度、共性的数量、共享节点的实例的数量、共同关系的数量等。
因此,动态知识图形的构建和实现是临床基因组学处理平台的核心。如所指出的,全局系统的各种处理平台可以耦合在一起,以便在其各种组件之间无缝地传输数据。例如,如所指示的,映射、比对和/或变异检测管道可以用于将其数据(例如,结果数据)发送到人工智能模块。特别地,A/I模块可以用于从一个或多个二级处理平台组件和/或系统的其他组件中的一个或多个接收数据输入。更具体地,A/I模块用于从映射器、比对器和/或变异检测处理引擎接收映射、比对和/或变异检测数据,并且用于获取该数据并使用它来生成在知识图形中的一个或多个节点。此外,如所指示的,A/I模块可以用于从一个或多个其他源(例如自医疗室/医疗服务提供机构、研究实验室、记录存储设施等)接收输入数据,例如其中记录包括与一个或多个受试者的身体、心理和/或情绪健康有关的数据,以及获取该数据并使用它来生成知识图形内的一个或多个节点
另外,一旦构建了知识图形架构,就可以通过将越来越多的相关数据添加到知识结构中来构建越来越多的潜在节点和/或关系,从而不断地更新和增长知识图形架构。在这样的实例中,边界节点可以是节点的任何组合,并且因此,在某些情况下,可以是用户可选择的。例如,在各种实施例中,系统可以可由第三方访问。在这样的实例中,用户可以例如经由适当配置的用户界面访问A/I模块,将相关信息上载到系统中和/或确定用于约束查询的相关节点,例如通过点击或拖放它们,并可以制定A/I模块要回答的相关问题。因此,用户可以查看和/或选择边界节点,然后允许系统使用所选节点生成适当的知识图形,从这些关系,可以查询和回答或者至少可以通过例如A/I系统来推断各种询问。
例如,在一种使用模型中,用户可以是希望知道某种药物剂量如何影响患者的给定疾病的医生。因此,医生可以上传患者的EMR、疾病状况和药物剂量,并且利用这些数据,A/I模块可以生成合适的知识图形(和/或添加到已经存在的知识图形),从知识图形中可以选择边界节点并确定关系。此外,在各种情况下,用户可以上传患者的遗传数据,该数据可以进行二级处理(例如映射、比对和/或变异检测),以及将二级处理的结果数据并上传到A/I模块。在这种情况下,疾病和/或EMR和/或家族病史数据可以与基因组数据相关联,从中可以确定、评估、推断和预测数据的各种关系。
具体地,可以将受试者的VCF文件输入系统,例如,可以上传所有确定的染色体特性,例如,一系列的节点,这些节点可以用于确定与受试者相关的各种关系,例如通过查询系统并允许它生成适当的连接,从中可以推断出答案。更具体地,可以将一个或多个受试者的表型特征(例如,人表型本体)上传到系统中,以便生成一系列的节点。例如,当两个人的基因组和/或病史进入系统时,A/I模块确定它们之间的任何关系(例如关于常见基因型、表型、条件、环境、地理位置、过敏、种族文化背景、药物史等)。
此外,可以确定受试者中或受试者之间的两个或更多个特征之间的关系。例如,受试者的收缩压和舒张压之间的关系可以由系统确定。具体地,可以将一系列历史收缩和舒张read输入到系统中,由此系统的机器学习平台可以分析read和/或确定两者之间的一个或多个关系,使得如果给定的收缩压输入进入系统时,在考虑两者之间的预测权重的情况下,可以给出预测的舒张压输出。值得注意的是,虽然前面给出的例子是针对一个受试者的血压,同样适用于任何具有相关数学关系的给定节点,例如关于多个受试者和/或各种病症。
另外,尽管在一些情况下,关系可以配置成线性阵列,例如以形成信息的神经网络,但在各种其他情况下,关系可以以多个阶段形成,例如像深度学习方案一样。例如,A/I系统适于以分层或多阶段的方式处理信息,例如为了深度学习的目的。因此,系统可以用于分阶段地评估数据。具体地,A/I模块适用于检查各种数据,例如在逐阶段执行学习方案时,基于历史证据和/或关系的特征,数据之间的每个连接由系统加权。
在系统内启动的学习阶段越多,交叉点之间的权重越大,学习越深。此外,分阶段上传数据允许系统内的数据更大的收敛。特别地,还可以采用各种特征提取范例,以便更好地组织、加权和分析要上传的数据的最显着特征。另外,为了更好地关联数据,一个或多个用户可以输入和/或调整基本加权函数,而系统本身可以使用基于主动学习方案的更高级的加权函数。
为了提供与用户的交互,本文描述的主题的一个或多个方面或特征可以在具有显示设备的计算机上实现,该显示设备例如是阴极射线管(CRT),液晶显示器(LCD)或用于向用户显示信息的发光二极管(LED)监视器以及用户可通过其向计算机提供输入的键盘和指点设备(例如鼠标或轨迹球)。其他类型的设备也可以用来提供与用户的交互。例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括但不限于声音、语音或触觉输入。其他可能的输入设备包括但不限于触摸屏或其他触敏设备,例如单点或多点电阻式或电容式触控板、语音识别硬件和软件、光学扫描仪、光学指针、数字图像捕获设备和相关联的口译软件等。
根据期望的配置,本文所描述的主题可体现在系统、装置、方法和/或产品中。在前面的描述中阐述的实施方式并不代表与本文所描述的主题一致的所有实施方式。相反,它们仅仅是与所描述的主题相关的方面的一些示例。尽管上面已经详细描述了一些变型,但是其他修改或添加也是可能的。特别地,除了本文阐述的那些特征和/或变型之外,还可以提供其他特征和/或变型。例如,以上描述的实施方式可以针对所公开的特征和/或以上公开的几个其他特征的组合和子组合的各种组合和子组合。另外,附图中描述的和/或本文描述的逻辑流程不一定需要按照所示的特定顺序或依次顺序,以实现期望的结果。其他实现可以在权利要求的范围内。
Claims (20)
1.一种通过联合评估映射到参考序列的两个以上的同源区域的读长来提高变异检测准确性的方法,其特征在于,所述方法包括:
由一台或多台计算机访问多个序列读长的联合堆积,其中所述联合堆积包括已与所述参考序列的第一区域对齐的读长的第一堆积,至少还有已与所述参考序列的第二区域对齐的读长的第二堆积,其中所述第一区域和所述第二区域彼此同源;
由所述一台或多台计算机从所述联合堆积中确定一组候选变异;
由所述一台或多台计算机定义所述候选变异的处理顺序;
由所述一台或多台计算机根据定义的处理顺序对所述一组候选变异中的每个候选变异进行评估;以及
由所述一台或多台计算机根据对所述候选变异的评估结果生成识别一个或多个候选变异的变异检测文件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:从一个或多个记忆设备中获取参考序列的多个同源区域。
3.根据权利要求1所述的方法,其特征在于,通过所述联合堆积确定一组候选变异包括:使用De Brujin图从所述联合堆积中提取候选变异。
4.根据权利要求3所述的方法,其特征在于,
图中的节点表示候选列表,并且
使用De Brujin图包括:通过使用所述参考序列的每个区域作为主干生成所述DeBrujin图,并且将每个候选变异位置与通用坐标进行比对。
5.根据权利要求1所述的方法,其特征在于,由所述一台或多台计算机定义所述候选变异的处理顺序包括:由所述一台或多台计算机定义所述候选变异的处理顺序与读长的长度或插入大小的关系函数。
6.根据权利要求5所述的方法,其特征在于,定义所述候选变异的处理顺序与读长的长度或插入大小的关系函数包括:生成互连矩阵,其定义所述候选变异的处理顺序与读长的长度或插入大小的关系函数。
7.根据权利要求1所述的方法,其特征在于,由所述一台或多台计算机根据定义的处理顺序对所述一组候选变异中的每个候选变异进行评估包括:
对所述一组候选变异中的每个候选变异:
生成候选联合双倍型,
计算每个候选联合双倍型的后验概率,
计算基因型矩阵,
修剪所述候选联合双倍型,以及
包括将下一个活跃位置作为当前位置的证据。
8.一种通过联合评估映射到参考序列的两个以上的同源区域的读长来提高变异检测准确性的系统,其特征在于,所述系统包括:
一台或多台计算机和一台或多台存储设备,其上存储有指令,当所述指令被一台或多台计算机执行时,可使所述一台或多台计算机执行以下操作:
由一台或多台计算机访问多个序列读长的联合堆积,其中所述联合堆积包括已与所述参考序列的第一区域对齐的读长的第一堆积,至少还有已与所述参考序列的第二区域对齐的读长的第二堆积,其中所述第一区域和所述第二区域彼此同源;
由所述一台或多台计算机从所述联合堆积中确定一组候选变异;
由所述一台或多台计算机定义所述候选变异的处理顺序;
由所述一台或多台计算机根据定义的处理顺序对所述一组候选变异中的每个候选变异进行评估;以及
由所述一台或多台计算机根据对所述候选变异的评估结果生成识别一个或多个候选变异的变异检测文件。
9.根据权利要求8所述的系统,其特征在于,所述操作还包括:从一个或多个记忆设备中获取参考序列的多个同源区域。
10.根据权利要求8所述的系统,其特征在于,通过所述联合堆积确定一组候选变异包括:使用De Brujin图从所述联合堆积中提取候选变异。
11.根据权利要求10所述的系统,其特征在于,
图中的节点表示候选列表,并且
使用De Brujin图包括:通过使用所述参考序列的每个区域作为主干生成所述DeBrujin图,并且将每个候选变异位置与通用坐标进行比对。
12.根据权利要求8所述的系统,其特征在于,由所述一台或多台计算机定义所述候选变异的处理顺序包括:由所述一台或多台计算机定义所述候选变异的处理顺序与读长的长度或插入大小的关系函数。
13.根据权利要求10所述的系统,其特征在于,定义所述候选变异的处理顺序与读长的长度或插入大小的关系函数包括:生成互连矩阵,其定义所述候选变异的处理顺序与读长的长度或插入大小的关系函数。
14.根据权利要求8所述的系统,其特征在于,由所述一台或多台计算机根据定义的处理顺序对所述一组候选变异中的每个候选变异进行评估包括:
对所述一组候选变异中的每个候选变异:
生成候选联合双倍型,
计算每个候选联合双倍型的后验概率,
计算基因型矩阵,
修剪所述候选联合双倍型,以及
包括将下一个活跃位置作为当前位置的证据。
15.一种计算机可读存储设备,其上存储有指令,当所述指令被数据处理设备执行时,可使所述数据处理设备执行操作以通过联合评估映射到参考序列的两个以上的同源区域的读长来提高变异检测准确性,所述操作包括:
由一台或多台计算机访问多个序列读长的联合堆积,其中所述联合堆积包括已与所述参考序列的第一区域对齐的读长的第一堆积,至少还有已与所述参考序列的第二区域对齐的读长的第二堆积,其中所述第一区域和所述第二区域彼此同源;
由所述一台或多台计算机从所述联合堆积中确定一组候选变异;
由所述一台或多台计算机定义所述候选变异的处理顺序;
由所述一台或多台计算机根据定义的处理顺序对所述一组候选变异中的每个候选变异进行评估;以及
由所述一台或多台计算机根据对所述候选变异的评估结果生成识别一个或多个候选变异的变异检测文件。
16.根据权利要求15所述的计算机可读存储设备,其特征在于,所述操作还包括:从一个或多个记忆设备中获取参考序列的多个同源区域。
17.根据权利要求15所述的计算机可读存储设备,其特征在于,通过所述联合堆积确定一组候选变异包括:使用De Brujin图从所述联合堆积中提取候选变异。
18.根据权利要求17所述的计算机可读存储设备,其特征在于,
图中的节点表示候选列表,并且
使用De Brujin图包括:通过使用所述参考序列的每个区域作为主干生成所述DeBrujin图,并且将每个候选变异位置与通用坐标进行比对。
19.根据权利要求15所述的计算机可读存储设备,其特征在于,由所述一台或多台计算机定义所述候选变异的处理顺序包括:生成互连矩阵,其定义所述候选变异的处理顺序与读长的长度或插入大小的关系函数。
20.根据权利要求15所述的计算机可读存储设备,其特征在于,由所述一台或多台计算机根据定义的处理顺序对所述一组候选变异中的每个候选变异进行评估包括:
对所述一组候选变异中的每个候选变异:
生成候选联合双倍型,
计算每个候选联合双倍型的后验概率,
计算基因型矩阵,
修剪所述候选联合双倍型,以及
包括将下一个活跃位置作为当前位置的证据。
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 | ||
CN201780035840.3A CN109416928B (zh) | 2016-06-07 | 2017-06-07 | 用于进行二级和/或三级处理的生物信息学系统、设备和方法 |
PCT/US2017/036424 WO2017214320A1 (en) | 2016-06-07 | 2017-06-07 | Bioinformatics systems, apparatus, and methods for performing secondary and/or tertiary processing |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780035840.3A Division CN109416928B (zh) | 2016-06-07 | 2017-06-07 | 用于进行二级和/或三级处理的生物信息学系统、设备和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118016151A true CN118016151A (zh) | 2024-05-10 |
Family
ID=64565307
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780035840.3A Active CN109416928B (zh) | 2016-06-07 | 2017-06-07 | 用于进行二级和/或三级处理的生物信息学系统、设备和方法 |
CN202410041852.9A Pending CN118016151A (zh) | 2016-06-07 | 2017-06-07 | 用于进行二级和/或三级处理的生物信息学系统、设备和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780035840.3A Active CN109416928B (zh) | 2016-06-07 | 2017-06-07 | 用于进行二级和/或三级处理的生物信息学系统、设备和方法 |
Country Status (11)
Country | Link |
---|---|
EP (3) | EP4362030A3 (zh) |
JP (3) | JP7046840B2 (zh) |
KR (3) | KR20240025702A (zh) |
CN (2) | CN109416928B (zh) |
AU (3) | AU2017277636B2 (zh) |
BR (1) | BR112018075407A2 (zh) |
CA (1) | CA3026644A1 (zh) |
DK (1) | DK3982368T3 (zh) |
MX (2) | MX2018014579A (zh) |
RU (1) | RU2750706C2 (zh) |
SG (2) | SG11201810734YA (zh) |
Families Citing this family (67)
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 |
US11347965B2 (en) | 2019-03-21 | 2022-05-31 | Illumina, Inc. | Training data generation for artificial intelligence-based sequencing |
US11210554B2 (en) | 2019-03-21 | 2021-12-28 | Illumina, Inc. | Artificial intelligence-based generation of sequencing metadata |
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 | 西安闻泰电子科技有限公司 | 神经网络模型加速方法及装置、服务器及存储介质 |
CN110797087B (zh) * | 2019-10-17 | 2020-11-03 | 南京医基云医疗数据研究院有限公司 | 测序序列处理方法及装置、存储介质、电子设备 |
CN110797081B (zh) * | 2019-10-17 | 2020-11-10 | 南京医基云医疗数据研究院有限公司 | 激活区域识别方法及装置、存储介质及电子设备 |
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 | 山东大学 | 超长基因序列的相似性快速比对方法及系统 |
US20210313009A1 (en) * | 2020-04-07 | 2021-10-07 | Illumina, Inc. | Hardware accelerated k-mer graph generation |
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 | 山东建筑大学 | 一种基于广度遍历+僵枝切除的工作流实现方法 |
CN115699189A (zh) * | 2020-06-03 | 2023-02-03 | 深圳华大生命科学研究院 | 生成dna存储编解码规则的方法和装置及dna存储编解码方法和装置 |
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 | 山东大学 | 面向多核处理器的基因变异检测方法及系统 |
AU2020457044A1 (en) * | 2020-10-22 | 2022-05-12 | Bgi Genomics Co., Ltd | Shared memory based gene analysis method, 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 | 山东师范大学 | 一种散点图的多标签教学演示系统及方法 |
CN112885408B (zh) * | 2021-02-22 | 2024-10-01 | 中国农业大学 | 一种基于低深度测序检测snp标记位点的方法及装置 |
CN113011734B (zh) * | 2021-03-17 | 2023-07-07 | 上海数喆数据科技有限公司 | 一种基于capi和cati的调查数据质量控制方法 |
KR102545670B1 (ko) * | 2021-03-17 | 2023-06-20 | 전남대학교산학협력단 | 조건부 순환 생성적 적대 신경망을 활용한 질병의 진행 과정 이미지 생성 방법 및 그 장치 |
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 | 中国工程物理研究院计算机应用研究所 | 一种适用于多尺度高通量材料计算的工作流建模方法 |
CN114239012B (zh) * | 2021-12-15 | 2024-07-12 | 成都飞机工业(集团)有限责任公司 | 一种适用于caa二次开发软件的rsa离线加密技术 |
KR20240116654A (ko) * | 2021-12-15 | 2024-07-30 | 일루미나, 인코포레이티드 | 반복적이고 확장 가능한 모집단 규모 변이체 분석을 위한 시스템 및 방법 |
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 | 四川大学华西医院 | 基因数据文件快速识别方法、系统和计算机可读存储介质 |
CN116051878B (zh) * | 2022-12-14 | 2024-07-09 | 北京邮电大学 | 基于量子线路实现的图像数据聚类方法及相关设备 |
CN115907019B (zh) * | 2023-01-09 | 2023-11-07 | 苏州浪潮智能科技有限公司 | 一种用于气象预测的量子计算机 |
CN116152189B (zh) * | 2023-01-31 | 2023-12-19 | 华纺股份有限公司 | 一种图案织物瑕疵检测方法、系统及检测终端机 |
CN115860768B (zh) * | 2023-02-16 | 2023-06-02 | 浙江天演维真网络科技股份有限公司 | 一种基于区块链的溯源方法、装置及其电子设备 |
KR102691757B1 (ko) * | 2023-04-13 | 2024-08-05 | 고려대학교 산학협력단 | Ssd 인-스토리지 프로세싱을 이용한 유전자 분석 가속 장치 및 방법 |
CN116186594B (zh) * | 2023-04-26 | 2023-07-04 | 成都市环境应急指挥保障中心 | 基于决策网络结合大数据实现环境变化趋势智能检测方法 |
CN116361239B (zh) * | 2023-05-24 | 2023-07-28 | 成都交大光芒科技股份有限公司 | 基于对象特征的对象识别同步方法、装置及电子设备 |
KR102657482B1 (ko) * | 2023-07-05 | 2024-04-15 | 메티스엑스 주식회사 | 전자 장치 및 이를 이용한 연산을 수행하기 위한 방법 |
CN117687772B (zh) * | 2023-07-31 | 2024-09-20 | 荣耀终端有限公司 | 一种算法调度方法及电子设备 |
CN117036727B (zh) * | 2023-10-09 | 2024-01-05 | 之江实验室 | 脑网络数据多层嵌入向量特征提取方法及装置 |
CN117237352B (zh) * | 2023-11-14 | 2024-02-09 | 之江实验室 | 基因芯片的图像处理方法、数据处理装置及存储介质 |
CN118486364A (zh) * | 2024-04-03 | 2024-08-13 | 阿里巴巴(中国)有限公司 | 数据处理方法、数据处理系统、计算设备及存储介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE335851T1 (de) | 2001-04-19 | 2006-09-15 | Hubit Genomix Inc | Verfahren zur abschätzung des diplotyps aus dem genotyp eines individuums |
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 | 北京诺禾致源生物信息科技有限公司 | 一种高杂合二倍体基因组支架序列组装策略 |
EP2994749A4 (en) | 2013-01-17 | 2017-07-19 | Edico Genome Corp. | Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform |
US9679104B2 (en) | 2013-01-17 | 2017-06-13 | Edico Genome, Corp. | Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform |
EP2951744A1 (en) | 2013-01-29 | 2015-12-09 | Molecular Health GmbH | Systems and methods for clinical decision support |
CN108624668B (zh) | 2013-02-01 | 2022-12-02 | 加利福尼亚大学董事会 | 用于基因组组装及单体型定相的方法 |
US9734284B2 (en) * | 2013-03-15 | 2017-08-15 | Micron Technology, Inc. | Hardware acceleration of short read mapping for genomic and other types of analyses |
WO2014186604A1 (en) * | 2013-05-15 | 2014-11-20 | Edico Genome Corp. | Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform |
EP3207369A4 (en) * | 2014-10-16 | 2018-06-13 | Counsyl, Inc. | Variant caller |
-
2017
- 2017-06-07 KR KR1020247005077A patent/KR20240025702A/ko active Application Filing
- 2017-06-07 EP EP24162764.5A patent/EP4362030A3/en active Pending
- 2017-06-07 CA CA3026644A patent/CA3026644A1/en active Pending
- 2017-06-07 RU RU2018140888A patent/RU2750706C2/ru active
- 2017-06-07 SG SG11201810734YA patent/SG11201810734YA/en unknown
- 2017-06-07 AU AU2017277636A patent/AU2017277636B2/en active Active
- 2017-06-07 JP JP2018564374A patent/JP7046840B2/ja active Active
- 2017-06-07 EP EP21190670.6A patent/EP3982368B1/en active Active
- 2017-06-07 MX MX2018014579A patent/MX2018014579A/es unknown
- 2017-06-07 EP EP17731690.8A patent/EP3465507B1/en active Active
- 2017-06-07 MX MX2024002491A patent/MX2024002491A/es unknown
- 2017-06-07 CN CN201780035840.3A patent/CN109416928B/zh active Active
- 2017-06-07 BR BR112018075407-2A patent/BR112018075407A2/pt active Search and Examination
- 2017-06-07 CN CN202410041852.9A patent/CN118016151A/zh active Pending
- 2017-06-07 KR KR1020187037783A patent/KR102457669B1/ko active IP Right Grant
- 2017-06-07 KR KR1020227035991A patent/KR102638677B1/ko active IP Right Grant
- 2017-06-07 DK DK21190670.6T patent/DK3982368T3/da active
- 2017-06-07 SG SG10201913534QA patent/SG10201913534QA/en unknown
-
2022
- 2022-03-23 JP JP2022046805A patent/JP7451587B2/ja active Active
- 2022-10-11 AU AU2022252718A patent/AU2022252718B2/en active Active
-
2024
- 2024-03-05 JP JP2024032959A patent/JP2024081649A/ja active Pending
- 2024-07-25 AU AU2024205108A patent/AU2024205108A1/en active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2022252718B2 (en) | Bioinformatics systems, apparatus, and methods for performing secondary and/or tertiary processing | |
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 | |
WO2017214320A1 (en) | Bioinformatics systems, apparatus, and methods for performing secondary and/or tertiary processing | |
RU2799750C9 (ru) | Биоинформационные системы, устройства и способы для выполнения вторичной и/или третичной обработки | |
RU2799750C2 (ru) | Биоинформационные системы, устройства и способы для выполнения вторичной и/или третичной обработки | |
CN118824356A (zh) | 用于执行二级和/或三级处理的生物信息学系统、设备和方法 | |
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 |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |