IP Library › Granted Patent US 12,620,455
Granted Patent B2
US 12,620,455 · App. 17/114,895 · Granted May 5, 2026

Merging duplicate marking to optimize computer operations for gene sequencing pipeline

Inventors: Meysam Roodi (Richmond Hill, CA); Zahra Lak (Toronto, CA)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
G16B30/20G06F16/9024G06N3/126G16B50/30
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,620,455
App. No.
17/114,895
Granted
May 5, 2026
Kind
B2
Abstract

In accordance with embodiments, a processing unit performs alignment of a short read (SR) against a reference genome sequence. The processing unit determines whether the SR is aligned. If the SR is not aligned, the processing unit receives the next SR and processes the next SR by repeating. If the SR is aligned, in response to the determination that the SR is aligned with the reference genome sequence at a first position in the reference genome sequence, the processing unit generates a new SR metadata entry corresponding to the SR. The processing unit finds a linked list in a SR metadata collection. The first position of the linked list in the SR metadata collection corresponds to the first position of the reference genome sequence where the SR is aligned. The processing unit performs duplicate marking based on the SR and the linked list.

Claims (59)

1 . A method comprising:

performing, by at least one processing unit, alignment of a short read (SR) against a reference genome sequence, wherein the reference genome sequence comprises a first sequence of base pairs (bps), the reference genome sequence is at least a part of a full genome sequence, and the SR comprises a second sequence of bps;

determining, by the at least one processing unit, that the SR is aligned with the reference genome sequence at a first position in the reference genome sequence;

generating, by the at least one processing unit, a new SR metadata entry corresponding to the SR;

identifying, by the at least one processing unit, a linked list in a SR metadata collection, a first position of the linked list in the SR metadata collection corresponding to the first position of the reference genome sequence where the SR is aligned, wherein the SR is in a pair end comprising the SR and a mate SR of the SR, the new SR metadata entry comprises an average quality score (AQS) of quality scores of the bps in the SR, and the new SR metadata entry further comprises a distance indication value indicating a distance between the first position of the linked list in the SR metadata collection and a second position of a second linked list in the SR metadata collection, the second linked list comprising a second SR metadata entry corresponding to the mate SR;

performing, by the at least one processing unit, duplicate marking based on the SR and the linked list, wherein the performing the duplicate marking comprises:

identifying, by the at least one processing unit, a group of SR metadata entries in the linked list having a same distance indication value as the new SR metadata entry,

identifying, by the at least one processing unit, a head SR metadata entry in the group, wherein an AQS of the head SR metadata entry is the highest in the group, and

marking, by the at least one processing unit, one of the new SR metadata entry or the head SR metadata entry as duplicate based on a comparison between the AQS of the head SR metadata entry and the AQS of the new SR metadata entry;

inserting, by the at least one processing unit, the new SR metadata entry to the linked list such that SR metadata entries in the linked list are grouped based on distance indication values of the SR metadata entries in the linked list, the head SR metadata entry being positioned at a beginning of the group in the linked list, the inserting comprising:

inserting the new SR metadata entry at the beginning of the group as a new head SR metadata entry of the group if the AQS of the new SR metadata entry is higher than the AQS of the head SR metadata entry, or

inserting the new SR metadata entry after the head SR metadata entry if the AQS of the new SR metadata entry is less than the AQS of the head SR metadata entry; and

generating, by the at least one processing unit, a binary alignment map (BAM) file based on the SR metadata collection without producing an intermediate sequence alignment map (SAM) file and without producing an intermediate unmarked BAM file.

2 . The method of claim 1 , wherein the marking comprises:

if the AQS of the new SR metadata entry is higher than the AQS of the head SR metadata entry, marking, by the at least one processing unit, the head SR metadata entry as duplicate; and

if the AQS of the new SR metadata entry is lower than the AQS of the head SR metadata entry, marking, by the at least one processing unit, the new SR metadata entry as duplicate.

3 . The method of claim 1 , wherein the SR metadata collection is an array of linked lists, and a size of the array is based on a size of the first sequence of bps in the reference genome sequence.

4 . The method of claim 1 ,

wherein the linked list includes a plurality of groups of SR metadata entries grouped based on distance indication values such that corresponding SR metadata entries in the linked list that have a same corresponding distance indication value are grouped together into a same corresponding group of the plurality of groups of SR metadata entries.

5 . The method of claim 4 ,

wherein only a corresponding current head SR metadata entry in each group of the plurality of groups of SR metadata entries is marked as non-duplicate.

6 . The method of claim 1 , further comprising:

performing, by the at least one processing unit, alignment of a second SR against the reference genome sequence concurrently with the performing the duplicate marking based on the SR.

7 . A computing device comprising:

at least one processor unit;

a non-transitory computer readable storage medium storing programming for execution by the at least one processor unit, the programming including instructions to cause the computing device to perform operations including:

performing alignment of a short read (SR) against a reference genome sequence, wherein the reference genome sequence comprises a first sequence of base pairs (bps), the reference genome sequence is at least a part of a full genome sequence, and the SR comprises a second sequence of bps;

determining that the SR is aligned with the reference genome sequence at a first position in the reference genome sequence;

generating a new SR metadata entry corresponding to the SR;

identifying a linked list in a SR metadata collection, a first position of the linked list in the SR metadata collection corresponding to the first position of the reference genome sequence where the SR is aligned, wherein the SR is in a pair end comprising the SR and a mate SR of the SR, the new SR metadata entry comprises an average quality score (AQS) of quality scores of the bps in the SR, and the new SR metadata entry further comprises a distance indication value indicating a distance between the first position of the linked list in the SR metadata collection and a second position of a second linked list in the SR metadata collection, the second linked list comprising a second SR metadata entry corresponding to the mate SR;

performing duplicate marking based on the SR and the linked list, wherein the performing the duplicate marking comprises:

identifying a group of SR metadata entries in the linked list having a same distance indication value as the new SR metadata entry,

identifying a head SR metadata entry in the group, wherein an AQS of the head SR metadata entry is the highest in the group, and

marking one of the new SR metadata entry or the head SR metadata entry as duplicate based on a comparison between the AQS of the head SR metadata entry and the AQS of the new SR metadata entry;

inserting the new SR metadata entry to the linked list such that SR metadata entries in the linked list are grouped based on distance indication values of the SR metadata entries in the linked list, the head SR metadata entry being positioned at a beginning of the group in the linked list, the inserting comprising:

inserting the new SR metadata entry at the beginning of the group as a new head SR metadata entry of the group if the AQS of the new SR metadata entry is higher than the AQS of the head SR metadata entry, or

inserting the new SR metadata entry after the head SR metadata entry if the AQS of the new SR metadata entry is less than the AQS of the head SR metadata entry; and

generating a binary alignment map (BAM) file based on the SR metadata collection without producing an intermediate sequence alignment map (SAM) file and without producing an intermediate unmarked BAM file.

8 . The computing device of claim 7 , wherein the marking comprises:

if the AQS of the new SR metadata entry is higher than the AQS of the head SR metadata entry, marking the head SR metadata entry as duplicate; and

if the AQS of the new SR metadata entry is lower than the AQS of the head SR metadata entry, marking the new SR metadata entry as duplicate.

9 . The computing device of claim 7 , wherein the SR metadata collection is an array of linked lists, and a size of the array is based on a size of the first sequence of bps in the reference genome sequence.

10 . A non-transitory computer-readable medium having instructions stored thereon that, when executed by at least one processor unit, cause the at least one processor unit to perform operations, the operations comprising:

performing alignment of a short read (SR) against a reference genome sequence, wherein the reference genome sequence comprises a first sequence of base pairs (bps), the reference genome sequence is at least a part of a full genome sequence, and the SR comprises a second sequence of bps;

determining that the SR is aligned with the reference genome sequence at a first position in the reference genome sequence;

generating a new SR metadata entry corresponding to the SR;

identifying a linked list in a SR metadata collection, a first position of the linked list in the SR metadata collection corresponding to the first position of the reference genome sequence where the SR is aligned, wherein the SR is in a pair end comprising the SR and a mate SR of the SR, the new SR metadata entry comprises an average quality score (AQS) of quality scores of the bps in the SR, and the new SR metadata entry further comprises a distance indication value indicating a distance between the first position of the linked list in the SR metadata collection and a second position of a second linked list in the SR metadata collection, the second linked list comprising a second SR metadata entry corresponding to the mate SR;

performing duplicate marking based on the SR and the linked list, wherein the performing the duplicate marking comprises:

identifying a group of SR metadata entries in the linked list having a same distance indication value as the new SR metadata entry,

identifying a head SR metadata entry in the group, wherein an AQS of the head SR metadata entry is the highest in the group, and

marking one of the new SR metadata entry or the head SR metadata entry as duplicate based on a comparison between the AQS of the head SR metadata entry and the AQS of the new SR metadata entry;

inserting the new SR metadata entry to the linked list such that SR metadata entries in the linked list are grouped based on distance indication values of the SR metadata entries in the linked list, the head SR metadata entry being positioned at a beginning of the group in the linked list, the inserting comprising:

inserting the new SR metadata entry at the beginning of the group as a new head SR metadata entry of the group if the AQS of the new SR metadata entry is higher than the AQS of the head SR metadata entry, or

inserting the new SR metadata entry after the head SR metadata entry if the AQS of the new SR metadata entry is less than the AQS of the head SR metadata entry; and

generating a binary alignment map (BAM) file based on the SR metadata collection without producing an intermediate sequence alignment map (SAM) file and without producing an intermediate unmarked BAM file.

11 . The non-transitory computer-readable medium of claim 10 , wherein the marking comprises:

if the AQS of the new SR metadata entry is higher than the AQS of the head SR metadata entry, marking the head SR metadata entry as duplicate; and

if the AQS of the new SR metadata entry is lower than the AQS of the head SR metadata entry, marking the new SR metadata entry as duplicate.

12 . The non-transitory computer-readable medium of claim 10 , wherein the SR metadata collection is an array of linked lists, and a size of the array is based on a size of the first sequence of bps in the reference genome sequence.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2020
From: ROODI, MEYSAM; LAK, ZAHRA
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 054576/0319 →
Continuity (3)
Continuation PCTCN2020078903 · Mar 12, 2020
Provisional Application 62818519 · Mar 14, 2019
Related Publication 20210174904A1 · Jun 10, 2021
References Cited (24)
US 9824068B2 · Wong · 2017 [cited by examiner]
US 10901887B2 · Jacob et al. · 2021 [cited by applicant]
US 20120330567A1 · Bauer et al. · 2012 [cited by applicant]
US 20130137588A1 · Shendure et al. · 2013 [cited by applicant]
US 20140163900A1 · Erlich et al. · 2014 [cited by applicant]
US 20140280344A1 · Draghicescu et al. · 2014 [cited by applicant]
US 20140288851A1 · Park et al. · 2014 [cited by applicant]
US 20140297196A1 · Olson · 2014 [cited by applicant]
US 20150363549A1 · Kimura · 2015 [cited by applicant]
US 20170337325A1 · Olson · 2017 [cited by applicant]
US 20180121601A1 · Hahm · 2018 [cited by examiner]
US 20190385703A1 · Aiden et al. · 2019 [cited by applicant]
CN 106687966A · 2017 [cited by applicant]
CN 107609350A · 2018 [cited by applicant]
CN 109411020A · 2019 [cited by applicant]
WO 2017214461A1 · 2017 [cited by applicant]
Luca Pireddu, Simone Leo, Gianluigi Zanetti, SEAL: a distributed short read mapping and duplicate removal tool, Bioinformatics, vol. 27, Issue 15, Aug. 2011, pp. 2159-2160 (Year: 2011). [cited by examiner]
Nielsen, F. (2009). Linked Lists. In: A Concise and Practical Introduction to Programming Algorithms in Java. Undergraduate Topics in Computer Science. Springer, London (Year: 2009). [cited by examiner]
Tischler, G., Leonard, S. biobambam: tools for read pair collation based algorithms on BAM files. Source Code Biol Med 9, 13 (2014). (Year: 2014). [cited by examiner]
Panoiu, Manuela, et al. “An interactive learning environment for analyze linked list data structures.” ICCCC 2006 (2006): 355. (Year: 2006). [cited by examiner]
Arna Oskarsdottir, Gísli Másson, Páll Melsted, BamHash: a checksum program for verifying the integrity of sequence data, Bioinformatics, vol. 32, Issue 1, Jan. 2016, pp. 140-141, (Year: 2016). [cited by examiner]
Hatem, M., & Ruml, W. (2013). External Memory Best-First Search for Multiple Sequence Alignment. Proceedings of the AAAI Conference on Artificial Intelligence, 27(1), 409-416. https://doi.org/10.1609/aaai.v27i1.8626 (Ye… [cited by applicant]
Khalil, M. I. “A new heuristic approach for DNA sequences alignment.” International Journal of Image, Graphics and Signal Processing 7.12 (2015): 18. (Year: 2015), 6 Pages. [cited by applicant]
Li, H., et al., “Fast and accurate short read alignment with Burrows-Wheeler transform”, Bioinfomatics, Sequence analysis, vol. 25, No. 14, Feb. 20, 2009, 7 Pages. [cited by applicant]