导读:
第一个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
# 标准输出
网友评论