Method and device applied to information editing and edited information reading in DNA storage

By introducing version identification and editing status identification in DNA storage and encoding into specific movable type units, the complexity and difficulty of content information editing in existing DNA storage technologies are solved, and efficient editing and reading of content information of DNA storage is achieved.

CN119993238AActive Publication Date: 2025-05-13WUHAN INST OF VIROLOGY CHINESE ACADEMY OF SCI
View PDF 5 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

The existing DNA storage technology is difficult to easily and intuitively edit content information, and due to the complexity of DNA molecular structure, the editing operation increases the difficulty of editing and reading storage information.

Method used

By performing version identification and editing status identification on the content information that needs to be edited, and encoding these identifications into version movable type and editing status movable type, and coding the address movable type and content movable type corresponding to the content information into a storage movable type unit with a special storage structure, the editing operation of the content information is realized.

Benefits of technology

It realizes the editing, adding, deleting and modifying content information in DNA storage, ensuring data accuracy and storage stability, and provides a new method for editing content information in DNA information storage technology.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119993238A_ABST
    Figure CN119993238A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of DNA storage, in particular to an information editing and reading method and device applied to DNA storage. According to the method, version identification and editing state identification are carried out on the content information needing to be edited, the version identification is coded into the version type, the editing state identification is coded into the editing state type, and the version type, the editing state identification and the content type coded by the content information are jointly coded into a storage type unit with a special storage structure. By means of the innovative storage type unit, PNG pictures, GIF dynamic pictures, TXT texts and MIDI music files can be stored and read, the content files can be dynamically edited, data accuracy and storage stability are ensured, and meanwhile a brand new method is provided for editing DNA storage content information.
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 device for editing and reading information in DNA storage. Background Art

[0002] DNA storage is an emerging big data storage technology that achieves information storage by converting binary data into DNA sequences. The specific process is to convert the binary data used in daily life into a DNA sequence composed of adenine (A), thymine (T), guanine (G), and cytosine (C) according to specific coding rules. Then, the corresponding DNA sequence is synthesized using high-throughput synthesis technology to store information. When reading data, high-throughput sequencing technology is used to read the DNA sequence, and then the information of the binary file is restored according to the coding rules.

[0003] DNA storage can not only store data for a long time, but also has a larger storage space and lower maintenance costs compared to traditional information storage carriers (such as silicon-based circuit elements). However, when it is necessary to edit content information (such as text), such as adding content, deleting content, and modifying content, existing DNA storage technology cannot be updated and read as easily and intuitively as traditional electronic storage and reading devices. In addition, due to the complexity of the DNA molecular structure, these editing operations also significantly increase 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 the content information is added, deleted, and modified. Editing operations such as modifying the content information. 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 embodiment discloses a method for information editing in DNA storage. The method comprises:

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

[0008] Encode the content element in the first content information into a first content type obtained from a content type library, configure at least one first address type for the first content type from an address type library, configure at least one first version type for the first content type from a version type library, and configure at least one first editing state type for the first content type from an editing state type library, wherein the first address type represents the 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 state type represents that the first content type is in an unedited state;

[0009] The first version movable type, the first address movable type, the first content movable type and the first editing state movable type are combined and stored 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] Encode the content element in the second content information into a second content type obtained from a content type library, configure at least one second address type corresponding to the first content type for the second content type from an address type library, configure at least one second version type for the second content type from a version type library, configure at least one second editing status type for the second content type from an editing status type library, store the second content type and the corresponding second version type, second address type, and second editing status type combination as a second stored type, the second version type is different from the first version type, the second version type represents the edited version of the second content type relative to the first content type, the second editing status type is different from the first editing status type, and the second editing status type represents the 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 edit information in DNA storage. The method comprises:

[0014] M first storage movable characters and N second storage movable characters stored in combination are read, each first storage movable character includes a first version movable character, a first address movable character, a first content movable character and a first editing status movable character, each second storage movable character includes a second version movable character, a second address movable character, a second content movable character and a second editing status movable character, the first content movable character is encoded from a content element in the first content information, the first address movable character represents the position of the content element corresponding to the first content movable character in the first content information, the first version movable character represents an unedited version of the first content, the first editing status movable character represents that the first content movable character is in an unedited state, the second content movable character is a content element obtained after an editing operation is performed on the first content information or an encoding movable character of a content element performed on the first content information, the second version movable character is different from the first version movable character, the second version movable character represents an edited version of the second content movable character relative to the first content movable character, the second editing status movable character is different from the first editing status movable character, and the second editing status movable character represents the editing state of the second content movable character relative to the first content movable 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 the edited information is determined based on the first content information and the second content information.

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

[0018] a first processor;

[0019] a first memory;

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

[0021] In a fourth aspect, the 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 schematic flow chart of a method for information editing in DNA storage provided in an embodiment.

[0026] Figure 2 A 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 diagram of the method flow of step S500 provided for an optional embodiment.

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

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

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

[0031] Figure 7 Step S500 provided for an optional embodiment Figure 4 Screenshot of the txt file after deleting the first line of content ", Author: Lu Yao" and decoding the recovered txt file.

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

[0033] Fig. 9 Step S500 provided for an optional embodiment Figure 4 The first line of the txt file is deleted and the content "," is changed to "," and the decoded and recovered txt file is shown in the screenshot.

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

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

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

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

[0038] Fig.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 scheme and advantages of the present application clearer, the present application is further described in detail below in conjunction with the examples. It should be understood that the specific embodiments described herein are only used to explain the present application and are not intended to limit the present application. The reagents not described separately in detail in the present application are all conventional reagents and can be obtained from commercial channels; the methods not 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, so as to facilitate the description of 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 these 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 realizing the encoding of the "content information" into the "content movable type", realizing the mapping between the "content information" and the "content movable type", and providing a basis for realizing its storage.

[0042] In this article, "editing" refers to deleting part or all of the information in the content information, or adding content elements 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 marked with "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 type" refers to the coded 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 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 symbol. For example, after the basic version of the content information is edited by "adding", 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 symbol. For example, after the basic version of the content information is edited by "deleting" all or part of the content information, 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 symbol. For example, after the basic version of the content information is edited by "modifying" all or part of the content information, 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 symbol. Among them, the specific representation symbols of these "editing status" identifiers are not limited, and they can be used to distinguish these "editing statuses". Correspondingly, "editing status type" refers to the coded 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 with 20,000 words, each character is a content element. "Address" can be the sequential position of each character in the text according to reading habits, or the row position 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 text file according to reading habits. "Address movable type" refers to a sequence of movable type obtained by encoding these "address" information through "movable type".

[0047] In addition, to improve storage efficiency, the embodiment realizes accurate encoding of each content element in each content information by designing a multi-level address through a multi-dimensional matrix. For example, the first-level address is the page number of each character in the text file where the page is located according to the reading habit, the second-level address is the row position of each character in the page where the page is located according to the reading habit, and the third-level address is the column position of each character in the page where the page is located according to the reading habit. In this way, through the three-level address, a three-level address design can be performed for each character in the text content, and each character can be accurately encoded to obtain the corresponding three-level address movable type, thereby improving the efficiency of retrieving or searching these content information during the storage and reading of these content information. 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 reading habits, 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 in the page according to reading habits, 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 in the page according to reading habits, 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 with a certain length, that is, a "movable type".

[0048] To this end, the present application embodiment provides a method for editing information 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 by using movable types with a determined length;

[0050] S200, encoding the content element in the first content information into a first content type obtained from a content type library, configuring at least one first address type for the first content type from an address type library, configuring at least one first version type for the first content type from a version type library, configuring at least one first editing state type for the first content type from an editing state type library, wherein the first address type represents the 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 state 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, encoding the content element in the second content information into a second content type obtained from a content type library, configuring at least one second address type corresponding to the first content type for the second content type from an address type library, configuring at least one second version type for the second content type from a version type library, configuring at least one second editing status type for the second content type from an editing status type library, storing the second content type and the 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 the second version type represents the 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 the second editing status type represents the 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 through movable type compositions with a certain length, encodes the content information into content movable type obtained from the content movable type library, 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. The 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 by movable type of a certain length can not only reduce the storage space. Moreover, for the synthesized physical DNA molecules, there is no need to re-encode and store all the contents after editing the content elements. It is only necessary to store the edited movable type information together with the unedited movable type, which will greatly save the synthesis cost of the movable type after editing the content information.

[0057] In addition, the present application also implements identification and control of content information editing operations by configuring version movable type and edit status movable type for content movable type for storage. Through version movable type and edit status movable type, not only can the dynamic editing processing of content information be continuously completed, but also the latest status of each piece of information can be tracked to achieve version control of stored information. This method can realize editing operations of adding, deleting and modifying during DNA storage by updating version movable type and edit status movable type without repeatedly generating all DNA sequences, simplifying the editing operation process and improving editing operation efficiency. And relative 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) individually, 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 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] In addition, by combining version number identification, DNA movable type design and innovative operation procedures, this application effectively solves the problems of complexity, high cost and insufficient precision of addition, deletion and modification operations in existing DNA storage technology. The innovative dynamic addition, deletion and modification method system not only improves operation 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 has broad application prospects.

[0061] In step S100 of the present application, the content type library includes multiple content type representing content elements in the first content information, the address type library includes multiple address type representing the position of the content elements in the first content type in the first content information, the version type library includes multiple version type representing the unedited version number and the edited version number of the content elements in the first content type, and the editing status type library includes multiple editing status type representing the unedited state and the edited state of the 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 editing status movable type library with movable type of a certain length, it is possible to arrange and combine a certain number of these movable type libraries to realize the storage and reading of any element of any content information. For example, by constructing a content movable type library composed of 256 content movable types with 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 composed of 300 address movable types with movable type of a certain length, it is possible to cover the address identification of 100×100×100 content elements of the third-level address. For example, by constructing a version movable type library composed of 4 version movable types with movable type of a certain length, it is possible to realize the version identification after the editing operation of the basic version, modified version, deleted version and added version of each content element. For example, by constructing an editing status movable type library composed of 4 editing status movable types with movable type of a certain length, it is possible to realize the editing operation identification of each content element, which is not edited, 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 the 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, marked with "A", "B" and "C" respectively, 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 according to 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 according to the reading habit. For example, "A" type, "A1" type, "A2" type, "A10" type, "A101" type, "B" type, "B1" type, "B10" type, "B100" type, "C" type, "C1" type, "C10" type, "C100" type, etc. "A" type, "B" type and "C" type are third-level type, and the numbers that follow are the types of 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 represents that the content information has not been edited, the "Create" movable type represents that the content information has undergone an operation of adding content, the "Delete" movable type represents that the content information has undergone an operation of deleting, and the "Update" movable type represents that the content information has undergone an operation of modifying.

[0066] In some embodiments of S200, the content elements in the first content information are converted into binary data, and the type encoding is performed according to the DNA type code book to convert the binary data into content type. In order to provide physical DNA, the DNA molecules of the M type can be obtained by chemical synthesis and PCR amplification to facilitate in vivo or in vitro storage. For example, the text in the text will be converted into a computer-encoded binary string, and the binary string is converted into a string composed of four characters ACTG through encoding. For example, the corresponding mapping relationship is: a 20bp sequence is used as a type, which corresponds to a byte of binary data. If the number of byte types is 2^8=256, then the corresponding 20bp sequence has 256 types of types. Furthermore, a first version type, an address type, and a first editing status type are respectively configured for each first content type obtained, so as to facilitate version identification and editing status identification. In some embodiments, a content element in the first content information can be encoded into a first content type, and multiple content elements read continuously in the first content information can also be encoded into a first content type.

[0067] In some embodiments of step S300, Figure 2 As shown, the first version movable type, the address movable type, the first content movable type and the first edit state movable type are sequentially connected to serve as the first storage movable type. For example, the first storage movable type is "Version0-A1-B2-C0-content 22-Original", "Version0-A24-B3-C2-content 134-Original", etc., where "Version0" is the first version movable type, "A1", "B2" and "C0" are three levels of address movable types, and the following numbers represent the three levels of position information of the content element corresponding to the first content movable type in the content information; "content 22" or "content 134" are both content movable types, and the following numbers represent the content element number corresponding to the first content movable type, which 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., and a one-to-one correspondence is achieved through a specified mapping method. "Original" is the edit state movable type, indicating that the content movable type has not been edited. In some embodiments, the first storage typeface may contain a plurality of first content typefaces, 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 typefaces.

[0068] In some steps of S400, such as Figure 3 As shown, the operation of editing the first content information may be to add content elements to the first content information, to modify one or more content elements in the first content information, or to delete one or more content elements in the first content information. Correspondingly, the operation of editing the first content information may also be to synthesize the DNA molecule corresponding to the first content typeface, which may be DNA synthesized from the content typeface encoded by the added content element, DNA synthesized from one or more content typefaces encoded after one or more content elements are modified, or DNA synthesized from one or more content typefaces encoded after one or more content elements are deleted.

[0069] In some embodiments, 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: Encoding the added content element into a second content movable type;

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

[0073] S504: according to the adding operation, obtaining a second version of movable type from the version movable type library, obtaining a second editing state movable type from the editing state movable type library, the second version movable type is different from the first version movable type, the second version movable type represents the version number obtained after the adding operation, the second editing state movable type is different from the first editing state movable type, the second editing state movable type represents the identifier of the adding 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 storage 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 typeface, and a corresponding second storage typeface may be obtained; multiple added content elements may be encoded as a second content typeface, and a corresponding second storage typeface may be obtained; multiple added content elements may be respectively encoded as multiple second content typefaces, and multiple second storage typefaces may be respectively obtained; multiple consecutive added content elements may be respectively encoded as multiple second content typefaces, and multiple second content typefaces may be stored as one second storage typeface according to the positions of the addition operations of the multiple consecutive added content elements in the first content information (i.e., the positions represented by the first address typeface).

[0077] By executing these steps, after the first content information is added, 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 movable type shown is used for movable type storage. This step only requires encoding and storing the added content elements, and also stores and indexes its address and the increase operation, which is convenient for later reading, improves the efficiency of storage and reading, and saves storage space. At the same time, when the corresponding entity DNA movable type performs an increase operation, it only needs to synthesize the DNA molecule based on the increase operation encoding, which reduces the synthesis cost, and stores and indexes its address and the DNA of the increase operation, which is convenient for later reading.

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

[0079] In a specific embodiment, Figure 4 and Figure 5 As shown, the first content information is "Author: Lu Yao", and an editing operation of adding characters is performed on it, for example, it is edited into the second content information "Author: Lu Yao.". That is, relative to 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 a 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, and do not affect the reading of the editing address.

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

[0087] Version1-Address40-Content11100011-Create

[0088] Version1-Address41-Content10000000-Create

[0089] Version1-Address42-Content10000001-Create

[0090] Version1-Address43-Content11100100-Create

[0091] Version1-Address44-Content00000101-Create

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

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

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

[0095] S514: according to the deletion operation, obtaining a second version of movable type from the version movable type library, obtaining a second editing state movable type from the editing state movable type library, the second version movable type is different from the first version movable type, 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;

[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 second storage movable type.

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

[0098] By executing these steps, after the first content information is deleted, 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 state type based on the deletion operation, so as to facilitate the construction of Figure 3The special second storage movable type shown is used for movable type storage. This step only needs to encode and store the deleted content elements, and also stores and indexes its address and deletion operation, which is convenient for later reading, improves the efficiency of storage and reading, and saves storage space. At the same time, when deleting the DNA movable type of the corresponding entity, it is only necessary to synthesize the DNA molecule based on the deletion operation encoding, which reduces the synthesis cost, and stores and indexes its address and the DNA of the deletion operation for later reading.

[0099] Furthermore, step S500 also includes: based on the deletion operation, generating a third address movable type and a third content movable type for error correction during reading. The corresponding step S600 also includes: storing the second version movable type, the third address movable type, the third content movable type and the second edit state movable type as a third storage movable type, and combining and storing the first storage movable type, the second storage movable type and the third storage movable type based on the first address movable type, the second address movable type and the third address movable type. Among them, the third storage movable type and the third content movable type are both RS codes, which are used to correct and confirm the second content movable type during the reading of the third storage movable type, and are deleted after the error correction is completed, without affecting the reading of the first address and the second address.

[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 segment of character information is located at the 8th to 13th characters of the entire second content information, the corresponding binary data position is the 22nd to 39th bytes. The binary data of this segment of character information is "1110111110111100...10100101", a total of 18 bytes. A 1 / 3 redundant byte is added to the end of the binary data, represented by a 6-bit RS code, so a total of 24 bytes, that is, 24 third content movable characters are obtained, as follows:

[0101] Address 22-Content 11101111

[0102] Address 23-Content 10111100

[0103] …

[0104] Address 45-Content 11010001

[0105] Similarly, the 6 RS codes at addresses 40 to 45 are deleted after error correction is completed in 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 "Delete" to these 24 second content types, and you will get a complete set of 24 second storage types:

[0106] Version1-Address22-Content11101111-Delete

[0107] Version1-Address23-Content10111100-Delete

[0108] …

[0109] Version1-Address45-Content11010001-Delete

[0110] In some embodiments, 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: Encoding the modified content element into a second content movable type;

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

[0114] S524: according to the modification operation, obtaining a second version of movable type from the version movable type library, obtaining a second editing state movable type from the editing state movable type library, the second version movable type is different from the first version movable type, the second version movable type represents a 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 an 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 editing state movable type are combined and stored as a second storage 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 the 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 respectively, 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 respectively, 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: based on the addition operation, generating a third address movable type and a third content movable type for error correction during reading. The corresponding step S600 also includes: storing the second version movable type, the third address movable type, the third content movable type and the second edit state movable type as a third storage movable type, and combining and storing the first storage movable type, the second storage movable type and the third storage movable type based on the first address movable type, the second address movable type and the third address movable type. Among them, the third storage movable type and the third content movable type are both RS codes, which are used to correct and confirm the second content movable type during the reading of the third storage movable type, and are deleted after the error correction is completed, without affecting the reading of the first address and the second address.

[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 its address and modification operation, which is convenient for later reading, improves the efficiency of storage and reading, and saves storage space. At the same time, when the DNA type of the corresponding entity is modified, it is only necessary to synthesize the DNA molecule based on the modification operation encoding, which reduces the synthesis cost, and stores and indexes its address and modification operation DNA for later reading.

[0120] In one embodiment, Fig. 9 As shown, if the character "," in the first content information needs to be changed to a comma ",", the first content typeface encoded by the character "," is modified to obtain the second content typeface. The comma is located at the 8th character in the first content information, and the corresponding binary data position is the 22nd to 24th bytes. In this way, three first content types 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 address 25 and 26 is deleted after error correction is completed in the reading stage, which does not affect the reading of the editing address. Add the second version type "Version1" and the second editing status type "Update" to these five second content types, and 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, and the first content type and the address type matching it are obtained by referring to the steps of the above embodiment, and the first version type and the first editing state type are configured. For example, "Version0-Address A1-Address B2-Address C0-Content 22-Original", "Version0-Address A24-Address B3-Address C2-Content 134-Original", etc.

[0137] When you need to edit the PNG image, Fig.10As shown, add an editing layer to the image, and then export the editing layer as an editing file. For example, you can generate the corresponding editing layer in Photoshop and export it as adding layers, deleting layers, and modifying layers. Use image editing software such as Photoshop to generate an editing layer with the same size as the original file and a transparent background, and add the part of the file that needs to be modified directly to the editing layer. Then export the editing layer as an editing file, and compress the editing file according to storage requirements to further reduce storage requirements.

[0138] Specifically, set the editing instructions 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. Perform movable type encoding on the editing layers respectively to obtain a series of movable type combinations; add editing tags to the movable type combinations:

[0139] Add layer: the version typeface is "Version1", and the edit 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 type is "Version1", and the editing status type is "Update".

[0142] Based on the obtained movable type combination, batch sample addition is performed, movable type connection reaction is performed, and the reaction product is collected and mixed with the original file storage product in equal proportion, thus completing the physical information editing of DNA storage. The edited product is stored at -20°C 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 through assembly or connection reactions to obtain these nucleotide sequences, or store these nucleotide sequences in vectors, or store the vectors containing these nucleotide sequences in microorganisms, cells, or animals and plants.

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

[0145] Fig.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 state type; preparing a ligation system, wherein the ligation system contains, in 10 μL, 1 μL 10×ligation buffer, 50 ng vector, 15 ng version type DNA, 15 ng address type DNA, 15 ng content type DNA, 15 ng edited state type DNA, 0.25-0.5 μL T4 DNA ligase (concentration) and the remainder of double distilled water, the first version type DNA or the second version type DNA is obtained from the version type DNA library; reacting the ligation system for 30 minutes, and the storage type DNA can be obtained. These methods for preparing storage type are suitable for preparing the first storage type DNA, the second storage type DNA, or the third storage type DNA.

[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. Fig.12 As shown, the method includes:

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

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

[0154] S900, decoding the first spliced ​​movable type to obtain first content information, the first content information is unedited content information, decoding the second spliced ​​movable type to obtain second content information, the second content information is edited content information, and determining edited information according to the first content information and the second content information.

[0155] In the above step S800, the first version movable type and the first edited state movable type that are 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 therein are obtained, and the first address movable type can read and represent the position of the content element in the first content information, and then according to the first address movable type, it can be spliced ​​into the first spliced ​​movable type, and 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 edited second content movable type can be identified by reading the second version movable type and the second edit state movable type, and then the second address movable type and the second content movable type are obtained, 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 the 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, and can also store 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, and can also represent multiple content elements, which is not limited here.

[0157] Specifically, Fig.13 As shown, the steps of S900 specifically include:

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

[0159] S920, generating a first editing instruction based on the first version movable type and the first editing state movable type;

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

[0161] Specifically, Fig.14 As shown, the step of S801 specifically includes:

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

[0163] S921, generating 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 embodiments of the present application also provide a method for reading the first stored movable type or the second stored movable type. These methods are implemented through molecular biological steps of nucleotide sequences.

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

[0167] Prepare a read reaction system, the read reaction system includes 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: 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 remaining amount of water. The PCR reaction steps of the reading reaction system include: pre-denaturation at 98°C for 5 minutes; then denaturation at 98°C for 10 seconds; annealing at 58°C (according to the primer setting) for 20 seconds, extension at 72°C for 30 seconds / kb, and cycle 20-25 times; final extension at 72°C for 5 minutes. Specifically, the PCR amplification is also subjected to electrophoresis detection, the target band is recovered, and sequencing is performed to obtain the DNA sequence of the first content movable type or the DNA sequence of the second content movable type. Among them, 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 for program code for using DNA to store content information, and the first processor is used to call the program code to execute the operation of the first aspect method.

[0174] In addition, the embodiment discloses a device 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 of the method.

[0175] The device for storing content information using DNA or the device for reading content information using DNA in the embodiments of the present application 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, an integrated circuit, or a chip in a terminal. The device can be a mobile electronic device or a non-mobile electronic device. Exemplarily, 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 (ultra-mobile personal computer, UMPC), a netbook or a personal digital assistant (personal digital assistant, PDA), etc., and the non-mobile electronic device can be a server, a network attached storage (Network Attached Storage, NAS), a personal computer (personal computer, PC), a television (television, TV), a teller machine or a self-service machine, etc., which is not specifically limited in the embodiments of the present application.

[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 embodiment for 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, each process of the above-mentioned method embodiment of applying DNA to store content information is implemented, and the same technical effect can be achieved. To avoid repetition, it 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 variant thereof are intended to cover non-exclusive inclusion, so that the process, method, article or device including a series of elements includes not only those elements, but also includes other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise one..." do not exclude the presence of other identical elements in the process, method, article or device including the element. In addition, it should be pointed out 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 reverse 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 a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on such an 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 a terminal (which can be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods of each embodiment of the present application.

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

Claims

1. A method for information editing in DNA storage, comprising: Constructing a version type library, an address type library, a content type library, and an editing status type library by using type with a certain length; Encode the content element in the first content information into a first content type obtained from a content type library, configure at least one first address type for the first content type from an address type library, configure at least one first version type for the first content type from a version type library, and configure at least one first editing state type for the first content type from an editing state type library, wherein the first address type represents the 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 state type represents that the first content type is in an unedited state; The first version movable type, the first address movable type, the first content movable type and the first editing state movable type are combined and stored 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; Encode the content element in the second content information into a second content type obtained from a content type library, configure at least one second address type corresponding to the first content type for the second content type from an address type library, configure at least one second version type for the second content type from a version type library, configure at least one second editing status type for the second content type from an editing status type library, store the second content type and the corresponding second version type, second address type, and second editing status type combination as a second stored type, the second version type is different from the first version type, the second version type represents the edited version of the second content type relative to the first content type, the second editing status type is different from the first editing status type, and the second editing status type represents the 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. According to the method of claim 1, the content element in the second content information is encoded into a second content type obtained from a content type library, at least one second address type corresponding to the first content type is configured for the second content type from an address type library, at least one second version type is configured for the second content type from a version type library, at least one second editing status type is configured for the second content type from an editing status type library, the second content type and the corresponding second version type, second address type, and second editing status type are combined and stored as a second stored type, the second version type is different from the first version type, the second version type represents the edited version of the second content type relative to the first content type, the second editing status type is different from the first editing status type, and the second editing status type represents the editing status of the second content type relative to the first content type, specifically comprising: 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; Acquire the position of the added content element relative to the adding operation in the first content information, and obtain the second address movable type from the address movable type library according to the position of the adding operation; According to the adding operation, obtaining the second version movable type from the version movable type library, obtaining the second editing state movable type from the editing state movable type library, the second version movable type is different from the first version movable type, the second version movable type represents the version number obtained after the adding 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 adding 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 second stored movable type.

3. According to the method of claim 1, the content elements in the second content information are encoded into second content movable type obtained from a content movable type library, at least one second address movable type corresponding to the first content movable type is configured for the second content movable type from an address movable type library, at least one second version movable type is configured for the second content movable type from a version movable type library, at least one second editing state movable type is configured for the second content movable type from an editing state movable type library, the second content movable type and the corresponding second version movable type, second address movable type, and second editing state movable type are stored as a second stored movable type, the second version movable type is different from the first version movable type, the second version movable type represents the edited version of the second content movable type relative to the first content movable type, the second editing state movable type is different from the first editing state movable type, and the second editing state movable type represents the editing state of the second content movable type relative to the first content movable type, specifically comprising: If deletion of at least one content element of the first content information is detected; Obtaining a first address character corresponding to the 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 status movable type are stored as the second storage movable type.

4. According to the method of claim 1, the content element in the second content information is encoded into a second content type obtained from a content type library, at least one second address type corresponding to the first content type is configured for the second content type from an address type library, at least one second version type is configured for the second content type from a version type library, at least one second editing status type is configured for the second content type from an editing status type library, the second content type and the corresponding second version type, second address type, and second editing status type are combined and stored as a second stored type, the second version type is different from the first version type, the second version type represents the edited version of the second content type relative to the first content type, the second editing status type is different from the first editing status type, and the second editing status type represents the editing status of the second content type relative to the first content type, specifically comprising: If it is detected that a modification operation is performed on at least one content element of the first content information; Encoding the content element after the modification operation into a second content movable type; Obtaining the first address movable type 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 editing state movable type are combined and stored as second stored movable type.

5. According to any one of the methods described in claims 1 to 5, the content type library includes a plurality of content typefaces representing content elements in the first content information, the address typeface library includes a plurality of address typefaces representing positions of content elements in the first content typeface in the first content information, the version typeface library includes a plurality of version typefaces representing unedited version numbers and edited version numbers of content elements in the first content typeface, and the editing status typeface library includes a plurality of editing status typefaces representing unedited status and edited status of content elements in the first content typeface.

6. A method for reading and editing information in DNA storage, comprising: M first storage movable characters and N second storage movable characters stored in combination are read, each first storage movable character includes a first version movable character, a first address movable character, a first content movable character and a first editing status movable character, each second storage movable character includes a second version movable character, a second address movable character, a second content movable character and a second editing status movable character, the first version movable character represents an unedited version of the first content suffix, the first address movable character represents the position of the content element corresponding to the first content movable character in the first content information, the first content movable character is encoded from the content element in the first content information, the first editing status movable character represents that the first content movable character is in an unedited state, the second content movable character is a content element obtained after an editing operation is performed on the first content information or an encoding movable character of a content element performed on the first content information, the second version movable character is different from the first version movable character, the second version movable character represents an edited version of the second content movable character relative to the first content movable character, the second editing status movable character is different from the first editing status movable character, and the second editing status movable character represents the editing state of the second content movable character relative to the first content movable 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 the 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 editing state movable type to obtain a first spliced ​​movable type, 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, further comprising: Obtaining the first splicing movable type; Generate a first editing instruction based on the first version type and the first editing state 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 editing state movable type to obtain a first spliced ​​movable type, 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, further comprising: Obtain the second splicing movable type; generating a second editing instruction based on the second version typeface and the second editing state typeface; 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 the DNA storage content information, and the first processor is used for calling the program code to execute the operation of any method described in claims 1 to 5.

10. A device 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 method described in claims 6 to 8.

Citation Information

Patent Citations

  • Method for using DNA to store text information, decoding method therefor and application thereof

    CN109074424A

  • Method for converting original file to active file

    CN109949858A

  • DNA movable type printing machine and DNA-based data storage device and method

    CN111680797A

  • DNA (deoxyribonucleic acid) type writing system and method

    CN114898806A

  • DNA movable type storage system and method

    US20230274793A1