newtoperlprog has asked for the wisdom of the Perl Monks concerning the following question:
Dear All
I am trying to output a sequence file with some region bold and colored red using perl script.
Below is my script and files
#!/usr/bin/perl use strict; use warnings; use Term::ANSIColor; my $file = $ARGV[0]; if (@ARGV < 1){ print STDERR "Usage: $0 input_fasta_file\n"; exit 1; } my ($header, $sequence); open (A, "<", $file) or die "Check the file: $!"; while (my $line = <A>){ chomp $line; if ($line =~ /^(>.*)/){ $header = $1; } else{ $sequence .= $line; } } close (A); $sequence =~s/[\n\s]//; my @sequence = split ("", $sequence); #print "@sequence\n"; my @position; my $pos_file = "sorted_position_walk.txt"; open (A, "<", $pos_file) or die "Check the file: $!"; while (my $line = <A>){ chomp $line; my $pos = (split /\t/,$line)[0]; push(@position, $pos); } for (my $i=0;$i<=scalar(@sequence);$i++){ foreach my $value(@position){ if($value eq $sequence[$i]){ my $colortext = colored (($value+18), 'bold red'); print "$sequence[$i]\n"; } } }
Fasta file: >gi|292658763|ref|NM_014143.3| Homo sapiens CD274 molecule (CD274), tr +anscript variant 1, mRNA GGCGCAACGCTGAGCAGCTGGCGCGTCCCGCGCGGCCCCAGTTCTGCGCAGCTTCCCGAGGCTCCGCACC AGCCGCGCTTCTGTCCGCCTGCAGGGCATTCCAGAAAGATGAGGATATTTGCTGTCTTTATATTCATGAC CTACTGGCATTTGCTGAACGCATTTACTGTCACGGTTCCCAAGGACCTATATGTGGTAGAGTATGGTAGC AATATGACAATTGAATGCAAATTCCCAGTAGAAAAACAATTAGACCTGGCTGCACTAATTGTCTATTGGG AAATGGAGGATAAGAACATTATTCAATTTGTGCATGGAGAGGAAGACCTGAAGGTTCAGCATAGTAGCTA CAGACAGAGGGCCCGGCTGTTGAAGGACCAGCTCTCCCTGGGAAATGCTGCACTTCAGATCACAGATGTG AAATTGCAGGATGCAGGGGTGTACCGCTGCATGATCAGCTATGGTGGTGCCGACTACAAGCGAATTACTG TGAAAGTCAATGCCCCATACAACAAAATCAACCAAAGAATTTTGGTTGTGGATCCAGTCACCTCTGAACA TGAACTGACATGTCAGGCTGAGGGCTACCCCAAGGCCGAAGTCATCTGGACAAGCAGTGACCATCAAGTC CTGAGTGGTAAGACCACCACCACCAATTCCAAGAGAGAGGAGAAGCTTTTCAATGTGACCAGCACACTGA GAATCAACACAACAACTAATGAGATTTTCTACTGCACTTTTAGGAGATTAGATCCTGAGGAAAACCATAC AGCTGAATTGGTCATCCCAGAACTACCTCTGGCACATCCTCCAAATGAAAGGACTCACTTGGTAATTCTG GGAGCCATCTTATTATGCCTTGGTGTAGCACTGACATTCATCTTCCGTTTAAGAAAAGGGAGAATGATGG ATGTGAAAAAATGTGGCATCCAAGATACAAACTCAAAGAAGCAAAGTGATACACATTTGGAGGAGACGTA ATCCAGCATTGGAACTTCTGATCTTCAAGCAGGGATTCTCAACCTGTGGTTTAGGGGTTCATCGGGGCTG AGCGTGACAAGAGGAAGGAATGGGCCCGTGGGATGCAGGCAATGTGGGACTTAAAAGGCCCAAGCACTGA AAATGGAACCTGGCGAAAGCAGAGGAGGAGAATGAAGAAAGATGGAGTCAAACAGGGAGCCTGGAGGGAG ACCTTGATACTTTCAAATGCCTGAGGGGCTCATCGACGCCTGTGACAGGGAGAAAGGATACTTCTGAACA AGGAGCCTCCAAGCAAATCATCCATTGCTCATCCTAGGAAGACGGGTTGAGAATCCCTAATTTGAGGGTC AGTTCCTGCAGAAGTGCCCTTTGCCTCCACTCAATGCCTCAATTTGTTTTCTGCATGACTGAGAGTCTCA GTGTTGGAACGGGACAGTATTTATGTATGAGTTTTTCCTATTTATTTTGAGTCTGTGAGGTCTTCTTGTC ATGTGAGTGTGGTTGTGAATGATTTCTTTTGAAGATATATTGTAGTAGATGTTACAATTTTGTCGCCAAA CTAAACTTGCTGCTTAATGATTTGCTCACATCTAGTAAAACATGGAGTATTTGTAAGGTGCTTGGTCTCC TCTATAACTACAAGTATACATTGGAAGCATAAAGATCAAACCGTTGGTTGCATAGGATGTCACCTTTATT TAACCCATTAATACTCTGGTTGACCTAATCTTATTCTCAGACCTCAAGTGTCTGTGCAGTATCTGTTCCA TTTAAATATCAGCTTTACAATTATGTGGTAGCCTACACACATAATCTCATTTCATCGCTGTAACCACCCT GTTGTGATAACCACTATTATTTTACCCATCGTACAGCTGAGGAAGCAAACAGATTAAGTAACTTGCCCAA ACCAGTAAATAGCAGACCTCAGACTGCCACCCACTGTCCTTTTATAATACAATTTACAGCTATATTTTAC TTTAAGCAATTCTTTTATTCAAAAACCATTTATTAAGTGCCCTTGCAATATCAATCGCTGTGCCAGGCAT TGAATCTACAGATGTGAGCAAGACAAAGTACCTGTCCTCAAGGAGCTCATAGTATAATGAGGAGATTAAC AAGAAAATGTATTATTACAATTTAGTCCAGTGTCATAGCATAAGGATGATGCGAGGGGAAAACCCGAGCA GTGTTGCCAAGAGGAGGAAATAGGCCAATGTGGTCTGGGACGGTTGGATATACTTAAACATCTTAATAAT CAGAGTAATTTTCATTTACAAAGAGAGGTCGGTACTTAAAATAACCCTGAAAAATAACACTGGAATTCCT
Sorted_position_walk.txt 88 91 92 94 101 113 114 121 122 124 125 126 134 140 146 148 153 159 171 173 183
The final output I am trying to get is to bold and red for the regions which matches the sorted_position_walk.txt file (match number + 18) so total of 19 characters bold and red. For exapmple, in the final output the sequence should have regions from position number 88 +18 as bold and red and so on.
I am also trying to get the output saved in a text file with the formatting of bold and red saved.
Any help and direction will be greatly appreciated.
Regards
|
---|