linux中合并几个fa文件,linux下,如何从保存多条基因数据的.fa文件中提取特定的一条基因数据?...

先描述我的项目内容:

将50bp长的DNA序列进行单次比对(linux环境,算法gapmis已经写好);

500万个基因序列文件单次比对,会耗费大量I/O时间。为此希望将1万条基因数据保存在一个AT50_1_0.fasta文件中,每一条基因数据单独保存为一行,如下图所示:

依次提取各行数据,并调用比对算法gapmis,输出每一行的比对结果。

squares.svg

“将包含一条基因数据的文件依次进行比对,转化成二维数据进行比对”,直接目前存在的问题:

linux环境下,是否可以编写c循环程序:对.fa中的文件按行读取?

“.fa”文件格式说明:按照“>”标识来界定是否为一条基因数据。如果只有一个“>”,判定只存在一条基因数据;

gapsmis程序在linux环境下的比对命令为:"./gapsmis -a a.fasta -b b.fasta" (将序列a与序列b进行比对)。换句话说:我们需要修改gapsmis程序接口,将命令中的“文件名”输入形式,转换为“基因字符串”输入形式。

(具体解决思路,等我实现再补充,各位大佬见谅)

下面补充一个问题以及解决方案:如何通过基因ID文件从fasta文件中提取特定的基因?

概念介绍:

.fa文件格式: “>基因ID

基因序列”

如下图:AT50_0就是基因ID

squares.svg

解决思路:

下载faSomeRecords脚本:faSomeRecords.txt

将txt后缀删除(这里为了上传方便),拷贝到指定的文件夹,运行命令行:

$ chmod +x faSomeRecords #赋予文件可执行权限,为Linux系统下执行

执行如下命令,进行数据处理 ./faSomeRecords AT_50_1_a.fasta ID.txt query.fasta

#其中AT_50_1_a.fasta是原始的fasta文件,ID.txt列入了需要查找的基因ID,每行一个,query.fasta为输出文件,包含对应ID的序列信息。

linux操作图:

squares.svg

AT_50_1_a.fasta是原始的fasta文件:

squares.svg

ID.txt列入了需要查找的基因ID:

squares.svg

query.fasta为输出文件:

squares.svg

最终从原始文件提取出基因ID为:AT50_0,AT50_5的基因序列,并将结果保存在query.fasta文件中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值