<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.