小编chi*_*ric的帖子

删除FASTA文件中的换行符

我有一个fasta文件,用换行符分解序列.我想删除换行符.这是我的文件的一个例子:

>accession1
ATGGCCCATG
GGATCCTAGC
>accession2
GATATCCATG
AAACGGCTTA
Run Code Online (Sandbox Code Playgroud)

我想把它转换成这个:

>accession1
ATGGCCCATGGGATCCTAGC
>accession2
GATATCCATGAAACGGCTTA
Run Code Online (Sandbox Code Playgroud)

在这个网站上找到了一个潜在的解决方案,如下所示:

cat input.fasta | awk '{if (substr($0,1,1)==">"){if (p){print "\n";} print $0} else printf("%s",$0);p++;}END{print "\n"}' > joinedlineoutput.fasta
Run Code Online (Sandbox Code Playgroud)

但是,这会在每个条目之间放置一个额外的换行符,因此文件如下所示:

>accession1
ATGGCCCATGGGATCCTAGC

>accession2
GATATCCATGAAACGGCTTA
Run Code Online (Sandbox Code Playgroud)

我是一个awk noob,但我开始修改命令.我的猜测是if (p){print "\n";}罪魁祸首......可能print "\n"会增加两个换行符.我无法弄清楚如何只添加一个换行符...这可能很简单,但就像我说的那样,我是一个菜鸟.这是我的(不成功)解决方案:

awk '{if (substr($0,1,1)==">"){print "\n"$0} else printf("%s",$0);p++;}END{print "\n"}' input.fasta > joinedoutput.fasta
Run Code Online (Sandbox Code Playgroud)

但是,这会在文件开头添加一个空行,因为它在打印第一个入藏号之前始终打印一个新行:

{empty line} 
>accession1
ATGGCCCATGGGATCCTAGC
>accession2
GATATCCATGAAACGGCTTA
Run Code Online (Sandbox Code Playgroud)

任何人都有解决方案来获取正确格式的文件?谢谢!

unix awk fasta

8
推荐指数
4
解决办法
2万
查看次数

在正则表达式输出上执行简单的数学 (蟒蛇)

是否可以对Python正则表达式的输出执行简单的数学运算?

我有一个大文件,我需要将数字除以")"100之后.例如,我将转换包含)75和的以下行)2:

((words:0.23)75:0.55(morewords:0.1)2:0.55);
Run Code Online (Sandbox Code Playgroud)

)0.75)0.02:

((words:0.23)0.75:0.55(morewords:0.1)0.02:0.55);
Run Code Online (Sandbox Code Playgroud)

我的第一个想法是使用re.sub搜索表达式"\)\d+",但我不知道如何将括号后的整数除以100,或者甚至可以使用re.

有关如何解决这个问题的任何想法?谢谢你的帮助!

python regex

7
推荐指数
1
解决办法
948
查看次数

标签 统计

awk ×1

fasta ×1

python ×1

regex ×1

unix ×1