This release is a pre-release and may not be stable for production use.
pyScaf
pyScaf orders contigs from genome assemblies utilising several types of information:
paired-end (PE) and/or mate-pair libraries ([NGS-based mode](#ngs-based-scaffolding))
long reads ([NGS-based mode](#scaffolding-based-on-long-reads))
synteny to the genome of some related species ([reference-based mode](#reference-based-scaffolding))
Scaffolding modes
NGS-based scaffolding
This is under development… Stay tuned.
Scaffolding based on long reads
Experimental version available.
Reference-based scaffolding
In reference-based mode, pyScaf uses synteny to the genome of closely related species in order to order contigs and estimate distances between adjacent contigs.
Contigs are aligned globally (end-to-end) onto reference chromosomes, ignoring:
matches not satisfying cut-offs (–identity and –overlap)
suboptimal matches (only best match of each query to reference is kept)
and removing overlapping matches on reference.
In preliminary tests, pyScaf performed superbly on simulated heterozygous genomes based on C. parapsilosis (13 Mb; CANPA) and A. thaliana (119 Mb; ARATH) chromosomes, reconstructing correctly all chromosomes always for CANPA and nearly always for ARATH (Figures in dropbox, CANPA table, ARATH table). Runs took ~0.5 min for CANPA on 4 CPUs and ~2 min for ARATH on 16 CPUs.
Important remarks:
Reduce your assembly before (fasta2homozygous.py) as any redundancy will likely break the synteny.
pyScaf works better with contigs than scaffolds, as scaffolds are often affected by mis-assemblies (no de novo assembler / scaffolder is perfect…), which breaks synteny.
pyScaf works very well if divergence between reference genome and assembled contigs is below 20% at nucleotide level.
pyScaf deals with large rearrangements ie. deletions, insertion, inversions, translocations. Note however, this is experimental implementation!
Consider closing gaps after scaffolding.
Usage
Dependencies
Parameters
Given reference genome, the program generates pairwise genome alignment (dotplots) by default.
Genral options:
- -h, --help
show this help message and exit
- -f FASTA, --fasta FASTA
assembly FASTA file
- -o OUTPUT, --output OUTPUT
output stream [scaffolds.fa]
- -t THREADS, --threads THREADS
max no. of threads to run [4]
- --log LOG
output log to [stderr]
- --dotplot
generate dotplot as [png]
- --version
show program’s version number and exit
Reference-based scaffolding options:
- -r REF, --ref REF, --reference REF
reference FastA file
- --identity IDENTITY
min. identity [0.33]
- --overlap OVERLAP
min. overlap [0.66]
- -g MAXGAP, --maxgap MAXGAP
max. distance between adjacent contigs [0.01 * assembly_size]
- --norearrangements
high identity mode (rearrangements not allowed)
Long read-based scaffolding options (EXPERIMENTAL!):
- -n LONGREADS, --longreads LONGREADS
FastQ/FastA file(s) with PacBio/ONT reads
NGS-based scaffolding options (!NOT IMPLEMENTED!):
- -i FASTQ, --fastq FASTQ
FASTQ PE/MP files
- -j JOINS, --joins JOINS
min pairs to join contigs [5]
- -a LINKRATIO, --linkratio LINKRATIO
max link ratio between two best contig pairs [0.7]
- -l LOAD, --load LOAD
align subset of reads [0.2]
- -q MAPQ, --mapq MAPQ
min mapping quality [10]
Test run
To perform reference-based assembly, provide assembled contigs and reference genome in FastA format. Dotplots of below runs can be found in [docs](/docs). If you wish to skip dotplot generation (ie. no X11 on your system), provide –dotplot ‘’ parameter.
# scaffold homogenised assembly (reduced contigs)
./pyScaf.py -f test/contigs.reduced.fa -r test/ref.fa -o test/contigs.reduced.ref.fa
# scaffold reduced contigs using global mode (no norearrangements allowed)
./pyScaf.py -f test/contigs.reduced.fa -r test/ref.fa -o test/contigs.reduced.ref.global.fa --norearrangements
# scaffold heterozygous assembly (de novo assembled contigs)
./pyScaf.py -f test/contigs.fa -r test/ref.fa -o test/contigs.ref.fa
# scaffold reduced contigs using long reads
## pacbio
./pyScaf.py -f test/contigs.reduced.fa -n test/pacbio.fq.gz -o test/contigs.reduced.pacbio.fa
## nanopore
./pyScaf.py -f test/contigs.reduced.fa -n test/nanopore.fa.gz -o test/contigs.reduced.nanopore.fa
# generate dotplot
lastdb test/ref.fa
lastal -f TAB test/ref.fa test/contigs.reduced.pacbio.fa | last-dotplot - test/contigs.reduced.pacbio.fa.ref.png
lastal -f TAB test/ref.fa test/contigs.reduced.nanopore.fa | last-dotplot - test/contigs.reduced.nanopore.fa.ref.png
# clean-up
#rm test/contigs.{,reduced.}fa.* test/ref.fa.* test/*.{nanopore,pacbio,ref}* test/*.log
Proof of concept
pyScaf is under heavy development right now. Nevertheless, the reference-based mode is functional and produces meaningful assemblies. Moverover, it has been implemented in Redundans.
For more info, have a look in workbook.
Metadata
Release files for pyScaf 0.12a4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyScaf-0.12a4.tar.gz | 34.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyScaf-0.12a4-py2-none-any.whl | Python 2 | none | any | Details |
Total release size: 55.3 kB
Release files / pyScaf-0.12a4.tar.gz
| Download URL | pyScaf-0.12a4.tar.gz |
|---|---|
| Size | 34.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3ce3f6fe80bd058831b6a38a56d464ef10f3ebbdd6bc3dcb0d7f127c0b2c1b36
|
|
BLAKE2b-256 checksum How to use checksums |
ee52a947347d00c323a87588d6b6d5ad54b3656a5df2f3bcaad477833a43d1f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / pyScaf-0.12a4-py2-none-any.whl
| Download URL | pyScaf-0.12a4-py2-none-any.whl |
|---|---|
| Size | 20.4 kB |
| Tags | Python 2 |
|
SHA-256 checksum How to use checksums |
8df880c5c0560fa1d2f76b509f964ed14baa0ed884b46616f28be5da4d538dac
|
|
BLAKE2b-256 checksum How to use checksums |
29e4fdc8ffca0a993076d240bc95afcc26c73feaec6128dd3073d07aad3cbed9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |