需求:

只获取 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
.....

学习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. dd命令使用详解

    dd命令使用详解 http://www.cnblogs.com/qq78292959/archive/2012/02/23/2364760.html 1.命令简介 dd 的主要选项: 指定数字的地方若 ...

  2. Kafka+Storm+HDFS整合实践

    在基于Hadoop平台的很多应用场景中,我们需要对数据进行离线和实时分析,离线分析可以很容易地借助于Hive来实现统计分析,但是对于实时的需求Hive就不合适了.实时应用场景可以使用Storm,它是一 ...

  3. Android ListView 自定义 Adapter

    自定义Adapter类 public class ListViewAdapter extends BaseAdapter { private static final String TAG = Mai ...

  4. [PCL]NDT点云匹配方法

    测试NDT方法的Demo,http://pointclouds.org/documentation/tutorials/normal_distributions_transform.php#norma ...

  5. Git撤销操作命令

    使用Git的过程中,失误无法避免,虽然Git很强,但是有些失误,无法挽回.在这里我介绍一些Git的撤销命令. 撤销对文件的修改 如下图所示的情况,你修改了文件,但是不想保存对文件的修改. 根据具体情况 ...

  6. my.cnf详解

    [client] port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 socket = /tmp/mysql.sock basedir ...

  7. tomcat 6.0.44 “has failed to stop it. This is very likely to create a memory leak” 问题调查

    1. 问题起因 我们项目中缓存模块某个实现采用了ehcache(2.4.3),当项目部署到tomcat中后,对tomcat做停止服务操作(点击eclipse的console红色的停止按钮,奇怪的是有小 ...

  8. Jquery系列教程

    最近想重新温习下Jquery,发现园子里有个很棒的系列教材,所以Mark下来. 转载自:http://www.cnblogs.com/zhangziqiu/tag/jQuery%E6%95%99%E7 ...

  9. SQLSERVER:Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.

    背景: 在最近开发中遇到一个问题,对一个数据库进行操作时,我采用64个并行的任务每个任务保证一个数据库连接对象:但是每个任务内部均包含有24个文件需要读取,在读取文件之后,我们需要快速将这24个文件批 ...

  10. Leetcode: Remove K Digits

    Given a non-negative integer num represented as a string, remove k digits from the number so that th ...