生物信息之独孤九剑——单行perl

2023-10-09 18:59

本文主要是介绍生物信息之独孤九剑——单行perl,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

编者按:

在金庸武学体系的众多武功之中,独孤九剑并不是最强劲的武功,它与其他武林绝学有很大的不同,可以说是鹤立鸡群。比如乔峰的降龙十八掌,段誉的六脉神剑,张无忌的九阳神功,石破天的罗汉伏魔神功,这些神功都需要强大的内力支撑,而独孤九剑则不同,不需要内力,这点其实可以从华山派气宗与剑宗的分歧就可以看出来。独孤九剑传人风清扬属于剑宗,更注重招式,而不是像剑宗注重练气。独孤九剑分为总诀式,破剑式,破刀式,破枪式,破鞭式,破索式,破箭式,破掌式,破气式,遇到不同的场景使用关不同的招式,因此,独孤九剑更加注重问题的解决,本质上就是就是通过工具来解决问题。只要学会这九剑,就可以处理很多的问题。学习生物信息也是同样的道理,当然练好内功,掌握很好的基础是非常必要的,但是也可以学习一些小工具,解决一些实际问题。那么从这次内容开始,我们就来给大家介绍生物信息之独孤九剑。

perl有一个非常大的好处就是支持单行模式。类似于awk和sed的模式。很多时候我们一些perl程序是随手就丢掉了,也就是写完之后就丢掉。可以把perl程序全部放在命令行上。这样就无需再写到一个文件中保存下来而直接在命令行运行就可以。对于大型的,较长久的工作,可以把perl脚本当做一个独立的文件使用。perl是非常优秀的脚本语言。熟练掌握当行perl的技巧,会极大的提高效率。许多awk和sed、grep和sort可以完成的功能,单行的perl的都可以完成,而且有时候比单独使用这些命令更加方便。

案例一:命令行模式perl;

perl -e “print ”hello,world\n”;

案例二:while循环;

-n是自动循环,相当于 while(<>) { 脚本; };

perl -ne ‘{chomp;print “$_\n”;}’ test.txt #使用-ne来都读取这个文件,并将其一行行打印出来。这个相当于cat的功能了。

案例三:替换模式,相当于sed功能;

perl -p -e ‘s/scaffold_//’ test.txt #将其中的ID行里面的scaffold下划线都替换掉;

perl -p -e -i‘s/scaffold_//’ test.txt #直接在源文件修改,相当于sed -i;

perl -pie ’s/\r\n/\n/g’ test.txt #将换行符\r\n替换成\n,相当于dos2unix命令的功能。

案例四:打印文件的任意行或者任意范围的行,相当于awk功能;

perl -lane ‘print “@F[0…4] $F[6]“‘ file #取出文件的一部分,显示字段0-4和字段6,字段的分隔符是空格;

perl -F: -lane ‘print “@F[0…4]\n”‘ /etc/passwd #修改分隔符为冒号;

案例五:利用正则表达式,输出固定范围行;

perl -ne ‘print if /^START / . . / E N D / .. /^END /../END/’ file #打印START和END之间的部分;

perl -ne ‘print unless /^START / . . / E N D / .. /^END /../END/’ file #不打印START和END之间的部分;

案例六:显示开头50行,相当于head;

perl -pe ‘exit if $. > 50′ file #输出文件前50行,相当于head的功能;

perl -ne ‘print if 15 … 17′ file #显示15行到17行,相当于head,管道与tail;

如果要丢弃模式内的,将if切换成unless即可。

案例七:提取固定字符;

perl -lne ‘print substr($_, 0, 80) = “”‘ file #去除每行前80个字符;

案例八:搜索功能,相当于grep功能;

perl -ne ‘print if /comment/’ duptext #查找固定模式的字符串:

perl -ne ‘print unless /comment/’ duptext #查找不含comment字符串的行,相当于grep -v;

案例九:排序;

perl -e ‘print sort <>’ #file #文件按行排序;

perl -00 -e ‘print sort <>’ #file #文件按段落排序;

perl -0777 -e ‘print sort <>’ file1 file2 #多个文件按文件内容排序,并返回合并后的文件:

案例十:文件按行反转

perl -e ‘print reverse <>’ file1 #文件按行翻转;

在这里插入图片描述

欢迎订阅我们的微信公众号:基因学苑

这篇关于生物信息之独孤九剑——单行perl的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/174904

相关文章

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti

生信代码入门:从零开始掌握生物信息学编程技能

少走弯路,高效分析;了解生信云,访问 【生信圆桌x生信专用云服务器】 : www.tebteb.cc 介绍 生物信息学是一个高度跨学科的领域,结合了生物学、计算机科学和统计学。随着高通量测序技术的发展,海量的生物数据需要通过编程来进行处理和分析。因此,掌握生信编程技能,成为每一个生物信息学研究者的必备能力。 生信代码入门,旨在帮助初学者从零开始学习生物信息学中的编程基础。通过学习常用

生信圆桌x生信分析平台:助力生物信息学研究的综合工具

介绍 少走弯路,高效分析;了解生信云,访问 【生信圆桌x生信专用云服务器】 : www.tebteb.cc 生物信息学的迅速发展催生了众多生信分析平台,这些平台通过集成各种生物信息学工具和算法,极大地简化了数据处理和分析流程,使研究人员能够更高效地从海量生物数据中提取有价值的信息。这些平台通常具备友好的用户界面和强大的计算能力,支持不同类型的生物数据分析,如基因组、转录组、蛋白质组等。

Linux命令(11):系统信息查看命令

系统 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# lsusb -tv

perl的学习记录——仿真regression

1 记录的背景 之前只知道有这个强大语言的存在,但一直侥幸自己应该不会用到它,所以一直没有开始学习。然而人生这么长,怎就确定自己不会用到呢? 这次要搭建一个可以自动跑完所有case并且打印每个case的pass信息到指定的文件中。从而减轻手动跑仿真,手动查看log信息的重复无效低质量的操作。下面简单记录下自己的思路并贴出自己的代码,方便自己以后使用和修正。 2 思路整理 作为一个IC d

【小迪安全笔记 V2022 】信息打点9~11

第9天 信息打点-CDN绕过篇&漏洞回链8接口探针&全网扫指&反向件 知识点: 0、CDN知识-工作原理及阻碍 1、CDN配置-域名&区域&类型 2、CDN绕过-靠谱十余种技战法 3、CDN绑定-HOSTS绑定指向访问 CDN 是构建在数据网络上的一种分布式的内容分发网。 CDN的作用是采用流媒体服务器集群技术,克服单机系统输出带宽及并发能力不足的缺点,可极大提升系统支持的并发流数目,减少或避

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

Python批量读取身份证信息录入系统和重命名

前言 大家好, 如果你对自动化处理身份证图片感兴趣,可以尝试以下操作:从身份证图片中快速提取信息,填入表格并提交到网页系统。如果你无法完成这个任务,我们将在“Python自动化办公2.0”课程中详细讲解实现整个过程。 实现过程概述: 模块与功能: re 模块:用于从 OCR 识别出的文本中提取所需的信息。 日期模块:计算年龄。 pandas:处理和操作表格数据。 PaddleOCR:百度的

linux上查看java最耗时的线程信息

找到JAVA进程pid ps -ef|grep java或则jps -mlv 找进行下耗时的线程TID 使用top -Hp pid可以查看某个进程的线程信息 -H 显示线程信息,-p指定pid top -Hp 10906 查看最耗时的 TID即线程id printf "%x\n" [tid] 转成16进制 java中的线程类相关信息 jstack 线程ID 可以查看某个线程的堆栈情况,特别对于h