A.13 Binding Operators


Binding operators are used for pattern matching, substitution, and transliteration on strings. They are used with regular expressions that specify the patterns:

 'ACGTACGTACGTACGT' =~ /CTA/ 

The pattern is the string CTA , enclosed by forward slashes . The string binding operator is =~ ; it tells the program which string to search, returning true if the pattern appears in the string.

!~ is another string binding operator; it returns true if the pattern isn't in the string:

 'ACGTACGTACGTACGT' !~ /CTA/ 

This is equivalent to:

 not 'ACGTACGTACGTACGT' =~ /CTA/ 

You can substitute one pattern for another using the string binding operator. In the next example, s/thine/nine/ is the substitution command, which substitutes the first occurrence of thine with the string nine :

 $poor_richard = 'A stitch in time saves thine.'; $poor_richard =~ s/thine/nine/; print $poor_richard; 

This produces the output:

 A stitch in time saves nine. 

Finally, the transliteration (or translate) operator tr substitutes characters in a string. It has several uses, but the two uses I've covered are first, to change bases to their complements A T, C G, G C, and T A:

 $DNA = 'ACGTTTAA'; $DNA =~ tr/ACGT/TGCA/; 

This produces the value:

 TGCAAATT 

Second, the tr operator counts the number of a particular character in a string, as in this example which counts the number of Gs in a string of DNA sequence data:

 $DNA = 'ACGTTTAA'; $count = ($DNA =~ tr/A//); print $count; 

This produces the value 3; it shows that a pattern match can return a count of the number of translations made in a string, which is then assigned to the variable $count .



Mastering Perl for Bioinformatics
Mastering Perl for Bioinformatics
ISBN: 0596003072
EAN: 2147483647
Year: 2003
Pages: 156

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net