IP Library Granted Patent US 11,853,389
Granted Patent B2
US 11,853,389 · App. 17/306,512 · Granted Dec 26, 2023

Methods and apparatus for sorting data

Inventor: Alexander Y. Wong (San Francisco, CA)
Assignee: 10X GENOMICS, INC.
G06F17/18G16B30/00G16B30/10
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 11,853,389
App. No.
17/306,512
Granted
Dec 26, 2023
Kind
B2
Abstract

A computer implemented system for genomic data sorting, comprising alignment and position mapping. The system maps each read to a position on the reference genome with which the read is associated, followed by sorting these reads by their mapped positions.

Claims (106)

1. A method comprising:

(a) generating a plurality of data containers, wherein each data container represents a different position on a reference genome;

(b) receiving a plurality of string data values, wherein said plurality of string data values comprises a portion of a genome sequence; and

(c) for each string data value in the plurality of string data values:

mapping the string data value to obtain a position value for said string data value; and

appending said string data value to a data container of the plurality of data containers, wherein said data container is associated with the position value for the string data value.

2. The method of claim 1 , wherein mapping comprises:

applying a non-deterministic mapping function to said string data value to obtain two or more position values associated with two or more data containers of said plurality of data containers, and two or more probability values, wherein each probability value represents a probability that said string data value is associated with a particular data container among said two or more data containers; and

wherein appending comprises appending said string data value and an associated probability value of the two or more probability values to said two or more data containers associated with said two or more position values.

3. The method of claim 1 , further comprising accessing said plurality of data containers in linear order based on position values associated with said plurality of data containers to identify a continuous sequence.

4. The method of claim 1 , further comprising generating a compact output by:

(d) creating a compact data container;

(e) addressing a particular data container among said plurality of data containers;

(f) copying each string data value that is in said particular data container to said compact data container;

(g) repeating (e)-(f) for all said particular data containers among said plurality of data containers, to yield a compacted output; and

(h) outputting said compacted output, wherein said compact data container does not contain any data containers that contain zero data items.

5. The method of claim 1 , wherein said mapping is non-injective to said genome sequence.

6. The method of claim 1 , wherein each string data value of said plurality of string data values comprises a sequencing read.

7. A method comprising:

(a) generating a plurality of data containers, wherein each data container represents a different position on a reference genome;

(b) receiving a plurality of string data values, wherein said plurality of string data values comprises a portion of a genome sequence;

(c) for each string data value in the plurality of string data values;

appending with a programmed computer processor i) a data item comprising a particular mapped string data value of a plurality of mapped string data values and ii) a particular probability value of a plurality of probability values associated with said particular mapped string data value to a particular data container of said plurality of data containers in a computer memory, wherein said particular data container is addressable by a position value, wherein said particular mapped string data value is mapped to said position value; and

(d) outputting a continuous output sequence generated from (c).

8. The method of claim 7 , wherein said particular mapped string data value is mapped to said position value by applying a mapping function.

9. The method of claim 8 , wherein said mapping function is a non-deterministic mapping function.

10. The method of claim 7 , further comprising generating a compact output by:

(e) creating a compact data container;

(f) addressing said particular data container among said plurality of data containers;

(g) copying each string data value that is in said particular data container to said compact data container;

(h) repeating (f)-(g) for all said particular data containers among said plurality of data containers, to yield a compacted output; and

(i) outputting said compacted output, wherein said compact data container does not contain any data containers that contain zero data items.

11. The method of claim 8 , wherein said mapping is non-injective to said genome sequence.

12. The method of claim 7 , wherein said particular mapped string data value comprises a sequencing read.

13. A system comprising:

a string data value database;

a computing node comprising a computer readable storage medium having program instructions embodied therewith, said program instructions executable by one or more processors to cause said one or more processors to perform a method comprising:

(a) generating a plurality of data containers, wherein each data container represents a different position on a reference genome;

(b) receiving a plurality of string data values, wherein said plurality of string data values comprises a portion of a genome sequence; and

(c) for each string data value in the plurality of string data values:

mapping a string data value received from said string value database to obtain a position value for said string data value;

appending said string data value to a data container of the plurality of data containers, wherein said data container is associated with the position value for the string data value.

14. The system of claim 13 , wherein mapping comprises:

applying a non-deterministic mapping function to said string data value to obtain two or more position values associated with two or more data containers of said plurality of data containers, and two or more probability values, wherein each probability value represents a probability that said string value is associated with a particular data container among said two or more data containers; and

wherein appending comprises appending said string data value and an associated probability value of the two or more probability values to said two or more data containers associated with said two or more position values.

15. The system of claim 13 , wherein said method further comprises accessing said plurality of data containers in linear order based on position values associated with said plurality of data containers to identify a continuous sequence.

16. The system of claim 13 , wherein said method further comprises generating a compact output by:

(d) creating a compact data container;

(e) addressing a particular data container among said plurality of data containers;

(f) copying each string data value that is in said particular data container to said compact data container;

(g) repeating (e)-(f) for all said particular data containers among said plurality of data containers, to yield a compacted output; and

(h) outputting said compacted output, wherein said compact data container does not contain any data containers that contain zero data items.

17. The system of claim 13 , wherein said mapping is non-injective to said genome sequence.

18. The system of claim 13 , wherein each string data value of said plurality of string data values comprises a sequencing read.

19. A system comprising:

a string data value database;

a computing node comprising a computer readable storage medium having program instructions embodied therewith, said program instructions executable by one or more processors to cause said one or more processors to perform a method comprising:

(a) generating a plurality of data containers, wherein each data container represents a different position on a reference genome;

(b) receiving a plurality of string data values, wherein said plurality of string data values comprises a portion of a genome sequence;

(c) for each string data value in the plurality of string data values:

appending with a programmed computer processor i) a data item comprising a particular mapped string data value of a plurality of mapped string data values and ii) a particular probability value of a plurality of probability values associated with said particular mapped string data value to a particular data container of the plurality of data containers in a computer memory, wherein said particular data container is addressable by a position value, wherein said particular mapped string data value is mapped to said position value; and

(d) outputting a continuous output sequence generated from (c).

20. The system of claim 19 , wherein said particular mapped string data value is mapped to said position value by applying a mapping function.

21. The system of claim 20 , wherein said mapping function is a non-deterministic mapping function.

22. The system of claim 19 , wherein said method further comprises generating a compact output by:

(e) creating a compact data container;

(f) addressing said particular data container among said plurality of data containers;

(g) copying each string data value that is in said particular data container to said compact data container;

(h) repeating (f)-(g) for all said particular data containers among said plurality of data containers, to yield a compacted output; and

(i) outputting said compacted output, wherein said compact data container does not contain any data containers that contain zero data items.

23. The system of claim 20 , wherein said mapping is non-injective to said genome sequence.

24. The system of claim 19 , wherein said particular mapped string data value comprises a sequencing read.

25. A computer program product comprising a computer-readable storage medium having program instructions embodied therewith, said program instructions executable by one or more processors to cause said one or more processors to perform a method comprising:

(a) generating a plurality of data containers, wherein each data container represents a different position on a reference genome;

(b) receiving a plurality of string data values, wherein said plurality of string data values comprises a portion of a genome sequence; and

(c) for each string data value in the plurality of string data values:

mapping the string data value to obtain a position value for said string data value; and

appending said string data value to a data container of the plurality of data containers, wherein said data container is associated with the position value for the string data value.

26. The computer program product of claim 25 , wherein mapping comprises:

applying a non-deterministic mapping function to said string data value to obtain two or more position values associated with two or more data containers of said plurality of data containers, and two or more probability values, wherein each probability value represents a probability that said string value is associated with a particular data container among said two or more data containers; and

wherein appending comprises appending said string data value and an associated probability value of the two or more probability values to said two or more data containers associated with said two or more position values.

27. The computer program product of claim 25 , said method further comprises accessing said plurality of data containers in linear order based on position values associated with said plurality of data containers to identify a continuous sequence.

28. The computer program product of claim 25 , wherein said method further comprises generating a compact output by:

(d) creating a compact data container;

(e) addressing a particular data container among said plurality of data containers;

(f) copying each string data value that is in said particular data container to said compact data container;

(g) repeating (e)-(f) for all said particular data containers among said plurality of data containers, to yield a compacted output; and

(h) outputting said compacted output, wherein said compact data container does not contain any data containers that contain zero data items.

29. The computer program product of claim 25 , wherein said mapping is non-injective to said genome sequence.

30. The computer program product of claim 25 , wherein each string data value of said plurality of string data values comprises a sequencing read.

31. A computer program product comprising a computer-readable storage medium having program instructions embodied therewith, said program instructions executable by one or more processor to cause said one or more processor to perform a method comprising:

(a) generating a plurality of data containers, wherein each data container represents a different position on a reference genome;

(b) receiving a plurality of string data values, wherein said plurality of string data values comprises a portion of a genome sequence;

(c) for each string data value in the plurality of string data values:

appending with a programmed computer processor i) a data item comprising a particular mapped string data value of a plurality of mapped string data values and ii) a particular probability value of a plurality of probability values associated with said particular mapped string data value to a particular data container of the plurality of data containers in a computer memory, wherein said particular data container is addressable by a position value, wherein said particular mapped string data value is mapped to said position value; and

(d) outputting a continuous output sequence generated from (c).

32. The computer program product of claim 31 , wherein said particular mapped string data value is mapped to said position value by applying a mapping function.

33. The computer program product of claim 32 , wherein said mapping function is a non-deterministic mapping function.

34. The computer program product of claim 31 , wherein said method further comprises generating a compact output by:

(e) creating a compact data container;

(f) addressing said particular data container among said plurality of data containers;

(g) copying each string data value that is in said particular data container to said compact data container;

(h) repeating (f)-(g) for all said particular data containers among said plurality of data containers, to yield a compacted output; and

(i) outputting said compacted output, wherein said compact data container does not contain any data containers that contain zero data items.

35. The computer program product of claim 32 , wherein said mapping is non-injective to said genome sequence.

36. The computer program product of claim 31 , wherein said particular mapped string data value comprises a sequencing read.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2023
From: WONG, ALEXANDER Y.
To: 10X GENOMICS, INC.
Reel/Frame 064538/0572 →
Continuity (4)
Continuation 15730119 · Oct 11, 2017
Continuation 14571120 · Dec 15, 2014
Provisional Application 61916687 · Dec 16, 2013
Related Publication 20210357479A1 · Nov 18, 2021