perl 多fasta文件匹配,并提取匹配文件第一条序列
2024-08-21 10:01:06
目标如题,有多个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;
最新文章
- 使用Ivy管理项目中的依赖
- GitHub初体验(小菜新手github用起来)
- URAL - 1920 Titan Ruins: the Infinite Power of Magic(乱搞)
- umask:遮罩码
- [React] React Fundamentals: Component Lifecycle - Mounting Basics
- RMQ问题
- hihocoder1302 最长回文子串
- css补充
- 例10-11 uva11181
- OpenStack-Storage(6)
- hadoop 使用ip配置导致hdfs启动失败
- SharePoint入门——创建一个网站
- webpack window dev-server配置
- iOS AFNetWorking下得Basic Auth认证请求方式
- sbt编译spark程序提示value toDF is not a member of Seq()
- python 集合取最大最小值
- 4.18n阶勒让德多项式求解
- 使用AKKA做分布式爬虫的思路
- Python内置函数(9)——callable--转载
- NPOI设置水平、垂直居中
热门文章
- lib库无法加载的情况分析
- C++ Boost signal2信号/插槽
- MVC下垃框的使用
- Downward API —— 在容器内部获取 Pod 信息
- springcloud3(六) 服务降级限流熔断组件Resilience4j
- matlab与python scipy.signal中 freqs freqz 中w,什么时候是角频率,什么时候是真实的工程中使用的采样频率Hz,如何转化
- Jmeter下载安装(一)
- Vue中computed计算属性
- 一个校验接口引发的思考--我真的了解Response吗
- 问题 O: 寻找最大数(三)