Skip to main content

Tinscan: TE-Insertion-Scanner

Scan whole genome alignments for transposon insertion signatures.

Table of contents

Algorithm overview

  1. Perform gapped and chained whole genome alignment of query genome B onto target genome A.
  2. Where two aligned segments are contiguous in B (or separated by no more than --qGap), and
  3. Separated by an insertion in the range --minInsert:--maxInsert in A, and
  4. At least one flanking alignment in A satisfies the threshold --minIdent, and differs from its mate by no more than --maxIdentDiff %
  5. Log flanks and candidate insertion.
  6. Attempt to infer TSDs from the internal overlap of flanking alignments in B genome.

Options and usage

Installing Tinscan

Requirements:

  • LASTZ genome alignment tool from the Miller Lab, Penn State.
  • Biopython

You can set up a conda environment with the required dependencies using the YAML files in this repo:

For ARM64 (Apple Silicon Macs) create a virtual intel env.

# For ARM64 Macs only
conda env create -f env_osx64.yml
conda activate tinscan-osx64

For all other operating systems use environment.yml

conda env create -f environment.yml
conda activate tinscan

With the conda env active you can now install tinscan.

  1. Install from PyPi.
pip install tinscan
  1. For the latest development version, clone and install from this repository.
git clone https://github.com/Adamtaranto/TE-insertion-scanner.git && cd TE-insertion-scanner && pip install -e ".[tests]"

Example usage

Find insertion events in genome A (target) relative to genome B (query).

Prepare Input Genomes

Split A and B genomes into two directories containing one scaffold per file. Check that sequence names are unique within genomes.

tinscan-prep --adir data/A_target_split --bdir data/B_query_split\
-A data/A_target_genome.fasta -B data/B_query_genome.fasta 

Output: data/A_target_split/.fa data/B_query_split/.fa

Align Genomes

Align each scaffold from genome B onto each genome A scaffold. Report alignments with >= 60% identity and length >= 100bp.

tinscan-align --adir data/A_target_split --bdir data/B_query_split \
--outdir A_Inserts --outfile A_Inserts_vs_B.tab \
--minIdt 60 --minLen 100 --hspthresh 3000

Output: A_Inserts/A_Inserts_vs_B.tab

Note: Alignment tasks can be limited to a specified set of pairwise comparisons where appropriate (i.e. when homologous chromosome pairs are known between assemblies) using the option --pairs.

Comparisons are specified with a tab-delimited text file, where column 1 contains sequence names from genome A, and column 2 contains sequences from genome B.

In the example Chromosome_pairs.txt, Chr A2 has been assembled as two scaffolds (B2, B3) in genome B.

#Chromosome_pairs.txt
A1    B1
A2    B2
A2    B3
A3    B4

Find Insertions

Scan alignments for insertion events and report as GFF annotation of Genome A

tinscan-find --infile A_Inserts/A_Inserts_vs_B.tab \
--outdir A_Inserts --gffOut A_Inserts_vs_B_l100_id80.gff3 \
--maxInsert 50000 --minIdent 80 --maxIdentDiff 20

Output: A_Inserts/A_Inserts_vs_B_l100_id80.gff3

License

Software provided under MIT license.

Metadata

Release files for tinscan 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tinscan 0.2.1
File Size Uploaded
tinscan-0.2.1.tar.gz 13.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tinscan 0.2.1
File Interpreter ABI Platform
tinscan-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 24.9 kB

Release files / tinscan-0.2.1.tar.gz

Download URL tinscan-0.2.1.tar.gz
Size 13.0 kB
Tags Source
SHA-256 checksum
How to use checksums
e3ca443aeff3bc0f94050e5d46c0f79db65f20e7f13ab440b5963a8a4ed06c48
BLAKE2b-256 checksum
How to use checksums
134f2255ff0821b389832c10710b9ed0e02e6dcc55a5ab9332acaed289c4dd5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2024.

Transparency log

Release files / tinscan-0.2.1-py3-none-any.whl

Download URL tinscan-0.2.1-py3-none-any.whl
Size 11.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f61315f63ff9f66ba109e97cfe7a2f94d4085038ee6906821146d982c0b6d6f2
BLAKE2b-256 checksum
How to use checksums
b964941ae1b6423a6fbb15316a01778c656e78470e45191eee8bedcb55bf282d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2024.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page