What is ScanMST?
ScanMST is a powerful tool for detecting Multi-segment transcripts (MSTs) with long reads and transcript segment graphs. It is able to detect and classify the multi-segment transcripts with the following four forms of transcript segment links: ICRL, ICTL, ITPL, and ITTL (see the figure below).
Prerequisite
htslib is required to run ScanMST. Please install it in the environment.
conda install -c bioconda htslib
🧬 BLAT Aligner (Automatic Setup)
ScanMST utilizes BLAT (BLAST-like alignment tool) for auxiliary alignments.
You do not need to install BLAT manually. When you run ScanMST with the --aligner blat option, the tool will automatically detect your operating system (Linux or macOS/Darwin) and chip architecture (Intel or Apple Silicon). It will then download the appropriate executables (gfServer, gfClient, and faToTwoBit) from the UCSC Genome Browser servers into the installation directory.
🚀 Getting Started
The first step in starting your journey with ScanMST is to install the tool.
To do this, there are two options shown below:
- PyPI
pip install scanmst
- CONDA via Bioconda
conda install scanmst
Congratulations! You've successfully installed ScanMST on your local machine.
If you have some issues, please check the document first before opening an issue.
🤖 Using ScanMST
❯ scanmst -h
usage: scanmst [-h] [--version] --input INPUT --ref REF --gtf GTF --output OUTPUT [--output-seq {consensus,reference,both}] [--sr SUPPORT_READS]
[--splice-bin SPLICE_BIN] [--mapq MAPQ] [--log-level {info,debug,trace,warning}] [--thread THREAD] [--aligner {blat,}]
[--blat-identity IDENT_CUTOFF] [--blat-2bit BLAT_TWO_BIT] [--blat-nclosed] [--blat-nsleep] [--blat-port BLAT_PORT] [--species {human,mouse}]
[--circular-rna-filter {remove,keep,extract}] [--off-exon-filter] [--rt-switching-filter RT_SWITCHING_FILTER_LEN] [--ncan] [--graph]
[--refine] [--refine-threshold REFINE_THRESHOLD] [--prune-threshold PRUNE_THRESHOLD] [--max-allowed-nm MAX_ALLOWED_NM]
[--max-allowed-ins MAX_ALLOWED_INS] [--min-required-ins MIN_REQUIRED_INS] [--min-soft-seg-len MIN_SOFT_SEG_LEN]
[--long-indel-length LONG_INDEL_LENGTH] [--indel-fraction INDEL_FRACTION] [--substitution-fraction SUBSTITUTIONS_FRACTION] [--rescue-sr]
[--soft-len SOFT_LEN] [--mismatch MISMATCH] [--alignment-fraction ALIGNMENT_FRACTION] [--nbound] [--ignore-circle]
scanmst 🚀 Multi-segment transcript (MST) identification using transcriptomic long reads data
options:
-h, --help show this help message and exit
--version show program's version number and exit
--input INPUT Input alignment BAM file, which must contain both cs and SA tags.
--ref REF Reference genome in FASTA format (with fai index)
--gtf GTF Gene annotations in GTF format
--output OUTPUT Output file prefix
--output-seq {consensus,reference,both}
Output sequence type (default: consensus)
--sr SUPPORT_READS The minimum number of supporting reads required for calling MST. (default: 1)
--splice-bin SPLICE_BIN Bin size for searching canonical splice sites. (default: 5)
--mapq MAPQ Minimum MAPQ of reads required for calling MST. (default: 20)
--log-level {info,debug,trace,warning} Set log level (default: warning)
--thread THREAD Set the thread number (default: 1)
--aligner {blat,} Aligner used for additional realignment to recover missing chimeric alignments. (default: None)
--blat-identity IDENT_CUTOFF BLAT identity cutoff (default: 0.9)
--blat-2bit BLAT_TWO_BIT Reference genome in 2bit format for BLAT aligner
--blat-nclosed Close BLAT server when the job is complete (default: True)
--blat-nsleep Whether to sleep randomly before starting BLAT server (default: True)
--blat-port BLAT_PORT Port for BLAT server (default: 88888)
--species {human,mouse} Name of the species for the reference genome (default: human)
--circular-rna-filter {remove,keep,extract}
The way of dealing with putative circular RNAs (default: remove)
--off-exon-filter Turn on exon filter (default: True)
--rt-switching-filter RT_SWITCHING_FILTER_LEN
Set the length threshold for RT switching filter. (default length: 10)
--ncan Considering non-canonical splice sites (default: False)
--graph Whether to output transcript segment graph. (default: False)
--refine Whether to refine the transcript segment graph after construction. (default: False)
--refine-threshold REFINE_THRESHOLD Threshold for merging nodes during refinement (default: 3)
--prune-threshold PRUNE_THRESHOLD Length threshold for pruning the transcript segment graph (default: 10)
--max-allowed-nm MAX_ALLOWED_NM Maximum allowed edit distance (NM tag). (default: 100)
--max-allowed-ins MAX_ALLOWED_INS Maximum allowed micro-insertion length (default: 50)
--min-required-ins MIN_REQUIRED_INS Minimum required insertion length in read to infer chimeric alignment (default: 100)
--min-soft-seg-len MIN_SOFT_SEG_LEN Minimum length of soft-clipped portion required to trigger BLAT alignment. (default: 200)
--long-indel-length LONG_INDEL_LENGTH Length cutoff for defining long indels in reads. (default: 10)
--indel-fraction INDEL_FRACTION Maximum allowed fraction of long indels in the reads. (default: 0.001)
--substitution-fraction SUBSTITUTIONS_FRACTION
Maximum allowed fraction of substitutions in the reads (default: 0.05)
--rescue-sr Whether to rescue SR for segment links (default: False)
--soft-len SOFT_LEN Minimum length of soft-clipped portion to be rescued (default: 5)
--mismatch MISMATCH Maximum number of mismatched bases allowed in a rescued segment (default: 3)
--alignment-fraction ALIGNMENT_FRACTION
Minimum fraction of the sequence that must align in Smith-Waterman local alignment. (default: 0.8)
--nbound Whether to add maximum increment limit using average reads depth when rescuing SR (default: True)
--ignore-circle Whether to export result when the transcript segment graph contains a circle (default: False)
Please refer to the document for details and more examples.
📎 Citation
Feel free to read and cite our paper in BioRvix.
Contributing
Contributions are very welcome. To learn more, see the Contributor Guide.
🪪 License
ScanMST is free software available under the GNU General Public License v3.0 (GPLv3). You are free to modify and redistribute this software under the terms of this license.
⚠️ External Dependency Licensing (BLAT)
While ScanMST itself is GPL-licensed, it utilizes the BLAT aligner for specific functionality. BLAT is not distributed with ScanMST; it is downloaded automatically from the University of California, Santa Cruz (UCSC) servers upon first use.
BLAT License Terms:
-
Academic/Non-Profit: Free for use.
-
Commercial: A license is required from Kent Informatics.
By using this software with the --aligner blat option, you acknowledge that you are responsible for adhering to the UCSC and Kent Informatics license terms regarding the use of BLAT executables.
🤝 Contact
If you experience any problems or have suggestions, please create an issue or a pull request.
Credits
Metadata
Release files for scanmst 0.1.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| scanmst-0.1.9.tar.gz | 780.4 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scanmst-0.1.9-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| scanmst-0.1.9-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.9 | CPython 3.9 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
Total release size: 6.4 MB
Release files / scanmst-0.1.9.tar.gz
| Download URL | scanmst-0.1.9.tar.gz |
|---|---|
| Size | 780.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
27b0f827533cddffd702f2e33997645587d4d5368647580a01d732df11fbb7b5
|
|
BLAKE2b-256 checksum How to use checksums |
042bfb40363d2a5f91c64aecb72a2a2de653474f1f1929ef8bf11ac61a136650
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / scanmst-0.1.9-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | scanmst-0.1.9-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
3e3e317dd730cd9c8eca855af5564c766d9b45aa089ed5c92e81c2e3aac80482
|
|
BLAKE2b-256 checksum How to use checksums |
f82f77b7721c7a8339229d6e3f4e113f6dd9a49172159a72f1244ef259ea470c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / scanmst-0.1.9-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | scanmst-0.1.9-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
016b2b81935566b43089e1ae2eee7eaeab159d205178b0b1c07e620263186488
|
|
BLAKE2b-256 checksum How to use checksums |
1178eabb4eb7bb46452d8bcebe31d91f7701e51c8c83738e5a04d7955270b57e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|