从文本文件中提取UNIQUE fasta序列

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

我有一个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

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

fasta
1个回答
0
投票

尝试使用

seqkit grep -f in.txt in.fa | seqkit rmdup -n -o out.fa 
© www.soinside.com 2019 - 2024. All rights reserved.