fasta多行文件处理

1.创建fa文件,如下,命令为1.fa
>SOX2    
ACGAGGGACGCATCGGACGACTGCAGGACTGTC
ACGAGGGACGCATCGGACGACTGCAGGACTGTC
ACGAGGGACGCATCGGACGACTGCAGGAC
>POU5F1    
CGGAAGGTAGTCGTCAGTGCAGCGAGTCCGT
CGGAAGGTAGTCGTCAGTGCAGCGAGTCC
>NANOG    
ACGAGGGACGCATCGGACGACTGCAGGACTGTC
ACGAGGGACGCATCGGACGACTGCAGG
ACGAGGGACGCATCGGACGACTGCAGGACTGTC
ACGAGGGACGCATCGGACGACTGCAGGACTGT

2.给>开头的行的行尾加上TAB键,以便隔开名字和序列,

sed 's/^\(>.*\)/\1\t/' test.fasta | cat -A   > 2.fa(cat -A可以显示所有的符号)  ###  \(\)表示记录匹配的内容,\1则表示()中记录的匹配的内容(没怎么看懂这个命令)

结果如下:

>SOX2^I$
ACGAGGGACGCATCGGACGACTGCAGGACTGTC$
ACGAGGGACGCATCGGACGACTGCAGGACTGTC$
ACGAGGGACGCATCGGACGACTGCAGGAC$
>POU5F1^I$
CGGAAGGTAGTCGTCAGTGCAGCGAGTCCGT$
CGGAAGGTAGTCGTCAGTGCAGCGAGTCC$
>NANOG^I$
ACGAGGGACGCATCGGACGACTGCAGGACTGTC$
ACGAGGGACGCATCGGACGACTGCAGG$
ACGAGGGACGCATCGGACGACTGCAGGACTGTC$

3.把所有的换行符替换为空格,tr

cat 2.fa  | tr '\n'   ' ' > 3.fa

>SOX2     ACGAGGGACGCATCGGACGACTGCAGGACTGTC ACGAGGGACGCATCGGACGACTGCAGGACTGTC ACGAGGGACGCATCGGACGACTGCAGGAC >POU5F1     CGGAAGGTAGTCGTCAGTGCAGCGAGTCCGT CGGAAGGTAGTCGTCAGTGCAGCGAGTCC >NANOG     ACGAGGGACGCATCGGACGACTGCAGGACTGTC ACGAGGGACGCATCGGACGACTGCAGG ACGAGGGACGCATCGGACGACTGCAGGACTGTC ACGAGGGACGCATCGGACGACTGCAGGACTGT

 

4.把最后一个空格替换成换行符

sed -e 's/ $/\n/' 3.fa > 4.fa

5.把‘ >’替换成换行符(空格+>)

sed -e 's/ >/\n>/g' 4.fa  > 5.fa

>SOX2     ACGAGGGACGCATCGGACGACTGCAGGACTGTC   ACGAGGGACGCATCGGACGACTGCAGGACTGTC   ACGAGGGACGCATCGGACGACTGCAGGAC
>POU5F1     CGGAAGGTAGTCGTCAGTGCAGCGAGTCCGT  CGGAAGGTAGTCGTCAGTGCAGCGAGTCC
>NANOG     ACGAGGGACGCATCGGACGACTGCAGGACTGTC   ACGAGGGACGCATCGGACGACTGCAGG ACGAGGGACGCATCGGACGACTGCAGGACTGTC ACGAGGGACGCATCGGACGACTGCAGGACTGT

6.把所有的空格替换掉

sed 's/  //g' 5.fa > 6.fa

>SOX2    ACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGAC
>POU5F1    CGGAAGGTAGTCGTCAGTGCAGCGAGTCCGTCGGAAGGTAGTCGTCAGTGCAGCGAGTCC
>NANOG ACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGACTGT

7.把TAB键转换为换行符

sed 's/\t/\n/g'  6.fa > 7.fa

>SOX2
ACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGAC
>POU5F1
CGGAAGGTAGTCGTCAGTGCAGCGAGTCCGTCGGAAGGTAGTCGTCAGTGCAGCGAGTCC
>NANOG
ACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGACGAGGGACGCATCGGACGACTGCAGGACTGTCACGAGGGACGCATCGGACGACTGCAGGACTGT

 

转载于:https://www.cnblogs.com/lmt921108/p/7714906.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在处理fasta格式文件时,有时候需要将多的序列合并成一。一种常用的方法是使用编程语言进处理。 下面以Python为例,给出一个实现多fasta格式转为单fasta格式的示例代码: ```python def fasta_multiline_to_singleline(input_file, output_file): try: # 读取输入fasta文件 with open(input_file, 'r') as f: lines = f.readlines() # 去除fasta文件中的换符和首标识符“>” sequence = ''.join(lines[1:]).replace('\n', '') # 将序列写入输出fasta文件 with open(output_file, 'w') as f: f.write(lines[0] + sequence) print("转换成功!") except Exception as e: print("转换失败:" + str(e)) # 调用函数示例 input_file = "input.fasta" # 输入fasta文件名 output_file = "output.fasta" # 输出fasta文件fasta_multiline_to_singleline(input_file, output_file) ``` 在上面的代码中,我们通过readlines()函数读取输入fasta文件的内容,并将多序列中的换符去除。然后,将处理后的序列写入到输出fasta文件中,保留首标识符“>”。 使用这段代码,你只需要替换输入文件和输出文件文件名,即可将多fasta格式转为一。 当然,如果你对编程不熟悉,也可以使用文本编辑器或者命令工具进操作。你可以将fasta文件内容复制到文本编辑器中,利用替换功能将换符替换为空格或逗号等符号,然后保存为新文件。如果使用命令工具,你可以使用sed命令或者awk命令进替换。 总之,无论是使用编程语言还是文本编辑器、命令工具,都可以将多fasta格式的序列转为单。 ### 回答2: 要将fasta格式的多序列转换为一,可以使用以下python代码实现: ```python # 打开fasta文件 with open("input.fasta", "r") as fasta_file: # 读取文件内容 lines = fasta_file.readlines() # 删除换符并连接序列 sequence = ''.join(lines[1:]).replace("\n", "") # 输出结果 with open("output.fasta", "w") as output_file: output_file.write(f'>{lines[0][1:]}') output_file.write(sequence) ``` 首先,我们使用`open()`函数打开fasta文件,并使用`readlines()`方法将文件内容读取到一个列表中。 然后,我们使用`join()`方法将除了第一(序列名称)之外的所有连接成一个字符串,并使用`replace()`方法删除其中的换符。 最后,我们使用`open()`函数以写入模式打开一个新文件,并使用`write()`方法将转换后的结果写入文件中。 请将代码中的"input.fasta"替换为你的fasta文件的路径,"output.fasta"替换为你想保存转换结果的路径。运代码后,就可以得到一格式的fasta序列文件。 ### 回答3: fasta(即FASTA)格式是一种常用的生物信息学格式,用于存储生物序列的信息。在fasta格式中,每个序列都以一个标题开始,紧接着是序列的多表示。如果需要将fasta格式的多表示转换为一表示,可以通过以下步骤实现: 1. 读取fasta文件:使用适当的编程语言(如Python)打开fasta文件,并按读取其中的内容。 2. 忽略标题:在读取fasta文件时,第一通常是序列的标题,它以">"符号开头。在进格式转换时,可以将这内容忽略不计。 3. 连接序列:读取fasta文件的剩余,将它们连接在一起以形成一个长的序列字符串。可以使用字符串连接操作符(如"+")将这些连接起来。 4. 删除换符:连接序列时,注意删除每的换符。可以使用字符串删除函数(如replace('\n', ''))来实现。 5. 写入新文件:将转换后的一fasta格式序列写入一个新的文件中。可以使用适当的编程语言提供的文件操作函数来实现。 以上就是将fasta格式多转为一的具体步骤。通过执这些步骤,可以将fasta格式的多表达转换为一的形式,便于后续的生物信息学分析和处理

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值