需求:

只获取 ath 物种的 hairpin 序列

文件格式如下所示,以>打头的为 header,紧跟的为序列[AUCG]+ (Perl5 regexp 格式

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

文件 hairpin.fa

  1. >ame-mir-9865 MI0031791 Apis mellifera miR-9865 stem-loop
  2. AAGAUGGAAUUGAUUUAUGUGGUGAUUGUGCAGUAGCACAAUUAGAAGCUGAAAAACCAC
  3. UGCACGAUACAUUACAUAGAUUACUUCCUAUUAA
  4. >ame-mir-9866 MI0031792 Apis mellifera miR-9866 stem-loop
  5. GAUGAGAGGAUUCGAGUCGGCGGGGUAUGAGUAAUACGUUCAGGCAUGUACCUCGUAUCC
  6. CCUUGGCUCGCAAUGCCCUCUCCCU
  7. >ame-mir-9867 MI0031793 Apis mellifera miR-9867 stem-loop
  8. UCCUGAGGCAAGACGGUAUGGACGGUAGAGACGAGUCAUGAUCCUCGUCCUGCCGCGUCA
  9. CCGUUAUCCUCAUCC
  10. >ame-mir-9868 MI0031794 Apis mellifera miR-9868 stem-loop
  11. UCGGCGAUAAAAGCUCGGCGUUUCAUCGAUGCCUGGCCUGCUCUUUCCCCGUGGUUAAGC
  12. UCGAUGAAGUCGUCGGGUUUAGCCGG
  13. ...
  14. >ath-MIR8167d MI0031739 Arabidopsis thaliana miR8167d stem-loop
  15. CAUCUUUGAGAUUUUACACAGUAGUCAUGGAGUUUUUGGAAGAGAGAAAGUGGAGAUGUG
  16. GAGAUCGUGGGGAUG
  17. >ath-MIR8167e MI0031740 Arabidopsis thaliana miR8167e stem-loop
  18. CAUCUUUGAGAUUUUACACAGUAGUCAUGGAGUUUUUGGAAGAGAGAAAGUGGAGAUGUG
  19. GAGAUCGUGGGGAUG
  20. >ath-MIR8167f MI0031741 Arabidopsis thaliana miR8167f stem-loop
  21. CAUCUUUGAGAUUUUACACAGUAGUCAUGGAGUUUUUGGAAGAGAGAAAGUGGAGAUGUG
  22. GAGAUCGUGGGGAUG
  23. .....

学习Perl6: slice fastq file的更多相关文章

  1. Java基础学习笔记十九 File

    IO概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把这些数据 ...

  2. Android(java)学习笔记87:File类使用

    package cn.itcast_01; import java.io.File; /* * 我们要想实现IO的操作,就必须知道硬盘上文件的表现形式. * 而Java就提供了一个类File供我们使用 ...

  3. Java学习之IO之File类二

    之前学了File便想把我学习视频的名字改了,因为文件名太长不好看,便试着写了个功能实现 package com.gh.file; import java.io.File; /** * 批量文件命名 * ...

  4. Python学习笔记015——文件file的常规操作(二进制文件)

    有时候诸如图片.音乐等信息不是以文本的形式存储的,而是二进制文件格式存储的. 有时候很多信息不是以文本文件的形式存储的 很多时候,都需要用到二进制读取文件.毕竟很多信息不是以文本的形式存储.例如:图片 ...

  5. Python学习笔记015——文件file的常规操作之一(文本文件)

    1 什么是文件 文件是用于数据存储的单位 文件通常用来长期保存数据 读写文件是最常见的I/O操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件的功能都是由操作系统提供的,一般而言,操 ...

  6. Android(java)学习笔记26:File类的使用

    1. File类的使用  package cn.itcast_01; import java.io.File; /* * 我们要想实现IO的操作,就必须知道硬盘上文件的表现形式. * 而Java就提供 ...

  7. Java I/O系统学习系列一:File和RandomAccessFile

    I/O系统即输入/输出系统,对于一门程序语言来说,创建一个好的输入/输出系统并非易事.因为不仅存在各种I/O源端和想要与之通信的接收端(文件.控制台.网络链接等),而且还需要支持多种不同方式的通信(顺 ...

  8. 第31天学习打卡(File类。字符流读写文件)

    File类 概念 文件,文件夹,一个file对象代表磁盘上的某个文件或者文件夹 构造方法  File(String pathname) File(String parent,String child) ...

  9. JAVA基础学习day21--IO流三-File、Properties、PrintWriter与合并、分割流

    一.File 1.1.File概述 文件和目录路径名的抽象表示形式. 用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录.此类呈现分层路径名的一个抽象的.与系统无关的视图.抽象路径名 有 ...

随机推荐

  1. 英特尔15天开发IDF硬享公社App全过程

    4月8日英特尔智能硬件大赛在上海决赛,4月13日英热尔智能硬件大赛10强在深圳首秀.英特尔辗转两大城市来顾全两地智能硬件创业者,移动直播就成了用户们最重要的观看渠道. 这次英特尔两大会事现场直播都在官 ...

  2. WHERE谓词对索引使用的影响

    本篇博文只测试WHERE谓词对multi-column index使用的影响,主要篇幅是SQL代码+截图.详细内容请参考<Inside the SQL Server Query Optimize ...

  3. D3D标注动态避让

    原来也思考了该如何实现标注动态避让,认为必须得计算字符串所占的大小.如果在屏幕上要计算屏幕象素之类的东西. 今天总算找到了实现方法,在C# WorldWind中的KMLImporter类中有.关键是F ...

  4. 【未解决】CImage::Save / Load 导致“线程 0xc224 已退出,返回值为 1 (0x1)”

    不知道这个返回值意味着什么,反正只要用到Save/Load就会出现这个情况. 这个链接:http://forums.codeguru.com/showthread.php?354017-The-thr ...

  5. html 全选或全不选小案例

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. maven 一好用的仓库镜像

    <mirror> <id>ibiblio.org</id> <name>ibiblio Mirror of http://repo1.maven.org ...

  7. transient关键字的含义

    transient java语言的关键字,变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持. Java的serialization提供了一种持久化对象实例的机制.当 ...

  8. Leetcode: Mini Parser

    Given a nested list of integers represented as a string, implement a parser to deserialize it. Each ...

  9. SQL 数据库 right join 和left join 的区别

    left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只 ...

  10. php实用类

    <?php class DBDA { public $host="localhost";//服务器地址 public $uid="root";//用户名 ...