先ほど書いた
リボソーマルプロテインは一行に何塩基もあってみずらいので、
ちゃんとしたFASTAファイルにする必要がある。
そこで、Perlでプログラムを書いて整える。
手作業で79個の遺伝子を80行に揃えるのは大変。
一つの遺伝子が5行だとしても400行リターンを押さないといけない。
パールなら簡単。
以下がそのプログラムファイル。
使い方はまた今度説明するかも。
以下そのプログラム
############################################################################
#!/usr/bin/perl -w
use strict;
use warnings;
use POSIX;
# -------------------------------------------------------------- #
# MJsamurai
# @McGill, 2007
# Oyaji
# -------------------------------------------------------------- #
my $counter = 0;
########################### enter the fastafile to hash.
my ($fastafile) = @ARGV;
open FASTA, "<$fastafile";
###########################
while (<FASTA>)
{
if ($_ =~ /^>/)
{
my $header = $_;
my $line = <FASTA>;
$counter = $counter + 1;
print "$header";
print_sequence($line, 80);
}
}
close FASTA;
print "$counter fasta sequences are here\n";
################# sub print_FASTA sequence ##################
sub print_sequence
{
my($sequence, $length) = @_;
# Print sequence in lines of $length
for ( my $pos = 0 ; $pos < length($sequence) ; $pos += $length )
{
print substr($sequence, $pos, $length), "\n";
}
}
################################################################
リボソーマルプロテインは一行に何塩基もあってみずらいので、
ちゃんとしたFASTAファイルにする必要がある。
そこで、Perlでプログラムを書いて整える。
手作業で79個の遺伝子を80行に揃えるのは大変。
一つの遺伝子が5行だとしても400行リターンを押さないといけない。
パールなら簡単。
以下がそのプログラムファイル。
使い方はまた今度説明するかも。
以下そのプログラム
############################################################################
#!/usr/bin/perl -w
use strict;
use warnings;
use POSIX;
# -------------------------------------------------------------- #
# MJsamurai
# @McGill, 2007
# Oyaji
# -------------------------------------------------------------- #
my $counter = 0;
########################### enter the fastafile to hash.
my ($fastafile) = @ARGV;
open FASTA, "<$fastafile";
###########################
while (<FASTA>)
{
if ($_ =~ /^>/)
{
my $header = $_;
my $line = <FASTA>;
$counter = $counter + 1;
print "$header";
print_sequence($line, 80);
}
}
close FASTA;
print "$counter fasta sequences are here\n";
################# sub print_FASTA sequence ##################
sub print_sequence
{
my($sequence, $length) = @_;
# Print sequence in lines of $length
for ( my $pos = 0 ; $pos < length($sequence) ; $pos += $length )
{
print substr($sequence, $pos, $length), "\n";
}
}
################################################################
PR
トラックバック
トラックバックURL: