unix - 提取 fasta 文件中给定序列的序列头

标签 unix awk sed bioinformatics fasta

我有一个这样的 fasta 文件(myfasta.fasta):

>aat.2.2344.a
ATTGCCGGTTTAATATTA
>aat.2.d2344.acc
ATTGCCGGTTTAATAAA
>aat.2.2bb344.a
ATTGCCGGTTTAATAGGAGAGAATT
>aat.2.2ccc344.a
ATTGCCGGTTTAATAGGGAG
>aat.2.2344.acc
ATTGCCGGTTTAATAAA

我还有一个文本文件my.txt,其中包含与上面fasta文件中的序列匹配的序列:

ATTGCCGGTTTAATAAA

基于此序列,我想提取此序列的所有匹配 ID。有人可以帮我吗?谢谢!

我想要的结果是:

>aat.2.2344.acc
>aat.2.d2344.acc

最佳答案

使用 grepsed:

grep --no-group-separator -B 1 "ATTGCCGGTTTAATAAA" my.txt | sed -n 1~2p
>aat.2.d2344.acc
>aat.2.2344.acc

查看 @QuoraFeans 的回答了解更多信息。

关于unix - 提取 fasta 文件中给定序列的序列头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52882101/

相关文章:

linux - 想要根据同一文件中另一列中的值就地编辑文件(替换列值)

bash - 使用 ec2-api-tools 获取新启动的实例的 ID

awk - 修改文本文件中的日期格式

python - awk 在 python 脚本中调用响应文件无法打开/读取

mysql - 如何将当前的 mysql 变量干净地输出到 my.cnf?

Linux : Move files that have more than 100 commas in one line

linux - Grep 显示匹配和不匹配

unix - 文件的第二列等于一些变量

windows - 批处理文件中的 CSV 格式

unix - 我能知道 scp 命令在 unix 中的退出状态吗