<!DOCTYPE html>
<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><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>Convert Seurat Object to AnnData and Generate scVelo Plots for Single-Cell RNA Velocity Analysis — scVelo.SeuratToAnndata • SeuratExtend</title><!-- jquery --><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script><!-- Bootstrap --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha256-bZLfwXAP04zRMK2BjiO8iu9pf4FbLqX6zitd+tIvLhE=" crossorigin="anonymous"><script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script><!-- bootstrap-toc --><link rel="stylesheet" href="../bootstrap-toc.css"><script src="../bootstrap-toc.js"></script><!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous"><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- pkgdown --><link href="../pkgdown.css" rel="stylesheet"><script src="../pkgdown.js"></script><meta property="og:title" content="Convert Seurat Object to AnnData and Generate scVelo Plots for Single-Cell RNA Velocity Analysis — scVelo.SeuratToAnndata"><meta property="og:description" content="This set of functions converts a Seurat object and associated Velocyto loom file(s) into an AnnData object and generates visualization plots for RNA velocity analysis using scVelo. The AnnData object can be directly read from a file or accessed from memory to produce various styles of plots. This integrated approach facilitates the use of scVelo for trajectory analysis in Python's Scanpy library, allowing seamless transition between data processing in R and trajectory analysis in Python."><!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]--></head><body data-spy="scroll" data-target="#toc">
    

    <div class="container template-reference-topic">
      <header><div class="navbar navbar-default navbar-fixed-top" role="navigation">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <span class="navbar-brand">
        <a class="navbar-link" href="../index.html">SeuratExtend</a>
        <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="">1.0.0</span>
      </span>
    </div>

    <div id="navbar" class="navbar-collapse collapse">
      <ul class="nav navbar-nav"><li>
  <a href="../reference/index.html">Reference</a>
</li>
      </ul><ul class="nav navbar-nav navbar-right"></ul></div><!--/.nav-collapse -->
  </div><!--/.container -->
</div><!--/.navbar -->

      

      </header><div class="row">
  <div class="col-md-9 contents">
    <div class="page-header">
    <h1>Convert Seurat Object to AnnData and Generate scVelo Plots for Single-Cell RNA Velocity Analysis</h1>
    
    <div class="hidden name"><code>scVelo.SeuratToAnndata.Rd</code></div>
    </div>

    <div class="ref-description">
    <p>This set of functions converts a Seurat object and associated Velocyto loom file(s) into an AnnData object and generates visualization plots for RNA velocity analysis using scVelo. The AnnData object can be directly read from a file or accessed from memory to produce various styles of plots. This integrated approach facilitates the use of scVelo for trajectory analysis in Python's Scanpy library, allowing seamless transition between data processing in R and trajectory analysis in Python.</p>
    </div>

    <div id="ref-usage">
    <div class="sourceCode"><pre class="sourceCode r"><code><span><span class="fu">scVelo.SeuratToAnndata</span><span class="op">(</span></span>
<span>  <span class="va">seu</span>,</span>
<span>  <span class="va">filename</span>,</span>
<span>  <span class="va">velocyto.loompath</span>,</span>
<span>  cell.id.match.table <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  prefix <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  postfix <span class="op">=</span> <span class="st">"-1"</span>,</span>
<span>  conda_env <span class="op">=</span> <span class="st">"seuratextend"</span></span>
<span><span class="op">)</span></span>
<span></span>
<span><span class="fu">scVelo.Plot</span><span class="op">(</span></span>
<span>  load.adata <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  style <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"stream"</span>, <span class="st">"grid"</span>, <span class="st">"scatter"</span><span class="op">)</span>,</span>
<span>  basis <span class="op">=</span> <span class="st">"umap_cell_embeddings"</span>,</span>
<span>  color <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  groups <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  palette <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  alpha <span class="op">=</span> <span class="fl">0.15</span>,</span>
<span>  arrow_size <span class="op">=</span> <span class="fl">3</span>,</span>
<span>  arrow_length <span class="op">=</span> <span class="fl">2</span>,</span>
<span>  dpi <span class="op">=</span> <span class="fl">300</span>,</span>
<span>  legend_fontsize <span class="op">=</span> <span class="fl">9</span>,</span>
<span>  figsize <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="fl">7</span>, <span class="fl">5</span><span class="op">)</span>,</span>
<span>  xlim <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  ylim <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  save <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  conda_env <span class="op">=</span> <span class="st">"seuratextend"</span></span>
<span><span class="op">)</span></span></code></pre></div>
    </div>

    <div id="arguments">
    <h2>Arguments</h2>
    <dl><dt>seu</dt>
<dd><p>The Seurat object containing single-cell RNA sequencing data that needs to be analyzed using scVelo.</p></dd>


<dt>filename</dt>
<dd><p>Path where the resulting AnnData object will be saved. This should be a path to an h5ad file.</p></dd>


<dt>velocyto.loompath</dt>
<dd><p>Path(s) to the Velocyto-generated loom file which contains RNA velocity data.</p></dd>


<dt>cell.id.match.table</dt>
<dd><p>An optional data frame for advanced users that maps cell IDs between the Seurat object and Velocyto loom file across multiple samples. It requires a strict format with three columns: cellid.seurat, cellid.velocyto, and velocyto.loompath, indicating the cell ID in the Seurat object, the corresponding cell ID in the Velocyto loom, and the loom file path for that sample, respectively. Default: NULL</p></dd>


<dt>prefix</dt>
<dd><p>Prefix used to prepend to cell IDs in the Seurat object to match the corresponding IDs in the Velocyto loom file, reflecting sample or batch identifiers. Default: NULL</p></dd>


<dt>postfix</dt>
<dd><p>Postfix appended to cell IDs in the Seurat object to match the corresponding IDs in the Velocyto loom file. Default: '-1'</p></dd>


<dt>conda_env</dt>
<dd><p>Name of the Conda environment where the Python dependencies for scVelo and Scanpy are installed. This environment is used to run Python code from R. Default: 'seuratextend'</p></dd>


<dt>load.adata</dt>
<dd><p>Path to a previously saved AnnData object (in h5ad format) which can be directly loaded to avoid re-running preprocessing. If NULL, reticulate will automatically use the existing AnnData object `adata` in the Python environment for plotting. Default: NULL.</p></dd>


<dt>style</dt>
<dd><p>Style of the velocity plot, allowing for different visual representations such as 'stream', 'grid', or 'scatter'. Default: c("stream", "grid", "scatter").</p></dd>


<dt>basis</dt>
<dd><p>The embedding to be used for plotting, typically 'umap_cell_embeddings' to represent UMAP reductions. Default: 'umap_cell_embeddings'.</p></dd>


<dt>color</dt>
<dd><p>The variable by which to color the plot, usually a categorical variable like cluster identifiers or a continuous variable reflecting gene expression levels. Default: NULL.</p></dd>


<dt>groups</dt>
<dd><p>Groups or clusters to highlight in the plot, useful for focusing on specific cell types or conditions within the dataset. Default: NULL.</p></dd>


<dt>palette</dt>
<dd><p>Color palette to use for differentiating between groups or clusters within the plot. Allows customization of aesthetic presentation. Default: NULL.</p></dd>


<dt>alpha</dt>
<dd><p>Opacity of the points in the plot, which can be adjusted to enhance visualization when dealing with densely packed points. Default: 0.15.</p></dd>


<dt>arrow_size</dt>
<dd><p>Size of the arrows representing RNA velocity vectors in the plot, relevant only when `style` is set to 'scatter'. This can be adjusted to make the arrows more or less prominent based on visualization needs. Default: 3.</p></dd>


<dt>arrow_length</dt>
<dd><p>Length of the arrows, which affects how far the arrows extend from their origin points. Relevant only when style is 'scatter', helping in interpreting the directionality and magnitude of cellular transitions. Default: 2.</p></dd>


<dt>dpi</dt>
<dd><p>Resolution of the saved plot, useful when preparing figures for publication or presentations. Default: 300.</p></dd>


<dt>legend_fontsize</dt>
<dd><p>Size of the font used in the plot legend, allowing for customization based on the figure's intended use or audience. Default: 9.</p></dd>


<dt>figsize</dt>
<dd><p>Dimensions of the plot in inches, providing control over the size of the output figure to accommodate different analysis contexts. Default: c(7, 5).</p></dd>


<dt>xlim</dt>
<dd><p>Limits for the x-axis, which can be set to focus on specific areas of the plot or to standardize across multiple plots. Default: NULL.</p></dd>


<dt>ylim</dt>
<dd><p>Limits for the y-axis, similar in use to `xlim` for focusing or standardizing the y-axis view. Default: NULL.</p></dd>


<dt>save</dt>
<dd><p>Path where the plot should be saved. If specified, the plot will be saved to the given location. Supports various file formats like PNG, PDF, SVG, etc. Default: NULL.</p></dd>

</dl></div>
    <div id="value">
    <h2>Value</h2>
    

<p>These functions do not return any object within R; instead, they prepare and store an AnnData object `adata` in the Python environment accessible via `reticulate`, and generate plots which can be viewed directly or saved to a file. The plots reflect the dynamics of RNA velocity in single-cell datasets.</p>
    </div>
    <div id="details">
    <h2>Details</h2>
    <p>This integrated functionality facilitates a seamless transition between converting Seurat objects to AnnData objects and plotting with scVelo. The primary metadata and dimension reduction data from the Seurat object are used to prepare the AnnData object, which is then utilized for generating plots. `SeuratExtend` enhances scVelo plotting capabilities in R, supporting a variety of customization options for visualizing single-cell RNA velocity data. Users can manipulate plot styles, color schemes, group highlights, and more, making it an essential tool for advanced single-cell analysis without the need for direct interaction with Python code.</p>
    </div>

    <div id="ref-examples">
    <h2>Examples</h2>
    <div class="sourceCode"><pre class="sourceCode r"><code><span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://satijalab.org/seurat" class="external-link">Seurat</a></span><span class="op">)</span></span>
<span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va">SeuratExtend</span><span class="op">)</span></span>
<span></span>
<span><span class="co"># Download the example Seurat Object</span></span>
<span><span class="va">mye_small</span> <span class="op">&lt;-</span> <span class="fu"><a href="https://rdrr.io/r/base/readRDS.html" class="external-link">readRDS</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/connections.html" class="external-link">url</a></span><span class="op">(</span><span class="st">"https://zenodo.org/records/10944066/files/pbmc10k_mye_small_velocyto.rds"</span>, <span class="st">"rb"</span><span class="op">)</span><span class="op">)</span></span>
<span></span>
<span><span class="co"># Download the example velocyto loom file to tmp folder</span></span>
<span><span class="va">loom_path</span> <span class="op">&lt;-</span> <span class="fu"><a href="https://rdrr.io/r/base/file.path.html" class="external-link">file.path</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/tempfile.html" class="external-link">tempdir</a></span><span class="op">(</span><span class="op">)</span>, <span class="st">"pbmc10k_mye_small.loom"</span><span class="op">)</span></span>
<span><span class="fu"><a href="https://rdrr.io/r/utils/download.file.html" class="external-link">download.file</a></span><span class="op">(</span><span class="st">"https://zenodo.org/records/10944066/files/pbmc10k_mye_small.loom"</span>, <span class="va">loom_path</span><span class="op">)</span></span>
<span></span>
<span><span class="co"># Set up the path for saving the AnnData object in the HDF5 (h5ad) format</span></span>
<span><span class="va">adata_path</span> <span class="op">&lt;-</span> <span class="fu"><a href="https://rdrr.io/r/base/file.path.html" class="external-link">file.path</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/tempfile.html" class="external-link">tempdir</a></span><span class="op">(</span><span class="op">)</span>, <span class="st">"mye_small.h5ad"</span><span class="op">)</span></span>
<span></span>
<span><span class="co"># Integrate Seurat Object and velocyto loom information into one AnnData object, which will be stored at the specified path.</span></span>
<span><span class="fu">scVelo.SeuratToAnndata</span><span class="op">(</span></span>
<span>  <span class="va">mye_small</span>, <span class="co"># The downloaded example Seurat object</span></span>
<span>  filename <span class="op">=</span> <span class="va">adata_path</span>, <span class="co"># Path where the AnnData object will be saved</span></span>
<span>  velocyto.loompath <span class="op">=</span> <span class="va">loom_path</span>, <span class="co"># Path to the loom file</span></span>
<span>  prefix <span class="op">=</span> <span class="st">"sample1_"</span>, <span class="co"># Prefix for cell IDs in the Seurat object</span></span>
<span>  postfix <span class="op">=</span> <span class="st">"-1"</span> <span class="co"># Postfix for cell IDs in the Seurat object</span></span>
<span><span class="op">)</span></span>
<span></span>
<span><span class="co"># Generate a default UMAP plot colored by 'cluster' and save it as a PNG file</span></span>
<span><span class="fu">scVelo.Plot</span><span class="op">(</span>color <span class="op">=</span> <span class="st">"cluster"</span>, save <span class="op">=</span> <span class="st">"umap1.png"</span>, figsize <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="fl">5</span>,<span class="fl">4</span><span class="op">)</span><span class="op">)</span></span>
<span></span>
<span><span class="co"># Generate a scatter style plot highlighting specific groups, using a custom color palette, with specified axis limits, and save it to a file</span></span>
<span><span class="fu">scVelo.Plot</span><span class="op">(</span></span>
<span>  style <span class="op">=</span> <span class="st">"scatter"</span>,</span>
<span>  color <span class="op">=</span> <span class="st">"cluster"</span>,</span>
<span>  groups <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"DC"</span>, <span class="st">"Mono CD14"</span><span class="op">)</span>,</span>
<span>  palette <span class="op">=</span> <span class="fu"><a href="color_pro.html">color_pro</a></span><span class="op">(</span><span class="fl">3</span>, <span class="st">"light"</span><span class="op">)</span>,</span>
<span>  xlim <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="fl">0</span>, <span class="fl">10</span><span class="op">)</span>, ylim <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="fl">0</span>, <span class="fl">10</span><span class="op">)</span>,</span>
<span>  save <span class="op">=</span> <span class="st">"umap2_specified_area.png"</span></span>
<span><span class="op">)</span></span></code></pre></div>
    </div>
  </div>
  <div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
    <nav id="toc" data-toggle="toc" class="sticky-top"><h2 data-toc-skip>Contents</h2>
    </nav></div>
</div>


      <footer><div class="copyright">
  <p></p><p>Developed by Yichao Hua.</p>
</div>

<div class="pkgdown">
  <p></p><p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.0.9.</p>
</div>

      </footer></div>

  


  

  </body></html>

