The DOT format was originally created in the early 2000s to represent graph topologies, layouts and formatting. DOT-encoded files are produced and consumed by a number of open-source graph applications, including Graphviz, Gephi, Tulip, and others. While DOT-based graph applications are popular, they emphasize general graph layout and styling over the topological and semantic analysis functions available in domain-focused applications such as Cytoscape. While domain-focused applications have easy access to large networks  and advanced analysis and formatting, they do not have as many styling options as the Graphviz software suite. dot-app enables the interchange of networks between Cytoscape and DOT-compatible applications so that users can benefit from the features of both. dot-app was first deployed to the Cytoscape App Store in August 2015, has since registered more than 1,200 downloads, and has been highly rated by more than 20 users. It enables users to discover and load curated and uncurated networks representing molecular and genomic interactions, load ad-hoc or custom networks, and share networks that others have created. Once networks are loaded, users can manually annotate a network or automatically integrate annotations using a number of algorithms and databases. Users can perform a number of graph-oriented and semantic-aware analyses ranging from graph statistics to motif and cluster discovery to upstream and downstream structural and functional inferences. Users can also perform a number of complex graph filtering and layout operations to drive and focus the semantic understanding of network interactions and structure.CytoscapeEven beyond analysis and layout, users commonly derive and demonstrate network meaning by using visual cues to distinguish relationships and attributes. For this, Cytoscape provides a visual style system that enables users to paint nodes and edges using color, border thickness, size, fonts, arrows, and other devices.http://apps.cytoscape.org). The store contains 319 apps (June 2017) that provide a range of functionality from file import/export to analysis to visualization and publishing. Based on the success of the combination of Cytoscape core and downloadable apps, Cytoscape is downloaded approximately 14,000 times per month worldwide and is started approximately 3,000 times each working day. As of 2015, Cytoscape has been cited in 700 academic peer-reviewed papers per year.Much of the power and functionality of Cytoscape is delivered as apps available in the Cytoscape App Store  and NNF (.nnf). Other file formats, such as GEXF (.gexf) and XGMML(.xgmml), include varying amounts of visual information. Our primary motivation for creating dot-app was to extend Cytoscape’s interoperability to users that primarily use Graphviz software. Prior to dot-app, a user would either have to convert the network to a file format compatible with Cytoscape or attempt to manually reconstruct the network. Converting a DOT file into a Cytoscape network by use of an intermediary file format is an inherently bad process because each conversion results in a loss of some data. Furthermore, reconstructing a graph manually in Cytoscape might not be too difficult for a simple graph with few nodes and edges, but reconstruction would become more time consuming for larger networks which have nodes of distinct visual properties since each node would have to be created one at a time and these visual properties have to be set separately for each node if there is no underlying data to which the visual properties can be mapped. With dot-app, we minimize information loss by providing a direct conversion from DOT to a Cytoscape network and we reduce the time needed to reconstruct the DOT network in Cytoscape.While Cytoscape is the dominant network analysis and visualization platform in bioinformatics, it is not the only platform. To support interoperability with a number of network-oriented workflows and applications, Cytoscape offers a number of natively supported file import/export modules, and leverages a number of them that are available as apps in the App Store. Some of these file formats3 is a popular, well-established graph visualization software suite that produces DOT  files containing graph structure, layout, and styling information; and uses these files to output these networks in a variety of file formats. These files adhere to the DOT language syntax (http://www.graphviz.org/doc/info/lang.html). In this paper, we use “DOT file/network” and “Graphviz file/network” interchangeably. Due to Graphviz’s continued usage, many graph visualization and analysis applications support the import and export of DOT files.Graphvizhttp://www.cs.rpi.edu/research/groups/pb/punin/public_html/XGMML/) and GEXF (http://www.gexf.net/format/index.html), which are two file formats that support visual information such as node shapes and line types. In comparison to GEXF and XGMML, the DOT format defines more node shapes, arrow shapes, and has unique features such as gradients for node colors and edges painted with multiple colors.As mentioned earlier, Cytoscape provides support for XGMML . While in the “Install Apps” tab, type dot-app in the search bar. Make sure the download site isA Graphviz network can be imported in three ways: from the welcome screen (via the “From Network File…” button), from the menu (“File->Import->Network->File…”), or from the toolbar (by clicking the “Import Network from File” button).https://marc.info/?l=graphviz-devel&m=129418103126092). From this point, importing a Graphviz network is the same as importing a network from any of Cytoscape's accepted file formats. Those steps are detailed in the Cytoscape User Manual .Users are presented with a file browser dialog titled “Network file to load” as in. The useTo export a Cytoscape network as a Graphviz network, use “Export -> Network and View” from the menu. Selecting “GraphViz files ” in the Export dialog launches dot-app and prompts the user to choose from three options, as shown inPick edge style. Cytoscape provides edge-routing capabilities that cannot be conserved during the export process, so dot-app provides three edge routing options: “Straight segments”, “Curved segments”, and “Curved segments routed around nodes”. These options change the value of the “splines” attribute that appears in the exported Graphviz file. The Graphviz file for a network exported from Cytoscape is shown below, and the attribute modified by the “Pick Edge Style” option is underlined and in bold.splines = "false"                                                    outputorder = "edgesfirst"esep = "0"pad = "2"node edge "Node 1§64" "Node 2§66" "Node 3§68" "Node 4§70" "Node 1§64" -- "Node 2§66""Node 2§66" -- "Node 4§70""Node 1§64" -- "Node 3§68"}graph example {bgcolor = "#FFFFFFFF"                        Pick node label location. Graphviz does not offer the flexible label placement that Cytoscape offers. As such, dot-app gives the options of “Center,” “Top,” “Bottom,” and “External” to allow the user to specify the label location applied to every node. In the output Graphviz file, the “Center”, “Top”, and “Bottom” options change the value of the “labelloc” attribute that appears in the node default attribute list. The options respectively change the value to “c”, “t”, and “b”. In contrast, the “External” option causes the node labels to set the “xlabel” attribute instead of the “label” attribute in the output Graphviz file. The “xlabel” attribute causes the label to be placed in a location near its node that does not cause it to overlap with any other nodes or labels.Pick network label location. dot-app provides the options “No network label,” “Top,” and “Bottom” to allow the user to specify whether the network itself should be labeled and, if so, where the label is placed. The options “Top” and “Bottom” cause the “labelloc” attribute and “label” attribute for the graph to be written to the output Graphviz file. Furthermore, the “label” attribute will be set to the network’s name in Cytoscape. In contrast, the “No network label” option omits both the “labelloc” attribute and the “label” attribute.http://www.alexander-merz.com/graphviz/). We use JPGD to read the DOT file and create a JPGD data model of the graph or collection of graphs in the file. A JPGD Graph object is created for each graph in the file, a JPGD Node object for each node, and a JPGD Edge object for each edge. Each JPGD object contains the DOT attributes for the graph element they represent.http://www.alexander-merz.com/graphviz/doc.html).For the import function of dot-app, we used Java-based Parser for Graphviz Documents (JPGD), a Graphviz document parser made by Alexander Merz , but a few of the attributes either affect multiple visual properties at once  or a conversion needs to performed on their values  due to the fact that the information is stored differently between the DOT model and the Cytoscape model. If a DOT attribute is assigned a value that does not have an equivalent value for the corresponding Cytoscape visual property, then the DOT attribute is ignored. The “weight” DOT attribute is imported as an Edge table attribute  because no corresponding Cytoscape visual property exists. The DOT attributes listed in File 1 of the Supplementary Material are ignored and have no effect on the visualization in Cytoscape.Node DOT attributes.Edge DOT attributes.The “style” DOT attribute. The “style” DOT attribute applies to both nodes and edges. The attribute takes a comma-separated list of keywords as its value. These keywords directly affect which Cytoscape visual properties are modified.The “weight” DOT attribute. During the import of a network using dot-app, a weight column is added to the Cytoscape network’s edge table. If the “weight” attribute is supplied for an edge, its value is assigned to the weight column entry for the edge.The The “height” and “width” DOT attributes. In the DOT language, the height and width of nodes are specified in inches. However, the height and width of nodes are specified in points in Cytoscape. During both import and export we handle the necessary unit conversion (1 in = 72 pts) in order to maintain the correctness of the graph.Unsupported DOT features. The following features of Graphviz arenot supported in the import:1. HTML-like Labels2. not supportedexcept the following: triangle, diamond, ellipse, hexagon, octagon, parallelogram, rectangle, rect, box, and square. Msquare, Mcircle, and Mdiamond will be rendered the same as square, circle, and diamond respectively.All node shapes are3. not supportedexcept the following: vee, lvee, rvee, dot, normal, diamond, none, and tee. The arrow shapes odot, onormal, and odiamond will be rendered the same as dot, normal, and diamond respectively.All arrow shapes are4. Edge curves. The value of the “pos” attribute is ignored when it is used as an attribute for edges, so dot-app will render edges only as straight lines between nodes.5. The brewer colors chemes when using the “colorscheme” attribute.6. The “tapered” and the “bold” edge style keywords7. The “bold”, “diagonals”, “striped”, and “wedged” node style keywords8. Default attribute values when grouping nodes with subgraphs. Only the default attribute values set within the root graph are considered.9. Record-based Nodes. The label will not cause the node to become sectioned10. Clusters11. Edges that are rendered as colored parallel lines: These are made by assigning a color list without weights to the “color” attribute.12. Edges that are rendered as colored segments in series. These are made by assigning a color list with weights to the “color” attribute.13. Gradients applied to the network backgroundUnsupported Cytoscape features. When exporting the network as a GraphViz file, some Cytoscape information is lost because it cannot be represented in DOT format. dot-app does not keep a log of the information that is not transferred to the Graphviz file. The following information is lost:Visual information1. Custom graphicsa. Images on nodesb. Charts on nodes2. Edge bends3. Nested network images contained in nodes4. Arrowhead colors (they will appear the same color as the edge itself)5. Certain line typesa. Dash dotb. Contiguous arrowc. Backward slashd. Separate arrowe. Sinewavef. Vertical slashg. Zigzagh. Forward slashi. Parallel lines6. Label positioninga. Edge labels only go on the midpoint of the edgesb. Node label positions are selected at export7. The V node shape8. Target arrow shapea. Target arrow shape does not appear if set as a default (this was a bug in Cytoscape v3.2 that has been fixed since v3.3)9. All annotationsNon-visual information1. Node group information 2. All table dataDetailed below are two cases for dot-app. The first use case describes how a DOT file can be imported into Cytoscape. The second use case describes how a Cytoscape network can be exported as a DOT file. The DOT file used for import, the Cytoscape session file of the network, and the DOT file generated by dot-app during export are contained in ZIP 1 of theOur first use case details how we would use dot-app to view a Graphviz-created network in Cytoscape. We used Graphviz’s neato utility to create a DOT file with layout information and a PNG of the resulting network. The DOT file is shown below, andgraph toy_example {graph ;node ;   1     ;   2     ;   2 -- 1     ;   3     ;   3 -- 1     ;   3 -- 2     ;   4     ;   4 -- 2     ;   4 -- 3     ;}                                            In this second use case, we export the network ingraph toy_example {bgcolor = "#FFFFFFFF"splines = "false"outputorder = "edgesfirst"esep = "0"pad = "2"node  edge "4§62" "3§63" "2§64" "1§65" "4§62" -- "3§63" [color = "#404040FF"]"4§62" -- "2§64" [color = "#404040FF"]"3§63" -- "2§64" [color = "#404040FF"]"3§63" -- "1§65" [color = "#404040FF"]"2§64" -- "1§65" [color = "#404040FF"]}                                            https://docs.oracle.com/javase/tutorial/2d/text/fonts.html#logical-fonts). It is a font name that the Java Runtime Environment used and that maps to a physical font. When neato encounters the font name, it attempts to find an actual font named “Serif.plain”; if it cannot find one, it uses a default font.In order to prevent labels from appearing cut off, dot-app adds a padding of 2 inches to its output file. The difference in the labels’ font is due to the font chosen in Cytoscape. In the output file shown above, we can see that the fontname attribute for the node default list is set to “Serif.plain”. This font is not an actual font family; rather, it is one of Java’s logical fonts  and wrote our own DOT files. We then ran Graphviz’s neato utility on these files to generate DOT files that contained layout information and PNG files to use as references. We then imported the DOT files to Cytoscape and visually compared the Graphviz-created PNG files to the Cytoscape display to validate the import process of dot-app.For import, we downloaded DOT files from Graphviz’s gallery page (https://github.com/cytoscape/cytoscape-tests/blob/master/docs/Session-Files/Session%20Files.md) into Cytoscape and exported individual networks from these sessions to DOT files, and then used Graphviz’s neato utility to create PNG files from these. We visually compared neato’s PNG output to the Cytoscape display to determine the correctness and completeness of the Cytoscape-to-DOT translation.For export, we loaded Cytoscape test session files . If the test examples do not work with the app there will be issues with real world examples. It is stated "We verified the dot-app import and export functions separately. All of the files we used in testing are found in ZIP 2 of the Supplementary Material." This seems not to be the case. Please fix the issue https://github.com/idekerlab/dot-app/issues/15 [2] The app cannot be build from the provided repository after a clone. This is reported at https://github.com/idekerlab/dot-app/issues/14 Please fix this issue. This is related to my initial review where I reported this issue.I have read this submission. I believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard. We are satisfied that the authors have adequately addressed our comments in this new version.We have read this submission. We believe that we have an appropriate level of expertise to confirm that it is of an acceptable scientific standard. The article introduces an app to import/export Graphviz (.gv-.dot) files to/from Cytoscape. Since the Graphviz format is of wide usage, the app is very useful to the community. The article is well-written and the user-guide is complete and easy to read.  As minor comments I ask more details about which characteristics can be lost passing from a format to another. I tried some network choosing them randomly from internet, and sometimes I lost features that I didn't expect to lose. A table explaining which features are preserved and which not will be very useful in the paper. If there are problem of space maybe the implementation details can be described in supplementary materials and not in the main paper. The table should contains also short comments about the missing features that can be added in the future, and the problem that can be encountered implementing those characteristics that are not of immediate conversion. I think that with these updates the paper is suitable for indexing.I have read this submission. I believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard. Thank you Dr. Scardoni for your comment. We will take your valuable suggestions into consideration while we are refining the article. We appreciate your effort in examining the dot-app and the article for us in detail. dot-app is a Cytoscape App that enables the inter-conversion of Graphviz and Cytoscape formatted files. As far as we are aware no similar application exists and this is therefore a potentially useful development. We found no problems with the usage of the app; it integrates well into Cytoscape, and can convert back and forth between formats without issue aside from the loss of information which is documented in the article. The code is readable and very well commented. We did have an issue when compiling from source, however. The DOT parsing jar from Alex Merz isn't being included properly when Maven builds the project. The major concern we had was that the concept for the application is really very straight-forward and following on from this, its functionality is therefore pretty limited. We wondered initially whether there was really a need for such an application, however, dot-app has been downloaded >1200 times so there is obviously a market for the tool. A remaining question, however, is whether the app justifies a 10-page paper? The paper itself reads a bit more like documentation and we would have preferred to have seen a more concise paper introducing the concepts together with more detailed documentation. We think that the paper could also benefit from a better discussion in the introduction of the motivation behind the development of dot-app. Can you give examples where one would want to create a network in one format and then convert it to another? How hard would it be to manually re-create the visualisation in Graphviz/Cytoscape? The application also appears very reliant on the parser developed by Alex Merz (this is not referenced properly). It would be good to clarify how much of the functionality is provided by this parser and how much is extended by dot-app. A key limitation of the app is that many of features of either format are lost when converting between them. This is because there isn’t an equivalent feature in the other format. It is good that the authors are clear about which ones cannot be converted but this problem still means that manual intervention would likely be needed to customise the desired style. One thing that could be improved is how the implicit default values are handled by dot-app. Couldn’t you set reasonable values for these if they are not specified in a particular visualisation to enable more faithful conversion of the visualisation style? One final concern is that it is very likely that the visual styles in both Graphviz and Cytoscape will continue to evolve over time. How will dot-app keep pace with these changes? Have the authors considered trying to get the Graphviz and Cytoscape communities to adopt at least the equivalent visual style features in both applications? Or at least to indicate in the Cytoscape and Graphviz documentation what is the equivalent feature (when there is one). Minor comment: Under Operation it would be good to start by explaining how to install the App (for novice Cytoscape users).We have read this submission. We believe that we have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however we have significant reservations, as outlined above. Thank you Dr. David Lynn and Dr. John Salamon for your comments. We completely agree with your suggestions, and we'll add those  to our article. Please expect to see the changes you recommended in the second version of our article. The article "dot-app: a Graphviz-Cytoscape conversion plug-in" is well written and describes background, implementation and use of the application in a comprehensible way. ## major comments "The differences that arise between the Graphviz network and the Cytoscape network stem from how the two programs handle implicit default values. If a DOT attribute is omitted from the DOT file when using a Graphviz utility, an implicit default value for that attribute is used. The list of DOT attributes and their default values can be found on the Graphviz website (http://www.graphviz.org/content/attrs.html)." -> The implicit dot default values should be used as default values in dot-app for the Cytoscape styles. Users of the dot language rely on the default values and expect rendering tools to use them. -> Especially, in combination with dot-app writing the Cytoscape default values in the exported dot this results in unnecessary changes of the graph rendering in the round trip (dot -> cytoscape -> dot). This round trip should introduce minimal changes to the rendering. Dot default values should be used and the respective text passage and figure be updated. ## minor comments >>> In the implementation all visual styles are hard coded in the visual mapping via bipasses. It would be better to create node attributes for the dot attributes and subsequently use them in visual styles. In this way users have access to the dot attributes, can use them in other visual mappings, create derived node attributes from them, or use them in analyses. >>> It is unclear how dot height and width are transformed to Cytoscape node height and width. There is some scaling factor, but how this is actually handled should be described in the manuscript. What information is lost in the roundtrip due to scaling. For instance height = "0.486111",width = "1.041667" result in height > 40 in Cytoscape. >>> The dot node font color is not rendered correctly. See: https://github.com/idekerlab/dot-app/issues/7 >>> Saving as *.gz always adds the .dot extension so that files are called *.gz.dot. If the user selects "name.gz" the file should be saved as 'name.gz', not as 'name.gz.dot'. >>> p5 "For the import function of dot-app, we used Java-based Parser for Graphviz Documents (JPGD), a Graphviz document parser made by Alexander Merz(5)" -> reference missing/wrong. There should be a reference for (5). >>> p5 "After JPGD creates the model objects, dot-app creates a corresponding " -> something wrong with first half-sentence, probably better: "After JPGD has created the model objects, ... >>> p6 "All other DOT attributes are ignored during the import process and have no effect on the visualization in Cytoscape." If the ignored DOT attributes can be listed, state them in the manuscript as list. This is very helpful to see what information should not be used in dot files if one wants full Cytoscape support of the file. If the unsupported attributes are only the features listed in "Unsupported DOT features" than this should be clearly stated. >>> p2 "The store contains nearly 300 apps that ..." At the state of review this is already >= 300. Add a date to the statement: -> The store contains nearly 300 apps (October 2016) that ... >>> Add reference for graphviz software/url see for instance http://www.graphviz.org/content/citing-graphviz-paper The preferred citation is @ARTICLE{Gansner00anopen,     author = {Emden R. Gansner and Stephen C. North},     title = {An open graph visualization system and its applications to software engineering},     journal = {SOFTWARE - PRACTICE AND EXPERIENCE},     year = {2000},     volume = {30},     number = {11},     pages = {1203--1233} } and the URL is www.graphviz.org >>> p8 use cases Provide the *.gv files and Cytoscape files of the use cases in the supplement. This will provide the necessary materials to follow the provided examples. I tried to save the files from the pdf which did not work (due to line breaks in pdf), copying the examples from the HTML version of the manuscript worked. Adding the two example files to the supplementary information will improve this. >>> p9 testing Provide the url/repository for the test files and test results. There should be a page which shows all the comparison images with the respective dot files. In the article it is mentioned that this exists, but no resource is given for the test files and test results. >>> p9 conclusion "This article describes the dot-app Cytoscape app, which enables a user to import a DOT-formatted **here** into Cytoscape" -> word missing >>> p9 conclusion "we recognize that future versions of Cytoscape may introduce new visual effects" -> formulation. Better: 'visual shapes and styles", visual effects are something else. >>> p9 conclusion "we recognize that future versions of Cytoscape may introduce new visual effects  that present opportunities for rendering DOT files more truly or for the loss of formatting information if the DOT format cannot represent them." -> second half of sentence does not make sense (... or for the loss of formating). Please reformulate to clarify what is meant. >>> The github release corresponding to the zenodo code is missing. The latest github release is 0.9.1 on 11.September, the zenodo was created in February. This makes it difficult to try to build the app from the mentioned source code, by checking out a corresponding tag. Which version is packed in zenodo? 0.9.2 ? Also the current app version in the app store is 0.9.3, but there is no 0.9.3 release on github. Please create a github release which is corresponding to the zenodo release and the mentioned code state of the publication. >>> I was unable to build the app from latest source code. The app is working via the app store, but in addition it should be possible to build the latest source code. https://github.com/idekerlab/dot-app/issues/8 git clone https://github.com/idekerlab/dot-app.git mvn clean install results in [INFO] Compiling 16 source files to /home/mkoenig/git/dot-app/target/classes [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 7.250 s [INFO] Finished at: 2016-10-31T12:48:57+01:00 [INFO] Final Memory: 21M/238M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project dot-app: Compilation failure: Compilation failure: [ERROR] /home/mkoenig/git/dot-app/src/main/java/org/cytoscape/intern/read/reader/NodeReader.java: error: package com.alexmerz.graphviz.objects does not exist [ERROR] ... This should be fixed, I would recommend to setup some Continous Integration with travis to make sure the latest version always builds. see https://github.com/idekerlab/dot-app/issues/8I have read this submission. I believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above. Thank you so much Dr. Matthias König for your insightful comments. We really appreciate your efforts of carefully testing the dot-app features and throughly examining our article. We thank you for bringing the problems you found to our attention. While waiting for another referee's upcoming peer review report, we will take a close look into the issues and address them for our next version. This article describes a new Cytoscape plugin called “dot-app” designed for the import and export of Graphviz files conforming to the DOT format for representing graph topologies, layouts and formatting. Graphviz is a popular set of open source software tools initiated at the AT&T Labs Research that can generate or process DOT files. Many other software tools are using Graphviz to represent all kinds of graphs. The DOT language support visual features and attributes that are not currently included by Cytoscape network formats. There is currently no Cytoscape plugin for the import and export of networks to the DOT language. Therefore the dot-app plugin may be useful to convert and import biological networks, and might be very interesting for the large community of Cytoscape users. The article is globally clear, well-organized and logically structured. I particularly appreciated the efforts of the authors to explain the details of the conversion process and exactly what kind of visual properties are imported and exported, including the properties that are not supported.Add a table for at least some of the main visual features and attributes supported by the DOT format and indicate which ones are supported by XGMML/GraphML. The sentence mentioning the differences in the introduction section is too vague.Compile also in a small table some examples of applications (related to biology or not) that produces or consumes DOT files. Here also the paragraph discussing this in the introduction section is quite vague. I would suggest minor improvements to the article that could make it more precise and valuable for the readers.The reference to the JPGD parser do not appear in the bibliography.A few sentences on how to install the app in Cytoscape might be helpful. Minor comments:I have read this submission. I believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard. Thank you Dr. Bonnet for your valuable comments. We will look into the possible improvements and minor issues you brought up, and fix them in our next version. Again, we really appreciate your  detailed observations!


A common goal in data-analysis is to sift through a large data-matrix and detect any significant submatrices  that have a low numerical rank. We present a simple algorithm for tackling this biclustering problem. Our algorithm accumulates information about 2-by-2 submatrices  within the data-matrix, and focuses on rows and columns of the data-matrix that participate in an abundance of low-rank loops. We demonstrate, through analysis and numerical-experiments, that this loop-counting method performs well in a variety of scenarios, outperforming simple spectral methods in many situations of interest. Another important feature of our method is that it can easily be modified to account for aspects of experimental design which commonly arise in practice. For example, our algorithm can be modified to correct for controls, categorical- and continuous-covariates, as well as sparsity within the data. We demonstrate these practical features with two examples; the first drawn from gene-expression analysis and the second drawn from a much larger genome-wide-association-study (GWAS). and subsets of patients—a problem referred to as ‘biclustering’. In this paper we present a new biclustering method which can scale up efficiently to handle large genomic data sets, such as GWAS-data. Our method is quite accurate, outperforming current ‘spectral’ biclustering methods for many problems of interest. Perhaps most importantly, our method can be corrected for many features of experimental design, such as controls, covariates and sparsity—all of which are especially important when analyzing real data sets.An important problem in genomics is how to detect the genetic signatures associated with disease. When a disease is caused by a single well-defined biological mechanism, the genetic signature often involves a handful of genes present across the majority of the diseased patients. On the other hand, when a disease is complicated or poorly understood there may be many possible biological mechanisms at play. Any genetic signatures associated with such a disease may involve multiple genes, and each signature might only manifest across a subset of the diseased patients. Finding the signatures responsible for this heterogeneity requires searching through subsets of genes  Many applications in data-analysis involve some form of ‘biclustering’—also referred to as co-clustering, two-mode clustering, two-way clustering, block clustering, and coupled two-way clustering, to name a few . BroaIn this paper we’ll present a simple method for biclustering which is well-suited for gene-expression and genome-wide-association-study (GWAS) data. We refer to our method as ‘loop-counting’, because it accumulates information about 2 × 2 submatrices within the data-array; we refer to these 2 × 2 submatrices as ‘loops’. We establish a connection between our loop-counting method and spectral methods, using both analysis and simulation-studies to describe the regimes where our method performs well. We demonstrate the efficacy of our loop-counting method by applying it to a gene-expression data-set and a GWAS data-set, using gene-enrichment analysis as a form of validation.One of our main goals is to ensure that our loop-counting method is practical and capable of accommodating the issues that arise when analyzing real experimental data. We emphasize that our method can be corrected for many features of experimental design, such as controls, covariates and sparsity—all of which are especially important when analyzing GWAS data sets (which commonly aggregate batches of patients taken from across the world). With this goal in mind, we’ll briefly delineate some features of our approach, contrasting them against some of the better-known methods for biclustering this kind of data.During our discussion below we’ll often refer to the appendices in the Supporting Information see  Text, whM × N data-array D comprising N genetic-measurements (which we’ll refer to as ‘genes’) taken across M patients. Within this context, an m × n ‘bicluster’ would correspond to a rectangular submatrix associated with m patients and n genes that—together—share a special structure.Within the field of bioinformatics there are a variety of approaches to biclustering, many of which differ in the types of structures they try and find, their assumptions regarding the ‘noise’ that might obscure these structured elements, and their goals in classifying the data Types of structure to search for: Several methods attempt to find biclusters containing mostly ‘large’ or ‘small’ values; i.e., comprising a subset of genes which are differentially-expressed relative to the rest of the patients in D , a, a19], aWhile appropriate for idealized situations such as the planted-bicluster problem, the simple loop-counting algorithm described above is not immediately applicable to real data. The reason is that the loop-scores in Eqs MD of the patients exhibit a certain disease, whereas the other MX patients do not . Instead of arranging our data into a single M × N array, we will divide our data into an MD × N array D describing the cases, and another MX × N array X describing the controls. As is typical for gene-expression data, there will likely exist large subsets of genes which are correlated across large subsets of the population—including both D and X—without being particularly related to the disease. Such genes might include, e.g., genes related to development, or ‘housekeeping’ genes that are strongly coexpressed in most patients.To describe this strategy in more detail, we’ll first focus on a situation involving cases and controls. Specifically, let’s imagine that we are analyzing gene-expression data where largest biclusters, we would find these common genetic signatures, which are not related to the disease, and thus not of interest. Instead, we would like to search for biclusters which are restricted to a subset of the case-patient-population in D and which exhibit correlations which are not found in the control-population X. Such case-specific biclusters are more likely to be related to disease mechanisms.If we were to simply search for the D-only algorithm above. In Step-0 we now need to binarize both D and X. In Step-1 we need to calculate the loop-scores in a slightly different way. Given any fixed case-row j ∈ D, there will be two types of loops that contribute to the score: (i) loops that are contained within D, and (ii) loops that travel through X. If row-j were part of a bicluster which was restricted to D, then we would expect row-j to participate in an abundance of rank-1 loops of type-(i), but not of type-(ii). Based on this intuition, we score the first type of loop positively if it is rank-1 and negatively if it is rank-2. In addition, we score the second type of loop the other way; negatively if it is rank-1 and positively if it is rank-2. This strategy produces control-corrected row- and column-scores of the form:We can achieve this goal by slightly modifying ‘Step-0’ and ‘Step-1’ of the These control-corrected loop-scores are designed so that biclusters which equally straddle both the cases and the controls will—on average—produce no signal, while biclusters which are significantly concentrated within the cases will still produce a signal. Biclusters which are fully case-specific will generate signals that are (on average) as large as they would have been using our original (uncorrected) loop-scores. A more detailed explanation of these control-corrected loop-scores, as well as corroborating numerical experiments, can be found in sections A similar principle can be used to correct for categorical-covariates, multidimensional continuous-covariates, as well as sparsity. We briefly discuss these corrections in the Methods section, deferring the details to sections In the following subsections we briefly present two examples drawn from genomics. These examples serve as proofs-of-principle for our method, and demonstrate that our method functions in practice.http://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE48091). See ‘Example-1b’ in section Our first example is taken from the GSE48091 data-set available from the gene-expression-omnibus (found at N = 16738 gene-expression measurements (referred to later as ‘genes’ for simplicity) collected across 506 patients, each diagnosed with breast-cancer. Of these patients, MD = 340 were ‘case’-patients that developed distant metastatic disease. The remaining MX = 166 were ‘control’-patients that did not. The data-set is illustrated in The subset of data that we use comprises We’ll use our control-corrected loop-counting algorithm to search this data-set for case-specific biclusters—namely subsets of genes that are structured in some way across a significantly large subset of the case-patients, while not being similarly structured across the control-population. These case-specific biclusters will have the potential to pinpoint genes useful for diagnosis and discrimination between case and control status.m = 45 of the MD = 340 cases and n = 793 of the N = 16738 genes—that was embedded in the case-matrix and discovered using our algorithm. This bicluster consists of genes that, taken individually, are neither significantly over-expressed nor under-expressed—relative to the control population. Instead, these 793 genes are significantly co-expressed  across a significant fraction of the case population (in this case 45/340 ∼ 13% of the cases), without being as significantly co-expressed across a comparable fraction of the control population. While a little difficult to see in cj be the pearson’s-correlation between the jth-patient in the bicluster and v. If we use the absolute value |cj| as a measure of ‘alignment’, most of the rows are aligned (with the stereotyped pattern) at a value of 90% or more.Some of our results are shown in cj| that is greater than 90%; most only exhibit an alignment around 0%−50%. This statement can be further quantified as follows: The distribution of alignments |cj| for the patients in the bicluster is significantly different than the distribution of alignments for the controls; the AUC  for these two distributions is 98%, meaning that there is a 98% chance that a randomly drawn patient from the bicluster will have a higher alignment than a randomly drawn control. Note that this AUC only implies a high prediction accuracy when discriminating cases within the bicluster from the controls; this AUC does not translate into high case/control prediction accuracy overall.To illustrate that this stereotyped co-expression pattern is indeed case-specific , we replot the bicluster at the top of Finally, we can ask: How significant is this bicluster? As described in more detail within the Methods, this bicluster has a P-value of ≲ 0.008. We obtain this P-value by comparing this bicluster against the distribution of biclusters obtained under a suitable ‘label-shuffled’ null-hypothesis—i.e., formed from shuffling the case-vs-control labels , DNA-replication (3e-8), chromosome segregation (p = 2e-5) and many more; including several pathways that are likely to play a role in the development of cancer. See Supplementary-material If this were true, we would expect many of these genes to serve similar functions or affect the same pathway. This is indeed the case: a gene-enrichment analysis performed on these Our second example is a subset of a Genome-Wide-Association-Study used with permission from the Bipolar Disorders Working Group of the Psychiatric Genomics Consortium (PGC-BIP) Due to dN = 276768 alleles with varying minor-allele-frequency genotyped across 16577 patients. These patients fall into two phenotypic categories: 9752 are neurotypical, whereas the remaining 6825 exhibit a particular psychiatric disorder. For this example we’ll try and find a signal within the neurotypical patients that is not shared by those with the disorder; We’ll use the phenotypic information to divide the patients into MD = 9752 cases and MX = 6825 controls. Note that, within this example, our nomenclature is non-standard; neurotypical patients are typically referred to as ‘controls’ and not cases. The reason we deviate from this standard is because, below, we will try to find a bicluster within the neurotypical patients that does not extend to include the remaining patients. In order to remain consistent with our notation and equations throughout the rest of the manuscript .within the bicluster from the controls; this AUC does not translate into high case/control prediction accuracy overall. Nevertheless, as described in more detail in section If we calculate the distribution of alignments across individuals in this bicluster and compare them to the distribution of alignments across the controls , we obtain an AUC of > 99.75%. As in Example-A, this AUC by itself only implies that the pattern within the bicluster is significantly different than the pattern outside the bicluster; it does not imply that the bicluster itself is statistically significant. That is to say, this AUC only implies a high prediction accuracy when discriminating cases without correcting for the continuous-covariates, then we would find spurious biclusters involving patients that were highly concentrated in just a few regions of covariate-space , metal-ion transmembrane transport (p = 5.7e-4), calcium-ion binding (p = 1.2e-3), GTPase-activation (p = 2.2e-3), ion-gated channel activity (p = 3.3e-3), calcium-ion transport (p = 4.3e-3), voltage-gated channel activity (p = 1.0e-2), calcium-signaling (p = 1.1e-3), long-term-potentiation (p = 1.1e-3) and glutamatergic-synapses (p = 7e-3). See Below we’ll briefly describe our approach to correcting for categorical- and continuous-covariates. In each situation we’ll discuss the simplest possible case, involving case-patients only and disregarding controls. The full details of our method—including how to combine the control-correction with covariate- and sparsity-corrections—is given in section If the patients are drawn from different categories , then it is typically important to ‘correct’ for the effect of this categorical-covariate, and to find biclusters that are independent of covariate-category. In this section we discuss the simplest situation involving only two covariate-categories of equal size .Within the context of this scenario, we would like to ignore biclusters that include patients from only one gender, favoring instead biclusters that include a reasonable mixture of patients from both genders. Our strategy is to design a loop-score which tracks the loops associated with the different covariate-categories, comparing them against one another. This loop-score will demote the signal produced by any bicluster down to the signal that would be produced by that bicluster’s ‘balanced component’ . As a result, ‘imbalanced’ biclusters that are concentrated in one gender will produce almost no signal. At the same time, ‘balanced’ biclusters that include an equal number of males and females will still produce a strong signal .j is given by:D into male-patients ‘D1’, and female-patients ‘D2’, and the fractions p = (MD1 − 1)/(M − 1) and q = (MD2)/(M − 1) are the fraction of other males and females, respectively. The covariate-corrected loop-score for a female patient is defined analogously.In the simplest scenario (ignoring controls), the covariate-corrected loop-score for any male patient α11, α12, α21, α22 are defined to be Regarding the column-scores:A more detailed explanation of this construction, as well as an extension to the general case with three or more covariate-categories, is given in section all the covariate-categories. An example might be a data-set collecting patients across Icat separate studies. In such a scenario one might be interested in biclusters that include patients from at least Ireq < Icat of these individual studies. Our general method for categorical-covariate-correction requires the user to specify this required Ireq, which is used in defining our loop-scores. Details are given in section One of the important aspects of the general case is that, often, one is interested in biclusters that straddle many covariate-categories, even if they are not fully balanced across NT-dimensional vector of ‘mds-components’, serving as a proxy for the genetic similarity of those patients’ ancestors [For certain applications each patient is associated with a high-dimensional continuous-covariate. For example, in genome-wide association studies, each patient is often equipped with an ncestors , 38. ConOur basic strategy for continuous-covariate correction will be similar to our strategy above. We’ll design a loop-score which tracks the continuous-covariates associated with each loop, comparing them against one another. This loop-score will demote the signal of any imbalanced biclusters down to 0. At the same time, balanced biclusters will produce a signal that is—on average—as large as it would have been without covariate-correction.T the M × NT matrix containing the continuous-covariates . The sum x⌋ = max, and κ2 is a parameter that depends on NT .In the simplest scenario , the covariate-corrected loop-scores are given by:κ2 along with corroborating numerical experiments, is given in section A more detailed explanation of this construction, including the calculation of Up to this point we’ve assumed that—after binarization—each column of the data-matrix has a comparable number of positive and negative entries. This assumption is often valid when dealing with gene-expression data , but not when dealing with genotyped data. Indeed, single-nucleotide-polymorphisms (SNPs) can often involve minor-allele-frequencies (MAFs) that are quite small , giving rise to a large imbalance between ±1-entries in each column of the data-matrix.If a subset of columns in the data-matrix has a surplus of, say, negative entries, then that portion of the data-matrix will be ‘sparse’ . Such a sparse region is likely to contain large submatrices consisting of mostly negative entries, simply due to their abundance. The loop-counting algorithm we’ve described so far will typically focus on these large submatrices, even though they are not statistically significant. The reason for this is that the loop-score above assumes that each loop carries the same weight, regardless of whether or not that loop comprises positive or negative entries.D; This normalization rescores each loop so that ±1-entries that are otherwise abundant do not add much to the score. Conversely, entries that are otherwise rare add more to the score.It is straightforward to correct for sparsity by ‘normalizing’ each column of k of the data-matrix D has sparsity coefficient pk, and setting qk = 1−pk, we calculate the sparsity-corrected loop-scores as follows (ignoring controls and covariates for now):N × 1 vector of means αk = pk − qk, M × 1 vector of all ones. See section Assuming that column-In the previous sections we’ve discussed modifications to our algorithm that correct for controls, covariates and sparsity. These can be combined in the following order to produce a single loop-score that corrects for all these features simultaneously:Correct for sparsity.Correct for continuous covariates.Correct for categorical covariates.Correct for cases versus controls.The motivation underlying these choices, as well as computational details and corroborating numerical experiments, are found in section DD⊺DD⊺ in the D-only situation. These trace-lists allow us to determine a p-value for our bicluster without applying a threshold to determine the ‘boundary’ of the bicluster.In addition to listing the rows and columns in the order that they were eliminated, our loop-counting algorithm also produces a list of the average row- and column-scores taken across the remaining data-matrix at each iteration. We refer to these average row- and column-scores as row- and column-traces, as they are both proportional to the trace of To describe this process, let’s focus on Example-A . In this example we are comparing case-patients to control-patients. The row- and column-traces in this case can be rescaled to lie between −2 and +2 . These traces provide a measure of how tightly correlated the remaining data-matrix is at each iteration. More specifically: if, after sufficiently many iterations, the row- or column-traces become large , then the remaining rows and columns should form a highly correlated low-rank bicluster.Our typical hypothesis  is that there exists some disease-related structure in the case-patients that is not exhibited by the control-patients. This is in contrast to the null-hypothesis (H0) in which the case- and control-labels are actually arranged randomly and have no disease-related structure. Under this null-hypothesis the traces we observe after running our algorithm on the original data should be similar to the traces we would find if we were to shuffle the case-control labels randomly (across patients). To draw a sample from this null-hypothesis H0, we shuffle the case-control labels of the patients indiscriminantly while retaining the same number of cases and controls. If we were to correct for covariates, then we would restrict our null-hypothesis slightly (H0x) so that the random-shuffles respect the covariates. For example, if we were correcting for gender as a categorical-covariate, we would shuffle the labels of case-males only with control-males, and shuffle the labels of case-females only with control-females.For each label-shuffled trial we rerun our algorithm, and collect the output. Each trial does not depend on any of the other trials, and they can all be processed in parallel. This library of label-shuffled traces produces a distribution associated with H0 (or H0x). We use this label-shuffled distribution to calculate a p-value for the traces produced by the original data. An illustration along these lines is shown in Figs A full description of this procedure, as well as an analogous procedure used to find a p-value for Example-B, can be found in section This paper has focused so far on the detection of low-rank biclusters within a larger data-matrix. Our loop-counting method does a reasonable job of locating these low-rank biclusters , and even look for ‘triclusters’. The first two of these topics are explained in more detail in sections N measurements taken across M patients—doesn’t suffice. For example, in a clinical study there may be M patients, each of which are subjected to P different kinds of treatments . For each of these P treatments, N different variables may be measured for each patient. Within this paradigm, the data isn’t best represented as a 2-dimensional array , but rather as a 3-dimensional array  comprising both rows and columns, as well as ‘layers’. In formal terms, we imagine our data arranged into an array D of dimension M × N × P, where Dj,k,l corresponds to the kth measurement of the jth-patient as they undergo therapy l.There are often situations where the data-paradigm we’ve assumed—involving Within this 3-dimensional array, it is often prudent to search for subsets of patients that exhibit some kind of simple structure across a subset of measurements as well as a subset of treatments. Such a ‘tricluster’ would correspond to a ‘sub-cube’ of the data, rather than simply a submatrix. The techniques we have discussed in the main text can readily be extended to search for these kinds of objects as well.D, sending each entry to either +1 or −1, depending on its sign. Once we binarize D, we can calculate the following scores:B with high probability as long as they are sufficiently large and sufficiently low-rank.In the simplest case , we first binarize the data-cube D. However, unlike the simpler situation discussed in the main text, D is a 3-dimensional array (and not merely a matrix). Consequently, there are 3 different kinds of loops within D, each traversing a different pair of array-dimensions .The reason this process works is that—as before—the scores accumulate the ranks of the various loops within ions see . Any looSlightly more detail, along with numerical experiments, can be found in section S1 DataThis spreadsheet contains the full list of pathways produced by a gene-enrichment analysis of the bicluster shown in the first example in the Supplementary-text (involving gene-expression data). To perform this gene-enrichment analysis we used ‘Seek’. Each page of this spreadsheet lists the enrichment results using one of the 11 different gene-ontology databases available within the ‘Seek’ software.(XLSX)Click here for additional data file.S2 DataThis spreadsheet contains the full list of pathways produced by a gene-enrichment analysis of the bicluster shown in Example-A in the Main text (involving gene-expression data). To perform this gene-enrichment analysis we used ‘Seek’. Each page of this spreadsheet lists the enrichment results using one of the 11 different gene-ontology databases available within the ‘Seek’ software.(XLSX)Click here for additional data file.S3 DataThis spreadsheet contains the full list of pathways produced by a gene-enrichment analysis of the bicluster shown in the Example-2 in the Supplementary-text (involving gene-expression data). To perform this gene-enrichment analysis we used ‘Seek’. Each page of this spreadsheet lists the enrichment results using one of the 11 different gene-ontology databases available within the ‘Seek’ software.(XLSX)Click here for additional data file.S4 DataThis spreadsheet contains the full list of pathways produced by a gene-enrichment analysis of the bicluster shown in Example-B in the main text (involving GWAS-data). To perform this gene-enrichment analysis we used ‘Seek’. Each page of this spreadsheet lists the enrichment results using one of the 11 different gene-ontology databases available within the ‘Seek’ software.(XLSX)Click here for additional data file.S1 TextThe first part of this 2-part document describes in more detail the examples shown in the main text. This document also contains a more detailed analysis of our method.(PDF)Click here for additional data file.S2 TextThe second part of this 2-part document describes in more detail the examples shown in the main text. This document also contains proofs of certain inequalities, and a comparison with a simple spectral method.(PDF)Click here for additional data file.S1 Source CodeThis archive contains Matlab source code for our loop-counting methods, along with a tutorial  which will guide users through our our first example (involving gene-expression data).(GZ)Click here for additional data file.S2 Source CodeThis archive contains C source code for our loop-counting methods, along with several drivers (written in Matlab) which allow users to replicate each of our numerical experiments (shown in the main text and supplementary information).(GZ)Click here for additional data file.


In particular, a method for rapidly extracting pairs of l-mers is designed, which can be used not only for PairMotifChIP, but also for other DNA data mining tasks with the same demand. Experimental results on the simulated data show that the proposed algorithm can find motifs successfully and runs faster than the state-of-the-art motif discovery algorithms. Furthermore, the validity of the proposed algorithm has been verified on real data.Identifying conserved patterns in DNA sequences, namely, motif discovery, is an important and challenging computational task. With hundreds or more sequences contained, the high-throughput sequencing data set is helpful to improve the identification accuracy of motif discovery but requires an even higher computing performance. To efficiently identify motifs in large DNA data sets, a new algorithm called PairMotifChIP is proposed by extracting and combining pairs of  A DNA motif is a conserved pattern occurring in the regulatory region of DNA sequences with small mutations . All occThough very important, motif discovery is a challenging computational task. Given a set of DNA sequences, (i) the motif and its instances are unknown; (ii) each of the input DNA sequences is long with hundreds of bases, while the motif is short, generally 5 to 25 bases . In addiCurrently, there are a lot of motif discovery algorithms to deal with small-scale data sets, such as Weeder , PairMotThis paper mainly focuses on motif discovery algorithms for high-throughput sequencing data sets. According to motif representation, the algorithms can be divided into two categories. The algorithms in the first category represent motifs as words. Some of these algorithms, such as F-motif  and weedThe second category covers the discovery algorithms representing motifs as position weight matrixes (PWMs). A set of aligned sites of the same length in the input sequences can form a PWM. These algorithms often select some initial PWMs with certain means and then update each PWM iteratively until it reaches the maximum score. MEME-ChIP  is a well-mers in the input with relatively small Hamming distance. Comparisons with the state-of-the-art motif discovery algorithms show that the proposed algorithm can find motifs successfully with the shortest running time. Also, the validity of the proposed algorithm has been verified on real data.In order to efficiently identify motifs in large DNA data sets, we propose a new algorithm, which identifies motifs by extracting and combining pairs of l-mers, we are referring to two l-mers that come from two distinct sequences.The notations frequently used in this paper are summarized in the Notations. When we say a pair of Nmip. It is calculated by Almost all de novo motif discovery algorithms make identification based on the fact that the motif instances of the same motif are similar to each other. In other words, the motif information contained in the input sequences is presented by the similarity among motif instances. In addition to the degree of similarity among motif instances, the motif information also depends on the number of pairs of motif instances contained in the input sequences, denoted by t. The basic idea is to extract some pairs of l-mers in the input, making them contain at least one pair of motif instances, and then refine each pair of l-mers to get motifs. Because of the small value of Nmip, limited motif information can be obtained while retaining a large amount of disturbance information. Thus, in order to ensure good identification accuracy, exhaustive methods based on pattern-driven ideas are used for refinement, which has a poor time performance.In our previous work, PairMotif  and Pairl-mers in the input. Since the value of Nmip under large data sets is significantly greater than that under traditional promoter data sets, the advantages are as follows: (i) the extracted pairs of l-mers contain sufficient pairs of motif instances and (ii) it can be easier to filter out most of the random overrepresented pairs of l-mers; namely, we can distinguish most of the pairs of motif instances and random overrepresented pairs of l-mers by probabilistic analysis –(4)), filtering pairs of l-mers (lines (5)–(9)), and combining l-mers (lines (10)–(13)). Next, the technical details of the three steps are described in detail.The overall algorithm of PairMotifChIP is shown in k so that we extract all pairs of l-mers x and x′ in the input satisfying dH ≤ k and design an efficient algorithm to extract pairs of l-mers.In this step, we need to determine the value of a threshold pi denote the probability that the Hamming distance between two random l-mers is no more than i. Let Ei denote the expectation of the number of pairs of l-mers x and x′ in two n-length DNA sequences satisfying dH ≤ i. Let k is determined by  ≤ k, the simplest way is to traverse each pair of l-mers x and x′ and calculate the Hamming distance dH separately. The time complexity of this method is O(n2l). Yu et al. , stores min − dH + 1 ⋯ i], s′[j − min + 1 ⋯ j]), where min is the smaller one of two integers. After calculating M, the Hamming distance between the two l-mers s[i − l + 1 ⋯ i] and s′[j − l + 1 ⋯ j] can be obtained; namely, dH = l − .In order to handle large data sets efficiently, a good time performance of extracting pairs of u et al.  proposedl-mers with Hamming distance no more than k. That is, we do not need to calculate Hamming distance for all pairs of l-mers. If the Hamming distance between s[i − l + 1 ⋯ i] and s′[j − l + 1 ⋯ j] is greater than k, it can be concluded that, for 0 ≤ h < dH − k, the possibly smallest Hamming distance between s[i − l + 1 + h ⋯ i] and s′[j − l + 1 + h ⋯ j] is still greater than k. Thus, after calculating the Hamming distance between s[i − l + 1 ⋯ i] and s′[j − l + 1 ⋯ j], we can go directly to verify the Hamming distance between s[i − l + 1 + H ⋯ i] and s′[j − l + 1 + H ⋯ j], where H is the skipped size calculated byIn this paper, we design a more efficient method. We only care about the pairs of s| = |s′| = 20,  l = 5,  k = 1. First, convert the two DNA sequences s and s′ into binary strings B and B′. Then, fixing B, move B′ from left to right gradually 2 bits each time and simultaneously do the exclusive OR for the overlapped substrings of B and B′ with length equal to or greater than 2l; xor denotes the exclusive OR of the overlapped substrings of B and B′ corresponding to s[i ⋯ j] and s′[i′ ⋯ j′], where j − i = j′ − i′. Finally, extract pairs of l-mers with Hamming distance no more than k by traversing the exclusive OR xor for each overlapped part of B and B′. Specifically, for each r (l ≤ r ≤ j), we look up a table [l-mers s[i + r − l ⋯ i + r − 1] and s′[i′ + r − l ⋯ i′ + r − 1], which is equal to the number of 2 bits that is not 00 in xor. During the traversal, we use  denote the number of l-mers in the input sequences with Hamming distance no more than k from x in random case.For an arbitrary x, let occm(x) denote the number of motif instances in the input sequences with Hamming distance no more than k from x in random case.For an arbitrary motif instance x) denote the number of l-mers in the input sequences with Hamming distance no more than k from an l-mer x. In the process of extracting pairs of l-mers, we can easily record occ(x) for each l-mer x in the input sequences. For an extracted l-mer x, we filter it out if it does not satisfyWe perform filtration according to . Let occm(x). We calculate it by combining the methods , s[i + 2 ⋯ i + l + 1], and s[i + 5 ⋯ i + l + 4] in the sequence s, they are overlapped, and we merge them into a new substring s[i ⋯ i + l + 4].Merge the overlapped (ii)G by taking each substring as a vertex. For any two vertices v1 and v2, assume the corresponding substrings are str1 and str2, respectively. If there exist an l-mer x1 in str1 and an l-mer x2 in str2 such that dH ≤ k, then we set the weight of the edge connected by v1 and v2 to 1, otherwise 0. Secondly, we cluster the vertices in the graph G using the MCL clustering algorithm [Cluster the substrings. At first, we build an undirected graph lgorithm . Finally(iii)For each obtained cluster, align the substrings in it and then fetch the fragment with high information content as an identified motif.The combining method is described in detail as follows:l-mers into one substring can help to reduce the elements to be clustered. Second, if the number of substrings is still large, we divide them into multiple groups with each group containing at most 1000 substrings. Then, we cluster substrings in each group separately and finally merge the obtained clusters.In the combining method, we control the number of elements to be clustered in order to ensure a good time performance. First, merging overlapped l-mers with relatively small Hamming distance for processing large DNA data sets. That is, given t DNA sequences, we verify whether the extracted pairs of l-mers with Hamming distance no more than k contain sufficient pairs of motif instances and whether the pairs of motif instances and the random overrepresented pairs of l-mers can be distinguished.We use probabilistic analysis to demonstrate the feasibility of motif discovery by extracting pairs of t, the sequence length n, the probability q that each input sequence contains a motif instance, and the motif conservation parameter g to 1000, 200, 0.8, and 0.8, respectively. For a fixed l, k is obtained by  and occm(x) are explained in the Notations.ained by , which iN1 and N2, it can be found that the extracted pairs of l-mers with Hamming distance no more than k contain sufficient pairs of motif instances and meanwhile many random overrepresented pairs of l-mers. For a given l-mer x, the l-mer in the input with Hamming distance no more than k from x is called a k-neighbor of x. From the values of occr(x) and occm(x), the number of k-neighbors of a motif instance is significantly larger than that of random overrepresented l-mers. Thus, we can distinguish the pairs of motif instances and the random overrepresented pairs of l-mers, so as to filter out most random overrepresented pairs of l-mers extracted in step 1. It should be noted that, for m(x) increases with the increase of the conservation degree, which makes it easier to distinguish the pairs of motif instances and the random overrepresented pairs of l-mers. In implementing PairMotifChIP, we fix the value of l to 15 because it corresponds to a large value of occm(x).From the values of We use both simulated and real data to make experiments. The simulated data are helpful for the comparison of different motif discovery algorithms, since the motifs and their locations are known exactly. The real data are mainly used to test whether the proposed algorithm can find motifs under the realistic biological situation.t  n-length sequences and an l-length motif m randomly and then implant a random instance m′ of m to each sequence with a probability q. Each instance m′ differs from m in at most d positions; as shown in column 2 of d under a specific l is determined in terms of the challenging problem instance of planted motif search [m′ from m, the specific Hamming distance i (0 ≤ i ≤ d) between m′ and m is determined by  ChIP-seq data . Each mEm′ is in a set of motif sites M, there exists a motif site m′′ in M such that m′ overlaps m′′. Let K and P represent the published motif sites and the predicted motif sites, respectively. Then, site-level true positive (sTP), false negative (sFN), and false positive (sFP) are the number of motif sites in both K and P, in K but not in P, and not in K but in P, respectively. Based on this, sPC is calculated as follows:In the experiments, we compare the running time and identification accuracy of different motif discovery algorithms. For the site-level identification accuracy, we evaluate it by using the site-level performance coefficient sPC . When weK and P represent the nucleotide positions covered by the published motif sites and the predicated motif sites, respectively. Then, nucleotide-level true positive (nTP), false negative (nFN), false positive (nFP), and true negative (nTN) are the number of nucleotide positions in both K and P, in K but not in P, not in K but in P, and in neither K nor P, respectively. Based on this, nCC, nSn, and nSp are calculated as follows:For the nucleotide-level identification accuracy, we evaluate it by using the nucleotide-level correlation coefficient (nCC) , an inteWe select four compared algorithms: MEME-ChIP , F-motifhttp://meme-suite.org/tools/meme-chip), all the algorithms run on the same machine with a 2.67 GHz CPU and a 4 G memory. Each result is the average obtained on three randomly generated data sets with the same settings. Both PairMotifChIP and MEME-ChIP use the default parameters to identify motifs. In executing F-motif, the minimum motif length is set to 8, and the value of d is set to 2, 5, and 8 when the length of the identified motif is 9, 15, and 21, respectively. Both PairMotif+ and qPMS9 need specified l and d of the identified motif. When calculating identification accuracy, the predicated motif sites are needed. For MEME-ChIP, the predicated motif sites are returned by its web server; for other algorithms, the sites are obtained by searching the substring in each input sequence having the smallest Hamming distance from the predicted motif.All the algorithms are implemented in C or C++. Except for MEME-ChIP, whose results are produced by its web server  the running time of PairMotifChIP increases with the increase of data scale, but it does not depend on the motif length.For the second group of simulated data sets, whose data scales range from 500 to 3000 sequences, the comparison of different algorithms is shown in l-mers because it plays a key role in the time performance of the whole PairMotifChIP algorithm. l-mers with Hamming distance no more than k in two given n-length sequences, although the worst time complexity of the method in this paper is still O(n2), it has a better time performance in practice. Specifically, the method in this paper is 10 times faster than that in [Finally, it is necessary to test the method for extracting pairs of  that in , which ml = 13,  d = 4, and k = 2 for each data set.We test PairMotifChIP's validity of motif discovery on the real ChIP-seq data . To better show the results, we take our previous algorithm PairMotif+ for comparison. For PairMotifChIP, we use default parameters without any prior information; for PairMotif+, we use the same setting l-mers and (ii) unlike PairMotif/PairMotif+, which obtains motifs by exhaustively verifying candidate motifs generated from extracted pairs of l-mers, PairMotifChIP obtains motifs by combining extracted l-mers based on clustering methods. The improvements of PairMotifChIP over PairMotif/PairMotif+ are that (i) PairMotifChIP runs much faster when identifying motifs in large data sets and (ii) PairMotifChIP can make motif discovery without any prior information . The executable program of PairMotifChIP is available at https://sites.google.com/site/feqond/pairmotifchip.In order to identify motifs in large DNA data sets, we propose a new algorithm, PairMotifChIP, which is a ChIP-tailored version of PairMotif/PairMotif+. The main difference between PairMotifChIP and PairMotif/PairMotif+ is that (i) PairMotifChIP designs a more efficient method for extracting pairs of It should be noted that, limited by the idea of combining overrepresented substrings, PairMotifChIP may not work well on the traditional promoter sequence data set containing dozens of sequences because of the lack of sufficient motif information.


The e-CNF-PCP should be a very promising candidate as electrode material for CDI applications.Carbon nanofibers reinforced 3D porous carbon polyhedra network (e-CNF-PCP) was prepared through electrospinning and subsequent thermal treatment. The morphology, structure and electrochemical performance of the e-CNF-PCP were characterized using scanning electron microscopy, Raman spectra, nitrogen adsorption-desorption, cyclic voltammetry and electrochemical impedance spectroscopy, and their electrosorption performance in NaCl solution was studied. The results show that the e-CNF-PCP exhibits a high electrosorption capacity of 16.98 mg g With an increasing human population combined with the over-exploitation of water resources for industrial and agricultural activities, water shortage has become the most serious problem in the 21th century1Capacitive deionization (CDI), also known as electrosorption, has entered in a rapid development period in the last ten years due to its minimum energy consumption and environmental friendliness compared to traditional desalination techniques56789101112131618212425−1 in 500 mg l−1 NaCl solution. However, there are still some serious problems faced by the PCP electrode in previous work: (i) the surface pores  of PCP are mainly distributed in micropore range, which may cause the electrical double layer overlapping effect to hinder the CDI performance; (ii) the use of binder will increase the internal resistance and block some of the pores in the carbon materials, resulting in lower adsorption capacity.Recently, direct carbonization of metal-organic frameworks (MOFs) has been demonstrated to be a facile route to synthesize porous carbon materials283132Electrospinning, as a simple yet effective technique to fabricate continuous CNFs, has attracted much attention in the fields like energy storage351819371837−1 in 500 mg l−1 NaCl solution, which shows great improvement compared to those of PCP and e-CNFs.In this work, CNFs reinforced 3D PCP network (e-CNF-PCP) was fabricated through electrospinning followed by thermal treatment and used as electrode materials for CDI for the first time. The e-CNF-PCP exhibits excellent performance with an EC of 16.98 mg g−1, corresponding to D line and G line, respectively, which are signatures of graphitic carbon materials. The G line corresponds to the crystalline graphitic carbon and the D line is attributed to the defect and disordered structure. It is generally accepted that the relative intensity ratio of D peak to G peak (ID/IG) is the indication of disorder or defect in the carbon structure40D/IG values of e-CNFs, PCP and e-CNF-PCP are 0.89, 0.99 and 1.04, respectively, indicating that the synergistic effect of e-CNFs and PCP generates more defects in the e-CNF-PCP. The presence of defects can generate more accessible surface area and cause an increase in ability for the accumulation of charges, which is beneficial to the charge transfer in the adsorption process422 g−1. Clearly, the as-synthesized e-CNF-PCP displays a highly porous structure. The pore size distribution reveals that the e-CNFs and PCP are mainly composed of micropores and mesopores. However, the e-CNF-PCP exhibits a hierarchical pore structure consisting of not only micropores and mesopores but also macropores that are generated from the interconnected open channels between the nanofibers and the PCP. This 3D hierarchical pore structure can lower the resistance and shorten the ion transport pathway, which is beneficial to the electrosorption process.It is universally known that large accessible surface area and suitable pore size are crucial for the capacitive performance. Therefore, nitrogen adsorption-desorption and pore size distribution analysis of e-CNFs, PCP and e-CNF-PCP were performed and the results are presented in −1 within a potential range of −0.5–0.5 V, respectively. All CV curves are nearly rectangular. The current increases and decreases steadily with the electric potential, indicating that no faradaic reaction happens and ions are adsorbed on the electrode surface by forming an electric double layer. The specific capacitances of e-CNFs, PCP and e-CNF-PCP electrodes are 217.13, 261.33 and 284.75 F g−1, respectively, as shown in dl) in parallel with the charge transfer resistance (Rct) at the contact interface between the electrode and the electrolyte solution. The inclined line, resulting from the Warburg impedance (ZW), corresponds to the ion-diffusion process in the electrolyte. The fitted Rct values for the electrodes are listed in ct, which is beneficial to the capacitive performance; (iii) compared to the PCP, the e-CNF-PCP is employed as free-standing electrode without the use of polymer binder.−1 during batch-mode experiments at four different applied voltages: 0.6, 0.8, 1.0 and 1.2 V, respectively. All the charge processes were recorded until sorption equilibrium reached, and then the electrodes were shorted for regeneration. As expected, the ECs of these electrodes increase dramatically once the cell voltage is applied. High voltage results in high salt removal because of enhanced electrostatic force. The equilibrium ECs of e-CNFs, PCP and e-CNF-PCP electrodes at different voltages are listed in −1 at 1.2 V, higher than those of e-CNFs (9.25 mg g−1) and PCP (10.94 mg g−1).Charge efficiency (Λ) is a functional tool to gain insight into the EDL formed at the interface between the electrode and the solution27444546−1), Γ is the EC (mol g−1) and Σ  is obtained by integrating the corresponding current. The charge efficiencies of e-CNFs, PCP and e-CNF-PCP electrodes at 0.8–1.2 V are shown in where F is the Faraday constant 96485 C mol5 C mol−1Adsorption kinetics, indicating the adsorption rate, is an important characteristic of adsorbents. It can be determined by using the pseudo-first-order adsorption kinetics and pseudo-second-order adsorption kinetics equations, which are often presented as:e (mg g−1) and qt (mg g−1) are the amounts of NaCl adsorbed at equilibrium and time t (min), respectively. k1 (mg g−1 min−1) and k2 (g mg−1 min−1) are the adsorption rate constants of pseudo-first-order and pseudo second order equations, respectively. 2 values of e-CNFs, PCP and e-CNF-PCP are 0.012, 0.014, 0.027, respectively. The higher rate constant of e-CNF-PCP indicates that its 3D hierarchical pore structure facilitates the quick access of ions onto its surface.where q−1 NaCl solutions are 10.03 mg g−1/0.75, 12.56 mg g−1/0.81 and 16.98 mg g−1/0.80, which are higher than those of PCP  and e-CNFs . Obviously, e-CNF-PCP exhibits an improved CDI performance in all concentrations, which further confirms that e-CNF-PCP is an excellent electrode material for CDI application.To get a better understanding of the electrosorption behavior of e-CNF-PCP, the electrosorption experiments using e-CNF-PCP electrode in NaCl solution with different initial concentrations at 1.2 V were carried out and the ECs and charge efficiencies were compared with those of PCP and e-CNFs, as shown in In order to further evaluate the electrosorption performance of e-CNF-PCP, the CDI performance and manufacturing difficulty of e-CNF-PCP is compared with those of other carbon electrode materials reported in the literatures, as shown in 18−1. The as-collected fibers were stabilized at 280 °C for 2 h in air at a heating rate of 2 °C min−1.The e-CNFs were prepared in a typical process. 1 g PAN  was dissolved in 8.8 g N, N-dimethylformamide to form a homogeneous solution by stirring at 60 °C for 10 h. Then, the polymer solution was transferred into a 10 ml syringe connected to a stainless steel needle. Electrospinning was carried out by applying a positive voltage of 22 kV to the needle via an aluminum collector roller. The distance between the needle tip and the collector was 15 cm and the flow rate of the solution was set at 1 ml h2+.The as-prepared e-CNFs was firstly pre-treated using zinc nitrate solution through ultrasonic spray method at a frequency of 1.65 MHz. Then the pre-treated e-CNFs cloth was immersed into a methanol solution containing 2.58 g zinc nitrate and 2.63 g 2-methylimidazole. After agitation the solution was aged at 25 °C for 24 h to get the e-CNFs-ZIF-8. After that, the as-synthesized e-CNFs-ZIF-8 was subsequently thermally treated at 1200 °C in nitrogen for 2 h with a heating rate of 2 °C/min. Finally, the e-CNF-PCP was obtained by washing extensively by HCl to remove residual Znsp in F g−1) can be obtained from the CV process according to the equation:The surface morphology and structure of the as-synthesized e-CNF-PCP were examined by FESEM (JEOL JSM-LV5610), EDS (Oxford), and Raman spectroscopy (Renishaw inVia). Nitrogen adsorption-desorption isotherms were measured at 77 K with an ASAP 2020 Accelerated Surface Area and Porosimetry System . The CV and EIS measurements were carried out in 1 M NaCl solution by using Autolab PGSTAT 302N electrochemical workstation in a three-electrode mode, including a standard calomel electrode as reference electrode and a platinum foil as counter electrode. In EIS measurement, a frequency range of 0.1 Hz to 100 kHz and an AC amplitude of 5 mV were applied. The specific capacitance (C−1) is the scan rate and m (g) is the total mass of electrodes.where −1. The volume and temperature of the solution were maintained at 50 ml and 298 K, respectively. Meanwhile, the variation of NaCl concentration was monitored and measured at the outlet of the unit cell by using a conductivity meter . The relationship between conductivity and concentration was obtained according to a calibration table made prior to the experiment, which has been described in our previous workThe e-CNF-PCP was used directly as free-standing CDI electrodes. Electrosorption experiments were conducted in a continuously recycling system including a unit cell495051In our experiment, the EC is defined as follows:0 (mg l−1) and ρe (mg l−1) are initial and final NaCl concentrations, respectively. V (l) is the solution volume, and m (g) is the total mass of the electrodes.where ρHow to cite this article: Liu, Y. et al. Electrospun carbon nanofibers reinforced 3D porous carbon polyhedra network derived from metal-organic frameworks for capacitive deionization. Sci. Rep.6, 32784; doi: 10.1038/srep32784 (2016).


There are a limited number of studies on power analysis in multiple testing procedures. For some methods, the theoretical analysis is difficult and extensive numerical simulations are often needed, while other methods oversimplify the information under the alternative hypothesis. To this end, this paper aims to develop a new statistical model for power analysis in multiple testing procedures.Power analysis is a critical aspect of the design of experiments to detect an effect of a given size. When multiple hypotheses are tested simultaneously, multiplicity adjustments to p-value model under the alternative hypothesis, which is simple enough to perform power analysis without simulations, but not too simple to lose the information from the alternative hypothesis. The first step is to transform distributions of different test statistics  to distributions of corresponding p-values. We then use a step function to approximate each of the p-value’s distributions by matching the mean and variance. Lastly, the step-function-based p-value model can be used for theoretical power analysis.We propose a step-function-based p-value model. Our model is then applied to the field of multiple testing procedures to explain the assumption of monotonicity of the critical constants. Lastly, we apply our model to a behavioral weight loss and maintenance study to select the optimal critical constants.The proposed model is applied to problems in multiple testing procedures. We first show how the most powerful critical constants can be chosen using the step-function-based The proposed model is easy to implement and preserves the information from the alternative hypothesis. A consequence of multiplicity adjustments is the loss of power . The probability density functions and the cumulative distribution functions of the normal-distribution-based and the step-function-based p-value models are compared in Fig. p-value models serve an approximation to the p-value models based on the original test statistics.with mean and variance mentclass2pt{minimp-value model has a density function Based on the univariate model, the corresponding multivariate hi(·)’s may have different parameters fi’s and gi’s. In the following sections, the simplified step-function-based p-value model is applied to two problems in multiple testing procedures.where different n hypotheses p-values p-values as p(1)≤⋯≤pn),⋯,Hn)/n, and other choices of ci’s were proposed by Rom [The global test compares d. Simes  proposedd by Rom , Cai andd by Rom , Gou andd by Rom .ci’s, people usually run simulations [p-value model is an alternative choice to theoretically calculate the powers and make comparisons between different multiple testing procedures.Among different choices of critical constants ulations  or rely ulations  to make n hypotheses. For a global test with two single hypotheses, the control of type I error under independence requires c1≥c2. This equality is equivalent to In this section we first show how the most powerful critical constants can be chosen using our proposed method for a global test with two hypotheses, and then we can apply the successive recursion process to calculate the power for a global test with c2 decreases when c1 increases.From  we get \p-value model, without loss of generality, we assume 1≤f1≤f2, the probability of rejecting the global hypothesis is By using the simplified step-function-based n=2), there are two configurations of true and non-true null hypotheses where the global null hypothesis is false: (1) one true null hypothesis (n0=1) and one false null hypothesis (m=1), and (2) two false null hypotheses (m=2).When the global hypothesis contains two single hypotheses α=1−2c2, therefore c2 decreases (c1 increases).When When fαc1≥1, so power increases when c1 decreases (c2 increases).Note that f’s. When we assume the alternative hypothesis has a small effect size, where c2=0 and c1=1/(fα) and c2=(f2α−1)/(2αf(f−1)), so when f increases, we can follow the strategy to decrease c1 (increase c2) to achieve the maximal power. When we assume the alternative hypothesis has a large effect size, where c2≥1/(fα), so when f is large enough, different tests have similar power. We calculate the maximal power for different f1=f2=f, then the power is Second, assume that both null hypothesis are false with the same effect size, say, c1(c1−2c2)α=1−2c2, then c2 decreases (c1 increases).When f values. When we assume both hypotheses are false and with a small effect size, where c2=0 and c1≥1/(fα). By taking both c2=0 is the uniformly best choice when both null hypotheses are false. We calculate the maximal power for different n single hypotheses, where m of them are true significances , define the probabilities as n,m indicates the probability for n hypotheses, where m is the number of the true significances, and n0=n−m is the number of the true nulls.In general, for a global test with i=nSince i, since Similarly, for general iwe have the general recurrence relation for Bn,m,i for m=0 to calculate the type I error under the global null hypothesis. They proved a recurrence relationship among Bn,0,i’s. We generalize this result to Bn,m,i’s and have this recurrence relationship .So when m is relatively large , the bound c1,⋯,cn+1−m and small cn+2−m,⋯,cn tend to have large power. Similar observations were reported by Gou and Tamhane [Note that when  Tamhane  based onHi is false. For testing multiple hypothesis, powers can be of different types: individual, average, disjunctive, and conjunctive, and the appropriate power concept is determined on a case-by-case basis [p-value model.Note that in this application power is simply the probability of rejecting se basis . These pp-value model can be applied to various clinical trials, e.g., group sequential designs [Power analysis can be complex when multiple hierarchical objectives are involved. Alosh and Huque  discusse designs , graphic designs , 6.For multiple test procedures, critical constants are often required to satisfy , 12 13\This requirement is called the monotonicity assumption of critical constants.Suppose that we have a set of critical constants α, then another test with critical constants α, and has the same power with the previous test which does not satisfy the monotonicity assumption. Hence, only the set of critical constants which satisfies the monotonicity assumption needs to be considered.So if a test with critical constants Many multiple tests have critical constants which satisfy a strict monotonicity assumption , 22, 25 p-value models can explain that this assumption is necessary because the corresponding tests are generally more powerful than other tests which do not satisfy this assumption.Some multiple tests satisfy the monotonicity assumption , but do p-value model, we have several observations: (1) when there is one true null hypothesis and one false null hypothesis, only if f values. In general, on the parameter space of the effect size , the tests which do not satisfy  whe satisfy  is less  satisfy  for all  satisfy  have mor satisfy  only at  satisfy , because satisfy .2, and randomly assigned the participants to a comparison treatment with a print manual and telephone follow-ups, or an experimental treatment of the coach approach exercise-support protocol. The self-efficacy for controlled eating (SE-eating) is one of the psychological predictors of behavioral changes. Annesi et al. [t=2.88, and there was no significant between-group difference during the weight-loss maintenance phase (month 6-24) with t=−0.48.Annesi et al.  evaluatep-value model because it is easy to implement and preserves the information from the alternative hypothesis. If we take the weight-loss study by Annesi et al. [δ=2.88 and variance 1, and the increase during the weight-loss maintenance phase is normally distributed with mean δ=0 and variance 1. To match the mean for the normal-distribution-based p-value model with parameter δ=2.88, the parameter f of the simplified step-function-based p-value model is 23.979. From /(2f)=62 %, and the optimal choice of critical constants is =(1/(fα),(f2α−1)/(2αf(f−1)))=. So the larger p-value is compared with 0.8341α and the smaller p-value is compared with 0.5036α, and if any p-value is less than the corresponding critical value, the global null hypothesis will be rejected.The increases of the self-efficacy for controlled eating were evaluated both during the weight-loss phase and during the weight-loss maintenance phase, so the multiplicity adjustment is advised to apply. To choose the optimal multiplicity correction based on the estimated effect size from the pilot study, we recommend our proposed step-function-based i et al.  as a pilp-value models for power analysis simplify the theoretical analysis that is difficult in many situations. At the same time, information of loss remains at an acceptable level. Finner and Gontscharuk [p-values under the false null hypotheses follow a Dirac distribution with point mass at 0. When the Dirac-uniform configuration is applied to Annesi et al.’s [δ is lost, and any choice of positive critical constants  will result a claim of significance. Under the p-value model based on Dirac function, all choices of critical constants have the same power, and the optimal choice is unable to be located.The step-function-based tscharuk  and Sarktscharuk  used a tet al.’s  study, tp-value model based on normal distribution. By using Annesi et al.’s [N, and the other test statistic is N. The probability of rejecting the global null hypothesis is The Dirac-uniform configuration is too brief to include necessary information to choose the optimal critical constants. Hung et al.  discusseet al.’s  researchThe optimal choice of critical constants is followed by solving δ=2.88 and α=0.05, the optimal solution is =. While the step-function based p-value model and the normal-distribution based p-value model produce similar choices of critical constants , the model based on step function has an explicit solution of critical constants and requires little computational effort.This optimization problem has no explicit solution. When p-value model and its simplified version. These p-value models are simple and concise to perform theoretical power analysis. In addition, different test statistics, for example, t, chi-square or F, can be transformed to the p-value scale. These models can be applied to the field of multiple testing procedures to explain the assumption of monotonicity of the critical constants. We also use these p-value models to choose suitable sets of critical constants with more power. In this paper, we consider the independent p-values for the multivariate cases. Dependence structures can be brought into these p-value models, like Sarkar et al. [p-value models in a separate paper. Finally, there are many applications of the step-function-based p-value models, and multiple testing procedure is an example in point.We have given a step-function-based r et al.  or Gou ar et al. , and we