<!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>Compute and Visualize Cell Trajectories Using CellRank — Cellrank.Compute • 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="Compute and Visualize Cell Trajectories Using CellRank — Cellrank.Compute"><meta property="og:description" content="`Cellrank.Compute()` calculates cell trajectories using pre-existing pseudotime data in an AnnData object, providing an alternative to scVelo when it produces trajectories that may not align with established biological knowledge. `Cellrank.Plot()` visualizes these trajectories. While CellRank allows for trajectory modeling by choosing starting cells, it is crucial to base these decisions on validated biological insights to prevent misinterpretation of the data. For detailed examples, see the [CellRank documentation](https://cellrank.readthedocs.io/en/latest/notebooks/tutorials/kernels/300_pseudotime.html)."><!-- 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>Compute and Visualize Cell Trajectories Using CellRank</h1>
    
    <div class="hidden name"><code>Cellrank-Methods.Rd</code></div>
    </div>

    <div class="ref-description">
    <p>`Cellrank.Compute()` calculates cell trajectories using pre-existing pseudotime data in an AnnData object, providing an alternative to scVelo when it produces trajectories that may not align with established biological knowledge. `Cellrank.Plot()` visualizes these trajectories. While CellRank allows for trajectory modeling by choosing starting cells, it is crucial to base these decisions on validated biological insights to prevent misinterpretation of the data. For detailed examples, see the [CellRank documentation](https://cellrank.readthedocs.io/en/latest/notebooks/tutorials/kernels/300_pseudotime.html).</p>
    </div>

    <div id="ref-usage">
    <div class="sourceCode"><pre class="sourceCode r"><code><span><span class="fu">Cellrank.Compute</span><span class="op">(</span>load.adata <span class="op">=</span> <span class="cn">NULL</span>, <span class="va">time_key</span>, conda_env <span class="op">=</span> <span class="st">"seuratextend"</span><span class="op">)</span></span>
<span></span>
<span><span class="fu">Cellrank.Plot</span><span class="op">(</span></span>
<span>  load.adata <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  <span class="va">basis</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>  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>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>time_key</dt>
<dd><p>The key used to access the pseudotime data within the AnnData object, which is crucial for trajectory computation. This should match the column name in `adata` where the pseudotime data is stored.</p></dd>


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


<dt>basis</dt>
<dd><p>The embedding to be used for plotting, typically "ms", "umap" or "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>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>


<dt>style</dt>
<dd><p>Style of the cellrank plot, allowing for different visual representations such as 'stream', 'grid', or 'scatter'. Default: c("stream", "grid", "scatter").</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>

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

<p>These functions do not return any object directly. `Cellrank.Compute()` updates the AnnData object with the computed trajectories. `Cellrank.Plot()` generates visual representations of these trajectories in the AnnData object and can directly display or save the plots.</p>
    </div>
    <div id="details">
    <h2>Details</h2>
    <p>`Cellrank.Compute()` uses the provided pseudotime data to model the likelihood of cellular transitions, identifying potential pathways and fates within the developmental continuum. This step is critical for accurately capturing the dynamic nature of cell differentiation. `Cellrank.Plot()` then allows for a visual exploration of these pathways, highlighting differences and patterns that can guide further biological interpretation and analysis. Together, these functions provide a robust framework for trajectory analysis in single-cell studies.</p>
    </div>

    <div id="ref-examples">
    <h2>Examples</h2>
    <div class="sourceCode"><pre class="sourceCode r"><code><span><span class="kw">if</span> <span class="op">(</span><span class="cn">FALSE</span><span class="op">)</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"><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"># Load an 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"># Calculate diffusion map and pseudotime using Palantir</span></span>
<span><span class="va">mye_small</span> <span class="op">&lt;-</span> <span class="fu"><a href="Palantir-Methods.html">Palantir.RunDM</a></span><span class="op">(</span><span class="va">mye_small</span><span class="op">)</span></span>
<span><span class="va">mye_small</span> <span class="op">&lt;-</span> <span class="fu"><a href="Palantir-Methods.html">Palantir.Pseudotime</a></span><span class="op">(</span><span class="va">mye_small</span>, start_cell <span class="op">=</span> <span class="st">"sample1_GAGAGGTAGCAGTACG-1"</span><span class="op">)</span></span>
<span></span>
<span><span class="co"># Retrieve pseudotime values and store them in the meta.data for easy access</span></span>
<span><span class="va">ps</span> <span class="op">&lt;-</span> <span class="va">mye_small</span><span class="op">@</span><span class="va">misc</span><span class="op">$</span><span class="va">Palantir</span><span class="op">$</span><span class="va">Pseudotime</span></span>
<span><span class="va">mye_small</span><span class="op">$</span><span class="va">Pseudotime</span> <span class="op">&lt;-</span> <span class="va">ps</span><span class="op">$</span><span class="va">Pseudotime</span></span>
<span></span>
<span><span class="co"># Convert the Seurat object to an AnnData object</span></span>
<span><span class="fu"><a href="adata.Load.html">Seu2Adata</a></span><span class="op">(</span><span class="va">mye_small</span><span class="op">)</span></span>
<span><span class="co"># Compute cell trajectories using CellRank based on pseudotime</span></span>
<span><span class="fu">Cellrank.Compute</span><span class="op">(</span>time_key <span class="op">=</span> <span class="st">"Pseudotime"</span><span class="op">)</span></span>
<span></span>
<span><span class="co"># Visualize cell trajectories using CellRank</span></span>
<span><span class="co"># 'ms' dimension reduction is used for plotting</span></span>
<span><span class="fu">Cellrank.Plot</span><span class="op">(</span>color <span class="op">=</span> <span class="st">"cluster"</span>, basis <span class="op">=</span> <span class="st">"ms"</span><span class="op">)</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>

