A method and system for interactive 3D visualization of cryo-em data

CN116863112BActive Publication Date: 2026-10-13SHANDONG UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310827997.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-07-06
Publication Date
2026-10-13
Estimated Expiration
2043-07-06

AI Technical Summary

Technical Problem

例如3dmod在创建以及修改模型数据的操作流程繁琐、大部分功能被折叠到不易发现的次级目录中、部分功能(例如启动软件)仍需要通过命令行来使用

Benefits of technology

[0035]本发明查看特定截面的断层扫描数据、对图像进行标注,并在3D视图中进行观察。此外,本发明支持全图形化的用户交互,提供直观、高效的操作界面。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116863112B_ABST
    Figure CN116863112B_ABST
Patent Text Reader

Abstract

The application provides a method and system for interactive three-dimensional visualization of cryo-EM data, which converts cryo-EM data into a three-dimensional array, maps the values in the array to a predetermined gray value range, determines a cutting plane by the point method, determines the position of the cutting plane according to the projection area on each plane, projects the intersection of the cutting plane and the three-dimensional array onto the plane, and displays the projection plane; in response to a user's modification instruction for the point method of the cutting plane, obtains different cross sections, and associates and displays the cutting plane and the three-dimensional array in the three-dimensional space; in response to a user's input instruction, draws a corresponding graph at a specified point in the instruction according to the input instruction to mark a specific area; and in response to a user's object creation instruction, creates the vertex of an object at a corresponding position according to the instruction, and draws or modifies the object according to the drawing strategy in the instruction based on the vertex. The application can improve the processing efficiency of cryo-EM data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of biological image processing technology, and relates to an interactive three-dimensional visualization method and system for cryo-electron microscopy data. Background Technology

[0002] The statements in this section are merely background information related to the present invention and do not necessarily constitute prior art.

[0003] With the continuous development of science and technology, cryo-electron microscopy is being used more and more widely in the field of biology. Cryo-electron microscopy can be used to study the structure and function of biological macromolecules, such as proteins and nucleic acids. However, the processing and analysis of cryo-electron microscopy data is a complex process.

[0004] Some specialized software in this field still has issues with user interaction. For example, 3dmod has a cumbersome process for creating and modifying model data, most functions are folded into hard-to-find subdirectories, and some functions (such as starting the software) still need to be used via the command line. Summary of the Invention

[0005] To address the aforementioned problems, this invention proposes an interactive three-dimensional visualization method and system for cryo-electron microscopy data, which can improve the efficiency of cryo-electron microscopy data processing and analysis.

[0006] According to some embodiments, the present invention adopts the following technical solution:

[0007] An interactive three-dimensional visualization method for cryo-electron microscopy data includes the following steps:

[0008] The cryo-electron microscopy data is converted into a three-dimensional array, and the values ​​in the array are mapped to a predetermined grayscale range. The cutting plane is determined by the point method, and the position of the cutting plane is determined according to the projected area on each plane. The cross section after the intersection of the cutting plane and the three-dimensional array is projected onto the plane, and the projected plane is displayed.

[0009] In response to the user's command to modify the point method of the cutting plane to obtain different cross sections, the cutting plane and the three-dimensional array are associated and displayed in three-dimensional space;

[0010] In response to user input commands, draw corresponding graphics at the specified points in the commands to mark specific areas;

[0011] In response to the user's object creation command, the object's vertices are created at the corresponding locations according to the command. Based on the vertices, the object is drawn or modified according to the drawing strategy in the command.

[0012] As an alternative implementation, the specific process of converting cryo-electron microscopy data into a three-dimensional array includes reading the cryo-electron microscopy data, converting the data into a format, and converting the three-dimensional array therein into a predetermined format.

[0013] Get the shape of the 3D array and write the first N bytes to the output file;

[0014] Determine the minimum and maximum values ​​in the three-dimensional array, scale the array, convert the scaled array into multi-digit unsigned integers in row-major order, and write them sequentially after the subsequent bytes of the output file.

[0015] As an alternative implementation, the specific process of obtaining different cross-sections in response to a user's instruction to modify the point method of the cutting plane includes:

[0016] Define the cutting plane using point a(x,y,z) and normal vector n. Obtain θ1, θ2, and θ3 from the modification command, and rotate the normal vector around the x-axis, y-axis, and x-axis by θ1, θ2, and θ3 degrees respectively. Based on the adjusted point a and normal vector n, calculate the point normal equation of the cutting plane, and calculate the projection of normal vector n onto the xy plane, xz plane, and yz plane.

[0017] The projection of the normal vector onto a certain plane is minimized. Iterate through all the values ​​of the relevant coordinate axes of the plane and substitute them into the point normal equation to calculate the value of the other coordinate axis. If the obtained value is within the range of the three-dimensional array, the point (x, y, z) is considered valid, and the value of the point is assigned to the pixel (x, z) of the output image. Process the other two directions in turn, and rotate the schematic diagram of the cutting plane according to the angles θ1, θ2, and θ3.

[0018] As an alternative implementation, the specific process of drawing a corresponding graphic at a specified point in response to a user's input instruction to mark a specific area includes obtaining the user's input instruction, determining the starting point and / or ending point of the graphic based on the coordinate position in the input instruction, and drawing the corresponding graphic based on the shape in the input instruction, with the determined starting point and / or ending point as constraints.

[0019] As an alternative implementation, the object drawing strategy includes whether to close the polylines of each layer, whether to draw vertices, whether to draw the edges connecting the vertices, whether to draw the edges enclosed, and the colors of each part of the object.

[0020] As a further defined implementation, the process of drawing an unclosed object includes, for each polyline created on the xy plane, taking points alternately from the polylines of two adjacent planes to form the vertices of a triangle. Assuming the two polylines are l1 and l2, two pointers are used to point to the starting positions of l1 and l2 respectively. A point is taken from l1, then a point is taken from l2. The two pointers are then moved one position to the right, and a point is taken from l1 again, then a point is taken from l2 again, and so on, stopping when one of the pointers reaches the end.

[0021] The retrieved points are stored in the first array. If a polyline reaches the end, both pointers are moved forward one position. The vertex at the current position of the pointer of the polyline that has reached the end is placed at the beginning of the second array. All vertices from the current position to the end of the pointer of the first array are placed after the pointer of the second array.

[0022] The first array is drawn using the GL_TRIANGLE_STRIP method, and the second array is drawn using the GL_TRIANGLE_FAN method. For the bottom and top surfaces, the bottom polyline and the top polyline are drawn using the GL_TRIANGLE_STRIP method.

[0023] As a further defined implementation, the process of drawing a closed object includes drawing each layer first using GL_TRIANGLE_STRIP;

[0024] For a layer with one point remaining and another layer with many points remaining, match the remaining points of the longer line with the beginning of the shorter line one by one until all the remaining points of the longer line are used up. Then, the end of the longer line, the beginning of the longer line, and the last point of the shorter line that was matched earlier form a triangle.

[0025] For the bottom and top surfaces, draw the bottommost polyline and the topmost polyline using the GL_TRIANGLE_FAN method.

[0026] As a further defined implementation, the process of drawing the edges between vertices includes, for each polyline created in the xy plane, taking points alternately from the polylines of two adjacent planes to form the vertices of a triangle. Assuming the two polylines are l1 and l2, two pointers are used to point to the starting positions of l1 and l2 respectively. A point is taken from l1, then a point is taken from l2. The two pointers are then moved one position to the right, and a point is taken from l1 again, then a point is taken from l2 again, and so on, stopping when one of the pointers reaches the end.

[0027] The extracted points are stored in the first array. If one layer has only one point left while another layer has many points left, connect all the remaining points of the longer line to the last point of the shorter line and store them in the third array. Store the polylines created by the user in each layer in the fourth array. Draw the first, third, and fourth arrays using GL_LINE_STRIP.

[0028] As a further defined implementation, the process of constructing a scatter plot with adjustable vertex radii includes creating a sphere with a set radius at the origin and drawing the sphere at the positions of the vertices, using the user-input vertices as offsets.

[0029] An interactive three-dimensional visualization system for cryo-electron microscopy data includes:

[0030] The projection module is configured to convert cryo-electron microscopy data into a three-dimensional array, map the values ​​in the array to a predetermined grayscale range, determine the cutting plane using a point method, determine the position of the cutting plane based on the projected area on each plane, project the cross section obtained by intersecting the cutting plane with the three-dimensional array onto the plane, and display the projected plane.

[0031] The cutting module is configured to respond to user commands to modify the point method of the cutting plane to obtain different cross sections, and to associate and display the cutting plane and the three-dimensional array in three-dimensional space.

[0032] The drawing module is configured to respond to user input commands and draw corresponding graphics at specified points in the commands to mark specific areas.

[0033] The object creation module is configured to respond to user commands to create objects, create the vertices of the object at the corresponding locations according to the commands, and then draw or modify the object based on the vertices and the drawing strategy specified in the commands.

[0034] Compared with the prior art, the beneficial effects of the present invention are as follows:

[0035] This invention allows users to view tomographic scan data of specific cross-sections, annotate images, and observe them in a 3D view. Furthermore, it supports fully graphical user interaction, providing an intuitive and efficient user interface.

[0036] This invention displays controls and views on the same interface, avoiding the problems of 3ds Mods separating controls and views and folding some controls into hard-to-find menus, which increases the user's mental burden. Furthermore, it enables / disables controls based on the function the user is currently using (for example, if the user is marking a region of the image with an arrow, the controls related to editing model information will be unclickable), making it more intuitive.

[0037] To make the above-mentioned objects, features and advantages of the present invention more apparent and understandable, preferred embodiments are described below in detail with reference to the accompanying drawings. Attached Figure Description

[0038] The accompanying drawings, which form part of this invention, are used to provide a further understanding of the invention. The illustrative embodiments of the invention and their descriptions are used to explain the invention and do not constitute an improper limitation of the invention.

[0039] Figure 1 A schematic diagram of the main structure of the system provided in the embodiments of the present invention;

[0040] Figure 2 The xy-section interface of the 2D view of the system provided in the embodiments of the present invention;

[0041] Figure 3 This document demonstrates the annotation function of the xy-section interface in the 2D view of the system provided in this embodiment of the invention.

[0042] Figure 4 This invention demonstrates the model information editing function of the 2D view xy section interface of the system provided in the embodiments of the present invention;

[0043] Figure 5 The interface of the 3D view of the system provided in the embodiments of the present invention;

[0044] Figure 6 This document demonstrates the slicing function of the 3D view interface of the system provided in this embodiment of the invention.

[0045] Figure 7 The xy, xz, and yz cross-sectional interfaces of the 2D view of the system provided in the embodiments of the present invention;

[0046] Figure 8 This refers to an arbitrary cross-sectional interface of the 2D view of the system provided in the embodiments of the present invention. Detailed Implementation

[0047] The present invention will be further described below with reference to the accompanying drawings and embodiments.

[0048] It should be noted that the following detailed description is illustrative and intended to provide further explanation of the invention. Unless otherwise specified, 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 invention pertains.

[0049] It should be noted that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the scope of exemplary embodiments according to the invention. As used herein, the singular form is intended to include the plural form as well, unless the context clearly indicates otherwise. Furthermore, it should be understood that when the terms "comprising" and / or "including" are used in this specification, they indicate the presence of features, steps, operations, devices, components, and / or combinations thereof.

[0050] Example 1

[0051] This embodiment provides a system that can exist in software form, such as... Figure 1 As shown, it has the following functions or performs the following process.

[0052] First, the cryo-electron microscopy data is converted into a three-dimensional array, and the values ​​in the array are mapped to a grayscale range of 0–255. The cutting plane is determined using a point method, and its position is determined based on the projected areas on the xy, yz, and xz planes. The cross-section obtained by intersecting the cutting plane with the three-dimensional array is projected onto this plane, and the projected plane is displayed.

[0053] Secondly, users can freely modify the point normal formula used as the cutting plane to obtain different cross-sections. Simultaneously, a schematic diagram of the cutting plane in 3D space is provided, allowing users to intuitively understand how the cutting plane cuts the 3D array without needing to understand the abstract point normal formula equations, such as... Figure 2 As shown.

[0054] Third, users can use their input devices to click on images (such as right-clicking the mouse) and draw rectangles, arrows, polylines, etc., at specified points to mark specific areas, such as... Figure 3 As shown.

[0055] Fourth, users can create multiple "objects." Vertices are created by clicking on the image using the input device, or by directly specifying coordinates in the input box. Users can then set the object's drawing strategy, including whether to close polylines in each layer, whether to draw vertices, whether to draw edges connecting vertices, and whether to draw faces enclosed by edges. Users can also adjust the colors of points, lines, and faces within the object by clicking the corresponding buttons to open the color picker window. Furthermore, users can adjust the radius of vertices and the width of edges. Finally, the software performs data conversion based on these settings and draws the object on the interface.

[0056] Fifth, in addition to being drawn in real time on the editing interface, object data, such as... Figure 4 , Figure 5 As shown, it can also be converted into a corresponding 3D object when the user switches to the 3D view. Users can perform real-time editing or slicing operations on the object data in the 3D view, such as... Figures 6-8 As shown.

[0057] In practice, the specific process includes:

[0058] The method for obtaining a 3D array from an .mrc file is as follows: First, use the Python package ncempy to read the .mrc file and convert the 3D array within it into NumPy ndarray format. Obtain the array's shape and write it as the first 12 bytes of a 32-bit unsigned integer to the output file. Then, determine the minimum (min) and maximum (max) values ​​in the 3D array. Finally, scale the 3D array (named data) using the following formula: The scaled array is converted to 8-bit unsigned integers in row-major order and written to the first 12 bytes of the output file. In the application, the first 12 bytes are read using `fread` to obtain the shape of the 3D array, and then `fread` is used to read the file line by line according to this shape to create the 3D array.

[0059] The method for obtaining the cross-sectional image and displaying the schematic diagram based on user interaction is as follows: The cutting plane described above is defined by a point a(x,y,z) and a normal vector n. The user adjusts the x, y, and z coordinates of point a using input boxes and sliders. The initial value of the normal vector n is (0,0,1). The user inputs θ1, θ2, and θ3 using input boxes and sliders, and then the normal vector is rotated by θ1, θ2, and θ3 degrees around the x-axis, y-axis, and x-axis, respectively. Based on the adjusted point a and normal vector n, the point normal equation of the cutting plane is calculated, and the projections of the normal vector n onto the xy-plane, xz-plane, and yz-plane are calculated. Assuming the projection of the normal vector onto the xz-plane is minimized, all x and z values ​​are iterated and substituted into the point normal equation to calculate the y value. If the obtained y is within the range of the three-dimensional array, the point (x,y,z) is considered valid, and the value of that point is assigned to the pixel (x,z) of the output image. This process is repeated for the other two directions. Then, the schematic diagram of the cutting plane is rotated according to the angles θ1, θ2, and θ3.

[0060] The method for drawing rectangles based on user interaction is as follows: When the user right-clicks on the image, check if two coordinates have been collected. If so, use these two coordinates as the top-left and bottom-right corners of the rectangle, and then clear the saved coordinates.

[0061] The arrows are drawn based on user interaction: When a user right-clicks on the image, check if two coordinates have been collected. If so, use these two coordinates as the start and end points of the arrow, then clear the saved coordinates.

[0062] The method for drawing polylines based on user interaction is as follows: when a user right-clicks on the image, the coordinates are added to the saved coordinate sequence, and the currently displayed image is redrawn based on these coordinates.

[0063] The mesh is constructed based on user-input vertices as follows: For each polyline created in the xy plane, points are alternately taken from the polylines of adjacent planes to form the vertices of triangles. Specifically: Assume two polylines are l1 and l2, and use two pointers pointing to the starting positions of l1 and l2 respectively. Take a point from l1, then take a point from l2, then move both pointers one position forward, take another point from l1, then another point from l2, and so on. Stop when one pointer reaches the end. Store the taken points in array arr1. Assume l2 has reached the end. Move both pointers one position forward, placing the vertex at the current position of pointer l2 at the beginning of array arr2, and placing all vertices from the current position of pointer l1 to the end after arr2. Finally, use GL_TRIANGLE_STRIP to draw array arr1, and use GL_TRIANGLE_FAN to draw array arr2. For the bottom and top faces, use GL_TRIANGLE_STRIP to draw the bottom and top polylines respectively. The above describes how to draw non-closed objects. For closed objects, the following method is used: First, draw each layer using GL_TRIANGLE_STRIP. Then, for layers with one remaining point and others with many remaining points, match the remaining points on the longer line with the beginnings of the shorter lines one-to-one, continuing until all the remaining points on the longer line are used. Then, the end of the longer line, the beginning of the longer line, and the last corresponding point of the shorter line are combined to form a triangle. For the bottom and top surfaces, draw the bottommost polyline and the topmost polyline using GL_TRIANGLE_FAN.

[0064] The method for constructing edges between vertices based on user-input vertices is as follows: The `arr1` array is obtained using the "Mesh construction method based on user-input vertices". If one layer has only one remaining vertex while another layer has many remaining vertices, the remaining edges on the longer edge are connected to the last vertex on the shorter edge, and this information is stored in the `arr3` array. Then, the polylines created by the user for each layer are stored in the `arr4` array. Finally, `arr1`, `arr3`, and `arr4` are drawn using `GL_LINE_STRIP`.

[0065] The method for constructing an adjustable vertex radius scatter plot based on user-input vertices is as follows: Create a sphere with a radius of 1 at the origin, and use OpenGL's instantiation function to draw the sphere at the positions of the user-input vertices using the user-input vertices as offsets.

[0066] Figure 6To slice using the same slicing interface as the 2D view, a 3D space rectangle is drawn in 3D space, and the sliced ​​image is used as the texture of the rectangle.

[0067] Figure 7 To obtain the xz slice by rotating the normal vector 90 degrees around the x-axis, and to obtain the yz slice by rotating the normal vector 90 degrees around the y-axis;

[0068] Figure 8 To set the rotation angle of the normal vector and the center point using the slider / input box on the left, the method described above for obtaining cross-sectional images and displaying schematic diagrams based on user interaction is used to complete the acquisition of slices and schematic diagrams.

[0069] Those skilled in the art will understand that embodiments of the present invention can be provided as methods, systems, or computer program products. Therefore, the present invention can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0070] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0071] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0072] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0073] The above description is merely a preferred embodiment of the present invention and is not intended to limit the invention. Various modifications and variations can be made to the present invention by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the scope of protection of the present invention.

[0074] While the specific embodiments of the present invention have been described above in conjunction with the accompanying drawings, this is not intended to limit the scope of protection of the present invention. Those skilled in the art should understand that various modifications or variations that can be made by those skilled in the art without creative effort based on the technical solutions of the present invention are still within the scope of protection of the present invention.

Claims

1. An interactive three-dimensional visualization method for cryo-electron microscopy data, characterized in that, Includes the following steps: The cryo-electron microscopy data is converted into a three-dimensional array, and the values ​​in the array are mapped to a predetermined grayscale range. The cutting plane is determined by the point method, and the position of the cutting plane is determined according to the projected area on each plane. The cross section after the intersection of the cutting plane and the three-dimensional array is projected onto the plane and the projected plane is displayed. In response to the user's command to modify the point method of the cutting plane to obtain different cross sections, the cutting plane and the three-dimensional array are associated and displayed in three-dimensional space; The specific process of responding to the user's instruction to modify the point method of the cutting plane to obtain different cross-sections includes: Define the cutting plane using point a(x,y,z) and normal vector n, and obtain the modification command. , , Rotate the normal vector around the x-axis, y-axis, and x-axis respectively. Based on the adjusted point a and normal vector n, calculate the point normal equation of the cutting plane, and calculate the projection of normal vector n onto the xy plane, xz plane, and yz plane. The projection of the normal vector onto a certain plane is minimized. Iterate through all values ​​of the relevant coordinate axes of the plane and substitute them into the point normal equation to calculate the value of the other coordinate axis. If the obtained value is within the range of the 3D array, the point (x, y, z) is considered valid, and the value of point (x, y, z) is assigned to the pixel (x, z) of the output image. Process the other two directions in turn, according to... The angle is rotated relative to the schematic diagram of the cutting plane; In response to user input commands, draw corresponding graphics at the specified points in the commands to mark specific areas; In response to the user's object creation command, the object's vertices are created at the corresponding positions according to the command. Based on the vertices, the object is drawn or modified according to the drawing strategy in the command. The object's drawing strategy includes whether to close the polylines of each layer, whether to draw vertices, whether to draw the edges connecting the vertices, whether to draw the edges enclosed by the edges, and the colors of each part of the object. The process of drawing a non-closed object involves creating a polyline on each xy-plane, then alternately taking points from the polylines of adjacent planes to form the vertices of a triangle. Assume the two polylines are... , Use two pointers to point to , The starting position, from Take a point, and then from Take a point, then move both pointers one position to the right, and then from... Take a point, and then from Take a point, and so on, stopping when one of the pointers reaches the end; The retrieved points are stored in the first array. If a polyline reaches the end, both pointers are moved forward one position. The vertex at the current position of the pointer of the polyline that has reached the end is placed at the beginning of the second array. All vertices from the current position to the end of the pointer of the first array are placed after the pointer of the second array. The first array is drawn using the GL_TRIANGLE_STRIP method, the second array is drawn using the GL_TRIANGLE_FAN method, and the bottom and top polylines are drawn using the GL_TRIANGLE_STRIP method for the bottom and top surfaces. The process of drawing a closed object involves first drawing each layer using GL_TRIANGLE_STRIP; For a layer with one point remaining and another layer with many points remaining, match the remaining points of the longer line with the beginning of the shorter line one by one until all the remaining points of the longer line are used up. Then, the end of the longer line, the beginning of the longer line, and the last point of the shorter line that was matched earlier form a triangle. For the bottom and top surfaces, draw the bottommost polyline and the topmost polyline using the GL_TRIANGLE_FAN method; The process of drawing edges between vertices involves, for each polyline created in the xy plane, alternately taking points from the polylines of adjacent planes to form the vertices of a triangle. Assume the two polylines are... , Use two pointers to point to , The starting position, from Take a point, and then from Take a point, then move both pointers one position to the right, and then from... Take a point, and then from Take a point, and so on, stopping when one of the pointers reaches the end; The extracted points are stored in the first array. If one layer has only one point left while another layer has many points left, connect all the remaining points of the longer line to the last point of the shorter line and store them in the third array. Store the polylines created by the user in each layer in the fourth array. Draw the first, third, and fourth arrays using GL_LINE_STRIP.

2. The interactive three-dimensional visualization method for cryo-electron microscopy data as described in claim 1, characterized in that, The specific process of converting cryo-electron microscopy data into a three-dimensional array includes reading the cryo-electron microscopy data, converting the data format, and converting the three-dimensional array in it into a predetermined format; Get the shape of the 3D array and write the first N bytes to the output file; Determine the minimum and maximum values ​​in the three-dimensional array, scale the array, convert the scaled array into multi-digit unsigned integers in row-major order, and write them sequentially after the subsequent bytes of the output file.

3. The interactive three-dimensional visualization method for cryo-electron microscopy data as described in claim 1, characterized in that, The specific process of drawing corresponding graphics at specified points in response to user input instructions to mark specific areas includes obtaining user input instructions, determining the start point and / or end point of the graphics based on the coordinate positions in the input instructions, and drawing the corresponding graphics based on the shape in the input instructions, with the determined start point and / or end point as constraints.

4. The interactive three-dimensional visualization method for cryo-electron microscopy data as described in claim 1, characterized in that, The process of constructing a scatter plot with adjustable vertex radius involves creating a sphere with a set radius at the origin and drawing the sphere at the positions of the vertices, using the user-input vertices as offsets.

5. An interactive three-dimensional visualization system for cryo-electron microscopy data, characterized in that, An interactive three-dimensional visualization method for cryo-electron microscopy data as described in any one of claims 1-4, comprising: The projection module is configured to convert cryo-electron microscopy data into a three-dimensional array, map the values ​​in the array to a predetermined grayscale range, determine the cutting plane using a point method, determine the position of the cutting plane based on the projected area on each plane, project the cross section after the intersection of the cutting plane and the three-dimensional array onto the plane, and display the projected plane. The cutting module is configured to respond to user commands to modify the point method of the cutting plane to obtain different cross sections, and to associate and display the cutting plane and the three-dimensional array in three-dimensional space. The drawing module is configured to respond to user input commands and draw corresponding graphics at specified points in the commands to mark specific areas. The object creation module is configured to respond to user commands to create objects, create the vertices of the object at the corresponding locations according to the commands, and then draw or modify the object based on the vertices and the drawing strategy specified in the commands.

Citation Information

Patent Citations

  • Interactive volume cutting method based on three-dimensional plane control

    CN101593357A

  • Medical image labeling system

    CN110993067A