从文本文件中提取唯一的 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
我有一个 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