RU2804029C9 - Genomic infrastructure for local and cloud processing and analysis of dna and rna - Google Patents
Genomic infrastructure for local and cloud processing and analysis of dna and rna Download PDFInfo
- Publication number
- RU2804029C9 RU2804029C9 RU2021134292A RU2021134292A RU2804029C9 RU 2804029 C9 RU2804029 C9 RU 2804029C9 RU 2021134292 A RU2021134292 A RU 2021134292A RU 2021134292 A RU2021134292 A RU 2021134292A RU 2804029 C9 RU2804029 C9 RU 2804029C9
- Authority
- RU
- Russia
- Prior art keywords
- data
- user
- genomic
- processing pipeline
- genome
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 500
- 238000004458 analytical method Methods 0.000 title claims description 112
- 238000000034 method Methods 0.000 claims abstract description 311
- 230000008569 process Effects 0.000 claims abstract description 117
- 238000003860 storage Methods 0.000 claims description 135
- 150000007523 nucleic acids Chemical class 0.000 claims description 34
- 102000039446 nucleic acids Human genes 0.000 claims description 28
- 108020004707 nucleic acids Proteins 0.000 claims description 28
- 238000011160 research Methods 0.000 claims description 25
- 206010028980 Neoplasm Diseases 0.000 claims description 22
- 201000011510 cancer Diseases 0.000 claims description 22
- 238000007405 data analysis Methods 0.000 claims description 22
- 238000003205 genotyping method Methods 0.000 claims description 15
- 238000003556 assay Methods 0.000 claims description 12
- 238000009598 prenatal testing Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 abstract description 355
- 239000000126 substance Substances 0.000 abstract description 13
- 230000000694 effects Effects 0.000 abstract description 8
- 238000013507 mapping Methods 0.000 description 244
- 210000004027 cell Anatomy 0.000 description 236
- 239000002773 nucleotide Substances 0.000 description 217
- 125000003729 nucleotide group Chemical group 0.000 description 217
- 102000053602 DNA Human genes 0.000 description 213
- 108020004414 DNA Proteins 0.000 description 213
- 229920002477 rna polymer Polymers 0.000 description 192
- 239000010410 layer Substances 0.000 description 182
- 230000002068 genetic effect Effects 0.000 description 156
- 230000015654 memory Effects 0.000 description 150
- 238000004422 calculation algorithm Methods 0.000 description 133
- 238000012163 sequencing technique Methods 0.000 description 132
- 108091028043 Nucleic acid sequence Proteins 0.000 description 118
- 230000000875 corresponding effect Effects 0.000 description 94
- 239000011159 matrix material Substances 0.000 description 88
- 108090000623 proteins and genes Proteins 0.000 description 81
- 230000000295 complement effect Effects 0.000 description 79
- 238000006243 chemical reaction Methods 0.000 description 77
- 238000013461 design Methods 0.000 description 70
- 238000011156 evaluation Methods 0.000 description 70
- 239000000523 sample Substances 0.000 description 68
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 58
- 201000010099 disease Diseases 0.000 description 55
- 229910052751 metal Inorganic materials 0.000 description 50
- 239000002184 metal Substances 0.000 description 50
- 230000002441 reversible effect Effects 0.000 description 45
- 238000004519 manufacturing process Methods 0.000 description 44
- 239000013598 vector Substances 0.000 description 43
- 238000003559 RNA-seq method Methods 0.000 description 41
- 238000012300 Sequence Analysis Methods 0.000 description 41
- 102000004169 proteins and genes Human genes 0.000 description 40
- 238000012217 deletion Methods 0.000 description 39
- 230000037430 deletion Effects 0.000 description 39
- 238000001514 detection method Methods 0.000 description 38
- 238000003780 insertion Methods 0.000 description 38
- 230000037431 insertion Effects 0.000 description 38
- 239000000463 material Substances 0.000 description 38
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 36
- 238000005516 engineering process Methods 0.000 description 36
- 210000000349 chromosome Anatomy 0.000 description 34
- 230000008901 benefit Effects 0.000 description 32
- 230000008859 change Effects 0.000 description 32
- 235000019506 cigar Nutrition 0.000 description 30
- 230000005669 field effect Effects 0.000 description 29
- 229910021389 graphene Inorganic materials 0.000 description 28
- 238000011161 development Methods 0.000 description 27
- 230000018109 developmental process Effects 0.000 description 27
- 239000004065 semiconductor Substances 0.000 description 25
- 238000009396 hybridization Methods 0.000 description 24
- 108700024394 Exon Proteins 0.000 description 23
- 238000004132 cross linking Methods 0.000 description 23
- 238000003745 diagnosis Methods 0.000 description 23
- 230000001225 therapeutic effect Effects 0.000 description 23
- 108091092195 Intron Proteins 0.000 description 22
- 238000007906 compression Methods 0.000 description 22
- 230000006835 compression Effects 0.000 description 22
- 230000036961 partial effect Effects 0.000 description 22
- 230000015572 biosynthetic process Effects 0.000 description 21
- 239000000758 substrate Substances 0.000 description 21
- 238000011282 treatment Methods 0.000 description 21
- 238000012360 testing method Methods 0.000 description 20
- 230000001976 improved effect Effects 0.000 description 19
- 235000012431 wafers Nutrition 0.000 description 19
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 17
- 230000002265 prevention Effects 0.000 description 17
- 230000035945 sensitivity Effects 0.000 description 16
- 239000000243 solution Substances 0.000 description 16
- 239000012634 fragment Substances 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 13
- 230000006837 decompression Effects 0.000 description 13
- 239000003814 drug Substances 0.000 description 13
- 230000002829 reductive effect Effects 0.000 description 13
- 238000013459 approach Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000003786 synthesis reaction Methods 0.000 description 12
- 238000012546 transfer Methods 0.000 description 12
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 11
- 238000001914 filtration Methods 0.000 description 11
- 238000012252 genetic analysis Methods 0.000 description 11
- 238000011331 genomic analysis Methods 0.000 description 11
- 230000033001 locomotion Effects 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 11
- 108020004999 messenger RNA Proteins 0.000 description 11
- 230000000069 prophylactic effect Effects 0.000 description 11
- 229910052710 silicon Inorganic materials 0.000 description 11
- 239000010703 silicon Substances 0.000 description 11
- 108020004682 Single-Stranded DNA Proteins 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 10
- 229940079593 drug Drugs 0.000 description 10
- 239000012212 insulator Substances 0.000 description 10
- 239000003550 marker Substances 0.000 description 10
- 238000002161 passivation Methods 0.000 description 10
- 101100420769 Drosophila melanogaster scaf gene Proteins 0.000 description 9
- 150000002500 ions Chemical class 0.000 description 9
- 239000002070 nanowire Substances 0.000 description 9
- 230000003449 preventive effect Effects 0.000 description 9
- 238000002864 sequence alignment Methods 0.000 description 9
- 238000006467 substitution reaction Methods 0.000 description 9
- 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 8
- 230000009471 action Effects 0.000 description 8
- 239000002800 charge carrier Substances 0.000 description 8
- 230000000670 limiting effect Effects 0.000 description 8
- 238000007781 pre-processing Methods 0.000 description 8
- 238000001303 quality assessment method Methods 0.000 description 8
- 230000009466 transformation Effects 0.000 description 8
- 108020004635 Complementary DNA Proteins 0.000 description 7
- 238000003491 array Methods 0.000 description 7
- 238000010804 cDNA synthesis Methods 0.000 description 7
- 239000002299 complementary DNA Substances 0.000 description 7
- 238000012937 correction Methods 0.000 description 7
- 239000004744 fabric Substances 0.000 description 7
- 230000036541 health Effects 0.000 description 7
- -1 hydrogen ions Chemical class 0.000 description 7
- 238000002372 labelling Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 230000009467 reduction Effects 0.000 description 7
- 239000000377 silicon dioxide Substances 0.000 description 7
- 238000002560 therapeutic procedure Methods 0.000 description 7
- 238000013518 transcription Methods 0.000 description 7
- 230000035897 transcription Effects 0.000 description 7
- 239000011324 bead Substances 0.000 description 6
- 239000002041 carbon nanotube Substances 0.000 description 6
- 229910021393 carbon nanotube Inorganic materials 0.000 description 6
- 239000003153 chemical reaction reagent Substances 0.000 description 6
- 229910052802 copper Inorganic materials 0.000 description 6
- 239000010949 copper Substances 0.000 description 6
- 238000005259 measurement Methods 0.000 description 6
- 229910044991 metal oxide Inorganic materials 0.000 description 6
- 150000004706 metal oxides Chemical class 0.000 description 6
- 239000000203 mixture Substances 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000008520 organization Effects 0.000 description 6
- 238000003752 polymerase chain reaction Methods 0.000 description 6
- 239000000047 product Substances 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000009966 trimming Methods 0.000 description 6
- 238000011144 upstream manufacturing Methods 0.000 description 6
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 5
- 108020004566 Transfer RNA Proteins 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 5
- 229910052799 carbon Inorganic materials 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 5
- 230000002759 chromosomal effect Effects 0.000 description 5
- 239000000470 constituent Substances 0.000 description 5
- 239000012297 crystallization seed Substances 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 244000005700 microbiome Species 0.000 description 5
- CWQXQMHSOZUFJS-UHFFFAOYSA-N molybdenum disulfide Chemical compound S=[Mo]=S CWQXQMHSOZUFJS-UHFFFAOYSA-N 0.000 description 5
- 238000002360 preparation method Methods 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 210000001519 tissue Anatomy 0.000 description 5
- 229910052723 transition metal Inorganic materials 0.000 description 5
- 150000003624 transition metals Chemical class 0.000 description 5
- 108020004705 Codon Proteins 0.000 description 4
- 238000001712 DNA sequencing Methods 0.000 description 4
- OAICVXFJPJFONN-UHFFFAOYSA-N Phosphorus Chemical compound [P] OAICVXFJPJFONN-UHFFFAOYSA-N 0.000 description 4
- 239000013614 RNA sample Substances 0.000 description 4
- ISAKRJDGNUQOIC-UHFFFAOYSA-N Uracil Chemical compound O=C1C=CNC(=O)N1 ISAKRJDGNUQOIC-UHFFFAOYSA-N 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 238000003766 bioinformatics method Methods 0.000 description 4
- 239000000872 buffer Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 239000013078 crystal Substances 0.000 description 4
- 238000011049 filling Methods 0.000 description 4
- 239000012530 fluid Substances 0.000 description 4
- 239000011810 insulating material Substances 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 239000012528 membrane Substances 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 229910052982 molybdenum disulfide Inorganic materials 0.000 description 4
- 210000000056 organ Anatomy 0.000 description 4
- 230000001575 pathological effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 4
- 230000008093 supporting effect Effects 0.000 description 4
- 230000008685 targeting Effects 0.000 description 4
- RWQNBRDOKXIBIV-UHFFFAOYSA-N thymine Chemical compound CC1=CNC(=O)NC1=O RWQNBRDOKXIBIV-UHFFFAOYSA-N 0.000 description 4
- 102000004163 DNA-directed RNA polymerases Human genes 0.000 description 3
- 108090000626 DNA-directed RNA polymerases Proteins 0.000 description 3
- KDLHZDBZIXYQEI-UHFFFAOYSA-N Palladium Chemical compound [Pd] KDLHZDBZIXYQEI-UHFFFAOYSA-N 0.000 description 3
- 150000001413 amino acids Chemical class 0.000 description 3
- 210000003855 cell nucleus Anatomy 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000009792 diffusion process Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000010230 functional analysis Methods 0.000 description 3
- 230000007614 genetic variation Effects 0.000 description 3
- 229910052732 germanium Inorganic materials 0.000 description 3
- GNPVGFCGXDBREM-UHFFFAOYSA-N germanium atom Chemical compound [Ge] GNPVGFCGXDBREM-UHFFFAOYSA-N 0.000 description 3
- 239000011521 glass Substances 0.000 description 3
- 229910010272 inorganic material Inorganic materials 0.000 description 3
- 239000011147 inorganic material Substances 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 239000007788 liquid Substances 0.000 description 3
- 238000011068 loading method Methods 0.000 description 3
- 238000007481 next generation sequencing Methods 0.000 description 3
- 229910052814 silicon oxide Inorganic materials 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 241000894007 species Species 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 241000207875 Antirrhinum Species 0.000 description 2
- IJGRMHOSHXDMSA-UHFFFAOYSA-N Atomic nitrogen Chemical group N#N IJGRMHOSHXDMSA-UHFFFAOYSA-N 0.000 description 2
- 241000282412 Homo Species 0.000 description 2
- 208000026350 Inborn Genetic disease Diseases 0.000 description 2
- 108091034117 Oligonucleotide Proteins 0.000 description 2
- 108700026244 Open Reading Frames Proteins 0.000 description 2
- 239000004642 Polyimide Substances 0.000 description 2
- 230000006819 RNA synthesis Effects 0.000 description 2
- 108091081062 Repeated sequence (DNA) Proteins 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 230000031018 biological processes and functions Effects 0.000 description 2
- 239000000090 biomarker Substances 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005553 drilling Methods 0.000 description 2
- 238000001647 drug administration Methods 0.000 description 2
- 238000010195 expression analysis Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 208000016361 genetic disease Diseases 0.000 description 2
- 102000054766 genetic haplotypes Human genes 0.000 description 2
- 229910052739 hydrogen Inorganic materials 0.000 description 2
- 239000001257 hydrogen Substances 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000001465 metallisation Methods 0.000 description 2
- 238000010208 microarray analysis Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000035772 mutation Effects 0.000 description 2
- 239000002071 nanotube Substances 0.000 description 2
- 239000002547 new drug Substances 0.000 description 2
- 210000004940 nucleus Anatomy 0.000 description 2
- 239000011368 organic material Substances 0.000 description 2
- TWNQGVIAIRXVLR-UHFFFAOYSA-N oxo(oxoalumanyloxy)alumane Chemical compound O=[Al]O[Al]=O TWNQGVIAIRXVLR-UHFFFAOYSA-N 0.000 description 2
- 229910052763 palladium Inorganic materials 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000000206 photolithography Methods 0.000 description 2
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 2
- 229920001721 polyimide Polymers 0.000 description 2
- 229920005591 polysilicon Polymers 0.000 description 2
- 229920001296 polysiloxane Polymers 0.000 description 2
- 238000000746 purification Methods 0.000 description 2
- 230000002285 radioactive effect Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 229910052703 rhodium Inorganic materials 0.000 description 2
- 239000010948 rhodium Substances 0.000 description 2
- 239000012488 sample solution Substances 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 229910021428 silicene Inorganic materials 0.000 description 2
- 239000002344 surface layer Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009885 systemic effect Effects 0.000 description 2
- 229940113082 thymine Drugs 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 229940035893 uracil Drugs 0.000 description 2
- 229910052720 vanadium Inorganic materials 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000012070 whole genome sequencing analysis Methods 0.000 description 2
- 108091032973 (ribonucleotides)n+m Proteins 0.000 description 1
- 102000040650 (ribonucleotides)n+m Human genes 0.000 description 1
- CMKDJMDGRSJZIS-UHFFFAOYSA-N 2,3-dihydro-1h-indene-1-carbaldehyde Chemical compound C1=CC=C2C(C=O)CCC2=C1 CMKDJMDGRSJZIS-UHFFFAOYSA-N 0.000 description 1
- ZCYVEMRRCGMTRW-UHFFFAOYSA-N 7553-56-2 Chemical compound [I] ZCYVEMRRCGMTRW-UHFFFAOYSA-N 0.000 description 1
- 101100439969 Arabidopsis thaliana CLPD gene Proteins 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- ZOXJGFHDIHLPTG-UHFFFAOYSA-N Boron Chemical compound [B] ZOXJGFHDIHLPTG-UHFFFAOYSA-N 0.000 description 1
- 101100240528 Caenorhabditis elegans nhr-23 gene Proteins 0.000 description 1
- 108091026890 Coding region Proteins 0.000 description 1
- 241000272060 Elapidae Species 0.000 description 1
- 102000004190 Enzymes Human genes 0.000 description 1
- 108090000790 Enzymes Proteins 0.000 description 1
- 241000206602 Eukaryota Species 0.000 description 1
- 102100034343 Integrase Human genes 0.000 description 1
- ZOKXTWBITQBERF-UHFFFAOYSA-N Molybdenum Chemical compound [Mo] ZOKXTWBITQBERF-UHFFFAOYSA-N 0.000 description 1
- 210000004460 N cell Anatomy 0.000 description 1
- AYCPARAPKDAOEN-LJQANCHMSA-N N-[(1S)-2-(dimethylamino)-1-phenylethyl]-6,6-dimethyl-3-[(2-methyl-4-thieno[3,2-d]pyrimidinyl)amino]-1,4-dihydropyrrolo[3,4-c]pyrazole-5-carboxamide Chemical compound C1([C@H](NC(=O)N2C(C=3NN=C(NC=4C=5SC=CC=5N=C(C)N=4)C=3C2)(C)C)CN(C)C)=CC=CC=C1 AYCPARAPKDAOEN-LJQANCHMSA-N 0.000 description 1
- 229920000557 Nafion® Polymers 0.000 description 1
- 108091092724 Noncoding DNA Proteins 0.000 description 1
- 239000004696 Poly ether ether ketone Substances 0.000 description 1
- 239000004693 Polybenzimidazole Substances 0.000 description 1
- 241000201976 Polycarpon Species 0.000 description 1
- 108010092799 RNA-directed DNA polymerase Proteins 0.000 description 1
- 241001632422 Radiola linoides Species 0.000 description 1
- 229910052581 Si3N4 Inorganic materials 0.000 description 1
- 206010042618 Surgical procedure repeated Diseases 0.000 description 1
- ATJFFYVFTNAWJD-UHFFFAOYSA-N Tin Chemical compound [Sn] ATJFFYVFTNAWJD-UHFFFAOYSA-N 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000005275 alloying Methods 0.000 description 1
- HSFWRNGVRCDJHI-UHFFFAOYSA-N alpha-acetylene Natural products C#C HSFWRNGVRCDJHI-UHFFFAOYSA-N 0.000 description 1
- 229910052782 aluminium Inorganic materials 0.000 description 1
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 1
- PNEYBMLMFCGWSK-UHFFFAOYSA-N aluminium oxide Inorganic materials [O-2].[O-2].[O-2].[Al+3].[Al+3] PNEYBMLMFCGWSK-UHFFFAOYSA-N 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 239000012491 analyte Substances 0.000 description 1
- 238000007743 anodising Methods 0.000 description 1
- 239000007864 aqueous solution Substances 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000037429 base substitution Effects 0.000 description 1
- 238000002869 basic local alignment search tool Methods 0.000 description 1
- JUPQTSLXMOCDHR-UHFFFAOYSA-N benzene-1,4-diol;bis(4-fluorophenyl)methanone Chemical compound OC1=CC=C(O)C=C1.C1=CC(F)=CC=C1C(=O)C1=CC=C(F)C=C1 JUPQTSLXMOCDHR-UHFFFAOYSA-N 0.000 description 1
- UMIVXZPTRXBADB-UHFFFAOYSA-N benzocyclobutene Chemical compound C1=CC=C2CCC2=C1 UMIVXZPTRXBADB-UHFFFAOYSA-N 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000005842 biochemical reaction Methods 0.000 description 1
- 230000008512 biological response Effects 0.000 description 1
- 239000012472 biological sample Substances 0.000 description 1
- ROUIDRHELGULJS-UHFFFAOYSA-N bis(selanylidene)tungsten Chemical compound [Se]=[W]=[Se] ROUIDRHELGULJS-UHFFFAOYSA-N 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 229910021475 bohrium Inorganic materials 0.000 description 1
- 229910052796 boron Inorganic materials 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 229910052793 cadmium Inorganic materials 0.000 description 1
- 208000011892 carcinosarcoma of the corpus uteri Diseases 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 229910052798 chalcogen Inorganic materials 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 238000012062 charged aerosol detection Methods 0.000 description 1
- 238000001311 chemical methods and process Methods 0.000 description 1
- 239000011093 chipboard Substances 0.000 description 1
- 229910052804 chromium Inorganic materials 0.000 description 1
- 238000001360 collision-induced dissociation Methods 0.000 description 1
- 238000010835 comparative analysis Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000000356 contaminant Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- SUYVUBYJARFZHO-RRKCRQDMSA-N dATP Chemical compound C1=NC=2C(N)=NC=NC=2N1[C@H]1C[C@H](O)[C@@H](COP(O)(=O)OP(O)(=O)OP(O)(O)=O)O1 SUYVUBYJARFZHO-RRKCRQDMSA-N 0.000 description 1
- SUYVUBYJARFZHO-UHFFFAOYSA-N dATP Natural products C1=NC=2C(N)=NC=NC=2N1C1CC(O)C(COP(O)(=O)OP(O)(=O)OP(O)(O)=O)O1 SUYVUBYJARFZHO-UHFFFAOYSA-N 0.000 description 1
- RGWHQCVHVJXOKC-SHYZEUOFSA-J dCTP(4-) Chemical compound O=C1N=C(N)C=CN1[C@@H]1O[C@H](COP([O-])(=O)OP([O-])(=O)OP([O-])([O-])=O)[C@@H](O)C1 RGWHQCVHVJXOKC-SHYZEUOFSA-J 0.000 description 1
- HAAZLUGHYHWQIW-KVQBGUIXSA-N dGTP Chemical compound C1=NC=2C(=O)NC(N)=NC=2N1[C@H]1C[C@H](O)[C@@H](COP(O)(=O)OP(O)(=O)OP(O)(O)=O)O1 HAAZLUGHYHWQIW-KVQBGUIXSA-N 0.000 description 1
- NHVNXKFIZYSCEB-XLPZGREQSA-N dTTP Chemical compound O=C1NC(=O)C(C)=CN1[C@@H]1O[C@H](COP(O)(=O)OP(O)(=O)OP(O)(O)=O)[C@@H](O)C1 NHVNXKFIZYSCEB-XLPZGREQSA-N 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000034994 death Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000002405 diagnostic procedure Methods 0.000 description 1
- 230000006806 disease prevention Effects 0.000 description 1
- 239000002019 doping agent Substances 0.000 description 1
- 238000011143 downstream manufacturing Methods 0.000 description 1
- 238000009509 drug development Methods 0.000 description 1
- 238000007876 drug discovery Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- RFHAOTPXVQNOHP-UHFFFAOYSA-N fluconazole Chemical compound C1=NC=NN1CC(C=1C(=CC(F)=CC=1)F)(O)CN1C=NC=N1 RFHAOTPXVQNOHP-UHFFFAOYSA-N 0.000 description 1
- 239000003269 fluorescent indicator Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000013595 glycosylation Effects 0.000 description 1
- 238000006206 glycosylation reaction Methods 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 229910052735 hafnium Inorganic materials 0.000 description 1
- 238000012165 high-throughput sequencing Methods 0.000 description 1
- GPRLSGONYQIRFK-UHFFFAOYSA-N hydron Chemical compound [H+] GPRLSGONYQIRFK-UHFFFAOYSA-N 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000001802 infusion Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000011630 iodine Substances 0.000 description 1
- 229910052740 iodine Inorganic materials 0.000 description 1
- 229910052741 iridium Inorganic materials 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000010501 iterative synthesis reaction Methods 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 229910052748 manganese Inorganic materials 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 229910052753 mercury Inorganic materials 0.000 description 1
- 150000002739 metals Chemical class 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 229910052961 molybdenite Inorganic materials 0.000 description 1
- 229910052750 molybdenum Inorganic materials 0.000 description 1
- 229910021421 monocrystalline silicon Inorganic materials 0.000 description 1
- 239000002090 nanochannel Substances 0.000 description 1
- 229910052759 nickel Inorganic materials 0.000 description 1
- 229910052758 niobium Inorganic materials 0.000 description 1
- 150000004767 nitrides Chemical class 0.000 description 1
- 229910052757 nitrogen Chemical group 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000010899 nucleation Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000007899 nucleic acid hybridization Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 150000002902 organometallic compounds Chemical class 0.000 description 1
- 229910052762 osmium Inorganic materials 0.000 description 1
- 230000009984 peri-natal effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 125000001997 phenyl group Chemical group [H]C1=C([H])C([H])=C(*)C([H])=C1[H] 0.000 description 1
- 229910052698 phosphorus Inorganic materials 0.000 description 1
- 239000011574 phosphorus Substances 0.000 description 1
- 238000011548 physical evaluation Methods 0.000 description 1
- 238000005240 physical vapour deposition Methods 0.000 description 1
- 229910052697 platinum Inorganic materials 0.000 description 1
- 229920002480 polybenzimidazole Polymers 0.000 description 1
- 229920002530 polyetherether ketone Polymers 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 102000054765 polymorphisms of proteins Human genes 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
- 239000004810 polytetrafluoroethylene Substances 0.000 description 1
- 229920001343 polytetrafluoroethylene Polymers 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000011321 prophylaxis Methods 0.000 description 1
- 238000000159 protein binding assay Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000004451 qualitative analysis Methods 0.000 description 1
- 238000013441 quality evaluation Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000004445 quantitative analysis Methods 0.000 description 1
- 239000000376 reactant Substances 0.000 description 1
- 239000011541 reaction mixture Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 238000010839 reverse transcription Methods 0.000 description 1
- 229910052702 rhenium Inorganic materials 0.000 description 1
- MHOVAHRLVXNVSD-UHFFFAOYSA-N rhodium atom Chemical compound [Rh] MHOVAHRLVXNVSD-UHFFFAOYSA-N 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 229910052707 ruthenium Inorganic materials 0.000 description 1
- 229910052706 scandium Inorganic materials 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 229910052711 selenium Inorganic materials 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000007841 sequencing by ligation Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 229910021427 silicon allotrope Inorganic materials 0.000 description 1
- 235000012239 silicon dioxide Nutrition 0.000 description 1
- HQVNEWCFYHHQES-UHFFFAOYSA-N silicon nitride Chemical compound N12[Si]34N5[Si]62N3[Si]51N64 HQVNEWCFYHHQES-UHFFFAOYSA-N 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000010944 silver (metal) Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 125000006850 spacer group Chemical group 0.000 description 1
- 238000004528 spin coating Methods 0.000 description 1
- 210000001324 spliceosome Anatomy 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 229910052717 sulfur Inorganic materials 0.000 description 1
- OBTWBSRJZRCYQV-UHFFFAOYSA-N sulfuryl difluoride Chemical compound FS(F)(=O)=O OBTWBSRJZRCYQV-UHFFFAOYSA-N 0.000 description 1
- 229910052715 tantalum Inorganic materials 0.000 description 1
- 229910052713 technetium Inorganic materials 0.000 description 1
- 229910052714 tellurium Inorganic materials 0.000 description 1
- TXEYQDLBPFQVAA-UHFFFAOYSA-N tetrafluoromethane Chemical compound FC(F)(F)F TXEYQDLBPFQVAA-UHFFFAOYSA-N 0.000 description 1
- 229940124597 therapeutic agent Drugs 0.000 description 1
- 229940126585 therapeutic drug Drugs 0.000 description 1
- 229910052719 titanium Inorganic materials 0.000 description 1
- 238000011222 transcriptome analysis Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000011269 treatment regimen Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- FXVCQLLAIUUIHJ-UHFFFAOYSA-N triphenylene-2,3,6,7,10,11-hexamine Chemical group C12=CC(N)=C(N)C=C2C2=CC(N)=C(N)C=C2C2=C1C=C(N)C(N)=C2 FXVCQLLAIUUIHJ-UHFFFAOYSA-N 0.000 description 1
- 239000001226 triphosphate Substances 0.000 description 1
- 235000011178 triphosphate Nutrition 0.000 description 1
- 125000002264 triphosphate group Chemical class [H]OP(=O)(O[H])OP(=O)(O[H])OP(=O)(O[H])O* 0.000 description 1
- 229910052721 tungsten Inorganic materials 0.000 description 1
- ITRNXVSDJBHYNJ-UHFFFAOYSA-N tungsten disulfide Chemical compound S=[W]=S ITRNXVSDJBHYNJ-UHFFFAOYSA-N 0.000 description 1
- 201000005290 uterine carcinosarcoma Diseases 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
- 238000007482 whole exome sequencing Methods 0.000 description 1
- 238000012049 whole transcriptome sequencing Methods 0.000 description 1
- 229910052727 yttrium Inorganic materials 0.000 description 1
- 229910052725 zinc Inorganic materials 0.000 description 1
- 229910052726 zirconium Inorganic materials 0.000 description 1
Abstract
Description
ПЕРЕКРЕСТНАЯ ССЫЛКА НЕ РОДСТВЕННУЮ ЗАЯВКУCROSS REFERENCE TO UNRELATED APPLICATION
[0001] Настоящая заявка испрашивает приоритет на основании предварительной заявки на патент США № 62/277,445, поданной 11 января 2016 г., содержание которой полностью включено в настоящий текст посредством ссылки.[0001] This application claims priority to U.S. Provisional Application No. 62/277,445, filed January 11, 2016, the contents of which are incorporated herein by reference in their entirety.
ОБЛАСТЬ ТЕХНИКИTECHNICAL FIELD
[0002] Описанный в настоящем документе объект относится к биоинформатике, и, более конкретно, к системам, устройствам и способам для реализации биоинформатических протоколов, например, для осуществления одной или более функций для анализа геномных данных на интегральной схеме, например, на аппаратной процессорной платформе.[0002] The subject matter described herein relates to bioinformatics, and more particularly to systems, devices and methods for implementing bioinformatics protocols, for example, for implementing one or more functions for analyzing genomic data on an integrated circuit, for example, a hardware processor platform .
УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE ART
[0003] Перед исследователями и практикующими специалистами в области здравоохранения стоить задача повышения безопасности, качества и эффективности медицинских услуг для каждого пациента. Персонализированная медицина направлена на решение этих задач на индивидуальном уровне. Например “геномика” и/или “биоинформатика” представляют собой области, задачей которых является обеспечение безопасности, качества и эффективности профилактических и терапевтических средств и способов лечения на персонифицированном, индивидуальном уровне. Соответственно, применением методик геномики и/или биоинформатики позволяет определить генетические характеристики индивидуума, например, состав ее или его генов, а эту информацию можно использовать для разработки лекарственных средств и/или профилактических схем, включая способы лекарственного лечения, персонализированные для этого индивидуума, что позволяет адаптировать медицинские услуги под потребности каждого отдельного лица.[0003] Healthcare researchers and practitioners are faced with the challenge of improving the safety, quality and effectiveness of healthcare services for every patient. Personalized medicine aims to address these challenges at the individual level. For example, “genomics” and/or “bioinformatics” are fields whose goal is to ensure the safety, quality and effectiveness of preventive and therapeutic agents and treatments at a personalized, individual level. Accordingly, by applying genomics and/or bioinformatics techniques, the genetic characteristics of an individual, such as the composition of her or his genes, can be determined, and this information can be used to develop drugs and/or preventive regimens, including drug treatments personalized for that individual, allowing tailor health services to the needs of each individual.
[0004] Стремление предоставлять персонализированные медицинские услуги трансформирует систему здравоохранения. Эта трансформация системы здравоохранения по-видимому основана на прорывных инновациях на пересечении медицинской науки и информационных технологий, примером которых являются области геномики и биоинформатики. Соответственно, геномика и биоинформтика составляют фундамент, на котором будет построено это будущее. С того момента как в 2000г с общими затратами более 1 млрд. долларов США был впервые секвенирован полный геном человека, наука существенно шагнула вперед. Сегодня мы стоим на пороге секвенирования с высоким разрешением при стоимости менее 1000 долларов США за генома, что делает выход за пределы исследовательской лаборатории в широкую область медицинской помощи реальным с эколномической точки зрения. Соответственно, геномные данные могут внести важнейший вклад в диагностический скрининг, разработку профилактических и/или терапевтических лекарственных средств и/или лечение болезней.[0004] The desire to provide personalized healthcare services is transforming the healthcare system. This transformation of the healthcare system appears to be based on disruptive innovations at the intersection of medical science and information technology, exemplified by the fields of genomics and bioinformatics. Accordingly, genomics and bioinformatics form the foundation on which this future will be built. Since the complete human genome was first sequenced in 2000 at a cost of more than $1 billion, science has advanced significantly. Today, we are on the cusp of high-resolution sequencing at a cost of less than $1,000 per genome, making it economically feasible to expand beyond the research laboratory into the broader health care landscape. Accordingly, genomic data can make critical contributions to diagnostic screening, development of preventive and/or therapeutic drugs, and/or disease treatment.
[0005] Более конкретно, геномики и биоинформатика представляют собой области, применяющие информационные технологии и информатику в области молекулярной биологии. В частности, биоинформатические методы можно применять для обработки и анализа разнообразных геномных данных, таких как данные о геноме индивидуального субъекта, для получения качественной и количественной информации об этих данных, которую специалисты в разных областях смогут затем применять для разработки методов профилактики и терапии для предотвращения или по меньшей мере облегчения болезненных состояний, и, таким образом, улучшения безопасности, качества и эффективности медицинской помощи на уровне индивидуальных субъектов.[0005] More specifically, genomics and bioinformatics are fields that apply information technology and computer science to the field of molecular biology. In particular, bioinformatics methods can be used to process and analyze a variety of genomic data, such as the genome data of an individual subject, to obtain qualitative and quantitative information about this data, which specialists in various fields can then use to develop methods of prevention and therapy to prevent or at least alleviating disease states, and thus improving the safety, quality and effectiveness of health care at the level of individual subjects.
[0006] Благодаря тому, что биоинформатика направлена на обеспечения персонализированных медицинских услуг, она стимулирует развитие индивидуализированного здравоохранения, которое является проактивным, а не реактивным, что дает пациенту возможность принимать более активное участие в повышении качества своей жизни. Во-первых, можно установить федеральное управление для поддержки исследований, направленное на эти индивидуальные аспекты заболеваний и предотвращения заболеваний; основной задачей может быть подбор диагностики и превентивных мероприятий, подходящий для уникальных генетических параметров каждого индивидуального субъекта. Дополнительно, можно создать “сеть сетей” для сбора данных, относящихся к здравоохранению, чтобы помочь исследователям в определении паттернов и идентификации генетических “картин” существующих заболеваний.[0006] Because bioinformatics aims to provide personalized healthcare services, it is driving the development of personalized healthcare that is proactive rather than reactive, empowering patients to take a more active role in improving their quality of life. First, federal management could be established to support research aimed at these individual aspects of disease and disease prevention; the primary challenge may be to tailor diagnostics and preventative interventions appropriate to the unique genetic profile of each individual subject. Additionally, a “network of networks” can be created to collect health-related data to help researchers determine patterns and identify genetic “patterns” of existing diseases.
[0007] Преимущество применения биоинформатических технологий в этих ситуациях заключается в том, что они позволяют осуществлять качественный и/или количественный анализ молекулярно-биологических данных на более широких множествах образцов с значительно более высокой скоростью и зачастую большей точностью, что способствует быстрому развитию системы персонализированного здравоохранения.[0007] The advantage of applying bioinformatics technologies in these situations is that they allow qualitative and/or quantitative analysis of molecular biological data on larger sets of samples at significantly higher speed and often greater accuracy, which contributes to the rapid development of personalized healthcare .
[0008] Соответственно, в различных вариантах молекулярные данные для обработки на платформах, работающих на основе биоинформатических методов, обычно связаны с геномными данными, такими как данные о дезоксирибонуклеиновых кислотах (ДНК) и/или рибонуклеиновых кислотах (РНК). Например, хорошо известный способ генерации данных о ДНК и/или РНК включает ДНК/РНК-секвенирование. ДНК/РНК-секвенирование может осуществляться вручную, например, в лаборатории, или может осуществляться при помощи автоматического секвенатора, например, в профильном центре секвенирования, с целью определения генетического состава образца генетического материала субъекта, например, ДНК и/или РНК. Генетическую информацию о субъекте можно затем использовать для сравнения с эталоном, таким как референсная последовательность, гаплотип или теоретический гаплотип, чтобы таким образом определить отличия от него. Такую информацию об отличиях можно затем использовать для определения или предсказания возникновения болезненного состояния у субъекта.[0008] Accordingly, in various embodiments, molecular data for processing in bioinformatics-based platforms is typically associated with genomic data, such as deoxyribonucleic acid (DNA) and/or ribonucleic acid (RNA) data. For example, a well-known method for generating DNA and/or RNA data involves DNA/RNA sequencing. DNA/RNA sequencing may be performed manually, such as in a laboratory, or may be performed using an automated sequencer, such as at a sequencing facility, to determine the genetic makeup of a sample of a subject's genetic material, such as DNA and/or RNA. The subject's genetic information can then be used for comparison with a reference such as a reference sequence, haplotype, or theoretical haplotype to determine differences from it. Such difference information can then be used to determine or predict the occurrence of a disease state in a subject.
[0009] Например, ручное или автоматизированное секвенирование ДНК/РНК можно применять для определения последовательности нуклеотидных оснований в образце ДНК/РНК, таком как образец, взятый у субъекта. Применение различных биоинформатических процедур позволяет затем объединить эти последовательности вместе и получить геномную последовательность субъекта. Затем эту последовательность можно сравнить с референсной геномной последовательностью, чтобы определить отличия геномное последовательности субъекта от эталона. Этот процесс включает определение отличий (вариантов) в последовательности образца и представляет основную проблему биоинформатических методик.[0009] For example, manual or automated DNA/RNA sequencing can be used to determine the sequence of nucleotide bases in a DNA/RNA sample, such as a sample taken from a subject. Using various bioinformatics procedures, these sequences can then be combined together to obtain the subject's genomic sequence. This sequence can then be compared to a reference genomic sequence to determine if the subject's genomic sequence differs from the reference. This process involves identifying differences (variants) in a sample sequence and represents a major challenge in bioinformatics techniques.
[0010] Например, основной проблемой в секвенировании ДНК является построение полноразмерных геномных последовательностей, например, хромосомных последовательностей, из образца генетического материала, которые можно было бы сравнить с референсной геномной последовательностью для определения отличий в полноразмерной геномной последовательности из образца. В частности, методы, применяемые в протоколах секвенирования, не выдают полноразмерные последовательности хромосом, содержащихся в образце ДНК.[0010] For example, a major challenge in DNA sequencing is the construction of full-length genomic sequences, such as chromosomal sequences, from a sample of genetic material that can be compared to a reference genomic sequence to determine differences in the full-length genomic sequence from the sample. In particular, the methods used in sequencing protocols do not produce the full-length sequences of the chromosomes contained in a DNA sample.
[0011] Вместо этого получают фрагменты последовательностей, которые обычно имеют длину 100-1000 нуклеотидов, без каких-либо указаний на то, какой области генома они соответствуют. Таким образом, чтобы получить полноразмерные геномные хромосомные конструкты, эти фрагменты последовательностей ДНК необходимо картировать, выровнять, соединить и/или сравнить с референсной геномной последовательностью. Такие процессы позволяют определить отличия геномных последовательностей из образцов от референсных геномных последовательностей.[0011] Instead, sequence fragments are obtained that are typically 100-1000 nucleotides in length, without any indication of which genomic region they correspond to. Thus, to obtain full-length genomic chromosomal constructs, these DNA sequence fragments must be mapped, aligned, spliced, and/or compared to a reference genomic sequence. Such processes make it possible to determine differences between genomic sequences from samples and reference genomic sequences.
[0012] Однако геном человека состоит из приблизительно 3,1 миллиардов пар оснований, а каждый фрагмент последовательности обычно имеет длину лишь от 100 до 500 нуклеотидов, поэтому время и ресурсы, уходящие на построение полноразмерных геномных последовательностей и определения отличий в них, весьма велики, что частно обуславливает необходимость применения нескольких различных вычислительных ресурсов, использующих несколько различных алгоритмов, в течение длительного времени.[0012] However, the human genome consists of approximately 3.1 billion base pairs, and each sequence fragment is typically only 100 to 500 nucleotides in length, so the time and resources required to construct and distinguish full-length genomic sequences are very large. which often necessitates the use of several different computing resources using several different algorithms over a long period of time.
[0013] В одном из конкретных примеров от тысяч до миллионов фрагментов последовательностей ДНК генерируют, выравнивают и объединяют для получения геномной последовательности, которая приближается по длине к хромосоме. Один из этапов этого процесса может включать сравнение фрагментов ДНК с референсной последовательностью для определения области генома, с которой она выравнивается (т.е. которой она соответствует).[0013] In one specific example, thousands to millions of DNA sequence fragments are generated, aligned, and combined to produce a genomic sequence that approximates the length of a chromosome. One step in this process may involve comparing DNA fragments to a reference sequence to determine the region of the genome to which it aligns (i.e., to which it corresponds).
[0014] В построении последовательностей, имеющих длину хромосомы, и определении вариантов (т.е. отличий от референсной последовательности) последовательности образца участвует несколько таких этапов. Соответственно, для реализации этих этапов разработано большое количество разнообразных методов. Например, существуют широко применяемое программное обеспечение, реализующее один или ряд этапов биоинформатической системы. Однако общей чертой таких биоинформатических способов и систем на основе программного обеспечения является то, что они требуют больших трудозатрат, их выполнение на обычных процессорах занимает длительное время, и они имеют тенденцию к ошибкам.[0014] Several such steps are involved in constructing chromosome-length sequences and identifying variants (i.e., differences from the reference sequence) of a sample sequence. Accordingly, a large number of different methods have been developed to implement these stages. For example, there are widely used software that implements one or a number of stages of a bioinformatics system. However, a common feature of such bioinformatics methods and software-based systems is that they are labor intensive, take a long time to run on conventional processors, and are prone to errors.
[0015] Соответственно, была бы полезна биоинформатическая система, которая могла бы осуществлять алгоритмы, реализуемые в таком программном обеспечении с меньшими трудозатратами и/или способом, требующих менее интенсивной обработки, при большей процентной точности. Однако даже несмотря на то, что мы приблизились к стоимости анализа "Геном за 1000$", хранение и обеспечение коллективного доступа к этим необработанным цифровым данным, значительно опережают стоимость их получения. Это узкое место анализа является основным препятствием на пути от этих необработанных данных, количество которых постоянно растет, к реальным медицинским знаниям, которые мы стремимся из них получить.[0015] Accordingly, a bioinformatics system that could implement algorithms implemented in such software in a less labor-intensive and/or less processing-intensive manner with greater percentage accuracy would be useful. However, even as we approach the cost of $1,000 Genome analysis, storing and sharing this raw digital data far outstrips the cost of obtaining it. This analysis bottleneck is a major barrier to moving from this ever-growing raw data to the real medical knowledge we seek to gain from it.
[0016] Соответственно, в настоящем документе представлены системы, устройства и способы для применения протоколов геномики и/или биоинформатики, например, для реализации одной или более функций для анализа геномных данных, например, при помощи программных реализаций и/или на интегральной схеме, например, на аппаратной платформе для обработки. Например, как описано ниже в настоящем документе, в различных вариантах реализации комбинации программно-реализуемых и/или решений аппаратного ускорения, таких как решения, включающие интегральные схемы и программное обеспечение для взаимодействия с ними, можно применять для решения задач, связанных с биоинформатикой, при этом интегральные схемы могут состоять из одной или более аппаратно соединенных (смонтированных) цифровых логических схем, которые могут быть связаны множеством физических электрических соединений, которые могут быть организованы в виде набора модулей обработки, причем каждый модуль обработки может быть сконфигурирован для выполнения одного или более этапов биоинформатического протокола генетического анализа. Преимущество такой организации заключается в том, что эти задачи, связанные с биоинформатикой, можно осуществлять быстрее, чем при применении только программного обеспечения, как это обычно бывает при решении таких задач. Тем не менее, применение такой методики аппаратного ускорения в настоящее время обычно не применяется в области геномики и/или биоинформатики.[0016] Accordingly, systems, devices and methods are provided herein for applying genomics and/or bioinformatics protocols, for example, to implement one or more functions for analyzing genomic data, for example, using software implementations and/or on an integrated circuit, for example ,on the processing hardware platform. For example, as described below herein, in various embodiments, combinations of software and/or hardware acceleration solutions, such as solutions including integrated circuits and software to interface with them, can be used to solve bioinformatics-related problems when In this case, integrated circuits may consist of one or more hardwired digital logic circuits that may be interconnected by a plurality of physical electrical connections, which may be organized as a set of processing modules, each processing module may be configured to perform one or more steps bioinformatics protocol for genetic analysis. The advantage of such an organization is that these bioinformatics tasks can be completed more quickly than using software alone, as is usually the case for solving such problems. However, the application of such hardware acceleration technique is not currently commonly applied in the fields of genomics and/or bioinformatics.
КРАТКОЕ ОПИСАНИЕSHORT DESCRIPTION
[0017] Настоящее изобретение относится к выполнению таких задач, как задачи, являющиеся частью биоинформатических протоколов. В различных вариантах выполняется множество задач, а в некоторых случаях эти задачи выполняют таким образом, что они образуют конвейер, причем каждая задача и/или ее почти полное выполнение действует как строительный блок для каждой последующей задачи до достижения желаемого конечного результата. Соответственно, в различных вариантах реализации настоящее изобретение относится к реализации одного или более способов на одном или большем числе устройств, где указанное устройство оптимизировано для реализации этих способов. В некоторых вариантах реализации указанные один или более способов и/или одно или более устройство скомпонованы в одну или более систем.[0017] The present invention relates to performing tasks such as tasks that are part of bioinformatics protocols. In various embodiments, multiple tasks are performed, and in some cases, these tasks are performed in such a way that they form a pipeline, with each task and/or its near completion acting as a building block for each subsequent task until the desired end result is achieved. Accordingly, in various embodiments, the present invention relates to implementing one or more methods on one or more devices, where the device is optimized to implement the methods. In some embodiments, the one or more methods and/or one or more devices are packaged into one or more systems.
[0018] Например, в некоторых аспектах настоящее изобретение относится к системам, устройствам и способам для реализации протоколов геномики и/или биоинформатики, таким как, в различных вариантах, для осуществления одной или более функций для получения и/или анализа генетических данных с применением инновационного программного обеспечения и/или на интегральной схеме, например, реализованных в комбинации программного обеспечения и/или аппаратной платформы для обработки. Например, в одном аспекте предложена геномная и/или биоинформатическая система. Эта система может включать выполнение различных функций для получения биоаналитических данных и/или анализа, которые оптимизированы для более быстрого осуществления и/или повышения точности. Способы осуществления этих функций могут быть реализованы в программных или аппаратных решениях. Соответственно, в некоторых вариантах представлены способы, включающие получение и/или сбор данных и/или анализ, которые могут включать реализацию один или более алгоритмов, причем указанные алгоритм(ы) оптимизированы в соответствии с, например, например, программным обеспечением, аппаратным обеспечением, или комбинацией аппаратного и программного обеспечения, в которых они реализуются. В частности, в тех случаях, когда алгоритм реализуется в программном решении, алгоритм и/или составляющие его процессы могут быть оптимизированы для более быстрого выполнения и/или выполнения с повышенной точностью при реализации с применением конкретного средства. Аналогично, в тех случаях, когда алгоритм реализуется в аппаратном решении, аппаратное обеспечение разрабатывается специально для осуществления этих функций и/или составляющих их процессов с оптимизацией для более быстрого выполнения и/или выполнения с повышенной точностью при реализации с применением конкретного средства. Далее, в тех случаях, когда функции включают комбинацию программных и/или аппаратных решений, эти функции и составляющие их процессы разработаны и сконфигурированы для оптимальной совместной работы, что позволяет достичь скорости, недоступной ранее, при той же или повышенной точности.[0018] For example, in some aspects, the present invention relates to systems, devices and methods for implementing genomics and/or bioinformatics protocols, such as, in various embodiments, for implementing one or more functions for obtaining and/or analyzing genetic data using innovative software and/or on an integrated circuit, for example, implemented in a combination of software and/or hardware processing platform. For example, in one aspect, a genomic and/or bioinformatics system is provided. This system may include performing various functions to obtain bioanalytical data and/or analysis that are optimized for faster implementation and/or increased accuracy. Methods for implementing these functions can be implemented in software or hardware solutions. Accordingly, in some embodiments, methods are provided that include obtaining and/or collecting data and/or analysis, which may include implementing one or more algorithms, wherein said algorithm(s) are optimized in accordance with, for example, software, hardware, or the combination of hardware and software in which they are implemented. In particular, in cases where the algorithm is implemented in a software solution, the algorithm and/or its constituent processes may be optimized to run faster and/or run with increased accuracy when implemented using a particular tool. Likewise, in cases where an algorithm is implemented in a hardware solution, the hardware is designed specifically to implement those functions and/or their constituent processes, optimized for faster execution and/or execution with increased accuracy when implemented using a particular tool. Further, where functions involve a combination of software and/or hardware solutions, those functions and their constituent processes are designed and configured to work together optimally, achieving previously unattainable speeds with the same or increased accuracy.
[0019] Соответственно, в одном аспекте настоящего изобретения предложены системы, устройства и способы для реализации биоинформатических протоколов, например, для выполнения одной или более функций для генерации и/или анализа генетических данных, например, с применением одного или более разработанных и/или оптимизированных алгоритмов и/или на одной или более оптимизированных интегральных схемах, например, на одной или более аппаратных платформ обработки. Соответственно, в одном варианте предложены способы для реализации одного или более алгоритмов для осуществления одного или более этапов для генерации и/или анализа геномных данных в протоколе геномики и/или биоинформатики. В другом случае предложены способы реализации функций одного или более алгоритмов для осуществления одного или более этапов для анализа геномных данных в биоинформатическом протоколе, причем эти функции по меньшей мере частично реализованы на интегральной схеме, такой как схема, состоящая из одной или более аппаратно соединенных цифровых логических схем. В таком варианте аппаратно соединенные цифровые логические схемы могут быть связаны, например, посредством множества физических электрических соединений, и могут быть организованы для работы в виде одного или более модулей обработки. В различных вариантах предложено множество аппаратно соединенных цифровых логических схем, причем аппаратно соединенные цифровые логические схемы сконфигурированы в виде набора модулей обработки, причем каждый модуль обработки может выполнять один или более этапов биоинформатических протоколов генетического анализа, как в случае конвейера биоинформатической обработки.[0019] Accordingly, in one aspect of the present invention, systems, devices and methods are provided for implementing bioinformatics protocols, for example, for performing one or more functions for generating and/or analyzing genetic data, for example, using one or more developed and/or optimized algorithms and/or on one or more optimized integrated circuits, for example, on one or more hardware processing platforms. Accordingly, in one embodiment, methods are provided for implementing one or more algorithms for performing one or more steps for generating and/or analyzing genomic data in a genomics and/or bioinformatics protocol. In another case, methods are provided for implementing the functions of one or more algorithms for performing one or more steps for analyzing genomic data in a bioinformatics protocol, wherein the functions are at least partially implemented on an integrated circuit, such as a circuit consisting of one or more hardware-connected digital logic gates. schemes In such an embodiment, hardwired digital logic circuits may be coupled, for example, through a plurality of physical electrical connections, and may be arranged to operate as one or more processing modules. In various embodiments, a plurality of hard-wired digital logic circuits are provided, the hard-wired digital logic circuits being configured as a set of processing modules, each processing module being capable of executing one or more stages of bioinformatics genetic analysis protocols, as in the case of a bioinformatics processing pipeline.
[0020] Более конкретно, в одном варианте предложена система для получения данных о генетических последовательностей, например, включающая устройства и способы для секвенирования нуклеиновых кислоты, и/или для реализации конвейера анализа последовательности по таким данным генетического секвенирования. Система может включать одно или более электронных источников данных, таких как источники, связанные с устройством для секвенирования ДНК/РНК, таким как описанное в настоящем документе, памятью и/или интегральной схемой. Например, один вариант реализации включает электронный источник данных, причем указанный электронный источник данных может быть сконфигурирован для генерации и/или обеспечения одного или более цифровых сигналов, таких как цифровые сигналы, представляющие один или более ридов генетических данных, где, например, каждый рид геномных данных включает последовательность нуклеотидов. Далее, память может быть сконфигурирована для хранения одной или более референсных генетических последовательностей, и дополнительно может быть сконфигурирована для хранения индекса, такого как индекс одной или более референсных генетических последовательностей, и/или аннотированные данные о границах сплайсинга.[0020] More specifically, in one embodiment, a system is provided for obtaining genetic sequence data, for example, including devices and methods for sequencing nucleic acids, and/or for implementing a sequence analysis pipeline on such genetic sequencing data. The system may include one or more electronic data sources, such as those associated with a DNA/RNA sequencing device, such as those described herein, a memory and/or an integrated circuit. For example, one embodiment includes an electronic data source, wherein said electronic data source may be configured to generate and/or provide one or more digital signals, such as digital signals representing one or more genetic data reads, wherein, for example, each genomic data read data includes a nucleotide sequence. Further, the memory may be configured to store one or more reference genetic sequences, and may further be configured to store an index, such as an index of the one or more reference genetic sequences, and/or annotated splice boundary data.
[0021] Далее, предложены устройство и/или способ для получения данных о генетических последовательностях. Например, предложен подход к анализу ДНК/РНК, например, для генетической диагностики и/или секвенирования, включающий одну или более реакций из гибридизации, детектирования, и/или секвенирования нуклеиновых кислот. В различных вариантах, подход может включать устройства для гибридизации и/или детектирования и/или процедуры для выполнения одного из следующих этапов. В частности, для целей генетического анализы образец РНК тдт ДНК субъекта можно выделить и иммобилизовать, например, напрямую и/или опосредованной, на субстрате, таком как субстрат, содержащий химически чувствительный одномерный (1-D) и/или двумерный (2D) реакционный слой, например, графеновый реакционный слой, и/или трехмерный (3D) реакционный слой, а зонд известной или детектируемой генетической последовательности, например, маркера заболевания, можно проливать по поверхности, или наоборот. В различных вариантах, один или более из образцов РНК или ДНК и/или зонда могут содержать метку.[0021] Further, a device and/or method for obtaining genetic sequence data is provided. For example, an approach to DNA/RNA analysis, for example, for genetic diagnosis and/or sequencing, is provided, comprising one or more reactions of hybridization, detection, and/or nucleic acid sequencing. In various embodiments, the approach may include hybridization and/or detection devices and/or procedures for performing one of the following steps. In particular, for purposes of genetic analysis, a sample of the subject's TDT RNA DNA can be isolated and immobilized, for example, directly and/or indirectly, on a substrate, such as a substrate containing a chemically sensitive one-dimensional (1-D) and/or two-dimensional (2D) reaction layer , for example, a graphene reaction layer, and/or a three-dimensional (3D) reaction layer, and a probe of a known or detectable genetic sequence, such as a disease marker, can be spilled onto the surface, or vice versa. In various embodiments, one or more of the RNA or DNA samples and/or probe may contain a label.
[0022] В других вариантах, как в случае, когда субстрат включает 1D- или 2D, например, графеновый, реакционный слой, и/или другой химически чувствительный реакционный слой, метку или зонд, такая химическая или радиоактивная метка не обязательно является необходимой и/или присутствует. В любом из вариантов, если присутствует маркер заболевания, будет происходить событие связывания, например, гибридизация, а поскольку события связывания можно детектировать, например, путем мечения аналита или зонда и/или за счет соответствующей организации реакционного слоя, описанной в настоящем документе, присутствие маркера заболевания также можно детектировать. В случае, когда маркер заболевания не присутствует, реакция будет отсутствовать, и, соответственно, маркер не будет детектироваться. Безусловно, в некоторых случаях, показательным событием может быть отсутствие события связывания. Соответственно, система может быть выполнена таким образом, что событие гибридизации может детектироваться, либо не детектироваться, что указывает на присутствие или отсутствие маркера заболевания во взятом у субъекта образце.[0022] In other embodiments, such as when the substrate includes a 1D or 2D, for example, graphene, reaction layer, and/or other chemically sensitive reaction layer, label or probe, such a chemical or radioactive label is not necessarily necessary and/ or present. In either embodiment, if a disease marker is present, a binding event, such as hybridization, will occur, and since binding events can be detected, for example, by labeling the analyte or probe and/or through appropriate reaction layer organization as described herein, the presence of the marker diseases can also be detected. In the case where the disease marker is not present, there will be no reaction and, accordingly, the marker will not be detected. Of course, in some cases, the indicative event may be the absence of a binding event. Accordingly, the system may be configured such that a hybridization event may or may not be detected, indicating the presence or absence of a disease marker in a sample taken from a subject.
[0023] Аналогичным образом, для секвенирования ДНК и/или РНК сначала неизвестную последовательность нуклеиновой кислоты, которую необходимо идентифицировать, например, однонитевую последовательность ДНК или РНК субъекта, выделяют, амплифицируют и иммобилизируют на подложке, которая, как описано в настоящем документе, может включать 1D-, 2D-, например, графеновый, слой, 3D, или другой реакционный слой, нанесенный на нее. Затем известную нуклеиновую кислоту, например, нуклеотидное основание, которое может быть помечено идентифицируемой меткой, приводят в контакт с неизвестной последовательностью нуклеиновой кислоты в присутствии полимеразы. Как отмечалось выше, в случае, когда происходит реакционное событие происходит вблизи соответствующим образом выполненного (сконфигурированного) реакционного слоя, например, содержащего графен реакционного слоя, реагент с меткой можно не использовать.[0023] Similarly, for DNA and/or RNA sequencing, first an unknown nucleic acid sequence to be identified, such as a single-stranded DNA or RNA sequence of a subject, is isolated, amplified, and immobilized on a support, which, as described herein, may include 1D-, 2D-, for example, graphene, layer, 3D, or other reaction layer deposited on it. A known nucleic acid, for example a nucleotide base that can be labeled with an identifiable label, is then brought into contact with an unknown nucleic acid sequence in the presence of a polymerase. As noted above, in the event that a reaction event occurs in the vicinity of a suitably configured reaction layer, for example a graphene-containing reaction layer, the labeled reagent may not be used.
[0024] Соответственно, когда происходит гибридизация, нуклеиновая кислота связывается с соответствующим комплементарным основанием в неизвестной последовательности, например, в секвенируемой ДНК или РНК из образца, и иммобилизуется на поверхности подложки, например, вблизи реакционного слоя. Событие связывания можно детектировать, например, оптическими средствами, электрическими средствами, и/или посредством подходяще детектируемой реакции, происходящей на реакционном слое. Затем эти этапы повторяют до тех пор, пока ДНК или РНК из образца не будет полностью секвенирована. Обычно эти этапы выполняют на секвенаторе следующего поколения известным в технике образом, или они могут быть выполнены в соответствии с устройствами и способами, описанными в настоящем документе, что позволяет провести и/или обработать от тысяч до миллионов реакций секвенирования одновременно, а цифровые данные, полученные в результате этих реакций можно анализировать с применением инновационных устройств и способов для секвенирования, раскрытых в настоящем документе, например, в мультиплексном конвейере для биоинформатической обработки.[0024] Accordingly, when hybridization occurs, the nucleic acid binds to the appropriate complementary base in an unknown sequence, for example, in DNA or RNA from a sample being sequenced, and is immobilized on the surface of the support, for example, near the reaction layer. The binding event can be detected, for example, by optical means, electrical means, and/or through a suitably detectable reaction occurring on the reaction layer. These steps are then repeated until the DNA or RNA from the sample has been completely sequenced. Typically, these steps are performed on a next generation sequencer in a manner known in the art, or they can be performed in accordance with the devices and methods described herein, allowing thousands to millions of sequencing reactions to be conducted and/or processed simultaneously, and the digital data obtained the resulting reactions can be analyzed using the innovative sequencing devices and methods disclosed herein, for example, in a multiplex bioinformatics processing pipeline.
[0025] Например, в одном аспекте, например, связанном с инновационными устройствами для секвенирования, представленными в настоящем документе, сконфигурированная соответствующим образом платформа может быть выполнена в виде полевого транзистора (FET), содержащего химический реакционный слой, такого как транзистор для применения в реакции гибридизации и/или секвенирования. В частности, такой полевой транзистор (FET) может быть выполнен на первичной структуре, такой как подложка, например, кремниевая подложка. В различных вариантах первичная структура может включать одну или более дополнительных структур, например, в пакетной конфигурации, например, в форме слоя изолирующего материала. Например, материал изолятора может быть расположен поверх первичной структуры кремниевой подложки, и может представлять собой неорганический материал, такой как диоксид кремния, или азотистый кремний, или органический материал, такой как полимид, бензоциклобутен или аналогичный материал.[0025] For example, in one aspect, such as those associated with innovative sequencing devices presented herein, a suitably configured platform can be implemented as a field-effect transistor (FET) containing a chemical reaction layer, such as a transistor for use in a reaction hybridization and/or sequencing. In particular, such a field effect transistor (FET) can be implemented on a primary structure such as a substrate, for example a silicon substrate. In various embodiments, the primary structure may include one or more additional structures, for example, in a stacked configuration, for example, in the form of a layer of insulating material. For example, the insulator material may be located over the primary structure of the silicon substrate, and may be an inorganic material such as silica or silica, or an organic material such as a polyimide, benzocyclobutene or the like.
[0026] Первичная структура и/или слой изолятора могут включать дополнительную структуру, содержащую один или более истоков носителей заряда и/или стоков носителей заряда, например, отделенные друг от друга некоторым пространством, и интегрированную в первичную структуру, и/или слой изолирующего материала, и/или может лежать в одной плоскости с верхней и/или нижней поверхностью изолятора с образованием верхнего и/или нижнего затвора. В различных вариантах структуры, например, структура кремниевой подложки, могут дополнительно включать, либо могут быть связаны с интегральной схемой, такой как процессор, например, микропроцессор, для обработки сгенерированных данных, таких как данные с сенсора, например, данные, полученные в результате реакции секвенирования, например, вблизи области затвора. Соответственно, множество структур может быть выполнено в форме, или включать, интегральную схему, и/или может быть представлено в форме ASIC (интегральной схемы специального назначения), структурированной ASIC или FPGA (программируемой пользователем вентильной матрицы, ППВМ).[0026] The primary structure and/or insulator layer may include an additional structure containing one or more charge carrier sources and/or charge carrier sinks, for example, separated from each other by some space, and integrated into the primary structure and/or layer of insulating material , and/or may lie in the same plane with the upper and/or lower surface of the insulator to form an upper and/or lower gate. In various embodiments, the structures, for example, a silicon substrate structure, may further include, or may be associated with, an integrated circuit, such as a processor, e.g., a microprocessor, for processing generated data, such as sensor data, e.g., reaction data sequencing, for example, near the gate area. Accordingly, the plurality of structures may be in the form of, or include, an integrated circuit, and/or may be in the form of an ASIC (special purpose integrated circuit), structured ASIC, or FPGA (field programmable gate array).
[0027] В частности, эти структуры могут быть выполнены в форме комплементарной структуры металл-оксид-полупроводник (КМОП), которая, в свою очередь, может быть выполнена в форме химически чувствительного сенсора на полевых транзисторах, содержащего один или более истоков носителей заряда, стоков носителей заряда и/или реакционную область, такую как затвор, причем он сам может включать конфигурацию микро- или наноканала, камеры и/или лунки, причем такой сенсор может быть адаптирован для взаимодействия с процессором. Например, полевой транзистор может включать КМОП-конфигурацию, содержащую или связанную с интегральной схемой, которая выполнена на кремниевой подложке, которая дополнительно включает слой изолятора, причем указанный слой изолятора включает исток носителей зарядов и сток носителей зарядов, интегрированные в слой изолятора, причем исток и сток могут быть выполнены из металла, такого как инкрустированная медь. В различных вариантах КМОП и родственные структуры могут включать поверхность, например, верхнюю поверхность, которая может включать канал и/или камеру, с образованием реакционной лунки, причем поверхность реакционной лунки может быть простираться за пределы истока носителей заряда к стоку носителей заряда и может быть приспособлена для приема различных реагентов, применяемых при проведении биохимических реакций, таких как реакции гибридизации и/или секвенирования ДНК или РНК.[0027] In particular, these structures may be in the form of a complementary metal-oxide-semiconductor (CMOS) structure, which in turn may be in the form of a chemically sensitive field-effect transistor sensor containing one or more charge carrier sources, a charge carrier sink and/or a reaction region such as a gate, which may itself include a micro- or nanochannel, chamber and/or well configuration, which sensor may be adapted to interface with a processor. For example, a field-effect transistor may include a CMOS configuration comprising or associated with an integrated circuit that is configured on a silicon substrate that further includes an insulator layer, wherein said insulator layer includes a charge carrier source and a charge carrier drain integrated into the insulator layer, the source and drains can be made of metal such as inlaid copper. In various embodiments, CMOS and related structures may include a surface, such as a top surface, that may include a channel and/or a chamber to form a reaction well, wherein the surface of the reaction well may extend beyond a charge carrier source to a charge carrier sink and may be adapted for receiving various reagents used in biochemical reactions, such as hybridization and/or DNA or RNA sequencing reactions.
[0028] В некоторых вариантах поверхность, и/или канал, и/или камера могут включать одномерный транзисторный материал, двумерный транзисторный материал, трехмерный транзисторный материал и/или нечто подобное. Различные варианты могут включать одномерный (1D) транзисторный материал, где 1D-материал может состоять из углеродной нанотрубки или полупроводникового нанопровода, которые в различных вариантах могут быть выполнены в форме пласта или канала, и/или в различных вариантах могут включать нанопору, хотя во многих вариантах нанопора отсутствует или не является необходимой. Некоторые варианты реализации могут содержать двумерный (2D) транзисторный материал, где 2D-материал может включать графеновый слой, силицен, дисульфид молибдена, черный фосфор и/или конфигурация. В различных вариантах поверхность и/или канал могут включать диэлектрический слой. Дополнительно, в различных вариантах, реакционный слой, например, оксидный слой, может быть расположен на поверхности и/или в канале и/или камере, например, может быть наслоен или иным образом размещен на 1D, 2D, например, графеновой 3D-слое (слоях). Такой оксидный слой может представлять собой оксид алюминия или оксид кремния, например, диоксид кремния. В различных вариантах, пассивирующий слой может быть расположен на поверхности, и/или канале, и/или в камере, например, он может быть наслоен или нанесен иным образом на 1D-, 2D-, например, графеновый, или 3D-слой (слои) и/или на связанном реакционном слое на поверхности и/или канале и/или камере.[0028] In some embodiments, the surface and/or channel and/or chamber may include a one-dimensional transistor material, a two-dimensional transistor material, a three-dimensional transistor material, and/or the like. Various embodiments may include a one-dimensional (1D) transistor material, where the 1D material may consist of a carbon nanotube or semiconductor nanowire, which in various embodiments may be in the form of a sheet or channel, and/or in various embodiments may include a nanopore, although in many embodiments In variants, the nanopore is absent or not necessary. Some embodiments may comprise a two-dimensional (2D) transistor material, where the 2D material may include a graphene layer, silicene, molybdenum disulfide, black phosphorus and/or configuration. In various embodiments, the surface and/or channel may include a dielectric layer. Additionally, in various embodiments, a reaction layer, e.g., an oxide layer, may be located on the surface and/or in a channel and/or chamber, e.g., layered or otherwise placed on a 1D, 2D, e.g., graphene 3D layer ( layers). Such an oxide layer may be an aluminum oxide or a silicon oxide, for example silica. In various embodiments, the passivation layer may be located on the surface and/or channel and/or chamber, for example, it may be layered or otherwise deposited on a 1D, 2D, e.g., graphene, or 3D layer(s) ) and/or on the associated reaction layer on the surface and/or channel and/or chamber.
[0029] В конкретных вариантах первичная и/или вторичная и/или третичная структуры могут быть изготовлены или иным образом выполнены таким образом, что они включают структуру лунки или камеры в и/или на поверхности, например, с образованием реакционной области. Например, структура с лунками или камерами может быть расположена на части поверхности, например, внешней поверхности первичной, и/или вторичной и/или третичной структур. В некоторых вариантах содержащая лунки структура может быть выполнена в виде микро- или нанокамеры и может быть выполнена сверху, или может включать по меньшей мере часть одномерного, двумерного, например, графенового, и/или трехмерного материала, и/или дополнительно включать реакционный, например, оксидный и/или пассивирующий слои. В различных вариантах, структура, содержащая камеру и/или лунку, может образовывать отверстие, например, отверстие, обеспечивающее доступ внутрь камеры, например, дающее возможность прямого контакта с одномерной, например, углеродной нанотрубкой или нанопроводом, двумерной, например, графеновой, или трехмерной поверхностью, и/или каналом, и/или камерой. В конкретных вариантах камера и/или лунка могут иметь размер, позволяющий определить ее как микро- или нанокамеру.[0029] In particular embodiments, the primary and/or secondary and/or tertiary structures may be fabricated or otherwise configured to include a well or chamber structure in and/or on the surface, for example, to form a reaction region. For example, the well or chamber structure may be located on a portion of the surface, such as the outer surface of the primary and/or secondary and/or tertiary structures. In some embodiments, the well-containing structure may be in the form of a micro- or nanochamber and may be provided on top, or may include at least a portion of a one-dimensional, two-dimensional, e.g., graphene, and/or three-dimensional material, and/or further include a reaction material, e.g. , oxide and/or passivation layers. In various embodiments, the structure containing the chamber and/or well may define an opening, such as an opening that provides access to the interior of the chamber, such as allowing direct contact with a one-dimensional, such as a carbon nanotube or nanowire, a two-dimensional, such as a graphene, or a three-dimensional surface and/or channel and/or chamber. In certain embodiments, the chamber and/or well may be sized to be defined as a micro- or nano-chamber.
[0030] Соответственно, один из дополнительных аспектов настоящего изобретения представляет собой биосенсор, например, биосенсор для осуществления реакции секвенирования нуклеиновых кислоты. Биосенсор включает КМОП-структуру, которая может быть выполнена в виде химически чувствительного сенсора на основе полевых транзисторов и может включать металл-содержащий исток и сток, например, исток и/или сток, который дополнительно включает последовательность, такую как реакционная зона, которая включает последовательность с одномерным или двумерным слоем, например, графеновым слоем, или 3D-последовательность, которая расположена от истока до стока. В частности, реакционная область может содержать, либо может быть выполнена в виде структуры лунки или камеры, которая может быть расположена на части внешней поверхности лунки с 1D- или 2D-слоем. В таком варианте структура лунки может быть выполнена таким образом, чтобы ограничивать отверстие, которое обеспечивает возможность прямого контакта с нанотрубкой, нанопроводом и/или графеновой поверхностью лунки или камеры. В различных вариантах оксидный и/или пассивационный слой может быть расположен в или на поверхностях камеры. Соответственно, в некоторых вариантах может быть предложен химически чувствительный транзистор, такой как полевой транзистор (FET), включающий одну или более нано- или микролунок для реакций секвенирования.[0030] Accordingly, one additional aspect of the present invention is a biosensor, for example, a biosensor for performing a nucleic acid sequencing reaction. The biosensor includes a CMOS structure, which may be a chemically sensitive FET sensor, and may include a metal-containing source and drain, such as a source and/or drain, which further includes a sequence, such as a reaction zone, which includes a sequence with a one-dimensional or two-dimensional layer, such as a graphene layer, or a 3D sequence that extends from source to drain. In particular, the reaction region may comprise or be configured as a well or chamber structure that may be located on a portion of the outer surface of the well with a 1D or 2D layer. In such an embodiment, the well structure may be designed to define an opening that allows direct contact with the nanotube, nanowire, and/or graphene surface of the well or chamber. In various embodiments, the oxide and/or passivation layer may be located in or on the surfaces of the chamber. Accordingly, in some embodiments, a chemically sensitive transistor, such as a field-effect transistor (FET), may be provided including one or more nano- or microwells for sequencing reactions.
[0031] В некоторых вариантах реализации химически чувствительный полевой транзистор может включать множество лунок и может быть выполнен в виде матрицы, например, матрицы сенсоров. Такая матрица или матрицы могут быть выполнены с возможностью детектирования присутствия и/или изменения концентрации различных типов аналитов в широком диапазоне химических и/или биологических процессов, включая реакции гибридизации ДНК и/или РНК и/или секвенирования ДНК или РНК. Например, описанные в настоящем документе устройства и/или системы, включающие такие устройства, могут применяться в способе анализа биологических или химических материалов, например, для секвенирования и/или анализа полного генома, генотипирования, микроматричного анализа, анализа панелей, экзомного анализа, анализа микробиома и/или клинического анализа, такого как анализа раковых заболеваний, NIPT-анализ (неинвазовная перинатальная диагностика) и/или анализа карциносаркомы матки и т.п.[0031] In some embodiments, the chemically sensitive field effect transistor may include multiple wells and may be configured as an array, such as a sensor array. Such matrix or matrices may be configured to detect the presence and/or changes in concentration of various types of analytes in a wide range of chemical and/or biological processes, including DNA and/or RNA hybridization reactions and/or DNA or RNA sequencing. For example, the devices and/or systems incorporating such devices described herein can be used in a method for analyzing biological or chemical materials, for example, whole genome sequencing and/or analysis, genotyping, microarray analysis, panel analysis, exome analysis, microbiome analysis and/or clinical analysis, such as cancer analysis, NIPT analysis (non-invasive perinatal diagnosis) and/or uterine carcinosarcoma analysis, etc.
[0032] Соответственно, в одном из конкретных вариантов реализации можно применять матрицу на грефеновых полевых транзисторах (gFET) для осуществления методик секвенирования ДНК и/или РНК и обработки этих данных, например в конвейере генетического анализа, описанного в настоящей заявке. Например, матрица на полевых транзисторах по технологии, например, на графеновых полевых транзисторах (gFET), может быть сконфигурирована таким образом, что она будет включать реакционные лунки с реакционным слоем, с возможностью детектирования изменений в концентрации ионов водорода (pH), изменений концентраций других аналитов, и/или событий связывания, связанных с химическими процессами, такими как процессы, связанные с синтезом ДНК или РНК, например, в управляемой реакционной камере или лунке сенсора на основе gFET. Такой химически чувствительный полевой транзистор может включать или может быть адоптирован для соединения с одной или большим числом интегральных схем и/или адаптирован для повешения чувствительности измерения и/или точности сенсора и/или связанной матрицы (матриц), например, за счет включения одной или более последовательностей в реакционной камере или реакционной лунке, где по меньшей мере на одну последовательность нанесен слой одномерного (1D) и/или двумерного (2D) и/или трехмерного (3D) материала, диэлектрический реакционный, пассивирующий слой, и/или тому подобное.[0032] Accordingly, in one particular embodiment, a graphene field-effect transistor (gFET) array can be used to implement DNA and/or RNA sequencing techniques and process this data, for example, in the genetic analysis pipeline described herein. For example, a field-effect transistor array technology such as graphene field-effect transistor (gFET) technology can be configured to include reaction wells with a reaction layer, with the ability to detect changes in the concentration of hydrogen ions (pH), changes in the concentrations of other analytes, and/or binding events associated with chemical processes, such as processes associated with DNA or RNA synthesis, for example, in a controlled reaction chamber or gFET-based sensor well. Such a chemically sensitive field effect transistor may include, or may be adapted to be coupled to, one or more integrated circuits and/or adapted to enhance the measurement sensitivity and/or accuracy of the sensor and/or associated array(s), for example, by including one or more sequences in a reaction chamber or reaction well, wherein at least one sequence is coated with a layer of one-dimensional (1D) and/or two-dimensional (2D) and/or three-dimensional (3D) material, a dielectric reaction layer, a passivation layer, and/or the like.
[0033] Соответственно, один из аспектов настоящего изобретения может включать одну или более интегральных схем, которые могут состоять из одного или более наборов аппаратно соединенных цифровых логических схем, как в случае, когда набор аппаратно соединенных цифровых логических схем имеет межсоединения, например, например, посредством множества физических электрических межсоединений, и может быть адаптирована для осуществления и/или детектирования реакций гибридизации и/или секвенирования ДНК или РНК, например, первичной обработке, и/или может быть дополнительно адаптирована для реализации их результатов, например, как в одном или более этапах вторичной и/или третичной обработки. В таких вариантах интегральная схема может включать ввод, какой как реализованный посредством одного или более из множества физических электрических межсоединений, что обеспечивает возможность соединения с электронным источником генерации данным, таким как секвенирование КМОП FET согласно настоящему изобретению и/или секвенатор следующего поколения (Next Gen Sequencer), сконфигурированные для генерации таких данных, например, в форме множества секвенированных сегментов, например, ридов, геномных данных. В конкретных вариантах указанные одна или более интегральных схем могут включать набор аппаратно соединенных цифровых логических схем, которые сконфигурированы для реализации конвейера вторичной и/или третичной обработки сгенерированных ридов геномных данных, например, посредством одного или более связанных межсоединений.[0033] Accordingly, one aspect of the present invention may include one or more integrated circuits, which may consist of one or more sets of hardware-connected digital logic circuits, as in the case where a set of hardware-connected digital logic circuits has interconnections, such as, for example, through a variety of physical electrical interconnections, and may be adapted to perform and/or detect hybridization and/or DNA or RNA sequencing reactions, such as primary processing, and/or may be further adapted to implement the results thereof, such as in one or more stages of secondary and/or tertiary processing. In such embodiments, the integrated circuit may include an input, such as one or more of a plurality of physical electrical interconnects, that allows connection to an electronic data generation source, such as a CMOS FET sequencing device according to the present invention and/or a Next Gen Sequencer ) configured to generate such data, for example, in the form of multiple sequenced segments, eg reads, genomic data. In specific embodiments, the one or more integrated circuits may include a set of hardware-connected digital logic circuits that are configured to implement a secondary and/or tertiary processing pipeline for the generated genomic data reads, for example, through one or more interconnects.
[0034] В этом случае фиксированные цифровые логические схемы и/или объединяемые межсоединения могут быть сконфигурированы с возможностью получать один или более ридов геномных данных, например, из электронного источника данных. В конкретных вариантах одна или более аппаратно соединенных цифровых логических схем могут быть организованы в виде набора модулей для обработки, например, в виде набора модулей для обработки, где каждый модуль для обработки составлен из поднабора аппаратно соединенных цифровых логических схем и сконфигурирован для выполнения одного или более этапов конвейера секвенирования и/или анализа, например, множества ридов геномных данных. В таких вариантах каждый поднабор аппаратно соединенных цифровых логических схем может, в некоторых вариантах, иметь аппаратно соединенную конфигурацию, позволяющую осуществлять один или более этапов в конвейере секвенирования и/или анализа. Однако, как отмечалось выше, один или более этапов в конвейере секвенирования и/или анализа могут быть реализованы в программном обеспечении, как, например, в случае, когда программное обеспечение и/или аппаратное обеспечение адаптируют для оптимизированного взаимодействия друг с другом в процессе работы.[0034] In this case, fixed digital logic circuits and/or interconnects can be configured to obtain one or more genomic data reads, for example, from an electronic data source. In specific embodiments, one or more hardwired digital logic circuits may be organized as a set of processing modules, for example, a set of processing modules, where each processing module is composed of a subset of hardwired digital logic circuits and is configured to execute one or more stages of a sequencing and/or analysis pipeline, for example, multiple reads of genomic data. In such embodiments, each subset of hardwired digital logic circuits may, in some embodiments, have a hardwired configuration enabling one or more steps in the sequencing and/or analysis pipeline. However, as noted above, one or more steps in the sequencing and/or analysis pipeline may be implemented in software, such as when the software and/or hardware are adapted to interact with each other in an optimized manner during operation.
[0035] Соответственно, в различных вариантах, предложено множество аппаратно соединенных (смонтированных) цифровых логических схем, причем указанные аппаратно соединенные цифровые логические схемы организованы в форме набора модулей обработки, причем один или более модулей обработки включают один или более модулей секвенирования и/или модулей картирования (картировщиков) и/или модулей выравнивания и/или модулей сортировки (сортировщиков) и/или модулей определения вариантов и/или модулей третичной обработки, описанных в настоящем документе. Например, в различных вариантах реализации указанные один или более модулей обработки могут включать модуль картирования (картировцик), причем картировщик может быть электрически соединен и дополнительно может быть сконфигурирован для взаимодействия с памятью, на устройстве, либо может быть связан с ним иным образом, например, посредством подходящим образом скорфигурированного межсоединения с обеспечением доступа к индексу, содержащему одну или более референсных генетических последовательностей, один или более ридов данных, сгенерированных в результате секвенирования, и/или индексу границ сплайсинга (например, в случае секвенирования РНК), при этом картировщик применяется для выполнения одной или более операций картирования.[0035] Accordingly, in various embodiments, a plurality of hardwired digital logic circuits are provided, wherein said hardwired digital logic circuits are organized in the form of a set of processing modules, wherein one or more processing modules includes one or more sequencing modules and/or modules mapping (mappers) and/or alignment modules and/or sorting modules (sorters) and/or variant determination modules and/or tertiary processing modules described in this document. For example, in various embodiments, the one or more processing modules may include a mapping module, wherein the mapper may be electrically coupled and further configured to interface with a memory on the device or otherwise coupled thereto, e.g. through a suitably configured interconnect providing access to an index containing one or more reference genetic sequences, one or more reads generated from sequencing, and/or an index of splice boundaries (for example, in the case of RNA sequencing), wherein the mapper is used to performing one or more mapping operations.
[0036] В частности, подходящим образом сконфигурированные модуль или модули обработки могут включать, либо могут быть адаптированы для применения в качестве модуля картирования, для выполнения одной или более операций картирования, например, включая доступ к индексу одной или более референсных генетических последовательностей из памяти, например, посредством одного или более из множества физических электронных межсоединений, например, таким образом, чтобы картировать множество ридов на один или более на один или более сегментов одной или более референсных генетических последовательностей. Дополнительно, в различных вариантах реализации указанные один или более модулей обработки могут включать модуль выравнивания, который может быть связан (wired) с памятью и может быть сконфигурирован для оценки одной или более референсных генетических последовательностей из памяти, например, посредством одного или более из множества физических электронных межсоединений, например, с возможностью выравнивания множество ридов с одним или большим числом сегментов одной или большего количества референсных генетических последовательностей.[0036] In particular, a suitably configured processing module or modules may include, or may be adapted to be used as a mapping module, to perform one or more mapping operations, for example, including accessing an index of one or more reference genetic sequences from memory, for example, through one or more of a plurality of physical electronic interconnections, for example, so as to map a plurality of reads to one or more to one or more segments of one or more reference genetic sequences. Additionally, in various embodiments, the one or more processing modules may include an alignment module that may be wired to memory and may be configured to evaluate one or more reference genetic sequences from memory, for example, through one or more of a plurality of physical electronic interconnects, for example, with the ability to align multiple reads to one or more segments of one or more reference genetic sequences.
[0037] Далее, в различных вариантах реализации указанные один или более модулей обработки могут включать модуль сортировки, причем указанный модуль сортировки может быть связан (wired) и может быть сконфигурирован для оценки одного или более выровненных ридов из памяти, например, посредством одного или более из множества физических электронных межсоединений, например, с возможностью сортировки каждого выровненного рида, например, в соответствии с одним или большим числом положений этого рида в одном или большем числе референсных геномных последовательностей. В таких вариантах указанные один или более из множества физических электрических межсоединений могут включать вывод интегральной схемы, например, для передачи результирующих данных из модуля картирования и/или модуля выравнивания и/или модуля сортировки. Далее, в конкретных вариантах реализации, как указано выше, один или более модулей обработки могут быть сконфигурированы для взаимодействия с различным программно реализованными функциями, например, посредством одного или более межсоединений, например, множества физических электронных межсоединений, для осуществления одно или более этапов в конвейере анализа, включая реализацию одного или более протоколов секвенирования РНК и/или ДНК и/или протокола определения варианта.[0037] Further, in various embodiments, said one or more processing modules may include a sort module, wherein said sort module may be wired and configured to evaluate one or more aligned reads from memory, for example, by one or more of a plurality of physical electronic interconnects, for example, with the ability to sort each aligned read, for example, according to one or more positions of that read in one or more reference genomic sequences. In such embodiments, said one or more of the plurality of physical electrical interconnections may include an integrated circuit output, for example, for communicating resultant data from a mapping module and/or an alignment module and/or a sorting module. Further, in specific embodiments, as discussed above, one or more processing modules may be configured to interact with various software-implemented functions, for example, through one or more interconnections, for example, a plurality of physical electronic interconnections, to implement one or more steps in the pipeline analysis, including implementation of one or more RNA and/or DNA sequencing protocols and/or variant detection protocol.
[0038] В различных вариантах, множества указанные одна или более электронных схем могут включать главный контроллер с получением соединенной (wired) конфигурации для каждого поднабора аппаратно соединенных цифровых логических схем, например, для выполнения одной или более функций картирования, выравнивания и/или сортировка, причем указанные функции могут быть реализованы в виде одного или более этапов конвейера анализа последовательности и/или могут включать выполнение одного или более аспектов секвенирования и/или функции определения вариантов. Далее, в различных вариантах реализации указанные одно или более интегральных схем, раскрытых в настоящем документе, могут быть выполнены в виде программируемой пользователем вентильной матрицы (FPGA), содержащей аппаратно соединенные цифровые логические схемы, как в случае, когда соединенная конфигурация может быть получена после изготовления интегральной схемы, и, соответственно могут быть энергонезависимыми. В других различных вариантах реализации интегральной схемы специального назначения (ASIC), содержащей аппаратно соединенные цифровые логические схемы. В других различных вариантах реализации интегрированная схема может быть сконфигурирована в виде структурированной интегральной схемы специального назначения (Structured ASIC), содержащей аппаратно соединенные цифровые логические схемы.[0038] In various embodiments, the plurality of one or more electronic circuits may include a main controller to provide a wired configuration for each subset of hardware-connected digital logic circuits, for example, to perform one or more mapping, alignment, and/or sorting functions, wherein said functions may be implemented as one or more stages of a sequence analysis pipeline and/or may include performing one or more aspects of sequencing and/or variant detection functions. Further, in various embodiments, the one or more integrated circuits disclosed herein may be implemented as a field programmable gate array (FPGA) containing hardware-interconnected digital logic circuits, as in the case where the interconnected configuration can be obtained after manufacture integrated circuit, and, accordingly, can be non-volatile. In other various embodiments, an application-specific integrated circuit (ASIC) comprising hardware-interconnected digital logic circuits is implemented. In various other embodiments, the integrated circuit may be configured as a special purpose structured integrated circuit (Structured ASIC) containing hardwired digital logic circuits.
[0039] В некоторых вариантах указанные одна или более интегральных схем, например, выполненных по технологии КМОП на полевых транзисторах для секвенирования, и/или биосенсор, и/или одно или более подсоединяемых запоминающих устройств, могут быть расположены на расширительной плате, такой как плата расширения PCI, например, в различных вариантах реализации интегральная схема (схемы) согласно настоящему изобретению может представлять собой чип (интегральную схему) с картой PCIe. В различных вариантах, интегральная схема и/или чип могут быть компонентами секвенатора, например, автоматизированного секвенатора, в котором используется сенсоры на полевых транзисторах, и/или секвенатора нового поколения (NGS), и/или, в других вариантах реализации может быть обеспечена возможность доступа к интегральной схеме и/или расширительное плате могут через интернет, например, через облако. Далее, в некоторых вариантах, запоминающее устройство может представлять собой энергозависимое ОЗУ (RAM) или динамическое ОЗУ (DRAM).[0039] In some embodiments, the one or more integrated circuits, such as CMOS FET sequencing chips, and/or a biosensor, and/or one or more attachable storage devices, may be located on an expansion board, such as a PCI extensions, for example, in various embodiments, the integrated circuit(s) of the present invention may be a chip(s) with a PCIe card. In various embodiments, the integrated circuit and/or chip may be components of a sequencer, such as an automated sequencer that uses FET sensors and/or a next generation sequencer (NGS), and/or, in other embodiments, may be capable of The integrated circuit and/or expansion board can be accessed via the Internet, for example, via the cloud. Further, in some embodiments, the storage device may be volatile RAM (RAM) or dynamic RAM (DRAM).
[0040] Соответственно, в одном аспекте предложено устройство для выполнения одного или более этапов конвейера анализа последовательности, такого как анализа генетических данных, причем генетические данные включают одно или более из референсной генетической последовательности (последовательностей), индекса одной или более генетической последовательности (последовательностей), индекса одной или более референсной генетической последовательности (последовательностей), индекса одной или более границ сплайсинга, например, аннотированного индекса или таблицы границ сплайсинга, и/или множества ридов, например, генетических данных, например, ДНК или РНК. В различных вариантах устройство может содержать интегральную схему, причем указанная интегральная схема может включать одну или более, например, набор, аппаратно соединенных цифровых логических схем, причем указанный набор аппаратно соединенных цифровых логических схем может быть соединен межсоединениями, например, множеством физических электрических межсоединений. В некоторых вариантах указанные один или более из множества электрических межсоединений могут включать ввод, такой как вводя для получения множества ридов геномных данных, например, с устройства для секвенирования, как описано в настоящем документе. Дополнительно, набор аппаратно соединенных цифровых логических схем может быть дополнительно выполнен в соединенной конфигурации с доступом к индексу одной или более референсных генетических последовательностей и/или аннотированным границам сплайсинга, посредством одного из множества физических электрических межсоединений, и с возможностью картирования множества ридов ДНК и/или РНК на один или более сегментов одной или более референсных генетических последовательностей, например, в соответствии с индексом или индексами.[0040] Accordingly, in one aspect, an apparatus is provided for performing one or more steps of a sequence analysis pipeline, such as genetic data analysis, wherein the genetic data includes one or more of a reference genetic sequence(s), an index of one or more genetic sequence(s) , an index of one or more reference genetic sequence(s), an index of one or more splice boundaries, such as an annotated index or splice boundary table, and/or a set of reads, such as genetic data, such as DNA or RNA. In various embodiments, the device may comprise an integrated circuit, wherein said integrated circuit may include one or more, for example, a set of hardwired digital logic circuits, wherein said set of hardwired digital logic circuits can be connected by interconnections, for example, a plurality of physical electrical interconnections. In some embodiments, said one or more of a plurality of electrical interconnections may include an input, such as an input to obtain multiple reads of genomic data, for example, from a sequencing device, as described herein. Additionally, a set of hardware-connected digital logic circuits may be further implemented in a connected configuration with access to an index of one or more reference genetic sequences and/or annotated splice boundaries, through one of a plurality of physical electrical interconnects, and with the ability to map multiple DNA reads and/or RNA into one or more segments of one or more reference genetic sequences, for example, according to an index or indexes.
[0041] В различных вариантах реализации индекс может включать одну или более хеш-таблиц, таких как первичная и/или вторичная и/или таблица границ сплайсинга. Например, может присутствовать первичная хеш-таблица, причем в таком варианте набор аппаратно соединенных цифровых логических схем может быть сконфигурирован для выполнения одной из следующих операций: извлечения одной или более затравок генетических данных из множества ридов генетических данных; выполнения первичной функции хеширования, например, с одной или более затравками генетических данных, к генерацией справочного адреса для каждой из одной или более затравок, и оценки первичной хеш-таблицы с применением справочного адреса с получением положения в одном или большем числе референсных геномных последовательностей для каждой из одной или более затравок генетических данных. В различных вариантах указанные одна или более затравок генетических данных могут содержать фиксированное число нуклеотидов.[0041] In various embodiments, the index may include one or more hash tables, such as a primary and/or secondary and/or splice boundary table. For example, a primary hash table may be present, in which case a set of hardwired digital logic circuits may be configured to perform one of the following operations: extract one or more genetic data seeds from a plurality of genetic data reads; performing a primary hashing function, for example, with one or more genetic data seeds, generating a reference address for each of the one or more seeds, and evaluating a primary hash table using the reference address to obtain a position in one or more reference genomic sequences for each from one or more genetic data seeds. In various embodiments, said one or more genetic data seeds may contain a fixed number of nucleotides.
[0042] Далее, в различных вариантах реализации индекс может включать вторичную хеш-таблицу, например, как в случае, когда набор аппаратно соединенных цифровых логических схем сконфигурирован для по меньшей мере одного из следующего: удлинения по меньшей мере одной из одной или более затравок за счет дополнительных соседних нуклеотидов с получением по меньшей мере одной удлиненной затравки генетических данных; выполнения функции хеширования, например, вторичной функции хеширования в отношении по меньшей мере одной удлиненной затравки генетических данных с генерацией второго справочного адреса для по меньшей мере одной удлиненной затравки, и оценки вторичной хеш-таблицы, например, с применением второго справочного адреса, с получением положения в одной или более референсных генетических последовательностей для каждой из одной или более удлиненных затравок генетических данных. В различных вариантах вторичная функция хеширования может быть выполнена набором аппаратно соединенных цифровых логических схем, например, как в случае, когда первичная хеш-таблица возвещает запись об удлинении, которая является инструкцией для аппаратно соединенных цифровых логических схем удлинить одну или более затравок дополнительными соседними нуклеотидами. В некоторых вариантах запись об удлинении может указывать число дополнительны соседних нуклеотидов, которыми следует удлинить указанную по меньшей мере одну затравку, и/или способ, которым следует удлинить затравку, например, одинаковым образом на равное число “x” нуклеотидов по каждому из концов затравки.[0042] Further, in various embodiments, the index may include a secondary hash table, for example, as in the case where a set of hardwired digital logic circuits is configured to at least one of the following: extend at least one of one or more seeds for counting additional adjacent nucleotides to produce at least one extended genetic data seed; performing a hash function, such as a secondary hash function, on the at least one extended genetic data seed, generating a second reference address for the at least one extended seed, and evaluating a secondary hash table, such as using the second reference address, obtaining a position in one or more reference genetic sequences for each of the one or more extended genetic data seeds. In various embodiments, the secondary hashing function may be performed by a set of hardwired digital logic circuits, such as when the primary hash table announces an extension entry, which is an instruction to the hardwired digital logic circuitry to extend one or more seeds with additional adjacent nucleotides. In some embodiments, the extension entry may indicate the number of additional adjacent nucleotides with which the at least one primer should be extended, and/or the manner in which the primer should be extended, for example, by an equal number of “x” nucleotides at each end of the primer in the same manner.
[0043] Далее, как известно, ДНК кодирует гены. Однако для экспрессии гена необходима трансляция и транскрипция генетического кода в белки. В частности, ген может транскрибироваться в ядре клетки ферментами РНК-полимеразами в транскрипт - матричную (информационную) РНК (мРНК) или другие типы РНК (например, транспортную РНК). Непосредственно РНК-транскрипт представляет собой однонитевую копию гена, за тем исключением, что основание тимин (Т), присутствующее в ДНК, заменено на урацил (U). Однако сразу после образования этой копии ее последовательность включает копии как различных экзонов, так и интронов, причем различные копии интронов обычно вырезаются в процессе сплайсинга, например, сплайсосомами, в результате чего остаются только копии экзонов, которые должны быть соединены друг с другом по “стыкам (точкам, границам) сплайсинга” (которые после этого не всегда можно легко выявить), с образованием областей кодонов. Затем сплайсированная мРНК, содержащая области кодонов, транспортируется из ядра клетки на рибосому, которая расшифровывает ее в белок, при этом каждая группа из трех нуклеотидов РНК образует кодон, который кодирует одну аминокислоту. В ходе процесса расшифровки происходит связывание аминокислот в цепочки, а в результате связывания и гликозилирования образуются белки, из которых состоят клетки, ткани и органы организма. Таким образом гены в ДНК выполняют функцию исходных инструкций для производства белков.[0043] Further, DNA is known to encode genes. However, gene expression requires translation and transcription of the genetic code into proteins. In particular, a gene can be transcribed in the cell nucleus by RNA polymerase enzymes into a transcript - messenger RNA (mRNA) or other types of RNA (for example, transfer RNA). The RNA transcript itself is a single-stranded copy of the gene, except that the base thymine (T) present in the DNA is replaced by uracil (U). However, immediately after the formation of this copy, its sequence includes copies of both various exons and introns, and the various copies of introns are usually excised during the splicing process, for example, by spliceosomes, leaving only copies of exons that must be connected to each other at “junctions” (points, boundaries) of splicing” (which after this cannot always be easily identified), with the formation of codon regions. The spliced mRNA containing the codon regions is then transported from the cell nucleus to the ribosome, which transcribes it into protein, with each group of three RNA nucleotides forming a codon that codes for one amino acid. During the decoding process, amino acids are linked into chains, and as a result of binding and glycosylation, proteins are formed that make up the cells, tissues and organs of the body. In this way, genes in DNA function as the initial instructions for producing proteins.
[0044] Соответственно, поскольку ДНК включает как кодирующие области, например, экзоны, так и некодирующие области, например, интроны, картирование и/или выравнивание и/или сортировка РНК относительно исходного генетического предшественника в геномной ДНК могут быть затруднены. В частности, каждый ген существует на одной нити двунитевой двойной спирали ДНК, часто в виде ряда экзонов (кодирующих сегментов), разделенных интронами (некодирующими сегментами). Некоторые гены содержат единственный экзон, но большинство содержит несколько экзонов (разделенных интронами), а некоторые содержат сотни экзонов или тысячи экзонов. Длина экзонов обычно составляет несколько сотен нуклеотидов, но они могут быть и меньшей длины, до одного нуклеотида, или большей длины до десятков, сотен или тысяч нуклеотидов. Длина интронов обычно составляет тысячи нуклеотидов, А у некоторых превосходит миллион нуклеотидов. Соответственно, при картировании, выравнивании, и/или сортировке по РНК, например, сплайсированной мРНК, части этой сплайсированной мРНК могут происходить из различных областей ДНК, которые могут быть отделены друг от друга одним, или двумя, или даже миллионом или более нуклеотидов. Это обуславливает высокую сложность обработки РНК.[0044] Accordingly, since DNA includes both coding regions, such as exons, and non-coding regions, such as introns, mapping and/or alignment and/or sorting of RNA relative to the original genetic precursor in genomic DNA can be difficult. Specifically, each gene exists on a single strand of a double-stranded DNA double helix, often as a series of exons (coding segments) separated by introns (non-coding segments). Some genes contain a single exon, but most contain several exons (separated by introns), and some contain hundreds of exons or thousands of exons. Exons are usually several hundred nucleotides in length, but they can be shorter, up to one nucleotide, or longer, up to tens, hundreds, or thousands of nucleotides. The length of introns is usually thousands of nucleotides, and in some it exceeds a million nucleotides. Accordingly, when mapping, aligning, and/or sorting into RNA, such as spliced mRNA, portions of that spliced mRNA may come from different regions of DNA that may be separated from each other by one, or two, or even a million or more nucleotides. This makes RNA processing highly complex.
[0045] Однако один из аспектов настоящего изобретения позволяет преодолеть эти сложности благодаря способам, раскрытым в настоящем документе, и, соответственно, обеспечивает возможность быстрого и точного полнотранскриптомного секвенирования, картирования, выравнивания и/или сортировки РНК. Более конкретно, в вариантах, включающих обработку РНК, указанный выше индекс может включать одну или более таблиц, например, хеш-таблицу или другой индекс, включающих или связанных с таблицей, которая позволяет легко обращаться к различным известными или определенным границам сплайсинга, применяемым в биологических системах при транскрибировании РНК с ДНК, как подробно описано ниже. Соответственно, в таких вариантах РНК-компетентный модуль картирования/модуль сортировки может быть сконфигурирован для обработки таких границ сплайсинга и сопоставления ридов последовательности РНК с сегментами транскрибированной и сплайсированной РНК, как в случае, когда рид пересекает одну или более границ сплайсинга; что, в отношении ДНК-ориентированного референсного генома означает, что первая часть рида происходит из первого экзона и должна картироваться на первый экзон, а вторая часть рида происходит из второго экзона и должна картироваться на него, а так далее. Соответственно, индекс может включать или быть связанным с одной или более таблиц границ сплайсинга, а набор аппаратно соединенных цифровых логических схем может быть сконфигурирован для выполнения одной из следующих операций: применения указанных данных о границах сплайсинга для определения и/или извлечения одной или более затравок генетических данных, например, РНК, из множества ридов генетических данных на основе РНК; выполнения функции, например, функции хеширования, например, для указанных одной или более затравок генетических РНК-данных, с генерацией справочного адреса для каждой из указанных одной или более затравок; и оценки хеш-таблицы с применением справочного адреса с получением положения в одном или большем числе референсных геномных последовательностей для каждой из указанных одной или более затравок генетических РНК-данных.[0045] However, one aspect of the present invention overcomes these difficulties through the methods disclosed herein and accordingly allows for rapid and accurate whole transcriptome sequencing, mapping, alignment and/or sorting of RNA. More specifically, in embodiments involving RNA processing, the above index may include one or more tables, such as a hash table or other index, including or associated with a table that allows easy access to various known or defined splice boundaries used in biological systems when transcribing RNA from DNA, as described in detail below. Accordingly, in such embodiments, the RNA-competent mapping/sorting module may be configured to process such splice boundaries and match RNA sequence reads to segments of transcribed and spliced RNA, such as when the read crosses one or more splice boundaries; which, in relation to a DNA-based reference genome, means that the first part of the read comes from the first exon and should map to the first exon, and the second part of the read comes from the second exon and should map to it, and so on. Accordingly, the index may include or be associated with one or more splice boundary tables, and a set of hardwired digital logic circuits may be configured to perform one of the following operations: apply said splice boundary data to determine and/or retrieve one or more genetic seeds data, such as RNA, from multiple RNA-based genetic data reads; performing a function, for example, a hashing function, for example, on said one or more RNA genetic data seeds, generating a reference address for each of said one or more seeds; and evaluating a hash table using the reference address to obtain a position in one or more reference genomic sequences for each of the one or more RNA genetic data seeds.
[0046] Дополнительно, в одном аспекте предложено устройство для выполнения одного или более этапов конвейера анализа последовательности по данным генетической последовательности, например, ДНК или РНК, где указанные данные генетической последовательности включают одну генетическую последовательность или множество генетических последовательностей, которые могут включать как экзоны, так и интроны, индекс одной или более референсных генетических последовательностей и/или индекс аннотированных границ сплайсинга, и множество ридов геномных. В различных вариантах, устройство может включать интегральную схему, причем указанная интегральная схема может включать одну или более, например, набор, аппаратно соединенных цифровых логических схем, причем указанный набор аппаратно соединенных цифровых логических схем может быть соединен межсоединениями, например, множеством физических электрических межсоединений. В некоторых вариантах указанные одно или более из множества физических электрических межсоединений могут включать ввод, такой как ввод для получения множества ридов геномных данных, причем риды могут быть предварительно обработаны как описано в настоящем документе, например, могут быть картированы. Дополнительно, набор аппаратно соединенных цифровых логических схем может быть дополнительно соединен с обеспечением доступа к одной или более референсных генетических последовательностей, посредством одного из множества физических электрических межсоединений, для получения информации о положении, например, от картировщика, указывающей один или более сегментов одной или более референсных последовательностей, и для выравнивания множества ридов с указанными одним или более сегментами одной или более референсных генетических последовательностей.[0046] Additionally, in one aspect, an apparatus is provided for performing one or more sequence analysis pipeline steps on genetic sequence data, such as DNA or RNA, wherein said genetic sequence data includes a single genetic sequence or a plurality of genetic sequences, which may include both exons, and introns, an index of one or more reference genetic sequences and/or an index of annotated splice boundaries, and a set of genomic reads. In various embodiments, the device may include an integrated circuit, wherein said integrated circuit may include one or more, for example, a set of hardwired digital logic circuits, wherein said set of hardwired digital logic circuits can be connected by interconnections, for example, a plurality of physical electrical interconnections. In some embodiments, said one or more of a plurality of physical electrical interconnections may include an input, such as an input to obtain a plurality of genomic data reads, which reads may be preprocessed as described herein, eg, mapped. Additionally, a set of hardwired digital logic circuits may be further coupled to provide access to one or more reference genetic sequences, through one of a plurality of physical electrical interconnections, to obtain position information, for example, from a mapper, indicating one or more segments of one or more reference sequences, and for aligning multiple reads to said one or more segments of one or more reference genetic sequences.
[0047] Соответственно, в различных вариантах, набор аппаратно соединенных цифровых логических схем в соединенной (wired), сконфигурирован для выравнивания множества ридов генетических данных ДНК РНК с одним или большим числом сегментов одной или более референсных генетических последовательностей и дополнительно включают модуль волновой обработки данных, который может быть образован соединенной конфигурацией набора аппаратно соединенных цифровых логических схем. В некоторых вариантах реализации указанный модуль волновой обработки данных может быть сконфигурирован для обработки массива элементов матрицы выравнивания, такой как матрица, задаваемая поднабором набора аппаратно соединенных цифровых логических схем. Например, в некоторых вариантах матрица выравнивания может задавать первую ось, например, представляющую один из множества ридов, и вторую ось, например, представляющую один или более сегментов одной или более референсных генетических последовательностей. В таком варианте указанный модуль волновой обработки данных может быть сконфигурирован для генерации профиля фронта волны лунок, которые расположен по массиву элементов от первой оси до второй оси, и также может быть сконфигурирован для генерации балла, например, балла для каждого элемента в волновом профиле элементов, где указанный балл может представлять степень совпадения указанного одного из множества ридов и одного или более сегментов одной или более референсных генетических последовательностей.[0047] Accordingly, in various embodiments, a set of wired digital logic circuits is configured to align a plurality of DNA RNA genetic data reads to one or more segments of one or more reference genetic sequences, and further includes a waveform processing module, which may be formed by a connected configuration of a set of hardware-connected digital logic circuits. In some embodiments, said waveform processing module may be configured to process an array of alignment matrix elements, such as a matrix defined by a subset of a set of hardwired digital logic circuits. For example, in some embodiments, the alignment matrix may define a first axis, for example, representing one of a plurality of reads, and a second axis, for example, representing one or more segments of one or more reference genetic sequences. In such an embodiment, said waveform processing module may be configured to generate a wave front profile of dimples that are located along an element array from a first axis to a second axis, and may also be configured to generate a score, for example, a score for each element in the element waveform profile, wherein said score may represent the degree of match between said one of the plurality of reads and one or more segments of one or more reference genetic sequences.
[0048] В таком варианте указанный модуль волновой обработки данных может быть дополнительно сконфигурирован для перемещения профиля фронта волны элементов по матрице выравнивания таким образом, что наивысший балл может быть центрирован на профиле фронта волны лунок. Дополнительно, в различных вариантах реализации указанный модуль волновой обработки данных может быть дополнительно сконфигурирован для обратного отслеживания одного или более, например, всех положений в профиле волны элементов с присвоенными баллами по предшествующим положениям в матрице выравнивания; отслеживания одного или более, например, всех отслеженных траекторий до схождения, и генерации строки CIGAR на основании следа схождения.[0048] In such an embodiment, said waveform processing module may be further configured to move the wavefront profile of the elements across the alignment matrix such that the highest score may be centered on the wavefront profile of the wells. Additionally, in various embodiments, said wave processing module may be further configured to track back one or more, for example, all positions in the wave profile of elements assigned scores by preceding positions in the alignment matrix; tracking one or more, for example, all tracked trajectories to convergence, and generating a CIGAR string based on the convergence trace.
[0049] В некоторых вариантах реализации соединенная конфигурация набора аппаратно соединенных цифровых логических схем для выравнивания множества ридов с одним или большим числом сегментов одной или более референсных генетических последовательностей может включать соединенную конфигурацию для применения алгоритма Барроуза-Уилера, как описано выше, например, для картирования перед выравниванием, и/или для реализации алгоритма оценки Смита-Уотермана и/или Нидлмана-Вунша. В таком варианте алгоритм оценки Смита-Уотермана и/или Нидлмана-Вунша может быть сконфигурирован для реализации параметра оценки, чувствительного к оценкам качества оснований. Далее, в некоторых вариантах реализации алгоритм оценки Нидлмана-Вунша может представлять собой аффинный алгоритм Нидлмана-Вунша.[0049] In some embodiments, a connected configuration of a set of hardwired digital logic circuits for aligning multiple reads to one or more segments of one or more reference genetic sequences may include a connected configuration for applying the Burrows-Wheeler algorithm as described above, for example, for mapping before alignment, and/or to implement the Smith-Waterman and/or Needleman-Wunsch estimation algorithm. In such an embodiment, the Smith-Waterman and/or Needleman-Wunsch scoring algorithm may be configured to implement a scoring parameter that is sensitive to the quality scores of the grounds. Further, in some embodiments, the Needleman-Wunsch estimation algorithm may be an affine Needleman-Wunsch algorithm.
[0050] В конкретных вариантах реализации устройство может включать интегральную схему, причем указанная интегральная схема может включать одну или более, например, набор аппаратно соединенных цифровых логических схем, причем указанный набор аппаратно соединенных цифровых логических схем может быть соединен межсоединениями, например, множеством физических электрических межсоединений. В некоторых из этих вариантов указанные одно или более из множества физических электрических межсоединений могут включать ввод, такой как ввод для получения множества ридов геномных данных, причем риды могут быть предварительно обработаны как описано в настоящем документе, например, могут быть картированы и/или выровнены. Дополнительно, набор аппаратно соединенных цифровых логических схем может дополнительно находиться в соединенной конфигурации, которая обеспечивает доступ к одной или большему числу генетических последовательностей, посредством одного из множества физических электрических межсоединений, для получения информации о положении, например, от модуля картирования и/или модуля выравнивания, которая указывает на один или более сегментов одной или более референсных последовательностей, и для сортировки множества ридов с одним или большим числом сегментов одной или более референсных генетических последовательностей.[0050] In specific embodiments, a device may include an integrated circuit, wherein said integrated circuit may include one or more, for example, a set of hard-wired digital logic circuits, wherein said set of hard-wired digital logic circuits can be interconnected by, for example, a plurality of physical electrical interconnections. In some of these embodiments, said one or more of a plurality of physical electrical interconnections may include an input, such as an input to obtain a plurality of reads of genomic data, wherein the reads may be preprocessed as described herein, for example, mapped and/or aligned. Additionally, a set of hardwired digital logic circuits may further be in an interconnected configuration that provides access to one or more genetic sequences, through one of a plurality of physical electrical interconnections, to obtain position information, for example, from a mapping module and/or an alignment module , which points to one or more segments of one or more reference sequences, and for sorting multiple reads with one or more segments of one or more reference genetic sequences.
[0051] Соответственно, в одном аспекте может быть предложен способ секвенирования генетического материала, например, для получения электронных генетических данных. В конкретных вариантах указанный способ включает применение секвенатора следующего поколения для секвенирования геномной ДНК и/или соответствующей РНК, как описано в общих чертах в настоящем документе и как известно в данной области. В других вариантах указанный способ включает применение секвенатора следующего поколения, модифицированного, как описано в настоящем документе, для секвенирования геномной ДНК и/или соответствующей РНК. В других вариантах указанный способ включает применение секвенатора на полевых транзисторах и/или на основе технологии КМОП, например, секвенатора на чипе, как подробно описано в настоящем документе, для секвенирования геномной ДНК и/или соответствующей РНК. В различных вариантах генетический материал после получения может быть преобразован в электронную форму, например, в цифровую форму, которую можно передавать потоком или иным образом переносить в один или более модулей конвейера, описанных в настоящем документе.[0051] Accordingly, in one aspect, a method may be provided for sequencing genetic material, for example, to obtain electronic genetic data. In specific embodiments, the method includes using a next generation sequencer to sequence genomic DNA and/or corresponding RNA, as described generally herein and as known in the art. In other embodiments, the method includes using a next generation sequencer modified as described herein to sequence genomic DNA and/or corresponding RNA. In other embodiments, the method involves using a FET and/or CMOS sequencer, such as an on-chip sequencer as described in detail herein, to sequence genomic DNA and/or corresponding RNA. In various embodiments, the genetic material, once received, can be converted into electronic form, such as digital form, which can be streamed or otherwise transferred to one or more pipeline modules described herein.
[0052] Дополнительно, после получения электронных, например, аналоговых или цифровых генетических данных, таких как данные секвенирования, другой аспект настоящего изобретения относится к исполнению последовательных операций конвейера анализа последовательности с такими данными секвенирования генетического материала. Эти генетические данные могут включать одну или более референсных генетических последовательности, один или более индекс йодной или более референсных генетических последовательностей и/или список одной или более аннотированных границ сплайсинга (например, в случае секвенирования РНК), относящихся к ним, и/или множество ридов геномных данных (например, ДНК и/или РНК). Способ может включать одно или более различных итераций приема, оценки, картирования, выравнивания, и/или сортировки указанных данных генетической последовательности. Например, в некоторых вариантах реализации способ может включать прием, на входе интегральной схемы от источника электронных данных, одного или более из множества ридов геномных данных, причем каждый геномных данных может включать последовательность нуклеотидов. В таком варианте интегральная схема может быть образована набором аппаратно соединенных цифровых логических схем, например, соединенных множеством физических электрических межсоединений, причем указанные электрические межсоединения могут включать одно или более из множества физических электрических межсоединений, включающих ввод.[0052] Additionally, after receiving electronic, eg analog or digital genetic data, such as sequencing data, another aspect of the present invention relates to performing sequential sequence analysis pipeline operations on such sequencing data of genetic material. This genetic data may include one or more reference genetic sequences, one or more iodine index or more reference genetic sequences, and/or a list of one or more annotated splice boundaries (e.g., in the case of RNA sequencing) associated therewith, and/or a set of reads genomic data (e.g. DNA and/or RNA). The method may include one or more different iterations of receiving, evaluating, mapping, aligning, and/or sorting said genetic sequence data. For example, in some embodiments, a method may include receiving, as input to an integrated circuit from an electronic data source, one or more reads of genomic data, wherein each genomic data may include a nucleotide sequence. In such an embodiment, the integrated circuit may be formed by a set of hardware-connected digital logic circuits, for example, connected by a plurality of physical electrical interconnections, which electrical interconnections may include one or more of a plurality of physical electrical interconnections including an input.
[0053] Способ может дополнительно включать оценку, интегральной схемой на одной или более из множества физических электрических межсоединений от запоминающего устройства, индекса одной или более референсных генетических последовательностей и/или, в случае секвенирования РНК, аннотированных границ сплайсинга. В частности, если в модуль картирования поступают аннотированные границы сплайсинга, они могут быть использованы для повышения чувствительности картирования. В таком варианте список аннотированных границ можно загрузить в запоминающие устройство таким образом, чтобы модуль картирования имел к нему доступ, что облегчает картирование генетического материала РНК. В предпочтительном варианте аннотированные границы могут быть представлены в форме таблицы, например, например, хеш-таблицы или индекса, который может быть связан с ней таким образом, чтобы модуль каритирования легко могу получить к ним доступ. Соответственно, способ может включать картирование, первым поднабором аппаратно соединенных цифровых логических схем интегральной схемы, множества генетических ридов, например, ридов ДНК или РНК, по одному или более сегментом одной или более референсных генетических последовательностей. Дополнительно, способ может включать оценку, интегральной схема на одном или более из множества физических электрических межсоединений от запоминающего устройства, указанных одного или более картированных ридов риды и/или референсных генетических последовательностей; и выравнивание, вторым поднабором аппаратно соединенных цифровых логических схем интегральной схемы, множества ридов, например, картированных ридов, с одним или большим числом сегментов одной или более референсных генетических последовательностей.[0053] The method may further include estimating, by the integrated circuit at one or more of a plurality of physical electrical interconnects from the storage device, an index of one or more reference genetic sequences and/or, in the case of RNA sequencing, annotated splice boundaries. In particular, if annotated splice boundaries are supplied to the mapping module, they can be used to improve the sensitivity of mapping. In such an embodiment, the list of annotated boundaries can be loaded into the storage device so that the mapping module can access it, thereby facilitating the mapping of RNA genetic material. Preferably, the annotated boundaries may be in the form of a table, such as a hash table or index, which may be associated with it so that it can be easily accessed by the mapping module. Accordingly, the method may include mapping, by a first subset of hardware-connected digital integrated circuit logic circuits, a plurality of genetic reads, such as DNA or RNA reads, one or more segments at a time of one or more reference genetic sequences. Additionally, the method may include evaluating, on an integrated circuit, one or more of a plurality of physical electrical interconnections from a storage device, said one or more mapped reads, reads, and/or reference genetic sequences; and aligning, by a second subset of hardware-connected integrated circuit digital logic circuits, a plurality of reads, eg, mapped reads, with one or more segments of one or more reference genetic sequences.
[0054] В различных вариантах реализации способ может дополнительно включать оценку, интегральной схемой на одном или более из множества физических электрических межсоединений от памяти, выровненного множества ридов ридов. В таком варианте способ может включать сортировку, третьим поднабором аппаратно соединенных цифровых логических схем интегральной схемы, выровненного множества ридов в соответствии с их положениями в одной или большем числе референсных геномных последовательностей. В некоторых вариантах способ может дополнительно включать вывод, например, на одном или более из множества физических электрических межсоединений интегральной схемы, результирующих данных картирования, и/или выравнивания и/или сортировки, как в случае, когда результирующие данные включают положения картированного, и/или выровненного, и/или отсортированного множества ридов.[0054] In various embodiments, the method may further include estimating, by the integrated circuit on one or more of the plurality of physical electrical interconnects from the memory, an aligned set of reads of reads. In such an embodiment, the method may include sorting, by a third subset of hardware-connected integrated circuit digital logic circuits, an aligned set of reads according to their positions in one or more reference genomic sequences. In some embodiments, the method may further include outputting, for example, on one or more of a plurality of physical electrical interconnects of the integrated circuit, the resulting mapping and/or alignment and/or sorting data, as in the case where the resulting data includes mapped positions and/or an aligned and/or sorted set of reads.
[0055] Далее, после генерации и/или обработки генетических данных, например, в одном или большем числе протоколов вторичной обработки, например, путем картирования, выравнивания и/или сортировки, например, с получением одного или более файлов определения вариантов, например, для определения того, как указанные данные генетической последовательности субъекта отличаются от одной или более референсных последовательностей, дополнительный аспект настоящего изобретения может быть связан с выполнением одной или более аналитических функций с сгенерированными и/или обработанными генетическими данным, например, для дальнейшей третичной обработки. Например, система может быть сконфигурирована для дальнейшей обработки сгенерированных данных и/или данных после вторичной обработки, например, путем обработки в одном или большем числе конвейеров третичной обработки, например, одном или более из геномного конвейера, эпигеномного конвейера, метагеномного конвейера, конвейера совместного генотипирования, конвейера MuTect2 или другого конвейера третичной обработки. В частности, в различных вариантах, может быть предложен дополнительный уровень обработки, например, для диагностики заболеваний, терапевтического лечения и/или профилактического лечения, такого как с применением процедур NIPT, NICU, Cancer, LDT, AgBio (сельскохозяйственный и биологический анализ) и других подобных процедур для диагностики, профилактики и/или лечения заболеваний, с применением данных, сгенерированных одним или более из представленных первичных, и/или вторичных, и/или третичных конвейеров. Соответственно, устройства и способы, раскрытые в настоящем документе, можно применять для генерирования данных о генетических последовательностях, причем указанные данные могут затем применяться для генерации одного или более файлов определения вариантов и/или других связанных данных, которые затем могут быть переданы для обработки в конвейерах третичной обработки в соответствии с устройствами и способами, раскрытыми в настоящем документе, например, для частной и/или общей диагностики заболеваний, а также для профилактического и/или терапевтического лечения и/или, для приложений, связанных с развитием.[0055] Next, after generating and/or processing the genetic data, for example, in one or more secondary processing protocols, for example, by mapping, alignment and/or sorting, for example, producing one or more variant definition files, for example, for determining how specified genetic sequence data of a subject differs from one or more reference sequences, a further aspect of the present invention may involve performing one or more analytical functions on the generated and/or processed genetic data, for example, for further tertiary processing. For example, the system may be configured to further process generated and/or secondary processed data, for example, by processing in one or more tertiary processing pipelines, for example, one or more of a genomic pipeline, an epigenomic pipeline, a metagenomic pipeline, a co-genotyping pipeline , MuTect2 pipeline or other tertiary processing pipeline. In particular, in various embodiments, an additional level of processing may be provided, for example, for disease diagnosis, therapeutic treatment and/or prophylactic treatment, such as using NIPT, NICU, Cancer, LDT, AgBio (agricultural and biological analysis) procedures and others similar procedures for the diagnosis, prevention and/or treatment of diseases, using data generated by one or more of the presented primary and/or secondary and/or tertiary pipelines. Accordingly, the devices and methods disclosed herein can be used to generate genetic sequence data, which data can then be used to generate one or more variant definition files and/or other associated data, which can then be submitted for processing in pipelines tertiary processing in accordance with the devices and methods disclosed herein, for example, for specific and/or general diagnosis of diseases, as well as for preventive and/or therapeutic treatment and/or, for developmental applications.
[0056] Соответственно, в различных вариантах, варианты реализации различных аспектов настоящего изобретения могут включать, но не ограничиваются следующими: устройства, системы и способы, включающие один или более признаков, подробно описанных в настоящем документе, а также изделия, которые содержат материальный машиночитаемый носитель, выполненный с возможностью заставлять одну или более машин (например, компьютеров, и т.д.) выполнять операции, описанные в настоящем документе. Аналогичным образом, также описаны компьютерные системы и/или сети, которые могут включать один или более процессоров и/или одно или более запоминающих устройств, связанных с указанным одним или более процессорами напрямую или удаленно. Соответственно, реализуемые при помощи компьютера способы, соответствующие одному или более вариантов реализации настоящего изобретения, могут быть реализованы посредством одного или более процессора данных, расположенного в одной вычислительной системе или во множестве вычислительных систем, например, в одном или более кластерах компьютеров. Такие множественные системы вычислений могут быть связаны с и могут обмениваться данными и/или командами или другими инструкциями и т.п. посредством одного или более соединений, включая следующие, но не ограничиваясь ими: соединение через сеть (например, интернет, беспроводную глобальную сеть, локальную сеть, глобальную сеть, проводную сеть и т.п.), или посредством прямого соединения между оной или более вычислительными системами и т.п. Память, которая может включать машиночитаемый носитель для хранения информации, может содержать, кодировать, хранить и т.п. одну или более программ, которые заставляют процессор выполнять одну или более операций, описанных в настоящем документе.[0056] Accordingly, in various embodiments, embodiments of various aspects of the present invention may include, but are not limited to: devices, systems and methods incorporating one or more of the features described in detail herein, as well as articles that include a tangible computer-readable medium configured to cause one or more machines (eg, computers, etc.) to perform the operations described herein. Likewise, computer systems and/or networks are also described that may include one or more processors and/or one or more storage devices coupled to said one or more processors directly or remotely. Accordingly, computer-implemented methods in accordance with one or more embodiments of the present invention may be implemented by one or more data processors located on a single computing system or multiple computing systems, such as one or more computer clusters. Such multiple computing systems may be coupled to and may exchange data and/or commands or other instructions and the like. through one or more connections, including, but not limited to: a connection through a network (e.g., the Internet, wireless wide area network, local area network, wide area network, wired network, etc.), or through a direct connection between one or more computing systems, etc. The memory, which may include a computer-readable medium for storing information, may contain, encode, store, and the like. one or more programs that cause the processor to perform one or more of the operations described herein.
[0057] Варианты реализации описанного в настоящем документе объекта подробно раскрыты ниже на прилагающихся к тексту графических материалах и в описании ниже. Другие признаки и преимущества описанного в настоящем документе объекта станут понятны из описания и графических материалов, а также из формулы изобретения. В то время как некоторые признаки описанного здесь объекта в иллюстративных целях раскрыты применительно к корпоративной программной системе или другим бизнес-решениям или архитектуре, очевидно, что такие признаки не являются ограничивающими. Предполагается, что признаки, которые следуют за этим раскрытием, определяют объем защищенного объекта.[0057] Options for implementing the object described in this document are disclosed in detail below in the accompanying graphics and in the description below. Other features and advantages of the subject matter described herein will become apparent from the description and drawings, as well as from the claims. While certain features of the subject matter described herein are disclosed for illustrative purposes in relation to an enterprise software system or other business solution or architecture, such features are not intended to be limiting. It is assumed that the features that follow this disclosure determine the scope of the protected object.
ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВDESCRIPTION OF GRAPHIC MATERIALS
[0058] Сопровождающие настоящий текст графические материалы, которые включены в настоящее описание и составляют его часть, иллюстрируют некоторые аспекты раскрытого здесь объекта и, вместе с описанием, служат для объяснения некоторых принципов, связанных с раскрытыми вариантами реализации. В этих графических материалах:[0058] The accompanying drawings, which are included in and constitute a part of this specification, illustrate certain aspects of the subject matter disclosed herein and, together with the description, serve to explain certain principles associated with the disclosed embodiments. In these graphic materials:
[0059] На ФИГ. 1 изображен РНК-рид, иллюстрирующий пересечение между одной или более границами (точками) и затравки, покрывающие границы сплайсинга рида.[0059] In FIG. 1 depicts an RNA read illustrating the intersection between one or more boundaries (dots) and primers covering the splice boundaries of the read.
[0060] На ФИГ. 2 изображен пример РНК-рида, иллюстрирующий, что короткие (L оснований) затравки можно сконфигурировать таким образом, чтобы они лучше вписывались в короткие экзоны и учитывали выступающие части экзонов или сегменты экзонов, вырезаемые при редактировании, такие как однонуклеотидные полиморфизмы (SNP).[0060] In FIG. Figure 2 shows an example RNA read illustrating that short (L bases) primers can be configured to better fit short exons and account for exon overhangs or exon segments excised during editing, such as single nucleotide polymorphisms (SNPs).
[0061] На ФИГ. 3 изображены примеры референсных интервалов в пределах диапазона поиска успешно картированных затравок из K-оснований, которые могут быть использованы для запроса в фиксированной хеш-таблице затравок, например, с использованием затравок из L оснований.[0061] In FIG. 3 depicts examples of reference intervals within the search range of successfully mapped K-base seeds that can be used to query a fixed seed hash table, for example, using L-base seeds.
[0062] На ФИГ. 4 показано сравнений частей ридов слева и справа от положения сшивки.[0062] In FIG. Figure 4 shows comparisons of parts of the reads to the left and right of the stitching position.
[0063] На ФИГ. 5 изображен абстрактный прямоугольник выравнивания с конкатенированной последовательностью запроса по вертикальной оси и конкатенированной референсной последовательностью по горизонтальной оси.[0063] In FIG. 5 shows an abstract alignment rectangle with the concatenated query sequence on the vertical axis and the concatenated reference sequence on the horizontal axis.
[0064] На ФИГ. 6 показано устройство в соответствии с одним из вариантов реализации настоящего изобретения.[0064] In FIG. 6 shows a device in accordance with one embodiment of the present invention.
[0065] ФИГ. 7 показано другое устройство в соответствии с альтернативным вариантом реализации настоящего изобретения.[0065] FIG. 7 shows another device in accordance with an alternative embodiment of the present invention.
[0066] На ФИГ. 8 изображена блок-диаграмма геномной инфраструктуры для локальных и/или облачных обработки и анализа методами геномики.[0066] In FIG. 8 shows a block diagram of the genomic infrastructure for local and/or cloud processing and analysis using genomics methods.
[0067] На ФИГ. 9 изображена блок-диаграмма локальных и/или облачных вычислений согласно ФИГ. 8 для геномной инфраструктуры для локальных и/или облачных обработки и анализа методами геномики.[0067] In FIG. 9 is a block diagram of local and/or cloud computing according to FIG. 8 for genomic infrastructure for local and/or cloud processing and analysis using genomics methods.
[0068] ФИГ. 10 изображена блок-диаграмма согласно ФИГ. 9, на которой более подробно показана реализация вычислений для геномной инфраструктуры для локальных и/или облачных обработки и анализа методами геномики.[0068] FIG. 10 is a block diagram according to FIG. 9, which shows in more detail the implementation of computing for genomic infrastructure for local and/or cloud processing and analysis using genomics methods.
[0069] ФИГ. 11 изображена блок-диаграмма согласно ФИГ. 8, на которой более подробно показана осуществляемая 3ей стороной аналитика для геномной инфраструктуры для локальных и/или облачных обработки и анализа методами геномики.[0069] FIG. 11 is a block diagram according to FIG. 8, which shows in more detail the 3rd party analytics for genomic infrastructure for local and/or cloud genomics processing and analysis.
[0070] На ФИГ. 12 изображена блок-диаграмма, иллюстрирующая конфигурацию гибридных облачных вычислений.[0070] In FIG. 12 is a block diagram illustrating a hybrid cloud computing configuration.
[0071] ФИГ. 13 изображена блок-диаграмма согласно ФИГ. 12, более подробно иллюстрирующая конфигурацию гибридных облачных вычислений.[0071] FIG. 13 is a block diagram according to FIG. 12 illustrating the hybrid cloud computing configuration in more detail.
[0072] ФИГ. 14 изображена блок-диаграмма согласно ФИГ. 13, более подробно иллюстрирующая конфигурацию гибридных облачных вычислений.[0072] FIG. 14 is a block diagram according to FIG. 13 illustrating the hybrid cloud computing configuration in more detail.
[0073] ФИГ. 15 изображена блок-диаграмма, иллюстрирующая конвейер первичного, вторичного и/или третичного анализа согласно настоящему раскрытию.[0073] FIG. 15 is a block diagram illustrating a primary, secondary and/or tertiary analysis pipeline according to the present disclosure.
[0074] На ФИГ. 16 изображена блок-схема для конвейера анализа, описанного в настоящем документе.[0074] In FIG. 16 depicts a block diagram for the analysis pipeline described herein.
[0075] ФИГ. 17 показан пример дизайна и сборки интегральной схемы.[0075] FIG. Figure 17 shows an example of integrated circuit design and assembly.
[0076] ФИГ. 18 представляет собой блок-диаграмму аппаратной архитектуры процессора в соответствии с другим вариантом реализации раскрытого объекта.[0076] FIG. 18 is a block diagram of a processor hardware architecture in accordance with another embodiment of the disclosed subject matter.
[0077] ФИГ. 19 представляет собой блок-диаграмму аппаратной архитектуры процессора в соответствии с другим вариантом реализации раскрытого объекта.[0077] FIG. 19 is a block diagram of a processor hardware architecture in accordance with another embodiment of the disclosed subject matter.
[0078] На ФИГ. 20 показан конвейер анализа генетической последовательности.[0078] In FIG. Figure 20 shows the genetic sequence analysis pipeline.
[0079] На ФИГ. 21 показаны этапы обработки с использованием аппаратной платформы для анализа генетической последовательности.[0079] In FIG. Figure 21 shows the processing steps using the genetic sequence analysis hardware platform.
[0080] Где это уместно, одинаковые ссылочные номера обозначают одинаковые структуры, признаки или элементы.[0080] Where appropriate, like reference numerals denote like structures, features, or elements.
ПОДРОБНОЕ ОПИСАНИЕDETAILED DESCRIPTION
[0081] Для решения этих и, возможно, других проблем, связанных с доступными в настоящее время решениями, способы, системы, изделия и т.п., соответствующие одному или нескольким вариантам осуществления настоящего изобретения могут, среди прочих возможных преимуществ, обеспечивать устройство анализа последовательности для выполнения конвейера анализа последовательностей на основе данных генетических последовательностей.[0081] To address these and possibly other problems associated with currently available solutions, methods, systems, products, etc., corresponding to one or more embodiments of the present invention may, among other possible advantages, provide an analysis device sequences to run a sequence analysis pipeline based on genetic sequence data.
[0082] Далее представлено подробное описание различных вариантов реализации платформы секвенирования, поточного анализа последовательностей, а также системы для выполнения одного или нескольких протоколов третичной обработки.[0082] The following provides a detailed description of various embodiments of a sequencing platform, on-line sequence analysis, and a system for performing one or more tertiary processing protocols.
[0083] В самом общем виде, тело состоит из клеток, эти клетки образуют ткани, ткани образуют органы, органы образуют системы, а эти системы функционируют вместе для обеспечения функционирования организма и поддержания жизни индивида. Таким образом, указанные клетки тела являются строительными кирпичиками жизни. Более конкретно, каждая клетка имеет ядро, а внутри указанного ядра каждой клетки располагаются хромосомы. Хромосомы образованы дезоксирибонуклеиновыми кислотами, которые имеют организованную, но свернутую структуру двойной спирали. Сама по себе ДНК состоит из двух противоположно направленных, но комплементарных цепей нуклеотидов, которые образуют гены, которые кодируют белки, придающие клетке ее структуру и влияющие на функционирование тканей и органов тела, а также регулирующие их функции. В общем, белки выполняют большую часть работы клеток по поддержанию нормальных процессов и функций организма.[0083] In the most general terms, the body is made up of cells, these cells form tissues, tissues form organs, organs form systems, and these systems function together to ensure the functioning of the body and maintain the life of the individual. Thus, these body cells are the building blocks of life. More specifically, every cell has a nucleus, and within the said nucleus of each cell are chromosomes. Chromosomes are formed by deoxyribonucleic acids, which have an organized but coiled double helix structure. DNA itself consists of two oppositely directed but complementary chains of nucleotides that form genes that encode proteins that give the cell its structure and influence the functioning of tissues and organs of the body, as well as regulating their functions. In general, proteins perform most of the work of cells to maintain normal body processes and functions.
[0084] С учетом большого количества компонентов тела и сложности, связанной с тем, как они взаимодействуют друг с другом для поддержания различных процессов и функций организма, существует множество способов того, как указанный организм может функционировать неправильно на любом из этих различных уровнях организации. Например, в одном таком варианте, нарушение может заключаться в том, как конкретный ген кодирует заданный белок, и это нарушение зависит от указанного белка, при этом характер этого нарушения может приводить к началу процесса перехода в состояние смерти.[0084] Given the large number of components of the body and the complexity associated with how they interact with each other to support the various processes and functions of the body, there are many ways that the body can function incorrectly at any of these various levels of organization. For example, in one such embodiment, the disorder may be in the way a particular gene encodes a given protein, and the disorder depends on the protein, and the nature of the disorder may cause the process of transition to a death state to begin.
[0085] Соответственно, в диагностике, предотвращении и/или лечении таких патологических состояний, определение генетических характеристик субъекта может быть исключительно полезным. Например, генетические характеристики субъекта, если они известны, например его или ее состав генов, могут быть использованы для целей диагностики и/или для определения, есть ли у субъекта какое-либо патологическое состояние или потенциал для его развития, и, поэтому, может быть использовано для целей профилактики. Также, знание о геноме субъекта может быть полезным при определении потенциальных терапевтических способов воздействия, таких как лекарственные средства, которые могут или не могут быть использованы в профилактических или терапевтических схемах лечения без причинения вреда пациенту. В различных вариантах, знание о геноме субъекта также может применяться при определении эффективности лекарственного средства, и/или вызывающие проблемы побочные эффекты использования такого лекарственного средства могут быть предсказаны и/или идентифицированы. Потенциально, указанное знание о геноме субъекта может быть использовано для создания синтетического «дизайнерского» лекарственного средства, когда такое лекарственно средство создано индивидуально и оптимизировано в соответствии со специфическими генетическими характеристиками субъекта. В частности, в качестве одного из примеров, сконструированный белок или последовательность нуклеотидов могут быть произведены в соответствии с уникальными генетическими характеристиками субъекта так, чтобы выключать или включать транскрипцию генов, которые производят белки либо в избыточном, либо в недостаточном количестве, и, таким образом, устранять патологические состояния.[0085] Accordingly, in the diagnosis, prevention and/or treatment of such pathological conditions, determining the genetic characteristics of a subject can be extremely useful. For example, the genetic characteristics of a subject, if known, such as his or her gene composition, may be used for diagnostic purposes and/or to determine whether the subject has or has the potential to develop any pathological condition, and therefore may be used for prevention purposes. Also, knowledge of a subject's genome can be useful in identifying potential therapeutic interventions, such as drugs that may or may not be used in prophylactic or therapeutic treatment regimens without causing harm to the patient. In various embodiments, knowledge of a subject's genome can also be used in determining the effectiveness of a drug, and/or problematic side effects of use of such drug can be predicted and/or identified. Potentially, this knowledge of a subject's genome could be used to create a synthetic "designer" drug, where such a drug is individually created and optimized according to the specific genetic characteristics of the subject. In particular, as one example, a designed protein or nucleotide sequence may be produced in accordance with the unique genetic characteristics of a subject so as to turn off or turn on the transcription of genes that produce proteins in either excess or insufficient quantities, and thus eliminate pathological conditions.
[0086] Следовательно, в некоторых примерах, целью обработки данных биоинформатики является определение индивидуальных геномов людей, при этом такие определения могут быть использованы в протоколах детектирования генов, а также для целей профилактических и/или терапевтических способах воздействия, для улучшения качества жизни каждого конкретного субъекта и человеческого рода в целом. Кроме того, знание о геноме субъекта может быть использовано, например, при открытии лекарственных средств и/или в клинических исследованиях для лучшего более тщательного предсказания, какое лекарственное средство вероятно будет работать в субъекте, если вообще будет, и/или какое лекарственное средство вероятно может вызвать пагубные побочные эффекты, посредством анализа индивидуального генома и/или профиля белка, получаемого из него, и его сравнения с предсказанным биологическим ответом на введение такого лекарственного средства.[0086] Consequently, in some examples, the purpose of processing bioinformatics data is to determine the individual genomes of people, and such determinations can be used in gene detection protocols, as well as for the purposes of preventive and/or therapeutic interventions, to improve the quality of life of each individual subject and the human race as a whole. In addition, knowledge of a subject's genome can be used, for example, in drug discovery and/or clinical trials to better predict which drug is likely to work in a subject, if any, and/or which drug is likely to work. cause harmful side effects by analyzing an individual's genome and/or the protein profile derived from it and comparing it with the predicted biological response to administration of such a drug.
[0087] Такая геномика и обработка данных биоинформатики обычно включает три хорошо разработанные, но обычно используемые раздельно фазы обработки информации. Первая фаза включает в себя определение последовательности ДНК/РНК, когда получают ДНК/РНК субъекта и подвергают ее различным исследованиям, получая таким образом генетический код субъекта, преобразованный в машиночитаемый цифровой код, например, файл FASTQ. Вторая фаза включает использование полученного цифрового генетического кода субъекта для определения генетических характеристик субъекта, например, определение последовательностей нуклеотидов генов субъекта и/или файла с указанием вариантов, например, того, как геном субъекта отличается от одного или нескольких геномов сравнения. Третья фаза включает проведение одного или нескольких анализов генетических характеристик субъекта для получения на их основе терапевтически полезной информации. В порядке их следования, эти фазы могут быть названы первичная, вторичная и третичная обработка данных, соответственно.[0087] Such genomics and bioinformatics data processing typically involves three well-developed, but typically used separately, information processing phases. The first phase involves DNA/RNA sequencing, where the subject's DNA/RNA is obtained and subjected to various tests, thereby obtaining the subject's genetic code converted into a machine-readable digital code, such as a FASTQ file. The second phase involves using the resulting digital genetic code of the subject to determine the subject's genetic characteristics, such as determining the nucleotide sequences of the subject's genes and/or a file indicating variants, such as how the subject's genome differs from one or more reference genomes. The third phase involves conducting one or more analyzes of the subject's genetic characteristics to obtain therapeutically useful information from them. In the order in which they appear, these phases may be called primary, secondary and tertiary data processing, respectively.
[0088] Предварительно, например, в Фазе I или при первичной обработке данных, генетический материал должен быть предварительно обработан, например, посредством определения последовательности нуклеотидов с получением данных о последовательности генома, которые могут быть использованы в дальнейшем. Определение последовательности нуклеиновых кислот, таких как дезоксирибонуклеиновая кислота (ДНК) и рибонуклеиновая кислота (РНК), является фундаментальной частью биологического исследования. Такое определение является необходимым для большого числа задач и очень часто используется в научных исследованиях, а также в медицинских разработках. Например, области геномики и биоинформатики связаны посредством применения информационных технологий и компьютерных наук в области генетики и/или молекулярной биологии. В частности, методы биоинформатики, такие как описанные в настоящей заявке, могут применяться для генерирования, обработки и анализа различных геномных данных, например, полученных у человека, для определения качественной и количественной информации об этих данных, которые затем могут быть использованы различными специалистами в разработке индивидуальных и/или глобальных диагностических, профилактических и/или терапевтических методов для выявления, профилактики и/или, по крайней мере, улучшения патологического состояния и, следовательно, повышения безопасности, качества и эффективности медицинской помощи человеку и/или обществу.[0088] Previously, for example, in Phase I or during primary data processing, the genetic material must be preprocessed, for example, by determining the nucleotide sequence to obtain genome sequence data that can be used further. Sequencing nucleic acids such as deoxyribonucleic acid (DNA) and ribonucleic acid (RNA) is a fundamental part of biological research. This definition is necessary for a large number of tasks and is very often used in scientific research, as well as in medical development. For example, the fields of genomics and bioinformatics are linked through the application of information technology and computer science to genetics and/or molecular biology. In particular, bioinformatics methods, such as those described herein, can be used to generate, process and analyze various genomic data, such as those obtained from humans, to determine qualitative and quantitative information about this data, which can then be used by various specialists in the development of individual and/or global diagnostic, preventive and/or therapeutic methods to identify, prevent and/or at least improve a pathological condition and, therefore, improve the safety, quality and effectiveness of medical care for the individual and/or society.
[0089] Обычно метод анализа ДНК/РНК, такой как генетическая диагностика, включает гибридизацию и детекцию нуклеиновых кислот. Например, различные типичные подходы гибридизации и детекции включают следующие этапы. Для генетического анализа образец РНК или ДНК субъекта, подлежащего анализу, может быть выделен и иммобилизован на подложке, зонд с известной генетической последовательностью, например маркер заболевания, может быть помечен и нанесен на всю подложку. Если присутствует маркер заболевания, происходит связывание, например, гибридизация, и, поскольку зонд был помечен, событие гибридизации может либо обнаруживаться, либо не обнаруживаться, что указывает на наличие или отсутствие маркера заболевания в образце субъекта. В качестве альтернативы, как указано выше, когда реакция гибридизации происходит рядом с реакционным слоем, например, сконфигурированным для обнаружения реагента и/или побочного продукта реакции, использующегося в подходящем устройстве с полевым транзистором (FET), нет необходимости в применении меченого зонда.[0089] Typically, a DNA/RNA analysis method such as genetic diagnosis involves hybridization and nucleic acid detection. For example, various typical hybridization and detection approaches include the following steps. For genetic analysis, a sample of RNA or DNA from the subject to be analyzed can be isolated and immobilized on a support, and a probe with a known genetic sequence, such as a disease marker, can be labeled and applied to the entire support. If a disease marker is present, binding occurs, such as hybridization, and because the probe has been labeled, the hybridization event may or may not be detected, indicating the presence or absence of the disease marker in the subject's sample. Alternatively, as discussed above, when the hybridization reaction occurs adjacent to a reaction layer, for example configured to detect a reagent and/or reaction byproduct used in a suitable field-effect transistor (FET) device, there is no need to employ a labeled probe.
[0090] Обычно для определения последовательности нуклеотидов сначала неизвестную последовательность нуклеиновой кислоты, например, одноцепочечную последовательность ДНК и/или РНК субъекта, которую необходимо идентифицировать, выделяют, амплифицируют и иммобилизуют на подложке. Затем нуклеиновую кислоту с известной последовательностью, меченную идентифицируемой меткой, вводят в контакт с нуклеиновой кислотой с неизвестной последовательностью в присутствии полимеразы. Когда происходит гибридизация, меченая нуклеиновая кислота связывается с ее комплементарным основанием в неизвестной последовательности, иммобилизованной на поверхности подложки. Затем может быть обнаружено событие связывания, например, оптическим или электрическим способами. Затем эти шаги повторяют до тех пор, пока весь образец ДНК не будет полностью секвенирован.[0090] Typically, to determine a nucleotide sequence, first an unknown nucleic acid sequence, such as a single-stranded DNA and/or RNA sequence of a subject to be identified, is isolated, amplified, and immobilized on a support. A nucleic acid of known sequence, labeled with an identifiable label, is then brought into contact with a nucleic acid of unknown sequence in the presence of a polymerase. When hybridization occurs, the labeled nucleic acid binds to its complementary base in an unknown sequence immobilized on the surface of the support. The binding event can then be detected, for example, by optical or electrical means. These steps are then repeated until the entire DNA sample has been completely sequenced.
[0091] Как правило, эти этапы выполняют вручную или с использованием автоматического секвенатора, такого как секвенатор следующего поколения (Next Gen Sequencer, NGS), в котором одновременно могут быть получены от тысяч до миллионов последовательностей в процессе секвенирования следующего поколения. При этом, как описано в настоящей заявке, используют систему прямого секвенирования ДНК и/или РНК без использования меток, такую как система на компьютерном чипе, таком как чип с дополнительным металлооксидным полупроводником (CMOS), где различные компоненты или весь сенсорный аппарат секвенатора может быть воплощен внутри указанного полупроводникового чипа или иным образом связан с этим чипом. Такая система, как предоставлено в данной заявке, обеспечивает беспроблемную интеграцию первичной, вторичной и/или третичной обработки информации, например, с использованием одного и того же набора полупроводниковых микросхем.[0091] Typically, these steps are performed manually or using an automated sequencer, such as a Next Gen Sequencer (NGS), which can produce thousands to millions of sequences simultaneously in the next generation sequencing process. In this case, as described herein, a label-free direct sequencing system for DNA and/or RNA is used, such as a system on a computer chip, such as a complementary metal oxide semiconductor (CMOS) chip, where various components or the entire sensor apparatus of the sequencer can be embodied within or otherwise associated with said semiconductor chip. Such a system, as provided herein, allows for seamless integration of primary, secondary and/or tertiary processing, for example, using the same semiconductor chipset.
[0092] Более конкретно, типичная процедура секвенирования, независимо от типа используемого устройства секвенирования, включает получение биологического образца от субъекта, например посредством венепункции, из волос и т.д., и обработку образца для выделения из него генетического компонента. После выделения, где генетическим образцом является ДНК, указанная ДНК может быть денатурирована и ее цепи разделены. Поскольку РНК уже является одноцепочечной, этот этап может не потребоваться при обработке РНК. Затем выделенную ДНК и/или РНК или ее части могут быть амплифицированы, например, с помощью полимеразной цепной реакции (ПЦР), чтобы создать библиотеку реплицированных цепей, которые теперь готовы для секвенирования и считывания, например, с помощью автоматического секвенатора, который сконфигурирован для считывания реплицированных цепей, например, путем синтеза, и, таким образом, определения последовательностей нуклеотидов, составляющих ДНК и/или РНК. Кроме того, в различных вариантах, таких как создание библиотеки реплицированных и амплифицированных цепей, может оказаться полезным обеспечение избыточного перекрытия при предварительной обработке данной части ДНК и/или РНК. Для выполнения такого избыточного перекрытия, например, с использованием ПЦР, могут потребоваться увеличенные ресурсы и время для подготовки образца, и, следовательно, он будет более дорогостоящим, но это часто повышает вероятность того, что конечный результат будет более точным.[0092] More specifically, a typical sequencing procedure, regardless of the type of sequencing device used, involves obtaining a biological sample from a subject, such as by venipuncture, hair, etc., and processing the sample to isolate a genetic component from it. After isolation, where the genetic sample is DNA, said DNA can be denatured and its strands separated. Since RNA is already single-stranded, this step may not be necessary when processing RNA. The isolated DNA and/or RNA, or portions thereof, can then be amplified, for example by polymerase chain reaction (PCR), to create a library of replicated strands that are now ready to be sequenced and read, for example by an automated sequencer that is configured to read replicated chains, for example, by synthesis, and thus determining the sequences of nucleotides that make up DNA and/or RNA. Additionally, in various embodiments, such as creating a library of replicated and amplified strands, it may be useful to provide excess overlap when preprocessing a given portion of the DNA and/or RNA. Performing such redundant overlap, such as using PCR, may require increased resources and time for sample preparation and will therefore be more expensive, but this often increases the likelihood that the final result will be more accurate.
[0093] После создания библиотеки реплицированных цепей ДНК/РНК их можно ввести в автоматический секвенатор, например, NGS, который затем может прочитывать указанные цепи, например, путем синтеза, для определения их последовательности нуклеотидов. Например, реплицированная одноцепочечная ДНК или РНК может быть прикреплена к стеклянному шарику и введена в испытательный сосуд, например, в матрицу. Все необходимые компоненты для репликации его комплементарной цепи, включая меченые нуклеотиды, также последовательно добавляют в указанный сосуд. Например, все «A», «C», «G» и «T», которые могут быть помечены, добавляют либо по одному, либо все вместе, если помечены, чтобы увидеть, какой из нуклеотидов связывается в положении «один» одноцепочечной ДНК или РНК. [0093] Once a library of replicated DNA/RNA strands has been created, they can be input into an automated sequencer, such as NGS, which can then read the strands, eg by synthesis, to determine their nucleotide sequence. For example, replicated single-stranded DNA or RNA can be attached to a glass bead and introduced into a test vessel, such as a matrix. All necessary components for the replication of its complementary chain, including labeled nucleotides, are also sequentially added to the indicated vessel. For example, all "A", "C", "G" and "T" that can be labeled are added either one at a time or all together if labeled to see which nucleotide binds at position "one" of the single-stranded DNA or RNA.
[0094] После каждой стадии присоединения в маркированной модели на матрицу подают свет, например, лазер. Если указанная композиция флуоресцирует, то создается изображение, указывающее, какой нуклеотид связан в соответствующем местоположении. В немеченой модели событие связывания может быть обнаружено, например, по изменению сопротивления в затворе, например канала с раствором, вблизи реакционного слоя, где расположен стеклянный шарик, содержащий реплицированную одноцепочечную ДНК или РНК. Более конкретно, когда нуклеотиды добавляют по одному за один раз, если происходит событие связывания, то будет наблюдаться его индикативная флуоресценция или изменение сопротивления. Если событие связывания не происходит, тестируемый сосуд можно промыть и процедуру повторять до тех пор, пока соответствующий один из четырех нуклеотидов не свяжется с его комплементом в соответствующем местоположении и не будет наблюдаться его индикативное изменение условий. Когда все четыре нуклеотида добавляются одновременно, каждый может быть помечен различными флуоресцентными метками, и может быть определен нуклеотид, который связывается с его комплементом в соответствующем положении, например по цвету его флуоресценции. Это значительно ускоряет процесс синтеза.[0094] After each attachment step in the marked model, light, such as a laser, is applied to the matrix. If the composition fluoresces, an image is created indicating which nucleotide is bound at the corresponding location. In an unlabeled model, a binding event can be detected, for example, by a change in resistance in a gate, such as a solution channel, near the reaction layer where a glass bead containing replicated single-stranded DNA or RNA is located. More specifically, when nucleotides are added one at a time, if a binding event occurs, its indicative fluorescence or resistance change will be observed. If no binding event occurs, the test vessel can be washed and the procedure repeated until the corresponding one of the four nucleotides binds to its complement at the appropriate location and its indicative change in conditions is observed. When all four nucleotides are added simultaneously, each can be labeled with different fluorescent tags, and the nucleotide that binds its complement at the appropriate position can be determined, for example by its fluorescence color. This significantly speeds up the synthesis process.
[0095] После того, как произошло событие связывания, указанный комплекс промывают и этапы синтеза повторяют для положения «два». Например, меченый или иным образом маркированный нуклеотид «А» может быть добавлен к реакционной смеси, чтобы определить, является ли комплемент в положении «один» в связанной молекуле-матрице последовательности комплементом для «А», и, если это так, меченый реагент «А» будет связываться с последовательностью матрицы, имеющей этот комплемент, и, следовательно, будет флуоресцировать, после чего все образцы будут промыты, чтобы удалить любые избыточные количества нуклеотидные реагенты. Там, где произошло связывание, связанный нуклеотид не смывается. Этот процесс будет повторяться для всех нуклеотидов для всех положений до тех пор, пока не будут секвенированы все избыточно перекрытые сегменты нуклеиновой кислоты, например риды, и не будут собраны данные. В качестве альтернативы, когда все четыре нуклеотида добавляются одновременно, каждый из которых помечен различным флуоресцентным индикатором, только один нуклеотид будет связываться с его комплементом в указанном положении, а другие будут вымываться, так что после промывания сосуда указанный сосуд может освещаться лазером, и может быть определено какой нуклеотид связался с его комплементом, например, по цвету его флуоресценции. Однако, когда используется датчик полевого транзистора CMOS, как описано ниже, событие связывания может быть обнаружено по изменению проводимости, которое происходит вблизи сконфигурированного подходящим образом затвора или другой области реакции.[0095] After the binding event has occurred, the complex is washed and the synthesis steps are repeated for position two. For example, a labeled or otherwise labeled nucleotide "A" can be added to the reaction mixture to determine whether the complement at position "one" in the associated sequence template molecule is the complement for "A" and, if so, the labeled reagent " A" will bind to the template sequence having this complement and will therefore fluoresce, after which all samples will be washed to remove any excess nucleotide reagents. Where binding has occurred, the bound nucleotide is not washed away. This process will be repeated for all nucleotides for all positions until all redundant nucleic acid segments, such as reads, have been sequenced and data collected. Alternatively, when all four nucleotides are added simultaneously, each labeled with a different fluorescent indicator, only one nucleotide will bind to its complement at the specified position and the others will be washed out, so that after washing the vessel, the specified vessel can be illuminated with a laser, and can be it is determined which nucleotide is bound to its complement, for example, by the color of its fluorescence. However, when a CMOS FET sensor is used, as described below, a coupling event can be detected by a conductance change that occurs in the vicinity of a suitably configured gate or other response region.
[0096] В частности, из-за необходимости использования оптически детектируемых, например, флуоресцентных, меток в осуществляемых реакциях секвенирования, требуемое оборудование для выполнения такого высокопроизводительного секвенирования может быть громоздким, дорогостоящим, трудоемким в использовании и непереносным. По этой причине в настоящей заявке предлагается новый подход к прямому определению последовательности ДНК и/или РНК без меток. Например, хотя в различных вариантах осуществления предоставлены улучшенные способы для выполнения обработки NGS, в других вариантах осуществления предлагаются улучшенные способы и устройства для секвенирования нуклеиновой кислоты и/или обработки, не обязательно включающие NGS. Например, в частности, в настоящей заявке предлагается способ детектирования, основанный на использовании различных электронных аналитических устройств. Такие методы прямого электронного детектирования имеют ряд преимуществ перед обычной платформой NGS.[0096] In particular, due to the need to use optically detectable, eg, fluorescent, tags in the sequencing reactions performed, the required equipment to perform such high-throughput sequencing can be bulky, expensive, labor-intensive to use, and not portable. For this reason, this application proposes a new approach to direct label-free DNA and/or RNA sequencing. For example, while various embodiments provide improved methods for performing NGS processing, other embodiments provide improved methods and devices for nucleic acid sequencing and/or processing that do not necessarily include NGS. For example, in particular, the present application proposes a detection method based on the use of various electronic analytical devices. Such direct electron detection methods have several advantages over the conventional NGS platform.
[0097] Более конкретно, датчик и/или устройство обнаружения, раскрытое в настоящей заявке, может быть встроено в саму подложку, такую как используется в устройстве «биосистема на чипе», такую как дополнительное устройство на основе металлооксидного полупроводника «CMOS». В частности, при использовании устройства CMOS в генетической детекции сигнал, представляющий событие гибридизации, например, гибридизации и/или секвенирования нуклеиновой кислоты, может быть непосредственно получен и обработан на самом микрочипе. В таком случае автоматическое распознавание возможно достичь в режиме реального времени и с меньшими затратами, чем это возможно достичь в настоящее время с использованием обычной обработки с использованием NGS. Кроме того, стандартные устройства с подложкой CMOS могут использоваться для такого электронного обнаружения, что делает такой процесс простым, недорогим, быстрым и портативным.[0097] More specifically, the sensor and/or sensing device disclosed herein may be embedded in the substrate itself, such as that used in a biosystem-on-a-chip device, such as a complementary metal oxide semiconductor "CMOS" device. In particular, when using a CMOS device in genetic detection, a signal representing a hybridization event, such as hybridization and/or nucleic acid sequencing, can be directly obtained and processed on the microchip itself. In this case, automatic recognition can be achieved in real time and at a lower cost than is currently possible to achieve using conventional NGS processing. Additionally, standard CMOS substrate devices can be used for such electronic detection, making the process simple, inexpensive, fast, and portable.
[0098] Например, для того чтобы секвенирование следующего поколения стало широко использоваться в качестве диагностического средства в отрасли здравоохранения, необходимо, чтобы секвенирующее оборудование массово производилось с высокой степенью качества, мобильности и экономичности. Одним из способов достижения этого является перевод процесса определения последовательности ДНК/РНК в формат, который полностью использует производственную базу, созданную для компьютерных микросхем, таких как изготовление микросхем на основе комплементарных металл-оксидных полупроводников (CMOS), что является вершиной современного крупномасштабного, высококачественного недорогого производства с использованием высоких технологий. Для достижения этого в идеале весь сенсорный аппарат секвенатора может быть размещен в стандартном полупроводниковом чипе, изготовленном, например, в тех же самых мощностях, специализирующихся на производстве интегральных схем, которые используются для производства микросхем логики и памяти.[0098] For example, for next generation sequencing to become widely used as a diagnostic tool in the healthcare industry, sequencing equipment must be mass produced with a high degree of quality, portability and cost-effectiveness. One way to achieve this is to translate the DNA/RNA sequencing process into a format that fully utilizes the manufacturing base created for computer chips, such as complementary metal oxide semiconductor (CMOS) fabrication, which is the pinnacle of modern large-scale, high-quality, low-cost production using high technology. To achieve this, ideally the entire sensor apparatus of the sequencer could be housed on a standard semiconductor chip, manufactured, for example, in the same integrated circuit manufacturing facilities that are used to produce logic and memory chips.
[0099] Соответственно, в другом аспекте раскрытия в настоящем документе представлен полевой транзистор (FET), который может быть изготовлен или иным образом связан с чипом CMOS, который сконфигурирован для использования при выполнении одной или нескольких реакций гибридизации последовательностей ДНК/РНК. Такой полевой транзистор FET может включать в себя затвор, участок канала, соединяющий электроды истока и стока, и изолирующий барьер, который может быть выполнен для отделения затвора от канала. Оптимальная работа такого полевого транзистора зависит от управления проводимостью канала и, таким образом, от контроля тока на стоке, например, посредством напряжения, которое может быть приложено между указанным затвором и указанным электродом истока.[0099] Accordingly, in another aspect of the disclosure, provided herein is a field-effect transistor (FET) that can be fabricated or otherwise associated with a CMOS chip that is configured for use in performing one or more DNA/RNA sequence hybridization reactions. Such a FET may include a gate, a channel portion connecting the source and drain electrodes, and an insulating barrier that may be configured to separate the gate from the channel. Optimal operation of such a field effect transistor depends on control of the channel conductance and thus control of the drain current, for example, by means of a voltage that can be applied between said gate and said source electrode.
[00100] Для высокоскоростных приложений и в целях повышения чувствительности датчика, FET, представленные в данном документе, могут работать таким образом, чтобы быстро реагировать на изменения напряжения на затворе (VGS). Однако это требует использования коротких затворов и быстро движущихся в этом канале носителей. Ввиду этого современные датчики FET, например, для использования в реакциях гибридизации нуклеиновых кислот и/или реакций секвенирования, сконфигурированы таким образом, чтобы иметь каналы очень тонкие по вертикали и/или по горизонтали, чтобы обеспечить высокую скорость переноса носителей, а также повышенную чувствительность и точность датчиков, что дает существующим датчикам особые преимущества при проведении реакций секвенирования нуклеиновых кислот. Следовательно, устройства, системы и способы их использования, представленные в настоящей заявке, являются идеальными для осуществления анализа геномной информации и в таких приложениях, как секвенирование нуклеиновых кислот и/или генетическая диагностика.[00100] For high speed applications and to improve sensor sensitivity, FETs presented herein can be operated to quickly respond to changes in gate voltage (VGS). However, this requires the use of short gates and fast moving carriers in this channel. In view of this, modern FET sensors, for example for use in nucleic acid hybridization reactions and/or sequencing reactions, are configured to have very thin channels vertically and/or horizontally to provide high carrier transfer rates as well as increased sensitivity and accuracy of the sensors, which gives existing sensors particular advantages when performing nucleic acid sequencing reactions. Therefore, the devices, systems and methods of use presented herein are ideal for performing analysis of genomic information and in applications such as nucleic acid sequencing and/or genetic diagnostics.
[00101] Следовательно, одним аспектом настоящего изобретения является химически чувствительный транзистор, такой как полевой транзистор (FET), который предназначен для анализа биологических или химических материалов, который решает многие из текущих проблем, связанных с секвенированием нуклеиновых кислот и генетической диагностикой. Такие полевые транзисторы могут быть изготовлены на первичной структуре, такой как пластина, например кремниевая пластина. В различных вариантах, указанная первичная структура может включать в себя одну или несколько дополнительных структур, например, в пакетной конфигурации, такую как слой изоляционного материала. Например, изолирующий материал может быть нанесен поверх первичной структуры и может быть неорганическим материалом, таким как оксид кремния, например, диоксид кремния или нитрид кремния, или органическим материалом, таким как полиимид, BCB или другой подобный материал.[00101] Therefore, one aspect of the present invention is a chemically sensitive transistor, such as a field-effect transistor (FET), which is intended for the analysis of biological or chemical materials, which solves many of the current problems associated with nucleic acid sequencing and genetic diagnostics. Such field effect transistors can be fabricated on a primary structure such as a wafer, for example a silicon wafer. In various embodiments, said primary structure may include one or more additional structures, for example, in a stacked configuration, such as a layer of insulating material. For example, the insulating material may be applied over the primary structure and may be an inorganic material such as a silicon oxide, such as silicon dioxide or silicon nitride, or an organic material such as a polyimide, BCB or other similar material.
[00102] Первичная и вторичная структуры, например, включающие изолирующий слой, могут включать в себя дополнительную структуру, содержащую один или более из проводящего истока и/или проводящего стока, отделенных друг от друга пространством и встроенных в первичную структуру и/или материал изолятора и/или расположенных в плоскости верхней поверхности изолятора. В различных вариантах указанные структуры могут дополнительно включать в себя процессор или могут быть иным образом связаны с процессором, например, для обработки сгенерированных данных, таких как данные, полученные с датчиков. Соответственно, структуры могут быть сконфигурированы в виде интегральной схемы или могут иным образом включать в себя интегральную схему, такую как описанная в настоящей заявке, и/или может быть схемой ASIC, структурированной схемой ASIC или схемой FPGA.[00102] The primary and secondary structures, for example including an insulating layer, may include an additional structure comprising one or more of a conductive source and/or a conductive drain separated from each other by space and embedded in the primary structure and/or insulator material and /or located in the plane of the upper surface of the insulator. In various embodiments, these structures may further include a processor or may otherwise be coupled to the processor, for example, to process generated data, such as data received from sensors. Accordingly, the structures may be configured as an integrated circuit or may otherwise include an integrated circuit such as those described herein and/or may be an ASIC circuit, a structured ASIC circuit, or an FPGA circuit.
[00103] В частности, указанные структуры могут быть выполнены в виде комплементарного металлооксидного полупроводника (CMOS), который, в свою очередь, может быть выполнен в виде химически чувствительного полевого транзистора, содержащего одно или более из следующего: проводящий исток, проводящий сток, канал или лунку и/или процессор. Например, полевой транзистор может включать в себя структуру CMOS, имеющую интегральную схему, которая изготовлена на кремниевой пластине, которая дополнительно включает в себя слой изолятора, причем этот слой изолятора включает в себя проводящий электрод истока и проводящий электрод стока, например, встроенные в него, где электроды истока и стока могут быть выполнены из металла, например, электрода истока из дамасской меди и электрода истока из дамасской меди. В различных вариантах осуществления указанные структуры могут включать в себя поверхность, например верхнюю поверхность, причем эта поверхность может включать в себя канал, например так, что поверхность и/или канал могут быть выполнены проходящими от истока к стоку, формируя тем самым зону реакции.[00103] In particular, these structures can be made in the form of a complementary metal oxide semiconductor (CMOS), which, in turn, can be made in the form of a chemically sensitive field effect transistor containing one or more of the following: a conductive source, a conductive drain, a channel or well and/or processor. For example, the field effect transistor may include a CMOS structure having an integrated circuit that is fabricated on a silicon wafer that further includes an insulator layer, the insulator layer including a source conductive electrode and a drain conductive electrode, for example, embedded therein, wherein the source and drain electrodes may be made of metal, for example, a Damascus copper source electrode and a Damascus copper source electrode. In various embodiments, these structures may include a surface, such as a top surface, which surface may include a channel, such that the surface and/or channel may be configured to extend from a source to a drain, thereby forming a reaction zone.
[00104] В определенных случаях указанная поверхность и/или канал может включать в себя материал одномерного транзистора, материал двумерного транзистора, материал трехмерного транзистора и/или тому подобное. В различных вариантах может быть включен материал одномерного (1D) транзистора, который может состоять из углеродной нанотрубки или полупроводниковой нанопроволоки. В других случаях указанная камера и/или канал состоит из материала одномерного транзистора, содержащего одну или несколько углеродных нанотрубок и/или полупроводниковых нанопроводов, таких как лист полупроводниковых нанопроводов.[00104] In certain cases, said surface and/or channel may include a one-dimensional transistor material, a two-dimensional transistor material, a three-dimensional transistor material, and/or the like. In various embodiments, a one-dimensional (1D) transistor material may be included, which may consist of a carbon nanotube or a semiconductor nanowire. In other cases, said chamber and/or channel consists of a one-dimensional transistor material containing one or more carbon nanotubes and/or semiconductor nanowires, such as a semiconductor nanowire sheet.
[00105] В частности, может быть включен двумерный (2D) транзисторный материал, например, 2D-материал, который может иметь толщину один или два атома и может быть распределен в плоскости. В таких случаях 2D материал может включать или иным образом состоять из таких элементарных 2D материалов, как графен, графин (аллотропная модификация углерода, состоящая из решетки бензольных колец, связанных ацетиленовыми связями), борофен (аллотропная модификация бора), германен (аллотропная модификация германия), герман (еще одна аллотропная модификация германия), силикен (аллотропная модификация кремния), станен (аллотропная модификация олова), фосфорен (аллотропная модификация фосфора, иногда называемая черным фосфором) или одноатомные слои металлов, таких как палладий или родий; дихалькогениды переходных металлов (которые содержат один атом переходного металла на каждые два атома халькогена), такие как дисульфид молибдена (MoS2, иногда называемый молибденитом), диселенид вольфрама (WSe2), дисульфид вольфрама (WS2) или другие; МХены (карбиды и/или нитриды переходных металлов, как правило, формулы Mn+1Xn, где M представляет собой переходный металл и X представляет собой углерод и/или азот), такие как Ti2C, V2C, Nb2C, Ti3C2, Ti3CN, Nb4C3 или Ta4C3 (более того, МХены могут заканчиваться O, OH или F для получения полупроводников с небольшой шириной запрещенной зоны); или металлоорганические соединения, такие как Ni HITP (Ni3(2,3,6,7,10,11-гексаиминотрифенилен)2 или супракристаллы 2D (супракристаллами называются надатомные периодические структуры, где атомы, которые обычно находятся в узлах структуры, замещены их симметричными комплексами). Следует отметить, что дихалькогениды переходных металлов могут содержать один атом любого переходного металла (Sc, Ti, V, Cr, Mn, Fe, Co, Ni, Cu, Zn, Y, Zr, Nb, Мо, Tc, Ru, Rh, Pd, Ag, Cd, Hf, Ta, W, Re, Os, Ir, Pt, Au, Hg, Rt, Db, Sg, Bh, Mt, Ds или Rg) в паре с двумя атомами любого из халькогенидов (S, Se или Te). В частности, 2D материал может включать один или несколько слоев графена, силикена, дисульфида молибдена, черного фосфора и/или дихалькогенидов металлов. В различных вариантах, трехмерный (3D) материал может быть нанесен на поверхность и/или канал может включать в себя диэлектрический слой.[00105] In particular, a two-dimensional (2D) transistor material may be included, such as a 2D material that may be one or two atoms thick and may be distributed in a plane. In such cases, the 2D material may include or otherwise be composed of such elemental 2D materials as graphene, graphene (an allotrope of carbon consisting of a lattice of benzene rings linked by acetylene bonds), borophene (an allotrope of boron), germanene (an allotrope of germanium) , germanium (another allotrope of germanium), silicene (an allotrope of silicon), stanene (an allotrope of tin), phosphorene (an allotrope of phosphorus, sometimes called black phosphorus), or monoatomic layers of metals such as palladium or rhodium; transition metal dichalcogenides (which contain one transition metal atom for every two chalcogen atoms), such as molybdenum disulfide (MoS 2 , sometimes called molybdenite), tungsten diselenide (WSe 2 ), tungsten disulfide (WS 2 ) or others; MChenes (transition metal carbides and/or nitrides, typically of the formula Mn + 1Xn , where M is a transition metal and X is carbon and/or nitrogen), such as Ti 2 C, V 2 C, Nb 2 C , Ti 3 C 2 , Ti 3 CN , Nb 4 C 3 or Ta 4 C 3 (moreover, MHenes can be terminated with O, OH or F to obtain semiconductors with a small band gap); or organometallic compounds such as Ni HITP (Ni 3 (2,3,6,7,10,11-hexaminotriphenylene) 2 or 2D supracrystals (supracrystals are supraatomic periodic structures, where the atoms that are usually located at the nodes of the structure are replaced by their symmetrical ones complexes).It should be noted that transition metal dichalcogenides can contain one atom of any transition metal (Sc, Ti, V, Cr, Mn, Fe, Co, Ni, Cu, Zn, Y, Zr, Nb, Mo, Tc, Ru, Rh, Pd, Ag, Cd, Hf, Ta, W, Re, Os, Ir, Pt, Au, Hg, Rt, Db, Sg, Bh, Mt, Ds or Rg) paired with two atoms of any of the chalcogenides (S , Se or Te). In particular, the 2D material may include one or more layers of graphene, silicone, molybdenum disulfide, black phosphorus and/or metal dichalcogenides. In various embodiments, the three-dimensional (3D) material may be deposited on the surface and/or channel may include a dielectric layer.
[00106] Кроме того, в различных вариантах, на поверхности и/или канале может быть расположен реакционный слой, например слой оксида, нанесенный в виде слоя или иным образом нанесенный на 1D слой, 2D слой, например, слой графена, или 3D слой. Такой слой оксида может представлять собой слой оксида алюминия или оксида кремния, такого как диоксид кремния. В различных вариантах на поверхности и/или канале и/или на соответствующий реакционный слой на поверхности и/или канале может быть расположен пассивирующий слой, нанесенный в виде слоя или иным образом нанесенный на 1D слой, 2D слой, например, слой графена, или 3D слой.[00106] Additionally, in various embodiments, a reaction layer, such as an oxide layer layered or otherwise deposited on a 1D layer, a 2D layer, such as a graphene layer, or a 3D layer, may be located on the surface and/or channel. Such an oxide layer may be a layer of aluminum oxide or a silicon oxide such as silica. In various embodiments, a passivation layer may be located on the surface and/or channel and/or on the corresponding reaction layer, layered or otherwise applied to a 1D layer, a 2D layer, such as a graphene layer, or a 3D layer. layer.
[00107] В некоторых вариантах, первичные и/или вторичные структуры могут быть изготовлены или иным образом сконфигурированы так, чтобы включать в себя структуру в виде камеры или структуру в виде лунки в указанной поверхности и/или на ней. Например, структура в виде лунки может быть расположена на участке поверхности, например внешней поверхности, первичной и/или вторичной структуры. В некоторых случаях структура в виде лунки может быть сформирована поверх, по меньшей мере, части материала 1D слоя, 2D слоя, например, графена, и/или 3D слоя, или может включать в себя эти части, и/или может дополнительно включать реакционные слои, например, слои оксида, и/или пассивирующие слои. В различных вариантах, структура в виде камеры и/или луки может образовывать отверстие, например отверстие, которое обеспечивает доступ к внутренней части камеры, например, обеспечивает прямой контакт с 1D слоем, например, углеродной нанотрубкой или нанопроволокой, 2D слоем, например, графеном, поверхностью и/или каналом.[00107] In some embodiments, the primary and/or secondary structures may be fabricated or otherwise configured to include a chamber structure or a dimple structure in and/or on said surface. For example, the dimple structure may be located on a portion of a surface, such as an outer surface, of a primary and/or secondary structure. In some cases, the dimple structure may be formed on top of at least a portion of or include a material of the 1D layer, 2D layer, e.g., graphene, and/or 3D layer, and/or may further include reaction layers eg oxide layers, and/or passivation layers. In various embodiments, the chamber structure and/or bows may define an opening, such as an opening that provides access to the interior of the chamber, such as providing direct contact with a 1D layer, such as a carbon nanotube or nanowire, a 2D layer, such as graphene, surface and/or channel.
[00108] Соответственно, в различных вариантах осуществления настоящее изобретение относится к биосенсору. Указанный биосенсор включает в себя структуру CMOS, которая может включать металлсодержащий впускной конец, например, из дамасской меди, а также металлосодержащий выпускной конец, например, из дамасской меди, 1D или 2D слой, например, слой графена, поверхность или канал, идущий от электрода истока к электроду стока, и структуру в виде лунки или камеры, которая может быть расположена на участке внешней поверхности слоистой 1D, 2D или 3D структуры в виде лунки. В таком случае структура в виде лунки может быть сконфигурирована так, чтобы образовывать отверстие, которое обеспечивает прямой контакт с нанотрубкой, нанопроволокой и/или графеновой лункой или поверхностью камеры. В различных вариантах на поверхностях камеры может быть расположен слой оксида и/или пассивирующий слой. Следовательно, в некоторых случаях может обеспечиваться химически чувствительный транзистор, такой как полевой транзистор (FET), включающий одну или несколько нано- или микролунок.[00108] Accordingly, in various embodiments, the present invention relates to a biosensor. Said biosensor includes a CMOS structure, which may include a metal-containing inlet end, for example, Damascus copper, as well as a metal-containing outlet end, for example, Damascus copper, a 1D or 2D layer, for example, a graphene layer, a surface or a channel extending from the electrode source to the drain electrode, and a dimple or chamber structure that may be located on an outer surface portion of the layered 1D, 2D or 3D dimple structure. In such a case, the dimple structure can be configured to define an opening that allows direct contact with the nanotube, nanowire, and/or graphene dimple or chamber surface. In various embodiments, an oxide layer and/or a passivation layer may be located on the surfaces of the chamber. Therefore, in some cases, a chemically sensitive transistor, such as a field-effect transistor (FET), including one or more nano- or microwells may be provided.
[00109] В некоторых вариантах осуществления химически чувствительный полевой транзистор может включать в себя множество лунок и может быть сконфигурирован в виде матрицы, например матрицы датчиков. По существу, указанная система может включать в себя массив лунок, включающий в себя один или более, например, множество датчиков, где каждый из датчиков включает в себя химически чувствительный полевой транзистор, имеющий исток, сток и реакционную поверхность или канал, проходящий от истока к стоку. Такая матрица или такие матрицы могут быть использованы, например, для обнаружения присутствия и/или изменения концентрации различных типов анализируемых веществ в широком спектре химических и/или биологических процессов, включая реакции гибридизации ДНК/РНК и/или реакции секвенирования. Например, описанные настоящей заявке устройства и/или системы, включающие в себя такие устройства, могут использоваться в способе диагностики заболевания и/или анализа биологических или химических материалов, таких как анализ всего генома, анализ типирования генома, анализ на микроматрицах, панельный анализ, экзомный анализ, микробиомный анализ и/или клинический анализ, такой как анализ рака, анализ NIPT и/или анализ UCS.[00109] In some embodiments, the chemically sensitive field effect transistor may include a plurality of wells and may be configured as an array, such as a sensor array. As such, the system may include an array of wells including one or more, for example, a plurality of sensors, where each of the sensors includes a chemically sensitive field effect transistor having a source, a drain, and a reaction surface or channel extending from the source to drain. Such a matrix or such matrices can be used, for example, to detect the presence and/or changes in concentration of various types of analytes in a wide range of chemical and/or biological processes, including DNA/RNA hybridization reactions and/or sequencing reactions. For example, devices and/or systems including such devices described herein can be used in a method for diagnosing a disease and/or analyzing biological or chemical materials, such as whole genome analysis, genome typing analysis, microarray analysis, panel analysis, exome assay, microbiome assay, and/or clinical assay, such as cancer assay, NIPT assay, and/or UCS assay.
[00110] В конкретном варианте осуществления FET может представлять собой FET матрицу графена (gFET), описанную в настоящей заявке, и может использоваться для опрощения методик секвенирования ДНК/РНК и/или гибридизации, основанных на мониторинге изменений концентрации ионов водорода (pH), изменений концентраций других анализируемых веществ и/или событий связывания, связанных с химическими процессами, связанными с синтезом ДНК/РНК, например, в управляемой реакционной камере или в лунке датчика на основе gFET. Например, химически чувствительный полевой транзистор может быть сконфигурирован как биосенсор CMOS и/или может быть адаптирован для увеличения чувствительности измерения и/или точности датчика и/или соответствующей матрицы (матриц), например, путем включения одного или более поверхностей или лунок, имеющих поверхность, на которую нанесен 1D и/или 2D и/или 3D материал, диэлектрический или реакционный слой, пассивирующий слой и/или подобный им слой. Например, в конкретном варианте осуществления предоставляется химически чувствительный графеновый полевой транзистор (gFET), такой как gFET, имеющий структуру CMOS, где указанный датчик gFET, например, биосенсор, может включать в себя слой оксида и/или пассивирующий слой, такой как слой, расположенный на поверхности лунки или камеры, для повышения чувствительности измерения и/или точность датчика и/или соответствующих матриц. Слой оксида, если он присутствует, может состоять из оксида алюминия, оксида кремния, диоксида кремния и подобных им соединений.[00110] In a specific embodiment, the FET may be a graphene array FET (gFET) as described herein and may be used to facilitate DNA/RNA sequencing and/or hybridization techniques based on monitoring changes in hydrogen ion concentration (pH), changes concentrations of other analytes and/or binding events associated with chemistry involved in DNA/RNA synthesis, such as in a controlled reaction chamber or gFET-based sensor well. For example, a chemically sensitive field-effect transistor may be configured as a CMOS biosensor and/or may be adapted to increase the measurement sensitivity and/or accuracy of the sensor and/or corresponding array(s), for example, by including one or more surfaces or wells having a surface onto which a 1D and/or 2D and/or 3D material, a dielectric or reaction layer, a passivation layer and/or the like is applied. For example, in a particular embodiment, a chemically sensitive graphene field effect transistor (gFET), such as a gFET having a CMOS structure, is provided, wherein said gFET sensor, such as a biosensor, may include an oxide layer and/or a passivation layer, such as a layer located on the surface of a well or chamber, to increase measurement sensitivity and/or accuracy of the sensor and/or associated matrices. The oxide layer, if present, may consist of alumina, silica, silica, and the like.
[00111] Система может дополнительно включать в себя один или более текучих компонентов, необходимых для осуществления реакции, компонента схемы, необходимого для запуска процессов реакции, и/или вычислительного компонента для управления и/или обработки. Например, жидкий компонент может быть включен, когда жидкий компонент сконфигурирован для управления одним или более потоками реагентов над матрицей и/или одной или несколькими ее камерами. В частности, в различных вариантах осуществления указанная система включает в себя множество мест проведения реакции, таких как поверхности или лунки, которые, в свою очередь, включают в себя множество датчиков и/или множество каналов и дополнительно включают в себя один или более источников жидкости, содержащих жидкость, содержащую множество реагентов и/или анализируемых веществ для доставки на одну или более поверхностей и/или лунок для проведения в них одной или более реакций. В некоторых случаях также может быть включен механизм создания одного или более электрических и/или магнитных полей.[00111] The system may further include one or more fluid components necessary to carry out the reaction, a circuit component necessary to run the reaction processes, and/or a computing component for control and/or processing. For example, a liquid component may be included when the liquid component is configured to control one or more reactant flows over the array and/or one or more chambers thereof. Specifically, in various embodiments, said system includes a plurality of reaction sites, such as surfaces or wells, which in turn include a plurality of sensors and/or a plurality of channels and further include one or more fluid sources, containing a liquid containing a plurality of reagents and/or analytes for delivery to one or more surfaces and/or wells for carrying out one or more reactions therein. In some cases, a mechanism for generating one or more electric and/or magnetic fields may also be included.
[00112] Система может дополнительно включать в себя компонент схемы, который может включать в себя схему выборки и хранения, декодер адреса, схему смещения и/или, по меньшей мере, один аналого-цифровой преобразователь. Например, схема выборки и хранения может быть сконфигурирована для хранения аналогового значения напряжения, которое должно быть приложено к выбранному столбцу и/или строке матрицы устройства согласно настоящему изобретению, например, во время интервала считывания. Кроме того, декодер адреса может быть сконфигурирован для создания сигналов выбора столбца и/или строки для какого-либо столбца и/или строки матрицы, для получения доступа к датчику с заданным адресом в указанной матрице. Схема смещения может быть связана с одной или более поверхностями и/или камерами матрицы и может включать в себя компонент смещения, который может быть приспособлен для приложения напряжения считывания и/или напряжения смещения к выбранным химически чувствительным полевым транзисторам матрицы, например, к электроду затвора указанного транзистора. Аналого-цифровой преобразователь может быть сконфигурирован для преобразования аналогового значения в цифровое значение.[00112] The system may further include a circuit component that may include a sample and hold circuit, an address decoder, a bias circuit, and/or at least one analog-to-digital converter. For example, a sample-and-hold circuit may be configured to store an analog voltage value that is to be applied to a selected column and/or row of a matrix of a device according to the present invention, for example, during a sensing interval. In addition, the address decoder may be configured to generate column and/or row select signals for any column and/or row of the matrix to access a sensor with a given address in said matrix. The bias circuit may be coupled to one or more surfaces and/or chambers of the array and may include a bias component that may be adapted to apply a sense voltage and/or bias voltage to selected chemically sensitive field effect transistors of the array, such as a gate electrode of said array. transistor. An analog-to-digital converter can be configured to convert an analog value to a digital value.
[00113] Также может быть включен вычислительный компонент, например, когда указанный вычислительный компонент включает в себя один или более процессоров, таких как процессор сигналов; модуль вызова базы, сконфигурированный для определения одного или более оснований одного или более ридов секвенированной нуклеиновой кислоты; модуль картирования, сконфигурированный для генерации одного или более начальных значений из одного или нескольких ридов секвенированных данных и для выполнения функции картирования одного или более начальных значений и/или ридов; модуль выравнивания, сконфигурированный для выполнения функции выравнивания на одном или более отображаемых ридах; модуль сортировки, сконфигурированный для выполнения функции сортировки одного или более сопоставленных и/или выровненных ридов; и/или модуль вызова варианта, сконфигурированный для выполнения функции вызова варианта на одном или более сопоставленных, выровненных и/или отсортированных ридах. В конкретных вариантах, базовый вызывающий элемент базового вызывающего модуля может быть сконфигурирован для коррекции множества сигналов, таких как потеря фазы и сигнала, для нормализации по ключу и/или для генерации множества исправленных базовых вызовов для каждого потока в каждом датчике для получения множества ридов последовательностей. В различных вариантах осуществления указанное устройство и/или система может включать в себя, по меньшей мере, один электрод сравнения.[00113] A computing component may also be included, for example, where said computing component includes one or more processors, such as a signal processor; a base calling module configured to determine one or more bases of one or more sequenced nucleic acid reads; a mapping module configured to generate one or more seeds from one or more sequenced data reads and to perform a mapping function on the one or more seeds and/or reads; an alignment module configured to perform an alignment function on one or more displayed reads; a sorting module configured to perform a sorting function on one or more matched and/or aligned reads; and/or a variant calling module configured to perform a variant calling function on one or more mapped, aligned and/or sorted reads. In specific embodiments, the base caller of the base caller may be configured to correct multiple signals, such as phase and signal loss, for key normalization and/or to generate multiple corrected base calls for each thread in each sensor to produce multiple sequence reads. In various embodiments, said device and/or system may include at least one reference electrode.
[00114] В частности, указанная система может быть сконфигурирована для осуществления реакции секвенирования. В таком случае устройство секвенирования FET может включать в себя матрицу датчиков, имеющих один или более химически чувствительных полевых транзисторов, связанных с ними. Такие транзисторы могут включать каскадный транзистор, имеющий один или более электродов истока, электродов стока и/или электродов затвора. В таком случае электрод истока указанного транзистора может быть прямо или косвенно связан с электродом стока указанного химически чувствительного полевого транзистора. В некоторых случаях может быть включен одно- или двухмерный канал, который может проходить от электрода истока до электрода стока, например, когда материал 1D-канала может представлять собой углеродную нанотрубку или нанопроводу, а материал двумерного канала может состоять из графена, силикена, фосфорена, дисульфида молибдена и дихалькогенида металла. Указанное устройство может быть дополнительно сконфигурировано так, чтобы включать в себя множество линий столбцов и строк, соединенных с датчиками в матрице датчиков. В таком случае каждый столбец во множестве столбцов может быть прямо или косвенно связан с электродами стока указанных транзисторов, например, каскадных транзисторов, соответствующего множества пикселей в матрице, и аналогично каждая строка во множестве строк может быть прямо или косвенно связана с электродами истока указанных транзисторов, например, каскадных транзисторами, соответствующего множества датчиков в матрице.[00114] In particular, the system may be configured to carry out a sequencing reaction. In such a case, the FET sequencing device may include an array of sensors having one or more chemically sensitive field effect transistors coupled thereto. Such transistors may include a cascade transistor having one or more source electrodes, drain electrodes, and/or gate electrodes. In such a case, a source electrode of said transistor may be directly or indirectly coupled to a drain electrode of said chemically sensitive field effect transistor. In some cases, a one- or two-dimensional channel may be included that may extend from the source electrode to the drain electrode, for example, where the 1D channel material may be a carbon nanotube or nanowire, and the 2D channel material may consist of graphene, silicone, phosphorene, molybdenum disulfide and metal dichalcogenide. The device may be further configured to include a plurality of column and row lines connected to sensors in a sensor array. In such a case, each column in the plurality of columns may be directly or indirectly coupled to drain electrodes of said transistors, such as cascaded transistors, of a corresponding plurality of pixels in the array, and likewise each row of the plurality of rows may be directly or indirectly coupled to source electrodes of said transistors, for example, cascaded transistors corresponding to a plurality of sensors in the matrix.
[00115] В некоторых случаях может быть использовано множество электродов истока и стока, имеющих множество реакционных поверхностей, например, элементов канала, расположенных между ними, когда каждый элемент канала включает в себя одно-, двух- или трехмерный материал. В таком случае множество первых и/или вторых проводящих слоев может быть соединено с первым и вторым электродами истока/стока химически чувствительных полевых транзисторов в соответствующих столбцах и строках в матрице. Кроме того, может быть предусмотрена схема управления, которая может быть соединена с множеством столбцов и строк, например, для считывания информации с конкретного датчика, подключенного к конкретному столбцу и/или конкретной строке. Схема также может включать в себя компонент смещения, который может быть сконфигурирован для приложения напряжения считывания к выбранной строке и/или для приложения напряжения смещения к электроду затвора транзистора, такого как полевой транзистор и/или каскадный транзистор конкретного датчика. В конкретном варианте осуществления схема смещения может быть соединена с одной или несколькими камерами матрицы и может быть выполнена с возможностью применения смещения считывания к выбранным химически чувствительным полевым транзисторам через проводящий столбец и/или строку. В частности, схема смещения может быть сконфигурирована для подачи напряжения считывания на конкретную строку и/или для подачи напряжения смещения на электрод затвора транзистора, например, каскадного транзистора, во время интервала считывания.[00115] In some cases, a plurality of source and drain electrodes may be used having multiple reaction surfaces, eg, channel elements disposed therebetween, where each channel element includes one-, two-, or three-dimensional material. In such a case, a plurality of first and/or second conductive layers may be coupled to the first and second source/drain electrodes of the chemically sensitive field effect transistors in respective columns and rows in the array. In addition, a control circuit may be provided that may be connected to a plurality of columns and rows, for example, to read information from a particular sensor connected to a particular column and/or a particular row. The circuit may also include a bias component that may be configured to apply a sense voltage to a selected row and/or to apply a bias voltage to the gate electrode of a transistor, such as a field effect transistor and/or cascade transistor of a particular sensor. In a specific embodiment, the bias circuit may be coupled to one or more array cameras and may be configured to apply a read bias to selected chemically sensitive FETs via a conductive column and/or row. In particular, the bias circuit may be configured to apply a sense voltage to a particular row and/or to apply a bias voltage to the gate electrode of a transistor, such as a cascade transistor, during a sense interval.
[00116] К матрице для считывания заряда, связанного с одной или несколькими конфигурациями затворов выбранного химически чувствительного полевого транзистора может быть добавлена и присоединена схема считывания. Схема считывания также может быть сконфигурирована для считывания конкретного датчика на основе уровня выборочного напряжения в конкретной строке и/или строке столбца. В таком случае схема считывания может включать в себя одну или несколько схем предварительной зарядки, например, для предварительной зарядки конкретного столбца до уровня напряжения предварительной зарядки передо интервала считывания; и схему выборки, например, для выбора уровня напряжения на электроде стока выбранного транзистора, например, каскадного транзистора, во время интервала считывания. Схема выборки также может быть включена и содержать схему выборки и удержания, сконфигурированную для хранения аналогового значения напряжения на конкретном столбце в течение интервала считывания, и может дополнительно включать в себя аналого-цифровой преобразователь для преобразования аналогового значения в цифровое значение.[00116] A sensing circuit may be added and coupled to the matrix for sensing the charge associated with one or more gate configurations of the selected chemically sensitive field-effect transistor. The sensing circuitry may also be configured to read a specific sensor based on the sampled voltage level in a particular row and/or column row. In such a case, the read circuit may include one or more pre-charge circuits, for example, to pre-charge a particular column to a pre-charge voltage level before the read interval; and a sampling circuit, for example, to select a voltage level at the drain electrode of a selected transistor, such as a cascade transistor, during a sensing interval. The sampling circuit may also be included and include a sampling and holding circuit configured to store an analog voltage value on a particular column during a sensing interval, and may further include an analog-to-digital converter to convert the analog value to a digital value.
[00117] В другом аспекте, указанные интегральные схемы 1D, 2D или 3D FET, например gFET, датчики и/или массивы согласно настоящему изобретению, могут быть изготовлены, например, с использованием любого подходящего метода комплементарной обработки металл-оксидного полупроводника (CMOS), известного из уровня техники. В определенных случаях такая технология обработки CMOS может быть сконфигурирована для увеличения чувствительности измерения и/или точности датчика и/или матрицы, и в то же время для получения датчика со значительно меньшими размерами и области датчика камеры с плотным gFET. В частности, усовершенствованные технологии изготовления, описанные в настоящей заявке, с использованием 1D, 2D, 3D и/или оксида в качестве реакционного слоя, обеспечивают быстрое получение данных от маленьких датчиков в больших и плотных массивах датчиков. В конкретных вариантах осуществления, когда используется ионоселективная проницаемая мембрана, мембранный слой может включать полимер, такой как перфторсульфоновый материал, перфторкарбоновый материал, PEEK, PBI, Nafion и/или PTFE. В некоторых вариантах осуществления ионоселективная проницаемая мембрана может включать неорганический материал, такой как оксид или стекло. Один или несколько различных слоев, например реакционных, пассивирующих и/или проницаемых мембранных слоев, могут быть изготовлены или иным образом нанесены методом центрифугирования, анодирования, PVD и/или методом «золь-гель».[00117] In another aspect, these 1D, 2D or 3D FET integrated circuits, such as gFETs, sensors and/or arrays according to the present invention, can be manufactured, for example, using any suitable complementary metal oxide semiconductor (CMOS) processing method, known from the prior art. In certain cases, such CMOS processing technology can be configured to increase the measurement sensitivity and/or accuracy of the sensor and/or sensor, while at the same time producing a significantly smaller sensor and dense gFET camera sensor area. In particular, the advanced fabrication technologies described herein, using 1D, 2D, 3D and/or oxide as the reaction layer, enable rapid acquisition of data from small sensors in large, dense sensor arrays. In particular embodiments, when an ion selective permeable membrane is used, the membrane layer may include a polymer such as perfluorosulfone material, perfluorocarbon material, PEEK, PBI, Nafion and/or PTFE. In some embodiments, the ion selective permeable membrane may include an inorganic material such as an oxide or glass. One or more different layers, such as reactive, passivation, and/or permeable membrane layers, may be fabricated or otherwise deposited by spin coating, anodizing, PVD, and/or sol-gel.
[00118] Соответственно, описанное в настоящей заявке устройство полевого транзистора CMOS может быть использовано для секвенирования образца нуклеиновой кислоты, когда образец нуклеиновой кислоты служит в качестве матрицы для синтеза и секвенирования ДНК/РНК, которые могут быть связаны или могут располагаться близко к поверхности зоны реакции, например, поверхности, покрытой графеном. После иммобилизации последовательность матрицы может быть секвенирована и/или проанализирована посредством выполнения одного или нескольких из следующих шагов. Например, могут быть добавлены праймер и/или полимераза, например, ДНК- и/или РНК-полимераза, и/или один или несколько субстратов, например дезоксинуклеотидтрифосфаты дАТФ, дГТФ, дЦТФ и дТТФ, последовательно в реакционную камеру, например после начала реакции гибридизации, чтобы вызвать реакцию удлинения. Как только соответствующий субстрат гибридизуется с ее комплементом в последовательности шаблона, происходит сопутствующее изменение индивидуального электрического характеристического напряжения, например, напряжения истока-стока (Vsd), измеренного в результате нового локального эффекта затвора. Если добавлен реакционный слой, такой как оксидный слой, нанесенный на 1D, 2-D или 3-D поверхность, чувствительность, с которой происходит регистрация события связывания, может быть усилена, например, когда реакционный слой сконфигурирован для получения и/или мониторинга изменений концентрации ионов водорода (рН), изменений концентрации других анализируемых соединений.[00118] Accordingly, the CMOS field effect transistor device described herein can be used for sequencing a nucleic acid sample, where the nucleic acid sample serves as a template for the synthesis and sequencing of DNA/RNA that may be associated with or may be located close to the surface of the reaction zone , for example, a surface coated with graphene. Once immobilized, the template sequence can be sequenced and/or analyzed by performing one or more of the following steps. For example, a primer and/or polymerase, such as DNA and/or RNA polymerase, and/or one or more substrates, such as the deoxynucleotide triphosphates dATP, dGTP, dCTP and dTTP, may be added sequentially to the reaction chamber, for example after the initiation of the hybridization reaction to induce an elongation response. Once the corresponding substrate hybridizes with its complement in the template sequence, there is a concomitant change in the individual electrical characteristic voltage, such as the source-drain voltage (Vsd), measured as a result of a new local gate effect. If a reaction layer is added, such as an oxide layer deposited on a 1D, 2-D or 3-D surface, the sensitivity with which a binding event is detected can be enhanced, for example when the reaction layer is configured to receive and/or monitor changes in concentration hydrogen ions (pH), changes in the concentration of other analyzed compounds.
[00119] Следовательно, для каждой реакции удлинения с соответствующим, например, комплементарным субстратом, будет происходить изменение характеристического напряжения и/или концентрации pH. Например, как описано в настоящей заявке, полевое устройство для секвенирования нуклеиновой кислоты и/или обнаружения гена может быть расположено в камере для образца или лунке проточной кюветы, и раствор для образца, например, содержащий полимеразу и один или несколько субстратов, например нуклеиновые кислоты, могут быть введены в камеру с раствором образца, например, через один или несколько жидкостных компонентов системы. В различных вариантах осуществления электрод сравнения может быть расположен выше по потоку, ниже по потоку или в жидкостном контакте с полевым устройством, и/или электроды истока и/или стока могут сами по себе служить в качестве электродов, использующихся для обнаружения гибридизации, и напряжение для затвора может подаваться когда это нужно.[00119] Therefore, for each extension reaction with a corresponding, for example, complementary substrate, there will be a change in characteristic voltage and/or pH concentration. For example, as described herein, a field device for nucleic acid sequencing and/or gene detection may be located in a sample chamber or well of a flow cell, and a sample solution, for example, containing a polymerase and one or more substrates, such as nucleic acids, may be introduced into the sample solution chamber, for example, through one or more fluid components of the system. In various embodiments, the reference electrode may be located upstream, downstream, or in fluid contact with the field device, and/or the source and/or drain electrodes may themselves serve as electrodes used to detect hybridization, and the voltage to the shutter can be supplied when needed.
[00120] В частности, в типичной реакции удлинения, описанной выше, синтезируются полинуклеотиды, если добавленный субстрат является комплементарным последовательности основания целевой матрицы ДНК/РНК и/или матрицы праймера. Если добавленный субстрат не комплементарен следующей доступной последовательности основания в шаблоне, гибридизация и удлинение не происходят. Поскольку нуклеиновые кислоты, такие как ДНК и РНК, имеют отрицательный заряд в водных растворах, гибридизация, приводящая к удлинению, может последовательно обнаруживаться за счет изменения плотности заряда на поверхности реакции и/или в реакционной камере. Такое обнаружение может быть улучшено за счет возможности обнаружения увеличения концентрации ионов, например, путем обнаружения изменения pH. Поскольку субстраты добавляются последовательно, можно легко определить, какой нуклеотид связан с матрицей, тем самым облегчая реакцию удлинения. Соответственно, в результате удлинения отрицательный заряд на поверхности затвора с графеновым слоем, поверхности изолирующей пленки и/или поверхности боковой стенки реакционной камеры будет увеличен. Такое увеличение затем может быть обнаружено, например, за счет изменения напряжения затвора истока и/или концентрации ионов, как подробно описано в настоящей заявке. Устанавливая добавление того субстрата, который привел к изменению сигнала или рН в напряжении затвор-исток, можно определить и/или проанализировать последовательность оснований целевой нуклеиновой кислоты.[00120] In particular, in the typical extension reaction described above, polynucleotides are synthesized if the added substrate is complementary to the base sequence of the target DNA/RNA template and/or primer template. If the added substrate is not complementary to the next available base sequence in the template, hybridization and extension will not occur. Because nucleic acids such as DNA and RNA have a negative charge in aqueous solutions, hybridization leading to extension can be consistently detected by changing the charge density at the reaction surface and/or in the reaction chamber. Such detection can be improved by the ability to detect an increase in ion concentration, for example by detecting a change in pH. Because substrates are added sequentially, it is easy to determine which nucleotide is bound to the template, thereby facilitating the extension reaction. Accordingly, as a result of elongation, the negative charge on the surface of the graphene layer gate, the surface of the insulating film, and/or the surface of the side wall of the reaction chamber will be increased. Such an increase can then be detected, for example, by changing the source gate voltage and/or ion concentration, as described in detail herein. By identifying the addition of the substrate that caused the signal or pH change in the gate-source voltage, the base sequence of the target nucleic acid can be determined and/or analyzed.
[00121] В частности, независимо от используемого устройства для секвенирования, такого как устройство секвенирования на основе NGS и/или FET, как описано в настоящей заявке, этот итеративный процесс синтеза продолжается до тех пор, пока вся матричная цепь ДНК/РНК не будет реплицирована в указанном сосуде. Обычно типичная длина последовательности, реплицируемой таким образом, составляет от около 100 до около 500 пар оснований, например от 150 до 400 пар оснований, в том числе от около 200 до около 350 пар оснований, например от около 250 пар оснований до около 300 пар оснований, в зависимости от используемого протокола секвенирования. Кроме того, длина нуклеотидов этих сегментов матрицы может быть заранее определена, например, сконструирована, чтобы соответствовать любому конкретному механизму секвенирования и/или протоколу, в соответствии с которым он выполняется.[00121] In particular, regardless of the sequencing device used, such as an NGS and/or FET-based sequencing device as described herein, this iterative synthesis process continues until the entire DNA/RNA template strand has been replicated in the indicated container. Typically, the typical length of sequence replicated in this manner is from about 100 to about 500 base pairs, such as from 150 to 400 base pairs, including from about 200 to about 350 base pairs, such as from about 250 base pairs to about 300 base pairs , depending on the sequencing protocol used. In addition, the nucleotide length of these template segments can be predetermined, for example designed, to suit any particular sequencing engine and/or protocol under which it is performed.
[00122] Конечным результатом является считывание или прочитывание, которое состоит из реплицированного сегмента ДНК/РНК, например, длиной от около 100 до около 1000 нуклеотидов или более, который либо был мечен таким образом, что каждый нуклеотид в последовательности, например, рид, известен на основании своей метки, или определен и известен по изменению характеристики затвора, такому как изменение напряжения и/или pH. Следовательно, поскольку человеческий геном состоит из примерно 3,2 миллиарда пар оснований, а различные известные протоколы секвенирования обычно приводят к получению меченых реплицированных последовательностей, например, ридов, длиной от примерно 100 или 101 оснований до примерно 250, или примерно 300, или примерно 400 оснований, общее количество полученных сегментов, которые необходимо упорядочить, и, следовательно, общее количество генерируемых ридов, может составлять от примерно 10000000 до примерно 40000000, например, от примерно 15000000 до примерно 30000000, в зависимости от того, насколько длинны реплицированные меченые последовательности. Следовательно, секвенатор может обычно генерировать около 30000000 ридов, например, когда длина считывания составляет 100 нуклеотидов в длину, чтобы охватить указанный геном один раз. Однако, как указано в настоящей заявке, из-за сжатой природы формата настоящей микросхемы для определения последовательности, представленной в настоящей заявке, могут быть достигнуты гораздо более существенные длины считывания, такие как 800 оснований, 1000 оснований, 2500 оснований, 5000 оснований, вплоть до 10000 оснований.[00122] The end result is a read or read that consists of a replicated segment of DNA/RNA, e.g., about 100 to about 1000 nucleotides or more in length, that has either been labeled such that each nucleotide in the sequence, e.g., read, is known based on its label, or determined and known by a change in gate characteristic, such as a change in voltage and/or pH. Therefore, since the human genome consists of approximately 3.2 billion base pairs, and various known sequencing protocols typically result in tagged replicated sequences, e.g., reads ranging in length from about 100 or 101 bases to about 250, or about 300, or about 400 bases, the total number of resulting segments that need to be sequenced, and therefore the total number of reads generated, can be from about 10,000,000 to about 40,000,000, such as from about 15,000,000 to about 30,000,000, depending on how long the replicated tagged sequences are. Therefore, a sequencer can typically generate about 30,000,000 reads, for example when the read length is 100 nucleotides in length, to cover a specified genome once. However, as discussed herein, due to the compressed nature of the present sequencing chip format provided herein, much larger read lengths such as 800 bases, 1000 bases, 2500 bases, 5000 bases, up to 10,000 bases.
[00123] Кроме того, как указано выше, в таких процедурах может оказаться полезным избыточный набор ридов ДНК/РНК, больший примерно в 5 раз, или примерно в 10 раз, или примерно в 20 раз, или примерно в 25 раз, или примерно в 30 раз, или примерно в 40 раз, или примерно в 50 раз, или примерно в 100 раз, или примерно в 200 раз, или примерно в 250 раз, или примерно в 500 раз, или примерно в 1000 раз, или примерно в 5000 раз, или даже примерно в 10000 раз или более, и, таким образом, объем первичной обработки, который необходимо выполнить, и время, затрачиваемое на это, могут быть весьма значительным. Например, с 40-кратным избытков информации, при использовании которого различные синтезированные риды сконструированы так, чтобы в некоторой степени перекрываться, может потребоваться синтез до 1,2 миллиарда ридов. Как правило, подавляющее большинство, если не все эти меченые последовательности, могут генерироваться параллельно. Конечным результатом является то, что исходный биологический генетический материал обрабатывается, например, с помощью протокола секвенирования, такого как те, которые кратко изложены в настоящей заявке, и генерируется цифровое представление этих данных, при этом указанное цифровое представление данных может подвергаться протоколу первичной обработки.[00123] Additionally, as noted above, such procedures may benefit from an excess set of DNA/RNA reads of about 5 times, or about 10 times, or about 20 times, or about 25 times, or about 30 times, or about 40 times, or about 50 times, or about 100 times, or about 200 times, or about 250 times, or about 500 times, or about 1000 times, or about 5000 times , or even about 10,000 times or more, and thus the amount of primary processing that needs to be done and the time spent doing so can be quite significant. For example, with a 40-fold information excess, where the different synthesized reads are designed to overlap to some extent, up to 1.2 billion reads may need to be synthesized. Typically, the vast majority, if not all, of these tagged sequences can be generated in parallel. The end result is that the original biological genetic material is processed, for example, using a sequencing protocol such as those summarized herein, and a digital representation of that data is generated, which digital representation of the data may be subjected to a downstream processing protocol.
[00124] В частности, генетический материал субъекта может быть реплицирован и его последовательность определена таким образом, что генерируется измеряемый электрический, химический, радиоактивный и/или оптический сигнал, который затем преобразуется, например, секвенатором и/или устройством обработки, связанным с ним, в цифровое представление генетического кода субъекта. Более конкретно, первичная обработка может включать в себя преобразование изображений, таких как записанные вспышки света или другие данные электрических или химических сигналов, в данные файла FASTQ. Соответственно, эта информация сохраняется в виде файла FASTQ, который затем может быть отправлен для дальнейшей, например, вторичной обработки. Типичный файл FASTQ включает в себя большой набор ридов, представляющих нуклеотидные последовательности с цифровой кодировкой, в которых каждое предсказанное основание в последовательности было определено и дано значение вероятности того, что указанное основание в указанной позиции неверно.[00124] In particular, the genetic material of a subject may be replicated and sequenced such that a measurable electrical, chemical, radioactive and/or optical signal is generated, which is then converted, for example, by a sequencer and/or processing device associated therewith, into a digital representation of the subject's genetic code. More specifically, primary processing may include converting images, such as recorded flashes of light or other electrical or chemical signal data, into FASTQ file data. Accordingly, this information is stored as a FASTQ file, which can then be sent for further processing, such as secondary processing. A typical FASTQ file includes a large set of reads representing digitally encoded nucleotide sequences in which each predicted base in the sequence has been identified and given a probability value that the specified base at a specified position is incorrect.
[00125] Во многих случаях может оказаться полезной дополнительная обработка указанных последовательностей с цифровым кодированием, полученных из секвенатора и/или протокола секвенирования, например, путем осуществления вторичной обработки данных, представленных в цифровом виде. Эта вторичная обработка, например, может быть необходима для того, чтобы собрать полный геномный профиль индивида, например, когда определяются все генетические факторы индивида, где определяется положение в последовательности каждого нуклеотида каждой хромосомы так, чтобы состав всего генома человека был идентифицирован. При такой обработке геном индивида может быть собран, например, путем сравнения с референсным геном, таким как стандарт, например, один или несколько геномов, полученных в рамках проекта генома человека, чтобы определить, чем генетические характеристики индивида отличаются от референсного генома(ов). Этот процесс широко известен как определение вариантов. Поскольку разница между ДНК/РНК различных лиц составляет от 1 до 1000 пар оснований, такой процесс определения вариантов может быть очень трудоемким и времязатратным.[00125] In many cases, it may be useful to further process the digitally encoded sequences obtained from the sequencer and/or sequencing protocol, for example, by performing secondary processing of the digitally represented data. This secondary processing, for example, may be necessary in order to assemble a complete genomic profile of an individual, for example where all of the individual's genetic factors are determined, where the sequence position of each nucleotide of each chromosome is determined so that the composition of the entire genome of the individual is identified. In such processing, an individual's genome may be assembled, for example, by comparison to a reference gene, such as a standard, such as one or more genomes obtained from the Human Genome Project, to determine how the individual's genetic characteristics differ from the reference genome(s). This process is commonly known as option identification. Since the difference between DNA/RNA of different individuals ranges from 1 to 1000 base pairs, this process of identifying variants can be very labor-intensive and time-consuming.
[00126] Соответственно, в типичном протоколе вторичной обработки генетическое строение субъекта собирают посредством сравнения с референсным геномом. Это сравнение включает реконструкцию генома индивида из миллионов и миллионов коротких последовательностей рида и/или сравнение всего ДНК и/или РНК индивида с примером модели последовательности ДНК и/или РНК. В типичном протоколе вторичной обработки из секвенатора принимают файл FASTQ, содержащий необработанные секвенированные данные рида. Например, в некоторых случаях может иметься до 30000000 или более ридов, охватывающих геном субъекта, исходя из того, что отсутствует избыточная выборка образцов, например, когда каждый рид имеет длину приблизительно 100 нуклеотидов. Следовательно, в таком примере, чтобы сравнить геном ДНК/РНК субъекта со стандартным референсным геномом, необходимо определить, где каждый из этих ридов картируется на референсный геном, например, как каждый из них выравнивается относительно другого и/или как каждый рид может быть также отсортирован по порядку хромосом, чтобы определить, в какой позиции находится каждый рид, и какой хромосоме он принадлежит. Одна или более из этих функций могут предшествовать выполнению функции определения вариантов на полноразмерной последовательности. После того, как определено, какой части генома принадлежит каждый рид, можно определить полноразмерную генетическую последовательность, а затем можно оценить различия между генетическим кодом субъекта и генетическим референсным кодом.[00126] Accordingly, in a typical secondary processing protocol, the genetic makeup of a subject is collected through comparison to a reference genome. This comparison involves reconstructing an individual's genome from millions and millions of short sequence reads and/or comparing the individual's entire DNA and/or RNA to an example DNA and/or RNA sequence model. In a typical secondary processing protocol, a FASTQ file containing raw sequenced read data is received from the sequencer. For example, in some cases there may be up to 30,000,000 or more reads spanning a subject's genome, assuming there is no oversampling, such as when each read is approximately 100 nucleotides in length. Therefore, in such an example, to compare a subject's DNA/RNA genome to a standard reference genome, it is necessary to determine where each of these reads maps onto the reference genome, e.g., how each one aligns relative to the other and/or how each read might also be sorted by chromosome order to determine what position each read is in and which chromosome it belongs to. One or more of these functions may precede the execution of a variant detection function on the full-length sequence. Once it is determined which part of the genome each read belongs to, the full-length genetic sequence can be determined, and the differences between the subject's genetic code and the genetic reference code can then be assessed.
[00127] Так как длина человеческого генома составляет более 3 миллиардов пар оснований, были разработаны эффективные автоматизированные протоколы и оборудование для секвенирования для выполнения секвенирования таких геномов ДНК/РНК в течение периодов времени, которые могут быть полезными с клинической точки зрения. Таким инновации в автоматизированном секвенировании обеспечили возможность секвенирования всего генома за считанные часы или дни в зависимости от количества секвенируемых геномов, с учетом избыточной выборки образцов, и количества обрабатывающих ресурсов, вовлеченных в работу. Следовательно, учитывая этот прогресс в сгенерировании, большое количество секвенируемых данных может быть сгенерировано за относительно короткий период времени. Результат такого прогресса, однако, развитие ограничивающего фактора («бутылочного горлышка») на стадии вторичной обработки. В попытках помочь преодолеть эти ограничивающие факторы были разработаны различные алгоритмы на основе программного обеспечения, такие как описаны в настоящем документе, для способствования ускорению процесса сборки секвенированных ДНК и/или РНК субъекта, например посредством процесса основанной на референсе сборки.[00127] Since the human genome is over 3 billion base pairs in length, efficient automated sequencing protocols and equipment have been developed to perform sequencing of such DNA/RNA genomes over periods of time that can be clinically useful. Thus, innovations in automated sequencing have made it possible to sequence an entire genome in a matter of hours or days, depending on the number of genomes sequenced, taking into account the oversampling of samples, and the amount of processing resources involved in the work. Therefore, given this advance in generation, a large amount of sequenced data can be generated in a relatively short period of time. The result of this progress, however, is the development of a limiting factor (“bottleneck”) at the secondary processing stage. In an attempt to help overcome these limiting factors, various software-based algorithms, such as those described herein, have been developed to help speed up the process of assembling sequenced DNA and/or RNA from a subject, for example through a reference-based assembly process.
[00128] Например, основанная на референсе сборка в типичном протоколе сборки вторичной обработки включает в себя сравнение секвенированной геномной ДНК и/или РНК субъекта с секвенированной геномной ДНК и/или РНК одного или более стандартов, например, известных референсных последовательностей. В качестве помощи для ускорения этого процесса разработаны различные алгоритмы. Обычно данные алгоритмы включают в себя некоторый вариант одного или более из: картирования, выравнивания и/или сортировки миллионов ридов, полученных из цифровых файлов, например файлов FASTQ, которые переданы секвенатором, для определения, к какому месту каждой хромосомы относится или как другим образом на ней расположен каждый конкретный рид. Часто общей особенностью функционирования этих различных алгоритмов является использование ими индекса и/или массива для ускорения их функции обработки.[00128] For example, reference-based assembly in a typical secondary processing assembly protocol involves comparing a subject's sequenced genomic DNA and/or RNA to sequenced genomic DNA and/or RNA of one or more standards, such as known reference sequences. Various algorithms have been developed to help speed up this process. Typically, these algorithms involve some version of one or more of: mapping, aligning, and/or sorting millions of reads obtained from digital files, such as FASTQ files, that are fed by a sequencer to determine which location on each chromosome belongs to or otherwise Each specific read is located there. Often a common feature in the operation of these various algorithms is their use of an index and/or array to speed up their processing function.
[00129] Например, что касается картирования, большое количество секвенированных ридов, например, все, могут быть обработаны для определения возможных местоположений в референсном геноме, на который могли бы быть выровнены эти риды. Один из методов, который может быть использован в этих целях, заключается в прямом сравнении рида с референсным геномом, чтобы найти все позиции совпадения. Другой метод состоит в использовании массива префиксов или суффиксов или построении дерева префиксов или суффиксов с целью картирования ридов на различные позиции в референсном геноме ДНК/РНК. Типичным алгоритмом, полезным при выполнении такой функции, является преобразование Барроуза-Уилера, которое используют для картирования ридов на референс с помощью формулы сжатия, которая сжимает повторяющиеся последовательности данных.[00129] For example, with respect to mapping, a large number of sequenced reads, for example all of them, can be processed to determine possible locations in the reference genome to which these reads could be aligned. One method that can be used for this purpose is to directly compare the read to a reference genome to find all match positions. Another method is to use a prefix or suffix array or construct a prefix or suffix tree to map reads to different positions in a DNA/RNA reference genome. A typical algorithm useful in performing this function is the Burrows-Wheeler transform, which is used to map reads to a reference using a compression formula that compresses repeated sequences of data.
[00130] Еще один метод заключается в использовании хэш-таблицы, например, когда выбранное подмножество ридов, k-мер выбранной длины «k», например, затравку, помещают в хэш-таблицу в качестве ключей, а референсную последовательность разбивают на части, равные по длине k-меру, и эти части и их местоположения вставляют с помощью алгоритма в хэш-таблицу в те места таблицы, на которые они отображаются в соответствии с функцией хэширования. Типичным алгоритмом для выполнения этой функции является «BLAST», Инструмент для поиска базового локального выравнивания (Basic Local Alignment Search Tool). Такие программы на основе хэш-таблицы сравнивают исследуемые нуклеотидные или белковые последовательности с одной или более баз данных стандартных референсных последовательностей и вычисляют статистическую значимость совпадений. Подобным образом можно определить вероятное местоположение любого данного рида относительно референсного генома. Эти алгоритмы полезны, поскольку они требуют меньше памяти, преобразований и, следовательно, требуют меньше вычислительных ресурсов и времени при выполнении своих функций, чем было бы в ином случае, например, если бы геном субъекта собирали путем прямого сравнения, например без использования этих алгоритмов.[00130] Another method is to use a hash table, for example, where a selected subset of reads, k-mers of selected length "k", such as a seed, are placed in the hash table as keys, and the reference sequence is split into parts equal to is a k-measure in length, and these parts and their locations are inserted by an algorithm into the hash table at those places in the table to which they are mapped according to the hash function. A typical algorithm for performing this function is BLAST, the Basic Local Alignment Search Tool. Such hash table-based programs compare the nucleotide or protein sequences of interest to one or more standard reference sequence databases and calculate the statistical significance of the matches. In this way, the likely location of any given read relative to the reference genome can be determined. These algorithms are useful because they require less memory, transformation, and therefore require less computational resources and time to perform their functions than would otherwise be the case, for example, if a subject's genome were assembled by direct comparison, for example, without the use of these algorithms.
[00131] Кроме того, может быть выполнена функция выравнивания для определения всех возможных местоположений картирования данного рида на геном, например в тех случаях, когда рид можно картировать на множество позиций в геноме, которые в действительности являются местоположением, из которого он был фактически получен, например путем секвенирования с этого места с помощью исходного протокола секвенирования. Эту функцию можно выполнить на ряде ридов генома и можно получить строку упорядоченных нуклеотидных оснований, представляющую частично или полностью геномную последовательность ДНК и/или РНК субъекта. Наряду с упорядоченной генетической последовательностью каждой нуклеотидной позиции можно присвоить оценку, представляющую для любой данной нуклеотидной позиции вероятность того, что нуклеотид, например, «A», «C», «G», «T» (или «U»), предполагаемый в этой позиции, действительно является нуклеотидом, который принадлежит этой назначенной позиции. Типичными алгоритмами для выполнения функция выравнивания являются алгоритмы Нидлмана-Вунша и Смита-Ватермана. В любом случае эти алгоритмы выполняют выравнивания последовательностей между строкой исследуемой геномной последовательности ДНК и/или РНК субъекта и строкой референсной геномной последовательности, тем самым вместо сравнения полногеномных последовательностей друг с другом сравнивают выбранные сегменты возможных длин. [00131] Additionally, an alignment function can be performed to determine all possible mapping locations of a given read onto the genome, for example in cases where a read can be mapped to multiple positions in the genome that are in fact the location from which it was actually obtained. for example, by sequencing from that location using the original sequencing protocol. This function can be performed on a number of genome reads and can produce a string of ordered nucleotide bases representing part or all of the subject's genomic DNA and/or RNA sequence. Along with the ordered genetic sequence, each nucleotide position can be assigned a score representing, for any given nucleotide position, the probability that the nucleotide, such as "A", "C", "G", "T" (or "U"), predicted to this position is indeed the nucleotide that belongs to this designated position. Typical algorithms for performing the alignment function are the Needleman-Wunsch and Smith-Waterman algorithms. In either case, these algorithms perform sequence alignments between a subject's DNA and/or RNA genomic sequence string and a reference genomic sequence string, thereby comparing selected segments of possible lengths instead of comparing entire genome sequences to each other.
[00132] После того как ридам назначены позиции, например, относительно референсного генома, что может включать в себя определение принадлежности рида конкретной хромосоме и/или его смещения от начала этой хромосомы, риды можно отсортировать по позиции. Это может позволить в последующих анализах использовать преимущества избыточной выборки, описанные в настоящем документе. Все риды, которые перекрывают данную позицию в геноме, будут рядом друг с другом после сортировки и могут быть организованы в скопление (pileup) и без труда исследованы, чтобы определить, согласуются ли большинство из них с референсным значением или нет. Если нет, вариант можно отметить флагом.[00132] Once reads have been assigned positions, for example, relative to a reference genome, which may include determining whether the read belongs to a particular chromosome and/or is offset from the start of that chromosome, the reads can be sorted by position. This may allow subsequent analyzes to take advantage of the oversampling described herein. All reads that overlap a given position in the genome will be adjacent to each other after sorting and can be organized into a pileup and easily examined to determine whether most of them agree with the reference value or not. If not, the option can be flagged.
[00133] Хотя данные и другие подобные им алгоритмы решают ограничивающие факторы, присущие вторичной обработке, по своему, более быстрое время работы и большая точность все еще являются необходимыми. В частности, хотя в выработке необработанных данных, например в вырабатываемых данных последовательности ДНК/РНК, есть развитие, развитие информационных технологий не стоит на месте, что приводит к ограничивающим факторам при анализе данных. Указанные ограничивающие факторы в некторой степени уменьшены благодаря разработке различных алгоритмов, например таких, как описаны выше, которые помогают ускорить данный анализ, однако все-равно существует потребность в новых технологиях для выполнения выработки и получения данных, вычисления, хранения и/или анализа таких данных, в особенности это относится к анализу геномной последовательности, например к этапу вторичной обработки.[00133] Although data and other algorithms like them address the limitations inherent in secondary processing in their own way, faster runtimes and greater accuracy are still needed. In particular, although there is progress in the generation of raw data, such as DNA/RNA sequence data generated, the development of information technology does not stand still, which leads to limiting factors in data analysis. These limiting factors have been reduced to some extent by the development of various algorithms, such as those described above, which help speed up this analysis, but there is still a need for new technologies to perform data generation, calculation, storage and/or analysis of such data. , this particularly applies to genomic sequence analysis, such as the secondary processing step.
[00134] Например, с применением стандартных технологий нового поколения секвенирование человеческого генома может занять несколько часов, вплоть до суток, а при использовании стандартных протоколов для выполнения вторичной обработки таких полученных секвенированных геномных данных обработка секвенированных данных может занять до трех (3) суток или даже до недели или более для выработки релевантной с клинической точки зрения информации о геномной последовательности индивида. С применением различных оптимизированных устройств, алгоритмов, способов и/или систем время, затраченное на обработку, от первичной до вторичной, может быть снижено и составлять лишь от 27 до 48 часов. Однако для достижения таких быстрых результатов обычно требуется по существу одновременная и параллельная обработка всех выработанных ридов, например 30 миллионов ридов по 100 нуклеотидов каждый. Такая параллельная обработка требует дорогих обрабатывающих мощностей, включая массивные ресурсы ЦПУ, и все еще занимает относительно много времени.[00134] For example, using standard next-generation technologies, sequencing the human genome can take several hours, up to a day, and when using standard protocols to perform secondary processing of such resulting sequenced genomic data, processing of the sequenced data can take up to three (3) days or even up to a week or more to generate clinically relevant information about an individual's genomic sequence. By using various optimized devices, algorithms, methods and/or systems, the processing time from primary to secondary can be reduced to as little as 27 to 48 hours. However, achieving such rapid results typically requires essentially simultaneous and parallel processing of all generated reads, for example 30 million reads of 100 nucleotides each. Such parallel processing requires expensive processing power, including massive CPU resources, and still takes a relatively long time.
[00135] Кроме того, в различных примерах необходима повышенная точность рещультатов. Такая повышенная точность может быть достигнута за счет обеспечения некоторой избыточной выборки секвенируемого генома. Например, как описано выше, может быть необходимо обрабатывать ДНК субъекта таким образом, что в любом данном местоположении в последовательности нуклеотидов имелась избыточная выборка этой области. Как указано выше, может требоваться избыточная выборка в любой данной области генома, включая в 10Х, 15Х, 20Х, 25Х, 30Х, 40Х, 50Х, 100Х, 250Х, или даже 500Х или 1000Х раз или более. Однако, когда имеется избыточная выборка генома, например в 40Х раз, количество ридов, которые необходимо обработать, составляет приблизительно 30 миллионов х 40 (в зависимости от длины ридов), что приводит к тому, что необходимо обработать 1,2 миллиарда ридов, когда имеется избыточная выборка генома в 40Х раз. Следовательно, хотя такая избыточная выборка обычно приводит к большей точности, это происходит ценой большего времени и требует более масштабных обрабатывающих ресурсов, так как каждый участок генома покрыт от 1 до 40 раз. Более того, в некоторых случаях применения в онкологии, в которых медицинский специалист пытается отличить мутировавший геном раковых клеток в потоке крови от генома здоровых клеток, может использоваться избыточная выборка в 500Х, 1000Х, 5000Х или даже в 10000Х раз.[00135] In addition, in various examples, increased accuracy of the results is necessary. This increased accuracy can be achieved by providing some oversampling of the genome being sequenced. For example, as described above, it may be necessary to process a subject's DNA such that at any given location in the nucleotide sequence there is an oversampling of that region. As stated above, oversampling may be required in any given region of the genome, including 10X, 15X, 20X, 25X, 30X, 40X, 50X, 100X, 250X, or even 500X or 1000X times or more. However, when there is an oversampling of the genome, say 40X times, the number of reads that need to be processed is approximately 30 million x 40 (depending on the length of the reads), resulting in 1.2 billion reads needing to be processed when there are oversampling the genome by a factor of 40X. Therefore, although such oversampling typically results in greater accuracy, it comes at the cost of more time and requires larger processing resources since each genomic region is covered 1 to 40 times. Moreover, in some oncology applications in which a clinician is trying to distinguish the mutated genome of cancer cells in the bloodstream from the genome of healthy cells, oversampling by a factor of 500X, 1000X, 5000X, or even 10,000X may be used.
[00136] Настоящее изобретение, таким образом, направлено на такие новые технологии, которые могут быть реализованы в одном геномном и/или биоинформационном протоколе, например в конвейере, или в их последовательности, для выполнения генетического получения и/или анализа, например первичной и/или вторичной обработки, полученных геномных последовательных данных или их части. Последовательные данные могут быть получены непосредственно от автоматизированных систем секвенирования высокой производительности, например посредством автоматизированного секвенатора 454 «Секвенирования посредством синтеза» («Sequencing by Synthesis») фирмы ROCHE, автоматизированных секвенаторов HiSeq x Ten или Solexia фирмы ILLUMINA, секвенаторов «Секвенирование посредством лигирования и обнаружения олигонуклеотида» («Sequencing by Oligonucleotide Ligation and Detection» (SOLiD)) или Ионное полупроводниковое секвенирование (Ion Torrent) фирмы LIFE TECHNOLOGIES и/или секвенатора «Флуорисцентное секвенирование одной молекулы» («Single Molecule Fluorescent Sequencing») фирмы HELICOS GENETIC ANALYSIS SYSTEMS, или тому подобного, например, посредством прямого соединения с секвенирующим обрабатыващим блоком, или секвенированные данные могут быть получены напрямую, например при секвенировании на конфигурации чипа, такой как графеновый слоистый датчик на полевых транзисторах, содержащий секвенирующий чип на комплементарных металло-оксидных полупроводниках (CMOS), как описано в настоящем документе. Такие секвенированные данные также могут быть получены удаленно, например из базы данных, например через Интернет, или из другого удаленного мета, доступного посредством беспроводных протоколов связи, например по WiFi, Bluetooth или тому подобному.[00136] The present invention is therefore directed to such new technologies that can be implemented in a single genomic and/or bioinformatics protocol, such as a pipeline, or a sequence thereof, to perform genetic acquisition and/or analysis, such as primary and/or or secondary processing of the obtained genomic sequence data or part thereof. Sequence data can be obtained directly from high-throughput automated sequencing systems, such as ROCHE's 454 Sequencing by Synthesis automated sequencer, ILLUMINA's HiSeq x Ten or Solexia automated sequencers, Sequencing by Ligation and Discovery sequencers oligonucleotide" (“Sequencing by Oligonucleotide Ligation and Detection” (SOLiD)) or Ion Torrent sequencing from LIFE TECHNOLOGIES and/or the “Single Molecule Fluorescent Sequencing” sequencer from HELICOS GENETIC ANALYSIS SYSTEMS, or the like, for example, through a direct connection to a sequencing processing unit, or the sequenced data can be obtained directly, for example, by sequencing on a chip configuration, such as a graphene layered FET sensor containing a complementary metal oxide semiconductor (CMOS) sequencing chip , as described in this document. Such sequenced data may also be obtained remotely, for example from a database, such as over the Internet, or from other remote data accessible via wireless communication protocols, such as WiFi, Bluetooth or the like.
[00137] В соответствии с определенными аспектами эти технологии генетического получения и/или анализа могут использовать усовершенствованные алгоритмы, которые могут быть реализованы программным обеспечением, которое выполняется с менее интенсивной обработкой, и/или с меньшими временными затратами, и/или более высоким процентом точности. Например, в некоторых вариантах реализации обеспечены усовершенствованные устройства и способы производства информации генетической последовательности, например как в протоколах первичной обработки, как раскрыто в настоящем документе, и/или усовершенствованные алгоритмы выполнения над ней вторичной обработки, как раскрыто в настоящем документе. В различных конкретных вариантах реализации усовершенствованные устройства, системы, способы их использования и применяемые алгоритмы направлены на более эффективное и/или более точное выполнение одной или более из функций секвенирования, картирования, выравнивания и/или сортировки, например для выработки и/или анализа цифрового представления данных последовательности ДНК/РНК, полученных от платформы секвенирования, например, в формате файла FASTQ, полученного из автоматизированного секвенатора и/или секвенатора на чипе, такого как один из описанных выше.[00137] In accordance with certain aspects, these genetic acquisition and/or analysis technologies may use advanced algorithms that may be implemented in software that are performed with less processing intensity and/or less time and/or a higher percentage of accuracy . For example, in some embodiments, improved devices and methods are provided for producing genetic sequence information, such as in primary processing protocols as disclosed herein, and/or improved algorithms for performing secondary processing on it, as disclosed herein. In various specific embodiments, improved devices, systems, methods of using them, and applied algorithms are aimed at more efficiently and/or more accurately performing one or more of the functions of sequencing, mapping, alignment, and/or sorting, such as generating and/or analyzing a digital representation DNA/RNA sequence data obtained from a sequencing platform, for example, in FASTQ file format obtained from an automated sequencer and/or on-chip sequencer, such as one described above.
[00138] Кроме того, в некоторых вариантах реализации предложены усовершенствованные алгоритмы, направленные на более эффективное и/или более точное выполнение одной или более из функций локального повторного выравнивания, маркировки дубликатов, перекалибровки качественной оценки оснований, определения вариантов, сжатия и/или распаковки. Кроме того, как более подробно описано ниже в настоящем документе, согласно определенным аспектам эти технологии генетического производства и/или анализа могут использоваться по одному или более алгоритмам, таким как усовершенствованные алгоритмы, которые могут быть реализованы с помощью аппаратного обеспечения, которые выполняются с менее интенсивной обработкой, и/или с меньшими временными затратами, и/или более высоким процентом точности, чем различные программные реализации для выполнения того же самого.[00138] In addition, some embodiments provide improved algorithms to more efficiently and/or more accurately perform one or more of the functions of local realignment, duplicate flagging, ground truth recalibration, variant detection, compression, and/or decompression. In addition, as described in more detail below herein, in certain aspects, these genetic production and/or analysis technologies may employ one or more algorithms, such as advanced algorithms that may be implemented in hardware, that run less intensively. processing, and/or with less time and/or a higher percentage of accuracy than various software implementations for doing the same.
[00139] В конкретных вариантах реализации предложена платформа технологий для секвенирования ДНК/РНК для получения данных генетической последовательности и/или для выполнения генетических анализов, причем платформа может включать в себя выполнение одной или более из функций: секвенирования, картирования, выравнивания, сортировки, локального повторного выравнивания, маркировки дубликатов, перекалибровки качественной оценки основания, определения вариантов, сжатия и/или распаковки, и/или может также включать протоколы третичной обработки, как описано в настоящем документе. В определенных случаях реализация одной или более из этих функций платформы предназначена для генерации и/или выполнения одного или более из определения и/или реконструкции консенсусной геномной последовательности субъекта, сравнения геномной последовательности субъекта с референсной последовательностью, например, референсной или модельной генетической последовательностью, определения того, каким образом геномная ДНК и/или РНК субъекта отличается от референсной, например, определения вариантов, и/или для выполнения третичного анализа на геномной последовательности субъекта, например, для полного анализа генома, например, для анализа вариации по всему геному и/или для анализа типирования генома, функционального анализа генов, функционального анализа белков, например, анализа связывания белков, численного и/или сборного анализа геномов и/или транскриптомов, анализа микропанели, анализа панелей, анализа экзом, микробиомного анализа и/или клинического анализа, например анализа рака, анализа с неинвазивным пренатальным тестированием (NIPT) и/или анализа UCS, а также для различных анализов диагностической, и/или профилактической, и/или терапевтической оценки.[00139] In specific embodiments, a technology platform is provided for DNA/RNA sequencing to obtain genetic sequence data and/or to perform genetic analyses, wherein the platform may include performing one or more of the functions of: sequencing, mapping, alignment, sorting, local realignment, duplicate marking, base quality recalibration, variant identification, compression and/or decompression, and/or may also include tertiary processing protocols as described herein. In certain cases, the implementation of one or more of these platform functions is designed to generate and/or perform one or more of determining and/or reconstructing a consensus genomic sequence of a subject, comparing the genomic sequence of the subject with a reference sequence, e.g., a reference or model genetic sequence, determining whether how a subject's genomic DNA and/or RNA differs from a reference, e.g., to identify variants, and/or to perform tertiary analysis on the subject's genomic sequence, e.g., to analyze a whole genome, e.g., to analyze genome-wide variation, and/or to genome typing analysis, gene functional analysis, protein functional analysis, e.g. protein binding assay, numerical and/or assembled genome and/or transcriptome analysis, micropanel analysis, panel analysis, exome analysis, microbiome analysis and/or clinical analysis, e.g. cancer analysis , non-invasive prenatal testing (NIPT) assay and/or UCS assay, as well as for various diagnostic and/or prophylactic and/or therapeutic evaluation assays.
[00140] В частности, после того, как генетические данные сформированы и/или обработаны, например, в одном или более протоколах первичной и/или вторичной обработки, например, картированы, выровнены и/или отсортированы, например, для создания одного или более файлов определения вариантов, например, для определения того, как данные генетической последовательности субъекта отличаются от одной или более референсных последовательностей, согласно другому аспекту настоящее изобретение может относиться к выполнению одной или более других аналитических функций над сформированными и/или обработанными генетическими данными, например, для дальнейшей обработки, такой как третичная обработка. Например, система может быть выполнена с возможностью выполнения дальнейшей обработки сгенерированных и/или обрабатываемых во вторую очередь данных, например посредстом их прогона через один или более конвейер для третичной обработки, такой как один или более из конвейера генома, конвейера эпигенома, конвейера метагенома, совместного генотипирования, конвейера MuTect2 или другого конвейера для третичной обработки, например посредством устройств и способов, раскрытых в настоящем документе. Например, в различных примерах может быть обеспечен дополнительный уровень обработки, например для диагностики заболевания, терапевтического лечения и/или профилактического предупреждения, включая, например, неинвазивное пренатальное тестирование (NIPT), реанимацию и интенсивную терапию новорожденных (NICU), рак, проводимые в лаборатории исследования (LDT), агробиологию (AgBio) и другие виды диагностики, профилактики и/или способов лечения таких заболеваний, в которых применяются данные, сгенерированные одним или более из указанных первичных, вторичных и/или третичных конвейеров. Следовательно, устройства и способы, описанные в настоящем документе, могут быть использованы для формирования данных генетических последовательностей, которые затем могут быть использованы для формирования одного или более файлов определения вариантов и/или другой связанной информации, которая может быть в дальнейшем подвергнута обработке другими конвейерами третичной обработки в соответствии с устройствами и способами, описанными в настоящем документе, например, для диагностики конкретных и/или общих заболеваний, а также для профилактических и/или терапевтических мер и/или методов воздействия на развитие.[00140] In particular, after genetic data has been generated and/or processed, for example, in one or more primary and/or secondary processing protocols, for example, mapped, aligned and/or sorted, for example, to create one or more files determining variants, for example, to determine how a subject's genetic sequence data differs from one or more reference sequences; in another aspect, the present invention may relate to performing one or more other analytical functions on generated and/or processed genetic data, for example, to further processing such as tertiary processing. For example, the system may be configured to perform further processing on generated and/or secondary processed data, such as by running it through one or more tertiary processing pipelines, such as one or more of a genome pipeline, an epigenome pipeline, a metagenome pipeline, a shared genotyping, MuTect2 pipeline or other tertiary processing pipeline, for example through the devices and methods disclosed herein. For example, in various examples, an additional level of processing may be provided, for example, for disease diagnosis, therapeutic treatment and/or prophylactic prevention, including, for example, non-invasive prenatal testing (NIPT), neonatal intensive care unit (NICU), cancer, performed in the laboratory research (LDT), agrobiology (AgBio) and other types of diagnosis, prevention and/or treatment of such diseases that use data generated by one or more of the specified primary, secondary and/or tertiary pipelines. Therefore, the devices and methods described herein can be used to generate genetic sequence data, which can then be used to generate one or more variant definition files and/or other associated information that can be further processed by other tertiary pipelines. processing in accordance with the devices and methods described herein, for example, for the diagnosis of specific and/or general diseases, as well as for preventive and/or therapeutic measures and/or developmental methods.
[00141] Кроме того, в различных вариантах реализации биоинформационный режим обработки, раскрытый в настоящем документе, может применяться для создания одной или более масок, геномной референсной маски, стандартной маски, маски заболевания и/или маски итерационной обратной связи, которые могут быть добавлены в картировщик и/или выравниватель, например вместе с референсом, причем набор масок выполнен с возможностью идентификации конкретной интересующей области или объекта. Например, в одном варианте реализации способы и устройства, раскрытые в настоящем документе, могут применяться для создания геномной референсной маски, например путем создания набора масок, который может быть загружен в картировщик и/или выравниватель вместе с референсом, причем набор масок выполнен с возможностью идентификации особо важных и/или релевантных областей, например для специалиста и/или субъекта, и/или для идентификации областей с повышенной чувствительностью к ошибкам. В различных вариантах реализации набор масок может обеспечивать интеллектуальное направление картировщика и/или выравнивателя, например, на каких областях генома сфокусироваться для повышения качества. Таким образом, маски могут быть созданы слоистым образом для обеспечения изменяемых уровней или итераций направления на основе различных конкретных случаев применения. Соответственно, каждая маска может идентифицировать интересующие области и обеспечивать минимальный целевой показатель качества для области. Кроме того, стандартная маска может применяться для обеспечения направления, например на идентифицированные, например типичные, «особо важные» области генома. Такие области могут включать известные кодированные области, контролируемые области и т.д., а также области, в отношении которых хорошо известно, что они производят ошибки. Кроме того, маска заболевания, или специфичная для случая применения маска, может применяться в наборе масок, который идентифицирует особо важные области, например, области, которым требуются высокие уровни точности на основании известных маркеров, например, рак. Помимо этого, может применяться маскировка итерационной обратной связи, например путем добавления новой, подходящей к данному случаю маски, которая может быть специально спроектирована посредством использования обратной связи от системы третичного анализа (наподобие Cypher Genomics), которая идентифицирует представляющие интерес обласли на основе наблюдаемых ошибок или несоответствий.[00141] Additionally, in various embodiments, the bioinformatics processing mode disclosed herein can be used to create one or more masks, a genomic reference mask, a standard mask, a disease mask, and/or an iterative feedback mask that can be added to a mapper and/or aligner, for example together with a reference, wherein the set of masks is configured to identify a particular area or object of interest. For example, in one embodiment, the methods and apparatus disclosed herein can be used to create a genomic reference mask, for example by creating a set of masks that can be loaded into a mapper and/or aligner along with the reference, wherein the set of masks is identifiable particularly important and/or relevant areas, for example for a specialist and/or subject, and/or to identify areas with increased sensitivity to errors. In various embodiments, a set of masks can provide intelligent direction to the mapper and/or aligner, such as which regions of the genome to focus on for improved quality. In this way, masks can be created in a layered manner to provide variable levels or iterations of direction based on different specific use cases. Accordingly, each mask can identify regions of interest and provide a minimum quality target for the region. In addition, a standard mask can be used to provide targeting, for example, to identified, eg typical, "particularly important" regions of the genome. Such regions may include known coded regions, monitored regions, etc., as well as regions that are well known to produce errors. In addition, a disease mask, or application-specific mask, can be used in a set of masks that identifies areas of particular interest, such as areas that require high levels of accuracy based on known markers, such as cancer. In addition, iterative feedback masking can be applied, for example by adding a new, case-specific mask that can be specifically designed using feedback from a tertiary analysis system (like Cypher Genomics) that identifies regions of interest based on observed errors or inconsistencies.
[00142] Как указано выше, согласно одному аспекту одна или более из этих функций платформы, например, функций картирования, выравнивания, сортировки, повторного выравнивания, маркировки дубликатов, перекалибровки качественной оценки основания, определения вариантов, одного или более модулей третичной обработки, сжатия и/или распаковки, выполнены с возможностью реализации в программном обеспечении. В другом варианте реализации одна или более из этих функций платформы, например, функций картирования, выравнивания, сортировки, локального повторного выравнивания, маркировки дубликатов, перекалибровки качественной оценки основания, распаковки, определения вариантов, третичной обработки, сжатия и/или распаковки, выполнены с возможностью реализации в аппаратном обеспечении.[00142] As stated above, in one aspect, one or more of these platform functions, e.g., mapping, alignment, sorting, re-alignment, duplicate marking, ground quality recalibration, variant detection, one or more tertiary processing, compression, and /or unpacking, are designed to be implemented in software. In another embodiment, one or more of these platform functions, e.g., mapping, alignment, sorting, local realignment, duplicate marking, ground quality recalibration, decompression, variant detection, tertiary processing, compression, and/or decompression functions, are configured to implementation in hardware.
[00143] Соответственно, в определенных случаях в настоящем документе предложены способы, где способы включают в себя выполнение алгоритма, такого как алгоритм для реализации одной или более функций генетического анализа, таких как картирование, выравнивание, сортировка, повторное выравнивание, маркировка дубликатов, перекалибровка качественной оценки основания, определение вариантов, сжатие и/или распаковка, где алгоритм оптимизирован в соответствии со способом, которым он должен быть реализован. В частности, когда алгоритм должен быть реализован в программном решении, алгоритм и/или обслуживающие его процессы оптимизированы таким образом, чтобы они работали быстрее и/или с более высокой точностью при выполнении этой средой. Аналогичным образом, когда функции алгоритма должны быть реализованы в аппаратном решении, аппаратное обеспечение разработано для выполнения этих функций и/или обслуживающих их процессов оптимальным образом, чтобы работать быстрее и/или с более высокой точностью при выполнении этой средой. Эти способы, например, могут быть использованы, например, в процедуре итеративного определения вариантов.[00143] Accordingly, in certain cases, methods are provided herein, where the methods include executing an algorithm, such as an algorithm for implementing one or more genetic analysis functions such as mapping, alignment, sorting, realignment, duplicate flagging, qualitative recalibration basis evaluations, variant determination, compression and/or decompression, where the algorithm is optimized according to the way it is to be implemented. In particular, when an algorithm is to be implemented in a software solution, the algorithm and/or its supporting processes are optimized so that they run faster and/or with higher accuracy when executed by that environment. Likewise, when the functions of an algorithm must be implemented in a hardware solution, the hardware is designed to perform those functions and/or the processes that serve them in an optimal manner to perform faster and/or with higher accuracy when executed by that environment. These methods, for example, can be used, for example, in an iterative variant determination procedure.
[00144] Поэтому согласно одному аспекту в настоящем документе предложены системы, устройства и способы для реализации протоколов биоинформатики, например, для выполнения одной или более функций анализа генетических данных, таких как геномные данные, например, посредством одного или более оптимизированных алгоритмов и/или на одной или более оптимизированных интегральных схемах, например на одной или более аппаратных платформах обработки. Таким образом, в одном случае предложены системы и способы для реализации одного или более алгоритмов для выполнения одного или более этапов анализа геномных данных в протоколах биоинформатики, например, когда этапы могут включать в себя выполнение одного или более из: картирования, выравнивания, сортировки, локального повторного выравнивания, маркировки дубликатов, перекалибровки качественной оценки основания, определения вариантов, сжатия и/или распаковки. В другом случае предложены системы и способы для реализации функций одного или более алгоритмов для выполнения одного или более этапов анализа геномных данных в протоколе биоинформатики, как указано в настоящем документе, причем функции реализуются на аппаратном ускорителе, который может быть соединен или не соединен с одним или более процессорами общего назначения и/или суперкомпьютерами.[00144] Therefore, in one aspect, systems, devices and methods are provided herein for implementing bioinformatics protocols, for example, for performing one or more genetic data analysis functions, such as genomic data, for example, through one or more optimized algorithms and/or one or more optimized integrated circuits, for example on one or more hardware processing platforms. Thus, in one case, systems and methods are provided for implementing one or more algorithms for performing one or more steps of analyzing genomic data in bioinformatics protocols, for example, where the steps may include performing one or more of: mapping, alignment, sorting, local realignment, marking of duplicates, recalibration of qualitative assessment of the base, identification of variants, compression and/or decompression. Alternatively, systems and methods are provided for implementing functions of one or more algorithms for performing one or more steps of genomic data analysis in a bioinformatics protocol as defined herein, wherein the functions are implemented on a hardware accelerator that may or may not be coupled to one or more more general purpose processors and/or supercomputers.
[00145] Точнее говоря, в некоторых случаях предложены способы для выполнения вторичной аналитики над данными, имеющими отношение к генетическому составу субъекта. В одном случае аналитика, подлежащая выполнению, может включать в себя основанную на референсе реконструкцию генома субъекта. Например, основанное на референсе картирование включает в себя использование референсного генома, который может быть сформирован в результате секвенирования генома одного или множества индивидов, или он может быть объединением принадлежащих различным людям ДНК, которые объединены таким образом, чтобы создать прототипный стандартный референсный геном, с которым можно сравнить ДНК любого индивида, например, для определения и реконструкции генетической последовательности индивида и/или для определения разницы между их генетическим строением и этим стандартным референсом, например, для определения вариантов.[00145] More specifically, in some cases, methods have been proposed for performing secondary analytics on data related to the genetic makeup of a subject. In one case, the analytics to be performed may include a reference-based reconstruction of the subject's genome. For example, reference-based mapping involves the use of a reference genome, which may be generated by sequencing the genome of one or more individuals, or it may be a pool of DNA from different individuals that is combined in such a way as to create a prototypic standard reference genome with which the DNA of any individual can be compared, for example, to determine and reconstruct the individual's genetic sequence and/or to determine the difference between their genetic makeup and this standard reference, for example, to identify variants.
[00146] В частности, причина выполнения вторичного анализа над секвенированной ДНК субъекта состоит в том, чтобы определить, как ДНК субъекта отличается от ДНК референса. Более конкретно, чтобы определить одно, множество или все отличия нуклеотидной последовательности субъекта от нуклеотидной последовательности референса. Например, отличия между генетическими последовательностями любых двух случайно выбранных людей встречаются 1 раз на 1000 пар оснований, что с учетом свыше 3 миллиардов пар оснований в полном геноме составляет вариацию из до 3000000 отличающихся пар оснований на человека. Определение этих отличий может быть полезным, например, в протоколе третичного анализа, например, для прогнозирования возможности возникновения болезненного состояния, например, вследствие генетического нарушения, и/или вероятности успеха профилактического или терапевтического воздействия, например, на основе того, каким ожидается взаимодействие профилактики или терапии с ДНК субъекта или формируемыми при этом белками. В различных случаях может оказаться полезным выполнение реконструкции генома субъекта как впервые, так и на основе референса, чтобы подкрепить результаты одной результатами другой, и чтобы улучшить точность протокола определения вариантов, если требуется.[00146] In particular, the reason for performing secondary analysis on a subject's sequenced DNA is to determine how the subject's DNA differs from the reference DNA. More specifically, to determine one, many, or all differences between a subject's nucleotide sequence and a reference nucleotide sequence. For example, differences between the genetic sequences of any two randomly selected individuals occur 1 time per 1000 base pairs, which, given the over 3 billion base pairs in the entire genome, amounts to a variation of up to 3,000,000 different base pairs per person. Determining these differences may be useful, for example, in a tertiary analysis protocol, for example, to predict the possibility of a disease state, for example, due to a genetic disorder, and/or the likelihood of success of a prophylactic or therapeutic intervention, for example, based on how the prevention or treatment is expected to interact therapy with the subject's DNA or proteins formed in this process. In various cases, it may be useful to perform a reconstruction of a subject's genome, either for the first time or from a reference, to reinforce the results of one with the results of the other, and to improve the accuracy of the variant identification protocol, if required.
[00147] В различных примерах, как указано выше, при выполнении протокола первичной обработки может быть полезным обеспечить избыточную выборку для одной или более областей генома субъекта. Эти области могут быть выбраны на основе известных областей с повышенной вариативностью, области с предполагаемой повышенной вариативностью, например на основании состояния субъекта и/или всего генома в целом. В базовой форме, как указано выше, на основании типа выполняемых протоколов секвенирования, секвенирование производит считывания, например риды, которые являются цифровым представлением кода генетической последовательности субъекта. Эти длины ридов обычно сформированы на основании типа используемого секвенирующего оборудования. Например, автоматизированный секвенатор 454 фирмы ROCHE обычно производит риды длиной от 100 или 150 пар оснований приблизительно до 1000 пар оснований; для некоторых технологий фирмы ILLUMINA длина ридов обычно составляет приблизительно от 100 или 101 приблизительно до 150 пар оснований и 250 пар оснований для других технологий; для технологии SOLiD фирмы LIFE TECHNOLOGIES длина ридов обычно составляет приблизительно от 50 приблизительно до 60 пар оснований, а для технологии Ion Torrent от 35 до 450 пар оснований; а для HELICOS GENETIC ANALYSIS SYSTEMS длина ридов может варьироваться, но обычно может составлять менее 1000 нуклеотидов.[00147] In various examples, as indicated above, when performing a primary processing protocol, it may be useful to provide oversampling for one or more regions of a subject's genome. These regions may be selected based on known regions of increased variation, regions of suspected increased variation, for example, based on a subject's condition and/or the entire genome. In its basic form, as stated above, based on the type of sequencing protocols performed, sequencing produces reads, such as reads, which are a digital representation of a subject's genetic sequence code. These read lengths are typically generated based on the type of sequencing equipment used. For example, the ROCHE 454 automated sequencer typically produces reads ranging in length from 100 or 150 bp to approximately 1000 bp; For some ILLUMINA technologies, read lengths typically range from about 100 or 101 to about 150 base pairs and 250 base pairs for other technologies; for LIFE TECHNOLOGIES' SOLiD technology, read lengths are typically between approximately 50 and approximately 60 base pairs, and for Ion Torrent technology, between 35 and 450 base pairs; and for HELICOS GENETIC ANALYSIS SYSTEMS, the length of the reads may vary, but can typically be less than 1000 nucleotides.
[00148] Однако так как обработка образца днк, требуемая для получения ридов заданной длины специфического размера является трудозатратной, а также затратной с точки зрения химии, и так как секвенирование само по себе часто зависит от работы секвенирующего оборудования, существует возможность появления ошибок в процессе секвенирования, тем самым внося нарушения в ту часть секвенированного генома, в которой возникла ошибка. Такие ошибки могут вызывать проблемы, особенно, когда целью реконструкции генома субъекта является определение он или по меньшей мере часть генома отличается от стандарта или референсной модели. Например, ошибка устройства или химии, приводящая к замене одного нуклеотида, например в риде, другим, даст ложную индикацию вариации, которой на самом деле нет. Это может привести к некоректному определению оснований и также может привести к ложной индикиции состояния заболевания или тому подобного. Соответственно, вследствие возможности ошибки оборудования, химии и/или даже человека при выполнении протокола секвенирования во многих случаях является желательным обеспечение избыточности в системе анализа, например посредством обеспечения избыточности образцов по всему геному. В частности, при обеспечении автоматизированным секвенатором файла FASTQ, определяющего последовательность ридов, содержащих нуклеотиды в заданных позициях, вместе с вероятностью того, что соответствие определения заданного нуклеотида определенной позиции на самом деле является ложным, например определение основания, зачастую необходимо использовать способы, такие как избыточная выборка образцов, для обеспечения того, что определение оснований, выполненные в процессе секвенирования, могут быть обнаружены и скорректированы.[00148] However, since the processing of a DNA sample required to obtain reads of a given length of a specific size is labor-intensive as well as chemically expensive, and since sequencing itself is often dependent on the operation of the sequencing equipment, there is a possibility of errors occurring in the sequencing process , thereby introducing disturbances into the part of the sequenced genome in which the error occurred. Such errors can cause problems, especially when the purpose of reconstructing a subject's genome is to determine that it, or at least part of the genome, differs from the standard or reference model. For example, a design or chemistry error that results in the replacement of one nucleotide, for example in a read, by another will give a false indication of variation that actually does not exist. This may lead to incorrect determination of grounds and may also lead to false indication of a disease state or the like. Accordingly, due to the possibility of hardware, chemical, and/or even human error in performing a sequencing protocol, in many cases it is desirable to provide redundancy in the analysis system, for example by providing redundancy of samples throughout the genome. In particular, when providing an automated sequencer with a FASTQ file defining the sequence of reads containing nucleotides at given positions, coupled with the likelihood that the assignment of a given nucleotide definition to a particular position is actually false, such as a base definition, it is often necessary to use techniques such as redundancy sampling of samples to ensure that base determinations made during the sequencing process can be detected and corrected.
[00149] Следовательно, при выполнении способов, описанных в настоящем документе, в некоторых случаях, протокол первичной обработки выполняют таким образом, чтобы получать секвенированный геном, в котором для части или для всего генома обеспечена избыточная выборка образцов прблизительно в 10Х, 15Х, 20Х, 25Х, 30Х, 40Х, 50Х раз или более. Соответственно, когда длина ридов составляет приблизительно 50-60 пар оснований, такая избыточная выборка образцов может приводить к наличию приблизительно от 2 приблизительно до 2,5 миллиардов ридов, или когда длина ридов составляет приблизительно 100 или 101 пару ридов, избыточная выборка образцов может приводить к наличию приблизительно от 1 приблизительно до 1,2 миллиардов ридов, а когда длина ридов составляет приблизительно 1000 пар оснований, секвенатором могут быть сгенерированы приблизительно от 50 приблизительно до 100 миллионов ридов, например когда избыточная выборка образцов составляет приблизительно 40Х раз. В частности, в таком примере вследствие избыточной выборки образцов в 40Х раз, ожидается, что в любом заданной месте генома будет иметься 40 ридов, покрывающих любое положение, несмотря на то, что заданная позиция может находиться в начале одного рида, середине другого и конце еще одного, однако ожидается, что оно будет покрыто приблизительно 40 раз.[00149] Therefore, when performing the methods described herein, in some cases, the primary processing protocol is performed in such a way as to obtain a sequenced genome in which a portion or all of the genome is oversampled by approximately 10X, 15X, 20X, 25X, 30X, 40X, 50X times or more. Accordingly, when the length of the reads is approximately 50-60 base pairs, such oversampling may result in the presence of approximately 2 to approximately 2.5 billion reads, or when the length of the reads is approximately 100 or 101 read pairs, oversampling may result in having about 1 to about 1.2 billion reads, and when the length of the reads is about 1000 base pairs, about 50 to about 100 million reads can be generated by the sequencer, for example when the oversampling is about 40X times. Specifically, in this example, due to oversampling by a factor of 40X, at any given location in the genome there are expected to be 40 reads covering any position, even though a given position may be at the beginning of one read, the middle of another, and the end of another. one, however it is expected to be covered approximately 40 times.
[00150] Таким образом, такая избыточная выборка образцов обеспечивает области секвенированного генома, которые покрыты множеством ридов, например, дубликатами, например, до 40 ридов, например, когда избыточная выборка образцов составляет приблизительно 40Х раз. Указанные по меньшей мере частичные дубликаты являются полезными при определении, является ли любое заданная вариация в любом конкретном риде на самом деле действительной геномной вариацией или лишь артефактом оборудования или химии. Таким образом, избыточная выборка образцов может применяться для повышения точности при реконструкции генома субъекта, особенно в случаях, когда геном субъекта необходимо сравнить с референсным геномом для определения тех случаев, когда генетическая последовательность субъекта отличается от референсной генетической последовательности. Таким образом, как описано более подробно ниже в настоящем документе, можно подтвердить, что любая данная вариация между реконструированной последовательностью и моделью на самом деле вызвано наличием действительного варианта, а не ошибкой первичной обработки образца ДНК, программным обеспечением для выравнивания ридов и т.д.[00150] Thus, such oversampling provides regions of the sequenced genome that are covered by many reads, eg, duplicates, eg up to 40 reads, eg when oversampling is approximately 40X times. These at least partial duplicates are useful in determining whether any given variation in any particular read is in fact a true genomic variation or merely an artifact of equipment or chemistry. Thus, oversampling can be used to improve accuracy in reconstructing a subject's genome, especially in cases where the subject's genome needs to be compared to a reference genome to determine when the subject's genetic sequence differs from the reference genetic sequence. Thus, as described in more detail later in this document, it can be confirmed that any given variation between the reconstructed sequence and the model is in fact caused by the presence of a real variant and not by an error in the initial processing of the DNA sample, read alignment software, etc.
[00151] Например, при построении генетической последовательности секввенированной ДНК субъекта, необходимо определить, где должен быть какой нуклеотид в растущей строке нуклеотидов. Для определения того, где должен быть какой нуклеотид, различные риды могут быть организованы и может быть получено скопление ридов, покрывающих дублирущиеся положения. Это позволяет выполнить сравнение всех ридов, покрывающих одни и те же положения, для более точного определения, имеется ли действительный вариант в какой-либо данной позиции, или имеет ли место ошибка в каком-либо из ридов в исследуемой позиции в скоплении. Например, если имеется только один или два рида из 40, в которых конкретный нуклеотид находится в позиции Х, а все 38 или 39 других ридов сходятся в том, что в данной позиции находится другой нуклеотид, то два выпадающих рида могут быть исключены как ошибочные, по меньшей мере в указанном конкретном положении.[00151] For example, when constructing the genetic sequence of a subject's sequenced DNA, it is necessary to determine where which nucleotide should be in a growing string of nucleotides. To determine which nucleotide should be where, different reads can be organized and a cluster of reads covering duplicate positions can be obtained. This allows comparison of all reads covering the same positions to more accurately determine whether there is a valid variant at any given position, or whether there is an error in any of the reads at the position in question in the cluster. For example, if there are only one or two reads out of 40 in which a particular nucleotide is at position X, and all 38 or 39 other reads agree that another nucleotide is at that position, then the two outlier reads can be excluded as erroneous, at least in the specified specific position.
[00152] В частности, когда имеется множество ридов, сгенерированных для какого-либо места генома субъекта, то наиболее вероятно, что для любой данной позиции нуклеотидов будет множество пересечений или скоплений. Эти скопления покрывают любое конкретное положение и могут быть полезными для определения корректной последовательности генома субъекта с большей точностью. Например, как указано выше, в результате секвенирования получают риды и, в различных примерах, полученные риды подвержены избыточной выборке образцов, так что в различных позициях различные конкретные риды будут перекрываться. Это перекрывание полезно для определения действительного генома образца, например с высокой вероятностью того, что он будет корректным.[00152] In particular, when there are many reads generated for any location in a subject's genome, it is most likely that for any given nucleotide position there will be many overlaps or clusters. These clusters cover any specific location and can be useful in determining the correct genome sequence of a subject with greater accuracy. For example, as stated above, sequencing produces reads and, in various examples, the resulting reads are subject to oversampling such that at different positions different specific reads will overlap. This overlap is useful for determining the actual genome of a sample, for example with a high probability that it will be correct.
[00153] Задача, таким образом, может заключаться в инкрементальном сканировании референсного генома множество раз, как более подробно описано ниже в настоящем документе, для более точной реконструкции генома субъекта, и при необходимости определении, как геном субъекта отличается от другого генома, например генома модели, использование скоплений может идентифицировать ошибки с большей точностью, например ошибки химических реагентов, оборудования или рида, и отличать их от действительных вариантов. В частности, когда субъект имеет действительную вариацию в позиции Х, большинство ридов в скоплении должны подтвердить, т.е. содержать, указанную вариацию. Затем могут быть проведены процедуры статистического анализа, например такие, как раскрыты в настоящем документе, для определения действительной генетической последовательности субъекта со всеми ее вариантами относительно референсного генома.[00153] The objective may thus be to incrementally scan the reference genome multiple times, as described in more detail later herein, to more accurately reconstruct the subject's genome, and optionally determine how the subject's genome differs from another genome, such as a model genome ,The use of clusters can identify errors with greater ,precision, such as chemical, equipment, or read errors, and ,distinguish them from valid variants. In particular, when a subject has a valid variation in position X, the majority of reads in the cluster should confirm, i.e. contain the specified variation. Statistical analysis procedures, such as those disclosed herein, may then be performed to determine the subject's actual genetic sequence with all its variants relative to the reference genome.
[00154] Например, когда генетическую последовательность субъекта необходимо перестроить относительно использования референсного генома, после генерации ридов, например скопления ридов, следующими этапами могут быть картирование, выравнивание и/или сортировка ридов относительно одного или более референсного генома (например, чем больше взятых в качестве примера референсных геномов доступно в качестве моделей, тем лучше должен быть анализ) и, таким образом, перестроение генома субъекта, в результате этого наборы ридов оказываются картированными и/или выравненными относительно референсного генома (референсных геномов) во всех возможных позициях вдоль цепи, в которой имеется совпадение, и в каждой такой позиции им присвоена оценка вероятности, отражающая вероятность того, что они в действительности относятся к данной позиции.[00154] For example, when the genetic sequence of a subject needs to be rearranged relative to the use of a reference genome, after generating reads, such as a read aggregation, the next steps may be to map, align, and/or sort the reads relative to one or more reference genomes (e.g., the more taken as examples of reference genomes are available as models, the better the analysis should be) and thus the reconstruction of the subject's genome, resulting in sets of reads being mapped and/or aligned with respect to the reference genome(s) at all possible positions along the chain in which there is a match, and in each such position they are assigned a probability score reflecting the likelihood that they actually belong to that position.
[00155] Соответственно, в различных примерах, после генерации ридов, их позиции картируют, например, могут быть определены потенциальные места референсного генома, на которые риды могут быть картированы, а их последовательный порядок выравнен, может быть определена действительная последовательность генома субъекта, например вследствие выполнения функции сортировки выравненных данных. Кроме того, после того, как фактический геном образца известен и сравнен с референсным геномом, между этим двумя геномами можно определить вариации, может быть определен и вызван список всех вариаций/отклонений между референсным геномом и геномом образца. Такие вариации между двумя генетическими последовательностями могут быть обусловлены рядом причин.[00155] Accordingly, in various examples, after reads are generated, their positions are mapped, for example, potential reference genome locations to which the reads can be mapped and their sequential order aligned can be determined, the actual genome sequence of the subject can be determined, for example due to performing the function of sorting the aligned data. Additionally, once the actual genome of a sample is known and compared to a reference genome, variations between the two genomes can be determined, and a list of all variations/deviations between the reference genome and the sample genome can be determined and recalled. Such variations between two genetic sequences can be due to a number of reasons.
[00156] Например, возможен однонуклеотидный полиморфизм (ОНП, SNP), например там, где одно основание в генетической последовательности субъекта было заменено на другое; возможны более обширные замены множества нуклеотидов; возможны инсерция или делеция, например когда одно или множество оснований добавлены в генетическую последовательность субъекта или удалены из нее; и/или возможен структурный вариант, например такой, который вызван скрещиванием ножек двух хромосом, и/или возможно просто смещение, приводящее к сдвигу в последовательности. В различных примерах можно сформировать файл определения вариантов, содержащий все вариации генетической последовательности субъекта относительно референсных последовательностей. В частности, в различных вариантах реализации способы по настоящему изобретению могут включать в себя формирование файла определения вариантов (VCF), идентифицирующего один или более, например, все, генетические варианты у индивида, ДНК которого секвенировали, например, в соответствии с одним или более референсных геномов. Файл VCF в базовом виде представляет собой список положений вариаций и их тип: например, хромосома 3, в позиции Х, «А» заменен «Т» и т.д.[00156] For example, a single nucleotide polymorphism (SNP) is possible, for example where one base in a subject's genetic sequence has been replaced by another; more extensive substitutions of multiple nucleotides are possible; an insertion or deletion is possible, such as when one or more bases are added to or removed from a subject's genetic sequence; and/or there may be a structural variant, such as one caused by the crossing of two chromosome legs, and/or there may simply be a misalignment resulting in a shift in sequence. In various examples, a variant definition file may be generated containing all variations in a subject's genetic sequence relative to reference sequences. Specifically, in various embodiments, the methods of the present invention may include generating a variant definition file (VCF) identifying one or more, e.g., all, genetic variants in an individual whose DNA has been sequenced, e.g., according to one or more reference genomes. A VCF file in its basic form is a list of variation positions and their type: for example, chromosome 3, at position X, “A” replaced by “T,” etc.
[00157] Однако, как указано выше, чтобы сформировать такой файл, геном субъекта необходимо секвенировать и снова построить, прежде чем определять его варианты. Однако существуют несколько проблем, которые могут возникнуть при попытке формирования такой сборки. Как указано выше, возможны проблемы с химией, секвенатором и/или человеческими ошибками, которые происходят в процессе секвенирования. Кроме того, возможны генетические артефакты, которые делают такую реконструкцию проблематичной. Например, проблемой при выполнении таких сборок является то, что иногда имеются огромные части генома, которые повторяют сами себя, например, длинные секции генома, которые включают в себя одни и те же строки нуклеотидов. Следовательно, так как любая генетическая последовательность уникальна не везде, возможны трудности с определением того, где в геноме в действительности картируется и выравнивается идентифицированный рид.[00157] However, as stated above, to generate such a file, the subject's genome must be sequenced and rebuilt before its variants can be determined. However, there are several problems that may arise when attempting to form such an assembly. As stated above, there may be problems with the chemistry, sequencer, and/or human errors that occur during the sequencing process. In addition, there may be genetic artifacts that make such reconstruction problematic. For example, a challenge in performing such assemblies is that sometimes there are huge portions of the genome that repeat themselves, such as long sections of the genome that include the same strings of nucleotides. Therefore, since any genetic sequence is not unique everywhere, it may be difficult to determine where in the genome the identified read is actually mapped and aligned.
[00158] Например, в зависимости от применяемого протокола секвенирования, могут быть получены более короткие или более длинные риды. Более длинные риды являются полезными тем, что чем длиннее рид, тем меньше вероятность того, что он появится во множестве мест генома. Необходимость оценки меньшего количества возможных положений также может ускорить работу системы. Однако, чем длиннее риды, тем больше проблем они могут вызывать, так как больше вероятность того, что они содержат реальные или ложные вариации, например, обусловленные ОНП, инделом (инсерцией или делецией) (InDel), ошибкой оборудования или тому подобным, в результате чего будут отсутствовать совпадения между ридом и референсным геномом. С другой стороны, более короткие риды являются полезными, так как чем короче рид, тем меньше вероятность того, что он покроет позицию, которая кодирует вариант. Проблема с более короткими ридами, однако, заключается в том, что более короткий рид более вероятно появится в множестве позиций генома, вследствие чего требуется дополнительное время и ресурсы для обработки для того, чтобы определить, какое из всех возможных позиций наиболее вероятно является действительным положением выравнивания. Идеал, которого можно достичь, например практикуя способы, описанные в настоящем документе, заключается в том, что может быть получен файл определения вариантов, в котором сформирован список секвенированного генома (исследуемого генома), который показывает, где находятся все варианты пар оснований, гарантируя, что каждый определенный вариант является действительным вариантом, а не просто химической ошибкой, ошибкой оборудования или вызванной человеческим фактором ошибкой рида.[00158] For example, depending on the sequencing protocol used, shorter or longer reads may be obtained. Longer reads are useful in that the longer the read, the less likely it is to appear in multiple places in the genome. Having to evaluate fewer possible positions can also speed up the system. However, the longer the reads, the more problematic they can be, as they are more likely to contain real or spurious variations, such as those due to an SNP, an indel (insertion or deletion) (InDel), a hardware error, or the like, resulting that there will be no matches between the read and the reference genome. On the other hand, shorter reads are beneficial because the shorter the read, the less likely it is to cover the position that encodes the variant. The problem with shorter reads, however, is that a shorter read is more likely to appear at multiple positions in the genome, requiring additional processing time and resources to determine which of all possible positions is most likely to be the actual alignment position . The ideal that can be achieved, for example by practicing the methods described herein, is that a variant definition file can be obtained that generates a list of the sequenced genome (the genome of interest) that shows where all the base pair variants are located, ensuring that that each variant identified is a valid variant and not simply a chemical error, an equipment error, or a human-induced read error.
[00159] Таким образом, для вариации существуют две основных возможности. Во-первых, существует действительная вариация в данном конкретном исследуемом месте, например, когда геном человека в конкретном месте действительно отличается от референса, например, имеется естественная вариация, обусловленная ОНП (заменой одного основания), инсерцией или делецией (длиной в один или более нуклеотидов), и/или имеется структурный вариант, например, когда материал ДНК из одной хромосомы перекрещивается на другую хромосому или ножку, или когда определенная область дважды встречается в ДНК. В качестве альтернативы, вариация может быть вызвана наличием проблемы в данных рида из-за ошибки химии или оборудования, секвенатора или выравнивателя, или иной человеческой ошибки. Соответственно, способы, описанные в настоящем документе, могут быть использованы таким образом, чтобы компенсировать эти типы ошибок и, в частности, чтобы отличать ошибки в вариации, обусловленные химией, оборудованием или человеком, от реальных вариаций в секвенированном геноме. Точнее говоря, способы, устройства и системы для их реализации, описанные в настоящем документе, разработаны таким образом, чтобы четко различать эти два различных типа вариаций и, следовательно, лучше обеспечивать точность любых сформированных файлов вариантов, чтобы правильно выявлять истинные варианты.[00159] Thus, there are two main possibilities for variation. First, there is actual variation at that particular site of interest, for example when the human genome at a particular site is truly different from the reference, for example there is natural variation due to a SNP (single base substitution), insertion or deletion (one or more nucleotides long ), and/or there is a structural variant, such as when DNA material from one chromosome crosses onto another chromosome or stem, or when a certain region occurs twice in the DNA. Alternatively, the variation may be due to a problem in the read data due to chemistry or equipment error, sequencer or aligner error, or other human error. Accordingly, the methods described herein can be used to compensate for these types of errors and, in particular, to distinguish errors in variation due to chemistry, equipment, or humans from actual variation in the sequenced genome. More specifically, the methods, apparatus, and systems for implementing them described herein are designed to clearly distinguish between these two different types of variations and, therefore, to better ensure the accuracy of any generated variation files to correctly identify true variations.
[00160] Кроме того, в различных вариантах реализации после того, как реконструирован геном субъекта и/или сформирован файл VCF, такие данные могут быть затем подвергнуты третичной обработке с целью их интерпретации, например, для определения того, что эти данные означают с точки зрения выявления заболеваний, от которых может страдать или которым может подвергнуться этот человек, и/или для определения терапии или изменения стиля жизни, которыми, возможно, пожелает воспользоваться данный субъект, чтобы устранить и/или предотвратить болезненное состояние. Например, генетическая последовательность субъекта и/или его файл определения вариантов могут быть проанализированы для определения релевантных с клинической точки зрения генетических маркеров, которые указывают на наличие или возможность болезненного состояния и/или эффективность, с которой может воздействовать на субъекта рекомендуемый терапевтический или профилактически режим. Затем эти данные могут быть использованы для обеспечения субъекту одного или более терапевтических или профилактических режимов для того, чтобы улучшить качество жизни субъекта, например, вылечить и/или предотвратить болезненное состояние.[00160] Additionally, in various embodiments, once a subject's genome has been reconstructed and/or a VCF file has been generated, such data may then be subjected to tertiary processing for the purpose of interpretation, for example, to determine what the data means in terms of to identify diseases that the subject may suffer from or be susceptible to, and/or to determine therapy or lifestyle changes that the subject may wish to adopt to eliminate and/or prevent the disease condition. For example, a subject's genetic sequence and/or its variant definition file may be analyzed to determine clinically relevant genetic markers that indicate the presence or potential of a disease state and/or the effectiveness with which a recommended therapeutic or prophylactic regimen may affect the subject. These data may then be used to provide the subject with one or more therapeutic or prophylactic regimens in order to improve the subject's quality of life, eg, treat and/or prevent a disease state.
[00161] В частности, медицинские научные технологии развиваются в совокупности с развитием информационных технологий, которое повысило наши возможности в отношении хранения и анализа медицинских данных. Следовательно, после того, как определены одна или более генетических вариаций индивида, такая информация файла определения вариантов может быть использована для подготовки полезной с медицинской точки зрения информации, которая, в свою очередь, может быть использована для определения, например, с использованием известных моделей статистического анализа, относящихся к здоровью данных и/или полезной с медицинской точки зрения информации, например, в диагностических целях, например, для диагностирования заболевания или его возможности, клинической интерпретации (например, поиска маркеров, которые представляют вариант заболевания), того, следует ли включить субъект в различные клинических испытания или исключить из них, и для других таких целей. Поскольку существует конечное число болезненных состояний, которые вызываются генетическими нарушениями, при третичной обработке варианты определенного типа, например, известные тем, что они связаны с возникновением болезненных состояний, могут быть уточнены, например, путем определения того, включены ли один или более генетических маркеров болезни в файл определения вариантов субъекта.[00161] In particular, medical science technology has evolved in tandem with advances in information technology, which have increased our ability to store and analyze medical data. Therefore, once one or more genetic variants in an individual have been identified, such variant definition file information can be used to produce medically useful information, which in turn can be used to determine, for example, using known statistical models analysis, health-related data and/or medically useful information, e.g. for diagnostic purposes, e.g., to diagnose a disease or its potential, clinical interpretation (e.g., looking for markers that represent a disease variant), whether to include subject into or excluded from various clinical trials, and for other such purposes. Because there are a finite number of disease states that are caused by genetic disorders, in tertiary processing, variants of a particular type, for example, known to be associated with the occurrence of disease states, can be refined, for example, by determining whether one or more genetic markers of the disease are included to the subject variant definition file.
[00162] Поэтому в различных случаях способы, описанные в настоящем документе, могут включать в себя анализ, например, сканирование, VCF и/или сформированной последовательности на предмет известных связанных с заболеваниями вариантов последовательности, например, присутствующих по этой причине в базе данных геномных маркеров, чтобы выявить наличие генетического маркера в VCF и/или сформированной последовательности, и при наличии такового проверять присутствие или возможность генетически обусловленного болезненного состояния. Так как существует огромное количество известных генетических вариаций и огромное количество индивидов, страдающих от заболеваний, вызываемых такими вариациями, в некоторых вариантах реализации способы, описанные в настоящем документе, могут охватывать формирование одной или более баз данных, связывающих секвенированные данные полного генома и/или связанного с ним файла определения вариантов, например, от одного или множества индивидов, с болезненным состоянием, и/или поиск в сформированных базах данных с целью определения того, имеет ли конкретный субъект генетический состав, который предрасполагает его к наличию такого болезненного состояния. Такой поиск может включать в себя сравнение одного полного генома с одним или более другими, или фрагмента генома, такого как фрагмент, содержащий только вариации, с одним или более фрагментами одного или более других геномов, например, в базе данных референсных геномов или их фрагментов.[00162] Therefore, in various cases, the methods described herein may include analyzing, for example, scanning, VCF and/or generated sequence for known disease-associated sequence variants, for example, present for this reason in a database of genomic markers to detect the presence of a genetic marker in the VCF and/or generated sequence, and if present, test for the presence or possibility of a genetically determined disease state. Because there are a huge number of known genetic variations and a huge number of individuals suffering from diseases caused by such variations, in some embodiments, the methods described herein may include the formation of one or more databases linking whole genome sequenced data and/or associated with it a file identifying variants, for example, from one or multiple individuals with a disease condition, and/or searching generated databases to determine whether a particular subject has a genetic makeup that predisposes him to having such disease condition. Such a search may involve comparing one complete genome with one or more others, or a fragment of a genome, such as a fragment containing only variations, with one or more fragments of one or more other genomes, for example, in a database of reference genomes or fragments thereof.
[00163] Кроме того, следует понимать, что генетические последовательности, вовлеченные в данные способы, могут представлять собой ДНК, одноцепочечную ДНК (оцДНК), РНК, мРНК, рРНК, тРНК и тому подобное. Следовательно, хотя в настоящем раскрытии приведены различные упоминания различных способов и устройств анализа ДНК генома, в различных примерах системы, устройства и способы, раскрытые в настоящем документе, в равной степени подходят для выполнения их соответствующих функций, например, анализа, над всеми типами генетического материала, включая ДНК, оцДНК, РНК, мРНК, рРНК, тРНК и тому подобное. Кроме того, в различных примерах способы по настоящему изобретению могут включать анализ сформированной генетической последовательности, например ДНК, оцДНК, РНК, мРНК, рРНК, тРНК и тому подобного, субъекта и определение на ее основании вариаций белков, которые наиболее вероятно вызваны генетической последовательностью, и/или определение и/или прогнозирование на ее основании возможного болезненного состояния, например вызванного ошибкой в экспрессии белка. Следует отметить, что полученная генетическая последовательность может представлять интрон или экзон, например, генетическая последовательность может относиться лишь к кодированной части ДНК, например, где получен экзом, и с использованием лишь известных технологий обработки могут быть секвенированы только кодированные области, или некодированные области, что может приводить к более быстрому секвенированию и/или более быстрой обработке, хотя и с учетом более сложной процедуры подготовки образца.[00163] In addition, it should be understood that the genetic sequences involved in these methods may be DNA, single-stranded DNA (ssDNA), RNA, mRNA, rRNA, tRNA, and the like. Therefore, although the present disclosure makes various references to various methods and devices for analyzing the DNA of a genome, in various examples the systems, devices and methods disclosed herein are equally suitable for performing their respective functions, such as analysis, on all types of genetic material , including DNA, ssDNA, RNA, mRNA, rRNA, tRNA and the like. Additionally, in various examples, the methods of the present invention may include analyzing a generated genetic sequence, such as DNA, ssDNA, RNA, mRNA, rRNA, tRNA, and the like, of a subject and determining from it protein variations that are most likely caused by the genetic sequence, and /or determining and/or predicting from it a possible disease state, for example caused by an error in protein expression. It should be noted that the resulting genetic sequence may represent an intron or an exon, for example, the genetic sequence may only refer to the encoded portion of the DNA, for example, where the exome is obtained, and using only known processing technologies, only the encoded regions, or unencoded regions, can be sequenced. may result in faster sequencing and/or faster processing, although subject to more complex sample preparation procedures.
[00164] В настоящее время такие этапы и анализы, описанные в настоящем документе, обычно выполняют на различных отдельных или несвязанных этапах, зачастую использующих различное аналитическое оборудование в различных местоположениях. Соответственно, согласно различным аспектам, способы и системы по настоящему изобретению реализуются одним устройством и/или в одном местоположении, например в совокупности с автоматизированным секвенатором или другим устройством, выполненным с возможностью формирования данных генетической последовательности. В различных примерах множество устройств может использоваться в одном местоположении или во множестве удаленных местоположений, и в некоторых случаях способы могут использовать два или более обрабатывающих блоков, развернутых в двух или более местоположений.[00164] Currently, such steps and analyzes described herein are typically performed in various separate or unrelated steps, often using different analytical equipment at different locations. Accordingly, in various aspects, the methods and systems of the present invention are implemented in a single device and/or at a single location, such as in conjunction with an automated sequencer or other device configured to generate genetic sequence data. In various examples, multiple devices may be used at a single location or at multiple remote locations, and in some cases, the methods may use two or more processing units deployed at two or more locations.
[00165] Например, согласно различным аспектам может быть предусмотрен конвейер, который включает в себя выполнение одной или более аналитических функций, как описано в настоящем документе, над геномной генетической последовательностью одного или более индивидов, например, на данных, полученных в цифровом файловом формате, например, FASTQ, из автоматизированного секвенатора. Типичный конвейер, подлежащий выполнению, может включать в себя один или более секвернированных генетических материалов, например, часть или весь геном, одного или более субъектов, причем генетический материал может содержать ДНК, оцДНК, РНК, рРНК, тРНК и тому подобное, и/или, в некоторых случаях, генетический материал может представлять кодируемые или некодируемые области, такие как экзомы, эписомы ДНК. Конвейер может включать в себя одно или более из выполнения операции определения оснований и/или исправления ошибки, например, в оцифрованных генетических данных, и/или может включать в себя одно или более из выполнения функции картирования, выравнивания и/или сортировки над генетическими данными. В определенных случаях конвейер может включать в себя выполнение одного или более из повторного выравнивания, удаления дубликатов, перекалибровки оценки качества основания, редукции и/или сжатия и/или распаковки над оцифрованными генетическими данными. В определенных случаях конвейер может включать в себя выполнение операции определения вариантов над генетическими данными.[00165] For example, in various aspects, a pipeline may be provided that includes performing one or more analytical functions, as described herein, on the genomic genetic sequence of one or more individuals, for example, on data obtained in a digital file format, for example, FASTQ, from an automated sequencer. A typical pipeline to be executed may include one or more sequenced genetic materials, such as part or all of a genome, of one or more subjects, wherein the genetic material may comprise DNA, ssDNA, RNA, rRNA, tRNA, and the like, and/or In some cases, the genetic material may represent encoded or non-encoded regions such as exomes, DNA episomes. The pipeline may include one or more of performing a base determination and/or error correction operation, for example, on digitized genetic data, and/or may include one or more of performing a mapping, alignment, and/or sorting function on the genetic data. In certain cases, the pipeline may include performing one or more of realignment, deduplication, base quality assessment recalibration, reduction, and/or compression and/or decompression on the digitized genetic data. In certain cases, the pipeline may include performing a variant detection operation on genetic data.
[00166] Таким образом, в различных случаях конвейер по данному изобретению может содержать один или более модулей, где модули выполнены с возможностью осуществления одной или более функций, таких как операция определения оснований и/или исправления ошибок, и/или функция картирования, выравнивания, и/или сортировки генетических данных, например, секвенированных генетических данных. И в различных случаях конвейер может содержать один или более модулей, которые выполнены с возможностью осуществления одного или более из локального повторного выравнивания, удаления дубликатов, перекалибровки качественной оценки основания, определения вариантов, редукции и/или распаковки над генетическими данными. Многие из этих модулей могут выполняться либо программным обеспечением, либо аппаратным обеспечением, или удаленно, например, посредством программного обеспечения или аппаратного обеспечения, например, в облаке или на удаленном сервере и/или банке серверов.[00166] Thus, in various cases, the pipeline of the present invention may comprise one or more modules, where the modules are configured to perform one or more functions, such as a base detection and/or error correction operation, and/or a mapping, alignment, and/or sorting genetic data, such as sequenced genetic data. And in various cases, the pipeline may comprise one or more modules that are configured to perform one or more of local realignment, duplicate removal, ground truth recalibration, variant detection, reduction, and/or decompression on genetic data. Many of these modules can be executed either by software or hardware, or remotely, such as through software or hardware, such as in the cloud or on a remote server and/or bank of servers.
[00167] Кроме того, многие из этих этапов и/или модулей конвейера являются необязательными и/или могут быть расположены в любом логическом порядке и/или полностью опущены. Например, программное обеспечение и/или аппаратное обеспечение, описанные в настоящем документе, могут включать в себя или не включать определение оснований или алгоритм исправления последовательности, например, когда могут быть опасения, что такие функции могут привести к статистической систематической ошибке. Следовательно, система будет включать в себя или не включать в себя функцию определения оснований и/или исправления последовательности соответственно, в зависимости от требуемого уровня точности и/или эффективности. И, как указано выше, одна или более функций конвейера могут быть использованы при формировании геномной последовательности субъекта, например, посредством реконструкции генома на основе референса. Кроме того, в определенных случаях выходными данными из конвейера является файл определения вариантов, указывающий частично или полностью варианты в геноме или его части.[00167] Additionally, many of these pipeline steps and/or modules are optional and/or can be arranged in any logical order and/or omitted entirely. For example, the software and/or hardware described herein may or may not include base detection or a sequence correction algorithm, for example where there may be concerns that such functionality may introduce statistical bias. Therefore, the system will include or not include base detection and/or sequence correction functionality, respectively, depending on the required level of accuracy and/or efficiency. And, as stated above, one or more functions of the pipeline may be used in generating the genomic sequence of a subject, for example, by reconstructing the genome from a reference. Additionally, in certain cases, the output from the pipeline is a variant definition file indicating partial or complete variants in the genome or part thereof.
[00168] Соответственно, как указано выше, выходные данные выполнения протоколов секвенирования, например, как одних или более из указанных выше, обычно являются цифровым представлением генетического материала субъекта, например в файловом формате FASTQ. Однако, также может использоваться авторад (autorad), выраженный в цифровом виде. В частности, выходные данные от протокола секвенирования могут содержать множество ридов, где каждый рид содержит последовательность, например строку, нуклеотидов, где позиция каждого нуклеотида была определено, и качественную оценку, представляющую вероятность того, что нуклеотид определен неверно. Однако качество этих выходных данных может быть повышено посредством различных протоколов предварительной обработки для достижения более высокого качества оценок, причем один или более из указанных протоколов могут быть применены в способах, описанных в настоящем документе.[00168] Accordingly, as stated above, the output of sequencing protocols, such as one or more of the above, is typically a digital representation of a subject's genetic material, such as in the FASTQ file format. However, autorad, expressed in digital form, can also be used. In particular, the output from a sequencing protocol may contain multiple reads, where each read contains a sequence, such as a string, of nucleotides where the position of each nucleotide was determined, and a qualitative score representing the probability that the nucleotide was identified incorrectly. However, the quality of these output data can be improved through various preprocessing protocols to achieve higher quality estimates, and one or more of these protocols can be applied in the methods described herein.
[00169] Например, в некоторых случаях, необработанные данные файла FASTQ могут быть обработаны для очистки первоначальных определений оснований, полученных из секвенатора/ридера, например на этапе первичной обработки, например перед вторичной обработкой, описанной выше в настоящем документе. В частности, секвенатор/ридер обычно анализирует данные секвенирования, например флуоресцентные данные, указывающие на то, какой нуклеотид находится в какой позиции, и преобразует данные изображения в определение основания с качественной оценкой, например где качественная оценка основана на сравнительной яркости флуоресценции в каждой позиции. Может применяться специализированный алгоритм, например на этапе первичной обработки, для корректного анализа этих различий во флуоресценции для более точного выполнения определения основания. Как указано выше, этот этап может быть включен в конвейер этапов и может быть реализован посредством программного обеспечения и/или аппаратного обеспечения, однако, в данном случае он будет частью платформы первичной обработки.[00169] For example, in some cases, the raw FASTQ file data may be processed to clean up the original base definitions obtained from the sequencer/reader, such as during a primary processing step, such as prior to the secondary processing described above herein. In particular, the sequencer/reader typically analyzes sequencing data, such as fluorescent data indicating which nucleotide is at which position, and converts the image data into a base determination with a qualitative assessment, such as where the qualitative assessment is based on the comparative brightness of the fluorescence at each position. A specialized algorithm can be applied, for example during the primary processing step, to correctly analyze these differences in fluorescence to more accurately perform base determination. As stated above, this stage may be included in a pipeline of stages and may be implemented through software and/or hardware, however, in this case it will be part of the primary processing platform.
[00170] Дополнительный этап обработки может включать функцию корректировки ошибок, которая может включать попытку учесть от миллиона до миллиарда ридов в файле FASTQ и скорректировать некоторую часть механических ошибок секвенирования с помощью информации, относящейся к определению основания и качественной оценке, доступных перед каким-либо последующим этапом обработки, например, функцией картирования, выравнивания и/или сортировки, и т.д. Например, риды в файле FASTQ могут быть проанализированы для определения, имеются ли какие-либо подпоследовательности в каких-либо ридах, которые появляются в других ридах, которые вследствие дублирующего покрытия могут повысить уверенность в том, что подпоследовательности в ридах могут быть корректными. Это может быть реализовано посредством построения хэш-таблицы, содержащей все возможные k-меры выбранной длины, k, из каждого рида, и хранения каждой из них его частоты, а также того, какие основания следуют непосредственно за ним и с какой вероятностью. Затем с использованием хэш-таблицы каждый рид может быть постоянно сканирован. Так как каждый k-мер в конкретном риде может быть найден в хэш-таблице, может быть выполнена оценка, вероятно ли, что основание, следующее непосредственно за тем k-мером, является корректным или нет. Если вероятность этого мала, то оно может быть заменено тем, которое наиболее вероятно следует за ним, исходя из таблицы. Последовательные k-меры для этого рида затем будут содержать корректное основание в качестве значения в той позиции и процесс повторят. Это может быть высокоэффективным при корректировке ошибок, так как избыточная выборка образцов обеспечивает сбор точной статистики для прогнозирования того, что последует за каждым k-мером. Однако, как указано выше, такие корректировки могут привнести статистическое смещение в систему, например вследствие ошибочных корректировок в данных, так что эти процедуры могут быть при необходимости пропущены.[00170] An additional processing step may include an error correction function, which may involve attempting to account for the million to billion reads in the FASTQ file and correct some portion of the mechanical sequencing errors with information related to base determination and qualitative assessment available before any subsequent a processing step, such as a mapping, alignment and/or sorting function, etc. For example, reads in a FASTQ file can be analyzed to determine whether there are any subsequences in any reads that appear in other reads, which, due to redundant coverage, can increase confidence that the subsequences in the reads may be correct. This can be implemented by constructing a hash table containing all possible k-mers of a chosen length, k, from each read, and storing each of them its frequency, as well as which bases immediately follow it and with what probability. Then, using a hash table, each read can be continuously scanned. Since each k-mer in a particular read can be found in the hash table, an assessment can be made of whether the base immediately following that k-mer is likely to be valid or not. If the probability of this is low, then it can be replaced by the one that most likely follows it, based on the table. Successive k-mers for that read will then contain the correct base as the value at that position and the process will repeat. This can be highly effective at correcting errors, as oversampling ensures that accurate statistics are collected to predict what will follow each k-mer. However, as noted above, such adjustments may introduce statistical bias into the system, for example due to erroneous adjustments to the data, so these procedures can be skipped if necessary.
[00171] Соответственно, согласно аспектам настоящего изобретения, в различных примерах способы, устройства и/или системы по настоящему изобретению могут включать получения данных рида, которые либо были, либо не были заранее обработаны, например вследствие из получения непосредственно из файла FASTQ автоматизированного секвенатора, и подвергание полученных данных одной или более функции из картирования, выравнивания и/или сортировки. Выполнение таких функций может быть полезным, например, как указано выше, в различных примерах, вследствие того, что сгенерированные данные обычно сформированы различными автоматизированными секвенаторами, например, риды, имеют длину существенно меньше, чем вся анализируемая геномная последовательность, и так как человеческий геном обычно имеет множество повторяющихся участков и известно, что он имеет различные повторяющиеся паттерны, то может иметься множество мест, в которых любая данная последовательность ридов может соответствовать сегменту человеческого генома. Следовательно, учитывая все возможности, данный рид может совпадать с последовательностью генома, например, вследствие различных повторяющихся последовательностей в геноме и т.д., необработанные данные рида могут не явно указывать, какая из возможностей в действительности является корректным положением, из которого он был получен. Таким образом, для каждого рида потребуется определить, куда в геноме рид в действительности картируется. Кроме того, также может быть полезным определить последовательное выравнивание ридов для определения действительной идентичности последовательности субъекта, и/или также может быть полезным определить положение в хромосоме для каждой части последовательности.[00171] Accordingly, according to aspects of the present invention, in various examples, the methods, devices and/or systems of the present invention may involve obtaining read data that either has or has not been pre-processed, for example due to being obtained directly from an automated sequencer FASTQ file, and subjecting the resulting data to one or more of mapping, alignment, and/or sorting functions. Performing such functions can be useful, for example, as indicated above, in various examples, due to the fact that the generated data is usually generated by various automated sequencers, for example, reads, are significantly less in length than the entire genomic sequence being analyzed, and since the human genome is usually has many repeat regions and is known to have different repeat patterns, there may be many places at which any given sequence of reads could correspond to a segment of the human genome. Therefore, given all the possibilities a given read may match a genome sequence, for example due to various repeated sequences in the genome, etc., the raw read data may not explicitly indicate which of the possibilities is actually the correct position from which it was derived . Thus, for each read, it will be necessary to determine where in the genome the read actually maps. In addition, it may also be useful to determine the sequential alignment of the reads to determine the actual sequence identity of the subject, and/or it may also be useful to determine the chromosomal position for each portion of the sequence.
[00172] В различных примерах способы по настоящему изобретению могут быть направлены на картирование, выравнивание и/или сортировку необработанных данных рида файла FASTQ для нахождения всех мест, в которых данный рид вероятно может быть выравнен, и/или определение действительной идентичности последовательности субъекта, и/или определение положения в хромосоме для каждой части последовательности. Например, картирование может быть применено для картирования сформированных ридов на референсный геном и, таким образом, поиска положения, в котором появляется каждый рид, для того, чтобы хорошо совпадать с геномом, например, поиска всех мест, в которых может быть хорошая оценка для выравнивания какого-либо данного рида относительно референсного генома. Таким образом, картирование может включать учет одного или более, например, всех, из необработанных или предварительно обработанных ридов из файла FASTQ и сравнение указанных ридов с одним или более референсных геномов, а также определение, где указанный рид может совпасть с референсным геномом (геномами). В своей базовой форме картирование включает поиск положения (положений) в референсном геноме, где совпадает один или более из ридов FASTQ, полученный из секвенатора.[00172] In various examples, the methods of the present invention may be directed to mapping, aligning and/or sorting the raw read data of a FASTQ file to find all locations where the read is likely to be aligned and/or determining the actual sequence identity of a subject, and /or determination of the position in the chromosome for each part of the sequence. For example, mapping can be used to map generated reads to a reference genome and thus find the position at which each read appears to have a good match to the genome, e.g., finding all locations that might have a good score for the alignment any given read relative to the reference genome. Thus, mapping may involve taking one or more, for example, all, of the raw or preprocessed reads from a FASTQ file and comparing said reads to one or more reference genomes, and determining where said read might match the reference genome(s) . In its basic form, mapping involves searching for the position(s) in a reference genome where one or more of the FASTQ reads obtained from the sequencer matches.
[00173] Аналогичным образом, выравнивание может быть применяться для оценки возможных положений ридов индивида относительно окна референсного генома для определения, где и как последовательность ридов наилучшем образом выравнена с геномом. Однако выполнение выравнивания может быть трудным вследствие замен, инсерций, делеций, структурных вариантов и тому подобного, что может мешать риду выравниваться точно. Таким образом, существуют несколько различных путей получить выравнивание, но для этого может потребоваться внести изменения в рид, причем каждое изменение, которое необходимо внести для получения надлежащего выравнивания, приводит к снижению оценки достоверности. Например, любой данный рид может иметь замены, инсерции и/или делеции при сравнении с референсным геномом, и эти вариации необходимо учитывать при выполнении выравнивания.[00173] Likewise, alignment can be used to evaluate possible positions of an individual's reads relative to a reference genome window to determine where and how the sequence of reads best aligns to the genome. However, performing an alignment can be difficult due to substitutions, insertions, deletions, structural variants, and the like, which can prevent the read from aligning accurately. Thus, there are several different ways to obtain an alignment, but this may require changes to the read, with each change that needs to be made to obtain a proper alignment resulting in a lower confidence score. For example, any given read may have substitutions, insertions, and/or deletions when compared to a reference genome, and these variations must be taken into account when performing the alignment.
[00174] Соответственно, вместе со спрогнозированным выравниванием также может быть дана оценка вероятности того, что спрогнозированное выравнивание является верным. Указанная оценка указывает на наилучшее выравнивание для любого данного рида среди множества положений, в которых рид может быть выравнен. Например, оценку выравнивания основана на том, насколько хорошо данный рид совпадает с потенциальным положением картирования, и может включать растяжение, уплотнение и изменение частей рида для получения наилучшего выравнивания.[00174] Accordingly, along with the predicted alignment, an estimate of the probability that the predicted alignment is correct can also be given. This score indicates the best alignment for any given read among the many positions at which the read could be aligned. For example, an alignment assessment is based on how well a given read matches a potential mapping position, and may involve stretching, densifying, and changing parts of the read to produce the best alignment.
[00175] Оценка будет отражать все изменения рида для соответствия референсу. Например, для создания выравнивания между ридом и референсом может потребоваться инсерция одного или более промежутков в рид, причем инсерция каждого промежутка представляет собой делецию в риде по отношению к референсу. Аналогичным образом, может потребоваться выполнить делецию в риде, причем каждая делеция представляет собой инсерцию в риде по отношению к референсу. Кроме того, может потребоваться изменить различные основания, например, вследствие одной или более замен. Каждое из этих изменений выполняют для того, чтобы обеспечить более точное выравнивание рида (ридов) относительно референса, но каждое изменение выполняется ценой оценки качества, которые являются измерением того, как хорошо весь рид совпадает с некоторой областью референса. Достоверность таких качественных оценок затем определяют посредством наблюдения за всеми положениями, на которые рид может быть картирован и сравнения оценок в каждом положении, а также выбора местоположения с наивысшей оценкой. В частности, когда имеется множество позиций с высокой качественной оценкой, то достоверность является низкой, но когда разница между первой и второй лучшими оценками велика, то достоверность является высокой. В конце все предложенные риды и оценки достоверности оценивают и выбирают наилучшее совпадение.[00175] The score will reflect all changes to the read to match the reference. For example, creating an alignment between a read and a reference may require the insertion of one or more gaps into the read, where the insertion of each gap represents a deletion in the read relative to the reference. Likewise, it may be necessary to perform a deletion in a read, with each deletion representing an insertion in the read relative to the reference. In addition, various bases may need to change, for example due to one or more substitutions. Each of these changes is made to ensure that the read(s) are more accurately aligned with the reference, but each change is made at the cost of quality scores, which are a measurement of how well the entire read matches some region of the reference. The reliability of such qualitative estimates is then determined by observing all positions to which a read can be mapped and comparing the scores at each position, and selecting the location with the highest score. In particular, when there are many items with a high quality score, then confidence is low, but when the difference between the first and second best scores is large, then confidence is high. At the end, all proposed reads and confidence scores are evaluated and the best match is selected.
[00176] После того как ридам назначены позиции относительно референсного генома, что заключается в определении того, какой хромосоме принадлежит рид, и его смещения от начала этой хромосомы, их можно отсортировать, например по позиции. Это позволяет в последующих анализах использовать преимущества различных протоколов с избыточной выборкой, описанных в настоящем документе. Все риды, которые перекрывают данную позицию в геноме, могут быть рядом друг с другом после сортировки и могут быть организованы в скопление и без труда исследованы, чтобы определить, согласуются ли большинство из них с референсным значением, или нет. Если нет, как указано выше, вариант можно пометить.[00176] Once the reads are assigned positions relative to the reference genome, which consists of determining which chromosome the read belongs to and its offset from the beginning of that chromosome, they can be sorted, for example, by position. This allows subsequent analyzes to take advantage of the various oversampling protocols described herein. All reads that overlap a given position in the genome may be adjacent to each other after sorting and can be organized into a cluster and easily examined to determine whether most of them agree with the reference value or not. If not, as stated above, the option can be checked.
[00177] Как указано выше, файл FASTQ, полученный из секвенатора, состоит из множества, например, от миллионов до миллиарда или более, ридов, состоящих из коротких строк данных последовательности нуклеотидов, представляющих часть или весь геном индивида. Картирование, как правило, включает в себя нанесение ридов на все местоположения в референсном геноме, где имеется совпадение. Например, в зависимости от размера рида, могут быть одно или множество местоположений, где этот рид по существу совпадает с соответствующей последовательностью в референсном геноме. Соответственно, картирование и/или другие функции, описанные в настоящем документе, могут быть выполнены с возможностью определения того, какое из всех возможных местоположений, где одно или более ридов могут совпадать с референсным геномом, действительно является истинным местом, куда они картируются.[00177] As stated above, a FASTQ file obtained from a sequencer consists of many, for example millions to a billion or more, reads consisting of short strings of nucleotide sequence data representing part or all of an individual's genome. Mapping typically involves mapping reads to all locations in the reference genome where there is a match. For example, depending on the size of the read, there may be one or many locations where the read substantially matches the corresponding sequence in the reference genome. Accordingly, the mapping and/or other functions described herein can be performed to determine which of all possible locations where one or more reads may match a reference genome is actually the true location to which they are mapped.
[00178] Можно сравнить каждый рид с каждой позицией в референсном геноме из 3,2 миллиардов для определения того, где риды, в случае совпадения, совпадают с референсным геномом. Это может быть выполнено, например, когда длина рида достигает приблизительно 100000 нуклеотидов, приблизительно 200000 нуклеотидов, приблизительно 400000 нуклеотидов, приблизительно 500000 нуклеотидов и даже приблизительно 1000000 или более нуклеотидов. Однако, когда риды имеют существенно меньшую длину, например когда имеется 50 миллионов ридов или более, например, 1 миллиард ридов, этот процесс может занять очень много времени и потребовать большого количества вычислительных ресурсов. Соответственно, существуют несколько способов, например как описаны в настоящем документе, которые были разработаны для выравнивания ридов FASTQ с референсным геномом значительно более быстрым образом. Например, как описано выше, один или более алгоритмов могут применяться для картирования одного или более ридов, сформированных секвенатором, например, в файле FASTQ, и соотнесения их с референсным геномом для определения, где в референсном геноме рассматриваемый рид потенциально может быть картирован.[00178] Each read can be compared to each position in the 3.2 billion reference genome to determine where the reads, if matched, match the reference genome. This may be accomplished, for example, when the read length reaches about 100,000 nucleotides, about 200,000 nucleotides, about 400,000 nucleotides, about 500,000 nucleotides, and even about 1,000,000 or more nucleotides. However, when the reads are significantly shorter in length, such as when there are 50 million reads or more, such as 1 billion reads, this process can take a very long time and require a large amount of computing resources. Accordingly, there are several methods, such as those described herein, that have been developed to align FASTQ reads to a reference genome in a much faster manner. For example, as described above, one or more algorithms may be used to map one or more reads generated by a sequencer, such as in a FASTQ file, and correlate them with a reference genome to determine where in the reference genome the read in question could potentially be mapped.
[00179] Например, в различных способах формируют индекс референса, чтобы можно было искать риды или части ридов в индексе, извлекая указатели местоположений в референсе для картирования ридов на референс. Такой индекс референса можно построить в различных формах и обращаться к нему различным образом. В некоторых способах индекс может содержат дерево префиксов и/или суффиксов. В других различных способах индекс может включать преобразование референса Барроуза-Уилера. В других способах индекс может содержать одну или более хэш-таблиц, а хэш-функция может быть выполнена на одной или более частях ридов с целью картирования ридов на референс. В различных примерах один или более из этих алгоритмов может быть выполнен последовательно или одновременно для точного определения, где один или более, например, значительная часть ридов или каждый рид, из ридов верно совпадает с референсным геномом.[00179] For example, in various methods, a reference index is generated so that reads or parts of reads in the index can be searched, retrieving location indicators in the reference to map the reads to the reference. Such a reference index can be constructed in various forms and accessed in various ways. In some methods, the index may contain a tree of prefixes and/or suffixes. In various other methods, the index may include a Burrows-Wheeler reference transformation. In other methods, the index may contain one or more hash tables, and the hash function may be performed on one or more portions of the reads for the purpose of mapping the reads to a reference. In various examples, one or more of these algorithms may be performed sequentially or simultaneously to accurately determine where one or more, for example, a significant portion of the reads or each read, of the reads correctly matches the reference genome.
[00180] Каждый из этих алгоритмов может иметь достоинства и/или недостатки. Например, дерево суффиксов и/или префиксов и/или преобразование Барроуса-Уиллера можно применять к данным последовательности так, что индекс референсного генома составляется и/или запрашивается как древовидная структура данных, причем начиная с одноосновной или короткой подпоследовательности рида, подпоследовательность постепенно расширяют в пределах рида, на каждом шаге обращаясь к индексу, отслеживая путь в древовидной структуре данных до тех пор, пока подпоследовательность не станет достаточно уникальной, например, достигнута оптимальная длин а пути, и/или достигнут листовой узел древовидной структуры, где листовой или последний достигнутый узел дерева показывает одну или более позиции в референсном геноме, с которой начинается рид. Таким образом, эти алгоритмы, как правило, не имеют фиксированной длины для последовательностей ридов, которые могут быть картированы путем поиска по индексу. Хеш-функция же часто задействует единицу сравнения фиксированной длины, которая может быть длиной всего рида, но часто в несколько раз больше длины некоторой части рида, которая называется затравкой. Такие затравки могут быть короче или длиннее, но в отличие от деревьев префиксов и/или суффиксов и/или преобразований Барроуза-Уилера, задействованные в хеш-функции затравки ридов имеют заранее выбранную, фиксированную длину.[00180] Each of these algorithms may have advantages and/or disadvantages. For example, a suffix and/or prefix tree and/or a Burrows-Wheeler transform can be applied to sequence data such that a reference genome index is constructed and/or queried as a tree data structure, where starting with a single-base or short subsequence of the read, the subsequence is gradually expanded within read, accessing the index at each step, tracing the path in the tree data structure until the subsequence is sufficiently unique, for example, the optimal path length is reached, and/or the leaf node of the tree structure is reached, where the leaf or last tree node reached shows one or more positions in the reference genome from which the read begins. Thus, these algorithms typically do not have a fixed length for sequence reads that can be mapped by index searching. A hash function often uses a fixed-length unit of comparison, which can be the length of the entire read, but is often several times the length of some part of the read, called the seed. Such seeds can be shorter or longer, but unlike prefix and/or suffix trees and/or Burrows-Wheeler transformations, the read seeds involved in the hash function have a pre-selected, fixed length.
[00181] Дерево префиксов и/или суффиксов представляет собой структуру данных, которая выстраивается из референсного генома таким образом, что каждое ребро (link), соединяющие родительский узел с дочерним, помечено или ассоциировано с нуклеотидом или последовательностью нуклеотидов, а каждый путь от корневого элемента через различные ребра и узлы соответствует некоторой подпоследовательности референсного генома. Узел, достигнутый таким путем, неявно ассоциирован с референсной последовательностью, соответствующей пути от корневого элемента. Начиная от корневого элемента, дерево префиксов соответствует продолжению последовательности референсного генома вперед, в то время как подпоследовательности дерева суффиксов соответствует продолжению референсного генома в обратном направлении. Оба вида деревьев, префиксов и суффиксов, можно использовать в гибридных алгоритамх префиксов/суффиксов, так что подпоследовательности могут выстраиваться в обоих направлениях. Деревья префиксов и суффиксов могут также содержать дополнительные ребра, такие как переходы от узла, ассоциированного с одной референсной подпоследовательностью, к другому узлу, ассоциированному с более короткой подпоследовательностью.[00181] A prefix and/or suffix tree is a data structure that is constructed from a reference genome such that each edge (link) connecting a parent node to a child node is labeled or associated with a nucleotide or nucleotide sequence, and each path from a root element through various edges and nodes corresponds to some subsequence of the reference genome. A node reached in this way is implicitly associated with a reference sequence corresponding to the path from the root element. Starting from the root element, the prefix tree corresponds to the forward continuation of the reference genome sequence, while the subsequences of the suffix tree correspond to the backward continuation of the reference genome. Both kinds of trees, prefix and suffix, can be used in hybrid prefix/suffix algorithms, so that subsequences can line up in both directions. Prefix and suffix trees may also contain additional edges, such as transitions from a node associated with one reference subsequence to another node associated with a shorter subsequence.
[00182] Например, запросы к древовидной структуре данных, служащей в качестве индекса референсного генома, можно выполнять, определяя путь в дереве, соответствующий подпоследовательности рида, который нужно картировать. Путь выстраивается по мере добавления к последовательности нуклеотидов, каждый из которых определяет следующий узел при обходе дерева, до тех пор, пока не получится уникальная последовательность. Эту уникальную последовательность также можно назвать затравкой, которая может представлять ветвь и/или корень древовидной структуры последовательности. Альтернативно, спуск по древовидной структуре можно прекратить до того, как совокупная последовательность будет полностью уникальной, так что полученная затравка может соответствовать нескольким местам референсного генома. В частности, дерево можно строить для каждой начальной позиции референсного генома, в этом случае полученные риды можно сравнивать с ветвями и/или корневыми элементами дерева, так что можно обходить дерево согласно этим последовательностям, чтобы определять, какому месту референсного генома соответствует рид. Более конкретно, риды файла FASTQ можно сравнивать с ветвями и корневыми элементами референсного дерева, что позволяет при соответствии немедленно определить их положение в референсном геноме. Например, образец рида можно использовать при обходе дерева до тех пор, пока набранная последовательность не будет настолько уникальной, чтобы определить, что данный рид действительно выровнен с определенной позицией референсного генома. В частности, можно спускаться по дереву до листового узла.[00182] For example, queries against a tree data structure serving as an index to a reference genome can be performed by identifying a path in the tree corresponding to a subsequence of the read to be mapped. The path is built as nucleotides are added to the sequence, each of which determines the next node as it traverses the tree, until a unique sequence is obtained. This unique sequence may also be called a seed, which may represent a branch and/or root of a tree structure of the sequence. Alternatively, descent through the tree structure can be stopped before the aggregate sequence is completely unique, so that the resulting primer can correspond to multiple locations in the reference genome. In particular, a tree can be constructed for each starting position of a reference genome, in which case the resulting reads can be compared to the branches and/or roots of the tree, so that the tree can be traversed according to these sequences to determine where in the reference genome the read corresponds. More specifically, reads from a FASTQ file can be compared to branches and roots of a reference tree, allowing, if a match, their position in the reference genome to be immediately determined. For example, a sample read can be used to traverse the tree until the sequence retrieved is unique enough to determine that the read actually aligns with a particular position in the reference genome. In particular, one can go down the tree to a leaf node.
[00183] Недостатком, однако, такого дерева префиксов/суффиксов является то, что необходимо множество раз осуществлять доступ к огромной структуре данных, по мере того как дерево обходят для того, чтобы картировать риды к на референсный геном. С другой стороны, преимуществом хеш-таблицы, как подробно описано далее в этой заявке, является то, что как только таблица получена, достаточно, как правило, одного обращения к ней, чтобы определить где, и есть ли такое место, может быть соответствие между ридом и референсным геномом. В общем случае потребуется множество, например 5, 10, 15, 20, 25, 50, 100, 1,000, или более, и т.д., обращений к дереву префиксов/суффиксов, чтобы определить, имеется ли соответствие. Далее, из-за двойной спиральной структуры ДНК, может также потребоваться построить и исследовать обратное комплементарное дерево, поскольку может потребоваться найти обратный комплемент к референсному геному. Учитывая вышесказанное, дерево данных можно описывать как структуру, построенную на основании референсного генома, которую затем сравнивают с секвенированными из ДНК субъекта ридами, однако, следует понимать, что дерево данных может быть изначально как из референсной последовательности, так и из ридов образца, или того и другого, после чего проводится сравнение одного с другим, как описано выше.[00183] A disadvantage, however, of such a prefix/suffix tree is that the huge data structure must be accessed many times as the tree is traversed in order to map reads to a reference genome. On the other hand, the advantage of a hash table, as detailed later in this application, is that once the table is obtained, one call to it is usually sufficient to determine where, and whether, there may be a match between read and reference genome. In general, it will take many, such as 5, 10, 15, 20, 25, 50, 100, 1,000, or more, etc., calls to the prefix/suffix tree to determine if there is a match. Further, due to the double helical structure of DNA, it may also be necessary to construct and examine a reverse complement tree, as the reverse complement to a reference genome may need to be found. Considering the above, a data tree can be described as a structure built on the basis of a reference genome, which is then compared with reads sequenced from the subject's DNA, however, it should be understood that the data tree can be initially from both the reference sequence and the reads of the sample, or both and the other, after which a comparison is made of one with the other, as described above.
[00184] Альтернативно, или в дополнение к применению дерева префиксов или суффиксов, к данным можно применить преобразование Барроуза-Уилера. Например, преобразование Барроуза-Уилера можно использовать для хранения древовидной структуры данных, абстрактно эквивалентной дереву префиксов/суффиксов, в компактном формате, например в пространстве, выделенном для хранения референсного генома. В различных вариантах, хранимые данные представляют собой не древовидную структуру, а именно, данные референсной последовательности хранятся в линейном списке, который можно выстраивать в различном порядке с тем, чтобы преобразовать его весьма специфичным образом, так что сопутствующий алгоритм позволяет искать в последовательности участки, соответствующие ридам образца, таким образом эффективно обходя «дерево». Преимущество преобразования Барроуза-Уилера, по сравнению с деревом префиксов или дерево суффиксов, в том, что оно, как правило, требует существенно меньше памяти для хранения данных, а по сравнению с хеш-таблицами в том, что оно поддерживает переменную длину затравки, и следовательно, в нем можно определить уникальную последовательность, и найти соответствие. Однако так же, как и в случае дерева префиксов/суффиксов, то, сколько нуклеотидов данной последоваельности потребовалось для определения уникальности, или для картирования на сравнительно небольшое число референсных позиций, определяет длину затравки. В то же время для хеш-таблицы все затравки имеют одну, предопределенную длину. Однако недостатком преобразования Барроуза-Уилера является необходимость в общем случае несколько, например два или больше раза обращаться к структуре данных, как и во время последовательного спуска по дереву.[00184] Alternatively, or in addition to applying a tree of prefixes or suffixes, a Burrows-Wheeler transform can be applied to the data. For example, the Burrows-Wheeler transform can be used to store a tree data structure, abstractly equivalent to a prefix/suffix tree, in a compact format, such as the space allocated for storing a reference genome. In various embodiments, the data stored is not a tree structure, but rather the reference sequence data is stored in a linear list, which can be arranged in different orders in order to transform it in a very specific way, so that the accompanying algorithm allows you to search for regions in the sequence that match reads the sample, thus effectively traversing the tree. The advantage of the Burrows-Wheeler transform, compared to a prefix tree or a suffix tree, is that it typically requires significantly less memory to store data, and compared to hash tables is that it supports variable seed length, and therefore, a unique sequence can be identified in it and a match can be found. However, just as in the case of a prefix/suffix tree, how many nucleotides of a given sequence were required to determine uniqueness, or to map to a relatively small number of reference positions, determines the length of the primer. At the same time, for a hash table, all seeds have the same, predefined length. However, the disadvantage of the Burrows-Wheeler transform is that it generally requires accessing the data structure several times, for example two or more times, just as when descending a tree sequentially.
[00185] Альтернативно, или в дополнение к применению одного из или обоих способов, дерева префиксов/суффиксов и/или преобразования Барроуза-Уилера, к референсному геному и данным последовательности субъекта с целью узнать, где одно картируется на другое, еще один такой способ задействует создание индекса хеш-таблицы и/или вычисление хеш-функции. Индекс хеш-таблицы может представлять из себя большую ссылочную структуру, которая выстравивается из последовательностей референсного генома, который могут сравнивать с одной или более частью рида, чтобы определить возможное соответствие одного другому. Точно так же, индекс хеш-таблицы можно выстраивать по частям рида, которые затем можно сравнивать с одной или более последовательностью референсного генома, что в свою очередь позволяет определить возможное соответствие.[00185] Alternatively, or in addition to applying one or both of the prefix/suffix tree and/or Burrows-Wheeler transformation methods to the reference genome and sequence data of a subject to learn where one maps to the other, another such method involves creating a hash table index and/or computing a hash function. The hash table index may be a large reference structure that is constructed from the reference genome sequences, which may be compared to one or more parts of the read to determine a possible match between one and the other. Similarly, a hash table index can be built on parts of a read, which can then be compared with one or more reference genome sequences, which in turn allows a possible match to be determined.
[00186] Более конкретно, в любом из описанных в этой заявке алгоритмов картирования, подходящих для реализации этапов способов, описанных здесь, один или все три алгоритма картирования, иди другие известные из уровня техники, могут применяться в программном или аппаратном обеспечении для того, чтобы картировать идну или более последовательностей образца секвенированного ДНК на один или более референсный геном. Как очень подробно описано далее, все эти действия можно проводить как программно, так и аппаратным способом, например с помощью интегральных цепей, таких как чип, возможно как часть печатной платы. Например, исполнение одного или нескольких этих алгоритмов может быть встроено в чип, например с ППВМ (FPGA) (программируемая пользователем вентильная матрица), ИССН (ASIC) (интегральная схема специального назначения), или со Структурированной ИССН (интегральная схема специального назначения), и может быть оптимизировано для большей производительности посредством имплементации .[00186] More specifically, in any of the mapping algorithms described herein suitable for implementing steps of the methods described herein, one or all three mapping algorithms, or others known in the art, may be used in software or hardware to map one or more sequences of a sequenced DNA sample to one or more reference genomes. As described in great detail below, all of these actions can be carried out either in software or in hardware, for example using integrated circuits such as a chip, perhaps as part of a printed circuit board. For example, the execution of one or more of these algorithms may be built into a chip, such as an FPGA (Field Programmable Gate Array), an ASIC (Application-Specific Integrated Circuit), or a Structured ASIC (Application-Specific Integrated Circuit), and can be optimized for better performance through implementation.
[00187] Дополнительно, одна или более, например, два или все три эти функции картирования могут формировать модуль, такой как модуль картирования, который может образовывать часть системы, например, конвейер, который используется в процессе для определения полной фактической последовательности генома, или ее части, субъекта. Выходные данные, полученные после применения функции картирования, могут представлять собой список вероятностей того, что один или более, наример, каждый рид картируется на один или более референсный геном. Например, выходными данными для каждого картированного рида может быть список возможных мест референсного генома, которым соответствует прошедший процедуру картирования рид. В различных вариантах осуществления можно искать точное совпадение с референсным геномом если не всего рида, то хотя бы части, например затравки. Соответственно, в различных вариантах, не обязательно иметь точное соответствие всех частей всех ридов всем частям референсного генома.[00187] Additionally, one or more, e.g., two or all three of these mapping functions may form a module, such as a mapping module, which may form part of a system, e.g., a pipeline, that is used in a process to determine the complete actual sequence of a genome, or its part, subject. The output obtained after applying the mapping function may be a list of probabilities that one or more, for example, each read maps to one or more reference genomes. For example, the output for each mapped read can be a list of possible reference genome locations to which the mapped read corresponds. In various embodiments, it is possible to search for an exact match to a reference genome, if not the entire read, then at least a portion, such as a primer. Accordingly, in various embodiments, it is not necessary to have an exact match of all parts of all reads to all parts of the reference genome.
[00188] Далее, одна или все эти функции могут быть запрограммированы так, чтобы получать точное и/или приблизительное соответствие и/или иметь возможность редактировать результаты. Следовательно, все эти процессы также можно сконфигурировать на поиск неполных совпадений, если есть такая потребность, например в соответствии с заранее выбранным возможным расхождением, например совпадение на 80%, 85%, 95%, 99%, или более. Однако, как подробно описано ниже, поиск неполного совпадения может быть существенно более затратным по времени и вычислительным ресурсам, поскольку может потребовать множество правок, например, таких как например однонуклеотидный полиморфизм (SNP) или вставка или удаление одного или более нуклеотидных оснований, например, может потребоваться 1 или 2 или 3 или 5 и более правок до достижения приемлемого соответствия. Такие правки вероятно будут широко применяться при имплементации протоколов хеширования, или построении деревьев префиксов и/или суффиксов и/или преобразовании Барроуза-Уилера.[00188] Further, one or all of these functions may be programmed to provide an exact and/or approximate match and/or the ability to edit the results. Therefore, all of these processes can also be configured to search for partial matches if desired, for example according to a pre-selected possible discrepancy, such as an 80%, 85%, 95%, 99%, or greater match. However, as detailed below, searching for a partial match can be significantly more time- and computationally expensive because it may require many edits, such as a single nucleotide polymorphism (SNP) or the insertion or deletion of one or more nucleotide bases, for example, it may 1 or 2 or 3 or 5 or more edits are required until an acceptable fit is achieved. Such edits are likely to be widely used in the implementation of hashing protocols, or the construction of prefix and/or suffix trees and/or the Burrows-Wheeler transform.
[00189] Что касается хеш-таблиц, их можно получать разными способами. В одном варианте, хеш-таблица строится разбиением референсного генома на сегменты стандартной длины, например затравки длиной от примерно 16 до примерно 30 нуклеотидов или более, или такие как от примерно 18 до примерно 28 нуклеотидов, приводя их к формату таблицы по которой можно вести поиск, после чего составляется индекс всех референсных сегментов из которых секвенировано ДНК, например, 1 или более рид, или его часть, могут сравниваться для определения соответствия. Более конкретно, индекс хеш-таблицы можно генерировать разбиением референсного генома на сегменты нуклеотидных последовательностей известной, одинаковой длины, например, затравки, и сохраняя их в случайной последовательности в отдельные ячейки таблицы. Это можно делать для части или целого референсного генома, чтобы построить фактический референсный индекс, который можно использовать, чтобы сравнивать части референсного генома с частями одного или более ридов, например из файла FASTQ, с целью определить соответствие..[00189] As for hash tables, they can be obtained in different ways. In one embodiment, a hash table is constructed by breaking the reference genome into segments of standard length, such as primers of about 16 to about 30 nucleotides or more in length, or such as about 18 to about 28 nucleotides, reducing them to a table format that can be searched , after which an index is compiled of all reference segments from which the DNA is sequenced, for example, 1 or more reads, or part thereof, can be compared to determine the match. More specifically, a hash table index can be generated by breaking the reference genome into segments of nucleotide sequences of known, equal length, such as a primer, and storing them in random order in separate table cells. This can be done for part or the entire reference genome to construct an actual reference index, which can be used to compare parts of the reference genome with parts of one or more reads, for example from a FASTQ file, to determine a match.
[00190] Этот способ можно затем повторять приблизительно тем же образом для части, например, для большинства ридов в файле FASTQ, чтобы генерировать затравки подходящей, например, выбранной длины. Например, риды из файла FASTQ можно использовать для создания затравок заранее определенной длины, которые можно преобразовать в бинарный вид и подать на вход хеш-функции, и запросить в индексе хеш-таблицы, где для бинарной формы затравки можно найти соответствие с бинарным представлением сегмента референсного генома, что дает представление о месте генома, в котором имеется соответствие с затравками образца.[00190] This method can then be repeated in approximately the same manner for a portion, eg, a majority of the reads in the FASTQ file, to generate seeds of a suitable, eg, selected length. For example, reads from a FASTQ file can be used to create seeds of a predetermined length, which can be converted to binary form and fed into a hash function, and queried in the hash table index, where the binary form of the seed can be matched with the binary representation of the reference segment genome, which gives an idea of the location of the genome where there is a match with the sample seeds.
[00191] Например, если рид имеет в длину приблизительно 100 нуклеотидных оснований, типичная затравка может быть примерно в два или три раза меньше, например примерно от 27 до примерно 30 нуклеотидных оснований в длину. Следовательно, в такой реализации, требуется несколько, приблизительно 3 или 4 затравки, в зависимости от длины рида и/или длин затравок, чтобы полностью покрыть рид. Каждую затравку можно преобразовать в бинарный вид и/или затем подать на вход хеш-таблицы, после чего может быть получен разультат, говорящий о соответствующем месте референсного генома. В таких вариантах реализации, нет необходимости сравнивать весь рид с каждой возможной позицией в референсном геном, достаточно будет сравнить части ридов, например одну или нескольких затравок для каждого рида, с индексом, содержащим эквивалентные по размеру порции референсного генома. Следовательно, в различных вариантах, хеш-таблица может быть сформирована таким образом, что достаточно будет одного обращения к памяти для определения места в референсном геноме, с которым имеется совпадения у затравки, и, следовательно, рида образца. Однако в некоторых вариантах, может появиться необходимость применить хеш-функцию и поиск к одной или более перекрывающимся секциям затравок из одного рида. В этих вариантах реализации, затравки можно выбирать таким образом, чтобы по крайней мере часть их последовательностей перекрывались. Это может помочь избежать машинных и/или человеческих ошибок, или различий в геноме субъекта и референсном геноме, и содействовать нахождению точного совпадения.[00191] For example, if a read is approximately 100 nucleotide bases in length, a typical primer may be about two or three times smaller, such as about 27 to about 30 nucleotide bases in length. Therefore, in such an implementation, several, approximately 3 or 4, seeds are required, depending on the read length and/or seed lengths, to completely cover the read. Each primer can be converted to binary form and/or then fed into a hash table, after which a result can be obtained indicating the corresponding location in the reference genome. In such implementations, there is no need to compare the entire read with each possible position in the reference genome; it will be sufficient to compare parts of the reads, for example one or more seeds for each read, with an index containing portions of the reference genome that are equivalent in size. Therefore, in various embodiments, the hash table can be formed in such a way that one memory access is sufficient to determine the location in the reference genome with which the primer has a match, and, therefore, the sample read. However, in some embodiments, it may be necessary to apply the hash function and lookup to one or more overlapping seed sections from the same read. In these embodiments, the primers can be selected such that at least a portion of their sequences overlap. This can help avoid machine and/or human errors, or differences in the subject's genome and the reference genome, and facilitate finding an exact match.
[00192] В некоторых вариантах, построение хеш-таблицы, так же как и одно или несколько различных сравнений проводятся посредством хеш-функции. Хеш-функция отчасти является скремблером данных. Она принимает на вход данные и отдает то, что на первый взгляд выглядит как случайная последовательность. В этой реализации, скремблер хеш-функции разбивает референсный геном на сегменты заранее выбранной и случайным образом размещает их в хэш-таблице. Альтернативно, пространство для хранения данных может быть сегментировано и/или для целей хранения могут присваиваться разные веса. Более, конкретно, хеш-функция - это функция, которая принимает любые входные данные и на выходе дает число, например как выходные данные бинарных шаблонов, причем выходые значения могут быть какими угодно, за исключением того, что при одном и том же входном значении, выходное значение также всегда будет одним и тем же. Следовательно, если две последовательности, подаваемые на вход хеш-функции, практически одинаковы, из-за того, что они в точности не совпадают, на выходе будут получаны два совершенно разных значения.[00192] In some embodiments, the construction of the hash table, as well as one or more of the various comparisons, are performed through a hash function. The hash function is partly a data scrambler. It takes data as input and outputs what at first glance looks like a random sequence. In this implementation, a hash scrambler breaks the reference genome into preselected segments and randomly places them in a hash table. Alternatively, the data storage space may be segmented and/or different weights may be assigned for storage purposes. More specifically, a hash function is a function that takes any input and outputs a number, such as the output of binary patterns, where the output values can be anything except that given the same input value, the output value will also always be the same. Therefore, if two sequences fed into a hash function are essentially the same, because they are not exactly the same, the output will be two completely different values.
[00193] Далее, поскольку генетический материал может быть составлен из четырех нуклеотидных оснований, например, “A”, “C”, “G”, и “T” (или “U” в случае РНК), отдельные нуклеотиды последовательности, например референсные сегменты и/или риды, или их части, которые будут поданы на вход хеш-функции, могут быть оцифрованы и представлены в бинарном формате, например в таком, в котором каждое из 4 нуклеотидных оснований представлено в виде двубитного цифрового кода, например “A” = 00, “C” = 01, “G” = 11, и “T”/”U” = 10. В некоторых вариантах именно это бинарное значение “затравки” случайным образом помещается в хэш-таблицу в известном месте, имеющем значение, равное его бинарному представлению. Хеш-функция, таким образом, служит для разбиения референсного генома на бинарные представления референсных затравок и вставляет каждую бинарную затравку в случайное место, например, ячейку хеш-таблицы, на основании численного значения. Наряду с цифровым бинарным кодом, например, кодом доступа, каждая ячейка может содержать фактические точки входа, где сегмент был взят из реального референсного генома, например, референсную позицию. Референсная позиция, таким образом, может представлять собой число, показывающее позицию исходной референсной затравки в геноме. То же самое может быть проделано для перекрывающихся позиций, которые размещены в таблице в случайном порядке, но в известных местах, например посредством хеш-функции. Способом, например как этот, можно получать индекс хеш-таблицы, причем индекс включает цифровой бинарный код для части или для всего разнообразия сегментов одного или более референсных геномов, на которые может ссылаться одна или более последовательностей генетического материала, например, один или более рид, или их части, от одного или более субъектов.[00193] Further, since genetic material can be composed of four nucleotide bases, for example, “A”, “C”, “G”, and “T” (or “U” in the case of RNA), individual nucleotide sequences, such as reference segments and/or reads, or parts thereof, that will be input to the hash function can be digitized and represented in a binary format, for example one in which each of the 4 nucleotide bases is represented as a two-bit digital code, for example “A” = 00, “C” = 01, “G” = 11, and “T”/”U” = 10. In some embodiments, it is this binary “seed” value that is randomly placed in the hash table at a known location that has the value equal to its binary representation. The hash function thus serves to partition the reference genome into binary representations of the reference primers and inserts each binary primer into a random location, such as a hash table cell, based on a numerical value. Along with a digital binary code, such as an access code, each cell may contain the actual entry points where the segment was taken from the actual reference genome, such as a reference position. The reference position may thus be a number indicating the position of the original reference primer in the genome. The same can be done for overlapping positions that are placed randomly in the table but in known locations, such as through a hash function. In a method such as this, a hash table index may be obtained, the index including a digital binary code for part or all of a variety of segments of one or more reference genomes that may be referenced by one or more sequences of genetic material, for example, one or more reads, or parts thereof, from one or more entities.
[00194] Когда хэш-таблицу и/или функцию реализуют как модуль, например как один из модулей конвейера, на программном (так что ширина в битах равна 2x числу нуклеотидных оснований в затравке как описано выше) и/или аппаратном обеспечении, по ссылке выше, хеш-таблицу можно строить так, чтобы бинарное представление затравок референсного рида имеет любую желаемую ширину в битах. Поскольку затравки могут быть длинными или короткими, бинарные представления могут быть больше или меньше, но обычно длину затравки нужно выбирать таким образом, чтобы она была достаточно длинной, чтобы обеспечить уникальность, но не слишком длинной, когда становится слишком сложно искать совпадения между затравками референсного генома и затравками рида образца из-за наличия ошибок или большого числа вариантов. Например, как указано выше, человеческий геном состоит из до примерно 3.1 миллиарда пар, а типичный рид может быть порядка 100 нуклеотидных оснований в длину. Следовательно, длина эффективной затравки может быть примерно от 16 или примерно 18 нуклеотидных основания и менее до примерно 28 или 30 нуклеотидных оснований или более. Например, в некоторых вариантах длина рида может быть сегментом длиной 20 нуклеотидных оснований. В других вариантах, длина рида может быть сегментом длиной 28 нуклеотидных оснований.[00194] When the hash table and/or function is implemented as a module, such as one of the pipeline modules, in software (so that the bit width is equal to 2x the number of nucleotide bases in the seed as described above) and/or hardware, as referenced above , the hash table can be constructed so that the binary representation of the reference read seeds has any desired width in bits. Since primers can be long or short, binary representations can be larger or smaller, but generally the length of the primer should be chosen so that it is long enough to ensure uniqueness, but not too long where it becomes too difficult to find matches between reference genome primers and sample read seeds due to the presence of errors or a large number of variants. For example, as stated above, the human genome consists of up to approximately 3.1 billion pairs, and a typical read can be on the order of 100 nucleotide bases in length. Therefore, the length of an effective primer can be from about 16 or about 18 nucleotide bases or less to about 28 or 30 nucleotide bases or more. For example, in some embodiments, the read length may be a segment of 20 nucleotide bases in length. In other embodiments, the read length may be a segment of 28 nucleotide bases in length.
[00195] Следовательно, если длина затравки составляет сегмент в 20 нуклеотидных оснований, то в цифровом представлении данные будут иметь длину 40 бит, например, 40-битовое цифровое представление затравки. Например, если выбирают два бита для представления нуклеотида, например так, что A = 00, C = 01, G = 10, и T = 11, затравка длиной 20 нуклеотидных оснований x 2 бита на нуклеотидное основание = 40-битный (5-байтовый) вектор, например, число. Если длина затравки составляет 28 нуклеотидных оснований в длину, цифровое, например, бинарное представление будет представлять собой 56-битовый вектор. Следовательно, если длина затравки составляет приблизительно 28 нуклеотидных оснований, потребуется 56 бит, чтобы получить цифровое представление 28-основной затравки. Более конкретно, если бинарные представления затравок референсного генома случайным образом распределены по хеш-таблице и имеют длину 56 бит, еще 56 бит можно задействовать для представления затравок ридов, которые предстоит сравнивать с затравками референсного генома. Эти 56 бит можно подать на вход полиномиальному преобразованию, на выходе которого получается также 56 бит с соответствием 1:1. Без увеличения или уменьшения количества бит на выходе, это преобразование рандомизирует место хранения соседних входных значений, так что различные затравки будут равномерно распределены по всем возможным местам хранения. Это также помогает минимизировать количество коллизий между значениями, которые хеш-функция приводит к одинаковым местам хранения. В частности, в типичной реализации хеш-таблицы, описанной в этой заявке, только часть 56 бит служит для обращения к таблице, остальные же биты хранятся для дальнейшего подтверждения соответствия. Если бы не применялась хеш-функция, огромное количество паттернов имело бы одинаковые адресные биты и различные хранимые биты, и должны были бы храниться в одних и тех же местах таблицы.[00195] Therefore, if the length of the primer is a segment of 20 nucleotide bases, then in the digital representation the data will be 40 bits long, for example, a 40-bit digital representation of the primer. For example, if two bits are selected to represent a nucleotide, such that A = 00, C = 01, G = 10, and T = 11, a primer 20 nucleotide bases long x 2 bits per nucleotide base = 40-bit (5-byte ) vector, for example, a number. If the length of the primer is 28 nucleotide bases in length, the digital, for example, binary representation will be a 56-bit vector. Therefore, if the length of the primer is approximately 28 nucleotide bases, it will take 56 bits to obtain a digital representation of the 28-base primer. More specifically, if the binary representations of the reference genome seeds are randomly distributed across the hash table and are 56 bits long, another 56 bits can be used to represent the read seeds that are to be compared with the reference genome seeds. These 56 bits can be fed into a polynomial transform, which produces 56 bits with a 1:1 mapping. Without increasing or decreasing the number of bits in the output, this transformation randomizes the storage location of adjacent input values, so that different seeds are evenly distributed across all possible storage locations. This also helps minimize the number of collisions between values that the hash function ends up in the same storage locations. In particular, in a typical hash table implementation described in this application, only a portion of 56 bits are used to access the table, with the remaining bits stored for further confirmation of the match. If a hash function were not used, a huge number of patterns would have the same address bits and different storage bits, and would have to be stored in the same places in the table.
[00196] Более конкретно, имеется сходство между тем, как заполняется таблица, например, посредством программного и/или аппаратного обеспечения затравки референсного геном случайным образом помещается в хеш-таблицу, и тем, как происходит обращение к таблице при хешировании затравок ридов, а именно, обращение к хеш-тиблице в этих случаях происходят одинаково. Следовательно, затравки референсного генома и затравки ридов, имеющие одинаковый бинарный код, окажутся в одном и том же месте таблицы, например, области памяти с одним адресом, поскольку доступ к ней осуществляется одинаково, например, для одинаковых входных векторов (паттерн). Это самый быстрый способ поиска совпадений в паттерах. Каждое обращение к таблице занимает примерно константное время. Это можно противопоставить методу Барроуза-Уилера, который требует несколько проверок (их количество может меняться в зависимости от того, сколько бит требуется, чтобы найти уникальную последовательность) на запрос, чтобы найти одно совпадение, или метод бинарного поиска, который требует log2(N) проверок, где N - число затравок в таблице.[00196] More specifically, there are similarities between the way the table is populated, for example, by software and/or hardware seeding a reference genome being randomly placed into a hash table, and the way the table is accessed when hashing seed reads, namely , access to the hash table in these cases occurs in the same way. Consequently, reference genome seeds and read seeds that have the same binary code will end up in the same place in the table, for example, a memory area with the same address, since it is accessed in the same way, for example, for the same input vectors (pattern). This is the fastest way to find matches in patterns. Each table access takes approximately constant time. This can be contrasted with the Burrows-Wheeler method, which requires multiple checks (the number may vary depending on how many bits are required to find a unique sequence) per query to find a single match, or the binary search method, which requires log 2 (N ) checks, where N is the number of seeds in the table.
[00197] Далее, хотя хеш-функция и может разбить референсный геном на сегменты затравок любой длины, например, 28 пар нуклеотидных оснований, и затем может перевести эти затравки в цифровое, например, бинарное 56-битное представление, не обязательно нужно иметь доступ ко всем 56 битам одновременно одним и тем же образом. Например, хеш-функция может быть реализована так, что адрес каждого сида определяется числом менее 56 бит, например числа от примерно 20 до примерно 45 бит, от примерно 25 бит до примерно 40 бит, от примерно 28 бит до примерно 35 бит, включая от примерно 28 бит до примерно 30 бит могут быть как исходный ключ или адрес доступа к хеш-таблице.[00197] Further, although a hash function can break the reference genome into segments of seeds of any length, for example, 28 nucleotide base pairs, and can then translate these seeds into a digital, for example, binary 56-bit representation, it does not necessarily need to have access to all 56 bits at the same time in the same way. For example, the hash function may be implemented such that the address of each seed is determined by a number less than 56 bits, such as numbers from about 20 to about 45 bits, from about 25 bits to about 40 bits, from about 28 bits to about 35 bits, including approximately 28 bits to approximately 30 bits can be either the original key or the hash table access address.
[00198] Например, в некоторых вариантах от примерно 26 до примерно 29 бит можно использовать в качестве первичного ключа доступа к хеш-таблице, без учета 27 до 30 оставшихся бит, которые можно использовать как средство двойной проверки первого ключа, например, если и первый и второй ключи оказываются в одной ячейке хеш-таблицы, тогда относительно понятно, что они принадлежат указанной локации. Так, для экономии места и уменьшения потребляемой памяти и/или времени обработки хеш-модуля, например когда хеш-таблица и/или хеш-функция реализована на аппаратном обеспечении, для представления первичного ключа доступа можно оставлять от примерно 26 до примерно 29 бит из исходных 56, представляющих оцифрованную затравку определенного секвенированного рида, а оставшиеся от 27 до 30 можно использовать для двойного контроля.[00198] For example, in some embodiments, from about 26 to about 29 bits can be used as the primary access key to a hash table, leaving out the remaining 27 to 30 bits, which can be used as a means of double checking the first key, for example, if both the first and the second keys end up in the same cell of the hash table, then it is relatively clear that they belong to the specified location. Thus, to save space and reduce memory consumption and/or processing time of the hash module, for example, when the hash table and/or hash function is implemented in hardware, from about 26 to about 29 bits of the original bits may be retained to represent the primary access key. 56 representing the digitized seed of a specific sequenced read, and the remaining 27 to 30 can be used for double control.
[00199] Более конкретно, в различных вариантах, от примерно 26 до примерно 29 бит из 56 бит бинарного представления референсной затравки можно использовать для получения первичного адреса, который определяется 26 до 29 и может иметь рандомизированное место в хеш-таблице, которое в свою очередь может быть заполнено местоположением, которому изначально принадлежала референсная затравка, а также оставшимися 27 до 30 битов затравки, так что точное совпадение может быть подтверждено. Затравки запроса, представляющие риды генома субъекта, преобразованные в бинарную форму, можно хешировать той же самой функцией так, что они также будут представлены 29 битами, содержащими первичный ключ доступа. Если 29 бит, представляющие референсную затравку в точности совпадают с 29 битами, представляющими затравку запроса, они оба будут направлены в одно и то же место в хеш-таблице. При полном совпадении с референсной затравкой, ожидается, что в том месте будет найдена запись, содержащая те же оставшиеся 27 до 30 бит. В этом варианте реализации, 29 зарезервированных адресных бит референсной последовательности используют для обращения к таблице, чтобы определить позицию в референсной последовательности, к которой выровнен рид запроса, из которого была выделена затравка для запроса.[00199] More specifically, in various embodiments, from about 26 to about 29 bits of the 56 bits of the binary representation of the reference seed can be used to obtain the primary address, which is defined 26 to 29 and may have a randomized location in the hash table, which in turn can be filled with the location to which the reference seed originally belonged, as well as the remaining 27 to 30 bits of the seed, so that an exact match can be confirmed. Query seeds representing the subject's genome reads converted to binary form can be hashed with the same function so that they are also represented by 29 bits containing the primary access key. If the 29 bits representing the reference seed are exactly the same as the 29 bits representing the request seed, they will both be directed to the same location in the hash table. If there is a complete match with the reference seed, it is expected that a record containing the same remaining 27 to 30 bits will be found in that location. In this embodiment, the 29 reserved address bits of the reference sequence are used to reference the table to determine the position in the reference sequence to which the query read from which the query seed was extracted is aligned.
[00200] Однако, что касается оставшихся 27 до 30 бит, эти биты могут представлять вторичный ключ доступа, который также моет быть импортирован в хеш-таблицу для подтверждения соответствий найденных по 26-29-битному первичному ключу. Поскольку хеш-таблица представляет собой идеальное 1:1 преобразование последовательности 28 нуклеотидных оснований/56 бит, и только 26-29 этих битов используется для определения адреса, эти 26-29 бит были сначала проверены и таким образам определили правильный адрес при первом проходе. Эти данные, таким образом, не нуждаются в подтверждении. Однако оставшиеся примерно 27-примерно 30 бит вторичного ключа нужно проверить. Соответственно, оставшиеся примерно 27-30 бит затравки запроса вставляют в таблицу как средство завершения поиска совпадения. Такая реализация может быть короче, чем сортировка полных 56-битных ключей, и таким образом, позволяет экономить место и снижает требуемое количество памяти и время обработки модуля.[00200] However, for the remaining 27 to 30 bits, these bits can represent a secondary access key, which can also be imported into a hash table to validate matches found against the 26 to 29 bit primary key. Since a hash table is a perfect 1:1 conversion of a 28 nucleotide base/56 bit sequence, and only 26-29 of these bits are used to determine the address, these 26-29 bits were first checked and thus determined the correct address on the first pass. These data therefore do not need to be confirmed. However, the remaining approximately 27 to approximately 30 bits of the secondary key need to be verified. Accordingly, the remaining approximately 27-30 bits of the query seed are inserted into the table as a means of completing the match search. This implementation can be shorter than sorting full 56-bit keys, and thus saves space and reduces the amount of memory required and module processing time.
[00201] Таким образом, хеш-таблица может быть сконфигурирована как индекс, где последовательности одного или более референсных геномов, разбитые на последовательности предопределенной длины, например 28 нуклеотидных оснований, собраны в таблицу случайным образом, а последовательность одного или более ридов или их «затравочных порций», полученных секвенированием ДНК или РНК субьекта, можно прогонять через индекс хеш-таблицы, например в соответствии с хеш-функцией, чтобы определить положение затравок в таблице, позволяя получить одну или более позицию, например, место в референсном геноме, когда затравка образца соответствует месту референсного генома. При использовании прямого перебора «в лоб» для сканирования референсного генома с целью обнаружить места, совпадающие с затравками, пришлось бы перебрать 3 миллиона позиций. Однако, при хешировании, определение места соответствия каждой затравки требует приблизительно константного времени. Часто, место совпадения можно подтвердить за одно обращение к таблице. В случае, когда несколько затравок подходят к одному месту в таблице, можно сделать несколько дополнительных обращений, чтобы уточнить результат. Следовательно, хотя потенциально риду длиной 100 нуклеотидных оснований может соответствовать 30M позиций в референсном геноме, с помощью хеш-таблицы и хеш-функции можно быстро определить, входит ли рид в референсный геном. Соответственно, при использовании индекса хеш-таблицы не нужны в определении положения, с которым выравнивается рид.[00201] Thus, a hash table can be configured as an index where the sequences of one or more reference genomes, divided into sequences of a predefined length, for example 28 nucleotide bases, are randomly assembled into a table, and the sequence of one or more reads or their “seeds” portions" obtained by sequencing a subject's DNA or RNA can be run through a hash table index, for example according to a hash function, to determine the position of the seeds in the table, allowing one or more positions, for example a location in a reference genome, to be obtained when the sample is primed corresponds to the location of the reference genome. Using brute force search to scan the reference genome in order to find locations that match the primers would require searching through 3 million positions. However, with hashing, determining where each seed matches matches takes approximately constant time. Often, the location of the match can be confirmed in one call to the table. In the case where several seeds fit one place in the table, several additional calls can be made to clarify the result. Therefore, although a 100-bp read could potentially correspond to 30M positions in the reference genome, a hash table and a hash function can quickly determine whether a read is included in the reference genome. Accordingly, when using an index, hash tables are not needed in determining the position to which the read is aligned.
[00202] Как было указано выше, хромосомы имеют структуру двойной спирали, которая состоит из двух противонаправленных комплементарных цепей последовательностей нуклеиновой кислоты, которые связаны друг с другом с образованием двойной спирали. Например, при образовании структуры двойной спирали, эти комплементарные пары оснований связываются друг с другом в соответствии со следующей формулой: “A” связывается с “T”, а “G” связывается с “C”. Соответственно, это дает две равные и противонаправленные цепочки последовательностей нуклеотидов, которые комплементарны друг другу. Более конкретно, основания последовательности нуклеотидов одной нити зеркально отображаются комплементаными им основаниями на другой нити, что дает две комплементарные нити. Однако транскрипция ДНК происходит только в одном направлении, начинаясь с одного конца ДНК и продвигаясь к другому. Соответственно, получается, что для одной нити ДНК транскрипция происходит в одном направлении, а для комплементарной ей нити, транскрипция происходит в другом направлении. Соответственно, получается, что две нити последовательностей ДНК обратно комплементарны друг другу, что означает, что если порядок последовательности одной нити ДНК сравнить с другой, то мы увидим две нити, к которых буквы, обозначающие нуклеотиды в одной цепочки заменены на комплементарные им в другой например, буквы “A” на “T”, а “G” на “C” и наоборот, а их порядок обращен.[00202] As stated above, chromosomes have a double helix structure, which consists of two opposing complementary strands of nucleic acid sequences that are linked to each other to form a double helix. For example, when forming a double helix structure, these complementary base pairs bind to each other according to the following formula: “A” binds to “T” and “G” binds to “C.” Accordingly, this produces two equal and opposite chains of nucleotide sequences that are complementary to each other. More specifically, the bases of a nucleotide sequence on one strand are mirrored by their complementary bases on the other strand, resulting in two complementary strands. However, DNA transcription occurs in only one direction, starting at one end of the DNA and moving to the other. Accordingly, it turns out that for one DNA strand, transcription occurs in one direction, and for its complementary strand, transcription occurs in a different direction. Accordingly, it turns out that two strands of DNA sequences are inversely complementary to each other, which means that if the sequence order of one DNA strand is compared with another, then we will see two strands in which the letters denoting nucleotides in one strand are replaced by their complementary ones in the other, for example , the letters “A” to “T”, and “G” to “C” and vice versa, and their order is reversed.
[00203] Двойная спиральная структура ДНК обуславливает то, что на подготовительном этапе перед секвенированием ДНК, разделяют, т.е. денатурируют, разделяют на две отельные нити, а затем лизируют на более мелкие фрагменты заранее определенной длины, например, по 100-300 оснований в длину, которые затем секвенируют. Можно разделить нити перед секвенированием, таким образом, чтобы секвенировалась только одна нить, но обычно нити ДНК не разделяют и секвенируют обе нити ДНК. Соответственно, в таком случае примерно половина ридов в файле FASTQ будут обратно комплементарными.[00203] The double helical structure of DNA means that at the preparatory stage before sequencing the DNA is separated, i.e. denatured, separated into two separate strands, and then lysed into smaller fragments of a predetermined length, for example, 100-300 bases in length, which are then sequenced. It is possible to separate the strands before sequencing so that only one strand is sequenced, but typically the DNA strands are not separated and both DNA strands are sequenced. Accordingly, in this case, approximately half of the reads in the FASTQ file will be reverse complementary.
[00204] Безусловно, обе нити референсного генома, например, комплемент и обратный комплемент, могут быть обработаны и хешированы как описано выше, однако это увеличило бы размер хеш-таблицы в два раза, и в два раза удлинило бы работу функции хеширования, например, это могло бы потребовать в два раза больше вычислений для сравнения последовательностей как комплемента, таки и обратного комплемента двух геномных последовательностей. Соответственно, для экономии места в памяти, снижения потребности в вычислительных ресурсах и/или снижения времени обработки в различных вариантах нужно хранить в качестве референса в хеш-таблице только одну нить модельной ДНК.[00204] Of course, both strands of the reference genome, for example, complement and reverse complement, could be processed and hashed as described above, however, this would double the size of the hash table, and would take twice the time to run the hashing function, e.g. this could require twice as much computation to compare both the complement and reverse complement sequences of two genomic sequences. Accordingly, to save memory space, reduce the need for computing resources and/or reduce processing time in various options, only one strand of model DNA needs to be stored as a reference in the hash table.
[00205] Однако, поскольку в соответствии с обычными протоколами секвенирования, когда две нити ДНК субъекта не отделяются друг от друга, любой рид, сгенерированный из секвенированной ДНК, может относиться к любой из нитей: комплементу или обратному комплементу, соответственно, может быть затруднительно определить, какая нить обрабатывается: комплемент или обратный комплемент. Конкретнее, в различных вариантах, поскольку для генерации хеш-таблицы нужно использовать только одну нить референсного генома, половина ридов, генерируемых протоколом, секвенирования может не совпадать к данной конкретной нитью, например, комплементарной или обратно комплементарной, модели референсного генома, поскольку половину времени обрабатываемый рид является обратно комплементарным относительно хешированных сегментов референсного генома. Соответственно, только риды, сгенерированные с одной нити ДНК, будут иметь совпадение с индексированными последовательностями референсного генома, а риды, сгенерированные с другой нити, теоретически, будут их обратными комплементами и не будут иметь совпадений ни с какими областями референсного генома. Далее, дополнительную сложность может представлять то, что для любого данного рида, который является обратным комплементом сохраненного референсного генома, этот рид все же может дать ошибочное совпадение с частью референсного генома, например, по чистой случайности. Ввиду вышесказанного для эффективного осуществления картирования в различных вариантах необходимо не только определить, с каким местом в референсном геноме совпадает рид, но и определить, является ли рид обратно комплементарным. Соответственно, хеш-таблица и/или модуль функций следует сконструировать таким образом, чтобы минимизировать эти затруднения и/или типы ошибок, возникающих в результате этих затруднений.[00205] However, because under conventional sequencing protocols, when the two strands of a subject's DNA are not separated from each other, any read generated from the sequenced DNA may be either complement or reverse complement, respectively, it may be difficult to determine which strand is processed: complement or reverse complement. More specifically, in various embodiments, since only one strand of the reference genome needs to be used to generate a hash table, half of the reads generated by the sequencing protocol may not match that particular strand, e.g., complementary or inversely complementary, of the reference genome model, since half the time is being processed The read is reverse complementary to the hashed segments of the reference genome. Accordingly, only reads generated from one DNA strand will have a match with the indexed sequences of the reference genome, and reads generated from the other strand, theoretically, will be their reverse complements and will not have matches to any regions of the reference genome. Further, an additional complication may be that for any given read that is the reverse complement of a conserved reference genome, that read may still produce an erroneous match to part of the reference genome, for example, by pure chance. In view of the above, for effective mapping in various variants, it is necessary not only to determine which place in the reference genome the read matches, but also to determine whether the read is reverse complementary. Accordingly, the hash table and/or function module should be designed to minimize these difficulties and/or the types of errors resulting from these difficulties.
[00206] Например, как указано выше, в одном варианте в хеш-таблицу можно поместить и комплемент, и обратный комплемент для референсного генома, таким образом, для каждого рида или его обратного комплемента секвенированной ДНК субъекта можно установить совпадение в соответствующей нити референсной геномной ДНК. В таком варианте для любой данной затравки в риде, затравка теоретически должна иметь совпадение с одной из нитей, комплементом или обратным комплементом референса, если не принимать во внимание ошибки и отклонения. Однако хранение обеих нитей референсного генома в хеш-индекса может потребовать в два раза больше места для хранения (например, может потребовать вместо 32 гигабайт 64 гигабайта), а также может требовать в два раза больше ресурсов для обработки. Далее, такое решение не решает проблему палиндромов, которые могут иметь совпадения в обоих направлениях, например, комплементарной и обратно комплементарной цепей.[00206] For example, as noted above, in one embodiment, both the complement and the reverse complement for a reference genome can be placed in the hash table, such that for each read or its reverse complement of a subject's sequenced DNA, a match can be made on the corresponding strand of the reference genomic DNA . In this case, for any given primer in a read, the primer should theoretically have a match with one of the strands, complement or reverse complement of the reference, errors and deviations not taken into account. However, storing both strands of the reference genome in a hash index may require twice as much storage space (for example, it may require 64 gigabytes instead of 32 gigabytes), and may also require twice as many processing resources. Further, this solution does not solve the problem of palindromes that can have matches in both directions, for example, complementary and reverse complementary strands.
[00207] Соответственно, хотя индекс хеш-таблицы может быть сконструирован таким образом, чтобы включать обе нити референсной геномной последовательности, в различных вариантах, хеш-таблица может быть сконструирована таким образом, чтобы включать только одну нить модельного генома в качестве референса. Это может быть полезно, поскольку хранение хеш-таблицы в памяти потребует половины ресурсов для хранения и/или обработки, по сравнению с теми, которые потребовались бы для хранения и обработки обеих нитей, и, соответственно, поиск также потребует меньше времени. Однако хранение только одной нити генома в качестве референса может вызвать затруднения, поскольку, как указано выше, когда секвенируемая ДНК субъекта является двунитевой, обычно не известно, с какой конкретно нити сгенерирован каждый конкретный рид. Соответственно, в таком варианте хеш-таблица должна быть сгенерирована с учетом того факта, что картируемый рид может быть из любой нити и, соответственно, может представлять собой комплемент или обратный комплемент сохраненных сегментов референсного генома.[00207] Accordingly, while a hash table index may be constructed to include both strands of a reference genomic sequence, in various embodiments, a hash table may be constructed to include only one strand of a model genome as a reference. This can be useful because storing a hash table in memory will require half the storage and/or processing resources of what would be required to store and process both threads, and therefore the lookup will also take less time. However, storing only one strand of the genome as a reference can be problematic because, as stated above, when a subject's DNA being sequenced is double-stranded, it is usually not known from which specific strand each particular read was generated. Accordingly, in this embodiment, the hash table must be generated taking into account the fact that the mapped read can be from any strand and, accordingly, can be the complement or reverse complement of the conserved reference genome segments.
[00208] Соответственно, в различных вариантах, как в случае, когда только один вариант ориентации затравок из референса помещают в хеш-таблицу, при выполнении функции хеширования с затравками, сгенерированными по ридам из файла FASTQ, можно сначала провести поиск затравки в ее текущей ориентации и/или можно затем преобразовать в обратный комплемент и провести поиск с обратным комплементом. Это может потребовать провести два поиска в хеш-индексе, т.е. в два раза больше, но либо затравка, либо ее обратный компонент должны совпасть с комплементарным сегментом в референсном геноме, при условии отсутствия ошибок и вариаций, и это должно сократить общую потребность в вычислительных ресурсах, например, за счет меньшего использования памяти, а также сокращения времени, например, когда сравнивается не такое большое число последовательностей.[00208] Accordingly, in various embodiments, such as when only one orientation of a seed from a reference is placed in a hash table, when executing a hashing function with seeds generated from reads from a FASTQ file, one can first search for the seed in its current orientation and/or can then be converted to reverse complement and searched with reverse complement. This may require two hash index searches, i.e. twice as large, but either the primer or its inverse component must match the complementary segment in the reference genome, provided there are no errors or variations, and this should reduce the overall need for computing resources, for example, due to less memory usage, as well as reduction time, for example, when not such a large number of sequences are compared.
[00209] Более конкретно, как в случае, когда затравка в одной конкретной ориентации состоит из 28 нуклеотидов, которые например, представлены в цифровом виде в 56 битах двоичного формата, как описано выше, затравка может быть преобразована в обратный комплемент, и обратный комплемент также можно представить в цифровом виде в 56 битах двоичного формата. Двоичный формат для каждого представления последовательности затравки и ее комплемента дает число, например, целое число, имеющее значение, представленное этим числом. Эти два значения, например, два целых числа (номера), можно сравнить и число с более высоким или более низким значением, например, более высоким или более низким абсолютным значением, можно выбрать в качестве канонического варианта ориентации, и он будет храниться в хеш-таблице и/или обрабатываться хеш-функцией. Например, в некоторых вариантах для обработки хеш-функцией можно отбирать число с более высоким значением.[00209] More specifically, as in the case where the primer in one particular orientation consists of 28 nucleotides, which for example are represented digitally in 56 bits of binary format as described above, the primer can be converted to the reverse complement, and the reverse complement as well can be represented digitally in 56-bit binary format. The binary format for each representation of a primer sequence and its complement produces a number, such as an integer, having the value represented by that number. These two values, for example two integers (numbers), can be compared and the number with a higher or lower value, for example a higher or lower absolute value, can be chosen as the canonical orientation option and it will be stored in the hash. table and/or processed by a hash function. For example, in some embodiments, the number with the higher value may be selected for processing by the hash function.
[00210] Для конструирования затравок можно применять другой способ, в котором каждая затравка состоит из нечетного числа оснований. В качестве канонической ориентации можно выбрать нити, в которых основание в середине представляет собой “A” или “G”, но не “T” или “C”, или наоборот. Затем можно применить хеш-функцию к затравкам, отвечающим требованиями канонической ориентации. Таким образом, для сравнения с целью определения, которая имеет более высокое значение, нужно сравнить только два бита, представляющие срединное основание, и только эти 2 бита этой последовательности можно использовать для поиска. Соответственно, нужно учитывать только биты, представляющие два срединных основания. Обычно это хорошо работает, поскольку затравка имеет нечетную длину и, соответственно, ее срединное основание всегда преобразуется в обратный комплемент. Тем не менее, хотя это может работать для затравок с нечетной длиной, хеширование затравок с более высоким, или более низким значением, описанное выше, должно работать для затравок любой длины, даже если такой способ может потребовать обработки, например, поиска большего количества битов данных.[00210] Another method can be used to design primers, in which each primer consists of an odd number of bases. As a canonical orientation, you can choose threads in which the base in the middle is “A” or “G”, but not “T” or “C”, or vice versa. The hash function can then be applied to seeds that meet the canonical orientation requirements. Thus, to compare to determine which has a higher value, only the two bits representing the middle base need to be compared, and only those 2 bits of that sequence can be used for searching. Accordingly, only the bits representing the two middle bases need to be taken into account. This usually works well because the primer is of odd length and therefore its middle base is always converted to the reverse complement. However, while this may work for odd-length seeds, hashing higher or lower value seeds as described above should work for seeds of any length, even though doing so may require processing, such as searching for more bits of data .
[00211] Эти способы можно осуществлять для любого числа затравок, например, всех затравок референса, и/или любого числа затравок, например, всех, полученных из всех или из части ридов из файла FASTQ. Приблизительно половину времени двоичное представление затравок данной ориентации, например, комплемента, будет иметь более высокое значение, и приблизительно половину времени более высокое значение будет у двоичного представления затравок противоположной ориентации, например, обратного комплемента. Но при рассмотрении бинарных чисел, в хеш-таблицу будут всегда попадать те, значение которых больше. Например, можно сравнивать двоичные целые числа для каждого рида и его комплемента, и первую встреченную 1 выбирать в качестве нити для хранения в хеш-таблице и/обработки функцией хеширования. Если обе нити содержат первую 1 в одном и том же положении, то тогда выбирают нить со второй следующей 1 и т.д. Безусловно, можно также выбирать рид с более низким значением, в этом случае выбирают нить с первым по порядку первым 0 или первым 0 имеющим более высокий номер по порядку. Указатель, например, флаг, также можно включить в хеш-таблица, где флаг указывает, какую ориентации, комплемент или обратный комплемент, хранится, представляет сохраненная и/или хешированная нить, например, флаг 1RC, для обратного комплемента.[00211] These methods can be performed on any number of seeds, for example, all reference seeds, and/or any number of seeds, for example, all obtained from all or a portion of the reads from the FASTQ file. About half the time, the binary representation of primers of a given orientation, such as complement, will have a higher value, and approximately half the time, the binary representation of primers of the opposite orientation, such as reverse complement, will have a higher value. But when considering binary numbers, the hash table will always contain those whose value is greater. For example, you can compare binary integers for each read and its complement, and the first 1 encountered is selected as a thread to be stored in a hash table and/processed by the hashing function. If both threads contain the first 1 in the same position, then the thread with the second next 1 is selected, etc. Of course, you can also select a read with a lower value, in which case you select the thread with the first 0 in order or the first 0 with a higher number in order. An indicator, such as a flag, can also be included in a hash table, where the flag indicates which orientation, complement or reverse complement, is stored, representing the stored and/or hashed strand, such as the 1RC flag, for the reverse complement.
[00212] Более конкретно, при реализации хеш-функции и оценке хеш-таблицы, затравки из геномной референсной ДНК и затравки из ридов данных о последовательности подвергают одним и тем же операциям, например, переводят в двоичную форму и сравнивают с их обратным комплементом, при этом целые числа с более высокими, или более низкими, значениями выбирают в качестве канонических ориентаций применяют к ним хеш-функцию и передают в хеш-таблицу для поиска и проверки совпадения друг с другом. Однако, поскольку, одну и ту же операцию проводят по существу одинаковым образом с референсными последовательностями и последовательностями ридов, будут получаться одинаковые записи, если две последовательности, референсной затравки и затравки субъекта, начинаются с одной и той же последовательности, даже если одна из них является обратным комплементом, они будут отправляться в одну и ту же ячейку в хеш-таблице.[00212] More specifically, when implementing a hash function and evaluating a hash table, the primers from the genomic reference DNA and the primers from the sequence data reads are subjected to the same operations, for example, converted to binary form and compared with their reverse complement, when In this case, integers with higher or lower values are chosen as canonical orientations, a hash function is applied to them, and they are passed to a hash table to be looked up and matched against each other. However, since the same operation is performed in essentially the same way on reference and read sequences, the same records will be obtained if two sequences, the reference seed and the subject seed, start with the same sequence, even if one of them is reverse complement, they will be sent to the same cell in the hash table.
[00213] Соответственно, если некоторую затравку в референсной последовательности, имеющую данную последовательность в конкретной ориентации, преобразовать в двоичную форму и хешировать, а затем затравку, полученную из рида образца, имеющую ту же последовательность, но в обратной ориентации, например, обратный комплемент, и ее подвергают описанным выше протоколам, в силу раскрытых выше способов, когда определяют двоичное значение и выполняют функцию хеширования, поиск будет направлен на тот же адрес в хеш-таблице, как если бы хеш-функцию выполняли сначала с комплиментарной затравкой. Соответственно, при таком подходе не важно, какую ориентацию имеет обрабатываемая затравка, поскольку она всегда будет направляться на один и тот же адрес.[00213] Accordingly, if some primer in a reference sequence having that sequence in a particular orientation is binned and hashed, and then a primer derived from a sample read having the same sequence but in the reverse orientation, for example, reverse complement, and it is subjected to the protocols described above, by virtue of the methods disclosed above, when a binary value is determined and a hashing function is performed, the lookup will be directed to the same address in the hash table as if the hash function was performed first with a complementary seed. Accordingly, with this approach, it does not matter what orientation the processed seed has, since it will always be directed to the same address.
[00214] Соответственно, при таком подходе, раскрытые способы могут хешировать и, соответственно, определять положение затравки в таблице вне зависимости от ее ориентации, и благодаря флагу в записи, также будет известно, если какая-либо затравка является обратным комплементом. Например, также будет известно, если затравка будет перевернута относительно исходной ориентации в референсе, а также будет известно, если затравка будет перевернут относительно исходной ориентации в риде субъекта. Соответственно, если в обоих случаях было принято одно и то же решение, рид и референс имеют одинаковую ориентацию. Тем не менее, если одна сторона перевернута, а другая нет, можно заключить, что рид каптируется в обратно комплементарной ориентации относительно референса. Соответственно, при помощи хеш-таблицы можно определить, какому месту в геноме соответствует данный рид или его часть, например, затравка, и является ли она обратно комплементарной. Далее, следует понимать, что хотя сказанное выше относится к генерации хеш-таблицы по референсному геному и выполнению различных вспомогательных процессов хеш-функции с затравками, сгенерированными из ридов, например, из файла FASTQ, система также может быть структурирована так, что индекс хеш-таблицы генерируется из затравок, полученных из ридов секвенированной ДНК субъекта, а различные вспомогательные процессы хеш-функции, описанные в настоящем документе, осуществляются с затравками, сгенерированными из референсного генома.[00214] Accordingly, with this approach, the disclosed methods can hash and therefore determine the position of a primer in a table regardless of its orientation, and due to a flag in the entry, it will also be known if any primer is reverse complement. For example, it will also be known if the seed is flipped relative to the original orientation in the reference, and it will also be known if the prime is flipped relative to the original orientation in the subject's read. Accordingly, if the same decision was made in both cases, the read and reference have the same orientation. However, if one side is flipped and the other is not, we can conclude that the read is captured in a reverse complementary orientation relative to the reference. Accordingly, using a hash table, it is possible to determine to which place in the genome a given read or part of it, for example, a primer, corresponds and whether it is reverse complementary. Further, it should be understood that while the above applies to generating a hash table from a reference genome and performing various ancillary hash function processes with seeds generated from reads, such as a FASTQ file, the system can also be structured such that the hash index tables are generated from primers derived from the subject's sequenced DNA reads, and the various hash function auxiliary processes described herein are performed on primers generated from the reference genome.
[00215] Как указано выше, преимущество применения хеш-таблицы и/или хеш-функции заключается в том, что при применении затравок можно определить соответствие большинства ридов секвенированный ДНК с референсным геномом, часто за один поиск в хеш-таблице, и в различных вариантах, не все затравки, полученные из рида, нужно хешировать и/или искать. Затравки могут быть любой подходящей длины, например, могут быть относительно короткими, например, иметь длину 16 нуклеотидов или меньше, например, примерно 20 нуклеотидов, например, примерно 24 нуклеотидов, например, примерно 28 нуклеотидов, например, примерно 30 или примерно 40, или примерно 50, или 75, или примерно 100 нуклеотидов, или даже до 250, или 500, или 750, или даже 999, или даже примерно 1000 нуклеотидов в длину; или могут быть относительно длинными, например, больше примерно 1000 нуклеотидов, или больше примерно 10000, или больше примерно 100000, или больше 1000000, или больше нуклеотидов в длину. Тем не менее, как описано выше, у применения затравок есть некоторые недостатки, такие как связанные с хеш-таблицей, в частности, в отношении выбора ридов подходящей длины.[00215] As stated above, the advantage of using a hash table and/or a hash function is that when using primers, the majority of the sequenced DNA reads can be mapped to the reference genome, often in a single hash table search, and in a variety of variations , not all seeds obtained from a read need to be hashed and/or searched. The primers can be of any suitable length, e.g., can be relatively short, e.g., 16 nucleotides or less in length, e.g., about 20 nucleotides, e.g., about 24 nucleotides, e.g., about 28 nucleotides, e.g., about 30 or about 40, or about 50, or 75, or about 100 nucleotides, or even up to 250, or 500, or 750, or even 999, or even about 1000 nucleotides in length; or may be relatively long, such as greater than about 1000 nucleotides, or greater than about 10,000, or greater than about 100,000, or greater than 1,000,000, or greater than nucleotides in length. However, as described above, there are some disadvantages to using seeds, such as those associated with the hash table, particularly with regard to selecting reads of appropriate length.
[00216] Например, в функции картирования можно применять затравку любой подходящей длины, но у применения затравок относительно большой длины и относительно маленькой длины есть преимущества и недостктки. Например, чем меньше длина затравки, тем меньше вероятность того, что он будет включать ошибку или вариант, которые могут препятствовать нахождения совпадения в хеш-таблице. Однако, чем меньше длина сита, тем менее он уникален, и тем больше вероятность совпадения между затравкой референсного генома и затравками, полученными из ридов секвенированной ДНК субъекта. Далее, чем короче затравка, тем больше поисков нужно осуществить хеш-функцией, что занимает больше времени и требует повышенной вычислительной мощности.[00216] For example, any suitable length of seed can be used in a mapping function, but there are advantages and disadvantages to using relatively long and relatively short length seeds. For example, the shorter the seed length, the less likely it is to include an error or variant that could prevent a match from being found in the hash table. However, the shorter the sieve length, the less unique it is, and the greater the likelihood of a match between the reference genome primer and the primers derived from the subject's sequenced DNA reads. Further, the shorter the seed, the more searches need to be carried out by the hash function, which takes more time and requires increased computing power.
[00217] С другой стороны, чем больше длина затравки, тем выше ее уникальность, и тем меньше вероятность существования нескольких совпадающих положений между затравками референса и запроса. Далее, чем длиннее затравка, тем меньше затравок нужно на каждый рид, тем меньше поисков и, соответственно, требуется меньше времени и меньше вычислений. Однако, чем длиннее затравка, тем больше вероятность того, что затравки, полученные из секвенированной ДНК, содержат ошибку, такую как ошибка секвенирования, и/или могут включать отклонение от последовательности, которые препятствуют определению совпадения. Кроме того, для более длинным ридам может быть дополнительно присущ недостаток, заключающийся в том, что они с большей вероятность попадают на конец рида и/или конец хромосомы. Соответственно, если длина затравки составляет всего 20 - 100 нуклеотидов, может быть несколько совпадений в хеш-таблице, но если длина затравки составляет 1000 или более нуклеотидов, будет значительно меньше совпадений, но при этом совпадений может не быть совсем.[00217] On the other hand, the longer the seed, the higher its uniqueness, and the less likely it is that there will be multiple matching positions between the reference and query seeds. Further, the longer the seed, the fewer seeds are needed for each read, the fewer searches and, accordingly, less time and fewer calculations are required. However, the longer the primer, the more likely it is that the primers derived from sequenced DNA contain an error, such as a sequencing error, and/or may include sequence deviations that prevent a match from being determined. Additionally, longer reads may have the additional disadvantage of being more likely to fall at the end of the read and/or the end of the chromosome. Accordingly, if the primer length is only 20 - 100 nucleotides, there may be a few matches in the hash table, but if the primer length is 1000 nucleotides or more, there will be significantly fewer matches, but there may be no matches at all.
[00218] Существует насколько методов минимизации этих недостатков. Один способ заключается в том, чтобы обеспечить достаточно избыточную выборку, генерируемую на этапах обработки ДНК перед секвенированием. Например, если известно, что обычно присутствует по меньшей мере одно отклонение (вариант) на каждую 1000 пар оснований, длина затравки может быть выбрана таким образом, чтобы максимизировать совпадения, в то же время минимизируя несовпадения из-за возможных ошибок и/или вариантов. Дополнительно, применение избыточной выборки, например, на этапах подготовки к секвенированию и/или секвенирования, можно использовать в качестве дополнительного способа минимизации различных проблем, связанных с применением затравок, например, в хеш-функции.[00218] There are a number of methods to minimize these disadvantages. One way is to ensure that sufficient oversampling is generated during DNA processing steps prior to sequencing. For example, if it is known that there is typically at least one variation (variant) for every 1000 base pairs, the length of the primer can be chosen to maximize matches while minimizing mismatches due to possible errors and/or variations. Additionally, the use of oversampling, for example during the pre-sequencing and/or sequencing steps, can be used as an additional method to minimize various problems associated with the use of primers, for example, in a hash function.
[00219] Как указывалось выше, избыточность выборки порождает наслоения. Наслоения представляют собой группы ридов, которые картируются с перекрыванием на в целом одно и то же место генома. Для большинства ридов из образца такие наслоения могут не быть обязательными, как в случае, когда риды, и/или сгенерированные из них затравки, не включают вариант и/или не картируются на множественные положения в хеш-таблице (например, не дублируются полностью в геноме). Однако для тех ридов и/или затравок, которые могут включать вариант, и/или ошибку, и/или другое несовпадение между затравкой и/или ридом и референсным геномом, образование наслоений для каждой данной области генома может быть полезно. Например, даже несмотря на то, что нужны только точные попадания между затравкой, сгенерированной из рида образца генома, для картирования рида образца не референсный геном, тем не менее, может иметь место техническая ошибка или истинный вариант в последовательности ДНК образца, который может препятствовать определению точного совпадения между ридом и референсом, что часто делает формирование перекрывающихся наслоений на этапе подготовки к секвенированию или на этапе секвенирования полезным.[00219] As stated above, redundant sampling creates aliasing. Strands are groups of reads that map overlappingly to broadly the same location in the genome. For most reads from a sample, such layering may not be necessary, as is the case when the reads, and/or the seeds generated from them, do not include a variant and/or do not map to multiple positions in the hash table (e.g., are not completely duplicated in the genome ). However, for those reads and/or seeds that may include a variant and/or error and/or other mismatch between the seed and/or read and the reference genome, layering for each given genomic region may be beneficial. For example, even though only exact hits between a primer generated from a sample genome read are needed to map the sample read to a non-reference genome, there may still be a technical error or a true variant in the sample DNA sequence that may prevent determination exact match between read and reference, which often makes the formation of overlapping layers in the pre-sequencing or sequencing phase useful.
[00220] Например, для тех случаев, в которых затравки образца на самом деле содержат вариант или ошибку, формирование наслоений ридов может быть полезно для того, чтобы отличить фактическое отклонение от технических и/или химических ошибок. В таком варианте наслоение можно применять, чтобы определить, является ли кажущееся отклонение реальным отклонением. Например, если 95% ридов в наслоении содержат “C” в некотором положении, то правильное решение определяют остальные, даже если референсный геном содержит “T” в этом положении. В таком варианте несовпадение может быть связано с SNP, например, заменой “T” на “C “ в этом положении генома, в тех случаях, когда генетический код субъекта действительно отличается от референса. В таком варианте глубину наслаивания можно применять для сравнения перекрывающихся частей наслоения в положении отклонения, и на основании доли ридов в наслоении, которые имеют это отклонение, можно определить, действительно ли это отклонения связано с реальным отклонением в последовательности образца. Соответственно, фактическую последовательность ридов, которая наилучшим образом укладывается в геномную последовательность, можно частично определить на основании информации, отражаемой глубиной наслоений. Однако применение наслоений имеет недостаток, заключающийся в том, что оно требует больше времени на обработку всех избыточных ридов и/или генерируемых ими затравок.[00220] For example, for those cases in which the sample seeds actually contain a variant or error, stacking reads can be useful to distinguish actual deviation from technical and/or chemical errors. In this embodiment, layering can be used to determine whether an apparent deviation is a real deviation. For example, if 95% of the reads in a stack contain a “C” at a certain position, then the rest determine the correct solution, even if the reference genome contains a “T” at that position. In this case, the mismatch may be due to a SNP, for example, a replacement of “T” with “C” at this genomic position, in cases where the subject's genetic code does differ from the reference. In this embodiment, layering depth can be used to compare overlapping portions of a layer at a deviation position, and based on the proportion of reads in the layering that have that deviation, it can be determined whether the deviation is actually due to an actual deviation in the sample sequence. Accordingly, the actual sequence of reads that best fits the genomic sequence can be determined in part based on the information reflected by the layering depth. However, the use of layering has the disadvantage that it requires more time to process all the redundant reads and/or the seeds they generate.
[00221] Другой способ минимизации проблем, присущих коротким или длинным ридам, заключается в применении вторичной хеш-таблицы параллельно или совместно с первой, например, первичной хеш-таблицей. Например, вторую хеш-таблицу и/или хеш-функцию можно применять для затравок, которые не имеют ни одного попадания в первичншй хеш-таблице, или для затравок с множественными попаданиями в первичной хеш-таблице. Например, сравнение одной затравки в другой может дать несколько возможных результатов. В одном случае, может иметь место отсутствие попаданий например, отсутствие совпадений между двумя последовательностями, что указывает на возможную ошибку или отклонение, например, затравки рида от субъекта в сравнении с затравкой, полученной из референсного генома. Либо может быть найдено одно или множество совпадений. Однако обнаружение большого количество совпадений может создать проблему.[00221] Another way to minimize the problems inherent in short or long reads is to use a secondary hash table in parallel or in conjunction with the first, for example, a primary hash table. For example, the second hash table and/or hash function can be used for seeds that do not have a single hit in the primary hash table, or for seeds with multiple hits in the primary hash table. For example, comparing one seed to another may produce several possible results. In one case, there may be a lack of hits, for example, a lack of matches between two sequences, indicating a possible error or deviation, for example, of a read seed from a subject compared to a seed derived from a reference genome. Either one or many matches may be found. However, finding a large number of matches can create a problem.
[00222] Например, в отношении первичной хеш-таблицы, если каждая затравка в хешируемой референсной последовательности появляется лишь небольшое число раз, например, один, два или три раза и т.д., то может не быть необходимости во вторичной хеш-таблице и/или функции хеширования. Однако, если одна или более затравок появляются большее число раз, например, 5, 10, 15, 20, 25, 50, 100, 1,000 или более раз, это может быть проблематично. Например, известны области генома человека, для которых с математической значимостью было определено, что они повторяются множество раз. Соответственно, картирование любой затравке на одно из этих положений по существу может автоматически картироваться на множество этих положений, как в случае, когда затравка содержит нуклеотиды перекрывающихся последовательностей. В таком варианте определить, с каким из всех возможных вариантов выравнивается эта затравка, может быть затруднительно. Однако, поскольку эти повторяющиеся области известны и/или когда они станут известны, любая затравка любую затравку, обычно картирующуюся на одну или более из этих областей, можно выделить и распределить во вторичную хеш-таблицу для обработки первой или вторичной функцией хеширования, что, соответственно, позволяет не тратить зря время и вычислительные мощности на попытки использования первичной функции хеширования для определения того, что с большой вероятностью определить нельзя.[00222] For example, with respect to a primary hash table, if each seed in the hashed reference sequence appears only a small number of times, such as once, twice or three times, etc., then there may be no need for a secondary hash table and /or hashing functions. However, if one or more seeds appear a greater number of times, for example 5, 10, 15, 20, 25, 50, 100, 1,000 or more times, this may be problematic. For example, there are known regions of the human genome that have been determined with mathematical significance to be repeated many times. Accordingly, mapping any primer to one of these positions can essentially automatically map to a plurality of these positions, as is the case when the primer contains nucleotides of overlapping sequences. In this case, it can be difficult to determine which of all possible variants this primer aligns with. However, as these repeat regions are known and/or when they become known, any seed, any seed typically mapping to one or more of these regions, can be extracted and allocated to a secondary hash table for processing by the first or secondary hashing function, which respectively , allows you to avoid wasting time and computing power trying to use the primary hashing function to determine something that with a high probability cannot be determined.
[00223] Более конкретно, сравнения затравок референсной геномной последовательности с затравками, сгенерированными из ридов генома субъекта, может дать любое число положений совпадений от 1 до сотен или даже тысяч. Тем не менее настоящая система может быть сконфигурирована для работы с некоторым числом повторных совпадений, в том числе без необходимости в дополнительных этапах обработки, как в случае, когда число совпадений меньше примерно 50, или меньше примерно 40, или меньше примерно 30, например, меньше примерно 25 или меньше примерно 20, например, меньше примерно 16 совпадений или меньше примерно 10 или примерно 5 совпадений. Однако, в случае, если число возвращаемых совпадений реальных попаданий превосходит это значение, систему можно сконфигурировать для реализации вторичной функции хеширования, например, с применением вторичной хеш-таблицы.[00223] More specifically, comparisons of reference genomic sequence primers with primers generated from the subject's genome reads can yield any number of match positions from 1 to hundreds or even thousands. However, the present system may be configured to handle a number of repeat matches, including without the need for additional processing steps, such as when the number of matches is less than about 50, or less than about 40, or less than about 30, e.g. about 25 or less than about 20, for example, less than about 16 matches or less than about 10 or about 5 matches. However, in the event that the number of real hit matches returned exceeds this value, the system can be configured to implement a secondary hashing function, for example, using a secondary hash table.
[00224] Соответственно, вместо того, чтобы помещать такие затравки, о которых известно, что они имеют повышенную вероятность избыточности, в первичную хеш-таблицу, такие затравки можно помещать во вторичную хеш-таблицу, или вторичную область в первой хеш-таблице. Дополнительно, в некоторых случаях, запись, которая не несет никакой информации о множественности потенциального размещения на карте для этой затравки, но передает команду на доступ к вторичной хеш-таблице, например, запись о расширении, может быть помещена в первичную хеш-таблицу. Например, запись о расширении может представлять собой инструкцию, например, инструкцию увеличить длину первичной, например, неуникальной или повторяющейся затравки, до более длинной, дающей более уникальную затравку, например, путем добавления к ней одного или более дополнительных соседних оснований, например, на конце (концах) затравки, чтобы превратить ее в более длинную последовательность затравки, которую затем можно хешировать и искать, например, во вторичной таблице.[00224] Accordingly, rather than placing such seeds that are known to have an increased likelihood of redundancy in the primary hash table, such seeds may be placed in a secondary hash table, or a secondary region in the first hash table. Additionally, in some cases, an entry that does not carry any potential mapping multiplicity information for that seed but conveys a command to access a secondary hash table, such as an extension entry, may be placed in the primary hash table. For example, the extension entry may be an instruction, e.g., an instruction to increase the length of a primary, e.g., non-unique or repeating primer, to a longer one producing a more unique primer, e.g., by adding to it one or more additional adjacent bases, e.g., at the end (ends) of the seed to turn it into a longer seed sequence, which can then be hashed and looked up, for example in a secondary table.
[00225] Запись может быть выполнена таким образом, что она информирует или иным образом инструктирует относительно увеличения известной избыточную затравки на заданное количество, а также может содержать инструкции относительно того, где и/или как увеличивать затравку. Например, поскольку хеш-таблицу обычно рассчитывают заранее, например, исходно конструируют из затравок, сгенерированных по референсному геному (геномам), до создания таблице может быть известно, какая из затравок, сгенерированных по референсному геному, вероятно встретиться несколько раз (если такие будут). Соответственно, в различных вариантах, модно заранее определить, какие затравки может быть нужно переместить во вторичную хеш-таблицу. Например, при конструировании индекса хеш-таблицы, характеристики последовательностей референсных заявок, помещаемых в хеш-таблицу в виде индекса, известны, поэтому для каждой затравки можно определить, есть ли вероятность того, что она породит множество попаданий, например, от 10 до 10000 попаданий.[00225] The recording may be configured to inform or otherwise instruct about increasing a known excess seed by a predetermined amount, and may also contain instructions as to where and/or how to increase the seed. For example, since a hash table is usually calculated in advance, e.g., initially constructed from seeds generated from the reference genome(s), the table may know before creation which of the seeds generated from the reference genome are likely to occur multiple times (if any). . Accordingly, in various embodiments, it is possible to determine in advance which seeds may need to be moved to the secondary hash table. For example, when constructing a hash table index, the characteristics of the sequences of reference requests placed in the hash table as an index are known, so for each seed it can be determined whether it is likely to generate many hits, for example, from 10 to 10,000 hits .
[00226] Более конкретно, в различных вариантах, может быть реализован алгоритм для определения предсказанных совпадений данной затравки, поученной из референсных ридов и/или ридов субъекта. Если определяется, что для какой-либо конкретной затравки есть вероятность возвращения множества совпадений, может быть сгенерирован флаг, например, запись, например, в ячейке хеш-таблицы, указывающий на то, что эта конкретная заявка характеризуется высокой частотой попаданий. В таком варианте запись может также содержать инструкции на пропускание хеширования этой затравки и затравок, подобных ей, поскольку непрактично осуществлять определенное число, например, 20-10000 или более оценок такой затравки, необходимое для точного определения мета ее картирования. В таком варианте первичная хеш-функция может быть неспособна точно определить, какое положение их всех возможных положений, с которыми может совпасть эта затравка, является тем самым, с которым рид на самом деле выравнивается, и соответственно, для практических целей, поскольку такую затравку невозможно точно картировать на этом этапе, первичная хеш-функция вряд ли вернет полезный результат, такой как результат, точно указывающий, какому месту генома на самом деле соответствует эта затравка.[00226] More specifically, in various embodiments, an algorithm may be implemented to determine predicted matches of a given seed learned from reference reads and/or subject reads. If it is determined that any particular seed is likely to return many hits, a flag may be generated, such as an entry in, for example, a hash table cell, indicating that that particular seed has a high hit rate. In such an embodiment, the entry may also contain instructions to skip hashing of this seed and seeds like it, since it is impractical to carry out the specific number, for example 20-10,000 or more evaluations of such a seed necessary to accurately determine its meta-mapping. In such an embodiment, the primary hash function may be unable to accurately determine which position of all possible positions that this seed may match is the one to which the read actually aligns, and accordingly, for practical purposes, such a seed is not possible map accurately at this stage, the prime hash function is unlikely to return a useful result, such as a result indicating exactly where in the genome this seed actually corresponds.
[00227] В таком варианте алгоритм функции хеширования может быть сконфигурирован для вычисления действий, необходимых для того, чтобы сделать избыточную затравку более уникальной. Например, вторичная хеш-функция может определять, насколько необходимо удлинить затравку, и в каком порядке, и в каком положении, чтобы гарантировать, что затравка перестанет быть избыточной, а приобретет степень уникальности, подходящую для хеширования. Соответственно, запись также может включать инструкции по удлинения избыточной затравки (т.е. затравки, представленной в избыточном количестве), например, на два, на четыре, на шесть и т.д., но одном или на обоих концах затравки для получения заранее определенного уровня уникальности. Таким образом. Таким образом, затравки которые сначала казались идентичными, могут определяться как неидентичные.[00227] In such an embodiment, the hashing function algorithm may be configured to compute the actions necessary to make the redundant seed more unique. For example, a secondary hash function can determine how much the seed needs to be extended, and in what order and position, to ensure that the seed is no longer redundant, but rather has a degree of uniqueness suitable for hashing. Accordingly, the entry may also include instructions to extend an excess seed (i.e., a seed present in excess), for example, by two, by four, by six, etc., but at one or both ends of the seed to obtain in advance a certain level of uniqueness. Thus. Thus, primers that initially appeared identical may be determined to be nonidentical.
[00228] Например, в некоторых случаях, типичная запись может содержать инструкции на то, что дублирующуюся затравку следует удлинить на до X нечетных или четных оснований, но, в некоторых случаях, удлинить на четное число оснований, например от примерно 2 до 4, до примерно от 8 до 16, до примерно или примерно 64 или более оснований, например, на одинаковое число оснований с каждой стороны. Например, в тех случаях удлинения на до 64 оснований, запись может содержать инструкции на добавление 32 оснований с каждой стороны затравки. Число оснований, на которое удлиняют затравку, можно менять, и оно может представлять собой любое подходящее число в зависимости от конструкции системы. В некоторых вариантах можно применять вторичную функцию хеширования для определения, не сколько оснований нужно удлинить затравку, чтобы получить более разумное число совпадений. Соответственно, удлинение может быть точной относительной уникальности, как в случае, когда имеется только 1, 2, 3, или даже до 16, или 25, или 50 положений совпадения для этого паттерна. В различных вариантах, одинаковое удлинение обоих концов затравки может быть полезно для того, чтобы избежать проблемы с обратными ридами, но в различных вариантах затравку можно удлинять на одно или большее, неодинаковое число оснований с обеих сторон.[00228] For example, in some cases, a typical notation may include instructions that the duplicate primer should be extended by up to X odd or even bases, but, in some cases, extended by an even number of bases, such as from about 2 to 4, to from about 8 to 16, to about or about 64 or more bases, for example, an equal number of bases on each side. For example, in cases of extension of up to 64 bases, the entry may contain instructions to add 32 bases to each side of the primer. The number of bases by which the primer is extended can be varied and may be any suitable number depending on the design of the system. In some embodiments, a secondary hashing function can be used to determine how many bases to extend the primer to obtain a more reasonable number of matches. Accordingly, the extension may be of precise relative uniqueness, as in the case where there are only 1, 2, 3, or even up to 16, or 25, or 50 match positions for this pattern. In various embodiments, extending both ends of the primer equally may be useful to avoid the problem with reverse reads, but in various embodiments, the primer may be extended by one or more, unequal number of bases on both sides.
[00229] Более конкретно, как в одном примере, если затравка содержит 28 оснований, и запись об удлинении, такая запись об удлинении, расположенная в ячейке первичной хеш-таблицы, заставляет хеш-функцию удлинить затравку, например, на 64 основания, то эта запись может также содержать дополнительные инструкции относительно того как следует удлинять затравку, например, путем добавления 32 оснований с каждой стороны затравки. Тем не менее, удлинение может осуществляться в любом удобном положении рида и может быть симметричным или асимметричным. В некоторых вариантах запись может содержать инструкции для функции хеширования на симметричное удлинение затравки, поскольку в некоторых случаях такое симметричное удлинение может быть более эффективным, как, например, в случае с обратными комплементами, обсуждаемом в настоящем документе. В таком варианте при удлинении к каждой из противоположных сторон затравки будет добавлено одинаковое число оснований. Тем не менее, в других вариантах удлинение может осуществляться путем добавления четного или нечетного числа оснований несимметричным образом, и, соответственно, операция удлинения не обязательно будет удлинять затравку на одинаковое число оснований с каждой стороны. Обычно первичная хеш-таблица сконфигурирована таким образом, что она не полностью заполнена. Например, желательно задействовать не более 80% или 90% ее емкости. Это необходимо для высокой эффективности скорости поиска. В случае, когда имеет место большое количество коллизий при хешировании затравок в одно и то же место при создании таблицы, механизм сортировки создаст цепочку ссылок на другие положения, и благодаря этому механизм поиска сможет найти положение, присвоенное перегруженной затравке. Чем плотнее таблица, тем выше число коллизий и тем более длинная цепочка необходима для нахождения фактического совпадения.[00229] More specifically, as in one example, if a seed contains 28 bases, and an extension entry, such extension entry located in a primary hash table cell causes the hash function to extend the seed by, for example, 64 bases, then this the entry may also contain additional instructions on how to extend the primer, for example by adding 32 bases to each side of the primer. However, lengthening can be done in any convenient read position and can be symmetrical or asymmetrical. In some embodiments, the entry may contain instructions to the hashing function to symmetrically extend the primer, since in some cases such symmetrical extension may be more efficient, such as in the case of reverse complements discussed herein. In this embodiment, during extension, the same number of bases will be added to each of the opposite sides of the seed. However, in other embodiments, extension may be accomplished by adding an even or odd number of bases in an asymmetrical manner, and accordingly, the extension operation will not necessarily extend the seed by the same number of bases on each side. Typically the primary hash table is configured in such a way that it is not completely full. For example, it is advisable to use no more than 80% or 90% of its capacity. This is necessary for high search speed efficiency. In the case where there are a large number of collisions when hashing seeds into the same place when creating a table, the sorting engine will create a chain of references to other positions, and thanks to this, the search engine will be able to find the position assigned to the overloaded seed. The denser the table, the higher the number of collisions and the longer the chain required to find an actual match.
[00230] В различных вариантах, как в случае, когда исходная, избыточная затравка, имеет длину 28 оснований, запись передает инструкцию удлинить ее, например, на с от 18 до 32 до 64 оснований, например, на каждой из противоположных сторон затравки, цифровое представление затравки, цифровое представление затравки может составлять примерно 64 оснований × 2 бита на основание = 128 бит. Соответственно, в зависимости от выполнения модуля картирования, этот размер может быть слишком большим для обработки в первичной хеш-таблице. Соответственно, в некоторых вариантах для того, чтобы справится с потребностью в такой экстенсивной обработке, в некоторых вариантах реализации модуль вторичного хеширования может быть сконфигурирован для хранения информации, связанной с затравками большего размера. Поскольку число затравок, требующих удлинения, представляет собой некоторую долю общего числа затравок, вторичная хеш-таблица может быть меньше, чем первичная хеш-таблица. Однако в других вариантах, например, для уменьшения потребности в вычислениях модуля, например, для экономии битов, известные избыточные части последовательности, например, первичной последовательности, можно заменить заранее выбранными переменными, например, заранее определенной длиной последовательности. В таком варианте, поскольку избыточная последовательность уже известна и идентифицирована, нет необходимости в том, чтобы полностью представлять ее в цифровом виде. Вместо этого, в различных вариантах, все, что нужно сделать - это заменить известную, избыточную последовательность известной вариабельной последовательностью, а все, что на практике нужно искать - это удлиненные части, например, хвосты, которые были добавлен с одной из сторон последовательности, поскольку они являются единственными неизбыточными и новыми частями исходной последовательностями. Соответственно, в некоторых вариантах первичную последовательность можно заменить более коротким кодом-идентификатором (таким как 24-битный прокси вместо 56-битного представления), а затем к прокси можно добавить основания удлинения, например 36-битное расширение (например, с получением 60 битов), которое затем можно поместить в запись расширения первичной таблицы. Таким образом, сложности, связанные со слишком короткими и/или слишком длинными ридами, можно минимизировать и получить преимущество, заключающееся в том, что нужно поддерживать только один или небольшое число ридов в хеш-таблице.[00230] In various embodiments, such as when the original, redundant seed is 28 bases long, the record transmits an instruction to extend it, for example, from 18 to 32 to 64 bases, for example, on each of the opposite sides of the seed, digital seed representation, the digital representation of the seed can be approximately 64 bases × 2 bits per base = 128 bits. Accordingly, depending on the implementation of the mapping module, this size may be too large to handle in the primary hash table. Accordingly, in some embodiments, in order to cope with the need for such extensive processing, in some embodiments, the secondary hashing module may be configured to store information associated with larger size seeds. Since the number of seeds requiring extension is a fraction of the total number of seeds, the secondary hash table may be smaller than the primary hash table. However, in other embodiments, eg to reduce the need for modulus calculations, eg to save bits, known redundant portions of a sequence, eg a primary sequence, can be replaced by pre-selected variables, eg a predetermined sequence length. In this embodiment, since the redundant sequence is already known and identified, there is no need to fully represent it digitally. Instead, in various embodiments, all one has to do is replace the known, redundant sequence with a known variable sequence, and all one actually looks for is extended portions, such as tails, that have been added to one side of the sequence because they are the only non-redundant and new parts of the original sequences. Accordingly, in some embodiments, the primary sequence can be replaced with a shorter identifier code (such as a 24-bit proxy instead of a 56-bit representation), and then extension bases can be added to the proxy, such as a 36-bit extension (for example, making 60 bits) , which can then be placed in the primary table extension record. In this way, the complexity associated with reads that are too short and/or too long can be minimized and the advantage of only needing to maintain one or a small number of reads in the hash table can be achieved.
[00231] Как указано выше, описанную выше хеш-функцию можно реализовать в программном обеспечении и/или аппаратном обеспечении. Преимущество реализации модуля хеширования в аппаратной части заключается в возможности ускорения процессов и, соответственно их значительно более быстрого осуществления. Например, в тех случаях, когда программное обеспечение может включать различные инструкции на выполнение одной или более из различных функций, реализация таких инструкций часто требует хранения и/или вызова, и/или интерпретации данных и инструкций, например, перед исполнением. Однако, как отмечено выше и описано более подробно в настоящем документе, чип можно аппаратно смонтировать для выполнения этих функций без необходимости в вызове, интерпретации и/или осуществлении одной или более из последовательности инструкций. Вместо этого чип может быть выполнен (смонтирован) с возможностью прямого выполнения таких функций. Соответственно, в различных аспектах настоящее изобретение относится к специальному смонтированному устройству, которое может быть сконфигурировано так, что часть или весь описанный выше модуль хеширования может быть реализован одной или более сетевыми схемами, такими как интегральные схемы, смонтированные на чипе, например, FPGA, ASIC или структурированный ASIC.[00231] As stated above, the hash function described above may be implemented in software and/or hardware. The advantage of implementing a hashing module in hardware is the ability to speed up processes and, accordingly, carry them out much faster. For example, in cases where software may include various instructions for performing one or more of various functions, implementation of such instructions often requires storing and/or recalling and/or interpreting data and instructions, for example, before execution. However, as noted above and described in more detail herein, the chip can be hardware-wired to perform these functions without the need to invoke, interpret and/or implement one or more of the sequence of instructions. Instead, the chip may be configured (mounted) to directly perform such functions. Accordingly, in various aspects, the present invention relates to a special-purpose mounted device that can be configured such that part or all of the hashing module described above can be implemented by one or more network circuits, such as on-chip integrated circuits, e.g., FPGA, ASIC or structured ASIC.
[00232] Например, в различных вариантах, индекс хеш-таблицы может быть создан и хеш-функция может выполняться на чипе, а в других вариантах индекс хеш-таблицы генерируется вне чипа, например, программным обеспечением, запускаемым на основном процессоре, но после генерации его загружают на чип и используют так, например, в процессе работы модуля хеширования. В некоторых вариантах чип может иметь любое подходящее число гигабайт, такое как 8 гигабайт, такое как 16 гигабайт, такое как 32 гигабайт, такое как 64 гигабайт, например, примерно 128 гигабайт. В различных вариантах, чип может быть сконфигурирован так, чтобы различные процессы модуля хеширования выполнялись с использованием только части или всех ресурсов памяти. Например, в тех случаях, когда можно построить обычный референсный геном, большую часть памяти можно отдать под хранение хеш-индекса референса, и/или для хранения ридов, и/или для того, чтобы зарезервировать место для других используемых функциональных модулей, как в случае, когда 16 гигабайт выделено под хранение ридов, 8 гигабайт может быть выделено под хранение хеш-индекса, а еще 8 гигабайт может быть выделено под другие функции обработки. В другом примере, если 32 гигабайт выделено под хранение ридов, 26 гигабайт можно выделить под хранение первичной хеш-таблицы, 2.5 гигабайт можно выделить под хранение вторичной таблицы, а 1.5 гигабайт можно выделить для хранения референсного генома.[00232] For example, in various embodiments, a hash table index may be created and the hash function executed on the chip, and in other embodiments, the hash table index is generated off-chip, such as by software running on the host processor, but after generation it is loaded onto the chip and used, for example, during the operation of the hashing module. In some embodiments, the chip may have any suitable number of gigabytes, such as 8 gigabytes, such as 16 gigabytes, such as 32 gigabytes, such as 64 gigabytes, such as about 128 gigabytes. In various embodiments, the chip may be configured to perform various hashing module processes using only a portion or all of the memory resources. For example, in cases where a regular reference genome can be constructed, most of the memory can be devoted to storing the hash index of the reference, and/or for storing reads, and/or in order to reserve space for other functional modules used, as in the case , when 16 gigabytes are allocated for storing reads, 8 gigabytes can be allocated for hash index storage, and another 8 gigabytes can be allocated for other processing functions. In another example, if 32 gigabytes are allocated for storing reads, 26 gigabytes can be allocated for storing the primary hash table, 2.5 gigabytes can be allocated for storing the secondary table, and 1.5 gigabytes can be allocated for storing the reference genome.
[00233] В некоторых вариантах реализации вторичная хеш-таблица может быть сконструирована таким образом, что ее цифровое представление будет больше, чем первичная хэш-таблица. Например, в различных вариантах первичная хэш-таблица может быть сконфигурирована для хранения хэш-записей по 8 байт каждая, по 8 записей на контейнер хеша, что суммарно дает 64 байта на контейнер, а вторичная хеш-таблица может быть сконфигурирована для хранения 16 хеш-записей, что суммарно дает 128 байт на контейнер. Для каждой хеш-записи, содержащей избыточные биты хеша, те же биты хеш-ключа, возвращаются положения возможных совпадений в референсном геноме. Соответственно, для первичной хеш-таблицы, может определяться до 8 положений. Для вторичной хеш-таблицы может определяться до 16 положений.[00233] In some implementations, the secondary hash table may be constructed such that its digital representation is larger than the primary hash table. For example, in various embodiments, the primary hash table may be configured to store hash entries of 8 bytes each, 8 entries per hash container, for a total of 64 bytes per container, and the secondary hash table may be configured to store 16 hashes. records, which gives a total of 128 bytes per container. For each hash entry containing redundant hash bits, the same hash key bits, the positions of possible matches in the reference genome are returned. Accordingly, for the primary hash table, up to 8 positions can be defined. Up to 16 positions can be defined for a secondary hash table.
[00234] В не зависимости от того, выполнена реализация аппаратно или программно, может быть полезно структурировать хеш-таблицу так, чтобы избежать коллизий. Например, может присутствовать множество затравок, которые из-за различных артефактов системы, будут стремиться встроиться в хеш-таблицу в том же месте, вне зависимости от того, имеет ли место совпадение или нет. Часто, коллизий можно частично избежать за счет структурирования хеш-таблицы. Соответственно, в различных вариантах хеш-таблица может быть структурирована так, чтобы исключить коллизии, и соответственно, может быть сконфигурирована таким образом, чтобы включать один или более виртуальных хеш-контейнеров.[00234] Whether implemented in hardware or software, it may be useful to structure the hash table to avoid collisions. For example, there may be multiple seeds that, due to various system artifacts, will tend to insert themselves into the hash table at the same location, regardless of whether there is a match or not. Often, collisions can be partially avoided by structuring the hash table. Accordingly, in various embodiments, the hash table may be structured to avoid collisions, and accordingly, may be configured to include one or more virtual hash containers.
[00235] В различных вариантах, хеш-таблица может быть структуру с представлением в 8-байтном, 16-байтном, 32-байтном, 64-байтном, 128-байтном формате и т.п. Но в различных примерах реализации может быть полезно представить хеш-таблицу в 64-байтном формате. Это может быть полезно, например, в тех случаях, когда хеш-функция будет использовать доступ к памяти, такой как DRAM (динамическое ОЗУ), например, в стандартном форм-факторе DIMM или SODIMM, как в случае, когда минимальный размер пакета обычно составляет 64 байта. В таком варианте дизайн процессора для доступа к данному запоминающему устройству будет таким, что число байтов, необходимое для образования контейнера в хеш-таблице, также равно 64, и, соответственно, можно реализовать максимальную эффективность. Тем не менее, если таблица структурирована в 32-байтном формате, этого будет недостаточно, поскольку примерно половина байтов, доставляемых в пакете, будет содержать информацию, которая не нужна процессору. Это снизит степень эффективности доставки байтов вполовину. И наоборот, если число байтов, используемое для образования контейнера в хеш-таблице, в несколько раз превышает минимальный размер пакета, например, равно 128, эффективность не будет страдать, поскольку процессору действительно нужно вся информация, возвращаемая при одном обращении. Соответственно, в случаях, когда оптимальный размер пакета доступа к памяти, имеет определенный размер, например, 64 байта, хеш-таблица может быть сконструирована таким образом, чтобы оптимизировать использование размера пакета, как в случае, когда количество байтов, выделенных для представления сегментов в хеш-таблице, обрабатываются функцией картирования, например, 64 байта, совпадает с размером пакета памяти. Соответственно, когда пропускная способность памяти является ограничивающим фактором, хеш-таблицу можно структурировать для оптимального использования этих ограничений.[00235] In various embodiments, a hash table can be a structure with a representation in 8-byte, 16-byte, 32-byte, 64-byte, 128-byte, or the like. But in various implementation examples, it may be useful to represent the hash table in a 64-byte format. This can be useful, for example, in cases where the hash function will be accessing memory such as DRAM (Dynamic Random Access Memory), such as in a standard DIMM or SODIMM form factor, as is the case where the minimum packet size is typically 64 bytes. In this embodiment, the processor design for accessing this storage device will be such that the number of bytes required to form a container in the hash table is also 64, and accordingly, maximum efficiency can be realized. However, if the table is structured in a 32-byte format, this will not be sufficient, since approximately half of the bytes delivered in the packet will contain information that the processor does not need. This will reduce the efficiency of byte delivery by half. Conversely, if the number of bytes used to form a container in the hash table is several times the minimum packet size, such as 128, efficiency will not suffer since the processor actually needs all the information returned in a single access. Accordingly, in cases where the optimal size of a memory access burst is a certain size, such as 64 bytes, the hash table can be designed to optimize the use of burst size, as is the case when the number of bytes allocated to represent segments in hash table, processed by the mapping function, for example, 64 bytes, the same as the size of the memory packet. Accordingly, when memory bandwidth is a limiting factor, the hash table can be structured to make optimal use of these limitations.
[00236] Далее, отмечается также, что хотя запись можно уместить в 8 байт, хеш-функцию можно сконструировать таким образом, чтобы не было так, что 8 байт из таблицы считываются для обработки одной записи, поскольку это может быть неэффективно. Вместо этого можно прочитывать все 8 записей в контейнере, можно читать одновременно, или их часть. Это может быть полезно для оптимизации скорости обработки системы, поскольку, с учетом описанной выше архитектуры, на обработку всех 8 записей уйдет столько же времени, сколько на обработку всего лишь 1 записи. Соответственно, в некоторых вариантах модуль картирования может включать хеш-таблицу, которая сама может включать несколько подразделов, например, виртуальных разделов или контейнеров, где каждый контейнер может иметь 1 или более слотов, например, 8 слотов, таким образом, что в него можно поместить одну или более записей, чтобы контролировать коллизии. Тем не менее в некоторых условиях указанные один или более контейнеров, могут полностью заполняться записями, поэтому может быть предложено средство для сортировки дополнительных записей в другие контейнеры и записи информации в исходный контейнер, указывающей на то, что механизм поиска в хеш-таблице должен искать дальше для обнаружения совпадения.[00236] Further, it is also noted that although a record can fit into 8 bytes, the hash function can be designed so that 8 bytes are not read from the table to process a single record, as this may be inefficient. Instead, you can read all 8 records in the container, you can read them simultaneously, or part of them. This can be useful for optimizing the processing speed of the system, since, given the architecture described above, it will take the same amount of time to process all 8 records as it would to process just 1 record. Accordingly, in some embodiments, the mapping module may include a hash table, which may itself include multiple subpartitions, such as virtual partitions or containers, where each container may have 1 or more slots, such as 8 slots, such that it can accommodate one or more entries to check for collisions. However, under some conditions, specified one or more containers may become completely full of entries, so a means may be provided to sort additional entries into other containers and write information to the original container indicating what the hash table lookup mechanism should look for next. to detect a match.
[00237] Соответственно, в некоторых случаях также может быть полезно применять один или более дополнительных способов, например, для контроля коллизий, и один из таких способов может включать одно или более из линейного зондирования и/или формирования хеш-цепочки. Например, если не известно, что точно ищут в хеш-таблице или ее порции, например, в одном контейнере хеш-таблицы, и конкретный контейнер полон то функция поиска в хеше может быть сконфигурирована таким образом, что если один контейнер, и при поиске в нем не обнаруживается нужная запись, то функция может быть направлена в следующий контейнер, например, +1 контейнер, и этот контейнер может быть в свою очередь проверен. Таким образом, при поиске конкретной записи можно проверить все контейнеры. Соответственно, такой поиск можно осуществлять, просматривая один контейнер за другим, до тех пор пока не станет понятно, что запись не найдется, как в случае, когда обнаруживается пустой слот в по меньшей мере одном из контейнеров. В частности, если каждый контейнер заполняется последовательно и поиск по каждому контейнеру проводиться по очереди в соответствии с порядком заполнения, то если находится пустой слот, как в случае, последовательной проверки контейнеров в поиске конкретной записи, пустой слот может указывать на то, что такой записи не существует, поскольку если бы она существовала, она должна была бы быть помещена в этот пустой слот, если не в предыдущие контейнеры.[00237] Accordingly, in some cases it may also be useful to employ one or more additional methods, for example, for collision monitoring, and one such method may include one or more of linear probing and/or hash chaining. For example, if it is not known what exactly is being searched for in a hash table or portion thereof, such as in one container of the hash table, and a particular container is full, then the hash search function can be configured such that if one container, and when searching in If the required entry is not found, the function can be directed to the next container, for example, +1 container, and this container can in turn be checked. This way, when searching for a specific entry, all containers can be checked. Accordingly, such a search can be performed by looking through one container after another until it becomes clear that the entry is not found, such as when an empty slot is detected in at least one of the containers. In particular, if each container is filled sequentially and each container is searched in turn according to the order in which it was filled, then if an empty slot is found, as in the case of sequentially checking containers for a particular record, the empty slot may indicate that such record does not exist, because if it existed, it would have to be placed in this empty slot, if not in the previous containers.
[00238] Более конкретно, в тех случаях, когда 64 байта выделяются для хранения в хеш-контейнере, где хранится 8 записей, после получения вызванного контейнера процессор картирования может работать со всеми 8 записями одновременно для определения, какие из них совпадают, а какие нет. Например, при осуществлении поиска, такого как поиск затравки из рида, полученного из секвенированной ДНК из образца, относительно затравки, сгенерированной из референсного генома, цифровое представление затравки можно сравнивать с затравками во всех, например, 8, записях для поиска совпадения. Это может привести к нескольким результатам. Может быть найдено прямое совпадение. Затравка образца может быть помещена в хеш-таблица и, в некоторых случаях, совпадение не будет найдено, например, из-за того, что она не является полностью идентичной ни одной соответствующей затравке в референсе, например, из-за аппаратной ошибки или ошибки секвенирования в отношении затравки или рида, из которого она была сгенерирована, или из-за того, что генетическая последовательность этого лица отличается от референсного генома. Или затравка может быть помещена в хеш-таблицу и может быть возвращено множество совпадений, как в случаях, когда затравка образца совпадает с 2, 3, 5, 10, 15, 20 или большим числом мест в таблице. В таком варианте может быть возвращено несколько записей, и все они показывают на различные и разные места в референсном геноме, с которыми совпадает данная конкретная затравка, записи для этих совпадений могут находиться либо в том же контейнере, либо можно произвести зондирование множества контейнеров, в результате чего будут возвращены все значимые результаты, например, совпадения.[00238] More specifically, in cases where 64 bytes are allocated for storage in a hash container where 8 entries are stored, after receiving the invoked container, the mapping processor can work with all 8 entries simultaneously to determine which ones match and which do not . For example, when performing a search, such as searching a primer from a read obtained from sequenced DNA from a sample against a primer generated from a reference genome, the digital representation of the primer can be compared to the primers in all, for example, 8, records to find a match. This can lead to several results. A direct match may be found. A sample primer may be placed in a hash table and, in some cases, a match will not be found, for example because it is not exactly identical to any corresponding primer in the reference, for example due to a hardware error or sequencing error in relation to the seed or read from which it was generated, or because the genetic sequence of that individual differs from the reference genome. Or the seed may be placed in a hash table and multiple matches may be returned, as in cases where the pattern seed matches 2, 3, 5, 10, 15, 20, or more places in the table. In this embodiment, multiple entries can be returned, all pointing to different and distinct locations in the reference genome that this particular primer matches, the entries for these matches can either be in the same container, or multiple containers can be probed, resulting in which will return all meaningful results, such as matches.
[00239] В некоторых вариантах, как в случае, когда, возможно, место становится ограниченным фактором в хеш-таблице, например, в контейнерах хеш-таблицы контейнеры, можно реализовать дополнительный механизм для разрешения коллизий и/или экономии места. Например, когда место ограничено, например, когда необходимо хранить более 8 записей в контейнере, или если когда это желательно, можно выполнить создания цепочки хеширования. Создание хеш-цепочки может включать, например, замену записи, содержащей конкретное положение в геномной последовательности, записью с указателем цепочки, которая вместо того, чтобы указывать на положение в геноме, указывает на некоторый другой адрес, например, второй контейнер в текущей хеш-таблице, например, первичной хеш-таблице или вторичной хеш-таблице. Преимуществом этого способа перед методом линейного зондирования является то, что он дает механизму поиска в хеше прямой доступ к контейнеру, содержащему нежную запись, вместо последовательной проверки контейнеров по порядку.[00239] In some embodiments, as is the case where perhaps space becomes a limiting factor in a hash table, such as in hash table containers, an additional mechanism can be implemented to resolve collisions and/or save space. For example, when space is limited, such as when there is a need to store more than 8 records in a container, or when desired, hash chain creations can be performed. Creating a hash chain may involve, for example, replacing an entry containing a particular position in the genomic sequence with a chain pointer entry that, instead of pointing to a position in the genome, points to some other address, such as the second container in the current hash table , for example, a primary hash table or a secondary hash table. The advantage of this method over the linear probing method is that it gives the hash search engine direct access to the container containing the tender entry, instead of sequentially checking the containers in order.
[00240] Такой способ может быть полезен для определенной архитектуры системы. Например, хешируемые первичные затравки, как в случае первичного поиска, размещаются в определенном положении в таблице, например, в их исходном положении (позиции), а при сцеплении эти затравки помещают в положение, которое может отличаться от их исходного контейнера. Соответственно, как указано выше, первую часть затравки в цифровом представлении, например, от примерно 26 до примерно 29 бит, можно хешировать и можно искать на первом этапе. На втором этапе можно ввести в хеш-таблицу оставшиеся от примерно 27 до примерно 30 бит, например, как в цепочке хеширования, в качестве средства проверки первого прогона. Соответственно, для любой затравки ее исходный адрес можно хешировать на первом этапе, а биты вторичного адреса можно использовать на втором, проверочном этапе. Соответственно, первая порция затравок может быть помещена в первичное положение записи, а вторая часть может быть помещена в таблицу во вторичном положении записи. И, как указано выше, в различных вариантах, эти два разных положения записи могут быть расположены раздельно, как в формате сцепленной записи. Соответственно, в любом конечном контейнере сцепления сцепленный формат записи может позиционно разделять элементы/записи, которые предназначены для доступа и зондирования локальных первичных контейнеров, и записи, предназначенные для сцепления.[00240] This method may be useful for certain system architectures. For example, hashable primary seeds, as in the case of a primary lookup, are placed at a specific position in the table, such as their original position, and when chained, these seeds are placed in a position that may be different from their original container. Accordingly, as stated above, the first portion of the seed in digital representation, for example, from about 26 to about 29 bits, can be hashed and searched in the first stage. In a second step, the remaining from about 27 to about 30 bits can be entered into the hash table, for example, as in a hash chain, as a means of checking the first pass. Accordingly, for any seed, its source address can be hashed in the first stage, and the secondary address bits can be used in the second, verification stage. Accordingly, the first portion of seeds may be placed in the primary entry position, and the second portion may be placed in the table at the secondary entry position. And, as stated above, in various embodiments, these two different recording positions may be arranged separately, as in a concatenated recording format. Accordingly, in any final chaining container, the chained record format may positionally separate elements/records that are intended to be accessed and probed by local primary containers, and records that are intended to be chained.
[00241] Такие цепочки хеширования можно продолжать до различных значений длины. Преимущество такого сцепления заключается в том, что в случае, когда один или более контейнеров включают одну или более, например, 2, 3, 4, 5, 6 или боле пустых слотов для записей, эти пустые слоты для записей можно применять для хранения данных цепочек хеширования. Соответственно, в некоторых вариантах сцепление хеша может включать начало с пустого слота в одном контейнере и сцепление этого слота с другим слотом в другом контейнере, где эти два контейнера могут быть расположены в удаленных положениях в хеш-таблице. Также можно принимать меры, чтобы избежать путаницы между записями, размещаемыми в удаленном контейнере в качестве части цепочки хеширования, и «нативными» записями, которые хешируются непосредственно в тот же контейнер. Как обычно, остальные от примерно 27 до примерно 30 бит вторичного ключа доступа хранятся в записях, размещенных на удалении в сцепленном контейнере, но из-за того, что этот сцепленный контейнер находится на расстоянии от исходного хеш-контейнера, подтверждение этих примерно от 27 до 30 будет не достаточно для того, чтобы гарантировать, что совпадающая хеш-запись соответствует исходной затравке, попавшей в этот контейнер в результате сцепления, в отличие от другой затравки, которая достигает того же контейнера в результате прямого доступа. (например, проверка приблизительно от 27 до 30 может быть полной верификацией, если примерно от 26 до 29 бит, используемых для адресации хеш-таблицы, косвенно проверяются по близости к исходному хеш-контейнеру, к которому осуществляют доступ).[00241] Such hash chains can be extended to various lengths. The advantage of this chaining is that in the case where one or more containers include one or more, for example, 2, 3, 4, 5, 6 or more empty record slots, these empty record slots can be used to store chain data hashing. Accordingly, in some embodiments, hash chaining may include starting with an empty slot in one container and chaining that slot to another slot in another container, where the two containers may be located at distant positions in the hash table. Care can also be taken to avoid confusion between records that are placed in a remote container as part of a hash chain, and "native" records that are hashed directly into the same container. As usual, the remaining about 27 to about 30 bits of the secondary access key are stored in records located remotely in a chained container, but because this chained container is located at a distance from the original hash container, confirming these about 27 to 30 will not be sufficient to guarantee that a matching hash record matches the original seed that reached that container through chaining, as opposed to another seed that reached the same container through direct access. (e.g., a check of about 27 to 30 could be a full verification if about 26 to 29 bits used to address the hash table are indirectly checked for proximity to the original hash container being accessed).
[00242] Для того, чтобы избежать возвращения неправильной хеш-записи без необходимости хранить все хеш-ключи в записях, можно использовать позиционную систему в сцепленном контейнере. Соответственно, сцепленный контейнер должен содержать запись в формате непрерывной цепочки, которая содержит дополнительный указатель цепочки для продолжения цепочки контейнеров в случае необходимости; эта запись продолжения цепочки должна находиться в слоте контейнера после всех “нативных” записей, соответствующих прямому доступу к хешу, и перед всеми удаленными записями, относящимися к цепочки. В ходе обработки запроса перед переходом по какому-либо указателю цепочки, следует игнорировать любые записи, расположенные после записи продолжения цепочки, а после перехода по какому-либо указателю цепочки должна игнорироваться любая запись, возникающая после записи продолжения цепочки.[00242] To avoid returning an incorrect hash entry without having to store all the hash keys in the entries, a positional system can be used in a chained container. Accordingly, the chained container must contain a record in a contiguous chain format that contains an additional chain pointer to continue the chain of containers if necessary; This chain continuation entry must be in the container slot after all native entries corresponding to direct hash access and before all remote entries related to the chain. During query processing, before following any chain pointer, any records occurring after the continuation record should be ignored, and after following any chain pointer, any record occurring after the continuation record should be ignored.
[00243] Например, в случаях, когда контейнеры заполнены приблизительно на 75%-85%, можно просканировать 8 контейнеров и при этом найти лишь 15-25 слотов, подходящих для использования, в то время как хеш, сцепляющий эти слоты, можно найти в 2, или 3, или 4 контейнерах. В таком варианте имеет значение число этапов зондирования или сцепления, необходимое для хранения хеш-записи, поскольку оно влияет на скорость системы. Во время работы, если для нахождения записи необходимо зондирование, может быть необходимо осуществлять многократный доступ для поиска в хеше, например, 64-байтного рида в контейнере, что замедляет систему. Сцепление хеша помогает минимизировать среднее количество доступов, которые приходится выполнять, поскольку в сцепленный контейнер, который может быть выбран из широкой области, обычно можно помещать больший избыток хеш-записей, чем в контейнер зондирования, которые должны строго следовать по порядку. Соответственно, данное число избыточных хеш-записей обычно можно поместить в более короткую последовательность сцепленных контейнеров, чем в обязательно следующие по порядку контейнеры зондирования, что также ограничивает количество операций доступа, необходимых для локализации этих избыточных записей в запросе. Тем не менее зондирование сохраняет ценность для меньших количества избыточных хеш-записей, поскольку зондирование не требует жертвовать контейнерным слотам в указателе цепочки.[00243] For example, in cases where containers are approximately 75%-85% full, it is possible to scan 8 containers and still find only 15-25 slots suitable for use, while the hash concatenating these slots can be found in 2, or 3, or 4 containers. In this case, the number of probing or concatenation rounds required to store the hash record matters because it affects the speed of the system. At runtime, if probing is required to find a record, it may be necessary to perform multiple hash lookups on, say, a 64-byte read in a container, which slows down the system. Hash chaining helps minimize the average number of accesses that have to be performed because a chained container, which can be selected from a wide area, can usually fit a larger excess of hash entries than a probe container, which must follow a strict order. Accordingly, a given number of redundant hash entries can usually be placed into a shorter sequence of concatenated containers than the necessarily sequential probing containers, which also limits the number of accesses required to locate these redundant entries in a query. However, probing retains value for fewer redundant hash entries because probing does not require sacrificing container slots in the chain pointer.
[00244] Например, после того, как было определено, где находятся все возможные совпадения затравок с референсным геномом, необходимо определить, какое из всех этих возможных местоположений, где возможно совпадение данного рида, действительно является правильной позицией, с которой он выровнен. Соответственно, после картирования может быть множество позиций, где один или более ридов предположительно совпадают с референсным геномом. Следовательно, может существовать множество затравок, которые предположительно указывают в точности одно и то же, например, они могут совпадать в точности с одной и той же позицией на референсе, если учитывать позицию затравки в риде.[00244] For example, once it has been determined where all the possible primer matches to the reference genome are, it is necessary to determine which of all those possible locations where a given read could possibly match is actually the correct position to which it is aligned. Accordingly, after mapping, there may be many positions where one or more reads are predicted to match the reference genome. Therefore, there may be multiple primers that purport to indicate exactly the same thing, for example they may match exactly the same position on the reference given the position of the primer in the read.
[00245] Поэтому для каждого данного рида необходимо определить фактическое выравнивание. Это определение можно осуществить несколькими различными способами. В одном случае можно оценить все риды для определения их правильного выравнивания относительно референсного генома на основе позиций, указанных всеми затравками из рида, которые вернули информацию о позиции во время хэшированного поиска. Однако в различных вариантах перед выполнением выравнивания можно выполнить функцию фильтрации затравочной цепочки на одной или более затравок.[00245] Therefore, for any given read, the actual alignment must be determined. This determination can be made in several different ways. In one case, all reads can be evaluated to determine their correct alignment to a reference genome based on the positions indicated by all the seeds from the read that returned position information during the hashed search. However, in various embodiments, it is possible to perform a seed chain filtering function on one or more seeds before performing the alignment.
[00246] Например, в некоторых вариантах затравки, ассоциированные с данным ридом, которые предположительно картируются на на одно и то же общее место в референсном геноме, могут быть агрегированы в одну цепочку, которая ссылается на ту же общую область. Все затравки, ассоциированные с одним ридом, могут быть сгруппированы в одну или более затравочных цепочек, так, чтобы каждая затравка входила только в одну цепочку. Именно такие цепочки затем приводят к выравниванию рида с каждой указанной позицией в референсном геноме. В частности, в различных вариантах все затравки, которые имеют одни и те же подтверждающие данные, указывающие на то, что они принадлежат одним и тем же общим местоположениям в референсе, могут быть собраны вместе для формирования одной или более цепочек. Соответственно, затравки, которые группируются вместе, или по меньшей мере создают впечатление, что они окажутся рядом друг с другом в референсном геноме, например, в пределах определенной полосы, будут сгруппированы в цепочку затравок, а затравки за пределами указанной полосы будут превращены в другую цепочку затравок.[00246] For example, in some embodiments, primers associated with a given read that are believed to map to the same general location in the reference genome can be aggregated into a single strand that references the same general region. All seeds associated with a single read can be grouped into one or more seed chains, such that each seed is included in only one chain. It is these chains that then lead to read alignment with each specified position in the reference genome. Specifically, in various embodiments, all seeds that have the same supporting data indicating that they belong to the same general locations in the reference can be collected together to form one or more chains. Accordingly, primers that cluster together, or at least give the impression that they will be near each other in the reference genome, for example, within a certain band, will be grouped into a chain of primers, and primers outside the specified band will be converted into another chain seed
[00247] После того как эти различные затравки агрегированы в одну или более различных затравочных цепочек, можно определить, какая из цепочек действительно представляет правильную цепочку, подлежащую выравниванию. Это можно осуществить, по меньшей мере отчасти, с помощью алгоритма фильтрации, который представляет собой эвристический алгоритм, разработанный для устранения слабых затравочных цепочек, с большой вероятностью не являющихся верными. Обычно более длинные затравочные цепочки, применительно к длине, охваченной ридом, с большей вероятностью являются правильными; также затравочные цепочки, куда входит большее число затравок, с большей вероятностью являются правильными. Согласно одному примеру может быть использован эвристический алгоритм, согласно которому относительно сильная «вышестоящая» затравочная цепочка, например, длинная или содержащая много затравок, отфильтровывает относительно слабую «нижестоящую» затравочную цепочку, например, короткую или содержащую малое число затравок.[00247] Once these different seeds are aggregated into one or more different seed strands, it can be determined which strand actually represents the correct strand to be aligned. This can be accomplished, at least in part, by using a filtering algorithm, which is a heuristic algorithm designed to eliminate weak seeds that have a high probability of not being true. In general, longer seed chains, relative to the length covered by the read, are more likely to be correct; Also, seed chains that include a larger number of seeds are more likely to be correct. In one example, a heuristic algorithm may be used whereby a relatively strong "upstream" seed chain, such as one that is long or contains many seeds, filters out a relatively weak "downstream" seed chain, such as one that is short or contains a small number of seeds.
[00248] В одном варианте реализации длина нижестоящей цепочки определяет пороговую длину, например, двукратную, так, чтобы ее могла отфильтровать вышестоящая цепочка, имеющая по меньшей мере указанную пороговую длину. В другом варианте число затравок в нижестоящей цепочке определяет пороговое число затравок, например, пятикратно большее число затравок, так, чтобы ее могла отфильтровать вышестоящая цепочка, содержащая по меньшей мере указанное пороговое число затравок. В другом варианте длина нижестоящей цепочки определяет пороговое число затравок, например, результат вычитания из двукратно большего числа затравок длины затравок, так, чтобы ее могла отфильтровать вышестоящая цепочка из по меньшей мере порогового числа затравок. В некоторых вариантах, например, если требуется выравнивание химерных ридов, только вышестоящие затравочные цепочки, по существу перекрывающие нижестоящие затравочные цепочки в пределах рида, могут их отфильтровать.[00248] In one embodiment, the length of the downstream chain defines a threshold length, for example, two times, so that it can be filtered by an upstream chain having at least the specified threshold length. In another embodiment, the number of seeds in the downstream chain defines a threshold number of seeds, for example, five times the number of seeds, so that it can be filtered by an upstream chain containing at least the specified threshold number of seeds. In another embodiment, the length of the downstream chain determines the threshold number of seeds, for example, the result of subtracting the length of the seeds from twice the number of seeds, so that it can be filtered by the upstream chain from at least the threshold number of seeds. In some embodiments, for example, if alignment of chimeric reads is required, only upstream seeds that substantially overlap downstream seeds within the read can filter them out.
[00249] Указанный процесс отсеивает затравки с низкой вероятностью идентификации области референсного генома, где может быть обнаружено высококачественное выравнивание рида. Это, соответственно, может быть полезно, поскольку уменьшает число выравниваний, которые необходимо выполнить для каждого рида, повышая таким образом скорость обработки и обеспечивая экономию времени. Соответственно, указанный процесс может быть использован, отчасти, в качестве характеристики настройки, с помощью которой, если требуется более высокая скорость, например, в высокоскоростном режиме, осуществляют более подробную фильтрацию затравочных цепочек, а если требуется бóльшая общая точность, например, в режиме повышенной точности, осуществляют менее подробную фильтрацию затравочных цепочек, например, оценивают все затравочные цепочки.[00249] This process screens out primers with a low probability of identifying a region of the reference genome where a high-quality read alignment can be found. This can therefore be beneficial because it reduces the number of alignments that need to be performed on each read, thereby increasing processing speed and saving time. Accordingly, this process can be used, in part, as a tuning characteristic that allows more detailed filtering of seed chains if higher speed is required, such as in high-speed mode, and if greater overall accuracy is required, such as in high-speed mode. accuracy, they perform less detailed filtering of seed chains, for example, they evaluate all seed chains.
[00250] В различных вариантах реализации может быть проведено редактирование затравок, например, до этапа фильтрации затравочных цепочек. Например, для каждого рида, если все затравки указанного рида обрабатывают функцией картирования и ни одна из них не возвращает попаданий, может иметь место высокая вероятность одной или более ошибок в риде, например, ошибки секвенатора. В таком случае функция редактирования, например, процесс редактирования с одиночными изменениями, например, процесс редактирования ОНП, может быть выполнена на каждой затравке, например, на затравках, не вернувших совпадений. Например, в позиции X функция редактирования с одиночными изменениями может дать указание заменить означенный нуклеотид на один из 3 других нуклеотидов; определяют, привела ли указанная замена, например, ОНП-замена, к попаданию, например, к совпадению. Указанное редактирование с одиночными изменениями может быть выполнено таким же образом на каждой позиции в затравке и/или на каждой затравке рида, например, с заменой каждого альтернативного основания для каждой позиции в затравке. Кроме того, при введении одиночного изменения в одну затравку эффекты, оказываемые этим изменением на все другие перекрывающие затравки, могут быть определены на основании указанного одиночного изменения.[00250] In various embodiments, editing of the seeds may be carried out, for example, before the step of filtering the seed chains. For example, for each read, if all of the seeds of a given read are processed by the mapping function and none of them return hits, there may be a high probability of one or more errors in the read, such as a sequencer error. In such a case, an editing function, such as a single change editing process, such as a SNP editing process, can be performed on each seed, such as on seeds that did not return a match. For example, at position X, a single edit function might instruct the designated nucleotide to be replaced by one of 3 other nucleotides; determining whether the specified substitution, eg, SNP substitution, resulted in a hit, eg, a match. Said single change editing can be performed in the same manner at each position in the seed and/or at each seed in the read, for example, replacing each alternative base for each position in the seed. In addition, when a single change is introduced into one seed, the effects that change has on all other overlapping seeds can be determined based on the single change.
[00251] Такое редактирование могут также быть выполнено для инсерций, например, когда один из четырех нуклеотидов добавляют в заданную позицию для инсерции, X, и определяют, возникает ли попадание в результате введения указанной замены. Указанное редактирование может быть выполнено для всех четырех нуклеотидов и/или для всех позиций (X, X+1, X+2, X+3 и т.п.) в затравке, и/или для всех затравок в ридах. Такое редактирование может также быть выполнено для делеций, например, когда в затравке делетирован один из четырех нуклеотидов в заданной позиции, X, и определяют, возникает ли попадание в результате введения указанной делеции. Указанное редактирование может быть затем повторено для всех позиций X+1, X+2, X+3 и т.п. Такое редактирование, однако, может значительно увеличивать объемы дополнительной обработки и затраченного времени, например, требуя значительного числа дополнительных поисков, например, 2, или 3, или 4, или 5, или 10, или 50, или 100, или 200 и т.п. Тем не менее, такие дополнительные объемы обработки и затрачиваемого времени могут быть полезны, если при помощи такого редактирования может быть определено действительное попадание, например, совпадение полученное там, где ранее совпадение отсутствовало. В таком случае, как правило, затем может быть определено, что возникла ошибка, а затем - что ошибка была исправлена, с сохранением таким образом рида.[00251] Such editing may also be performed for insertions, for example, adding one of four nucleotides to a given insertion position, X, and determining whether the hit results from the introduction of the specified substitution. Said editing can be performed for all four nucleotides and/or for all positions (X, X+1, X+2, X+3, etc.) in the primer, and/or for all primers in the reads. Such editing can also be performed for deletions, for example, when one of the four nucleotides at a given position, X, is deleted in the primer, and determining whether a hit results from introducing the specified deletion. This editing can then be repeated for all positions X+1, X+2, X+3, etc. Such editing, however, can significantly increase the amount of additional processing and time spent, for example, requiring a significant number of additional searches, for example, 2, or 3, or 4, or 5, or 10, or 50, or 100, or 200, etc. P. However, this additional amount of processing and time spent can be useful if such editing can be used to determine a valid hit, for example, a match obtained where there was previously no match. In such a case, it can usually then be determined that an error occurred, and then that the error has been corrected, thus saving the read.
[00252] Также может быть использован дополнительный эвристический алгоритм для определения целесообразности выполнения функции редактирования, выполняющий расчет для определения вероятности получения попадания при выполнении такого редактирования. При достижении определенного порога вероятности, такого как 85% правдоподобие, может быть выполнено такое редактирование затравочных цепочек. Например, указанная система может генерировать различные статистические показатели для затравочных цепочек, такие как вычисление количества присутствующих высокочастотных попаданий и/или количества затравочных цепочек, которые содержат высокочастотные попадания, и таким образом определять, будет ли с некоторой вероятностью редактирование затравочных цепочек иметь значение для определения совпадений. Например, в том случае, когда определено наличие значительной доли высокочастотных попаданий, редактирование затравочных цепочек может быть пропущено, поскольку, вероятно, оно не позволит получить ряд последовательностей, достаточно уникальных, чтобы получить попадание в результате разумного числа поисков в хэш-таблицах, такого как 100 или менее, 50 или менее, 40 или менее, 30 или менее, 20 или менее, или 10 или менее. Такие статистические показатели могут быть проанализированы и затем может быть принято решение о выполнении или не выполнении редактирования затравок. Например, если статистические показатели показывают, что для любого рида половина позиций показывает отсутствие совпадений, а остальные показывают высокочастотные совпадения, редактирование затравок может быть целесообразным, поскольку при отсутствии возвращения совпадений возможно наличие ошибки, однако при возвращении большого числа высокочастотных совпадений выполнение редактирования затравок может просто не иметь смысла.[00252] An additional heuristic algorithm may also be used to determine whether an edit function should be performed by performing a calculation to determine the probability of receiving a hit when performing such an edit. Once a certain probability threshold is reached, such as 85% likelihood, such seed editing can be performed. For example, the system may generate various statistics for seed strings, such as calculating the number of high-frequency hits present and/or the number of seed strings that contain high-frequency hits, and thus determine whether editing of the seed strings is likely to be significant in determining matches . For example, in the case where a significant proportion of high-frequency hits are determined to be present, seed editing may be skipped because it is not likely to produce a set of sequences unique enough to obtain a hit from a reasonable number of hash table lookups, such as 100 or less, 50 or less, 40 or less, 30 or less, 20 or less, or 10 or less. Such statistics can be analyzed and a decision can then be made to perform or not perform seed editing. For example, if the statistics show that for any given read, half of the positions show no hits and the rest show high-frequency hits, seed editing may be appropriate because if no matches are returned, there may be an error, but if a large number of high-frequency matches are returned, performing seed editing may be simple make no sense.
[00253] Результатом выполнения одной или более из указанных функций картирования, фильтрации и/или редактирования является список ридов, который включает для каждого рида список всех возможных местоположений, в которых рид может совпасть с референсным геномом. Следовательно, функцию картирования можно выполнить так, чтобы быстро определить, где риды из файла FASTQ, полученного из секвенатора, картируются на референсный геном, например, туда, куда в полном геноме картируются различные риды. Однако при наличии ошибки в любом из ридов или генетической вариации можно не получить точного совпадения с референсом; и/или могут быть несколько мест, с которыми, предположительно, совпадают один или более ридов. Соответственно, необходимо определить, где различные риды действительно выровнены относительно генома в целом.[00253] The result of performing one or more of these mapping, filtering, and/or editing functions is a list of reads that includes, for each read, a list of all possible locations at which the read could match the reference genome. Therefore, the mapping function can be performed to quickly determine where reads from a FASTQ file obtained from a sequencer map onto a reference genome, for example, where different reads map in the complete genome. However, if there is an error in any of the reads or genetic variation, an exact match to the reference may not be obtained; and/or there may be multiple locations to which one or more reads are believed to match. Accordingly, it is necessary to determine where different reads are actually aligned relative to the genome as a whole.
[00254] Соответственно, после картирования, и/или фильтрации, и/или редактирования определены позиции местоположений для большого количества ридов, причем для некоторых индивидуальных ридов определено множество позиций местоположений, и после этого требуется установить, какие из всех возможных местоположений в действительности являются истинными или наиболее вероятными местоположениями, с которым выравниваются различные риды. Такое выравнивание может быть выполнено с помощью одного или более алгоритмов, таких как алгоритм динамического программирования, который ищет совпадения для картированных ридов с референсным геномом и выполняет функцию выравнивания на нем.[00254] Accordingly, after mapping and/or filtering and/or editing, location positions are determined for a large number of reads, with many individual reads having multiple location positions determined, and it is then necessary to determine which of all possible locations are actually true or the most likely locations to which different reads are aligned. Such an alignment can be performed using one or more algorithms, such as a dynamic programming algorithm, which finds matches for mapped reads to a reference genome and performs an alignment function on it.
[00255] Пример функции выравнивания сравнивает один или более, например, все риды с референсом, например, путем взаимного наложения в графическом режиме, например, в таблице, такой как виртуальный массив или матрица, где последовательность одного из референсных геномов или картированных ридов помещают на одно измерение или ось, например, на горизонтальную ось, а другую помещают на противоположные измерения или ось, например, на вертикальную ось. Затем воображаемый фронт волны оценки пропускают по массиву для определения выравнивания ридов с референсным геномом, например, путем вычисления оценок выравнивания для каждой ячейки в матрице.[00255] An example alignment function compares one or more, for example, all reads to a reference, for example, by overlaying them in a graphical mode, for example, in a table, such as a virtual array or matrix, where the sequence of one of the reference genomes or mapped reads is placed on one dimension or axis, such as the horizontal axis, and the other is placed on the opposite dimensions or axis, such as the vertical axis. An imaginary scoring wavefront is then passed through the array to determine the alignment of the reads to the reference genome, for example by calculating alignment scores for each cell in the matrix.
[00256] Фронт волны оценки представляет одну или более, например, все ячейки матрицы, или часть указанных ячеек, которые могут быть оценены независимо и/или одновременно в соответствии с правилами динамического программирования, применимыми к алгоритму выравнивания, такому как алгоритмы Смита-Ватермана, и/или Нидлмана-Вунша, и/или родственные алгоритмы. Например, если за начало матрицы (соответствующее началу рида и/или началу окна референса воображаемого фронта волны оценки) принять левый верхний угол, сначала может оцениваться только верхняя левая ячейка с координатами (0,0) в матрице, например, фронт волны из 1 ячейки; далее могут оцениваться две ячейки в направлении вправо и вниз с координатами (0,1) и (1,0), например, фронт волны из 2 ячеек; далее могут оцениваться три ячейки с координатами (0,2), (1,1) и (2,0), например, фронт волны из 3 ячеек. Указанные примеры фронта волны могут затем расширяться по диагонали вдоль прямых линий, от нижнего левого угла до верхнего правого, и пошаговое движение фронта волны через матрицу происходит по диагонали из верхнего левого угла к правому нижнему углу. Вычисление оценок выравнивания может быть выполнено последовательно или в другом порядке, например, путем вычисления всех оценок в верхнем ряду в направлении слева направо, а затем всех оценок в следующем ряду в направлении слева направо, и т.п. При таком подходе прокатывающийся по диагонали диагональный фронт волны представляет собой оптимальную последовательность пакетов оценок, вычисляемых одновременно или параллельно в серии этапов фронта волны.[00256] The evaluation wavefront represents one or more, for example, all of the cells of the matrix, or a portion of the specified cells, which can be evaluated independently and/or simultaneously in accordance with the rules of dynamic programming applicable to the alignment algorithm, such as Smith-Waterman algorithms, and/or Needleman-Wunsch, and/or related algorithms. For example, if the upper left corner is taken as the beginning of the matrix (corresponding to the beginning of the read and/or the beginning of the reference window of the imaginary evaluation wave front), first only the upper left cell with coordinates (0,0) in the matrix can be evaluated, for example, a wave front of 1 cell ; then two cells can be evaluated in the direction to the right and down with coordinates (0,1) and (1,0), for example, a wave front of 2 cells; then three cells with coordinates (0,2), (1,1) and (2,0) can be evaluated, for example, a wave front of 3 cells. These wavefront examples may then expand diagonally along straight lines, from the lower left corner to the upper right corner, and the incremental movement of the wave front through the matrix occurs diagonally from the upper left corner to the lower right corner. Calculation of the alignment scores may be performed sequentially or in a different order, for example, by calculating all scores in the top row in a left-to-right direction, and then all scores in the next row in a left-to-right direction, and the like. In this approach, a rolling diagonal wavefront represents an optimal sequence of batches of estimates computed simultaneously or in parallel in a series of wavefront stages.
[00257] Например, в одном варианте реализации окно референсного генома, содержащее сегмент, на который был картирован рид, помещают на горизонтальную ось, а рид располагают на вертикальной оси. Подобным образом генерируют массив или матрицу, например, виртуальную матрицу, что позволяет сравнить нуклеотид в каждой позиции в риде с нуклеотидом в каждой позиции в окне референса. По мере прохождения фронта волны по массиву рассматривают все потенциальные способы выравнивания рида с окном референса, в том числе выясняют, требуются ли изменения в одной последовательности, чтобы обеспечить совпадение рида с референсной последовательностью, например, путем изменения одного или более нуклеотидов рида на другие нуклеотиды, или инсерции одного или более новых нуклеотидов в одну последовательность, или делеции одного или более нуклеотидов из одной последовательности.[00257] For example, in one embodiment, a reference genome window containing the segment to which the read has been mapped is placed on the horizontal axis and the read is placed on the vertical axis. In a similar way, an array or matrix is generated, for example, a virtual matrix, which allows you to compare the nucleotide at each position in the read with the nucleotide at each position in the reference window. As the wave front passes through the array, all potential ways to align the read with the reference window are considered, including whether changes in one sequence are required to ensure that the read matches the reference sequence, for example, by changing one or more nucleotides of the read to different nucleotides, or the insertion of one or more new nucleotides into one sequence, or the deletion of one or more nucleotides from one sequence.
[00258] Генерируют оценку выравнивания, отражающую степень изменений, которые требуется осуществить для достижения точного выравнивания, причем эта оценка и/или другие связанные данные могут быть сохранены в заданных ячейках массива. Каждая ячейка массива соответствует вероятности того, что нуклеотид в ее позиции на оси ридов выровнен с нуклеотидом в ее позиции на оси референса, а оценка, сформированная для каждой ячейки, представляет частичное выравнивание, заканчивающееся позициями ячейки в риде и окне референса. Наивысшая оценка, сгенерированная в любой клетке, представляет лучшее общее выравнивание рида с окном референса. В различных вариантах выравнивание может быть глобальным, когда весь рид должен быть выровнен с некоторой частью окна референса, например, с применением алгоритма Нидлмана-Вунша или аналогичного алгоритма; или, в других случаях, выравнивание может быть локальным, когда только часть рида может быть выровнена с частью окна референса, например, с применением алгоритма Смита-Ватермана или аналогичного алгоритма.[00258] An alignment score is generated reflecting the extent of changes required to achieve accurate alignment, which score and/or other associated data may be stored in specified array cells. Each array cell corresponds to the probability that a nucleotide at its position on the read axis is aligned with a nucleotide at its position on the reference axis, and the score generated for each cell represents the partial alignment ending with the cell's positions in the read and reference window. The highest score generated in any cell represents the best overall alignment of the read to the reference window. In various embodiments, the alignment can be global, where the entire read must be aligned with some part of the reference window, for example, using the Needleman-Wunsch algorithm or a similar algorithm; or, in other cases, the alignment may be local, where only part of the read can be aligned with part of the reference window, for example, using the Smith-Waterman algorithm or a similar algorithm.
[00259] Окно референса может иметь любой подходящий размер. Например, поскольку длина типичного рида может составлять от приблизительно 100 до приблизительно 1000 нуклеотидов, длина окна референса, соответственно, в некоторых случаях может составлять от приблизительно 100 до 1000 нуклеотидов или более. Однако в некоторых случаях длина ридов может быть больше, и/или длина окна референса может быть больше, например, может составлять приблизительно 10000, 25000, 50000, 75000, 100000, 200000 нуклеотидов или более. Может быть благоприятным некоторое удлинение окна референса по сравнению с ридом, например, включение 32, или 64, или 128, или 200, или даже 500 дополнительных нуклеотидов в окно референса за пределами сегмента референсного генома, на который был картирован рид, например, чтобы было возможно полностью оценить инсерции и/или делеции возле концов рида. Например, если только часть рида был картирована на сегмент референса, может применяться дополнительное удлинение для окна референса, соответствующего некартированным частям рида, или удлинение с некоторой кратностью, например, на 10%, или 15%, или 20%, или 25%, или даже 50%, или более, чтобы обеспечить полное выравнивание некартированных частей объема рида с окном референса. Однако в некоторых случаях может быть выбрана длина окна референса меньше длины ридов, например, когда длинная часть рида не картирована на референс, например, более или менее 1000 нуклеотидов на одном конце рида, например, для фокусирования на выравнивании картированной части.[00259] The reference window can be of any suitable size. For example, since the length of a typical read can be from about 100 to about 1000 nucleotides, the length of the reference window accordingly, in some cases, can be from about 100 to 1000 nucleotides or more. However, in some cases, the length of the reads may be longer and/or the length of the reference window may be larger, for example, may be approximately 10,000, 25,000, 50,000, 75,000, 100,000, 200,000 nucleotides or more. It may be beneficial to slightly lengthen the reference window compared to the read, for example, including 32, or 64, or 128, or 200, or even 500 additional nucleotides in the reference window outside the segment of the reference genome to which the read was mapped, for example, so that It is possible to fully evaluate insertions and/or deletions near the ends of the read. For example, if only part of the read has been mapped to the reference segment, an additional extension may be applied to the reference window corresponding to the unmapped parts of the read, or extension by some factor, for example, by 10%, or 15%, or 20%, or 25%, or even 50%, or more, to ensure full alignment of the unmapped parts of the read volume with the reference window. However, in some cases the reference window length may be chosen to be less than the length of the reads, for example when a long part of the read is not mapped to a reference, for example more or less than 1000 nucleotides at one end of the read, for example to focus on the alignment of the mapped part.
[00260] Фронт волны выравнивания может иметь неограниченную длину, или может быть ограничен любой подходящей фиксированной длиной, или иметь вариабельную длину. Например, могут оцениваться все ячейки вдоль полной диагональной линии каждого шага фронта волны, проходящей полностью от одной оси до другой оси. Как вариант, ограниченная длина, например, шириной 64 ячейки, может оцениваться на каждом шаге фронта волны, например, путем прокладывания в матрице диагональной полосы оцениваемых ячеек шириной 64 ячейки, при этом ячейки за пределами указанной полосы остаются без оценки. В некоторых случаях может быть необязательным вычисление оценок далеко от полосы вокруг истинного пути выравнивания, и за счет вычисления оценок только в ограниченной полосе пропускания с использованием фронта волны оценки фиксированной длины, согласно описанию в настоящем документе, может быть сэкономлен существенный объем работы.[00260] The alignment wave front may have an unlimited length, or may be limited to any suitable fixed length, or have a variable length. For example, all cells along the full diagonal line of each wave front step, extending completely from one axis to another axis, can be evaluated. Alternatively, a limited length, for example 64 cells wide, can be estimated at each wavefront step, for example, by laying a diagonal strip of 64-cell-wide estimated cells in the matrix, leaving cells outside the specified strip unestimated. In some cases, it may not be necessary to calculate estimates far from the band around the true alignment path, and by calculating estimates only in a limited bandwidth using a fixed-length estimate wavefront, as described herein, a significant amount of work can be saved.
[00261] Соответственно, в различных вариантах функция выравнивания может быть выполнена, например, на данных, полученных из модуля картирования. Соответственно, в различных вариантах функция выравнивания может образовывать модуль, например, модуль выравнивания, который может образовывать часть системы, например, конвейер, который используют, например, наряду с модулем картирования, в процессе определения фактической полной геномной последовательности индивидуума или ее части. Например, выходные данные, возвращаемые после выполнения функции картирования, например, из модуля картирования, например, список возможных вариантов картирования одного или более, или всех ридов на одну или более позиций в одном или более референсных геномах, могут быть использованы функцией выравнивания для определения фактического выравнивания последовательности секвенированной ДНК субъекта.[00261] Accordingly, in various embodiments, the alignment function can be performed, for example, on data obtained from a mapping module. Accordingly, in various embodiments, the alignment function may form a module, such as an alignment module, which may form part of a system, such as a pipeline, that is used, for example, along with a mapping module, in the process of determining the actual complete genomic sequence of an individual or a portion thereof. For example, the output returned after executing a mapping function, e.g., from a mapping module, e.g., a list of possible mappings of one or more, or all reads to one or more positions in one or more reference genomes, can be used by the alignment function to determine the actual sequence alignment of the subject's sequenced DNA.
[00262] Такая функция выравнивания может быть полезна во всех случаях, поскольку, согласно описанию выше, часто по разнообразным причинам секвенированные риды не обязательно точно совпадают с референсным геномом. Например, в одном или более ридов может присутствовать ОНП (однонуклеотидный полиморфизм), например, замена одного нуклеотида на другой в единственной позиции; может присутствовать «индел», инсерция или делеция одного или более оснований на протяжении одной или более последовательностей рида, не присутствующие в референсном геноме; и/или может присутствовать ошибка секвенирования (например, ошибки приготовления образцов, и/или ридов секвенатора, и/или выходных данных секвенатора и т.п.), вызывающая одну или более из указанных очевидных вариаций. Соответственно, когда рид отличается от референса, например, наличием ОНП или индела, это может быть обусловлено отличием референса от истинной последовательности ДНК в образце, или отличием рида от истинной последовательности ДНК в образце. Проблема состоит в том, чтобы выполнить корректное выравнивание ридов с референсным геномом, с учетом того факта, что, по всей вероятности, между указанными двумя последовательностями будет множество разных отличий.[00262] Such an alignment function can be useful in all cases because, as described above, often, for a variety of reasons, sequenced reads do not necessarily exactly match the reference genome. For example, one or more reads may contain an SNP (single nucleotide polymorphism), for example, the replacement of one nucleotide with another at a single position; there may be an "indel", an insertion or deletion of one or more bases along one or more read sequences not present in the reference genome; and/or there may be a sequencing error (eg, errors in sample preparation, and/or sequencer reads, and/or sequencer output, etc.) causing one or more of these apparent variations. Accordingly, when a read differs from the reference, for example, by the presence of an SNP or an indel, this may be due to the difference between the reference and the true DNA sequence in the sample, or the difference between the read and the true DNA sequence in the sample. The challenge is to correctly align the reads to the reference genome, given the fact that there are likely to be many differences between the two sequences.
[00263] Соответственно, в различных вариантах, входными данными функции выравнивания, например, из функции картирования, такой как дерево префиксов/суффиксов, или преобразование Барроуза-Уилера, или хэш-таблица, и/или хэш-функция, может быть список возможных вариантов совпадений одного или более ридов с одной или более позиций в одной или более референсных последовательностей. Например, любой данный рид может совпадать с любым количеством позиций в референсном геноме, например, в 1 местоположении или в 16, или в 32, или в 64, или в 100, или в 500, или в 1000 или более местоположениях, где данный рид картируется на геном. Однако любой отдельный рид был получен, например, секвенирован, только из одной определенной части генома. Соответственно, чтобы найти истинное местоположение, из которого происходит данный конкретный рид, можно выполнить функцию выравнивания, например, выравнивание с гэпами Смита-Ватермана, выравнивание Нидлмана-Вунша и т.п., для определения фактического места происхождения в геноме одного или более ридов, например, путем сравнения всех возможных местоположений, где имеет место совпадение, и определения того, какой из всех возможных вариантов является наиболее вероятным местоположением, из которого был секвенирован рид, исходя из наивысшей оценки выравнивания местоположений.[00263] Accordingly, in various embodiments, the input to the alignment function, for example, from a mapping function such as a prefix/suffix tree, or a Burrows-Wheeler transform, or a hash table, and/or a hash function, may be a list of possible options matches of one or more reads from one or more positions in one or more reference sequences. For example, any given read may match any number of positions in the reference genome, such as 1 location, or 16, or 32, or 64, or 100, or 500, or 1000 or more locations where a given read mapped to the genome. However, any given read was obtained, such as sequenced, from only one specific part of the genome. Accordingly, to find the true location from which a given read originates, an alignment function, such as a Smith-Waterman gap alignment, a Needleman-Wunsch alignment, etc., can be performed to determine the actual location of origin in the genome of one or more reads. for example, by comparing all possible locations where a match occurs and determining which of all possible options is the most likely location from which the read was sequenced, based on the highest location alignment score.
[00264] Как было указано, для выполнения такой функции выравнивания обычно используют алгоритм. Например, для выравнивания двух или более последовательностей друг относительно друга можно использовать алгоритм выравнивания Смита-Ватермана и/или Нидлмана-Вунша. В этом случае они могут быть использованы так, чтобы для любой данной позиции, где рид картируется на референсный геном, определить вероятности того, что картирование действительно выполнено в позиции, откуда происходит рид. Как правило, эти алгоритмы выполнены с возможностью осуществления программным обеспечением, однако в различных вариантах реализации, таких как представленные в настоящем документе, один или более из этих алгоритмов может быть выполнен с возможностью осуществления в аппаратном обеспечении, согласно более подробному описанию ниже в настоящем документе.[00264] As stated, an algorithm is typically used to perform such an alignment function. For example, the Smith-Waterman and/or Needleman-Wunsch alignment algorithm can be used to align two or more sequences to each other. In this case, they can be used so that, for any given position where a read maps to a reference genome, the probabilities are determined that the mapping is actually performed at the position where the read originates. Typically, these algorithms are implemented in software, however, in various implementations such as those presented herein, one or more of these algorithms may be implemented in hardware, as described in more detail later herein.
[00265] В частности, функцию выравнивания используют по меньшей мере частично для выравнивания одного или более, например, всех ридов на референсный геном, несмотря на наличие одной или более несовпадающих частей, например, ОНП, инсерций, делеций, структурных артефактов и т.п., для определения того, где указанные риды, вероятно, правильно впишутся в геном. Например, один или более ридов сравнивают с референсным геномом, и определяют наилучшее возможное совпадение рида с геномом, учитывая при этом замены, и/или инделы, и/или структурные варианты. Однако для того, чтобы лучше определить, какая из модифицированных версий рида лучше всего вписывается в референсный геном, необходимо учитывать предполагаемые изменения, и, соответственно, можно также выполнить функцию оценки.[00265] In particular, the alignment function is used at least in part to align one or more, e.g., all reads to a reference genome despite the presence of one or more mismatched portions, e.g., SNPs, insertions, deletions, structural artifacts, and the like. ., to determine where specified reads are likely to fit correctly into the genome. For example, one or more reads are compared to a reference genome, and the best possible match of the read to the genome is determined, taking into account substitutions and/or indels and/or structural variants. However, in order to better determine which modified version of the read fits best into the reference genome, the putative changes must be taken into account, and accordingly a scoring function can also be performed.
[00266] Например, можно выполнить функцию оценки, например, как часть общей функции выравнивания, при этом при выполнении модулем выравнивания своей функции и введении одного или более изменений в последовательность, сравниваемую с другой последовательностью, например, например, чтобы достичь более хорошего или наилучшего соответствия между ними, для каждого изменения, вносимого для достижения более хорошего выравнивания, из начальной оценки, например, либо из идеальной оценки, либо из нулевой начальной оценки вычитают некоторое число, так, чтобы при выполнении выравнивания определять также оценку этого выравнивания, например, когда обнаруживают совпадения, оценку увеличивают, а при каждом внесенном изменении накладывают штраф; таким образом, может быть определено лучшее возможное соответствие для возможных выравниваний, например, путем выявления из всех возможных модифицированных ридов того рида, соответствие которого геному имеет наивысшую оценку. Соответственно, в различных вариантах функция выравнивания может быть выполнена с возможностью определения лучшей комбинаций изменений, которые нужно внести в рид(-ы) для достижения выравнивания с наивысшей оценкой, которое может быть, соответственно, определено как правильное или наиболее вероятное выравнивание.[00266] For example, it is possible to perform an evaluation function, for example, as part of an overall alignment function, with the alignment module performing its function and introducing one or more changes to a sequence being compared to another sequence, for example, to achieve a better or better correspondence between them, for each change made to achieve a better alignment, a number is subtracted from the initial score, for example, either from the ideal score or from the zero initial score, so that when the alignment is performed, the assessment of this alignment is also determined, for example, when matches are detected, the score is increased, and a fine is imposed for each change made; thus, the best possible match for possible alignments can be determined, for example, by identifying from all possible modified reads the read that has the highest match score to the genome. Accordingly, in various embodiments, the alignment function may be configured to determine the best combination of changes to make to the read(s) to achieve the highest scoring alignment, which may accordingly be determined to be the correct or most likely alignment.
[00267] Соответственно, ввиду вышеизложенного, по меньшей мере две цели могут быть достигнуты за счет выполнения функции выравнивания. Одна из целей представлена отчетом о наилучшем выравнивании, включающим в себя позицию в референсном геноме и описание изменений, которые необходимы для того, чтобы рид совпал с референсным сегментом в указанной позиции, а другая цель представлена оценкой качества выравнивания. Например, в различных вариантах выходные данные из модуля выравнивания могут представлять собой отчет «Compact Idiosyncratic Gapped Alignment Report», например, строку CIGAR, при этом указанная выходная строка CIGAR представляет собой отчет, подробно описывающий все изменения, внесенные в риды для достижения их наиболее соответствующего выравнивания, например, подробные инструкции по выравниванию, указывающие, каким образом происходит действительное выравнивание исследуемой последовательности с референсом. Вывод такой строки CIGAR может быть полезным на последующих стадиях обработки для более хорошего определения того, что для данной геномной нуклеотидной последовательности субъекта прогнозированные вариации в сравнении с референсным геномом действительно являются истинными вариациями, а не просто обусловлены ошибкой машины, программного обеспечения или человека.[00267] Accordingly, in view of the above, at least two purposes can be achieved by performing the alignment function. One of the goals is represented by a report of the best alignment, including the position in the reference genome and a description of the changes that are necessary for the read to match the reference segment at the specified position, and the other goal is represented by an assessment of the quality of the alignment. For example, in various embodiments, the output from the alignment module may be a "Compact Idiosyncratic Gapped Alignment Report", such as a CIGAR string, wherein said CIGAR output string is a report detailing all changes made to the reads to achieve their most appropriate alignments, for example, detailed alignment instructions indicating how the sequence of interest is actually aligned to the reference. The output of such a CIGAR string can be useful in subsequent processing steps to better determine that, for a given subject's genomic nucleotide sequence, the predicted variations compared to the reference genome are indeed true variations and not simply due to machine, software, or human error.
[00268] Как было указано выше, в различных вариантах реализации выравнивание, как правило, выполняют последовательно, причем алгоритм принимает данные последовательности рида, например, из модуля картирования, принадлежащие риду, и одно или более возможных местоположений, где этот рид потенциально может быть картирован на один или более референсных геномов, а также принимает данные геномной последовательности, например, из одной или более памятей, относящиеся к одной или более позиций в одном или более референсных геномах, на которые может быть картирован рид. В частности, в различных вариантах реализации модуль картирования обрабатывает риды, например, из файла FASTQ, и картирует каждый из них на одну или более позиций в референсном геноме, на которые они, возможно, выровнены. Затем выравниватель берет указанные прогнозированные позиции и использует их для выравнивания ридов на референсный геном, например, путем построения виртуального массива, с помощью которого риды можно сравнивать с референсным геномом.[00268] As discussed above, in various implementations, alignment is typically performed sequentially, with the algorithm receiving read sequence data, for example from a mapping module, belonging to the read, and one or more possible locations where the read could potentially be mapped to one or more reference genomes, and also receives genomic sequence data, for example, from one or more memories, relating to one or more positions in one or more reference genomes, to which the read can be mapped. Specifically, in various embodiments, the mapping module processes reads, for example from a FASTQ file, and maps each of them to one or more positions in the reference genome to which they may be aligned. The aligner then takes these predicted positions and uses them to align the reads to a reference genome, for example by constructing a virtual array against which the reads can be compared to the reference genome.
[00269] При выполнении этой функции выравниватель оценивает каждую картированную позицию для каждого отдельного рида и, в частности, оценивает те риды которые картированы на множество возможных местоположений в референсном геноме, и для каждой позиции оценивает возможность того, что она является правильной. Затем он сравнивает лучшие оценки, например, две лучшие оценки, и принимает решение о том, где действительно выравнивается конкретный рид. Например, при сравнении первой и второй лучших оценок выравнивания выравниватель проверяет разницу между оценками, и если разница между ними большая, то оценка достоверности того, что позиция с большей оценкой является правильной, будет высокой. Однако если разница между ними маленькая, например, нулевая, то оценка достоверности выбора из двух позиций одной из них в качестве правильной позиции, из которой получен рид, низкая; и, возможно, будет полезна дополнительная обработка, чтобы четко определить истинное местоположение в референсном геноме, из которого получен рид. Соответственно, выравниватель, в частности, ищет наибольшую разницу между первой и второй лучшими оценками достоверности для принятия решения о том, что данный рид картируется на данное местоположение в референсном геноме. В идеале оценка лучшего возможного варианта выравнивания значительно выше оценки второго лучшего выравнивания для данной последовательности.[00269] In performing this function, the aligner evaluates each mapped position for each individual read and, in particular, evaluates those reads that are mapped to many possible locations in the reference genome, and for each position evaluates the possibility that it is correct. It then compares the best estimates, such as the two best estimates, and makes a decision about where a particular read actually aligns. For example, when comparing the first and second best alignment scores, the aligner checks the difference between the scores, and if the difference between them is large, then the confidence rating that the position with the higher score is correct will be high. However, if the difference between them is small, for example, zero, then the assessment of the reliability of choosing one of them from two positions as the correct position from which the read was obtained is low; and additional processing may be useful to clearly identify the true location in the reference genome from which the read is derived. Accordingly, the aligner specifically looks for the largest difference between the first and second best confidence scores to decide that a given read maps to a given location in the reference genome. Ideally, the score of the best possible alignment is significantly higher than the score of the second best alignment for a given sequence.
[00270] Существует множество различных способов реализации метода оценки выравнивания, например, можно оценивать каждую ячейку массива или подмножество ячеек, например, в соответствии со способами, описанными в настоящем документе. Как правило, каждое совпадение при выравнивании, соответствующее шагу по диагонали в матрице выравнивания, вносит вклад в положительную оценку, например, +1, если соответствующие нуклеотиды рида и референса; и в отрицательную оценку, например, -4, если два нуклеотида не совпадают. Далее, каждая делеция в референсе, соответствующая шагу в горизонтальном направлении в матрице выравнивания, вносит вклад в отрицательную оценку, например, -7, и каждая инсерция в референсе, соответствующая шагу в вертикальном направлении в матрице выравнивания, вносит вклад в отрицательную оценку, например, -7.[00270] There are many different ways to implement an alignment evaluation method, for example, you can evaluate each cell of an array or a subset of cells, for example, in accordance with the methods described herein. Typically, each alignment match corresponding to a diagonal step in the alignment matrix contributes to a positive score, for example +1 if the corresponding read and reference nucleotides; and a negative score, such as -4, if the two nucleotides do not match. Further, each deletion in the reference corresponding to a step in the horizontal direction in the alignment matrix contributes to a negative score, e.g., -7, and each insertion in the reference corresponding to a step in the vertical direction in the alignment matrix contributes to a negative score, e.g. -7.
[00271] В различных вариантах параметры оценки для совпадений нуклеотидов, несовпадений, инсерций и делеций нуклеотидов могут принимать любые различные положительные или отрицательные, или нулевые значения. В различных вариантах указанные параметры оценки могут быть модифицированы на основании доступной информации. Например, в некоторых вариантах аффинная функция накладывает штраф на гэпы при выравнивании (инсерции или делеции) в зависимости от длины гэпа, например, -7 для первого делетированного (или, соответственно, инсертированного) нуклеотида, но только -1 для каждого дополнительного делетированного (или, соответственно, инсертированного) нуклеотида в непрерывной последовательности. В различных вариантах реализации аффинные штрафы на гэп могут осуществляться путем разделения штрафов на гэп (за инсерцию или делецию) на два компонента, например, на штраф на открытие гэпа, например, -6, применяемого к первому шагу в гэпе; и штраф на продление гэпа, например, -1, применяемого к каждому или последующим шагам в гэпе. Аффинные штрафы на гэп могут обеспечивать более точное выравнивание, например, позволяя выравниваниям, включающим длинные инсерции или делеции, получать адекватно высокие оценки. Далее, стоимость каждого перемещения по горизонтали может быть одинаковой или разной, например, стоимость шага может быть одинаковой, и/или, при наличии гэпов, такие гэпы могут иметь более высокую или более низкую стоимость, таким образом, стоимость перемещений выравнивателя по горизонтали может быть меньше, чем стоимость гэпов. Соответственно, в различных вариантах реализации может быть реализована аффинная оценка гэпов, однако это может требовать больших расходов на программное обеспечение и/или аппаратное обеспечение, поскольку она, как правило, требует множества, например, 3 оценок, для каждой подлежащей оцениванию ячейки, и, соответственно, согласно различным вариантам реализации аффинную оценку гэпов не реализуют.[00271] In various embodiments, the scoring parameters for nucleotide matches, mismatches, nucleotide insertions and deletions can take on any of various positive or negative, or zero values. In various embodiments, these evaluation parameters may be modified based on available information. For example, in some embodiments, the affinity function penalizes alignment (insertion or deletion) gaps depending on the length of the gap, e.g., -7 for the first deleted (or inserted) nucleotide, but only -1 for each additional deleted (or inserted) nucleotide. , respectively, inserted) nucleotide in a continuous sequence. In various implementations, affine gap penalties may be implemented by dividing the gap penalties (for insertion or deletion) into two components, such as a gap opening penalty of, for example, -6 applied to the first step in the gap; and a gap extension penalty, such as -1, applied to each or subsequent steps in the gap. Affinity gap penalties can provide more accurate alignments, for example by allowing alignments involving long insertions or deletions to receive adequately high scores. Further, the cost of each horizontal movement may be the same or different, for example, the cost of a step may be the same, and/or, if there are gaps, such gaps may have a higher or lower cost, so the cost of horizontal leveler movements may be less than the cost of gaps. Accordingly, affine gap estimation can be implemented in various implementations, however this may be expensive in software and/or hardware since it typically requires multiple, e.g., 3 estimates, for each cell to be estimated, and, Accordingly, according to various embodiments, affine gap estimation is not implemented.
[00272] В различных вариантах параметры оценки могут также быть чувствительны к «оценкам качества оснований», соответствующим нуклеотидам в риде. Некоторые данные ридов секвенированной ДНК, в таких форматах, как FASTQ, могут включать оценку качества оснований, ассоциированную с каждым нуклеотидом, указывающую на расчетную вероятность некорректности нуклеотида, например, из-за ошибки секвенирования. В некоторых данных ридов оценки качества оснований могут указывать на вероятность наличия инсерционной и/или делеционной ошибки секвенирования в каждой позиции или в смежной с ней позиции, или дополнительные оценки качества могут обеспечивать эту информацию отдельно. Более точное выравнивание, соответственно, может быть достигнуто путем использования параметров оценки, включающих любые или все из оценок совпадения нуклеотидов, оценок несовпадения нуклеотидов, штрафов на гэп (инсерцию и/или делецию), штрафов на открытие гэпа и/или продление гэпа, варьирующих в зависимости от оценки качества оснований, ассоциированной с текущим нуклеотидом или текущей позицией рида. Например, бонусы и/или штрафы при оценке могут быть снижены, если оценка качества оснований указывает на высокую вероятность наличия ошибки секвенирования или другой ошибки. Чувствительная в качеству оснований оценка может быть реализована, например, с применением фиксированной или конфигурируемой таблицы подстановки, к которой обращаются с применением оценки качества оснований, возвращающей соответствующие параметры оценки.[00272] In various embodiments, the scoring parameters may also be sensitive to “base quality scores” corresponding to the nucleotides in the read. Some sequenced DNA read data, in formats such as FASTQ, may include a base quality score associated with each nucleotide, indicating the estimated probability of the nucleotide being incorrect, for example due to sequencing error. In some read data, base quality scores may indicate the likelihood of an insertion and/or deletion sequencing error at each position or an adjacent position, or additional quality scores may provide this information separately. More accurate alignment can accordingly be achieved by using scoring parameters including any or all of nucleotide match scores, nucleotide mismatch scores, gap (insertion and/or deletion) penalties, gap opening and/or gap extension penalties, varying in depending on the base quality score associated with the current nucleotide or current read position. For example, evaluation bonuses and/or penalties may be reduced if the evidence quality assessment indicates a high likelihood of a sequencing error or other error. The ground quality-sensitive evaluation may be implemented, for example, by using a fixed or configurable lookup table that is accessed using a ground quality score returning the appropriate scoring parameters.
[00273] В случае аппаратной реализации в интегральной схеме, такой как FPGA, ASIC или структурированной ASIC, фронт волны оценки может быть реализован в виде линейного массива ячеек оценки, например, 16 ячеек, или 32 ячеек, или 64 ячеек, или 128 ячеек или т.п. Каждая из ячеек оценки может быть построена из цифровых логических элементов в монтажной конфигурации для вычисления оценок выравнивания. Соответственно, для каждого этапа фронта волны, например, каждого тактового цикла, или некоторой другой фиксированной или вариабельной единицы времени, каждая из ячеек оценки, или часть ячеек, вычисляет оценку или оценки, требуемые для новой ячейки в виртуальной матрице выравнивания. Теоретически считается, что различные ячейки оценки находятся в различных позициях матрицы выравнивания, соответствующих фронту волны оценки согласно описанию в настоящем документе, например, вдоль прямой линии, проходящей из нижней левой части в верхнюю правую часть матрицы. Как хорошо известно в области разработки цифровых логических устройств, физические ячейки оценки и составляющая их цифровая логика не обязательно должны быть физически расположены подобным образом на интегрированной схеме.[00273] When implemented in hardware on an integrated circuit such as an FPGA, ASIC, or structured ASIC, the evaluation wavefront may be implemented as a linear array of evaluation cells, for example, 16 cells, or 32 cells, or 64 cells, or 128 cells, or etc. Each of the evaluation cells can be constructed from digital gates in a wiring configuration to compute alignment estimates. Accordingly, for each wavefront stage, eg, each clock cycle, or some other fixed or variable unit of time, each of the evaluation cells, or portion of the cells, calculates the evaluation or evaluations required for a new cell in the virtual alignment matrix. Theoretically, different evaluation cells are considered to be at different positions in the alignment matrix corresponding to the evaluation wave front as described herein, for example, along a straight line extending from the lower left to the upper right of the matrix. As is well known in the field of digital logic device design, the physical evaluation cells and their constituent digital logic do not necessarily need to be physically located in this manner on the integrated circuit.
[00274] Соответственно, по мере того, как фронт волны шаг за шагом прокатывается по виртуальной матрице выравнивания, воображаемые позиции ячеек оценки соответствующим образом обновляют каждую ячейку, например, умозрительно «перемещаются» на шаг вправо или, например, на шаг вниз в матрице выравнивания. Все ячейки оценки совершают одинаковое относительное воображаемое перемещение, сохраняя порядок диагонального фронта волны. Каждый раз, когда фронт волны перемещается в новое положение, например, за счет шага в вертикальном направлении вниз или шага в горизонтальном направлении вправо в матрице, ячейки оценки прибывают в новые воображаемые позиции и вычисляют оценки выравнивания для ячеек виртуальной матрицы выравнивания, в которые они вошли.[00274] Accordingly, as the wave front sweeps step by step through the virtual alignment matrix, the imaginary evaluation cell positions update each cell accordingly, for example, speculatively "moving" a step to the right or, for example, a step down in the alignment matrix . All evaluation cells undergo the same relative imaginary movement, maintaining the order of the diagonal wave front. Each time a wave front moves to a new position, for example by a step in the vertical direction down or a step in the horizontal direction to the right in the matrix, the evaluation cells arrive at new imaginary positions and compute alignment scores for the cells of the virtual alignment matrix in which they are included. .
[00275] В такой реализации соседние ячейки оценки в линейном массиве соединены для обмена исследуемыми (принадлежащими риду) нуклеотидами, референсными нуклеотидами и ранее вычисленными оценками выравнивания. Нуклеотиды окна референса могут последовательно подаваться на один конец фронта волны, например, в верхнюю правую ячейку оценки в линейном массиве, и могут последовательно сдвигаться оттуда вниз вдоль фронта волны, так, что в любой данный момент времени сегмент референсных нуклеотидов, равный по длине количеству ячеек оценки, присутствует в этих ячейках, по одному из следующих один за другим нуклеотидов в каждой следующей одна за другой ячейке оценки.[00275] In such an implementation, adjacent scoring cells in a linear array are connected to exchange test nucleotides, reference nucleotides, and previously calculated alignment scores. The reference window nucleotides can be sequentially applied to one end of the wave front, for example, the top right score cell in a linear array, and can be sequentially shifted from there down along the wave front, such that at any given time a segment of reference nucleotides equal in length to the number of cells evaluation, is present in these cells, one of the successive nucleotides in each successive evaluation cell.
[00276] Соответственно, каждый раз, когда фронт волны перемещается на шаг в горизонтальном направлении, следующий референсный нуклеотид подается в верхнюю правую ячейку, а другие референсные нуклеотиды сдвигаются вниз и влево по фронту волны. Указанный сдвиг референсных нуклеотидов может быть реальным отражением воображаемого перемещения фронта волны ячеек оценки вправо в матрице выравнивания. Соответственно, нуклеотиды рида могут последовательно подаваться на противоположный конец фронта волны, например, в нижнюю левую ячейку оценки в линейном массиве, и могут последовательно сдвигаться оттуда вверх вдоль фронта волны, чтобы в любой данный момент времени сегмент исследуемых нуклеотидов, равный по длине количеству ячеек оценки, присутствовал в этих ячейках, по одному из следующих один за другим нуклеотидов в каждой следующей одна за другой ячейке оценки.[00276] Accordingly, each time the wave front moves one step in the horizontal direction, the next reference nucleotide is fed into the upper right cell, and other reference nucleotides are moved down and to the left along the wave front. The indicated shift of reference nucleotides may be a real reflection of the imaginary movement of the wave front of the evaluation cells to the right in the alignment matrix. Accordingly, the nucleotides of the read can be sequentially fed to the opposite end of the wave front, for example, into the lower left evaluation cell in a linear array, and can be sequentially shifted from there upward along the wave front so that at any given time a segment of the nucleotides under study equal in length to the number of evaluation cells , was present in these cells, one of the consecutive nucleotides in each consecutive evaluation cell.
[00277] Сходным образом, каждый раз, когда фронт волны перемещается на шаг в вертикальном направлении, следующий исследуемый нуклеотид подают в нижнюю левую ячейку, а другие исследуемые нуклеотиды сдвигаются вверх вправо по фронту волны. Указанный сдвиг исследуемых нуклеотидов является реальным отражением воображаемого перемещения фронта волны ячеек оценки вниз в матрице выравнивания. Соответственно, подавая команду на сдвиг референсных нуклеотидов, можно перемещать фронт волны на шаг в горизонтальном направлении, а подавая команду на сдвиг исследуемых нуклеотидов, можно перемещать фронт волны на шаг в вертикальном направлении. Соответственно, для получения в целом диагонального перемещения фронта волны, например, чтобы следовать типичному выравниванию исследуемой и референсной последовательностей без инсерций или делеций, можно попеременно подавать команды на перемещение фронта волны на шаг в вертикальном и горизонтальном направлениях.[00277] Similarly, each time the wave front moves one step in the vertical direction, the next nucleotide of interest is fed into the lower left cell, and other nucleotides of interest are moved up to the right along the wave front. The indicated shift of the studied nucleotides is a real reflection of the imaginary movement of the wave front of the evaluation cells downward in the alignment matrix. Accordingly, by issuing a command to shift reference nucleotides, one can move the wave front one step in the horizontal direction, and by issuing a command to shift the test nucleotides, one can move the wave front one step in the vertical direction. Accordingly, to obtain an overall diagonal movement of the wavefront, for example to follow a typical alignment of the test and reference sequences without insertions or deletions, the wavefront can be commanded alternately to move one step in the vertical and horizontal directions.
[00278] Соответственно, соседние ячейки оценки в линейном массиве могут быть соединены для обмена ранее вычисленными оценками выравнивания. В различных алгоритмах оценки выравнивания, например, Смита-Ватермана или Нидлмана-Вунша, или подобных вариантах оценка или оценки выравнивания в каждой ячейке виртуальной матрицы выравнивания могут быть вычислены на основании ранее вычисленных оценок в других ячейках матрицы, например, трех ячейках, расположенных непосредственно слева от текущей ячейки, выше текущей ячейки и вверх влево по диагонали от текущей ячейки. Когда ячейка оценки вычисляет новую оценку или оценки для другой позиции матрицы, в она должна извлечь такие ранее вычисленные оценки, соответствующие таким другим позициям матрицы. Указанные ранее вычисленные оценки могут быть получены из хранилища ранее вычисленных оценок внутри этой же ячейки и/или из хранилища ранее вычисленных оценок в одной или двух соседних ячейках оценки в линейном массиве. Это обусловлено тем, что три вносящие вклад в оценку позиции в виртуальной матрице выравнивания (непосредственно слева, сверху и сверху слева по диагонали) могли быть оценены либо текущей ячейкой оценки, либо одной из соседних с ней ячеек оценки в линейном массиве.[00278] Accordingly, adjacent scoring cells in a linear array can be connected to exchange previously computed alignment scores. In various alignment estimation algorithms, such as Smith-Waterman or Needleman-Wunsch, or similar embodiments, the alignment score or scores in each cell of the virtual alignment matrix can be calculated based on previously computed scores in other matrix cells, for example, the three cells immediately to the left from the current cell, above the current cell, and up to the left diagonally from the current cell. When a score cell computes a new score or scores for a different matrix position, it shall retrieve such previously computed scores corresponding to such other matrix positions. Said previously computed scores may be obtained from a store of previously computed scores within the same cell and/or from a store of previously computed scores in one or two adjacent score cells in the linear array. This is because the three scoring-contributing positions in the virtual alignment matrix (directly left, top, and top left diagonally) could have been scored by either the current score cell or one of its adjacent score cells in the linear array.
[00279] Например, ячейка непосредственно слева в матрице могла быть оценена текущей ячейкой оценки, если самый последний шаг фронта волны был произведен в горизонтальном направлении (вправо), или могла быть оценена соседней ячейкой снизу слева в линейном массиве, если самый последний шаг фронта волны был произведен в вертикальном направлении (вниз). Аналогичным образом, ячейка непосредственно сверху в матрице могла быть оценена текущей ячейкой оценки, если самый последний шаг фронта волны был произведен в вертикальном направлении (вниз), или могла быть оценена соседней ячейкой сверху справа в линейном массиве, если самый последний шаг фронта волны был произведен в горизонтальном направлении (вправо). Аналогичным образом, ячейка сверху слева по диагонали в матрице могла быть оценена текущей ячейкой оценки, если два самых последних шага фронта волны были произведены в разных направлениях, например, вниз, а затем вправо; или вправо, а затем вниз; или могла быть оценена соседней ячейкой сверху справа в линейном массиве, если два самых последних шага фронта волны были оба в горизонтальном направлении (вправо), или могла быть оценена соседней ячейкой снизу слева в линейном массиве, если два самых последних шага фронта волны были оба в вертикальном направлении (вниз).[00279] For example, a cell immediately to the left in the matrix could be scored by the current evaluation cell if the most recent wavefront step was in the horizontal direction (to the right), or could be scored by an adjacent cell to the bottom left in a linear array if the most recent wavefront step was produced in the vertical direction (down). Likewise, a cell immediately above in the matrix could be scored by the current scoring cell if the most recent wavefront step was taken in the vertical direction (down), or could be scored by an adjacent cell on the top right in a linear array if the most recent wavefront step was taken in the horizontal direction (to the right). Likewise, the top-left diagonal cell in the matrix could be scored by the current scoring cell if the two most recent steps of the wave front were made in different directions, for example, down and then to the right; or right and then down; or could be scored by a top-right neighbor cell in a line array if the two most recent wavefront steps were both in the horizontal direction (to the right), or could be scored by a bottom-left neighbor cell in a line array if the two most recent wavefront steps were both in vertical direction (down).
[00280] Соответственно, с учетом информации о направлениях последних одного или двух шагов фронта волны, ячейка оценки может выбрать надлежащие ранее вычисленные оценки, получив доступ к ним внутри себя и/или в соседних ячейках оценки, задействуя соединение между соседними ячейками. В одном варианте для ячеек оценки, располагающихся на двух концах фронта волны, на наружных входах для оценок могут быть жестко смонтированы недопустимые, или нулевые, или имеющие минимальное значение оценки, чтобы они не влияли на новые вычисления оценок в этих крайних ячейках.[00280] Accordingly, given information about the directions of the last one or two steps of the wave front, an estimation cell can select the appropriate previously calculated estimates by accessing them within itself and/or in neighboring estimation cells by exploiting the connection between neighboring cells. In one embodiment, for rating cells located at two ends of the wave front, invalid, or zero, or minimum value ratings can be hardwired into the outer rating inputs so that they do not affect new rating calculations in those outermost cells.
[00281] Благодаря реализуемому таким образом фронту волны в линейном массиве ячеек оценки, с таким соединением для сдвига референсных и исследуемых нуклеотидов по массиву в противоположных направлениях, для умозрительного перемещения фронта волны пошагово в вертикальном и горизонтальном направлении, и соединении для доступа к оценкам, ранее вычисленным соседними ячейками, чтобы вычислять оценку или оценки выравнивания в новых позициях ячеек виртуальной матрицы, в которые входит фронт волны, можно, соответственно, оценивать полосу ячеек в виртуальной матрице, ширину фронта волны, например, путем подачи команд на последовательное пошаговое перемещение фронта волны, чтобы он прокатился по матрице. Чтобы выровнять новый рид и окно референса, соответственно, фронт волны может начинаться изнутри матрицы оценки, или, предпочтительно, может постепенно входить в матрицу оценки снаружи, начиная, например, слева, или сверху, или по диагонали слева и сверху с верхнего левого угла матрицы.[00281] By implementing a wavefront in this manner in a linear array of evaluation cells, with such a connection for shifting reference and test nucleotides across the array in opposite directions, for speculatively moving the wavefront stepwise in the vertical and horizontal direction, and a connection for accessing the estimates previously calculated by neighboring cells to calculate the alignment estimate or estimates at new positions of the cells of the virtual matrix into which the wave front enters, one can, accordingly, estimate a strip of cells in the virtual matrix, the width of the wave front, for example, by issuing commands to move the wave front sequentially step by step, so that it rolls around the matrix. To align the new read and the reference window, respectively, the wave front can start from inside the evaluation matrix, or, preferably, can gradually enter the evaluation matrix from the outside, starting, for example, from the left, or from above, or diagonally to the left and from the top left corner of the matrix .
[00282] Например, фронт волны может начинаться с его верхней левой ячейки оценки, расположенной сразу слева от верхней левой ячейки виртуальной матрицы, и затем фронт волны может вкатываться вправо в матрицу с помощью серии горизонтальных шагов, оценивая горизонтальную полосу ячеек в верхней левой области матрицы. Когда фронт волны достигает прогнозированного соотношения выравнивания между референсной и исследуемой последовательностью, или когда обнаруживается совпадение на основе возрастания оценок выравнивания, фронт волны может начать прокатываться по диагонали вниз вправо, за счет попеременных шагов в вертикальном и горизонтальном направлении, оценивая диагональную полосу клеток посередине матрицы. Когда нижняя левая ячейка оценки фронта волны достигает нижней границы матрицы выравнивания, фронт волны может начать снова прокатываться вправо за счет последовательных шагов в горизонтальном направлении, оценивая горизонтальную полосу ячеек в нижней правой области матрицы, до тех пор, пока некоторые или все ячейки фронта волны не выйдут за границы матрицы выравнивания.[00282] For example, the wave front may begin with its top left evaluation cell located immediately to the left of the top left cell of the virtual matrix, and then the wave front may roll rightward into the matrix through a series of horizontal steps, evaluating a horizontal strip of cells in the top left region of the matrix . When the wavefront reaches the predicted alignment relationship between the reference and test sequences, or when a match is detected based on increasing alignment scores, the wavefront can begin to sweep diagonally down to the right by alternating steps in the vertical and horizontal directions, evaluating a diagonal stripe of cells in the middle of the matrix. When the lower left wavefront evaluation cell reaches the bottom boundary of the alignment matrix, the wavefront may begin to roll to the right again by successive steps in the horizontal direction, evaluating a horizontal strip of cells in the lower right region of the matrix, until some or all of the wavefront cells will go beyond the boundaries of the alignment matrix.
[00283] В одном варианте повышенной эффективности фронта волны выравнивания можно добиться путем разделения его ячеек оценки между двумя последовательными операциями выравнивания. Следующую матрицу выравнивания устанавливают заранее, так как когда верхняя правая часть фронта волны выходит из нижней правой области текущей матрицы выравнивания, она может сразу же или после пересечения минимального зазора, такого как одна ячейка или три ячейки, входить в верхнюю правую область следующей матрицы выравнивания. Таким образом горизонтальный выход фронта волны из одной матрицы выравнивания может представлять собой то же самое действие, что и горизонтальный вход фронта волны в следующую матрицу выравнивания. Осуществление указанного способа может включать поступление референсных и исследуемых оснований следующего выравнивания в ячейки оценки, переходящих в следующую матрицу выравнивания, и может уменьшать среднюю продолжительность времени, необходимого для каждого выравнивания, на время выполнения ряда шагов фронта волны, практически равного числу ячеек выравнивания во фронте волны, например, 64 или 63 шагов, или 61 шага, которые могут занимать, например, 64 или 63 тактовых цикла, или 61 тактовый цикл.[00283] In one embodiment, increased efficiency of the alignment wavefront can be achieved by dividing its evaluation cells between two successive alignment operations. The next alignment matrix is set in advance because when the upper right portion of the wave front exits the lower right area of the current alignment matrix, it may immediately or after crossing a minimum gap such as one cell or three cells enter the upper right area of the next alignment matrix. Thus, the horizontal exit of a wave front from one alignment matrix may represent the same action as the horizontal entry of a wave front into the next alignment matrix. The implementation of this method may include the entry of reference and study bases of the next alignment into the evaluation cells, passing into the next alignment matrix, and may reduce the average length of time required for each alignment by the time of executing a number of wave front steps, practically equal to the number of alignment cells in the wave front , for example, 64 or 63 steps, or 61 steps, which may take, for example, 64 or 63 clock cycles, or 61 clock cycles.
[00284] Число ячеек оценки при реализации фронта волны выравнивания может быть выбрано таким образом, чтобы уравновешивать различные факторы, в том числе точность выравнивания, максимальную длину инсерции и делеции, площадь, стоимость и потребление энергии цифровыми логическими устройствами, тактовую частоту логики выравнивателя и производительность общей интегральной схемы. Длинный фронт волны желателен для хорошей точности выравнивания, в частности, поскольку фронт волны из N ячеек способен выполнять выравнивание поверх инделов длиной приблизительно N нуклеотидов, или немного короче. Однако при использовании более длинного фронта волны требуется больше логических устройств, что ведет к потреблению большего количества энергии. Далее, более длинный фронт волны может повышать сложность трассировки и увеличивать задержки на интегральной схеме, что приводит к более низким максимальным тактовым частотам, уменьшающим чистую производительность выравнивателя. Более того, если интегральная схема отличается ограниченным размером или потреблением энергии, применение более длинного фронта волны может требовать реализации меньшего количества логических устройств на любых участках ИС, например, воспроизведения меньшего количества полных фронтов волны, или других компонентов логики выравнивателя или картирующего устройства, что снижает чистую производительность ИС. В одном конкретном варианте реализации 64 ячейки оценки во фронте волны могут обеспечивать приемлемый баланс указанных факторов.[00284] The number of evaluation cells in implementing an alignment wavefront may be selected to balance various factors, including alignment accuracy, maximum insertion and deletion length, area, cost and power consumption of digital logic devices, equalizer logic clock speed, and performance general integrated circuit. A long wavefront is desirable for good alignment accuracy, particularly since a wavefront of N cells is capable of performing alignment over indels of approximately N nucleotides in length, or slightly shorter. However, using a longer wavefront requires more logic devices, resulting in more power consumption. Further, a longer wavefront can increase routing complexity and increase latency on the integrated circuit, resulting in lower maximum clock speeds that reduce the net equalizer performance. Moreover, if the integrated circuit is of limited size or power consumption, the use of a longer wavefront may require implementing fewer logic units on any portion of the IC, such as rendering fewer complete wavefronts, or other equalizer or mapper logic components, thereby reducing pure IC performance. In one particular embodiment, 64 evaluation cells in the wave front may provide an acceptable balance of these factors.
[00285] Соответственно, при ширине фронта волны X ячеек, например, 64 ячейки оценки, ширина оцениваемой полосы в матрице выравнивания, аналогичным образом, будет составлять 64 ячейки (при измерении по диагонали). Ячейки матрицы за пределами указанной полосы не обязательно обрабатывать, а также вычислять их оценки, при условии, что путь оптимального (с наилучшей оценкой) выравнивания в матрице остается в пределах оцениваемой полосы. Для относительно небольшой матрицы, соответственно, используемой для выравнивания относительно коротких ридов, например, ридом длиной 100 нуклеотидов или 250 нуклеотидов это может быть безопасным допущением, например, если фронт волны покатывается точно по диагонали вдоль прогнозированной выровненной позиции рида.[00285] Accordingly, given a wave front width of X cells, for example, 64 evaluation cells, the width of the evaluation band in the alignment matrix will likewise be 64 cells (when measured diagonally). Matrix cells outside the specified band do not need to be processed or their scores calculated, as long as the optimal (best-scoring) alignment path in the matrix remains within the band being estimated. For a relatively small matrix, respectively, used to align relatively short reads, such as a read of 100 nucleotides or 250 nucleotides in length, this may be a safe assumption, for example if the wave front rolls exactly diagonally along the predicted aligned read position.
[00286] Однако в некоторых случаях, например, в случае большой матрицы выравнивания, используемой для выравнивания длинных ридов, например, длиной 1000, или 10000, или 100000 нуклеотидов, может присутствовать существенный риск накопления инделов, вызывающего отклонение истинного выравнивания от точной диагонали, суммарно достаточно сильное для ухода из оцениваемой полосы. В таких случаях может быть полезно наведение фронта волны таким образом, чтобы максимальный набор оценок располагался возле центра фронта волны. Таким образом, по мере прокатывания фронта волны, если наивысшие оценки начинают двигаться в ту или иную сторону, например, слева направо, фронт волны сдвигается, отслеживая указанное движение. Например, если наивысшие оценки наблюдаются в ячейках оценки, расположенных существенно выше и правее центра фронта волны, указанный фронт волны может быть наведен на некоторое расстояние точно направо посредством поступательных шагов в горизонтальном направлении, до возвращения наивысших оценок в область около центра фронта волны.[00286] However, in some cases, for example in the case of a large alignment matrix used to align long reads, for example 1000, or 10,000, or 100,000 nucleotides in length, there may be a significant risk of indel accumulation causing the true alignment to deviate from the exact diagonal, totaling strong enough to leave the assessed band. In such cases, it may be useful to target the wave front so that the maximum set of estimates is located near the center of the wave front. Thus, as the wave front rolls, if the highest scores begin to move in one direction or another, for example, from left to right, the wave front moves to track said movement. For example, if the highest scores are observed in scoring cells located substantially above and to the right of the center of the wave front, said wave front may be driven some distance directly to the right by incremental steps in the horizontal direction until the highest scores return to an area near the center of the wave front.
[00287] Соответственно, автоматический наводящий механизм может быть реализован в логике контроля фронта волны для определения целевой позиции для наведения в пределах длины фронта волны, на основании текущих и прошлых оценок, наблюдаемых в ячейках фронта волны оценки, и для наведения фронта волны на указанную мишень, если она находится за пределами центра. Более конкретно, позиция с максимальной оценкой в последней оцененной позиции фронта волны может быть использована в качестве мишени для наведения. В некоторых случаях этот способ эффективен. Однако в некоторых случаях позиция с максимальной оценкой может быть неудовлетворительной мишенью для наведения. Например, при некоторых комбинациях параметров оценки выравнивания, при возникновении длинного индела, когда, соответственно, оценки начинают снижаться, вдоль фронта волны может формироваться паттерн с двумя пиками более высоких оценок и впадиной более низких оценок между ними, и по мере продолжения индела указанные два пика продолжают расходиться.[00287] Accordingly, an automatic guidance mechanism may be implemented in the wavefront control logic to determine a target position for guidance within the length of the wavefront, based on current and past estimates observed in the estimation wavefront cells, and to guide the wavefront to said target , if it is outside the center. More specifically, the position with the highest estimate at the last estimated position of the wave front can be used as a targeting target. In some cases this method is effective. However, in some cases the position with the highest score may not be a satisfactory targeting target. For example, with some combinations of alignment rating parameters, when a long indel occurs, when, accordingly, ratings begin to decline, a pattern can form along the wave front with two peaks of higher ratings and a trough of lower ratings between them, and as the indal continues, these two peaks continue to diverge.
[00288] Поскольку невозможно легко определить, представляет ли собой прогрессирующее явление инсерцию или делецию, важно отслеживать фронт волны по диагонали до повторного начала успешного совпадения, либо на некотором расстоянии в направлении направо в случае делеции, либо на некотором расстоянии в направлении вниз в случае инсерции. Однако при формировании двух распространяющихся пиков оценки один из них, вероятно, будет несколько выше другого, и может притянуть автоматическое наведение в этом направлении, приводя к потере выравнивания фронтом волны в том случае, если фактический индел располагался в другом направлении. Более устойчивый способ, соответственно, может заключаться в вычитании дельта-значения из максимальной наблюдаемой оценки фронта волны для определения пороговой оценки, идентификации двух крайних ячеек оценки, по меньшей мере равных указанной пороговой оценке, и использовании средней точки между указанными крайними ячейками в качестве мишени для наведения. Указанный способ обеспечивает тенденцию направления по диагонали посередине паттерна оценки с двумя пиками. Могут, однако, легко применяться и другие критерии наведения, которые служат для поддержания более высоких оценок возле центра фронта волны. При задержке реакции между получением оценки от фронта волны ячеек оценки и принятием соответствующего решения о наведении может быть целесообразно использование гистерезиса для компенсации решений о наведении, принимаемых в промежуточном периоде, чтобы избежать осциллирующих паттернов автоматического наведения фронта волны.[00288] Since it is not possible to easily determine whether a progressive event represents an insertion or a deletion, it is important to track the wavefront diagonally until the successful match begins again, either some distance in a direction to the right in the case of a deletion, or some distance in a downward direction in the case of an insertion . However, if two propagating estimate peaks are formed, one of them is likely to be slightly higher than the other, and may pull automatic guidance in that direction, causing the wave front to lose alignment if the actual indel was located in the other direction. A more robust method, accordingly, might be to subtract the delta value from the maximum observed wavefront score to determine the threshold score, identify the two outermost score cells that are at least equal to the specified threshold score, and use the midpoint between the specified outermost cells as a target for guidance This method provides a diagonal directional trend in the middle of the two-peak rating pattern. Other guidance criteria that serve to maintain higher scores near the center of the wave front can, however, easily be applied. When there is a delay in response between receiving an estimate from the wavefront of the evaluation cells and making the corresponding guidance decision, it may be appropriate to use hysteresis to compensate for guidance decisions made in the intervening period to avoid oscillating patterns of automatic wavefront guidance.
[00289] Одна или более таких процедур выравнивания может быть выполнена с применением любого подходящего алгоритма выравнивания, такого как алгоритм выравнивания Нидлмана-Вунша и/или алгоритм выравнивания Смита-Ватермана, который мог быть модифицирован с учетом функциональных характеристик, описанных в настоящем документе. В общем случае, оба указанных алгоритма и сходные с ними алгоритмы в целом функционируют, в некоторых случаях, аналогичным образом. Например, как было указано выше, указанные алгоритмы выравнивания, как правило, строят виртуальный массив аналогичным образом, например, в различных вариантах, горизонтальная верхняя граница может сконфигурирована для представления геномной референсной последовательности, которая может быть распределена по верхнему ряду массива в соответствии с составом пар оснований. Сходным образом, вертикальная граница может быть сконфигурирована для представления секвенированных и картированных исследуемых последовательностей, которые были расположены в порядке в направлении сверху вниз в первом столбце, таким образом, чтобы порядок последовательности их нуклеотидов в целом совпадал с последовательностью нуклеотидов референса, на который они картированы. Промежуточные ячейки могут затем быть заполнены оценками в соответствии с вероятностью того, что релевантное основание исследуемой последовательности в заданной позиции находится в указанном местоположении применительно к референсу. При выполнении указанной функции полоса захвата может перемещаться по диагонали по матрице, заполняя промежуточные ячейки оценками, и может быть определена вероятность нахождения каждого основания исследуемой последовательности в указанной позиции.[00289] One or more such alignment procedures may be performed using any suitable alignment algorithm, such as the Needleman-Wunsch alignment algorithm and/or the Smith-Waterman alignment algorithm, which could be modified to accommodate the functional characteristics described herein. In general, both of these algorithms and similar algorithms generally function, in some cases, in a similar way. For example, as noted above, these alignment algorithms typically construct a virtual array in a similar manner, for example, in various embodiments, a horizontal top border may be configured to represent a genomic reference sequence that may be distributed across the top row of the array according to the pair composition grounds. Similarly, the vertical border may be configured to represent sequenced and mapped sequences of interest that have been arranged in a top-to-bottom order in the first column such that their nucleotide sequence order generally matches the nucleotide sequence of the reference to which they are mapped. The intermediate cells can then be filled with scores according to the probability that the relevant base of the sequence of interest at a given position is at the specified location relative to the reference. When performing this function, the capture strip can move diagonally across the matrix, filling the intermediate cells with estimates, and the probability of finding each base of the sequence of interest at a specified position can be determined.
[00290] Применительно к функции выравнивания Нидлмана-Вунша, которая генерирует оптимальные глобальные (или полуглобальные) выравнивания, выравнивающие всю последовательность рида с некоторым сегментом референсного генома, наведение фронта волны может быть сконфигурировано таким образом, чтобы он в общем прокатывался полностью от самого верхнего края матрицы выравнивания до нижнего края. После того как фронт волны прокатился, выбирают максимальную оценку на нижнем крае матрицы выравнивания (соответствующем концу рида), и выравнивание отслеживают в обратном направлении до ячейки на верхнем краю матрицы (соответствующем началу рида). В различных случаях, описанных в настоящем документе, риды могут быть любой длины, могут быть любого размера, и не обязательно требуется всесторонние параметры рида для определения того, как осуществляется выравнивание, например, в различных вариантах, длина рида может соответствовать длине хромосомы. В таком случае, однако, размер памяти и длина хромосомы могут представлять собой ограничивающий фактор.[00290] In relation to the Needleman-Wunsch alignment function, which generates optimal global (or semi-global) alignments aligning the entire sequence of a read to some segment of a reference genome, wavefront guidance can be configured to generally sweep all the way from the topmost edge alignment matrix to the bottom edge. After the wave front has swept, the maximum score at the bottom edge of the alignment matrix (corresponding to the end of the read) is selected, and the alignment is tracked back to a cell at the top edge of the matrix (corresponding to the start of the read). In various cases described herein, reads may be of any length, may be of any size, and do not necessarily require comprehensive read parameters to determine how the alignment is performed, for example, in various embodiments, the length of the read may correspond to the length of the chromosome. In such a case, however, memory size and chromosome length may represent a limiting factor.
[00291] Применительно к алгоритму Смита-Ватермана, который генерирует оптимальные локальные выравнивания, выравнивающие всю последовательность или часть последовательности рида с некоторым сегментом референсного генома, указанный алгоритм может быть сконфигурирован для нахождения наилучшей возможной оценки на основании полного или частичного выравнивания рида. Соответственно, в различных вариантах оцениваемая фронтом волны полоса может не доходить до верхнего и/или нижнего краев матрицы выравнивания, например, если очень длинный рид содержит только затравки в середине картирования на референсный геном, однако, как правило, фронт волны все же может выполнять оценку с верхнего до нижнего края матрицы. Локальное выравнивание, как правило, достигается посредством двух регулировок. Во-первых, запрещено падение оценок выравнивания ниже нуля (или некоторого другого минимального уровня), и если вычисленная иным образом оценка ячейки принимает отрицательное значение, его заменяют на нулевую оценку, соответствующую началу нового выравнивания. Во-вторых, максимальную оценку выравнивания, полученную в любой ячейке в матрице, не обязательно расположенную вдоль нижнего края, используют в качестве окончания выравнивания. Выравнивание отслеживают в обратном порядке от этой максимальной оценки вверх и влево по матрице до нулевой оценки, которую используют в качестве стартовой позиции локального выравнивания, даже если она не располагается в верхнем ряду матрицы.[00291] In relation to the Smith-Waterman algorithm, which generates optimal local alignments aligning all or part of the sequence of a read with some segment of a reference genome, the algorithm can be configured to find the best possible score based on a full or partial alignment of the read. Accordingly, in various embodiments, the band estimated by the wavefront may not extend to the top and/or bottom edges of the alignment matrix, for example, if a very long read contains only seeds in the middle of mapping to the reference genome, however, in general, the wavefront can still estimate from the top to the bottom edge of the matrix. Local alignment is typically achieved through two adjustments. First, the alignment scores are not allowed to fall below zero (or some other minimum level), and if the otherwise calculated cell score is negative, it is replaced with a zero score corresponding to the start of a new alignment. Second, the maximum alignment score obtained in any cell in the matrix, not necessarily along the bottom edge, is used as the end of the alignment. Alignment is tracked backwards from this maximum score up and to the left in the matrix to score zero, which is used as the starting position for local alignment, even if it is not located in the top row of the matrix.
[00292] Принимая во внимание вышеизложенное, имеется несколько разных возможных путей через виртуальный массив. В различных вариантах реализации фронт волны начинается с верхнего левого угла виртуального массива и движется вниз к идентификаторам максимальной оценки. Например, результаты всех возможных выравниваний могут быть собраны, обработаны, коррелированы и оценены для определения максимальной оценки. Когда достигнут конец границы или конец массива, и/или произведено давшее наивысшую оценку вычисление для всех обработанных ячеек (например, идентифицирована общая наивысшая оценка), может быть выполнено обратное отслеживание, чтобы найти путь, приведший к указанной наивысшей оценке.[00292] Taking into account the above, there are several different possible paths through the virtual array. In various implementations, the wave front begins at the top left corner of the virtual array and moves down toward the maximum score identifiers. For example, the results of all possible alignments can be collected, processed, correlated, and scored to determine a maximum score. When the end of the boundary or the end of the array is reached, and/or the highest-scoring calculation has been made for all processed cells (eg, the overall highest score has been identified), backtracing can be performed to find the path that led to the specified highest score.
[00293] Например, может быть идентифицирован путь, который приводит к прогнозированной максимальной оценке, и после идентификации может быть выполнена проверка, чтобы определить, каким образом была получена указанная максимальная оценка, например, путем обратного перемещения вдоль указателей выравнивания с наилучшей оценкой, с прослеживанием пути, который привел к достижению идентифицированной максимальной оценки, например, вычисленной с помощью ячеек оценки фронта волны. Указанная обратная реконструкция или обратное отслеживание включает начало движения с определенной максимальной оценкой, и возвращение назад через предыдущие ячейки, с прокладыванием пути через ячейки с оценками, которые привели к достижению максимальной оценки, вверх до края таблицы и обратно к начальной границе, например, к началу массива, или к нулевой оценке в случае локального выравнивания.[00293] For example, a path that leads to a predicted maximum score may be identified, and once identified, a check may be performed to determine how the specified maximum score was obtained, for example, by backtracking along the alignment indicators with the best score, with tracking the path that led to the achievement of the identified maximum score, for example, calculated using the wave front score cells. This backward reconstruction or backtracking involves starting a movement at a certain maximum score, and working back through previous cells, tracing a path through the score cells that led to the maximum score, up to the edge of the table, and back to the starting boundary, e.g. array, or to zero in the case of local alignment.
[00294] Во время обратного отслеживания, после достижения конкретной ячейки в матрице выравнивания следующий шаг обратного отслеживания совершается в соседнюю ячейку непосредственно слева или сверху, или по диагонали вверх и налево, которая внесла вклад в наилучшую оценку, выбранную для конструирования оценки в текущей ячейке. Указанным образом может быть определена эволюция максимальной оценки, с выяснением таким образом, как была достигнута максимальная оценка. Обратное отслеживание может быть завершено в углу, или на крае, или на границе, или может быть завершено на нулевой оценке, например, в верхнем левом углу массива. Соответственно, именно с помощью такого обратного отслеживания идентифицируют правильное выравнивание с получением таким образом строки вывода CIGAR, например, 3M, 2D, 8M, 4I, 16M и т.п., показывающую, каким образом образец геномной последовательности, происходящий от индивидуума, или его часть совпадает или иным образом выравнивается с геномной последовательностью референсной ДНК.[00294] During backtracking, after reaching a particular cell in the alignment matrix, the next backtracking step is to the adjacent cell immediately to the left or above, or diagonally up and to the left, that contributed to the best estimate selected to construct the estimate in the current cell. In this way, the evolution of the maximum score can be determined, thus revealing how the maximum score was achieved. Backtracking can be completed at a corner, or at an edge, or at a boundary, or can be completed at a zero estimate, such as the top left corner of an array. Accordingly, it is by means of such backtracking that the correct alignment is identified, thereby obtaining a CIGAR output string, for example, 3M, 2D, 8M, 4I, 16M, etc., indicating how a sample of the genomic sequence originating from an individual, or its part matches or otherwise aligns with the genomic sequence of the reference DNA.
[00295] Соответственно, после того как было определено, где картирован каждый рид, и дополнительно определено, где выровнен каждый рид, например, каждому релевантному риду была присвоена позиция и оценка качества, отражающая вероятность того, что указанная позиция является правильным выравниванием, так что последовательность нуклеотидов ДНК субъекта известна, может быть верифицирован порядок различных ридов и/или геномная последовательность нуклеиновой кислоты субъекта, например, путем выполнения функции обратного отслеживания, передвигающейся в обратном направлении вверх по массиву, с определением идентичности каждой нуклеиновой кислоты в правильном порядке в образце геномной последовательности. Следовательно, согласно некоторым аспектам настоящее изобретение относится к функции обратного отслеживания, например, представляющей собой часть модуля выравнивания, выполняющего как выравнивание, так и функцию обратного отслеживания, например, модуля, который может быть частью конвейера модулей, такого как конвейер, который предназначен для приема необработанных данных рида последовательности, например, в виде геномного образца индивидуума, и картирования и/или выравнивания этих данных, которые могут быть затем классифицированы.[00295] Accordingly, once it has been determined where each read is mapped, and further determined where each read is aligned, for example, each relevant read is assigned a position and a quality score reflecting the likelihood that the specified position is the correct alignment, so that Since the nucleotide sequence of a subject's DNA is known, the order of the various reads and/or the genomic sequence of the subject's nucleic acid can be verified, for example, by performing a backtracking function that moves backwards up the array, determining the identity of each nucleic acid in the correct order in the genomic sequence sample . Therefore, in some aspects, the present invention relates to a backtracking function, such as one that is part of an alignment module that performs both alignment and backtracking functions, for example, a module that may be part of a pipeline of modules, such as a pipeline that is configured to receive raw sequence read data, for example in the form of an individual's genomic sample, and mapping and/or alignment of this data, which can then be classified.
[00296] Для облегчения операции обратного отслеживания полезно сохранять вектор оценки для каждой оцененной ячейки в матрице выравнивания, кодирующий решение по выбору оценки. В случае классической оценки Смита-Ватермана и/или Нидлмана-Вунша с линейными штрафами на гэп вектор оценки может кодировать четыре возможности, которые могут необязательно храниться в виде 2-битового целого числа от 0 до 3, например: 0 = новое выравнивание (выбрана нулевая оценка); 1 = вертикальное выравнивание (выбрана оценка из ячейки сверху, модифицирована штрафом на гэп в последовательности); 2 = горизонтальное выравнивание (выбрана оценка из ячейки слева, модифицирована штрафом на гэп в последовательности); 3 = диагональное выравнивание (выбрана оценка из ячейки сверху и слева, модифицирована оценкой совпадения или несовпадения нуклеотида). Необязательно, можно сохранять вычисленную оценку или оценки для каждой оцененной ячейки матрицы (помимо максимальной достигнутой оценки выравнивания, которую обычно сохраняют), однако это, как правило, не является необходимым для обратного отслеживания и может требовать затрат больших объемов памяти. Выполнение обратного отслеживания, в таком случае, превращается в следование за векторами оценки; при достижении при обратном отслеживании определенной ячейки в матрице следующий шаг обратного отслеживания определяет сохраненный вектор оценки для указанной ячейки, например,: 0 = окончание обратного отслеживания; 1 = обратное отслеживание в направлении наверх; 2 = обратное отслеживание в направлении налево; 3 = обратное отслеживание по диагонали наверх и налево.[00296] To facilitate the backtracking operation, it is useful to store a score vector for each scored cell in an alignment matrix encoding the score selection decision. In the case of classic Smith-Waterman and/or Needleman-Wunsch estimation with linear gap penalties, the estimation vector can encode four possibilities, which may optionally be stored as a 2-bit integer from 0 to 3, for example: 0 = new alignment (zero selected grade); 1 = vertical alignment (score selected from cell above, modified by gap penalty in sequence); 2 = horizontal alignment (score selected from cell on left, modified by gap penalty in sequence); 3 = diagonal alignment (score selected from cell above and left, modified by nucleotide match or mismatch score). Optionally, it is possible to store the calculated score or scores for each matrix cell evaluated (beyond the maximum alignment score achieved, which is typically stored), however this is generally not necessary for backtracking and may require large amounts of memory. Performing backtracking then becomes following the evaluation vectors; When backtracking reaches a specific cell in the matrix, the next backtracking step determines the stored score vector for the specified cell, for example: 0 = end of backtracking; 1 = backward tracking in upward direction; 2 = reverse tracking in left direction; 3 = reverse tracking diagonally up and to the left.
[00297] Такие векторы оценки могут храниться в двумерной таблице, скомпонованной в соответствии с размерами матрицы выравнивания, где заполнены только элементы, соответствующие ячейкам, оцениваемым с помощью фронта волны. Как вариант, для экономии памяти, упрощения регистрации векторов оценки по мере их генерации и упрощения подгонки матриц выравнивания разных размеров, векторы оценки могут храниться в таблице, размер каждой строки которой подходит для хранения векторов оценки из одного фронта волны ячеек оценки, например, 128 битов для хранения 64 2-битовых векторов оценки фронта волны, состоящего из 64 ячеек, а количество строк равно максимальному числу шагов фронта волны в операции выравнивания.[00297] Such evaluation vectors may be stored in a two-dimensional table arranged according to the dimensions of the alignment matrix, where only the elements corresponding to the cells evaluated by the wavefront are populated. Alternatively, to save memory, make it easier to record score vectors as they are generated, and make it easier to fit alignment matrices of different sizes, the score vectors can be stored in a table whose each row is sized to accommodate score vectors from a single wavefront of the score cells, e.g., 128 bits to store 64 2-bit wavefront estimate vectors, consisting of 64 cells, and the number of rows is equal to the maximum number of wavefront steps in the alignment operation.
[00298] Дополнительно, в этом варианте можно регистрировать направления различных шагов фронта волны, например, сохраняя дополнительный, например, 129-й, бит в каждой строке таблицы, с кодированием, например, с помощью 0 вертикального шага фронта волны, предшествующий указанной позиции фронта волны, и с помощью 1 - горизонтального шага фронта волны, предшествующий указанной позиции фронта волны. Указанный дополнительный бит можно использовать при обратном отслеживании, чтобы следить за тем, каким позициям виртуальной матрицы оценки соответствуют векторы оценки в каждой строке таблицы, чтобы после каждого последовательного шага обратного отслеживания можно было извлекать правильный вектор оценки. Если шаг обратного отслеживания является вертикальным или горизонтальным, следующий вектор оценки следует извлекать из предыдущей строки таблицы, однако если шаг обратного отслеживания является диагональным, следующий вектор оценки следует извлекать из двух предыдущих строк, так как фронт волны должен был выполнить два шага для перехода от оценки любой ячейки к оценке ячейки, расположенной по диагонали справа внизу от нее.[00298] Additionally, in this embodiment, it is possible to record the directions of various wavefront steps, for example, by storing an additional, for example, 129th bit in each row of the table, encoding, for example, with 0 vertical wavefront step preceding the specified edge position waves, and using a 1 - horizontal wave front step preceding the specified wave front position. This additional bit can be used in backtracking to keep track of which positions of the virtual score matrix the score vectors in each row of the table correspond to, so that the correct score vector can be retrieved after each successive backtracking step. If the backtracking step is vertical or horizontal, the next estimate vector should be extracted from the previous row of the table, however if the backtracking step is diagonal, the next estimate vector should be extracted from the previous two rows, since the wavefront had to take two steps to move from the estimate any cell to the score of the cell located diagonally to its lower right.
[00299] В случае аффинной оценки гэпов информация о векторе оценки может быть расширена, например, до 4 битов на оцениваемую ячейку. Помимо, например, 2-битового индикатора направления выбора оценки могут быть добавлены два 1-битовых флага - флаг вертикального продления и флаг горизонтального продления. В соответствии с методами расширения аффинной оценки гэпов для алгоритмов Смита-Ватермана или Нидлмана-Вунша, или аналогичных алгоритмов выравнивания, для каждой ячейки, в дополнение к первичной оценке выравнивания, представляющей выравнивание с лучшей оценкой, заканчивающееся в указанной ячейке, должна быть сгенерирована «вертикальная оценка», соответствующая максимальной оценке выравнивания, достигающей указанной ячейки на последнем шаге в вертикальном направлении, а также «горизонтальную оценку», соответствующую максимальной оценке выравнивания, достигающей указанной ячейки на последнем шаге в горизонтальном направлении; при этом при вычислении любой из указанных трех оценок шаг в вертикальном направлении в ячейку может быть вычислен с использованием большего из двух значений: либо первичной оценки из ячейки сверху за вычетом штрафа на открытие гэпа, либо вертикальной оценки из ячейки сверху за вычетом штрафа на продление гэпа; а шаг в горизонтальном направлении в ячейку может быть вычислен с использованием большего из двух значений: либо первичной оценки из ячейки слева за вычетом штрафа на открытие гэпа, либо горизонтальной оценки из ячейки слева за вычетом штрафа на продление гэпа. В тех случаях, когда выбрана вертикальная оценка за вычетом штрафа на продление гэпа, должен быть установлен флаг вертикального продления в векторе оценки, например, установлено значение «1», а в ином случае он должен быть снят, например, установлено значение «0». В тех случаях, когда выбрана горизонтальная оценка за вычетом штрафа на продление гэпа, должен быть установлен флаг горизонтального продления в векторе оценки, например, установлено значение «1», а в ином случае он должен быть снят, например, установлено значение «0». При обратном отслеживании в случае аффинной оценки гэпов каждый раз, когда при обратном отслеживании происходит шаг в вертикальном направлении вверх от заданной ячейки, если для указанной ячейки установлен флаг вертикального продления в векторе оценки, следующий шаг обратного отслеживания также должен быть вертикальным, независимо от вектора оценки для ячейки сверху. Сходным образом, каждый раз, когда при обратном отслеживании происходит шаг в горизонтальном направлении налево от заданной ячейки, если для указанной ячейки установлен флаг горизонтального продления в векторе оценки, следующий шаг обратного отслеживания также должен быть горизонтальным, независимо от вектора оценки для ячейки слева.[00299] In the case of affine gap estimation, the estimation vector information can be expanded to, for example, 4 bits per cell being estimated. In addition to, for example, a 2-bit evaluation selection direction indicator, two 1-bit flags may be added, a vertical extension flag and a horizontal extension flag. According to affine gap estimation methods for Smith-Waterman or Needleman-Wunsch algorithms, or similar alignment algorithms, for each cell, in addition to the primary alignment score representing the best-scoring alignment ending in the specified cell, a "vertical" must be generated score" corresponding to the maximum alignment score reaching the specified cell at the last step in the vertical direction, and a "horizontal score" corresponding to the maximum alignment score reaching the specified cell at the last step in the horizontal direction; however, when calculating any of these three estimates, the vertical step into the cell can be calculated using the greater of two values: either the primary estimate from the cell above minus the penalty for opening a gap, or the vertical estimate from the cell above minus the penalty for extending the gap ; and the horizontal step into a cell can be calculated using the greater of either the raw estimate from the cell on the left minus the gap opening penalty, or the horizontal estimate from the cell on the left minus the gap extension penalty. In cases where vertical valuation minus the gap extension penalty is selected, the vertical extension flag in the valuation vector must be set, for example set to "1", and otherwise it must be cleared, for example set to "0". In cases where horizontal assessment minus gap extension penalty is selected, the horizontal extension flag in the assessment vector must be set, for example set to "1", and otherwise it must be cleared, for example set to "0". In backtracking, in the case of affine gap estimation, whenever backtracking takes a step in the vertical direction up from a given cell, if the specified cell has the vertical extension flag set in the estimation vector, the next backtracking step must also be vertical, regardless of the estimation vector for the cell on top. Similarly, whenever backtracking takes a step in the horizontal direction to the left of a given cell, if the horizontal extension flag in the score vector is set for that cell, the next backtrack step must also be horizontal, regardless of the score vector for the cell to the left.
[00300] Соответственно, такая таблица векторов оценки, например, 129 битов на строку для 64 ячеек при использовании линейной оценки гэпов, или 257 битов на строку для 64 ячеек при использовании аффинной оценки гэпов, с некоторым числом (NR) строк, подходит для обеспечения обратного отслеживания после завершения оценки выравнивания, если фронт волны оценки выполняет NR шагов или менее. Например, при выравнивании ридов из 300 нуклеотидов число необходимых шагов фронта волны может быть всегда меньше 1024, таким образом, размер таблицы может составлять 257×1024 битов, или приблизительно 32 килобайта, что во многих случаях может представлять собой разумный объем локальной памяти в составе ИС. Однако в том случае, если требуется выравнивание очень длинных ридов, например, из 100000 нуклеотидов, требования к памяти для векторов оценки могут быть достаточно значительными, например, 8 мегабайт, что может быть очень затратным для включения в качестве локальной памяти в состав ИС. Для такого обеспечения информация о векторах оценки может регистрироваться в память большой емкости вне ИС, например, DRAM, однако в этом случае требования к полосе пропускания, например, 257 битов на тактовый цикл на модуль выравнивания, могут быть чрезмерно большими, что может сдерживать работу и резко снижать производительность выравнивателя.[00300] Accordingly, such a table of estimation vectors, for example, 129 bits per row for 64 cells when using linear gap estimation, or 257 bits per row for 64 cells when using affine gap estimation, with some number (NR) of rows, is suitable to provide backtracking after completion of the alignment evaluation if the evaluation wavefront takes NR steps or less. For example, when aligning reads of 300 nucleotides, the number of wavefront steps required may always be less than 1024, so the table size may be 257 x 1024 bits, or approximately 32 kilobytes, which in many cases may represent a reasonable amount of local memory within the IC . However, if the alignment of very long reads, for example 100,000 nucleotides, is required, the memory requirements for the score vectors can be quite significant, for example 8 megabytes, which can be very expensive to include as local memory in the IC. To provide this support, the evaluation vector information may be recorded in a large capacity off-IC memory, such as DRAM, but in this case the bandwidth requirements, such as 257 bits per clock cycle per equalizer, may be prohibitive, which may constrain operation and performance. sharply reduce the performance of the equalizer.
[00301] Соответственно, желательно иметь способ отработки векторов оценки до завершения выравнивания, позволяющий ограничить требования к их хранению, например, способ выполнения инкрементных обратных отслеживаний, с генерацией инкрементных частичных строк CIGAR, например, из начальных частей истории векторов оценки выравнивания, чтобы потом такие начальные части векторов оценки могли быть удалены. Трудность состоит в том, что обратное отслеживание, в принципе, должно начинаться с конца выравнивания в ячейке с максимальной оценкой, неизвестной до завершения оценки выравнивания, поэтому любое обратное отслеживание, начатое до завершения выравнивания, может начинаться с неверно выбранной ячейки, располагающейся не на потенциальном итоговом пути оптимального выравнивания.[00301] Accordingly, it would be desirable to have a way of processing the score vectors prior to completion of the alignment so as to limit their storage requirements, for example, a way to perform incremental backtraces, generating incremental partial CIGAR rows, for example, from the initial parts of the history of the alignment score vectors, so that later the initial parts of the evaluation vectors could be removed. The difficulty is that backtracking, in principle, must start from the end of the alignment at a cell with a maximum score unknown until the end of the alignment evaluation, so any backtracking started before the alignment is complete may start from an incorrectly selected cell that is not on the potential the final path of optimal alignment.
[00302] Соответственно, предложен способ для выполнения инкрементного обратного отслеживания на основе частичной информации о выравнивании, например, содержащей частичную информацию о векторах оценки для уже оцененных ячеек матрицы выравнивания. Исходя из границы выполненного к текущему моменту выравнивания, например, конкретной оцененной позиции фронта волны, начинают обратное отслеживание из всех позиций ячеек на указанной границе. Такое обратное отслеживание из всех ячеек на границе может быть выполнено последовательно или, предпочтительным образом, в частности, в случае аппаратной реализации, все обратные отслеживания выполняют совместно. Нет необходимости в выделении нотаций выравнивания, например, строк CIGAR, указанных нескольких обратных отслеживаний; необходимо только определить, через какие позиции матрицы выравнивания они проходят при обратном отслеживании. При реализации одновременного обратного отслеживания от границы оценивания можно использовать ряд 1-битовых регистров, соответствующих числу ячеек выравнивания, все из которых установлены в исходное значение, например, «1», которые показывают, проходит ли какое-либо из обратных отслеживаний через соответствующую позицию. Для каждого шага одновременного обратного отслеживания могут быть исследованы векторы оценки, соответствующие всем текущим значениям «1» в указанных регистрах, например, из одной строки таблицы векторов оценки, для определения следующего шага обратного отслеживания, соответствующего каждому значению «1» в указанных регистрах, ведущего в следующую позицию для каждого значения «1» в указанных регистрах, для следующего шага одновременного обратного отслеживания.[00302] Accordingly, a method is provided for performing incremental backtracking based on partial alignment information, for example, containing partial information about evaluation vectors for already evaluated alignment matrix cells. Based on the boundary of the alignment performed to date, for example, a specific estimated position of the wave front, back tracking begins from all cell positions on the specified boundary. Such backtracking from all cells on the edge can be performed sequentially or, preferably, particularly in the case of a hardware implementation, all backtracking is performed together. There is no need to highlight alignment notations, such as CIGAR strings specified by multiple backtracks; it is only necessary to determine which positions of the alignment matrix they pass through during backtracking. When implementing simultaneous backtracking from an evaluation boundary, a series of 1-bit registers corresponding to the number of alignment cells, all set to an initial value such as "1", can be used, which indicate whether any of the backtracking passes through the corresponding position. For each simultaneous backtracking step, the score vectors corresponding to all current "1" values in specified registers, for example, from a single row of the score vector table, can be examined to determine the next backtracking step corresponding to each "1" value in the specified registers leading to the next position for each value of "1" in the specified registers, for the next step of simultaneous backtracking.
[00303] Важно отметить достаточно большую вероятность слияния нескольких значений «1» в регистрах в общие позиции, соответствующие нескольким одновременным обратным отслеживаниям, сливающимся на общих путях обратного отслеживания. После того как два или более одновременных отслеживаний сливаются, они остаются слитыми неограниченное время, поскольку с этого момента используют информацию вектора оценки из одной и той же ячейки. Согласно наблюдениям, из эмпирических соображений и по теоретическим причинам, с высокой вероятностью все одновременные обратные отслеживания сливаются в сингулярный путь обратного отслеживания за относительно небольшое число шагов обратного отслеживания, например, число, с небольшой кратностью, такой как 8, превышающее число ячеек оценки во фронте волны. Например, в случае фронта волны из 64 ячеек, с высокой вероятностью все обратные отслеживания с заданной границы фронта волны сольются в один путь обратного отслеживания не более чем за 512 шагов обратного отслеживания. Как вариант, также возможно и нередко происходит завершение всех обратных отслеживаний в пределах указанного числа, например, 512, шагов обратного отслеживания.[00303] It is important to note that it is quite likely that multiple "1" values in the registers will merge into common positions corresponding to multiple simultaneous backtracks merging on common backtrack paths. Once two or more simultaneous traces are merged, they remain merged indefinitely because they use the score vector information from the same cell from that point on. It has been observed, for both empirical and theoretical reasons, that it is highly likely that all simultaneous backtracks merge into a singular backtrack path in a relatively small number of backtrack steps, e.g., a number with a small multiple such as 8 greater than the number of evaluation cells in the front waves. For example, in the case of a 64-cell wavefront, there is a high probability that all backtracks from a given wavefront boundary will merge into a single backtrack path in no more than 512 backtrack steps. Alternatively, it is also possible and not uncommon to complete all tracebacks within a specified number, for example 512, of traceback steps.
[00304] Соответственно, несколько одновременных обратных отслеживаний может быть выполнено с границы оценивания, например, например, с оцененной позиции фронта волны, достаточно далекой, чтобы все они либо завершились, либо слились в один путь обратного отслеживания, например, за 512 шагов обратного отслеживания или менее. Если все они сливаются в сингулярный путь обратного отслеживания, то выполнение инкрементного обратного отслеживания на основании частичной информации о выравнивании возможно с местоположения в матрице оценки, где они сливаются, или на любом расстоянии в обратном направлении вдоль сингулярного пути обратного отслеживания. Дополнительно начинают обратное отслеживание с точки слияния, или на любом расстоянии в обратном направлении, с использованием обычных способов одиночного обратного отслеживания, в том числе регистрации соответствующей нотации выравнивания, например, частичной строки CIGAR. Указанное инкрементное обратное отслеживание и, например, частичная строка CIGAR должны быть частью любого возможного окончательного обратного отслеживания, и, например, полной строки CIGAR, получаемых после завершения выравнивания, за исключением случаев, когда такое окончательное обратное отслеживание заканчивается до достижения границы оценивания, где началось одновременное обратное отслеживание, поскольку, если оно достигает границы оценивания, оно должно следовать по одному из путей одновременного обратного отслеживания и сливаться с сингулярным путем обратного отслеживания, к этому моменту инкрементно выделенным.[00304] Accordingly, multiple simultaneous backtracks can be performed from an estimation boundary, such as, for example, an estimated wavefront position far enough away that they all either terminate or merge into a single backtrack path, for example, in 512 backtrack steps or less. If they all merge into a singular backtracking path, then performing incremental backtracking based on partial alignment information is possible from the location in the evaluation matrix where they merge, or any distance back along the singular backtracking path. Additionally, start backtracking at the merge point, or any distance back, using conventional single backtracking techniques, including registering an appropriate alignment notation, such as a partial CIGAR string. The specified incremental backtrack and, for example, a partial CIGAR row shall be part of any eventual final backtrack, and, for example, a full CIGAR row, received after completion of the alignment, unless such final backtrack ends before reaching the evaluation boundary where it began simultaneous backtracking, since if it reaches the estimation boundary, it must follow one of the simultaneous backtracking paths and merge with the singular backtracking path that has been incrementally allocated by that point.
[00305] Соответственно, все векторы оценки для областей матрицы, соответствующих инкрементно выделенному обратному отслеживанию, например, во всех строках таблицы для позиций фронта волны, предшествующих началу выделенного сингулярного обратного отслеживания, могут быть безопасно отброшены. Если при осуществлении окончательного обратного отслеживания из ячейки с максимальной оценки оно заканчивается до достижения границы оценивания (или, как вариант, если оно заканчивается до достижения начала выделенного сингулярного обратного отслеживания), нотация инкрементного выравнивания, например, частичная строка CIGAR, может быть отброшена. Если окончательное обратное отслеживание продолжается до начала выделения сингулярного обратного отслеживания, его нотация выравнивания, например, строка CIGAR, может затем быть присоединена к нотации инкрементного выравнивания, например, частичной строке CIGAR.[00305] Accordingly, all score vectors for matrix regions corresponding to incrementally allocated backtracking, for example, in all table rows for wavefront positions preceding the start of the allocated singular backtracking, can be safely discarded. If, when performing a final backtrack from a cell with a maximum score, it ends before the score boundary is reached (or alternatively, if it ends before the start of the allocated singular backtrack is reached), the incremental alignment notation, such as the partial CIGAR string, may be discarded. If the final backtracking continues before the start of the singular backtracking allocation, its alignment notation, such as a CIGAR string, can then be appended to an incremental alignment notation, such as a partial CIGAR string.
[00306] Кроме того, при очень длинном выравнивании процесс выполнения одновременного обратного отслеживания с границы оценивания, например, оцененной позиции фронта волны, до тех пор, пока все обратные отслеживания не завершатся или не сольются, с последующим сингулярным обратным отслеживанием с выделением нотации выравнивания, может быть повторен несколько раз, начиная с различных последовательных границ оценивания. Нотация инкрементного выравнивания, например, частичная строка CIGAR, из каждого последовательного инкрементного обратного отслеживания может затем быть присоединена к аккумулированным предыдущим нотациям выравнивания, если новое одновременное обратное отслеживание или сингулярное обратное отслеживание не заканчивается рано; в этом случае аккумулированные предыдущие нотации выравнивания могут быть отброшены. Потенциальное окончательное обратное отслеживание сходным образом присоединяет собственную нотацию выравнивания к самым последним аккумулированным нотациям выравнивания для полного описания обратного отслеживания, например, строки CIGAR.[00306] Additionally, in very long alignment, the process of performing simultaneous backtracking from an estimation boundary, such as the estimated wavefront position, until all backtracking has completed or merged, followed by a singular backtracking highlighting the alignment notation, can be repeated several times, starting from different successive evaluation boundaries. Incremental alignment notation, such as a partial CIGAR string, from each successive incremental backtracking can then be appended to the accumulated previous alignment notations if the new simultaneous backtracking or singular backtracking does not end early; in this case, accumulated previous alignment notations may be discarded. A potential final backtracking similarly appends its own alignment notation to the most recent accumulated alignment notations to fully describe the backtracking, such as a CIGAR string.
[00307] Соответственно, указанным образом объем памяти для хранения векторов оценки может быть ограничен, при условии, что одновременные обратные отслеживания всегда сливаются между собой за ограниченное число шагов, например, 512 шагов. В редких случаях, когда одновременные обратные отслеживания не сливаются и не заканчиваются за ограниченное число шагов, могут быть предприняты различные исключительные действия, в том числе отказ от текущего выравнивания как от ошибочного или его повторение с бóльшим ограничением или без ограничения, вероятно, другим или традиционным способом, таким как сохранение всех векторов оценки для полного выравнивания, например, во внешней DRAM. В одном варианте может быть целесообразно отказаться от такого выравнивания как от ошибочного ввиду его чрезвычайной редкости, и еще реже такое ошибочное выравнивание представляет собой выравнивание с наилучшей оценкой для включения в отчет о выравнивании.[00307] Accordingly, the amount of memory for storing the evaluation vectors can be limited in this manner, provided that simultaneous backtraces are always merged with each other in a limited number of steps, for example, 512 steps. In rare cases where simultaneous backtraces do not merge and complete in a limited number of steps, various exceptional actions may be taken, including discarding the current alignment as erroneous or repeating it with a larger constraint or no constraint, likely different or traditional in a manner such as storing all score vectors for full alignment, for example, in external DRAM. In one embodiment, it may be appropriate to discard such an alignment as an error due to its extreme rarity, and it is even rarer for such an error alignment to be the best-scoring alignment for inclusion in the alignment report.
[00308] В необязательном варианте хранение вектора оценки может быть разделено, физически или логически, на ряд отдельных блоков, например, по 512 строк каждый, и конечная строка в каждом блоке может быть использована в качестве границы оценивания для начала одновременного обратного отслеживания. Необязательно может требоваться окончание или слияние одновременного обратного отслеживания в пределах одного блока, например, 512 шагов. Необязательно, если одновременные обратные отслеживания сливаются за меньшее число шагов, слитое обратное отслеживание может, тем не менее, продолжаться по всему блоку, до начала выделения сингулярного обратного отслеживания в предыдущем блоке. Соответственно, после того, как векторы оценки полностью записаны в блок N и начинают записываться в блок N+1, одновременное обратное отслеживание может начинаться в блоке N, с последующим сингулярным обратным отслеживанием и выделением нотации выравнивания в блоке N-1. Если все скорости одновременного обратного отслеживания, сингулярного обратного отслеживания и оценки выравнивания аналогичны или идентичны, и все они могут быть выполняться одновременно, например, в параллельном аппаратном обеспечении в ИС, то сингулярное обратное отслеживание в блоке N-1 может происходить одновременно с заполнением векторами оценки блока N+2, а когда нужно будет приступать к заполнению блока N+3, блок N-1 может быть освобожден и возвращен в работу.[00308] Optionally, the storage of the score vector can be divided, physically or logically, into a number of separate blocks, for example, 512 rows each, and the ending row in each block can be used as a score boundary to begin simultaneous backtracking. It may not necessarily be necessary to terminate or merge simultaneous backtracking within a single block, for example 512 steps. Optionally, if simultaneous backtracks are merged in a smaller number of steps, the merged backtrack can still continue throughout the entire block until the singular backtrack begins to be extracted in the previous block. Accordingly, after the evaluation vectors are completely written to block N and begin to be written to block N+1, simultaneous backtracking can begin in block N, followed by singular backtracking and allocation of the alignment notation in block N-1. If the rates of simultaneous backtracking, singular backtracking, and alignment evaluation are all similar or identical, and they can all be performed simultaneously, such as in parallel hardware in an IC, then the singular backtracking in block N-1 can occur simultaneously while populating the evaluation vectors block N+2, and when it is time to start filling block N+3, block N-1 can be released and returned to work.
[00309] Соответственно, при такой реализации могут применяться как минимум 4 блока векторов оценки, которые могут быть использованы циклично. Соответственно, общий объем для хранения векторов оценки для модуля выравнивателя может включать 4 блока по 257×512 битов каждый, например, или приблизительно 64 килобайта. В одном варианте, если текущая максимальная оценка выравнивания соответствует более раннему блоку, чем текущая позиция фронта волны, указанный блок и предыдущий блок может быть сохранен, а не возвращен в работу, чтобы окончательное обратное отслеживание могло начинаться с указанной позиции, если она остается позицией с максимальной оценкой; сохранение дополнительных 2 блоков указанным образом сдвигает минимум, например, до 6 блоков. В другом варианте для обеспечения перекрывающихся выравниваний, при фронте волны оценки, постепенно переходящем от одной матрицы выравнивания к следующей согласно описанию выше, могут использоваться дополнительные блоки, например, 1 или 2 дополнительных блоков, например, в общей сложности 8 блоков, например, приблизительно 128 килобайтов. Соответственно, если такое ограниченное число число блоков, например, 4 блока или 8 блоков, используют циклично, возможны выравнивание и обратное отслеживание ридов произвольной длины, например, 100000 нуклеотидов, или всей хромосомы, без использования внешней памяти для векторов оценки.[00309] Accordingly, with such an implementation, at least 4 blocks of evaluation vectors can be used, which can be used cyclically. Accordingly, the total storage capacity for the evaluation vectors for the equalizer module may include 4 blocks of 257×512 bits each, for example, or approximately 64 kilobytes. In one embodiment, if the current maximum alignment estimate corresponds to an earlier block than the current wavefront position, the specified block and the previous block may be retained rather than returned to operation so that the final backtracking can begin at the specified position if it remains the position with maximum rating; saving an additional 2 blocks in this manner shifts the minimum to, for example, 6 blocks. In another embodiment, additional blocks, for example 1 or 2 additional blocks, for example a total of 8 blocks, for example approximately 128 kilobytes. Accordingly, if such a limited number of blocks, for example 4 blocks or 8 blocks, are used in a round-robin manner, alignment and backtracking of reads of arbitrary length, for example 100,000 nucleotides, or an entire chromosome, is possible without the use of external memory for score vectors.
[00310] Согласно описанию выше, определенные области ДНК представлены генами, которые кодируют белки или функциональную РНК. Каждый ген существует на одной нити двунитевой двойной спирали ДНК, часто в виде ряда экзонов (кодирующих сегментов), разделенных интронами (некодирующими сегментами). Некоторые гены содержат единственный экзон, но большинство содержит несколько экзонов (разделенных интронами), а некоторые содержат сотни экзонов или тысячи экзонов. Длина экзонов обычно составляет несколько сотен нуклеотидов, но они могут быть и меньшей длины, до одного нуклеотида, или большей длины, до десятков, сотен или тысяч нуклеотидов. Длина интронов обычно составляет тысячи нуклеотидов, а у некоторых превосходит миллион нуклеотидов.[00310] As described above, certain regions of DNA are represented by genes that encode proteins or functional RNA. Each gene exists on a single strand of a double-stranded DNA double helix, often as a series of exons (coding segments) separated by introns (non-coding segments). Some genes contain a single exon, but most contain several exons (separated by introns), and some contain hundreds of exons or thousands of exons. Exons are usually several hundred nucleotides in length, but they can be shorter, up to one nucleotide, or longer, up to tens, hundreds, or thousands of nucleotides. The length of introns is usually thousands of nucleotides, and some exceed a million nucleotides.
[00311] Ген может быть транскрибирован РНК-полимеразными ферментами в матричную РНК (мРНК) или другие типы РНК. Непосредственно полученный РНК-транскрипт представляет собой одноцепочечную копию гена, за исключением того, что тиминовые (T) основания ДНК транскрибированы в урациловые (U) основания РНК. Однако копии интронов непосредственно после продуцирования указанной копии, как правило, подвергаются сплайсингу сплайсингсомами, оставляя копии экзонов сцепленными на «стыках сплайсинга» (которые после этого не являются прямо очевидными). Сплайсинг РНК не всегда происходит одинаково. Иногда сплайсируются один или более экзонов, а иногда стыки сплайсинга не попадают на наиболее распространенные границы интронов/экзонов. Соответственно, один ген может продуцировать несколько разных транскрибированных РНК-сегментов в результате этого процесса, иногда называемого альтернативным сплайсингом.[00311] The gene can be transcribed by RNA polymerase enzymes into messenger RNA (mRNA) or other types of RNA. The directly produced RNA transcript is a single-stranded copy of the gene, except that the thymine (T) bases of the DNA are transcribed into the uracil (U) bases of RNA. However, copies of introns immediately after producing said copy tend to be spliced by splicingsomes, leaving copies of exons linked at "splice junctions" (which are not directly obvious thereafter). RNA splicing does not always occur the same way. Sometimes one or more exons are spliced, and sometimes the splice junctions do not fall at the most common intron/exon boundaries. Accordingly, a single gene can produce several different transcribed RNA segments through this process, sometimes called alternative splicing.
[00312] Сплайсированная мРНК транспортируется (у эукариот) из клеточного ядра в рибосому, которая декодирует ее в белок, при этом каждая группа из трех нуклеотидов РНК (кодон) кодирует одну аминокислоту. Указанным образом, гены в ДНК служат в качестве оригиналов инструкций для получения белков.[00312] Spliced mRNA is transported (in eukaryotes) from the cell nucleus to the ribosome, which decodes it into protein, with each group of three RNA nucleotides (codon) encoding one amino acid. In this way, genes in DNA serve as the original instructions for making proteins.
[00313] В основном сплайсинг РНК происходит на стабильных границах экзонов/интронов, которые характеризуются типичным составом последовательностей, в частности, возле концов интронов. В частности, первые два и последние два основания интрона, называемые мотивом интрона, имеют одну из всего 3 последовательностей «канонических» мотивов интрона в подавляющем большинстве случаев (примерно 99,9%). Наиболее распространенным каноническим мотивом интрона является «GT/AG», что означает, что первые два основания интрона представлены «G» и «T», а последние два интрона представлены «A» и «G». Мотив GT/AG встречается примерно в 98,8% случаев. Другие канонические мотивы интронов представлены GC/AG, который встречается примерно в 1,0% случаев, и AT/AC, который встречается примерно в 0,1% случаев. Указанные канонические мотивы и показатели их распространенности достаточно стабильны у разных видов, однако не обязательно универсальны.[00313] Most RNA splicing occurs at stable exon/intron boundaries, which are characterized by typical sequence composition, particularly near the ends of introns. Specifically, the first two and last two bases of an intron, called an intron motif, have one of only 3 "canonical" intron motif sequences in the vast majority of cases (approximately 99.9%). The most common canonical intron motif is "GT/AG", which means that the first two bases of the intron are represented by "G" and "T", and the last two introns are represented by "A" and "G". The GT/AG motif occurs in approximately 98.8% of cases. Other canonical intronic motifs are GC/AG, which occurs in approximately 1.0% of cases, and AT/AC, which occurs in approximately 0.1% of cases. The indicated canonical motifs and their prevalence rates are quite stable in different species, but are not necessarily universal.
[00314] Не все гены транскрибируются, а транскрипция транскрибируемых генов может происходить с разной скоростью. Многие факторы могут влиять на то, будет ли заданный ген транскрибироваться в РНК, и насколько часто. Некоторые из указанных факторов наследуются, некоторые варьируют в зависимости от специализации клеток в разных тканях, а некоторые варьируют с течение времени под воздействием условий окружающей среды или заболеваний. Соответственно, две клетки с совершенно одинаковой ДНК могут продуцировать достаточно разные типы и количества белков и функциональной РНК. Из-за этого секвенирование (чтение) РНК, присутствующей в одной или более клеток, дает информацию, отличающуюся от информации при секвенировании ДНК. Более полную картину состояния и активности клеток обеспечивает комбинация секвенирования ДНК и секвенирования РНК.[00314] Not all genes are transcribed, and transcription of transcribed genes can occur at different rates. Many factors can influence whether a given gene will be transcribed into RNA, and how often. Some of these factors are inherited, some vary depending on the specialization of cells in different tissues, and some vary over time under the influence of environmental conditions or diseases. Accordingly, two cells with exactly the same DNA can produce quite different types and amounts of proteins and functional RNA. Because of this, sequencing (reading) the RNA present in one or more cells produces different information than sequencing DNA. A more complete picture of the state and activity of cells is provided by a combination of DNA sequencing and RNA sequencing.
[00315] Секвенирование полного транскриптома РНК обычно проводят, сначала выбирая целевую РНК, например, кодирующую белок РНК, а затем используя ферменты с активностью обратной транскриптазы для обратного преобразования РНК-сегментов в цепи комплементарной ДНК (кДНК). Указанная ДНК может быть амплифицирована с применением полимеразной цепной реакции (ПЦР) и/или фрагментированы с получением требуемого распределения длин последовательностей. Затем фрагменты ДНК секвенируют на секвенаторе ДНК, таком как секвенатор нового поколения, использующий «метод дробовика».[00315] Whole RNA transcriptome sequencing is typically performed by first selecting a target RNA, such as a protein-coding RNA, and then using enzymes with reverse transcriptase activity to convert the RNA segments back into complementary DNA (cDNA) strands. Said DNA can be amplified using polymerase chain reaction (PCR) and/or fragmented to obtain the desired sequence length distribution. The DNA fragments are then sequenced on a DNA sequencer, such as a next generation sequencer, using a "shotgun" method.
[00316] Полученные риды ДНК представляют собой либо обратно-комплементарные, либо прямые копии исходных цепей РНК, за исключением того, что «U», аналогично вышеописанному, заменяют на «T». При получении некоторых библиотек и выполнении некоторых протоколов секвенирования ориентация секвенированных цепей ДНК относительно оригинальной РНК может быть сохранена или помечена; но в обычных протоколах приблизительно 50% секвенированной ДНК обратно-комплементарна оригинальной РНК, без прямого указания на ориентацию (хотя имеются косвенные указания).[00316] The resulting DNA reads are either reverse complementary or direct copies of the original RNA strands, except that the “U” is replaced by a “T” as described above. When preparing some libraries and performing some sequencing protocols, the orientation of the sequenced DNA strands relative to the original RNA may be preserved or labeled; but in conventional protocols, approximately 50% of the DNA sequenced is reverse complementary to the original RNA, with no direct indication of orientation (although there are indirect indications).
[00317] Риды ДНК из протоколов РНК-секвенирования (RNA-seq) отличаются от получаемых при полногеномном или полноэкзомном секвенировании ДНК другими способами. Во-первых, кроме загрязняющих примесей, секвенируется только транскрибированная РНК, соответственно, некодирующая ДНК и неактивные гены, как правило, не появляются. Во-вторых, количество секвенированных ридов, соответствующих различным генам, связано с показателями биологической транскрипции указанных генов. В-третьих, в результате сплайсинга интронов, в ридах РНК-секвенирования наблюдается тенденция к пропуску интронных (некодирующих) сегментов в составе генов.[00317] DNA reads from RNA sequencing (RNA-seq) protocols are different from those obtained from whole genome or whole exome DNA sequencing by other methods. First, except for contaminants, only transcribed RNA is sequenced, so non-coding DNA and inactive genes generally do not appear. Secondly, the number of sequenced reads corresponding to different genes is related to the biological transcription rates of these genes. Third, as a result of intron splicing, RNA-seq reads tend to skip intronic (non-coding) segments within genes.
[00318] Риды РНК-секвенирования обычно обрабатывают способом, достаточно выраженно отличающимся от обработки ридов ДНК. Хотя оба типа ридов, как правило, картируют на референсный геном и выравнивают с ним, техники картирования и выравнивания ДНК и РНК различаются (см. следующий раздел). После картирования и выравнивания риды обычно сортируют по позициям картирования на референсе, в случае как ДНК, так и РНК. Двойная маркировка, которая может быть необязательно использована при обработке ДНК, обычно не используется для данных РНК-секвенирования.[00318] RNA-seq reads are typically processed in a manner quite distinct from DNA reads. Although both types of reads are typically mapped to and aligned to a reference genome, the techniques for mapping and aligning DNA and RNA differ (see next section). After mapping and alignment, reads are usually sorted by reference mapping positions, in the case of both DNA and RNA. Double labeling, which may not necessarily be used in DNA processing, is not typically used for RNA-seq data.
[00319] После этого риды ДНК обычно обрабатывают с помощью определителя вариантов для идентификации различия между ДНК образца и референсным геномом. Риды РНК-секвенирования обычно не используют для определения вариантов, хотя иногда это делается. Чаще выровненные и сортированные риды РНК анализируют, чтобы определить, какие гены были экспрессированы и в каких относительных количествах, или какие из различных транскриптов в результате альтернативного сплайсинга были продуцированы и в каких относительных количествах. Указанный анализ обычно включает подсчет количества ридов, которые выравниваются с различными генами, экзонами и т.п., и может также включать сборку транскриптов (на основе референсов или de novo) чтобы на основании относительно коротких ридов РНК-секвенирования сделать вывод о вероятном сплайсинге более длинных транскриптов РНК из ДНК.[00319] The DNA reads are then typically processed using a variant detector to identify differences between the sample DNA and the reference genome. RNA-seq reads are not typically used to identify variants, although they are sometimes done. More often, aligned and sorted RNA reads are analyzed to determine which genes were expressed and in what relative amounts, or which of the various alternatively spliced transcripts were produced and in what relative amounts. This analysis typically involves counting the number of reads that are aligned to different genes, exons, etc., and may also involve assembly of transcripts (reference-based or de novo) to infer from relatively short RNA-seq reads that splicing is more likely to occur. long RNA transcripts from DNA.
[00320] Анализ экспрессии генов, экзонов или транскриптов часто расширяют до анализа дифференциальной экспрессии, при котором данные РНК секвенирования нескольких образцов, часто из двух или более разных классов (субпопуляций или фенотипов), сравнивают, чтобы определить степень различий экспрессии указанных генов, экзонов или транскриптов в разных классах. Указанный анализ может включать вычисление правдоподобия «нулевой гипотезы», заключающейся в том, что соответствующие уровни экспрессии одинаковы в разных классах, а также расчет «кратности изменений» экспрессии в разных образцах, например, 8-кратного или 10-кратного изменения, или изменений с большей кратностью.[00320] Gene, exon, or transcript expression analysis is often extended to differential expression analysis, in which RNA sequencing data from multiple samples, often from two or more different classes (subpopulations or phenotypes), are compared to determine the extent to which the expression of said genes, exons, or transcripts differs. transcripts in different classes. This analysis may involve calculating the likelihood of the “null hypothesis” that the respective expression levels are the same across classes, as well as calculating the “fold change” of expression across samples, such as an 8-fold or 10-fold change, or changes with higher multiplicity.
[00321] Во многих вариантах применения секвенирования ДНК или РНК на ранней стадии обработки проводят картирование ридов на референсный геном и выравнивание с ним. Обычно используют ДНК-ориентированный референсный геном при секвенировании как ДНК, так и РНК, содержащий «T», а не «U», в частности, с учетом того, что РНК-секвенирование обычно включает обратную транскрипцию в кДНК перед секвенированием. В случае РНК-секвенирования, как и при полноэкзомном секвенировании в этом отношении, референсный геном теоретически может быть ограничен известными кодирующими областями или областями вблизи кодирующей ДНК. Тем не менее, обычной практикой является картирование и выравнивание целого референсного генома для исследуемого организма.[00321] In many DNA or RNA sequencing applications, reads are mapped to and aligned to a reference genome early in the processing. It is common to use a DNA-based reference genome when sequencing both DNA and RNA, containing a "T" rather than a "U", particularly since RNA-sequencing typically involves reverse transcription into cDNA prior to sequencing. In the case of RNA sequencing, as with whole exome sequencing for that matter, the reference genome could theoretically be limited to known coding regions or regions near the coding DNA. However, it is common practice to map and align the entire reference genome for the organism of interest.
[00322] Самое большое отличие, необходимое для подходящего для РНК картирующего устройства/ выравнивателя заключается в способности обрабатывать стыки сплайсинга. Поскольку риды РНК-секвенирования соответствуют сегментам транскрибированной и сплайсированной РНК, обычно рид пересекает один или более стыков сплайсинга. Применительно к ДНК-ориентированному референсному геному это означает, что первая часть рида происходит из первого экзона и должна быть картирована на него, а вторая часть рида должна быть картирована на второй экзон, и т.д. Например, в риде длиной 100 оснований первые 40 оснований могут быть взяты из экзона на хромосоме 3 со смещением 2 345 000, а остальные 60 оснований могут быть взяты из другого экзона, расположенного на расстоянии 100000 оснований, начинающегося на хромосоме со смещением 2 445 040. Выравнивание для такого рида может быть представлено позицией картирования Chr3:2345000 и строкой выравнивания CIGAR «40M100000N60M», в которой «40M» и «60M» представляют части, выровненные относительно соответствующих экзонов, а «100000N» представляет интрон длиной 100000 оснований, и указанные 100000 оснований референса пропускаются при выравнивании рида. (Абстрактно говоря, указанную строку CIGAR можно рассматривать как эквивалентную «40M100000D60M», где «100000D» представляет делецию размером 100000 оснований из референса, однако предполагаемые сплайсированные интроны принято обозначать как «N» в отличие от делеций предполагаемых мутаций или ошибок секвенирования, обозначаемых как «D».)[00322] The biggest difference required for a suitable RNA mapper/aligner is the ability to handle splice junctions. Because RNA-seq reads correspond to segments of transcribed and spliced RNA, the read typically crosses one or more splice junctions. When applied to a DNA-based reference genome, this means that the first part of the read comes from the first exon and should be mapped to it, and the second part of the read should be mapped to the second exon, etc. For example, in a read 100 bases long, the first 40 bases could be taken from an exon on chromosome 3 at offset 2,345,000, and the remaining 60 bases could be taken from another exon 100,000 bases away, starting on chromosome at offset 2,445,040. The alignment for such a read can be represented by the mapping position Chr3:2345000 and the CIGAR alignment string "40M100000N60M", in which "40M" and "60M" represent the parts aligned to the corresponding exons, and "100000N" represents the 100000 base intron, and the 100000 indicated reference bases are skipped when aligning the read. (Abstractly speaking, the specified CIGAR string can be considered equivalent to "40M100000D60M", where "100000D" represents a 100,000 base deletion from the reference, however putative spliced introns are commonly denoted as "N" as opposed to deletions of putative mutations or sequencing errors denoted as " D".)
[00323] Практическое различие между событиями CIGAR «N» (интрон) и «D» (делеция) связано с их типичной длиной. Делеции редко бывают длиннее 50 оснований и, таким образом, успешно обнаруживаются и точно позиционируются при использовании алгоритма Смита-Ватермана или аналогичных алгоритмов для выравнивания последовательностей. Длина интронов часто составляет несколько тысяч оснований или даже миллион оснований или более, и использование выравнивателей типа Смита-Ватермана для детекции таких длинных гэпов выравнивания непрактично. Следовательно, первоначальное исследование стыков сплайсинга в большей мере относится к «картированию», чем к «выравниванию».[00323] The practical difference between CIGAR "N" (intron) and "D" (deletion) events is related to their typical length. Deletions are rarely longer than 50 bases and are thus successfully detected and accurately positioned when using the Smith-Waterman algorithm or similar algorithms for sequence alignment. Introns are often several thousand bases in length or even a million bases or more, and using Smith-Waterman-type aligners to detect such long alignment gaps is impractical. Therefore, initial exploration of splice junctions is more about “mapping” than “alignment.”
[00324] Проблема картирования состоит в том, что каждый рид может быть разделен на сегменты экзона на неизвестных границах, и различные сегменты экзона, вероятно, будут картированы на далеко отстоящие друг от друга геномные местоположения, которые потребуется определять индивидуально. Методики картирования сегментов экзонов на соответствующие им местоположения в референсе могут быть аналогичны методикам картирования целого рида на один референсный сегмент, однако картирование со сплайсингом (первое из перечисленных) является более сложным, поскольку каждый экзон может быть значимо короче целого рида, и, соответственно, содержит значительно меньше информации для направления картирующего устройства. Так, длина одиночного экзона может составлять всего одно (1) основание, такое как «G», и без дополнительной информации будет нецелесообразным пытаться определить, куда должно быть картировано указанное одиночное основание при потенциальном диапазоне длин интронов, включающем миллионы оснований.[00324] The problem with mapping is that each read may be divided into exon segments at unknown boundaries, and different exon segments are likely to be mapped to widely separated genomic locations that will need to be determined individually. Methods for mapping exon segments to their corresponding locations in the reference can be similar to methods for mapping an entire read to one reference segment, however, mapping with splicing (the first of these) is more complex, since each exon can be significantly shorter than the entire read, and, accordingly, contains significantly less information to guide the mapping device. Thus, a single exon may be as small as one (1) base in length, such as "G", and without additional information it would be impractical to attempt to determine where said single base should be mapped to with a potential range of intron lengths spanning millions of bases.
[00325] Помимо исследования картирования двух последовательных сегментов экзонов в риде, должен быть точно позиционирован стык сплайсинга между ними, по меньшей мере, для некоторых вариантов применения. Хотя может быть ясно, что первые примерно 40 оснований и последние примерно 60 оснований рида длиной 100 оснований картируются на местоположения, расположенные точно на расстоянии в 100000 оснований в хромосоме 3, часто значительно менее ясно, какое именно количество оснований рида картируется на каждое из указанных двух местоположений, или где именно стык сплайсинга, граница между двумя сегментами экзонов, попадает в рид. Корректная строка CIGAR может выглядеть, например, не только как «40M100000N60M», но и как «39M100000N61M» или «42M100000N58M». Точное позиционирование стыков сплайсинга скорее представляет собой операцию «выравнивания», а не «картирования».[00325] In addition to examining the mapping of two consecutive exon segments in a read, the splice junction between them must be precisely positioned, at least for some applications. While it may be clear that the first approximately 40 bases and the last approximately 60 bases of a 100-base-long read map to locations exactly 100,000 bases apart on chromosome 3, it is often much less clear exactly how many bases of a read map to each of those two. locations, or where exactly the splicing junction, the boundary between two exon segments, falls into the read. A valid CIGAR string might look, for example, not only as “40M100000N60M”, but also as “39M100000N61M” or “42M100000N58M”. Precise positioning of splice junctions is an “alignment” rather than a “mapping” operation.
[00326] Подходящее для РНК картирующее устройство (картировщик) также может успешно делать выводы, с какой из двух цепей ДНК была транскрибирована последовательность рида. В типичных ненаправленных протоколах РНК-секвенирования заданный рид может выравниваться либо в прямом, либо в обратно-комплементарном относительно референса виде (со стыками сплайсинга или без них). В протоколах РНК-секвенирования спаренных концов, как правило, два сопряженных рида ориентированы «FR» (прямо/обратно), так что ранее картированный сопряженный рид в референсном геноме ориентирован прямо, а другой сопряженный рид обратно-комплементарен. Однако в типичных протоколах ненаправленного РНК-секвенирования указанные ориентации картирования не определяют, какая цепь ДНК несла ген, с которого была транскрибирована РНК для указанного рида, отчасти из-за того, что при амплификации кДНК с помощью ПЦР получают обе ориентации.[00326] A suitable RNA mapping device (mapper) can also successfully infer from which of the two DNA strands the read sequence was transcribed. In typical undirected RNA-seq protocols, a given read can be aligned either in direct or reverse complementary form to the reference (with or without splice junctions). In paired-end RNA-seq protocols, typically two paired reads are oriented “FR” (forward/reverse), such that a previously mapped paired read in the reference genome is forward oriented and the other paired read is reverse complementary. However, in typical undirected RNA-seq protocols, the specified mapping orientations do not determine which DNA strand carried the gene from which the RNA was transcribed for a given read, in part because cDNA amplification by PCR produces both orientations.
[00327] Наконец, РНК-ориентированный картировщик может благоприятным образом улучшать вводную базу данных «аннотированных» известных границ сплайсинга. Все общие гены человека были подробно изучены, например, и границы сплайсинга более общих и менее общих РНК-транскриптов аннотированы в геномных базах данных. Данная информация не является на 100% всеобъемлющей; любые отдельные образцы наиболее вероятно будут иметь некоторый «новый» сплайсинг, не записанный в базах данных. Однако аннотированные границы сплайсинга могут служить полезными указателями для повышения точности картирования и выравнивания секвенированной РНК. После картирования/выравнивания РНК-секвенированных ридов с аннотированными границами сплайсинга, или без них, усовершенствованный способ заключается в обнаружении набора границ сплайсинга, наблюдаемых в выровненных ридах, с некоторыми критериями, такими как минимальное число выравниваний, покрывающее границу сплайсинга, а также использовании данного набора эмпирически обнаруженных границ сплайсинга в качестве аннотированных границ сплайсинга для второго прогона картирования/выравнивания РНК. Это может повысить чувствительность посредством использования границ сплайсинга, обнаруженных в некоторых ридах для направления картирования других ридов.[00327] Finally, an RNA-based mapper can advantageously enhance an input database of “annotated” known splice boundaries. All common human genes have been studied in detail, for example, and the splicing boundaries of more common and less common RNA transcripts are annotated in genomic databases. This information is not 100% comprehensive; any individual samples will most likely have some "new" splicing not recorded in the databases. However, annotated splice boundaries can serve as useful guides to improve the accuracy of mapping and alignment of sequenced RNA. After mapping/aligning RNA-seq reads with or without annotated splice boundaries, an improved method is to detect the set of splice boundaries observed in the aligned reads, with some criteria such as the minimum number of alignments covering the splice boundary, and use this set empirically detected splice boundaries as annotated splice boundaries for the second RNA mapping/alignment run. This can increase sensitivity by using splice boundaries found in some reads to guide the mapping of other reads.
[00328] Картирование начальной затравки для РНК-секвенированных ридов происходит аналогично ридам ДНК. Первичная длина затравки выбирается, в идеале, немного длиннее, чем логарифм по основанию 4 размера референсного генома для того, чтобы обеспечить картирование затравок приблизительно однозначно, например K=18 или K=21 для всего референсного генома человека. Хэш-таблица построена, заполнена некоторыми или всеми затравками из референсного генома, хэш-запись в хэш-таблицы для каждой заполненной затравки указывает ее положение и ориентацию в референсе. Хэш-таблица, загруженная в память, доступна аппаратному обеспечению модуля картировщика, например, модулям DRAM на плате FPGA, соединенным разводкой с контактами ППВМ, реализуя аппаратное обеспечение модуля картировщика.[00328] Seed mapping for RNA-seq reads is similar to DNA reads. The primary primer length is chosen, ideally, to be slightly longer than the base 4 logarithm of the reference genome size to ensure that primers are mapped approximately unambiguously, eg K=18 or K=21 for the entire human reference genome. A hash table is constructed, populated with some or all of the primers from the reference genome, a hash entry in the hash tables for each populated primer indicates its position and orientation in the reference. The hash table loaded into memory is made available to the mapper module hardware, such as DRAM modules on the FPGA board, wired to the FPGA pins, implementing the mapper module hardware.
[00329] Модуль картировщика принимает риды РНК, поступающие от секвенатора РНК или ДНК (зачастую обратно транскрибированные в кДНК перед секвенированием). Из каждого рида картировщик извлекает затравки длиной K, в идеале, плавающее окно множества перекрывающихся затравок с K оснований, выбранное по некоторой модели, например, начиная в каждом положении основания или начиная в каждом четном положении. Картировщик осуществляет доступ к хэш-таблице в памяти для каждой затравки, получая по меньшей мере ноль, одно или более положений в референсном геноме, с которыми затравка совпадает. Что касается картирования ДНК, затравки могут быть динамически расширены при осуществлении повторяющегося доступа к хэш-таблице со все более длинными затравками, когда необходимо уменьшить большое количество совпадающих положений до приемлемо малого количества, например до 16 или менее совпадений. Совпадения затравок объединяются в цепочки затравок, содержащие затравки, совпадающие с одинаковой ориентацией (прямой или с обратным соответствием по отношению к референсу) вдоль одинаковых диагоналей выравнивания.[00329] The mapper module accepts RNA reads coming from an RNA or DNA sequencer (often reverse transcribed into cDNA before sequencing). From each read, the mapper extracts seeds of length K, ideally a floating window of many overlapping seeds of K bases, selected according to some pattern, such as starting at every base position or starting at every even position. The mapper accesses a hash table in memory for each primer, retrieving at least zero, one, or more positions in the reference genome that the primer matches. With respect to DNA mapping, primers can be dynamically expanded by repeatedly accessing a hash table with increasingly longer primers when it is necessary to reduce a large number of matching positions to an acceptably small number, such as 16 or fewer matches. Seed matches are combined into seed chains containing seeds matching the same orientation (forward or reverse match relative to the reference) along the same alignment diagonals.
[00330] Для РНК-секвенированных ридов предпочтительным может быть дополнительный этап, выполняемый движком картировщика, для детализации картирования начальной затравки посредством картирования привязанной короткой затравки. Например, как показано на ФИГ. 1, риды РНК зачастую пересекают одну или более границ сплайсинга и затравку, пересекающую границу сплайсинга, обычно не удается картировать, так как ее реальное изображение в референсе разделено между двумя местоположениями. Когда рид содержит более короткий экзон, чем начальная длина K затравки, или рид перекрывает более длинный экзон меньшим количеством оснований, чем K, то при картировании затравки может не удаться определить положение в соответствующем референсе для указанного экзона. Даже когда полный или частичный экзон немного длиннее, чем K оснований, но короче, чем полный рид, он может быть уязвим к появлению ошибки картирования затравки, когда он содержит по меньшей мере одно редактирование (отличи) по отношению к референсу, например, одиночный нуклеотидный полиморфизм (ОНП, SNP) или инсерцию или делецию (индел) вследствие мутации в образце по отношению к референсу или вследствие ошибки секвенирования. Например, на ФИГ. 1 показан пример ошибки при картировании всех сегментов экзона с длинными (с K оснований) затравками. По этой причине для хорошей чувствительности картирования затравок предпочтительно обращаться к более коротким затравкам, которые могут поместиться в короткие экзоны или выходящие за пределы коротких ридов части экзонов, или между редактированиями.[00330] For RNA-seq reads, it may be preferable to have an additional step performed by the mapper engine to refine the initial seed mapping by mapping the tethered short primer. For example, as shown in FIG. 1, RNA reads often cross one or more splice boundaries, and a primer that crosses a splice boundary usually cannot be mapped because its actual image in the reference is split between two locations. When a read contains a shorter exon than the initial length K of the primer, or a read overlaps a longer exon with fewer bases than K, then primer mapping may fail to determine the position in the corresponding reference for the specified exon. Even when a full or partial exon is slightly longer than K bases but shorter than the full read, it may be vulnerable to primer mapping error when it contains at least one edit relative to the reference, e.g. polymorphism (SNP, SNP) or insertion or deletion (indel) due to a mutation in the sample in relation to the reference or due to a sequencing error. For example, in FIG. Figure 1 shows an example of an error when mapping all exon segments with long (K bases) primers. For this reason, for good primer mapping sensitivity, it is preferable to turn to shorter primers that can fit into short exons or parts of exons extending beyond short reads, or between edits.
[00331] Может быть в некоторой степени нецелесообразно обращаться к хэш-таблице всего генома за затравками, которые сильно короче, чем минимальная длина, относящаяся к логарифмам по основанию 4 размера референсного генома, так как более короткие затравки будут иметь тенденцию к совпадению с большим количеством местоположений. Например, при референсе по всему геному человека размером приблизительно 3,1 миллиард оснований логарифм по основанию 4 равен приблизительно 15,8, а минимальная приемлемая длина затравки, к которой обращаются, может составлять K=16 или 18, возможно когда K=21 является желаемой настройкой; не приемлемо обращаться к затравкам с K=11 оснований, так как каждая модель с 11 основаниями будет совпадать в среднем более чем с 700 местоположениями референса.[00331] It may be somewhat impractical to consult a whole genome hash table for primers that are much shorter than the minimum length relative to base 4 logarithms of the reference genome size, since shorter primers will tend to match more locations. For example, with a reference of the entire human genome of approximately 3.1 billion bases in size, the logarithm to base 4 is approximately 15.8, and the minimum acceptable length of the primer accessed may be K=16 or 18, perhaps when K=21 is desired setting; It is not acceptable to refer to seeds with K=11 bases, since each 11-base model will match on average more than 700 reference locations.
[00332] Однако, после картирования начальных затравок, например, при затравках с K=21 основаниями, можно детализировать картирование затравок посредством привязанных затравок меньшей длины, например с L=11 основаниями. Для картирования привязанных затравок хэш-таблицу с привязанными затравками (которая может быть той же, что и первичная хэш-таблица, или отдельной хэш-таблицей) заполняют затравками с L оснований из референса, которые связаны с конкретными областями референса, например ячейки некоторого размера, например, 216=65 536 оснований. Каждая области референса или ячейке присвоен уникальный идентификатор, например, ее начальное положение в референсном геноме, разделенное на размер ячейки. Затравки с L оснований в каждой ячейке референса занесены в хэш-таблицу привязанных затравок с использованием хэш-ключа, образованного из L оснований затравки и идентификатора ячейки.[00332] However, after mapping the initial primers, for example with K=21 bases, it is possible to refine the seed mapping with anchored primers of shorter length, for example with L=11 bases. To map anchored seeds, the anchored hash table (which can be the same as the primary hash table or a separate hash table) is populated with L bases from the reference that are associated with specific regions of the reference, such as cells of some size. for example, 2 16 =65,536 bases. Each reference region or bin is assigned a unique identifier, for example, its starting position in the reference genome divided by the size of the bin. Seeds with L bases in each reference cell are entered into a hash table of linked seeds using a hash key formed from the L bases of the seed and the cell identifier.
[00333] Модуль картировщика может обращаться к хэш-таблице привязанных затравок для каждой данной затравки с L оснований в каждой данной ячейке с использованием хэш-ключа обращения, образованного таким же образом из L оснований затравки и идентификатора ячейки. Посредством такого обращения будут обнаружены только совпадения затравки с L оснований с конкретной ячейкой референса. Так как ячейка значительно меньше, чем весь референсный геном, короткая затравка с L оснований имеет достаточно информации, чтобы зачастую иметь лишь одно совпадение. Например, логарифм по основанию 4 ячейки размером 65 536 равен 8, так что L=11 (или 10, 12 и т.д.) является приемлемой длиной привязанной затравки для заполнения и обращения. Как показано на ФИГ. 2, короткие (с L оснований) затравки более легко поместить в короткий экзон, выступающие части короткого экзона или сегменты экзона, вырезанные редактированием, такие как ОНП.[00333] The mapper module may access a hash table of linked seeds for any given seed with L bases in any given cell using a hash key access similarly derived from the L bases of the seed and the cell ID. Through such access, only matches of a primer with L bases to a specific reference cell will be detected. Since a cell is significantly smaller than the entire reference genome, a short primer of L bases has enough information to often have only one match. For example, the base 4 logarithm of a cell of size 65536 is 8, so L=11 (or 10, 12, etc.) is an acceptable bound seed length for padding and reversal. As shown in FIG. 2, short (L bases) primers are more easily placed into a short exon, short exon overhangs, or edited exon segments such as SNPs.
[00334] Ключ к работе картирования привязанных затравок состоит в том, что обращения модуля картировщика к хэш-таблице привязанных затравок руководствуются картированием начальных затравок. Начальные совпадения, например, при затравках с K=21 основаниями, могут не обеспечить успешное картирование всех сегментов экзона рида, но наиболее вероятно они картируют по меньшей мере один сегмент экзона каждого рида или его парного сопряженного на конце рида. Имея по меньшей мере одно совпадение с K оснований в пределах по меньшей мере одного сегмента экзона в риде РНК или его сопряжении, любые другие сегменты экзона в риде, которые не были успешно картированы посредством затравок с K основаниями, наиболее вероятно совпадут относительно близко в референсном геноме.[00334] The key to how anchored seed mapping works is that the mapper module's calls to the anchored seed hash table are guided by the seed mapping. Initial matches, such as those with K=21 bases, may not successfully map all exon segments of a read, but most likely map at least one exon segment of each read or its mate at the end of the read. Given at least one K base match within at least one exon segment in an RNA read or its mate, any other exon segments in the read that have not been successfully mapped by K base primers are most likely to match relatively closely in the reference genome .
[00335] Например, приблизительно 99% интронов человека короче, чем 65 536 оснований, так что если один сегмент экзона картирован при затравке с K оснований в данном положении референса, то другие некартированные сегменты экзона наиболее вероятно совпадут в пределах той же ячейке референса с 65 536 оснований, или в пределах соседней ячейки. Как показано на ФИГ. 3, может быть определен диапазон поиска, например, размер ячейки, или размера ячейки, или два размера ячейки, и можно обратиться к одной или более ячейкам референса в пределах диапазона поиска успешно картированных затравок с K основаниями в хэш-таблице привязанных затравок с использованием затравок с L основаниями. Таким образом, совпадения затравок с K основаниями служат как точки привязки для локальных поисков с более короткими затравками с L оснований. Велика вероятность найти дополнительные совпадения с ранее некартированными сегментами экзона рида. Таким образом чувствительность картирования затравок повышена для ридов РНК.[00335] For example, approximately 99% of human introns are shorter than 65,536 bases, so if one exon segment maps when primed with K bases at a given reference position, then other unmapped exon segments will most likely match within the same reference cell with 65 536 bases, or within an adjacent cell. As shown in FIG. 3, the search range can be defined, such as cell size, or cell size, or two cell sizes, and one or more reference cells within the search range of successfully mapped K-base seeds in a hash table of linked seeds can be accessed using L-base seeds. Thus, K-base seed matches serve as anchor points for local searches with shorter L-base primers. There is a high probability of finding additional matches to previously unmapped exon segments of the read. Thus, the sensitivity of primer mapping is increased for RNA reads.
[00336] В дополнение, существуют различные способы, как модуль картировщика может использовать картирование привязанных коротких затравок. В одном варианте реализации после того, как картировщик обращается к начальной затравке с K оснований в хэш-таблице и объединяет совпадения в цепочки затравок, картировщик затем извлекает затравки с L основаниями из рида и обращается с ними к расположенным рядом ячейкам референса (в пределах выбранного диапазона поиска для текущих цепочек затравок) для поиска дополнительных совпадений для более коротких затравок с L оснований, которые модуль картировщика затем объединяет в дополнительные цепочки затравок или добавляет к существующим цепочкам затравок с такими же диагоналями выравнивания. В таком варианте реализации предпочтительно, чтобы хэш-таблица привязанных затравок была той же, что и первичная хэш-таблица, или, для отдельных первичной хэш-таблицы и хэш-таблицы привязанных затравок, чтобы они находились в памяти, к которой осуществляется доступ, одновременно. В обоих случаях, для того, чтобы хэш-таблица (хэш-таблицы) с затравками с K основаниями и с L основаниями помещались в память, может быть использовано примерно в два раза больше памяти, например, 64 Гб DRAM вместо 32 Гб DRAM, или, в качестве альтернативы, могут быть заполнены примерно половина затравок каждой длины, например, плотность заполнения затравок составляет 50% вместо 100%. Для ограничения количества требуемых обращений к хэш-таблице привязанных затравок в качестве точек привязки могут использоваться только наиболее перспективные цепочки начальных затравок и/или затравки с L основаниями могут быть извлечены из рида только из некоторых областей, например, областей, где затравки с K основаниями не были картированы успешно.[00336] In addition, there are various ways that the mapper module can use mapping of anchored short seeds. In one implementation, after the mapper accesses the initial K-base seed in the hash table and strings the matches together into seed chains, the mapper then retrieves the L-base seeds from the read and accesses them to nearby reference cells (within the selected range search for current seed chains) to find additional matches for shorter seeds with L bases, which the mapper module then combines into additional seed chains or adds to existing seed chains with the same alignment diagonals. In such an implementation, it is preferable for the anchored seed hash table to be the same as the primary hash table, or, for separate primary hash table and anchored seed hash table, to reside in the accessed memory at the same time . In both cases, in order for the K-base and L-base hash table(s) to fit into memory, approximately twice as much memory may be used, for example, 64 GB DRAM instead of 32 GB DRAM, or , alternatively, approximately half of the seeds of each length may be filled, for example, the seed filling density is 50% instead of 100%. To limit the number of required references to the hash table of anchored seeds, only the most promising seed strings can be used as anchor points and/or L-base seeds can be extracted from the read only from certain regions, for example, regions where K-base seeds are not present. were mapped successfully.
[00337] В другом варианте реализации картирование и/или выравнивание набора ридов может быть подведено к завершению при первом прогоне с использованием лишь затравок с K основаниями. Результаты картирования/выравнивания каждого рида могут быть затем изучены, например, посредством программного обеспечения вне модуля картировщика, для определения, каким ридам требуется детальное картирование с использованием коротких привязанных затравок. Одним индикатором, запускающим детализацию посредством привязанных затравок, является то, что выравнивания первого прогона являются обрезанными, в особенности с обрезанием около или более, чем длина L короткой затравки. Другим индикатором, запускающим детализацию с помощью привязанных затравок, может являться существенное количество несовпадений, наблюдаемых в выравниваниях первого прогона. Другим индикатором, запускающим детализацию с помощью привязанных затравок, может являться то, что оба парных сопряженных на концах ридов не картировались успешно, картировались далеко друг от друга или с неожиданной относительной ориентацией. Преимущественно, если один рид выбран для детализации с применением короткой затравки, то его парный сопряженный на конце рид также будет выбран. Преимущественно, только часть выравниваний первого прогона может потребовать детализации с применением коротких затравок, например 15% или 30%.[00337] In another embodiment, mapping and/or alignment of a set of reads can be completed in the first run using only K base primers. The mapping/alignment results of each read can then be examined, for example by software outside the mapper module, to determine which reads require detailed mapping using short anchored seeds. One indicator that triggers refinement through anchored seeds is that the first run alignments are trimmed, particularly with trimming around or greater than the length L of the short seed. Another indicator that triggers drilling using anchored seeds could be a significant number of mismatches observed in the first-run alignments. Another indicator that triggers refinement by anchored seeds could be that both paired end-paired reads were not mapped successfully, mapped far apart, or with an unexpected relative orientation. Advantageously, if one read is selected for detailing using a short seed, then its paired end-conjugate read will also be selected. Advantageously, only a portion of the first pass alignments may require detailing using short seeds, such as 15% or 30%.
[00338] Для каждого рида в подмножестве, к которому применяют детализацию с применением коротких затравок, может быть выбрана одна или более ячеек референса для поиска, например, ячейки, перекрывающие радиус поиска вокруг результатов выравнивания первого прогона для рида и/или его сопряженного рида (см. ФИГ. 3). Затем в отношении подмножества ридов, выбранных для детализации, может быть выполнен второй прогон картирования/выравнивания. Во втором прогоне могут обращаться с затравками с L основаниями из каждого рида к хэш-таблице привязанных затравок, связанной с одной или более выбранных ячеек референса для каждого рида. Обычно по меньшей мере для некоторых ридов, выбранных для второго прогона, в результате получают улучшенное картирование/выравнивание, например с более высокими оценками выравнивания; результаты второго прогона могут быть оставлены в тех случаях, когда они улучшены, или, в других случаях, могут быть оставлены результаты первого прогона. При необходимости, первичная хэш-таблица могут быть загружена в доступную движку память перед первым прогоном картирования и хэш-таблица привязанных затравок может быть загружена перед вторым прогоном картирования, устраняя необходимость размещения обеих хэш-таблиц (или одной объединенной хэш-таблицы) в памяти одновременно, хотя и обе из них могут быть загружены одновременно, или снижения плотности заполнения референсных затравок для размещения обеих одновременно.[00338] For each read in the subset to which short seed drilling is applied, one or more reference cells may be selected for search, for example, cells that overlap the search radius around the alignment results of the first run for the read and/or its associated read ( see FIGURE 3). A second mapping/alignment run can then be performed on the subset of reads selected for detailing. The second run can access the L base primers from each read to a hash table of anchored primers associated with one or more selected reference cells for each read. Typically, at least some of the reads selected for the second run will result in improved mapping/alignment, such as higher alignment scores; the results of the second run may be retained in cases where they are improved, or, in other cases, the results of the first run may be retained. If necessary, the primary hash table can be loaded into engine-available memory before the first mapping run and the bound seeds hash table can be loaded before the second mapping run, eliminating the need to place both hash tables (or one combined hash table) in memory at the same time , although both of them can be loaded simultaneously, or reducing the filling density of the reference seeds to accommodate both at the same time.
[00339] В некоторых вариантах реализации ячейки референса имеют конфигурируемый размер, радиус поиска является конфигурируемым и длина начальной затравки (K) и длина привязанной затравки (L) являются конфигурируемыми. В других вариантах реализации размер ячейки референса является степенью двойки. Приведенные в качестве примера предпочтительные настройки для обработки полного транскриптома секвенирования РНК человека представляют собой K=21, L=11, размер ячейки референса 216=65536, а радиус поиска 214=16384.[00339] In some embodiments, the reference cells have a configurable size, the search radius is configurable, and the seed length (K) and the anchor seed length (L) are configurable. In other embodiments, the reference cell size is a power of two. The exemplary preferred settings for human RNA sequencing whole transcriptome processing are K=21, L=11, reference bin size 2 16 =65536, and search radius 2 14 =16384.
[00340] Если аннотированные границы сплайсинга переданы в модуль картировщика, они могут быть использованы для повышения чувствительности картирования. Список аннотированных границ загружают в память, доступ к которой осуществляется движком картировщика. Преимущественно, аннотированные границы могут быть форматированы в таблицу, легко доступную для модуля картировщика, например, таблицу с записью для каждой, например, с 1024 основаниями, ячейки референса, которая или содержит информацию об интроне по меньшей мере с одной конечной точкой в указанной ячейке, или указывает на список (в пространстве, размещенном после начальной таблицы) множества дескрипторов интронов. Каждый дескриптор интрона указывает на референсное положение обеих конечных точек соответствующего интрона и также может переносить дополнительную информацию, например, на какой нити ДНК находится ген интрона, мотив интрона и показатель того, как часто появляется граница сплайсинга.[00340] If annotated splice boundaries are passed to the mapper module, they can be used to improve mapping sensitivity. The list of annotated boundaries is loaded into memory, which is accessed by the mapper engine. Advantageously, the annotated boundaries may be formatted into a table readily accessible to the mapper module, e.g., a table with an entry for each, e.g., 1024-base, reference cell that either contains intron information with at least one endpoint in said cell, or points to a list (in space after the initial table) of multiple intron descriptors. Each intron descriptor indicates the reference position of both endpoints of the corresponding intron and can also carry additional information, such as which strand of DNA the intron gene is on, the intron motif, and an indicator of how often the splice boundary appears.
[00341] После картирования затравок (начальных затравок и/или коротких привязанных затравок) и образования цепочек затравок, осуществляют доступ к таблице аннотированных границ в рядах, соответствующих областям референса, охваченным каждой цепочкой затравок, или областям вблизи концов длинных цепочек затравок. Получают список интронов по меньшей мере с одной расположенной вблизи конечной точкой и сравнивают по меньшей мере с одной цепочкой затравок, для которой был осуществлен доступ. Каждый интрон отбрасывают, если он не является возможной или вероятной границей сплайсинга из цепочки затравок. В частности, посредством сравнения местоположения конечной точки интрона в референсе с конечной точкой цепочки затравок в референсе и в риде вычисляют действительное местоположение границы сплайсинга в риде. Если указанное действительное местоположение находится за пределами границ рида или в значительной степени перекрывает цепочку затравок (например, более, чем maxSpliceOlap = 16 в пределах конечной точки цепочки затравок) или находится слишком далеко вне пределов цепочки затравок в риде (например, более, чем на maxSpliceGap = 150 оснований вне цепочки затравок), то аннотированную границу отбрасывают как наименее вероятно являющуюся релевантной.[00341] Once the seeds (initial seeds and/or short anchor seeds) have been mapped and seed chains have been formed, a table of annotated boundaries is accessed in rows corresponding to the reference regions covered by each seed chain, or regions near the ends of long seed chains. A list of introns with at least one nearby endpoint is obtained and compared with at least one accessed primer strand. Each intron is discarded if it is not a possible or probable splice boundary from the seed chain. In particular, by comparing the location of the intron endpoint in the reference with the endpoint of the primer chain in the reference and in the read, the actual location of the splice boundary in the read is calculated. If the specified valid location is outside the boundaries of the read or significantly overlaps the seed chain (for example, more than maxSpliceOlap = 16 within the endpoint of the seed chain) or is too far outside the boundaries of the seed chain in the read (for example, more than maxSpliceGap = 150 bases outside the seed chain), then the annotated boundary is discarded as least likely to be relevant.
[00342] Каждый оставшийся дескриптор интрона рассматривают как возможную границу сплайсинга с одного конца соответствующей цепочки затравок. Эту информацию используют двумя способами. Во-первых, противоположный конец интрона в референсе берут как наиболее вероятное местоположение, на которое смежная с часть рида должна картироваться, даже если это местоположение было обнаружено посредством картирования затравок. В действительности, наиболее вероятная диагональ выравнивания на противоположном конце интрона вычисляется в точности посредством сложения длины интрона с или вычитания длины интрона из (в зависимости от ориентации) диагонали выравнивания на соответствующем конце текущей цепочки затравок. Если указанное референсное местоположение диагональ выравнивания не согласуются с существующей цепочкой затравок, то формируют новую (псевдо) цепочку затравок, начиная с референсного местоположения на противоположном конце интрона, и начиная в риде в соответствующем положении, предполагаемом посредством вычисленной диагонали выравнивания. Таким образом, вероятные местоположения картирования сегментов экзона рида обнаруживают без картирования затравок в их пределах, посредством выведения их местоположений в интронах на основании существующих цепочек затравок.[00342] Each remaining intron descriptor is considered a possible splice boundary at one end of the corresponding seed chain. This information is used in two ways. First, the opposite end of the intron in the reference is taken as the most likely location to which the adjacent part of the read should be mapped, even if that location was discovered by seed mapping. In effect, the most likely alignment diagonal at the opposite end of the intron is calculated exactly by adding the intron length to or subtracting the intron length from (depending on the orientation) the alignment diagonal at the corresponding end of the current seed chain. If the specified reference location diagonal alignment does not agree with the existing primer strand, then a new (pseudo) strand of primers is generated, starting from the reference location at the opposite end of the intron, and starting in the read at the corresponding position predicted by the calculated diagonal alignment. Thus, likely mapping locations of exon read segments are discovered without mapping primers within them, by inferring their locations in introns based on existing primer strings.
[00343] Во-вторых, аннотированную информацию об интроне используют для установления известной связи между двумя цепочками затравок, которые представляют смежные сегменты экзона в риде. Информацию о связи записывают в один или оба дескрипторов цепочки затравок, идентифицирующих другую цепочку, с которой она связана, посредством аннотированной границы сплайсинга. Кроме того, точное положение границы сплайсинга известно (принимая, что аннотированная граница сплайсинга является верной), вычислено при помощи вычитания аннотированных конечных точек интрона и диагоналей выравнивания границы сплайсинга. Указанное точное позиционирование границы сплайсинга также записывают в один или оба дескрипторов цепочки затравок.[00343] Second, the annotated intron information is used to establish a known relationship between two seed strands that represent adjacent exon segments in the read. The linkage information is recorded in one or both of the seed strand descriptors identifying the other strand to which it is linked by an annotated splice boundary. In addition, the exact position of the splice boundary is known (assuming the annotated splice boundary is correct), calculated by subtracting the annotated intron endpoints and the splice boundary alignment diagonals. The specified precise positioning of the splice boundary is also recorded in one or both of the seed chain descriptors.
[00344] Если обнаружено, что множество аннотированных границ сплайсинга связанны с одной цепочкой затравок, информацию о связи и положении границы сплайсинга могут записать различными способами. Например, каждую связь между двумя цепочками может быть необходимо записать только в одну из двух цепочек так, чтобы не было конфликта, если, например, она всегда записана на «целевом» конце связи. Один дескриптор цепочки затравок может иметь место для хранения множества связей или иметь динамическое пространство для информации о связи. Кроме того, копии существующих дескрипторов цепочки затравок могут быть выполнены для содержания дополнительной информации о связи.[00344] If multiple annotated splice boundaries are found to be associated with a single seed strand, information about the connection and position of the splice boundary may be recorded in various ways. For example, each link between two chains may need to be written to only one of the two chains so that there is no conflict if, for example, it is always written at the "target" end of the link. A single seed chain descriptor may have space to store multiple links or have dynamic space for link information. Additionally, copies of existing seed chain descriptors can be made to contain additional communication information.
[00345] Просмотр аннотированной границы сплайсинга преимущественно может повторяться. Начиная с покрытия одной цепочки затравок, например, первой 1/3 рида, может быть обнаружена аннотированная граница сплайсинга, связанная с не обнаруженным ранее референсным местоположением, из чего формируют новую цепочку затравок. Доступ к таблице аннотированных границ могут повторно осуществлять для новой сформированной цепочки затравок, возможно обнаруживая, что после второй 1/3 рида имеется другая известная граница с другим необнаруженным референсным местоположением. Преимущественно, записи в таблице аннотированных соединений могут указывать на расстояние (проходящее в том же направлении, что и аннотированная граница) до достижения ближайшей другой аннотированной границы в пределах транскриптор одного и того же гена, или в целом. Когда указанное расстояние, измеренное после вычисленного местоположения границы сплайсинга в риде, проходит за пределы конца рида, не требуется снова осуществлять доступ к таблице аннотированных границ, так как ничего не будет найдено.[00345] The viewing of the annotated splice boundary may advantageously be repeated. Starting from covering one seed chain, for example the first 1/3 of a read, an annotated splice boundary associated with a previously undetected reference location can be discovered, from which a new seed chain is formed. The annotated boundary table may be repeatedly accessed for the newly generated seed chain, possibly discovering that after the second 1/3 of the read there is another known boundary with a different undetected reference location. Advantageously, the annotated junction table entries may indicate the distance (travelling in the same direction as the annotated boundary) to reaching the nearest other annotated boundary within a transcript of the same gene, or overall. When the specified distance measured after the calculated splice boundary location in the read goes beyond the end of the read, there is no need to access the annotated boundary table again as nothing will be found.
[00346] В пределах модуля картировщика совпадения затравок с одинаковой ориентацией (прямой или с обратным соответствием по отношению к референсу) и одинаковыми диагоналями выравнивания объединены в цепочки затравок с намерением, что одиночная операция выравнивания без промежутка или с промежутком может затем изучить и оценить выравнивание между ридом и референсом для каждой цепочки затравок. Диагональ выравнивания может быть представлена как путь диагональ-ориентированного выравнивания, покрытый совпадающей затравкой, в прямоугольнике выравнивания, образованном в пределах последовательности рида на одной оси и последовательности рида на другой оси; одно представление как целое может быть вычислено для прямых выравниваний путем вычитания положения затравки в риде из ее положения в референсе, и для выравниваний с обратным соответствием посредством сложения положения затравки в риде с ее положением в референсе.[00346] Within the mapper module, seed matches with the same orientation (forward or inverse match to the reference) and the same alignment diagonals are combined into seed chains with the intention that a single alignment operation without or with a gap can then learn and evaluate the alignment between read and reference for each seed chain. A diagonal alignment can be represented as a diagonally oriented alignment path covered by a matching seed, within an alignment rectangle formed within a read sequence on one axis and a read sequence on the other axis; one representation as a whole can be calculated for forward alignments by subtracting the position of the seed in the read from its position in the reference, and for backward alignments by adding the position of the seed in the read with its position in the reference.
[00347] Когда рид точно совпадает с сегментом референса, например положения от 0 до 100 в риде совпадают с положениями от 1 200 000 до 1 200 100 в референсе, все затравки обычно совпадают по одной диагонали, например 1 200 000 - 0 = 1 200 100 - 100 = 1 200 000; конкретная затравка с 21 основанием от оснований с 30 по 50 в риде совпадет с основаниями от 1 200 030 до 1 200 050 в референсе, также на той же диагонали 1 200 030 - 30 = 1 200 000. Совпадения затравок с одной и той же ориентацией и диагональю обычно включены в одну цепочку затравок, но также затравки на немного отличающихся диагоналях выравнивания могут быть включены в ту же цепочку затравок, например затравки, диагонали которых отличаются не более, чем на 20 или не более, чем на 50, или по более сложным правилам. Обеспечивая такие допуски для разницы диагоналей полезно, так как риды иногда содержат инделы (инсерции или делеции) относительно референса и выравнивание с промежутком, например выравнивание Смита-Ватермана в модуле выравнивателя может решить и оценить такие инделы для одной цепочки затравок, пока инделы не слишком велики, например не более 50 оснований инсерций или делеций.[00347] When a read exactly matches a segment of the reference, for example, positions from 0 to 100 in the read match positions from 1,200,000 to 1,200,100 in the reference, all seeds usually coincide along the same diagonal, for example, 1,200,000 - 0 = 1,200 100 - 100 = 1,200,000; a specific seed with 21 bases from bases 30 to 50 in the read will match bases from 1,200,030 to 1,200,050 in the reference, also on the same diagonal 1,200,030 - 30 = 1,200,000. Matches of seeds with the same orientation and diagonal are usually included in the same seed chain, but also seeds on slightly different alignment diagonals can be included in the same seed chain, for example seeds whose diagonals differ by no more than 20 or no more than 50, or more complex rules. Providing such tolerances for diagonal differences is useful since reads sometimes contain indels (insertions or deletions) relative to the reference and a gap alignment, such as the Smith-Waterman alignment in the aligner module can resolve and evaluate such indels for a single seed chain as long as the indels are not too large , for example, no more than 50 base insertions or deletions.
[00348] Но РНК-секвенированные риды часто пересекают границы сплайсинга, в которых шаг от одного основания рида до следующего основания рида переходит через весь интрон в референсе, который может быть тысячи оснований в длину, или даже более миллиона оснований в длину. В таких случаях затравки с одной стороны границы сплайсинга в риде будут картироваться на референс со значительно отличающимися диагоналями выравнивания от диагоналей на другой стороне границы сплайсинга; целочисленная разность диагоналей равна длине пропущенного интрона, вероятно тысячи или более, чем миллион. Такие затравки могут не быть приняты в ту же цепочку затравок, так как выравниватель с промежутком не может напрямую разрешить такой длинный промежуток в референсе.[00348] But RNA-seq reads often cross splice boundaries, in which the step from one base of the read to the next base of the read passes through the entire intron in the reference, which can be thousands of bases in length, or even more than a million bases in length. In such cases, primers on one side of the splice boundary in the read will map to a reference with significantly different alignment diagonals from those on the other side of the splice boundary; the integer difference of the diagonals is equal to the length of the missing intron, probably thousands or more than a million. Such seeds may not be accepted into the same seed chain, since the gap aligner cannot directly resolve such a long gap in the reference.
[00349] Таким образом, для картирования РНК, в отличии от ДНК, следует ожидать, что верное выравнивание данного рида может содержать множество цепочек затравок, причем каждая цепочка затравок соответствует различным сегментам экзона в риде. Каждое вероятное выравнивание, таким образом, может содержать последовательность нескольких цепочек затравок. Следующий этап в модуле картировщика определяет такие вероятные последовательности цепочек затравок, известных в настоящем документе как скаффолды.[00349] Thus, for mapping RNA, as opposed to DNA, it is expected that the correct alignment of a given read may contain multiple strands of primers, with each strand of primers corresponding to different exon segments in the read. Each candidate alignment may thus contain a sequence of multiple seed chains. The next step in the mapper module identifies such likely seed chain sequences, known herein as scaffolds.
[00350] Каждый скаффолд, как последовательность одной или более цепочек затравок, имеет физическую интерпретацию как кусочное выравнивание следующих друг за другом сегментов экзона рида с соответствующими сегментами экзона в референсном генома. Таким образом, каждая цепочка затравок в одном скаффолде обычно должна покрывать только часть рида, указанные части, проходящие от начала рида в направлении конца рида вдоль последовательности цепочек затравок; и соответствующие референсные сегменты цепочек затравок должны проходить в фиксированном направлении через референс с попадающимися промежутками, соответствующими ожидаемым длинам интронов. Каждый скаффолд будет прогнан через модуль выравнивателя для разрешения точных выравниваний и их оценки, а также выравнивания наиболее вероятного варианта. Но получение списка скаффолдов из необработанного списка цепочек затравок является затруднительным.[00350] Each scaffold, as a sequence of one or more primer strands, has a physical interpretation as a piecewise alignment of successive exon segments of the read with corresponding exon segments in the reference genome. Thus, each seed chain in a single scaffold should typically cover only a portion of the read, said portions extending from the start of the read toward the end of the read along the sequence of seed chains; and the corresponding reference segments of the primer strands must run in a fixed direction through the reference with intervening gaps corresponding to the expected intron lengths. Each scaffold will be run through an aligner module to resolve precise alignments and evaluate them, as well as the most likely alignment. But obtaining a list of scaffolds from a raw list of seed chains is difficult.
[00351] На практике картирование затравок для одного РНК-картированного рида может быть получено из малого числа цепочек затравок до десятков или более чем сотен цепочек затравок. Имея более сотни цепочек затравок, число потенциальных последовательностей цепочек затравок является чрезвычайно большим. Таким образом, проблемой является и получение приемлемо короткого списка скаффолдов для обработки в модуле выравнивателя, и определение указанного списка скаффолдов из данного списка цепочек затравок за приемлемое количество времени так, чтобы не замедлять модуль картировщика. Для того, чтобы выполнять это эффективным образом, представлен рекурсивный способ.[00351] In practice, seed mapping for a single RNA mapped read can be obtained from a small number of seed strands to tens or more than hundreds of seed strands. With over a hundred seed chains, the number of potential seed chain sequences is extremely large. Thus, the problem is both obtaining an acceptably short list of scaffolds for processing in the aligner module, and determining said list of scaffolds from a given list of seed chains in an acceptable amount of time without slowing down the mapper module. In order to do this in an efficient manner, a recursive method is presented.
[00352] Во-первых, очень полезно сортировать цепочки затравок в порядке покрываемых ими положений в риде, например в возрастающем порядке начальных положений цепочек затравок в риде. Цепочки затравок могут быть свободно построены в таком порядке посредством обращения с затравками к хэш-таблице с начала рида до конца и формируя из них цепочки затравок в том же порядке. Но если это не имеет место или если порядок нарушен последующими изменениями списка цепочек затравок при картировании с применением привязанных затравок или поиском аннотированных границ сплайсинга, то цепочки затравок должны быть отсортированы перед формированием скаффолдов, например, посредством «быстрой сортировки» или другого алгоритма сортировки.[00352] First, it is very useful to sort the seed strings in the order of the positions they cover in the read, for example, in ascending order of the starting positions of the seed strings in the read. Seed chains can be freely constructed in this order by accessing the hash table seeds from the start of the read to the end and forming them into seed chains in the same order. But if this is not the case, or if the order is disrupted by subsequent changes to the list of seed strings when mapping using anchored primers or searching for annotated splice boundaries, then the seed strings must be sorted before scaffold formation, for example, by "quicksort" or another sorting algorithm.
[00353] Далее устанавливают правила, по которым одна цепочка затравок (В) может следовать непосредственно за другой цепочкой затравок (А) в одном и том же скаффолде, устанавливая связь цепочек затравок от А к В. В правилах имеется значительная гибкость, которая может хорошо работать, на правила должны допускать вероятные связи цепочек затравок в скаффолде с верным выравниванием, в то же время исключая настолько много маловероятных связей цепочек затравок, насколько это возможно. Существует хорошо работающий набор правил с различными названными параметрами и хорошими значениями по умолчанию.[00353] Next, rules are established by which one seed chain (B) can immediately follow another seed chain (A) in the same scaffold, establishing the relationship of seed chains from A to B. There is considerable flexibility in the rules, which can well To work, the rules must allow for probable seed-chain connections in the scaffold with the correct alignment, while excluding as many unlikely seed-chain connections as possible. There is a good working set of rules with various named parameters and good default values.
[00354] Критерии для цепочки затравок В для следования за цепочкой затравок А в скаффолде:[00354] Criteria for seed string B to follow seed string A in the scaffold:
А и В имеют одинаковую ориентациюA and B have the same orientation
(Промежуток между А и В в риде) =: gap ≤ maxSpliceGap = 150(Gap between A and B in the read) =: gap ≤ maxSpliceGap = 150
(Перекрывание между А и В в риде) =: olap ≤ maxSpliceOlap = 16(Overlap between A and B in the read) =: olap ≤ maxSpliceOlap = 16
(Промежуток между началом А и началом В в риде) =: нhead ≥ olap + (olapAdj = 4)(The gap between the beginning of A and the beginning of B in the read) =: nhead ≥ olap + (olapAdj = 4)
(Промежуток между концом А и концом В в риде) =: tail ≥ olap + (olapAdj = 4)(The gap between end A and end B in the read) =: tail ≥ olap + (olapAdj = 4)
(Референсный промежуток А/В минус промежуток рида А/В) =: intronLen ≥ minIntronLen = 20(Reference gap A/B minus read gap A/B) =: intronLen ≥ minIntronLen = 20
(Референсный промежуток А/В минус промежуток рида А/В) =: intronLen ≤ maxIntronLen = 1000000(Reference interval A/B minus read interval A/B) =: intronLen ≤ maxIntronLen = 1000000
[00355] Когда используют аннотированные границы сплайсинга и аннотированная связь была записана между цепочками затравок А и В, то они всегда могут следовать друг за другом.[00355] When annotated splice boundaries are used and an annotated link has been written between seed strands A and B, they can always follow each other.
[00356] Далее приведен рекурсивный алгоритм для формирования множества скаффолдов:[00356] The following is a recursive algorithm for generating multiple scaffolds:
Сортируют N цепочек затравок по начальному положению в риде, при необходимостиSort N seed chains by starting position in the read, if necessary
Зацикливают c0 = 0 до N-1Loop c0 = 0 to N-1
Пропускают c0, если уже использовано внутри скаффолдаSkip c0 if already used inside the scaffold
Инициализируют last = 0, scaf[0] = c0, start = c0 + 1, stack[0] = 1, stack[1] = 0, stackPos = 0Initialize last = 0, scaf[0] = c0, start = c0 + 1, stack[0] = 1, stack[1] = 0, stackPos = 0
Зацикливают пока last ≥ 0Loop until last ≥ 0
Зацикливают c = start до N - 1Loop c = start until N - 1
Если цепочка c может следовать за цепочкой scaf[last]:If the c chain can follow the scaf[last] chain:
scaf[++last] = cscaf[++last] = c
stack[last] = 0 если stack[last] = cstack[last] = 0 if stack[last] = c
В противном случае если last > stackPos и цепочка c может следовать за цепочкой scaf[last-1]:Otherwise if last > stackPos and chain c can follow chain scaf[last-1]:
stack[last] = cstack[last] = c
Выходной скаффолд scaf[0 .. last]Output scaffold scaf[0 .. last]
Устанавливают stackPos = maximum в (0 .. last) с stack[stackPos] > 0Set stackPos = maximum to (0 .. last) with stack[stackPos] > 0
Устанавливают start = scaf[stackPos] + 1Set start = scaf[stackPos] + 1
Устанавливают last = stackPos - 1Set last = stackPos - 1
[00357] Значения терминов и переменных в алгоритме:[00357] Meanings of terms and variables in the algorithm:
“chain”: индекс 0..N-1 цепочки затравок“chain”: index 0..N-1 of the seed chain
scaf[] = формируемый скаффолд, каждый слот получает цепочку 0..N-1scaf[] = scaffold being formed, each slot receives a 0..N-1 chain
c0 = первая цепочка в скаффолде (слот 0)c0 = first chain in the scaffold (slot 0)
last = конечный слот # (на данный момент) в скаффолдеlast = final slot # (currently) in the scaffold
start = первая цепочка в поисковом циклеstart = first chain in the search loop
stack[i] = альтернативная цепочка с наивысшим номером для scaf[i], или 0, если отсутствует. Это представляет конечную точку поиска альтернатив для scaf[i] после рекурсивного резервирования.stack[i] = highest numbered alternate chain for scaf[i], or 0 if missing. This represents the end point of searching for alternatives for scaf[i] after a recursive reservation.
stackPos = целевой слот скаффолда, предназначенный для замены посредством рекурсивного резервирования. Наблюдают, что когда происходит резервирование, stack[stackPos] является интегрированным и не будет обновлен до его очистки.stackPos = target scaffold slot intended to be replaced via recursive reservation. It is observed that when a backup occurs, stack[stackPos] is stacked and will not be updated until it is cleared.
[00358] Рекурсивный поиск осуществляют в физической логической части модуля картировщика. Может быть доступно время для исполнения указанного алгоритма без значительного замедления модуля с использованием способов распараллеливания за счет аппаратных средств. В частности, группу цепочек затравок для данного рида могут буферизировать для относящейся к скаффолду логической части для обработки позже в цепочке конвейера обработки, параллельно с логической обработкой следующего рида, относящейся к картированию затравок и формированию цепочек.[00358] The recursive search is performed in the physical logical part of the mapper module. Time may be available to execute the specified algorithm without significantly slowing down the module using hardware parallelization techniques. In particular, a group of seed chains for a given read may be buffered for scaffold-related logic for processing later in the processing pipeline chain, in parallel with the next read's seed-mapping and chain-forming logic processing.
[00359] Иногда на практике рекурсия может развиваться, так что необходимо ее ограничивать. Полезный способ ограничения рекурсии, а также ограничения числа получаемых скаффолдов, является фильтрование меньших скаффолдов при их получении. Представлен полезный способ фильтрации скаффолдов. Для каждого скаффолда вычисляют его охват рида как количество оснований рида, покрытое одной или более цепочками затравок в скаффолде. Большее покрытие скаффолдов наиболее вероятно представляет верное выравнивание. В частности, если обнаружено максимальное покрытие рида среди всех образованных скаффолдов (на данный момент), то скаффолды с большой дельтой покрытия за пределами максимального покрытия менее вероятно представляют верное выравнивание.[00359] Sometimes in practice recursion can develop, so it is necessary to limit it. A useful way to limit recursion, as well as limit the number of scaffolds obtained, is to filter smaller scaffolds as they are obtained. A useful method for filtering scaffolds is presented. For each scaffold, its read coverage is calculated as the number of read bases covered by one or more seed chains in the scaffold. Greater scaffold coverage most likely represents correct alignment. In particular, if the maximum read coverage among all generated scaffolds (so far) is detected, then scaffolds with a large coverage delta beyond the maximum coverage are less likely to represent the correct alignment.
[00360] Кроме того, для каждого скаффолда вычисляют его охват референсного генома, расстояние между наиболее внешними основаниями в референсе первой и последней цепочки затравок в скаффолде. Скаффолды с очень большим охватом референса менее вероятно представляют верное выравнивание. Комбинируя два указанных результата измерения следующим образом является мощным фильтром скаффолдов: filter_metric = (max_coverage - coverage) + floor(25 * (log2(ref_span + 213) - 13). Постоянные 25 и 13 должны быть конфигурируемыми параметрами: rna-filt-ratio = 25, и rna-span-log-min = 13. Отфильтровывают скаффолды с множеством цепочек, где указанный показатель превышает конфигурируемый порог, например rna-max-covg-gap = 150. Порог, равный 200, значительно ослабляет фильтр, а 100 значительно уплотняет.[00360] In addition, for each scaffold, its reference genome coverage, the distance between the outermost bases in the reference of the first and last strand of primers in the scaffold, is calculated. Scaffolds with very large reference coverage are less likely to represent the correct alignment. Combining the two specified measurement results as follows is a powerful scaffold filter: filter_metric = (max_coverage - coverage) + floor(25 * (log 2 (ref_span + 2 13 ) - 13). The constants 25 and 13 should be configurable parameters: rna-filt- ratio = 25, and rna-span-log-min = 13. Scaffolds with many chains are filtered out, where the specified indicator exceeds a configurable threshold, for example rna-max-covg-gap = 150. A threshold of 200 significantly weakens the filter, and 100 significantly compacts.
[00361] Фильтр может быть применен к завершенным или незавершенным скаффолдам, полученным из списка цепочек затравок для данного рида, посредством отслеживания или вычисления максимального покрытия среди всех скаффолдов, а также сканирования списка скаффолдов, и отбрасывания тех, для которых filter_metric > rna-max-covg-gap.[00361] The filter can be applied to completed or incomplete scaffolds obtained from the list of seed chains for a given read, by tracking or calculating the maximum coverage among all scaffolds, as well as scanning the list of scaffolds, and discarding those for which filter_metric > rna-max- covg-gap.
[00362] Такой фильтр может также быть применен в качестве рекурсивного отсечения в середине скопления скаффолдов. При добавлении каждой новой цепочки затравок в скаффолд аннотируют обновленное покрытие референса, а также потенциальное покрытие, вычисляемое посредством вычитания промежутков покрытия в пределах и перед указанной цепочкой затравок из длины рида. С использованием указанного частичного охвата и потенциального покрытия, если показатель запустит фильтрацию, то любой более длинный скаффолд, использующий текущий потенциальный скаффолд в качестве прификса, наиболее вероятно будет отфильтрован, так как охват референса будет только повышаться, а потенциальное покрытие будет только уменьшаться. Таким образом, вся рекурсия, имеющая текущий потенциальный скаффолд в качестве префикса, может быть пропущена. Отсечение рекурсии при помощи фильтра скаффолдов таким образом может значительно уменьшить длину рекурсии для формирования набора скаффолдов из длинного списка цепочек затравок.[00362] Such a filter can also be applied as a recursive cutoff in the middle of a cluster of scaffolds. As each new seed chain is added to the scaffold, the updated reference coverage is annotated, as well as the potential coverage, calculated by subtracting the coverage gaps within and before the specified seed chain from the read length. Using the specified partial coverage and potential coverage, if the metric triggers filtering, then any longer scaffold using the current candidate scaffold as a prefix will most likely be filtered, since the reference's coverage will only increase and the potential coverage will only decrease. Thus, all recursion that has the current candidate scaffold as a prefix can be skipped. Recursion pruning using a scaffold filter in this way can significantly reduce the recursion length to generate a set of scaffolds from a long list of seed chains.
[00363] Также может быть оптимизировано осуществление рекурсивного поиска скаффолдов. Рекурсивные циклы повторно сканируют части списка цепочек затравок и скорость алгоритма таким образом значительно лучше, когда лист цепочек затравок короче. Но в действительности не обязательно выполнять рекурсивный алгоритм над всем списком цепочек затравок, когда некоторые цепочки затравок не могут образовывать скаффолд с другими цепочками затравок. Один способ оптимизации заключается в обнаружении «изолированных» цепочек затравок, которые расположены дальше, чем maxIntronLen (например, 1000000 оснований) от любой другой цепочки затравок в референсе. Изолированные цепочки затравок могут автоматически быть выделены как скаффолды с одной цепочкой и удалены из списка цепочек затравок перед дальнейшим формированием скаффолдов, тем самым укорачивая список цепочек затравок, сканируемого в процессе рекурсии. Аналогичным образом могут быть обнаружены хорошо отделенные подмножества цепочек затравок, например, подмножества с каждой хромосомой или подмножества, отделенные более, чем maxIntronLen в референсе, и рекурсивное формирование скаффолдов может быть выполнено отдельно над каждым таким подмножеством, обеспечивая в результате сниженное общее время исполнения.[00363] The implementation of recursive scaffold searches can also be optimized. Recursive loops repeatedly scan parts of the list of seed chains, and the speed of the algorithm is thus significantly better when the list of seed chains is shorter. But in reality, it is not necessary to perform a recursive algorithm on the entire list of seed chains when some seed chains cannot form a scaffold with other seed chains. One optimization technique is to detect "isolated" primer strings that are farther than maxIntronLen (e.g., 1,000,000 bases) from any other primer string in the reference. Isolated seed chains can be automatically isolated as single-strand scaffolds and removed from the seed chain list before further scaffold formation, thereby shortening the list of seed chains scanned during the recursion process. Likewise, well-separated subsets of seed chains, such as subsets with each chromosome or subsets separated by more than maxIntronLen in the reference, can be detected, and recursive scaffolding can be performed separately on each such subset, resulting in reduced overall execution time.
[00364] Первый этап модуля выравнивателя для каждого скаффолда заключается в точном расположении каждой границы сплайсинга, границы между двумя сегментами экзона (представленные двумя соответствующими цепочкам затравок в скаффолде). Это называют «сшиванием» сегментов экзона вместе или сшивание границ сплайсинга. Более точное сшивание все еще необходимо после картирования затравок и формирования скаффолдов, так как две последовательные цепочки затравок сами по себе могут не давать ясного представления, где между ними пролегает верная граница. Например, последовательные цепочки затравок могут быть разделены некоторым расстоянием в риде, если затравки не удалось картировать сразу на одной или обеих сторонах границы сплайсинга; или последовательные цепочки затравок могут перекрывать друг друга в риде, особенно если последовательность рида на конце одного экзона совпадает с последовательностью в начале следующего экзона. Даже если последовательные цепочки затравок примыкают без промежутка или перекрываются, это не гарантирует, что граница между ними пролегает в верном положении границы сплайсинга.[00364] The first step of the aligner module for each scaffold is to precisely locate each splice boundary, the boundary between two exon segments (represented by the two corresponding primer strands in the scaffold). This is called "stacking" exon segments together or stitching splice boundaries. More precise cross-linking is still needed after seed mapping and scaffold formation, since two consecutive seed chains by themselves may not provide a clear indication of where the correct boundary lies between them. For example, successive chains of primers may be separated by some distance in the read if the primers could not be mapped to one or both sides of the splice boundary at once; or successive chains of primers may overlap each other in a read, especially if the read sequence at the end of one exon matches the sequence at the beginning of the next exon. Even if successive strands of primers adjoin without a gap or overlap, this does not guarantee that the boundary between them lies at the correct position of the splice boundary.
[00365] Сшивание границ сплайсинга таким образом в первую очередь представляет собой анализ для выбора лучшего положения для сшивания между последовательными сегментами экзона в риде, соответствующего наиболее вероятному положению границы сплайсинга. Для определения этого полезными являются два фактора. Первый фактор заключается в сравнении последовательности рида с левой и правой последовательность референса в двух местоположениях картирования сегментов экзона в референсном геноме. Данное положение сшивания подразумевает. что основания рида, левые по отношению ко шву, картируются на левую область референса, а основания рида, правые по отношению ко шву, картируются на правую область референса. При перемещении потенциального положения сшивания слева направо в риде основания рида меняют свое картирование при их пересечении с правой области референса на левую.[00365] Stitching splice boundaries in this manner is primarily an analysis to select the best position for stitching between successive exon segments in a read corresponding to the most likely position of the splice boundary. Two factors are useful in determining this. The first factor is to compare the read sequence with the left and right reference sequence at two exon segment mapping locations in the reference genome. This stitching position implies. that read bases left with respect to the suture are mapped to the left reference area, and read bases right with respect to the suture are mapped to the right reference area. When moving a potential stitching position from left to right in a read, the bases of the read change their mapping when they intersect from the right reference region to the left.
[00366] Как показано на ФИГ. 4, верное положение границы сплайсинга наиболее вероятно будет иметь хорошее совпадение между левой частью рида и левой областью референса, а также между правой частью рида и правой областью референса. Общее количество несовпадений (или ОНП) могут быть подсчитаны на обеих сторонах потенциального положения сшивания посредством сравнения с соответствующей областью референса; и положения сшивания с меньшим числом ОНП наиболее вероятно будут верными. Сравнение частей рида, левых и правых для каждого положения сшивания, показано на фиг. 4.[00366] As shown in FIG. 4, the correct position of the splice boundary will most likely have a good match between the left part of the read and the left reference region, as well as between the right part of the read and the right reference region. The total number of mismatches (or SNPs) can be counted on both sides of a potential stitching position by comparison with the corresponding reference region; and cross-linking positions with fewer SNPs are most likely to be correct. A comparison of the left and right parts of the read for each stitching position is shown in FIG. 4.
[00367] Подсчет ОНП эффективно моделируют посредством сканирования положений сшивания через посредством окна возможных положений в риде, например перекрывая каждые из двух цепочек затравок не более чем на некоторое расстояние, например, на 48 оснований. Указанное сканирование запускают в аппаратном модуле выравнивателя, например, на скорости в одно положение за цикл. Каждый раз, когда сканирование проходит один шаг, например слева направо, только одно основание рида меняет свое картирование с правой области референса на левую область референса. Таким образом, сравнение левых последовательностей либо приобретает одно ОНП, или остается неизменным, а сравнение правых последовательностей либо теряет одно ОНП, либо остается неизменным; и таким образом прямое количество ОНП изменяется на -1, 0 или +1. Такое постепенное изменение количества ОНП для каждого шага может быть вычислено посредством сравнения одного основания рида (того, которое было пересечено при шаге положения сшивания) с двумя основаниями референса. Если такое постепенное изменение количества ОНП суммируется при выполнении шагов слева направо, то текущая сумма может быть взята в качестве относительной оценки, где минимальная оценка является наилучшей. Эквивалентным образом, каждому совпадающему основанию может быть присвоена положительная оценка совпадения, а каждому несовпадающему основания негативный штраф несовпадения; и сумма постепенных изменений оценки должна быть максимальной для наилучшего положения сшивания.[00367] SNP counting is effectively modeled by scanning crosslinking positions through a window of possible positions in the read, eg by overlapping each of two seed chains by no more than a certain distance, for example 48 bases. Said scanning is run in the hardware equalizer module, for example, at a speed of one position per cycle. Each time the scan moves one step, for example from left to right, only one read base changes its mapping from the right reference region to the left reference region. Thus, the left sequence comparison either gains one SNP or remains unchanged, and the right sequence comparison either loses one SNP or remains unchanged; and thus the direct number of SNPs changes to -1, 0 or +1. This gradual change in the number of SNPs for each step can be calculated by comparing one read base (the one crossed in the stitching position step) with two reference bases. If such a gradual change in the number of SNPs is added up in steps from left to right, then the current sum can be taken as a relative estimate, where the minimum estimate is the best. Equivalently, each matching base can be assigned a positive match penalty, and each non-matching base a negative mismatch penalty; and the sum of the incremental changes in the score should be maximum for the best stitching position.
[00368] Другим фактором, предполагаемым каждым положением сшивания, является мотив интрона. Мотив интрона определен как первые два основания и последние два основания пропущенного сегмента референса, или интрона. Эквивалентным образом, мотив для любого потенциального положения сшивания образован из двух первых оснований после левой области референса и последних двух оснований перед правой областью референса, как показано на фиг. 4. Этот предполагаемый мотив интрона зависит от положения сшивания и обычно меняется при сканировании положения сшивания в окне возможных положений сшивания. Некоторые «каноничные» мотивы интрона возникают значительно боле часто, чем другие, при сплайсинге естественной РНК. Положение сшивания, которое соответствует каноничному мотиву интрона, наиболее вероятно будет верным положением границы сплайсинга, особенно, если он является одним из наиболее частых каноничных мотивов.[00368] Another factor implied by each cross-linking position is the intron motif. An intron motif is defined as the first two bases and last two bases of the missing reference segment, or intron. Equivalently, the motif for any potential cross-linking position is formed from the first two bases after the left reference region and the last two bases before the right reference region, as shown in FIG. 4. This putative intron motif depends on the position of the crosslink and usually changes when scanning the position of the crosslink in a window of possible crosslinking positions. Some “canonical” intronic motifs occur significantly more frequently than others during natural RNA splicing. A stitch position that matches a canonical intron motif is most likely to be the correct splice boundary position, especially if it is one of the most common canonical motifs.
[00369] Таблица трех каноничных мотивов интронов в человеческой РНК показана в ТАБЛИЦЕ I. Для каждого мотива также показано его обратное соответствие, так как в большинстве протоколов секвенирования РНК риды могут картироваться как прямо, так и с обратным соответствием относительно транскрибированной генной нити, так что хотя возникает только «прямой» каноничный мотив в оригинальной считываемой генной нити, его обратное соответствие может возникнуть в РНК-секвенированных ридах. Для каждого каноничного мотива и для оставшихся классовых или неканонических мотивов показан средняя частота в сплайсинге человеческой РНК вместе со штрафом оценки образца, который может быть использован, например, с совпадениями оснований с оценкой +1 и несовпадениями оснований с оценкой -4.[00369] A table of the three canonical intron motifs in human RNA is shown in TABLE I. For each motif, its inverse mapping is also shown, since in most RNA sequencing protocols reads can be mapped either forward or backward to the transcribed gene strand, so that although only the "forward" canonical motif arises in the original gene strand read, its reverse match can arise in RNA-seq reads. For each canonical motif and for the remaining class or non-canonical motifs, the average frequency in human RNA splicing is shown along with a sample scoring penalty that can be used, for example, with base matches with a score of +1 and base mismatches with a score of -4.
[00370] Модуль сшивания сплайсинга соответственно сканирует потенциальные положения сшивания в окне возможных местоположений сшивания, например слева направо, суммируя постепенное изменение оценки вследствие изменения основаниями того, на какую область они картируются, а также вычитания в каждом потенциальном положении сшивания штрафа мотива интрона в соответствии с мотивом интрона, наблюдаемым непосредственно после левой области референса и непосредственно перед правой областью референса, и выбирает для сшивания положение с максимальной оценкой.[00370] The splicing cross-linking module accordingly scans potential cross-linking positions in a window of possible cross-linking locations, for example from left to right, summing up the gradual change in score due to bases changing which region they map to, as well as subtracting at each potential cross-linking position the intron motif penalty according to intron motif observed immediately after the left reference region and immediately before the right reference region, and selects the position with the highest score for stitching.
[00371] Кроме того, некоторые специальные результаты могут быть рассмотрены и оценены. Сшивание на левом краю или правом краю окна возможных положений сшивания может рассматриваться как ошибка сшивания и наиболее вероятно возникнет, когда одна из двух областей референса не является верным положением картирования для сегмента экзона рида, например, когда следовали аннотированной границе сплайсинга, но оказывается верным для данного рида. Сшиванию по левому или правому краю преимущественно могут присвоить бонусную оценку, например, 25 по той же приведенной в качестве примера шкале оценок, так что для успешного сшивания должно появиться значительное доказательство верной границы сплайсинга.[00371] In addition, some special results may be reviewed and evaluated. Stitching at the left edge or right edge of the window of possible stitching positions can be considered a stitching error and is most likely to occur when one of the two reference regions is not the correct mapping position for a segment of an exon read, for example when an annotated splice boundary was followed but turns out to be correct for a given rida. Left or right stitching may advantageously be given a bonus score of, for example, 25 on the same exemplary scoring scale, so that for successful stitching there must be significant evidence of the correct splicing boundary.
[00372] Кроме того, если аннотированная граница сплайсинга идентифицирована как связывающая две сшиваемых цепочки затравок, аннотированная граница находится в известном положении в окне возможных положений сшивания. В качестве опции, операция сшивания может быть пропущена, просто принимая известное положение аннотированной границы. В качестве другой опции, операция сшивания может быть выполнена, но известному положению аннотированной границы может быть присвоена бонусная оценка и/или автоматически присвоен наилучший из доступных штрафов мотива интрона, или нулевой штраф. В качестве другой опции, вместо штрафа мотива интрона известному положению аннотированной границы может быть присвоена бонусная оценка или штраф, связанные с наблюдаемой общностью или редкостью той границы сплайсинга, которая аннотирована в базе данных аннотирования. Если известное положение аннотированной границы сплайсинга выбрано для сшивания, то граница сшивания может быть отмечена как согласующаяся с аннотированной границей, так что этот факт может быть сообщен, если указанная граница сплайсинга возникнет в выходном выравнивании рида.[00372] Additionally, if an annotated splice boundary is identified as linking two seed strands to be stitched, the annotated boundary is at a known position in the window of possible stitching positions. As an option, the stitching operation can be skipped, simply accepting the known position of the annotated boundary. As another option, the stitching operation can be performed, but the known position of the annotated boundary can be given a bonus score and/or automatically assigned the best available intron motif penalty, or a penalty of zero. As another option, instead of an intron motif penalty, a known position of an annotated boundary can be given a bonus score or penalty associated with the observed commonness or rarity of that splice boundary that is annotated in the annotation database. If a known position of an annotated splice boundary is selected for stitching, then the stitching boundary may be marked as consistent with the annotated boundary, so that this fact can be reported if the specified splice boundary occurs in the output read alignment.
[00373] Выбранные положения сшивания могут быть аннотированы в скаффолды различными способами. В предпочтительном варианте реализации составляющие цепочки затравок скаффолда редактируют для начала и конца, непосредственно соседних к выбранным положениям сшивания.[00373] Selected stitching positions can be annotated into scaffolds in various ways. In a preferred embodiment, the constituent seed chains of the scaffold are edited to start and end immediately adjacent to the selected crosslinking positions.
Кроме того, предпочтительно, чтобы модуль выравнивателя в некоторых обстоятельствах выполнял большие редактирования скаффолдов на основании результатов сшивания. Если сшивание не удается, то скаффолд могут усечь или разделить на два скаффолда в точке ошибки. Кроме того, может быть выполнена попытка сшивания между несмежными цепочками затравок в скаффолде, например, с пропуском одной цепочки затравок. Например, для скаффолда, содержащего цепочки затравок 1, 2, 3 и 4, сшивание границы сплайсинга должно естественным образом выполняться между парами цепочек (1,2), (2,3) и (3,4); но, в дополнение, может быть выполнена попытка сшивания между парами цепочек (1,3) и (2,4). Если сшивание от 1 до 3 имеет лучшую оценку, чем сшивание от 1 до 2 с последующем сшиванием от 2 до 3, то цепочку 2 затравок могут отбросить из скаффолда.In addition, it is preferable for the aligner module to perform large edits to scaffolds based on the stitching results in some circumstances. If cross-linking fails, the scaffold may be truncated or split into two scaffolds at the point of error. Additionally, cross-linking between non-adjacent seed chains in a scaffold may be attempted, eg by skipping one seed chain. For example, for a scaffold containing primer strands 1, 2, 3, and 4, splice boundary stitching should naturally occur between strand pairs (1,2), (2,3), and (3,4); but, in addition, a stitching can be attempted between pairs of chains (1,3) and (2,4). If cross-linking 1 to 3 has a better score than cross-linking 1 to 2 followed by cross-linking 2 to 3, then seed chain 2 may be discarded from the scaffold.
[00375] Определив точные положения границы сплайсинга в рассматриваемом скаффолде посредством сшивания, могут быть определены соответствующие завершенные выравнивания и оценки выравнивания для каждого скаффолда посредством использования модуля беспромежуточного выравнивателя или выравнивателя с промежутками (например, Смита-Ватермана). Для скаффолда только с одной цепочкой затравок это не сильно отличается от выравнивания для ридов ДНК и могут быть использованы такие же аппаратные модули и способы. Для скаффолда с множеством цепочек затравок необходимы некоторые дополнительные способы для получения завершенного, возможно со сплайсингом (содержащего интронные операции), выравнивания.[00375] Having determined the exact positions of the splice boundary in a given scaffold by stitching, the corresponding completed alignments and alignment scores for each scaffold can be determined through the use of a spaceless aligner module or a gapped aligner (eg, Smith-Waterman). For a scaffold with only one strand of primers, this is not much different from the alignment for DNA reads and the same hardware modules and methods can be used. For a scaffold with multiple primer strands, some additional methods are required to obtain a complete, possibly spliced (containing intronic operations) alignment.
[00376] Одним способом, посредством которого могут быть определены завершенные выравнивания со сплайсингом, является отдельное выравнивание каждого сегмента экзона рида, соответствующего каждой цепочке затравок в скаффолде, с соответствующем ему сегментом референса, посредством беспромежуточного выравнивателя и/или выравнивателя с промежутками. Такой подход имеет недостатки, когда требуются локальные (т.е., возможно, обрезанные) выравнивания. Если выравнивания отдельных сегментов экзона получают без обрезания, то их нелегко собрать вместе в завершенное выравнивание со сплайсингом. Если выравнивания отдельных сегментов экзона получают без обрезания, то их оценки выравнивания могут изучить для определения того, будет ли обрезать наилучшее общее локальное выравнивание один или более сегментов экзона, но подходящее ограничение в произвольных местоположениях в пределах сегментов экзона определить нелегко. Таким образом, может быть дорого получать обрезанный и необрезанные версии выравнивания каждого сегмента экзона для решения указанных трудностей.[00376] One way in which completed spliced alignments can be determined is to separately align each exon read segment corresponding to each primer strand in the scaffold with its corresponding reference segment, using an intermediate-free aligner and/or a gap aligner. This approach has disadvantages when local (i.e., possibly trimmed) alignments are required. If alignments of individual exon segments are obtained without trimming, they are not easily assembled together into a complete spliced alignment. If alignments of individual exon segments are obtained without trimming, then their alignment estimates can be examined to determine whether the best overall local alignment will trim one or more exon segments, but the appropriate cutoff at arbitrary locations within exon segments is not easy to determine. Thus, it can be expensive to obtain trimmed and untrimmed versions of the alignment of each exon segment to overcome these difficulties.
[00377] Один способ определение завершенных выравниваний со сплайсингом для скаффолда с множеством цепочек включает объединение сегментов экзона вместе перед выравниванием. В каждый модуль выравнивателя - беспромежуточный или с промежутком - можно подавать две последовательности нуклеотидов для выравнивания, рассматриваемую последовательность (рида) и референсную последовательность. Объединенная рассматриваемая последовательность может представлять собой просто целый рид, представляющий собой объединение его сегментов экзона, при необходимости с обрезанием начала или конца рида, если первый или последний сегмент экзона не проходит в начало или конец рида.[00377] One method for determining completed spliced alignments for a multi-strand scaffold involves concatenating exon segments together before alignment. Each aligner module - intermediate-free or with a gap - can supply two nucleotide sequences for alignment, the considered sequence (read) and the reference sequence. The combined sequence in question may simply be the entire read, representing the concatenation of its exon segments, optionally trimming the start or end of the read if the first or last exon segment does not extend to the start or end of the read.
[00378] Объединенная референсная последовательность получена посредством извлечения сегмента референсного генома, представляющего собой картированное изображение каждой цепочки затравок сегмента экзона, и объединения указанных референсных сегментов вместе. Следует отметить, что для данного сегмента экзона (цепочки затравок) его референсный сегмент может отличаться по длине от его сегмента рида в случае, когда самые левые затравки в цепочке затравок попадают в несколько отличающуюся диагональ выравнивания, чем самые правые затравки; например, затравки в цепочке затравок предполагают наличие индела. В таком случае следует использовать выравниватель с промежутком.[00378] The combined reference sequence is obtained by retrieving a reference genome segment representing a mapped image of each exon segment primer strand and combining said reference segments together. It should be noted that for a given exon segment (seed chain), its reference segment may differ in length from its read segment in the case where the leftmost primers in the primer chain fall on a slightly different alignment diagonal than the rightmost primers; for example, the seeds in the seed chain assume the presence of an indel. In this case, a spacer leveler should be used.
[00379] Кроме того, для выравнивания с промежутком первый и последний сегменты экзона референсной последовательности могут проходить наружу, например, проходить через первый сегмент экзона с 50 предшествующих оснований референса и последний сегмент экзона и 50 последующих оснований референса для обеспечения пространства для делеций в пределах первого и последнего сегментов экзона.[00379] In addition, for alignment with a gap, the first and last exon segments of the reference sequence may extend outward, for example, through the first exon segment with 50 preceding reference bases and the last exon segment and 50 subsequent reference bases to provide space for deletions within the first and the last exon segments.
[00380] При помощи объединения сегментов экзона скаффолда из рида и референса, можно обеспечить подачу единой объединенной рассматриваемой последовательности и единой объединенной референсной последовательности в модуль выравнивателя, который затем может функционировать практически тем же образом для выравниваний РНК со сплайсингом, как и для выравнивания (РНК или ДНК) без сплайсинга. Однако некоторые другие модификацию будут обеспечивать преимущество. Во-первых, для определения подходящего обрезания локальных выравниваний в любом положении в пределах любого сегмента экзона некоторые штрафы оценок (или бонусы) могут быть применены к каждой границе сплайсинга, которую пересекает выравнивание. В одном варианте реализации, штраф оценки для каждой границы сплайсинга относится к ее мотиву интрона и статусу аннотированной границы сплайсинга, и может представлять собой тот же штраф оценки, использованный при сшивании границ сплайсинга.[00380] By combining scaffold exon segments from a read and a reference, it is possible to feed a single combined reference sequence and a single combined reference sequence into the aligner module, which can then function in essentially the same way for spliced RNA alignments as for (RNA) alignments. or DNA) without splicing. However, some other modification will provide an advantage. First, to determine appropriate trimming of local alignments at any position within any exon segment, some scoring penalties (or bonuses) can be applied to each splice boundary that the alignment crosses. In one embodiment, the scoring penalty for each splice boundary relates to its intron motif and annotated splice boundary status, and may be the same scoring penalty used when stitching the splice boundaries.
[00381] Соответственно, неаннотированная граница сплайсинга с редким или неканоничным мотивом интрона может иметь большой штраф связанной оценки и наиболее вероятно, что один или более из всех сегментов экзона будут обрезаны из выравнивания сплайсинга для исключения такой маловероятной границы сплайсинга до тех пор, пока не произойдет достаточное количество совпадений последовательности на обеих сторонах границы сплайсинга для того, чтобы служить в качестве убедительного доказательства того, что граница сплайсинга действительно присутствует, посредством преодоления штрафа ее оценки. В предпочтительном варианте реализации каждая из объединенных опрашиваемой и референсной последовательностей имеет ложные основание, вставленное между последовательными сегментами экзона, и подходящий штраф оценки для каждой границы сплайсинга прикреплен к соответствующему ему ложному основанию. Это позволяет включить штрафы оценки границы сплайсинга без специализированной логической части и обеспечивает пространство для возможного обрезания выравнивания с любой стороны ложного основания границы сплайсинга.[00381] Accordingly, an unannotated splice boundary with a rare or non-canonical intronic motif may have a large associated score penalty and most likely have one or more of all exon segments trimmed from the splice alignment to exclude such unlikely splice boundary until it occurs a sufficient number of sequence matches on both sides of the splice boundary to serve as strong evidence that the splice boundary is indeed present, by overcoming its scoring penalty. In a preferred embodiment, each of the combined query and reference sequences has a decoy inserted between successive exon segments, and the appropriate scoring penalty for each splice boundary is attached to its corresponding decoy. This allows splice boundary estimation penalties to be enabled without specialized logic, and provides room for possible alignment trimming on either side of the splice boundary spurious base.
[00382] Кроме того, в различных примерах для выравнивания с промежутком, например, Смита-Ватермана, может быть преимуществом вынуждать части выравнивания проходить через заранее определенные границы сплайсинга. Другими словами, ни один путь выравнивания не должен переходить от одного рассматриваемого сегмента экзона к следующему без одновременного перехода от соответствующего сегмента экзона референса к следующему. Одной причиной указанного ограничения является то, что только надлежащим образом синхронизированная граница сплайсинга будет иметь надлежащую оценку на основании мотива интрона, определенного во время сшивания границы сплайсинга.[00382] Additionally, in various examples, for a gap alignment such as Smith-Waterman, it may be advantageous to force portions of the alignment to pass through predefined splice boundaries. In other words, no alignment path should move from one reference exon segment to the next without simultaneously moving from the corresponding reference exon segment to the next. One reason for this limitation is that only a properly synchronized splice boundary will have a proper score based on the intron motif determined during splice boundary stitching.
[00383] Другой причиной является то, что объединенная референсная последовательность была образована с использованием точных границ сегмента экзона референса, соответствующих выбранному положению сшивания каждой границы сплайсинга, так что отсутствуют дополнительные основания референса для выравнивателя с промежутком для свободной регулировки границ сплайсинга. Кроме того, для того, чтобы избежать выравниваний, которые сложно интерпретировать (например, такие как строки CIGAR с операциями ‘I’ или ‘D’, смежными с ‘N’ операций), желательно потребовать, чтобы по меньшей мере одно рассматриваемое основание и основание референса перед каждой включенной границей сплайсинга были выровнены «по диагонали» (рассматриваемое основание выровнено с основанием референса как операция ‘M’ CIGAR), и одно рассматриваемое основание и основание референса после каждой включенной границей сплайсинга были выровнены «по диагонали».[00383] Another reason is that the combined reference sequence was generated using the precise boundaries of the reference exon segment corresponding to the selected stitching position of each splice boundary, so that there are no additional reference bases for the spaced aligner to freely adjust the splice boundaries. Additionally, in order to avoid alignments that are difficult to interpret (for example, such as CIGAR strings with 'I' or 'D' operations adjacent to 'N' operations), it is advisable to require that at least one radix in question and a radix the reference base before each included splice boundary was aligned "diagonally" (the base in question was aligned with the reference base as a 'M' CIGAR operation), and the one base in question and the reference base after each included splice boundary were aligned "diagonally".
[00384] Для усиления указанных ограничений объединенные референсная и рассматриваемая последовательности разделены на зоны, которым присвоены идентификаторы или ID зоны, например, целочисленные значения. В одном варианте реализации один присвоен каждому ложному основанию между сегментами экзона, другой ID зоны присвоен последнему основанию каждого сегмента экзона, предшествующему границе сплайсинга (но не последнему основанию объединенной последовательности), и другой ID зоны присвоен всем оставшимся основаниям каждого сегмента экзона.[00384] To reinforce these restrictions, the combined reference and subject sequences are divided into zones, which are assigned identifiers or zone IDs, for example, integer values. In one embodiment, one is assigned to each dummy base between exon segments, another zone ID is assigned to the last base of each exon segment preceding the splice boundary (but not the last base of the merged sequence), and another zone ID is assigned to all remaining bases of each exon segment.
[00385] Например, для скаффолда с тремя сегментами экзона (цепочками затравок), каждый длиной 20 оснований, может быть 4 ID зоны: зона 1 для оснований 1-19 первого сегмента экзона, зона 2 для основания 20 первого сегмента экзона, зона 3 для ложного основания между первым и вторым сегментами экзона, зона 4 для оснований 1-19 второго сегмента экзона, зона 5 для основания 20 второго сегмента экзона, зона 6 для ложного основания между вторым и третьим сегментами экзона и зона 7 для оснований 1-20 третьего сегмента экзона. Одинаковое картирование зон применяют к объединенной рассматриваемой последовательности и к объединенной референсной последовательности, учитывая, что соответствующие рассматриваемые зоны и референсные зоны с множеством оснований с одинаковыми ID зоны могут иметь различные длины вследствие инделов в цепочках затравок. Затем, в беспромежуточном выравнивателе, ячейка оценки модифицирована так, чтобы допускать только верные оценки выравнивания на пересечении между идентичными ID зоны, т.е. когда рассматриваемый ID зоны совпадает с ID зоны референса.[00385] For example, for a scaffold with three exon segments (seed chains), each 20 bases long, there could be 4 zone IDs: zone 1 for bases 1-19 of the first exon segment, zone 2 for base 20 of the first exon segment, zone 3 for a false base between the first and second exon segments, zone 4 for bases 1-19 of the second exon segment, zone 5 for base 20 of the second exon segment, zone 6 for a false base between the second and third exon segments, and zone 7 for bases 1-20 of the third segment exon. The same zone mapping is applied to the combined subject sequence and to the combined reference sequence, recognizing that the corresponding subject zones and multi-base reference zones with the same zone ID may have different lengths due to indels in the seed strands. Then, in the intermediate-free aligner, the evaluation cell is modified to allow only valid alignment evaluations at the intersection between identical zone IDs, i.e. when the considered zone ID matches the reference zone ID.
[00386] Соответственно, в различных примерах, настоящее изобретение направлено на устройства и способы для использования при картировании и выравнивании ДНК и/или РНК. Таким образом, в конкретных примерах обеспечена жестко смонтированная цифровая логическая схема, например, интегральная схема, причем интегральная схема включает конфигурацию, например, жестко смонтированную и/или предварительно сконфигурированную конфигурацию, которая выполнена с возможностью реализации одного или более этапов операции картирования и/или выравнивания ДНК и/или РНК. В частности, раскрытые в настоящем документе устройства могут быть выполнены с возможностью реализации различных типов анализа над РНК, например, типы анализа РНК, реализуемые одним или более жестко смонтированных модулей обработки или их подмножества.[00386] Accordingly, in various examples, the present invention is directed to devices and methods for use in mapping and aligning DNA and/or RNA. Thus, in specific examples, a hard-wired digital logic circuit, such as an integrated circuit, is provided, wherein the integrated circuit includes a configuration, such as a hard-wired and/or pre-configured configuration, that is configured to implement one or more steps of a mapping and/or alignment operation DNA and/or RNA. In particular, devices disclosed herein may be configured to implement various types of RNA assays, for example, types of RNA assays implemented by one or more hardwired processing modules or a subset thereof.
[00387] Например, в некоторых вариантах реализации обеспечены устройство и/или система для реализации конвейера анализа последовательности ДНК и/или РНК над данными последовательности ДНК и/или РНК, например, над ридом полученных из РНК геномных данных. В таком примере система может содержать одно или более из: памяти, например, для хранения одной или более референсных последовательностей ДНК и/или РНК, например, полученных из РНК геномных референсных данных, индекса одной или более референсных последовательностей ДНУ и/или РНК и множества ридов геномных данных, например, когда каждая из референсных последовательностей ДНК и/или РНК и множество ридов данных последовательности содержат последовательность нуклеотидов; а также интегральную схему, раскрытую в настоящем документе. В частности, интегральная схема может быть образована из множества жестко смонтированных цифровых логических схем, которые могут быть соединены друг с другом посредством множества физических электрических межсоединений. В таком примере одно или более из множества физических электрических межсоединений могут содержать интерфейс памяти для доступа интегральной схемы к памяти. Кроме того, жестко смонтированные цифровые логические схемы могут быть выполнены в виде набора модулей обработки, такого где один или более из модулей обработки сформированы подмножеством жестко смонтированных цифровых логических схем и выполнены с возможностью реализации по меньшей мере одного этапа в конвейере анализа геномных последовательностей ДНК и/или РНК на множестве ридов секвенированных данных. Следует отметить, что в различных примерах рид полученных из РНК геномных данных может указывать на рид, который был получен непосредственно секвенированием образца РНК или посредством секвенирования некоторого дальнейшего продукта, полученного из образца РНК, например, обратно транскрибированную кДНК и тому подобное, и могут называться в настоящем документе как «рид РНК» или «рид длинных РНК», который содержит общие сведения об источнике, из которого получены данные РНК.[00387] For example, in some embodiments, an apparatus and/or system is provided for implementing a DNA and/or RNA sequence analysis pipeline on DNA and/or RNA sequence data, for example, on a read of RNA-derived genomic data. In such an example, the system may comprise one or more of: a memory, for example, for storing one or more DNA and/or RNA reference sequences, for example, RNA-derived genomic reference data, an index of one or more DNU and/or RNA reference sequences, and a plurality of genomic data reads, for example, when each of the reference DNA and/or RNA sequences and the plurality of sequence data reads contain a nucleotide sequence; as well as the integrated circuit disclosed herein. In particular, an integrated circuit may be formed from a plurality of hard-wired digital logic circuits that may be connected to each other via a plurality of physical electrical interconnections. In such an example, one or more of the plurality of physical electrical interconnections may comprise a memory interface for the integrated circuit to access memory. In addition, the hard-wired digital logic circuits may be implemented as a set of processing modules, such that one or more of the processing modules are formed by a subset of the hard-wired digital logic circuits and are configured to implement at least one step in a genomic DNA sequence analysis pipeline and/or or RNA on multiple reads of sequenced data. It should be noted that in various examples, a read of RNA-derived genomic data may refer to a read that was obtained directly by sequencing the RNA sample or by sequencing some further product derived from the RNA sample, such as reverse transcribed cDNA and the like, and may be referred to as herein as an “RNA read” or “long RNA read”, which provides general information about the source from which the RNA data was obtained.
[00388] В частности, множество модулей обработки может содержать модуль картирования ДНК и/или РНК, модуль выравнивания, модуль сортировки и/или модуль определения вариантов, который может содержать модуль скрытой марковской модели (HMM) и/или модуль Смита-Ватермана (SW). Например, в первой конфигурации жестко смонтированная цифровая логическая схема, раскрытая в настоящем документе, может быть выполнена с возможностью осуществлять доступ в памяти, посредством интерфейса памяти, по меньшей мере к некоторым из последовательностей нуклеотидов ДНЕ и/или РНК в выбранном риде из множества ридов и к индексу одной или более референсных последовательностей ДНК и/или РНК, и для картирования выбранного рида ДНК и/или РНК на один или более сегментов указанных одной или более генетических референсных последовательностей на основе индекса для получения картированного рида. В конкретных случаях, например, в отношении картирования РНК, модуль картирования РНК может быть выполнен с возможностью реализации одного или более из картирования с применением привязанных затравок, поиска аннотированной границы сплайсинга и/или формирования скаффолдов из цепочек затравок и/или тому подобного по отношению к этапам картирования РНК.[00388] In particular, the plurality of processing modules may comprise a DNA and/or RNA mapping module, an alignment module, a sorting module, and/or a variant detection module, which may include a Hidden Markov Model (HMM) module and/or a Smith-Waterman (SW) module ). For example, in a first configuration, the hard-wired digital logic circuit disclosed herein may be configured to access in memory, via a memory interface, at least some of the DHE and/or RNA nucleotide sequences in a selected read from a plurality of reads and to an index of one or more DNA and/or RNA reference sequences, and to map the selected DNA and/or RNA read onto one or more segments of said one or more genetic reference sequences based on the index to obtain a mapped read. In specific cases, such as with respect to RNA mapping, the RNA mapping module may be configured to implement one or more of tethered primer mapping, annotated splice boundary searching, and/or primer strand scaffolding and/or the like with respect to stages of RNA mapping.
[00389] Аналогичным образом, во второй конфигурации жестко смонтированных цифровых логических схем может быть обеспечен модуль выравнивания, выполненный с возможностью доступа к одной или более референсных последовательностей ДНК и/или РНК из памяти посредством интерфейса памяти для выравнивания картированных ридов ДНК и/или РНК, например, из модуля картирования, на одно или более положений в одном или более сегментов одной или более референсных последовательностей ДНК и/или РНК для получения выровненного рида. В конкретных случаях, например, в отношении выравнивания РНК, модуль выравнивания РНК может быть выполнен с возможностью реализации одного или более из сшивания границ сплайсинга и/или выравнивания рида со сплайсингом, и/или тому подобного по отношению к этапам выравнивания РНК.[00389] Likewise, in a second configuration of hard-wired digital logic circuits, an alignment module may be provided configured to access one or more DNA and/or RNA reference sequences from memory via a memory interface for aligning mapped DNA and/or RNA reads, for example, from a mapping module, to one or more positions in one or more segments of one or more DNA and/or RNA reference sequences to obtain an aligned read. In specific cases, such as with respect to RNA alignment, the RNA alignment module may be configured to implement one or more of splice boundary stitching and/or read-to-splicing alignment, and/or the like with respect to RNA alignment steps.
[00390] Соответственно, в различных примерах может быть обеспечена жестко смонтированная цифровая логическая схема, причем цифровая логическая схема, или их подмножество, содержит модуль картирования и/или выравнивания, которые могут быть выполнены с возможностью содержать множество сконфигурированных, например, предварительно сконфигурированных, модулей обработки для реализации одного или более этапов конвейера анализа РНК, например так, что один или более этапов могут включать картирование с применением привязанных коротких затравок, поиск аннотированной границы сплайсинга, формирование скаффолдов цепочек затравок, сшивание границ сплайсинга, выравнивание рида со сплайсингом и/или один или более других связанных этапов с реализацией операций картирования и/или выравнивания, например в конвейере генетического анализа.[00390] Accordingly, in various examples, a hard-wired digital logic circuit may be provided, wherein the digital logic circuit, or a subset thereof, comprises a mapping and/or alignment module, which may be configured to contain a plurality of configured, e.g., preconfigured, modules processing to implement one or more steps in an RNA analysis pipeline, for example, such that one or more steps may include mapping using tethered short primers, searching for an annotated splice boundary, scaffolding primer strands, stitching splice boundaries, aligning a read to a splice, and/or one or more other related steps in implementing mapping and/or alignment operations, such as in a genetic analysis pipeline.
[00391] Кроме того, в некоторых примерах обеспечен модуль определения оснований (VC), сконфигурированный, например, в третьей конфигурации жестко смонтированных цифровых логических схем, с возможностью доступа к выровненному риду ДНК и/или РНК и по меньшей мере одной из референсных последовательностей и выполнения одного или более из приведенных далее этапов. Например, модуль определения оснований может быть выполнен с возможностью сравнения последовательности нуклеотидов в выровненном риде ДНК и/или РНК с последовательностью нуклеотидов по меньшей мере одной генетической референсной последовательности так, чтобы определять одну или более разницу между последовательностью нуклеотидов в выровненном риде ДНК/РНК и последовательностью нуклеотидов ДНК/РНК по меньшей мере в одной генетической референсной последовательности, а также с возможностью генерации одного или более определения вариантов, представляющих указанную одну или более разностей. Кроме того, в отношении раскрытой интегральной схемы, одно или более из множества физических электрических межсоединений может также включать в себя выход из интегральной схемы для обмена результирующими данными из модуля картирования, и/или модуля выравнивания, и/или модуля определения вариантов.[00391] Additionally, in some examples, a base detection (VC) module is provided, configured, for example, in a third configuration of hard-wired digital logic circuits, with the ability to access an aligned DNA and/or RNA read and at least one of the reference sequences and performing one or more of the following steps. For example, the base detection module may be configured to compare a nucleotide sequence in the aligned DNA and/or RNA read with a nucleotide sequence of at least one genetic reference sequence so as to determine one or more differences between the nucleotide sequence in the aligned DNA/RNA read and the sequence DNA/RNA nucleotides in at least one genetic reference sequence, and with the ability to generate one or more variant definitions representing the one or more differences. Moreover, with respect to the disclosed integrated circuit, one or more of the plurality of physical electrical interconnections may also include an output from the integrated circuit for exchanging resultant data from a mapping module and/or an alignment module and/or a variant determination module.
[00392] В частности, интегральная схема по настоящему изобретения может содержать одно или более множеств жестко смонтированных цифровых логических схем и/или их подмножеств, например, включая первое, второе, третье и более множеств сконфигурированных, например, предварительно сконфигурированных, жестко смонтированных цифровых логических схем, которые сконфигурированы как один или более модулей обработки для реализации одного или более отдельных этапов в конвейере анализа последовательностей ДНК и/или РНК. Например, жестко смонтированная цифровая логическая схема может содержать первое подмножество цифровых логических схем, которые выполнены как модуль обработки так, чтобы принимать рид данных ДНК и/или РНК посредством одного или более физических электрических межсоединений. Кроме того, может быть обеспечено второе подмножество жестко смонтированных цифровых логических схем, которое выполнено как модуль обработки для выделения части рида ДНК или РНК для формирования затравки, например, когда затравка представляет подмножество последовательности нуклеотидов ДНК или РНК, представленной ридом, например, для реализации одного или более или картирования с применением привязанных коротких затравок. Может быть включено одно или более дополнительных подмножеств цифровых логических схем, например, модуль обработки для поиска аннотированной границы сплайсинга и/или для выполнения картирования цепочек затравок. Кроме того, могут быть включены подмножества цифровых логических схем, сконфигурированные как модуль обработки, например, для выполнения одной или более функций выравнивания над данными РНК, включая подмножество цифровых логических схем для выполнения операции сшивания границ сплайсинга и/или выравнивания рида со сплайсингом.[00392] In particular, an integrated circuit of the present invention may comprise one or more sets of hard-wired digital logic circuits and/or subsets thereof, for example, including first, second, third, or more sets of configured, e.g., pre-configured, hard-wired digital logic circuits that are configured as one or more processing modules to implement one or more distinct steps in a DNA and/or RNA sequence analysis pipeline. For example, a hard-wired digital logic circuit may comprise a first subset of digital logic circuits that are configured as a processing module to receive a read of DNA and/or RNA data through one or more physical electrical interconnects. In addition, a second subset of hard-wired digital logic circuits may be provided that is configured as a processing module for extracting a portion of a DNA or RNA read to form a seed, for example where the seed represents a subset of the DNA or RNA nucleotide sequence represented by the read, for example, to implement one or more or mapping using tethered short seeds. One or more additional subsets of digital logic may be included, such as a processing module for searching for an annotated splice boundary and/or for performing seed strand mapping. Additionally, a subset of digital logic circuits may be included configured as a processing module, for example, to perform one or more alignment functions on RNA data, including a subset of digital logic circuitry to perform the operation of stitching splice boundaries and/or aligning the read to the splice.
[00393] Соответственно, интегральная схема по настоящему изобретению может содержать одну или более цифровых логических схем или их подмножество для выполнения одного или более этапов при выравнивании с применением привязанных коротких затравок. Как более подробно раскрыто в настоящем документе, картирование с применением коротких затравок может быть выполнено для усовершенствования чувствительности базы данных, например, на основе хэш-таблицы, картирования затравок, например посредством использования совпадений более длинных затравок в качестве точек привязки для направления локализованных поисков с более короткими затравками. Это является полезным для того, чтобы картирование на основе хэш-таблиц хорошо работало для ридов РНК, но также это полезно для улучшения чувствительности в отношении картирования ДНК. В частности, картирование начальных затравок может использовать одну или более затравок с K основаниями, полученных из рида геномных данных ДНК и/или РНК для обращения к первому индексу, например, индексу на основе хэш-таблицы, референсного генома ДНК и/или РНК. В таком примере последующее картирование с применением привязанных коротких затравок может быть выполнено, например, с использованием затравок с L основаниями (L<K) для обращения ко второму индексу на основе хэш-таблицы множества ячеек референса, например, когда каждая из множества ячеек референса может быть завершенным или незавершенным подмножеством референсного генома. Это также может быть полезным, когда используется затравка с K и/или с L основаниями для отдельного обращения к первому и/или второму индексу, например, к индексу на основе хэш-таблицы, так, чтобы таким образом выявлять каждую одну или более привязанных ячеек, выбранных из множества ячеек референса.[00393] Accordingly, the integrated circuit of the present invention may include one or more digital logic circuits or a subset thereof for performing one or more steps in alignment using tied short seeds. As discussed in more detail herein, short seed mapping can be performed to improve database sensitivity, e.g., hash table based seed mapping, e.g., by using longer seed matches as anchor points to guide localized searches with more short seeds. This is useful for making hash table-based mapping work well for RNA reads, but it is also useful for improving sensitivity for DNA mapping. In particular, seed mapping may use one or more K-base primers derived from a DNA and/or RNA genomic data read to access a first index, e.g., an index based on a hash table, a DNA and/or RNA reference genome. In such an example, subsequent mapping using anchored short seeds could be performed, for example, using L-base (L<K) seeds to access a second index based on the hash table of the plurality of reference cells, for example, where each of the plurality of reference cells could be a complete or incomplete subset of the reference genome. This may also be useful when using a K and/or L base seed to separately access a first and/or second index, such as a hash table-based index, thereby identifying each one or more linked cells , selected from a variety of reference cells.
[00394] В таком примере может быть обеспечена одна или более структур данных, например, одиночная или множественная структура данных, причем структура(ы) данных может включать первый индекс, например, индекс на основе хэш-таблицы, и может также включать второй индекс, например, второй индекс на основе хэш-таблицы. Кроме того, когда обеспечена одна или более привязанных ячеек, выявление одной или более привязанных ячеек может быть включено в качестве этапа в способах. Следовательно, такое выявление может подразумевать включение идентификатора каждой привязанной ячейки в хэш-ключ, например, хэш-ключ, используемый для обращения к первому и/или второму индексам на основе хэш-таблицы. В некоторых примерах одна или более привязанных ячеек, например, для обращений с затравками с L основаниями, могут быть выбраны, например, в модуле картирования, на основании совпадений, обнаруженных посредством обращений с затравками с К основаниями. Соответственно, модуль картирования может быть выполнен с возможностью реализации операции картирования с применением привязанных коротких затравок перед или после вывода местоположений совпадения, например, когда одна или более привязанных ячеек для обращений с затравками с L основаниями выбраны в или вне модуля картирования на основании вывода местоположений совпадения посредством модуля картирования. В некоторых случаях модуль картирования может выполнять картирование с применением привязанных коротких затравок, когда при вторичной процедуре картирования могут проходить через по меньшей мере подмножество входных ридов.[00394] In such an example, one or more data structures may be provided, such as a single or multiple data structure, wherein the data structure(s) may include a first index, such as a hash table-based index, and may also include a second index, for example, a second index based on a hash table. In addition, when one or more anchored cells are provided, identifying the one or more anchored cells may be included as a step in the methods. Therefore, such detection may involve including the identifier of each linked cell in a hash key, for example, a hash key used to access the first and/or second indexes based on the hash table. In some examples, one or more anchored cells, for example, for L base primer hits, can be selected, for example, in a mapping module, based on matches detected by K base primer hits. Accordingly, the mapping module may be configured to implement a mapping operation using anchored short seeds before or after outputting match locations, for example, when one or more anchored cells for L-base seed hits are selected in or outside of the mapping module based on outputting match locations via the mapping module. In some cases, the mapping module may perform mapping using anchored short seeds, where the secondary mapping procedure may traverse at least a subset of the input reads.
[00395] Кроме того, в отношении выполнения выравнивания, одна или более привязанных ячеек для обращений с затравками с K или с L основаниями могут быть выбраны в или вне модуля картирования и могут быть основаны на выходных данных выравнивания на выходе модуля выравнивания, либо в программном обеспечении, либо в аппаратном обеспечении, например, когда модуль выравнивания принимает местоположения совпадения из модуля картирования. В таком примере может быть выбрано подмножество входных ридов, с включением или исключением ридов с достаточно обрезанными выравниваниями. В некоторых примерах может быть выбрано подмножество входных ридов, с включением или исключением ридов с выравниваниями с достаточно низкой оценкой. И в различных других примерах входные риды могут быть ридами со спаренными концами, и может быть выбрано подмножество входных ридов, с включением или исключением пар ридов с отсутствием выравниваний в надлежащим образом спаренных конфигурациях.[00395] In addition, with respect to performing the alignment, one or more anchored cells for K-base or L-base seed calls may be selected within or outside the mapping module and may be based on the alignment output of the alignment module, or in software software, or in hardware, for example when the alignment module receives match locations from the mapping module. In such an example, a subset of the input reads could be selected, with reads with sufficiently trimmed alignments included or excluded. In some examples, a subset of the input reads may be selected, with reads with alignments with a sufficiently low score included or excluded. And in various other examples, the input reads may be paired-end reads, and a subset of the input reads may be selected to include or exclude pairs of reads with missing alignments in appropriately paired configurations.
[00396] Кроме того, модуль картирования для выполнения анализа последовательности РНК может включать один или более модулей обработки, которые выполнены с возможностью реализации поиска одной или более границ сплайсинга. Поиск границ сплайсинга может применяться для улучшения чувствительности картирования специфичных для РНК ридов. Например, после картирования частей рида РНК с использованием референсного индекса РНК, например, который может представлять или не представлять собой индекс на основе хэш-таблицы, может быть сгенерирована индексу на основе хэш-таблицы опрошена «база данных», или любая другая подходящая форма структуры данных, например, в той же памяти, что и референс и/или его индекс. В особенности, «база данных» может быть сгенерирована на основании известных и/или определенных границ сплайсинга РНК для исследуемых видов и к ней может осуществляться доступ на основании картированных положений. Следует отметить, что каждая известная граница сплайсинга может представлять по возможности длинный сегмент «интрона» (до 1Mbp или длиннее) в референсе, например, где выравнивания рида обычно будут «перепрыгивать» от одной конечной точки интрона к другой.[00396] In addition, a mapping module for performing RNA sequence analysis may include one or more processing modules that are configured to search for one or more splice boundaries. Finding splice boundaries can be used to improve the sensitivity of mapping RNA-specific reads. For example, after mapping portions of an RNA read using an RNA reference index, for example, which may or may not be a hash table-based index, a hash table-based index can be generated and queried "database", or any other suitable form of structure data, for example, in the same memory as the reference and/or its index. In particular, a “database” can be generated based on known and/or defined RNA splicing boundaries for the species under study and can be accessed based on mapped positions. It should be noted that each known splice boundary may represent a possibly long "intron" segment (up to 1Mbp or longer) in the reference, for example, where read alignments will typically "jump" from one intron endpoint to the other.
[00397] Соответственно, доступ к базе данных могут осуществлять таким образом для извлечения известных границ сплайсинга, которые имеют одну конечную точку в каждом из сегментов референса, или вблизи него, вдоль уже картированных частей рида, но которые могут иметь другую часть рида, которая проходит за пределы расположенной рядом конечной точки интрона. В таких примерах ориентировочно может быть принято, что указанная другая часть рида затем продолжит совпадение с референсом после перескакивания через интрон, даже если предыдущие попытки картирования могли не обнаружить какое-либо совпадение в указанной области. Более позднее выравнивание со сплайсингом и оценивание затем может измерить, насколько хорошо рид в действительности совпадает с выравниванием по указанной границе сплайсинга. Этот способ, таким образом, может улучшить способность интегральной схемы обнаруживать наиболее вероятное выравнивание со сплайсингом рида, несмотря на препятствия, например, короткие экзоны, выступающие части короткого экзона и/или редактирования (ОНП и т.д.), блокирующие совпадение в сегменте экзона средней длины.[00397] Accordingly, the database may be accessed in this manner to retrieve known splice boundaries that have one endpoint at or near each of the reference segments along already mapped portions of the read, but which may have another portion of the read that traverses beyond the adjacent intronic endpoint. In such examples, it can be tentatively assumed that the specified other portion of the read will then continue to match the reference after jumping through the intron, even though previous mapping attempts may have failed to detect any match in the specified region. Later splice alignment and scoring can then measure how well the read actually matches the alignment at the specified splice boundary. This method can thus improve the ability of the integrated circuit to detect the most likely spliced read alignment despite obstacles such as short exons, short exon overhangs and/or edits (SNPs, etc.) blocking a match in an exon segment middle length.
[00398] Следовательно, может быть обеспечена память, выполненная с возможностью соединения с интегральной схемой, причем память содержит индекс референсного генома и список аннотированных границ сплайсинга в пределах референсного генома. Модуль картирования, таким образом, может картировать первую часть рида полученных из РНК геномных данных на местоположение совпадения в референсном геноме, например, посредством осуществления доступа к индексу референса с использованием первой части рида. Модуль картирования затем может осуществлять доступ к списку аннотированных границ сплайсинга и извлекать дескриптор интрона, например, когда дескриптор интрона включает первую конечную точку и вторую конечную точку в референсном геноме, например, когда первая конечная точка находится в пределах ограниченного расстояния от местоположения совпадения в референсном геноме.[00398] Accordingly, a memory configured to be coupled to an integrated circuit may be provided, the memory comprising an index of a reference genome and a list of annotated splice boundaries within the reference genome. The mapping module may thus map the first portion of the RNA-derived genomic data read to a match location in a reference genome, for example, by accessing the reference index using the first portion of the read. The mapping module may then access the list of annotated splice boundaries and retrieve the intron descriptor, for example when the intron descriptor includes a first endpoint and a second endpoint in the reference genome, for example when the first endpoint is within a limited distance of the match location in the reference genome .
[00399] Модуль картирования может затем картировать ворую часть рида полученных из РНК геномных данных на предполагаемое местоположение в референсном геноме, например, когда предполагаемое местоположение в референсном геноме может быть смежным со второй конечной точкой в референсном геноме дескриптора интрона. Картировщик затем выдает картированные местоположения рида полученных из РНК геномных данных, например, когда картированные полученные из РНК геномные данные включают по меньшей мере местоположение совпадения в референсном геноме и предполагаемое местоположение в референсном геноме. Соответственно, в различных примерах может быть обеспечен список аннотированных границ сплайсинга, причем список может быть сформулирован в виде таблицы, содержащей запись для одной или более, например, каждой, из множества ячеек референса, таким образом формируя разделение референсного генома. К списку аннотированных границ сплайсинга затем могут осуществлять доступ таким образом, который включает определение по меньшей мере одной ячейки референса в пределах ограниченного расстояния от местоположения совпадения в референсном геноме и осуществление доступа к записям таблицы, которые соответствуют по меньшей мере одной ячейке референса.[00399] The mapping module may then map the third portion of the RNA-derived genomic data read to a putative location in the reference genome, for example, where the putative location in the reference genome may be adjacent to a second endpoint in the reference genome of the intron descriptor. The mapper then outputs mapped read locations of the RNA-derived genomic data, for example, where the mapped RNA-derived genomic data includes at least a location of a match in a reference genome and a predicted location in the reference genome. Accordingly, in various examples, a list of annotated splice boundaries may be provided, which list may be formulated as a table containing an entry for one or more, for example, each of a plurality of reference bins, thereby forming a partition of the reference genome. The list of annotated splice boundaries may then be accessed in a manner that includes identifying at least one reference bin within a limited distance of the match location in the reference genome and accessing table entries that correspond to the at least one reference bin.
[00400] В таком примере действительное местоположение границы сплайсинга в риде может быть определено, например, посредством использования первой части рида, например, совпадающей с местоположением в референсном геноме, посредством использования первой конечной точки и второй конечной точки дескриптора интрона в референсном геноме. Кроме того, в некоторых примерах ограниченное расстояние может быть определено по меньшей мере для того, чтобы было предусмотрено, что действительное местоположение границы сплайсинга в риде не находится вне границ рида. Соответственно, может быть определена первая цепочка затравок, например с использованием по меньшей мере первой части рида полученных из РНК геномных данных и местоположения совпадения в референсном геноме. Затем может быть определена вторая цепочка затравок, например, посредством использования по меньшей мере второй части рида полученных из РНК геномных данных и предполагаемого местоположения в референсном геноме. Затем может быть установлена связь между первой цепочкой затравок и второй цепочкой затравок, и выходные данные могут быть картированы на местоположения рида полученных из РНК геномных данных, которые включают описания первой цепочки затравок, второй цепочки затравок и связи между ними.[00400] In such an example, the actual location of a splice boundary in a read can be determined, for example, by using a first portion of the read, eg, matching a location in a reference genome, by using a first endpoint and a second endpoint of an intron descriptor in the reference genome. Additionally, in some examples, the limited distance may be defined to at least ensure that the actual location of the splice boundary in the read is not outside the boundaries of the read. Accordingly, a first strand of primers can be determined, for example using at least a first portion of the RNA-derived genomic data read and the location of the match in a reference genome. A second strand of primers may then be determined, for example, by using at least a second portion of the RNA-derived genomic data read and a predicted location in a reference genome. A relationship can then be established between the first seed strand and the second seed strand, and the output data can be mapped to RNA-derived genomic data read locations that include descriptions of the first seed strand, the second seed strand, and the relationships between them.
[00401] Кроме того, модуль картирования для выполнения анализа последовательности РНК может включать один или более модулей обработки, которые выполнены с возможностью реализации операции формирования скаффолдов цепочек затравок. Следует отметить, однако, что хотя в настоящем документе упоминаются цепочки «затравок», такие цепочки «затравок» не ограничены контекстом картирования затравок на основе хэш-таблицы, эта концепция может быть распространена на любое картирование части рида на сегмент референсного генома. Таким операции формирования скаффолдов полезны для перевода списка цепочек затравок в список скаффолдов, например, когда каждый скаффолд представляет собой последовательность одной или более цепочек затравок, которая представляет вероятное выравнивание со сплайсингом рида.[00401] In addition, a mapping module for performing RNA sequence analysis may include one or more processing modules that are configured to perform the operation of scaffolding seed strands. It should be noted, however, that while reference is made herein to seed chains, such seed chains are not limited to the context of hash table-based seed mapping, but the concept can be extended to any mapping of a sub-read to a segment of a reference genome. Such scaffolding operations are useful for translating a list of seed chains into a list of scaffolds, for example, when each scaffold is a sequence of one or more seed chains that represents a likely alignment with a spliced read.
[00402] В различных примерах последовательные части рида могут картироваться на последовательные сегменты одной хромосомы референса, например, в согласующихся ориентации и порядке. Соответственно, способ формирования множества скаффолдов может быть избирательным, так как по существу для списка цепочек затравок количество объединенных последовательностей и количество цепочек затравок может быть очень велико. Таким образом, список скаффолдов может быть сгенерирован так, чтобы быть достаточно обширным для того, чтобы включать верное выравнивание со сплайсингом рида с высокой степенью достоверности, например, без генерации слишком большого количества ложных скаффолдов. В таком примере каждый скаффолд затем может быть оценен, например посредством выравнивания со сплайсингом.[00402] In various examples, successive portions of a read may be mapped to successive segments of a single reference chromosome, for example, in a consistent orientation and order. Accordingly, the method of forming multiple scaffolds can be selective, since essentially for a list of seed chains, the number of combined sequences and the number of seed chains can be very large. Thus, the list of scaffolds can be generated to be large enough to include the correct alignment to the spliced read with a high degree of confidence, for example, without generating too many false scaffolds. In such an example, each scaffold can then be assessed, for example by splicing alignment.
[00403] Соответственно, модуль картирования по настоящему изобретению могут быть выполнен с возможностью определения списка цепочек затравок, так что каждая цепочка затравок списка цепочек затравок представляет совпадение между соответствующей частью рида полученных из РНК геномных данных и соответствующего сегмента референсного генома. Посредством изучения списка цепочек затравок картировщик может затем выработать список скаффолдов, например, в котором каждый скаффолд может содержать одну или более отдельных цепочек затравок из списка цепочек затравок, и/или скаффолд предполагает соответствующую последовательность части рида одной или более соответствующей части рида полученных из РНК геномных данных. В последовательность части рида может развиваться в едином направлении в риде полученных из РНК геномных данных. Аналогичным образом, скаффолд может также предполагать соответствующую последовательность сегмента референса одного или более соответствующих сегментов референсного генома, так что развитие последовательности сегмента референса происходит в едином направлении в референсном геноме.[00403] Accordingly, the mapping module of the present invention may be configured to determine a list of seed strings such that each seed string of the list of seed strings represents a match between a corresponding portion of the RNA-derived genomic data read and a corresponding segment of a reference genome. By examining the list of seed chains, the mapper can then generate a list of scaffolds, for example, wherein each scaffold may contain one or more individual seed chains from the list of seed chains, and/or the scaffold suggests a corresponding sequence portion of the read of one or more corresponding portions of the RNA-derived genomic read data. The sequence of parts of the read can evolve in a single direction in the read of RNA-derived genomic data. Likewise, the scaffold may also assume a corresponding reference segment sequence of one or more corresponding reference genome segments, such that the evolution of the reference segment sequence occurs in a single direction in the reference genome.
[00404] Кроме того, получение списка скаффолдов может дополнительно включать сортировку списка цепочек затравок в возрастающем или убывающем порядке соответствующих сегментов референсного генома, например, когда список скаффолдов получают в соответствии с набором правил, который определяет, когда одно цепочка затравок может следовать за другой цепочкой затравок в скаффолде. Такой набор правил включает минимально и/или максимально допустимый промежуток и/или минимально и/или максимально допустимое перекрывание между последовательными частями рида в последовательности частей рида. В некоторых примерах последовательность частей рида и последовательность сегментов референса могут предполагать, что последовательность длины интрона вычисленных диагоналей выравнивания смещается из каждой части рида и соответствующего сегмента референса на следующую часть рида. Кроме того, набор правил может включать минимально допустимую длину интрона и максимально допустимую длину интрона для последовательности длины интрона.[00404] In addition, obtaining a list of scaffolds may further include sorting the list of seed chains in ascending or descending order of corresponding reference genome segments, for example, where the list of scaffolds is obtained in accordance with a set of rules that determines when one seed chain can follow another chain seeds in the scaffold. Such a set of rules includes the minimum and/or maximum allowable gap and/or minimum and/or maximum allowable overlap between successive read parts in a sequence of read parts. In some examples, the sequence of the read portions and the sequence of the reference segments may imply that the intron length sequence of the calculated alignment diagonals is shifted from each portion of the read and the corresponding reference segment to the next portion of the read. In addition, the set of rules may include a minimum allowed intron length and a maximum allowed intron length for an intron length sequence.
[00405] Кроме того, в различных примерах выполнение списка скаффолдов может предполагать выполнение начальной части скаффолда, имеющей частичную последовательность из одной или более отдельных цепочек затравок, и может дополнительно включать выполнение последовательность двух отдельных скаффолдов в списке скаффолдов, так что один или более из по меньшей мере двух отдельных скаффолдов может представлять собой расширения начальной части скаффолда до более длинных скаффолдов. Такое выполнение списка скаффолдов может включать отфильтровывание меньших скаффолдов, например, как меньших в соответствии с вычисленным показателем фильтрации, например, показатель фильтрации, вычисленный с использованием разности между охватом каждого скаффолда рида полученных из РНК геномных данных и/или максимального покрытия рида полученных из РНК геномных данных, например, максимального покрытия, вычисленного по всему списку скаффолдов. В некоторых примерах показатель фильтрации может быть вычислен с использованием охвата каждого скаффолда в референсном геноме.[00405] Additionally, in various examples, executing a scaffold list may involve executing an initial part of the scaffold having a partial sequence of one or more individual seed chains, and may further include executing a sequence of two individual scaffolds in the scaffold list such that one or more of the at least two separate scaffolds may represent extensions of the initial part of the scaffold to longer scaffolds. Such a list of scaffolds may include filtering out smaller scaffolds, e.g., as being smaller according to a calculated filter score, e.g., a filter score calculated using the difference between each scaffold's RNA-derived genomic read coverage and/or the maximum RNA-derived genomic read coverage data, for example, maximum coverage calculated over the entire list of scaffolds. In some examples, the filtering score can be calculated using the coverage of each scaffold in the reference genome.
[00406] Как указано выше, в различных примерах может быть обеспечена жестко смонтированная цифровая логическая схема, причем цифровая логическая схема, или подмножество логических схем, содержит модуль выравнивания, который может быть выполнен с возможностью содержать множество модулей обработки для реализации одного или более этапов выравнивания в конвейере анализа РНК, например так, что один или более этапов могут включать сшивание границ сплайсинга и/или выравнивание рида со сплайсингом. В частности, модуль выравнивания для выполнения анализа последовательности РНК может включать один или более модулей обработки, которые выполнены с возможностью реализации одной или более операций сшивания границ сплайсинга и/или одного или более выравниваний рида со сплайсингом.[00406] As discussed above, in various examples, a hard-wired digital logic circuit may be provided, wherein the digital logic circuit, or a subset of the logic circuits, includes an alignment module that may be configured to contain a plurality of processing modules for implementing one or more alignment steps in an RNA analysis pipeline, for example, such that one or more steps may include stitching splice boundaries and/or aligning the read to the splice. In particular, an alignment module for performing RNA sequence analysis may include one or more processing modules that are configured to perform one or more splice boundary stitching operations and/or one or more splice read alignments.
[00407] В частности, в различных примерах может быть сгенерирована и/или другим образом обеспечена пара частичных картирований, например, цепочек затравок, например, двух последовательных цепочек затравок в скаффолде, в риде РНК. В различных примерах частично картированные цепочки затравок могут представлять два сегмента экзона вероятного картирования со сплайсингом, которое пропускает возможный интрон в референсе. В таком примере модуль обработки модуля выравнивания может быть выполнен с возможностью реализации операции сшивания границ сплайсинга, которая предназначена для точного, например, аккуратного, более или менее точного определения наиболее вероятного положения в риде, где был пропущен интрон. Результат представляет собой позицию сшивания между двумя основаниями рида таким образом, что основания слева от точки сшивания выравниваются с первым сегментом экзона, а основания справа от точки сшивания выравниваются со вторым сегментом экзона. Это может быть выполнено посредством 1) тестирования множества возможных положений сшивания и 2) оценки результатов тестирования. Такая оценка может быть основана на множестве различных критериев, например, на количестве наблюдаемых несовпадений оснований и/или отсутствии или присутствии и типе каноничных мотивов интрона, наблюдаемых на двух концах предполагаемого протяжения интрона в референсе, например, в соответствии с данным положением сшивания.[00407] Specifically, in various examples, a pair of partial mappings, e.g., primer strands, e.g., two consecutive primer strands in a scaffold, may be generated and/or otherwise provided in an RNA read. In various examples, partially mapped primer strings may represent two exon segments of a likely spliced mapping that skips a possible intron in the reference. In such an example, the alignment module processing module may be configured to implement a splice boundary stitching operation that is designed to accurately, for example accurately, more or less accurately determine the most likely position in the read where an intron has been skipped. The result is the stitching position between the two bases of the read such that bases to the left of the stitching point align with the first exon segment, and bases to the right of the stitching point align with the second exon segment. This can be accomplished by 1) testing a variety of possible stitching positions and 2) evaluating the test results. Such an assessment may be based on a variety of different criteria, for example, the number of base mismatches observed and/or the absence or presence and type of canonical intron motifs observed at the two ends of the putative intron span in the reference, for example, according to a given cross-linking position.
[00408] Операция сшивания сплайсов может быть сконфигурирована как процедура предварительной обработки для выравниваний со сплайсингом, которые в обратном случае будут ресурсоемкими и/или дорогими в выполнении, если операцию необходимо выполнить таким образом, который рассматривает все положения сшивания. Соответственно, модуль выравнивания может принимать картирование со сплайсингом для рида полученных из РНК геномных данных, причем картирование со сплайсингом включает по меньшей мере первую часть и вторую часть рида полученных из РНК геномных данных и по меньшей мере первый сегмент и второй сегмент референсного генома.[00408] The splice stitching operation can be configured as a preprocessing procedure for spliced alignments that would otherwise be resource-intensive and/or expensive to perform if the operation needs to be performed in a manner that considers all stitching positions. Accordingly, the alignment module may receive splicing mapping for an RNA-derived genomic data read, wherein the splicing mapping includes at least a first portion and a second portion of the RNA-derived genomic data read and at least a first segment and a second segment of a reference genome.
[00409] Кроме того, модуль выравнивания может быть выполнен с возможностью реализации операции сшивания сплайсов таким образом, чтобы определить наилучшее положение сшивания в пределах рида полученных из РНК геномных данных. Такое наилучшее положение сшивания может быть реализовано посредством оптимизации множества факторов сшивания, которые относятся к каждому рассматриваемому положению сшивания. Факторы сшивания могут включать степень совпадения между первой частью рида, например, с согласованием по длине с концом рассматриваемого положения сшивания, и первым сегментом референсного генома с идентичным согласованием по длине. Факторы сшивания могут также включать степень совпадения второй частью рида с согласованием по длине с началом рассматриваемого положения сшивания, и вторым сегментом референсного генома с идентичным согласованием по длине. В данном случае факторы сшивания могут также содержать вероятность мотива интрона, соответствующего рассматриваемому положению сшивания, например так, что мотив интрона включает по меньшей мере два референсных основания, смежных с согласованным по длине первым сегментом референса, и по меньшей мере два референсных основания, смежных с согласованным по длине вторым сегментом референса.[00409] In addition, the alignment module may be configured to implement a splice stitching operation so as to determine the best splice position within a read of RNA-derived genomic data. Such best stitching position can be realized by optimizing a plurality of stitching factors that relate to each stitching position considered. Crosslinking factors may include the degree of match between the first part of the read, for example, matched in length to the end of the stitching position in question, and the first segment of the reference genome, matched in length identically. Cross-linking factors may also include the degree to which the second portion of the length-matched read matches the start of the crosslink position in question, and the second segment of the reference genome with an identical length match. In this case, the cross-linking factors may also contain the probability of an intron motif corresponding to the cross-linking position in question, for example such that the intron motif includes at least two reference bases adjacent to the length-matched first reference segment, and at least two reference bases adjacent to second reference segment consistent in length.
[00410] В различных примерах факторы сшивания могут быть объединены в оценку и рассматриваемое положение сшивания с наилучшей в числовом отношении оценкой может быть определено как наилучшее положение сшивания. В некоторых примерах переход может быть сделан от первого рассматриваемого положения сшивания ко второму рассматриваемому положению сшивания через по меньшей мере один являющийся помехой нуклеотид в риде полученных из РНК геномных данных. В таком примере оценка второго рассматриваемого положения сшивания может быть вычислена частично посредством регулировки оценки для первого рассматриваемого положения сшивания для учета любой разницы между тем, как хорошо по меньшей мере один являющийся помехой нуклеотид совпадает с первым сегментом референсного генома и как хорошо по меньшей мере один являющийся помехой нуклеотид совпадает со вторым сегментом референсного генома. В некоторых примерах наилучшее положение сшивания может быть передано в модуль беспромежуточного выравнивания, который может быть выполнен с возможностью определения наилучшего беспромежуточного выравнивания рида полученных из РНК геномных данных с объединением полученные из РНК двух согласованных по длине сегментов референсного генома. Наилучшее положение сшивания затем может быть передано в модуль выравнивания с промежутком, который затем может определять наилучшее беспромежуточное выравнивание или выравнивание с промежутком рида полученных из РНК геномных данных с объединением полученные из РНК двух согласованных по длине сегментов референсного генома.[00410] In various examples, the stitching factors may be combined into a score and the numerically best stitching position in question may be determined to be the best stitching position. In some examples, a transition may be made from a first crosslinking position of interest to a second crosslinking position of interest via at least one interfering nucleotide in a read of RNA-derived genomic data. In such an example, a score for the second cross-link position under consideration may be calculated in part by adjusting the score for the first cross-link position under consideration to account for any difference between how well the at least one interfering nucleotide matches the first segment of the reference genome and how well the at least one interfering nucleotide matches the nucleotide interference coincides with the second segment of the reference genome. In some examples, the best stitch position may be passed to a stepless alignment module, which may be configured to determine the best stepless alignment of a read of RNA-derived genomic data combining the RNA-derived two length-matched reference genome segments. The best stitch position can then be passed to the gap alignment module, which can then determine the best gapless or gap alignment of the RNA-derived genomic reads, combining the RNA-derived two length-matched reference genome segments.
[00411] Модуль выравнивания может также включать модуль, выполненный с возможностью реализации выравнивания рида со сплайсингом. Например, при выполнении выравнивания рида со сплайсингом может быть сгенерирована последовательность множества частичных картирований, например, цепочек затравок, например, последовательных цепочек затравок в скаффолде, в риде РНК. Множество частичных картирований может представлять множество сегментов экзона вероятных картирований со сплайсингом, которые могут пропустить один или более возможных интронов в референсной последовательности (например, подвергнувшись сшиванию границ сплайсинга для каждого интрона). В таких примерах операция выравнивания со сплайсингом может быть выполнена посредством выравнивания рида (ридов) с объединением множества сегментов экзона в референсе.[00411] The alignment module may also include a module configured to implement spliced read alignment. For example, when performing an alignment of a spliced read, a sequence of multiple partial mappings, eg, strands of primers, eg, sequential strands of primers in a scaffold, can be generated in the RNA read. A plurality of partial maps may represent multiple exon segments of candidate splice maps that may miss one or more candidate introns in the reference sequence (eg, undergoing splice boundary stitching for each intron). In such examples, the splicing alignment operation can be performed by aligning the read(s) to concatenate multiple exon segments in the reference.
[00412] В частности, модуль выравнивания может быть обеспечен и выполнен с возможностью приема картирования со сплайсингом для одного или более ридов полученных из РНК геномных данных. Картирование со сплайсингом может включать определение последовательности множества прилегающих частей между ридами полученных из РНК геномных данных и одной или более соответствующими последовательностями, имеющими один или более, например, множество, сегментов референсного генома. Модуль выравнивания затем может реализовывать операцию выравнивания со сплайсингом над указанными последовательностями для определения наилучшего выравнивания со сплайсингом рида полученных из РНК геномных данных с последовательностью множества сегментов референсного генома. Например, операция выравнивания со сплайсингом может содержать объединение множества сегментов референсного генома в объединенную референсную последовательность, в которой каждый из множества сегментов референсного генома соединен в местах соединений объединения. Кроме того, последовательность рида, имеющая по меньшей мере множество прилегающих частей рида полученных из РНК геномных данных, может быть сгенерирована и соединена в таких местах соединения объединения.[00412] In particular, an alignment module may be provided and configured to receive splicing mapping for one or more reads of RNA-derived genomic data. Splicing mapping may involve determining the sequence of multiple adjacent portions between RNA-derived genomic data reads and one or more corresponding sequences having one or more, eg, multiple, reference genome segments. The alignment module can then implement a splice alignment operation on the specified sequences to determine the best splice alignment of the RNA-derived genomic data read to the sequence of multiple reference genome segments. For example, a splicing alignment operation may comprise combining multiple reference genome segments into a combined reference sequence in which each of the multiple reference genome segments is joined at the join junctions. In addition, a read sequence having at least a plurality of adjacent read portions derived from the RNA genomic data can be generated and joined at such join junctions.
[00413] Наилучшее выравнивание последовательности рида может быть вычислено в отношении объединенной референсной последовательности, например, когда наилучшее выравнивание последовательности ограничено таким образом, что места соединения объединения в последовательности рида выровнены с соответствующими местами соединения объединения в объединенной референсной последовательности. Выравнивание последовательности может быть отредактировано в выравнивание со сплайсингом, причем указанное редактирование может включать вставку дескрипторов интронов в положения выравнивания, соответствующие местам соединения объединения, например так, что дескрипторы интронов кодируют длину интрона, которая может быть равна соответствующим расстояниям между сегментами референсного генома. Модуль выравнивания затем может выдавать выравнивание со сплайсингом.[00413] The best sequence alignment of a read can be calculated with respect to a combined reference sequence, for example, when the best sequence alignment is constrained such that the join junctions in the read sequence are aligned with the corresponding join junctions in the merged reference sequence. The sequence alignment may be edited into a spliced alignment, which editing may include insertion of intron descriptors at positions in the alignment corresponding to junction junctions, for example such that the intron descriptors encode intron length, which may be equal to the corresponding distances between reference genome segments. The alignment module can then output the spliced alignment.
[00414] В таком примере наилучшее выравнивание последовательности может быть определено как выравнивание с величиной наилучшей в числовом отношении оценки среди вычисленных оценок для всех вероятных выравниваний, причем оценку каждого вероятного выравнивания вычисляют так, чтобы включать штрафы несовпадения для каждого нуклеотида последовательности рида, который не совпал с выровненным нуклеотидом объединенной референсной последовательности. Оценка вероятного выравнивания также может быть вычислена таким образом, чтобы включать один или более других штрафов, таким как штраф индела для каждой инсерции или делеции в вероятном выравнивании и/или штраф сплайсинга для каждого места соединения объединения, включенного в вероятное выравнивание, например так, что штраф сплайсинга определяют по меньшей мере частично в соответствии с мотивом интрона, связанным с соединением сегментов референсного генома. В различных примерах объединенная референсная последовательность может быть выполнена так, чтобы включать ложные основания, например, в местах соединения объединения, причем ложные основания могут быть использованы для переноса значений соответствующих штрафов сплайсинга.[00414] In such an example, the best sequence alignment may be defined as the alignment with the numerically best score among the computed scores for all likely alignments, the score of each likely alignment being calculated to include mismatch penalties for each nucleotide of the read sequence that did not match with the aligned nucleotide of the combined reference sequence. The likely alignment score may also be calculated to include one or more other penalties, such as an indel penalty for each insertion or deletion in the likely alignment and/or a splice penalty for each join junction included in the likely alignment, such that the splicing penalty is determined at least in part according to the intronic motif associated with joining the reference genome segments. In various examples, the merged reference sequence may be configured to include false bases, for example, at fusion junctions, where the false bases may be used to carry the values of the corresponding splicing penalties.
[00415] В данных примерах вычисление наилучшего выравнивания последовательности может включать динамическое программирование для вычисления оценок ячеек для двумерной матрицы ячеек оценок, указанные два измерения соответствуют последовательности рида и объединенной референсной последовательности. В таких примерах каждой из множества прилегающих частей рида может быть присвоен ID зоны; и, в дополнение, каждому из множества сегментов референсного генома может быть присвоен ID зоны. Такой ID зоны может быть сконфигурирован так, чтобы быть аналогичным каждой соответствующей части рида и сегмента референса, например так, что когда каждая ячейка оценки в матрице ячеек оценки имеет ID зоны рида ячейки, который аналогичен ID зоны соответствующей части рида. Кроме того, ID зоны референса ячейки может быть сконфигурирован так, чтобы быть аналогичным ID зоны соответствующего сегмента референса, и наилучшее выравнивание последовательности может быть ограничено так, чтобы проходить только через ячейки оценки, ID зоны рида ячейки которых аналогичны их ID зоны референса ячейки.[00415] In these examples, computing the best sequence alignment may involve dynamic programming to compute cell scores for a two-dimensional matrix of score cells, said two dimensions corresponding to the read sequence and the combined reference sequence. In such examples, each of the multiple adjacent parts of the read may be assigned a zone ID; and, in addition, each of the plurality of reference genome segments may be assigned a zone ID. Such a zone ID may be configured to be similar to each corresponding portion of the read and the reference segment, for example such that when each evaluation cell in a matrix of evaluation cells has a cell read zone ID that is similar to the zone ID of the corresponding portion of the read. In addition, the cell's reference zone ID can be configured to be similar to the zone ID of the corresponding reference segment, and the best sequence alignment can be constrained to only pass through evaluation cells whose cell read zone IDs are similar to their cell's reference zone ID.
[00416] На ФИГ. 5 показан абстрактный прямоугольник выравнивания, в котором объединенная рассматриваемая последовательность проходит по вертикальной оси, а объединенная референсная последовательность проходит по горизонтальной оси. Ложные основания каждой объединенной последовательности затенены (зоны 3 и 6). На прямоугольник выравнивания наложена сетка для того, чтобы показать границы между зонами на каждой оси. Вспомогательные прямоугольники с совпадающими ID зон являются действительными областями выравнивания, а другие (затененные) вспомогательные прямоугольники являются недействительными областями выравнивания. Показан пример действительного выравнивания, которое проходит от конца до конца в рассматриваемой последовательности и содержит инсерцию (вертикальный сегмент) во втором сегменте экзона (зона 4) и делецию (горизонтальный сегмент) в третьем сегменте экзона (зона 7). Действительное выравнивание проходит диагонально через границы сплайсинга (зоны 3 и 6).[00416] In FIG. Figure 5 shows an abstract alignment rectangle in which the merged reference sequence runs along the vertical axis and the merged reference sequence runs along the horizontal axis. The false bases of each merged sequence are shaded (zones 3 and 6). A grid is superimposed on the alignment rectangle to show the boundaries between zones on each axis. The auxiliary rectangles with matching zone IDs are valid alignment areas, and the other (shaded) auxiliary rectangles are invalid alignment areas. Shown is an example of a valid alignment that goes end to end in the sequence in question and contains an insertion (vertical segment) in the second exon segment (zone 4) and a deletion (horizontal segment) in the third exon segment (zone 7). The actual alignment runs diagonally across the splicing boundaries (zones 3 and 6).
[00417] Беспромежуточное выравнивание или выравнивание с промежутком, с использованием объединенный рассматриваемой и референсной последовательности обеспечивает получение корректных оценок выравнивания, но след выравнивания (например, строка CIGAR) требует редактирования, так как он еще не включает интронные (‘N’) операции. Например, выравнивание со сплайсингом рида из 100 оснований без инделов может происходить из выравнивания со “101M” CIGAR, что означает, что 101 основание выровнено по диагонали без инделов. В указанной CIGAR необходимы две регулировки. Во-первых, ложное основание между сегментами экзона учитывается в CIGAR, но не должно. Во-вторых, интронная операция, например, длинной 895 оснований, должна быть вставлена в положении ложного основания. Верная CIGAR может быть, например, «40M895N60M».[00417] Intermediate or gap alignment using a combined target and reference sequence produces correct alignment estimates, but the alignment trace (eg, CIGAR line) requires editing because it does not yet include intronic ('N') operations. For example, a spliced alignment of a 100-base read without indels could come from a “101M” CIGAR alignment, meaning that 101 bases are aligned diagonally without indels. The above CIGAR requires two adjustments. First, false bases between exon segments are counted in CIGAR, but they shouldn't be. Second, an intronic operation, for example 895 bases long, must be inserted at a false base position. A valid CIGAR could be, for example, "40M895N60M".
[00418] Если принять, что скаффолд, содержащий цепочки затравок, определяющие конечные точки сегментов экзона, сшит, то посредством прямой арифметики можно обнаружить положение каждой границы сплайсинга в CIGAR, удалить «1M» для ложного основания и заместить его интронной операцией надлежащей длины. Для локальных выравниваний этот процесс может учитывать возможность того, что один или боле из всех сегментов экзона были вырезаны из выравнивания. Тем же арифметическим процессом можно вычислять корректные начальное и конечное положения выравнивания в референсном геноме.[00418] Assuming that the scaffold containing the seed chains defining the endpoints of the exon segments is stitched, then through straightforward arithmetic one can discover the position of each splice boundary in CIGAR, remove the "1M" for the false base, and replace it with an intronic operation of the proper length. For local alignments, this process may account for the possibility that one or more of all exon segments have been excised from the alignment. The same arithmetic process can calculate the correct start and end positions of the alignment in the reference genome.
[00419] После получения оценок выравнивания, начального и конечного положения и строк CIGAR для каждого выровненного скаффолда, обработка для выбора и выдачи наилучшего выравнивания, возможно, со сплайсингом, является идентичным обработки ДНК. Парные концевые вероятные выравнивания изучают, чтобы найти надлежащим образом расположенные и ориентированные пары выравнивания. Вероятным парам выравнивания, включая не надлежащим образом образованные вероятные пары, присваивают штрафы оценки за то, что они не имеют пары или имеют маловероятные эмпирические длины вставки; оценки пар сформированы посредством объединения (например, добавления) оценок выравнивания их каждого сопряжения и штрафа на образование пары; и пару выравниваний с наилучшей оценкой выбирают и обеспечивают выдачу из модуля выравнивания.[00419] Once alignment scores, start and end positions, and CIGAR strings are obtained for each aligned scaffold, the processing to select and return the best alignment, possibly with splicing, is identical to DNA processing. Pairwise end candidate alignments are examined to find properly positioned and oriented alignment pairs. Probable alignment pairs, including inappropriately formed probable pairs, are given score penalties for being unpaired or having unlikely empirical insertion lengths; pairing scores are formed by combining (eg, adding) the alignment scores of each mate and the pairing penalty; and the pair of alignments with the best score is selected and provided output from the alignment module.
[00420] Очевидная длина вставки, обычно измеренная как охват в референсе, покрываемом выравниваниями двух сопряженных ридов, может оказаться очень длинной из-за интронов в одном или обоих сопряженных ридов или ненаблюдаемых интронов в промежутке между сопряженными ридами. (Физические инсерции потенциально намного короче и имеют длину секвенированной молекулы РНК или кДНК, в которых интроны удалены посредством сплайсинга.) Таким образом, значительно более длинные очевидные длины вставок должны рассматриваться как образующие пару надлежащим образом и им должна быть присвоены нулевые или малые штрафы на формирование пар; это может быть выполнено в соответствии с распределением известных длин интронов в видах, от которых получен образец, и/или распределением наблюдаемых очевидных вставок в обрабатываемых РНК-секвенированных данных.[00420] The apparent length of an insert, typically measured as the coverage in the reference covered by the alignments of two mated reads, may be very long due to introns in one or both of the mated reads or unobserved introns in the gap between the mated reads. (Physical insertions are potentially much shorter and have the length of a sequenced RNA or cDNA molecule in which the introns have been removed by splicing.) Thus, significantly longer apparent insertion lengths should be considered to pair properly and should be assigned zero or small formation penalties steam; this can be done according to the distribution of known intron lengths in the species from which the sample is derived and/or the distribution of observed apparent indels in the RNA-seq data being processed.
[00421] В одном варианте реализации для каждого обрабатываемого рида обеспечивают выдачу оценки выравнивания, начального положения и кодированной строки CIGAR из модуля выравнивания. Кроме того, в другом варианте реализации для каждой границы сплайсинга в выравнивании обеспечивают выдачу мотива интрона и статуса аннотирования. Качество или достоверность картирования, например, параметр «MAPQ» по шкале phred также может быть оценен и выдан. В предпочтительном варианте реализации MAPQ предварительно оценивают в пропорции к разности между наилучшей оценкой пары и второй наилучшей оценкой пары с различным выравниванием для текущего рида. Дополнительные вероятные выравнивания, или вторичные выравнивания, могут также быть выданы для каждого рида, например, ограниченное число других вероятных вариантов, оценка которых находится в пределах определенного и сконфигурированного порогового значения разности оценок.[00421] In one embodiment, for each read processed, an alignment estimate, a starting position, and a CIGAR encoded string are provided from the alignment module. Additionally, in another embodiment, the intron motif and annotation status are provided for each splice boundary in the alignment. The quality or reliability of the mapping, for example the "MAPQ" parameter on the phred scale, can also be assessed and reported. In a preferred embodiment, the MAPQ is pre-scored as a proportion of the difference between the best pair estimate and the second best pair estimate with a different alignment for the current read. Additional candidate alignments, or secondary alignments, may also be returned for each read, for example, a limited number of other candidate alignments whose score is within a defined and configured score difference threshold.
[00422] Следует понимать, что касается вышеизложенного, то хотя в некоторых случаях была описана функция картирования, например, как картировщик, и/или в некоторых случаях была описана функция выравнивания, например, как выравниватель, эти различные функции могут выполняться последовательно одной и той же архитектурой, которую в данной области техники обычно называют выравнивателем. Соответственно, в различных случаях функция картирования и функция выравнивания, как описано в настоящем документе, могут выполняться общей архитектурой, которую можно понимать как выравниватель, особенно в тех случаях, когда для выполнения функции выравнивания сначала необходимо выполнить функцию картирования.[00422] It should be understood, with respect to the above, that while in some cases a mapping function has been described, for example as a mapper, and/or in some cases an alignment function has been described, for example as an aligner, these various functions may be performed sequentially by one and the same the same architecture, which in the art is usually called an equalizer. Accordingly, in various cases, the mapping function and the alignment function as described herein may be performed by a common architecture, which can be understood as an aligner, especially in cases where in order to perform the alignment function, it is necessary to perform the mapping function first.
[00423] Выходными данными из модуля выравнивания является файл SAM (текст) или BAM (например, двоичная версия файла SAM) вместе с оценкой качества картирования (MAPQ), которая отражает достоверность того, что спрогнозированное и выровненное местоположение рида относительно референса действительно то самое, откуда получен рид. Соответственно, после того, как определено, где каждый рид картирован, и также определено, где каждый рид выровнен, например, каждому соответствующему риду даны положение и оценка качества, отражающая вероятность того, что это положение является правильным выравниванием, так что нуклеотидная последовательность для ДНК субъекта известна, как и то, как ДНК субъекта отличается от референса (например, определена строка CIGAR), различные риды, представляющие геномную последовательность нуклеиновых кислот субъекта могут быть отсортированы по местоположению в хромосоме так, чтобы можно было определить точное местоположение рида на хромосомах. Поэтому в соответствии с некоторыми аспектами настоящее изобретение относится к функции сортировки, например, которая может быть выполнена модулем сортировки, который может быть частью конвейера модулей, например, конвейера, предназначенного для приема необработанных данных рида последовательности, например, в виде геномного образца индивида, и картирования и/или выравнивания этих данных, которые могут быть затем отсортированы.[00423] The output from the alignment module is a SAM (text) or BAM file (e.g., a binary version of a SAM file) along with a Mapping Quality Score (MAPQ), which reflects the confidence that the predicted and aligned location of the read relative to the reference is actually the same one. where did the read come from? Accordingly, once it is determined where each read is mapped, and it is also determined where each read is aligned, for example, each corresponding read is given a position and a quality score reflecting the likelihood that that position is a correct alignment, so that the nucleotide sequence for the DNA a subject's DNA is known, as well as how the subject's DNA differs from a reference (eg, a CIGAR string is defined), the various reads representing the subject's genomic nucleic acid sequence can be sorted by chromosomal location so that the precise chromosomal location of the read can be determined. Therefore, in accordance with some aspects, the present invention relates to a sorting function, for example, which can be performed by a sorting module, which can be part of a pipeline of modules, for example, a pipeline designed to receive raw sequence read data, for example, in the form of a genomic sample of an individual, and mapping and/or alignment of this data, which can then be sorted.
[00424] В частности, после того, как ридам присвоены положения, например, относительно референсного генома, что может включать в себя определение того, какой хромосоме принадлежит рид, и/или его смещения от начала этой хромосомы, риды могут быть отсортированы по положению. Сортировка может быть полезна, например, при последующих анализах, так как при помощи нее все риды, которые перекрывают данное положение в геноме, могут быть сформированы в скопление так, чтобы находится друг возле друга, например, после обработки модулем сортировки, в результате чего можно легко определить, согласуются ли большинство ридов с референсным значением, или нет. Таким образом, если большинство ридов не согласуются с референсным значением, определение варианта может быть помечено. Следовательно, сортировка может включать в себя одну или более сортировок ридов, которые выровнены относительно одной и той же позиции, например, одной и той же позиции хромосомы, для создания скопления, чтобы все риды, которые покрывают одно и то же местоположение, были физически сгруппированы вместе; и может также включать в себя анализ ридов в скоплении для определения того, где риды могут указывать фактический вариант в геноме по сравнению с референсным геномом, причем этот вариант можно отличить, например, с помощью согласования скопления, от ошибки, такой как ошибка считывания машиной или ошибка в способах секвенирования, которая может проявляться малой частью ридов.[00424] In particular, after reads are assigned positions, for example, relative to a reference genome, which may include determining which chromosome the read belongs to and/or its offset from the start of that chromosome, the reads can be sorted by position. Sorting can be useful, for example, in subsequent analyzes, since with its help all reads that overlap a given position in the genome can be formed into a cluster so that they are located next to each other, for example, after processing by the sorting module, as a result of which it is possible It is easy to determine whether the majority of reads agree with the reference value or not. Thus, if the majority of reads do not agree with the reference value, the variant definition can be flagged. Therefore, sorting may involve one or more sortings of reads that are aligned to the same position, e.g., the same chromosome position, to create a cluster so that all reads that cover the same location are physically grouped together; and may also include analysis of reads in the assemblage to determine where the reads may indicate an actual variant in the genome compared to a reference genome, which variant can be distinguished, for example, by assemblage reconciliation, from an error such as a machine read error or an error in sequencing methods, which may manifest itself in a small part of the reads.
[00425] После того, как данные получены, имеются один или более других модулей, с помощью которых можно очистить эти данные. Например, один модуль, который может быть включен, например, в конвейер анализа последовательностей, такой как для определения геномной последовательности индивида, может быть модулем локального повторного выравнивания. Например, часто трудно определить инсерции и делеции, которые возникают в конце рида. Причина в том, что алгоритм Смита-Ватермана или аналогичный процесс выравнивания испытывает недостаток контекста за пределами индела, чтобы можно было выполнить оценку для обнаружения его присутствия. Поэтому фактический индел может быть указан в отчете как один или более ОНП. В таком случае точность спрогнозированного местоположения для любого данного рида может быть улучшена за счет выполнения локального повторного выравнивания на картированных, и/или выровненных, и/или сортированных данных рида.[00425] Once the data is received, there are one or more other modules that can be used to clean up the data. For example, one module that may be included, for example, in a sequence analysis pipeline, such as to determine the genomic sequence of an individual, may be a local realignment module. For example, it is often difficult to identify insertions and deletions that occur at the end of a read. The reason is that the Smith-Waterman algorithm or similar alignment process lacks context beyond the indel to allow evaluation to detect its presence. Therefore, the actual indel may be reported as one or more SNPs. In such a case, the accuracy of the predicted location for any given read can be improved by performing local realignment on the mapped and/or aligned and/or sorted read data.
[00426] В таких случаях могут быть использованы скопления для помощи в выяснении надлежащего выравнивания, например, когда рассматриваемое положение находится в конце любого данного рида, это же положение, вероятно, будет в средине некоторого другого рида в данном скоплении. Соответственно, при выполнении локального повторного выравнивания могут быть проанализированы различные риды в скоплении, чтобы определить, указывают ли некоторые риды в скоплении на наличие инсерции или делеции в данном положении, где другой рид не содержит индела или, скорее, имеет замену в этом положении, тогда можно вставить индел, например, в референс, где он не присутствует, и можно повторно выровнять риды в локальном скоплении, которое перекрывает эту область, чтобы посмотреть, будет ли при этом достигнута более хорошая совокупная оценка, чем в том случае, когда там не было инсерции и/или делеции. Соответственно, если улучшение имеется, весь набор ридов в скоплении может быть пересмотрен, и если оценка всего набора улучшилась, то становится понятно, что в этой позиции действительно был индел. Подобным образом можно компенсировать отсутствие достаточного контекста для более точного выравнивания рида в конце хромосомы для любого отдельного рида. Поэтому при выполнении локального повторного выравнивания исследуют одно или более скоплений, где могут находиться один или более инделов, и определяют, можно ли улучшить общую оценку выравнивания путем добавления индела в любое данное положение.[00426] In such cases, clusters can be used to help figure out the proper alignment, for example, when a position in question is at the end of any given read, that same position is likely to be in the middle of some other read in a given cluster. Accordingly, when performing local realignment, various reads in a cluster can be analyzed to determine whether some reads in the cluster indicate the presence of an insertion or deletion at a given position where another read does not contain an indel or rather has a substitution at that position, then one can insert an indel, for example, into a reference where it is not present, and one can re-align reads in a local cluster that overlaps that region to see if this achieves a better aggregate score than if it were not there insertions and/or deletions. Accordingly, if there is an improvement, the entire set of reads in the cluster can be revised, and if the assessment of the entire set has improved, then it becomes clear that there was indeed an indel at this position. In a similar way, one can compensate for the lack of sufficient context to more accurately align the read at the end of the chromosome for any individual read. Therefore, when performing a local realignment, one or more clusters where one or more indels may be present are examined and it is determined whether the overall alignment score can be improved by adding an indel at any given position.
[00427] Другой модуль, который может быть включен, например, в конвейер анализа последовательностей, такой как для определения геномной последовательности индивида, может быть модулем маркировки дубликатов. Например, функция маркировки дубликатов может быть реализована для компенсации ошибок химии, которые могут возникать во время фазы секвенирования. Например, как описано выше, во время некоторых процедур секвенирования последовательности нуклеиновых кислот прикрепляют к бусинам и наращивают на них с помощью меченных нуклеотидных оснований. В идеале получится по одному риду на бусину. Однако иногда к одной бусине прикрепляется множество ридов, что приводит к избыточному количеству копий прикрепленных ридов. Это явление известно как дупликация ридов.[00427] Another module that may be included, for example, in a sequence analysis pipeline, such as to determine the genomic sequence of an individual, may be a duplicate tagging module. For example, a duplicate flagging feature can be implemented to compensate for chemistry errors that may occur during the sequencing phase. For example, as described above, during some sequencing procedures, nucleic acid sequences are attached to beads and extended onto them using labeled nucleotide bases. Ideally, you will get one read per bead. However, sometimes multiple reads are attached to a single bead, resulting in an excess number of copies of the attached reads. This phenomenon is known as read duplication.
[00428] Такая дупликация ридов может сбивать статистику и создавать статистическое отклонение, так как вместо того, чтобы иметь эквивалентное представление всех ридов, различные риды были дублированы, например, вследствие того, что дублирующие шаблонные последовательности, прикрепленные более, чем к одной бусине, представлены в избытке. Соответственно, это может быть определено, так как любой рид, который выравнивается с точно таким же положением и имеет точно такую же длину, скорее всего является дубликатом. После того, как это определено системой, только один рид необходимо подвергнуть дальнейшей обработке, а другие могут быть помечены как дубликаты и, следовательно, могут быть отброшены или проигнорированы. Типичной ситуацией, в которой это происходит, является то, когда с самого начала отсутствует достаточное количество генетического материала для обработки и система совершает попытки компенсировать это в избыточной степени.[00428] Such duplication of reads can confuse statistics and create statistical bias because, rather than having an equivalent representation of all reads, different reads have been duplicated, for example due to duplicate template sequences attached to more than one bead being represented in excess. Accordingly, this can be determined since any read that aligns to the exact same position and has exactly the same length is most likely a duplicate. Once this is determined by the system, only one read needs to be further processed and others may be marked as duplicates and therefore discarded or ignored. A typical situation in which this occurs is when there is not enough genetic material to process to begin with and the system attempts to overcompensate.
[00429] Другой модуль, который может быть включен, например, в конвейер анализа последовательностей, такой как для определения геномной последовательности индивида, может быть перекалибровщиком оценки качества оснований. Например, каждое основание каждого рида имеет оценку по шкале Phred, которая указывает на вероятность того, что определенное основание в указанном положении является неверным. Например, оценка по шкале Phred для любого основания частично обусловлена природой основания, которая ему предшествует, и профиль ошибки будет отличаться в зависимости от того, какое основание предшествует рассматриваемому основанию. Кроме того, велика вероятность ошибка, возникающей на концах рида, например такой, когда на концах рида химия начинает терять свои качества. Перекалибровка оценки качества оснований является ковариантом анализа, который может возвращаться и измерять эмпирические качества оценки качества основания как функции всех тех вещей, вследствие которых она изменяется.[00429] Another module that may be included, for example, in a sequence analysis pipeline, such as for determining the genomic sequence of an individual, may be a base quality estimate recalibrator. For example, each base of each read has a Phred score, which indicates the probability that a particular base at a specified position is incorrect. For example, the Phred score for any base is due in part to the nature of the base that precedes it, and the error profile will differ depending on which base precedes the base in question. In addition, there is a high probability of an error occurring at the ends of the read, for example, when the chemistry begins to lose its qualities at the ends of the read. Recalibration of the foundation quality estimate is a covariate of analysis that can go back and measure the empirical qualities of the foundation quality estimate as a function of all the things that change it.
[00430] В различных примерах это включает два прохода, на первом собирают все фактические, эмпирически измеренные данные и статистику частоты наблюдаемых ошибок как функции всех переменных, а второй проход включает фактическую перекалибровку оценок посредством проведения всех ридов через фильтр, модифицирующий оценки качества для каждого отдельного основания как функцию переменных на основании того, что было в действительности измерено эмпирическим путем в множестве данных. Это компенсирует все различия в данных вследствие различных переменных и очищает все данные и оценки. Назначение всех указанных очисток заключается в обеспечении достижения наилучшего определения вариантов. Множество определителей вариантов основывают свои решения частично на сообщенном качестве каждого нуклеотида, которые скапливаются в каждом положении в геноме. Если оценки качестве не точны, в результате может быть легко определено неверное основание.[00430] In various examples, this involves two passes, the first collecting all the actual, empirically measured data and observed error rate statistics as a function of all variables, and the second pass involving the actual recalibration of the scores by running all reads through a filter that modifies the quality scores for each individual grounds as a function of variables based on what was actually measured empirically in the data set. This compensates for any differences in data due to different variables and cleans up all data and estimates. The purpose of all of these purifications is to ensure that the best possible definition of variants is achieved. Many variant detectors base their decisions in part on the reported quality of each nucleotide that accumulates at each position in the genome. If quality assessments are not accurate, the result can easily be determined to be the wrong basis.
[00431] Другой модуль, который может быть включен, например, в конвейер анализа последовательностей, такой как для определения геномной последовательности индивида, может быть модулем сжатия, который выполняет функцию сжатия. Как указано выше, может быть полезным на некотором этапе взять сгенерированные и обработанные данные и передать их в удаленное местоположение, например, облако, и поэтому данные может быть необходимо сжать на некотором этапе обработки, так чтобы после их сжатия они могли быть переданы и/или другим образом загружены, например, в облако или на группу серверов и т.д., например, для реализации модуля определения оснований. Полученные результаты затем могут быть распакованы и/или сохранены в памяти, в базе данных в облаке, например, базе данных здоровья в электронном виде и/или исследовательской базе данных и тому подобном, которая, в свою очередь, может быть доступной для третичной обработки, и т.д.[00431] Another module that may be included, for example, in a sequence analysis pipeline, such as to determine the genomic sequence of an individual, may be a compression module that performs a compression function. As stated above, it may be useful at some stage to take the generated and processed data and transmit it to a remote location, such as the cloud, and therefore the data may need to be compressed at some stage of processing so that once it is compressed, it can be transmitted and/or uploaded in another way, for example, to the cloud or to a group of servers, etc., for example, to implement the base determination module. The obtained results can then be decompressed and/or stored in memory, in a database in the cloud, for example, an electronic health database and/or a research database and the like, which in turn can be made available for tertiary processing, etc.
[00432] В частности, после того, как генетические данные сформированы и/или обработаны, например, в одном или более протоколах первичной и/или вторичной обработки, например, картированы, выровнены и/или отсортированы, например, для создания одного или более файлов определения вариантов, например, для определения того, как данные генетической последовательности субъекта отличаются от одной или более референсных последовательностей, согласно другому аспекту настоящее изобретение может относиться к выполнению одной или более других аналитических функций над сформированными и/или обработанными генетическими данными, например, для дальнейшей обработки, такой как третичная обработка. Например, система может быть выполнена с возможностью выполнения дальнейшей обработки сгенерированных и/или обрабатываемых во вторую очередь данных, например посредством их прогона через один или более конвейер для третичной обработки, такой как один или более из конвейера генома, конвейера эпигенома, конвейера метагенома, совместного генотипирования, конвейера MuTect2 или другого конвейера для третичной обработки, например, посредством устройств и способов, раскрытых в настоящем документе. Например, в различных примерах может быть обеспечен дополнительный уровень обработки, например для диагностики заболевания, терапевтического лечения и/или профилактического предупреждения, включая, например, неинвазивное пренатальное тестирование (NIPT), реанимацию и интенсивную терапию новорожденных (NICU), рак, проводимые в лаборатории исследования (LDT), агробиологию (AgBio) и другие виды диагностики, профилактики и/или способов лечения таких заболеваний, в которых применяются данные, сгенерированные одним или более из указанных первичных, вторичных и/или третичных конвейеров. Следовательно, устройства и способы, описанные в настоящем документе, могут быть использованы для формирования данных генетических последовательностей, которые затем могут быть использованы для формирования одного или более файлов определения вариантов и/или другой связанной информации, которая может быть в дальнейшем подвергнута обработке другими конвейерами третичной обработки в соответствии с устройствами и способами, описанными в настоящем документе, например, для диагностики конкретных и/или общих заболеваний, а также для профилактических и/или терапевтических мер и/или методов воздействия на развитие.[00432] In particular, after genetic data has been generated and/or processed, for example, in one or more primary and/or secondary processing protocols, for example, mapped, aligned and/or sorted, for example, to create one or more files determining variants, for example, to determine how a subject's genetic sequence data differs from one or more reference sequences; in another aspect, the present invention may relate to performing one or more other analytical functions on generated and/or processed genetic data, for example, to further processing such as tertiary processing. For example, the system may be configured to perform further processing on the generated and/or secondarily processed data, such as by running it through one or more tertiary processing pipelines, such as one or more of a genome pipeline, an epigenome pipeline, a metagenome pipeline, a shared genotyping, MuTect2 pipeline or other tertiary processing pipeline, for example, through the devices and methods disclosed herein. For example, in various examples, an additional level of processing may be provided, for example, for disease diagnosis, therapeutic treatment and/or prophylactic prevention, including, for example, non-invasive prenatal testing (NIPT), neonatal intensive care unit (NICU), cancer, performed in the laboratory research (LDT), agrobiology (AgBio) and other types of diagnosis, prevention and/or treatment of such diseases that use data generated by one or more of the specified primary, secondary and/or tertiary pipelines. Therefore, the devices and methods described herein can be used to generate genetic sequence data, which can then be used to generate one or more variant definition files and/or other associated information that can be further processed by other tertiary pipelines. processing in accordance with the devices and methods described herein, for example, for the diagnosis of specific and/or general diseases, as well as for preventive and/or therapeutic measures and/or developmental methods.
[00433] Соответственно, как указано выше в настоящем документе, согласно различным аспектам, настоящее изобретение относится к системам, устройствам и способам реализации геномных и/или биоинформационных протоколов, таких как, в различных примерах, для выполнения одной или более функций для анализа генетических данных на интегральной схеме, например, на реализованной на платформе аппаратной обработки. Например, согласно одному аспекту, обеспечена биоинформационная система, которая может включать реализацию различных биоинформационных функций, которые были оптимизированы для более быстрой реализации и/или для реализации с повышенной точностью в аппаратном исполнении. Соответственно, в различных примерах способы и системы, раскрытые в настоящем документе, могут включать в себя реализацию одного или более алгоритмов для исполнения указанных функций, причем указанные алгоритмы могут быть реализованы в виде аппаратного решения, например, так что алгоритмы оптимизированы таким образом, чтобы осуществляться посредством интегральной схемы, образованной на одной или более жестко смонтированных цифровых логических схем. В таком примере жестко смонтированные цифровые логические схемы могут быть взаимно соединены, например, посредством одного или множества физических электрических межсоединений, и могут быть выполнены с возможностью функционирования как один или более модулей обработки. В различных примерах обеспечено множество жестко смонтированных цифровых логических схем, которые сконфигурированы в виде набора модулей обработки, причем каждый модуль обработки выполнен с возможностью реализации одного или более этапов в биоинформационном протоколе генетического анализа.[00433] Accordingly, as discussed hereinabove, in various aspects, the present invention relates to systems, devices, and methods for implementing genomic and/or bioinformatics protocols, such as, in various examples, for performing one or more functions for analyzing genetic data on an integrated circuit, for example, implemented on a hardware processing platform. For example, in one aspect, a bioinformatics system is provided that may include implementations of various bioinformatics functions that have been optimized for faster implementation and/or for implementation with increased accuracy in hardware. Accordingly, in various examples, the methods and systems disclosed herein may include implementing one or more algorithms to perform said functions, which algorithms may be implemented as a hardware solution, for example, such that the algorithms are optimized to perform by means of an integrated circuit formed from one or more hard-wired digital logic circuits. In such an example, hard-wired digital logic circuits may be interconnected, for example, through one or a plurality of physical electrical interconnections, and may be configured to function as one or more processing modules. In various examples, a plurality of hard-wired digital logic circuits are provided that are configured as a set of processing modules, each processing module configured to implement one or more steps in a bioinformatics genetic analysis protocol.
[00434] В частности, согласно одному аспекту предложена система для осуществления конвейера анализа последовательностей, например на данных генетической последовательности. Система может включать в себя один или более электронных источников данных, память и интегральную схему. Например, в одном варианте реализации имеется электронный источник данных, который может быть выполнен с возможностью обеспечения одного или более цифровых сигналов, например, цифровых сигналов, представляющих один или более ридов генетических данных, например, где каждый рид геномных данных включает последовательность нуклеотидов. Кроме того, память может быть выполнена с возможностью хранения одной или более генетических референсных последовательностей и может быть также выполнена с возможностью хранения индекса, такого как индекс одной или более генетических референсных последовательностей.[00434] In particular, according to one aspect, a system is provided for implementing a sequence analysis pipeline, for example, on genetic sequence data. The system may include one or more electronic data sources, a memory, and an integrated circuit. For example, in one embodiment, there is an electronic data source that may be configured to provide one or more digital signals, for example, digital signals representing one or more reads of genetic data, for example, where each read of genomic data includes a nucleotide sequence. In addition, the memory may be configured to store one or more genetic reference sequences and may also be configured to store an index, such as an index of the one or more genetic reference sequences.
[00435] Также в различных примерах одно или более из множества физических электрических межсоединений могут содержать вход, например, в интегральную схему, и могут также быть соединены с источником электронных данных для обеспечения возможности приема одного или более ридов геномных данных. В различных вариантах реализации жестко смонтированные цифровые логические схемы могут быть выполнены в виде набора модулей обработки, такого где каждый модуль обработки может быть сформирован подмножеством жестко смонтированных цифровых логических схем и может быть выполнен с возможностью реализации одного или более этапов в конвейере анализа последовательностей, например, на оцифрованных генетических данных, например на множестве ридов геномных данных. В таких примерах каждое подмножество жестко смонтированных цифровых логических схем может быть сконфигурировано с соединением при помощи разводки, так чтобы выполнять один или более этапов в конвейере анализа последовательности, например, где один или более этапов могут включать в себя выполнение одной или более из операции определения оснований и/или исправления ошибки, например, в оцифрованных генетических данных, и/или может включать в себя одно или более из выполнения функции картирования, выравнивания и/или сортировки над генетическими данными. В определенных случаях конвейер может включать в себя выполнение одного или более из повторного выравнивания, удаления дубликатов, перекалибровки оценки качества основания, редукции и/или сжатия и/или распаковки на оцифрованных генетических данных. В определенных случаях конвейер может включать в себя выполнение операции определения вариантов над генетическими данными.[00435] Also in various examples, one or more of the plurality of physical electrical interconnects may comprise an input to, for example, an integrated circuit, and may also be coupled to an electronic data source to enable reception of one or more genomic data reads. In various embodiments, the hard-wired digital logic circuits may be implemented as a set of processing modules, such that each processing module may be formed by a subset of the hard-wired digital logic circuits and may be configured to implement one or more stages in a sequence analysis pipeline, e.g. on digitized genetic data, for example on multiple reads of genomic data. In such examples, each subset of hardwired digital logic circuits may be configured to be wired so as to perform one or more steps in a sequence analysis pipeline, for example, where one or more steps may include performing one or more of a base detection operation and/or correcting an error, for example, in digitized genetic data, and/or may involve one or more of performing mapping, alignment, and/or sorting functions on the genetic data. In certain cases, the pipeline may include performing one or more of realignment, deduplication, base quality assessment recalibration, reduction, and/or compression and/or decompression on the digitized genetic data. In certain cases, the pipeline may include performing a variant detection operation on genetic data.
[00436] Таким образом, в различных вариантах реализации, системах, аппаратах и методах для реализации протоколов геномики и/или биоинформатики, о которых здесь говорится, может быть задействовано использование процессов, которые обычно могут быть выполнены с помощью программного обеспечения, и встраивание указанных функций в интегральную схему, такую как микросхема (чип) 100, например, в качестве составной части системной платы 105, такой, в которой указанные функции оптимизированы, чтобы повысить ее производительность на микросхеме. В связи с этим, в одном из вариантов реализации, как можно видеть на фиг. 6 и 7, предусмотрена микросхема 100, причем микросхема 100 спроектирована так, чтобы эффективно выполнять указанные функции программного конвейера. В разных конкретных вариантах реализации микросхема 100 может представлять собой программируемую пользователем вентильную матрицу (FGPA), интегральную схему специального назначения (ASIC), или структурную интегральную схему специального назначения (sASIC), или тому подобное.[00436] Thus, various implementations, systems, apparatus and methods for implementing genomics and/or bioinformatics protocols discussed herein may involve using processes that can typically be performed in software and incorporating said functionality into an integrated circuit, such as a chip 100, for example, as an integral part of a motherboard 105, such that such functions are optimized to improve its on-chip performance. In this regard, in one embodiment, as can be seen in FIG. 6 and 7, a chip 100 is provided, wherein the chip 100 is designed to efficiently perform these software pipeline functions. In various specific embodiments, the chip 100 may be a field programmable gate array (FGPA), an application-specific integrated circuit (ASIC), or a special-purpose integrated circuit (sASIC), or the like.
[00437] Так, например, выполнение одного или более алгоритмов может быть встроено в микросхему, такую как FGPA или ASIC или структурную микросхему ASIC, и может быть оптимизировано для более эффективной их работы благодаря реализации аппаратными средствами. Соответственно, в одном из вариантов реализации предусмотрена микросхема FGPA, где такая микросхема может являться конфигурируемой, например, программная часть микросхемы может быть изменена так, чтобы быть сделать ее более адаптируемой к конкретным потребностям пользователя в части выполнения различных геномных функций, подробно описанных в настоящем документе. В этом случае пользователь может изменить или модифицировать задействованные алгоритмы в зависимости от ключевых параметров, обозначаемых для системы в целом, например, для придания дополнительной функциональности или замены того, что было перед этим на микросхеме, например, для перенастраивания конфигурации микросхемы для того, чтобы задействовать другой алгоритм.[00437] Thus, for example, the execution of one or more algorithms may be built into a chip, such as an FGPA or ASIC or fabricated ASIC chip, and may be optimized to operate more efficiently through implementation in hardware. Accordingly, in one embodiment, an FGPA chip is provided, wherein the chip may be configurable, e.g., the software portion of the chip may be modified to be more adaptable to the specific needs of a user to perform various genomic functions described in detail herein . In this case, the user can change or modify the algorithms involved depending on the key parameters designated for the system as a whole, for example, to provide additional functionality or replace what was previously on the chip, for example, to reconfigure the chip in order to enable different algorithm.
[00438] Далее, в другом варианте реализации предусмотрена микросхема FGPA или структурная микросхема ASIC, где такая микросхема является конфигурируемой как полностью, так и частично, например, некоторая ее программная часть может быть изменена таким образом, чтобы сделать ее более адаптируемой к конкретным потребностям пользователя в части выполнения различных геномных функций, подробно описанных в настоящем документе. В соответствии с другим вариантом реализации, предусмотрена ASIC, например, преобразованная в ASIC-микросхему FGPA или sASIC, функциональность которой может быть заблокирована в микросхеме. В таком случае различные параметры, как, например, различные параметры, относящиеся к конкретной функции одного или более алгоритмов, изложенных в настоящем документе, могут быть выбираемы пользователем, например, управляющие тем, как следует функционировать различным модулям, и при этом конкретный механизм функционирования таких модулей заблокирован.[00438] Further, in another embodiment, an FGPA or fabricated ASIC is provided, wherein the chip is fully or partially configurable, for example, some of its software can be changed to make it more adaptable to a user's specific needs. in terms of performing various genomic functions described in detail herein. According to another embodiment, an ASIC is provided, for example converted to an FGPA or sASIC, the functionality of which may be locked into the chip. In such a case, various parameters, such as various parameters related to a particular function of one or more of the algorithms set forth herein, may be selectable by the user, such as controlling how the various modules should function, and wherein the specific mechanism for the operation of such modules is blocked.
[00439] В различных вариантах реализации, как показано на фиг. 6 и 7, микросхема 100 может являться частью системной платы, такой как часть платы расширения 104, например, платы межсоединения периферийных компонентов (PCI), включая плату PCIe, которая в различных вариантах реализации может быть объединена, например, сопряжена с возможностью передачи сигнала, например, подключена электрически, с автоматизированным устройством секвенирования таким образом, чтобы функционировать в качестве неотъемлемой части секвенатора, так чтобы файлы данных, например, файлы в формате FASTQ, генерируемые секвенатором, передавались прямо на микросхему для вторичной обработки генома, как непосредственно следующей за генерацией файла в формате FASTQ и/или первичной обработкой, например, непосредственно после того, как выполнена функция секвенирования.[00439] In various embodiments, as shown in FIG. 6 and 7, chip 100 may be part of a system board, such as part of an expansion board 104, such as a peripheral component interconnect (PCI) card, including a PCIe card, which in various embodiments may be integrated, such as coupled with signal carrying capability, e.g., electrically coupled to an automated sequencing device so as to function as an integral part of the sequencer such that data files, e.g., FASTQ format files generated by the sequencer are transferred directly to the chip for secondary genome processing as immediately following file generation in FASTQ format and/or primary processing, for example, immediately after the sequencing function is performed.
[00440] Таким образом, в некоторых случаях предусмотрена плата PCI 104, где такая плата PCI может включать в себя микросхему с шиной PCIe 105, в которой плата 102 и/или микросхема 100 может включать в себя один или более модулей управления конфигурацией, таких как контроллер конфигурации (Cent-Com); устройство прямого доступа к памяти (например, драйвер); программный интерфейс приложения (API); интерфейс уровня клиента (CLI); библиотека; блок памяти, например, оперативной памяти (RAM) или динамической оперативной памяти (DRAM); и/или межсоединение на уровне микросхемы, такое как DDR3. Так, например, в различных случаях, в состав может входить модуль управления конфигурацией, где такой модуль управления конфигурацией управляется, например, файлом параметров. В таком случае модуль управления конфигурацией может быть адаптирован таким образом, чтобы настраивать конфигурацию различных модулей программного конвейера. В различных случаях он может быть редактируемым, позволяя пользователю определять какие модули программного конвейера будут использоваться, например, все или подгруппа модулей в количестве меньшем, чем все, например, для некоторого набора данных, такого как некоторый набор файлов в формате FASTQ.[00440] Thus, in some cases, a PCI card 104 is provided, where such a PCI card may include a PCIe chip 105, wherein the card 102 and/or chip 100 may include one or more configuration management modules, such as configuration controller (Cent-Com); direct memory access device (for example, driver); application program interface (API); client level interface (CLI); library; a memory unit, such as random access memory (RAM) or dynamic random access memory (DRAM); and/or chip-level interconnect such as DDR3. Thus, for example, in various cases, a configuration management module may be included, where such a configuration management module is controlled, for example, by a parameters file. In such a case, the configuration management module can be adapted to adjust the configuration of various software pipeline modules. In various cases it may be editable, allowing the user to define which modules of the software pipeline will be used, for example all or a subset of the modules in a smaller number than all, for example, for some set of data, such as some set of files in FASTQ format.
[00441] Например, в различных вариантах реализации функционирование программного конвейера является конфигурируемым в значительной степени, так что один или более модулей, например, встроенных в микросхему, могут быть запущены или не запущены, если потребуется. Далее, конфигурация каждого используемого модуля также может быть настроена для запуска в соответствии с одним или более предварительно выбранных параметров, которые могут контролироваться пользователем, например, относящихся к тому, как данный модуль будет выполняться и функционировать. Таким образом, может присутствовать два разных набора файлов конфигурации, таких что, например, один управляет базовыми операциями системы в целом и может быть скрыт от пользователя, а другой управляется пользователем и, таким образом, позволяет выбирать различные параметры, которые будут запускаться одной или более подсистемами, например, модулем, микросхемы 100 и/или платы PCI 104.[00441] For example, in various embodiments, the operation of the software pipeline is highly configurable, such that one or more modules, such as on-chip modules, can be run or not run as required. Further, each module used can also be configured to run according to one or more pre-selected parameters that can be controlled by the user, for example relating to how the module will execute and function. Thus, there may be two different sets of configuration files, such that, for example, one controls the basic operations of the system as a whole and can be hidden from the user, and the other is controlled by the user and thus allows the selection of different parameters to be triggered by one or more subsystems, such as a module, chip 100, and/or PCI card 104.
[00442] Таким образом, различные модули, из числа описанных выше, могут быть соединены на постоянной основе с микросхемой или являться внешними по отношению к микросхеме, но находиться с последней в сопряженном состоянии, например, на плате PCI 104, или быть удаленными по отношению к микросхеме, например, на другой плате PCI или даже другом сервере, например, на сервере, доступном через облако 30. Например, в некоторых реализациях, один или более из числа описанных выше модулей, могут быть соединены на постоянной основе с микросхемой 100, а сама микросхема установлена на печатной плате 104 автономного устройства 300, или сопряжены с секвенатором, и при этом пользователь настраивает конфигурацию и запускает систему самостоятельно в соответствии с собственными предварительно выбранными параметрами. В альтернативном варианте, как указано в настоящем документе, один или более из числа описанных выше модулей могут находиться в некоторой системе, доступной через облако 30, в котором управление функционированием программного конвейера и/или соответствующих модулей может включать в себя регистрацию пользователя на сервере, например, на удаленном сервере, и передачу данных в прямом и обратном направлении, и, таким образом, выбор модулей, которые следует запускать для набора данных. В некоторых случаях один или более модулей могут выполняться удаленно, например, через доступный в облаке сервер. [00442] Thus, the various modules described above may be permanently connected to the chip, or external to the chip but interfaced with the chip, for example on a PCI card 104, or remote to the chip. to the chip, for example, on another PCI card or even another server, for example, on a server accessible via cloud 30. For example, in some implementations, one or more of the modules described above may be permanently coupled to chip 100, and the chip itself is mounted on the circuit board 104 of the stand-alone device 300, or interfaced with the sequencer, and the user configures and runs the system himself according to his own preselected parameters. Alternatively, as discussed herein, one or more of the modules described above may reside on a system accessible via cloud 30, wherein controlling the operation of the software pipeline and/or related modules may include logging a user into the server, for example ,on a remote server, and transmitting data back and forth, and,thus selecting which modules to run on the data set. In some cases, one or more modules may be executed remotely, for example through a cloud-accessible server.
[00443] В некоторых случаях при настройке конфигурации системы, микросхема, такая как микросхема 100 на плате расширения 104, такой как плата PCI, может входить в состав сервера 300, так что различные приложения системы запускаются с этого сервера. В некоторых случаях сервер 300 может содержать подключаемый терминал с предоставляемым пользователю оконным интерфейсом, так что пользователь может выбирать модули для запуска и параметры, по которым они запускаются, например, выбирая один из блоков в меню блоков. В других случаях, однако, файл параметров может представлять собой текстовый файл, подробно описывающий категории модулей под именами файлов, которые пользователь может впоследствии редактировать для того, чтобы выбирать какие модули будут запускаться и в соответствии с какими параметрами. Например, в различных вариантах реализации каждая микросхема может содержать все модули или выбираемый набор модулей, например, один или более из следующих: модуль поиска оснований, корректировки ошибок, картрирования, выравнивания, сортировки, локального перевыравнивания, маркировки дубликатов, повторной калибровки, определения вариантов, модуль сжатия и/или модуль распаковки, из которых пользователь может выбирать, какие модули будут запускаться, когда и в каких пределах они будут запускаться, без изменения функционирования лежащих в основе алгоритмов, по которым отдельные модули работают.[00443] In some cases, when configuring a system, a chip, such as chip 100 on expansion card 104, such as a PCI card, may be included in server 300 such that various system applications are run from that server. In some cases, the server 300 may include a plug-in terminal with a windowed interface provided to the user so that the user can select modules to run and the parameters by which they are launched, for example, by selecting one of the blocks from a menu of blocks. In other cases, however, the parameters file may be a text file detailing categories of modules under file names, which the user can subsequently edit to select which modules will run and according to which parameters. For example, in various embodiments, each chip may contain all of the modules or a selectable set of modules, such as one or more of the following: basefinding, error correction, mapping, alignment, sorting, local realignment, duplicate flagging, recalibration, variant detection, a compression module and/or a decompression module from which the user can select which modules will run, when and to what extent they will run, without changing the functioning of the underlying algorithms by which the individual modules operate.
[00444] Кроме того, а различных случаях, в состав могут входить устройство прямого доступа к памяти (DMA) в микросхеме и драйвер DMA, причем драйвер DMA содержит код, запускаемый в ядре. Таким образом, драйвер DMA может лежать в основании целой операционной системы. Например, виртуальное пользовательское пространство может располагаться на уровень выше пространства литеральной адресации, в котором ядро запускает код. Такое программное обеспечение операционной системы, следовательно, работает между этими уровнями, управляя преобразованием данных из виртуального пространства в физическое. В частности, ядро представляет собой самый нижний уровень кода, предоставляющего платформе доступ к PCI 104, например PCIe, шине 105, с которой сопряжена микросхема 100. Таким образом, поскольку в различных вариантах реализации конфигурация микросхемы 100 может быть настроена как в плате расширения 104 с шиной расширения PCIe 105, и такая плата 104 может быть сопряжена с различными аппаратными средствами некоторого устройства, например, секвенатора, и драйвер DMA может функционировать таким образом, чтобы осуществлять обмен информацией c аппаратными средствами секвенатора, и его конфигурация в дальнейшем может быть настроена для запуска на уровне ядра на ЦП 100, чтобы также осуществлять обмен информацией с устройством DMA в микросхеме 100, и/или работы в виртуальном пользовательском пространстве, так чтобы получать команды от пользователя.[00444] Additionally, in various cases, a direct memory access (DMA) device on the chip and a DMA driver may be included, the DMA driver comprising code that runs in the kernel. Thus, the DMA driver can be at the core of an entire operating system. For example, virtual user space may be a level above the literal addressing space in which the kernel runs code. Such operating system software therefore operates between these layers, managing the transformation of data from virtual space to physical space. Specifically, the core is the lowest level of code that provides the platform with access to PCI 104, such as PCIe, bus 105 to which chip 100 interfaces. Thus, since in various embodiments chip 100 may be configured as in expansion card 104 with PCIe expansion bus 105, and such card 104 can be interfaced with various hardware of some device, such as a sequencer, and the DMA driver can function to communicate with the sequencer hardware and can then be configured to run at the kernel level on the CPU 100, so as to also communicate with the DMA device in the chip 100, and/or operate in virtual user space, so as to receive commands from the user.
[00445] Для того, чтобы обеспечить такой обмен сообщениями на микросхеме и/или между микросхемой и одной или более плат, каждый отдельный конфигурируемый параметр модуля может быть приписан к некоторому адресу в регистре. В таком случае, плата может иметь собственное адресное пространство, причем такое адресное пространство может отличаться от адресного пространства для одного или более блоков памяти, например, 64 Гигабайт памяти, и/или каждый модуль может дополнительно содержать регистры и связанную с ним локальную память - каждую с собственным адресным пространством. Таким образом, драйвер знает, где все находится, все адреса, и знает, как осуществлять обмен информацией между микросхемой 100, платой PCI 104, и/или аппаратными средствами сервера. Далее, зная расположение всех адресов и осуществляя обмен информацией с API, драйвер может считывать созданный пользователем файл параметров и отыскивать тот параметр, в котором файл фактически находится в системе главного компьютера, и будет считывать и интерпретировать значение, записанное в данном файле, и доставлять это значение в надлежащий регистр в надлежащее место на микросхеме. Таким образом, драйвер может управлять доставкой команд, связанных с выбранным параметром, например, таких, которые имеют отношение к выбранной пользователем конфигурации, и доставлять такие данные на микросхему через устройство DMA для конфигурации ее рабочих функций. [00445] In order to enable such messaging on the chip and/or between the chip and one or more boards, each individual configurable module parameter may be assigned to an address in a register. In such a case, the board may have its own address space, which address space may be different from the address space for one or more memory blocks, for example, 64 GB of memory, and/or each module may additionally contain registers and associated local memory - each with its own address space. Thus, the driver knows where everything is, all the addresses, and knows how to communicate between chip 100, PCI card 104, and/or server hardware. Next, knowing the location of all the addresses and communicating with the API, the driver can read the user-created parameter file and look for the parameter where the file is actually located on the host computer system, and will read and interpret the value written in this file and deliver it value into the proper register at the proper location on the chip. Thus, the driver can control the delivery of commands associated with a selected parameter, such as those related to a user-selected configuration, and deliver such data to the chip via a DMA device to configure its operating functions.
[00446] В частности, после того, как генетические данные сгенерированы и/или обработаны, например, с использованием одного из первичных и/или вторичных протоколов, например, картрированы, выровнены, и/или отсортированы, например, для создания одного или более файлов определения вариантов, например, для определения того, как данные генетической последовательности исследуемого объекта отличаются от одной или более контрольных последовательностей, и следующий аспект изобретения может быть связан с выполнением одной или более аналитических функций в отношении сгенерированных и/или обработанных генетических данных, таких как дальнейшая, например, третичная, обработка. Например, конфигурация системы, представленной на фиг. 8-11, может быть настроена для последующей обработки сгенерированных данных и/или данных, полученных в результате вторичной обработки, например, для ее запуска через один или более программных конвейеров третичной обработки 700, например, через один или более программных конвейеров генома, программных конвейеров эпигенома, программных конвейеров метагенома, совместного генотипирования, программных конвейеров MuTect2 или других программных конвейеров третичной обработки, например, с помощью устройств и методов, описанных в настоящем документе. Например, в различных случаях может обеспечиваться дополнительный уровень обработки 122, например, для диагностики заболеваний, терапевтического лечения и/или профилактических действий, например, включающий в себя NIPT, NICU, Cancer, LDT, AgBio и другие подобные методы диагностики заболеваний, профилактики, и/или лечения, в которых задействованы данные, создаваемые одним или более таких первичных и/или вторичных и/или третичных программных конвейеров.[00446] In particular, after the genetic data has been generated and/or processed, for example, using one of the primary and/or secondary protocols, for example, mapped, aligned, and/or sorted, for example, to create one or more files determination of variants, for example, to determine how the genetic sequence data of the subject of interest differs from one or more reference sequences, and a further aspect of the invention may be associated with performing one or more analytical functions on the generated and/or processed genetic data, such as further ,eg tertiary ,processing. For example, the system configuration shown in FIG. 8-11 may be configured to further process the generated data and/or data resulting from secondary processing, for example, to run through one or more tertiary processing software pipelines 700, for example, through one or more genome software pipelines, software pipelines epigenome, metagenome software pipelines, co-genotyping, MuTect2 software pipelines, or other tertiary processing software pipelines, such as the devices and methods described herein. For example, in various cases, an additional level of processing 122 may be provided, for example, for disease diagnosis, therapeutic treatment and/or prophylactic actions, for example, including NIPT, NICU, Cancer, LDT, AgBio and other similar methods for disease diagnosis, prevention, and /or treatments that involve data generated by one or more of such primary and/or secondary and/or tertiary software pipelines.
[00447] Таким образом, описанные в настоящем документе устройства и методы могут использоваться для генерации данных генетической последовательности, которые могут в дальнейшем использоваться для создания одного или более файлов определения вариантов и/или других, связанных с этим данных, которые в дальнейшем могут являться объектом исследования для других запускаемых программных конвейеров третичной обработки в соответствии с описанными в настоящем документе устройствами и методами, например, как для диагностики конкретного и/или системного заболевания, так и для профилактики и/или терапевтического лечения и/или методик, находящихся в стадии разработки.[00447] Thus, the devices and methods described herein can be used to generate genetic sequence data, which can further be used to create one or more variant definition files and/or other related data, which can then be the subject of research for other tertiary processing software pipelines being launched in accordance with the devices and methods described herein, for example, both for diagnosis of a specific and/or systemic disease and for prevention and/or therapeutic treatments and/or techniques under development.
[00448] Далее, в различных случаях, в состав может входить API, где конфигурация такого API настроена таким образом, чтобы в нем содержался список обращений к функциям, которые может осуществлять пользователь, так чтобы конфигурировать и управлять системой. Например, API может быть определен в файле заголовка, который описывает функциональные возможности и задает способ, которым вызывается какая-либо функция, например, передаваемые параметры, входные и выходные данные, что входит, что выходит, и что возвращается. Например, в различных вариантах реализации, один или более элементов программного конвейера могут быть конфигурируемыми, например командами, которые вводит пользователь и/или одним или более сторонними приложениями. Такие команды могут посылаться на микросхему через API, который осуществляет обмен информацией с драйвером, указывая драйверу какие составляющие, например, модули, следует активировать, когда и в каком порядке, с учетом предварительно выбранных параметров конфигурации.[00448] Further, in various cases, an API may be included, where such API is configured to contain a list of function calls that a user can make so as to configure and manage the system. For example, an API may be defined in a header file that describes the functionality and specifies the way in which a function is called, such as the parameters passed, input and output data, what goes in, what goes out, and what is returned. For example, in various implementations, one or more elements of the software pipeline may be configurable, such as commands entered by the user and/or one or more third-party applications. Such commands can be sent to the chip via an API, which communicates with the driver, telling the driver which components, such as modules, should be activated, when and in what order, based on pre-selected configuration parameters.
[00449] Как указано выше, драйвер DMA запускается на уровне ядра и имеет собственный простой API очень низкого уровня, который обеспечивает доступ к аппаратным средствам и функциям для того, чтобы получить доступ к применяемым регистрам и модулям. Над таким уровнем построен виртуальный уровень служебных функций, которой образует конструктивные блоки, используемые для всего многообразия функций, отправляющих файлы в ядро и получающих результаты, и, впоследствии, выполняет функции более высокого уровня. Над этим уровнем находится дополнительный уровень, использующий указанные служебные функции, который представляет собой уровень API, с которым взаимодействует пользователь, и который функционирует, в первую очередь, для конфигурации, загрузки файлов и выгрузки результатов. Такая конфигурация может включать в себя обмен информацией с регистрами, а также выполнение вызовов функций.[00449] As stated above, the DMA driver runs at the kernel level and has its own simple very low level API that provides access to hardware and functions in order to access applied registers and modules. Above this layer is a virtual service function layer, which forms the building blocks used for a variety of functions that send files to the kernel and receive results, and subsequently performs higher-level functions. Above this layer is an additional layer that uses these utility functions, which is the API layer that the user interacts with and functions primarily for configuration, file loading, and results uploading. Such configuration may involve exchanging information with registers as well as making function calls.
[00450] Например, как описано выше в настоящем документе, один из вызовов функций может быть осуществлен для создания таблицы расстановки с помощью алгоритма перемешивания. Причем, поскольку в некоторых вариантах реализации эта функция может быть создана на основе одного контрольного генома, причем только однажды для каждого контрольного генома, и может возникать необходимость создавать используемые в модуле картрирования таблицы расстановки на основе контрольной последовательности, то существует вызов функции, который выполняет такую функцию, и который будет получать имя файла, связанного с расположением контрольного файла и будет создавать после этого один или более файлов данных, содержащих таблицу расстановки и контрольную последовательность. Другой вызов функции может служить для загрузки таблицы расстановки, созданной с помощью алгоритма перемешивания, и ее передачи в память на микросхеме 100, и/или размещения в подходящем месте, определяемом аппаратными средствами. Конечно, возникнет необходимость загрузки контрольной последовательности на микросхему 100, что потребуется также для работы функции выравнивания. Модуль управления конфигурацией может выполнять такую функцию, например, с помощью загрузки всего необходимого для того, чтобы модули микросхемы 100 выполняли свои функции в памяти на микросхеме или прикрепленной к микросхеме 100.[00450] For example, as described above herein, one of the function calls may be made to create a placement table using a shuffle algorithm. Moreover, since in some implementations this function can be created based on one control genome, and only once for each control genome, and there may be a need to create arrangement tables used in the mapping module based on the control sequence, then there is a function call that performs such function, and which will receive the file name associated with the location of the control file and will then create one or more data files containing the layout table and control sequence. Another function call may serve to load the arrangement table created by the shuffle algorithm and transfer it to memory on chip 100 and/or place it in an appropriate location determined by the hardware. Of course, it will be necessary to load the check sequence onto the chip 100, which is also required for the alignment function to work. The configuration management module may perform such a function, for example, by loading everything necessary for the modules of the chip 100 to perform their functions in memory on the chip or attached to the chip 100.
[00451] Дополнительно, конфигурация API может быть настроена так, чтобы позволить микросхеме 100 взаимодействовать с системной платой секвенатора, в случае если она входит в его состав, так чтобы получать файлы последовательностей в формате FASTQ прямо из секвенатора, например, непосредственно после того, как они сгенерированы, и затем передавать эту информацию в модуль управления конфигурацией, который затем направляет эту информацию в подходящие хранилища данных в аппаратных средствах 100, которые делают эту информацию доступной для соответствующих модулей в аппаратных средствах, так что они могут выполнять предписанные им функции, как то осуществлять поиск оснований, картрировать, выравнивать, сортировать и т.д. образец ДНК по отношению к контрольному геному.[00451] Additionally, the API may be configured to allow chip 100 to communicate with the sequencer motherboard, if included, so as to receive FASTQ format sequence files directly from the sequencer, for example, immediately after they are generated, and then pass this information to the configuration management module, which then forwards this information to suitable data stores in the hardware 100, which make this information available to the corresponding modules in the hardware so that they can perform their assigned functions, such as search for bases, map, align, sort, etc. DNA sample relative to a reference genome.
[00452] Более того, в состав может входить интерфейс уровня клиента (CLI), где такой CLI может позволять пользователю вызывать одну или более из указанных функций напрямую. В различных вариантах реализации, CLI может представлять собой программное приложение, адаптированное для конфигурации использования аппаратных средств. Таким образом, CLI может представлять собой программу, которая принимает команды, например, аргументы, и делает доступной все функциональные возможности с помощью простого вызова приложения. Как указано выше, CLI может быть реализована на основе командной строки или GUI (графического пользовательского интерфейса). Строковые команды могут работать на уровне ниже GUI, в то время как GUI имеет в своем составе оконный диспетчер файлов с функцией выбора мышью блоков, на которых схематически изображены используемые модули и параметры их использования. Например, если поступили соответствующие команды, CLI в процессе своей работы будет определять местоположение контрольной последовательности, определять, существует ли необходимость создания таблицы расстановки и/или указателя, и, если они уже созданы, определять место их хранения, и направлять выгрузку созданных таблицы расстановки и/или указателя, и т.п. Команды такого типа могут возникать по усмотрению пользователя при работе с GUI, в случае, если пользователь выберет для работы описываемую микросхему.[00452] Moreover, a client level interface (CLI) may be included, where such a CLI may allow a user to call one or more of the specified functions directly. In various implementations, the CLI may be a software application tailored to configure the use of hardware. Thus, a CLI can be a program that accepts commands, such as arguments, and makes all functionality available through a simple application call. As stated above, CLI can be implemented based on the command line or GUI (graphical user interface). Line commands can operate at a level below the GUI, while the GUI includes a windowed file manager with the function of selecting blocks with the mouse, which schematically depict the modules used and the parameters for their use. For example, if the appropriate commands are received, the CLI will, in its operation, determine the location of the control sequence, determine whether there is a need to create a lookup table and/or index, and, if they have already been created, determine where to store them, and direct the unloading of the created lookup tables and /or pointer, etc. Commands of this type can appear at the user's discretion when working with the GUI, if the user selects the described chip to work with.
[00453] Кроме того, в состав может входить библиотека, где такая библиотека может содержать предшествующие редактируемые файлы конфигурации, например, файлы, созданные для выбираемого пользователем типового функционирования аппаратных средств, например, для анализа части или целого генома, например, для анализа происхождения, диагностики заболеваний, поиска новых лекарственных средств, профилирования белков, и т.д. Предустановленные параметры такого типа, например, для выполнения подобных анализов, могут храниться в библиотеке. Например, если описанная в настоящем документе платформа задействована, например, для онкологических исследований, предустановленные параметры могут компоноваться не так, как в случае, если платформа направлена на генеалогические исследования.[00453] In addition, a library may be included, where such a library may contain previous editable configuration files, e.g., files created for a user-selectable typical hardware operation, e.g., analysis of a portion or an entire genome, e.g., ancestry analysis, diagnostics of diseases, search for new drugs, profiling of proteins, etc. Preset parameters of this type, for example for performing similar analyses, can be stored in a library. For example, if the platform described herein is used for, for example, cancer research, the predefined parameters may be configured differently than if the platform is aimed at genealogical research.
[00454] Более конкретно, в онкологии точность может являться важным фактором, и, следовательно, параметры системы могут устанавливаться таким образом, чтобы обеспечить повышенную точность, приводя при этом к возможному падению скорости. Однако скорость может являться ключевым определяющим фактором для других прикладных задач геномики и, следовательно, параметры системы могут устанавливаться таким образом, чтобы сделать скорость максимальной, что, однако, может быть в ущерб точности. Соответственно, в различных вариантах реализации, настройки параметров, часто используемые для выполнения различных задач, могут быть предустановлены в библиотеке, чтобы обеспечить простоту использования. Такие настройки параметров могут также содержать информацию о программных приложениях, которые необходимо задействовать при запуске системы. Например, такая библиотека может содержать код, запускающий API, и, впоследствии, файлы-примеры, командные файлы и любую вспомогательную информацию, необходимую для запуска системы. Таким образом, конфигурация библиотеки может быть настроена для компиляции программного обеспечения с целью запуска как API, так и различных выполняемых программ.[00454] More specifically, in oncology, accuracy may be an important factor, and therefore system parameters may be set to provide increased accuracy at the possible cost of speed. However, speed may be a key determining factor for other genomics applications and, therefore, system parameters may be set to maximize speed, which may, however, come at the expense of accuracy. Accordingly, in various embodiments, parameter settings frequently used to perform various tasks may be preset in the library to provide ease of use. These parameter settings may also contain information about software applications that need to be enabled when the system starts. For example, such a library could contain the code that runs the API, and subsequently example files, batch files, and any supporting information needed to run the system. In this way, the library can be configured to compile software to run both the API and various executable programs.
[00455] В различных случаях, PCI 104 и/или микросхема 100 может также включать в себя блок памяти, например, оперативной памяти (RAM) или динамической оперативной памяти (DRAM) с, например, интерфейсом DDR3, и такая память может использоваться для обеспечения работоспособности различных модулей, описанных в настоящем документе, например, модуля картрирования, выравнивателя, и/или сортировщика. Например, DRAM может использоваться там, где могут храниться контрольная последовательность, таблица расстановки и/или указатель таблицы расстановки, и/или считываемые фрагменты. Далее, как показано на фиг. 9., память может использоваться для обеспечения работоспособности различных других модулей, например, 114, описанных в настоящем документе, таких как, например, модуль устранения повторов, модуль местного перевыравнивания, модуль повторной калибровки качества оснований, модуль поиска вариантов, модули сжатия и/или распаковки. Например, DRAM может использоваться там, где могут храниться отсортированные считываемые фрагменты, аннотированные считываемые фрагменты, сжатые считываемые фрагменты и/или генетические варианты. Далее, конфигурация памяти может настраиваться таким образом, чтобы иметь в своем составе отдельный интерфейс для каждого из различных модулей памяти, задействованных выравнивателем и/или любым другим модулем, так что при этом каждый модуль памяти может содержать файловый уровень и логический уровень. Как указано выше, поскольку может быть задействовано несколько блоков памяти и/или несколько модулей, в состав может входить межсоединение на уровне микросхемы, чтобы обеспечивать обмен информацией через микросхему 100.[00455] In various cases, PCI 104 and/or chip 100 may also include a memory unit, such as random access memory (RAM) or dynamic random access memory (DRAM) with, for example, a DDR3 interface, and such memory may be used to provide the performance of the various modules described in this document, for example, the mapping module, the leveler, and/or the sorter. For example, DRAM may be used where a check sequence, a lookup table, and/or a lookup table pointer, and/or readable chunks can be stored. Next, as shown in FIG. 9., the memory may be used to support the operation of various other modules, for example 114, described herein, such as, for example, a duplicate elimination module, a local realignment module, a base quality recalibration module, a variant search module, compression modules and/or unpacking. For example, DRAM may be used where sorted reads, annotated reads, compressed reads, and/or genetic variants can be stored. Further, the memory configuration may be configured to include a separate interface for each of the various memory modules used by the aligner and/or any other module, such that each memory module may comprise a file level and a logical level. As discussed above, since multiple memory units and/or multiple modules may be involved, a chip-level interconnect may be included to allow information to be exchanged across the chip 100.
[00456] Таким образом, в различных случаях, аппаратура, описываемая в настоящем изобретении, может включать в себя микросхему 100, где такая микросхема включает в себя интегральную схему, образованную группой соединенных на постоянной основе цифровых логических схем, которые могут быть соединены между собой одним или более электрических межсоединений. В различных вариантах реализации одно или более физических электрических межсоединений включает в себя входной элемент, с помощью которого интегральная схема может соединяться с источником электронных данных для получения данных. Далее, в различных вариантах реализации, соединенные на постоянной основе цифровые логические схемы могут быть организованы в набор устройств обработки, например, где каждое устройство обработки может быть образовано подгруппой соединенных на постоянной основе цифровых логических схем, конфигурация которых настроена для выполнения одного или более этапов цифрового конвейера анализа последовательностей. Более конкретно, каждая подгруппа соединенных на постоянной основе цифровых логических схем находится в монтажной конфигурации для выполнения одного или более этапов цифрового конвейера анализа последовательностей.[00456] Thus, in various cases, the apparatus described in the present invention may include a chip 100, where such chip includes an integrated circuit formed by a group of permanently connected digital logic circuits that can be interconnected by one or more electrical interconnections. In various embodiments, one or more physical electrical interconnects includes an input element by which the integrated circuit can couple to an electronic data source to receive data. Further, in various embodiments, the permanently connected digital logic circuits may be organized into a set of processing devices, for example, where each processing device may be constituted by a subset of permanently connected digital logic circuits that are configured to perform one or more digital steps. sequence analysis pipeline. More specifically, each subset of permanently connected digital logic circuits is configured to perform one or more stages of a digital sequence analysis pipeline.
[00457] В различных случаях, группа устройств обработки может включать в себя один или более модулей картрирования 112, модулей выравнивания 113, и/или модулей сортировки 114а, например, таким образом, что один или более этих модулей находятся в монтажной конфигурации. Например, в состав может входить модуль картрирования, находящийся в монтажной конфигурации, и такой модуль картрирования может получать доступ к указателю, например, одной или более контрольных генетических последовательностей, например, из памяти, например, через одну или более совокупностей физических электронных межсоединений, например, для картрирования совокупности считываемых фрагментов одного или более сегментов одной или более контрольных генетических последовательностей. Далее, в различных случаях, в состав может входить модуль выравнивания, и такой модуль выравнивания может получать доступ к одной или более контрольных генетических последовательностей, например, из памяти, например, через одну или более совокупностей физических электронных межсоединений, например, для выравнивания совокупности считываемых фрагментов одного или более сегментов одной или более контрольных генетических последовательностей. Более того, в различных случаях, в состав может входить модуль сортировки, и такой модуль сортировки может получать доступ к одной или более выровненных последовательностей, например, из памяти, например, через одну или более совокупностей физических электронных межсоединений, например, для сортировки совокупности считываемых фрагментов одной или более хромосом одной или более контрольных генетических последовательностей. Таким же образом, в различных случаях, микросхема может содержать один или более из числа модулей местного перевыравнивания, маркировки дубликатов, повторной калибровки качества оснований и/или определения вариантов, например, в монтажной конфигурации таким же образом, как и в случае описанных выше модулей, для выполнения соответствующих функций.[00457] In various cases, a group of processing devices may include one or more mapping modules 112, alignment modules 113, and/or sorting modules 114a, for example, such that one or more of these modules are in a mounting configuration. For example, a mapping module may be included in a mounting configuration, and such a mapping module may access an index of, for example, one or more reference genetic sequences, for example, from memory, for example, through one or more sets of physical electronic interconnects, for example , for mapping a set of reads from one or more segments of one or more reference genetic sequences. Further, in various cases, an alignment module may be included, and such an alignment module may access one or more reference genetic sequences, for example, from memory, for example, through one or more sets of physical electronic interconnects, for example, to align a set of reads fragments of one or more segments of one or more control genetic sequences. Moreover, in various cases, a sorting module may be included, and such a sorting module may access one or more aligned sequences, for example, from memory, for example, through one or more sets of physical electronic interconnects, for example, to sort a set of reads fragments of one or more chromosomes of one or more control genetic sequences. Likewise, in various cases, the chip may comprise one or more of local realignment, duplicate marking, base quality recalibration, and/or variant detection modules, for example, in a mounting configuration in the same manner as the modules described above, to perform the corresponding functions.
[00458] Как указано выше, в различных случаях конфигурация одной или более интегральных схемсогласно настоящему изобретению, может быть настроена как для одной или более микросхем, например, FGPA, ASIC и/или структурной микросхемы ASIC. Например, интегральная схема, по своему типу, является набором электронных схем, расположенных на небольшой пластине или «чипе» из полупроводникового материала, например, кремния. Интегральные схемы обычно включают в себя схемные элементы, которые могут быть нераздельно с ними связаны и соединены между собой электрически. Прототипичная цифровая интегральная схема включает в себя разнообразные элементы, такие как, например, один или более логических вентилей, триггеров, концентраторов и других различных элементов, конфигурация которых настроена или настраиваема для функционирования схемы в качестве микропроцессора или другого микроконтроллера, например, для бинарной обработки сигналов «нулей» и «единиц», например, при выполнении одной или нескольких операций согласно настоящему изобретению.[00458] As stated above, in various cases, the configuration of one or more integrated circuits according to the present invention may be configured for one or more chips, such as an FGPA, an ASIC, and/or a fabric chip ASIC. For example, an integrated circuit, by type, is a collection of electronic circuits arranged on a small wafer or “chip” of semiconductor material, such as silicon. Integrated circuits typically include circuit elements that can be integrally coupled with them and interconnected electrically. A prototypical digital integrated circuit includes a variety of elements, such as, for example, one or more logic gates, flip-flops, hubs, and other various elements, configured or customized to operate the circuit as a microprocessor or other microcontroller, such as for binary signal processing "zeros" and "ones", for example, when performing one or more operations according to the present invention.
[00459] Более конкретно, один или более программируемых с использованием маски логических вентилей могут быть сконфигурированы или запрограммированы для выполнения логических операций, таких как булевы функции одного или более входных логических переменных, так чтобы получать одиночную выходную логическую переменную. Такие логические вентили могут быть сконфигурированы с использованием одного или более диодов или транзисторов таким образом, чтобы вентили работали как электронные переключатели. В различных случаях, логические вентили могут включаться каскадом, подобно тому, как могут компоноваться булевы функции, что, таким образом, делает возможным построение физической модели любой булевой логики и, следовательно, любых алгоритмов и любых математических моделей, которые могут быть описаны булевой логикой, таких как описанные в настоящем документе, и могут быть реализованы логическими вентилями интегральных схем настоящего изобретения. В различных вариантах реализации набор вентилей может находиться на полупроводниковой пластине, формируя, таким образом, вентильную матрицу, например, схему вентильной матрицы.[00459] More specifically, one or more mask-programmable logic gates may be configured or programmed to perform logical operations, such as Boolean functions of one or more input logic variables, so as to produce a single output logic variable. Such logic gates can be configured using one or more diodes or transistors so that the gates act as electronic switches. In various cases, logic gates can be cascaded, similar to how Boolean functions can be arranged, which thus makes it possible to build a physical model of any Boolean logic and, therefore, any algorithms and any mathematical models that can be described by Boolean logic, such as those described herein, and can be implemented by the logic gates of the integrated circuits of the present invention. In various embodiments, a set of gates may be located on a semiconductor wafer, thereby forming a gate array, such as a gate array circuit.
[00460] В различных случаях, интегральная схема может также включать в себя один или более триггеров. Триггер может представлять собой схему или, как минимум, часть схемы, сконфигурированный в качестве клапана. Обычно триггер имеет два стабильных состояния и может переходить из одного в другое, например, с помощью сигнала, подаваемого на один или более контрольных входов, и, следовательно, триггер будет иметь один или два выхода. Триггеры используются для хранения информации о состоянии и, следовательно, могут применяться в качестве базовых элементов хранения, например в последовательных логических операциях. Интегральная схема может также включать в себя концентратор. Концентратор может быть сконфигурирован для выбора одного из нескольких входных сигналов, таких как цифровые (или аналоговые) входные сигналы, и, далее, может быть сконфигурирован для ретрансляции выбранного входного сигнала на выход. Таким образом, концентратор может использоваться для увеличения количества данных, пересылаемых через сеть в течение определенного отрезка времени при заданной пропускной способности.[00460] In various cases, the integrated circuit may also include one or more flip-flops. The trigger may be a circuit, or at least a portion of the circuit, configured as a valve. Typically a flip-flop has two stable states and can change from one to the other, for example, by a signal applied to one or more control inputs, and therefore the flip-flop will have one or two outputs. Triggers are used to store state information and therefore can be used as basic storage elements, such as in sequential logic operations. The integrated circuit may also include a hub. The hub may be configured to select one of several input signals, such as digital (or analog) input signals, and may further be configured to relay the selected input signal to an output. Thus, a hub can be used to increase the amount of data sent over a network over a given period of time for a given bandwidth.
[00461] В некоторых случаях, упоминаемых в настоящем документе, типичная интегральная схема может включать в себя любое количество, от одного до миллионов, таких элементов, сконфигурированных для выполнения операций, таких как те, которые описаны в настоящем документе, где различные элементы занимают лишь несколько квадратных миллиметров. Небольшие размеры таких схем обеспечивают высокую скорость, низкое рассеивание мощности и сниженную стоимость производства.[00461] In some cases mentioned herein, a typical integrated circuit may include any number, from one to millions, of such elements configured to perform operations such as those described herein, where the various elements occupy only a few square millimeters. The small size of such circuits provides high speed, low power dissipation and reduced manufacturing costs.
[00462] Такие интегральные схемы могут быть изготовлены с использованием широкого диапазона различных технологий, однако, обычно производятся в виде монолитной интегральной схемы. Например, типичная интегральная схема, например, полупроводниковая, может изготавливаться при помощи послойного процесса, например, такого процесса, который включает в себя три главных этапа, таких как перенос изображения, размещение и травление. В различных случаях, один или более из этих этапов могут дополняться этапами дальнейшей обработки, такими как легирование, очистка и тому подобными. Например, типичная процедура изготовления может предполагать наличие полупроводниковой пластины, например, монокристаллической кремниевой пластины, используемой в качестве подложки на которой интегральная схема собирается или, например, печатается. Затем используется фотолитография для печати на полупроводниковой пластине, например, для разметки разных областей подложки, которые затем могут быть легированы и/или на которых будут печататься проводящие дорожки, например, металлические, например алюминиевые.[00462] Such integrated circuits can be manufactured using a wide range of different technologies, however, they are typically manufactured as a monolithic integrated circuit. For example, a typical integrated circuit, such as a semiconductor, may be manufactured using a layer-by-layer process, such as a process that includes three major steps such as image transfer, placement, and etching. In various cases, one or more of these steps may be supplemented by further processing steps such as alloying, purification and the like. For example, a typical manufacturing procedure may involve a semiconductor wafer, such as a monocrystalline silicon wafer, used as a substrate on which the integrated circuit is assembled or, for example, printed. Photolithography is then used to print onto the semiconductor wafer, for example to mark out different areas of the substrate, which can then be doped and/or on which conductive traces, for example metal, such as aluminum, will be printed.
[00463] В типичном случае интегральная схема состоит из одной или более совокупностей перекрывающихся слоев, таких, что структура каждого из слоев задается с помощью фотолитографии. Некоторые слои могут образовывать диффузионные слои с разметкой тех мест, в которых различные легирующие примеси диффундировали в подложку, а на других слоях могут быть заданы те места, в которые могут быть имплантированы дополнительные ионы. Дополнительные слои могут быть заданы как проводящие (например, поликремниевые, металлические или тому подобные) или как обеспечивающие соединение между проводящими слоями. Например, транзистор может быть сформирован в одном из мест, где вентильный слой (поликремниевый или металлический) пересекается с диффузионным слоем, и, в различных случаях, изогнутые полоски могут использоваться для формирования встроенных резисторов. Типичные интегральные схемы могут включать в себя: ASIC, FGPA, и/или структурную ASIC.[00463] Typically, an integrated circuit consists of one or more sets of overlapping layers such that the structure of each layer is determined by photolithography. Some layers may form diffusion layers that mark the locations where various dopants have diffused into the substrate, and other layers may define locations where additional ions can be implanted. Additional layers may be configured to be conductive (eg, polysilicon, metal, or the like) or to provide connections between conductive layers. For example, a transistor may be formed at one of the locations where a gate layer (polysilicon or metal) intersects the diffusion layer, and, in various cases, curved strips may be used to form on-chip resistors. Typical integrated circuits may include: ASIC, FGPA, and/or structured ASIC.
[00464] Интегральные схемы часто изготавливаются в качестве схем общего назначения. Однако, в различных случаях, например, некоторых из описанных в настоящем документе, интегральная схема может быть специализированной, такой как интегральная схема специального назначения, или “ASIC.” Обычно ASIC относится к классу “стандартных ASIC,” то есть интегральных схем, специализированных под конкретное, не универсальное, применение. Обычно ASIC может содержать большое количество логических вентилей, например, в некоторых случаях, более 100 миллионов вентилей, которые могут быть сконфигурированы для выполнения большого числа разных операций, например, сконфигурированы для работы в качестве микропроцессоров и/или блоков памяти, включая ROM, RAM, EEPROM, флэш-память, и других больших конструктивных блоков, таких как те, которые предназначены для выполнения операций описываемых в настоящем документе. Уникальность ASIC состоит в том, что, поскольку она является микросхемой, разработанной для выполнения определенного набора прикладных задач, она может изготавливаться таким способом, чтобы стать специализированной, например, с использованием проектного протокола вентильной матрицы.[00464] Integrated circuits are often manufactured as general purpose circuits. However, in various cases, such as some of those described herein, the integrated circuit may be application-specific, such as an application-specific integrated circuit, or “ASIC.” Typically, an ASIC belongs to the class of “standard ASICs,” that is, integrated circuits specialized for a specific, not universal, application. Typically an ASIC may contain a large number of logic gates, such as in some cases over 100 million gates, which may be configured to perform a large number of different operations, such as configured to act as microprocessors and/or memory units including ROM, RAM, EEPROM, flash memory, and other large building blocks, such as those designed to perform the operations described in this document. What's unique about an ASIC is that because it is a chip designed to perform a specific set of application tasks, it can be manufactured in a way that makes it specialized, such as using a gate array protocol design.
[00465] Так, например, вентильная матрица или нескоммутированная логическая матрица (ULA) могут использоваться при проектировании и производстве интегральных схем специального назначения (ASIC). В таком случае ASIC может производиться из предварительно изготовленной микросхемы, содержащей активные устройства, такие как вентили, например, вентили NAND, которые могут быть не соединены между собой на начальном этапе, но соединяться в последствии, например, в соответствии с проектным протоколом вентильной матрицы, например, с помощью дополнительного металлического слоя, например на производственном предприятии. Таким образом, что касается производства ASIC, вентильная матрица может быть предварительно изготовлена на плате кремниевой микросхемы, которая в результате не имеет конкретной функции, но содержит один или более транзисторов, стандартных логических вентилей NAND или NOR и может содержать в дальнейшем другие активные устройства, расположенные в заданных местах на полупроводниковой пластине, которая в этом случае может называться «базовый кристалл». Таким образом, создание схемы, выполняющей определенные специализированные функции, может завершаться добавлением последнего поверхностного слоя или слоев металлических межсоединений с микросхемами на базовом кристалле на последних стадиях производственного процесса, и соединением элементов, которые обеспечивают требуемую специализированность микросхемы, например, в соответствии с проектным протоколом.[00465] For example, a gate array or unswitched logic array (ULA) can be used in the design and manufacture of application-specific integrated circuits (ASICs). In such a case, the ASIC may be manufactured from a prefabricated chip containing active devices such as gates, such as NAND gates, which may not be interconnected initially, but are subsequently interconnected, for example, according to a gate array design protocol. for example, using an additional metal layer, for example in a manufacturing plant. Thus, with regard to ASIC manufacturing, a gate array may be pre-fabricated on a silicon chip board, which as a result has no specific function, but contains one or more transistors, standard NAND or NOR logic gates, and may further contain other active devices located at specified locations on the semiconductor wafer, which in this case may be called the "base chip". Thus, the creation of a circuit that performs certain specialized functions may be completed by adding a final surface layer or layers of metal interconnects to the chips on the base chip in the final stages of the manufacturing process, and connecting elements that provide the required specialty of the chip, for example, according to a design protocol.
[00466] Более конкретно, проектный протокол вентильной матрицы подразумевает использование метода производства, при котором различные диффузионные слои, например, с транзисторами и другими активными элементами, такими как описанные выше, готовы к использованию и построены на полупроводниковых пластинах общего назначения, и до выполнения этапа металлизации находятся в таком состоянии, что различные из элементов остаются несоединенными. В таком случае, микросхема может быть специализирована в дальнейшем, на некоторой стадии, в соответствии с различными связанными с ее специальным назначением параметрами, например, на стадии физического конструирования, когда определяются межсоединения готового устройства. Так, например, базовые кристаллы вентильной матрицы обычно изготовлены заранее и хранятся на складе в большом количестве в ожидании стадии специализации. Схему, предназначенную для конкретного применения, необходимо собирать на вентильной матрице таким способом, чтобы схема имела достаточное количество вентилей, монтажных соединений и контактов входа-выхода (I/O) для выполнения требуемых функций.[00466] More specifically, the gate array design protocol involves the use of a fabrication method in which various diffusion layers, for example with transistors and other active elements such as those described above, are ready for use and built on general purpose semiconductor wafers, and before performing the step metallizations are in such a state that the various elements remain unconnected. In such a case, the chip may be further specialized at some stage in accordance with various parameters associated with its specific purpose, for example, at the physical design stage, when the interconnections of the finished device are determined. For example, base gate array dies are usually prefabricated and stored in a warehouse in large quantities awaiting the specialization stage. A circuit intended for a specific application must be assembled on a gate array in such a way that the circuit has a sufficient number of gates, wiring connections, and input/output (I/O) pins to perform the required functions.
[00467] Поскольку требования могут варьироваться, пластины вентильных матриц часто выпускаются стандартными сериями, как более габаритных изделий, имеющих, например, больше ресурсов, но являющихся, соответственно, более дорогостоящими, так и сравнительно небольших изделий, имеющих ограниченный выбор ресурсов, но являющихся менее дорогостоящими. Выбор подходящего стандарта полупроводниковой пластины должен быть основан на количестве ресурсов, требуемых для выполнения отобранных функций. Количество ресурсов, которые необходимо будет задействовать, можно сравнительно легко определить, например, подсчетом необходимого количества контактов ввода-вывода, однако, количество проводящих дорожек разводки может варьироваться в некоторых пределах, и, следовательно, должно выбираться с осторожностью. Однако, поскольку базовый кристалл обычно изготовлен заранее, проектирование и изготовление, в соответствии с требованиями конкретного проектного протокола, могут быть выполнены за меньшее время по сравнению со стандартным проектом частичной или полной специализации (FPGA). Также такой подход с использованием вентильных матриц снижает расходы на изготовление шаблонов, так как необходимо изготавливать меньшее количество шаблонов. Дополнительно к этому, время и стоимость выполнения инструментального тестирования также снижены, так как одни и те же контактирующие приспособления могут использоваться для всех изготавливаемых вентильных матриц с одним размером кристалла.[00467] Since requirements may vary, gate array wafers are often produced in standard series, both larger products, which have, for example, more resources, but are correspondingly more expensive, and relatively smaller products, which have a limited choice of resources, but are less expensive. The selection of a suitable wafer standard should be based on the amount of resources required to perform the selected functions. The amount of resources that will need to be deployed can be determined relatively easily, for example by counting the number of I/O pins required, however, the number of wiring paths can vary within some limits, and therefore must be chosen with care. However, since the base die is typically prefabricated, design and manufacturing, as required by a specific design protocol, can be completed in less time than a standard partial or full customization (FPGA) design. Also, this gate array approach reduces template manufacturing costs, since fewer templates need to be manufactured. In addition, the time and cost of performing instrumentation testing is also reduced because the same contact fixtures can be used for all gate arrays manufactured with the same die size.
[00468] В таком случае, одна изготавливаемая стандартная микросхема, например, ASIC, может состоять из любого числа от двух до девяти, или десяти, или двенадцати и более слоев, таких, что при этом один или более, например, всех, идущих один за другим металлических слоев располагаются перпендикулярно находящимся под ними. Такие методы изготовления удобны, потому что позволяют получить микросхему сравнительно специализированной конструкции за относительно небольшое время сборки, поскольку завершающий процесс металлизации может быть выполнен быстро. Однако, такие микросхемы вентильных матриц, например, ASIC, часто не оптимальны, так как при размещении данной конструкции на «имеющейся в наличии» полупроводниковой пластине предоставленные ресурсы обычно не используются на 100%. Другим недостатком ASIC являются затраты на единовременное проектирование (NRE), которые могут составлять до миллионов долларов. Тем не менее затраты в пересчете на единицу продукции могут быть сравнительно низкими для ASIC.[00468] In such a case, one manufactured standard chip, for example, an ASIC, may consist of any number from two to nine, or ten, or twelve or more layers, such that one or more, for example, all going one behind another, metal layers are arranged perpendicular to those underneath. Such fabrication methods are convenient because they produce a relatively specialized chip design in a relatively short assembly time, since the final metallization process can be performed quickly. However, such gate array chips, such as ASICs, are often suboptimal because when the design is placed on an “off-the-shelf” semiconductor wafer, the provided resources are typically not 100% utilized. Another disadvantage of ASICs is non-recurring engineering costs (NRE), which can run up to millions of dollars. However, unit costs can be relatively low for ASICs.
[00469] Альтернативой стандартной ASIC при изготовлении специализированных микросхем является программируемая пользователем вентильная матрица или “FPGA”. В FPGA используется перезаписываемые программируемые логические блоки и межсоединения, которые позволяют спроектировать или, как минимум, частично перепроектировать FPGA для использования в разных прикладных задачах или в одной прикладной задаче, но решаемой большим количеством разных способов в разные моменты времени. Более конкретно, программируемая пользователем вентильная матрица является интегральной схемой, которая спроектирована так, чтобы ее конфигурация была настраиваемой один или много раз, например, заказчиком или проектировщиком, например, после изготовления.[00469] An alternative to a standard ASIC for custom chip manufacturing is a field programmable gate array, or “FPGA.” FPGAs use rewritable programmable logic blocks and interconnects that allow the FPGA to be designed or at least partially redesigned for use in different application problems or in the same application problem, but solved in many different ways at different points in time. More specifically, a field programmable gate array is an integrated circuit that is designed to be configured one or more times, for example by the customer or designer, for example, after manufacture.
[00470] Обычно FPGA имеют большое количество ресурсов в виде логических вентилей и/или блоков памяти, например, RAM, блоков, которые могут быть сконфигурированы для реализации сложных цифровых вычислений. Например, FPGA содержат как программируемые логические компоненты, именуемые «логические блоки», так и большое количество, например, иерархическую структуру, межсоединений с перенастраиваемой конфигурацией, которые позволяют указанным блокам быть в "смонтированном" состоянии. Более конкретно, FGPA могут содержать большое количество изменяемых логических вентилей, которые могут быть смонтированы в разнообразных конфигурациях, образуя, таким образом, логические блоки, которые могут быть сконфигурированы для выполнения широкого диапазона сложных комбинационных функций, таких как те, что имеют отношение к операциям, подробно изложенным в настоящем документе. В различных случаях, логические блоки FPGA могут быть сконфигурированы так, чтобы включать в себя элементы памяти, например, такие простые, как триггеры, или более полноценные блоки памяти как ROM или RAM. Поскольку в FPGA используются очень быстрые I/O и двунаправленные шины данных, проверка подлинности отсчетов временных интервалов действительных данных и времени удержания может быть, в некоторых случаях, затруднена. Таким образом, в некоторых случаях, при надлежащем поуровневом планировании размещения элементов может допускаться выделение ресурсов на FPGA для того, чтобы учесть ограничения, связанные с контролем времени. FPGA, следовательно, может использоваться для реализации любой логической функции, которую может выполнять ASIC. Однако, возможности обновления и корректировки функциональности после доставки, частичной перенастройки конфигурации части структуры, и низкие затраты на единовременное проектирование по отношению к ASIC (несмотря на более высокую стоимость в пересчете на единицу продукции), определяют ее преимущества для многих прикладных задач.[00470] Typically, FPGAs have a large number of resources in the form of logic gates and/or memory blocks, such as RAM, blocks that can be configured to implement complex digital calculations. For example, FPGAs contain both programmable logic components, called “logic blocks,” and a large number, such as a hierarchical structure, of reconfigurable interconnects that allow these blocks to be in a “wired” state. More specifically, FGPAs can contain a large number of variable logic gates that can be arranged in a variety of configurations, thereby forming logic blocks that can be configured to perform a wide range of complex combinational functions, such as those related to operations, detailed in this document. In various cases, FPGA logic blocks can be configured to include memory elements, such as something as simple as flip-flops, or more complete memory blocks like ROM or RAM. Because FPGAs use very fast I/O and bidirectional data buses, validating valid data timing samples and hold times can be difficult in some cases. Thus, in some cases, proper layering may allow resources to be allocated to the FPGA to accommodate timing constraints. An FPGA can therefore be used to implement any logic function that an ASIC can perform. However, the ability to update and adjust functionality after delivery, partially reconfigure part of the structure, and low one-time design costs in relation to ASIC (despite the higher cost per unit of production), determine its advantages for many applications.
[00471] В некоторых случаях, при изготовлении типичной FPGA применяется подход крупномодульной архитектуры таким образом, чтобы объединить логические блоки и межсоединения традиционной FPGA со встроенными микропроцессорами и относящимися к ним периферическими устройствами для создания полноценной «системы на программируемой микросхеме». В некоторых случаях, FPGA, описываемые в настоящем изобретении, могут быть перепрограммированы "во время работы" что, в соответствии с методами, изложенными в настоящем документе, может делать возможным выполнение вычислений с перенастраиваемой конфигурацией или создание систем с перенастраиваемой конфигурацией, например, ЦП, который может перенастроить собственную конфигурацию, чтобы стать совместимым с операциями, описанными в настоящем документе. В некоторых случаях могут использоваться микропроцессоры с конфигурируемым программным обеспечением для формирования матрицы ядер процессоров и FPGA-подобных программируемых ядер, которые могут находиться на одной микросхеме.[00471] In some cases, the fabrication of a typical FPGA uses a coarse-grained architecture approach to combine the logic blocks and interconnects of a traditional FPGA with embedded microprocessors and associated peripheral devices to create a complete "system on a programmable chip". In some cases, the FPGAs described in the present invention may be reprogrammable "at run time" which, in accordance with the methods set forth herein, may enable reconfigurable computations or the creation of reconfigurable systems, such as CPUs, which can reconfigure itself to become compatible with the operations described in this document. In some cases, microprocessors with configurable software may be used to form a matrix of processor cores and FPGA-like programmable cores that may reside on a single chip.
[00472] Обыкновенная архитектура FPGA может включать в себя матрицу конфигурируемых логических блоков, контактные площадки ввода-вывода, и/или один или более трассировочных каналов. Обычно логический блок может включать в себя одну или множество логических ячеек, и при этом типичная ячейка может содержать таблицу перекодировки (lookup table, LUT) с четырьмя входами, сумматор с тремя входами (full adder, FA), и/или триггер, и нечто подобное, функционирующее для формирования выходного сигнала. В различных случаях, выход может быть или синхронным или асинхронным. Прикладная схема может быть реализована в FPGA, и количество логических блоков, I/O, и проводящих дорожек разводки, которое необходимо включить в схему и которое может варьироваться, может быть определено в соответствии с проектной документацией. Необходимо отметить, что поскольку неиспользуемые дорожки могут увеличивать стоимость и снижать производительность интегральной схемы, не принося никакой выгоды, количество проводящих дорожек разводки должно быть достаточным, то есть, подобранным для обеспечения разводки таблиц перекодировки (LUT) и I/O, но не быть в избытке. Далее, так как сигналы синхронизации обычно проходят по специально выделенной маршрутизируемой сети (например, глобальному буферу), такие сигналы могут управляться отдельно.[00472] A typical FPGA architecture may include an array of configurable logic blocks, I/O pads, and/or one or more trace channels. Typically, a logic block may include one or many logic cells, and a typical cell may contain a four-input lookup table (LUT), a three-input full adder (FA), and/or a flip-flop, and something else. similar, functioning to generate an output signal. In various cases, the output can be either synchronous or asynchronous. The application circuit may be implemented in an FPGA, and the number of logic blocks, I/O, and wiring traces that must be included in the circuit, which may vary, can be determined according to the design documentation. It should be noted that since unused traces can add cost and reduce the performance of an integrated circuit without providing any benefit, the number of conductive traces must be sufficient, that is, selected to support the layout of lookup tables (LUTs) and I/O, but not in excess. Further, since synchronization signals typically travel over a dedicated routed network (eg, a global buffer), such signals can be managed separately.
[00473] FPGA, описываемый в настоящем документе, может также содержать элементы, обеспечивающие функциональность более высокого уровня, реализованную на схеме, такие как один или более умножителей, блоки плат цифровой обработки сигналов (DSP) общего типа, встроенные процессоры, высокоскоростные логические элементы I/O, и/или встроенные блоки памяти. Включение в состав этих функций общего типа, встроенных в полупроводниковую пластину, уменьшает требуемую площадь и обеспечивает повышенную скорость выполнения таких функций. Необходимо отметить, что описываемые FPGA могут использоваться для проверки работоспособности систем, в том числе, на стадиях до и после завершения изготовления и стадии разработки встроенной программы, например, для проверки работоспособности итоговой конструкции перед производством «в использование» микросхем, таких как стандартная ASIC или структурная ASIC, которые могут представлять собой итоговый продукт.[00473] The FPGA described herein may also contain elements that provide higher-level functionality implemented in the circuit, such as one or more multipliers, generic digital signal processing (DSP) card assemblies, embedded processors, high-speed gates I /O, and/or built-in memory blocks. Including these generic functions embedded on a wafer reduces the required area and allows for increased speed of execution of such functions. It should be noted that the described FPGAs can be used to verify the performance of systems, including at the pre- and post-manufacturing stages and the firmware development stage, for example, to verify the functionality of the final design before production of chips such as a standard ASIC or structural ASIC, which may represent the final product.
[00474] При производстве типовой интегральной схемы, такой как FPGA или т.п., имеющей заданную функциональность, описанную в настоящем документе, может выполняться один или более из числа следующих этапов, в любой логической последовательности. На первом этапе могут быть использованы язык описания аппаратных средств (HDL) или схемотехническое проектирование. Далее, система автоматизированного проектирования, например, CAD, может быть задействована для создания технологического списка соединений. Список соединений затем может быть вписан непосредственно в архитектуру FPGA, например, с помощью процесса «размещения и разводки», с использованием соответствующего программного обеспечения для размещения компонентов и трассировки соединений. После завершения проектирования и проверки работоспособности сгенерированный файл в двоичной форме может использоваться для настройки/перенастройки конфигурации FPGA.[00474] When manufacturing a generic integrated circuit, such as an FPGA or the like, having the desired functionality described herein, one or more of the following steps may be performed in any logical sequence. The first step may be hardware description language (HDL) or circuit design. Next, a computer-aided design system, such as CAD, can be used to create the process netlist. The netlist can then be written directly into the FPGA architecture, for example through a "place and route" process, using appropriate software to place components and route connections. Once the design and functionality are completed, the generated binary file can be used to configure/reconfigure the FPGA.
[00475] При реализации типичного проектного протокола, может выполняться моделирование работоспособности конструкции на различных этапах проектирования. Сначала описание логики регистровых передач, RTL, такое как VHDL или Verilog, может моделироваться с помощью создания испытательных стендов для моделирования системы и наблюдением за результатами. В некоторых случаях, устройство синтезирования может преобразовывать предполагаемый дизайн в список соединений, и после того, как устройство синтезирования закончит преобразование предполагаемого дизайна в список соединений, список соединений может быть переведен в форму описания уровня вентилей. На этой стадии моделирование может быть выполнено, например, еще раз, для того, чтобы убедиться, что синтез прошел без ошибок. После этого проект переходит в стадию размещения в FPGA, на которой могут добавляться задержки на прохождение сигнала, и моделирование может быть выполнено, например, еще раз, с добавлением этих данных в список соединений, например, перед итоговой проверкой работоспособности и дальнейшим изготовлением, например, одной или более ASIC или структурных ASIC микросхем.[00475] In a typical design protocol, design performance simulations may be performed at various design stages. First, the description of the register transfer logic, RTL, such as VHDL or Verilog, can be simulated by creating test benches to simulate the system and observing the results. In some cases, the synthesizer may convert the intended design into a netlist, and after the synthesizer has finished converting the intended design into a netlist, the netlist may be translated into gate-level description form. At this stage, the simulation can be performed, for example, again, in order to ensure that the synthesis was carried out without errors. The design then enters the FPGA placement stage, where signal propagation delays can be added and the simulation can be run, for example, again, with this data added to the netlist, for example, before final performance testing and further manufacturing, e.g. one or more ASICs or structured ASIC chips.
[00476] Таким образом, структурная ASIC является комбинацией ASIC и FPGA, то есть, находится между FPGA и ASIC. Традиционная «стандартная ASIC», описанная выше, обычно является дорогостоящей, и требует значительных временных затрат на разработку. Так, например, при разработке стандартной ASIC может потребоваться изготовление большого количества фотолитографических шаблонов, для каждой конструкции стандартной ASIC в отдельности. Однако, после этих первоначальных вложений в разработку типичные затраты на производство становятся очень низкими, а рабочие параметры, имеющие отношение к мощности, частоте и производительности, могут быть легко оптимизированы.[00476] Thus, a structured ASIC is a combination of an ASIC and an FPGA, that is, it is between an FPGA and an ASIC. The traditional "standard ASIC" described above is usually expensive and requires significant development time. For example, when developing a standard ASIC, it may be necessary to produce a large number of photolithographic templates for each standard ASIC design separately. However, after this initial development investment, typical production costs become very low and operating parameters related to power, frequency and performance can be easily optimized.
[00477] В отличие от стандартных ASIC, разработка типичных FPGA и/или CLPD, содержащих программируемые логические блоки, относительно не дорогая и быстрая, главным образом, потому что существующие устройства являются электронно программируемыми, и фотолитографические шаблоны не требуются. Однако, что касается рабочих параметров, имеющих отношение к мощности, частоте и производительности, такие устройства значительно уступают стандартным ASIC, и их стоимость в пересчете на единицу продукции может быть очень высокой, особенно для устройств с высокой производительностью.[00477] Unlike standard ASICs, typical FPGAs and/or CLPDs containing programmable logic blocks are relatively inexpensive and fast to develop, primarily because existing devices are electronically programmable and photolithographic patterns are not required. However, in terms of performance parameters related to power, frequency and performance, such devices are significantly inferior to standard ASICs, and their unit costs can be very high, especially for high-performance devices.
[00478] Структурная ASIC, с другой стороны, является компромиссом между двумя упомянутыми выше устройствами. В отличие от вентильнаых матриц, структурные ASIC, как правило, содержат готовые конфигурируемые блоки памяти и/или аналоговые блоки. Таким образом, стоимость их разработки значительно ниже по сравнению со стандартными ASIC, так как необходимо изготавливать только несколько фотолитографических шаблонов для каждой конструкции структурной ASIC в отдельности, например, для конфигурируемых металлических слоев. И, несмотря на то, что стоимость в пересчете на единицу продукции значительно выше, чем для стандартных ASIC, она, тем не менее, существенно ниже, чем для FPGA. Что касается мощности и частоты, структурная ASIC занимает промежуточное положение между стандартными ASIC и FPGA, однако, по производительности она близка к самым крупным FPGA. Таким образом, во многих случаях, структурная ASIC может являться технологическим решением, которое уменьшает первоначальные затраты и время на разработку новой специализированной интегральной схемы.[00478] A structured ASIC, on the other hand, is a compromise between the two devices mentioned above. Unlike gate arrays, structured ASICs typically contain ready-made configurable memory and/or analog blocks. Thus, their development cost is significantly lower compared to standard ASICs, since only a few photolithographic templates need to be produced for each individual structural ASIC design, such as configurable metal layers. And, despite the fact that the cost per unit is significantly higher than for standard ASICs, it is nevertheless significantly lower than for FPGAs. In terms of power and frequency, the structured ASIC occupies an intermediate position between standard ASICs and FPGAs, however, in terms of performance it is close to the largest FPGAs. Thus, in many cases, a structured ASIC can be a technology solution that reduces the initial cost and time required to develop a new application specific integrated circuit.
[00479] Что касается проектирования и изготовления структурной ASIC, до того, как начнется серийная разработка структурных ASIC, «базовый кристалл» может быть разработан, например, с использованием методологии стандартной ASIC. Как указано выше, базовый кристалл может включать в себя типовые слои интегральных схем, такие как один или более транзисторов, блоков или ячеек памяти, ячеек входа/выхода, схем фазовой автоподстройки или других тактовых генераторов, или тому подобных. При необходимости базовый кристалл может содержать триггеры, релейные элементы с фиксацией воздействия, и/или мульти-транзисторные комбинационные вентили. Базовый кристалл может содержать некоторое количество монтажных соединений между компонентами, но необязательно полный их набор, реализующий полноценную логическую схему, поскольку соединения могут быть добавлены впоследствии. Отметим, что базовый кристалл может теоретически быть сконструирован таким образом, чтобы включать в себя стандартные ASIC, потенциально содержащие большие сложные модули, и рабочие параметры (мощность, частота, производительность) базового кристалла могут быть оптимальными, такими же, как и для стандартных ASIC. Фотолитографические шаблоны могут изготавливаться для содержимого базового кристалла, при этом количество шаблонов будет примерно таким же или меньше, как в случае стандартной ASIC. Таким образом, базовый кристалл включает в себя набор цифровых логических схем, которые могут быть соединены или еще не соединены на постоянной основе для определенного функционирования устройства.[00479] With respect to structural ASIC design and fabrication, before volume development of structural ASICs begins, a "base die" may be designed, for example, using standard ASIC methodology. As stated above, the base die may include typical integrated circuit layers, such as one or more transistors, memory blocks or cells, input/output cells, phase-locked loops or other clock oscillators, or the like. If necessary, the base chip may contain flip-flops, latching relay elements, and/or multi-transistor combinational gates. The base die may contain a number of wiring connections between components, but not necessarily a complete set of them to implement a complete logic circuit, since connections can be added later. Note that the base die could theoretically be designed to include standard ASICs, potentially containing large complex modules, and the operating parameters (power, frequency, performance) of the base die could be optimized to be the same as for standard ASICs. Photolithographic templates can be produced for the contents of the base die, with the number of templates being approximately the same or less than with a standard ASIC. Thus, the base die includes a set of digital logic circuits that may or may not be permanently connected for a specific device function.
[00480] После того, как базовый кристал сконструирован, может быть изготовлена серия из одного или более структурных ASIC, например, построена на одном и том же базовом кристалле. Обычно при конструировании нескольких структурных ASIC используются ресурсы одного базового кристалла для амортизации стоимости базового кристалла при выполнении нескольких проектов. Каждая отдельная конструкция структурной ASIC может быть реализована набором новых монтажных соединений между компонентами (транзисторами и т.п.) в базовом кристалле, которые обеспечат построение вентилей более высокого уровня, триггеров, релейных элементов с фиксацией воздействия, блоков памяти, крупных логических модулей. Соответственно, определенные таким образом монтажные соединения могут быть реализованы при помощи меньшего числа дополнительных «конфигурируемых» металлических слоев 904A и 904B построенных на базовом кристалле, например, соединением контактных площадок или через базовый кристалл, например, с помощью монтажных соединений на конфигурируемых металлических слоях. Такие дополнительные металлические слои называют слоями “ конфигурируемыми”, потому что их можно специализировать под любую проектную конструкцию ASIC; однако, они фиксируются в процессе изготовления и не могут быть перемонтированы физически, а только с использованием реализованной в устройстве логической схемы. Количество конфигурируемых металлических слоев может быть любым.[00480] Once the base die is designed, a series of one or more structured ASICs can be manufactured, for example, built on the same base die. Typically, designing multiple fabric ASICs uses the resources of a single base die to amortize the cost of the base die across multiple designs. Each individual structural ASIC design can be implemented by a set of new wiring connections between components (transistors, etc.) in the base chip, which will provide the construction of higher-level gates, flip-flops, latching relay elements, memory blocks, and large logic modules. Accordingly, the wiring connections thus defined can be implemented using a smaller number of additional "configurable" metal layers 904A and 904B built on the base die, for example, by connecting pads or across the base die, for example, using wiring connections on the configurable metal layers. These additional metal layers are called “configurable” layers because they can be specialized for any ASIC design; however, they are fixed during manufacturing and cannot be physically rewired, but only using the logic circuit implemented in the device. The number of configurable metal layers can be any.
[00481] Большинство из предполагаемых логических схем может быть, таким образом, реализовано с использованием базового кристалла и надлежащих монтажных соединений металлических слоев, поскольку базовый кристалл содержит достаточное количество логических ресурсов (транзисторов, блоков памяти и т.п.) для формирования всех необходимых элементов логической схемы. Количество конфигурируемых металлических слоев может меняться от одного проекта структурной ASIC к другому, но обычно может составлять приблизительно от 1 до 5 конфигурируемых слоев. Небольшое количество фотолитографических шаблонов может быть изготовлено в зависимости от числа конфигурируемых металлических слоев, и во время изготовления устройства полный набор шаблонов (шаблоны базового кристалла и шаблоны конфигурируемых металлических слоев) может использоваться для изготовления полупроводниковых пластин готового кристалла структурной ASIC. В других случаях, полупроводниковые пластины базовых кристаллов могли бы быть изготовлены заранее серийно, а металлические слои добавлены на готовые полупроводниковые пластины специализированных конструкций структурных ASIC на поздних стадиях изготовления.[00481] Most of the envisioned logic circuits can thus be implemented using a base die and proper wiring connections of the metal layers, since the base die contains sufficient logic resources (transistors, memories, etc.) to form all the necessary elements logic circuit. The number of configurable metal layers may vary from one structural ASIC design to another, but can typically range from approximately 1 to 5 configurable layers. A small number of photolithographic templates can be produced depending on the number of configurable metal layers, and during device fabrication, the complete set of templates (base die templates and configurable metal layer templates) can be used to fabricate the semiconductor wafers of the finished ASIC die. In other cases, the base die wafers could be mass-fabricated in advance and the metal layers added to the finished wafers of specialized structural ASIC designs at a later stage of fabrication.
[00482] Предпочтительным является проектирование базового кристалла структурной ASIC в один этап, например, первым проектировщиком, тогда как логические схемы структурных ASIC, построенных на этом базовом кристалле, могут проектироваться на втором этапе, например, разными проектировщиками, использующими результаты работы проектировщика структурных ASIC. В частности, различные исполнители обычно могут быть ответственны за «клиентскую часть» логической схемы, специализированной под требуемую функциональность интегральной схемы, например, RTL (логику регистровых передач), разработку кода, моделирование работоспособности, эмуляцию, регрессионное тестирование, отладку и тому подобное; тогда как проектировщик структурной ASIC может быть ответственным за проектирование «скрытой от пользователя части», в том числе синтезирование, размещение и прокладку межсоединений, анализ статических рисков сбоя, встраивание тестовой логики, и/или передачу в производство. Дополнительно может быть задействовано, например, микроэлектронное производство, для изготовления фотолитографических шаблонов и пластин, и/или тестирования и/или упаковки устройств. В различных случаях, проектировщик структурной ASIC может также проектировать специализированные базовые кристаллы для определенного класса прикладных задач, например, содержащих логические ресурсы, тип и количество которых специализированы для таких прикладных задач.[00482] Preferably, the structural ASIC base die is designed in one step, for example by a first designer, while the logic circuits of the structural ASICs built on that base die can be designed in a second step, for example, by different designers using the work of the structure ASIC designer. In particular, various workers may typically be responsible for the "client side" of the logic circuit, specialized for the required functionality of the integrated circuit, for example, RTL (register transfer logic), code development, performance modeling, emulation, regression testing, debugging, and the like; whereas the structural ASIC designer may be responsible for the design of the “behind the scenes”, including synthesis, placement and routing of interconnects, analysis of static failure risks, embedding test logic, and/or handover to production. Additionally, microelectronic manufacturing may be involved, for example, to produce photolithographic templates and wafers, and/or test and/or package devices. In various cases, the structural ASIC designer may also design specialized base dies for a particular class of application, such as those containing logic resources of the type and quantity specialized for that application.
[00483] Таким образом, благодаря наличию готовых металлических слоев (что уменьшает время производства) и определенным заранее характеристикам того, что находится на полупроводниковой пластине, например, базовый кристалл (что уменьшает время проектирования), циклы проектирования и полного изготовления могут быть завершены за меньшее время в случае структурной ASIC по сравнению с производством обычной ASIC. Например, при проектировании стандартной ASIC или FPGA, например, матрицы вентилей, пользователю зачастую может быть необходимым проектировать структуры питания, тактовые и тестовые структуры самостоятельно. Однако в случае структурной ASIC они могут быть готовы к использованию, что может позволить сократить время производства и расходы по сравнению со стандартными ASIC и матрицами вентилей.[00483] Thus, by having prefabricated metal layers (which reduces manufacturing time) and predefined characteristics of what is on the wafer, such as the base die (which reduces design time), design and full manufacturing cycles can be completed in less time time in case of structured ASIC compared to conventional ASIC production. For example, when designing a standard ASIC or FPGA, such as a gate array, the user may often need to design the power, clock, and test structures themselves. However, in the case of structured ASICs, they can be off-the-shelf, which can reduce production time and costs compared to standard ASICs and gate arrays.
[00484] В частности, задача проектирования структурных ASIC состоит в размещении схемы в фиксированной расстановке заданных ячеек. Более конкретно, стравнительная архитектура структурной ASIC может обычно включать в себя два главных уровня, таких как уровень структурных элементов и уровень матрицы структурных элементов. Такие структурные элементы могут включать в себя и комбинационные и последовательные функциональные блоки, которые могут функционировать или как логические элементы или элементы хранения. Дополнительно, что касается матриц структурных элементов, однородные или неоднородные стили матриц могут использоваться, например, в фиксированной расстановке структурных элементов.[00484] In particular, the design challenge for structural ASICs is to place the circuitry in a fixed arrangement of given cells. More specifically, a comparative structure ASIC architecture may generally include two main layers, such as a structure element level and a structure element matrix level. Such building blocks may include both combinational and sequential functional blocks, which can function as either logic or storage elements. Additionally, with respect to structure element matrices, uniform or heterogeneous matrix styles may be used, for example, in a fixed arrangement of structure elements.
[00485] Вследствие этого при проектировании структурной ASIC логические шаблонные слои могут быть определены заранее. В таком случае конструктивные изменения и специализация могут выполняться, например, с помощью создания специализированных металлических слоев, которые создают специализированные соединения между определенными заранее логическими элементами более низкого уровня. Также инструменты проектирования структурных ASIC могут быть значительно ниже по стоимости и проще (быстрее) в использовании, чем инструменты для проектирования стандартных ячеек, поскольку отсутствует необходимость выполнять все те функции, которые выполняются с помощью инструментов проектирования стандартных ячеек. Более конкретно, при проектировании могут использоваться существующие CAD для стандартных ячеек. В некоторых случаях, однако, могут использоваться CAD, специально разработанные для структурных ASIC. Могут также использоваться специализированные монтажные инструменты. Далее, как описывается в настоящем документе, разработаны новые и улучшенные алгоритмы, использующие модульный принцип организации структурных ASIC, с улучшенным контролем времени. Дополнительно, методы, описываемые в настоящем документе, могут быть задействованы для совершенствования процессов количественного определения и анализа, как отмечалось выше.[00485] As a result, when designing a structural ASIC, the logical template layers can be defined in advance. In such a case, design modifications and specialization can be accomplished, for example, by creating specialized metal layers that create specialized connections between predefined lower-level logic elements. Also, structural ASIC design tools can be significantly lower in cost and easier (faster) to use than standard cell design tools, since it is not necessary to perform all the functions that are performed using standard cell design tools. More specifically, existing CAD for standard cells can be used in the design. In some cases, however, CADs specifically designed for structural ASICs may be used. Specialized installation tools may also be used. Further, as described in this document, new and improved algorithms have been developed using the modular design of structural ASICs with improved timing control. Additionally, the methods described herein can be used to improve quantification and analysis processes, as noted above.
[00486] Таким образом, структурная ASIC может являться промежуточным технологическим звеном между конструкциями программируемой пользователем вентильной матрицы и стандартной ASIC. Более конкретно, поскольку требуется только небольшое количество специализированных слоев микросхемы, затраты на единовременное проектирование (NRE) могут быть значительно ниже, чем для микросхем со «стандартными ячейками» или «полностью специализированных» микросхем, когда требуется изготавливать полный набор шаблонов для каждой конструкции. Таким образом, структурная ASIC обеспечивает высокую производительность (такую же, как в случае типичной ASIC) при низких затратах на NRE (такие же, как и в случае FPGA). Таким образом, процесс изготовления структурной ASIC обеспечивает быстрый вывод на рынок продукта, который сравнительно легко разработать, и обладающего сниженной стоимостью.[00486] Thus, a structured ASIC may be a technology intermediate between field programmable gate array designs and standard ASICs. More specifically, because only a small number of specialized chip layers are required, one-time design costs (NRE) can be significantly lower than for "standard cell" chips or "fully customized" chips, where a full set of patterns must be fabricated for each design. Thus, a structured ASIC provides high performance (same as a typical ASIC) at a low NRE cost (same as an FPGA). Thus, the structured ASIC manufacturing process provides a fast-to-market product that is relatively easy to develop and has a reduced cost.
[00487] В некоторых случаях, однако, предпочтительно использовать FPGA, в котором межсоединения и логические блоки являются программируемыми после изготовления. Это обеспечивает большую адаптивность конструкции и легкость отладки при прототипировании. Однако, возможности построения больших схем, по размеру и скорости, на FPGA зачастую ограничены, что в некоторых случаях связано с присущими ей сложностью программируемой прокладки межсоединений и/или значительным объемом пространства, занимаемым различными включенными в нее программными элементами. С другой стороны, ASIC имеют ряд недостатков, например, дорогостоящий процесс разработки, связанный, в частности, с тем, что для каждой новой конструкции обычно требуется полный набор новых шаблонов. Структурная ASIC, следовательно, может быть оптимальным решением при выборе между двумя упомянутыми выше конструкциями. Она может иметь в своей основе структуру, такую же, как и FPGA, но быть программируемой по шаблону, как ASIC, вместо программируемости пользователем, посредством настроек конфигурации слоев в сквозных отверстиях между металлическими слоями. Например, один или более, например, каждый бит конфигурации статической оперативной памяти (SRAM) может быть заменен включением или не включением в конфигурацию сквозного или межгруппового металлического контакта.[00487] In some cases, however, it is preferable to use an FPGA in which the interconnects and logic blocks are programmable after manufacturing. This provides greater design adaptability and ease of debugging during prototyping. However, the ability to build large circuits in size and speed on an FPGA is often limited, in some cases due to the inherent complexity of programmable interconnect routing and/or the significant amount of space occupied by the various software elements included within it. On the other hand, ASICs have a number of disadvantages, such as an expensive development process, due in part to the fact that each new design usually requires a complete set of new templates. A structured ASIC may therefore be the optimal solution when choosing between the two designs mentioned above. It may have the same basic structure as an FPGA, but be pattern programmable like an ASIC instead of user programmable by adjusting the configuration of the layers in the through holes between the metal layers. For example, one or more, for example, each static random access memory (SRAM) configuration bit may be replaced by whether or not the configuration includes an end-to-end or inter-group metal contact.
[00488] Например, что касается архитектуры структурной ASIC, типичная архитектура часто может быть мелкоструктурной, среднеструктурной и/или иерархической. Мелкоструктурная архитектура может включать в себя большое число соединений на входе и выходе структурного элемента, в то время как структуры более крупного размера имеют меньше соединений со структурным элементом, и могут ухудшать поддерживаемую им фунциональность. Каждая отдельная конструкция будет иметь свой набор преимуществ в зависимости от ее структурных особенностей. Более конкретно, мелкоструктурная архитектура может включать в себя структурные элементы, содержащие разрозненные несоединенные компоненты, такие как транзисторы, резисторы и другие элементы управления, которые могут быть соединены впоследствии. Среднеструктурная архитектура элементов может включать в себя как типовую логику, так и вентили, MUX, LUT и/или элементы хранения, такие как триггеры. В противоположность этому, иерархическая архитектура может включать в себя мини-структурные элементы, которые, например, включают в себя вентили, MUX и LUT, но обычно не включают в себя типичные элементы хранения, такие как триггеры. В других случаях мини-элемент может быть объединен с регистрами или триггерами.[00488] For example, with respect to structured ASIC architecture, a typical architecture can often be fine-grained, medium-grained, and/or hierarchical. A fine-grained architecture may include a large number of connections at the input and output of a structural element, while larger structures have fewer connections to the structural element, and may degrade the functionality it supports. Each individual design will have its own set of advantages depending on its structural features. More specifically, a fine-grained architecture may include structural elements containing disparate, unconnected components, such as transistors, resistors, and other control elements, that can be subsequently connected. The middle-structure element architecture can include both generic logic and gates, MUXs, LUTs, and/or storage elements such as flip-flops. In contrast, a hierarchical architecture may include mini-structural elements that, for example, include gates, MUXes, and LUTs, but typically do not include typical storage elements such as flip-flops. In other cases, a mini-element may be combined with registers or flip-flops.
[00489] Что касается реализации структурной ASIC, различные этапы производства могут включать в себя один или более этапов проектирования логики регистровых передач (RTL); логический синтез для переноса RTL на структурные элементы; встраивание тестовых функций для улучшенной тестируемости и обнаружения неисправностей; монтаж для переноса каждого структурного элемента на матричный элемент и размещения каждого из элементов в фиксированном порядке; физический синтез для улучшенного отсчета временных интервалов на схеме и оптимизированного размещения каждого из элементов; синтез тактовой синхронизации для распределения сети тактовой синхронизации и минимизации искажений и задержек тактовой синхронизации; прокладка межсоединений или, по-другому, установка монтажных соединений между различными элементами. В различных случаях такие этапы могут выполняться в различном логическом порядке, таким образом, чтобы сделать процесс проектирования, например относящийся к логическому синтезу, менее сложным, а также собрать более полную готовую библиотеку структурной ASIC, которая содержит расширенное представление о том, что конкретно может быть реализовано в соответствии с проектом.[00489] In terms of implementing a structural ASIC, various manufacturing steps may include one or more register transfer logic (RTL) design steps; logic synthesis for transferring RTL to structural elements; embedding test functions for improved testability and fault detection; installation for transferring each structural element to the matrix element and placing each of the elements in a fixed order; physical synthesis for improved timing of time intervals on the circuit and optimized placement of each element; Clock synchronization synthesis to distribute the clock synchronization network and minimize clock distortion and delays; laying interconnections or, in other words, installing wiring connections between various elements. In different cases, such steps may be performed in a different logical order, so as to make the design process, such as that related to logic synthesis, less complex, and also to assemble a more complete ready-made library of structured ASICs that contains an expanded view of what exactly can be implemented in accordance with the project.
[00490] Более того, обычной практикой при разработке ядер процессоров является лицензирование проектной конструкции процессора при его встраивании различными пользователями в их собственные полупроводниковые устройства. Список таких встроенных ядер может включать в себя процессоры общего назначения, такие как ARM, PowerPC, Krait и т.д., и также более специализированные процессоры, такие как графические процессоры (GPU) или векторные процессоры. Ядра встроенных процессоров могут быть большими, сложными конвейерными логическими модулями, работающими на высоких рабочих частотах, например, от 1 или 2 ГГц до примерно 3 или 6 ГГц или выше. Для достижения таких высоких частот работы ядер процессоров и связанной с ним буферной памяти требуются точные физическое размещение элементов и прокладка межсоединений, и, как результат, технология встроенных процессоров может зачастую сопровождаться «аппаратным макросом» (например, для определения точного размещения и прокладки межсоединений субкомпонентов), предназначенным для конкретного процесса изготовления.[00490] Moreover, a common practice in the development of processor cores is to license the design of the processor as it is built by various users into their own semiconductor devices. The list of such embedded cores may include general purpose processors such as ARM, PowerPC, Krait, etc., as well as more specialized processors such as graphics processing units (GPUs) or vector processors. Embedded processor cores can be large, complex pipelined logic units operating at high operating frequencies, such as 1 or 2 GHz to about 3 or 6 GHz or higher. Achieving such high frequencies of processor cores and associated memory buffers requires precise physical placement and interconnect routing, and as a result, embedded processor technology can often be accompanied by a "hardware macro" (for example, to determine the precise placement and interconnect routing of subcomponents) , designed for a specific manufacturing process.
[00491] Однако такое встроенное ядро процессора может быть недостаточно оптимальным при реализации структурной ASIC с использованием конфигурируемых металлических слоев. Аппаратные макросы обычно не применяются для конфигурируемых структурных ASIC, и даже если бы встроенный процессор был реализован, насколько это возможно, в соответствии с его аппаратным макросом в конфигурируемых металлических слоях, он бы, скорее всего, был ограниченным по частоте (например, 30% or 50% от номинальной рабочей частоты), и, скорее всего, потреблял очень большие объемы доступных ресурсов базового кристалла. Относительно малая площадь структурной ASIC по сравнению со стандартной ячейкой могла бы привести к тому, что встроенный процессор занял бы существенно большую физически доступную площадь на кремниевом кристалле, и, в комбинации с пониженной рабочей частотой, производительность в пересчете на единицу площади (или стоимость) могла быть ниже, чем при конструировании стандартной ячейки с тем же встроенным ядром.[00491] However, such an embedded processor core may not be optimal when implementing a structural ASIC using configurable metal layers. Hardware macros are not typically used for configurable fabric ASICs, and even if an embedded processor were implemented as closely as possible to match its hardware macros in configurable metal layers, it would likely be frequency limited (e.g. 30% or 50% of the nominal operating frequency), and most likely consumed very large amounts of the available resources of the base crystal. The relatively small area of a fabricated ASIC compared to a standard cell could result in an embedded processor occupying significantly more physically available area on the silicon die, and, in combination with the reduced operating frequency, the performance per unit area (or cost) could be lower than when constructing a standard cell with the same embedded core.
[00492] Тем не менее, внедрение одного или более ядер процессоров в базовый кристалл структурной ASIC является целесообразным, например, с использованием методологии конструирования стандартной ячейки, описанной в настоящем документе, включающей в себя использование аппаратного макроса. Это позволило бы сохранить рабочую частоту, полную производительность и нормальную занимаемую площадь. Ядро процессора и/или монтажные соединения входа и выхода буферной памяти могли бы быть соединены с другими ресурсами базового кристалла или, что предпочтительно, вмонтированы в разводку конфигурируемого металлического слоя, что позволило бы соединить встроенные ядра с любыми инфраструктурными и логическими модулями, реализованными в каждой конкретной конструкции структурной ASIC. Таким образом, встроенные ядра процессоров становятся ресурсом базового кристалла, доступным для реализации в дальнейшем многих различных проектов структурных ASIC с использованием этого базового кристалла.[00492] However, embedding one or more processor cores into a fabric ASIC base die is feasible, for example, using the standard cell design methodology described herein, which includes the use of a hardware macro. This would allow maintaining the operating frequency, full performance and normal footprint. The processor core and/or buffer memory input and output wiring could be interconnected to other base die resources or, preferably, embedded in a configurable metal layer layout, allowing the embedded cores to be interconnected with any infrastructure and logic modules implemented on each specific chip. structural ASIC designs. Thus, the embedded processor cores become a resource of the base crystal, available for the further implementation of many different structural ASIC projects using this base crystal.
[00493] Встроенные в структурную ASIC ядра процессоров могут быть соединены с логической инфраструктурой, так что программное обеспечение (встроенное программное обеспечение), запускаемое в ядрах, может получать доступ и использовать различные блоки памяти и другие ресурсы на микросхеме и вне микросхемы, и осуществлять обмен информацией с одним или всеми другими логическими модулями на микросхеме через блоки памяти и/или напрямую. Таким образом, ядра процессоров могут работать параллельно с другими логическими модулями и/или взаимодействовать с другими логическими модулями для совершения совместной работы, например, когда ядра процессоров посылают запрос на выполнение задач другими модулями или другие модули посылают запрос на выполнение задач ядрами процессоров, или и то и другое.[00493] Embedded within a fabric ASIC, processor cores may be coupled to a logic infrastructure such that software (firmware) running on the cores can access, use, and communicate with various memory blocks and other on- and off-chip resources. information with one or all other logic modules on the chip through memory blocks and/or directly. Thus, processor cores can work in parallel with other logical modules and/or interact with other logical modules to perform cooperative work, for example, when processor cores send a request to other modules to perform tasks, or other modules send a request to processor cores to perform tasks, or both both.
[00494] Когда биоинформационные (Bio-IT) ускоряющие модули (например, картрирования, выравнивания, сортировки, маркировки дубликатов, повторной калибровки качества оснований, местного перевыравнивания, сжатия, распаковки и т.д., описанные в настоящем документе) реализованы на FPGA и/или структурной ASIC со встроенными ядрами процессоров, итоговая система на микросхеме (SOC) обладает рядом важных преимуществ, особенно в сочетании со скоростью и адаптивностью. Наибольшая скорость может достигаться с помощью аппаратных средств ускоряющих модулей, и наибольшая адаптивность может достигаться благодаря полной программируемости ядер процессоров. При помощи перепрограммирования ядер процессоров исполняемые алгоритмы Bio-IT могут быть легко модифицированы, и эти алгоритмы могут работать на порядок быстрее традиционных ЦП, поскольку интенсивные вычислительные операции могут быть возложены на ускорители аппаратных средств. Обмен информацией и организация памяти могут быть оптимизированы для совместной работы процессора и ускорителя. Дополнительное ускорение программных алгоритмов может достигаться с помощью дополнительных аппаратных модулей сконструированных для предварительной и послеоперационной обработки данных, используемых ядрами процессоров, например, для преобразования данных перекрывания считываемыми фрагментами участка контрольного генома в структуру данных наложения, для представления их в ядрах процессоров. В некоторых архитектурах набор команд может быть расширен для того, чтобы задействовать ресурсы аппаратных средств; в Bio-IT SOC могут быть определены новые команды процессора для доступа к функциям аппаратного ускорения Bio-IT.[00494] When bioinformatics (Bio-IT) accelerating modules (e.g., mapping, alignment, sorting, duplicate labeling, base quality recalibration, local realignment, compression, decompression, etc., described herein) are implemented on the FPGA and /or structured ASIC with embedded processor cores, the resulting system on a chip (SOC) has a number of important advantages, especially when combined with speed and adaptability. The greatest speed can be achieved using hardware accelerator modules, and the greatest adaptability can be achieved through the full programmability of processor cores. By reprogramming the processor cores, Bio-IT's executable algorithms can be easily modified, and these algorithms can run orders of magnitude faster than traditional CPUs because the computation-intensive operations can be offloaded to hardware accelerators. Information exchange and memory organization can be optimized for the processor and accelerator to work together. Additional acceleration of software algorithms can be achieved with the help of additional hardware modules designed for pre- and post-processing of data used by processor cores, for example, to convert data overlapping readable fragments of a control genome region into an overlay data structure for representation in processor cores. On some architectures, the instruction set can be extended to take advantage of hardware resources; New processor instructions can be defined in the Bio-IT SOC to access Bio-IT hardware acceleration features.
[00495] Как представлено ниже в таблице II, структурная ASIC, следовательно, имеет несколько определенных заранее, перед изготовлением, преимуществ, например, перед ASIC или FPGA. Например, различные компоненты могут быть «почти» соединены, например, в разнообразных готовых конфигурациях, и многочисленные центральные и локальные тактовые генераторы могут быть изготовлены заранее. Это означает, следовательно, что проблемы с целостностью сигнала и отсчетом временных интервалов должны по существу решаться. Дополнительно необходимо изготавливать только несколько металлических слоев. Далее, в отличие от стандартных FPGA, структурная ASIC должна иметь мощности, производительность, и параметры энергопотребления близкие к стандартной ASIC. Это позволяет ускорить и облегчить процесс разработки, а также снизить затраты на единовременное проектирование (NRE) по сравнению со стандартными ASIC, и существенно уменьшить время от разработки устройства до его выпуска. Более того, должна отсутствовать необходимость решения проблемы искажений.[00495] As presented in Table II below, a structured ASIC therefore has several prefabricated advantages over, for example, an ASIC or an FPGA. For example, various components can be "almost" connected, for example, in a variety of off-the-shelf configurations, and multiple central and local clock generators can be prefabricated. This means, therefore, that problems with signal integrity and timing must be essentially resolved. Additionally, only a few metal layers need to be produced. Further, unlike standard FPGAs, a structured ASIC must have power, performance, and power consumption parameters close to a standard ASIC. This allows for a faster and easier development process, as well as lower non-recurring engineering (NRE) costs compared to standard ASICs, and significantly reduces the time from device development to release. Moreover, there should be no need to solve the problem of distortion.
[00496] Структурная ASIC, следовательно, обладает несколькими обеспечивающими ее преимущества свойствами, в том числе, одним или более из следующих: низкие затраты на единовременное проектирование, упрощенные требования к выполнению опытно-конструкторских работ, сниженные затраты на производство шаблонов по сравнению со стандартной ASIC, с дополнительными преимуществами в виде высокой производительности, низкого потребления энергии, меньшего числа изготавливаемых слоев, меньшей сложности в части конфигурации готовых для размещения схемных элементов предварительно изготовленных блоков ячеек, что приводит к уменьшению времени на изготовление. Однако структурная ASIC обладает некоторыми недостатками, например, нехватка адекватных инструментов проектирования, которые могут являться дорогостоящими и которые получают с помощью изменения традиционных инструментов ASIC. Далее, такие новые архитектуры по-прежнему нуждаются в формальной оценке и сравнительном анализе. И существуют проблемы выбора оптимальной таблицы перекодировки между LUT с 3, 4, и 5 входами и/или оптимального размера распределенной памяти RAM.[00496] The structured ASIC therefore has several advantageous properties, including one or more of the following: low one-time design costs, simplified development requirements, reduced template manufacturing costs compared to a standard ASIC , with the added benefits of high performance, low power consumption, fewer layers to fabricate, and less complexity in circuit-ready configuration of prefabricated cell blocks, resulting in reduced fabrication time. However, the structured ASIC has some disadvantages, such as the lack of adequate design tools, which can be expensive and are achieved by modifying traditional ASIC tools. Further, such new architectures still require formal evaluation and comparative analysis. And there are problems of choosing the optimal lookup table between 3, 4, and 5 input LUTs and/or the optimal size of distributed RAM.
[00497] Таким образом, принимая во внимание вышесказанное, ASIC, FPGA и структурная ASIC обладают как своими преимуществами, так и недостатками. Например, стандартная ASIC является непростой для проектирования, требует больше времени на разработку, имеет высокие затраты на NRE. Однако ASIC может поддерживать большие конструкции, сложные конструкции, обладает высокой производительностью при низком энергопотреблении, что может, следовательно, приводить к низкой стоимости в пересчете на единицу продукции (при больших объемах). С другой стороны, FPGA является простой для проектирования, требует меньше времени на разработку, имеет низкие затраты на NRE. Однако FPGA могут иметь ограниченный размер конструкции и/или сложность, могут обладать ограниченной производительностью и высоким энергопотреблением, что может приводить к высокой стоимости в пересчете на единицу продукции. Во многих случаях структурная ASIC может быть спроектирована для максимального увеличения указанных преимуществ и уменьшения указанных недостатков. Например, по большому счету, отношение для числа вентилей на единицу площади может примерно выражаться как 100:33:1 для стандартной ASIC, структурной ASIC и FPGA; для производительности (основанной на тактовой частоте) - как 100:75:15; для мощности - как 1:3:12.[00497] Thus, taking into account the above, ASIC, FPGA and structured ASIC have both their advantages and disadvantages. For example, a standard ASIC is difficult to design, requires more development time, and has high NRE costs. However, the ASIC can support large designs, complex designs, and has high performance with low power consumption, which can therefore result in low cost per unit (at high volumes). On the other hand, FPGA is easy to design, requires less development time, and has low NRE cost. However, FPGAs may have limited design size and/or complexity, limited performance, and high power consumption, which may result in high unit costs. In many cases, a structured ASIC can be designed to maximize specified benefits and reduce specified disadvantages. For example, in general, the ratio for the number of gates per unit area can be approximately expressed as 100:33:1 for standard ASIC, fabric ASIC and FPGA; for performance (based on clock speed) - as 100:75:15; for power - like 1:3:12.
[00498] Как указано выше, в различных случаях микросхема 100 настоящего изобретения может быть сконфигурирована как плата расширения, например, если указанная микросхема включает в себя шину PCIe и расположена так, чтобы обмениваться информацией с одним или более блоков памяти, например, окружена блоками памяти, например, в значительной степени окружена блоками памяти, например, полностью окружена блоками памяти. В различных вариантах реализации, микросхема может представлять собой FPGA с высокой плотностью упаковки и/или быстродействующую FPGA, которая различных случаях, может быть преобразована в ASIC или структурную ASIC. В различных случаях, микросхема может быть структурной ASIC, которая может быть преобразована в ASIC. В некоторых случаях, микросхема может представлять собой ASIC.[00498] As discussed above, in various cases the chip 100 of the present invention may be configured as an expansion card, for example, if the chip includes a PCIe bus and is located to communicate with one or more memory blocks, for example, surrounded by memory blocks , for example, is largely surrounded by memory blocks, for example, completely surrounded by memory blocks. In various embodiments, the chip may be a high-density FPGA and/or a high-speed FPGA, which in various cases may be converted to an ASIC or structured ASIC. In various cases, the chip may be a structured ASIC, which may be converted to an ASIC. In some cases, the chip may be an ASIC.
[00499] Как указано выше, модули, описанные в настоящем документе, могут быть реализованы в аппаратных средствах микросхемы, например, соединены с ней на постоянной основе, и в таких случаях реализация может приводить к тому, что их функционирование может происходить с более высокой скоростью по сравнению с программной реализацией таким образом, что, например, минимальное количество команд вызывается, считывается и/или исполняется. Таким образом, при такой уникальной реализации в аппаратных средствах, модули, описанные в настоящем изобретении, могут функционировать прямо в соответствии с их рабочими параметрами, например, без необходимости вызывать, считывать и/или исполнять команды. Дополнительно, требования к памяти и времени обработки могут быть упрощены, например, когда обмен информацией внутри микросхемы происходит через файлы, а не через доступ к памяти. Конечно, в некоторых случаях, микросхема и/или плата могут быть увеличены в размерах, например, для большего количества встроенной памяти, так чтобы расширить возможности параллельной обработки, что может приводить к еще большему увеличению скорости обработки. Например, в некоторых вариантах реализации, микросхема, описываемая в настоящем изобретении, может включать в себя встроенную DRAM для того, чтобы микросхема не зависела от внешней памяти, что, следовательно, привело бы к дополнительному увеличению скорости обработки, например, при работе алгоритма Барроуза-Уилера вместо таблицы расстановки и функции перемешивания, которые могут в различных случаях, зависеть от внешней, например, центральной памяти. В таких случаях работа всего программного конвейера может быть завершена через 6 минут или меньше, например, от ее начала до ее конца.[00499] As discussed above, the modules described herein may be implemented in chip hardware, for example, permanently coupled thereto, and in such cases, the implementation may result in their operation occurring at a higher speed compared to a software implementation in such a way that, for example, a minimum number of instructions are called, read and/or executed. Thus, with such a unique implementation in hardware, the modules described in the present invention can function directly in accordance with their operating parameters, for example, without the need to invoke, read and/or execute instructions. Additionally, memory and processing time requirements can be simplified, for example, when on-chip information exchange occurs through files rather than through memory access. Of course, in some cases, the chip and/or board can be increased in size, for example to accommodate more on-chip memory, so as to increase parallel processing capabilities, which can result in even greater processing speeds. For example, in some embodiments, the chip described in the present invention may include on-chip DRAM so that the chip is not dependent on external memory, which would therefore further increase processing speed, for example, when running the Burrows algorithm. Wheeler instead of the arrangement table and the shuffling function, which may, in various cases, depend on external, for example, central memory. In such cases, the entire software pipeline can be completed in 6 minutes or less, for example, from its start to its end.
[00500] Как указано выше и показано на фиг.8, существуют различные точки, в которых данный модуль может быть расположен на аппаратных средствах, или расположен удаленно, например, на сервере с доступом через облако. В случае, если данный модуль расположен на микросхеме, например, соединен с микросхемой на постоянной основе, его функция может выполняться аппаратными средствами, однако, если потребуется, модуль может быть расположен удаленно, и в таком случае платформа может включать в себя необходимый набор инструментов для отправки соответствующих данных на сервер, например, сервер с доступом через облако, так что конкретная фунциональность модуля может привлекаться для дальнейшей обработки данных в соответствии с выбранным пользователем протоколом. Таким образом, часть платформы может включать в себя интерфейс удаленного доступа через интернет для выполнения одной или более задач, имеющих отношение к функционированию одного или более модулей, описанных в настоящем документе. Например, если модули картрирования 112, выравнивания 113, и/или сортировки 114a это все модули, находящиеся на микросхеме, то, в различных случаях, один или более модулей локального перевыравнивания 114d, маркировки дубликатов 114b, повторной калибровки качества оснований 114c, и/или поиска вариантов 115 могут находиться на облаке.[00500] As discussed above and illustrated in FIG. 8, there are various points at which a given module may be located in hardware, or located remotely, such as on a cloud-accessible server. If this module is located on a chip, for example permanently connected to the chip, its function may be performed in hardware, however, if required, the module may be located remotely, in which case the platform may include the necessary set of tools for sending the relevant data to a server, for example a cloud-accessible server, so that the specific functionality of the module can be used to further process the data in accordance with the protocol selected by the user. Thus, a portion of the platform may include an Internet remote access interface for performing one or more tasks related to the operation of one or more modules described herein. For example, if mapping 112, alignment 113, and/or sorting 114a modules are all on-chip modules, then, in various cases, one or more of local realignment 114d, duplicate marking 114b, base quality recalibration 114c, and/or search options 115 may be on the cloud.
[00501] В частности, после того, как генетические данные сгенерированы и/или обработаны, например, с использованием одного из первичных и/или вторичных протоколов, например, картрированы, выровнены, и/или отсортированы, например, для создания одного или более файлов определения вариантов, например, для определения того, как данные генетической последовательности исследуемого объекта отличаются от одной или более контрольных последовательностей, следующий аспект изобретения может быть связан с выполнением одной или более аналитических функций в отношении сгенерированных и/или обработанных генетических данных, таких как дальнейшая, например, третичная, обработка. Например, конфигурация системы, представленной на фиг. 8-11, может быть настроена для последующей обработки сгенерированных данных и/или данных, полученных в результате вторичной обработки, например, для ее запуска через один или более программных конвейеров третичной обработки 700, например, через один или более программных конвейеров генома, программных конвейеров эпигенома, программных конвейеров метагенома, совместного генотипирования, программных конвейеров MuTect2 или других программных конвейеров третичной обработки, например, с помощью устройств и методов, описанных в настоящем документе. Например, в различных случаях может обеспечиваться дополнительный уровень обработки 122, например, для диагностики заболеваний, терапевтического лечения и/или профилактических действий, например, включающий в себя NIPT, NICU, Cancer, LDT, AgBio и другие подобные методы диагностики заболеваний, профилактики, и/или лечения, в которых задействованы данные, получаемые в результате работы одного или более таких первичных и/или вторичных и/или третичных программных конвейеров. Таким образом, описанные в настоящем документе устройства и методы могут использоваться для генерации данных генетической последовательности, которые могут в дальнейшем использоваться для генерации одного или более файлов определения вариантов и/или других, связанных с этим данных, которые в дальнейшем могут являться объектом исследования для других запускаемых программных конвейеров третичной обработки в соответствии с описанными в настоящем документе устройствами и методами, например, как для диагностики конкретного и/или системного заболевания, так и для профилактики и/или терапевтического лечения и/или методик, находящихся в стадии разработки.[00501] In particular, after the genetic data has been generated and/or processed, for example, using one of the primary and/or secondary protocols, for example, mapped, aligned, and/or sorted, for example, to create one or more files determining variants, for example, to determine how the genetic sequence data of a subject of interest differs from one or more reference sequences, a further aspect of the invention may be associated with performing one or more analytical functions on the generated and/or processed genetic data, such as further, e.g., tertiary,processing. For example, the system configuration shown in FIG. 8-11 may be configured to further process the generated data and/or data resulting from secondary processing, for example, to run through one or more tertiary processing software pipelines 700, for example, through one or more genome software pipelines, software pipelines epigenome, metagenome software pipelines, co-genotyping, MuTect2 software pipelines, or other tertiary processing software pipelines, such as the devices and methods described herein. For example, in various cases, an additional level of processing 122 may be provided, for example, for disease diagnosis, therapeutic treatment and/or prophylactic actions, for example, including NIPT, NICU, Cancer, LDT, AgBio and other similar methods for disease diagnosis, prevention, and /or treatments that involve data resulting from the operation of one or more such primary and/or secondary and/or tertiary software pipelines. Thus, the devices and methods described herein can be used to generate genetic sequence data, which can then be used to generate one or more variant definition files and/or other related data, which can then be the subject of research by others. run tertiary processing software pipelines in accordance with the devices and methods described herein, for example, both for the diagnosis of a specific and/or systemic disease and for prevention and/or therapeutic treatments and/or techniques under development.
[00502] Как описано выше, система 1 представленная в настоящем документе, может включать в себя генерирование, например, с помощью технологического решения, при котором секвенатор находится на микросхеме, описанного в настоящем документе, или, в других случаях, получение данных генетической последовательности, и может включать в себя выполнение одного или более протоколов вторичной обработки, например, одного или более из следующих: картрирование, выравнивание, сортировка сгенерированных данных генетической последовательности, например, для получения одного или более файлов поиска вариантов, например, для того чтобы, определить как данные генетической последовательности одного объекта исследования отличаются от одной или более последовательностей контрольных геномов. Следующий признак изобретения может быть связан с выполнением одной или более аналитических функций в отношении полученных и/или обработанных генетических данных, таких как дальнейшая, например, третичная, обработка, которая может выполняться на той же микросхеме или совместно с той же микросхемой или набором микросхем, на которых находится упомянутый выше секвенатор.[00502] As described above, system 1 presented herein may include generating, for example, using an on-chip sequencer technology solution described herein, or in other cases, obtaining genetic sequence data, and may include performing one or more secondary processing protocols, for example, one or more of the following: mapping, alignment, sorting of the generated genetic sequence data, for example, to obtain one or more variant lookup files, for example, to determine how The genetic sequence data of one study subject differs from one or more reference genome sequences. A further feature of the invention may be related to the performance of one or more analytical functions in relation to the obtained and/or processed genetic data, such as further, for example tertiary, processing, which may be performed on the same chip or in conjunction with the same chip or chipset, on which the above-mentioned sequencer is located.
[00503] В первом случае, например, что касается генерации, получения и/или передачи данных генетической последовательности, как показано на фиг. 8, такие данные могут быть получены локально или удаленно и/или в результате могут быть затем обработаны, например, с использованием локальных вычислительных ресурсов 100, или могут быть переданы в удаленное местоположение, например, к удаленным вычислительным ресурсам 300, для последующей обработки. Например, сгенерированные данные генетической последовательности могут обрабатываться локально и непосредственно, например, если один набор микросхем и/или одно устройство имеет функциональные возможности секвенирования и вторичной обработки. Сгенерированные данные генетической последовательности также могут обрабатываться локально, но не непосредственно, если функциональные возможности секвенирования и вторичной обработки находятся на различных аппаратах, которые находятся в одном помещении, но разделены в пространстве и при этом соединены с возможностью передачи сигнала, например через локальную сеть 100. В других случаях, данные генетической последовательности могут обрабатываться удаленно, например, с помощью NGS, и результаты могут передаваться через облачную сеть 50 в удаленное местоположение, например, географически не совпадающее с секвенатором.[00503] In the first case, for example, regarding the generation, acquisition and/or transmission of genetic sequence data, as shown in FIG. 8, such data may be received locally or remotely and/or the result may then be processed, for example, using local computing resources 100, or may be transferred to a remote location, such as remote computing resources 300, for further processing. For example, the generated genetic sequence data can be processed locally and directly, for example, if one chipset and/or one device has sequencing and secondary processing functionality. The generated genetic sequence data can also be processed locally, but not directly, if the sequencing and secondary processing functionality is located on different machines that are located in the same room, but separated in space and yet connected with signal transmission capability, for example through a local network 100. In other cases, genetic sequence data may be processed remotely, for example, using NGS, and the results may be transmitted via cloud network 50 to a remote location, for example, geographically distinct from the sequencer.
[00504] В частности, как показано на фиг. 8-11, в различных вариантах реализации, может обеспечиваться наличие секвенатора нуклеотидов непосредственнно в рабочем пространстве, например, секвенатора на микросхеме или NGS, где указанный секвенатор объединен с локальным вычислительным ресурсом прямо или косвенно, например соединением через локальную сеть 10. Локальный вычислительный ресурс 100 может включать в себя или, в других случаях, быть объединен с одним или более механизмами генерации данных 110 и/или получения данных 120. Такие механизмы могут представлять собой любые механизмы, сконфигурированные для генерации и/или, в других случаях, получения данных, например, аналоговых, цифровых или электромагнитных данных, имеющих отношение к одной или более генетических последовательностей исследуемого объекта или группы объектов.[00504] Specifically, as shown in FIG. 8-11, in various embodiments, a nucleotide sequencer may be provided directly in the workspace, such as an on-chip sequencer or NGS, where said sequencer is coupled to a local computing resource directly or indirectly, such as a connection through a local area network 10. Local computing resource 100 may include or, in other cases, be combined with one or more mechanisms for generating data 110 and/or receiving data 120. Such mechanisms can be any mechanisms configured to generate and/or, in other cases, receive data, e.g. , analog, digital or electromagnetic data related to one or more genetic sequences of the object or group of objects under study.
[00505] Например, такой механизм генерации данных 110 может представлять собой устройство первичной обработки, например, секвенатор, например, NGS, секвенатор на микросхеме или другой подобный механизм генерации информации о генетической последовательности. Далее, такой механизм получения данных 120 может представлять собой любой механизм, сконфигурированный для приема данных, например, сгенерированной информации о генетической последовательности, и/или, при совместном использовании с механизмом генерации данных 110 и/или вычислительных ресурсов 150, способный задействовать один или более протоколов вторичной обработки, таких как программный конвейер вторичной обработки, сконфигурированный для исполнения протоколов картрирования, выравнивания, сортировки, и/или поиска вариантов в отношении сгенерированных или полученных данных последовательности, как поисано в настоящем документе. В различных случаях, аппараты генерации данных 110 и/или получения данных 120 могут соединяться, например, через локальную сеть 10, например, для локального хранения 200, или могут соединяться через облачную сеть 30, например, для передачи и/или приема данных, таких как цифровые данные, имеющие отношение к первичной и/или вторичной обработке информации о генетической последовательности, например, в удаленное местоположение 30 или из удаленного местоположения 30, например для удаленных обработки 300 и/или хранения 400. В различных вариантах реализации, один или более таких компонентов могут быть сопряжены с возможностью передачи сигнала при помощи гибридной сети, как описано в настоящем документе.[00505] For example, such data generation engine 110 may be a front-end processing device, such as a sequencer such as NGS, an on-chip sequencer, or other similar mechanism for generating genetic sequence information. Further, such data acquisition engine 120 may be any engine configured to receive data, such as generated genetic sequence information, and/or, when used in conjunction with data generation engine 110 and/or computing resources 150, capable of utilizing one or more secondary processing protocols, such as a secondary processing software pipeline configured to execute mapping, alignment, sorting, and/or variant search protocols on generated or received sequence data as described herein. In various cases, the data generating apparatus 110 and/or data receiving 120 may be connected, for example, through a local network 10, for example, for local storage 200, or may be connected through a cloud network 30, for example, for transmitting and/or receiving data such as as digital data related to the primary and/or secondary processing of genetic sequence information, for example, to or from a remote location 30, such as for remote processing 300 and/or storage 400. In various embodiments, one or more of such components may be interfaced with signal transmission capability using a hybrid network as described herein.
[00506] Локальный вычислительный ресурс 100 может также включать в себя или, в других случаях, быть объединен с компилятором 130 и/или процессором 150, такими, что компилятор 130 сконфигурирован для компиляции сгенерированных и/или полученных данных и/или связанных с ними данных, а процессор 150 сконфигурирован для обработки сгенерированных и/или полученных и/или скомпилированных данных и/или управления системой 1 и ее компонентами, как описано в настоящем документе. Далее, локальные вычислительные ресурсы 100 могут включать в себя устройство сжатия данных 160, сконфигурированное для сжатия данных, таких как сгенерированные и/или полученные данные и/или данные, являющиеся результатом первичной и/или вторичной обработки, которые могут быть сжаты, например, перед отправкой через локальную сеть 10 и/или облачную сеть 30 и/или гибридную облачную сеть 50.[00506] Local computing resource 100 may also include, or in other cases be combined with, a compiler 130 and/or a processor 150 such that the compiler 130 is configured to compile generated and/or received data and/or associated data and the processor 150 is configured to process the generated and/or received and/or compiled data and/or control the system 1 and its components, as described herein. Further, local computing resources 100 may include a data compression device 160 configured to compress data, such as generated and/or received data and/or data resulting from primary and/or secondary processing, which may be compressed, for example, before sending via local network 10 and/or cloud network 30 and/or hybrid cloud network 50.
[00507] В конкретных примерах, как можно видеть на фиг. 8-11, система 1 может быть выполнена с возможностью выполнения дальнейшей обработки сгенерированных и/или обрабатываемых во вторую очередь данных, например посредством локальных 100 и/или удаленных вычислительных ресурсов, например посредстом их прогона через один или более конвейер для третичной обработки, такой как один или более из конвейера генома, конвейера эпигенома, конвейера метагенома, совместного генотипирования, конвейера MuTect2 или другого конвейера для третичной обработки. Такие данные затем могут быть сжаты и/или локально 200 локально и/или могут быть переданы для удаленного хранения.[00507] In specific examples, as can be seen in FIGS. 8-11, system 1 may be configured to perform further processing of generated and/or secondarily processed data, such as through local 100 and/or remote computing resources, such as by running it through one or more tertiary processing pipelines, such as one or more of a genome pipeline, an epigenome pipeline, a metagenome pipeline, a co-genotyping pipeline, a MuTect2 pipeline, or another tertiary processing pipeline. Such data may then be compressed and/or locally 200 locally and/or transferred for remote storage.
[00508] В дополнительных примерах система 1 может содержать дополнительный уровень обрабатывающих модулей, например выполненных с возможностью выполнения дополнительной обработки, например с возможностью диагностики, обнаружения заболевания и/или терапевтического свойства, и/или их профилактики. Например, в различных примерах могут быть обеспечены дополнительные уровни обработки, например для диагностики заболевания, терапевтического лечения и/или профилактического предупреждения, включая, например, неинвазивное пренатальное тестирование (NIPT), реанимацию и интенсивную терапию новорожденных (NICU), рак, проводимые в лаборатории исследования (LDT), агробиологию (AgBio) и другие виды диагностики, профилактики и/или способов лечения таких заболеваний, в которых применяются данные, сгенерированные одним или более из указанных первичных, вторичных и/или третичных конвейеров.[00508] In further examples, system 1 may comprise an additional layer of processing modules, such as those configured to perform additional processing, such as diagnosis, disease and/or therapeutic property detection, and/or prevention thereof. For example, in various examples, additional levels of processing may be provided, for example, for disease diagnosis, therapeutic treatment and/or prophylactic prevention, including, for example, non-invasive prenatal testing (NIPT), neonatal intensive care unit (NICU), cancer, performed in the laboratory research (LDT), agrobiology (AgBio) and other types of diagnosis, prevention and/or treatment of such diseases that use data generated by one or more of the specified primary, secondary and/or tertiary pipelines.
[00509] Соответственно, в настоящем документе представлена система 1 для получения и применения глобальной гибридной облачной сети 50. Например, согласно настоящему документу, облако 30 в первую очередь используется для хранения, например в удаленном месте 400 хранения. В таком примере вычисление данных выполняют локально 100 посредством локальных вычислительных ресурсов 150, и в случае, когда требования к хранилищу являются существенными, осуществляется доступ в облако 30 для хранения данных, сгенерированных локальными вычислительными ресурсами 150, например с применением удаленных ресурсов 400 хранения. Следовательно, управление сгенерированными данными обычно любо полностью осуществляют локально 100, либо полностью осуществляют удаленно 300 в облаке 30.[00509] Accordingly, presented herein is a system 1 for obtaining and using a global hybrid cloud network 50. For example, according to the present document, the cloud 30 is primarily used for storage, such as at a remote storage location 400. In such an example, data computation is performed locally 100 through local computing resources 150, and in the case where storage requirements are significant, cloud 30 is accessed to store data generated by local computing resources 150, for example using remote storage resources 400. Consequently, the generated data is typically either managed entirely locally 100 or entirely remotely 300 in the cloud 30.
[00510] В частности, в общем варианте осуществления платформы для биоинформационного анализа функции вычисления 150 и/или хранения 200 выполняют локально, а когда требования к хранилищу превосходят общую емкость хранилища, или когда есть необходимость обеспечить доступ к сохраенным данным для других удаленных пользователей, такие данные могут быть переданы через сеть Интернет 30 в облако для удаленного хранения 400 в нем. В таком примере, когда вычислительные ресурсы 150, которые требуются для выполнения вычислительных функций, являются минимальными, а требования к зранилищу являются существенными, вычислительная функция 150 может выполняться локально 100, а функция 400 хранения может выполняться удаленно, при этом полностью обработанные данные передают в обе стороны между функцией 150 обработки, например торлько для локальной обработки, и функцией 400 хранения, например для удаленного хранения 400 обработанных данных.[00510] In particular, in a general embodiment of a bioinformatics analysis platform, the computation 150 and/or storage 200 functions are performed locally, and when storage requirements exceed the overall storage capacity, or when there is a need to make stored data accessible to other remote users, such the data may be transmitted via the Internet 30 to the cloud for remote storage 400 therein. In such an example, when the computing resources 150 required to perform the computing functions are minimal and the storage requirements are significant, the computing function 150 may be executed locally 100 and the storage function 400 may be executed remotely, with fully processed data being transferred to both sides between the processing function 150, for example only for local processing, and the storage function 400, for example for remote storage 400 of processed data.
[00511] Например, можно привести пример в отношении функции секвенирования, например посредством типичного секвенатора нового поколения (NGS), где вычислительные ресурсы 150 выполнены с возможностью реализации функций, необходимых для секвенирования генетического материала, для получения генетических секвенированных данных, например ридов, которые вырабатывают на месте 100. Указанные риды, после их генерации, например посредством локального NGS, затем могут быть переданы, например по облачной сети 30, например для хранения 400 в удаленном местоположении 300 таким образом, что при необходимости их можно повторно ихзвлечь из облака 30, например для дальнейшей обработки, к примеру, для выполнения одной или более из функций вторичной и/или третичной обработки, которые выполняют в местоположении, удаленном от средств 400 хранения, т.е. локально. В таком примере локальные ресурсы 150 хранения предназначены лишь в качестве кэша хранилища, в котором расположены данные, при ожидании передачи из облака 30, или в него, например для формирования удаленных средств 400 хранения.[00511] For example, an example may be given with respect to a sequencing function, such as through a typical next generation sequencer (NGS), where the computing resources 150 are configured to implement the functions required for sequencing genetic material to produce genetic sequenced data, such as reads, that produce at location 100. Said reads, once generated, for example by local NGS, can then be transmitted, for example over a cloud network 30, for example to be stored 400 at a remote location 300 such that they can be re-fetched from the cloud 30 if necessary, for example for further processing, for example, to perform one or more of the secondary and/or tertiary processing functions, which are performed at a location remote from the storage means 400, i.e. locally. In such an example, local storage resources 150 are intended only to serve as a cache of storage in which data is located while awaiting transfer from or to cloud 30, for example to form remote storage facilities 400.
[00512] Подобным образом, когда вычислительная функция является существенной, например если ей для обработки данных требуется одно или более ядер 300 удаленных кластеров компьютеров, и где требования к хранилищу для хранения обработанных данных 200 сравнительно малы по сравнению с вычислительными ремурсами 300, требуемыми для обработки данных, подлежащие обработке данные могут быть отправлены, например по облаку 30, для их обработки удаленными вычислительными ресурсами, которые могут включать одно или более ядер или один или более кластеров вычислительных ресурсов, например одни или более супер вычислительных ресурсов. В таком примере после того, как данные были обработаны компьютерным ядром 300 на облачной основе, обработанные данные могут затем быть переданы по облачной сети 30 для локального 200 зранения и быть доступны для использования локальными вычислительными ресурсами 150, например для локального анализа и/или локальной диагностики.[00512] Similarly, when the computing function is significant, such as where it requires one or more cores 300 of remote computer clusters to process data, and where the storage requirements for storing the processed data 200 are relatively small compared to the computing resources 300 required for processing data, the data to be processed may be sent, for example over the cloud 30, to be processed by remote computing resources, which may include one or more cores or one or more clusters of computing resources, such as one or more super computing resources. In such an example, after data has been processed by the cloud-based computer core 300, the processed data can then be transmitted over the cloud network 30 for local storage 200 and be made available for use by local computing resources 150, such as for local analysis and/or local diagnostics. .
[00513] В качестве примера можно привести типичную функцию вторичной обработки, например когда осуществляют доступ к предобработанным секвенированным данным, т.е. риду, хранимым локально 200, например посредством локальных вычислительных ресурсов 100, и передают по облачной сети Интернет 30 на удаленные вычислительные средства 300 для дальнейшей обработки в них, например при выполнении функции вторичной обработки, для получения рузельтирующих обработанных данных, которые затем могут быть отправлены обратно на локальные средства 100 для хранения 200 в них. Это может быть случаем, когда локальный специалист генерирует секвенированные данные рида с использованием локальных ресурсов 100 для генерации данных, например автоматического секвенатора, а затем отправляет данные по сети 30 на удаленные вычислительные средства 300, которые затем выполняют одну или более функций над указанными данными, такие как преобразование Барроуза-Уилера или функция выравнивания Нидлмана-Вунша и/или Смита-Ватермана над указанными данными последовательности, для генерации результирующих данных, которые могут быть переданы по сети Интернет 30 на локальные вычислительные ресурсы 100 для их изучения по одному или более локально администрируемым протоколам обработки и/или для их локального 200 хранения.[00513] An example is a typical secondary processing function, for example when accessing pre-processed sequenced data, i.e. data stored locally 200, for example by local computing resources 100, and transmitted over the Internet cloud network 30 to remote computing facilities 300 for further processing therein, for example when performing a secondary processing function, to obtain Russian processed data, which can then be sent back to local funds 100 to store 200 in them. This may be the case where a local technician generates sequenced read data using local data generation resources 100, such as an automated sequencer, and then sends the data over network 30 to remote computing facilities 300, which then perform one or more functions on said data, such as a Burrows-Wheeler transform or a Needleman-Wunsch and/or Smith-Waterman alignment function over specified sequence data, to generate resultant data that can be transmitted over the Internet 30 to local computing resources 100 for examination by one or more locally administered protocols processing and/or for their local 200 storage.
[00514] Однако необходима безшовная интеграция между взаимодействием между локальной 100 и удаленной 300 компьютерной обработкой, а также между локальным 200 и удаленным 400 хранилищем, например в гибридной системе на основе облака 50, представленной в настоящем документе. В таком примере система может быть выполнена таким образом, что локальные 100 и удаленные 300 вычислительные ресурсы выполнены с возможностью работы совместно бесшовным образом, так что подлежащие обработке при помощи них данные могут быть назначены в режиме реального времени локальным 200 или удаленным 300 вычислительным ресурсам без существенных ухудшений вследствие скорости передачи и/или существенных ухудшений в эффективности работы. Это может иметь место, например, когда программное обеспечение и/или аппаратное обеспечение, предназначенные для развертывания или другим образом запуска на вычислительных ресурсах, выполнены так, чтобы соответствовать друг другу и/или являются одинаковыми или функционально схожими, например аппаратное обеспечение и/или программное обеспечение выполнено одним и тем же образом, чтобы выполнять одни и те же алгоритмы одинаковым образом над сгенерированными и/или полученными данными.[00514] However, seamless integration is required between the interaction between local 100 and remote 300 computer processing, as well as between local 200 and remote 400 storage, such as in the hybrid cloud-based system 50 presented herein. In such an example, the system may be configured such that the local 100 and remote 300 computing resources are configured to operate together in a seamless manner such that data to be processed by them can be assigned in real time to the local 200 or remote 300 computing resources without significant degradations due to transmission speed and/or significant degradations in operating efficiency. This may be the case, for example, when the software and/or hardware intended to be deployed or otherwise run on the computing resources are configured to correspond with each other and/or are the same or functionally similar, such as the hardware and/or software the software is implemented in the same way to execute the same algorithms in the same way on the generated and/or received data.
[00515] Например, как можно видеть в отношении фиг. 8-9, локальные вычислительные ресурсы 100 могут быть выполнены с возможностью генерации данных и, следовательно, могут содержать механизм 110 геренации данных, например для генерации и/или анализа первичных данных, например для получения файла последовательности в формате FASTQ. Указанный механизм 110 генерации данных может представлять собой локальный компьютер, как описано в настоящем документе, имеющий процессор, который может быть выполнен с возможностью исполнения одного или более программных приложений и/или может быть жестко смонтирован для выполнения одного или более алгоритмов, например в монтажной конфигурации, над сгенерированными и/или полученными данными. Например механизм 110 геренации данных может быть выполнен с возможностью генерации данных, таким как данных 111 секвенирования, которые могут представлять собой измеренные данные 111a, например данные, которые можно обнаружить в виде изменения напряжения, ионной концентрации, электромагнитного излучения и тому подобного; и/или механизм 110 геренации данных может быть выполнен с возможностью генерации и/или обработки сигнала, например данных аналогового или цифрового сигнала, такие как данные, представляющие одно или более значений нуклеотидов в последовательности или цепи связанных нуклеотидов. В таком примере механизм 110 геренации данных, например секвенатор 111, может также быть выполнен с возможностью предварительной обработки сгенерированных данных для выполнения одной или более операций 111c определения основания, например над данными для получения идентификационных данных последовательности, например файл в формате FASTQ.[00515] For example, as can be seen in relation to FIG. 8-9, local computing resources 100 may be configured to generate data and, therefore, may include a data generation engine 110, for example to generate and/or analyze raw data, for example to obtain a sequence file in FASTQ format. Said data generation engine 110 may be a local computer, as described herein, having a processor that may be configured to execute one or more software applications and/or may be hardwired to execute one or more algorithms, such as in a mounting configuration , over the generated and/or received data. For example, the data generation engine 110 may be configured to generate data, such as sequencing data 111, which may be measured data 111a, such as data that can be detected as a change in voltage, ion concentration, electromagnetic radiation, and the like; and/or the data generation engine 110 may be configured to generate and/or process a signal, such as analog or digital signal data, such as data representing one or more nucleotide values in a sequence or chain of related nucleotides. In such an example, the data generation engine 110, such as sequencer 111, may also be configured to pre-process the generated data to perform one or more base determination operations 111c, such as on the data to obtain sequence identification data, such as a file in FASTQ format.
[00516] Следует отметить, что в данном примере данные 111, сгенерированные таким образом, могут быть сгенерированы локально, например посредством ресурсов 150 для генерации и/или вычисления данных, например секвенаторе на микросхеме; или они могут быть получены удаленно, например посредством удаленных вычислительных и/или генерирующих ресурсов, таких как удаленный NGS 300, но переданы по облаку 30/50 на локальные вычислительные ресурсы 100, например для вторичной обработки 150 и/или хранения посредством них в локальных ресурсах 200 зранения, например во время ожидания дальнейшей локальной обработки 150. В таком примере, когда генерирующие данные ресурсы 300 являются удаленными от локальных обрабатывающих 100 ресурсов и/или ресурсов хранения 200, соответствующие ресурсы могут быть выполнены таким образом, что протоколы удаленного и/или локального хранения, удаленной и локальной обработки и/или обмена информацией, используемые каждыми ресурсами, могут быть выполнены с возможностью плавной и/или бесшовной интеграции друг с другом, например посредством выполнения одного и того же, схожего и/или эквивалентного программного обеспечения и/или вследствие обладания одинаковыми, схожими и/или эквивалентными конфигурациями аппаратного обеспечения, и/или вследствие применения одних и тех же протоколов обмена информацией и/или передачи, которые, в некоторых допустимых пределах, могут быть реализованы при производстве или позднее.[00516] It should be noted that in this example, the data 111 generated in this manner may be generated locally, for example, by means of data generation and/or computing resources 150, such as an on-chip sequencer; or they can be received remotely, for example by remote computing and/or generation resources, such as remote NGS 300, but transmitted over the cloud 30/50 to local computing resources 100, for example for secondary processing 150 and/or storage thereof in local resources 200 storage, for example, while awaiting further local processing 150. In such an example, when the data generating resources 300 are remote from the local processing 100 resources and/or storage resources 200, the corresponding resources can be implemented such that the remote and/or local protocols storage, remote and local processing and/or exchange of information used by each resource may be capable of seamless and/or seamless integration with each other, for example by running the same, similar and/or equivalent software and/or due to having the same, similar and/or equivalent hardware configurations, and/or due to the use of the same communication and/or transmission protocols, which, within certain acceptable limits, may be implemented during production or at a later date.
[00517] В частности, указанные функции могут быть реализованы в жестко смонтированной конфигурации, например в которой функция секвенирования и функция вторичной обработки выполняются в одной или связанных микросхемах или наборах микросхем, например в таких, в которых секвенатор и вторичный процессор напрямую соединены на микросхеме, как описано в настоящем документе, или могут быть реализованы посредством программного обеспечения, оптимизированного для обеспечения связи двух удаленных устройств друг с другом бесшовным образом. Также может применяться комбинация оптимизированных вариантов реализации аппаратного обеспечения и программного обеспечения для выполнения указанных функций, как описано в настоящем документе. В различных вариантах реализации ресурсы для генерации данных, такие как секвенатор 111, выполненный в виде программного обеспечения и/или аппаратного обеспечения или в виде их комбинации, также могут содержать первоначальный уровень процессоров 500, таких как диспетчер, различные аналитические устройства, сравнивающие устройства, регистрирующие устройства, выпускающие устройства и тому подобное для помощи генератору 111 данных, например секвенатору, при преобразовании биологической информации в первичные данные ридов, например в файлы в формате 111d FASTQ.[00517] In particular, these functions may be implemented in a hard-wired configuration, for example in which the sequencing function and the secondary processing function are performed on the same or related chips or sets of chips, for example in those in which the sequencer and the secondary processor are directly coupled on the chip, as described herein, or may be implemented through software optimized to allow two remote devices to communicate with each other in a seamless manner. A combination of optimized hardware and software implementations may also be used to perform these functions, as described herein. In various embodiments, data generation resources such as sequencer 111, implemented as software and/or hardware or a combination thereof, may also comprise an initial layer of processors 500 such as a manager, various analytical devices, comparators, logging devices, issuing devices, and the like to assist a data generator 111, such as a sequencer, in converting biological information into raw read data, such as files in FASTQ format 111d.
[00518] Аналогичным образом это может выполняться и в отношении выполнения других функций, которые могут быть развернуты на локальных 100 и/или удаленных 300 вычислительных ресурсах. Например локальные вычислительные ресурсы 100 могут содержать программное обеспечение и/или аппаратное обеспечение, выполненное с возможностью реализации одной или более функций 112-115 обработки вторичного уровня 700 над данными, сгенерированными удаленно и/или локально, такими как данные генетической последовательности, таким образом, что обработка и ее результаты могут быть бесшовным образом разделены друг с другом и/или сохранены в них. В частности, локальная вычислительная функция 100 и/или удаленная вычислительная функция 300 могут быть выполнены с возможностью генерации и/или приема первичных данных, таких как данные генетической последовательности, например в виде файла в формате FASTQ или тому подобного, и исполнения одного или более протоколов 600 вторичной обработки над сгенерированными и/или полученными данными, причем указанные протоколы могут быть реализованы в виде программного обеспечения, аппаратного обеспечения или их комбинации. Например ресурсы 110 для генерации и/или вычисления данных могут быть выполнены с вохможностью реализации одной или более картирующих операций 112, операций 113 выравнивания или других связанных функций 114 над полученными или сгенерированными данными.[00518] This may be done in a similar manner for the execution of other functions that may be deployed on local 100 and/or remote 300 computing resources. For example, local computing resources 100 may include software and/or hardware configured to implement one or more secondary layer processing functions 112-115 700 on data generated remotely and/or locally, such as genetic sequence data, such that processing and its results can be seamlessly shared and/or stored with each other. In particular, the local computing function 100 and/or the remote computing function 300 may be configured to generate and/or receive raw data, such as genetic sequence data, such as a file in FASTQ format or the like, and execute one or more protocols 600 for secondary processing of the generated and/or received data, which protocols may be implemented in software, hardware, or a combination thereof. For example, the data generation and/or computation resources 110 may be configured to implement one or more mapping operations 112, alignment operations 113, or other related functions 114 on the received or generated data.
[00519] Более конкретно, ресурсы 110 для генерации данных могут содержать картирующий модуль 112, как описано в настоящем документе, или могут быть другим образом запрограммированы для исполнения алгоритма картирования над данными генетической последовательности, например для выполнения преобразования Барроуза-Уилера и/или других алгоритмов построения хэш-таблицы и/или исполнения хэш-функции 112a над указанными данными, например для картирования семян с помощью хэш-функции для генерации картированных данных последовательности. Ресурсы 110 для генерации данных могут также содержать выравнивающий модуль 113, как описано в настоящем документе, или могут быть другим образом запрограммированы для исполнения алгоритма выравнивания над данными генетической последовательности, например над картированными секвенированными данными, например для выполнения выравнивания Смита-Ватермана с промежутками и/или без промежутков, и/или алгоритма Нидлмана-Вунша или других алгоритмов 113a оценивания над указанными данными для генерации выровненных данных последовательности. Ресурсы 110 для генерации данных могут также быть выполнены содержащими один или более других модулей 114, выполненных с возможностью выполнения одной или более других функций обработки над данными генетической последовательности, например над картированными и/или выровненными данными последовательности, и, следовательно, могут содержать подходящим образом сконфигурированный модуль 114 или могут быть другим образом запрограммированы для исполнения одной или более других функций обработки, таких как сортировка 114a, удаление 114b дубликатов, рекалибровка 114c, местное повторное выравнивание 114d, дублирующая маркировка 114f, функция (функции) Рекалибровки 114g оценки качества оснований и/или функция сжатия (например для получения файла в формате BAM, Reduced BAM и/или сжатый и/или распакованный CRAM) 114e, в соответствии со способами, раскрытыми в настоящем документе, причем указанные функции обработки могут быть выполнены в виде одного или более конвейеров системы 1. Аналогичным образом, система 1 может содержать модуль 115, выполненный с возможностью обработки данных, например секвенированных, картированных, выровненных и/или сортированных данных, так чтобы получать файл 116 определения вариантов, например с функциональными возможностями обработки, основанными на аппаратнои обеспечении и/или программном обеспечении. Более конкретно, система 1 может содержать модуль 115 определения вариантов для исполнения одной или более функций определения вариантов, например функции 115a скрытой марковской модели (СММ, HMM) и/или программного обеспечения геномного анализа (GATK), например в монтажной конфигурации и/или посредством одного или более приложений программного обеспечения, локально или удаленно, и/или преобразователь 115b для тех же целей.[00519] More specifically, the data generation resources 110 may comprise a mapping module 112, as described herein, or may otherwise be programmed to perform a mapping algorithm on genetic sequence data, such as to perform a Burrows-Wheeler transform and/or other algorithms constructing a hash table and/or executing a hash function 112a on said data, such as mapping seeds using a hash function to generate mapped sequence data. The data generation resources 110 may also include an alignment module 113, as described herein, or may otherwise be programmed to perform an alignment algorithm on genetic sequence data, such as mapped sequenced data, such as to perform a Smith-Waterman alignment with gaps and/or or without gaps, and/or the Needleman-Wunsch algorithm or other evaluation algorithms 113a on the specified data to generate aligned sequence data. The data generation resources 110 may also be configured to include one or more other modules 114 configured to perform one or more other processing functions on genetic sequence data, such as mapped and/or aligned sequence data, and may therefore suitably contain configured module 114 or may be otherwise programmed to perform one or more other processing functions, such as sort 114a, de-duplicate 114b, recalibrate 114c, local realignment 114d, duplicate marking 114f, Recalibrate base quality evaluation function(s) 114g, and/or or a compression function (e.g., to produce a file in BAM format, Reduced BAM, and/or compressed and/or decompressed CRAM) 114e, in accordance with methods disclosed herein, which processing functions may be implemented as one or more system pipelines 1. Likewise, system 1 may include a module 115 configured to process data, such as sequenced, mapped, aligned and/or sorted data, so as to obtain a variant definition file 116, such as with processing functionality based on hardware and/or or software. More specifically, system 1 may include a variant determination module 115 for executing one or more variant determination functions, such as a hidden Markov model (HMM) function 115a and/or genomic analysis software (GATK), for example in a mounting configuration and/or through one or more software applications, locally or remotely, and/or converter 115b for the same purposes.
[00520] В некоторых вариантах реализации, показанных на фиг. 8 и 10, система 1 может содержать локальную вычислительную функцию 100, которая может быть выполнена с возможностью применения компьютерных обрабатывающих ресурсов 150 для выполнения одной или более дополнительных функций компьютерной обработки над данными, сгенерированными системным генератором 110 или полученными посредством механизма 120 получения системы (как описано ниже), например посредством передачи в них, например третьими лицами 121, к примеру, посредством облака 30 или гибридной облачной сети 50. Например, анализатор 121 третьих лиц может развертывать удаленные вычислительные ресурсы 300 для генерации релевантных данных с необходимостью дальнейшей обработки, таких как данные генетической последовательности или тому подобное, причем указанные данные могут быть переданы системе 1 по сети 30/50 для дальнейшей обработки. Это может быть полезным, например, когда удаленные вычислительные ресурсы 300 представляют собой NGS, выполненный с возможностью приема первичных биологических данных и преобразования их в цифровую форму, например в форму одного или более файлов в формате FASTQ, содержащих риды данных генетической последовательности, и когда требуется дальнейшая обработка, например для определения, как сгенерированная последовательность объекта отличается от одной или более контрольных последовательностей, как описано в настоящем документе, и/или требуется подвергнуть ее результаты дальнейшей, например третичной, обработке.[00520] In some embodiments shown in FIGS. 8 and 10, system 1 may include a local computing function 100 that may be configured to use computer processing resources 150 to perform one or more additional computer processing functions on data generated by the system generator 110 or received by the system acquisition engine 120 (as described below), for example by transmission to them, for example by third parties 121, for example, via cloud 30 or hybrid cloud network 50. For example, third party analyzer 121 can deploy remote computing resources 300 to generate relevant data with the need for further processing, such as data genetic sequence or the like, wherein said data can be transferred to system 1 via a 30/50 network for further processing. This may be useful, for example, when the remote computing resources 300 are NGS configured to receive raw biological data and convert it into digital form, such as the form of one or more FASTQ files containing genetic sequence data reads, and when required further processing, for example to determine how the generated object sequence differs from one or more reference sequences, as described herein, and/or the results are required to be subjected to further, for example tertiary, processing.
[00521] В таком примере система 1 может быть выполнена с возможностью обеспечения доступа одних или более лиц, например пользователей в виде первых, вторых и/или третьих лиц, к связанных локальным обрабатывающим ресурсам 100 и/или подходящим образом конфигурированным удаленным обрабатывающим ресурсам 300, связанным с ними, таким образом, чтобы обеспечить пользователю возможность выполнения одной или более количественной и/или качественной функции 152 обработки над сгенерированными и/или полученными данными. Например, в одной конфигурации, система 1 может содержать, например в дополнение к конвейерам для первичной 600 и/или вторичной 600 обработки, третий уровень обрабатывающих модулей 700, которые могут быть выполнены с возможностью реализации одной или более функций обработки над сгенерированными и/или полученными первичными и/или вторичными обработанными данными.[00521] In such an example, system 1 may be configured to provide access to one or more persons, such as first, second, and/or third party users, to associated local processing resources 100 and/or suitably configured remote processing resources 300. associated therewith, so as to enable the user to perform one or more quantitative and/or qualitative processing functions 152 on the generated and/or received data. For example, in one configuration, system 1 may include, for example, in addition to pipelines for primary 600 and/or secondary 600 processing, a third layer of processing modules 700 that may be configured to implement one or more processing functions on generated and/or received primary and/or secondary processed data.
[00522] В частности, в одном из вариантов реализации, система 1 может быть выполнена с возможностью генерации и/или приема обработанных данных 111 генетической последовательности, которые были картированы удаленно или локально для генерации файла 116 определения вариантов, который затем может быть подвергнут дальнейшей обработке, например в системе 1, например в ответ на аналитический запрос 121 вторых и/или третьих лиц. Более конкретно, система 1 может быть выполнена с возможностью приема запросов на обработку от третьих лиц 121, а также с возможностью выполнения такой запрошенной третичной обработки 700 над сгенерированными и/или полученными данными. В частности, система 1 может быть выполнена с возможностью выработки и/или получения данных 111 генетической последовательности, с возможностью получения указанных данных генетической последовательности и выполнения их картирования 112, выравнивания 113 и/или сортировки 114a для получения одного или более файлов 116 определения вариантов (VCFs), и дополнительно система 1 может быть выполнена с возможностью реализации функции 700 третичной обработки над данными, например в отношении одного или более файлов VCF. Система 1 может быть выполнена с возможностью реализации любой формы третичной обработки 700 над сгенерированными и/или полученными данными, например подвергая их конвейерных функции 700 обработки, например для генерации данных 122a генома, данных 122b эпигенома, данных 122c метагенома и тому подобного, включая совместное генотипирование 122d, конвейеры анализа GATK 122e и/или MuTect2 122f. Кроме того, система 1 может быть выполнена с возможностью реализации дополнительного уровня обработки над сгенерированными и/или обработанными данными, включая, например, одно или более из неинвазивного пренатального тестирования (NIPT) 123a, реанимации и интенсивной терапии новых пациентов (N/P ICU) 123b, относящихся к раку видов диагностики и/или терапевтических методов 123c, проводимых в лаборатории исследований (LDT) 123d, применений 123e, относящихся к агробиологии (Ag Bio), или другой такой функции обработки, относящейся 123f к области здравоохранения.[00522] Specifically, in one embodiment, system 1 may be configured to generate and/or receive processed genetic sequence data 111 that has been mapped remotely or locally to generate variant definition file 116, which can then be further processed , for example in system 1, for example in response to an analytical request 121 from second and/or third parties. More specifically, the system 1 may be configured to receive requests for processing from third parties 121, as well as to perform such requested tertiary processing 700 on the generated and/or received data. In particular, system 1 may be configured to generate and/or obtain genetic sequence data 111, obtain said genetic sequence data and perform mapping 112, alignment 113, and/or sorting 114a thereof to produce one or more variant definition files 116 ( VCFs), and further the system 1 may be configured to implement a tertiary processing function 700 on the data, for example with respect to one or more VCF files. System 1 may be configured to implement any form of tertiary processing 700 on the generated and/or received data, such as subjecting it to pipeline processing functions 700, such as to generate genome data 122a, epigenome data 122b, metagenome data 122c, and the like, including co-genotyping 122d, GATK 122e and/or MuTect2 analysis pipelines 122f. In addition, system 1 may be configured to implement an additional layer of processing on the generated and/or processed data, including, for example, one or more of non-invasive prenatal testing (NIPT) 123a, new patient intensive care unit (N/P ICU) 123b, cancer-related diagnostics and/or therapeutic methods 123c conducted in laboratory research (LDT) 123d, applications 123e related to agrobiology (Ag Bio), or other such processing function related 123f to the healthcare field.
[00523] Следовательно, в различных вариантах реализации, где первичный пользователь может осуществлять доступ к системе 1 или ее компонентам напрямую, и/или конфигурировать их напрямую, например посредством прямого доступа к ним, например через локальные вычислительные ресурсы 100, как описано в настоящем документе, система 1 также может быть выполнена с возможностью доступа к ней вторичными лицами, например подключенными к системе 1 через локальную сеть или внутреннее соединение 10 для конфигурации и запуска системы 1 в локальной среде. В дополнение, в некоторых вариантах реализации, показанных на фиг. 2В, система также может быть выполнена с возможностью доступа к ней и/или ее конфигурации третьими лицами 121, например по связанной гибридной облачной сети 50, соединяющей третьих лиц 121 с системой 1, например через программный интерфейс приложения (API), доступный через один или более компонентов графического пользовательского интерфейса (ГПИ, GUI). Такой ГПИ может быть выполнен с возможностью обеспечения третьим лицам доступа к системе 1 и, с использованием API, с возможностью конфигурации различных компонентов системы, модулей, связанных конвейеров и других связанных функциональных элементов для генерации и/или обработки данных для запуска только тех компонентов системы, которые необходимы и/или полезны третьим лицам и/или запуск которых необходим или требуется.[00523] Consequently, in various implementations where the primary user can access and/or configure system 1 or its components directly, such as by directly accessing them, such as through local computing resources 100, as described herein , system 1 may also be configured to be accessible by secondary parties, such as those connected to system 1 via a local network or internal connection 10 to configure and run system 1 in a local environment. In addition, in some embodiments shown in FIGS. 2B, the system may also be capable of being accessed and/or configured by third parties 121, such as through an associated hybrid cloud network 50 connecting third parties 121 to system 1, such as through an application programming interface (API) accessible through one or more graphical user interface (GUI) components. Such a GUI may be configured to provide third parties with access to the system 1 and, using an API, to configure various system components, modules, associated pipelines, and other associated functional elements to generate and/or process data to run only those system components that which are necessary and/or useful to third parties and/or the launch of which is necessary or required.
[00524] Соответственно, в различных примерах система 1, представленная в настоящем документе, может быть выполнена с возможностью ее конфигурации перыичным, вторичным или третичным пользователем системы. В таком примере система 1 может быть выполнена с возможностью ее конфигурации пользователем и, таким образом, выполнения ее компонентов таким образом, чтобы обеспечить возможность исполнения одних, всех или выбранных аналитических ресурсов системы, например 152, над данными, сгенерированными, полученными системой, или другим образом переданными в нее, например первичным, вторичным или третичным пользователем, так что система 1 запускает только те части системы, которые необходимы или полезны для исполнения аналитических функций, запрошенных пользователем, для получения необходимых результатов. Например для этих и других целей API может содержаться в системе 1, причем API содержит или другим образом операционно связан с графическим пользовательским интерфейсом (ГПИ), включая операционное меню и/или соответствующий список вариантов функционирования системы, из которых пользователь может выбрать и/или другим образом конфигурировать и управлять системой и ее компонентами, как это требуется.[00524] Accordingly, in various examples, the system 1 presented herein may be configured by a primary, secondary, or tertiary user of the system. In such an example, system 1 may be configured by a user, and thus its components can be executed in such a way as to enable execution of some, all, or selected analytical resources of the system, such as 152, on data generated, received by the system, or other transmitted to it, for example by a primary, secondary or tertiary user, such that system 1 runs only those parts of the system that are necessary or useful to perform the analytical functions requested by the user to obtain the desired results. For example, for these and other purposes, an API may be contained in system 1, wherein the API contains or is otherwise operationally linked to a graphical user interface (GUI), including an operating menu and/or a corresponding list of system operating options from which the user can select and/or other configure and manage the system and its components as required.
[00525] В таком примере меню и/или варианты функционирования системы ГПИ могут управлять одной или более выбираемыми пользователем операциями 600 первого уровня, включая: секвенирование 111, картирование 112, выравнивание 113, сортировку 114a, определение 115 вариантов и/или другие связанные функции 114 в соответствии с приведенной в настоящем документе информацией, например в отношении функций первичной и/или вторичной обработки, описанных в настоящем документе. Кроме того, при необходимости меню и/или варианты функционирования системы в ГПИ могут управлять одной или более операциями 700 второго уровня, включая: конвейер 122a генома, конвейер 122b эпигенома, конвейер 122c метагенома, конвейер 122d совместного генотипирования, конвейеры анализа GATK 122e и/или MuTect2 122f. Кроме того, при необходимости меню и варианты функционирования системы в ГПИ могут управлять одной или более выбираемыми пользователем операциями 800 третьего уровня, включая: неинвазивное пренатальное тестирование (NIPT) 123a, N/P ICU 123b, относящиеся к раку виды диагностики и/или терапевтические методы 123c, проводимые в лаборатории исследования (LDT) 123d, применения 123e, относящиеся к агробиологии (Ag Bio), или другие такие функции обработки, относящиеся 123f к области здравоохранения.[00525] In such an example, menus and/or GUI system operating options may control one or more user-selectable first-level operations 600, including: sequencing 111, mapping 112, alignment 113, sorting 114a, variant determination 115, and/or other related functions 114 in accordance with the information provided herein, for example in relation to the primary and/or secondary processing functions described herein. In addition, if desired, menus and/or system operation options in the GUI may control one or more second-level operations 700, including: genome pipeline 122a, epigenome pipeline 122b, metagenome pipeline 122c, co-genotyping pipeline 122d, GATK analysis pipelines 122e and/or MuTect2 122f. In addition, menus and system operation options in the GUI may, if desired, control one or more user-selectable third-level operations 800, including: non-invasive prenatal testing (NIPT) 123a, N/P ICU 123b, cancer-related diagnostics and/or therapeutic modalities. 123c laboratory-based research (LDT) 123d, applications 123e related to agrobiology (Ag Bio), or other such processing functions related 123f to the healthcare field.
[00526] Соответственно, меню и варианты функционирования системы могут включать одну или более из функций первичной, вторичной и/или третичной обработки для обеспечения конфигурации системы и/или ее компонентов для реализации одного или более конвейеров для анализа данных, выбранных и сконфигурированных пользователем. В таком примере локальные вычислительные ресурсы 100 могут быть выполнены так, чтобы соответстовать удаленным вычислительным ресурсам и/или зеркально отображать их, и/или аналогичным образом локальные ресурсы 200 хранения могут быть выполнены так, чтобы соответствовать удаленным ресурсам 400 хранения и/или зеркально отображать их, так чтобы различным компоненты системы могут запускаться и/или сгенерированные ими данные могут храниться как локально, так и удаленно бесшовным образом по выбору пользователя системы 1. Кроме того, в некоторых вариантах реализации к системе 1 может быть обеспечен доступ третьих лиц для запуска собственных протоколов 121a анализа над сгенерированными и/или обработанными данными, например посредством прогона через интерфейс искуственного интеллекта, выполненного с возможностью поиска корреляций между ними.[00526] Accordingly, menus and system operation options may include one or more of primary, secondary, and/or tertiary processing functions to configure the system and/or its components to implement one or more data analysis pipelines selected and configured by the user. In such an example, local computing resources 100 may be configured to correspond to and/or mirror remote computing resources, and/or similarly, local storage resources 200 may be configured to correspond to and/or mirror remote storage resources 400 , so that various components of the system can be run and/or the data they generate can be stored either locally or remotely in a seamless manner at the discretion of the user of system 1. Additionally, in some embodiments, system 1 can be accessed by third parties to run their own protocols 121a analysis on the generated and/or processed data, for example by running through an artificial intelligence interface, configured to search for correlations between them.
[00527] Система 1 может быть выполнена с возможностью реализации любой формы третичной обработки над сгенерированными и/или полученными данными. Следовательно, в различных вариантах реализации первичный, вторичный или третичный пользователь может осуществлять доступ и/или конфигурировать любой уровень системы 1 и различных ее компонентов напрямую, например посредством прямого доступа к вычислительным ресурсам 100, опосредованно, например через локальное сетевое соединение 10, или по связанной гибридной облачной сети 50, соединяющей указанное лицо с системой 1, например посредством соответствующим образом сконфигурированного API, имеющего соответствующие разрешения. В таком примере компоненты системы могут быть представлены как меню, такое как меню ГПИ с возможностью выбора, в котором пользователь может выбрать из всех различных вариантов обработки и хранения, которые необходимо исполнить над данными, представленными пользователем. Кроме того, в некоторых примерах пользователь может хагружать собственные системные протоколы для принятия и исполнения их системой для обработки различных данных образом, разработанным и выбранным пользователем. В таком примере ГПИ и связанный API обеспечат пользователю доступ к системе 1 и, с использованием API, возможность добавления и конфигурации различных компонентов системы, модулей, связанных конвейеров и других связанных функциональных элементов для генерации и/или обработки данных для запуска только тех компонентов системы, которые необходимы и/или полезны указанному лицу и/или запуск которых необходим или требуется.[00527] System 1 may be configured to implement any form of tertiary processing on the generated and/or received data. Therefore, in various embodiments, a primary, secondary, or tertiary user may access and/or configure any layer of the system 1 and its various components directly, such as through direct access to computing resources 100, indirectly, such as through a local network connection 10, or over an associated hybrid cloud network 50 connecting the specified person to system 1, for example through a suitably configured API having appropriate permissions. In such an example, the components of the system may be represented as a menu, such as a selectable GUI menu, in which the user can select from all the different processing and storage options to be performed on data submitted by the user. Additionally, in some examples, the user may load custom system protocols to be accepted and executed by the system to process various data in a manner designed and chosen by the user. In such an example, the GUI and associated API would provide the user with access to System 1 and, using the API, the ability to add and configure various system components, modules, associated pipelines, and other associated functional elements to generate and/or process data to run only those system components. which are necessary and/or useful to the specified person and/or the launch of which is necessary or required.
[00528] Хотя приведенная выше в отношении фиг. 8 и 9 информация направлена на генерацию 110 данных, например на локальную генерацию 100 данных, использующую локальные вычислительные ресурсы 150; как описано выше в отношении фиг. 9, один или более из указанных выше отдельных модулей и их соответствующие функции и/или связанные ресурсы могут быть выполнены с возможностью удаленной реализации, например посредством удаленных вычислительных ресурсов 300, и также могут быть выполнены с возможностью их передачи в систему 1, например по протоколу бесшовной передачи по Интернет-соединению 30/50 на облачной основе, например посредством сконфигурированного подходящим образом механизма 120 получения данных.[00528] Although the above in relation to FIG. 8 and 9, information is directed to data generation 110, such as local data generation 100 using local computing resources 150; as described above in relation to FIG. 9, one or more of the above individual modules and their respective functions and/or associated resources may be capable of being remotely implemented, for example by remote computing resources 300, and may also be capable of being communicated to system 1, for example via a protocol seamless transmission over a 30/50 Internet connection on a cloud basis, for example through a suitably configured data acquisition engine 120.
[00529] Соответственно, в таком примере локальные вычислительные ресурсы 100 могут содержать механизм 120 получения данных, например выполненный с возможностью передачи и/или приема таких полученных данных и/или связанной информации. Например система 1 может содержать механизм 120 получения данных, выполненный таким образом, чтобы обеспечивать непрерывную обработку и/или хранение данных бесшовным и надежным образом, например по облачной или гибридной сети 30/50, в которой функции обработки распределены локально 100 и/или удаленно 300, и, аналогичным образом, в которой один или более результатов такой обработки могут храниться локально 200 и/или удаленно 400, так что система бесшовным образом распределяет, каким из локальных и удаленных ресурсов должна быть направлена выбранная задача для обработки и/или хранения, вне зависимости от того, где физически расположены указанные ресурсы. Такая распределенная обработка, передача и получение могут включать одно или более из секвенирования 111, картирования 112, выравнивания 113, сортировки 114a, дублирующей маркировки 114c, удаления дубликатов, рекалибровки 114d, местного повторного выравнивание 114e, функции (функций) Рекалибровки 114f оценки качества оснований и/или функции сжатия 114g, а также функции 116 определения вариантов, как описано в настоящем документе. Когда обработанные данные хранятся локально 200 или удаленно 400 в любом состоянии, они в процессе могут быть выполнены доступными для локальных 100 или удаленных 300 обрабатывающих ресурсов, например для дальнейшей обработки перед повторной передачей и/или повторного хранения.[00529] Accordingly, in such an example, local computing resources 100 may include a data acquisition engine 120, such as configured to transmit and/or receive such acquired data and/or related information. For example, system 1 may include a data acquisition engine 120 configured to enable continuous processing and/or storage of data in a seamless and reliable manner, such as over a cloud or 30/50 hybrid network in which processing functions are distributed locally 100 and/or remotely 300 , and likewise in which one or more results of such processing may be stored locally 200 and/or remotely 400 such that the system seamlessly allocates to which of the local and remote resources a selected task should be directed for processing and/or storage, outside depending on where the specified resources are physically located. Such distributed processing, transmission, and reception may include one or more of sequencing 111, mapping 112, alignment 113, sorting 114a, duplicate labeling 114c, duplicate removal, recalibration 114d, local realignment 114e, Recalibration function(s) 114f, and base quality assessment function(s), and /or compression functions 114g, as well as variant determination functions 116, as described herein. When processed data is stored locally 200 or remotely 400 in any state, it may in the process be made available to local 100 or remote 300 processing resources, such as for further processing before retransmission and/or re-storage.
[00530] В частности, система 1 может быть выполнена с возможностью выработки и/или получения данных 111 генетической последовательности, может быть выполнена с возможностью обработки указанных данных 111 генетической последовательности локально 150 или передачи указанных данных по соответствующим образом конфигурированной облачной 30 или гибридной облачной 50 сети, например на удаленные обрабатывающие средства для удаленной обработки 300. Кроме того, после обработки данных система 1 может быть выполнена с возможностью хранения обработанных удаленно 400 или передачи их обратно для локального хранения 200. Соответственно, система 1 может быть выполнена с возможностью локальной или удаленной генерации и/или обработки данных, например когда этапы генерации и/или обработки могут формировать первый уровень функций 600 первичной и/или вторичной обработки, который может включать одно или более из: секвенирования 111, картирования 112, выравнивания 113 и/или сортировки 114a для получения одного или более файлов 116 определения вариантов (VCFs). Аналогично, система 1 может быть выполнена с возможностью локальной или удаленной генерации и/или обработки данных, например когда этапы генерации и/или обработки могут формировать второй уровень функций 700 третичной обработки, который может включать одно или более из генерации и/или получения данных согласно конвейеру 122a генома, программному конвейеру 122b эпигенома, конвейеру 122c метагенома, конвейеру 122d совместного генотипирования, конвейеру анализа GATK 122e и/или MuTect2 122f. Дополнительно, система 1 может быть выполнена с возможностью локальной или удаленной генерации и/или обработки данных, например когда этапы генерации и/или обработки могут формировать третий уровень функций обработки, как показано на фиг. 11, который может включать одно или более из генерации и/или получения данных, относящихся к и включающих: неинвазивное пренатальное тестирование (NIPT) 123a, N/P ICU 123b, относящиеся к раку виды диагностики и/или терапевтические методы 123c, различные проводимые в лаборатории исследования (LDT) 123d, применения 123e, относящиеся к агробиологии (Ag Bio), или другие такие функции обработки, относящиеся 123f к области здравоохранения.[00530] In particular, system 1 may be configured to generate and/or receive genetic sequence data 111, may be configured to process said genetic sequence data 111 locally 150, or transmit said data over a suitably configured cloud 30 or hybrid cloud 50 networks, for example to remote processing means for remote processing 300. In addition, after processing the data, the system 1 may be configured to store the processed remotely 400 or transfer it back to local storage 200. Accordingly, the system 1 may be configured to store the processed remotely 400 locally or remotely. generation and/or processing of data, for example where the generation and/or processing steps may form a first layer of primary and/or secondary processing functions 600, which may include one or more of: sequencing 111, mapping 112, alignment 113, and/or sorting 114a for receiving one or more variant definition files (VCFs) 116. Likewise, system 1 may be configured to locally or remotely generate and/or process data, such as where the generation and/or processing steps may form a second layer of tertiary processing functions 700, which may include one or more of generating and/or receiving data according to genome pipeline 122a, epigenome software pipeline 122b, metagenome pipeline 122c, co-genotyping pipeline 122d, GATK analysis pipeline 122e and/or MuTect2 122f. Additionally, system 1 may be configured to generate and/or process data locally or remotely, for example where the generation and/or processing steps may form a third layer of processing functions, as shown in FIG. 11, which may include one or more of generating and/or obtaining data related to and including: non-invasive prenatal testing (NIPT) 123a, N/P ICU 123b, cancer-related diagnostics and/or therapeutic modalities 123c, various conducted in laboratory research (LDT) 123d, applications 123e related to agrobiology (Ag Bio), or other such processing functions related 123f to the healthcare field.
[00531] В некоторых вариантах реализации, показанных на фиг. 8, 9 и 10, система 1 может также быть выполнена с возможностью обеспечения доступа одних или более лиц к системе и к передаче информации на связанные локальные обрабатывающие 100 и/или удаленные обрабатывающие ресурсы, или от них, а также к хранению информации локально 200 или удаленно 400 таким образом, который позволяет пользователю выбрать, какую информацию обработать и/или сохранить в системе 1. В таком примере пользователь может не только решать, какие функции первичной, вторичной и/или третичной ообработки выполнять над сгенерированными и/или полученными данными, но также как указанные ресурсы могут быть реализованы и/или где результаты такой обработки будут храниться. Например, в одной конфигурации, пользователь может выбрать, будут ли данные сгенерированы локально или удаленно, или комбинированно, будут ли они подвергнуты вторичной обработке, и если да, то какими модулями вторичной обработки они будут обработаны, и/или какие ресурсы исполняют какие из указанных процессов, и далее может определить, будут ли сгенерированные или полученные данные далее подвергнуты третичной обработке, и если да, то какими модулями и/или какими уровнями третичной обработки 700 они будут обработаны, и/или какие ресурсы исполняют какую из указанных обработок, и, аналогичным образом, где результаты указанных обработок будут храниться для каждого этапа операций.[00531] In some embodiments shown in FIGS. 8, 9, and 10, the system 1 may also be configured to allow one or more persons to access the system and to transmit information to or from associated local processing 100 and/or remote processing resources, as well as to store information locally 200 or remotely 400 in a manner that allows the user to select what information to process and/or store in the system 1. In such an example, the user can not only decide what primary, secondary and/or tertiary processing functions to perform on the generated and/or received data, but as well as how the specified resources can be implemented and/or where the results of such processing will be stored. For example, in one configuration, the user can select whether data will be generated locally or remotely, or a combination of these, whether it will be processed, and if so, which secondary processing modules will process it, and/or which resources execute which of the following. processes, and can further determine whether the generated or received data will be further subjected to tertiary processing, and if so, which modules and/or which levels of tertiary processing 700 will process it, and/or which resources perform which of said processing, and, in a similar way, where the results of the specified processing will be stored for each stage of operations.
[00532] В частности, в одном варианте реализации пользователь может конфигурировать систему 1 таким образом, что генерация данных 111 генетической последовательности происходит удаленно, например посредством NGS, а вторичная обработка 600 данных происходит локально. В таком примере пользователь затем может определять, какие из функций вторичной обработки выполняются локально 100, например посредством выбора функций обработки, таких как картирование 112, выравнивание 113, сортировка 111 и/или получение файла VCF 116, в меню доступных вариантов обработки. Пользователь может затем выбирать, подвергнуть ли локально обработанные данные третичной обработке, и если да, то какие модули привести в действие для дальнейшей обработки данных, и будет ли такая третичная обработка происходить локально 100 или удаленно 300. Аналогичным образом, пользователь может выбрать различные варианты для различных уровней вариантов третичной обработки, а также где какие-либо сгенерированные и/или полученные данные должны храниться, локально 200 или удаленно 400, на любом заданном этапе или в любой заданный момент времени в процессе работы.[00532] Specifically, in one embodiment, a user may configure system 1 such that generation of genetic sequence data 111 occurs remotely, such as through NGS, and secondary data processing 600 occurs locally. In such an example, the user can then determine which of the secondary processing functions are performed locally 100, for example, by selecting processing functions such as mapping 112, leveling 113, sorting 111, and/or retrieving VCF file 116 from a menu of available processing options. The user can then choose whether to subject locally processed data to tertiary processing, and if so, which modules to activate for further processing of the data, and whether such tertiary processing will occur locally 100 or remotely 300. Likewise, the user can select different options for various levels of tertiary processing options, and where any generated and/or received data should be stored, locally 200 or remotely 400, at any given stage or at any given point in time during the operation.
[00533] Более конкретно, первичный пользователь может конфигурировать систему для приема запросов на обработку от третьих лиц, причем третьи лица могут конфигурировать систему для выполнения запрошенной первичной, вторичной и/или третичной обработки над сгенерированными и/или полученными данными. В частности, пользователь или вторые или третье лицы могут конфигурировать систему 1 для выработки и/или получения данных генетической последовательности, локально 100 или удаленно 200, могут конфигурировать систему 1 для получения указанных данных генетической последовательности и выполнения их картирования, выравнивания и/или сортировки, локально или удаленно, для получения одного или более файлов определения вариантов (VCFs), и дополнительно могут конфигурировать систему 1 для выполнения функции третичной обработки над данными, например в отношении одного или более файлов VCF, локально или удаленно. Более конкретно, пользователь или другие лица могут конфигурировать систему 1 для выполнения любой формы третичной обработки над сгенерированными и/или полученными данными, а также определять где указанная обработка будет происходить в системе. Следовательно, в различных вариантах реализации пользователь в виде первых, вторых или третьих лиц 121 может осуществлять доступ и/или конфигурировать систему 1 и ее различные компоненты напрямую, например посредством прямого доступа к локальной вычислительной функции 100, через локальное сетевое соединение 10 или по связанной гибридной облачной сети 50, соединяющей указанное лицо 121 с системой 1, например через программный интерфейс приложения (API), доступный через один или более компонентов графического пользовательского интерфейса (ГПИ). В таком примере пользователь в виде третьих лиц может осуществлять доступ к системе 1 и использовать API для конфигурации различных компонентов системы, модулей, связанных конвейеров и других связанных функциональных элементов для генерации и/или обработки данных для запуска только тех компонентов системы, которые необходимы и/или полезны третьим лицам и/или запуск которых необходим или требуется, и также назначать, какие вычислительные ресурсы будут обеспечивать запрошенную обработку и где будут храниться результирующие данные.[00533] More specifically, a primary user may configure the system to receive processing requests from third parties, wherein the third parties may configure the system to perform the requested primary, secondary, and/or tertiary processing on the generated and/or received data. In particular, a user or second or third parties may configure the system 1 to generate and/or obtain genetic sequence data, locally 100 or remotely 200, may configure the system 1 to obtain said genetic sequence data and perform mapping, alignment and/or sorting thereof, locally or remotely, to obtain one or more variant definition files (VCFs), and may further configure system 1 to perform a tertiary processing function on the data, for example, with respect to one or more VCF files, locally or remotely. More specifically, the user or others may configure the system 1 to perform any form of tertiary processing on the generated and/or received data, as well as determine where such processing will occur in the system. Therefore, in various embodiments, a first, second, or third party user 121 may access and/or configure the system 1 and its various components directly, such as through direct access to the local computing function 100, through a local network connection 10, or over an associated hybrid cloud network 50 connecting said entity 121 to system 1, for example through an application program interface (API) accessible through one or more graphical user interface (GUI) components. In such an example, a third party user may access system 1 and use the API to configure various system components, modules, associated pipelines, and other associated functional elements to generate and/or process data to run only those system components that are needed and/or or useful to third parties and/or whose execution is necessary or required, and also designate which computing resources will support the requested processing and where the resulting data will be stored.
[00534] Соответственно, в различных примерах система 1 может быть выполнена с возможностью ее конфигурации первичным, вторичным или третичным пользователем системы, который может конфигурировать систему 1 для настройки ее компонентов таким образом, чтобы обеспечить возможность исполнения одних, всех или выбранных аналитических ресурсов системы над данными, которые непосредственно генерирует, обеспечивает их генерацию системой 1 или обеспечивает их переданчу в систему 1, например по связанной с ней сети, например посредством механизма 120 получения данных. Таким образом система 1 может быть выполнена с возможностью запуска только тех частей системы, которые необходимы или полезны для выполнения аналитической функции, желаемой и/или запрошенной лицами, которые осуществляют запрос. Например для этих и других целей может быть обеспечен API, который содержит операционное меню и/или соответствующий список системных функциональных вариантов ГПИ, из которых пользователь может выбирать для конфигурирования и управления системой, как это требуется. Кроме того, в частных вариантах реализации система 1 может быть доступна третьим лицам, например государственным регулирующим структурам, например Федеральному управлению по лекарственным средствам (FDA) 70b, или обеспечивать третьим лицам возможность сопоставлять, компилировать и/или осуществлять доступ к базе данных генетической информации, извлеченной или другим образом полученной и/или компилированной системой 1 для формирования базы данных 70a электронных медицинских записей (EMR) и/или для обеспечения государственного доступа к системе и/или надзора за системой, например для FDA для Оценки разработки лекарственных средств. Система 1 может также накапливать, компилировать и/или аннотировать данные 70c и/или обеспечивать доступ других высокоуровневых пользователей к ним.[00534] Accordingly, in various examples, system 1 may be configured by a primary, secondary, or tertiary user of the system, who may configure system 1 to configure its components to enable execution of some, all, or selected analytical resources of the system over data that directly generates, causes them to be generated by system 1, or causes them to be transmitted to system 1, for example via a network associated with it, for example through a data acquisition mechanism 120. In this way, the system 1 can be configured to run only those parts of the system that are necessary or useful to perform the analytical function desired and/or requested by the persons making the request. For example, for these and other purposes, an API may be provided that contains an operating menu and/or a corresponding list of system GUI functional options from which the user can select to configure and control the system as required. In addition, in private embodiments, the system 1 may be made available to third parties, such as government regulatory agencies, such as the Federal Drug Administration (FDA) 70b, or provide third parties with the ability to collate, compile and/or access a database of genetic information, extracted or otherwise derived and/or compiled by the system 1 to form an electronic medical record (EMR) database 70a and/or to provide government access to the system and/or oversight of the system, such as for the FDA for Drug Development Evaluation. System 1 may also accumulate, compile and/or annotate data 70c and/or provide other high-level users with access to it.
[00535] Соответственно, в различных вариантах реализации, как можно видеть на фиг. 13, обеспечено гибридное облако 50, выполненное с возможностью соединения локальных вычислительных ресурсов 100 и/или ресурсов 200 хранения с удаленными вычислительными ресурсами 300 и/или ресурсами 400 хранения, например когда локальные и удаленные ресурсы отделены друг от друга дистальным образом, в пространстве, географически и тому подобное. В таком примере локальные и дистальные ресурсы могут быть выполнены с возможностью обмена информациией друг с другом так, чтобы разделять информацию, например цифровые данные, бесшовным образом друг с другом. В частности, локальные ресурсы могут быть выполнены с возможностью реализации одного или более типов обработки данных, например перед передачей по гибридной сети 50, а удаленные ресурсы могут быть выполнены с возможностью реализации одного или более типов дальнейшей обработки данных.[00535] Accordingly, in various embodiments, as can be seen in FIG. 13, a hybrid cloud 50 is provided, configured to connect local computing resources 100 and/or storage resources 200 with remote computing resources 300 and/or storage resources 400, such as when the local and remote resources are separated from each other distally, spatially, geographically etc. In such an example, local and distal resources may be configured to communicate with each other so as to share information, such as digital data, in a seamless manner with each other. In particular, local resources may be configured to implement one or more types of data processing, such as prior to transmission over the hybrid network 50, and remote resources may be configured to implement one or more types of further data processing.
[00536] Например, в одной конкретной конфигурации система 1 может быть выполнена таким образом, что функция 152 генерации и/или анализа сконфигурирована для ее выполнения локально 100 посредством локальных вычислительных ресурсов, например для выполнения функции первичной и/или вторичной обработки для генерации и/или обработки данных генетической последовательности, как описано в настоящем документе. Дополнительно, в различных вариантах реализации локальные ресурсы могут быть выполнены с возможностью реализации одной или более функций третичной обработки над данными, такой как одно или более из анализа генома, экзома и/или эпигенома, или анализа рака, микробиома и/или другие виды анализа с обработкой ДНК/РНК. Кроме того, когда предполагается передача таких данных, например на удаленные вычислительные ресурсы 300 и/или ресурсы 400 хранения, данные могут быть преобразованы, например подходящим образом сконфигурированным преобразователем 151, который может быть выполнен с возможностью индексации, преобразования, сжатия и/или шафрования данных, например перед передачей по гибридной сети 50.[00536] For example, in one particular configuration, the system 1 may be configured such that the generation and/or analysis function 152 is configured to be performed locally 100 via local computing resources, such as to perform a primary and/or secondary processing function to generate and/or or processing genetic sequence data as described herein. Additionally, in various embodiments, the local resources may be configured to implement one or more tertiary data processing functions, such as one or more of genome, exome, and/or epigenome analysis, or cancer, microbiome, and/or other analyzes with DNA/RNA processing. In addition, when such data is intended to be transferred, for example to remote computing resources 300 and/or storage resources 400, the data may be transformed, for example by a suitably configured converter 151, which may be configured to index, transform, compress and/or encrypt the data , for example before transmission over the hybrid network 50.
[00537] В частных примерах, например когда сгенерированные и обработанные данные передают на удаленные вычислительные ресурсы 300 для дальнейшей обработки, такая обработка может иметь глобальную природу и может включать прием данных из множества локальных вычислительных ресурсов 100, сопоставление таких множеств данных, аннотирование данных и их сравнение, например для интерпретации данных, определения их тенденций, анализ тенденций различных биомаркеров и способствование развитию методов диагностики, терапевтических методов и/или методов профилактики. Соответственно, в различных примерах удаленные вычислительные ресурсы 300 могут быть выполнены в виде ядра обработки данных, например где данные из множества различных источников могут передаваться, обрабатываться и/или храниться, например посредством доступа к ним локальных вычислительных ресурсов 100. Более конкретно, удаленное ядро 300 обработки может быть выполнено с возможностью приема данных из множества ресурсов 100, обработки данных и распределения обработанных данных обратно на множество различных локальных ресурсов 100 для обеспечения возможности взаимодействия между исследователями и/или ремурсами 100. Такое взаимодействие может включать различные протоколы разделения данных и дополнительно может включать подготовку данных, подлежащих передаче, например обеспечивая пользователю системы 1 возможность выбора между различными протоколами безопасности и/или настройками приватности для управления тем, как данные будут подготовлены к передаче.[00537] In particular examples, such as when generated and processed data is transferred to remote computing resources 300 for further processing, such processing may be global in nature and may include receiving data from multiple local computing resources 100, collating such data sets, annotating the data, and comparison, for example to interpret data, determine trends, analyze trends of various biomarkers and contribute to the development of diagnostic methods, therapeutic methods and/or prevention methods. Accordingly, in various examples, the remote computing resources 300 may be implemented as a data processing core, such as where data from a variety of different sources may be transmitted, processed, and/or stored, such as by being accessed by the local computing resources 100. More specifically, the remote core 300 processing may be configured to receive data from a plurality of resources 100, process the data, and distribute the processed data back to a plurality of different local resources 100 to enable interaction between researchers and/or resources 100. Such interaction may include various data sharing protocols and may further include preparing the data to be transmitted, for example by allowing the user of the system 1 to choose between different security protocols and/or privacy settings to control how the data is prepared for transmission.
[00538] В одном конкретном примере, как показано на фиг. 11, обеспечены локальные вычислительные ресурсы 100 и/или ресурсы 200 хранения, например в местоположении пользователя. Вычислительные ресурсы 100 и ресурсы 200 хранения могут быть соединены с ресурсами 121 для генерации данных, такими как NGS и/или секвенатор на микросхеме, как описано в настоящем документе, например по прямому или внутреннему соединению 10, причем секвенатор 121 выполнен с возможностью генерации данных генетической последовательности, например файла в формате FASTQ. Например, секвенатор 121 может являться частью и/или может быть расположен в том же устройстве, как и секвенатор вычислительных ресурсов 100 и/или блока хранения 200 для того, чтобы иметь прямое соединение с ним с возможностью обмена информацией и/или управления, или секвенатор 121 и вычислительные ресурсы 100 и/или ресурсы 200 хранения могут быть частью отдельных друг от друга устройств, но могут быть расположены на одном объекте и, таким образом, могут быть соединены посредством проводного или внутреннего 10 соединения. В некоторых примерах секвенатор 121 может быть расположен на другом объекте, отдельном от объекта с вычислительными ресурсами 100 и/или ресурсами 200 хранения, и, таким образом, может быть соединен по сети Интернет 30 или гибридному облачному соединению 50.[00538] In one specific example, as shown in FIG. 11, local computing resources 100 and/or storage resources 200 are provided, such as at the user's location. Computing resources 100 and storage resources 200 may be coupled to data generation resources 121, such as NGS and/or an on-chip sequencer as described herein, for example via a direct or internal connection 10, wherein the sequencer 121 is configured to generate genetic data sequences, for example a file in FASTQ format. For example, the sequencer 121 may be part of and/or may be located in the same device as the sequencer of the computing resources 100 and/or the storage unit 200 in order to have a direct connection with the ability to exchange information and/or control, or the sequencer 121 and the computing resources 100 and/or storage resources 200 may be part of separate devices, but may be co-located and thus may be connected via a wired or internal 10 connection. In some examples, sequencer 121 may be located in a separate facility from the facility with computing resources 100 and/or storage resources 200, and thus may be connected over the Internet 30 or hybrid cloud connection 50.
[00539] В таких примерах данные генетической последовательности могут быть обработаны 100 и сохранены локально 200 перед их передачей посредством подходящим образом сконфигурированного преобразователя 151, или сгенерированные данные последовательности могут быть переданы непосредственно на один или более преобразователей 151 и/или анализаторов 152, например по подходящим образом сконфигурированному локальному соединению 10, внутреннему 30 или гибридному облачному соединению 50, как описано выше, например перед выполнением обработки локально. В частности, как и ресурсы 121 для генерации данных, преобразователь 151 и/или анализатор 152 могут являться частью и/или могут быть расположены в том же устройстве, как и те же элементы вычислительных ресурсов 100 и/или блока хранения 200 для того, чтобы иметь прямое соединение с ним с возможностью обмена информацией и/или управления, или преобразователь 151 и/или анализатор 152 и вычислительные ресурсы 100 и/или ресурсы 200 хранения могут быть частью отдельных друг от друга устройств, но могут быть расположены на одном объекте и, таким образом, могут быть соединены посредством проводного или внутреннего 10 соединения. В некоторых примерах преобразователь 151 и/или анализатор 152 могут быть расположены на другом объекте, отдельном от объекта с вычислительными ресурсами 100 и/или ресурсами 200 хранения, и, таким образом, могут быть соединены по сети Интернет 30 или гибридному облачному соединению 50.[00539] In such examples, genetic sequence data may be processed 100 and stored locally 200 before being transmitted through a suitably configured converter 151, or the generated sequence data may be transmitted directly to one or more converters 151 and/or analyzers 152, such as through suitable the configured local connection 10, internal 30, or hybrid cloud connection 50 as described above, for example, before performing processing locally. In particular, like the data generation resources 121, the converter 151 and/or the analyzer 152 may be part of and/or located in the same device as the same elements of the computing resources 100 and/or storage unit 200 in order to have a direct connection with it with the ability to exchange information and/or control, or the converter 151 and/or analyzer 152 and computing resources 100 and/or storage resources 200 may be part of separate devices from each other, but may be located in the same facility and, thus, can be connected via a wired or internal 10 connection. In some examples, the converter 151 and/or analyzer 152 may be located in a separate facility from the facility with the computing resources 100 and/or storage resources 200, and thus may be connected over the Internet 30 or hybrid cloud connection 50.
[00540] В таких примерах, как показано на фиг. 13, преобразователь 151 может быть выполнен с возможностью подготовки данных к передаче перед проведением анализа или после проведения анализа, например посредством подходящим образом конфигурированных вычислительных ресурсов 100 и/или анализатора 152. Например, анализатор 152 может выполнять функцию вторичной и/или третичной обработки над даннымит, как описано в настоящем документе, например для анализа сгенерированных данных последовательности в отношении определения их геномных и/или экзомных характеристик 152a, их эпигеномных особенностей 152b, каких-либо различных интересующих маркеров ДНК и/или РНК и/или индикаторов рака 152c, и их взаимосвязи с одним или более микробиомов 152d, а также одним или более вторичным и/или третичным процессами, как описано в настоящем документе. Как было указано, сгенерированные и/или обработанные данные могут быть преобразованы, например посредством подходящим образом конфигурированного преобразователя 151, например перед передачей через систему 1 от одного ее компонента к другому, например по прямому, локальному 10, Интернет 30 или гибридному облачному 50 соединению. Такое преобразование может включать одно или более из преобразования 151d, такого, при котором данные преобразуют из одной формы в другую; обеспечение понимания 151c, включая кодирование, декодирование и/или извлечение данных другим образом из недоступной пониманию формы, и преобразование их в доступную для понимания форму, или из одной доступной для понимания формы в другую; индексация 151b, например включая компилирование и/или сопоставление сгенерированных данных от одних или более ресурсов и обеспечение возможности их поиска и/или установления местоположения, например посредством сгенерированных индексов; и/или шифрование 151a, например, создание блокируемого и разблокируемого защищенного паролем набора данных, например перед передачей по сети Интернет 30 и/или по гибридному облаку 50.[00540] In examples such as those shown in FIGS. 13, converter 151 may be configured to prepare data for transmission before or after analysis, such as through suitably configured computing resources 100 and/or analyzer 152. For example, analyzer 152 may perform secondary and/or tertiary processing functions on the data. , as described herein, for example, to analyze the generated sequence data with respect to determining their genomic and/or exome characteristics 152a, their epigenomic features 152b, any various DNA and/or RNA markers of interest and/or cancer indicators 152c, and their relationships with one or more microbiomes 152d, as well as one or more secondary and/or tertiary processes, as described herein. As indicated, the generated and/or processed data may be converted, for example through a suitably configured converter 151, for example before being transmitted through the system 1 from one component thereof to another, for example over a direct, local 10, Internet 30 or hybrid cloud 50 connection. Such a transformation may include one or more of a transformation 151d, such that the data is transformed from one form to another; providing understanding 151c, including encoding, decoding and/or otherwise extracting data from an incomprehensible form, and converting it into an understandable form, or from one understandable form to another; indexing 151b, for example including compiling and/or collating generated data from one or more resources and allowing it to be searched and/or located, for example through generated indexes; and/or encryption 151a, such as creating a locked and unlocked password-protected data set, such as before transmission over the Internet 30 and/or hybrid cloud 50.
[00541] Следовательно, в этих и/или других таких примерах гибридное облако 50 может быть выполнено с возможностью обеспечения возможности бесшовной и защищенной передачи данных по всем компонентам системы, например, когда гибридное облако 50 выполнено с возможностью разрешения различным пользователям системы конфигурировать ее составляющие части и/или саму систему для удовлетворения потребностей пользователя в отношении исследовательских, диагностических, терапевтических и/или профилактических открытий и/или разработок. В частности, гибридное облако 50 и/или различные компоненты системы 1 могут быть выполнены с возможностью функционального соединения с совместимыми и/или соответствующими интерфейсами API, которые выполнены с возможностью обеспечения пользователю возможности удаленного конфигурирования различных компонентов системы 1 для развертывания требуемых ресурсов нужным образом, причем локальным, удаленным или комбинированным способом, например на основе потребностей системы и особенностей выполняемых видов анализа, обеспечивая при этом обмен информацией в защищенной среде с возможностью шифрования. Другой приведенный в качестве примера вариант реализации гибридной облачной системы, представленной в настоящем документе, показан на фиг. 12.[00541] Therefore, in these and/or other such examples, the hybrid cloud 50 may be configured to enable seamless and secure transmission of data across all components of the system, for example, when the hybrid cloud 50 is configured to allow different users of the system to configure its component parts and/or the system itself to meet the user's needs for research, diagnostic, therapeutic and/or preventative discovery and/or development. In particular, the hybrid cloud 50 and/or the various components of the system 1 can be configured to be operably connected to compatible and/or appropriate APIs that are configured to allow the user to remotely configure the various components of the system 1 to deploy the required resources in a desired manner, wherein local, remote or a combination of these, for example based on the needs of the system and the specific types of analysis being performed, while ensuring the exchange of information in a secure environment with the ability to encrypt. Another exemplary implementation of the hybrid cloud system presented herein is shown in FIG. 12.
[00542] Например, как показано на фиг. 10-12 и, в частности, на фиг. 15, система 1 может быть многоуровневой и/или мультиплексированной платформой для биоаналитической обработки, которая содержит уровни блоков обработки, каждый из которых имеет один или более конвейеров для обработки, которые могут быть развернуты систематически, одновременно и/или последовательно для обработки генетической информации, начиная со стадии 400/500 ее первичной обработки для получения данных генетической последовательности, например в виде одного или более файла в формате FASTQ; к стадии 600 вторичной обработки для получения одного или более файла определения вариантов; и далее к выбору одного или более файлов определения вариантов или других связанных обработанных данных и выполнению одной или более других операций над ними, например для выполнения с ними одной или более из диагностических, профилактических и/или терапевтических процедур, например в ответ на запрос 121 третьих лиц и/или в ответ на данные, отправленные третьими лицами 121. Такая дальнейшая обработка может включать различные конвейерные протоколы 700, например выполненные с возможностью исполнения аналитических функций над определенными данными генетической вариации одного или более субъектов, включая аналитику генома, эпигенома, метагенома и/или генотипирования, например на одном уровне, и/или различные типы диагностики заболеваний и/или исследовательские протоколы 800, которые могут включать одно или более из NIPT, NICU, раковых, LDT, биологических, агробиологических применений и тому подобное. В частности, система 1 может быть также выполнена с возможностью приема и/или передачи различных данных 900, относящихся к процедурам и процессам, описанным в настоящем документе, например, имеющим отношение к данным электронных медицинских записей (EMR), данным испытаний и/или структурирования Федерального управления по лекарственным средствам (США), относящимся к аннотации данным и тому подобному. Такие данные могут быть полезными ввиду предоставления пользователю возможности создания и/или осуществления доступа к сформированным медицинским, диагностическим, терапевтическим и/или профилактическим методам, разработанным посредством использования системы 1 и/или доступным с ее помощью.[00542] For example, as shown in FIG. 10-12 and in particular in FIGS. 15, system 1 may be a multi-tiered and/or multiplexed bioanalytical processing platform that contains layers of processing units, each of which has one or more processing pipelines that can be deployed systematically, simultaneously and/or sequentially to process genetic information, starting from the stage 400/500 of its primary processing to obtain genetic sequence data, for example in the form of one or more files in FASTQ format; to a secondary processing step 600 to obtain one or more variant definition files; and further to selecting one or more variant definition files or other associated processed data and performing one or more other operations on them, for example to perform one or more of diagnostic, prophylactic and/or therapeutic procedures on them, for example in response to a request 121 third persons and/or in response to data submitted by third parties 121. Such further processing may include various pipeline protocols 700, such as those configured to perform analytical functions on certain genetic variation data of one or more subjects, including genome, epigenome, metagenome and/or analytics. or genotyping, for example at one level, and/or various types of disease diagnostics and/or research protocols 800, which may include one or more of NIPT, NICU, cancer, LDT, biological, agrobiological applications and the like. In particular, the system 1 may also be configured to receive and/or transmit various data 900 related to the procedures and processes described herein, for example, related to electronic medical records (EMR) data, testing and/or structuring data Federal Drug Administration (USA) related to annotation data and the like. Such data may be useful in allowing the user to create and/or access generated medical, diagnostic, therapeutic and/or preventive methods developed through the use of the system 1 and/or available through it.
[00543] Следовательно, одна или более, например все, из указанных функций таким образом могут быть выполнены локально, например на месте 10, в облаке 30 или посредством управляемого доступа через гибридное облако 50. В таком примере создана среда разработки, которая обеспечивает пользователю возможность управления функциональными особенностями системы для соответствия его или ее индивидуальным нуждам и/или для обеспечения доступа к ней для других лиц, которым требуются те же или подобные результаты. Следовательно, различные компоненты, процессы, процедуры, средства, уровни и иерархии системы могут быть выполнены с возможностью конфигурирования через интерфейс ГПИ, который позволяет пользователю выбирать, какие компоненты системы использовать, над какими данными, в какое время и в каком порядке в соответствии с установленными пользователем требованиями и протоколами для генерации соответствующих данных и соединений между данными, которые могут быть безопасно переданы по всей системе, локально или удаленно. Как было указано, эти компоненты могут быть выполнены с возможностью бесшовного обмена данными между собой независимо от местоположения и/или вида соединения, например посредством возможности конфигурирования, чтобы выполнять одни и те же или подобные процессы одинаковым или аналогичным образом, например путем использования соответствующих интерфейсов API, рассредоточенных по всей системе, применение которых позволяет различным пользователям конфигурировать различные компоненты для исполнения различных процедур аналогичным образом.[00543] Consequently, one or more, for example all, of these functions can thus be performed locally, for example on site 10, in the cloud 30, or through controlled access through a hybrid cloud 50. In such an example, a development environment is created that allows the user to control the functionality of the system to suit his or her individual needs and/or to make it available to others who require the same or similar results. Consequently, the various components, processes, procedures, tools, levels and hierarchies of the system can be made configurable through a GUI interface that allows the user to select which system components to use, on what data, at what time and in what order according to established user requirements and protocols to generate appropriate data and connections between data that can be securely transmitted throughout the system, locally or remotely. As stated, these components can be configured to seamlessly communicate with each other regardless of location and/or connection type, for example by being configurable to perform the same or similar processes in the same or similar manner, for example by using appropriate APIs , distributed throughout the system, the use of which allows different users to configure different components to perform different procedures in the same way.
[00544] Например, API может быть определен в заголовочном файле в отношении процессов, которые должны исполняться каждым конкретным компонентом системы 1, причем заголовок описывает функциональные возможности и определяет, как вызывать функции, например параметры, которые передаются, принимаемые входные и передаваемые выходные данные, и способ, каким это происходит, что поступает и каким образом, что выдается и каким образом, что возвращается и каким образом. Например, в различных вариантах реализации один или более компонентов и/или их элементов, которые могут формировать один или более конвейеров одного или более уровней системы, могут быть выполнены с возможностью их конфигурирования, например с помощью инструкций, вводимых пользователем и/или одним или более приложений вторых и/или третьих лиц. Эти инструкции могут передаваться в систему через соответствующие API, которые обмениваются информацией с одним или более различных драйверов системы, указывая драйверу (драйверам), какие части системы, например какие модули и/или какие процессы в них, нужно активировать, когда и в каком порядке, с учетом предварительно выбранной конфигурации параметров, которая может быть определена с помощью интерфейса, который может быть выбран пользователем, например ГПИ.[00544] For example, an API may be defined in a header file regarding the processes to be executed by each specific component of the system 1, the header describing the functionality and defining how to call the functions, such as parameters that are passed, inputs received, and outputs passed, and the way in which it happens, what comes in and how, what is issued and how, what is returned and how. For example, in various embodiments, one or more components and/or elements thereof, which may form one or more pipelines of one or more layers of the system, may be configured, such as by instructions entered by a user and/or one or more applications of second and/or third parties. These instructions can be passed to the system through appropriate APIs that communicate with one or more different system drivers, indicating to the driver(s) which parts of the system, such as which modules and/or which processes within them, should be activated, when, and in what order. , given a preselected configuration of parameters, which can be defined using an interface that can be selected by the user, such as a GUI.
[00545] Как описано выше, один или более драйверов ПДП системы 1 могут быть выполнены с возможностью работы соответствующим образом, например на уровне ядра каждого компонента и системы 1 в целом. В таком примере одно или более из предусмотренных ядер может иметь свой собственный базовый API очень низкого уровня, который обеспечивает доступ к аппаратному обеспечению и функциям различных компонентов системы 1, так что обеспечен доступ к соответствующим реестрам и модулям для конфигурирования и управления процессами и тем, как они исполняются в системе 1. В частности, сверху этого слоя может быть сформирован виртуальный слой служебных функций для формирования строительных блоков, которые используются для множества функций, которые отправляют файлы ниже в ядро (ядра) и получают обратно результаты, кодируют, шифруют и/или передают соответствующие данные и далее выполняют над ними функции более высокого уровня. Поверх этого слоя может быть сформирован дополнительный слой, использующий указанные служебные функции, которые могут быть уровня API, с которым может взаимодействовать пользователь, причем этот слой может быть выполнен с возможностью функционирования в основном для конфигурирования системы 1 в целом или ее составляющих частей, скачивая файлы и загружая результаты, при этом файлы и/или результаты могут быть переданы по всей системе, локально или глобально.[00545] As described above, one or more DMA drivers of system 1 may be configured to operate accordingly, for example, at the core level of each component and system 1 as a whole. In such an example, one or more of the provided cores may have its own very low level core API that provides access to the hardware and functions of various components of the system 1, so that access to the corresponding registries and modules is provided for configuring and managing processes and how they are executed in system 1. Specifically, a virtual layer of utility functions can be formed on top of this layer to form the building blocks that are used for a variety of functions that send files below to the kernel(s) and receive back results, encoding, encrypting and/or transmit the corresponding data and then perform higher-level functions on it. On top of this layer, an additional layer may be formed using said utility functions, which may be an API layer with which the user can interact, and this layer may be configured to function primarily to configure the system 1 as a whole or its component parts by downloading files and downloading results, where files and/or results can be transferred throughout the system, locally or globally.
[00546] Такая конфигурация может включать обмен информацией с реестрами, а также выполнение обращений к функциям. Например, как описано в настоящем документе выше, одно или более обращений к функциям, необходимых и/или полезных для выполнения этапов, например последовательно, для выполнения картирования, выравнивания, сортировки и/или определения вариантов, или другой вторичной и/или третичной функции, как описано в настоящем документе, могут быть осуществлены в соответствии с операциями аппаратного обеспечения и/или соответствующими алгоритмами для генерации необходимых процессов и выполнения требуемых этапов.[00546] Such configuration may involve exchanging information with registries as well as making function calls. For example, as described herein above, one or more function calls necessary and/or useful to perform steps, for example, sequentially, to perform mapping, alignment, sorting and/or variant determination, or other secondary and/or tertiary function, as described herein, may be implemented in accordance with hardware operations and/or corresponding algorithms to generate the necessary processes and perform the required steps.
[00547] В частности, так как в определенных вариантах реализации одна или более из указанных операций могут быть основаны на одной или более структурах, возможно потребуется построить различные структуры, необходимые для осуществления указанных операций. В связи с этим потребуется обращение к функции, которая выполняет данные действия, причем указанное обращение к функции приведет к построению требуемой структуры для выполнения операции, и поэтому указанное обращение примет имя файла, где хранятся файлы параметров структуры, и затем сгенерирует один или более файлов данных, которые содержат и/или конфигурируют требуемую структуру. Другое обращение к функции может быть предназначено для загрузки структуры, которая была сгенерирована посредством соответствующего алгоритма, и передачи ее в память на микросхеме и/или в систему 1 и/или помещения ее в нужное место, где ее нахождение предполагается аппаратным обеспечением. Конечно, потребуется скачивание различных данных в микросхему и/или осуществление передачи в системный генератор другим образом, а также выполнение различных других выбранных функций системы 1, и эти функции может выполнять диспетчер конфигураций, например посрежством загрузки всего, что необходимо для того, чтобы модули конвейеров уровней платформ микросхемы и/или системы в целом выполняли свои функции, в память, находящуюся на микросхеме и/или системе или прикрепленную или иным образом связанную с микросхемой и/или системой.[00547] In particular, since in certain embodiments one or more of these operations may be based on one or more structures, it may be necessary to construct various structures necessary to perform these operations. This will require a call to a function that performs these actions, wherein said function call will build the required structure to perform the operation, and so said call will take the name of the file where the structure parameter files are stored and then generate one or more data files , which contain and/or configure the required structure. Another call to the function may be to load a structure that has been generated by the appropriate algorithm and transfer it to on-chip memory and/or system 1 and/or place it in the desired location where the hardware expects it to be. Of course, various data will need to be downloaded to the chip and/or otherwise transferred to the system oscillator, as well as various other selected functions of System 1, and these functions can be performed by the configuration manager, for example by downloading everything that is necessary for the pipeline modules platform layers of the chip and/or system as a whole performed their functions in memory located on the chip and/or system or attached to or otherwise associated with the chip and/or system.
[00548] Кроме того, как показано на фиг. 16, API может быть выполнен так, чтобы обеспечивать одной или более микросхемам системы 1 возможность взаимодействия с печатной платой секвенатора 121, вычислительного ресурса 100/300, преобразователя 151, анализатора 152, интерпретатора 310, коллаборатора 320 или другого компонента системы, когда они включены в нее, для приема файла в формате FASTQ и/или других файлов сгенерированной и/или обработанной генетической последовательности непосредственно от секвенатора или другого обрабатывающего компонента, например немедленно после их генерации и/или обработки, и затем передачи этой информации в диспетчер конфигураций, который затем направляет данную информацию в соответствующие банки памяти в аппаратном и/или программном обеспечении, которые делают эту информацию доступной соответствующим модулям аппаратного обеспечения, программного обеспечения и/или системе в целом так, чтобы они могли выполнять назначенные им функции над этой информацией для определения оснований, картирования, выравнивания, сортировки и т.д. образца ДНК/РНК относительно контрольного генома и/или исполнения на ней связанных операций вторичной и/или третичной обработки.[00548] Additionally, as shown in FIG. 16, the API may be configured to allow one or more chips of system 1 to communicate with a circuit board of sequencer 121, compute resource 100/300, converter 151, analyzer 152, interpreter 310, collaborator 320, or other system component when included in thereto, to receive a FASTQ file and/or other generated and/or processed genetic sequence files directly from the sequencer or other processing component, for example immediately after they are generated and/or processed, and then transmit this information to the configuration manager, which then forwards this information into the appropriate memory banks in the hardware and/or software, which make this information available to the appropriate modules of the hardware, software and/or the system as a whole so that they can perform their assigned functions on this information for base determination, mapping, alignment, sorting, etc. DNA/RNA sample relative to the reference genome and/or the execution of associated secondary and/or tertiary processing operations on it.
[00549] Соответственно, в различных вариантах реализации может быть включен интерфейс уровня клиентов (CLI), которй может обеспечивать пользователям возможность непосредственного обращения к одной или более из этих функций. В различных вариантах реализации CLI может быть приложением программного обеспечения, например имеющим ГПИ, которое выполнено с возможностью конфигурирования доступности и/или использования системных приложений аппаратного обеспечения и/или различного другого программного обеспечения. Таким образом, CLI может быть программой, которая принимает инструкции, например аргументы, и делает функциональные возможности доступными просто путем обращения к прикладной программе. Как указано выше, CLI может быть основан на командной строке или ГПИ (графическом пользовательском интерфейсе). Уровень команд для командной строки ниже уровня ГПИ, причем ГПИ содержит диспетчер файлов на базе окон, имеющий функциональные блоки, выполненные с возможностью выбора щелчком мыши, которые изображают, какие модули, какие конвейеры, какие уровни каких платформ будут использованы, а также параметры их использования. Например, во время работы, если предписано, CLI будет находить ссылку, будет определять, нужно ли сгенерировать хэш-таблицу и/или индекс, или, если они уже сгенерированы, устанавливать, где они хранятся, и управлять загрузкой сгенерированной хэш-таблицы и/или индекса и т. д. Инструкции этих видов могут появляться в виде пользовательских вариантов на ГПИ, которые пользователь может выбирать для выполнения связанными микросхемой (микросхемами) и/или системой 1.[00549] Accordingly, various implementations may include a client level interface (CLI) that may allow users to directly access one or more of these functions. In various embodiments, the CLI may be a software application, such as having a GUI, that is configured to configure the availability and/or use of system hardware applications and/or various other software. Thus, a CLI can be a program that accepts instructions, such as arguments, and makes functionality available simply by calling the application program. As stated above, the CLI can be command line or GUI (Graphical User Interface) based. The command level for the command line is below the GUI level, where the GUI contains a window-based file manager having clickable function blocks that depict which modules, which pipelines, which layers of which platforms will be used, as well as the parameters for their use . For example, at runtime, if directed, the CLI will find the reference, determine whether a hash table and/or index needs to be generated, or, if they have already been generated, establish where they are stored, and manage the loading of the generated hash table and/ or index, etc. Instructions of these types may appear as user options on the GUI, which the user can select for execution by the associated chip(s) and/or system 1.
[00550] Кроме того, может быть включена библиотека, которая может содержать уже существующие редактируемые файлы конфигурации, например файлы, ориентированные на типичные выбираемые пользователем функциональные возможности аппаратного обеспечения и/или связанного программного обеспечения, например относящиеся к анализу части или всего генома и/или белка, например для различных видов анализа, таких как анализ персональных медицинских историй и родословной, или диагностика заболеваний, или открытие новых лекарственных средств, терапевтика и/или один или более других аналитических методов и т.д. Параметры этих типов могут быть предварительно установлены, например для выполнения таких видов анализа, и могут быть сохранены в библиотеке. Например, если описанная в настоящем документе платформа используется, например, для исследований в области NIPT, NICU, рака, LDT, AgBio и связанных исследований на собирательном уровне, настоящие параметры могут быть сконфигурированы иным образом по сравнению с тем, если бы платформа была направлена просто на проведение геномного и/или генеалогического исследования, например на индивидуальном уровне. См., например, фиг. 11.[00550] Additionally, a library may be included that may contain pre-existing editable configuration files, such as files targeting typical user-selectable hardware and/or associated software functionality, such as those related to analysis of a portion or entire genome and/or protein, for example for various types of analysis, such as the analysis of personal medical histories and pedigrees, or the diagnosis of diseases, or the discovery of new drugs, therapeutics and/or one or more other analytical methods, etc. Parameters of these types can be preset, for example to perform these types of analyses, and can be saved in a library. For example, if the platform described herein is used for, for example, NIPT, NICU, cancer, LDT, AgBio, and related research at the aggregate level, the present parameters may be configured differently than if the platform were simply aimed to conduct genomic and/or genealogical research, for example at the individual level. See, for example, FIG. eleven.
[00551] Более конкретно, в случае определенной диагностики индивида точность может быть важным фактором и, таким образом, параметры системы могут быть установлены так, чтобы обеспечивать повышенную точность, хотя и в обмен на возможное снижение скорости. Однако в других относящихся к геному случаев применения скорость может быть основным определяющим фактором, и, таким образом, параметры системы могут быть установлены для обеспечения максимальной скорости, однако это может привести к некоторому снижению точности. Соответственно, в различных вариантах реализации часто используемые настройки параметров для выполнения разных задач могут быть предварительно установлены в библиотеку для облегчения их использования. Такие настройки параметров могут также включать в себя необходимые приложения программного обеспечения и/или конфигурации аппаратного обеспечения, используемые при работе системы 1. Например, библиотека может содержать код, который исполняет API, и может также содержать файлы образов, сценарии и любую другую вспомогательную информацию, необходимую для работы системы 1. Следовательно, библиотека может быть выполнена с возможностью компиляции программного обеспечения для исполнения API, а также различных исполняемых объектов.[00551] More specifically, in the case of certain diagnostics of an individual, accuracy may be an important factor and thus system parameters may be set to provide increased accuracy, albeit at the expense of a possible reduction in speed. However, in other genome-related applications, speed may be a major determining factor, and thus the system parameters may be set to provide maximum speed, but this may result in some reduction in accuracy. Accordingly, in various embodiments, frequently used parameter settings for performing various tasks may be preset in the library to facilitate their use. Such parameter settings may also include necessary software applications and/or hardware configurations used in the operation of the system 1. For example, the library may contain code that executes the API, and may also contain image files, scripts, and any other supporting information, necessary for the operation of system 1. Consequently, the library can be configured to compile software for executing the API, as well as various executable objects.
[00552] Кроме того, как показано на фиг. 12-14, система может быть выполнена таким образом, что один или более системных компонентов могут выполняться удаленно, например когда компонент системы выполнен с возможностью исполнения одной или более функций сравнения над данными, например функции 310 интерпретации и/или функции 320 совместной работы. Например, когда к данным применяют протокол интерпретации, протокол 312 интерпретации может быть выполнен с возможностью анализа и заключения выводов о данных и/или определения различных взаимосвязей в отношении них, могут также выполняться один или более других аналитических протоколов, включающих аннотирование 311 данных, выполнение диагностики 313 над данными и/или анализ данных для определения присутствия или отсутствия одного или боле биомаркеров 314. Кроме того, при выполнении протокола совместной работы система 1 может быть выполнена с возможностью обеспечения электронного форума, где можно делиться 321 данными, причем протокол разделения данных может включать настройки безопасности 324 и/или приватности 322, которые могут быть выбраны пользователем и обеспечивают возможность шифрования данных и/или защищиты их паролем, чтобы можно было скрыть идентификаторы и источники данных от пользователя системы 1. В конкретных примерах система 1 может быть выполнена с возможностью обеспечения анализатору 121 третьих лиц возможности выполнения виртуального моделирования над данными. Кроме того, после генерации данные, интерпретированные и/или подвергнутые одному или более совместно осуществляемым видам анализа, могут быть сохранены удаленно 400 или локально 200, чтобы сделать их доступными для удаленных 300 или локальных 100 вычислительных ресурсов, например для дальнейшей обработки и/или анализа.[00552] Additionally, as shown in FIG. 12-14, the system may be configured such that one or more system components may be executed remotely, such as when the system component is configured to perform one or more comparison functions on data, such as interpretation function 310 and/or collaboration function 320. For example, when an interpretation protocol is applied to the data, the interpretation protocol 312 may be configured to analyze and draw conclusions about the data and/or determine various relationships regarding it, and one or more other analytical protocols may also be performed, including annotating the data 311, performing diagnostics 313 on the data and/or analyzing the data to determine the presence or absence of one or more biomarkers 314. Additionally, when performing a collaboration protocol, the system 1 may be configured to provide an electronic forum where data can be shared 321, wherein the data sharing protocol may include security settings 324 and/or privacy 322 that can be selected by the user and provide the ability to encrypt data and/or password protect it so that identifiers and data sources can be hidden from the user of system 1. In specific examples, system 1 may be configured to provide third party analyzer 121 the ability to perform virtual simulations on data. In addition, once generated, data interpreted and/or subjected to one or more collaborative analyzes may be stored remotely 400 or locally 200 to make it available to remote 300 or local 100 computing resources, such as for further processing and/or analysis. .
[00553] Соответственно, с учетом приведенного в настоящем документе раскрытия, согласно одному аспекту предложено устройство для выполнения одной или более из множества операций при выполнении операции анализа последовательности генома. В некоторых примерах устройство может представлять собой вычислительное решение в виде «рабочего места», имеющее набор микросхем, который связан с платой PCIe, которая сама по себе может быть вставлена в вычислительное устройство, чтобы тем самым быть связанной с одним или более внутренних центральных процессоров (ЦП), графических процессоров (ГП) и/или связанными запоминающими устройствами. В частности, вычислительное устройство, обрабатывающие блоки, связанные запоминающие устройства и/или связанная(ые) плата(ы) PCIe, имеющие один или более наборы микросхем ППВМ/ИССН, как описано в настоящем документе, могут быть связаны с возможностью обмена информацией друг с другом и могут быть расположены внутри корпуса, например в виде коробочной версии, которая типична в данной области техники и может быть выполнена с возможностью использования в качестве рабочего места и/или она может быть обеспечена и/или выполнена с возможностью использования в серверной стойке. В других вариантах реализации наборы микросхем и/или связанная(ые) соединительная(ые) плата(ы) могут быть связаны внутри устройства секвенирования нового поколения с образованием с ним одного блока.[00553] Accordingly, in view of the disclosure herein, in one aspect, an apparatus is provided for performing one or more of a plurality of operations in performing a genome sequence analysis operation. In some examples, the device may be a "bench" computing solution having a chipset that is coupled to a PCIe card, which itself may be inserted into the computing device to thereby be coupled to one or more internal central processing units (CPUs). CPUs), graphics processing units (GPUs) and/or associated storage devices. In particular, a computing device, processing units, associated storage devices, and/or associated PCIe card(s) having one or more FPGA/ISCH chipsets as described herein may be capable of communicating with each other. other and can be located inside a housing, for example in a boxed version, which is typical in the art and can be configured for use as a workstation and/or it can be provided and/or configured for use in a server rack. In other embodiments, chipsets and/or associated backplane(s) may be interconnected within a next-generation sequencing device to form a single unit therewith.
[00554] Однако, в различных примерах одна или более интегриральных схем, раскрытых в настоящем документе, могут быть обеспечивать и быть выполненными с возможностью доступа к ним посредством интерфейса на облачной основе, например как показано на фиг. 12-15. В некоторых примерах коробочная версия может быть выполнена с возможностью удаленного доступа к ней, например когда конфигурация в виде коробочной версии выполнена портативной по отношению к облаку. Однако в других случаях одна или более из интегральных схем, раскрытых в настоящем документе, могут быть частью серверной стойки, например когда доступная на сервере система выполнена с возможностью удаленного доступа к ней, например посредством облака 50.[00554] However, in various examples, one or more integrated circuits disclosed herein may be provided and accessible through a cloud-based interface, such as as shown in FIG. 12-15. In some examples, the boxed version may be configured to be remotely accessible, such as when the boxed configuration is made portable to the cloud. However, in other cases, one or more of the integrated circuits disclosed herein may be part of a server rack, such as when a system accessible on the server is capable of being accessed remotely, such as through the cloud 50.
[00555] Например, в одном варианте реализации сервер, имеющий одно или более, например множество, из ядер ЦП и/или ГП и связанных запоминающих устройств, может быть связан с одной или более ППВМ/ИССН, раскрытых в настоящем документе. В частности, в одном варианте осуществления может быть обеспечена коробочная версия/сервер, содержащая(ий) от 18 до 24 или более ядер ЦП, имеющая(ий) твердотельные накопители (SSD), ОЗУ 128×8, и одну или более BioIT-систем ППВМ/ИССН, к которой(ому) обеспечена возможность удаленного доступа. В одном примере одна или более ППВМ могут быть выполнены с возможностью изменения их конфигурации, например частичного изменения их конфигурации, между одним или более различных этапов конвейера для геномного анализа. В других примерах серверная система может содержать до 36 ядер ЦП/ГП и приблизительно 972 Гб RAM, которая может быть связана приблизительно с 8 ППВМ, выполненных с возможностью конфигурации как описано в настоящем документе.[00555] For example, in one embodiment, a server having one or more, eg multiple, CPU and/or GPU cores and associated storage devices may be associated with one or more FPGAs/ISSNs disclosed herein. Specifically, in one embodiment, a boxed version/server may be provided containing 18 to 24 or more CPU cores, having solid state drives (SSDs), 128x8 RAM, and one or more BioIT systems FPGA/ISSN, to which remote access is provided. In one example, one or more FPGAs may be configured to change their configuration, such as partially change their configuration, between one or more different stages of the genomic analysis pipeline. In other examples, the server system may contain up to 36 CPU/GPU cores and approximately 972 GB of RAM, which may be associated with approximately 8 FPGAs configured as described herein.
[00556] Более конкретно, предложенные ППВМ могут быть выполнены с возможностью специализации на выполнении одной или более вычислительноемких операций в конвейере BioIT, например когда предусмотрена одна ППВМ, которая специально предназначена для выполнения операции картирования, и предусмотрена другая ППВМ, которая выполнена с возможностью реализации операции выравнивания, хотя, в некоторых примерах, может быть предусмотрена одна ППВМ, которая выполнена с возможностью по меньшей мере частичного изменения ее конфигурации между выполнением обоих операций, картирования и выравнивания. В число других операций в конвейере, которые могут осуществляться специализированными FPGA, могут входить выполнение операции HMM, операции местного повторного выравнивания, например операции Смита-Ватермана, и/или различных других операций определения вариантов. Аналогичным образом различные операции конвейера могут быть выполнены с возможностью исполнения одного или более из связанных ЦП/ГП системы. Такие операции могут быть одной или более вычислительноемкими операциями конвейера, например для выполнения сортировки, удаления дубликатов и других операций определения вариантов. Следовательно, системы может быть выполнена с возможностью осуществления комбинации операций, частично с помощью ЦП и частично с помощью аппаратного обеспечения, такого как ППВМ/ИССН системы.[00556] More specifically, the proposed FPGAs may be configured to specialize in performing one or more computationally intensive operations in a BioIT pipeline, such as where one FPGA is provided that is specifically designed to perform a mapping operation, and another FPGA is provided that is configured to implement the operation alignment, although, in some examples, there may be one FPGA that is configured to be at least partially reconfigured between the execution of both mapping and alignment operations. Other operations in the pipeline that may be performed by dedicated FPGAs may include performing an HMM operation, a local realignment operation such as a Smith-Waterman operation, and/or various other variant determination operations. Likewise, various pipeline operations may be executed by one or more of the system's associated CPU/GPUs. Such operations may be one or more computationally intensive pipeline operations, such as to perform sorting, deduplication, and other variant determination operations. Therefore, the system may be configured to perform a combination of operations, partly by the CPU and partly by hardware such as the FPGA/ISCH system.
[00557] Соответственно, в различных вариантах осуществления системы могут быть предусмотрены примеры различных ЦП и жестко смонтированных интегральных схем для выполнения специализированных функций анализа генома при помощи конвейера, предложенные в настоящем документе. Например, могут быть предусмотрены различные экземпляры ППВМ для выполнения специализированных операций геномного анализа, например экземпляр FPGA для выполнения картирования, другой экземпляр для выполнения выравнивания, еще один для выполнения местного повторного выравнивания и/или других операций Смита-Ватермана, другой для выполнения операций HMM и тому подобное. Аналогичным образом могут быть предусмотрены различные экземпляры ЦП/ГП для выполнения специализированных операций геномного анализа, например экземпляры ЦП/ГП для выполнения сортировки, удаления дубликатов, сжатия, различных операций определения вариантов и тому подобного. В таких примерах могут быть обеспечены одно или более связанных запоминающих устройств, например между различными вычислительными этапами конвейера, для приема полученных данных, полученных в результате вычисления, компиляции и обработки по всей системе, например между различными экземплярами ЦП и/или ППВМ. Кроме того, следует отметить, что размер различных экземпляров ЦПУ и/или ППВМ может меняться в зависимости от вычислительных потребностей системы и может изменяться в диапазоне от малого до среднего, крупного и очень крупного, аналогичным образом может меняться количество экземпляров ЦП/ГП и ППВМ/ИССН.[00557] Accordingly, various system embodiments may provide examples of various CPUs and hard-wired integrated circuits to perform the specialized pipeline analysis functions of genomes proposed herein. For example, there may be different FPGA instances for performing specialized genomic analysis operations, such as an FPGA instance for performing mapping, another instance for performing alignment, another for performing local realignment and/or other Smith-Waterman operations, another for performing HMM operations, and things like that. Likewise, various CPU/GPU instances may be provided to perform specialized genomic analysis operations, such as CPU/GPU instances to perform sorting, deduplication, compression, various variant detection operations, and the like. In such examples, one or more interconnected storage devices may be provided, eg between different computational stages of the pipeline, to receive received data resulting from computation, compilation and processing throughout the system, eg between different instances of the CPU and/or FPGA. In addition, it should be noted that the size of the various CPU and/or FPGA instances may vary depending on the computing needs of the system and may vary from small to medium, large and very large, similarly the number of CPU/GPU and FPGA instances may vary. ISSN.
[00558] Следовательно, система может также содержать диспетчер рабочих потоков, который выполнен с возможностью планирования и направления перемещения данных по всей системе и от одного экземпляра к другому или из одной памяти в другую. В некоторых примерах запоминающее устройство может представлять собой специализированное запоминающее устройство, специфичное для конкретных экземплярах, а в других примерах запоминающее устройство может быть выполнено с возможностью быть эластичными и, таким образом, способными переключаться с одного экземпляра на другой, например как эластичное блочное запоминающее устройство хранения. В других примерах запоминающее устройство может быть неспецифичным для экземпляров и, следовательно, быть выполненным с возможностью соединения с возможностью обмена информацией с множеством экземпляров, например для эластичного хранения файлов.[00558] Consequently, the system may also include a workflow manager that is configured to schedule and direct the movement of data throughout the system and from one instance to another or from one memory to another. In some examples, the storage device may be a dedicated instance-specific storage device, and in other examples, the storage device may be configured to be elastic and thus able to switch from one instance to another, such as an elastic block storage storage device . In other examples, the storage device may be non-instance specific and therefore be configured to communicate with multiple instances, such as for elastic file storage.
[00559] Кроме того, диспетчер рабочих потоков может являться специализированным экземпляром, например ядром ЦП/ГП, которое специально предназначено для и/или выполнено с возможностью определения, какие задания необходимо выполнять, и когда и какие ресурсы будут использованы при выполнении указанных заданий, а также постановки в очередь заданий и направления их от ресурсов к ресурсам. Диспетчер рабочих потоков может содержать или может быть иным образом выполнен как оценщик загрузки и/или может образовать эластичный узел управления, представляющий собой специализированный экземпляр, который может исполняться процессором, например ядром ЦП с четырьмя ядрами, или может исполняться без множества ядер. В различных примерах диспетчер рабочих потоков может иметь базу данных, соединенную с ним, которая может быть выполнена с возможностью управления всеми заданиями, которые должны быть обработаны, обрабатываются или были обработаны. Следовательно, диспетчере может быть выполнен с возможностью обнаружения и управления потоками данных по всей системе, определения того, как назначить системные ресурсы, и когда привести в действие больше ресурсов.[00559] In addition, the worker thread manager may be a specialized instance, such as a CPU/GPU core, that is specifically designed for and/or configured to determine which jobs need to be executed and when and what resources will be used in executing said jobs, and also queuing tasks and directing them from resources to resources. The worker thread manager may comprise or may otherwise be implemented as a load estimator and/or may form an elastic control node, which is a specialized instance that may be executed by a processor, such as a CPU core with four cores, or may be executed without multiple cores. In various examples, the workflow manager may have a database connected to it, which may be configured to manage all of the jobs that are to be processed, are being processed, or have been processed. Therefore, the manager can be configured to detect and manage data flows throughout the system, determine how to assign system resources, and when to bring more resources into use.
[00560] Как указано выше, в определенных примерах может быть предусмотрено решение для рабочего места, где система содержит множество серверов с X ядрами ЦП, которые подают данные в ППВМ размера Z, где X, Y и Z являются числами, которые могут меняться в зависимости от потребностей обработки системы, но их следует выбирать и/или иным образом конфигурировать, чтобы они были оптимальными. Например, типичные конфигурации системы не оптимизированы для выполнения BioIT-операций системы, описанной в настоящем документе. В частности, определенные конфигурации системы не оптимизированы таким образом, чтобы максимально увеличивать поток данных от различных экземпляров ЦП/ГП в различные интегральные схемы, такие как ППВМ, системы. Более конкретно, архитектура системы может быть выполнена таким образом, чтобы аппаратное обеспечение ЦП/ППВМ работало оптимально эффективным образом для поддержания платформ обоих экземпляров постоянно занятыми в течение работы.[00560] As stated above, in certain examples a solution may be provided for a workstation where the system contains multiple servers with X CPU cores that feed data to an FPGA of size Z, where X, Y and Z are numbers that may vary depending depending on the processing needs of the system, but they should be selected and/or otherwise configured to be optimal. For example, typical system configurations are not optimized to perform the BioIT operations of the system described in this document. In particular, certain system configurations are not optimized to maximize data flow from different CPU/GPU instances to different integrated circuits, such as FPGA, systems. More specifically, the system architecture may be designed such that the CPU/FPGA hardware operates in an optimally efficient manner to keep the platforms of both instances constantly busy during operation.
[00561] Следовательно, хотя в целом хорошо, когда ППВМ имеет большие возможности, способность обработки большого количества данных может не быть эффективной, если в систему подают не достаточное количество данных, которые необходимо обработать. Например, в различных примерах ядра четырехъядерного ЦП могут быть выполнены с возможностью подавать данные в ППВМ среднего размера, например 2,5X. Однако когда ЦП не генерирует достаточно работы для занятости и/или полного использования ППВМ, конфигурация не будет идеальной. В таких конфигурациях экземпляр(ы) ЦП не вырабатывают достаточно работы для поддержания занятости доступных ППВМ. Таким образом, в настоящем документе предложена архитектура способ ее осуществления, которые выполнены так, что система работает таким образом, что программное обеспечение/аппаратное обеспечение ЦП/ППВМ работают эффективно для обеспечения того, что имеющиеся ЦП оптимально подают данные в доступные ППВМ таким образом, чтобы обеспечивать постоянную занятость обеих имеющихся платформ во время работы. Соответственно, обеспечение доступа к такой системе с помощью облака обеспечит, чтобы подаваемое в нее множество данных помещались в очередь диспетчером рабочих потоков и направлялись в определенные ресурсы ЦП/ППВМ, которые выполнены с возможностью и имеют конфигурацию для приема и обработки данных оптимальным эффективным образом, например когда ЦП обрабатывает менее вычислительноемкие данные, а ППВМ выполняет вычислительноемкие задачи, и запоминающие устройства обеспечивают хранение данных между раздличными этапами процедуры и/или между различными типами экземпляров и экземплярами, тем самым устраняя задержку между экземплярами. В частности, во время картирования и выравнивания ЦП/ГП используются очень мало, поскольку из-за интенсивного характера вычислений эти задачи выполнены с возможностью их осуществления аппаратными реализациями. Аналогичным образом во время определения вариантов указанные задачи могут быть разделены таким образом, чтобы они были примерно одинаково распределены между экземплярами ЦП/ППВМ в виде их задач, например когда операции HMM и Смита-Ватермана могут быть выполнены аппаратным обеспечением, а различные другие операции могут быть выполнены программным обеспечением, исполняемым на одном или более экземплярах ЦП/ГП.[00561] Therefore, while it is generally good for an FPGA to have great capabilities, the ability to process a large amount of data may not be effective if there is not enough data being fed into the system to be processed. For example, in various examples, quad-core CPU cores may be configured to feed data to a medium-sized FPGA, such as a 2.5X. However, when the CPU is not generating enough work to keep the FPGA busy and/or fully utilized, the configuration will not be ideal. In such configurations, the CPU instance(s) do not generate enough work to keep the available FPGAs busy. Thus, this document proposes an architecture and a method for implementing it that is designed such that the system operates in such a way that the CPU/FPGA software/hardware operates efficiently to ensure that the available CPUs optimally feed data to the available FPGAs in such a way that ensure that both available platforms are always occupied during operation. Accordingly, making such a system accessible via the cloud will ensure that the amount of data fed into it is queued by the worker thread manager and routed to specific CPU/FPGA resources that are capable and configured to receive and process the data in an optimally efficient manner, e.g. when the CPU processes less computationally intensive data and the FPGA performs computationally intensive tasks, and storage devices provide data storage between different procedure steps and/or between different instance types and instances, thereby eliminating inter-instance latency. In particular, there is very little CPU/GPU usage during mapping and alignment because, due to the computationally intensive nature, these tasks are designed to be performed by hardware implementations. Likewise, during case definition, the specified tasks can be divided so that they are roughly equally distributed among the CPU/FPGA instances as their tasks, for example where HMM and Smith-Waterman operations can be performed by hardware and various other operations can be executed by software running on one or more CPU/GPU instances.
[00562] Соответственно, параметры архитектуры, указанные в настоящем документе, необязательно ограничены однажды установленной архитектурой, наоборот, система выполнена с возможностью обладания большей гибкостью в организации ее реализаций и опирается на диспетчер рабочих потоков для определения, какие экземпляры активны, когда, как и как долго, и указывает, какие вычисления выполняются на каких экземплярах. В частности, архитектуры на облачной основе, описанные в настоящем документе, например, показанные на приложенных чертежах, показывают, что различные известные недостатки предыдущих вариантов архитектуры могут привести к проявлениям неэффективности, которые можно преодолеть за счет гибкого предоставления большему количеству ядер ЦП/ГП доступа к различным экземплярам аппаратного обеспечения, например ППВМ, которые организованы более целенаправленным образом, чтобы быть в состоянии специально назначать надлежащий экземпляр для выполнения предназначенных функций для оптимизации за счет реализации в таком формате, так что большая часть доступных экземпляров ЦП может быть постоянно занята, вырабатывая результирующие данные, которые могут быть оптимальным образом поданы в доступные экземпляры ППВМ для обеспечения постоянной занятости выбранных экземпляров ППВМ. Таким образом, желательно обеспечить структурированную архитектуру, которая максимально эффективна и постоянно занята. Следует отметить, что конфигурации, в которых слишком мало ЦП снабжают слишком много ППВМ, так что одна или более ППВМ используются не в полной мере, являются неэффективными и их следует избегать.[00562] Accordingly, the architecture parameters specified herein are not necessarily limited to the architecture once established; rather, the system is designed to have greater flexibility in the organization of its implementations and relies on a workflow manager to determine which instances are active, when, how, and how long, and specifies which calculations are performed on which instances. In particular, the cloud-based architectures described herein, such as those shown in the accompanying drawings, demonstrate that various known shortcomings of previous architectures can result in inefficiencies that can be overcome by flexibly allowing more CPU/GPU cores to access different instances of hardware, such as FPGAs, that are organized in a more targeted manner to be able to specifically assign the appropriate instance to perform the intended functions to be optimized through implementation in such a format, so that a large portion of the available CPU instances can be kept busy producing the resulting data , which can be optimally fed to the available FPGA instances to ensure continuous occupancy of the selected FPGA instances. Thus, it is desirable to provide a structured architecture that is as efficient as possible and is always occupied. It should be noted that configurations in which too few CPUs supply too many FPGAs such that one or more FPGAs are underutilized are inefficient and should be avoided.
[00563] В одном варианте осуществления архитектура может быть выполнена с возможностью виртуального включения нескольких различных слоев, таких как первый уровень, имеющий первое количество X ядер ЦП, например, от 4 до приблизительно 30 ядер ЦП, и второй уровень, имеющий от 1 до 12 экземпляров ППВМ, причем размер может меняться в диапазоне от малого до среднего или большого и т.д. Может также быть включен третий уровень ядер ЦП и/или четвертый уровень дополнительных ППВМ и т.д. Следовательно, так как в облаке имеется множество доступных экземпляров, например экземпляров, которые просто содержат ЦП или ГП и/или ППВМ, или их комбинации, например на одном или более уровнях, описанных в настоящем документе. Соответственно, подобным образом архитектура может быть организована так, чтобы наиболее интенсивные специальные вычислительные функции выполнялись экземплярами аппаратного обеспечения, а те функции, которые могут быть исполнены с помощью ЦП, направлялись на подходящий ЦП на подходящем уровне в целях общей обработки.[00563] In one embodiment, the architecture may be configured to virtually include multiple different layers, such as a first layer having a first number of X CPU cores, such as 4 to about 30 CPU cores, and a second layer having 1 to 12 FPGA copies, and the size can vary from small to medium or large, etc. A third level of CPU cores and/or a fourth level of additional FPGAs, etc. may also be included. Therefore, since there are multiple instances available in the cloud, for example instances that simply contain a CPU or GPU and/or FPGA, or combinations thereof, for example at one or more of the layers described herein. Accordingly, in a similar way, the architecture can be organized so that the most intensive special computing functions are performed by hardware instances, and those functions that can be executed by the CPU are directed to a suitable CPU at a suitable level for general processing purposes.
[00564] Например, архитектура может быть выполнена с возможностью максимального повышения эффективности и сокращения задержки путем комбинирования различных экземпляров на различных виртуальных уровнях. В частности, множество, например значительная часть и/или все, экземпляров ЦП уровня 1 могут быть выполнены с возможностью снабжения различных экземпляров ППВМ уровня 2, например F12X, которые специально выполнены с возможностью осуществления специальных функций, таких как картирование, выравнивание, операция Смита-Ватермана, HMM, определение вариантов и тому подобного. Следовательно, ЦП уровня 1 могут быть задействованы для формирования первого уровня конвейера для геномного анализа для выполнения этапов общей обработки и постановки в очередь на подготовку данных для конвейерного анализа, причем данные после обработки одним из множества ЦП могут быть поданы на специально предназначенный экземпляр ППВМ на уровне 2, например F12X, например где экземпляр ППВМ F12X выполнен с возможностью исполнения вычислительноемких функций, таких как функции картирования и/или выравнивания и т.д.[00564] For example, the architecture may be designed to maximize efficiency and reduce latency by combining different instances at different virtual layers. In particular, a plurality, such as a significant portion and/or all, of Level 1 CPU instances may be configured to supply different Level 2 FPGA instances, such as F12X, that are specifically configured to perform special functions such as mapping, alignment, Smith operation, etc. Waterman, HMM, identifying options and the like. Therefore, Tier 1 CPUs can be used to form the first layer of the genomic analysis pipeline to perform general processing steps and queue data preparation for pipeline analysis, where the data, after processing by one of multiple CPUs, can be fed to a dedicated FPGA instance at the tier 2, for example F12X, for example where the FPGA instance F12X is configured to perform computationally intensive functions such as mapping and/or alignment functions, etc.
[00565] Таким образом, в конкретном варианте осуществления экземпляры ЦП в конвейере направляют свои данные, после их подготовки, в один или два экземпляра ППВМ, предназначенных для картирования и выравнивания. После выполнения картирования результирующие данные могут быть сохранены в запоминающем устройстве и/или затем поданы в экземпляр выравнивания, где может быть выполнено выравнивание, например по меньшей мере одним специально предназначенным экземпляром FPGA уровня 2. Аналогичным образом обработанные картированные и выровненные данные затем могут быть сохранены в запоминающем устройстве и/или направлены в экземпляр ЦП уровня 3 для дальнейшей обработки, который может быть тем же самым, что и на уровне 1, или другим экземпляром, например для выполнения менее ресурсоемкой функции обработки геномного анализа, например для выполнения функции сортировки. Кроме того, после того, как ЦП уровня 3 выполнили свою обработку, результирующие данные могут быть направлены либо обратно в другие экземпляры ППВМ уровня 2, либо в экземпляры ППВМ уровня 4, например для ресурсоемких функций дальнейшей геномной обработки, таких как функции обработки Смита-Ватермана (SW), например в экземпляре ППВМ, специально предназначенном для SW. Аналогичным образом, после того, как анализ SW выполнен, например с помощью ППВМ F12X, специально предназначенной для SW, обработанные данные могут быть отправлены в одно или более связанных запоминающих устройств и/или далее по конвейеру для обработки, например в экземпляр ЦП и/или ППВМ уровня 4 или 5, или обратно на уровень 1 или 3, например для выполнения анализа HMM и/или определения вариантов, например в специально предназначенной ППВМ и/или ядре обработки ЦП дальнейшего уровня.[00565] Thus, in a particular embodiment, the CPU instances in the pipeline send their data, once prepared, to one or two FPGA instances for mapping and alignment. Once mapping has been performed, the resulting data may be stored in a storage device and/or then provided to an alignment instance where alignment may be performed, for example by at least one dedicated layer 2 FPGA instance. Similarly processed mapped and aligned data may then be stored in storage device and/or directed to a level 3 CPU instance for further processing, which may be the same as at level 1 or a different instance, for example to perform a less resource-intensive genomic analysis processing function, for example to perform a sorting function. Additionally, after the Tier 3 CPUs have completed their processing, the resulting data can be routed either back to other Tier 2 FPGA instances or to Tier 4 FPGA instances, for example for resource-intensive further genomic processing functions such as Smith-Waterman processing functions (SW), for example in an FPGA instance specifically designed for SW. Likewise, after SW analysis has been performed, for example by an F12X FPGA dedicated to SW, the processed data can be sent to one or more associated storage devices and/or downstream for processing, for example to a CPU instance and/or FPGA at level 4 or 5, or back to level 1 or 3, for example to perform HMM analysis and/or variant determination, for example in a dedicated FPGA and/or a further level CPU processing core.
[00566] Подобным образом можно преодолеть проблемы задержки и эффективности за счет сочетания всевозможных разных экземпляров на одном или более разных уровнях, для обеспечения конвейерной платформы для геномной обработки. Такая конфигурация может подразумевать больше, чем масштабирующие и/или комбинирующие экземпляры, экземпляры могут быть выполнены так, что они специализируются на осуществлении специально назначенных функций. В таком случае экземпляр ППВМ для картирования выполняет только картирование, и, аналогично, экземпляр ППВМ для выравнивания выполняет только выравнивание и т. д., вместо того, чтобы один экземпляр выполнял обработку в конвейере от начала до конца. Хотя в других конфигурациях одна или более ППВМ могут быть по меньшей мере частично переконфигурированы, например между выполнением конвейерных задач.[00566] Likewise, latency and efficiency issues can be overcome by combining all sorts of different instances at one or more different layers to provide a pipeline platform for genomic processing. Such a configuration may involve more than scaling and/or combining instances; instances may be designed such that they are specialized to perform specially designated functions. In such a case, the mapping FPGA instance does only the mapping, and similarly, the alignment FPGA instance only does the alignment, etc., instead of one instance doing the processing in the pipeline from start to finish. Although in other configurations one or more FPGAs may be at least partially reconfigured, for example between execution of pipeline tasks.
[00567] Следовательно, диспетчер конвейера может управлять очередью запросов на геномную обработку, создаваемых экземплярами ЦП уровня 1, чтобы разбивать их на дискретные задания, агрегировать и направлять в соответствующий специфичные для задания ЦП/F1 для обработки, например для картирования и/или выравнивания, причем данные F1 после обработки могут быть отправлены назад или вперед на следующий уровень обработки ЦП/ППВМ результирующих данных, например для выполнения различных этапов в модуле определения вариантов. Например, функция определения вариантов может быть разбита на множество операций, которые могут быть выполнены в программном обеспечении, затем направлены на обработку HMM в один или более экземпляров ППВМ аппаратного обеспечения, а затем могут быть отправлены в ЦП для продолжения операций определения вариантов, например когда вся платформа эластично подобрана по размеру и реализована для сведения к минимуму стоимости дорогих экземпляров ППВМ при максимальном повышении использования, максимальном снижении задержки и, следовательно, оптимизации операций. Соответственно, таким образом требуется меньше экземпляров аппаратного обеспечения вследствие их абсолютных возможностей обработки и специфичности аппаратной реализации, и поэтому количество ППВМ относительно ЦП может быть сведено к минимуму, а их использование, например ППВМ, может быть максимально повышено, и поэтому система может быть оптимизирована, чтобы поддерживать постоянную занятость всех экземпляров. Такая конфигурация оптимально спроектирована для анализа геномной обработки, особенно для картирования, выравнивания и определения вариантов.[00567] Therefore, the pipeline manager can manage a queue of genomic processing requests generated by Tier 1 CPU instances to break them down into discrete jobs, aggregate them, and route them to the appropriate job-specific CPU/F1 for processing, such as mapping and/or alignment. wherein the F1 data, after processing, can be sent back or forth to the next level of CPU/FPGA processing of the resulting data, for example to perform various steps in the variant determination module. For example, the case determination function may be broken down into multiple operations that can be performed in software, then directed to HMM processing in one or more hardware FPGA instances, and then sent to the CPU to continue the case determination operations, such as when all The platform is elastically sized and implemented to minimize the cost of expensive FPGA instances while maximizing utilization, minimizing latency, and therefore optimizing operations. Accordingly, fewer hardware instances are thus required due to their absolute processing capabilities and hardware implementation specificity, and therefore the number of FPGAs relative to the CPU can be minimized and their utilization, such as FPGAs, can be maximized, and therefore the system can be optimized. to keep all instances always busy. This configuration is optimally designed for genomic processing analysis, especially mapping, alignment, and variant detection.
[00568] Дополнительный структурный элемент, который можно добавить, например в качестве вспомогательного устройства, в архитектуру конвейера, описанную в настоящем документе, это один или более модулей эластичной памяти, которые могут быть выполнены с возможностью функционирования для обеспечения блочного хранения данных, например результирующих данных, по мере их передачи по всему конвейеру. Соответственно, одно или более модулей эластичного хранилища блоков данных (EBDS) могут быть вставлены между одним или более уровнями обработки, например между различными экземплярами и/или уровнями экземпляров, так что по мере обработки данных и получения результатов, обработанные результаты могут быть направлены в устройство EBDS для хранения перед направлением на обработку следующего уровня, например посредством специально предназначенного модуля обработки ППВМ. То же самое EBDS может быть использовано между всеми экземплярами или уровнями экземпляров, или множество EBDS могут быть использованы между различными экземплярами и/или уровнями экземпляров, например для хранения, компиляции и/или постановки в очередь результирующих данных.[00568] An additional structural element that can be added, for example as an auxiliary device, to the pipeline architecture described herein is one or more elastic memory modules that can be configured to function to provide block storage of data, such as result data , as they are transferred throughout the conveyor. Accordingly, one or more elastic block data storage (EBDS) modules may be inserted between one or more processing layers, such as between different instances and/or instance layers, such that as data is processed and results are obtained, the processed results can be sent to the device EBDS for storage before forwarding to the next level of processing, for example through a dedicated FPGA processing module. The same EBDS can be used between all instances or levels of instances, or multiple EBDS can be used between different instances and/or levels of instances, for example, to store, compile and/or queue result data.
[00569] В данной конфигурации перед отправкой данных непосредственно из одного экземпляра и/или с одного уровня обработки на другой, данные могут быть направлены в EBDS или другое запоминающее устройство или структуру для хранения и последующего направления в надлежащий модуль аппаратной обработки. А именно, модуль хранения блоков может быть присоединен к узлу в качестве запоминающего устройства, где данные могут быть записаны в блочное хранилище данных (BDS) для хранения на одном уровне, а BDS может быть переключено на другой узел, чтобы направить сохраненные данные на следующий уровень обработки. Таким образом, один или более, например несколько, модулей BDS могут быть включены в конвейер и выполнены с возможностью переключения с одного узла на другой для участия в переходе данных по всему конвейеру. Кроме того, как указано выше, может быть использовано более гибкое устройство хранения файлов, такое как устройство, которое выполнено с возможностью его связывания с одним или более экземплярами одновременно, например без необходимости переключения с одного на другой.[00569] In this configuration, before sending data directly from one instance and/or from one processing layer to another, the data may be directed to an EBDS or other storage device or structure for storage and subsequent forwarding to the appropriate hardware processing module. Namely, a block storage module can be attached to a node as a storage device, where data can be written to a block data store (BDS) for storage at one level, and the BDS can be switched to another node to forward the stored data to the next level processing. Thus, one or more, such as multiple, BDS modules may be included in a pipeline and configured to switch from one node to another to participate in the movement of data throughout the pipeline. Additionally, as noted above, a more flexible file storage device may be used, such as a device that is configured to be associated with one or more instances at a time, for example, without having to switch from one to another.
[00570] Соответственно, в конвейере для обработки существует множество этапов, например на его обслуживающих узлах, при подготовке данных к обработке, например предварительной обработке, причем после подготовки эти данные направляют в соответствующие экземпляры обработки на одном уровне, где могут быть сгенерированы результирующие данные, затем результиру.щие данные могут быть сохранены, например на устройстве EDS, поставлены в очередь и подготовлены для следующей стадии обработки путем переключения на следующий узел экземпляров и направления в следующий экземпляр для обработки с использованием экземпляров обработки ППВМ и/или ЦП следующего порядка, где могут быть сгенерированы дальнейшие результирующие данные, и опять после генерации результирующие данные могут быть направлены обратно на тот же самый или вперед на следующий уровень EDS для хранения перед продвижением на следующую стадию обработки.[00570] Accordingly, there are multiple steps in a processing pipeline, such as at its service nodes, in preparing data for processing, such as pre-processing, where once prepared, the data is directed to appropriate processing instances at the same level, where resultant data can be generated, The resulting data can then be stored, for example on an EDS device, queued and prepared for the next stage of processing by switching to the next instance node and forwarding to the next instance for processing using the next order FPGA and/or CPU processing instances where they can further result data can be generated, and again once generated, the result data can be sent back to the same or forward to the next EDS level for storage before advancing to the next processing stage.
[00571] В частности, в одном конкретном варианте осуществления поток через конвейер может выглядеть следующим образом: ЦП: данные подготовлены (поставлены в очередь и/или сохранены); ППВМ: Картирование, временное хранение, ППВМ: выравнивание, временное хранение; ЦП: сортировка, временное хранение, ЦП: удаление дубликатов, временное хранение; ППВМ: HMM, временное хранение, ЦП: определение 1 вариантов, временное хранение, ППВМ: Смит-Ватерман, временное хранение, ЦП: определение 2 вариантов, временное хранение, ЦП: VCGF, временное хранение и т. д. Следует отметить, что один или более из этих этапов могут быть выполнены в любом логическом порядке и могут быть реализованы любыми подходящим образом сконфигурированными ресурсами, например реализованы в программном обеспечении и/или аппаратном обеспечении во множестве различных сочетаний. Кроме того, одно или более EDS или другие подходящим образом сконфигурированные устройства хранения данных и/или файлов могут быть присоединены к одному или более из различных узлов, например между различными уровнями экземпляров, например для временного хранения между множеством разных этапов обработки. Соответственно, подобным образом каждый уровень экземпляров обработки может быть эластично масштабирован по мере надобности, например между каждым из разных узлов или уровней узлов, например для обработки одного или нескольких геномов.[00571] Specifically, in one particular embodiment, the flow through the pipeline may look like this: CPU: data prepared (queued and/or stored); FPGA: Mapping, temporary storage, FPGA: alignment, temporary storage; CPU: sorting, temporary storage, CPU: removal of duplicates, temporary storage; FPGA: HMM, temporary storage, CPU: define 1 options, temporary storage, FPGA: Smith-Waterman, temporary storage, CPU: define 2 options, temporary storage, CPU: VCGF, temporary storage, etc. It should be noted that one or more of these steps may be performed in any logical order and may be implemented by any suitably configured resources, such as implemented in software and/or hardware in a variety of different combinations. In addition, one or more EDS or other suitably configured data and/or file storage devices may be attached to one or more of the different nodes, eg between different levels of instances, eg for temporary storage between multiple different processing steps. Accordingly, in a similar manner, each level of processing instances can be elastically scaled as needed, for example between each of the different nodes or levels of nodes, for example to process one or more genomes.
[00572] В соответствии с другим аспектом, как показано на ФИГ. 16, предложен способ использования системы для генерации одного или более файлов данных, над которыми можно выполнять один или более протоколов вторичной и/или третичной обработки. Например, способ может включать обеспечение геномной инфраструктуры, например для одной или более из локальной, облачной и/или гибридной генерации, обработки и/или анализа в области генома и/или биоинформатики.[00572] In accordance with another aspect, as shown in FIG. 16, a method is provided for using a system to generate one or more data files on which one or more secondary and/or tertiary processing protocols can be performed. For example, the method may include providing a genomic infrastructure, such as for one or more of local, cloud and/or hybrid generation, processing and/or analysis in the field of genome and/or bioinformatics.
[00573] В таком случае геномная инфраструктура может включать биоинформационную платформу обработки, имеющую одно или более хапоминающих устройств, которые выполнены с возможностью хранения одной или более выполненных с возможностью конфигурирования обрабатывающих структур для конфигурирования системы с целью обеспечения возможности выполнения одной или более функций аналитической обработки над данными, такими как данные, содержащие интересующую геномную последовательность или относящиеся к ней обработанные результирующие данные. Память может содержать интересующую геномную последовательность, которую необходимо обработать, например после того, как она сгенерирована и/или получена, одну или более контрольных генетических последовательностей и/или может дополнительно содержать индекс одной или более контрольных генетических последовательностей и/или список относящихся к ним границ сплайсинга. Система может также содержать устройство ввода, имеющее программный интерфейс приложения (API) платформы для выбора из списка вариантов одной или более структур обработки, выполненных с возможностью конфигурирования, например дял конфигурирования системы, например путем выбора функций обработки системы, которые будут исполняться над данными, например предварительной или последующей обработки геномных последовательностей, представляющих интерес. Возможно также наличие графического пользовательского интерфейса (ГПИ), которые выполнен с возможностью функционального связывания с API, например для предоставления меню, с помощью которого пользователь может выбирать, какие из имеющихся вариантов требуется выполнить над данными.[00573] In such a case, the genomic infrastructure may include a bioinformatics processing platform having one or more storage devices that are configured to store one or more configurable processing structures for configuring the system to enable one or more analytical processing functions to be performed on data, such as data containing the genomic sequence of interest or processed result data related thereto. The memory may contain a genomic sequence of interest to be processed, for example, after it has been generated and/or obtained, one or more reference genetic sequences and/or may further comprise an index of the one or more reference genetic sequences and/or a list of boundaries relating thereto splicing. The system may also include an input device having a platform application programming interface (API) for selecting from a list of options one or more configurable processing structures, e.g., to configure the system, e.g., by selecting system processing functions to be executed on the data, e.g. pre- or post-processing of genomic sequences of interest. It is also possible to have a graphical user interface (GUI) that can be functionally linked to an API, for example to provide a menu through which the user can select which of the available options to perform on the data.
[00574] Система может быть реализована на одной или более интегральных схем, которые могут быть сформированы из одного или более наборов выполненных с возможностью конфигурирования, например предварительного конфигурирования, или жестко смонтированных цифровых логических схем, которые могут быть взаимно соединены посредством множества физических электрических соединителей. В таком примере интегральная схема может иметь вход, например, интерфейс запоминающего устройства, для приема одного или множества протоколов структуры, выполненных с возможностью конфигурирования, например из запоминающего устройства, и может быть также выполнена с возможностью реализации одной или более структур на интегральной схеме в соответствии с протоколами структуры обработки, выполненными с возможностью конфигурирования. Интерфейс запоминающего устройства входа может быть также выполнен с возможностью приема данных геномной последовательности, которые могут быть представлены в виде множества ридов геномных данных. Интерфейс может быть также выполнен с возможностью доступа к одной или более генетических контрольных последовательностей и индексу (индексам).[00574] The system may be implemented on one or more integrated circuits, which may be formed from one or more sets of configurable, eg preconfigured, or hardwired digital logic circuits, which may be interconnected through a plurality of physical electrical connectors. In such an example, the integrated circuit may have an input, such as a storage device interface, for receiving one or more configurable fabric protocols, such as from a storage device, and may also be configured to implement one or more structures on the integrated circuit according to with configurable processing structure protocols. The input storage interface may also be configured to receive genomic sequence data, which may be represented as a plurality of genomic data reads. The interface may also be configured to access one or more genetic control sequences and index(es).
[00575] В различных примерах цифровые логические схемы могут быть выполнены в виде набора модулей обработки, каждый из которых сформирован из подмножества цифровых логических схем. Цифровые логические схемы и/или движки обработки могут быть выполнены с возможностью осуществления одного или более предварительно конфигурируемых этапов протокола первичной, вторичной и/или третичной обработки для генерации множества ридов данных геномной последовательности и/или обработки множества ридов геномных данных, например в соответствии с контрольной(ыми) генетической(ими) последовательностью(ями) или другой информацией, полученной из генетической последовательности. Интегральная схема может также иметь выход, чтобы выводить результирующие данные первичной, вторичной и/или третичной обработки, например в соответствии с программным интерфейсом приложения (API) платформы.[00575] In various examples, digital logic circuits may be implemented as a set of processing modules, each formed from a subset of digital logic circuits. Digital logic circuits and/or processing engines may be configured to implement one or more preconfigurable primary, secondary, and/or tertiary processing protocol steps to generate multiple genomic sequence data reads and/or process multiple genomic data reads, such as in accordance with a control genetic sequence(s) or other information derived from a genetic sequence. The integrated circuit may also have an output to output primary, secondary, and/or tertiary processing data, for example, in accordance with a platform application programming interface (API).
[00576] В частности, в различных вариантах реализации цифровые логические схемы и/или наборы модулей обработки могут образовывать множество конвейеров для геномной обработки, например когда каждый конвейер может иметь вход, который определен в соответствии с программным интерфейсом приложения платформы для приема платформой биоинформационной обработки результирующих данных первичной и/или вторичной обработки и для выполнения на них одного или более аналитических процессов с целью получения результирующих данных. Кроме того, множество конвейеров для геномной обработки могут иметь общий API конвейеров, который определяет операцию вторичной и/или третичной обработки, которую нужно исполнить над результирующими данными первичной и/или вторичной обработки, например когда каждый из множества конвейеров для геномной обработки выполнен с возможностью осуществления подмножества операций вторичной и/или третичной обработки и вывода результирующих данных вторичной и/или третичной обработки в соответствии с API конвейеров.[00576] In particular, in various embodiments, digital logic circuits and/or sets of processing modules may form multiple pipelines for genomic processing, such as where each pipeline may have an input that is defined in accordance with the platform application programming interface for receiving the resulting bioinformatics processing platform primary and/or secondary processing data and to perform one or more analytical processes on them in order to obtain the resulting data. In addition, the plurality of genomic processing pipelines may have a common pipeline API that defines a secondary and/or tertiary processing operation to be performed on the resulting primary and/or secondary processing data, such as when each of the plurality of genomic processing pipelines is configured to perform subsets of secondary and/or tertiary processing operations and output of the resulting secondary and/or tertiary processing data in accordance with the pipeline API.
[00577] В таких случаях в памяти и/или связанном хранилище приложений, выполненном с возможностью поиска, могут храниться множество приложений геномного анализа, например когда каждое из множества приложений геномного анализа может быть доступно компьютеру посредством электронного носителя, например для исполнения процессором компьютера, с целью осуществления целевого анализа геномных данных из предварительной или последующей обработки результирующих данных первичной, вторичной и/или третичной обработки, например одним или более из множества конвейеров для геномной обработки. В конкретных примерах каждое из множества приложений геномного анализа может быть определено интерфейсом API и может быть выполнено с возможностью приема результирующих данных первичной, вторичной и/или третичной обработки и/или осуществления целевого анализа геномных данных предварительной или последующей обработки и вывода результирующих данных целевого анализа в одну или более геномных баз данных.[00577] In such cases, a plurality of genomic analysis applications may be stored in memory and/or associated searchable application storage, such as where each of the plurality of genomic analysis applications may be accessible to a computer via an electronic medium, such as for execution by a computer processor, with for the purpose of performing targeted analysis of genomic data from pre- or post-processing of the resulting primary, secondary and/or tertiary processing data, for example by one or more of a plurality of genomic processing pipelines. In specific examples, each of a variety of genomic analysis applications may be defined by an API and may be configured to receive primary, secondary, and/or tertiary processing resultant data and/or perform targeted analysis of preprocessing or postprocessing genomic data and output the target analysis resultant data to one or more genomic databases.
[00578] Способ может дополнительно включать выбор, например в меню ГПИ, одного или более конвейеров для геномной обработки из множества доступных конвейеров для геномной обработки системы; выбор одного или более приложений геномного анализа из множества приложений геномного анализа, которые хранятся в хранилище приложений; и исполнение с помощью процессора компьютера одного или более выбранных приложений геномного анализа для осуществления целевого анализа геномных данных из результирующих данных первичной, вторичной и/или третичной обработки.[00578] The method may further include selecting, for example from a GUI menu, one or more genomic processing pipelines from a plurality of available genomic processing pipelines of the system; selecting one or more genomic analysis applications from a plurality of genomic analysis applications that are stored in the application store; and executing, by a computer processor, one or more selected genomic analysis applications to perform targeted analysis of genomic data from the resulting primary, secondary, and/or tertiary processing data.
[00579] Кроме того, в различных вариантах реализации картирование, выравнивание, сортировка и определение вариантов могут происходить на микросхеме, и в различных вариантах реализации местное повторное выравнивание, маркировка дубликатов, перекалибровка оценки качества оснований и/или один или более протоколов и/или конвейеров для третичной обработки тоже выполняются на микросхеме, и в различных примерах различные протоколы сжатия, такие как BAM и CRAM, тоже могут выполняться на микросхеме. Однако после того как данные в результате первичной, вторичной и/или третичной обработки созданы, они могут быть сжаты, например перед передачей, например оправкой по всей системе, отправкой в облако, например для выполнения модуля определения вариантов, платформы вторичной, третичной и/или другой обработки, например включая протокол анализа интерпретации и/или совместной работы. Это может быть полезно, особенно с учетом того факта, что определение вариантов, включая их третичную обработку, может быть «стрельбой по движущейся мишени», например отсутствует стандартизованный согласованный алгоритм, используемый в данной отрасли.[00579] Additionally, in various embodiments, mapping, alignment, sorting, and variant detection may occur on-chip, and in various embodiments, local re-alignment, duplicate marking, base quality assessment recalibration, and/or one or more protocols and/or pipelines for tertiary processing are also performed on-chip, and in various examples, various compression protocols such as BAM and CRAM can also be performed on-chip. However, after the data has been created by primary, secondary and/or tertiary processing, it may be compressed, for example before transmission, such as sending it throughout the system, sending it to the cloud, for example, to run a variant determination module, a secondary, tertiary and/or platform other processing, for example including protocol analysis of interpretation and/or collaboration. This can be useful, especially given the fact that identifying variants, including their tertiary processing, can be “shooting at a moving target”, for example there is no standardized, agreed upon algorithm used in the industry.
[00580] Поэтому при необходимости для достижения различных типов результатов могут использоваться различные алгоритмы, например удаленными пользователями, и, следовательно, полезно иметь модуль на облачной основе для выполнения данной функции, чтобы обеспечить гибкость при выборе алгоритма, полезного в любой заданный конкретный момент, а также последовательной и/или параллельной обработки. Соответственно, любой из модулей, описанных в настоящем документе, может быть реализован либо аппаратно, например на микросхеме, либо программно, например в облаке, но в определенных вариантах реализации все модули могут быть выполнены с возможностью осуществления их функций на микросхеме, или все модули могут быть выполнены с возможностью осуществления их функций удаленно, например в облаке, или может быть обеспечена комбинация модулей, так что некоторые из них находятся на одной или более микросхем, а другие расположены в облаке. Кроме того, как было указано, в различных вариантах реализации сама микросхема или сами микросхемы могут быть выполнены с возможностью функционирования совместно, а в некоторых вариантах реализации, в непосредственном взаимодействии с генетическим секвенатором, таким как NGS и/или секвенатор на микросхеме.[00580] Therefore, different algorithms may be used as needed to achieve different types of results, for example by remote users, and therefore it is useful to have a cloud-based module to perform this function to provide flexibility in choosing the algorithm that is useful at any given specific moment, and also sequential and/or parallel processing. Accordingly, any of the modules described herein may be implemented either in hardware, such as on a chip, or in software, such as in the cloud, but in certain embodiments, all modules may be configured to implement their functions on a chip, or all modules may be configured to perform their functions remotely, for example in the cloud, or a combination of modules can be provided such that some are on one or more chips and others are located in the cloud. Additionally, as noted, in various embodiments, the chip itself or the chips themselves may be configured to operate in conjunction with, and in some embodiments, directly interact with, a genetic sequencer such as NGS and/or an on-chip sequencer.
[00581] Более конкретно, в различных вариантах реализации устройство по настоящему изобретению может быть микросхемой, такой как микросхема, которая выполнена с возможностью обработки данных генома, например путем использования модулей конвейеров для анализа данных. Соответственно, как показано на ФИГ. 17-19, предложена геномная конвейерная процессорная микросхема 100 вместе со связанным аппаратным обеспечением геномной конвейерной процессорной системы 10. Микросхема 100 имеет одно или более соединений с внешним запоминающим устройством 102 («Управляющее устройство памяти DDR3») и соединение 104 (например, интерфейс PCIe) с внешним миром, таким как, например, главный компьютер 106. Коммутатор 108 (например, переключатель) обеспечивает доступ к интерфейсам запоминающего устройства различным инициаторам запросов. Движки 110 DMA передают данные с высоко скоростью между главным устройством и внешними запоминающими устройствами 102 процессорной микросхемы 100 (через коммутатор 108) и/или между главным устройством и центральным управляющим устройством 112. Центральное управляющее устроойство 112 управляет операциями микросхемы, в частности координирует действия нескольких модулей 13 обработки. Движки обработки сформированы из набора жестко смонтированных цифровых логических схем, которые взаимно связаны физическими электрическими соединениями и организованы в кластеры 114 модулей. В некоторых выраинтах осуществления движки в одном кластере совместно используют один порт коммутатора посредством арбитратора. Центральный контроллер 112 имеет соединения с каждым из кластеров модулей. Каждый кластер 114 модулей имеет ряд модулей обработки для обработки геномных данных, в том числе картировщик 120 (или модуль картирования), выравниватель 122 (или модуль выравнивания) и сортировщик 124 (или модуль сортировки). Кластер 114 модулей может содержать также другие движки или модули.[00581] More specifically, in various embodiments, a device of the present invention may be a chip, such as a chip, that is configured to process genome data, for example, by using pipeline modules for data analysis. Accordingly, as shown in FIG. 17-19, a genomic pipeline processor chip 100 is proposed along with associated hardware of a genomic pipeline processor system 10. The chip 100 has one or more connections to an external storage device 102 ("DDR3 Memory Manager") and a connection 104 (e.g., a PCIe interface) with the outside world, such as, for example, the host computer 106. The switch 108 (eg, a switch) provides access to the storage device interfaces to various requesters. DMA engines 110 transfer data at high speed between the host and external memories 102 of the processor chip 100 (via switch 108) and/or between the host and the central control unit 112. The central control unit 112 controls the operations of the chip, such as coordinating the actions of multiple modules. 13 treatments. The processing engines are formed from a set of hard-wired digital logic circuits that are interconnected by physical electrical connections and organized into clusters of 114 modules. In some implementations, engines in the same cluster share one switch port through an arbiter. The central controller 112 has connections to each of the clusters of modules. Each module cluster 114 has a number of processing modules for processing genomic data, including a mapper 120 (or mapping module), an aligner 122 (or alignment module), and a sorter 124 (or sorting module). The module cluster 114 may also contain other engines or modules.
[00582] В соответствии с одной моделью потока данных, согласующейся с вариантами осуществления, описанными в настоящем документе, главное устройство посылает команды и данные через движки 110 DMA в центральное управляющее устройство 112, которое равномерно распределяет данные между модулями обработки. Движки обработки возвращают обработанные данные в центральное управляющее устройство 112, который передает их в потоковом режиме обратно в главное устройство посредством модулей 110 DMA. Эта модель потока данных приспособлена для картирования и выравнивания.[00582] According to one data flow model consistent with the embodiments described herein, the host device sends commands and data through the DMA engines 110 to the central control device 112, which distributes the data evenly among the processing modules. The processing engines return the processed data to the central control device 112, which streams it back to the main device through the DMA modules 110. This data flow model is tailored for mapping and alignment.
[00583] В соответствии с альтернативной моделью потока данных, согласующейся с вариантами осуществления, описанными в настоящем документе, главное устройство передает в потоковом режиме данные во внешнее запоминающее устройство, либо напрямую посредством модулей 110 DMA и комутатора 108, или посредством центрального управляющего устройства 112. Главное устройство отправляет команды в центральное управляющее устройство 112, которое отправляет в движки обработки команды, указывающие модулям обработки, какие данные обрабатывать. Движки обработки осуществляют доступ к входным данным из внешнего запоминающего устройства, обрабатывают их и записывают результаты обратно во внешнее запоминающее устройство, сообщая статус в центральное управляющее устройство 112. Центральное управляющее устройство 112 либо отправляет результирующие данные в потоковом режиме обратно в главное устройство из внешнего запоминающего устройства, либо уведомляет главное устройство, чтобы оно само извлекало результирующие данные посредством модулей 110 DMA.[00583] According to an alternative data flow model consistent with the embodiments described herein, the host device streams data to an external storage device, either directly through the DMA modules 110 and switch 108, or through a central control device 112. The master device sends commands to the central control device 112, which sends commands to the processing engines telling the processing modules what data to process. The processing engines access input data from the external storage device, process it, and write the results back to the external storage device, reporting status to the central control device 112. The central control device 112 either streams the resulting data back to the main device from the external storage device , or notifies the host device to itself retrieve the resulting data through the DMA modules 110.
[00584] На ФИГ. 17 и 18 показана геномная конвейерная процессорная система, изображающая полный комплект модулей обработки внутри кластера 114/214 модулей. Конвейерная процессорная система может содержать один или более кластеров 114/214 модулей. В некоторых вариантах осуществления конвейерная процессорная система 20 содержит четыре или более кластеров 114/214 модулей. В число модулей обработки или типов модулей обработки могут входить, без ограничений, картировщик, выравниватель, сортировщик, местный перевыравниватель, перекалибровщик оценки качества оснований, маркировщик дубликатов, определитель вариантов, сжимающие средства и/или распаковывающие средства. В некоторых вариантах осуществления каждый кластер 114/214 модулей имеет по одному движку обработки каждого типа. Соответственно, все движки обработки одного типа могут осуществлять доступ к коммутатору 108 одновременно через разные порты коммутатора, так как каждый из них находится в разных кластерах 114/214 модулей. Формирование в каждом кластере 114/214 модулей обработки каждого типа не требуется. Типы модулей обработки, которые требуют огромной параллельной обработки или пропускной способности запоминающего устройства, такие как картировщик (с прикрепленным(и) выравнивателем(ями)) и сортировщик, могут содержаться в каждом кластере модулей конвейерной процессорной системы 20. Движки других типов могут появляться только в одном или нескольких кластерах 114/214 модулей по мере необходимости для удовлетворения требований к их производительности или производительности конвейерной процессорной системы.[00584] In FIG. 17 and 18 show a genomic pipeline processor system depicting a complete set of processing modules within a cluster of 114/214 modules. The pipelined processor system may comprise one or more module clusters 114/214. In some embodiments, pipeline processor system 20 includes four or more module clusters 114/214. Processing modules or types of processing modules may include, but are not limited to, a mapper, an aligner, a sorter, a local re-aligner, a base quality recalibrator, a duplicate flagger, a variant detector, compression means and/or decompressor means. In some embodiments, each module cluster 114/214 has one of each type of processing engine. Accordingly, all processing engines of the same type can access the switch 108 simultaneously through different switch ports, since each of them resides in different module clusters 114/214. The formation of 114/214 processing modules of each type in each cluster is not required. Types of processing engines that require enormous parallel processing or storage throughput, such as a mapper (with attached aligner(s)) and sorter, may be contained in each cluster of modules of the pipeline processor system 20. Other types of engines may only appear in one or more clusters of 114/214 modules as needed to meet their or the pipelined processor system's performance requirements.
[00585] На ФИГ. 19 приведена геномная конвейерная процессорная система, показывающая в дополнение к кластерам модулей, описанным выше, одно или более внедренных центральных процессоров (ЦП) 202. В число примеров таких внедренных ЦП входят ядра Snapdragon® или стандартные ядра ARM®. Эти ЦП исполняют полностью программируемые биоинформационные алгоритмы, такие как улучшенное определение вариантов. Такую обработку ускоряют с помощью вычислительных функций в кластерах модулей, которые могут быть вызваны ядрами 202 ЦП по мере надобности. Кроме того, даже ориентированная на движки обработка, такая как картирование или выравнивание, может выполняться ядрами 202 ЦПУ, обеспечивая их повышенную программируемость.[00585] In FIG. 19 illustrates a genomic pipeline processor system showing, in addition to the clusters of modules described above, one or more embedded central processing units (CPUs) 202. Examples of such embedded CPUs include Snapdragon® cores or standard ARM® cores. These CPUs execute fully programmable bioinformatics algorithms such as advanced variant detection. Such processing is accelerated by computational functions in clusters of modules that can be invoked by CPU cores 202 as needed. Additionally, even engine-centric processing such as mapping or alignment can be performed by the CPU cores 202, providing them with increased programmability.
[00586] На ФИГ. 20 показан поток обработки для геномных конвейерных процессорных системы и способа. В некоторых предпочтительных вариантах осуществления данные обрабатывают в три прохода. Первый проход включает в себя картирование 402 и выравнивание 404, причем через движки прогоняют полный набор ридов. Второй проход включает в себя сортировку 406, где один большой блок, подлежащий сортировке (например, существенную часть всех ридов, ранее картированных на одну хромосому) загружают в запоминающее устройство, сортируют с помощью модулей обработки и возвращают в центральный компьютер. Третий проход включает в себя следующие по цепочке стадии (местное повторное выравнивание 408, маркировку 410 дубликатов, перекалибровку 412 оценки качества оснований (BQSR), вывод 414 BAM, вывод 416 редуцированного BAM и/или сжатие 418 CRAM). Этапы и функции третьего прохода могут быть выполнены в любой комбинации или подкомбинации и в любом порядке за один проход. Архитектуру с виртуальным конвейером, например как описана выше, используют для потоковой передачи ридов из главного устройства в циклические буферы в запоминающем устройстве через один модуль обработки за другим последовательно и обратно в главное устройство. В некоторых вариантах осуществления распаковка CRAM может быть отдельной функцией потоковой передачи. В некоторых вариантах осуществления вывод 414 BAM, вывод 416 редуцированного BAM и/или сжатие 418 CRAM могут быть заменены определением вариантов, сжатием и распаковкой.[00586] In FIG. 20 shows a processing flow for a genomic pipeline processor system and method. In some preferred embodiments, the data is processed in three passes. The first pass involves mapping 402 and alignment 404, with the full set of reads being run through the engines. The second pass includes sorting 406, where one large block to be sorted (eg, a substantial portion of all reads previously mapped to one chromosome) is loaded into storage, sorted by processing modules, and returned to the central computer. The third pass includes the next steps in the chain (local realignment 408, duplicate labeling 410, base quality score recalibration (BQSR) 412, BAM inference 414, reduced BAM inference 416, and/or CRAM compression 418). The steps and functions of the third pass can be performed in any combination or subcombination and in any order in a single pass. A virtual pipeline architecture, such as the one described above, is used to stream reads from the host to circular buffers in storage, through one processing unit after another, sequentially, and back to the host. In some embodiments, CRAM decompression may be a separate streaming function. In some embodiments, BAM output 414, reduced BAM output 416, and/or CRAM compression 418 may be replaced by variant detection, compression, and decompression.
[00587] В различных примерах описана аппаратная реализация конвейера для анализа последовательности. На фиг. 21 показана общая блок-схема варианта осуществления настоящего изобретения. В блоке 1 описана аппаратная реализация конвейера для анализа последовательности. Это можно сделать множеством различных способов, напимер при помощи варианта осуществления с использованием ППВМ, ИССН или структурированной ИССН. Функциональные блоки, которые реализованы с помощью ППВМ, ИССН или структурированной ИССН, показаны на фиг. 6 и 7. Фиг. 6 и 7 включают ряд блоков или модулей для выполнения анализа последовательности. Входными данными аппаратной реализации может быть файл в формате FASTQ, но этот формат не является ограничением. Помимо файла в формате FASTQ входные данные ППВМ, ИССН или структурированной ИССН содержат вспомогательную информацию, например Информацию об объеме потока (Flow Space Information), относящуюся к технологии, такой как Ion Torrent. В число блоков или модулей по фиг. 21 могут входить следующие блоки: исправление ошибок, картирование, выравнивание, сортировка, местное повторное выравнивание, маркировка дубликатов, перекалибровка оценки качества оснований, сокращение BAM и побочной информации и/или определение вариантов.[00587] Various examples describe a hardware implementation of a sequence analysis pipeline. In fig. 21 is a general block diagram of an embodiment of the present invention. Block 1 describes the hardware implementation of the sequence analysis pipeline. This can be done in many different ways, for example using an FPGA, ISSN, or structured ISSN embodiment. Functional blocks that are implemented using FPGA, ISSN or structured ISSN are shown in FIG. 6 and 7. FIG. 6 and 7 include a number of blocks or modules for performing sequence analysis. The input to the hardware implementation may be a file in FASTQ format, but this format is not a limitation. In addition to the FASTQ file, the FPGA, ISSN, or structured ISSN input data contains auxiliary information, such as Flow Space Information, related to a technology such as Ion Torrent. The number of blocks or modules in FIG. 21 may include the following blocks: error correction, mapping, alignment, sorting, local realignment, duplicate labeling, base quality assessment recalibration, BAM and side information reduction, and/or variant identification.
[00588] Эти блоки или модули могут присутствовать внутри, или могут быть реализованы аппаратным обеспечением, но для достижения цели реализации конвейера для анализа последовательности некоторые из указанных блоков могут быть опущены, а другие блоки добавлены. Блоки 2 и 3 описывают два альтернативных варианта конвейерной платформы для анализа последовательности. Конвейерная платформа для анализа последовательности содержит ППВМ, ИССН или структурированную ИССН и программное обеспечение, поддерживаемое главным устройством (например, ПК, сервером, кластером или средствами облачного вычисления) с помощью облачного и/или кластерного хранилища. Блоки 4-7 описывают различные интерфейсы, которые может иметь конвейер для анализа последовательности. В блоках 4 и 6 интерфейс может представлять собой интерфейс PCIe, но не ограничивается интерфейсом PCIe. В блоках 5 и 7 аппаратное обеспечение (ППВМ, ИССН или структурированная ИССН) может быть непосредственно интегрировано в секвенатор. Блоки 8 и 9 описывают интеграцию аппаратного конвейера для анализа последовательности, интегрированного в главную систему, такую как ПК, кластер серверов или секвенатор. Аппаратное обеспечение ППВМ, ИССН или структурированной ИССН окружают множество элементов памяти DDR3 и интерфейса PCIe. Плата с ППВМ/ИССН/сИССН соединена с главным компьютером, состоящим из главного ЦП, который может быть маломощным ЦП, таким ка ARM®, Snapdragon® или любой другой процессор. Блок 10 показывает API аппаратный конвейер для анализа последовательности, который может быть доступен приложениям третьих лиц для выполнения третичного анализа.[00588] These blocks or modules may be present internally, or may be implemented in hardware, but to achieve the purpose of implementing a sequence analysis pipeline, some of these blocks may be omitted and other blocks added. Blocks 2 and 3 describe two alternative pipeline platforms for sequence analysis. The sequence analysis pipeline platform comprises a FPGA, ISSN or structured ISSN and software supported by a host device (eg, PC, server, cluster or cloud computing facilities) using cloud and/or cluster storage. Blocks 4-7 describe the various interfaces that a sequence analysis pipeline may have. In blocks 4 and 6, the interface may be a PCIe interface, but is not limited to a PCIe interface. In blocks 5 and 7, the hardware (FPGA, ISSN or structured ISSN) can be directly integrated into the sequencer. Blocks 8 and 9 describe the integration of a hardware pipeline for sequence analysis integrated into a host system such as a PC, server cluster, or sequencer. The FPGA, ISSN, or structured ISSN hardware is surrounded by multiple DDR3 memory elements and a PCIe interface. The FPGA/ISCH/SSCH board is connected to a host computer consisting of a main CPU, which may be a low-power CPU such as an ARM®, Snapdragon®, or any other processor. Block 10 shows an API hardware pipeline for sequence analysis that can be accessed by third party applications to perform tertiary analysis.
[00589] Соответственно, в различных вариантах реализации устройство по настоящему изобретению может содержать вычислительную архитектуру, например внедренную в ППВМ или кремниевую интегральную схему специального назначения (ИССН) 100, как показано на фиг. 6 и 7. Интегральная схема 100 может быть интегрирована в печатную плату (ПП) 104, такую как плата интерфейса периферийных компонентов типа экспресс (PCIe), которую можно вставить в вычислительную платформу. В различных примерах, как показано на ФИГ. 6, плата 104 PCIe может содержать одну ППВМ или ИССН 100, причем интегральная схема может быть окружена локальными запоминающими устройствами 105, однако в различных вариантах реализации, как показано на ФИГ. 7, плата 104 PCIe может содержать множество ППВМ и/или ИССН 100A, 100B и 100C. В различных примерах плата PCI может также содержать шину PCIe. Плата 104 PCIe может быть добавлена на вычислительную платформу для исполнения алгоритмов над чрезвычайно большими наборами данных. Соответственно, в различных примерах весь рабочий поток секвенирования генома, задействующий интегральную схему, может включать в себя следующее: подготовку образца, выравнивание (включая картирование и выравнивание), анализ вариантов, биологическую интерпретацию и/или специальные приложения.[00589] Accordingly, in various embodiments, a device of the present invention may comprise a computing architecture, such as embedded in an FPGA or a special purpose silicon integrated circuit (SPIC) 100, as shown in FIG. 6 and 7. The integrated circuit 100 may be integrated into a printed circuit board (PCB) 104, such as a peripheral component interface express (PCIe) card, that may be inserted into a computing platform. In various examples, as shown in FIG. 6, the PCIe card 104 may contain a single FPGA or ISSN 100, where the integrated circuit may be surrounded by local storage devices 105, however, in different embodiments, as shown in FIG. 7, PCIe card 104 may include a plurality of FPGAs and/or ISSNs 100A, 100B, and 100C. In various examples, the PCI card may also include a PCIe bus. The PCIe card 104 can be added to a computing platform to run algorithms on extremely large data sets. Accordingly, in various examples, the entire genome sequencing workflow involving an integrated circuit may include the following: sample preparation, alignment (including mapping and alignment), variant analysis, biological interpretation, and/or custom applications.
[00590] Следовательно, в различных вариантах реализации устройство по настоящему изобретению может содержать вычислительную архитектуру, которая достигает высокоэффективного исполнения алгоритмов, таких как алгоритмы картирования и выравнивания, которые работают над чрезвычайно большими наборами данных, например когда наборы данных проявляют плохую локальность ссылок (LOR). Эти алгоритмы предназначены для реконструкции всего генома из миллионов последовательностей коротких ридов из современных, так называемых, секвенаторов нового поколения, требующей многогигабайтные структуры данных с произвольным доступом. По достижении реконструкции, как описано выше в настоящем документе, используют дальнейшие алгоритмы с аналогичными характеристиками для сравнения одного генома с библиотеками других, выполнения функционального анализа генов и т. д.[00590] Therefore, in various embodiments, the device of the present invention may comprise a computing architecture that achieves highly efficient execution of algorithms, such as mapping and alignment algorithms, that operate on extremely large data sets, such as when the data sets exhibit poor locality of reference (LOR) . These algorithms are designed to reconstruct the entire genome from millions of short read sequences from modern so-called next-generation sequencers, requiring multi-gigabyte random access data structures. Once reconstruction is achieved, as described above in this document, further algorithms with similar characteristics are used to compare one genome with libraries of others, perform functional analysis of genes, etc.
[00591] В нестоящее время используются два основных подхода, многоядерные ЦП общего назначения и графические процессоры общего назначения (ГПОН). В таком примере каждый ЦП в многоядерной системе может иметь классическую архитектуру на основе кэша, где инструкции и данные извлекаются из кэша уровня 1 (кэш L1), который мал, но обладает чрезвычайно быстрым доступом. Множество кэшей L1 могут быть соединены с более крупным, но более медленным кэшем L2. Кэш L2 может быть соединен с большой, но более медленной системой памяти DRAM (динамическое оперативное запоминающее устройство), или может быть соединен с еще более крупным, но более медленным кэшем L3, который может быть затем соединен с DRAM. Преимущество такой компоновки может заключаться в том, что приложения, в которых программы и данные проявляют локальность ссылок, ведут себя почти так, как если бы они исполнялись на компьютере с одним запоминающим устройством, большим как DRAM, но быстрым как кэш L1. Поскольку полностью заказные в высшей степени оптимизированные ЦП работают при очень высоких тактовых частотах, например от 2 до 4 ГГц, эта архитектура может быть существенна для достижения хороших рабочих характеристик.[00591] There are two main approaches currently in use, general purpose multi-core CPUs and general purpose graphics processing units (GPPUs). In such an example, each CPU in a multi-core system might have a classic cache-based architecture, where instructions and data are fetched from a level 1 cache (L1 cache), which is small but extremely fast to access. Multiple L1 caches can be connected to a larger but slower L2 cache. The L2 cache can be coupled to a larger but slower DRAM (Dynamic Random Access Memory) memory system, or it can be coupled to an even larger but slower L3 cache, which can then be coupled to DRAM. An advantage of this arrangement may be that applications in which programs and data exhibit reference locality behave almost as if they were running on a computer with a single storage device as large as DRAM but as fast as an L1 cache. Since fully custom, highly optimized CPUs operate at very high clock speeds, such as 2 to 4 GHz, this architecture can be essential to achieving good performance.
[00592] Кроме того, эту архитектуру можно расширить с помощью ГПОН, например за счет реализации очень большого количества малых ЦП, каждый со своим малым кэшем L1, причем каждый ЦП исполняет одни и те же инструкции над различными подмножествами данных. Это представляет собой так называемую архитектуру SIMD (один поток команд, много потоков данных). Экономии можно достичь за счет совместного использования логики выборки и декодирования команды по всем большому количеству ЦП. Каждый кэш имеет доступ к множеству больших внешних DRAM через сеть межсоединений. Предполагая, что вычисление должно выполняться с возможностью высокого распараллеливания, ГПОН имеют значительное преимущество над ЦП общего назначения благодаря большому количеству вычислительных ресурсов. Тем не менее, они все равно имеют архитектуру с кэшированием и их рабочие характеристики ухудшаются приложениями, которые не обладают достаточной высокой степенью локальности ссылок. Это приводит к высокому коэффициенту непопадания при обращении к кэшу и простою процессоров в ожидании поступления данных из внешнего DRAM.[00592] In addition, this architecture can be extended using GPON, for example by implementing a very large number of small CPUs, each with its own small L1 cache, with each CPU executing the same instructions on different subsets of data. This represents the so-called SIMD (single instruction stream, multiple data stream) architecture. Savings can be achieved by sharing instruction fetching and decoding logic across a large number of CPUs. Each cache has access to multiple large external DRAMs through a network of interconnects. Assuming that the computation must be performed in a highly parallel manner, GPUs have a significant advantage over general-purpose CPUs due to the large amount of computational resources they have. However, they still have a cache-based architecture and their performance is degraded by applications that do not have a high enough degree of reference locality. This results in high cache miss rates and idle processors waiting for data to arrive from external DRAM.
[00593] Например, в различных примерах в качестве системной памяти могут использоваться динамические RAM, поскольку они более экономичные, чем статические RAM (SRAM). Приблизительно можно считать, что при одинаковой стоимости объем DRAM в 4 раза превосходит объем SRAM. Однако, ввиду падения спроса на SRAM в пользу DRAM, разрыв между ними значительно увеличился из-за экономии пространства, которую предлагают DRAM, которые пользуются большим спросом. Независимо от стоимости DRAM в 4 раза плотнее, чем SRAM, размещенные на одинаковой площади кремния, так как для них требуются только один транзистор и одна емкость на бит по сравнению с 4 транзисторами на бит для реализации триггера в SRAM. DRAM представляет один бит информации как наличие или отсутствие заряда в емкости. Проблема с такой структурой состоит в том, что заряд ослабевает со временем, поэтому его нужно периодически обновлять. Такая необходимость привела к архитектурам, организующим запоминающие устройства в виде независимых блоков и механизмов доступа, которые выдают множество слов памяти на каждый запрос. Это компенсирует время, когда данный блок недоступен во время обновления. Идея состоит в перемещении огромного количества данных, пока данный блок доступен. В этом заключается отличие от SRAM, в котором любое место в запоминающем устройстве доступно за одно обращение в течение постоянного количества времени. Данная характеристика позволяет при обращении к запоминающему устройству ориентироваться на одно слово, а не блок. DRAM работают хорошо в архитектуре с кэшированием, так как каждое непопадание в кэш приводит к блоку памяти, считываемому из DRAM. Теория локальности ссылок состоит в том, что сразу после обращения к слову N, вероятно, последует обращение к словам N + 1, N + 2, N + 3 и т. д.[00593] For example, in various examples, dynamic RAM may be used as system memory because it is more cost effective than static RAM (SRAM). Approximately, we can assume that at the same cost, the volume of DRAM is 4 times greater than the volume of SRAM. However, with the demand for SRAM falling in favor of DRAM, the gap between the two has widened significantly due to the space savings offered by DRAMs, which are in high demand. Regardless of cost, DRAM is 4 times denser than SRAM placed on the same silicon area, as it requires only one transistor and one capacitance per bit compared to 4 transistors per bit to implement a flip-flop in SRAM. DRAM represents one bit of information as the presence or absence of charge in the capacitance. The problem with this structure is that the charge weakens over time, so it needs to be renewed periodically. This need has led to architectures that organize storage devices into independent blocks and access mechanisms that issue multiple words of memory per request. This compensates for the time when a given block is unavailable during an update. The idea is to move a huge amount of data while a given block is available. This is in contrast to SRAM, in which any location in the memory device is accessible in one access for a constant amount of time. This characteristic allows you to focus on one word, rather than a block, when accessing a storage device. DRAMs work well in a cached architecture because each cache miss results in a block of memory being read from the DRAM. The theory of locality of references is that immediately after a reference to the word N, there will likely be a reference to the words N + 1, N + 2, N + 3, etc.
[00594] На фиг. 7 показан альтернативный вариант реализации по фиг. 6, имеющий множество микросхем 100A, 100B, 100C, где каждая микросхема может включать один или более различных модулей геномной и/или биоинформационной обработки, например приведенное в качестве примера конвейерное устройство для анализа, как раскрыто в настоящем документе.[00594] In FIG. 7 shows an alternative embodiment to FIG. 6 having a plurality of chips 100A, 100B, 100C, where each chip may include one or more different genomic and/or bioinformatics processing modules, such as an exemplary analysis pipeline as disclosed herein.
[00595] На фиг. 17 показана система 100 для исполнения конвейера анализа последовательности над данными генетической последовательности. Система 100 содержит диспетчер 102 конфигураций, который содержит вычислительную систему. Вычислительная система диспетчера 102 конфигураций может содержать персональный компьютер или другую компьютерную рабочую станцию, или может быть реализована комплектом сетевых компьютеров. Диспетчер 102 конфигураций может также содержать одно или более приложений третьих лиц, соединенных с вычислительной системой посредством одного или более API, которые вместе с одним или более частных приложений генерирует конфигурацию для обработки данных генома из секвенатора или другого источника данных генома. Диспетчер 102 конфигураций также содержит драйверы, которые загружают конфигурацию в конвейерную процессорную систему 10 для генома. Конвейерная процессорная система 10 для генома может выводить результирующие данные в сеть Интернет 504 или другую сеть, или быть доступна через них, для сохранения результирующих данных в электронной записи 200 о здоровья или другой базе 400 данных знаний.[00595] In FIG. 17 shows a system 100 for running a sequence analysis pipeline on genetic sequence data. System 100 includes a configuration manager 102, which contains the computing system. The configuration manager computing system 102 may comprise a personal computer or other computer workstation, or may be implemented by a set of networked computers. The configuration manager 102 may also contain one or more third party applications connected to the computing system through one or more APIs that, together with one or more proprietary applications, generates a configuration for processing genome data from a sequencer or other genome data source. The configuration manager 102 also contains drivers that load the configuration into the genome pipeline processor system 10. The genome pipeline processing system 10 may output the resulting data to or be accessible through the Internet 504 or other network to store the resulting data in an electronic health record 200 or other knowledge database 400 .
[00596] Как не раз отмечалось выше в настоящем документе, микросхема, реализующая конвейерный процессор для генома, может быть соединена или интегрирована с секвенатором. Эта микросхема может быть также соединена или интегрирована на плате расширения, такой как плата PCIe, а плата расширения может быть соединена или интегрирована с секвенатором. В других вариантах осуществления микросхема может быть соединена или интегрирована с серверным компьютером, который соединен с секвенатором, чтобы передавать риды геномов из секвенатора на сервер. В еще одних вариантах осуществления микросхема может быть соединена или интегрирована с сервером в облачном вычислительном кластере компьютеров и серверов. Система может содержать один или более секвенаторов, подключенных (например, посредством Ethernet) к серверу, содержащему микросхему, причем риды геномов генерируются множеством секвенаторов, передаются на сервер, и затем картируются и выравниваются в микросхеме.[00596] As noted several times earlier herein, a genome pipeline processor chip may be coupled or integrated with a sequencer. This chip may also be coupled or integrated on an expansion card, such as a PCIe card, and the expansion card may be coupled or integrated with the sequencer. In other embodiments, the chip may be coupled or integrated with a server computer that is coupled to the sequencer to transfer genomic reads from the sequencer to the server. In yet other embodiments, the chip may be coupled to or integrated with a server in a cloud computing cluster of computers and servers. The system may include one or more sequencers connected (eg, via Ethernet) to a server containing an chip, wherein reads of genomes are generated by the plurality of sequencers, transmitted to the server, and then mapped and aligned on the chip.
[00597] Например, обычно в конвейерах данных секвенатора ДНК нового поколения (NGS) обработка стадии первичного анализа, как правило, специфична для данной технологии секвенирования. Эту стадию первичного анализа выполняют для перевода физических сигналов, обнаруживаемых внутри секвенатора, в «риды» нуклеотидных последовательностей вместе с соответствующими оценками качества (достоверности), например в файлах в формате FASTQ или в других форматах, содержащих последовательность и, как правило, информацию о качестве. Кроме того, после получения такого формата переходят к вторичному анализу, как описано в настоящем документе, чтобы определить содержимое секвенированного образца ДНК (или РНК и т.д.), например с помощью картирования и выравнивания ридов на контрольный геном, сортировки, маркировки дубликатов, перекалибровки оценки качества оснований, местного повторного выравнивания и определения вариантов. Затем может следовать третичный анализ для извлечения медицинских и исследовательских заключений из определенного содержимого ДНК.[00597] For example, typically in next-generation sequencer (NGS) data pipelines, the processing of the primary analysis step is typically specific to a given sequencing technology. This primary analysis step is performed to translate the physical signals detected within the sequencer into nucleotide sequence “reads” along with associated quality (confidence) scores, such as files in FASTQ format or other formats containing sequence and typically quality information . Additionally, once such a format is obtained, secondary analysis as described herein is performed to determine the contents of the sequenced DNA (or RNA, etc.) sample, for example by mapping and alignment of reads to a reference genome, sorting, labeling of duplicates, recalibration of base quality assessment, local realignment and identification of options. Tertiary analysis may then follow to extract medical and research conclusions from specific DNA contents.
[00598] Однако первичный анализ, как упоминалось выше, по своей природе часто довольно специфичен для используемой технологии секвенирования. В различных секвенаторах нуклеотиды обнаруживаются путем измерения электрических зарядов, электрического тока или излучаемого света. Некоторые конвейеры для первичного анализа часто включают в себя: обработку сигнала для усиления, фильтрации, разделения и измерения выходного сигнала датчика; уменьшение объема данных, например путем разбиения на подгруппы, прореживания, усреднения, преобразования и т. д.; обработку изображения или цифровую обработку с целью выявления и усиления имеющих значение сигналов и связывания их с конкретными ридами и нуклеотидами (например, вычисление смещения изображения, идентификацию кластера); алгоритмическую обработку и эвристическую процедуру для компенсации артефактов технологии секвенирования (например, оценку фазирования, матрицы перекрестных помех); вычисления байесовской вероятности; скрытые марковские модели; определение оснований (выбор наиболее вероятного нуклеотида в каждой позиции в последовательности); оценку качества (достоверности) определения оснований и т. п.[00598] However, the primary analysis, as mentioned above, is often quite specific in nature to the sequencing technology used. In various sequencers, nucleotides are detected by measuring electrical charges, electrical current, or emitted light. Some primary analysis pipelines often include: signal processing to amplify, filter, separate, and measure the sensor output; reducing the volume of data, for example, by dividing into subgroups, thinning, averaging, transforming, etc.; image processing or digital processing to identify and amplify significant signals and associate them with specific reads and nucleotides (eg, image bias calculation, cluster identification); algorithmic processing and heuristic procedure to compensate for sequencing technology artifacts (eg, phasing estimation, crosstalk matrices); Bayesian probability calculations; hidden Markov models; base determination (selection of the most likely nucleotide at each position in the sequence); assessment of the quality (reliability) of determining the grounds, etc.
[00599] Первичный анализ может быть сильно емким с коммутативной точки зрения, иногда таким же емким, как и вторичный анализ. Например, в существующих технологиях секвенирования первичный анализ зачастую использует ППВМ и ГП для ускорения процесса выше возможностей ЦП. Но эти ускоренные функции могут быть выполнены значительно более эффективно в определенной интегральной схеме, например такой, как описана в настоящем документе. Например они могут быть реализованы в структурированной ИССН с использованием конфигурируемых металлических слоев, так как им не требуется столько точности при физическом размещении, сколько требуют встроенные ядра процессоров, однако существенные параллельные вычисления, реализованные в больших ППВМ и ГП может быть сложно осуществить в конфигурируемых ресурсах структурированной ИССН. В качестве альтернативы можено реализовать логику ускорения первичной обработки в базовой пластине структурированной ИССН, обеспечивая преимущество пространственной эффективности стандартной ячейки в базовой пластине.[00599] The primary analysis can be highly commutatively intensive, sometimes as extensive as the secondary analysis. For example, in existing sequencing technologies, primary analysis often uses FPGA and GPU to speed up the process beyond the CPU's capabilities. But these accelerated functions can be performed much more efficiently in a specific integrated circuit, such as the one described herein. For example, they can be implemented in a structured ISSN using configurable metal layers, since they do not require as much precision in physical placement as embedded processor cores require, however, significant parallel computations implemented in large FPGAs and GPUs may be difficult to implement in the configurable resources of a structured ISSN. Alternatively, it is possible to implement the primary processing acceleration logic in the base plate of the structured ISSN, taking advantage of the spatial efficiency of a standard cell in the base plate.
[00600] Причина того, что функции вторичной обработки могут быть реализованы в конфигурируемых металлических слоях структурированной ИССН, заключается в том, что алгоритмы вторичной обработки данных генома все еще подвергаются активным исследованиям. Таким образом, преимуществом может быть возможность периодически выполнять обновленную конструкцию структурированной ИССН недорогим образом, например каждый год или два года для применения наиболее новых алгоритмов. В противоположность этому алгоритмы первичного анализа в настоязее, используемые в настоящее время, являются более проработанными, обязательные этапы обраюотки были исследованы и определены соответствующими производителями секвенаторов. Несмотря на то, что они все еще в некоторой мере подвергнуты изменениям, указанные алгоритмы в большей степени представляют собой родовой сигнал и числовую обработку, чем в случае вторичного анализа, так что надлежащая конфигурируемость и микропрограммирование модулей ускорения первичной обработки может сделать их достаточно гибкими для значительных изменения. При наличии встроенные ядра процессоры повышают эту гибкость еще сильнее. Поэтому есть смысл интегрировать методы ускорения первичной обработки в базовую пластину ППВМ и/или структурированной ИССН, как описано в настоящем документе.[00600] The reason that secondary processing functions can be implemented in configurable metal layers of structured ISSN is that algorithms for secondary processing of genome data are still under active research. Thus, it may be an advantage to be able to periodically update the structured ISS design in a low-cost manner, for example every year or two years to apply the newest algorithms. In contrast, the primary infusion analysis algorithms currently in use are more mature, and the required processing steps have been researched and defined by the respective sequencer manufacturers. Although still subject to some modification, these algorithms are more generic signal and numerical processing than secondary analysis, so proper configurability and microprogramming of the primary processing acceleration modules can make them flexible enough for significant changes. With embedded cores, processors enhance this flexibility even further. Therefore, it makes sense to integrate methods for accelerating primary processing into the base plate of FPGA and/or structured ISSN, as described herein.
[00601] Также преимуществом является интеграция ускорения первичной обработки и ускорения вторичной обработки в единую интегральную схему ППВМ или ИССН (стандартную ячейку или структурированную ИССН) с встроенными процессорами, или без них. Это может быть полезным, так как секвенаторы вырабатывают данные, которым требуется первичный и вторичный анализ, и интеграция их в единое устройство является наиболее эффекктивной с точки зрения стоимости, пространства, энергии и совместного использования ресурсов. Если также присутствуют встроенные процессоры, они могут быть использованы для повышения скорости и гибкости как первичной, так и вторичной обработки.[00601] It is also advantageous to integrate primary processing acceleration and secondary processing acceleration into a single integrated circuit FPGA or ISSN (standard cell or structured ISSN) with or without embedded processors. This can be beneficial because sequencers produce data that requires primary and secondary analysis, and integrating them into a single device is most efficient in terms of cost, space, energy, and resource sharing. If embedded processors are also present, they can be used to increase the speed and flexibility of both primary and secondary processing.
[00602] Эти три компонента - первичные ускорители, вторичные ускорители и встроенные процессоры - могут быть реализованы в базовой пластине ППВМ или структурированной ИССН и/или с использованием конфигурируемых металлических слоев, или их комбинации. Все три могут быть в базовой пластине, или все три могут использовать конфигурируемые металлические слои, или любые два из них могут быть в базовой пластине, а другие использовать конфигурируемые металлические слои. В любой из указанных конфигураций все три могут осуществлять связь друг с другом в любой комбинации непрямую и/или через запоминающее устройство, и взаимодействовать в общих задачах. Одной предпочтительной конфигурацией является реализация первичного ускорения и встроенных процессоров в базовой пластине и реализация вторичного ускорения с использованием конфигурируемых металлических слоев.[00602] These three components—primary accelerators, secondary accelerators, and embedded processors—can be implemented in an FPGA baseplate or a structured ISSN and/or using configurable metal layers, or a combination thereof. All three could be in the base plate, or all three could use configurable metal layers, or any two of them could be in the base plate and the others use configurable metal layers. In any of these configurations, all three can communicate with each other in any combination of indirect and/or through storage, and cooperate in common tasks. One preferred configuration is to implement primary acceleration and embedded processors in the base plate and implement secondary acceleration using configurable metal layers.
[00603] Кроме того, как указано выше, микросхема, реализованная как ИССН, ППВМ или структурированная ИССН, может включать или другим образом быть связана с одной или более архитектурами памяти. Например, архитектура памяти может состоять из M модулей памяти, которые взаимодействуют с микросхемой, например с ИССН. ИССН может быть реализована с использованием множества различных технологий, включая ППВМ (Программируемые пользователем вентильные матрицы) или структурированную ИССН, стандартные ячейки или полностью заказную логику. В ИССН присутствуют Подсистема памяти (MSS) и функциональные процессоры (ФП). MSS содержит M контроллеров памяти (MC) для модулей памяти, N системных интерфейсов памяти (SMI) для ФП и N×M коммутаторов, которые обеспечивают возможность доступа любых SMI к любыт MC. В случае конфликтов обеспечено разрешение конфликтных ситуаций.[00603] Additionally, as discussed above, a chip implemented as an ISSN, FPGA, or structured ISSN may include or otherwise be associated with one or more memory architectures. For example, a memory architecture may consist of M memory modules that interact with a chip, such as an ISSN. ISS can be implemented using a variety of different technologies, including FPGA (Field Programmable Gate Arrays) or structured ISS, standard cells, or completely custom logic. The ISSN contains a memory subsystem (MSS) and functional processors (FP). The MSS contains M memory controllers (MCs) for memory modules, N system memory interfaces (SMIs) for FPs, and N×M switches that allow any SMI to access any MC. In case of conflicts, conflict resolution is ensured.
[00604] Каждый модуль памяти сконструирован из микросхем DRAM, к которым можно обращаться посредством AMM-битного слова и поддерживают передачу данных шириной DMM бит. Указанная память имеет адресных местоположений. Ключевая характеристика DRAM в том, что оно реализует считывания/записи пакетами по W слов с использованием переданного адреса в качестве базового адреса, B, а также извлекая или сохраняя местоположения B+1, B+2, … B+W-1. Обычно W равно 8.[00604] Each memory module is constructed of DRAM chips that can be accessed by an A MM bit word and support data transfer of a width of D MM bits. The specified memory has address locations. The key characteristic of DRAM is that it performs read/write bursts of W words using the passed address as the base address, B, and retrieving or storing locations B+1, B+2, ... B+W-1. Typically W is 8.
[00605] В MSS ИССН каждый контроллер памяти подает требуемый управляющий сигнал и выполняет при необходимости мультиплексирование/демультиплексирование между разрядностью системного слова, DSYS, и разрядностью слова памяти, DMM, а также выполняет требования для пакетов считывания/записи. Он может иметь дополнительную буферизацию, так что множество запросов к памяти могут быть поставлены в очередь и обработаны конвейерным образом для максимизации пропускной способности. Это компенсирует множество тактовых циклов задержки между предоставлением адреса и завершением работы памяти (записи или считывания).[00605] In the MSS ISSN, each memory controller provides the required control signal and performs multiplexing/demultiplexing as necessary between the system word width, D SYS , and the memory word width, D MM , and also fulfills the requirements for read/write packets. It can have additional buffering so that multiple memory requests can be queued and processed in a pipelined manner to maximize throughput. This compensates for the many clock cycles of delay between providing the address and completing the memory operation (writing or reading).
[00606] MC могет работать со скоростью прикрепленного DRAM в модуле памяти. Предположим, что его тактовая частота CMM. Она обычно в несколько раз быстрее, чем скорость ядра, на которой работает большая часть логики в ИССН, которая равна CSYS. Следовательно, логика мультиплексирования/демультиплексирования расположена рядом со связанными с ней контактами интерфейса для сведения к минимуму расстояний, на которые проходят сигналы. Демультиплексирование является первой операцией, выполняемой над входящими данными, а мультиплексирования является последней операцией, выполняемой над выходящими данными. Оставшаяся часть MSS работает над данными с разрядностью DSYS, которая больше DMM, обеспечивая использование более медленной тактовой частоты CSYS.[00606] The MC can operate at the speed of the attached DRAM in the memory module. Let's assume that its clock speed is C MM . It is typically several times faster than the core speed at which most of the logic in ISSN runs, which is C SYS . Therefore, the multiplexing/demultiplexing logic is located close to its associated interface pins to minimize the distances the signals travel. Demultiplexing is the first operation performed on incoming data, and multiplexing is the last operation performed on outgoing data. The remainder of the MSS operates on data with a bit width of D SYS that is larger than D MM , allowing the use of the slower C SYS clock rate.
[00607] Каждый интерфейс памяти системы в MSS представляет шину с ASYS -битным адресом и шину с DSYS-битными данными для любого прикрепленного ФП. SMI спроектирован так, чтобы прикрепленному ФП казалось, что он имеет произвольный доступ к единой быстрой памяти большой емкости. ФП не осведомлен о существовании отдельных модулей памяти. Значение ASYS является достаточно большим для обеспечения доступа к местоположению памяти в любом прикрепленном модуле памяти. Картирование из адресного пространства системы в адресное пространство модуля памяти описано ниже.[00607] Each system memory interface in the MSS represents an A SYS -bit address bus and a D SYS -bit data bus for any attached FP. SMI is designed so that the attached FP appears to have random access to a single, high-capacity, fast memory. The FP is not aware of the existence of individual memory modules. The A SYS value is large enough to allow access to the memory location in any attached memory module. Mapping from the system address space to the memory module address space is described below.
[00608] N системных интерфейсов памяти перекрестно соединены с M модулей памяти посредством коммутатора N×M. Указанный коммутатор обеспечивает min(M,N) одновременных соединений между SMI и MC, обеспечивает разрешение конфликтов и способствует трансляции адресного пространства системы в адресное пространство модуля памяти.[00608] The N system memory interfaces are cross-connected to the M memory modules via an N×M switch. The specified switch provides min(M,N) simultaneous connections between SMI and MC, provides conflict resolution and facilitates the translation of the system address space into the memory module address space.
[00609] Организация ФП является в значительной степени гибкой. Один или более ФП могут хранить один и тот же интерфейс памяти системы. Для максимизации рабочих характеристик ФП, которые не работают в одно и то же время должны совместно использоватьб SMI. А те, что работают одновременно, должны быть соединены с различными SMI. ФП, который работает над структурами данных, большими, чем DSYS, может использовать множество SMI для доступа ко всей структуре данных за одну операцию с памятью. Следовательно, указанная архитектура данных поддерживает широкий диапазон вычсислительных архитектур. Каждый ФП может быть идентичным и, следовательно, массив из них может быть реализован в двумерной структуре. Это проиллюстрировано, когда FPU(i,j) является j-тым компонентом, прикрепленным к SMI i, 0≤i<N, 0≤j<ki. В данном случае все ki имеют один размер, а ki может быть малым и равным 1. Это поддерживает архитектуры SIMD (один поток команд, много потоков данных) и MIMD (много потоков команд, много потоков данных) в зависимости от того, извлекают ли ФП команды из одних и тех же или отдельных командных запоминающих устройств.[00609] The organization of the FP is largely flexible. One or more FPs may store the same system memory interface. To maximize performance, FPs that are not running at the same time should share an SMI. And those that work simultaneously must be connected to different SMIs. An FP that operates on data structures larger than D SYS can use multiple SMIs to access the entire data structure in a single memory operation. Consequently, the specified data architecture supports a wide range of computing architectures. Each FP can be identical and, therefore, an array of them can be implemented in a two-dimensional structure. This is illustrated when FPU(i,j) is the jth component attached to SMI i, 0≤i<N, 0≤j<k i . In this case, all k i have the same size, and k i can be small and equal to 1. This supports SIMD (single instruction stream, many data streams) and MIMD (multiple instruction stream, multiple data stream) architectures, depending on whether whether FP commands are from the same or separate command memories.
[00610] Согласно одному частному аспекту, настоящее изобретение направлено на систему, такую как система для исполнения конвейера для анализа последовательности над данными генетической последовательности. В различных примерах указанная система может содержать источник электронных данных, такой как источник данных, который обеспечивает цифровые сигналы, например цифровые сигналы, представляющие множество ридов геномных данных, причем каждый из множества ридов геномных данных содержит последовательность нуклеотидов. Система может содержать одно или более запоминающих устройств, таких как память, хранящих одну или более контрольных генетических последовательностей и/или индекс одной или более контрольных генетических последовательностей; и/или система может содержать микросхему, такую как ИССН, ППВМ или сИССН.[00610] In one particular aspect, the present invention is directed to a system, such as a system for executing a sequence analysis pipeline on genetic sequence data. In various examples, the system may comprise an electronic data source, such as a data source that provides digital signals, such as digital signals representing a plurality of genomic data reads, each of the plurality of genomic data reads comprising a nucleotide sequence. The system may include one or more storage devices, such as a memory, storing one or more control genetic sequences and/or an index of the one or more control genetic sequences; and/or the system may include a chip such as an ISSN, FPGA, or CCIS.
[00611] Более конкретно, в различных конкретных вариантах реализации система может содержать структурированную интегральную схему специального назначения (ИССН), например такую, в которой микросхема образована набором жестко смонтированных цифровых логических схем с масочным программированием, которые могут быть взаимно соединены посредством множества физических электрических межсоединений. В различных примерах одно или более из множество физических электрических межсоединений содержат вход в структурированную ИССН, который соединен с источником электронных данных, например для приема множества ридом геномных данных. В таком примере одно или более из множества физических электрических межсоединений могут содержать интерфейс памяти для доступа структурированной ИССН к памяти. Соответственно жестко смонтированные цифровые логические схемы могут быть выполнены в виде набора модулей обработки, такого где каждый модуль обработки может быть сформирован подмножеством жестко смонтированных цифровых логических схем для выполнения одного или более этапов в конвейере анализа последовательностей на множестве ридов геномных данных. Например, одно или более, например каждое, из подмножеств жестко смонтированных цифровых логических схем может быть в монтажной конфигурации для выполнения одного или более этапов в конвейере анализа последовательностей. Например, набор модулей обработки может быть выполнен с возможностью содержания одного или более из модуля картирования, модуля выравнивания и/или модуля сортировки.[00611] More specifically, in various specific embodiments, the system may comprise a special-purpose structured integrated circuit (SPIC), such as one in which the chip is formed by a set of hard-wired mask-programmable digital logic circuits that can be interconnected through a plurality of physical electrical interconnects. . In various examples, one or more of the plurality of physical electrical interconnects comprises an input to a structured ISSN that is coupled to an electronic data source, for example, to receive a plurality of genomic readom data. In such an example, one or more of the plurality of physical electrical interconnections may comprise a memory interface for structured ISS access to memory. Accordingly, the hard-wired digital logic circuits may be implemented as a set of processing modules, such that each processing module may be formed by a subset of the hard-wired digital logic circuits to perform one or more steps in a sequence analysis pipeline on a plurality of genomic data reads. For example, one or more, such as each, of subsets of hard-wired digital logic circuits may be configured to perform one or more steps in a sequence analysis pipeline. For example, a set of processing modules may be configured to contain one or more of a mapping module, an alignment module, and/or a sorting module.
[00612] Например, набор модулей обработки может включать в себя модуль картирования в монтажной конфигурации, выполненный с возможностью доступа, в соответствии по меньшей мере с частью последовательности нуклеотидов в риде из множества ридов, к индексу одной или более контрольных генетических последовательностей из памяти через интерфейс памяти для картирования рида на один или более сегментов одной или более контрольных генетических последовательностей на основе индекса. Например, в некоторых вариантах реализации индекс одной или более контрольных генетических последовательностей может содержать хэш-таблицу и/или модуль картирования может применять хэш-функцию по меньшей мере к части последовательности нуклеотидов для доступа к хэш-таблице индекса.[00612] For example, a set of processing modules may include a mapping module in a mounting configuration configured to access, in accordance with at least a portion of a nucleotide sequence in a read of a plurality of reads, an index of one or more reference genetic sequences from memory via an interface memory for mapping the read into one or more segments of one or more reference genetic sequences based on the index. For example, in some embodiments, an index of one or more reference genetic sequences may comprise a hash table and/or a mapping module may apply a hash function to at least a portion of the nucleotide sequence to access the hash table of the index.
[00613] Движки обработки могут также или в качестве альтернативы содержать модуль выравнивания в монтажной конфигурации, выполненный с возможностью доступа к одной или более контрольных генетических последовательностей из памяти, например через интерфейс памяти для выравнивания рида на одно или более положений в одном или более сегментов одной или более контрольных генетических последовательностей, например как получено из модуля картирования. Движки обработки могут также или в качестве альтернативы содержать модуль сортировки в монтажной конфигурации, выполненный с возможностью доступа к одному или более выровненным ридам из памяти, например через интерфейс памяти для сортировки рида на одно или более положений, например положений хромосом, в одной или более контрольных генетических последовательностей, например как получено из модуля выравнивания.[00613] The processing engines may also, or alternatively, comprise an alignment module in a mounting configuration configured to access one or more reference genetic sequences from memory, such as through a memory interface, to align the read to one or more positions in one or more segments of one or more control genetic sequences, such as those obtained from the mapping module. The processing engines may also or alternatively comprise a sort module in a mounting configuration configured to access one or more aligned reads from memory, such as through a memory interface for sorting the read into one or more positions, such as chromosome positions, in one or more control genetic sequences, such as those obtained from the alignment module.
[00614] В различных примерах структурированная ИССН может содержать базовую пластину, которая содержит по меньшей мере некоторые из жестко смонтированных цифровых логических схем, и в некоторых примерах может содержать один или более конфигурируемых металлических слоев, образованных на базовой пластине, например где каждый из одного или более конфигурируемых металлических слоев может иметь по меньшей мере некоторые из множества физических электрических межсоединений, которые обеспечивают взаимное соединение по меньшей мере некоторых из жестко смонтированных цифровых логических схем для формирования набора модулей обработки. В некоторых вариантах реализации одно или более из множества физических электрических межсоединений может содержать выход из структурированной ИССН, например для осуществления передачи результирующих данных из модуля картирования, модуля выравивания и/или модуля сортировки.[00614] In various examples, the structured ISS may comprise a base plate that contains at least some of the hard-wired digital logic circuits, and in some examples may include one or more configurable metal layers formed on the base plate, such as where each of one or The more configurable metal layers may have at least some of a plurality of physical electrical interconnections that provide interconnection of at least some of the hardwired digital logic circuits to form a set of processing modules. In some embodiments, one or more of the plurality of physical electrical interconnections may comprise output from the structured ISSN, for example, to carry resultant data from a mapping module, an alignment module, and/or a sorting module.
[00615] В различных примерах структурированная ИССН может содержать главное управляющее устройство для установления монтажной конфигурации для каждого поднабора жестко смонтированных цифровых логических схем для выполнения одного или более этапов в конвейере анализа последовательностей. В различных вариантах реализации монтажная конфигурация выполнена при производстве интегральной схемы и являются некратковременными. В некоторых вариантах реализации структурированная ИССН и/или запоминающее устройство расположены в плате расширения, например в плате интерфейса периферийных компонентов (PCI). Как указано выше, в различных вариантах реализации указанная система может содержать секвенатор, например который содержит источник электронных данных, который обеспечивает цифровые сигналы, представляющие множество ридов геномных данных. И в таком примере плата расширения может быть физически интегрирована в секвенатор.[00615] In various examples, the structured ISS may include a master control device for establishing a wiring configuration for each subset of hard-wired digital logic circuits to perform one or more steps in the sequence analysis pipeline. In various embodiments, the mounting configuration is made during integrated circuit manufacturing and is non-permanent. In some embodiments, the structured ISSN and/or storage device is located in an expansion card, such as a peripheral component interface (PCI) card. As discussed above, in various embodiments, the system may comprise a sequencer, such as one that contains an electronic data source that provides digital signals representing multiple reads of genomic data. And in such an example, the expansion card can be physically integrated into the sequencer.
[00616] Кроме того, в различных вариантах реализации может быть обеспечена структурированная интегральная схема специального назначения (ИССН), например для анализа данных генетической последовательности, например когда данные генетической последовательности хранятся в запоминающем устройстве, например хранящем одну или более контрольных генетических последовательностей, связанных с геномными данными, и/или индекс одной или более контрольных генетических последовательностей. В таком примере структурированная ИССН может содержать базовую пластину, которая также содержит набор цифровых логических схем, и может также содержать один или более конфигурируемых металлических слоев, образованных на базовой пластине, например где каждый из одного или более конфигурируемых металлических слоев может иметь набор монтажных соединений, которые обеспечивают взаимное соединение поднабора цифровых логических схем для формирования набора модулей обработки. В таком примере набор модулей обработки может содержать модуль картирования, модуль выравнивания и/или модуль сортировки. В различных примерах часть набора цифровых логических схем в базовой пластине является жестко смонтированной в качестве модуля определения оснований.[00616] Additionally, in various embodiments, a special purpose structured integrated circuit (SPI) may be provided, such as for analyzing genetic sequence data, such as when the genetic sequence data is stored in a storage device, such as storing one or more control genetic sequences associated with genomic data, and/or an index of one or more reference genetic sequences. In such an example, the structured ISS may include a base plate that also contains a set of digital logic circuits, and may also include one or more configurable metal layers formed on the base plate, for example where each of the one or more configurable metal layers may have a set of wiring connections, which provide interconnection of a subset of digital logic circuits to form a set of processing modules. In such an example, the set of processing modules may comprise a mapping module, an alignment module, and/or a sorting module. In various examples, a portion of a set of digital logic circuits in the base plate is hardwired as a base sensing module.
[00617] Например, набор модулей обработки может включать в себя модуль картирования для доступа, в соответствии по меньшей мере с частью последовательности нуклеотидов в риде из множества ридов, к индексу одной или более контрольных генетических последовательностей, хранящихся в памяти, для картирования рида на один или более сегментов одной или более контрольных генетических последовательностей, например на основе индекса. Дополнительно или в качестве альтернативы набор модулей обработки может содержать модуль выравнивания для доступа к одной или более контрольных генетических последовательностей из памяти, например через интерфейс памяти, для выравнивания рида на одно или более положений в одном или более сегментов одной или более контрольных генетических последовательностей из модуля картирования. Дополнительно или в качестве альтернативы набор модулей обработки может содержать модуль сортировки для сортировки каждого выровненного рида в соответствии с одним или более положениями в одной или более контрольных генетических последовательностей.[00617] For example, a set of processing modules may include a mapping module for accessing, in accordance with at least a portion of a nucleotide sequence in a read of a plurality of reads, an index of one or more reference genetic sequences stored in memory for mapping the read into one or more segments of one or more control genetic sequences, for example based on an index. Additionally or alternatively, the set of processing modules may include an alignment module for accessing one or more reference genetic sequences from memory, for example through a memory interface, to align the read to one or more positions in one or more segments of the one or more reference genetic sequences from the module mapping. Additionally or alternatively, the set of processing modules may include a sorting module for sorting each aligned read according to one or more positions in one or more reference genetic sequences.
[00618] В одном варианте реализации обеспечена система для реализации конвейера для анализа последовательности над данными генетической последовательности, причем система содержит источник электронных данных, который обеспечивает цифровые сигналы, представляющие множество ридов геномных данных, причем каждый из множества ридов геномных данных содержит последовательность нуклеотидов. Система может содержать одно или более запоминающих устройств, например для хранения одной или более контрольных генетических последовательностей; и/или система может содержать интегральную схему, имеющую базовую пластину, например базовую пластину, образованную посредством фотолитаграфической маски, которая определяет набор цифровых логических схем. В таком примере базовая пластина может быть выполнена с возможностью обладания одной или более функций, как описаны выше в настоящем документе, интегрированных в нее. Например, базовая пластина может иметь один или более конфигурируемых металлических слоев, например когда каждый из одного или более конфигурируемых металлических слоев имеет одно или более межсоединений, которые соединяют поднабор набора цифровых логических схем в монтажной конфигурации для выполнения указанных выше функций.[00618] In one embodiment, a system is provided for implementing a sequence analysis pipeline over genetic sequence data, the system comprising an electronic data source that provides digital signals representing a plurality of genomic data reads, each of the plurality of genomic data reads comprising a nucleotide sequence. The system may include one or more storage devices, for example for storing one or more control genetic sequences; and/or the system may comprise an integrated circuit having a base plate, for example a base plate formed by a photolithographic mask that defines a set of digital logic circuits. In such an example, the base plate may be configured to have one or more functions, as described above herein, integrated therein. For example, the base plate may have one or more configurable metal layers, such as where each of the one or more configurable metal layers has one or more interconnects that connect a subset of a set of digital logic circuits in a mounting configuration to perform the above functions.
[00619] Согласно различным аспектам, обеспечен способ выполнения структурированной интегральной схемы специального назначения (ИССН) для анализа данных генетической последовательности. В некоторых вариантах реализации способ включает одно или более из обеспечения множества фотолитографических масок, например масок, которые определяют набор цифровых логических схем базовой пластины; формирования набора цифровой логики, например с использованием множества фотолитографических масок для формирования базовой пластины; обеспечения двух или более различных наборов специфичных для конструкции масок конфигурируемых металлических слоев, например масок, которые определяют соответствующие две или более цифровых логик для осуществления набора модулей обработки; образования двух или более конфигурируемых металлических слоев, например использующих две или более специфичных для конструкции масок конфигурируемых металлических слоев, например в которых каждый из двух или более конфигурируемых металлических слоев имеет набор монтажных соединений, которые могут быть выполнены в соответствии с конструкцией масок конфигурируемых металлических слоев, например для взаимного соединения поднабора цифровых логических схем для формирования наборы модулей обработки; и/или обеспечения двух или более конфигурируемых металлических слоев на базовой пластине для формирования набора модулей обработки.[00619] In accordance with various aspects, a method is provided for implementing a special purpose structured integrated circuit (SIC) for analyzing genetic sequence data. In some embodiments, the method includes one or more of providing a plurality of photolithographic masks, such as masks that define a set of digital logic circuits of the base plate; forming a set of digital logic, for example using a plurality of photolithographic masks to form a base plate; providing two or more different sets of mask design-specific configurable metal layers, such as masks that define corresponding two or more digital logics for implementing a set of processing modules; forming two or more configurable metal layers, for example using two or more mask design-specific configurable metal layers, for example wherein each of the two or more configurable metal layers has a set of mounting connections that can be made in accordance with the design of the configurable metal layers masks, for example, to interconnect a subset of digital logic circuits to form sets of processing modules; and/or providing two or more configurable metal layers on the base plate to form a set of processing modules.
[00620] Согласно одному или более аспектов или признаков объекта изобретения, описанного в настоящем документе, могут быть реализованы в цифровой электронной схеме, интегрированной схеме, специально разработанных интегральных схем специального назначения (ИССН), программируемых пользователем вентильных матрицах (ППВМ) или структурированной ИССН, компьютерном аппаратном обеспечении, встроенном программном обеспечении, программном обеспечении и/или их комбинациях.[00620] According to one or more aspects or features of the subject matter described herein, may be implemented in a digital electronic circuit, an integrated circuit, specially designed special purpose integrated circuits (SIICs), field programmable gate arrays (FPGAs), or a structured ISS, computer hardware, firmware, software and/or combinations thereof.
[00621] Указанные различные аспекты или признаки могут включать реализацию в одной или более компьютерных программ, которые могут исполняться и/или интерпретироваться в программируемой системе, включая по меньшей мере один программируемый процессор, который может быть специализированным или общего назначения, связанный с возможностью приема данных и команд от системы хранения, по меньшей мере одного устройства ввода и по меньшей мере одного устройства вывода, и передачи данных и команд в них. Выполненная с возможностью программирования система или вычислительная система может содержать клиенты или серверы. Клиент и сервер обычно удалены друг от друга и, как правило, взаимодействуют посредством сети связи. Взаимоотношение клиента и сервера появляется благодаря компьютерным программам, исполняемым на соответствующих компьютерах и имеющих взаимосвязь клиент-сервер друг с другом.[00621] These various aspects or features may include implementation in one or more computer programs that can be executed and/or interpreted on a programmable system, including at least one programmable processor, which may be specialized or general purpose, associated with the ability to receive data and commands from the storage system, at least one input device and at least one output device, and transmitting data and commands thereto. The programmable system or computing system may include clients or servers. The client and server are usually remote from each other and typically communicate via a communications network. The client-server relationship occurs due to computer programs running on the respective computers and having a client-server relationship with each other.
[00622] Эти компьютерные программы, которые также можно назвать программами, программным обеспечением, программными приложениями, приложениями, компонентами или кодом, содержат машинные команды для выполненного с возможностью программирования процессора и могут быть реализованы на процедурном и/или объектно-ориентированном языке программирования высокого уровня и/или на ассемблере/машинном языке. Используемый в настоящем документе термин «машиночитаемый носитель» относится к любому компьютерному программному продукту, прибору и/или устройству, к такому как, например, магнитные диски, оптические диски, запоминающие устройства, и программируемые логические устройства (PLD), используемые для предоставления машинных команд и/или данных в выполненный с возможностью программирования процессор, в том числе машиночитаемый носитель, который принимает машинные команды как машиночитаемый сигнал. Термин «машиночитаемый сигнал» относится к любому сигналу, используемому для предоставления машинных инструкций и/или данных в процессор, выполненный с возможностью программирования. Машиночитаемый носитель может хранить такие машинные команды некратковременным образом, например как это делают некратковременное твердотельное запоминающее устройство, накопитель на жестких магнитных дисках или любой эквивалентный запоминающий носитель. Машиночитаемый носитель может в качестве альтернативы или дополнительно хранить такие машинные команды кратковременным образом, например как это делает кэш процессора или другое запоминающее устройство с произвольным доступом, связанное с одним или более физическими ядрами процессора.[00622] These computer programs, which may also be referred to as programs, software, software applications, applications, components, or code, contain machine instructions for a programmable processor and may be implemented in a procedural and/or high-level object-oriented programming language and/or in assembly/machine language. As used herein, the term “computer readable medium” refers to any computer program product, instrument and/or device, such as, for example, magnetic disks, optical disks, storage devices, and programmable logic devices (PLDs) used to provide machine instructions. and/or data into a programmable processor, including a computer-readable medium, that receives the machine instructions as a computer-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and/or data to a programmable processor. A computer-readable medium may store such machine instructions in a non-transitory manner, such as a non-transitory solid-state storage device, a hard disk drive, or any equivalent storage medium. A computer-readable medium may alternatively or additionally store such machine instructions in a transient manner, such as a processor cache or other random access storage device associated with one or more physical processor cores.
[00623] Для обеспечения взаимодействия с пользователем можно реализовать один или более аспектов или признаков объекта изобретения, описанных в настоящем документе, на компьютере, имеющем устройство отображения, такое как, например, электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD) или монитор на светоизлучающих диодах (LED) для отображения информации пользователю, и клавиатуру или указательное устройство, такое как, например, мышь или трекбол, с помощью которого пользователь может осуществлять ввод в компьютер. Для обеспечения взаимодействия с пользователем можно также использовать устройства других видов. Например, обратная связь с пользователем может быть любой формой сенсорной обратной связи, такой как, например, визуальная обратная связь, звуковая обратная связь или тактильная обратная связь; а ввод пользователя может приниматься в любой форме, включая, без ограничений, звуковой, речевой или тактильный ввод. В число других возможных устройств ввода входят, без ограничений, сенсорные экраны или другие сенсорные устройства, такие как одно- или многоточечные резистивные или емкостные сенсорные панели, аппаратное или программное обеспечение распознавания голоса, оптические сканеры, оптические указатели, устройства захвата цифровых изображений со связанным программным обеспечением для интерпретации и т. п.[00623] To provide user interaction, one or more aspects or features of the subject matter described herein may be implemented on a computer having a display device, such as, for example, a cathode ray tube (CRT), liquid crystal display (LCD), or a light-emitting diode (LED) monitor for displaying information to the user, and a keyboard or pointing device, such as a mouse or trackball, with which the user can input into the computer. Other types of devices can also be used to provide user interaction. For example, the user feedback may be any form of sensory feedback, such as, for example, visual feedback, audio feedback, or haptic feedback; and user input may be received in any form, including, but not limited to, audio, speech, or tactile input. Other possible input devices include, but are not limited to, touch screens or other touch devices such as single or multi-point resistive or capacitive touch panels, voice recognition hardware or software, optical scanners, optical pointers, digital image capture devices with associated software provision for interpretation, etc.
[00624] Объект изобретения, описанный в настоящем документе, может быть реализован в системах, устройствах, способах и/или изделиях в зависимости от требуемой конфигурации. Варианты осуществления, приведенные в вышеизложенном описании, представляют не все вариантах осуществления, соответствующие объекту изобретения, описанному в настоящем документе. Напротив, это всего лишь некоторые примеры, соответствующие аспектам, связанным с описанным объектом изобретения. Хотя выше приведено подробное описание нескольких вариантов, возможны другие модификации и дополнения. В частности, описанные в настоящем документе признаки и/или варианты могут быть дополнены другими признаками и/или вариантами. Например, варианты осуществления, описанные выше, могут относиться к различным комбинациям и подкомбинациям описанных признаков и/или к комбинациям и подкомбинациям нескольких дополнительных признаков, описанных выше. Кроме того, логические потоки, показанные на прилагаемых фигурах и/или описанные в настоящем документе, не обязательно требуют соблюдения конкретного показанного порядка или последовательного порядка для достижения требуемых результатов. Возможны другие варианты осуществления в объеме прилагаемой формулы изобретения.[00624] The subject matter described herein may be implemented in systems, devices, methods and/or products depending on the desired configuration. The embodiments given in the foregoing description do not represent all embodiments corresponding to the subject matter described herein. On the contrary, these are just some examples corresponding to aspects related to the described subject matter of the invention. Although several options are described in detail above, other modifications and additions are possible. In particular, the features and/or options described herein may be supplemented by other features and/or options. For example, the embodiments described above may relate to various combinations and subcombinations of the described features and/or to combinations and subcombinations of several additional features described above. In addition, the logical flows shown in the accompanying figures and/or described herein do not necessarily require adherence to the particular order shown or sequential order to achieve the desired results. Other embodiments are possible within the scope of the attached claims.
Claims (54)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662277445P | 2016-01-11 | 2016-01-11 | |
US62/277,445 | 2016-01-11 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2018120941A Division RU2761066C2 (en) | 2016-01-11 | 2017-01-11 | Genomic infrastructure for local and cloud processing and analysis of dna and rna |
Publications (3)
Publication Number | Publication Date |
---|---|
RU2021134292A RU2021134292A (en) | 2022-04-01 |
RU2804029C2 RU2804029C2 (en) | 2023-09-26 |
RU2804029C9 true RU2804029C9 (en) | 2023-12-19 |
Family
ID=
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130275486A1 (en) * | 2012-04-11 | 2013-10-17 | Illumina, Inc. | Cloud computing environment for biological data |
WO2014113736A1 (en) * | 2013-01-17 | 2014-07-24 | Edico Genome Corp. | Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform |
RU2015144109A (en) * | 2013-03-15 | 2017-04-21 | Нанобиосим, Инк. | SYSTEMS AND METHODS FOR ANALYSIS OF NUCLEIC ACIDS AND PROTEINS BY MOBILE DEVICE |
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130275486A1 (en) * | 2012-04-11 | 2013-10-17 | Illumina, Inc. | Cloud computing environment for biological data |
WO2014113736A1 (en) * | 2013-01-17 | 2014-07-24 | Edico Genome Corp. | Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform |
RU2015144109A (en) * | 2013-03-15 | 2017-04-21 | Нанобиосим, Инк. | SYSTEMS AND METHODS FOR ANALYSIS OF NUCLEIC ACIDS AND PROTEINS BY MOBILE DEVICE |
Non-Patent Citations (1)
Title |
---|
MILLER N.A. et al. "A 26-hour system of highly sensitive whole genome sequencing for emergency management of genetic diseases." Genome medicine, 2015, 7(1): 1-16. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2761066C2 (en) | Genomic infrastructure for local and cloud processing and analysis of dna and rna | |
US20210193261A1 (en) | Genomic Infrastructure for On-Site or Cloud-Based Dna and Rna Processing and Analysis | |
US10068054B2 (en) | Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform | |
US10262105B2 (en) | Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform | |
AU2022263591B2 (en) | Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform | |
RU2804029C9 (en) | Genomic infrastructure for local and cloud processing and analysis of dna and rna | |
RU2804029C2 (en) | Genomic infrastructure for local and cloud processing and analysis of dna and rna |