Hi! i am trying to replace text from one file in another and am not able to get it done. please suggest a solution.
thanks in advance
here is what i have done sofar
#!/usr/bin/perl -w
my ($line, $name, $sequence, $intron, $sequences, $line2);
my (%categories);
open(FILER1, "insertion-details.txt");
open(FILEW1, ">insertion-marked.txt");
;
while(!eof(FILER1)){
$line=<FILER1>;
if($line=~/\w/){
($name, $sequence, $intron) = split(/\t/, $line);
$sequences = $sequence.$intron;
$categories{$sequence} = $name;
print FILEW1 "$sequences\n";
open(FH2, "target.txt");
while(!eof(FH2)){
$line2 = <FH2>;
if($line2=~/$name/){
$line2 =~ s/$categories{$sequence}/$sequences/;
print FILEW1 "$line2\n";
}
else {
print FILEW1 "no match\n";
}
}
}
}
here are my input files and the expected output file. one of the entries has substitution at two places
insertion details as "insertion-details.txt"
data in both the input files is tabdelimited.
ATC51G4 VDNKFFNVAL (0)
ATC51G4 LIPKSRKRLP (1)
ATA51G1 IIPRSKKRLP (1)
CTC51G5 LIPKSRKRLP (1)
ATS51G2 IIPRSKKRLP (1)
target file as "target.txt"
Each entry will be on a seperate line
ATC51G4 MDVDNKFFNVALLIVATVVVAKLISALLIPKSRKRLPPTVKGF
ATA51G1 MDVXXKTFNAXFLLVATLLVAKLISALIIPRSKKRLPPTIKAF
CTC51G5 MDVDNKFFNVALLIVATVVVAKLISALLIPKSRKRLPPTVKAF
ATS51G2 MDVXXKAFNAXFLLVATLLVAKLISALIIPRSKKRLPPTIKTF
desired output as "insertion-marked.txt"
ATC51G4 MDVDNKFFNVAL(0)LIVATVVVAKLISALLIPKSRKRLP(1)PTVKGF
ATA51G1 MDVXXKTFNAXFLLVATLLVAKLISALIIPRSKKRLP(1)PTIKAF
CTC51G5 MDVDNKFFNVALLIVATVVVAKLISALLIPKSRKRLP(1)PTVKAF
ATS51G2 MDVXXKAFNAXFLLVATLLVAKLISALIIPRSKKRLP(1)PTIKTF
thanks in advance
here is what i have done sofar
#!/usr/bin/perl -w
my ($line, $name, $sequence, $intron, $sequences, $line2);
my (%categories);
open(FILER1, "insertion-details.txt");
open(FILEW1, ">insertion-marked.txt");
;
while(!eof(FILER1)){
$line=<FILER1>;
if($line=~/\w/){
($name, $sequence, $intron) = split(/\t/, $line);
$sequences = $sequence.$intron;
$categories{$sequence} = $name;
print FILEW1 "$sequences\n";
open(FH2, "target.txt");
while(!eof(FH2)){
$line2 = <FH2>;
if($line2=~/$name/){
$line2 =~ s/$categories{$sequence}/$sequences/;
print FILEW1 "$line2\n";
}
else {
print FILEW1 "no match\n";
}
}
}
}
here are my input files and the expected output file. one of the entries has substitution at two places
insertion details as "insertion-details.txt"
data in both the input files is tabdelimited.
ATC51G4 VDNKFFNVAL (0)
ATC51G4 LIPKSRKRLP (1)
ATA51G1 IIPRSKKRLP (1)
CTC51G5 LIPKSRKRLP (1)
ATS51G2 IIPRSKKRLP (1)
target file as "target.txt"
Each entry will be on a seperate line
ATC51G4 MDVDNKFFNVALLIVATVVVAKLISALLIPKSRKRLPPTVKGF
ATA51G1 MDVXXKTFNAXFLLVATLLVAKLISALIIPRSKKRLPPTIKAF
CTC51G5 MDVDNKFFNVALLIVATVVVAKLISALLIPKSRKRLPPTVKAF
ATS51G2 MDVXXKAFNAXFLLVATLLVAKLISALIIPRSKKRLPPTIKTF
desired output as "insertion-marked.txt"
ATC51G4 MDVDNKFFNVAL(0)LIVATVVVAKLISALLIPKSRKRLP(1)PTVKGF
ATA51G1 MDVXXKTFNAXFLLVATLLVAKLISALIIPRSKKRLP(1)PTIKAF
CTC51G5 MDVDNKFFNVALLIVATVVVAKLISALLIPKSRKRLP(1)PTVKAF
ATS51G2 MDVXXKAFNAXFLLVATLLVAKLISALIIPRSKKRLP(1)PTIKTF