【发布时间】:2020-06-03 19:28:43
【问题描述】:
我有一个 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 文件吗?您应该向观众解释什么是 fasta 文件。为任何人提供样本输入和预期输出以测试答案。此外,如果您的代码有问题,您应该说明您遇到的问题以及您看到的错误。
-
我更好地解释了哪些格式。关于解释问题我给出了明确的解释,我没有收到任何错误消息。
-
无法重现该问题。使用您的
seqtk命令,我得到了预期的序列(鉴于您的第二个 fasta 序列开头有两个>符号,因此它不匹配,因为名称实际上不同)。 -
会不会是重复的问题?c'mon >> 只是一个打字错误...
-
是的,我试过了,如果相同的序列出现两次,它也会打印出来……而我只需要唯一的……我现在就修改问题
标签: fasta