Method and device for editing and reading edited information in DNA storage

By constructing version movable type, address movable type and editing status movable type libraries, encoding and combining the storage of DNA storage content information, the problems of complexity and high cost of editing operations in the existing technology are solved, and efficient and low-cost content information editing and storage are achieved.

CN119993238BActive Publication Date: 2025-09-12WUHAN INST OF VIROLOGY CHINESE ACADEMY OF SCI
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510011357.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-01-03
Publication Date
2025-09-12
Estimated Expiration
2045-01-03

AI Technical Summary

Technical Problem

Existing DNA storage technology cannot easily and intuitively perform content information editing operations, especially addition, deletion and modification, and the editing operations are complex and costly.

Method used

By constructing version movable type, address movable type and editing status movable type libraries, content information is encoded and combined and stored as storage movable type units, and editing operations on content information are realized, including addition, deletion and modification.

Benefits of technology

It simplifies the editing operation process, improves editing operation efficiency, reduces storage costs, supports the storage and editing of multiple file types, and enhances the flexibility and reliability of the DNA storage system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119993238B_ABST
    Figure CN119993238B_ABST
Patent Text Reader

Abstract

The present application relates to the technical field of DNA storage, and more specifically to a method and apparatus for editing and reading information in DNA storage. The present application performs version identification and edit status identification on content information that requires editing, and encodes the version identification into version movable type and the edit status identification into edit status movable type, which are then encoded together with the content movable type encoding the content information into a storage movable type unit with a special storage structure. This innovative storage movable type unit not only allows for storage and reading of PNG images, GIF animations, TXT text, and MIDI music files, but also allows for dynamic editing of these content files. This provides a completely new method for editing DNA stored content information while ensuring data accuracy and storage stability.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of DNA storage, and in particular to a method and apparatus for editing and reading information in DNA storage. Background Art

[0002] DNA storage is an emerging big data storage technology that stores information by converting binary data into DNA sequences. The process involves converting everyday binary data into a DNA sequence composed of adenine (A), thymine (T), guanine (G), and cytosine (C) according to specific encoding rules. High-throughput synthesis techniques are then used to synthesize the corresponding DNA sequence to store the information. To read the data, high-throughput sequencing is used to read the DNA sequence, and the binary file's information is then restored based on the encoding rules.

[0003] DNA storage not only enables long-term data storage but also offers greater storage space and lower maintenance costs compared to traditional information storage media (such as silicon-based circuit components). However, when it comes to editing content (e.g., text), such as adding, deleting, or modifying it, existing DNA storage technology cannot easily and intuitively update and read data as traditional electronic storage and reading devices. Furthermore, the complexity of DNA molecules significantly increases the difficulty of editing and reading stored information. Summary of the Invention

[0004] To this end, the present application performs version identification and editing status identification on the content information that needs to be edited, and encodes the version identification into version movable type, the editing status identification into editing status movable type, and the address movable type and content movable type corresponding to the content information are jointly encoded into a storage movable type unit with a special storage structure. When reading the stored content information, the type of the content information is determined by identifying the version movable type and the editing status movable type, and then editing operations such as adding, deleting and modifying the content information are performed. The present application constructs version movable type and editing status movable type with special storage functions through an innovative DNA movable type structure design. In terms of basic access functions, it can not only store and read PNG images, GIF animations, TXT texts and MIDI music files, but also edit these content files. While ensuring data accuracy and storage stability, it provides a new method for editing content information in DNA information storage technology.

[0005] To this end, the embodiments of the present application disclose at least the following technical solutions:

[0006] In a first aspect, the embodiments disclose a method for editing information in DNA storage. The method comprises:

[0007] Constructing a version movable type library, an address movable type library, a content movable type library, and an editing status movable type library by using movable types with a certain length;

[0008] Encoding the content element in the first content information into a first content type obtained from a content type library, allocating at least one first address type from an address type library for the first content type, allocating at least one first version type from a version type library for the first content type, and allocating at least one first editing status type from an editing status type library for the first content type, wherein the first address type represents the position of the first content type in the first content information, the first version type represents the unedited version of the first content type, and the first editing status type represents that the first content type is in an unedited state;

[0009] storing the first version movable type, the first address movable type, the first content movable type, and the first edit state movable type in combination as the first stored movable type;

[0010] Obtaining second content information obtained by editing the first content information, where the second content information is different from the first content information;

[0011] Encoding the content elements in the second content information into a second content type obtained from a content type library, allocating at least one second address type corresponding to the first content type for the second content type from an address type library, allocating at least one second version type for the second content type from a version type library, and allocating at least one second editing status type for the second content type from an editing status type library; storing the second content type and its corresponding second version type, second address type, and second editing status type combination as a second stored type, wherein the second version type is different from the first version type and represents an edited version of the second content type relative to the first content type; and the second editing status type is different from the first editing status type and represents an editing status of the second content type relative to the first content type.

[0012] The first storage movable type and the second storage movable type are combined and stored based on the first address movable type and the second address movable type.

[0013] In a second aspect, the embodiment discloses a method for reading and editing information in DNA storage. The method includes:

[0014] M first stored characters and N second stored characters stored in combination are read, each first stored character includes a first version character, a first address character, a first content character, and a first edit status character, and each second stored character includes a second version character, a second address character, a second content character, and a second edit status character. The first content character is encoded from a content element in the first content information, the first address character represents the position of the content element corresponding to the first content character in the first content information, the first version character represents an unedited version of the first content, the first edit status character represents the first content character in an unedited state, the second content character is a character encoding a content element obtained after an edit operation is performed on the first content information, or a content element subjected to an edit operation on the first content information, the second version character is different from the first version character, the second version character represents an edited version of the second content character relative to the first content character, the second edit status character is different from the first edit status character, and the second edit status character represents the edit state of the second content character relative to the first content character; M is a positive integer, and N is a positive integer or zero;

[0015] splicing M first content movable types according to the first version movable type, the first address movable type and the first editing state movable type to obtain a first spliced ​​movable type, and splicing N second content movable types according to the second version movable type, the second address movable type and the second editing state movable type to obtain a second spliced ​​movable type;

[0016] The first spliced ​​movable type is decoded to obtain first content information, which is unedited content information; the second spliced ​​movable type is decoded to obtain second content information, which is edited content information; and edited information is determined based on the first content information and the second content information.

[0017] In a third aspect, an embodiment discloses a device for reading information in DNA storage, comprising:

[0018] a first processor;

[0019] a first memory;

[0020] The first memory is used to apply the program code of DNA storage content information, and the first processor is used to call the program code to execute the operation of the first aspect method.

[0021] In a fourth aspect, an embodiment discloses a device for reading content information using DNA, including:

[0022] a second processor;

[0023] a second memory;

[0024] The second memory is used for applying the program code of DNA to read the content information, and the second processor is used for calling the program code to execute the operation of the second aspect of the method. BRIEF DESCRIPTION OF THE DRAWINGS

[0025] Figure 1 A flow chart of a method for information editing in DNA storage provided in an embodiment.

[0026] Figure 2 Schematic diagram of the first storage movable type, the second storage movable type, and the editing from the first storage movable type to the second storage movable type provided in the embodiment.

[0027] Figure 3 A schematic flow chart of the method of step S500 provided for an optional embodiment.

[0028] Figure 4 This is a screenshot of a txt file of the decoded and recovered content information (an excerpt from "Ordinary World") provided in the embodiment.

[0029] Figure 5 The S500 step provided for the optional embodiment is Figure 4 The first line of the txt file contains ".", which is the decoded and recovered txt file screenshot.

[0030] Figure 6 A schematic flow chart of the method of step S500 provided for an optional embodiment.

[0031] Figure 7 The S500 step provided for the optional embodiment is Figure 4 Screenshot of the txt file after decoding and recovering the content ", Author: Lu Yao" in the first line of the txt file.

[0032] Figure 8 A schematic flow chart of the method of step S500 provided for an optional embodiment.

[0033] Figure 9 The S500 step provided for the optional embodiment is Figure 4 The first line of the txt file is deleted and replaced with "," and the decoded information of the recovered txt file is shown in the screenshot.

[0034] Figure 10 A schematic diagram of editing a 2KB PNG image provided in an embodiment.

[0035] Figure 11 The DNA sequence structure of the first storage movable type or the DNA sequence structure of the second storage movable type provided in the embodiment.

[0036] Figure 12A flow chart of a method for reading and editing information in DNA storage provided in an embodiment.

[0037] Figure 13 This is a flowchart of a method for obtaining first content information in step S900 provided in an embodiment.

[0038] Figure 14 This is a flowchart of a method for obtaining first content information in step S900 provided in an embodiment. DETAILED DESCRIPTION

[0039] In order to make the purpose, technical solutions and advantages of this application more clearly understood, the present application is further described in detail below with reference to the following examples. It should be understood that the specific examples described herein are merely for the purpose of explaining this application and are not intended to limit this application. Reagents not described in detail in this application are all conventional reagents and can be obtained from commercial channels; methods not specifically described in detail are all conventional experimental methods and can be obtained from the prior art.

[0040] Herein, "movable type" or "DNA movable type" is a DNA sequence with a determined length, and its length can be 20bp, 28bp, 40bp, 48bp, 60bp, 68bp or other lengths. Preferably, "movable type" or "DNA movable type" is a double-stranded DNA sequence with an 8bp connector (4bp is designed at the 5' end of the positive strand of the DNA double strand, and 4bp is designed at the 5' end of the reverse strand of the DNA double strand), and the connector can be connected to other "movable types" with connectors through a nucleic acid ligation reaction to form a longer DNA molecule. Herein, the DNA sequence abbreviated as "movable type" is characterized as the corresponding character information or content information, for the purpose of explaining this application, and can be a DNA sequence stored in an electronic device (character information, or binary stream data representing the character information), or it can refer to a real DNA molecule.

[0041] In this article, "content information" refers to text, pictures, audio and video information, or information in any form of files (such as binary files, *.bin files, etc.) that record this information. "Content element" is the smallest unit of information recorded in the content information, such as a character, a pixel, or a musical note. Correspondingly, these "content elements" are encoded through "movable type" to obtain a DNA sequence, which is the "content movable type", specifically a DNA sequence with a certain length that can be decoded to obtain the movable type of the content information. For example, "movable type" encoding can be to encode one or more bytes in the binary stream data of a "content information" into a nucleotide sequence with a certain length, thereby encoding the "content information" into "content movable type", realizing the mapping between the "content information" and the "content movable type", and providing a basis for its storage.

[0042] In this article, "editing" refers to deleting part or all of the information in the content information, or adding or modifying content elements at the location of part of the content information.

[0043] In this article, "version" refers to the original version of the content information or the version after the above-mentioned "editing" operation is performed on it. For example, the basic version of the content information, that is, the version of the content information that has not been edited, can be identified by "Version0", or "V0", or "Ban0", and there is no restriction on the specific representation symbols. There is no restriction on the specific representation symbols for these "versions", as long as they can distinguish these "versions". Correspondingly, "version movable type" refers to the coded movable type corresponding to these version identifiers. With respect to the editing operation, each edit of the content information generates a "version", and a corresponding "version movable type" is generated.

[0044] Herein, "editing state" refers to the original state of the content information (ie, content information without editing operations), and may also refer to the edited state relative to the basic version of the content information (ie, content information without editing operations).

[0045] For example, the content information of the basic version can be marked with "Original", or "0", or "Ji", or "O", and there is no restriction on the specific representation symbols. For example, after the basic version content information is edited by an "add" operation, the editing status can be marked with "Create", or "I", or "1", or "ZENG", or "A", and there is no restriction on the specific representation symbols. For example, after the basic version content information is edited by a "delete" operation in whole or in part, the editing status can be marked with "Delete", or "II", or "2", or "SHAN", or "B", and there is no restriction on the specific representation symbols. For example, after the basic version content information is edited by a "modify" operation in whole or in part, the editing status can be marked with "Update", or "III", or "3", or "XIU", or "C", and there is no restriction on the specific representation symbols. Among them, there is no restriction on the specific representation symbols of these "editing status" identifiers, as long as they can distinguish these "editing statuses". Correspondingly, "editing status movable type" refers to the coded movable type corresponding to these editing status identifiers.

[0046] In this article, "address" refers to the position of each content element in a certain content information. For example, if the content information is a text file containing 20,000 words, each character is a content element. The "address" can be the sequential position of each character in the text according to reading habits, or the row or column position of each character in the page of the text file according to reading habits, or the page number of each character in the text file according to reading habits, or the sequential position of each character in the section of the text file according to reading habits. "Address movable type" refers to a sequence of movable type obtained by encoding this "address" information through "movable type."

[0047] Furthermore, to improve storage efficiency, the embodiment achieves precise encoding of each content element in each piece of content information by designing a multi-level address through a multi-dimensional matrix. For example, the first-level address is the page number of the text file where each character is located, as read according to reading habits. The second-level address is the row position of each character on the page where the character is located, as read according to reading habits. The third-level address is the column position of each character on the page where the character is located, as read according to reading habits. In this way, through the three-level address, a three-level address design can be performed for each character in the text content. After each character is accurately encoded, the corresponding three-level address movable type is obtained, thereby improving the efficiency of retrieving or searching the content information during storage and reading. For example, the first-level address is identified by "A1", which corresponds to the first-level "address movable type", where "A" identifies the page number of the character in the text file according to the reading habit, and "1" identifies the first page; the second-level address is identified by "B1", which corresponds to the second-level "address movable type", where "B" identifies the row position of the character on the page according to the reading habit, and "1" identifies the first row; the third-level address is identified by "C1", which corresponds to the third-level "address movable type", where "C" identifies the column position of the character on the page according to the reading habit, and "1" identifies the first column. For example, Figure 2 、 11 As shown, the first-level address can be identified by "addr:X", which is encoded as the first address movable type; the second-level address can be identified by "addr:Y", which is encoded as the second address movable type; the third-level address can be identified by "addr:Z", which is encoded as the third address movable type. In more cases, more levels of addresses and address movable types can be designed to cope with content information with more complex structures or files to be stored or read. In some embodiments, a character of an address identifier corresponds to a binary byte, which is encoded into a DNA sequence of a certain length, that is, a "movable type".

[0048] To this end, the present application embodiment provides a method for information editing in DNA storage. Figure 1 As shown, the method includes:

[0049] S100, constructing a version movable type library, an address movable type library, a content movable type library, and an editing status movable type library using movable types of a determined length;

[0050] S200, encoding a content element in the first content information into a first content type obtained from a content type library, allocating at least one first address type from an address type library for the first content type, allocating at least one first version type from a version type library for the first content type, and allocating at least one first editing status type from an editing status type library for the first content type, wherein the first address type represents a position of the first content type in the first content information, the first version type represents an unedited version of the first content type, and the first editing status type represents that the first content type is in an unedited state;

[0051] S300, storing the first version movable type, the first address movable type, the first content movable type, and the first editing state movable type in combination as the first stored movable type;

[0052] S400, obtaining second content information obtained by editing the first content information, where the second content information is different from the first content information;

[0053] S500: Encode the content elements in the second content information into a second content type obtained from a content type library; allocate at least one second address type corresponding to the first content type for the second content type from an address type library; allocate at least one second version type for the second content type from a version type library; allocate at least one second editing status type for the second content type from an editing status type library; store the second content type and its corresponding second version type, second address type, and second editing status type combination as a second stored type, wherein the second version type is different from the first version type and represents an edited version of the second content type relative to the first content type; and the second editing status type is different from the first editing status type and represents an editing status of the second content type relative to the first content type.

[0054] S600: Combining and storing the first stored movable type and the second stored movable type based on the first address movable type and the second address movable type.

[0055] To this end, the present application constructs a content movable type library, an address movable type library, a version movable type library, and an editing status movable type library respectively by using movable type of a certain length, encodes the content information into content movable type obtained from the content movable type library, and encodes the content elements corresponding to these content movable types in the content information into address movable type obtained from the address movable type library, and encodes them into version movable type obtained from the version movable type library, and encodes them into editing status movable type obtained from the editing status movable type library, thus forming a special storage movable type unit composed of version movable type, address movable type, content movable type, and editing status movable type. This storage movable type unit can perform address identification, version identification, and editing status identification for content elements, providing a basis for dynamic editing operations of content information.

[0056] In this way, constructing these movable type libraries using movable type of a fixed length not only reduces storage space, but also, for synthetic physical DNA molecules, there is no need to re-encode and store the entire content after editing the content elements. Instead, the edited movable type and the unedited movable type need only be combined to form the edited movable type information for storage, significantly reducing the cost of synthesizing the edited movable type for the content information.

[0057] In addition, this application also implements the identification and control of content information editing operations by configuring version type and edit status type for storage. Using version type and edit status type, not only can the dynamic editing of content information be continuously completed, but the latest status of each piece of information can also be tracked, achieving version control of stored information. This method can implement editing operations such as additions, deletions, and modifications during DNA storage by updating version type and edit status type without repeatedly generating the entire DNA sequence, simplifying the editing operation process and improving editing operation efficiency. Furthermore, compared to generating all physical DNA molecules, it reduces storage costs.

[0058] In addition, the present application is based on the "DNA movable type" design, so that information exists in the form of storage movable type units during the storage process. By taking the version number as one of the components of the storage movable type unit, the movable type fragments are combined and sorted, so that each information fragment can be operated (added, deleted, modified) separately, thereby realizing efficient addition, deletion and modification operations, greatly saving the time and economic cost of re-synthesizing DNA sequences on a large scale.

[0059] In addition, this application supports DNA storage of multiple types of files (PNG, GIF, TXT, MIDI, etc.). The modular characteristics of the movable type design enable this application to apply movable type addition, deletion, and modification operations to a variety of data types (such as text, pictures, audio, etc.), making the data storage system more flexible and the application scenarios more extensive, thereby enhancing the versatility and practicality of the technology.

[0060] Furthermore, by combining version number identification, DNA movable type design, and innovative operational procedures, this application effectively addresses the complexity, high cost, and insufficient precision of addition, deletion, and modification operations in existing DNA storage technologies. This innovative dynamic addition, deletion, and modification method system not only improves operational efficiency and reduces costs, but also enhances the flexibility and reliability of the DNA storage system, making DNA information storage technology more suitable for large-scale data storage and dynamic updates, and possessing broad application prospects.

[0061] In step S100 of the present application, the content type library includes multiple content types representing content elements in the first content information, the address type library includes multiple address types representing the positions of content elements in the first content type in the first content information, the version type library includes multiple version types representing unedited version numbers and edited version numbers of content elements in the first content type, and the editing status type library includes multiple editing status types representing the unedited status and edited status of content elements in the first content type.

[0062] By constructing a content movable type library, an address movable type library, a version movable type library, and an edit status movable type library using movable type of a certain length, it is possible to arrange and combine a certain number of these movable type libraries to achieve the storage and reading of any element of any content information. For example, by constructing a content movable type library consisting of 256 content movable types using movable type of a certain length, it is possible to cover the movable type encoding of all character symbols. For example, by constructing an address movable type library consisting of 300 address movable types using movable type of a certain length, it is possible to cover the address identification of 100×100×100 content elements at the third level of address. For example, by constructing a version movable type library consisting of 4 version movable types using movable type of a certain length, it is possible to achieve the version identification after the basic version, modified version, deleted version, and added version of each content element after the editing operation. For example, by constructing an edit status movable type library consisting of 4 edit status movable types using movable type of a certain length, it is possible to achieve the editing operation identification of each content element as unedited, modified, deleted, and added.

[0063] In some embodiments, the version type library includes "Version0" type, "Version1" type, etc. These different types represent different versions of content information, and the so-called different versions are edited versions.

[0064] In some embodiments, the address type library includes three levels of address type based on the above description, for example, identified by "A", "B" and "C", wherein the A-level address includes 100 types of type, which are used to identify the page number of the page where the content element (e.g., character) corresponding to the content type is located in the text file (content information) according to the reading habit. The B-level address includes 100 types of type, which are used to identify the row position of the page where the content element (e.g., character) corresponding to the content type is located in the reading habit. The C-level address includes 100 types of type, which are used to identify the column position of the page where the content element (e.g., character) corresponding to the content type is located in the reading habit. For example, "A" movable type, "A1" movable type, "A2" movable type, "A10" movable type, "A101" movable type, "B" movable type, "B1" movable type, "B10" movable type, "B100" movable type, "C" movable type, "C1" movable type, "C10" movable type, "C100" movable type, etc. "A" movable type, "B" movable type and "C" movable type are third-level movable type, and the numbers following them are the types of movable type corresponding to the address.

[0065] In some embodiments, the editing status movable type library includes "Original" movable type, "Create" movable type, "Delete" movable type, and "Update" movable type, wherein the "Original" movable type indicates that the content information has not been edited, the "Create" movable type indicates that the content information has undergone an operation of adding content, the "Delete" movable type indicates that the content information has undergone an operation of deleting, and the "Update" movable type indicates that the content information has undergone an operation of modifying.

[0066] In some embodiments of S200, content elements in the first content information are converted to binary data, which is then encoded using a DNA codebook to convert the binary data into content characters. To provide physical DNA, DNA molecules comprising these M characters can be obtained through chemical synthesis and PCR amplification for in vivo or in vitro storage. For example, textual text is converted into a computer-encoded binary string, which is then encoded into a string consisting of four characters, ACTG. For example, the corresponding mapping relationship is: a 20-bp sequence is considered a character, which corresponds to one byte of binary data. If the number of byte types is 2^8 = 256, then there are also 256 corresponding characters for a 20-bp sequence. Furthermore, a first version character, an address character, and a first editing status character are assigned to each obtained first content character to facilitate version and editing status identification. In some embodiments, a single content element in the first content information can be encoded into a single first content character, or multiple content elements read consecutively from the first content information can be encoded into a single first content character.

[0067] In some embodiments of step S300, Figure 2 As shown, the first version type, address type, first content type, and first edit status type are sequentially connected to form the first storage type. For example, the first storage type is "Version0-A1-B2-C0-Content22-Original," "Version0-A24-B3-C2-Content134-Original," etc., where "Version0" is the first version type, "A1," "B2," and "C0" are three levels of address type, and the following digits represent the three-level position information of the content element corresponding to the first content type within the content information. "Content22" or "Content134" are both content types, and the following digits represent the content element number corresponding to the first content type. This can be a decimal number directly converted from the binary bytes corresponding to the content element, or a character, a pixel, or a musical note, etc., with a one-to-one correspondence achieved through a specified mapping method. "Original" is the edit status type, indicating that the content type has not been edited. In some embodiments, the first storage typeface may contain a plurality of first content types, for example, a plurality of characters that are read consecutively in the content information may be stored in the first storage typeface as a plurality of first content types.

[0068] In some steps of S400, such as Figure 3 As shown, the operation of editing the first content information can include adding content elements to the first content information, modifying one or more content elements in the first content information, or deleting one or more content elements in the first content information. Correspondingly, the operation of editing the first content information can also include synthesizing a DNA molecule corresponding to the first content typeface. This can include synthesizing DNA based on the content typeface encoded by the added content element, synthesizing DNA based on one or more content typefaces encoded after one or more content elements are modified, or synthesizing DNA based on one or more content typefaces encoded after one or more content elements are deleted.

[0069] In some embodiments, as Figure 3 As shown, step S500 specifically includes:

[0070] S501: If at least one additional content element added to the first content information is detected;

[0071] S502: Encode the added content element into a second content type;

[0072] S503: Obtaining a position of the added content element relative to the adding operation in the first content information, and obtaining a second address movable type from the address movable type library according to the position of the adding operation;

[0073] S504: According to the addition operation, a second version of movable type is obtained from the version movable type library, and a second editing state movable type is obtained from the editing state movable type library. The second version movable type is different from the first version movable type and represents the version number obtained after the addition operation. The second editing state movable type is different from the first editing state movable type and represents the identifier of the addition operation.

[0074] S505: The second content movable type and its corresponding second version movable type, second address movable type, and second editing state movable type are combined and stored as a second stored movable type.

[0075] In this embodiment, the second content type is different from the first content type, and the first address type is different from the second address type.

[0076] In step S500 provided in some embodiments, one added content element may be encoded as a second content movable type, and a corresponding second storage movable type may be obtained; multiple added content elements may be encoded as a second content movable type, and a corresponding second storage movable type may be obtained; multiple added content elements may be respectively encoded as multiple second content movable types, and a corresponding multiple second storage movable types may be obtained; multiple consecutive added content elements may be respectively encoded as multiple second content movable types, and the multiple second content movable types may be stored as a second storage movable type according to the positions of the addition operations of these multiple consecutive added content elements in the first content information (i.e., the positions represented by the first address movable type).

[0077] By executing these steps, after the addition operation is performed on the first content information, only the added content element or content information is encoded, and the second address movable type is obtained based on the position of the added content element, and the second version movable type and the second editing state movable type are obtained based on the addition operation, thereby facilitating the construction of Figure 3 The special second storage type shown is used for type storage. This step only requires encoding and storing the added content element, and also stores and indexes its address and the addition operation to facilitate subsequent reading, improving storage and reading efficiency and saving storage space. At the same time, when performing the addition operation on the corresponding physical DNA type, only the DNA molecule encoded based on the addition operation needs to be synthesized, reducing synthesis costs. The address and DNA of the addition operation are stored and indexed to facilitate subsequent reading.

[0078] Furthermore, step S500 also includes: generating, based on the addition operation, a third address typeface and a third content typeface for error correction during reading. The corresponding step S600 also includes: storing the second version typeface, the third address typeface, the third content typeface, and the second edit state typeface as a third storage typeface, and combining and storing the first storage typeface, the second storage typeface, and the third storage typeface based on the first address typeface, the second address typeface, and the third address typeface. Both the third storage typeface and the third content typeface are RS codes, which are used to correct and confirm errors in the second content typeface during reading of the third storage typeface and are deleted after error correction is complete, without affecting the reading of the first and second addresses.

[0079] In a specific embodiment, Figure 4 and Figure 5 As shown, the first content information is "Author: Lu Yao", and an editing operation is performed to add characters to it, for example, it is edited into the second content information "Author: Lu Yao." That is, compared with the first content information, the second content information adds the "." character, and the "." character is the added content element. For example, the first content information is UTF-8 encoded to obtain binary data, each character occupies 3 binary bytes, the first content information is a total of 13 characters, and the period is added to the 14th character. In this way, the second content information corresponds to the 40th to 42nd bytes of the binary data, and the binary stream corresponding to the period "." is "111000111000000010000010", and a 2-bit RS code is added to the end of the binary stream to obtain the complete binary stream "1110001110000000100000011110010000000101". The added second content movable type (specifically, the address movable type) is obtained:

[0080] Address 40-Content 11100011

[0081] Address 41-Content 10000000

[0082] Address 42-Content 10000001

[0083] Address 43-Content 11100100

[0084] Address 44-Content 00000101

[0085] Among them, the RS codes corresponding to the third address movable characters "43" and "44" are only used for error correction during reading and are deleted after the error correction is completed, which does not affect the reading of the edit address.

[0086] According to step S500, the second stored type thus obtained is as follows:

[0087] Version1-Address40-Content11100011-Create

[0088] Version1-Address 41-Content 10000000-Create

[0089] Version1-Address42-Content10000001-Create

[0090] Version1-Address 43-Content 11100100-Create

[0091] Version1-Address 44-Content 00000101-Create

[0092] In some embodiments, as Figure 6 As shown, step S500 further includes:

[0093] S511: If it is detected that at least one content element of the first content information is deleted;

[0094] S513: Obtaining a first address corresponding to the position of the content element in the first content information;

[0095] S514: According to the deletion operation, a second version of movable type is obtained from the version movable type library, and a second editing state movable type is obtained from the editing state movable type library. The second version movable type is different from the first version movable type and represents the version number obtained after the deletion operation. The second editing state movable type is different from the first editing state movable type and represents the identifier of the deletion operation.

[0096] S515: The first content movable type on which the deletion operation has occurred and the corresponding second version movable type, first address movable type, and second editing state movable type are combined and stored as a second storage movable type.

[0097] In this embodiment, the second content movable type is the same as the first content movable type, and the first address movable type is the same as the second address movable type.

[0098] By executing these steps, after deleting the first content information, it is only necessary to obtain the first address type and the first content type of the position of the difference content element in the first content information based on the deletion operation, and obtain the second version type and the second editing status type based on the deletion operation, thereby facilitating the construction of Figure 3The special second storage type shown is used for type storage. This step only requires encoding and storing the deleted content elements, and also stores and indexes their addresses and deletion operations to facilitate subsequent reading, improving storage and reading efficiency and saving storage space. At the same time, when deleting the corresponding physical DNA type, only DNA molecules encoded based on the deletion operation need to be synthesized, reducing synthesis costs. The DNA molecules with addresses and deletion operations are stored and indexed for later reading.

[0099] Furthermore, step S500 also includes: generating a third address typeface and a third content typeface for error correction during reading based on the deletion operation. The corresponding step S600 also includes: storing the second version typeface, the third address typeface, the third content typeface, and the second edit state typeface as a third storage typeface, and combining and storing the first storage typeface, the second storage typeface, and the third storage typeface based on the first address typeface, the second address typeface, and the third address typeface. Both the third storage typeface and the third content typeface are RS codes, which are used to correct and confirm errors in the second content typeface during reading of the third storage typeface. After error correction is complete, the third storage typeface is deleted, without affecting the reading of the first and second addresses.

[0100] In one embodiment, Figure 7 As shown, if the character information ", Author: Lu Yao" in the first content information needs to be deleted, and this character information is located in the 8th to 13th characters of the entire second content information, the corresponding binary data position is bytes 22 to 39. The binary data of this character information is "1110111110111100...10100101", a total of 18 bytes. A 1 / 3 redundant byte is added to the end of this binary data, represented by a 6-bit RS code, for a total of 24 bytes, thus obtaining 24 movable characters of the third content, as shown below:

[0101] Address 22-Content 11101111

[0102] Address 23-Content 10111100

[0103]

[0104] Address 45-Content 11010001

[0105] Similarly, the six RS codes at addresses 40 to 45 are deleted after error correction is completed during the reading phase, which does not affect the reading of the edit address. Add the second version type "Version 1" and the second edit status type "Delete" to these 24 second content types to obtain the complete 24 second storage types:

[0106] Version1-Address22-Content11101111-Delete

[0107] Version1-Address23-Content10111100-Delete

[0108]

[0109] Version1-Address45-Content11010001-Delete

[0110] In some embodiments, as Figure 8 As shown, step S500 includes:

[0111] S521: If it is detected that a modification operation is performed on at least one content element of the first content information;

[0112] S522: Encode the modified content element into a second content type;

[0113] S523: Obtaining the first address of the content element after the modification operation relative to the first content information;

[0114] S524: According to the modification operation, a second version of movable type is obtained from the version movable type library, and a second editing state movable type is obtained from the editing state movable type library. The second version movable type is different from the first version movable type, and the second version movable type represents the version number obtained after the modification operation. The second editing state movable type is different from the first editing state movable type, and the second editing state movable type represents the identifier of the modification operation.

[0115] S525: The second content movable type and its corresponding second version movable type, first address movable type, and second edit state movable type are combined and stored as a second stored movable type.

[0116] In this embodiment, the second content movable type is different from the first content movable type. The second content movable type is a content movable type obtained by encoding the modified content information in the first content information, but the first address movable type is the same as the second address movable type.

[0117] In step S500 provided in some embodiments, a content element after a modification operation can be encoded as a second content movable type, and a corresponding second storage movable type is obtained; multiple content elements after a modification operation can also be encoded as a second content movable type, and a corresponding second storage movable type is obtained; multiple content elements after a modification operation can also be encoded as multiple second content movable types, and multiple second storage movable types can be obtained respectively; multiple content elements after consecutive modification operations can also be encoded as multiple second content movable types, and the multiple second content movable types are stored as a second storage movable type according to the position of the addition operation of the multiple content elements after the modification operation in the first content information (that is, the position represented by the first address movable type).

[0118] Furthermore, step S500 also includes: generating, based on the addition operation, a third address typeface and a third content typeface for error correction during reading. The corresponding step S600 also includes: storing the second version typeface, the third address typeface, the third content typeface, and the second edit state typeface as a third storage typeface, and combining and storing the first storage typeface, the second storage typeface, and the third storage typeface based on the first address typeface, the second address typeface, and the third address typeface. Both the third storage typeface and the third content typeface are RS codes, which are used to correct and confirm errors in the second content typeface during reading of the third storage typeface and are deleted after error correction is complete, without affecting the reading of the first and second addresses.

[0119] By executing these steps, after the modification operation is performed on the first content information, only the modified content element or content information is encoded, and the first address movable type is obtained based on the position of the modified content element, and the second version movable type and the second editing state movable type are obtained based on the modification operation, thereby facilitating the construction of Figure 3 The special second storage type shown is used for type storage. This step only requires encoding and storing the modified content elements, and also stores and indexes their addresses and modification operations to facilitate subsequent reading, improving storage and reading efficiency and saving storage space. At the same time, when modifying the corresponding physical DNA type, only DNA molecules encoded based on the modification operations need to be synthesized, reducing synthesis costs. The DNA molecules with addresses and modification operations are stored and indexed for later reading.

[0120] In one embodiment, Figure 9 As shown, if the character "," in the first content information needs to be changed to a comma ",", the first content character encoded by the character "," is modified to obtain the second content character. The comma is located at the 8th character in the first content information, and the corresponding binary data position is 22nd to 24th bytes. In this way, three first content characters are stored, as follows:

[0121] Address 22-Content 11100011

[0122] Address 23-Content 10000000

[0123] Address 24-Content 10000001

[0124] The binary data of the comma is "111000111000000010000001", and a 2-bit RS code is added to the end of the binary stream to obtain the complete binary stream "1110001110000000100000011110000100000011", thus obtaining five second content movable characters.

[0125] Address 22-Content 11100011

[0126] Address 23-Content 10000000

[0127] Address 24-Content 10000001

[0128] Address 25-Content 11100001

[0129] Address 26-Content 00000011

[0130] Similarly, the two-bit RS code at addresses 25 and 26 is deleted after error correction is completed during the reading phase, which does not affect the reading of the edit address. Add the second version type "Version1" and the second edit status type "Update" to these five second content types, and you will get a complete set of five second storage types:

[0131] Version1-Address22-Content11100011-Update

[0132] Version1-Address23-Content10000000-Update

[0133] Version1-Address24-Content10000001-Update

[0134] Version1-Address25-Content11100001-Update

[0135] Version1-Address26-Content00000011-Update

[0136] In one embodiment, a 2KB PNG file is encoded as content information. The steps in the above embodiment are followed to obtain a first content type and a matching address type. A first version type and a first edit status type are then configured. For example, "Version 0 - Address A1 - Address B2 - Address C0 - Content 22 - Original," "Version 0 - Address A24 - Address B3 - Address C2 - Content 134 - Original," and so on.

[0137] When you need to edit the PNG image, such as Figure 10As shown, add an editing layer to the image and then export the edited layer as an edited file. For example, you can create the corresponding editing layer in Photoshop and export it as an added layer, deleted layer, or modified layer. Using image editing software such as Photoshop, create an editing layer with the same size as the original file and a transparent background. Add the part of the file you want to modify directly to the editing layer. Then export the editing layer as an edited file. You can compress the edited file based on storage requirements to further reduce storage requirements.

[0138] Specifically, set the editing commands as: "Add a small flower", "Delete the headband", "Change the scarf to green", generate the corresponding editing layers in Photoshop, and export them as adding layers, deleting layers, and changing layers. Type encode the editing layers separately to obtain a series of type combinations; add editing tags to the type combinations:

[0139] Add layer: the version typeface is "Version1", and the editing status typeface is "Create";

[0140] Delete layer: the version typeface is "Version1", and the edit status typeface is "Delete";

[0141] Change the layer: the version typeface is "Version1" and the editing status typeface is "Update".

[0142] Based on the obtained active type combination, batch samples are added, active type ligation reaction is carried out, and the reaction products are collected and mixed with the original file storage products in equal proportions, thus completing the physical information editing of DNA storage. The edited products are stored at -20℃ for a long time.

[0143] The first storage movable type comprising the first version movable type, the first address movable type, the first content movable type and the first editing state movable type, the second storage movable type comprising the second version movable type, the second address movable type, the second content movable type and the second editing state movable type, and the second storage movable type comprising the third version movable type, the third address movable type, the third content movable type and the third editing state movable type, and other similar storage movable type, can be stored not only in the character form of the nucleotide sequence of "movable type" or "DNA movable type" (such as a txt file) or binary data representing these characters, but also in the form of assembly or connection reactions to obtain these nucleotide sequences, or in vectors, or in microorganisms, cells, or plants and animals.

[0144] To this end, the present invention also provides a method for generating and storing movable characters. These methods are implemented through molecular biology steps of nucleotide sequences.

[0145] Figure 11 The DNA sequence structure of the first storage type or the DNA sequence structure of the second storage type is shown.

[0146] Some embodiments provide methods for preparing storage type DNA, including: synthesizing a DNA library of version type, a DNA library of address type, a DNA library of content type, and a DNA library of edited type; preparing a ligation system, wherein the ligation system (10 μL) comprises: 1 μL 10×ligation buffer, 50 ng of vector, 15 ng of version type DNA, 15 ng of address type DNA, 15 ng of content type DNA, 15 ng of edited type DNA, 0.25-0.5 μL of T4 DNA ligase (concentration), and the balance of double-distilled water; the DNA of the first version type or the DNA of the second version type is obtained from the DNA library of the version type; and reacting the ligation system for 30 minutes to obtain the storage type DNA. These methods for preparing storage type are applicable to preparing the DNA of the first storage type, the DNA of the second storage type, or the DNA of the third storage type described above.

[0147] Furthermore, in order to achieve the sequential connection of the DNA of these version movable types, the DNA of the address movable types, the DNA of the content movable types and the editing status, 4bp sticky ends with no representational meaning are set at the ends of these DNA sequences to achieve the sequential connection of the DNA of these version movable types, the DNA of the address movable types, the DNA of the content movable types and the editing status.

[0148] Some embodiments provide the physical DNA of the version type library and the edited type library shown in Table 1 below.

[0149] Table 1

[0150]

[0151] In a second aspect, the embodiment discloses a method for reading and editing information in DNA storage. Figure 12 As shown, the method includes:

[0152] S700: Read M first stored characters and N second stored characters stored in combination, each first stored character including a first version character, a first address character, a first content character, and a first edit status character; each second stored character including a second version character, a second address character, a second content character, and a second edit status character; the first version character represents an unedited version of the first content suffix; the first address character represents the position of the content element corresponding to the first content character in the first content information; the first content character is encoded from the content element in the first content information; the first edit status character represents the unedited state of the first content character; the second content character is a content element obtained after an edit operation is performed on the first content information or an encoded character of a content element subjected to an edit operation on the first content information; the second version character is different from the first version character and represents an edited version of the second content character relative to the first content character; the second edit status character is different from the first edit status character and represents the edit status of the second content character relative to the first content character; M is a positive integer, and N is a positive integer or zero;

[0153] S800, splicing first content movable types of M first stored movable types according to the first version movable type, the first address movable type, and the first edit status movable type to obtain a first spliced ​​movable type; splicing second content movable types of N second stored movable types according to the second version movable type, the second address movable type, and the second edit status movable type to obtain a second spliced ​​movable type;

[0154] S900: Decode the first spliced ​​movable type to obtain first content information, which is unedited content information; decode the second spliced ​​movable type to obtain second content information, which is edited content information; and determine edited information based on the first content information and the second content information.

[0155] In the above step S800, the first version movable type and the first edit state movable type read can be used to identify the unedited first content movable type, and then the first address movable type and the first content movable type are obtained. The first address movable type can read and represent the position of the content element in the first content information, and then it can be spliced ​​into the first spliced ​​movable type according to the first address movable type. The first spliced ​​movable type can be read and represented as the first content information. According to the above embodiment, a first storage movable type can store one first content movable type or multiple first content movable types, which is not limited here. According to the above embodiment, a first content movable type can represent one content element or multiple content elements, which is not limited here.

[0156] In the above step S800, the second version movable type and the second edit state movable type read can identify the edited second content movable type, and then obtain the second address movable type and the second content movable type, and the second address movable type can read and represent the position of the content element relative to the first content information for editing operation, and then according to the second address movable type, it can be spliced ​​into a second spliced ​​movable type, and the second spliced ​​movable type can be read and represented as the second content information. According to the above embodiment, a second storage movable type can store one second content movable type, or multiple second content movable types, which is not limited here. According to the above embodiment, a second content movable type can represent one content element, or multiple content elements, which is not limited here.

[0157] Specifically, if Figure 13 As shown, the steps of S900 specifically include:

[0158] S910, obtaining a first splicing movable type;

[0159] S920: Generate a first editing instruction based on the first version type and the first editing state type;

[0160] S930: Obtain first content information according to the first editing instruction.

[0161] Specifically, if Figure 14 As shown, the step of S801 specifically includes:

[0162] S921, obtaining a second splicing movable type;

[0163] S921. Generate a second editing instruction based on the second version movable type and the second editing state movable type;

[0164] S931. Obtain second content information according to the second set of instructions.

[0165] To this end, the present invention also provides a method for reading the first stored movable type or the second stored movable type. These methods are implemented through molecular biology steps of nucleotide sequences.

[0166] In some embodiments, a method of reading DNA from a first stored type or a second stored type includes:

[0167] Prepare a read reaction system, the read reaction system including DNA of the first version movable type or DNA of the second version movable type as an upstream primer, DNA of the second edited state movable type or DNA of the second edited state movable type as a downstream primer, and DNA of the first content movable type or DNA of the second content movable type as a template;

[0168] The read reaction system is subjected to PCR reaction;

[0169] The product of the PCR reaction is recovered and sequenced to obtain the DNA sequence of the first storage type or the DNA sequence of the second storage type.

[0170] Specifically, the read reaction system includes 50 μL of the following: 0.5 μL of 10 μM upstream primer, 0.5 μL of 10 μM downstream primer, 1 μL of DNA of the first content type or the second content type, 25 μL of 2×Hieff Plus PCR MasterMix (With Dye) high-fidelity enzyme premix and the balance of water. The PCR reaction steps of this reading reaction system include: pre-denaturation at 98°C for 5 minutes; then denaturation at 98°C for 10 seconds; annealing at 58°C (depending on the primer settings) for 20 seconds, extension at 72°C for 30 seconds / kb, and 20-25 cycles; final extension at 72°C for 5 minutes. Specifically, the PCR amplification is also subjected to electrophoresis detection, and the target band is recovered and sequenced to obtain the DNA sequence of these first content movable characters or the DNA sequence of the second content movable characters. The upstream and downstream primers are shown in Table 2 below.

[0171] Table 2 Physical primers required to read the first stored type or the second stored type

[0172]

[0173] In addition, an embodiment of the present application also discloses a device for using DNA to store content information or a device for using DNA to read content information, including a first processor and a first memory, the first memory is used to apply program code for using DNA to store content information, and the first processor is used to call the program code to execute the operations of the first aspect method.

[0174] In addition, the embodiment discloses an apparatus for reading content information using DNA, including a second processor and a second memory; the second memory is used for program code for reading content information using DNA, and the second processor is used for calling the program code to execute the operation of the second aspect method.

[0175] In the embodiments of the present application, the device for storing content information using DNA or the device for reading content information using DNA can be a computer or an electronic device, and the device for storing content information using DNA or the device for reading content information using DNA and the device for reading content information using DNA can be a physical entity and a device. The device can be a terminal, or a component, integrated circuit, or chip in a terminal. The device can be a mobile electronic device or a non-mobile electronic device. For example, the mobile electronic device can be a mobile phone, a tablet computer, a laptop computer, a PDA, an in-vehicle electronic device, a wearable device, an ultra-mobile personal computer (UMPC), a netbook, or a personal digital assistant (PDA), etc. The non-mobile electronic device can be a server, a network attached storage (NAS), a personal computer (PC), a television (TV), a teller machine, or a self-service machine, etc., and the embodiments of the present application are not specifically limited.

[0176] The device for storing content information using DNA or the device for reading content information using DNA in the embodiments of the present application may be a device having an operating system. The operating system may be an Android operating system, an iOS operating system, or other possible operating systems, which are not specifically limited in the embodiments of the present application.

[0177] The device for storing content information using DNA or the device for reading content information using DNA provided in the embodiments of the present application can implement the various processes implemented by the device for storing content information using DNA or the device for reading content information using DNA in the above-mentioned method embodiments of storing content information using DNA. To avoid repetition, they will not be described here.

[0178] Optionally, an embodiment of the present application also provides an electronic device, including a processor, a memory, and a program or instruction stored in the memory and executable on the processor. When the program or instruction is executed by the processor, the various processes of the above-mentioned method embodiment of applying DNA to store content information are implemented, and the same technical effect can be achieved. To avoid repetition, they will not be described here.

[0179] It should be noted that the electronic devices in the embodiments of the present application include the above-mentioned mobile electronic devices and non-mobile electronic devices.

[0180] The processor is the processor in the electronic device in the above embodiment. The readable storage medium includes a computer-readable storage medium, such as a computer read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0181] It should be noted that, in this article, the terms "comprise", "include" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the statement "comprises a ..." does not exclude the presence of other identical elements in the process, method, article or device comprising the element. In addition, it should be noted that the scope of the methods and devices in the embodiments of the present application is not limited to performing functions in the order shown or discussed, and may also include performing functions in a substantially simultaneous manner or in the opposite order according to the functions involved. For example, the described method may be performed in an order different from that described, and various steps may also be added, omitted, or combined. In addition, the features described with reference to certain examples may be combined in other examples.

[0182] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus the necessary general hardware platform, and of course can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of the present application, or the part that contributes to the relevant technology, can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk), and includes a number of instructions for enabling a terminal (which can be a mobile phone, computer, server, air conditioner, or network equipment, etc.) to execute the methods of each embodiment of the present application.

[0183] The above are only preferred specific implementation methods of the present application, but the scope of protection of the present application is not limited thereto. Any changes or replacements that can be easily thought of by any technician familiar with this technical field within the technical scope disclosed in this application should be covered by the scope of protection of the present application.

Claims

1. A method for information editing in DNA storage, comprising: Constructing a version movable type library, an address movable type library, a content movable type library, and an editing status movable type library by using movable types with a certain length; Encoding the content element in the first content information into a first content type obtained from a content type library, allocating at least one first address type from an address type library for the first content type, allocating at least one first version type from a version type library for the first content type, and allocating at least one first editing status type from an editing status type library for the first content type, wherein the first address type represents the position of the first content type in the first content information, the first version type represents the unedited version of the first content type, and the first editing status type represents that the first content type is in an unedited state; storing the first version movable type, the first address movable type, the first content movable type, and the first edit state movable type in combination as the first stored movable type; Obtaining second content information obtained by editing the first content information, where the second content information is different from the first content information; Encoding the content elements in the second content information into a second content type obtained from a content type library, allocating at least one second address type corresponding to the first content type for the second content type from an address type library, allocating at least one second version type for the second content type from a version type library, and allocating at least one second editing status type for the second content type from an editing status type library; storing the second content type and its corresponding second version type, second address type, and second editing status type combination as a second stored type, wherein the second version type is different from the first version type and represents an edited version of the second content type relative to the first content type; and the second editing status type is different from the first editing status type and represents an editing status of the second content type relative to the first content type. The first storage movable type and the second storage movable type are combined and stored based on the first address movable type and the second address movable type.

2. The method according to claim 1 comprises encoding the content elements in the second content information into a second content type obtained from a content type library, allocating at least one second address type corresponding to the first content type for the second content type from an address type library, allocating at least one second version type for the second content type from a version type library, and allocating at least one second editing status type for the second content type from an editing status type library; and storing the second content type and its corresponding second version type, second address type, and second editing status type in combination as a second stored type, wherein the second version type is different from the first version type and represents an edited version of the second content type relative to the first content type; and the second editing status type is different from the first editing status type and represents an editing status of the second content type relative to the first content type. If at least one additional content element added to the first content information is detected; Encoding the added content element as a second content type obtained from a content type library; Obtaining a position of the added content element relative to the adding operation in the first content information, and obtaining a second address movable type from the address movable type library according to the position of the adding operation; According to the addition operation, a second version movable type is obtained from the version movable type library, and a second editing state movable type is obtained from the editing state movable type library. The second version movable type is different from the first version movable type, and the second version movable type represents the version number obtained after the addition operation. The second editing state movable type is different from the first editing state movable type, and the second editing state movable type represents the identifier of the addition operation. The second content movable type and its corresponding second version movable type, second address movable type, and second editing state movable type are combined and stored as a second storage movable type.

3. The method according to claim 1 comprises encoding the content elements in the second content information into a second content type obtained from a content type library, allocating at least one second address type corresponding to the first content type for the second content type from an address type library, allocating at least one second version type for the second content type from a version type library, and allocating at least one second editing status type for the second content type from an editing status type library; and storing the second content type and its corresponding second version type, second address type, and second editing status type in combination as a second stored type, wherein the second version type is different from the first version type and represents an edited version of the second content type relative to the first content type; and the second editing status type is different from the first editing status type and represents an editing status of the second content type relative to the first content type. If deletion of at least one content element of the first content information is detected; Obtaining a first address corresponding to a position of the content element in the first content information; According to the deletion operation, a second version of movable type is obtained from the version movable type library, and a second editing state movable type is obtained from the editing state movable type library. The second version movable type is different from the first version movable type, and the second version movable type represents the version number obtained after the deletion operation. The second editing state movable type is different from the first editing state movable type, and the second editing state movable type represents the identifier of the deletion operation. The first content movable type on which the deletion operation has occurred, as well as the corresponding second version movable type, first address movable type, and second editing state movable type are stored as a second storage movable type.

4. The method according to claim 1 comprises encoding the content elements in the second content information into a second content type obtained from a content type library, allocating at least one second address type corresponding to the first content type for the second content type from an address type library, allocating at least one second version type for the second content type from a version type library, and allocating at least one second editing status type for the second content type from an editing status type library; and storing the second content type and its corresponding second version type, second address type, and second editing status type in combination as a second stored type, wherein the second version type is different from the first version type and represents an edited version of the second content type relative to the first content type; and the second editing status type is different from the first editing status type and represents an editing status of the second content type relative to the first content type. If it is detected that a modification operation is performed on at least one content element of the first content information; Encoding the modified content element into a second content movable type; Obtaining the first address of the content element after the modification operation relative to the first content information; According to the modification operation, a second version of movable type is obtained from the version movable type library, and a second editing state movable type is obtained from the editing state movable type library, wherein the second version movable type is different from the first version movable type, and the second version movable type represents a version number obtained after the modification operation, and the second editing state movable type is different from the first editing state movable type, and the second editing state movable type represents an identifier of the modification operation; The second content movable type and its corresponding second version movable type, first address movable type, and second edit state movable type are combined and stored as a second stored movable type.

5. According to the method described in any one of claims 1 to 4, the content movable type library includes multiple content movable types representing content elements in the first content information, the address movable type library includes multiple address movable types representing the positions of content elements in the first content movable type in the first content information, the version movable type library includes multiple version movable types representing unedited version numbers and edited version numbers of content elements in the first content movable type, and the editing status movable type library includes multiple editing status movable types representing the unedited status and edited status of content elements in the first content movable type.

6. A method for reading and editing information in DNA storage, comprising: M first stored characters and N second stored characters are read, each first stored character includes a first version character, a first address character, a first content character, and a first edit status character. Each second stored character includes a second version character, a second address character, a second content character, and a second edit status character. The first version character represents an unedited version of the first content suffix. The first address character represents the position of the content element corresponding to the first content character in the first content information. The first content character is encoded from the content element in the first content information. The first edit status character represents the first content character in an unedited state. The second content character is a content element obtained after an edit operation is performed on the first content information or an encoded character of a content element subjected to an edit operation on the first content information. The second version character is different from the first version character and represents an edited version of the second content character relative to the first content character. The second edit status character is different from the first edit status character and represents the edit status of the second content character relative to the first content character. M is a positive integer, and N is a positive integer or zero. splicing M first content movable types according to the first version movable type, the first address movable type and the first editing state movable type to obtain a first spliced ​​movable type, and splicing N second content movable types according to the second version movable type, the second address movable type and the second editing state movable type to obtain a second spliced ​​movable type; The first spliced ​​movable type is decoded to obtain first content information, which is unedited content information; the second spliced ​​movable type is decoded to obtain second content information, which is edited content information; and edited information is determined based on the first content information and the second content information.

7. The method according to claim 6, comprising: splicing M first content movable types according to the first version movable type, the first address movable type, and the first edit status movable type to obtain a first spliced ​​movable type; and splicing N second content movable types according to the second version movable type, the second address movable type, and the second edit status movable type to obtain a second spliced ​​movable type, further comprising: Obtaining the first splicing movable type; generating a first editing instruction based on the first version movable type and the first editing state movable type; First content information is obtained according to the first editing instruction.

8. The method according to claim 6, comprising: splicing M first content movable types according to the first version movable type, the first address movable type, and the first edit status movable type to obtain a first spliced ​​movable type; and splicing N second content movable types according to the second version movable type, the second address movable type, and the second edit status movable type to obtain a second spliced ​​movable type, further comprising: Obtain the second splicing movable type; generating a second editing instruction based on the second version movable type and the second editing state movable type; The second content information is obtained according to the second set of instructions.

9. A device for editing information in DNA storage, comprising: a first processor; a first memory; The first memory is used for applying the program code of DNA storage content information, and the first processor is used for calling the program code to execute the operation of any one of the methods of claims 1 to 5.

10. Devices for reading information stored in DNA, including a second processor; a second memory; in, The second memory is used for applying the program code of DNA to read the content information, and the second processor is used for calling the program code to execute the operation of any one of the methods of claims 6 to 8.

Citation Information

Patent Citations

  • Method for converting original file to active file

    CN109949858A

  • DNA (deoxyribonucleic acid) type writing system and method

    CN114898806A