我已经生成了已放入 fastq 格式的 contig。我想知道是否有人知道如何抓取两个字符之间的核苷酸序列并生成一个长 contig?我使用的是 Python 2.6.6。我还添加了我想要的示例:
当前文件布局:
>DHWCT801:455:H5HHJBCXX:1:2109:10376:67348/1
GACTCCTCGCCCAACTACGACGGCCAGGAGCAGGAACCCGACGTCCTGCCCGCCGCCTACCCGAACCTGCTGGTCAACGGCTCGTCCGGGATCGCGGTCGG
>DHWCT801:455:H5HHJBCXX:2:1105:15915:79934/2
ACTCGGTGTAACGCATGGCGGCGGCACCGTCGTTGCCGCGGGAGCCGAAGTTACCCTGGCCCTGCACCATCGGGTAGCGCATGGCCCACGGCTGCGCGAGG
>DHWCT801:455:H5HHJBCXX:2:1114:17610:55148/2
AAGCGCTCCTACCTCGATTACGCCATGAGCGTGATCGTGTCCCGTGCGCTGCCGGATGCGCGCGACGGTTTGAAGCCGGTGCACCGGCGCATTTTG
我想要的是:
GACTCCTCGCCCAACTACGACGGCCAGGAGCAGGAACCCGACGTCCTGCCCGCCGCCTACCCGAACCTGCTGGTCAACGGCTCGTCCGGGATCGCGGTCGGACTCGGTGTAACGCATGGCGGCGGCACCGTCGTTGCCGCGGGAGCCGAAGTTACCCTGGCCCTGCACCATCGGGTAGCGCATGGCCCACGGCTGCGCGAGGAAGCGCTCCTACCTCGATTACGCCATGAGCGTGATCGTGTCCCGTGCGCTGCCGGATGCGCGCGACGGTTTGAAGCCGGTGCACCGGCGCATTTTG
附言:我有多个文件,因此如果有办法通过将其提交到我的集群并保存每个单独的文件(原始名称 + 末尾添加的连接)来自动执行此操作,我将不胜感激。不过我相信我能解决这个问题。
答案1
使用 Grep
grep -ve '^>' source.fastaq
结果:
GACTCCTCGCCCAACTACGACGGCCAGGAGCAGGAACCCGACGTCCTGCCCGCCGCCTACCCGAACCTGCTGGTCAACGGCTCGTCCGGGATCGCGGTCGG
ACTCGGTGTAACGCATGGCGGCGGCACCGTCGTTGCCGCGGGAGCCGAAGTTACCCTGGCCCTGCACCATCGGGTAGCGCATGGCCCACGGCTGCGCGAGG
AAGCGCTCCTACCTCGATTACGCCATGAGCGTGATCGTGTCCCGTGCGCTGCCGGATGCGCGCGACGGTTTGAAGCCGGTGCACCGGCGCATTTTG
我认为 FASTA 及其变体会忽略换行符。如果要删除它们,请将结果通过管道传输tr -d '\n'
。
使用 Python 2 和 3
此方法使用 Python 作为文本处理器。根据您在 Python 程序中生成或读取 FASTA 数据的方式,可能会有更好的方法。
import sys
sys.stdout.writelines(s for s in sys.stdin if not s.startswith('>'))
如果您希望将所有内容放在一行上,请将最后一行更改为:
[…]writelines(s.rstrip() for […])
两者的用法:
python select-contigs.py < source.fastaq