目标如题,有多个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;

最新文章

  1. 使用Ivy管理项目中的依赖
  2. GitHub初体验(小菜新手github用起来)
  3. URAL - 1920 Titan Ruins: the Infinite Power of Magic(乱搞)
  4. umask:遮罩码
  5. [React] React Fundamentals: Component Lifecycle - Mounting Basics
  6. RMQ问题
  7. hihocoder1302 最长回文子串
  8. css补充
  9. 例10-11 uva11181
  10. OpenStack-Storage(6)
  11. hadoop 使用ip配置导致hdfs启动失败
  12. SharePoint入门——创建一个网站
  13. webpack window dev-server配置
  14. iOS AFNetWorking下得Basic Auth认证请求方式
  15. sbt编译spark程序提示value toDF is not a member of Seq()
  16. python 集合取最大最小值
  17. 4.18n阶勒让德多项式求解
  18. 使用AKKA做分布式爬虫的思路
  19. Python内置函数(9)——callable--转载
  20. NPOI设置水平、垂直居中

热门文章

  1. lib库无法加载的情况分析
  2. C++ Boost signal2信号/插槽
  3. MVC下垃框的使用
  4. Downward API —— 在容器内部获取 Pod 信息
  5. springcloud3(六) 服务降级限流熔断组件Resilience4j
  6. matlab与python scipy.signal中 freqs freqz 中w,什么时候是角频率,什么时候是真实的工程中使用的采样频率Hz,如何转化
  7. Jmeter下载安装(一)
  8. Vue中computed计算属性
  9. 一个校验接口引发的思考--我真的了解Response吗
  10. 问题 O: 寻找最大数(三)