{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,11,19]],"date-time":"2024-11-19T17:35:52Z","timestamp":1732037752241},"reference-count":37,"publisher":"Oxford University Press (OUP)","issue":"3","license":[{"start":{"date-parts":[[2018,7,18]],"date-time":"2018-07-18T00:00:00Z","timestamp":1531872000000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"Intel Parallel Computing Center"},{"DOI":"10.13039\/100000002","name":"National Institutes of Health","doi-asserted-by":"publisher","id":[{"id":"10.13039\/100000002","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000057","name":"National Institute of General Medical Sciences","doi-asserted-by":"publisher","award":["R01GM118568"],"id":[{"id":"10.13039\/100000057","id-type":"DOI","asserted-by":"publisher"}]},{"name":"Texas Advanced Computing Center"},{"name":"TACC","award":["TG-CIE170020"]},{"name":"Extreme Science and Engineering Discovery Environment"},{"name":"XSEDE"},{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["ACI-1548562"],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2019,2,1]]},"abstract":"Abstract<\/jats:title>\n \n Motivation<\/jats:title>\n General-purpose processors can now contain many dozens of processor cores and support hundreds of simultaneous threads of execution. To make best use of these threads, genomics software must contend with new and subtle computer architecture issues. We discuss some of these and propose methods for improving thread scaling in tools that analyze each read independently, such as read aligners.<\/jats:p>\n <\/jats:sec>\n \n Results<\/jats:title>\n We implement these methods in new versions of Bowtie, Bowtie 2 and HISAT. We greatly improve thread scaling in many scenarios, including on the recent Intel Xeon Phi architecture. We also highlight how bottlenecks are exacerbated by variable-record-length file formats like FASTQ and suggest changes that enable superior scaling.<\/jats:p>\n <\/jats:sec>\n \n Availability and implementation<\/jats:title>\n Experiments for this study: https:\/\/github.com\/BenLangmead\/bowtie-scaling.<\/jats:p>\n <\/jats:sec>\n \n Bowtie<\/jats:title>\n http:\/\/bowtie-bio.sourceforge.net .<\/jats:p>\n <\/jats:sec>\n \n Bowtie 2<\/jats:title>\n http:\/\/bowtie-bio.sourceforge.net\/bowtie2 .<\/jats:p>\n <\/jats:sec>\n \n HISAT<\/jats:title>\n http:\/\/www.ccb.jhu.edu\/software\/hisat<\/jats:p>\n <\/jats:sec>\n \n Supplementary information<\/jats:title>\n Supplementary data are available at Bioinformatics online.<\/jats:p>\n <\/jats:sec>","DOI":"10.1093\/bioinformatics\/bty648","type":"journal-article","created":{"date-parts":[[2018,7,18]],"date-time":"2018-07-18T13:05:03Z","timestamp":1531919103000},"page":"421-432","source":"Crossref","is-referenced-by-count":543,"title":["Scaling read aligners to hundreds of threads on general-purpose processors"],"prefix":"10.1093","volume":"35","author":[{"ORCID":"http:\/\/orcid.org\/0000-0003-2437-1976","authenticated-orcid":false,"given":"Ben","family":"Langmead","sequence":"first","affiliation":[{"name":"Department of Computer Science, Johns Hopkins University, Baltimore, MD, USA"},{"name":"Center for Computational Biology, Johns Hopkins University, Baltimore, MD, USA"}]},{"given":"Christopher","family":"Wilks","sequence":"additional","affiliation":[{"name":"Department of Computer Science, Johns Hopkins University, Baltimore, MD, USA"},{"name":"Center for Computational Biology, Johns Hopkins University, Baltimore, MD, USA"}]},{"given":"Valentin","family":"Antonescu","sequence":"additional","affiliation":[{"name":"Department of Computer Science, Johns Hopkins University, Baltimore, MD, USA"}]},{"given":"Rone","family":"Charles","sequence":"additional","affiliation":[{"name":"Department of Computer Science, Johns Hopkins University, Baltimore, MD, USA"}]}],"member":"286","published-online":{"date-parts":[[2018,7,18]]},"reference":[{"key":"2023013107244962400_bty648-B1","first-page":"528","volume-title":"Programming Multi-Core and Many-Core Computing Systems, Parallel and Distributed Computing","author":"Aldinucci","year":"2017"},{"key":"2023013107244962400_bty648-B2","doi-asserted-by":"crossref","first-page":"6","DOI":"10.1109\/71.80120","article-title":"The performance of spin lock alternatives for shared-money multiprocessors","volume":"1","author":"Anderson","year":"1990","journal-title":"IEEE Trans Parallel Distributed Systems"},{"key":"2023013107244962400_bty648-B3","doi-asserted-by":"crossref","first-page":"68","DOI":"10.1038\/nature15393","article-title":"A global reference for human genetic variation","volume":"526","author":"Auton","year":"2015","journal-title":"Nature"},{"key":"2023013107244962400_bty648-B4","doi-asserted-by":"crossref","DOI":"10.1145\/209936.209958","volume-title":"Cilk: An Efficient Multithreaded Runtime System","author":"Blumofe","year":"1995"},{"key":"2023013107244962400_bty648-B5","first-page":"170","article-title":"Trimmomatic: a flexible trimmer for illumina sequence data","author":"Bolger","year":"2014","journal-title":"Bioinformatics"},{"key":"2023013107244962400_bty648-B6","doi-asserted-by":"crossref","first-page":"525.","DOI":"10.1038\/nbt.3519","article-title":"Near-optimal probabilistic RNA-seq quantification","volume":"34","author":"Bray","year":"2016","journal-title":"Nature Biotechnology"},{"key":"2023013107244962400_bty648-B7","doi-asserted-by":"crossref","first-page":"40","DOI":"10.1145\/2693193.2698990","article-title":"Scalability techniques for practical synchronization primitives","volume":"12","author":"Bueso","year":"2014","journal-title":"Queue"},{"key":"2023013107244962400_bty648-B8","doi-asserted-by":"crossref","first-page":"13.","DOI":"10.1186\/s13059-015-0587-3","article-title":"Extending reference assembly models","volume":"16","author":"Church","year":"2015","journal-title":"Genome Biol"},{"key":"2023013107244962400_bty648-B9","doi-asserted-by":"crossref","first-page":"1767","DOI":"10.1093\/nar\/gkp1137","article-title":"The Sanger FASTQ file format for sequences with quality scores, and the Solexa\/Illumina FASTQ variants","volume":"38","author":"Cock","year":"2010","journal-title":"Nucleic Acids Res"},{"key":"2023013107244962400_bty648-B10","doi-asserted-by":"crossref","first-page":"1.","DOI":"10.1145\/2686884","article-title":"Lock cohorting: a general technique for designing numa locks","volume":"1","author":"Dice","year":"2015","journal-title":"ACM Trans. Parallel Comput"},{"key":"2023013107244962400_bty648-B11","doi-asserted-by":"crossref","first-page":"157","DOI":"10.1101\/gr.210500.116","article-title":"A reference data set of 5.4 million phased human variants validated by genetic inheritance from sequencing a three-generation 17-member pedigree","volume":"27","author":"Eberle","year":"2017","journal-title":"Genome Res"},{"key":"2023013107244962400_bty648-B12","doi-asserted-by":"crossref","first-page":"227","DOI":"10.1007\/978-3-642-55195-6_21","volume-title":"Parallel Processing and Applied Mathematics","author":"Herzeel","year":"2014"},{"volume-title":"Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition","year":"2016","author":"Jeffers","key":"2023013107244962400_bty648-B13"},{"key":"2023013107244962400_bty648-B14","doi-asserted-by":"crossref","first-page":"R116.","DOI":"10.1186\/gb-2010-11-11-r116","article-title":"Quake: quality-aware detection and correction of sequencing errors","volume":"11","author":"Kelley","year":"2010","journal-title":"Genome Biol"},{"key":"2023013107244962400_bty648-B15","doi-asserted-by":"crossref","first-page":"357","DOI":"10.1038\/nmeth.3317","article-title":"Hisat: a fast spliced aligner with low memory requirements","volume":"12","author":"Kim","year":"2015","journal-title":"Nature Methods"},{"key":"2023013107244962400_bty648-B16","doi-asserted-by":"crossref","first-page":"357","DOI":"10.1038\/nmeth.1923","article-title":"Fast gapped-read alignment with bowtie 2","volume":"9","author":"Langmead","year":"2012","journal-title":"Nature Methods"},{"key":"2023013107244962400_bty648-B17","doi-asserted-by":"crossref","first-page":"R25.","DOI":"10.1186\/gb-2009-10-3-r25","article-title":"Ultrafast and memory-efficient alignment of short dna sequences to the human genome","volume":"10","author":"Langmead","year":"2009","journal-title":"Genome Biol"},{"key":"2023013107244962400_bty648-B18","doi-asserted-by":"crossref","first-page":"1909","DOI":"10.1007\/s10586-017-1015-0","article-title":"A performance comparison of data and memory allocation strategies for sequence aligners on numa architectures","volume":"20","author":"Lenis","year":"2017","journal-title":"Cluster Comput"},{"key":"2023013107244962400_bty648-B19","doi-asserted-by":"crossref","first-page":"718","DOI":"10.1093\/bioinformatics\/btq671","article-title":"Tabix: fast retrieval of sequence features from generic tab-delimited files","volume":"27","author":"Li","year":"2011","journal-title":"Bioinformatics"},{"key":"2023013107244962400_bty648-B20","first-page":"3997","article-title":"Aligning sequence reads, clone sequences and assembly contigs with bwa-mem","volume":"1303","author":"Li","year":"2013","journal-title":"arXiv Preprint arXiv"},{"key":"2023013107244962400_bty648-B21","doi-asserted-by":"crossref","first-page":"2078","DOI":"10.1093\/bioinformatics\/btp352","article-title":"The Sequence Alignment\/Map format and SAMtools","volume":"25","author":"Li","year":"2009","journal-title":"Bioinformatics"},{"key":"2023013107244962400_bty648-B22","doi-asserted-by":"crossref","first-page":"1185","DOI":"10.1038\/nmeth.2221","article-title":"The gem mapper: fast, accurate and versatile alignment by filtration","volume":"9","author":"Marco-Sola","year":"2012","journal-title":"Nature Methods"},{"key":"2023013107244962400_bty648-B23","doi-asserted-by":"crossref","first-page":"269","DOI":"10.1145\/106973.106999","article-title":"Synchronization without contention","volume":"26","author":"Mellor-Crummey","year":"1991","journal-title":"ACM SIGPLAN Notices"},{"first-page":"578","year":"2014","author":"Misale","key":"2023013107244962400_bty648-B24"},{"key":"2023013107244962400_bty648-B25","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1155\/2014\/539410","article-title":"Sequence alignment tools: one parallel pattern to rule them all?","volume":"2014","author":"Misale","year":"2014","journal-title":"BioMed Research International"},{"volume-title":"Pthreads Programming: A POSIX Standard for Better Multiprocessing","year":"1996","author":"Nichols","key":"2023013107244962400_bty648-B26"},{"year":"2003","author":"Radovic","key":"2023013107244962400_bty648-B27"},{"volume-title":"Intel Threading Building Blocks: Outfitting C++ for Multi-Core Processor Parallelism","year":"2007","author":"Reinders","key":"2023013107244962400_bty648-B28"},{"key":"2023013107244962400_bty648-B29","doi-asserted-by":"crossref","first-page":"396.","DOI":"10.1186\/s12864-017-3767-6","article-title":"Extremely low-coverage whole genome sequencing in South Asians captures population genomics information","volume":"18","author":"Rustagi","year":"2017","journal-title":"BMC Genomics"},{"key":"2023013107244962400_bty648-B30","doi-asserted-by":"crossref","first-page":"811","DOI":"10.1038\/nmeth.2066","article-title":"Metagenomic microbial community profiling using unique clade-specific marker genes","volume":"9","author":"Segata","year":"2012","journal-title":"Nature Methods"},{"year":"2015","author":"Sodani","key":"2023013107244962400_bty648-B31"},{"key":"2023013107244962400_bty648-B32","doi-asserted-by":"crossref","first-page":"509.","DOI":"10.1186\/s13059-014-0509-9","article-title":"Lighter: fast and memory-efficient sequencing error correction without counting","volume":"15","author":"Song","year":"2014","journal-title":"Genome Biol"},{"key":"2023013107244962400_bty648-B33","doi-asserted-by":"crossref","first-page":"i192","DOI":"10.1093\/bioinformatics\/btw277","article-title":"Rapmap: a rapid, sensitive and accurate tool for mapping rna-seq reads to transcriptomes","volume":"32","author":"Srivastava","year":"2016","journal-title":"Bioinformatics"},{"year":"2016","author":"Valero-Lara","key":"2023013107244962400_bty648-B34"},{"key":"2023013107244962400_bty648-B35","doi-asserted-by":"crossref","first-page":"144.","DOI":"10.1038\/530144a","article-title":"The chips are down for moore\u2019s law","volume":"530","author":"Waldrop","year":"2016","journal-title":"Nature News"},{"key":"2023013107244962400_bty648-B36","doi-asserted-by":"crossref","first-page":"R46.","DOI":"10.1186\/gb-2014-15-3-r46","article-title":"Kraken: ultrafast metagenomic sequence classification using exact alignments","volume":"15","author":"Wood","year":"2014","journal-title":"Genome Biol"},{"key":"2023013107244962400_bty648-B37","first-page":"5572","article-title":"Faster and more accurate sequence alignment with snap","volume":"1111","author":"Zaharia","year":"2011","journal-title":"arXiv Preprint arXiv"}],"container-title":["Bioinformatics"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/academic.oup.com\/bioinformatics\/article-pdf\/35\/3\/421\/48965413\/bioinformatics_35_3_421.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/academic.oup.com\/bioinformatics\/article-pdf\/35\/3\/421\/48965413\/bioinformatics_35_3_421.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,1,31]],"date-time":"2023-01-31T05:19:27Z","timestamp":1675142367000},"score":1,"resource":{"primary":{"URL":"https:\/\/academic.oup.com\/bioinformatics\/article\/35\/3\/421\/5055585"}},"subtitle":[],"editor":[{"given":"John","family":"Hancock","sequence":"additional","affiliation":[]}],"short-title":[],"issued":{"date-parts":[[2018,7,18]]},"references-count":37,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2019,2,1]]}},"URL":"https:\/\/doi.org\/10.1093\/bioinformatics\/bty648","relation":{"has-preprint":[{"id-type":"doi","id":"10.1101\/205328","asserted-by":"object"}]},"ISSN":["1367-4803","1367-4811"],"issn-type":[{"type":"print","value":"1367-4803"},{"type":"electronic","value":"1367-4811"}],"subject":[],"published-other":{"date-parts":[[2019,2,1]]},"published":{"date-parts":[[2018,7,18]]}}}