Skip to content

wym6912/linearPOA

Repository files navigation

linearPOA: A parallel, memory-efficient framework for Partial Order Alignment with linear space complexity

linearPOA is a library/program written in C++17 for applying Hirschberg algorithm to Partial Order Alignment (POA). It runs on Linux and Windows.

Test Environment

linearPOA is a standalone program. In order to test our methods, we need to compile the program first:

cd src
make -j16 DEBUG=0

You will find linearPOA program in src folder.

Usage

Available options:
        --in        FILE      sequence file name (Required)
        --out       FILE      output file name (Required)
        --threads   N         use N threads (N >= 1, default: 1)
        --open      O         gap open penalty (default: 3)
        --ext       E         gap extension penalty (default: 1)
        --match     M         match score (default: 0)
        --mismatch  X         mismatch score (default: 2)
        --nolinear            do not use linear method (default: disabled)
        --genmode   M         generate mode, 1: generate MSA, 2: generate consensus, 3: generate MSA+consensus (default: 1)
        --help                print help message
        --version             show program version
Example:
        ./linearpoa --in seq.fasta --out seq_out.fasta

Test dataset and compiled program

The test dataset and compiled program are stored at https://doi.org/10.5281/zenodo.15637837. You can use the data for testing the program.

Similarity between generated sequence and reference sequence

We use the error_measure program provided by FORAlign to measure the similarity between generated sequence and reference sequence.

Additionally, we modified some programs for comparing our programs. These modifications are shown as follows:

Modified TSTA

We modified TSTA for better controlling output rules. This repositoty is stored here.

Modified PBSIM2

We modified PBSIM2 for generating simulated datasets, which only generate positive strand sequences. This repository is stored here.

Modified Racon

We modified Racon for calling POA methods for genereating consensus sequence, with ignoring window information provided by Racon. This repository is stored here.

Citation

Contacts

If you find any bug, welcome to contact us on the issues page or email us.

More tools and infomation can visit our github.

About

Memory-efficient Partial Order Alignment with linearPOA

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published