1 个不稳定版本

0.1.0 2022年5月21日

#658科学

MIT 许可证

165KB
4K SLoC

rspoa

Rust 中的 POA

使用方法

从 GitHub 克隆存储库后,将其移动到主目录并使用以下命令编译包:

cargo build --release

要使用 rspoa,您需要一个 .gfa 文件和一个包含您要将其与图对齐的读取的 .fasta 文件。为了运行 rspoa

cargo run --release <reads.fa> <graph.gfa>

您可以设置不同的参数并在不同的对齐类型之间进行选择

OPTIONS:
    -h, --help       Print help information
    -V, --version    Print version information

I/O:
    <SEQUENCE_PATH>          Sequences to align file path 
    <GRAPH_PATH>             Graph file path 
     -o, --out_file <OUT_FILE>    Specifies the output file, if not indicated prints in standard
                                 output [default: "standard output"]

Alignment:
    -m, --aln-mode <ALIGNMENT_MODE>    0: global, 1: local, 2: affine gap, 3: local gap, 
                                       4: pathwise alignment[DEMO], 
    -M, --match <MATCH_SCORE>          Match score [default: 2]
    -X, --mismatch <MISMATCH_SCORE>    Mismatch penalty [default: 4]
    -O, --gap-open <GAP_OPEN>          Gap opening penalty [default: 4]
    -E, --gap-ext <GAP_EXTENSION>      Gap extension penalty [default: 2]
    -s, --amb-strand <AMB_STRAND>      Ambigous strand mode, try reverse complement if
                                       alignment score is too low [default: false] [possible values:
                                       true, false]
    -t, --matrix <MATRIX>              Scoring matrix file, if '-t' is used '-M' and '-X' are not
                                       used. You should set appropriate gap penalties if aln-mode is 
                                       2 or 3[default: none]

Adaptive banded:
    -b, --extra-b <EXTRA_B>    First adaptive banding parameter, set < 0 to disable adaptive banded
                               [default: 1]
    -f, --extra-f <EXTRA_F>    Second adaptive banding parameter, number of basis added to both side of
                               the band = b+f*L, l = length of the sequence [default: 0.01]

输出格式为 .gaf,与输入图相关。

>read1	50	0	50	+	>1>3>5>6>8>9>11>12>13>15>16>18>19	50	0	11	49	*	*	8M,1M,1M,3M,1M,4M,5M,2M,8M,1M,4M,1M,11M

rsPOA 也可以用作项目中的库。为此,请将以下内容添加到您的 Cargo.toml 文件中

[dependencies]
rspoa= { git = "https://github.com/AlgoLab/rspoa" }

在这种情况下,您可以使用 api.rs 文件内的函数,它们只需要字符串形式的读取和 HashGraph 图,其他参数可以设置或使用默认值。您可以通过在文件中添加以下代码来使用它们:use rspoa::api::*

依赖关系

~19MB
~326K SLoC