DNASequence处理
Go to file
Zengtudor 3680b72195 update 2024-09-19 10:32:11 +08:00
src update 2024-09-19 10:32:11 +08:00
.gitignore update 2024-09-18 18:39:07 +08:00
LICENSE Initial commit 2024-09-18 06:52:32 +00:00
README.md update 2024-09-19 10:29:22 +08:00
xmake.lua update 2024-09-19 10:09:48 +08:00

README.md

DNASequence

提问者问题原文链接

代码逻辑介绍

DNASequence处理

DNA是双链的互为互补链对DNA样本进行测序时不能确认测出的是哪条链所以就把所有DNA片段的互补链全算出来和原文件放在一起组装。

输入格式只是演示样例不保证其生物上的准确性默认最大dna序列长度支持5e4可自行修改代码扩容

程序将会处理类似以下若干条dna序列

@SRR13280199.1 1 length=32
ACGTACACATTGCTGTCTGCTGAACCACCTAG

关于如何构建本项目

请确保安装了构建工具xmake和任意C++构建工具并将路径添加到了PATH目录

如何安装xmake?链接

#编译 -v 表示 verbose 输出详细编译信息具体说明去上面的xmake链接看看
xmake -v
# 运行
xmake r

# 生成 visual studio 文件夹点进去打开sln文件即可使用visual studio编辑和调试很方便
xmake project -k vsxmake

性能展示

什么环境下性能最好?

经过测试在windows环境下前端使用mingw后端使用llvm也就是clang的时候性能最好

可以酌情开启xmake.lua中的avx512加速

perf

Samples: 31K of event 'task-clock:ppp', Event count (approx.): 7866750000
Overhead  Command  Shared Object         Symbol
  90.39%  test     [unknown]             [k] 0xffffffffa84435e1
   5.48%  test     test                  [.] reverseComplement(std::array<char, 50005ul>&, unsigned long)
   1.58%  test     [unknown]             [k] 0xffffffffc06abd30
   0.59%  test     [unknown]             [k] 0xffffffffa83ab787
   0.51%  test     [unknown]             [k] 0xffffffffa842aee0

800MB fastq DNA 序列处理性能展示

[Timer: All spent] Start timing
Open input file stream to value [input_file_stream] ok , from ["filteredReads.txt"]
Open output file stream to value [output_file_stream] ok , from ["reversedSequence.txt"]
Undergoing transformation
[Timer: All spent] Stop timing , using 5960ms

关于版权

本项目算法版权归提问者所有,可不遵循开源协议,其它人使用请遵循开源协议,或者欢迎咨询我