1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <link rel="stylesheet" href="css/GX.css"/> 6 <!-- <meta http-equiv="refresh" content="0; url=https://lanagarmiregroup.shinyapps.io/granatum/"/> --> 7 <!-- <meta http-equiv="refresh" content="0; url=https://ns103173.ip-147-135-38.us/"/>--> 8 <!-- Lightweight client-side loader that feature-detects and load polyfills only when necessary --> 9
9<script src="https://cdn.jsdelivr.net/npm/@webcomponents/webcomponentsjs@2/webcomponents-loader.min.js"></script>
9 10 11 <!-- Load the element definition --> 12
12<script type="module" src="https://cdn.jsdelivr.net/gh/zerodevx/zero-md@1/src/zero-md.min.js"></script>
12 13 14
14<script> 15 function addCopyButtons(clipboard) { 16 document.querySelectorAll('pre > code').forEach(function (codeBlock) { 17 var button = document.createElement('button'); 18 button.className = 'copy-code-button'; 19 button.type = 'button'; 20 button.innerText = 'Copy'; 21 22 button.addEventListener('click', function () { 23 clipboard.writeText(codeBlock.innerText).then(function () { 24 /* Chrome doesn't seem to blur automatically, 25 leaving the button in a focused state. */ 26 button.blur(); 27 28 button.innerText = 'Copied!'; 29 30 setTimeout(function () { 31 button.innerText = 'Copy'; 32 }, 2000); 33 }, function (error) { 34 button.innerText = 'Error'; 35 }); 36 }); 37 38 var pre = codeBlock.parentNode; 39 if (pre.parentNode.classList.contains('highlight')) { 40 var highlight = pre.parentNode; 41 highlight.parentNode.insertBefore(button, highlight); 42 } else { 43 pre.parentNode.insertBefore(button, pre); 44 } 45 }); 46 } 47 48 function scr() { 49 if (navigator && navigator.clipboard) { 50 addCopyButtons(navigator.clipboard); 51 } else { 52 var script = document.createElement('script'); 53 script.src = 'https://cdnjs.cloudflare.com/ajax/libs/clipboard-polyfill/2.7.0/clipboard-polyfill.promise.js'; 54 script.integrity = 'sha256-waClS2re9NUbXRsryKoof+F9qc1gjjIhc2eT7ZbIv94='; 55 script.crossOrigin = 'anonymous'; 56 script.onload = function() { 57 addCopyButtons(clipboard); 58 }; 59 60 document.body.appendChild(script); 61 } 62 } 63 </script>
63 64 <style> 65 md-html { 66 width: 200px; 67 } 68 </style> 69 70</head> 71<!--<body onload="scr();">--> 72<body> 73<article> 74 <header> 75 <h1> 76 GranatumX: A community engaging and flexible software environment for single-cell analysis 77 </h1> 78 <h3> 79 Paper location: <a href="https://www.biorxiv.org/content/10.1101/385591v3">https://www.biorxiv.org/content/10.1101/385591v3</a> 80 </h3> 81 <h3> 82 Code Authors: GranatumX (alias to current codebase membership located <a href="authors.html">here</a>) 83 </h3> 84 </header> 85 <section> 86 <h2> 87 Cloud location 88 </h2> 89 <p> 90 A cloud deployment of GranatumX or GX is located at <a href="https://granatumx.eecs.umich.edu">https://granatumx.eecs.umich.edu</a>. 91 If you receive an error, try again in 5 minutes as the system may be updating. Also you may use the backup service 92 in the meantime located <a href="http://ns102669.ip-147-135-37.us:34567/">here</a> in case maintenance is being done on the server. 93 Feel free to run your data through this system, but note that files may be removed after a period of inactivity. 94 You may refer back to this page as a guide to process your data. If you are a tool developer, we include instructions 95 for building your own tools that can be used directly by biologists to process their data and a citation for your 96 work will be given to them. 97 </p> 98 </section> 99 <section> 100 <h2> 101 Video tutorial: using GranatumX 102 </h2> 103 <p align="center"> 104 <iframe width="560" height="315" src="https://www.youtube.com/embed/wi3DhDbXJYo" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> 105 <p align="center"> 106 Chinese-accessible video available <a href="https://v.youku.com/v_show/id_XNTE2ODEzOTM4NA==.html">here</a>. 107 </p> 108 </p> 109<!-- <h2>--> 110<!-- Video tutorial: creating a Gbox--> 111<!-- </h2>--> 112<!-- <p align="center">--> 113<!-- <iframe width="560" height="315" src="https://www.youtube.com/embed/aBMoxBcDnEI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>--> 114<!-- </p>--> 115 </section> 116 <section> 117 <h2> 118 Getting started using the web interface 119 </h2> 120 121 <h3>Browser compatibility</h3> 122 <p>GX works with most browsers; however, it is optimized for Google Chrome or Safari-based browsers.</p> 123 124 <h3>Matrix preparation for data</h3> 125 <p> 126 You can upload expression data using a csv, tsv, or zip file. For large matrices, it is recommended to use zip compression on your csv data. 127 The header row should consist of the cell titles. These cell titles will be corresponded to associated data in the metafile data. 128 The column of your data matrix is the gene id. You can typically export the matrix from Excel if that is where your data is located. 129 If you have a 100000 cell table, then your size can be quite large. You should upload your data as a zipped csv file. Note that spacing is ignored. 130 <pre class="code"> 131 <code>"" ,"cell_1","cell_2","cell_3"</code> 132 <code>"gene 1", 0, 10, 2</code> 133 <code>"gene 2", 2, 8, 1</code></pre> 134 </p> 135 <p> 136 Large files require zipping or gzipping (gz). Your metadata should use the same format. 137 </p> 138 <p> 139 You can upload metadata as a csv, tsv, or zip file as well. This file associates the cell label from the matrix data file to additional data such as cell annotations. 140 <pre class="code"> 141 <code>"" ,"annotation_1","annotation_2"</code> 142 <code>"cell_1", "lung tissue", "cancerous"</code> 143 <code>"cell_2","heart tissue", "cancerous"</code> 144 <code>"cell_3", "lung tissue", "normal"</code></pre> 145 </p> 146 147 <p> 148 You can load the comprehensive recipe and use the example data to test. 149 </p> 150 151 <p> 152 If you get stuck at a step or the ui is unresponsive you can reload the page without losing your information. 153 </p> 154 155 </section> 156 <section> 157 <h2>Running locally</h2> 158 <p> As a prerequisite you will want sufficient RAM (16+ GB ideally), a working installation of docker, and a working bash shell.</p> 159 <p> 160 For setting up WSL2 on Windows, you can also view the video located here: 161 </p> 162 <p align="center"> 163 <iframe width="560" height="315" src="https://www.youtube.com/embed/_fntjriRe48" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> 164 <p align="center"> 165 Chinese-accessible material available <a href="https://blog.csdn.net/yushuzhen2008/article/details/104944579">here</a> 166 </p> 167 </p> 168 <p>For setting up Docker on Windows, you can also view the video located here:</p> 169 <p align="center"> 170 <iframe width="560" height="315" src="https://www.youtube.com/embed/5RQbdMn04Oc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> 171 <p align="center"> 172 Chinese-accessible material available <a href="https://docs.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-containers">here</a> 173 </p> 174 </p> 175 <p> 176 For getting GranatumX up and running you will want to execute in your shell: 177 <pre class="code"> 178 <code>source <( docker run --rm -it granatumx/scripts:1.0.0 gx.sh )</code></pre> 179 </p> 180 <p> 181 If you receive an error, run: 182 <pre class="code"> 183 <code>curl -s http://garmiregroup.org/granatumx/app/gx.txt | source /dev/stdin</code></pre> 184 </p> 185 </section> 186 <!-- Simply set the `src` attribute to your MD file and win --> 187 <section> 188 <h2>Creating your own GBOX</h2> 189 <p> 190 After you have a Bash terminal installed and a copy of Docker working, you can follow the steps below and watch the video below. 191 </p> 192 <p align="center"> 193 <iframe width="560" height="315" src="https://www.youtube.com/embed/aBMoxBcDnEI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> 194 <p align="center"> 195 Chinese-accessible video available <a href="https://v.youku.com/v_show/id_XNTE2ODE0MDY5Mg==.html">here</a>. 196 </p> 197 </p> 198 <zero-md src="../tutorial/README.md"> 199 <template data-merge="append"> 200 <style> 201 img { 202 width: 50%; 203 } 204 </style> 205 </template> 206 </zero-md> 207 </section> 208</article> 209 210</body> 211</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.