python shell怎么换行_python & shell:去除fasta文件的换行符

导读

很多程序输出的fasta序列每60个碱基会换一次行,下面是一个去除碱基序列后的换行符的方法。

一、输入

cat test

# 一个随便写的文件

>sequence_1

AAAA

GGGG

CCCC

TTTT

>sequence_2

aaaa

gggg

cccc

tttt

二、去换行符:python

脚本:python3

#!/usr/bin/env python3

import os

import sys

import re

ms, infile, outfile = sys.argv

with open(infile) as f:

Dict = {}

for line in f:

if line[0] == ">":

key = line.strip()

Dict[key] = []

else:

Dict[key].append(line.strip())

with open(outfile, 'w') as o:

for key, value in Dict.items():

o.write("{}\n{}\n".format(key, ''.join(value)))

运行:python3

python3 trim_enter.py test test2

结果:python3

>sequence_1

AAAAGGGGCCCCTTTT

>sequence_2

aaaaggggcccctttt

三、去换行符:shell

运行:shell单行命令

awk '!/^>/{printf "%s", $0; n="\n"}/^>/{print n $0; n=""}END{printf "%s", n}' test > test2

在不以>开头的行中,打印不带换行符的行,并存储一个换行字符(在变量n中)以供以后使用。

在以>开头的行中,打印存储的换行字符(如果有的话)和该行。

重置n,以防这是最后一行。如果需要,以换行结束。

结果:shell

cat test2

# 随便看看结果

>sequence_1

AAAAGGGGCCCCTTTT

>sequence_2

aaaaggggcccctttt

math?formula=%5Ccolor%7Bgreen%7D%7B%F0%9F%98%80%F0%9F%98%80%E6%B2%A1%E6%9C%89%E4%BA%86%F0%9F%98%80%F0%9F%98%80%7D

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值