# Swan

![](https://3656348900-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M9KUTUjCQUdc3gJSNHJ%2Fsync%2F3c837e7f7df037343ed62f2c169413a55c128082.png?generation=1591662624481030\&alt=media)

Swan is a Python library designed for the analysis and visualization of transcriptomes, especially with long-read transcriptomes in mind. Users can add transcriptomes from different datasets and explore distinct splicing and expression patterns across datasets.

Please visit the [Swan repository](https://github.com/mortazavilab/swan_vis) to download and view the source code

Also see the [Swan manuscript repository](https://github.com/fairliereese/swan_paper) for the exact commands used to do the analysis in our [publication](https://academic.oup.com/bioinformatics/advance-article/doi/10.1093/bioinformatics/btaa836/5912931).

Also see our [website](https://freese.gitbook.io/swan/) for in-depth tutorials and documentation

## What can Swan do?

Swan can make informative plots, find differentially expressed genes and transcripts, find isoform-switching genes, and discover novel exon skipping and intron retention events.

## Installation

Swan can be installed directly from PyPi. To install Swan's most recent release, run

`pip install swan_vis`

Alternatively, the most recent commits can be installed by git cloning [the Swan repository](https://github.com/fairliereese/swan_vis), moving to the swan\_vis directory, and running

`pip install .`

## Tutorials

* [Data preprocessing with TALON](https://freese.gitbook.io/swan/tutorials/data_processing)
* [Getting started](https://freese.gitbook.io/swan/tutorials/getting_started): how to load data into Swan
* [Visualization tools](https://freese.gitbook.io/swan/tutorials/visualization): make gene and transcript-level plots to visualize the complexity of alternative splicing
* [Analysis tools](https://freese.gitbook.io/swan/tutorials/analysis_tools): find differentially expressed genes and transcripts; find isoform-switching genes, discover novel intron retention and exon skipping events
* [Scanpy compatibility](https://freese.gitbook.io/swan/tutorials/scanpy_compatibility): Some brief examples of how to use external Scanpy plotting functions on Swan objects

## FAQs

* [Understanding Swan visualizations](https://freese.gitbook.io/swan/faqs/understanding_swan_vis)
* [Additional utilities](https://freese.gitbook.io/swan/faqs/utilities)
* [SwanGraph data structure](https://freese.gitbook.io/swan/faqs/data_structure)
* [Input file format specifications](https://freese.gitbook.io/swan/faqs/file_formats)

## Comprehensive Documentation

For full documentaion, please visit [our website](https://freese.gitbook.io/swan/)

Logo by the wonderful [Eamonn Casey](https://www.instagram.com/designsbyeamonn/)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://freese.gitbook.io/swan/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
