将序列列表转换为fasta以获取多个文件

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

我有成千上万的文件,这是一个序列名列表,后面是序列,每行一个,如下所示:

L.abdalai.LJAMM.14363.SanMartindeLosAndes        CCCTAAGAATAATTTGTT
L.carlosgarini.LJAMM.14070.LagunadelMaule        CCCTAAGAAT-ATTTGTT
L.cf.silvai.DD.038.Sarco                         CCCTAAGAAT-ATTTGTT

我想将它们改为fasta格式,所以看起来像:

>L.abdalai.LJAMM.14363.SanMartindeLosAndes       
CCCTAAGAATAATTTGTTCAGAAAAGATATTTAATTATAT
>L.carlosgarini.LJAMM.14070.LagunadelMaule
CCCTAAGAAT-ATTTGTTCAGAAAAGATATTTAATTATAT
>L.cf.silvai.DD.038.Sarco
CCCTAAGAAT-ATTTGTTCAGAAAAGATATTTAATTATAT

我在Mac上工作。 谢谢!

awk bioinformatics fasta
3个回答
2
投票

使用Perl

perl -pe 's/^/</;s/(\S+)\s+(\S+)/$1\n$2CAGAAAAGATATTTAATTATAT/g ' file

与您的输入

$ cat damien.txt
L.abdalai.LJAMM.14363.SanMartindeLosAndes        CCCTAAGAATAATTTGTT
L.carlosgarini.LJAMM.14070.LagunadelMaule        CCCTAAGAAT-ATTTGTT
L.cf.silvai.DD.038.Sarco                         CCCTAAGAAT-ATTTGTT

$ perl -pe 's/^/</;s/(\S+)\s+(\S+)/$1\n$2CAGAAAAGATATTTAATTATAT/g ' damien.txt
<L.abdalai.LJAMM.14363.SanMartindeLosAndes
CCCTAAGAATAATTTGTTCAGAAAAGATATTTAATTATAT
<L.carlosgarini.LJAMM.14070.LagunadelMaule
CCCTAAGAAT-ATTTGTTCAGAAAAGATATTTAATTATAT
<L.cf.silvai.DD.038.Sarco
CCCTAAGAAT-ATTTGTTCAGAAAAGATATTTAATTATAT

$

2
投票

我相信你简化了你的样本输入,因此与你的预期输出不同。 如果不是这样,我的解决方案不起作用,请在我的回答中发表评论告诉我。

所以使用awk,你可以这样做:

awk -v OFS="\n" '$1=">" $1' file
>L.abdalai.LJAMM.14363.SanMartindeLosAndes
CCCTAAGAATAATTTGTT
>L.carlosgarini.LJAMM.14070.LagunadelMaule
CCCTAAGAAT-ATTTGTT
>L.cf.silvai.DD.038.Sarco
CCCTAAGAAT-ATTTGTT

如果你想改变原地,请安装GNU gawk,并使用gawk -i inplace .... 如果您希望行结尾为Carriages,请添加/更改为-v ORS="\r" -v OFS="\r"

但是,您也可以,也许最好使用sed

sed -e 's/\([^[:space:]]*\)[[:space:]]*\([^[:space:]]*\)/>\1\n\2/' file

像这样添加-i''sed -i'' -e ...来改变文件。


1
投票

你可以试试下面的(根据你的样品创建和测试,因为我没有mac没有测试它)。

awk '/^L\./{print ">"$1 ORS $2 "CAGAAAAGATATTTAATTATAT"}'  Input_file

输出如下。如果需要,你也可以通过将> output_file附加到上面的命令来将它带到output_file。

>L.abdalai.LJAMM.14363.SanMartindeLosAndes
CCCTAAGAATAATTTGTTCAGAAAAGATATTTAATTATAT
>L.carlosgarini.LJAMM.14070.LagunadelMaule
CCCTAAGAAT-ATTTGTTCAGAAAAGATATTTAATTATAT
>L.cf.silvai.DD.038.Sarco
CCCTAAGAAT-ATTTGTTCAGAAAAGATATTTAATTATAT
© www.soinside.com 2019 - 2024. All rights reserved.