perl 多fasta文件匹配,并提取匹配文件第一条序列
目标如题,有多个fasta文件和一个文件名列表,将文件名列表中包含的文件匹配出来并提取第一条序列合并成一个fa文件。
这个采用perl实现,用法和代码如下:

1 #!/usr/bin/perl -w
2 use strict;
3
4 sub usage{
5 die "usage:perl $0 <fa.list> <Fasta_Dir> <merged.fa>\n",unless(@ARGV==3);
6 }
7 usage();
8
9 open LIST,"$ARGV[0]";
10 open F,"$ARGV[1]";
11 open OU,">$ARGV[2]";
12
13 my @listName=<LIST>;
14
15 my @files=glob("$ARGV[1]/*.faa");
16 my $matchNum=0;
17
18 foreach my $k(@files){
19 my $fileName=(split /\//,$k)[-1];
20 if(grep /^$fileName$/,@listName){
21 $matchNum+=1;
22 open EACH,"$ARGV[1]/$fileName";
23 $/=">";
24 <EACH>;
25 while(<EACH>){
26 chomp;
27 my @info=split /\n/,$_;
28 my $seqID=shift @info;
29 my $seq=join "",@info;
30 print OU ">$seqID\n$seq\n";
31 last;
32 }
33 $/="\n";
34 }
35 }
36
37 print "match: $matchNum files,and merge completed!\n";
38
39 close LIST;
40 close F;
perl 多fasta文件匹配,并提取匹配文件第一条序列的更多相关文章
- 文件处理工具 gif合成工具 文件后缀批量添加工具 文件夹搜索工具 重复文件查找工具 网页图片解析下载工具等
以下都是一些简单的免费分享的工具,技术支持群:592132877,提供定制化服务开发. Gif动图合成工具 主要功能是扫描指定的文件夹里的所有zip文件,然后提取Zip文件中的图片,并合成一张gif图 ...
- 用R在字符串中提取匹配的部分
例如在aaaa12xxxx中提取12,在参考了stackoverflow后比较方便的大致有以下几种方法: 利用sub跟gsub sub(".*?([0-9]+).*", " ...
- Java递归搜索指定文件夹下的匹配文件
import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Queue; /** ...
- Linux下find一次查找多个指定类型文件,指定文件或者排除某类文件,在 GREP 中匹配多个关键 批量修改文件名等
http://blog.sina.com.cn/s/blog_62e7fe670101dg9d.html linux下二进制文件查找: strings 0000.ts | grep -o " ...
- Python(2.7.6) glob - 匹配指定模式的文件
Python 标准库的 glob 模块支持查询匹配指定模式的文件或目录.这里的模式使用的并不是正则表达式,而是通过通配符来匹配的 Unix 风格的路径名扩展. 支持的通配符: 通配符 说明 * 匹配 ...
- Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配
office版本:2016 系统版本:win10 问题描述: 1.桌面新建excel表格后,打开时,提示“Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效.请确定文件未损坏,并且文 ...
- 【转】fnmatch模块的使用——主要作用是文件名称的匹配,并且匹配的模式使用的unix shell风格
[转]fnmatch模块的使用 fnmatch模块的使用 此模块的主要作用是文件名称的匹配,并且匹配的模式使用的unix shell风格.fnmatch比较简单就4个方法分别是:fnmatch,fnm ...
- perl学习之:理解贪婪匹配和最小匹配之间的区别
正则表达式的新手经常将贪婪匹配和最小匹配理解错误.默认情况下,Perl 的正则表达式是“贪婪地”,也就是说它们将尽可能多地匹配字符. 下面的脚本打印出“matched defgabcdef”,因为它尽 ...
- iOS RegexKitLite 提取匹配的内容
使用RegexKitLite正则表达式需要以下工作: 1.RegexKitLite官方网址(内含使用教程):http://regexkit.sourceforge.net/RegexK ...
随机推荐
- [对对子队]发布声明Beta
Beta版本的新功能 新增的游戏内容 循环部分关卡 Beta阶段我们制作了游戏的第4-6关,为循环部分关卡.这一部分的关卡设计以编程的循环思想为基础,在流水线中加入了新的命令--循环语句,并以此为核心 ...
- spring social实现百度登录
在早期我写过一篇spring social理解的文章,介绍了一些spring social的概念,但是没有提供一个例子.在这篇博客中,提供一个简单的spring social的例子,实现 百度登录,那 ...
- [CSP-S 2021] 回文
题目描述: 给定正整数 n 和整数序列 a1, a2,-,a2n,在这 2n 个数中,1, 2,-,n 分别各出现恰好 2 次.现在进行 2n 次操作,目标是创建一个长度同样为 2n 的序列 b 1, ...
- Spring Cloud Alibaba 使用Nacos作为配置管理中心
为什么需要配置中心? 动态配置管理是 Nacos 的三大功能之一,通过动态配置服务,我们可以在所有环境中以集中和动态的方式管理所有应用程序或服务的配置信息. 动态配置中心可以实现配置更新时无需重新部署 ...
- 字符串折叠&压缩(区间DP)
字符串折叠 题目描述 折叠的定义如下: 一个字符串可以看成它自身的折叠.记作S = S X(S)是X(X>1)个S连接在一起的串的折叠.记作X(S) = SSSS-S(X个S). 如果A = A ...
- Codeforces Global Round 16题解
E. Buds Re-hanging 对于这个题该开始还是没想法的,但这显然是个思维题,还是要多多动手推样例,实践一下. 简化题意:给定一个有根树,规定某个点为树干,当且仅当这个点不是根,且这个点至少 ...
- cf12D Ball(MAP,排序,贪心思想)
题意: N位女士一起聚在一个舞厅.每位女士有三个特征值B,I,R.分别代表美貌,智慧,富有. 对于一位女士而言,如果存在一个女士的B,I,R都分别大于她自己的B,I,R.则她自己会自杀. 统计总共有多 ...
- 第01课 OpenGL窗口(1)
教程的这一节在2000年一月彻底重写了一遍.将会教您如何设置一个 OpenGL窗口.它可以只是一个窗口或是全屏幕的.可以任意 大小.任意色彩深度.此处的代码很稳定且很强大,您可以在您所有的OpenGL ...
- python教程-(四)当索引行不通时(python字典)
一.创建和使用字典 1.函数dict #字典表示方式如下 >>> phonebook = {'tom':'18616271234',"Jim":"186 ...
- Jetbrains 系 IDE 编辑器的代码提示功能
著名的 Jetbrains 可谓编程界的一大福音,众多有名代码编辑器比如 ItelliJ IDEA.PHPStorm.WebStorm.PyCharm 等,均出自这家公司麾下. 对于中国的Java开发 ...