搜索
12
返回列表 发新帖
楼主: Panda姐

【Panda姐-perl练习题14】根据id列表提取fasta文件中对应的序列

[复制链接]

1

主题

55

帖子

790

积分

高级会员

Rank: 4

积分
790
发表于 2018-7-15 11:05:38 | 显示全部楼层
[Perl] 纯文本查看 复制代码
# !usr/bin/perl -w
# 2018-6-26
# Version 1.01 ###perl test-4.pl id.txt fasta.txt result.fa.
  use strict;
  
  open IN1,"<",$ARGV[0] or die "Can't open file1";
  open IN2,"<",$ARGV[1] or die "Can't open file2";
  open OUT,">",$ARGV[2];
  
  my ($chrom,%hash,%hash1);
  while (<IN1>){
  			chomp;
  			#print "$_\n";
  			$hash{$_} = 1;		
  }
  while (<IN2>){
  			
  			if (/^>(.*?)\s/){
  				 $chrom = $1;
  				 #print "$1\n";
  			}else{
  					$hash1{$chrom}.=$_; #must start with id
  					#print "$hash1{$chrom}\n";
  			}	
  }
  foreach my $chrom1(sort keys %hash1){
  			if (exists $hash{$chrom1}){
  						print OUT ">$chrom1\n$hash1{$chrom1}";	
  			}
  }
  
  close IN1;
  close IN2;
  close OUT;
回复 支持 反对

使用道具 举报

1

主题

55

帖子

790

积分

高级会员

Rank: 4

积分
790
发表于 2018-7-15 11:13:18 | 显示全部楼层
生信小小菜鸟 发表于 2018-7-15 11:05
[mw_shl_code=perl,true]# !usr/bin/perl -w
# 2018-6-26
# Version 1.01 ###perl test-4.pl id.txt fasta. ...

这个前后文件反了,没找到怎么删除,所以后面补了一个
回复 支持 反对

使用道具 举报

0

主题

2

帖子

31

积分

新手上路

Rank: 1

积分
31
发表于 2019-3-7 09:35:41 | 显示全部楼层
瑾夏 发表于 2017-10-23 19:03
#!/usr/bin/perl -w
use strict;

亲测,这个好用。
回复 支持 反对

使用道具 举报

0

主题

2

帖子

103

积分

注册会员

Rank: 2

积分
103
发表于 2019-5-5 15:10:33 | 显示全部楼层
[Python] 纯文本查看 复制代码
import re
with open("ID",'r') as ID:
	ls2 = ID.readlines()
	for i in range(0,len(ls2)):
		ls2[i] = ls2[i].strip('\n')
sign = 0
with open("fasta",'r') as fasta:
	ls1 = fasta.readlines()
	for i in range(0,len(ls1)):
		ls1[i] = ls1[i].strip('\n')
	for	j in range(0,len(ls2)):
		for i in range(0,len(ls1)):
		
			if ">" in ls1[i]:
				if ls2[j] in ls1[i]:
					sign = 1
				else:
					sign = 0
			if sign == 1:
				print(ls1[i])
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树    

GMT+8, 2019-5-26 16:14 , Processed in 0.028018 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.