将序列列表转换为多个文件的Fasta

时间:2019-03-08 00:48:35

标签: awk bioinformatics fasta

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

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上工作。
谢谢!

3 个答案:

答案 0 :(得分: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

$

答案 1 :(得分:2)

我相信您简化了示例输入,因此与预期输出有所不同。
如果不是这样,并且我的解决方案不起作用,请在我的回答下进行评论以告知我。

因此,使用awk,您可以这样做:

    WebElement element = driver.findElement(By.xpath("Value"));
    Coordinates coordinate = ((Locatable)element).getCoordinates(); 
    coordinate.onPage(); 
    coordinate.inViewPort();

如果要更改位置,请安装GNU gawk,并使用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
如果您希望行尾为 Carriages ,请添加/更改为gawk -i inplace ....

但是,您也可以,也许最好使用-v ORS="\r" -v OFS="\r"

sed

像这样添加sed -e 's/\([^[:space:]]*\)[[:space:]]*\([^[:space:]]*\)/>\1\n\2/' file -i''来就地更改文件。

答案 2 :(得分: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