Patent Description:
A DNA construct is an artificially constructed segment of nucleic acid created by inserting target DNA fragment(s) into a vector backbone, and is a vehicle for carrying target DNA fragment(s) into a target tissue or cell. Artificial plasmids are commonly used vectors for amplifying the target DNA fragment(s) in host organisms. Upon propagation in the host organisms, plasmids may then be isolated using various methods of plasmid preparation. Plasmids are widely used as vectors in biological studies involving gene function analysis, protein expression and genome editing.

The process of DNA construct design involves selecting a right position to insert a target DNA fragment. Due to the complexity of DNA construct design, it is desirable to conduct the design process using computer software. However, many existing computer software for designing DNA construct provide a user experience that is inflexible, unintuitive, and/or unguided. For example, the functionalities provided by the computer software are often limited, restricting construct design to only templates that has been known to work while providing no flexibility to design construct without pre-designed template. As another example, users, especially those who do not have advanced knowledge in DNA construct design or in the particular software, often find the user interface confusing and cumbersome to operate. Further still, these computer software lack adequate artificial intelligence to guide a user in the design process, for example, by automatically detecting errors in the user's design and providing tailored suggestions.

<NPL> discloses the software "Gene Designer" for fast and easy design of synthetic DNA segments. Likewise, <CIT> discloses software tools for designing and manipulating sequence elements in order to design polynucleotides encoding custom genetic constructs. However, neither of this prior art discloses convenient manipulation via drag-and-drop.

The present disclosure relates to a computer-implemented DNA construct design system providing a flexible, intuitive, and guided user experience. In some aspects, the system enables "part-based" construct design which, as discussed below, maximizes flexibility by freeing the user from having to design DNA constructs within a predefined framework or template. Further, the system provides an intuitive and natural user interface, for example, by allowing the user to conduct the design using simple inputs such as drag and drop (e.g., using a mouse or a touch-enable display screen). Further, the system automatically detects errors in the user's design via built-in design checking algorithms and provides notifications and suggestions accordingly.

In some embodiments, there is provided a computer-implemented method of designing a DNA construct that comprises: at an electronic device with a display, receiving an input selecting a vector backbone, wherein the vector backbone comprises a plurality of functional parts; in response to receiving the input selecting the vector backbone, displaying a graphical representation of the vector backbone; receiving an input selecting one or more functional parts of the plurality of functional parts of the vector backbone; after receiving the input selecting one or more functional parts on the vector backbone, receiving a drag-and-drop input comprising an indication of a functional part; in response to receiving the drag-and-drop input, updating the vector backbone based on the functional part indicated in the drag-and-drop input and the selected one or more functional parts of the plurality of functional parts of the vector backbone; and displaying a graphical representation of the updated vector backbone.

In some embodiments, the drag-and-drop input comprises a click and drag input made with a mouse.

In some embodiments, the drag-and-drop input comprises a tap and drag input made with a finger on a touch-sensitive display.

According to the invention, the graphical representation of the selected vector backbone includes a plasmid map, or a sequence map, or a combination thereof.

In one alternative according to the invention, the one or more functional parts includes an existing gene on the vector backbone, and updating the vector backbone comprises replacing the existing gene with the functional part indicated in the drag-and-drop input.

In the other alternative according to the invention, the one or more functional parts includes one or more cloning sites on the vector backbone, and updating the vector backbone comprises inserting the functional part indicated in the drag-and-drop input at a cloning site of the one or more cloning sites on the vector backbone.

In some embodiments, the electronic device receives an input including a search term corresponding to a functional part; and identifies one or more search results based on a plurality of databases.

In some embodiments, the plurality of databases includes a user-specific database, a system-specific database, a public database, or any combination thereof.

In some embodiments, while displaying the graphical representation of the updated vector backbone, the electronic device receives an input indicative of an error-checking request; in response to receiving the input indicative of the error-checking request, the electronic device identifies an error with the updated vector backbone; and provides an output indicative of the identified error.

In some embodiments, in response to receiving the drag-and-drop input, automatically the electronic device identifies the functional part indicated in the drag-and-drop input based on a plurality of databases; and based on the identifying, displays a graphical representation of the functional part indicated in the drag-and-drop input in accordance with one or more visual characteristics associated with the functional part.

In some embodiments, the plurality of functional parts include: a promoter; a gene of interest; a terminator; a tag; an antibiotic resistance; a cloning site; an origin; a reporter gene; a coding sequence ("CDS"); an activator; an enhancer; an intron; an repressor; a signal sequence; a terminal repeat sequence; a linker; or any combination thereof.

In some embodiments, there is provided an electronic device that comprises a display; one or more processors; a memory; and one or more programs. The one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for: receiving an input selecting a vector backbone, wherein the vector backbone comprises a plurality of functional parts; in response to receiving the input selecting the vector backbone, displaying a graphical representation of the vector backbone; receiving an input selecting one or more functional parts of the plurality of functional parts of the vector backbone; after receiving the input selecting one or more functional parts on the vector backbone, receiving a drag-and-drop input comprising an indication of a functional part; in response to receiving the drag-and-drop input, updating the vector backbone based on the functional part indicated in the drag-and-drop input and the selected one or more functional parts of the plurality of functional parts of the vector backbone; and displaying a graphical representation of the updated vector backbone.

In further aspects also described herein, there is provided a non-transitory computer-readable storage medium that stores one or more programs, the one or more programs comprising instructions, which when executed by one or more processors of an electronic device having a display, cause the electronic device to: receive an input selecting a vector backbone, wherein the vector backbone comprises a plurality of functional parts; in response to receiving the input selecting the vector backbone, display a graphical representation of the vector backbone; receive an input selecting one or more functional parts of the plurality of functional parts of the vector backbone; after receiving the input selecting one or more functional parts on the vector backbone, receive a drag-and-drop input comprising an indication of a functional part; in response to receiving the drag-and-drop input, update the vector backbone based on the functional part indicated in the drag-and-drop input and the selected one or more functional parts of the plurality of functional parts of the vector backbone; and display a graphical representation of the updated vector backbone.

In some embodiments, there is provided a computer-implemented method of error-checking a user-edited DNA construct that comprises: receiving, at an electronic device, an error-checking request on the user-edited DNA construct; in response to receiving the input, identifying a set of sequences in the user-edited DNA construct, wherein the set of sequences is not present in the original DNA construct; identifying a presence of one or more coding sequences (e.g., ORF and/or putative CDS) by comparing the set of sequences with a plurality of databases; identifying one or more errors in the identified one or more coding sequences based on a plurality of predefined rules; and displaying an output indicative of the one or more errors, wherein the user-edited DNA construct is edited based on an original DNA construct according to some of the above methods.

In some embodiments, the output comprises: a textual output; a graphical output; an auditory output; or any combination thereof.

In some embodiments, identifying one or more errors comprises identifies one or more invalid characters in the set of sequences.

In some embodiments, identifying the set of sequences in the user-edited DNA construct comprises: identifying a first sequence not present in the original DNA construct; identifying a second sequence not present in the original DNA construct, wherein the second sequence is within a predetermined distance from the first sequence in the user-edited DNA construct; merging the first sequence and the second sequence to obtain a third sequence, wherein the third sequence is part of the set of sequences.

In some embodiments, identifying one or more errors comprises: determining whether a stop codon is present within a coding sequence of the one or more coding sequences.

In some embodiments, identifying one or more errors comprises: determining whether a start codon is present before a coding sequence of the one or more coding sequences.

In some embodiments, identifying one or more errors comprises: determining whether two coding sequences of the one or more coding sequences are within a predefined distance in the user-edited DNA construct and whether the two coding sequences are of a same direction.

In some embodiments, in accordance with a determination that two coding sequences of the one or more coding sequences are within a predefined distance in the user-edited DNA construct and that the two coding sequences are of a same direction: the electronic device determines whether the two coding sequences are in-frame.

In some embodiments, in accordance with a determination that two coding sequences of the one or more coding sequences are within a predefined distance in the user-edited DNA construct and that the two coding sequences are of a same direction: the electronic device determines whether a stop codon is present between the two coding sequences.

In some embodiments, identifying one or more errors comprises: determining whether a promoter is present within a predefined distance with a coding sequence of the one or more coding sequences.

In some embodiments, in accordance with a determination that a promoter is present within a predefined distance with a coding sequence of the one or more coding sequences: the electronic device determines whether the promoter is of a same direction as the coding sequence.

In some embodiments, there is provided an electronic device that comprises one or more processors; a memory; and one or more programs. The one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for: receiving an error-checking request on a user-edited DNA construct; in response to receiving the input, identifying a set of sequences in the user-edited DNA construct, wherein the set of sequences is not present in the original DNA construct; identifying a presence of one or more coding sequences by comparing the set of sequences with a plurality of databases; identifying one or more errors in the identified one or more coding sequences based on a plurality of predefined rules; and displaying an output indicative of the one or more errors, wherein the user-edited DNA construct is edited based on an original DNA construct according to some of the above methods.

In further aspects also described herein, there is provided a non-transitory computer-readable storage medium stores one or more programs, the one or more programs comprising instructions, which when executed by one or more processors of an electronic device having a display, cause the electronic device to: receive an error-checking request on a user-edited DNA construct, wherein the user-edited DNA construct is edited based on an original DNA construct; in response to receiving the input, identify a set of sequences in the user-edited DNA construct, wherein the set of sequences is not present in the original DNA construct; identify a presence of one or more coding sequences by comparing the set of sequences with a plurality of databases; identify one or more errors in the identified one or more coding sequences based on a plurality of predefined rules; and display an output indicative of the one or more errors.

For a better understanding of the various described embodiments, reference should be made to the Description of Embodiments below, in conjunction with the following drawings in which like reference numerals refer to corresponding parts throughout the figures.

The following description sets forth exemplary methods, parameters, and the like. It should be recognized, however, that such description is not intended as a limitation on the scope of the present disclosure but is instead provided as a description of exemplary embodiments.

Although the following description uses terms "first," "second," etc. to describe various elements, these elements should not be limited by the terms. For example, a first graphical representation could be termed a second graphical representation, and, similarly, a second graphical representation could be termed a first graphical representation, without departing from the scope of the various described embodiments. The first graphical representation and the second graphical representation are both graphical representations, but they are not the same graphical representation.

The terminology used in the description of the various described embodiments herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used in the description of the various described embodiments and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term "and/or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms "includes," "including," "comprises," and/or "comprising," when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.

The term "if" is, optionally, construed to mean "when" or "upon" or "in response to determining" or "in response to detecting," depending on the context. Similarly, the phrase "if it is determined" or "if [a stated condition or event] is detected" is, optionally, construed to mean "upon determining" or "in response to determining" or "upon detecting [the stated condition or event]" or "in response to detecting [the stated condition or event]," depending on the context.

The present disclosure relates to a computer-implemented DNA construct design system providing a flexible, intuitive, and guided user experience. In some embodiments, the system enables "part-based" construct design which, as discussed below, maximizes flexibility by freeing the user from having to design DNA constructs within a predefined framework or template. Further, the system provides an intuitive and natural user interface, for example, by allowing the user to conduct the design using simple inputs such as drag and drop (e.g., using a mouse or a touch-enable display screen). Further, the system automatically detects errors in the user's design via built-in design checking algorithms and provides notifications and suggestions accordingly.

For purposes of the present disclosure, the basic unit of a DNA construct is called as a "part" or a "functional element". Parts are functionally ordered on the construct to realize functions like prorogation in bacteria. Examples of a part include, but are not limited to: a promoter, a gene of interest, a terminator, a tag, an antibiotic resistance, a cloning site, an origin, a reporter gene, a coding sequence ("CDS"), an activator, an enhancer, an intron, an repressor, a signal sequence , terminal repeat sequence, a linker, or any combination or subcombination thereof. Parts can be categorized by their functions. The exemplary categories are listed in Table <NUM>.

Construct can replicate in the host independently triggered by origin component. The cassette of bacteria selection marker, consisting of promoter and CDS of antibiotic gene, facilitates positive colony selection, by expressing an antibiotic gene (i.e., Ampicillin, Kanamycin). Multiple cloning site (MCS) is designed for cloning purpose, including inserting a target DNA fragment by restriction enzyme digestion. Regarding protein expression purpose, promoter (i.e., T7 promoter in E. coli expression vector, CMV in Mammalian expression vector) and terminator is harbored on the backbone at the upstream and downstream of coding sequence to initiate and stop transcription, respectively. In between is the target DNA segment inserted which is often coding sequence (CDS) such as ORF (Open Reading Frame) which is stated as a continuous stretch of amino acid codons, typically starting with a start codon (ATG) and ending with a stop codon (TAA, TAG, or TGA). To detect or isolate target proteins, tags (His tag, Flag tag) or reporters (i.e., GFP) are usually fused with target proteins, N-terminus or C-terminus. In other words, target protein is fused with a tag sequence or a reporter gene to express a fusion protein. To ensure the expression and function of the fusion protein, every single nucleotide should be in order to promise the correct translation, which is termed as "in-frame". In contrast, frame shift caused by in-del (insertion or deletion) will not lead to the target fusion protein as expected.

<FIG> and <FIG> illustrate exemplary techniques including exemplary user interfaces ("UI") for providing a DNA construct design system in accordance with some embodiments. These figures are also used to illustrate the processes described below, including the exemplary processes in <FIG>. The exemplary techniques and processes can be implemented using a variety of electronic devices with displays (e.g., touchscreen displays), such as laptops, desktops, tablets, portable/wearable devices, or a combination thereof. An exemplary computing device is illustrated in <FIG>.

<FIG> depicts an exemplary user interface <NUM> of a DNA construct design system. The user interface <NUM> includes a side menu section <NUM>, a database navigation section <NUM>, and a working space section <NUM>. The side menu section <NUM> includes multiple icons for accessing various functionalities and databases of the system. In particular, icons <NUM>, <NUM>, and <NUM> respectively correspond to three groups of databases, "My Projects", "The Commons", and "Global Resources", which are described in further detail below. Icon <NUM> corresponds to an "Add New" feature, which allows the user to start a new construct design or a new insert design.

The DNA construct design system provides a variety of databases to maximize the flexibility, simplicity, and efficiency of the design process. <FIG> illustrates an exemplary database structure of the system. As depicted, the database structure includes three groups of databases: user-specific databases (referred to as "My Projects"), system-specific databases (referred to as "The Commons"), and public databases (referred to as "Global Resource").

The user-specific databases include previous projects associated with (e.g., previously saved to) the user's account, including archived vectors and clones (referred to as "VectorArk" and "CloneArk" respectively), thus allowing the user to design and manufacture constructs based on previous orders. The system-specific databases are further grouped into three categories: "Popular Commercial Vector", "Part Library", and "ORF". "Popular Commercial Vector" includes commonly used vectors, listed and grouped by host (e.g., Bacterium, Baculovirus, Mammalian, Pichia and S. cerevisiae). Most can be employed to protein expression, while cloning vectors (pUC series) are also in the list. "Part Library" includes a unique collection of functional parts, such as frequently-used or validated vector elements and parts published in peer reviewed papers. "ORF" provides quick access to search for ORF. In some examples, the system-specific databases are periodically maintained and updated by the operators of the system. The public databases include a variety of external databases that the system makes available to the user. In the depicted example, the public databases include NCBI, which is a database center for biomedical and genomics research, and iGEM, which provides a collection of validated parts used in International Genetically Engineered Machine (iGEM) Competition.

Turning back to <FIG>, in the depicted example, the user selects the icon <NUM> (corresponding to "The Commons") in the side menu section <NUM>. Accordingly, the database navigation section <NUM> displays a nested list of system-specific databases for the user to view, search, and select from. Further, the working space section <NUM> displays a tab user interface <NUM> for creating a new DNA construct. The tab user interface <NUM> prompts the user to specify a name for the new construct and an initial vector backbone for the new construct. In some examples, the tab user interface <NUM> can be launched by selecting the icon <NUM> (corresponding to "Add New") in the side menu section <NUM>.

As depicted in <FIG>, the user expands the nested list in the database navigation section <NUM> to show a list of Mammalian vectors. Further, the user provides an input selecting a vector backbone, specifically, by providing a drag-and-drop input that drags a vector "pcDNA3. <NUM>(+)-C-DYK" from the database navigation section <NUM> into the "Backbone" command box <NUM> in the tab user interface <NUM> and selecting the "Create Construct" button <NUM>.

Turning to <FIG>, in response to the selection of the "Create Construct" button <NUM>, the tab user interface <NUM> displays two graphical representations of the selected vector backbone: a circular map (or plasmid map) <NUM> and a sequence map <NUM>. In the depicted example, the circular map is a visualization of the construct with functional parts annotated and displayed in color blocks while the rest regions are demonstrated as solid line. The color blocks on circular map represent validated parts, and can be easily selected by a click to trigger flash outline effect. The sequence map demonstrates the double strand DNA in base pair with the corresponding color blocks shown underneath.

As depicted in <FIG>, different types of parts can be distinguished with different visual characteristics (e.g., color, shape). For example, a flat petango in reddish orange (#f17c67) represents a coding sequence (AmpR), with orientation indicated by acute angle. In some examples, when displaying a graphical representation of a vector bone, the system automatically scans the vector bone to identify parts (e.g., based on the databases described with respect to <FIG>) and displays the identified parts based on the corresponding visual characteristics.

The tab user interface <NUM> also includes various tools for facilitating the design process. Function descriptions of exemplary tools are provided below.

For example, upon a user selection of the "Enzyme" button <NUM>, a number of cloning sites, along with the corresponding locations, (e.g., "HindIII (<NUM>)", "SacI (<NUM>)") are displayed in the circular map <NUM>, as shown in <FIG>.

The system allows the user to easily modify the vector backbone in the tab user interface <NUM>. Turning to <FIG>, the user selects a particular location on the vector backbone by selecting (e.g., clicking or tapping) a location on the sequence map <NUM>, as indicated by cursor <NUM>. The user then selects the "Sequence" button <NUM> to display a drop-down menu and selects the "Insert" option. As shown in <FIG>, a pop-up command box <NUM> is provided for the user to specify a sequence to insert at the selected location on the vector backbone. After the user selects the "OK" button on the command box <NUM>, the sequence map and the circular map are automatically updated to show the inserted content.

The system further allows the user to easily annotate any portion of the DNA construct. Turning to <FIG>, the user selects a portion of the vector backbone, as indicated by the highlighted portion <NUM> on the sequence map <NUM>. The user then selects the "Annotation" button <NUM> to display a drop-down menu (not depicted) and selects an option for adding an annotation. In response, a pop-up command box <NUM> is provided for the user to annotate the selected portion of the vector backbone and specify properties to be associated with the annotated portion. After the user selects the "OK" button on the command box <NUM>, the sequence map and the circular maps are automatically updated to show the selected portion as an annotated part (e.g., with a particular color or shape) based on the user-specified properties. In some examples, one or more user-specific databases are updated to include the annotated portion as a part.

The system further allows the user to add a part to a vector backbone using natural and intuitive input techniques, such as a drag-and-drop input. With reference to <FIG>, in the database navigation section <NUM>, the user searches for a gene of interest using the search term "tp53" in the ORF database to obtain a list of search results. Further, in the tab user interface <NUM>, the user selects a portion of the vector backbone, as indicated by the highlighted portion <NUM> on the circular map <NUM> and the highlighted portion <NUM> on the sequence map <NUM>. In the depicted example, the selected portion includes a group of adjacent cloning sites on the vector backbone. In some examples, the user makes the selection by interacting with either the circular map <NUM> (e.g., clicking or tapping a first region and dragging the cursor to a second region) or the sequence map <NUM> (e.g., double-clicking or double-tapping a region and dragging the cursor to a second region). The display of the two maps is synchronized such that a selection of one or more functional parts on one map is automatically reflected on the other map.

As depicted in <FIG>, the user drags the part "TP53" from the database navigation section <NUM> toward the tab user interface <NUM>, as indicated by the cursor <NUM>. When the user drops the part "TP53" onto the circular map <NUM>, the system updates the vector backbone by inserting the part "TP53" into the vector backbone at one of the selected cloning sites. The system also automatically updates the circular map and the sequence map to display the updated vector backbone. As shown in <FIG>, the circular map <NUM> now shows a vector backbone having a part "TP53" <NUM>.

In some examples, the drag-and-drop input comprises a click and drag input made with a mouse. For example, to drag an item, the user clicks on the item by depressing one or more buttons on the mouse and moves the mouse curser while holding the one or more buttons. To drop the item, the user moves the mouse curser to the desired location and releases the one or more buttons. In some examples, the drag-and-drop input comprises a tap and drag input made with a finger on a touch-sensitive display. For example, to drag an item, the user touches a displayed item using a finger to select the item and moves the finger on the touch-sensitive display. To drop the item, the user moves the finger to the desired location and lifts the finger away from the touch-sensitive display. In some examples, the system automatically scans the inserted part to identify properties associated with the part (e.g., type, direction, name) based on, for example, one or more of the databases described with respect to <FIG>. The system then displays the part in accordance with visual characteristics (e.g., color) pre-associated with the identified part. It should be appreciated that the user can drop the dragged part on either the circular map or the sequence map to insert the dragged part to the vector backbone.

With reference to <FIG>, in some examples, the user does not need to drop the selected part specifically onto the selected portion <NUM> or <NUM> to achieve the insert operation. Rather, the user can simply drop the part on any area on the circular map or the sequence map, and the system can automatically determine, based on the part being dragged (i.e., a gene of interest) and the parts being selected on the vector backbone (i.e., multiple cloning sites), that the user intends to insert the dragged part into the vector backbone. Further, the system can identify one cloning site of the selected multiple cloning sites based on predefined criteria (e.g., the closest to where the dragged part is dropped) and insert the part at the identified cloning site. In some examples, the system can automatically make suggestions to the user regarding proper sites for inserting the dragged part.

With reference to <FIG>, after modifying the vector backbone, the user initiates an error-checking request by selecting the "Check design" option <NUM>. In response to receiving the request, the system executes one or more error-checking algorithms to identify an error with the updated vector backbone. Turning to <FIG>, when an error is identified, the system displays an icon <NUM> indicating that an error has been identified. Upon a user selection of the icon <NUM>, a menu <NUM> that lists all identified errors is displayed. In some examples, interacting with (e.g., clicking, tapping) a displayed error message causes the system to display the sequence map or the circular map to display the portion of the DNA construct that contains the error. As such, the user can address the error by, for example, editing the portion, as shown in <FIG>.

In some examples, the system automatically executes error-checking algorithms without the user's selection of the "Check design" option. For example, the system can automatically execute error-checking algorithms when a certain type of change (e.g., insertion of a gene of interest) is made to the vector backbone. Further, when errors are identified, the system can automatically provide notifications of the identified errors and, if applicable, provide suggestions for correcting the errors.

<FIG> illustrates exemplary techniques including UIs for replacing an existing part on a vector backbone with a different part. With reference to <FIG>, in the database navigation section <NUM>, the user conducts a search using a search term "IL12" in the ORF database to obtain a list of search results. In the tab user interface <NUM>, the user selects (e.g., by clicking or tapping) an existing part "TP53" on the vector backbone, as indicated by the outline <NUM> on the circular map <NUM> and the outline <NUM> on the sequence map <NUM>. As discussed above, the user can make the selection on either the circular map or the sequence map (e.g., by clicking and double-clicking the color block, respectively) and the display of the two maps are synchronized such that making the selection on one map will be automatically reflected on the other map.

With reference to <FIG>, the user drags a part "IL12B", as indicated by cursor <NUM>, from the database navigation section <NUM> toward the tab user interface <NUM>. As depicted, while the user hovers the dragged part over the selected part "TP53" on the vector backbone, a pop-up message box <NUM> is displayed near the cursor, showing a message indicating the operation to be performed (i.e., "Replace <NUM> bp To <NUM> bp").

When the user drops the dragged part "IL12B" onto the circular map, the system automatically updates the vector backbone by replacing the part "TP53" with the dragged part "IL12B". The system also automatically updates the circular map and the sequence map to display the updated vector backbone. As shown in <FIG>, the circular map <NUM> now shows a vector backbone having a part "IL128" at the location where "TP53" was displayed. It should be appreciated that the user can drop the dragged part on either the circular map or the sequence map to achieve the replace operation.

In some examples, the system automatically scans the dragged part "IL12B" to identify properties associated with the part (e.g., type, direction, name) based on, for example, one or more of the databases described with respect to <FIG>. The system then displays the part in accordance with visual characteristics (e.g., color) pre-associated with the identified part.

With reference to <FIG>, in some examples, the user does not need to drop the dragged part "IL12B" directly onto the selected part "TP53" to achieve the replace operation. Rather, the user can simply drop the part on any area on the circular map or the sequence map, and the system can automatically determine, based on the part being dragged (i.e., a first gene of interest) and the part being selected on the vector backbone (i.e., a second gene of interest), that the user intends to replace the selected part on the vector backbone with the dragged part.

It should be appreciated that the UI flows described above are merely exemplary and that the system generally allows the user to provide inputs using natural and intuitive input techniques and is able to derive the intended operation based on such inputs. For example, the system can allow the user to copy an existing part on the vector backbone and insert the copied part at another location on the vector backbone. As another example, the user can drag a part from the database navigation section onto an existing part on the vector backbone even if the existing part is not pre-selected, and the system can derive the intended operation (e.g., insert, replace) based on the properties associated with the parts. It should be further appreciated that any of the user edits above (e.g., inserted parts, annotations) can be undone or cancelled.

<FIG> illustrate exemplary error-checking algorithms of the DNA construct design system, according to some examples. The ultimate goal of making a construct is to obtain a functional vehicle with biological purposes, which implies that the components (parts), their connections (orders), and the interactions are worth our knowledge, experience and time to check. Due to inconsistent levels of molecular background in the user base and the limitation of human power in checking base pairs represented by A/T/G/C, it is urgent to develop a computer program to relieve researchers from such tedious steps. Further, it is important to optimize the error-checking algorithms such that, when executed, the error-checking process is conducted in a comprehensive, accurate, and efficient manner. Thus, the error checking program is developed based on the summarization of rule sets.

<FIG> provides an overview of error-checking process. At block <NUM>, the process starts when the user selects the "Check design" option, for example, as depicted in <FIG>. At block <NUM>, the system screens the current sequence and compares the current sequence with the original vector backbone. At block <NUM>, the system locates all the regions with differences and records the corresponding sequences and positions. At block <NUM>, the system screens the current sequence for invalid characters (i.e., characters other than "A", "T", "G", "C" and "N"). At block <NUM>, the system screens the current sequence for putative CDS/ORF. At block <NUM>, the system screens the current sequence, including the identified putative CDS/ORF, for errors. At block <NUM>, the system summarizes error messages and removes duplicates. At block <NUM>, the process ends by displaying error messages.

<FIG> illustrates an exemplary process of defining sequences for checking as indicated in block <NUM> of <FIG>. As shown in <FIG>, the system records the original backbone and the current sequence to obtain the edited sequence which will be the target region(s) for further procedures. The interface screens for both <NUM>' and <NUM>' flanking regions in order to provide more accurate judgements on potential design errors. For example, if user inserts an ORF sequence into the position between BamHI and EcoRI of pcDNA <NUM>(+)-C-DYK, the interface would check the <NUM>' flanking region and then realize that Flag tag might be fused with the insertion, consequently, to check whether the stop codon of the ORF is deleted and the region between ORF and Flag tag is a multiplier of <NUM> to ensure in-frame fusion. In brief, the flanking regions of both terminuses will literally facilitate the error checking.

<FIG> illustrates an exemplary process of "putative CDS/ORF screening", which corresponds to block <NUM> of <FIG>. The system can annotate the target region(s) based on the databases described with respect to <FIG>, for example, the human and mouse ORF database and the built-in part library consisting of thousands of parts. In addition, the system can screen for putative CDS by means of open reading frame frameshift translation (both <NUM>' to <NUM>' and <NUM>' to <NUM>') and recognize ORF by blast against NCBI ORFdatabase. ORF has been widely used for biological research, indicating that a tool integrated with ORF identifier function can improve researcher's efficiency by reducing the labor/time to annotate by blasting at NCBI website. In addition, ORF identifier and putative CDS screening are dual insurance to eliminate unintentional mistakes such as insertion and deletion.

<FIG> illustrates an exemplary process of identifying potential functional errors that may affect the biological functions of the construct, which corresponds to block <NUM> of <FIG>. As depicted, the construct design logics and rules include checking whether there is any internal (e.g., stop codon) detected within a CDS or fused CDS, whether there is a valid promoter for the CDS and whether the direction of promoter and CDS is the same, whether there is a start codon, whether the fused protein of two or more CDS is in-frame (e.g., whether the distance between the two CDS is a multiplier of <NUM>), and whether the fused CDSs are of the same direction.

There are three types of messages for indicating issues discovered in the error-checking process: Information, Warning, and Error. Error messages are issues that need to be corrected. Warning messages are issues that may affect biological functions of the construct. Information messages inform the user of invalid characters in the sequence which may lead to unsuccessful gene synthesis order placing. All error messages and warning messages are provided to the user, for example, via the menu <NUM> of <FIG>. Exemplary messages are provided below.

<FIG> illustrates processes <NUM> and <NUM>, respectively, for providing a DNA construct design system, according to various examples. Processes <NUM> and/or <NUM> are performed, for example, using one or more electronic devices implementing a software platform. In some examples, processes <NUM> and/or <NUM> are performed using a client-server system, and the blocks of processes <NUM> and <NUM> are divided up in any manner between the server and a client device. In other examples, the blocks of processes <NUM> and/or <NUM> are divided up between the server and multiple client devices. In other examples, processes <NUM> and/or <NUM> are performed using only a client device (e.g., device <NUM>) or only multiple client devices. In processes <NUM> and/or <NUM>, some blocks are, optionally, combined, the order of some blocks is, optionally, changed, and some blocks are, optionally, omitted. In some examples, additional steps may be performed in combination with the processes <NUM> and/or <NUM>. Accordingly, the operations as illustrated (and described in greater detail below) are exemplary by nature and, as such, should not be viewed as limiting.

In the process <NUM>, at block <NUM>, an electronic device with a display receives an input selecting a vector backbone, wherein the vector backbone comprises a plurality of functional parts. At block <NUM>, in response to receiving the input selecting the vector backbone, the electronic device displays a graphical representation of the vector backbone. At block <NUM>, the electronic device receives an input selecting one or more functional parts of the plurality of functional parts of the vector backbone. At block <NUM>, after receiving the input selecting one or more functional parts on the vector backbone, the electronic device receives a drag-and-drop input comprising an indication of a functional part. At block <NUM>, in response to receiving the drag-and-drop input, the electronic device updates the vector backbone based on the functional part indicated in the drag-and-drop input and the selected one or more functional parts of the plurality of functional parts of the vector backbone. At block <NUM>, the electronic device displays a graphical representation of the updated vector backbone.

In the process <NUM>, at block <NUM>, an electronic device receives an error-checking request on a user-edited DNA construct, wherein the user-edited DNA construct is edited based on an original DNA construct. At block <NUM>, in response to receiving the input, the electronic device identifies a set of sequences in the user-edited DNA construct, wherein the set of sequences is not present in the original DNA construct. At block <NUM>, the electronic device identifies a presence of one or more coding sequences by comparing the set of sequences with a plurality of databases. At block <NUM>, the electronic device identifies one or more errors in the identified one or more coding sequences based on a plurality of predefined rules. At block <NUM>, the electronic device displays an output indicative of the one or more errors.

The operations described above with reference to <FIG> are optionally implemented by components depicted in <FIG>. It would be clear to a person having ordinary skill in the art how other processes are implemented based on the components depicted in <FIG>.

<FIG> illustrates an example of a computing device in accordance with one embodiment. Device <NUM> can be a host computer connected to a network. Device <NUM> can be a client computer or a server. As shown in <FIG>, device <NUM> can be any suitable type of microprocessor-based device, such as a personal computer, workstation, server or handheld computing device (portable electronic device) such as a phone or tablet. The device can include, for example, one or more of processor <NUM>, input device <NUM>, output device <NUM>, storage <NUM>, and communication device <NUM>. Input device <NUM> and output device <NUM> can generally correspond to those described above, and can either be connectable or integrated with the computer.

Input device <NUM> can be any suitable device that provides input, such as a touch screen, keyboard or keypad, mouse, or voice-recognition device. Output device <NUM> can be any suitable device that provides output, such as a touch screen, haptics device, or speaker.

Storage <NUM> can be any suitable device that provides storage, such as an electrical, magnetic or optical memory including a RAM, cache, hard drive, or removable storage disk. Communication device <NUM> can include any suitable device capable of transmitting and receiving signals over a network, such as a network interface chip or device. The components of the computer can be connected in any suitable manner, such as via a physical bus or wirelessly.

Software <NUM>, which can be stored in storage <NUM> and executed by processor <NUM>, can include, for example, the programming that embodies the functionality of the present disclosure (e.g., as embodied in the devices as described above).

Software <NUM> can also be stored and/or transported within any non-transitory computer-readable storage medium for use by or in connection with an instruction execution system, apparatus, or device, such as those described above, that can fetch instructions associated with the software from the instruction execution system, apparatus, or device and execute the instructions. In the context of this disclosure, a computer-readable storage medium can be any medium, such as storage <NUM>, that can contain or store programming for use by or in connection with an instruction execution system, apparatus, or device.

Software <NUM> can also be propagated within any transport medium for use by or in connection with an instruction execution system, apparatus, or device, such as those described above, that can fetch instructions associated with the software from the instruction execution system, apparatus, or device and execute the instructions. In the context of this disclosure, a transport medium can be any medium that can communicate, propagate or transport programming for use by or in connection with an instruction execution system, apparatus, or device. The transport readable medium can include, but is not limited to, an electronic, magnetic, optical, electromagnetic or infrared wired or wireless propagation medium.

Device <NUM> may be connected to a network, which can be any suitable type of interconnected communication system. The network can implement any suitable communications protocol and can be secured by any suitable security protocol. The network can comprise network links of any suitable arrangement that can implement the transmission and reception of network signals, such as wireless network connections, T1 or T3 lines, cable networks, DSL, or telephone lines.

Claim 1:
A computer-implemented method of designing a DNA construct, comprising:
at an electronic device with a display,
receiving an input selecting a vector backbone, wherein the vector backbone comprises a plurality of functional parts;
in response to receiving the input selecting the vector backbone, displaying a graphical representation of the selected vector backbone, wherein the graphical representation of the selected vector backbone includes a plasmid map and an optional sequence map;
receiving an input selecting one or more functional parts of the plurality of functional parts of the vector backbone;
after receiving the input selecting one or more functional parts on the vector backbone, receiving a drag-and-drop input comprising an indication of a functional part;
in response to receiving the drag-and-drop input, updating the vector backbone based on the functional part indicated in the drag-and-drop input and the selected one or more functional parts of the plurality of functional parts of the vector backbone, wherein (i) in case the one or more functional parts includes an existing gene on the vector backbone, updating the vector backbone comprises replacing the existing gene with the functional part indicated in the drag-and-drop input, and/or (ii) in case the one or more functional parts includes one or more cloning sites on the vector backbone, updating the vector backbone comprises inserting the functional part indicated in the drag-and-drop input at a cloning site of the one or more cloning sites on the vector backbone; and
displaying a graphical representation of the updated vector backbone.