I usually write a small basic program for such problems.
post/send the file, I send the result ?
post/send the file, I send the result ?
You are currently viewing the SEQanswers forums as a guest, which limits your access. Click here to register now, and join the discussion
#!/usr/bin/env perl use strict; use warnings; use File::Basename; my $usage = "perl ".basename($0)." seqsi.fas seqsj.fas > seqs_out.fas"; my $infilei = shift or die $usage; my $infilej = shift or die $usage; my %hash; open my $ini, '<', $infilei or die $!; while (my ($id, $seq) = fasta_it(\*$ini)) { $hash{$seq} = $id; } close $ini; open my $inj, '<', $infilej or die $!; while (my ($id, $seq) = fasta_it(\*$inj)) { if (exists $hash{$seq}) { print join "\n", ">".$hash{$seq}, "$seq\n"; } } close $inj; sub fasta_it { my ($fh) = @_; local $/ = "\n>"; return unless my $entry = $fh->getline; chomp $entry; my ($id, $seq) = split /\n/, $entry, 2; defined $id && $id =~ s/>//g; return ($id, $seq); }
perl fetch_by_seq.pl i.fas j.fas >1123-11234 aaaaaa >232-23424 tttttt >416-2 gggggg >13424241234-23423 cccccc
$ while read i ; do grep -B 1 $i original.fas ; done < sequence_file > out.fas
return unless my $entry = $fh->getline;
return unless my $entry = <$fh>;
return unless my $entry = $fh->getline;
return unless my $entry = <$fh>;
#!/usr/bin/env perl use strict; use warnings; use File::Basename; my $usage = "perl ".basename($0)." seqsi.fas seqsj.fas > seqs_out.fas"; my $infilei = shift or die $usage; my $infilej = shift or die $usage; my $hash = index_seq($infilei); open my $inj, '<', $infilej or die $!; { local $/ = '>'; while (my $line = <$inj>) { chomp $line; my ($seqid, @seqparts) = split /\n/, $line; my $seq = join '', @seqparts; next unless defined $seqid && defined $seq; if (exists $hash->{$seq}) { print join "\n", ">".$hash->{$seq}, "$seq\n"; } } } close $inj; sub index_seq { my ($file) = @_; open my $in, '<', $file or die $!; my %hash; { local $/ = '>'; while (my $line = <$in>) { chomp $line; my ($seqid, @seqparts) = split /\n/, $line; my $seq = join '', @seqparts; next unless defined $seqid && defined $seq; $hash{$seq} = $seqid; } } close $in; return \%hash; }
#!/usr/bin/env perl use strict; use warnings; use File::Basename; my $usage = "perl ".basename($0)." seqsi.fas seqsj.fas > seqs_out.fas"; my $infilei = shift or die $usage; my $infilej = shift or die $usage; my $hash = index_seq($infilei); open my $inj, '<', $infilej or die $!; { local $/ = '>'; while (my $line = <$inj>) { chomp $line; my ($seqid, @seqparts) = split /\n/, $line; my $seq = join '', @seqparts; next unless defined $seqid && defined $seq; if (exists $hash->{$seq}) { print join "\n", ">".$hash->{$seq}, "$seq\n"; } } } close $inj; sub index_seq { my ($file) = @_; open my $in, '<', $file or die $!; my %hash; { local $/ = '>'; while (my $line = <$in>) { chomp $line; my ($seqid, @seqparts) = split /\n/, $line; my $seq = join '', @seqparts; next unless defined $seqid && defined $seq; $hash{$seq} = $seqid; } } close $in; return \%hash; }
$ /bin/bash $ while read i ; do grep -B 1 $i original.fas ; done < sequence_file > out.fas
Topics | Statistics | Last Post | ||
---|---|---|---|---|
Started by seqadmin, Today, 07:03 AM
|
0 responses
10 views
0 likes
|
Last Post
by seqadmin
Today, 07:03 AM
|
||
Started by seqadmin, 05-10-2024, 06:35 AM
|
0 responses
31 views
0 likes
|
Last Post
by seqadmin
05-10-2024, 06:35 AM
|
||
Started by seqadmin, 05-09-2024, 02:46 PM
|
0 responses
41 views
0 likes
|
Last Post
by seqadmin
05-09-2024, 02:46 PM
|
||
Started by seqadmin, 05-07-2024, 06:57 AM
|
0 responses
33 views
0 likes
|
Last Post
by seqadmin
05-07-2024, 06:57 AM
|
Comment