Base calling method and related apparatus
By employing multiple distributed computing nodes for image data allocation and parallel computing in the base recognition system, the problems of low computing efficiency, high cost, and poor reliability of existing base recognition systems are solved, achieving efficient and flexible computing resource management and support for heterogeneous systems.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- MGI SHENZHEN SOFTWARE TECH CO LTD
- Filing Date
- 2024-12-06
- Publication Date
- 2026-06-09
Smart Images

Figure CN122176477A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of biological detection technology, specifically to a base identification method and related equipment. Background Technology
[0002] Existing base recognition systems typically integrate one or more cameras into a single processing node via data cables. This node then processes the data transmitted from the cameras (e.g., performing base calling calculations). While existing processing nodes often leverage the number of CPUs on a single server to increase computational power, the limited computing power of a single CPU and the limited number of CPUs integrated into a server result in low computational efficiency for existing base recognition systems. Summary of the Invention
[0003] In view of the above, it is necessary to provide a base identification method and related equipment to solve the technical problem of low computational efficiency of existing base identification systems.
[0004] In a first aspect, this application provides a base identification method, which is applied to a base identification system, the base identification system including a first node and at least one second node, the method including: the first node receiving image data; the first node allocating the image data to the at least one second node to obtain first image sub-data, and sending the first image sub-data to the at least one second node; the at least one second node performing calculations on the first image sub-data to obtain first base identification information.
[0005] In one embodiment of this application, the image data includes multiple fields of view (FOVs), and the first node assigns the image data to the at least one second node by: assigning each of the multiple FOVs to the corresponding second node; or dividing the multiple FOVs into at least one field of view data block according to the number of second nodes, and sequentially assigning the at least one field of view data block to one or more of the at least one second node.
[0006] In one embodiment of this application, the first node allocating the image data to the at least one second node includes: setting a weight for the at least one second node according to the user's operation, and allocating the plurality of FOVs to the corresponding second node based on the weight; or obtaining the computing power of the at least one second node, and allocating the plurality of FOVs to the corresponding second node according to the computing power of the at least one second node.
[0007] In one embodiment of this application, the first node allocating the image data to the at least one second node includes: determining whether a new second node has been detected connecting to the first node; if a new second node has been detected, determining the computing power of each second node; and allocating the plurality of FOVs to the corresponding second node according to the computing power of each second node.
[0008] In one embodiment of this application, the method further includes: the first node allocating the image data to the first node to obtain second image sub-data, wherein the second image sub-data and the first image sub-data constitute the image data; the first node performing calculations on the second image sub-data to obtain second base recognition information.
[0009] Secondly, this application provides a base recognition system, the system comprising: a first node, configured to receive image data, and to allocate the image data to at least one second node to obtain first image sub-data, and to send the first image sub-data to the second node; the at least one second node is configured to perform calculations on the first image sub-data to obtain first base recognition information.
[0010] In one embodiment of this application, the first node is further configured to: allocate the image data to the first node to obtain second image sub-data, wherein the second image sub-data and the first image sub-data constitute the image data; and perform calculations on the second image sub-data to obtain second base recognition information.
[0011] In one embodiment of this application, the first node sends the allocated first image sub-data to the at least one second node through a preset communication method, wherein the preset communication method includes a communication method using the Remote Direct Data Access (RDMA) protocol.
[0012] In one embodiment of this application, the first node is connected to the at least one second node via a switch, the first node is a Session Border Controller (SBC) or a server, and the second node is a microprocessor or a server.
[0013] Thirdly, this application provides an electronic device, which includes a memory and a processor: the memory is used to store program instructions; the processor is used to read and execute the program instructions stored in the memory, and when the program instructions are executed by the processor, the electronic device performs the above-described base recognition method.
[0014] Fourthly, this application provides a computer storage medium storing program instructions that, when executed on an electronic device, cause the electronic device to perform the aforementioned base recognition method.
[0015] This application uses multiple distributed computing nodes (such as second nodes) to perform base recognition on image data, which can reduce the cost of computing resources. As the number of computing nodes increases, the overall computing performance also increases. Since the second node processes the allocated image data, the amount of data processed by the second node is relatively small, which facilitates subsequent data transmission and data read / write operations between the second node and other external devices (such as bioinformatics servers). This application can also flexibly increase or decrease the number of second nodes to achieve dynamic allocation of computing resources and increase the overall reliability of the system. Furthermore, the computing environment of each second node can be flexibly configured as needed, and heterogeneous systems are supported. Attached Figure Description
[0016] Figure 1 This is a schematic diagram of the structure of an existing base recognition system.
[0017] Figure 2 This is a structural diagram of a base recognition system provided in an embodiment of this application.
[0018] Figure 3 This is a structural diagram of a base recognition system provided in another embodiment of this application.
[0019] Figure 4 This is a structural diagram of a base recognition system provided in another embodiment of this application.
[0020] Figure 5 This is a structural diagram of a base recognition system provided in another embodiment of this application.
[0021] Figure 6 This is a structural diagram of a base recognition system provided in another embodiment of this application.
[0022] Figure 7 This is a structural diagram of a base recognition system provided in another embodiment of this application.
[0023] Figure 8 This is a flowchart of a base recognition method provided in an embodiment of this application.
[0024] Figure 9 The diagram shows the structure of an electronic device provided in some embodiments of this application. Detailed Implementation
[0025] To better understand the above-mentioned objectives, features and advantages of this application, the application will be described in detail below with reference to the accompanying drawings and specific embodiments.
[0026] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein in the specification of this application is for the purpose of describing an embodiment in one instance only and is not intended to be limiting of the application.
[0027] It should be noted that the terms "first," "second," "third," "fourth," etc. (if present) in the specification, claims, and drawings of this application are used to distinguish similar objects, and not to describe a specific order or sequence. In the embodiments of this application, the words "exemplary" or "for example" are used to indicate that something is being described as an example, illustration, or description. Any embodiment or design described as "exemplary" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design solutions. Specifically, the use of words such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner.
[0028] It should also be noted that the methods disclosed in the embodiments of this application or the methods shown in the flowcharts include one or more steps for implementing the method. Without departing from the scope of the claims, the execution order of multiple steps can be interchanged, and some steps can also be deleted. Some embodiments will be described below with reference to the accompanying drawings. Unless otherwise specified, the following embodiments and features can be combined with each other.
[0029] Existing base identification schemes typically centralize one or more cameras via data cables to a single processing node. This node processes the data transmitted from the cameras, performing calculations such as base calling. For example, refer to... Figure 1 In (a), at least one camera is connected to a base calling computing device 12 via a Session Border Controller (SBC). The at least one camera sends acquired image data to the SBC 11, which then sends the received image data to the base calling computing device 12, which detects base sequences in the image data. For example, refer to... Figure 1 (b) At least one camera is directly connected to the base calling computing device 12. The at least one camera sends acquired image data to the base calling computing device 12, which detects the base sequence in the image data.
[0030] Base calling computing devices typically increase computing power based on the number of CPUs in a single server. However, the computing power of a single CPU and the number of CPUs integrated in a server are limited, resulting in the following drawbacks of existing base recognition schemes.
[0031] (1) Because the calculation is based on a single server, the existing base identification scheme requires high computing power from a single server and has low computing efficiency.
[0032] (2) Since the performance requirements of servers are exponentially related to their costs, as the computing requirements of servers become too high, the hardware costs no longer offer cost-effectiveness.
[0033] (3) Since the calculation is based on a single server, the data generated after the calculation is stored in a single file, resulting in a large workload for file storage and retrieval, which is not conducive to file transmission and bioinformatics analysis of the file.
[0034] (4) It does not support dynamic expansion of computing resources.
[0035] (5) The failure of a single server can easily lead to the paralysis of the entire computing task, resulting in low computing reliability.
[0036] (6) The operating system running on the base calling computing device, such as LINUX. TM WINDOWS TM It is definite and unique, which leads to poor compatibility of heterogeneous systems.
[0037] Example 1 In view of the aforementioned technical problems, this application provides a base recognition system. (Reference) Figure 2 The diagram shown is a structural diagram of a base recognition system provided in one embodiment of this application. The base recognition system includes a camera 10, a first node 20, a switch 30, and a second node 40. In some embodiments of this application, there are multiple cameras 10, first nodes 20, and second nodes 40. Each camera 10 is connected to one first node 20. In some embodiments of this application, each first node 20 can be connected to multiple cameras 10. Each first node 20 is connected to at least one second node 40 via a switch 30.
[0038] Camera 10 is used to acquire image data and send the acquired image data to the first node 20. The first node 20 allocates the image data to obtain image sub-data according to the second node 40, and sends each allocated image sub-data to at least one second node 40 through the switch 30. The second node 40 performs calculations on the image sub-data to obtain base identification information.
[0039] In some embodiments of this application, the first node 20 controls the camera 10 to take pictures of the target object to obtain image data. The image data can be images of animal or plant cells. The image data includes multiple fields of view (FOV). After the camera 10 acquires the image data, it sends the image data to the first node 20, and the first node 20 allocates the FOVs in the image data according to the second node 40.
[0040] In some embodiments of this application, the first node 20 sequentially sends each field of view (FOV) in the image data to the second node 40. The following example illustrates the specific implementation of the first node 20 allocating FOVs in the image data based on the second nodes 40, assuming the image data includes 1000 FOVs, and there are four second nodes 40, labeled as second node A, second node B, second node C, and second node D respectively.
[0041] Upon receiving image data, if the first node 20 detects the existence of four second nodes, it sends the first field of view (FOV) to second node A, the second FOV to second node B, the third FOV to second node C, the fourth FOV to second node D, and the fifth FOV back to second node A, and so on, completing the allocation of 1000 FOVs in sequence. It should be noted that in this application, the first node 20 sequentially sends the image data to the second nodes for computation, enabling parallel computation of the image data and improving computational efficiency.
[0042] In some embodiments of this application, the first node 20 divides the field of view (FOV) in the image data into field-of-view (FOV) data blocks according to the number of second nodes 40, and sends the FOV data blocks sequentially to the second nodes 40. For example, if the first node 20 detects the existence of four second nodes A, B, C, and D, it divides the FOV in the image data into four FOV data blocks equally according to the number of second nodes 10. These four FOV data blocks respectively include FOVs of 1-250, 251-500, 501-750, and 751-1000. The first node 20 sends the FOV data block consisting of FOVs of 1-250 to second node A, the FOV data block consisting of FOVs of 51-500 to second node B, the FOV data block consisting of FOVs of 501-750 to second node C, and the FOV data block consisting of FOVs of 751-1000 to second node D. In some embodiments of this application, if the FOV in the image data cannot be evenly divided, the FOVs that cannot be evenly divided can be assigned to a designated second node, such as second node A. It should be noted that in this application, the first node 20 allocates the field of view in the image data according to the number of second nodes to obtain field of view data blocks, and sends the allocated field of view data blocks to the second nodes for calculation and processing. Parallel calculation and processing can be performed according to the field of view data blocks, which improves the calculation efficiency.
[0043] In some embodiments of this application, the weight of the second node 40 can be set according to user operations. The first node 20 can allocate the field of view (FOV) in the image data according to the weight of the second node 40 to obtain the field of view data block corresponding to the second node 40, and send the field of view data block to the corresponding second node 40. In some embodiments of this application, the weight of the second node 40 can be set through a preset user interface or preset interface. For example, according to user operations, the weights of the second nodes A, B, C, and D can be set to 4:3:2:1 respectively through a preset user interface or preset interface. The first node 20 sends 400 FOVs in the image data to the second node A, 300 FOVs to the second node B, 200 FOVs to the second node C, and 100 FOVs to the second node D according to the set weights of the second node 40. It should be noted that in this application, the first node 20 allocates the field of view in the image data to the second node according to the set weights. This allows for dynamic adjustment of the field of view processed by the second node, further improving computational efficiency.
[0044] In some embodiments of this application, the first node 20 can acquire the computing power of the second node 40, allocate field of view (FOV) data blocks from the image data according to the computing power of the second node 40, and send the allocated FOV data blocks to the corresponding second node 40. For example, if the computing power ratio of the four second nodes A, B, C, and D acquired by the first node 20 is 3:3:3:1, the first node 20 sends 300 FOVs from the image data to the second node A, 300 FOVs from the image data to the second node B, 300 FOVs from the image data to the second node C, and 100 FOVs from the image data to the second node D according to the above computing power ratio.
[0045] In some embodiments of this application, after allocating the FOV in the previous image data according to the computing power ratio of 3:3:3:1, if the first node 20 detects that the computing power ratio of the four second nodes has changed to 3:3:1:3, a target computing power ratio will be determined based on the two detected computing power ratios. For example, the target computing power ratio is obtained by averaging the two detected computing power ratios of 3:3:3:1 and 3:3:1:3, and the FOV is allocated according to the target computing power ratio of 3:3:2:2.
[0046] It should be noted that in this application, the first node 20 allocates the field of view in the image data to the second node according to the computing power ratio, so as to maximize the use of the computing power resources of the second node for calculation.
[0047] In some embodiments of this application, the first node 20 further determines whether a new second node is connected to the first node 20. If a new second node is determined to be connected to the first node 20, the computing power of all second nodes 40 connected to the first node 20 is obtained, and the plurality of FOVs are allocated according to the computing power of each second node 40 to obtain the field of view data block corresponding to each second node 40, and the field of view data block is sent to the corresponding second node 40. For example, in the initial state, the first node 20 is connected to two fourth nodes (such as fourth nodes A and B). When the first node 20 detects that fourth nodes A and B are connected to the first node 20, it sends 500 FOVs in the image data to second node A and the remaining 500 FOVs in the image data to second node B. If the first node 20 detects that new second nodes C and D are connected to the first node 20, then when allocating the next image data, the first node 20 allocates the FOVs in the image data according to the computing power of second nodes A, B, C, and D. For example, based on the computing power of the second nodes A, B, C, and D, the first node 20 sends 250 FOVs from the image data to the second nodes A, B, C, and D respectively.
[0048] It should be noted that when this application detects a change in the number of second nodes 40, it dynamically allocates FOV according to the number of second nodes 40, thereby improving computational efficiency.
[0049] In some embodiments of this application, when the base recognition system is upgraded, if the computing resources of the base recognition system become a bottleneck and it is necessary to expand the computing resources of the base recognition system, a new second node can be directly added as a computing node in the base recognition system; if the computing resource requirements of the base recognition system are reduced, the second node can be directly deleted from the base recognition system.
[0050] It should be noted that when adding a new second node as a computing node in the base recognition system, it is necessary to determine whether the base recognition system supports different types of computing nodes. If it is determined that the base recognition system supports different types of computing nodes, then the different types of computing nodes are added to the base recognition system; if it is determined that the base recognition system does not support different types of computing nodes, then the computing node is adapted to the base recognition system, and after successful adaptation, the computing node is added to the base recognition system.
[0051] In some embodiments of this application, the second node 20 further determines whether a new second node is connected to the second node 40. If a new connected second node is detected, the second node 40 will also allocate the FOVs received from the first node 20 to the newly connected second node. For example, fourth nodes A and B each receive 500 FOVs from the first node 20. If fourth node A detects that fourth node C is connected to fourth node A, it allocates a first preset number of FOVs from the received 500 FOVs to fourth node C for calculation processing. If fourth node B detects that fourth node D is connected to fourth node B, it allocates a second preset number of FOVs from the received 500 FOVs to fourth node D for calculation processing. The first preset number can be determined based on the computing power of fourth node C, and the second preset number can be determined based on the computing power of fourth node D.
[0052] In some embodiments of this application, the first node 20 is used to receive image data from the camera 10, and the second node 20, as a computing node, performs calculations on the image data sent by the first node to obtain base identification information, and obtains a FASTA format sequence file based on the base identification information. The FASTQ file includes a series of sequence records, each of which includes a sequence identifier, a base sequence, a separator, and a quality score corresponding to the base sequence.
[0053] In some embodiments of this application, the first node 20 can acquire image data from multiple cameras 10, and logically synchronize the image data and distribute it to the second node 40 for computation processing according to computational needs. If the first node 20 only acquires image data from one camera, then the first node 20 does not need to process the image data from other cameras 10.
[0054] In some embodiments of this application, the first node 20 may be a device from a different system, such as an ARM system. TM Windows system TM Linux system TM Or HarmonyOS TM .
[0055] The second node 40 can be a computer, tablet computer, server, or server cluster. In some embodiments of this application, the second node 40 can be a distributed node, which refers to a server or a process running on a server as a node in a distributed system.
[0056] In some embodiments of this application, the first node 20 sends image data to the second node 40 via Transmission Control Protocol (TCP) or Remote Direct Memory Access (RDMA) protocol. Upon receiving the image data, the second node 40 converts the RDMA-formatted image data into Internet Communications Engine (ICE) format data and identifies the base sequences in the ICE-formatted image data. It should be noted that when sending image data using the RDMA protocol, the image data can be compressed to reduce transmission bandwidth pressure.
[0057] Compared to existing technical solutions that use a single server's CPU to calculate bases, this invention uses multiple computing nodes (such as a second node) for distributed computing to perform base sequencing and identification. The computing nodes used for distributed computing have the following advantages.
[0058] (1) Each computing node is an independent server and processes image data in parallel, which can improve the computing speed of image data and distribute the pressure on disks and other hardware input / output interfaces (I / O). The use of hardware devices such as hard drives in distributed computing nodes is independent, and computing nodes can be added or removed as needed, which helps to reduce the configuration requirements of a single server and increase the upper limit of computing power.
[0059] (2) Based on the exponential relationship between server performance and cost, the higher the server performance, the higher the cost. Therefore, by stacking low-cost servers as computing nodes, the cost can be reduced while meeting the computing performance requirements.
[0060] (3) Because the computing node processes the segmented image data, the amount of data generated by the disk in the node is small, which facilitates subsequent data transmission and data reading and writing operations with other external devices (such as bioinformatics servers).
[0061] (4) The computing nodes used for distributed computing are equal, so the addition and reduction of computing nodes will not affect other computing nodes, and it is easy to expand and reduce computing nodes, as well as easy to allocate computing resources.
[0062] (5) Due to the non-influence of each computing node, the failure of one computing node will not affect the entire base recognition system, and the computing tasks of the failed computing node can be dynamically distributed to other computing nodes.
[0063] (6) Since the environmental requirements of each computing node are independent, the computing environment of each computing node can be flexibly configured as needed. For example, the computing node can be configured as an ARM system. TM Windows system TM Linux system TM Or HarmonyOS TM .
[0064] This application's base recognition system performs base recognition on image data through multiple distributed computing nodes (such as second nodes), which can reduce the cost of computing resources, and the overall computing performance will increase as the number of computing nodes increases. Since the computing nodes process the allocated image data, the amount of data processed by the computing nodes is relatively small, which facilitates subsequent data transmission and data read / write operations between the second nodes and other external devices (such as bioinformatics servers). This application allows for flexible addition or reduction of computing nodes, realizing dynamic allocation of computing resources and increasing the overall reliability of the system. The computing environment of each computing node can be flexibly configured as needed, and it supports heterogeneous systems.
[0065] Example 2 refer to Figure 3 The diagram shown is a structural diagram of a base recognition system provided in another embodiment of this application. The base recognition system includes a camera 10, a first node 20, a switch 30, and a second node 40. There are multiple cameras 10 and second nodes 40. There is only one first node 20 and one switch 30. Each camera 10 is connected to the first node 20, and the first node 20 is connected to each second node 40 via the switch 30.
[0066] Camera 10 is used to acquire image data and send the acquired image data to the first node 20. The first node 20 allocates the image data according to the second node 40 to obtain image sub-data, and sends each allocated image sub-data to at least one second node 40 through switch 30. The second node 40 performs calculations on the image sub-data to obtain base identification information.
[0067] In some embodiments of this application, the first node 20 receives image data sent by all cameras 10, allocates the image data according to the second node 40 to obtain image sub-data, and sends each allocated image sub-data to at least one second node 4 through the switch 30. The specific implementation details of allocating image data according to the second node 40 to obtain image sub-data and sending each allocated image sub-data to at least one second node 4 through the switch 30 can be found in [reference needed]. Figure 2 The content of the illustrated embodiment.
[0068] In the embodiments of this application, the second node 40 can be an ARM system. TM Windows system TM Linux system TM Or HarmonyOS TM Equipment such as servers, microcomputers, and computers.
[0069] In embodiments of this application, the first node 20 can also serve as a computing node. After acquiring image data from the camera 10, the first node 20, in addition to allocating the allocated image sub-data to the second node 40 for computation, also allocates a portion of the image sub-data to the first node 20. The first node 20 performs computation on the allocated image sub-data to obtain the corresponding base identification information.
[0070] Existing base recognition systems require the development of servers for base call calculations, depending on the specific needs of the nodes. Newly developed servers are often expensive, and due to their limited internal space and potentially irregular shapes, existing server motherboards cannot meet the spatial design requirements of base recognition systems, resulting in poor reliability. (Reference) Figure 4 As shown below, the first and second nodes are Intel. TM Taking a NUC microcomputer as an example, and a switch as a router, this application introduces the base identification system. For ease of description, the NUC microcomputer corresponding to the first node is referred to as the first NUC microcomputer, and the NUC microcomputer corresponding to the second node is referred to as the second NUC microcomputer. Since the base identification system in this embodiment uses multiple distributed NUC microcomputers as computing nodes to perform base sequencing calculations, it can solve the problems of high cost, small space, and poor reliability of existing base identification systems.
[0071] refer to Figure 4 As shown, the base recognition system includes two cameras 201, a first NUC microcomputer 202, a router 203, and two second NUC microcomputers 204. Each camera 10 is connected to the first NUC microcomputer 202, and the first NUC microcomputer 202 is connected to the two second NUC microcomputers 204 via the router 203. The first NUC microcomputer 202 is also connected to other external devices such as a motherboard. The camera 201 sends the acquired image data to the first NUC microcomputer 202. After acquiring the image data, the first NUC microcomputer 202 can allocate the image data according to the configuration of the first NUC microcomputer 202 and the second NUC microcomputers 204.
[0072] For example, the camera sequentially sends 65 FOVs to the first NUC microcomputer 202. The first NUC microcomputer 202 then sends the first 20 FOVs from the received image data to another NUC microcomputer 204, the next 20 FOVs to one of two second NUC microcomputers, and the remaining 25 FOVs to the other second NUC microcomputer. The first NUC microcomputer 202 and the two second NUC microcomputers 204 process the received FOVs to obtain base identification information.
[0073] It should be noted that, compared with embodiment 1, embodiment 2 of this application can distribute image data to computing nodes for computation through only one first node 20, which can reduce the overhead of hardware resources.
[0074] Example 3 refer to Figure 5 The diagram shown is a structural diagram of a base recognition system provided in another embodiment of this application. The base recognition system includes a camera 10, a first node 20, and a second node 40. There are multiple cameras 10 and second nodes 40. There is a single first node 20. Each camera 10 is connected to a first node 20, and each first node 20 is connected to a second node 40.
[0075] In the embodiments of this application, each camera 10 acquires image data and sends the acquired image data to a first node 20. The first node 20 receives the image data sent by each camera 10, allocates the image data according to the second node 40 to obtain image sub-data, and sends each allocated image sub-data to at least one second node 40 via a switch 30. The second node 40 performs calculations on the image sub-data to obtain base identification information.
[0076] In embodiments of this application, the first node 20 can also serve as a computing node. After acquiring image data from the camera 10, the first node 20, in addition to allocating the allocated image sub-data to the second node 40 for computation, also allocates a portion of the image sub-data to the first node 20. The first node 20 performs computation on the allocated image sub-data to obtain the corresponding base identification information.
[0077] Compared to embodiment 2, in embodiment 3 of this application, the first node 20 can be directly connected to each of the second nodes 40 without the need to connect to the second nodes 40 through a switch, thereby further reducing the overhead of hardware resources.
[0078] Example 4 refer to Figure 6 The diagram shown is a structural diagram of a base recognition system provided in another embodiment of this application. The base recognition system includes a camera 10 and multiple first nodes 20. Each camera 10 is connected to at least one first node 20. Each first node 20 is connected to other first nodes 20 in the base recognition system. The camera 10 is used to acquire image data and send the acquired image data to the first nodes 20. The first nodes 20 allocate the image data to obtain image sub-data and send the image sub-data to other first nodes 20. Each first node 20 calculates the received image sub-data to obtain base recognition information.
[0079] Compared to embodiment 3, in embodiment 4 of this application, the first node 20 can be directly connected to other first nodes 20, and each first node 20 can be used as a computing node to calculate the image sub-data to obtain base recognition information, thereby further reducing the hardware resource overhead of the base recognition system.
[0080] Example 5 In some embodiments of this application, the base recognition system may also use a server as a computing node. (See reference...) Figure 7 The diagram shown is a structural diagram of a base recognition system provided in another embodiment of this application. The base recognition system includes a camera 10, a first node 20, a second node 40, a third node 50, and an external device 60. There are multiple cameras 10, second nodes 40, and external devices 60. Each camera 10 is connected to the first node 20. The first node 20 is connected to each second node 40 and each third node 50. One of the multiple cameras 10 is connected to the external device 60, and each external device is connected to the third node 50. In this embodiment, the external device 60 can be a motherboard, the first node 20 and second node 40 can be servers, and the third node 50 can be a microcomputer.
[0081] The third node 50 interacts with the user and controls the various devices in the base recognition system to operate according to their respective business logic. The first node 20 receives image data from each camera 10, allocates the image data to obtain image sub-data, and sends the image sub-data to the second node 40. The first node 20 is also used to receive data information sent by the third node 50. The second node receives the image sub-data sent by the camera 10 and calculates base recognition information based on the data information sent by the third node 40. In embodiments of this application, the data information includes DNA sequences or RNA sequences and the weights of the second node.
[0082] In this embodiment, the first node 20 can send data information to the second node 40 via the TCP / IP protocol. In other embodiments of this application, the first node 20 can send image sub-data to the second node 40 via the RDMA protocol.
[0083] refer to Figure 8 The diagram shown is a flowchart of the base recognition method provided in the embodiments of this application. Figure 8 The example method includes one or more steps, but does not constitute a limitation of this application. Furthermore, the order of the steps in the method is merely illustrative and may be changed. Additional steps may be added or steps may be removed without departing from the disclosure of this application. The base recognition method is applied in a base recognition system. The method includes the following steps.
[0084] Step S801: The first node receives image data.
[0085] In some embodiments of this application, the first node may receive image data acquired by the image acquisition or receive image data sent by the user through an external device.
[0086] In step S802, the first node allocates image data to the second node, obtains image sub-data, and sends the image sub-data to at least one second node.
[0087] In some embodiments of this application, a first node controls a camera to take a picture of the target object to obtain image data. The first node obtains image sub-data based on the image data allocated by a second node, and sends the image sub-data to at least one second node via a switch. The image data can be cell images of animals or plants. The image data includes multiple fields of view (FOV).
[0088] In some embodiments of this application, the first node sequentially sends each FOV in the image data to each second node, so that each second node performs calculation processing on each received FOV, which can realize parallel calculation processing of image data and improve calculation efficiency.
[0089] In some embodiments of this application, the first node divides the FOV in the image data into field of view data blocks according to the number of second nodes, and sends the field of view data blocks to the second nodes in sequence.
[0090] In some embodiments of this application, the weight of the second node can be set according to the user's operation. The first node can allocate the FOV in the image data according to the weight of the second node, obtain the field of view data block corresponding to the second node, and send the field of view data block to the corresponding second node.
[0091] In some embodiments of this application, the first node can acquire the computing power of the second node, allocate the field of view in the image data according to the computing power of the second node to obtain field of view data blocks, and send the allocated field of view data blocks to the corresponding second node. It should be noted that in this application, the first node allocates the field of view in the image data to the second node according to the computing power ratio, thus maximizing the utilization of the computing power resources of the second node for calculation.
[0092] In some embodiments of this application, the first node further determines whether a new second node has connected to it. If a new second node is found to be connected to the first node, the computing power of all second nodes connected to the first node is obtained, and the multiple Field of Views (FOVs) are allocated according to the computing power of each second node to obtain the field of view data block corresponding to each second node, and the field of view data block is sent to the corresponding second node. It should be noted that when a change in the number of second nodes is detected, this application dynamically allocates FOVs according to the number of second nodes, thereby improving computational efficiency.
[0093] In some embodiments of this application, when the base recognition system is upgraded, if the computing resources of the base recognition system become a bottleneck and it is necessary to expand the computing resources of the base recognition system, a new second node can be directly added as a computing node in the base recognition system; if the computing resource requirements of the base recognition system are reduced, the second node can be directly deleted from the base recognition system.
[0094] It should be noted that when adding a new second node as a computing node in the base recognition system, it is necessary to determine whether the base recognition system supports different types of computing nodes. If it is determined that the base recognition system supports different types of computing nodes, then the different types of computing nodes are added to the base recognition system; if it is determined that the base recognition system does not support different types of computing nodes, then the computing node is adapted to the base recognition system, and after successful adaptation, the computing node is added to the base recognition system.
[0095] In some embodiments of this application, the second node also determines whether there is a new second node connected to the second node. If a new second node is detected, the second node will also allocate the FOV received from the first node to the newly connected second node.
[0096] In some embodiments of this application, the first node can acquire image data from multiple cameras, and logically synchronize the image data as needed before sending it to the second node for computation. If the first node acquires image data from only one camera, then the first node does not need to process image data from other cameras.
[0097] In some embodiments of this application, the first node may be a device from a different system, such as an ARM system. TM Windows system TM Linux system TM Or HarmonyOS TM The second node can be a computer, tablet computer, server, or server cluster. In some embodiments of this application, the second node can be a distributed node, which refers to a server or a process running on a server as a node in a distributed system.
[0098] In some embodiments of this application, the first node sends image data to the second node via TCP or RDMA protocol. Upon receiving the image data, the second node converts the RDMA-formatted image data into ICE-formatted data and identifies the base sequences in the ICE-formatted image data. It should be noted that when using the RDMA protocol to send image data, the image data can be compressed to reduce transmission bandwidth pressure.
[0099] In step S803, at least one second node calculates base identification information based on the base pair image sub-data.
[0100] In some embodiments of this application, the second node calculates the image sub-data according to the base calling algorithm to determine the type (A, T, C, G) of each base and obtain base identification information.
[0101] In some embodiments of this application, the method further includes: obtaining a FASTA format sequence file based on base identification information, wherein the FASTQ file includes a series of sequence records, each sequence record including a sequence identifier, a base sequence, a separator, and a quality score corresponding to the base sequence.
[0102] Please refer to Figure 9The diagram shown is a structural schematic of an electronic device provided in some embodiments of this application. The electronic device 90 may include at least one memory 91, a processor 92, and a communication unit 93. The memory 91 includes a computer-readable storage medium for storing multiple logical instructions. The communication unit 93 is used to communicate with the electronic device 90 or a server. The processor 92 can execute the logical instructions to perform the aforementioned base recognition method. Specifically, the electronic device 90 may be the first node or the second node described above, and this application does not limit its scope.
[0103] It is understood that in some embodiments, the communication unit 93 includes modules with communication functions such as network modules, and this application does not limit this.
[0104] The logical instructions in the aforementioned computer-readable storage medium can be implemented in the form of software functional units and, when sold or used as independent products, can be stored in a computer-readable storage medium.
[0105] The computer-readable storage medium can be configured to store software programs or computer-executable programs, such as the program instructions corresponding to the base recognition method in the embodiments of this application. The processor 92 executes functional applications and image processing by running the software programs, instructions, or modules stored in the computer-readable storage medium, thereby implementing the base recognition method in the above embodiments.
[0106] In embodiments of this application, the computer-readable storage medium includes non-volatile computer-readable storage media, such as disks, memory, etc. It is understood that the computer-readable storage medium may also include other non-volatile computer-readable storage media, such as plug-in hard disks, smart media cards (SMCs), secure digital (SD) cards, flash cards, at least one flash memory device, and / or other non-volatile solid-state storage devices.
[0107] In this embodiment, the processor 92 may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The processor 92 is the control center of the electronic device 90, and can connect to other external devices and / or systems / modules / units using various interfaces and lines to provide base sequencing functionality to the applications of other external devices and / or systems / modules / units.
[0108] This embodiment also provides a computer program product that, when run on a computer, causes the computer to perform the aforementioned steps to implement the base recognition method in the above embodiment.
[0109] In this embodiment, the base recognition system, electronic device, computer storage medium, computer program product or chip are all used to execute the corresponding methods provided above. Therefore, the beneficial effects that can be achieved can be referred to the beneficial effects of the corresponding methods provided above, and will not be repeated here.
[0110] Through the above description of the embodiments, those skilled in the art can clearly understand that, for the sake of convenience and brevity, only the division of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above.
[0111] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative. For instance, the division of modules or units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another device, or some features may be ignored or not executed. Furthermore, the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between devices or units may be electrical, mechanical, or other forms.
[0112] The unit described as a separate component may or may not be physically separate. The component shown as a unit can be one physical unit or multiple physical units, that is, it can be located in one place or distributed in multiple different places. Some or all of the units can be selected to achieve the purpose of the solution in this embodiment according to actual needs.
[0113] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0114] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a readable storage medium. Based on this understanding, the technical solutions of the embodiments of this application, essentially or in other words, the parts that contribute to the prior art, or all or part of the technical solutions, can be embodied in the form of a software product. This software product is stored in a storage medium and includes several instructions to cause a device (which may be a microcontroller, chip, etc.) or processor to execute all or part of the steps of the methods of the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0115] The above embodiments are only used to illustrate the technical solutions of this application and are not intended to limit it. Although this application has been described in detail with reference to the above preferred embodiments, those skilled in the art should understand that modifications or equivalent substitutions to the technical solutions of this application should not depart from the spirit and scope of the technical solutions of this application.
Claims
1. A base recognition method, characterized in that, The method is applied to a base recognition system, the base recognition system including a first node and at least one second node, the method comprising: The first node receives image data; The first node allocates the image data to the at least one second node, obtains first image sub-data, and sends the first image sub-data to the at least one second node; The at least one second node performs calculations on the first image sub-data to obtain the first base identification information.
2. The base recognition method as described in claim 1, wherein the image data includes multiple fields of view (FOV), characterized in that, The first node assigns the image data to the at least one second node, including: Assign each of the plurality of FOVs to the corresponding second node; or Based on the number of the second nodes, the plurality of FOVs are divided into at least one field of view data block, and the at least one field of view data block is sequentially assigned to one or more of the at least one second node.
3. The base recognition method as described in claim 1, wherein the image data includes multiple fields of view (FOV), characterized in that, The first node assigns the image data to the at least one second node, including: Weights are assigned to at least one second node based on user actions, and the plurality of fields of view (FOVs) are allocated to the corresponding second nodes based on these weights; or The computing power of the at least one second node is obtained, and the plurality of FOVs are allocated to the corresponding second nodes according to the computing power of the at least one second node.
4. The base recognition method as described in claim 1, wherein the image data includes multiple fields of view (FOV), characterized in that, The first node assigns the image data to the at least one second node, including: Determine whether a new second node has been detected connecting to the first node; If a new second node is connected, determine the computing power of each second node; The multiple FOVs are allocated to the corresponding second nodes based on the computing power of each second node.
5. The base recognition method as described in claim 1, characterized in that, The method further includes: The first node allocates the image data to itself to obtain the second image sub-data, wherein the second image sub-data and the first image sub-data constitute the image data; The first node performs calculations on the second image sub-data to obtain the second base identification information.
6. A base recognition system, characterized in that, The system includes: The first node is used to receive image data, allocate the image data to at least one second node, obtain first image sub-data, and send the first image sub-data to the second node; The at least one second node is used to calculate the first image sub-data to obtain the first base identification information.
7. The base recognition system as described in claim 6, characterized in that, The first node is also used for: The image data is allocated to the first node to obtain the second image sub-data, wherein the second image sub-data and the first image sub-data constitute the image data; The second image sub-data is calculated to obtain the second base identification information.
8. The base recognition system as described in claim 6, characterized in that, The first node sends the allocated first image sub-data to the at least one second node through a preset communication method, wherein the preset communication method includes a communication method using the Remote Direct Data Access (RDMA) protocol.
9. The base recognition system as described in claim 6, characterized in that, The first node is connected to the at least one second node via a switch. The first node is a Session Border Controller (SBC) or a server, and the second node is a microprocessor or a server.
10. An electronic device, characterized in that, The electronic device includes a memory and a processor: The memory is used to store program instructions; The processor is configured to read and execute the program instructions stored in the memory, and when the program instructions are executed by the processor, the electronic device performs the base recognition method as described in any one of claims 1 to 5.
11. A computer storage medium, characterized in that, The computer storage medium stores program instructions that, when executed on an electronic device, cause the electronic device to perform the base recognition method as described in any one of claims 1 to 5.