zoukankan      html  css  js  c++  java
  • perl 脚本将phred33 转换为phred64

    今天用fastx_tookit 时遇到问题, 我的fastq 文件的碱基质量值格式为phred33, 而fastq_tookit 默认碱基质量值的格式为phred64, 

    所以报错了,提示我的fastq文件中包含非法的碱基质量值,逗号

    逗号的在ascii 码表中对应的十进制数字为44, 按照phred 33 格式,其对应的碱基质量值为11,如果按照phred64处理的化, 其质量值为-20,此时就会报错,

    所以需要将碱基质量给位phred64 格式的,我没找到现有工具, 只能自己写了,虽然很慢, 但是能解决问题。代码如下:

     1 #!/usr/bin/perl 
     2 use warnings;
     3 use strict;
     4 
     5 =pod
     6 将phred33 转换为phred64
     7 =cut
     8 
     9 my ($fastq) = @ARGV;
    10 my $raw_quality = 33;
    11 my $new_quality = 64;
    12 open FASTQ, $fastq or die "Can't open $fastq
    ";
    13 while (my $id = <FASTQ>) {
    14     my $seq     = <FASTQ>;
    15     my $des     = <FASTQ>;
    16     my $quality = <FASTQ>;
    17 
    18     chomp($id);
    19     chomp($seq);
    20     chomp($des);
    21     chomp($quality);
    22 
    23     my @fmt_quality = map {chr(ord($_) - $raw_quality + $new_quality)} split //, $quality;
    24     $quality = join "", @fmt_quality;
    25     print qq{$id
    $seq
    $des
    $qualityn};
    26 }
    27 close $fastq;

    将格式转换后,再运行fastx_tookit 中的fastx_quality_stats 就不会报错了

  • 相关阅读:
    解决VUE刷新或者加载出现闪烁
    解决VUE<router-link>不能触发点击事件
    H5的本地存储web Storage
    格式化数字格式
    移动终端浏览器版本信息
    新的开始
    PHP用PHPExcel导入Excel表格的数据到MySQL(thinkPHP3.2.3)
    Layui的分页模块在网站中的应用
    PHPstorm连接ftp
    自定义PHPstorm快捷键
  • 原文地址:https://www.cnblogs.com/xudongliang/p/5083111.html
Copyright © 2011-2022 走看看