DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Amendment
This Office action is in response to Applicant's amendment filed on 10/22/2025.
Claim 23-28 and 32-45 are pending. Claim 23, 33 and 38 are amended. Claim 23-28 and 32-45 are rejected.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim 23, 25-27,33, 35-36, 38 and 40-41 are rejected under 35 U.S.C. 103 as being unpatentable over Ylonen, Tatu (PGPUB Document No. 20100191777), hereafter, referred to as “Ylonen”, in view of Kaye, Alice (PGPUB Document No. 20160342737), hereafter, referred to as “Kaye”, in view of Takeki, Naito (Japanese Patent Document No. JP 2004372059 A), hereafter, referred to as “Takeki”, in view of Brandes, Ulrik et al (Non Patent Literature “Graph Markup Language (GraphML)”, Published in 2010, ISBN 978-1-584-88412-5), hereafter, referred to as “Brandes”.
Claim 1-22, Cancelled.
Regarding claim 23 (Currently Amended), Ylonen teaches A method of serializing biological data, the method comprising(Ylonen, Fig. 2 and para 0050 disclose a serialization of graph objects/structures “FIG. 2 illustrates an embodiment of the process implemented by the serialization means (109)”): and serializing the graph data structure to obtain a serialized graph data structure stored in the memory subsystem, the serializing comprising iteratively serializing the directed graph over multiple iterations with each iteration involving removing a respective branch of the directed graph from further consideration for purposes of the serializing(Ylonen, para 0050 and Fig. 2 disclose iteratively serialize graph objects and element 202, 203 and 211 further disclose each object (branch) of graph is getting traversed for serialization until each object is considered in a graph and which suggests an object is considered for serialization for once so objects in a graph are not getting considered for the second time or being removed once serialized “an embodiment of the process implemented by the serialization means (109). (200) begins serializing (encoding) an object graph. (201) initializes the serialization process……. while it is shown as a box here, it would typically be a recursive function or an iterative function with some or all of the recursion eliminated by, e.g., using an explicit stack data structure” ), the iterative serializing being performed until topology of the directed graph being considered for purposes of serializing is linear with no branches remaining, an iteration of the multiple iterations comprising(Ylonen, para 0050 and Fig. 2 further disclose continuation of serialization process until no graph object is found for serialization “(203) illustrates testing if there are more objects; if not, serialization is complete at (211)” ):
removing the identified branch from further consideration for purposes of the serializing(Ylonen, para 0050 and Fig. 2 disclose iteratively serialize graph objects and element 202, 203 and 211 further disclose each object (identified branch) of graph is getting traversed for serialization until each object is considered in a graph and which suggests an object is considered for serialization for once so objects in a graph are not getting considered for the second time or being removed once serialized “an embodiment of the process implemented by the serialization means (109). (200) begins serializing (encoding) an object graph. (201) initializes the serialization process……. while it is shown as a box here, it would typically be a recursive function or an iterative function with some or all of the recursion eliminated by, e.g., using an explicit stack data structure”);
But Ylonen does not explicitly teach representing a plurality of sequences as a graph data structure in a memory subsystem within a computer system, the graph data structure encoding a directed graph representing variability in the plurality of sequences and comprising information specifying a plurality of vertices and a plurality of edges, the plurality of edges connecting the plurality of vertices to form a plurality of paths, such that each of the plurality of sequences is represented by at least one path of the plurality of paths, and the plurality of vertices being stored as a respective plurality of objects in the memory subsystem;
identifying a branch in the directed graph, the branch comprising multiple vertices of the plurality of vertices, each of the multiple vertices being stored as a respective object of the plurality of objects in the memory subsystem; generating a coordinate representation of the identified branch, the coordinate representation indicating a starting location for the identified branch in the directed graph, an ending location for the identified branch in the directed graph, and a number of vertices in the identified branch; and encoding the coordinate representation of the identified branch and biological sequence data for the identified branch into a respective stream of bytes.
However, in the same field of endeavor of serialization of Graph structure Kaye teaches representing a plurality of sequences as a graph data structure in a memory subsystem within a computer system, the graph data structure encoding a directed graph representing variability in the plurality of sequences (Kaye, Fig. 14A-B and para 0053 disclose genomic information is being presented by vertices/nodes and edges where edges represents genomic sequencing data “reference genome constructed using the GGM method is defined by edges that are used to represent sequences that are essentially immutable. Variations that are highly likely can be represented as additional directional edges or nodes”) and comprising information specifying a plurality of vertices and a plurality of edges, the plurality of edges connecting the plurality of vertices to form a plurality of paths(Kaye, Fig. 14A-B and para 0054 disclose connection/path made by edges between nodes/vertices “the term “graph” refers to an ordered pair G=(V, E) comprising a set V of nodes and a set E of edges, which are 2-element subsets of V. An edge is connecting two nodes”), such that each of the plurality of sequences is represented by at least one path of the plurality of paths(Kaye, para 0053-0054 disclose genomic information is being specified by vertices/nodes and edges where edges/path represents genomic sequencing data “reference genome constructed using the GGM method is defined by edges that are used to represent sequences that are essentially immutable. Variations that are highly likely can be represented as additional directional edges or nodes”);
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the graphical presentation of genomic sequences represented by nodes and edges of a graph structure of Kaye into iterative graph serialization (conversion into stream of bytes) system of Ylonen to produce an expected result of graph objects representing genomic sequences in serialized text format. The modification would be obvious because one of ordinary skill in the art would be motivated to improve graph model representing DNA sequencing by recording DNA sequence as labels on edges of graph elements and combining an edge labeled cyclic graph with probabilistic cost function(Kaye, para 0062).
But Ylonen and Kaye don’t explicitly teach and the plurality of vertices being stored as a respective plurality of objects in the memory subsystem; identifying a branch in the directed graph, the branch comprising multiple vertices of the plurality of vertices, each of the multiple vertices being stored as a respective object of the plurality of objects in the memory subsystem; generating a coordinate representation of the identified branch, the coordinate representation indicating a starting location for the identified branch in the directed graph, an ending location for the identified branch in the directed graph, and a number of vertices in the identified branch; and encoding the coordinate representation of the identified branch and biological sequence data for the identified branch into a respective stream of bytes.
However, in the field of endeavor of presenting gene sequencing using directed acyclic graph Takeki discloses identifying a branch in the directed graph(Takeki, para 0012 teaches identifying branch nodes/vertices in a directed acyclic graph “identifies branches of the acyclic directed graph in accordance with the node size, identifies nodes on these branches in order of connection, and aligns genes of the attributes of the identified nodes in sequence, thereby aligning the genes”), the branch comprising multiple vertices of the plurality of vertices(Takeki, Fig. 6 discloses directed acyclic graph with multiple vertices/nodes);
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of identifying branches in a DAG representing gene sequencing of Takeki into iterative graph serialization (conversion into stream of bytes) system of Ylonen and Kaye to produce an expected result of serializing of identified DAG branches. The modification would be obvious because one of ordinary skill in the art would be motivated to efficiently handle objects that belong to a specific group by aligning the objects belonging to the groups of identified nodes in a sequence(Kaye, para 0062).
But Ylonen, Kaye and Takeki don’t explicitly teach and the plurality of vertices being stored as a respective plurality of objects in the memory subsystem; each of the multiple vertices being stored as a respective object of the plurality of objects in the memory subsystem; generating a coordinate representation of the identified branch, the coordinate representation indicating a starting location for the identified branch in the directed graph, an ending location for the identified branch in the directed graph, and a number of vertices in the identified branch; and encoding the coordinate representation of the identified branch and biological sequence data for the identified branch into a respective stream of bytes.
However, in the same field of endeavor of serialization of Graph structure Brandes teaches and the plurality of vertices being stored as a respective plurality of objects in the memory subsystem; each of the multiple vertices being stored as a respective object of the plurality of objects in the memory subsystem(Brande, in last paragraph of page 521 vertices/nodes are being used to objects such as www pages are stored in GraphML or serialized format “..a graph whose nodes model WWW pages should be stored n GraphML. A node could then point to the associated page by storing the URL in an xlink:href attribute within the <node> element” ); generating a coordinate representation of the identified branch, the coordinate representation indicating a starting location for the identified branch in the directed graph, an ending location for the identified branch in the directed graph, and a number of vertices in the identified branch; and encoding the coordinate representation of the identified branch and biological sequence data for the identified branch into a respective stream of bytes(Brande, in page 521 discloses a Graph Markup Language (GraphML) that serializes (generation of graph structure/attributes in stream of bytes) a map structure where edges and nodes are constituents of any branch/path (first branch etc.) in a graph and which is applicable for any branch; Page 521 further discloses how “first coordinate” starting node “n0” is getting connected by edges “e0”, “e1”, “e2” etc. to the “ending coordinate” “n5” for forming a path as shown in the Figure 16.4 “"<graph id="G" edgedefault="undirected"><node id="n0"> <data key="d0">green</data></node><node id="n1"/><node id="n2"><data key="d0">blue</data></node>….<edge id="e0" source="n0" target="n2"><data key="d1">1.0</data></edge><edge id="e1" source="n0" target="n1">….<edge id="e6" source="n5" target="n4">”; here the examiner interprets in consistent with fig. 12 paragraph 0128-0130 of the instant application “coordinate” as relative position of nodes in a path; further, parsing above mentioned “node” & “edge” from GraphML schema relative position of each node in any path (first path) can be determined by a skilled artisan in the field of endeavor (“GraphML.py” source code listing from NetworkX project 2014) ).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of graph serialization with coordinates (conversion into stream of bytes) system of Brandes into graphical presentation of genomic sequences of Ylonen, Kaye and Takeki to produce an expected result of graph objects in serialized/text format. The modification would be obvious because one of ordinary skill in the art would be motivated to add graph application specific data flexibly by utilizing flexible extension mechanism (Brandes, page 1, line 10-13).
Regarding claim 25 (Previously Presented), Ylonen, Kaye, Takeki and Brandes teach all the limitations of claim 23 and Brandes further teaches wherein generating the coordinate representation of the identified branch comprises determining, for a first vertex included in the identified branch, one or more values including a first value indicative of a number of edges traversed to reach the first vertex (Brandes, in page 521 discloses a Graph Markup Language (GraphML) that serializes (presenting graph structure in stream of bytes) a map structure where edges and nodes are constituents of a path in a graph. Page 521 further discloses how “first coordinate” starting node “n0” is getting connected by edges “e0”, “e1”, “e2” etc. to the “ending coordinate” “n5” for forming a path as shown in the Figure 16.4 “"<graph id="G" edgedefault="undirected"><node id="n0"> <data key="d0">green</data></node><node id="n1"/><node id="n2"><data key="d0">blue</data></node>….<edge id="e0" source="n0" target="n2"><data key="d1">1.0</data></edge><edge id="e1" source="n0" target="n1">….<edge id="e6" source="n5" target="n4">”; further, parsing above mentioned “node” & “edge” from GraphML schema relative position of each node can be determined by a skilled artisan in the field of endeavor (“GraphML.py” source code listing from NetworkX project 2014, line 429~437) & number of edges can be expressed as an attribute element as discloses in page 518 of Brandes “where V is a set of nodes, E a multi-set containing directed and undirected edges, and D a set of data labels that are partial functions from..”; where prior art Takeki in para 0012 discloses identification/detection of a branch in DAG).
Regarding claim 26 (Previously Presented), Ylonen, Kaye, Takeki and Brandes teach all the limitations of claim 25 and Brandes further teaches wherein at least one of the traversed edges comprises a branching point, and wherein determining the one or more values further comprises determining a second value indicating a branch of a set of branches at the branching point(Brandes, in page 521 discloses a Graph Markup Language (GraphML) that serializes (presenting graph structure in stream of bytes) a map structure where edges and nodes are constituents of a path in a graph. Page 521 further discloses how “first coordinate” starting node “n0” is getting connected by edges “e0”, “e1”, “e2” etc. to the “ending coordinate” “n5” for forming a path as shown in the Figure 16.4 and further number of branch can be determined form number of edge initiating from a node where a node can be branching point “"<graph id="G" edgedefault="undirected"><node id="n0"> <data key="d0">green</data></node><node id="n1"/><node id="n2"><data key="d0">blue</data></node>….<edge id="e0" source="n0" target="n2"><data key="d1">1.0</data></edge><edge id="e1" source="n0" target="n1">….<edge id="e6" source="n5" target="n4">”; further, parsing above mentioned “node” & “edge” from GraphML schema relative position of each node can be determined by a skilled artisan in the field of endeavor (“GraphML.py” source code listing from NetworkX project 2014, line 429~437) & number of edges can be expressed as an attribute element as discloses in page 518 of Brandes “where V is a set of nodes, E a multi-set containing directed and undirected edges, and D a set of data labels that are partial functions from..”).
Regarding claim 27 (Previously Presented), Ylonen, Kaye, Takeki and Brandes teach all the limitations of claim 25 and Brandes further teaches wherein generating the coordinate representation of the identified branch comprises determining, for a second vertex included in the first branch, one or more values including a value indicative a number of edges traversed to reach the second vertex (Brandes, in page 521 discloses a Graph Markup Language (GraphML) that serializes (presenting graph structure in stream of bytes) a map structure where edges and nodes are constituents of a path in a graph. Page 521 further discloses how “first coordinate” starting node “n0” is getting connected by edges “e0”, “e1”, “e2” etc. to the “ending coordinate” “n5” for forming a path as shown in the Figure 16.4 “"<graph id="G" edgedefault="undirected"><node id="n0"> <data key="d0">green</data></node><node id="n1"/><node id="n2"><data key="d0">blue</data></node>….<edge id="e0" source="n0" target="n2"><data key="d1">1.0</data></edge><edge id="e1" source="n0" target="n1">….<edge id="e6" source="n5" target="n4">”; further, parsing above mentioned “node” & “edge” from GraphML schema relative position of each node can be determined by a skilled artisan in the field of endeavor (“GraphML.py” source code listing from NetworkX project 2014, line 429~437) & number of edges can be expressed as an attribute element as discloses in page 518 of Brandes “where V is a set of nodes, E a multi-set containing directed and undirected edges, and D a set of data labels that are partial functions from..”; where prior art Takeki in para 0012 discloses identification/detection of a branch in DAG).
Regarding claim 33 (Currently Amended), Kaye teaches A system, comprising: at least one computer hardware processor; and at least one non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by the at least one computer hardware processor, cause the at least one computer hardware processor to perform(Kaye, Fig. 10 and para 0069-0070 disclose computer processor and storage media for executing instructions): representing a plurality of sequences as a graph data structure in a memory subsystem within a computer system, the graph data structure encoding a directed graph representing variability in the plurality of sequences (Kaye, Fig. 14A-B and para 0053 disclose genomic information is being presented by vertices/nodes and edges where edges represents genomic sequencing data “reference genome constructed using the GGM method is defined by edges that are used to represent sequences that are essentially immutable. Variations that are highly likely can be represented as additional directional edges or nodes”) and comprising information specifying a plurality of vertices and a plurality of edges, the plurality of edges connecting the plurality of vertices to form a plurality of paths(Kaye, Fig. 14A-B and para 0054 disclose connection/path made by edges between nodes/vertices “the term “graph” refers to an ordered pair G=(V, E) comprising a set V of nodes and a set E of edges, which are 2-element subsets of V. An edge is connecting two nodes”), such that each of the plurality of sequences is represented by at least one path of the plurality of paths(Kaye, para 0053-0054 disclose genomic information is being specified by vertices/nodes and edges where edges represents genomic sequencing data “reference genome constructed using the GGM method is defined by edges that are used to represent sequences that are essentially immutable. Variations that are highly likely can be represented as additional directional edges or nodes”);
Kaye teaches genomic sequences presented in a graph structure but does not explicitly teach and the plurality of vertices being stored as a respective plurality of objects in the memory subsystem; and serializing the graph data structure to obtain a serialized graph data structure stored in the memory subsystem, the serializing comprising iteratively serializing the directed graph over multiple iterations with each iteration involving removing a respective branch of the directed graph from further consideration for purposes of the serializing, the iterative serializing being performed until topology of the directed graph being considered for purposes of serializing is linear with no branches remaining, an iteration of the multiple iterations comprising: identifying a branch in the directed graph, the branch comprising multiple vertices of the plurality of vertices, each of the multiple vertices being stored as a respective object of the plurality of objects in the memory subsystem; generating a coordinate representation of the identified branch, the coordinate representation indicating a starting location for the identified branch in the directed graph, an ending location for the identified branch in the directed graph, and a number of vertices in the identified branch; removing the identified branch from further consideration for purposes of the serializing; and encoding the coordinate representation of the identified branch and sequence data for the identified branch into a respective stream of bytes.
However, in the same field of endeavor of iteratively serialization of Graph structure Ylonen teaches and serializing the graph data structure to obtain a serialized graph data structure stored in the memory subsystem, the serializing comprising iteratively serializing the directed graph over multiple iterations with each iteration involving removing a respective branch of the directed graph from further consideration for purposes of the serializing(Ylonen, para 0050 and Fig. 2 disclose iteratively serialize graph objects and element 202, 203 and 211 further disclose each object (branch) of graph is getting traversed for serialization until each object is considered in a graph and which suggests an object is considered for serialization for once so objects in a graph are not getting considered for the second time or being removed once serialized “an embodiment of the process implemented by the serialization means (109). (200) begins serializing (encoding) an object graph. (201) initializes the serialization process……. while it is shown as a box here, it would typically be a recursive function or an iterative function with some or all of the recursion eliminated by, e.g., using an explicit stack data structure” ), the iterative serializing being performed until topology of the directed graph being considered for purposes of serializing is linear with no branches remaining, an iteration of the multiple iterations comprising(Ylonen, para 0050 and Fig. 2 further disclose continuation of serialization process until no graph object is found for serialization “(203) illustrates testing if there are more objects; if not, serialization is complete at (211)” ): removing the identified branch from further consideration for purposes of the serializing(Ylonen, para 0050 and Fig. 2 disclose iteratively serialize graph objects and element 202, 203 and 211 further disclose each object (identified branch) of graph is getting traversed for serialization until each object is considered in a graph and which suggests an object is considered for serialization for once so objects in a graph are not getting considered for the second time or being removed once serialized “an embodiment of the process implemented by the serialization means (109). (200) begins serializing (encoding) an object graph. (201) initializes the serialization process……. while it is shown as a box here, it would typically be a recursive function or an iterative function with some or all of the recursion eliminated by, e.g., using an explicit stack data structure”);
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of iterative graph serialization (conversion into stream of bytes) system of Ylonen into graphical presentation of genomic sequences of Kaye to produce an expected result of graph objects representing genomic sequences in serialized/text format. The modification would be obvious because one of ordinary skill in the art would be motivated to improve serialization of objects by generating a compressed encoding while each object is being encoded and which eventually reduces the space and CPU overhead (Ylonen, para 0023 and 0041).
But Kaye and Ylonen don’t explicitly teach and the plurality of vertices being stored as a respective plurality of objects in the memory subsystem; identifying a branch in the directed graph, the branch comprising multiple vertices of the plurality of vertices ,each of the multiple vertices being stored as a respective object of the plurality of objects in the memory subsystem; generating a coordinate representation of the identified branch, the coordinate representation indicating a starting location for the identified branch in the directed graph, an ending location for the identified branch in the directed graph, and a number of vertices in the identified branch; and encoding the coordinate representation of the identified branch and sequence data for the identified branch into a respective stream of bytes.
However, in the field of endeavor of presenting gene sequencing using directed acyclic graph Takeki discloses identifying a branch in the directed graph(Takeki, para 0012 teaches identifying branch nodes/vertices in a directed acyclic graph “identifies branches of the acyclic directed graph in accordance with the node size, identifies nodes on these branches in order of connection, and aligns genes of the attributes of the identified nodes in sequence, thereby aligning the genes”), the branch comprising multiple vertices of the plurality of vertices(Takeki, Fig. 6 discloses directed acyclic graph with multiple vertices/nodes);
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of identifying branches in a DAG representing gene sequencing of Takeki into iterative graph serialization (conversion into stream of bytes) system of Kaye and Ylonen to produce an expected result of serializing of identified DAG branches. The modification would be obvious because one of ordinary skill in the art would be motivated to efficiently handle objects that belong to a specific group by aligning the objects belonging to the groups of identified nodes in a sequence(Kaye, para 0062).
But Kaye, Ylonen and Takeki don’t explicitly teach and the plurality of vertices being stored as a respective plurality of objects in the memory subsystem; each of the multiple vertices being stored as a respective object of the plurality of objects in the memory subsystem; generating a coordinate representation of the identified branch, the coordinate representation indicating a starting location for the identified branch in the directed graph, an ending location for the identified branch in the directed graph, and a number of vertices in the identified branch; and encoding the coordinate representation of the identified branch and sequence data for the identified branch into a respective stream of bytes.
However, in the same field of endeavor of serialization of Graph structure Brandes teaches and the plurality of vertices being stored as a respective plurality of objects in the memory subsystem;, each of the multiple vertices being stored as a respective object of the plurality of objects in the memory subsystem(Brande, in last paragraph of page 521 vertices/nodes are being used to objects such as www pages are stored in GraphML or serialized format “..a graph whose nodes model WWW pages should be stored n GraphML. A node could then point to the associated page by storing the URL in an xlink:href attribute within the <node> element” ); generating a coordinate representation of the identified branch, the coordinate representation indicating a starting location for the identified branch in the directed graph, an ending location for the identified branch in the directed graph, and a number of vertices in the identified branch; and encoding the coordinate representation of the identified branch and sequence data for the identified branch into a respective stream of bytes(Brande, in page 521 discloses a Graph Markup Language (GraphML) that serializes (generation of graph structure/attributes in stream of bytes) a map structure where edges and nodes are constituents of any branch/path (first branch etc.) in a graph and which is applicable for any branch; Page 521 further discloses how “first coordinate” starting node “n0” is getting connected by edges “e0”, “e1”, “e2” etc. to the “ending coordinate” “n5” for forming a path as shown in the Figure 16.4 “"<graph id="G" edgedefault="undirected"><node id="n0"> <data key="d0">green</data></node><node id="n1"/><node id="n2"><data key="d0">blue</data></node>….<edge id="e0" source="n0" target="n2"><data key="d1">1.0</data></edge><edge id="e1" source="n0" target="n1">….<edge id="e6" source="n5" target="n4">”; here the examiner interprets in consistent with fig. 12 paragraph 0128-0130 of the instant application “coordinate” as relative position of nodes in a path; further, parsing above mentioned “node” & “edge” from GraphML schema relative position of each node in any path (first path) can be determined by a skilled artisan in the field of endeavor (“GraphML.py” source code listing from NetworkX project 2014) ).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of graph serialization with coordinates (conversion into stream of bytes) system of Brandes into graphical presentation of genomic sequences of Kaye, Ylonen and Takeki to produce an expected result of graph objects in serialized/text format. The modification would be obvious because one of ordinary skill in the art would be motivated to add graph application specific data flexibly by utilizing flexible extension mechanism (Brandes, page 1, line 10-13).
Regarding claim 35 (Previously Presented), Kaye, Ylonen, Takeki and Brandes teach all the limitations of claim 33 and Brandes further teaches wherein generating the coordinate representation of the identified branch comprises determining, for a first vertex included in the identified branch, one or more values including a first value indicative of a number of edges traversed to reach the first vertex. (Brandes, in page 521 discloses a Graph Markup Language (GraphML) that serializes (presenting graph structure in stream of bytes) a map structure where edges and nodes are constituents of a branch/path in a graph. Page 521 further discloses how “first coordinate” starting node “n0” is getting connected by edges “e0”, “e1”, “e2” etc. to the “ending coordinate” “n5” for forming a branch/path as shown in the Figure 16.4 “"<graph id="G" edgedefault="undirected"><node id="n0"> <data key="d0">green</data></node><node id="n1"/><node id="n2"><data key="d0">blue</data></node>….<edge id="e0" source="n0" target="n2"><data key="d1">1.0</data></edge><edge id="e1" source="n0" target="n1">….<edge id="e6" source="n5" target="n4">”; further, parsing above mentioned “node” & “edge” from GraphML schema relative position of each node can be determined by a skilled artisan in the field of endeavor (“GraphML.py” source code listing from NetworkX project 2014, line 429~437) & number of edges can be expressed as an attribute element as discloses in page 518 of Brandes “where V is a set of nodes, E a multi-set containing directed and undirected edges, and D a set of data labels that are partial functions from..”; Takeki in para 0012 teaches identifying a branch in a DAG).
Regarding claim 36 (Previously Presented), Kaye, Ylonen, Takeki and Brandes teach all the limitations of claim 35 and Brandes further teaches wherein at least one of the traversed edges comprises a branching point, and wherein determining the one or more values further comprises determining a second value indicating a branch of a set of branches at the branching point (Brandes, in page 521 discloses a Graph Markup Language (GraphML) that serializes (presenting graph structure in stream of bytes) a map structure where edges and nodes are constituents of a path in a graph. Page 521 further discloses how “first coordinate” starting node “n0” is getting connected by edges “e0”, “e1”, “e2” etc. to the “ending coordinate” “n5” for forming a branch/path as shown in the Figure 16.4 and further number of branch can be determined form number of edge initiating from a node where a node can be branching point “"<graph id="G" edgedefault="undirected"><node id="n0"> <data key="d0">green</data></node><node id="n1"/><node id="n2"><data key="d0">blue</data></node>….<edge id="e0" source="n0" target="n2"><data key="d1">1.0</data></edge><edge id="e1" source="n0" target="n1">….<edge id="e6" source="n5" target="n4">”; further, parsing above mentioned “node” & “edge” from GraphML schema relative position of each node can be determined by a skilled artisan in the field of endeavor (“GraphML.py” source code listing from NetworkX project 2014, line 429~437) & number of edges can be expressed as an attribute element as discloses in page 518 of Brandes “where V is a set of nodes, E a multi-set containing directed and undirected edges, and D a set of data labels that are partial functions from..”).
Regarding claim 38 (Currently Amended), Kaye teaches At least one non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by at least one computer hardware processor, cause the at least one computer hardware processor to perform(Kaye, Fig. 10 and para 0069-0070 disclose computer processor and storage media for executing instructions): representing a plurality of sequences as a graph data structure in a memory subsystem within a computer system, the graph data structure encoding a directed graph representing variability in the plurality of sequences (Kaye, Kaye, Fig. 14A-B and para 0053 disclose genomic information is being presented by vertices/nodes and edges where edges represents genomic sequencing data “reference genome constructed using the GGM method is defined by edges that are used to represent sequences that are essentially immutable. Variations that are highly likely can be represented as additional directional edges or nodes”) and comprising information specifying a plurality of vertices and a plurality of edges, the plurality of edges connecting the plurality of vertices to form a plurality of paths(Kaye, Fig. 14A-B and para 0054 disclose connection/path made by edges between nodes/vertices “the term “graph” refers to an ordered pair G=(V, E) comprising a set V of nodes and a set E of edges, which are 2-element subsets of V. An edge is connecting two nodes”), such that each of the plurality of sequences is represented by at least one path of the plurality of paths(Kaye, para 0053-0054 disclose genomic information is being specified by vertices/nodes and edges where edges represents genomic sequencing data “reference genome constructed using the GGM method is defined by edges that are used to represent sequences that are essentially immutable. Variations that are highly likely can be represented as additional directional edges or nodes”);
Kaye teaches genomic sequences presented in a graph structure but does not explicitly teach and the plurality of vertices being stored as a respective plurality of objects in the memory subsystem; and serializing the graph data structure to obtain a serialized graph data structure stored in the memory subsystem, the serializing comprising iteratively serializing the directed graph over multiple iterations with each iteration involving removing a respective branch of the directed graph from further consideration for purposes of the serializing, the iterative serializing being performed until topology of the directed graph being considered for purposes of serializing is linear with no branches remaining, an iteration of the multiple iterations comprising: identifying a branch in the directed graph, the branch comprising multiple vertices of the plurality of vertices each of the multiple vertices being stored as a respective object of the plurality of objects in the memory subsystem; generating a coordinate representation of the identified branch, the coordinate representation indicating a starting location for the identified branch in the directed graph, an ending location for the identified branch in the directed graph, and a number of vertices in the identified branch; removing the identified branch from further consideration for purposes of the serializing; and encoding the coordinate representation of the identified branch and sequence data for the identified branch into a respective stream of bytes.
However, in the same field of endeavor of iteratively serialization of Graph structure Ylonen teaches and serializing the graph data structure to obtain a serialized graph data structure stored in the memory subsystem, the serializing comprising iteratively serializing the directed graph over multiple iterations with each iteration involving removing a respective branch of the directed graph from further consideration for purposes of the serializing(Ylonen, para 0050 and Fig. 2 disclose iteratively serialize graph objects and element 202, 203 and 211 further disclose each object (branch) of graph is getting traversed for serialization until each object is considered in a graph and which suggests an object is considered for serialization for once so objects in a graph are not getting considered for the second time or being removed once serialized “an embodiment of the process implemented by the serialization means (109). (200) begins serializing (encoding) an object graph. (201) initializes the serialization process……. while it is shown as a box here, it would typically be a recursive function or an iterative function with some or all of the recursion eliminated by, e.g., using an explicit stack data structure” ), the iterative serializing being performed until topology of the directed graph being considered for purposes of serializing is linear with no branches remaining, an iteration of the multiple iterations comprising(Ylonen, para 0050 and Fig. 2 further disclose continuation of serialization process until no graph object is found for serialization “(203) illustrates testing if there are more objects; if not, serialization is complete at (211)” ): removing the identified branch from further consideration for purposes of the serializing(Ylonen, para 0050 and Fig. 2 disclose iteratively serialize graph objects and element 202, 203 and 211 further disclose each object (identified branch) of graph is getting traversed for serialization until each object is considered in a graph and which suggests an object is considered for serialization for once so objects in a graph are not getting considered for the second time or being removed once serialized “an embodiment of the process implemented by the serialization means (109). (200) begins serializing (encoding) an object graph. (201) initializes the serialization process……. while it is shown as a box here, it would typically be a recursive function or an iterative function with some or all of the recursion eliminated by, e.g., using an explicit stack data structure”);
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of iterative graph serialization (conversion into stream of bytes) system of Ylonen into graphical presentation of genomic sequences of Kaye to produce an expected result of graph objects representing genomic sequences in serialized/text format. The modification would be obvious because one of ordinary skill in the art would be motivated to improve serialization of objects by generating a compressed encoding while each object is being encoded and which eventually reduces the space and CPU overhead (Ylonen, para 0023 and 0041).
But Kaye and Ylonen don’t explicitly teach and the plurality of vertices being stored as a respective plurality of objects in the memory subsystem; identifying a branch in the directed graph, the branch comprising multiple vertices of the plurality of vertices, each of the multiple vertices being stored as a respective object of the plurality of objects in the memory subsystem; generating a coordinate representation of the identified branch, the coordinate representation indicating a starting location for the identified branch in the directed graph, an ending location for the identified branch in the directed graph, and a number of vertices in the identified branch; and encoding the coordinate representation of the identified branch and sequence data for the identified branch into a respective stream of bytes.
However, in the field of endeavor of presenting gene sequencing using directed acyclic graph Takeki discloses identifying a branch in the directed graph(Takeki, para 0012 teaches identifying branch nodes/vertices in a directed acyclic graph “identifies branches of the acyclic directed graph in accordance with the node size, identifies nodes on these branches in order of connection, and aligns genes of the attributes of the identified nodes in sequence, thereby aligning the genes”), the branch comprising multiple vertices of the plurality of vertices(Takeki, Fig. 6 discloses directed acyclic graph with multiple vertices/nodes);
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of identifying branches in a DAG representing gene sequencing of Takeki into iterative graph serialization (conversion into stream of bytes) system of Kaye and Ylonen to produce an expected result of serializing of identified DAG branches. The modification would be obvious because one of ordinary skill in the art would be motivated to efficiently handle objects that belong to a specific group by aligning the objects belonging to the groups of identified nodes in a sequence(Kaye, para 0062).
But Ylonen, Kaye and Takeki don’t explicitly teach and the plurality of vertices being stored as a respective plurality of objects in the memory subsystem; each of the multiple vertices being stored as a respective object of the plurality of objects in the memory subsystem (Brande, in last paragraph of page 521 vertices/nodes are being used to objects such as www pages are stored in GraphML or serialized format “..a graph whose nodes model WWW pages should be stored n GraphML. A node could then point to the associated page by storing the URL in an xlink:href attribute within the <node> element” ); generating a coordinate representation of the identified branch, the coordinate representation indicating a starting location for the identified branch in the directed graph, an ending location for the identified branch in the directed graph, and a number of vertices in the identified branch; and encoding the coordinate representation of the identified branch and sequence data for the identified branch into a respective stream of bytes(Brande, in page 521 discloses a Graph Markup Language (GraphML) that serializes (generation of graph structure/attributes in stream of bytes) a map structure where edges and nodes are constituents of any branch/path (first branch etc.) in a graph and which is applicable for any branch; Page 521 further discloses how “first coordinate” starting node “n0” is getting connected by edges “e0”, “e1”, “e2” etc. to the “ending coordinate” “n5” for forming a path as shown in the Figure 16.4 “"<graph id="G" edgedefault="undirected"><node id="n0"> <data key="d0">green</data></node><node id="n1"/><node id="n2"><data key="d0">blue</data></node>….<edge id="e0" source="n0" target="n2"><data key="d1">1.0</data></edge><edge id="e1" source="n0" target="n1">….<edge id="e6" source="n5" target="n4">”; here the examiner interprets in consistent with fig. 12 paragraph 0128-0130 of the instant application “coordinate” as relative position of nodes in a path; further, parsing above mentioned “node” & “edge” from GraphML schema relative position of each node in any path (first path) can be determined by a skilled artisan in the field of endeavor (“GraphML.py” source code listing from NetworkX project 2014) ).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of graph serialization with coordinates (conversion into stream of bytes) system of Brandes into graphical presentation of genomic sequences of Kaye, Ylonen and Takeki to produce an expected result of graph objects in serialized/text format. The modification would be obvious because one of ordinary skill in the art would be motivated to add graph application specific data flexibly by utilizing flexible extension mechanism (Brandes, page 1, line 10-13).
Regarding claim 40 (Previously Presented), Kaye, Ylonen, Takeki and Brandes teach all the limitations of claim 38 and Brandes further teaches wherein generating the coordinate representation of the identified branch comprises determining, for a first vertex included in the identified branch, one or more values including a first value indicative of a number of edges traversed to reach the first vertex (Brandes, in page 521 discloses a Graph Markup Language (GraphML) that serializes (presenting graph structure in stream of bytes) a map structure where edges and nodes are constituents of a branch/path in a graph. Page 521 further discloses how “first coordinate” starting node “n0” is getting connected by edges “e0”, “e1”, “e2” etc. to the “ending coordinate” “n5” for forming a branch/path as shown in the Figure 16.4 “"<graph id="G" edgedefault="undirected"><node id="n0"> <data key="d0">green</data></node><node id="n1"/><node id="n2"><data key="d0">blue</data></node>….<edge id="e0" source="n0" target="n2"><data key="d1">1.0</data></edge><edge id="e1" source="n0" target="n1">….<edge id="e6" source="n5" target="n4">”; further, parsing above mentioned “node” & “edge” from GraphML schema relative position of each node can be determined by a skilled artisan in the field of endeavor (“GraphML.py” source code listing from NetworkX project 2014, line 429~437) & number of edges can be expressed as an attribute element as discloses in page 518 of Brandes “where V is a set of nodes, E a multi-set containing directed and undirected edges, and D a set of data labels that are partial functions from..”; where Takeki in para 0012 teaches identifying a branch in a DAG).
Regarding claim 41 (Previously Presented), Kaye, Ylonen, Takeki and Brandes teach all the limitations of claim 40 and Brandes further teaches wherein at least one of the traversed edges comprises a branching point, and wherein determining the one or more values further comprises determining a second value indicating a branch of a set of branches at the branching point (Brandes, in page 521 discloses a Graph Markup Language (GraphML) that serializes (presenting graph structure in stream of bytes) a map structure where edges and nodes are constituents of a path in a graph. Page 521 further discloses how “first coordinate” starting node “n0” is getting connected by edges “e0”, “e1”, “e2” etc. to the “ending coordinate” “n5” for forming a branch/path as shown in the Figure 16.4 and further number of branch can be determined form number of edge initiating from a node where a node can be branching point “"<graph id="G" edgedefault="undirected"><node id="n0"> <data key="d0">green</data></node><node id="n1"/><node id="n2"><data key="d0">blue</data></node>….<edge id="e0" source="n0" target="n2"><data key="d1">1.0</data></edge><edge id="e1" source="n0" target="n1">….<edge id="e6" source="n5" target="n4">”; further, parsing above mentioned “node” & “edge” from GraphML schema relative position of each node can be determined by a skilled artisan in the field of endeavor (“GraphML.py” source code listing from NetworkX project 2014, line 429~437) & number of edges can be expressed as an attribute element as discloses in page 518 of Brandes “where V is a set of nodes, E a multi-set containing directed and undirected edges, and D a set of data labels that are partial functions from..”).
Claim 24, 34 and 39 are rejected under 35 U.S.C. 103 as being unpatentable over Ylonen, Tatu (PGPUB Document No. 20100191777), hereafter, referred to as “Ylonen”, in view of Kaye, Alice (PGPUB Document No. 20160342737), hereafter, referred to as “Kaye”, in view of Takeki, Naito (Japanese Patent Document No. JP 2004372059 A), hereafter, referred to as “Takeki”, in view of Brandes, Ulrik et al (Non Patent Literature “Graph Markup Language (GraphML)”, Published in 2010, ISBN 978-1-584-88412-5), hereafter, referred to as “Brandes”, in further view of Emmett, Phillip et al (PGPUB Document No. 20070150877), hereafter, referred to as “Emmett”.
Regarding claim 24 (Previously Presented), Ylonen, Kaye, Takeki and Brandes teach all the limitations of claim 23 but don’t explicitly teach wherein the directed graph encoded by the graph data structure comprises a directed acyclic graph (DAG).
However in the same field of endeavor of graph data analysis Emmett teaches wherein the directed graph encoded by the graph data structure comprises a directed acyclic graph (DAG) (Emmett, para 0140 discloses that a DAG graph data structure can be serialized into stream “It may also be noted that, from a data structure perspective, the disclosed method and system contemplate that the DFlow DAG may be serialized to an XML file”).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of Directed Acrylic Graph (DAG) serialization (conversion into stream of bytes) system of Emmett into graphical presentation of biological sequences of Ylonen, Kaye, Takeki and Brandes to produce an expected result of DAG objects in text format. The modification would be obvious because one of ordinary skill in the art would be motivated to utilize DAG within DAG (branch) feature for code re-use at the DAG level by having a useful DAG reused in a larger operation(Emmett, para 0007).
Regarding claim 34 (Previously Presented), Ylonen, Kaye, Takeki and Brandes teach all the limitations of claim 33 but don’t explicitly teach wherein the directed graph encoded by the graph data structure comprises a directed acyclic graph (DAG).
However in the same field of endeavor of graph data analysis Emmett teaches wherein the directed graph encoded by the graph data structure comprises a directed acyclic graph (DAG) (Emmett, para 0140 discloses that a DAG graph data structure can be serialized into stream “It may also be noted that, from a data structure perspective, the disclosed method and system contemplate that the DFlow DAG may be serialized to an XML file.”).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of Directed Acrylic Graph (DAG) serialization (conversion into stream of bytes) system of Emmett into graphical presentation of biological sequences of Ylonen, Kaye, Takeki and Brandes to produce an expected result of DAG objects in text format. The modification would be obvious because one of ordinary skill in the art would be motivated to utilize DAG within DAG (branch) feature for code re-use at the DAG level by having a useful DAG reused in a larger operation(Emmett, para 0007).
Regarding claim 39 (Previously Presented), Ylonen, Kaye, Takeki and Brandes teach all the limitations of claim 38 but don’t explicitly teach wherein the directed graph encoded by the graph data structure comprises a directed acyclic graph (DAG).
However in the same field of endeavor of graph data analysis Emmett teaches wherein the directed graph encoded by the graph data structure comprises a directed acyclic graph (DAG) (Emmett, para 0140 discloses that a DAG graph data structure can be serialized into stream “It may also be noted that, from a data structure perspective, the disclosed method and system contemplate that the DFlow DAG may be serialized to an XML file.”).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of Directed Acrylic Graph (DAG) serialization (conversion into stream of bytes) system of Emmett into graphical presentation of biological sequences of Ylonen, Kaye, Takeki and Brandes to produce an expected result of DAG objects in text format. The modification would be obvious because one of ordinary skill in the art would be motivated to utilize DAG within DAG (branch) feature for code re-use at the DAG level by having a useful DAG reused in a larger operation(Emmett, para 0007).
Claim 28, 37 and 42 are rejected under 35 U.S.C. 103 as being unpatentable over Ylonen, Tatu (PGPUB Document No. 20100191777), hereafter, referred to as “Ylonen”, in view of Kaye, Alice (PGPUB Document No. 20160342737), hereafter, referred to as “Kaye”, in view of Takeki, Naito (Japanese Patent Document No. JP 2004372059 A), hereafter, referred to as “Takeki”, in view of Brandes, Ulrik et al (Non Patent Literature “Graph Markup Language (GraphML)”, Published in 2010, ISBN 978-1-584-88412-5), hereafter, referred to as “Brandes”, in further view of Maim, Enrico (WIPO Document No. WO2001035269A2), hereafter, referred to as “Maim”.
Regarding claim 28 (Previously Presented), Ylonen, Kaye, Takeki and Brandes teach all the limitations of claim 23 and Brandes further teaches wherein encoding, into the respective stream of bytes, the coordinate representation of the identified branch and the sequence data for the identified branch comprises (Brandes, Page 521 further discloses how “first coordinate” starting node “n0” is getting connected by edges “e0”, “e1”, “e2” etc. to the “ending coordinate” “n5” for forming a path as shown in the Figure 16.4; where elements of a path (“nodes” and “edges”) holds their sequences about how they are connected sequentially “"<graph id="G" edgedefault="undirected"><node id="n0"> <data key="d0">green</data></node><node id="n1"/><node id="n2"><data key="d0">blue</data></node>….<edge id="e0" source="n0" target="n2"><data key="d1">1.0</data></edge><edge id="e1" source="n0" target="n1">….<edge id="e6" source="n5" target="n4">” ; where Kaye in para 0059 discloses that genome sequencing data is being encoded in their associated branches “A key concept underlying the invention is the generation of a graph model for a reference genome sequence uses nodes for transitions and edges for sequence. …. A full reference genome can be constructed using a graph in which edges represent sequences that are essentially lack variation, and are thus collapsed into a single edge representation”; where Takeki in para 0012 teaches identifying branch of a graph):
But Ylonen, Kaye, Takeki and Brandes don’t explicitly teach appending the coordinate representation for the identified branch to a first list; and appending the sequence data for the identified branch to a second list.
However in the same field of endeavor of data processing Maim teaches appending the coordinate representation for the identified branch to a first list; and appending the sequence data for the identified branch to a second list (Maim, page 2 para 8 and page 3 para 1 discloses having multiple data containers/list for holding data two different types of data sets “a first set of organized information comprising at least a first container and a plurality first information accessible via the or each first container, a second set of organized information comprising at least a second container and a plurality of second information accessible via the or each second container, means for establishing a correspondence between the or each first container; and a second said container, means for a user to add information in the first set of information, means for a user to add information in the second set of information, intercom means network between the first and second sets of information, these means being when adding information accessible via a first container, to suggest the same addition in the second corresponding container.”; Maim disclosure of having first & second containers for adding two different datasets can be used for adding/appending first coordinates & first path data sets to first & second containers respectively);
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of organization of data by putting them into different container of Maim into the genomic sequences in graph structure of Ylonen, Kaye, Takeki and Brandes to produce an expected result of organizing data by separating them into different containers. The modification would be obvious because one of ordinary skill in the art would be motivated to implement efficient data management by having information organized into different set of data in different list/container (Maim, page 6, Para 9).
Regarding claim 37(Previously Presented), Kaye, Ylonen, Takeki and Brandes teach all the limitations of claim 33 and Brandes further teaches wherein encoding, into the respective stream of bytes, the coordinate representation of the identified branch and the sequence data for the identified branch comprises (Brandes, Page 521 further discloses how “first coordinate” starting node “n0” is getting connected by edges “e0”, “e1”, “e2” etc. to the “ending coordinate” “n5” for forming a path/branch as shown in the Figure 16.4; where elements of a path (“nodes” and “edges”) holds their sequences about how they are connected sequentially “"<graph id="G" edgedefault="undirected"><node id="n0"> <data key="d0">green</data></node><node id="n1"/><node id="n2"><data key="d0">blue</data></node>….<edge id="e0" source="n0" target="n2"><data key="d1">1.0</data></edge><edge id="e1" source="n0" target="n1">….<edge id="e6" source="n5" target="n4">”; where Kaye in para 0059 discloses that genome sequencing data is being encoded in their associated branches “A key concept underlying the invention is the generation of a graph model for a reference genome sequence uses nodes for transitions and edges for sequence. …. A full reference genome can be constructed using a graph in which edges represent sequences that are essentially lack variation, and are thus collapsed into a single edge representation”; where Takeki in para 0012 teaches identifying branch of a graph):
But Kaye, Ylonen, Takeki and Brandes don’t explicitly teach appending the coordinate representation for the identified branch to a first list; and appending the sequence data for the identified branch to a second list.
However in the same field of endeavor of data processing Maim teaches appending the coordinate representation for the identified branch to a first list; and appending the sequence data for the identified branch to a second list (Maim, page 2 para 8 and page 3 para 1 discloses having multiple data containers/list for holding data two different types of data sets “a first set of organized information comprising at least a first container and a plurality first information accessible via the or each first container, a second set of organized information comprising at least a second container and a plurality of second information accessible via the or each second container, means for establishing a correspondence between the or each first container; and a second said container, means for a user to add information in the first set of information, means for a user to add information in the second set of information, intercom means network between the first and second sets of information, these means being when adding information accessible via a first container, to suggest the same addition in the second corresponding container.”; Maim disclosure of having first & second containers for adding two different datasets can be used for adding/appending first coordinates & first path data sets to first & second containers respectively);
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of organization of data by putting them into different container of Maim into the genomic sequences in graph structure of Kaye, Ylonen, Takeki and Brandes to produce an expected result of organizing data by separating them into different containers. The modification would be obvious because one of ordinary skill in the art would be motivated to implement efficient data management by having information organized into different set of data in different list/container (Maim, page 6, Para 9).
Regarding claim 42 (Previously Presented), Kaye, Ylonen, Takeki and Brandes teach all the limitations of claim 38 and Brandes further teaches wherein encoding, into the respective stream of bytes, the coordinate representation of the identified branch and the sequence data for the identified branch comprises (Brandes, Page 521 further discloses how “first coordinate” starting node “n0” is getting connected by edges “e0”, “e1”, “e2” etc. to the “ending coordinate” “n5” for forming a path/branch as shown in the Figure 16.4; where elements of a path (“nodes” and “edges”) holds their sequences about how they are connected sequentially “"<graph id="G" edgedefault="undirected"><node id="n0"> <data key="d0">green</data></node><node id="n1"/><node id="n2"><data key="d0">blue</data></node>….<edge id="e0" source="n0" target="n2"><data key="d1">1.0</data></edge><edge id="e1" source="n0" target="n1">….<edge id="e6" source="n5" target="n4">”; where Kaye in para 0059 discloses that genome sequencing data is being encoded in their associated branches “A key concept underlying the invention is the generation of a graph model for a reference genome sequence uses nodes for transitions and edges for sequence. …. A full reference genome can be constructed using a graph in which edges represent sequences that are essentially lack variation, and are thus collapsed into a single edge representation”; where Takeki in para 0012 teaches identifying branch of a graph):
But Kaye, Ylonen, Takeki and Brandes don’t explicitly teach appending the coordinate representation for the identified branch to a first list; and appending the sequence data for the identified branch to a second list.
However in the same field of endeavor of data processing Maim teaches appending the coordinate representation for the identified branch to a first list; and appending the sequence data for the identified branch to a second list (Maim, page 2 para 8 and page 3 para 1 discloses having multiple data containers/list for holding data two different types of data sets “a first set of organized information comprising at least a first container and a plurality first information accessible via the or each first container, a second set of organized information comprising at least a second container and a plurality of second information accessible via the or each second container, means for establishing a correspondence between the or each first container; and a second said container, means for a user to add information in the first set of information, means for a user to add information in the second set of information, intercom means network between the first and second sets of information, these means being when adding information accessible via a first container, to suggest the same addition in the second corresponding container.”; Maim disclosure of having first & second containers for adding two different datasets can be used for adding/appending first coordinates & first path data sets to first & second containers respectively);
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of organization of data by putting them into different container of Maim into the genomic sequences in graph structure of Kaye, Ylonen, Takeki and Brandes to produce an expected result of organizing data by separating them into different containers. The modification would be obvious because one of ordinary skill in the art would be motivated to implement efficient data management by having information organized into different set of data in different list/container (Maim, page 6, Para 9).
Claim 29-31, Cancelled.
Claim 32 is rejected under 35 U.S.C. 103 as being unpatentable over Ylonen, Tatu (PGPUB Document No. 20100191777), hereafter, referred to as “Ylonen”, in view of Kaye, Alice (PGPUB Document No. 20160342737), hereafter, referred to as “Kaye”, in view of Takeki, Naito (Japanese Patent Document No. JP 2004372059 A), hereafter, referred to as “Takeki”, in view of Brandes, Ulrik et al (Non Patent Literature “Graph Markup Language (GraphML)”, Published in 2010, ISBN 978-1-584-88412-5), hereafter, referred to as “Brandes”, in further view of Florendo, Colin et al (PGPUB Document No. 20160147748), hereafter, referred to as “Florendo”.
Regarding claim 32 (Previously Presented), Ylonen, Kaye, Takeki and Brandes teach all the limitations of claim 23 but don’t explicitly teach deserializing the serialized graph data structure at least in part by generating a second DAG data structure encoding a second directed graph comprising each identified branch corresponding to each of the multiple iterations and the sequence data for each identified branch corresponding to each of the multiple iterations.
However in the same field of endeavor of data serialization/de-serialization Florendo teaches deserializing the serialized graph data structure at least in part by generating a second DAG data structure encoding a second directed graph comprising each identified branch corresponding to each of the multiple iterations and the sequence data for each identified branch corresponding to each of the multiple iterations (Florendo, paragraph 0050 discloses de-serializing of serialized data into a DAG structure “The deserialization operations allow the previously serialized portion of the table data to be translated back into its original state—here, into the DAG format. Also at 345, the deserialized portions of the table data are added to the table container. As each of the deserialized portions are added in the proper sequence”).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of deserialization of DAG structure of Florendo into the genomic sequences in graph structure of Ylonen, Kaye, Takeki and Brandes to produce an expected result of making serialized objects presentable when needed. The modification would be obvious because one of ordinary skill in the art would be motivated to have data in a DAG form for faster data retrieval time by eliminating see time which needs fewer CPU instructions (Florendo, para 0003).
Claim 43-45 are rejected under 35 U.S.C. 103 as being unpatentable over Ylonen, Tatu (PGPUB Document No. 20100191777), hereafter, referred to as “Ylonen”, in view of Kaye, Alice (PGPUB Document No. 20160342737), hereafter, referred to as “Kaye”, in view of Takeki, Naito (Japanese Patent Document No. JP 2004372059 A), hereafter, referred to as “Takeki”, in view of Brandes, Ulrik et al (Non Patent Literature “Graph Markup Language (GraphML)”, Published in 2010, ISBN 978-1-584-88412-5), hereafter, referred to as “Brandes”, in further view of Ramakrishnan, Adarsh et al (PGPUB Document No. 20160004759), hereafter, referred to as “Ramakrishnan”.
Regarding claim 43 (Previously Presented), Ylonen, Kaye, Takeki and Brandes teach all the limitation of claim 23 and Brandes further teaches wherein the coordinate representation of the identified branch comprises a first value indicating the starting location for the identified branch in the directed graph, a second value indicating the ending location for the identified branch in the directed graph (Brandes, Page 521 further discloses how “first coordinate” starting node “n0” is getting connected by edges “e0”, “e1”, “e2” etc. to the “ending coordinate” “n5” for forming a path as shown in the Figure 16.4 “"<graph id="G" edgedefault="undirected"><node id="n0"> <data key="d0">green</data></node><node id="n1"/><node id="n2"><data key="d0">blue</data></node>….<edge id="e0" source="n0" target="n2"><data key="d1">1.0</data></edge><edge id="e1" source="n0" target="n1">….<edge id="e6" source="n5" target="n4">”),
But Ylonen, Kaye, Takeki and Brandes don’t explicitly teach and a third value indicating the number of vertices in the identified branch.
However in the same field of endeavor of having data in Graph structure Ramakrishnan teaches and a third value indicating the number of vertices in the identified branch (Ramakrishnan, para 0061 discloses number of vertices/nodes in branch is getting determined and which represents length or end location of a branch “This relationship is then broken down into a series of parent/child relationships between nodes, with branches being formed from the user defined root node, and the length and/or size (i.e., number of nodes) of the branch is determined 325. In embodiments, determining the length of the branch allows the visual medium to properly plot the branch from a user defined root to the user defined terminal node”; where Brandes teaches number of edges or nodes can be expressed as an attribute element/label as discloses in page 518 “where V is a set of nodes, E a multi-set containing directed and undirected edges, and D a set of data labels that are partial functions from..”; where Takeki in para 0012 discloses identification of branch).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of determining branch coordinators (start and end) information in a graph structure of Ramakrishnan into the feature of graphical presentation of biological/genomic sequences and then conversion into stream of bytes (graph serialization) of Ylonen, Kaye, Takeki and Brandes to produce an expected result of converting graph objects with their respective annotated coordinates in text format. The modification would be obvious because one of ordinary skill in the art would be motivated to utilize each branch length (number of vertices in a branch) for properly plotting them on graph by a user defined root to the user defined terminal node and thus allowing tracking metrices represented by branch length (Ramakrishnan, para 0061).
Regarding claim 44 (Previously Presented), Kaye, Ylonen, Takeki and Brandes teach all the limitation of claim 33 and Brandes further teaches wherein the coordinate representation of the identified branch comprises a first value indicating the starting location for the identified branch in the directed graph, a second value indicating the ending location for the-identified branch in the directed graph (Brandes, Page 521 further discloses how “first coordinate” starting node “n0” is getting connected by edges “e0”, “e1”, “e2” etc. to the “ending coordinate” “n5” for forming a path as shown in the Figure 16.4 “"<graph id="G" edgedefault="undirected"><node id="n0"> <data key="d0">green</data></node><node id="n1"/><node id="n2"><data key="d0">blue</data></node>….<edge id="e0" source="n0" target="n2"><data key="d1">1.0</data></edge><edge id="e1" source="n0" target="n1">….<edge id="e6" source="n5" target="n4">”),
But Kaye, Ylonen, Takeki and Brandes don’t explicitly teach and a third value indicating the number of vertices in the identified branch.
However in the same field of endeavor of having data in Graph structure Ramakrishnan teaches and a third value indicating the number of vertices in the identified branch (Ramakrishnan, para 0061 discloses number of vertices/nodes in branch is getting determined and which represents length or end location of a branch “This relationship is then broken down into a series of parent/child relationships between nodes, with branches being formed from the user defined root node, and the length and/or size (i.e., number of nodes) of the branch is determined 325. In embodiments, determining the length of the branch allows the visual medium to properly plot the branch from a user defined root to the user defined terminal node”; where Brandes teaches number of edges or nodes can be expressed as an attribute element/label as discloses in page 518 “where V is a set of nodes, E a multi-set containing directed and undirected edges, and D a set of data labels that are partial functions from..”; where Takeki in para 0061 discloses identification of branch).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of determining branch coordinators (start and end) information in a graph structure of Ramakrishnan into the feature of graphical presentation of biological/genomic sequences and then conversion into stream of bytes (graph serialization) of Kaye, Ylonen, Takeki and Brandes to produce an expected result of converting graph objects with their respective annotated coordinates in text format. The modification would be obvious because one of ordinary skill in the art would be motivated to utilize each branch length (number of vertices in a branch) for properly plotting them on graph by a user defined root to the user defined terminal node and thus allowing tracking metrices represented by branch length (Ramakrishnan, para 0061).
Regarding claim 45 (Previously Presented), Kaye, Ylonen, Takeki and Brandes teach all the limitation of claim 38 and Brandes further teaches wherein the coordinate representation of the identified branch comprises a first value indicating the starting location for the identified branch in the directed graph, a second value indicating the ending location for the identified branch in the directed graph (Brandes, Page 521 further discloses how “first coordinate” starting node “n0” is getting connected by edges “e0”, “e1”, “e2” etc. to the “ending coordinate” “n5” for forming a path as shown in the Figure 16.4 “"<graph id="G" edgedefault="undirected"><node id="n0"> <data key="d0">green</data></node><node id="n1"/><node id="n2"><data key="d0">blue</data></node>….<edge id="e0" source="n0" target="n2"><data key="d1">1.0</data></edge><edge id="e1" source="n0" target="n1">….<edge id="e6" source="n5" target="n4">”),
But Kaye, Ylonen, Takeki and Brandes don’t explicitly teach and a third value indicating the number of vertices in the identified branch.
However in the same field of endeavor of having data in Graph structure Ramakrishnan teaches and a third value indicating the number of vertices in the identified branch (Ramakrishnan, para 0061 discloses number of vertices/nodes in branch is getting determined and which represents length or end location of a branch “This relationship is then broken down into a series of parent/child relationships between nodes, with branches being formed from the user defined root node, and the length and/or size (i.e., number of nodes) of the branch is determined 325. In embodiments, determining the length of the branch allows the visual medium to properly plot the branch from a user defined root to the user defined terminal node”; where Brandes teaches number of edges or nodes can be expressed as an attribute element/label as discloses in page 518 “where V is a set of nodes, E a multi-set containing directed and undirected edges, and D a set of data labels that are partial functions from..”; where Takeki in para 0012 discloses identification of branch).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of determining branch coordinators (start and end) information in a graph structure of Ramakrishnan into the feature of graphical presentation of biological/genomic sequences and then conversion into stream of bytes (graph serialization) of Kaye, Ylonen, Takeki and Brandes to produce an expected result of converting graph objects with their respective annotated coordinates in text format. The modification would be obvious because one of ordinary skill in the art would be motivated to utilize each branch length (number of vertices in a branch) for properly plotting them on graph by a user defined root to the user defined terminal node and thus allowing tracking metrices represented by branch length (Ramakrishnan, para 0061).
Response to Arguments
35 U.S.C §103
The crux of the applicant arguments regarding amended independent claim 23, 33 and 38 presented in paragraph 2 of page 9 through paragraph 3 of page 11 is “Ylonen does not describe (i) identifying a branch comprising multiple vertices, much less (ii) encoding a coordinate representation of the identified branch comprising the multiple vertices, or (iii) removing, from further consideration, the identified branch comprising the multiple vertices. Rather, Ylonen explains that each iteration of the serialization process involves identifying and encoding a single object representing a single vertex of the object graph. Thus, Ylonen fails to describe at least the above-emphasized language of amended
independent claims 23, 33, and 38”.
Applicant’s above mentioned arguments have been fully considered but the examiner respectfully disagrees for following reasons;
Firstly, Takeki in para 0012 teaches identifying branch nodes/vertices in a directed acyclic graph as following “identifies branches of the acyclic directed graph in accordance with the node size, identifies nodes on these branches in order of connection, and aligns genes of the attributes of the identified nodes in sequence, thereby aligning the genes”; where Fig. 6 further teaches directed acyclic graph with multiple vertices/nodes.
Secondly, prior art Brande, in page 521 discloses a Graph Markup Language (GraphML) that serializes or encodes (generation of graph structure/attributes in stream of bytes) a graph/map structure where edges and nodes are constituents of any branch/path (first branch etc.) in a graph and which is equally applicable for any branch as well.
Thirdly, Ylonen in para 0050 and Fig. 2 disclose iteratively serialization of graph objects and element 202, 203 and 211 further disclose each object (identified branch) of graph is getting traversed for serialization until each object is considered in a graph and thus that suggests an object is considered for serialization for once so objects in a graph are not getting considered for the second time or being removed once serialized.
Therefore, the examiner maintains the prior art rejection to amended independent claim 23, 33 and 38.
No other arguments were presented for claims dependent on above mentioned independent claims. Thus the examiner maintains the rejection to claim 23-28 and 32-45 mailed on 5/22/2025.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ABDULLAH A DAUD whose telephone number is (469)295-9283. The examiner can normally be reached M~F: 9:30 am~6:30 pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Amy Ng can be reached at 571-270-1698. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/MARK E HERSHLEY/Primary Examiner, Art Unit 2164
/ABDULLAH A DAUD/Examiner, Art Unit 2164