• 学习Perl6: slice fastq file


    需求:
    只获取 ath 物种的 hairpin 序列
    文件格式如下所示,以>打头的为 header,紧跟的为序列[AUCG]+ (Perl5 regexp 格式

    #!/usr/bin/env perl6
    my Bool $now = False ;
    # 词法变量还是用 my 声明
    # 此外,perl5中的 local 在6 中是没有的
    # our, state
    # temp let 可以作用于声明好的变量上
    my  Str $seq;
    
    for @*ARGS[0].IO.lines -> $l {
    # Perl5中的 @ARGV 在 perl6 中使用 动态变量@*ARGS 来代替,
    
      # $now = False ;
      if $l ~~ /^>/ {
     #Perl6 正则中除了 a-z A-Z 和下划线不用转义,其他的都需要转义。
        if $l ~~ /^ > ath / {
     #perl6 正则中的空白可以随便加,不作为匹配部分,你可以副词:s (:sigspace)来关闭
          say $seq.flip.trans('A' => 'T','U' => 'A','C' => 'G','G' => 'C') if $seq.Bool;
           # 把 pri-RNA 转成 cDNA
           # 先反转整个序列,再 AUCG -> TAGC
          $seq = '';
          $now = True ;
          say $l ;
          next
        }else{
          $now = False
        }
      }
      if $now and $l ~~ /^ <[AUCG]> + $/ {
        say $l
      }
    }
    
    1. Perl6的正则表达式和 perl5 不是一会事儿了

    文件 hairpin.fa

    >ame-mir-9865 MI0031791 Apis mellifera miR-9865 stem-loop
    AAGAUGGAAUUGAUUUAUGUGGUGAUUGUGCAGUAGCACAAUUAGAAGCUGAAAAACCAC
    UGCACGAUACAUUACAUAGAUUACUUCCUAUUAA
    >ame-mir-9866 MI0031792 Apis mellifera miR-9866 stem-loop
    GAUGAGAGGAUUCGAGUCGGCGGGGUAUGAGUAAUACGUUCAGGCAUGUACCUCGUAUCC
    CCUUGGCUCGCAAUGCCCUCUCCCU
    >ame-mir-9867 MI0031793 Apis mellifera miR-9867 stem-loop
    UCCUGAGGCAAGACGGUAUGGACGGUAGAGACGAGUCAUGAUCCUCGUCCUGCCGCGUCA
    CCGUUAUCCUCAUCC
    >ame-mir-9868 MI0031794 Apis mellifera miR-9868 stem-loop
    UCGGCGAUAAAAGCUCGGCGUUUCAUCGAUGCCUGGCCUGCUCUUUCCCCGUGGUUAAGC
    UCGAUGAAGUCGUCGGGUUUAGCCGG
    ...
    >ath-MIR8167d MI0031739 Arabidopsis thaliana miR8167d stem-loop
    CAUCUUUGAGAUUUUACACAGUAGUCAUGGAGUUUUUGGAAGAGAGAAAGUGGAGAUGUG
    GAGAUCGUGGGGAUG
    >ath-MIR8167e MI0031740 Arabidopsis thaliana miR8167e stem-loop
    CAUCUUUGAGAUUUUACACAGUAGUCAUGGAGUUUUUGGAAGAGAGAAAGUGGAGAUGUG
    GAGAUCGUGGGGAUG
    >ath-MIR8167f MI0031741 Arabidopsis thaliana miR8167f stem-loop
    CAUCUUUGAGAUUUUACACAGUAGUCAUGGAGUUUUUGGAAGAGAGAAAGUGGAGAUGUG
    GAGAUCGUGGGGAUG
    .....
    
    天和地是灰色的,砖和瓦也是灰色的。临街的墙几经风化,几经修补,刷过黑灰、白灰,涂过红漆,书写过不同内容的标语,又终于被覆盖;风雨再把覆盖层胡乱地揭下来,形成一片斑驳的杂色,融汇于灰色的笼罩之中。路旁的树木苍黑,瓦楞中芳草青青。 远处,炊烟缭绕。迷蒙的曙色中,矗立着...
  • 相关阅读:
    转 Android之Broadcast, BroadcastReceiver(广播)
    Android之“==”与equals区别
    Android之notificaction使用
    android service 学习
    Android之Menu.add()
    (转)Android生命周期
    Partial Method in VB.NET
    如何侦测机器上装的.net framework的版本
    Powersehll: match ,cmatch,imatch命令
    Office Tip(1) : Split the Screen
  • 原文地址:https://www.cnblogs.com/raybiolee/p/5615420.html
Copyright © 2020-2023  润新知