从fasta文件中提取所有序列,核苷酸A在第10位。

问题描述 投票:0回答:1

我试图从一个更快的文件中提取所有的序列,其中有一个A在位置10。这是我唯一的要求。我已经找到了相当多的答案,但不幸的是,人们一直在寻找相同的位置1而不是10。所以,他们提出的代码不会为我工作。任何建议?

grep '^A' -B 1 file.fa | sed '/--/d' > new_file.fa

cat input.fa |paste - - | awk  '($2 ~ /^A/)' | tr "\t" "\n"
unix fasta
1个回答
1
投票

这些解决方案看起来像只考虑一个非常特殊的情况下的fasta文件,其中每个序列只包含在一行。但是,如果他们对你的文件在提取序列的开头有一个A,你只需要修改正则表达式来寻找第十个位置。

grep '^.........A' --no-group-separator -B 1 file.fa > new_file.fa

<input.fa paste - - | awk  '$2 ~ /^.........A/ {printf("%s\n%s\n", $1, $2)}'
© www.soinside.com 2019 - 2024. All rights reserved.