KarrLab/obj_tables

View on GitHub
obj_tables/web/app.html

Summary

Maintainability
Test Coverage
<!doctype html>
<html class="no-js" lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ObjTables: Tools for creating and reusing high-quality spreadsheets</title>
    <meta name="description" content="ObjTables is a free, open-source toolkit for systematically building, annotating, validating, and parsing complex datasets with the ease of spreadsheets (e.g., XLSX), the rigor of schemas, and the power of object-oriented programming. ObjTables makes it easy to design schemas for datasets, generate template spreadsheets with inline help and validation for building datasets, capture metadata such as the author of a dataset, use schemas to validate the syntax and semantics of datasets, and use schemas to parse datasets into data structures for further analysis in languages such as Python. The ObjTables software is available through four interfaces: a web application, a web service, a command-line program, and a Python library. Together, ObjTables can help researchers define formats for domain-specific data, integrate diverse data, analyze complex datasets, and share data."/>
    <meta name="keywords" content="data, table, schema, data model, meta model, data type, validate, Python"/>
    <meta name="language" content="EN">
    <meta name="copyright" content="ObjTables developers"/>
    <meta name="author" content="ObjTables developers, info@objtables.org"/>
    <meta name="reply-to" content="info@objtables.org"/>
    <meta name="url" content="https://www.objtables.org">
    <meta name="identifier-URL" content="https://www.objtables.org">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
    <link rel="manifest" href="/manifest.json">
    <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#3bafda">
    <meta name="msapplication-TileColor" content="#3bafda">
    <meta name="theme-color" content="#ffffff">
    <link rel="stylesheet" href="css/foundation-icons.css">
    <link rel="stylesheet" href="css/foundation.min.css">
    <link rel="stylesheet" href="css/raleway.css">
    <link rel="stylesheet" href="css/app.css">
    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-165117961-1"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());

      gtag('config', 'UA-165117961-1');
    </script>
  </head>
  <body>
    <div class="off-canvas-wrapper">
      <div class="off-canvas position-left" id="offCanvasLeft" data-off-canvas>
        <!-- Close button -->
        <button class="close-button" aria-label="Close menu" type="button" data-close>
          <span aria-hidden="true">&times;</span>
        </button>

        <!-- Menu -->
        <ul class="accordion" data-accordion data-allow-all-closed="true">
          <li class="accordion-item" data-accordion-item>
            <a class="accordion-title">Guide</a>
            <ul class="accordion-content" data-tab-content>
              <li><a href="guide#authors">Authors</a></li>
              <li><a href="guide#reviewers">Reviewers and editors</a></li>
              <li><a href="guide#readers">Readers</a></li>
            </ul>
          </li>
          <li class="accordion-item is-active" data-accordion-item>
            <a class="accordion-title">Software</a>
            <ul class="accordion-content" data-tab-content>
              <li><a href="app">Web application</a></li>
              <li><a href="https://pypi.org/pypi/obj_tables/">Command-line program</a></li>
              <li><a href="api">Web service</a></li>
              <li><a href="https://pypi.org/pypi/obj_tables/">Python package</a></li>
              <li class="separator"><a href="https://hub.docker.com/r/karrlab/obj_tables">Docker image</a></li>
              <li><a href="https://github.com/KarrLab/obj_tables/">Source code</a></li>
            </ul>
          </li>
          <li class="accordion-item" data-accordion-item>
            <a class="accordion-title">Docs</a>
            <ul class="accordion-content" data-tab-content>
              <li><a href="docs#examples">Detailed example</a></li>
              <li><a href="docs#more-examples">Additional examples</a></li>
              <li class="separator"><a href="docs#schema-formats">Schema formats</a></li>
              <li><a href="docs#data-types">Data types</a></li>
              <li><a href="docs#dataset-formats">Dataset formats</a></li>
              <li><a href="docs#validation">Data validation</a></li>
              <li class="separator"><a href="app">Web application</a></li>
              <li><a href="docs#cli">Command-line program</a></li>
              <li><a href="api">Web service</a></li>
              <li><a href="docs#python">Python package: introduction</a></li>
              <li><a href="https://sandbox.karrlab.org/tree/obj_tables">Python package: tutorials</a></li>
              <li><a href="https://docs.karrlab.org/obj_tables">Python package: docs</a></li>
              <li class="separator"><a href="docs#other-languages">Working with <i>ObjTables</i> in other languages</a></li>
              <li><a href="docs#other-resources">Resources for working with <i>ObjTables</i></a></li>
              <li><a href="docs#comparison">Comparison with other tools</a></li>
              <li><a href="docs#design-choices">Design choices</a></li>
              <li><a href="docs#limitations">Known limitations</a></li>
              <li><a href="docs#roadmap">Future directions</a></li>
              <li><a href="docs#faq">FAQ</a></li>
              <li class="separator"><a href="docs#help">More help</a></li>
            </ul>
          </li>
          <li class="accordion-item" data-accordion-item>
            <a class="accordion-title">About</a>
            <ul class="accordion-content" data-tab-content>
              <li><a href="about#license">License</a></li>
              <li><a href="about#citation">Citation</a></li>
              <li class="separator"><a href="about#contribute">Contributing</a></li>
              <li class="separator"><a href="about#team">Team</a></li>
              <li><a href="about#funding">Funding</a></li>
              <li class="separator"><a href="about#contact">Contact info</a></li>
            </ul>
          </li>
        </ul>
      </div>

      <div class="off-canvas-content" data-off-canvas-content>
        <div class="page-title">
          <div class="grid-container">
            <div class="grid-x grid-padding-x">
              <div class="large-8 medium-6 small-12 cell title">
                <button class="menu-icon hide-for-medium" type="button" data-open="offCanvasLeft"></button>
                <a href="/">
                  <span class="title"><i>ObjTables</i><span class="show-for-large">:</span></span>
                  <span class="subtitle show-for-large">
                    Tools for creating and reusing high-quality spreadsheets
                  </span>
                </a>
              </div>
              <div class="large-4 medium-6 hide-for-small-only cell links">
                <ul class="dropdown menu" data-dropdown-menu>
                  <li>
                    <a>Guide</a>
                    <ul class="menu">
                      <li><a href="guide#authors">Authors</a></li>
                      <li><a href="guide#reviewers">Reviewers and editors</a></li>
                      <li><a href="guide#readers">Readers</a></li>
                    </ul>
                  </li>
                  <li class="active-page">
                    <a>Software</a>
                    <ul class="menu">
                      <li><a href="app">Web application</a></li>
                      <li><a href="https://pypi.org/pypi/obj_tables/">Command-line program</a></li>
                      <li><a href="api">Web service</a></li>
                      <li><a href="https://pypi.org/pypi/obj_tables/">Python package</a></li>
                      <li class="separator"><a href="https://hub.docker.com/r/karrlab/obj_tables">Docker image</a></li>
                      <li><a href="https://github.com/KarrLab/obj_tables/">Source code</a></li>
                    </ul>
                  </li>
                  <li>
                    <a>Docs</a>
                    <ul class="menu">
                      <li><a href="docs#examples">Detailed example</a></li>
                      <li><a href="docs#more-examples">Additional examples</a></li>
                      <li class="separator"><a href="docs#schema-formats">Schema formats</a></li>
                      <li><a href="docs#data-types">Data types</a></li>
                      <li><a href="docs#dataset-formats">Dataset formats</a></li>
                      <li><a href="docs#validation">Data validation</a></li>
                      <li class="separator"><a href="app">Web application</a></li>
                      <li><a href="docs#cli">Command-line program</a></li>
                      <li><a href="api">Web service</a></li>
                      <li><a href="docs#python">Python package: introduction</a></li>
                      <li><a href="https://sandbox.karrlab.org/tree/obj_tables">Python package: tutorials</a></li>
                      <li><a href="https://docs.karrlab.org/obj_tables">Python package: docs</a></li>
                      <li class="separator"><a href="docs#other-languages">Working with <i>ObjTables</i> in other languages</a></li>
                      <li><a href="docs#other-resources">Resources for working with <i>ObjTables</i></a></li>
                      <li><a href="docs#comparison">Comparison with other tools</a></li>
                      <li><a href="docs#design-choices">Design choices</a></li>
                      <li><a href="docs#limitations">Known limitations</a></li>
                      <li><a href="docs#roadmap">Future directions</a></li>
                      <li><a href="docs#faq">FAQ</a></li>
                      <li class="separator"><a href="docs#help">More help</a></li>
                    </ul>
                  </li>
                  <li>
                    <a>About</a>
                    <ul class="menu">
                      <li><a href="about#license">License</a></li>
                      <li><a href="about#citation">Citation</a></li>
                      <li class="separator"><a href="about#contribute">Contributing</a></li>
                      <li class="separator"><a href="about#team">Team</a></li>
                      <li><a href="about#funding">Funding</a></li>
                      <li class="separator"><a href="about#contact">Contact info</a></li>
                    </ul>
                  </li>
                </ul>
              </div>
            </div>
          </div>
        </div>

        <div class="grid-container content">
          <div class="grid-x grid-padding-x">
            <div class="large-6 cell content-container">
              <h2>Upload schema and dataset</h2>
              <a id="form"></a>
              <form>
                <div class="input-label">
                  <p><b>Select an operation</b></p>
                  <select id="method" name="method">
                    <option value="convert">Convert: convert a dataset to another format according to a schema</option>
                    <option value="diff">Difference: compare the semantic meaning two datasets according to a schema</option>
                    <option value="gen-template">Generate template: generate a template set of tables for a schema</option>
                    <option value="init-schema">Initialize Python schema: generate a Python module that implements a tabular-formatted schema</option>
                    <option value="normalize">Normalize: pretty format a dataset according to a schema</option>
                    <option value="validate" selected>Validate: check that a dataset adheres to a schema and report any errors</option>
                    <option value="viz-schema">Visualize: generate a UML diagram for a schema</option>
                  </select>
                </div>

                <div class="input-label">
                  <p><b>Upload an <i>ObjTables</i> schema (.csv, .tsv, .xlsx)</b></p>
                  <p>Example: <a href="https://github.com/KarrLab/obj_tables/raw/master/examples/address_book/schema.xlsx">Address book schema</a></p>
                  <p>If the .multi.csv, .multi.tsv, or .xslx file contains both a schema and dataset, select the file twice: once for its schema here and again for its dataset below. See the documentation <a href="docs#schema-formats"><i class="fi-link"></i></a> for information about the format for schemas.</p>
                  <input type="file" id="schema" name="schema" accept=".csv,.tsv,.xlsx" />
                </div>                

                <div class="input-label" id="label_dataset">
                  <p><b>Upload an <i>ObjTables</i>-formatted dataset (.multi.csv, .multi.tsv, .xlsx, .zip of .csv, .zip of .tsv)</b></p>
                  <p>Example: <a href="https://github.com/KarrLab/obj_tables/raw/master/examples/address_book/data.xlsx">Address book of technology companies and their CEOs</a></p>
                  <p>If the .multi.csv, .multi.tsv, or .xslx file contains both a schema and dataset, select the file twice: once for its schema above and again for its dataset here. See the documentation <a href="docs"><i class="fi-link"></i></a> for information about the format for datasets and examples.</p>
                  <input type="file" id="workbook" name="workbook" accept=".csv,.json,.tsv,.xlsx,.yml,.zip" />
                </div>

                <div class="input-label" id="label_dataset-2">
                  <p><b>Upload a second <i>ObjTables</i>-formatted dataset (.multi.csv, .multi.tsv, .xlsx, .zip of .csv, .zip of .tsv)</b></p>
                  <p>Example: <a href="https://github.com/KarrLab/obj_tables/raw/master/examples/address_book/data-9-digit-zip-codes.xlsx">Address book of technology companies and their CEOs with 9-digit rather than 5-digit zip codes</a></p>
                  <p>See the documentation <a href="docs"><i class="fi-link"></i></a> for information about the format for datasets and examples.</p>
                  <input type="file" id="workbook-2" name="workbook-2" accept=".csv,.json,.tsv,.xlsx,.yml,.zip" />
                </div>

                <div class="input-label" id="label_model">
                  <p><b>Enter the name of a class/worksheet to difference or normalize</b></p>
                  <p>Example for sample address book dataset: 'Company'</p>
                  <input type="text" id="model" name="model" />
                </div>

                <div class="input-label" id="label_format">
                  <p><b>Select an output format</b></p>
                  <select id="format" name="format">
                    <option value="json">JSON file</option>
                    <option value="multi.csv">Single text file with multiple comma-separated tables</option>
                    <option value="multi.tsv">Single text file with multiple tab-separated tables</option>
                    <option value="xlsx" selected>XLSX workbook</option>
                    <option value="yml">YAML file</option>
                    <option value="csv">Zip archive of comma-separated files</option>
                    <option value="tsv">Zip archive of tab-separated files</option>
                  </select>
                </div>

                <div class="input-label" id="label_viz_format">
                  <p><b>Select an output format</b></p>
                  <select id="viz_format" name="viz_format">
                    <!--
                    <option value="gif">GIF</option>
                    <option value="jpg">JPEG</option>
                    -->
                    <option value="pdf">PDF</option>
                    <option value="png">PNG</option>
                    <option value="svg" selected>SVG</option>
                  </select>
                </div>

                <input id="submit" type="button" class="button" value="Submit"/>
              </form>
            </div>

            <div class="large-6 cell content-container">
              <h2>Results</h2>
              <div>
                <textarea id="errors" name="errors" style="height: 225px; margin-top: 1.25rem;" disabled>
                </textarea>
                <div class="loader" style="position: relative; top: -225px; display: none;"></div>
              </div>
            </div>
          </div>
        </div>

        <div class="privacy-notice">
          <p>By using this site you agree to use cookies to collect limited personal information to help us improve <i>ObjTables</i> as outlined in our <a href="privacy-policy">Privacy Policy</a>.</p>
        </div>
      </div>
    </div>

    <script src="js/jquery-3.4.1.min.js"></script>
    <script src="js/foundation.min.js"></script>
    <script src="js/app.js"></script>
  </body>
</html>