R语言 生信

perl:测序数据fastq格式转成fasta

2019-11-12  本文已影响0人  胡童远

导读:

第一个perl脚本,简单却好用。

一、目的

fastq格式:
第一行:@序列名称
第二行:碱基序列
第三行:+序列名称
第四行:碱基质量

@DRR110568.16 16 length=150
TGACTTCCTTCACGGGAAGGTAAC
+DRR110568.16 16 length=150
FAGGGG5FGGFGHC?EGCGGAFGH

fasta格式:
第一行:>序列名称
第二行:碱基序列

>DRR110568.16 16 length=150
TGACTTCCTTCACGGGAAGGTAAC

目的就是:1. 取fastq的前两行;2. @ 换成 >

二、perl脚本

vi fastq2fasta.pl  # 创建文件,并编辑

#!/usr/bin/perl -w
# 指定脚本解释程序
# -w:检查语法和声明上的错误

# @ARGV(数组)存放命令行参数列表$ARGV[]:
# open:打开文件句柄

open IN,$ARGV[0];
# 命令行中脚本后第一个文件:输入文件
open OUT,">$ARGV[1]";
# 命令行中脚本后第二个文件:输出文件

my($readid, $sequence);
# 创建私有变量

while ($readid=<IN>){
# 读取第一行,给$readid
    chomp($readid);  # 去换行符
    chomp($sequence=<IN>);  # 读取第二行,给$sequence
    <IN>;  # 读取第三行
    <IN>;  # 读取第四行
    $readid=~s/@/>/;   # 正则表达式:> 替换 @
    print OUT "$readid\n$sequence\n";  # 打印输出前两行
   
 # 下一轮(再来四行)👇
}

close IN;
close OUT;
# 关闭文件句柄

三、运行脚本

perl fastq2fasta input.file > output.file
# 标准输出

...

\color{green}{😀😀原创文章,随便码字,转载请注明出处😀😀}

上一篇下一篇

猜你喜欢

热点阅读