从文本文件中提取唯一的 fasta 序列

Extract UNIQUE fasta sequences from a text file

我有一个 TXT 文件:

HISEQ1:105:C0A57ACXX:2:1101:10000:105587/1 
HISEQ1:105:C0A57ACXX:2:1101:10000:105587/2 
HISEQ1:105:C0A57ACXX:2:1101:10000:121322/1
HISEQ1:105:C0A57ACXX:2:1101:10000:121322/2 
HISEQ1:105:C0A57ACXX:2:1101:10000:12798/1 
HISEQ1:105:C0A57ACXX:2:1101:10000:12798/2

和一个包含序列的 fasta 文件:

>HISEQ1:105:C0A57ACXX:2:1101:10000:105587/1 
GCACCCTCGGGGGAGCAACGAAGAGGTAGACGAAGGCGATCGCAGCCACCTGCGGCAGTATCCCCAGGAGGTCAAGGTCCTCCTCCCCGCTCACCGTCGCC
>HISEQ1:105:C0A57ACXX:2:1101:10000:105587/2
TTGGTGGCAGGCAACAGCTTTGGACGGCCACCGCCTCATGGCGCCTCCTCCCCGCTGCGTCCTCGCCGCGTCCCTCCCTGCTTCAAGC
>HISEQ1:85:D0C0FABXX:5:1101:1385:36009/1
TTTAGTTCCAGGCCGGCTGAAGACTGTCTTTACAAAAGAAAAGTTTAGCCTAGGAAGCCCATTGTTGTAGGTGTTGTAGTTTTATAGATGTACTTTGGAAA
>HISEQ1:85:D0C0FABXX:5:1101:1385:36009/2
CAGCCAAGTTCGCAGTCTCGATAGTATTGTTTTCATACAGCAGTCTTGACAAACCAAAGTCCGCAACTTTTGGTTCCAGATTATCATCTAGCAATATGTTT
>HISEQ1:105:C0A57ACXX:2:1101:10000:105587/2
TTGGTGGCAGGCAACAGCTTTGGACGGCCACCGCCTCATGGCGCCTCCTCCCCGCTGCGTCCTCGCCGCGTCCCTCCCTGCTTCAAGC

我想从 fasta 文件中仅提取一次这些 ID 的序列并获得此输出:

>HISEQ1:105:C0A57ACXX:2:1101:10000:105587/1 
GCACCCTCGGGGGAGCAACGAAGAGGTAGACGAAGGCGATCGCAGCCACCTGCGGCAGTATCCCCAGGAGGTCAAGGTCCTCCTCCCCGCTCACCGTCGCC
>HISEQ1:105:C0A57ACXX:2:1101:10000:105587/2
TTGGTGGCAGGCAACAGCTTTGGACGGCCACCGCCTCATGGCGCCTCCTCCCCGCTGCGTCCTCGCCGCGTCCCTCCCTGCTTCAAGC

但我也得到了重复。 我试过这些:

seqkit grep -f in.txt in.fa > out.fa 
seqtk subseq in.fa in.txt > out.fa

如何修改上面的命令行以获得唯一序列?

试试

seqkit grep -f in.txt in.fa | seqkit rmdup -n -o out.fa