<DIV>Dear all,</DIV>
<DIV> </DIV>
<DIV><!--StartFragment -->Sorry to bother you. I need some help on my code. I have an input file named</DIV>
<DIV>"origin8.txt" which holds 200 short sequences of width 8. My code <SPAN id=intelliTxt name="intelliTxt">is to use each</SPAN></DIV>
<DIV><SPAN name="intelliTxt">short sequence from "origin8.txt" as a <A class=iAs style="COLOR: darkgreen; BORDER-BOTTOM: darkgreen 1px solid; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" href="http://www.tek-tips.com/viewthread.cfm?qid=1099498&page=1#" target=_blank>template</A> to generate 100 short sequences of the same<BR>width and store them in a txt file A. </SPAN></DIV>
<P><SPAN name="intelliTxt">Then the code will read 100 short sequences from the txt file A and 100 long sequences of width 200 from a txt file B , and then replaced a substring of each long sequence using each short sequence. This code will lead to two txt files C and D. File C will hold 100 replaced long sequences. <BR><BR>In other words, I want to input "origin8.txt" to get 200 File D. </SPAN></P>
<P><SPAN name="intelliTxt">My code can generates 200 File D but each of them holds nothing. So I guess the problem is caused by a failure of passing the data to a subroutine named "make_file". </SPAN></P>
<P><SPAN name="intelliTxt">Can anybody suggest me how to modify that? Thank you very much in advance!</SPAN></P>
<P><SPAN name="intelliTxt">Sincerely,</SPAN></P>
<P><SPAN name="intelliTxt">     Alex</SPAN></P>
<P><SPAN name="intelliTxt"></SPAN> </P>
<P><SPAN name="intelliTxt"></SPAN> </P>
<P><SPAN name="intelliTxt"></SPAN> </P>
<P><SPAN name="intelliTxt">My code:</SPAN></P>
<P><SPAN name="intelliTxt"></SPAN> </P>
<P><SPAN name="intelliTxt">*******************************************************************</SPAN></P>
<P><SPAN name="intelliTxt"><!--StartFragment --> <SPAN id=intelliTxt name="intelliTxt">#!/usr/bin/perl<BR>use strict;<BR>use warnings;<BR>my (@origin, $y);<BR>my $N_Sequences = 100; <BR>my @Alphabet = split(//,'ACGT');      <BR>my $P_Consensus = 0.85;               # This is the probability of dominant letter<BR># ====== Globals ==========================<BR>my @Probabilities;                    # Stores the probability of each character<BR><BR><BR># ====== Program ==========================<BR><BR>open (ORIGIN, "< origin8.txt");       # This file holds 200 sequences used for motif template<BR>chomp (@origin = <ORIGIN>);<BR>close ORIGIN;<BR><BR>for ($y=0; $y<=$#origin; $y++) {<BR>  <BR><BR>    
 my
 @Motif = split(//,'$origin[$y]');     # This is a loop to get the motif template from origin8<BR>    open (OUT_NORM, ">short_sequences8_[$y].txt") or die "Unable to open file :$!";<BR>        for (my $i=0; $i < $N_Sequences; $i++) {<BR>            for (my $j=0; $j < scalar(@Motif); $j++)
 {<BR>                 loadConsensusCharacter($Motif[$j]);    <BR>                 addNoiseToDistribution();             <BR>                 convertToIntervals();<BR>                 print OUT_NORM
 (getRandomCharacter(rand(1.0)));<BR>                                                     }<BR>            print OUT_NORM
 "\n";<BR>            make_files();<BR>                                               }<BR>                              }<BR><BR>exit();<BR><BR># ====== Subroutines =======================<BR>#<BR>sub loadConsensusCharacter {<BR>    my ($char) = @_;<BR>    my $Found = 'FALSE';<BR><BR>    for (my $i=0; $i < scalar(@Alphabet); $i++) {<BR>        if ( $char eq $Alphabet[$i])
 {<BR>            $Probabilities[$i] = 1.0;<BR>            $Found = 'TRUE';<BR>        } else {<BR>            $Probabilities[$i] = 0.0;<BR>        }<BR>    }<BR>    if ($Found eq 'FALSE') {<BR>    die("Panic: Motif-Character\"$char\" was not found in Alphabet.<BR>Aborting.\n");<BR>    }<BR><BR>return();<BR>}<BR><BR># ==========================================<BR>sub addNoiseToDistribution {<BR><BR><BR>    my $P_NonConsensus = ( 1.0-$P_Consensus) / (scalar(@Alphabet) - 1);<BR><BR>    for (my $i=0; $i < scalar(@Probabilities); $i++) {<BR>        if ( $Probabilit
 ies[$i]
 == 1.0 ) {     <BR>            $Probabilities[$i] = $P_Consensus;<BR>        } else {<BR>            $Probabilities[$i] = $P_NonConsensus;<BR>        }<BR>    }<BR><BR>    return();<BR>}<BR><BR># ==========================================<BR>sub convertToIntervals {<BR><BR>    my $Sum = 0;<BR><BR>    for (my $i=1; $i < scalar(@Probabilities); $i++) {<BR>        $Probabilities[$i] += $Probabilities[$i-1];<BR>    }<BR><BR>    return();<BR>}<BR><BR># ==========================================<BR>sub getRandomCharacter {<BR><BR>    my ($RandomNumber) = @_;<BR>   &
 nbsp;my
 $i=0;<BR>    for ($i=0; $i < scalar(@Probabilities); $i++) {<BR>        if ($Probabilities[$i] > $RandomNumber) { last; }<BR>    }<BR><BR>    return($Alphabet[$i]);<BR>}<BR><BR># ==========================================<BR>sub make_files {<BR>my (@short, @long,$x,$r, $output_norm);<BR><BR>open (SHORT, "< short_sequences8_[$y].txt");<BR>chomp (@short = <SHORT>);<BR>close SHORT;<BR><BR>open (LONG, "< long_sequences.txt");<BR>chomp (@long = <LONG>);<BR>close LONG;<BR><BR>open (OUT_INITIAL,  "> output8_[$y]1.txt");<BR>open (OUT_REPLACED, "> output8_[$y]2.txt");<BR><BR>for ($x=0; $x<=$#short; $x++) {<BR>  $r=2;<BR>  print OUT_INITIAL ">SeqName$x\n$long[$x]\n";<BR>  print OUT_REPLACED "SeqName$x\n" . substr($long[$x], $r, length $short[$x]) . "\n";}<BR><BR><BR>close OUT_INITIAL;<BR>close
 OUT_REPLACED;<BR><BR>}</SPAN> </SPAN></P>
<P><SPAN name="intelliTxt">*******************************************************************</SPAN></P>
<P><SPAN name="intelliTxt"></SPAN> </P>
<P><SPAN name="intelliTxt"></SPAN> </P>
<P><SPAN name="intelliTxt">Input file "origin8.txt" holds 200 sequences as:</SPAN></P>
<P><SPAN name="intelliTxt"></SPAN> </P>
<P><SPAN name="intelliTxt"><!--StartFragment --> <SPAN id=intelliTxt
 name="intelliTxt">TTTATAAT<BR>TGTCAATG<BR>CGTTGATG<BR>CGTCCTAG<BR>GGCTTCCA<BR>ATTAGCCT<BR>GTCCTGAT<BR>TGTAAATC<BR>CGCTTATT<BR>TTGACATA<BR>CCTGATAT<BR>ATGAATCG<BR>CGTCCGAT<BR>TGGCCCAT<BR>ATCCTGAT<BR>TGCCCATT<BR>CCCTAACT<BR>AAAAAAAA<BR>TTTTTTTT<BR>CCCCCCCC<BR>GGGGGGGG<BR>AAAAAAAT<BR>AAAAAAAG<BR>AAAAAAAC<BR>AAAAAACC<BR>AAAAAATT<BR>AAAAAAGG<BR>AAAAAACT<BR>AAAAAACG<BR>AAAAAACA<BR>AAAAACAA<BR>AAAACAAA<BR>AAACAAAA<BR>AACAAAAA<BR>ACAAAAAA<BR>CAAAAAAA<BR>AAAAAATA<BR>AAAAATAA<BR>AAAATAAA<BR>AAATAAAA<BR>AATAAAAA<BR>ATAAAAAA<BR>TAAAAAAA<BR>AAAAAAGA<BR>AAAAAGAA<BR>AAAAGAAA<BR>AAAGAAAA<BR>AAGAAAAA<BR>AGAAAAAA<BR>GAAAAAAA<BR>AAAACCAA<BR>AACCAAAA<BR>CCAAAAAA<BR>AAAATTAA<BR>AATTAAAA<BR>TTAAAAAA<BR>AAAAACCC<BR>AAAACCCA<BR>AAACCCAA<BR>AACCCAAA<BR>ACCCAAAA<BR>CCCAAAAA<BR>AAAAATTT<BR>AAAATTTA<BR>AAATTTAA<BR>AATTTAAA<BR>ATTTAAAA<BR>TTTAAAAA<BR>AAAAAGGG<BR>AAAAGGGA<BR>AAAGGGAA<BR>AAGGGAAA<BR>AGGGAAAA<BR>GGGAAAAA<BR>AAAACCCC<BR>AAACCCCA<BR>AACCCCAA<BR>ACCCCAAA<BR>CCCCAAAA<BR>AAAATTTT<BR>AAATTTTA<BR
 >AATTTTA
A<BR>ATTTTAAA<BR>TTTTAAAA<BR>AAAAGGGG<BR>AAAGGGGA<BR>AAGGGGAA<BR>AGGGGAAA<BR>GGGGAAAA<BR>AAACCCCC<BR>AACCCCCA<BR>ACCCCCAA<BR>CCCCCAAA<BR>AAATTTTT<BR>AATTTTTA<BR>ATTTTTAA<BR>TTTTTAAA<BR>AAAGGGGG<BR>AAGGGGGA<BR>AGGGGGAA<BR>GGGGGAAA<BR>AAGGGGGG<BR>AGGGGGGA<BR>GGGGGGAA<BR>AACCCCCC<BR>ACCCCCCA<BR>CCCCCCAA<BR>AATTTTTT<BR>ATTTTTTA<BR>TTTTTTAA<BR>ATTTTTTT<BR>TTTTTTTA<BR>ACCCCCCC<BR>CCCCCCCA<BR>AGGGGGGG<BR>GGGGGGGA<BR>ATTTTTTT<BR>TTTTTTTA<BR>ATAAAATA<BR>AATAAATA<BR>AAATAATA<BR>AAAATATA<BR>ACAAAACA<BR>AACAAACA<BR>AAACAACA<BR>AAAACACA<BR>AGAAAAGA<BR>AAGAAAGA<BR>AAAGAAGA<BR>AAAAGAGA<BR>ATAAAAGA<BR>ATAAAACA<BR>AGAAAATA<BR>AGAAAACA<BR>ACAAAAGA<BR>ACAAAATA<BR>ATTAAATA<BR>AATTAATA<BR>AAATTATA<BR>ACCAAACA<BR>AACCAACA<BR>AAACCACA<BR>AGGAAAGA<BR>AAGGAAGA<BR>AAAGGAGA<BR>ATTTAATA<BR>AATTTATA<BR>ACCCAACA<BR>AACCCACA<BR>AGGGAAGA<BR>AAGGGAGA<BR>ATTTAACA<BR>ATTTAAGA<BR>AATTTACA<BR>AATTTAGA<BR>ACCCAATA<BR>ACCCAAGA<BR>AACCCATA<BR>AACCCAGA<BR>AGGGAACA<BR>AGGGAATA<BR>AAGGGATA<BR>AAGGGACA<BR>TTGGGACA<BR>C
 CGGGACA<
BR>AGAAGGGA<BR>TGCCCATA<BR>TAAAAAAT<BR>TGCCTATA<BR>CCGTAGTC<BR>ACTTGACT<BR>CTGATCCC<BR>TGTGACTA<BR>CCTGATCC<BR>CCTGAACC<BR>TGATCACG<BR>GGGTAACC<BR>CTTTTGAA<BR>TTGTATGA<BR>CCTGATAA<BR>CTGGTTAG<BR>CCCCGACC<BR>TTGGGGAC<BR>GGTTTGAC<BR>GCTTAGAC<BR>GTTACACC<BR>TTGTACCA<BR>TGGTACCA<BR>CCGTACAT<BR>CCCTTGCC<BR>GTGTTGGT<BR>ATCGATCG<BR>ACGTACGT<BR>TCAGTCAG<BR>GCTATACG<BR>GTCCATAC<BR>CCGTCCGT<BR>ATATATCC<BR>GTGTCCCC</SPAN> </SPAN></P><p>
                <hr size=1>Yahoo! Mail for Mobile<br> 
<a href="http://us.rd.yahoo.com/evt=31132/*http://mobile.yahoo.com/learn/mail">Take Yahoo! Mail with you!</a> Check email on your mobile phone.