anou
21-09-2010, 21:06
Hi,
ich hab ein array mit einem Motiv (regulärer Ausdruck) in verschiedenen Varianten. Jetzt würde ich gern das array mit meinem script einlesen und mithilfe der subroutine die Positionen der einzelnen Varianten in der Sequenz bestimmen. Allerdings weiß ich nicht wie ich das array mit dem script verbinden kann. Kann mir da vielleicht jemand weiterhelfen?
Hier ist der codeden ich bis jetzt habe:
print "Please type the filename of your input file:= ";
chomp ($dnafilename=<STDIN>);
open(INPUT,'<',$dnafilename) or die ("$dnafilename Can not open file\n");
close(INPUT);
print "Please type in the name of your txt file:= ";
chomp (@array=<STDIN>);
open (INPUT,"<$txtfile") or die ("$txtfile Can not open file\n");
close(INPUT);
while(<INPUT>)
{
#print $_;
@temp=(@temp,$_);
}
while(<@temp>)
{
#print $_;
@temp=(@temp,$_);
}
do{
print "What is the motif you are searching for?\n" ;
$motif=<STDIN>;
$temp=0;
chomp $motif;
if (exists $txtfile{$motif})
{
($recognition_site, $regexp)=split(" ", $motif);
@locations=match_positions($regexp);
if(@locations)
{
print "Searching for $motif $recognition_site $regexp\n";
print "Motif $motif has been found at locations:\n";
}
else
{
print "Motif $motif has not been found:\n";
}
}
print "\n";
}
until ($motif=~/quit/);
exit;
###################
#Subroutine
#Find locations of a motif in a string
#return an array of positon where the motif appears in the string
sub match_position
{
my($motif, $_)=@_;
use strict;
my @positions=();
while(<@temp>)
{
if($_=~ /$motif/ig)
{
push (@positions, pos($_) -length($&)+1);
}
}
return @positions;
}
LG,
Anja
ich hab ein array mit einem Motiv (regulärer Ausdruck) in verschiedenen Varianten. Jetzt würde ich gern das array mit meinem script einlesen und mithilfe der subroutine die Positionen der einzelnen Varianten in der Sequenz bestimmen. Allerdings weiß ich nicht wie ich das array mit dem script verbinden kann. Kann mir da vielleicht jemand weiterhelfen?
Hier ist der codeden ich bis jetzt habe:
print "Please type the filename of your input file:= ";
chomp ($dnafilename=<STDIN>);
open(INPUT,'<',$dnafilename) or die ("$dnafilename Can not open file\n");
close(INPUT);
print "Please type in the name of your txt file:= ";
chomp (@array=<STDIN>);
open (INPUT,"<$txtfile") or die ("$txtfile Can not open file\n");
close(INPUT);
while(<INPUT>)
{
#print $_;
@temp=(@temp,$_);
}
while(<@temp>)
{
#print $_;
@temp=(@temp,$_);
}
do{
print "What is the motif you are searching for?\n" ;
$motif=<STDIN>;
$temp=0;
chomp $motif;
if (exists $txtfile{$motif})
{
($recognition_site, $regexp)=split(" ", $motif);
@locations=match_positions($regexp);
if(@locations)
{
print "Searching for $motif $recognition_site $regexp\n";
print "Motif $motif has been found at locations:\n";
}
else
{
print "Motif $motif has not been found:\n";
}
}
print "\n";
}
until ($motif=~/quit/);
exit;
###################
#Subroutine
#Find locations of a motif in a string
#return an array of positon where the motif appears in the string
sub match_position
{
my($motif, $_)=@_;
use strict;
my @positions=();
while(<@temp>)
{
if($_=~ /$motif/ig)
{
push (@positions, pos($_) -length($&)+1);
}
}
return @positions;
}
LG,
Anja