RNA

  • RNA in 60 seconds or less
  • No complement

Next


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


CREATE OR REPLACE FUNCTION good_rna(VARCHAR)
  RETURNS BOOLEAN AS '
BEGIN
IF length(substring($1 FROM \'[^AUGC]\')) THEN
  RAISE EXCEPTION \'RNA must be one of A, U, C, G\';
END IF;
RETURN true;
END;
' LANGUAGE plpgsql;

CREATE DOMAIN rnabasepair VARCHAR CHECK (good_rna(VALUE));

Next


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


CREATE OR REPLACE FUNCTION dna_rna_match(dnabasepair, rnabasepair)
RETURNS BOOLEAN AS'
DECLARE
 dna ALIAS FOR $1;
 rna ALIAS FOR $2;
BEGIN
IF (rna = TRANSLATE(dna, \'ATCG\',\'UAGC\')) THEN
  RETURN TRUE;
END IF;
  RETURN FALSE;
END;
' LANGUAGE plpgsql;

oscon=> SELECT dna_rna_match('CG','GC');
 rna_dna_match
---------------
 t


oscon=> SELECT dna_rna_match('AA','TT');
ERROR:  RNA must be one of A, U, C, G

oscon=> SELECT dna_rna_match('AA','UU');
 dna_rna_match
---------------
 t

Next


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


CREATE OPERATOR = (
  leftarg = dnabasepair,
  rightarg = rnabasepair,
  procedure = dna_rna_match
);

Next


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


oscon=> SELECT 'CC'::dnabasepair ~ 'GG'::rnabasepair;
 ?column?
----------
 t

 
oscon=> SELECT 'CC'::dnabasepair ~ 'GGA'::rnabasepair;
 ?column?
----------
 f

Next


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


CREATE OR REPLACE FUNCTION rna_dna_match(rnabasepair, dnabasepair)
RETURNS BOOLEAN AS '
SELECT dna_rna_match($2,$1);
' LANGUAGE SQL;

Next


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


CREATE OPERATOR = (
  leftarg = rnabasepair,
  rightarg = dnabasepair,
  procedure = rna_dna_match
);

Next


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

CREATE OR REPLACE FUNCTION dna_binds_rna(dnabasepair, rnabasepair)
RETURNS INTEGER AS'
DECLARE
  dna ALIAS FOR $1;
  rna ALIAS FOR $2;

BEGIN

  RETURN POSITION(rna IN TRANSLATE(dna, \'ATCG\', \'UAGC\'));
  END;
' LANGUAGE plpgsql;

oscon=> SELECT dna_binds_rna('AATTCC','GGG');

 dna_binds_rna
---------------
             0


oscon=> SELECT dna_binds_rna('AATTCC','G');

 dna_binds_rna
---------------
             5

Next


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


CREATE OPERATOR =~ (
  leftarg = dnabasepair,
  rightarg = rnabasepair,
  procedure = dna_binds_rna
);

oscon=> SELECT 'AATTCC' =~ 'GGG';

 ?column?
----------
        0

 
oscon=> SELECT 'AATTCC' =~ 'GG';

 ?column?
----------
        5


Next


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


oscon=> SELECT 'ATC' =~ '2529DF6AB8F79407E944 45B4BC9B906714964AC8';
ERROR:  RNA must be one of A, U, C< or G


      Last             TOC             Next