Nonsense-mediated Decay

March 12th, 2008

Nonsense mediated decay (NMD) is a cellular mechanism of mRNA surveillance to detect nonsense mutations and prevent the expression of truncated or erroneous proteins. NMD is triggered by exon-junction complexes (EJC), that have been formed during pre-RNA processing, being downstream of the nonsense codon. Normally, these EJCs are removed during the first round of translation of the mRNA, but in the case of a premature stop codon, they are still present on the mRNA. This is identified as a problem by NMD factors and the RNA is degraded, for example by the exosome complex. [Wikipedia]

General rule: Transcript are subject to NMD if there is a STOP in the coding sequence followed by >50bp of exonic DNA.

  • Measured after splicing.
  • <10% of genes have one or more 3'UTR exons, for 98% of these, the rule is still valid.

Example of clinical relevance:

Severe form (Duchenne) musclular dystrophy caused by STOP mutation that initiates NMD, milder (Becker) dystrophy is caused by other base-mutation.

Refs:

  • Nagy & Maquat 1998 "A rule for termination-codon position within intron-containing genes: when nonsense affects RNA abundance."
  • Green et al 2003 "Widespread predicted nonsense-mediated mRNA decay of alternatively-spliced transcripts..."

Currently only the HAVANA group at the Wellcome Trust Sanger Institute is doing a regular evidence-based genome annotation with NMD transcripts.

Perl Regex

March 6th, 2008

Some notes on using regular expressions to search / replace in Perl

check for match:

"Hello World" =~ m/World/;

replace parts:

$str = "Hello World";

$str =~ s/World/Moon/;

Meta characters:

    \	Quote/Escape the next metacharacter

    ^	Match the beginning of the line

    .	Match any character (except newline)

    $	Match the end of the line (or before newline at the end)

    |	Alternation

    ()	Grouping

    []	Character class

Quantifiers:

    *	   Match 0 or more times

    +	   Match 1 or more times

    ?	   Match 1 or 0 times

    {n}    Match exactly n times

    {n,}   Match at least n times

    {n,m}  Match at least n but not more than m times

Character classes & special escapes:

    \w	     Match a "word" character (alphanumeric plus "_")

    \W	     Match a non-"word" character

    \s	     Match a whitespace character

    \S	     Match a non-whitespace character

    \d	     Match a digit character

    \D	     Match a non-digit character

Modifiers:

    //i    search case insensitive

    //m    treat string as multiple lines

    //s    treat string as single line

    //x    extend patters allowing whitespace and comments

Reference Pages at perldoc.perl.org

.htaccess files

March 1st, 2008

Directing/securing your webserver with .htaccess files

Deny certain users:

Order allow, deny

Deny from 192.168.0.10

Deny from 212.155.

Deny from 1.2.3.4 5.6.7.8 127.0.0.1

Allow from all

Allow/Deny Directory listings:

Options +Indexes or

Options -Indexes

Optional:

IndexIgnore *.gif *.zip *.txt

Password-protect a folder:

AuthType Basic

AuthUserFile "/home/username/path_to_htpasswd/.htpasswd"

AuthName ├ČEnter valid username and password!├«

require valid-user

Use the Apache htpasswd programm or generate the password, e.g. here.

More here.

Using BioMart

February 29th, 2008

Using the Biomart perl API

check out code:

cvs -d :pserver:cvsuser@cvs.sanger.ac.uk:/cvsroot/biomart login

cvs -d :pserver:cvsuser@cvs.sanger.ac.uk:/cvsroot/biomart co -r release-0_6 biomart-perl

configure:

perl biomart-perl/bin/configure.pl -r biomart-perl/conf/registryDBPointer.xml

additional perl modules:

CGI-Session, Digest-SHA, Exception-Class, IO-Compress-Zlib, List-MoreUtils, Number-Format, Readonly, Template-Plugin-Number-Format, Template-Toolkit, Test-Exception, XML-Simple, Class-Data-Inheritable, Devel-StackTrace

registryDBPointer.xml:

<RegistryDBPointer

name = "central_registry"

host = "martdb.ensembl.org"

port = "3316" (old) or "5316" (new)

user = "anonymous"

password = ""

database = "central_registry"

schema = "central_registry"

databaseType = "mysql"

includeMarts = "msd,uniprot"

/>

ASCII character codes

February 29th, 2008

Codes useful when you need to escape specific ASCII characters:


Char	Octal	Dec	Hex	Description

SP	40	32	20	Space

!	41	33	21	Exclamation mark

"	42	34	22	Quotation mark (" in HTML)

#	43	35	23	Cross hatch (number sign)

$	44	36	24	Dollar sign

%	45	37	25	Percent sign

&	46	38	26	Ampersand

`	47	39	27	Closing single quote (apostrophe)

(	50	40	28	Opening parentheses

)	51	41	29	Closing parentheses

*	52	42	2a	Asterisk (star, multiply)

+	53	43	2b	Plus

,	54	44	2c	Comma

-	55	45	2d	Hyphen, dash, minus

.	56	46	2e	Period

/	57	47	2f	Slash (forward or divide)

0	60	48	30	Zero

1	61	49	31	One

2	62	50	32	Two

3	63	51	33	Three

4	64	52	34	Four

5	65	53	35	Five

6	66	54	36	Six

7	67	55	37	Seven

8	70	56	38	Eight

9	71	57	39	Nine

:	72	58	3a	Colon

;	73	59	3b	Semicolon

<	74	60	3c	Less than sign (< in HTML)

=	75	61	3d	Equals sign

>	76	62	3e	Greater than sign (> in HTML)

?	77	63	3f	Question mark

@	100	64	40	At-sign

A	101	65	41	Upper case A

B	102	66	42	Upper case B

C	103	67	43	Upper case C

D	104	68	44	Upper case D

E	105	69	45	Upper case E

F	106	70	46	Upper case F

G	107	71	47	Upper case G

H	110	72	48	Upper case H

I	111	73	49	Upper case I

J	112	74	4a	Upper case J

K	113	75	4b	Upper case K

L	114	76	4c	Upper case L

M	115	77	4d	Upper case M

N	116	78	4e	Upper case N

O	117	79	4f	Upper case O

P	120	80	50	Upper case P

Q	121	81	51	Upper case Q

R	122	82	52	Upper case R

S	123	83	53	Upper case S

T	124	84	54	Upper case T

U	125	85	55	Upper case U

V	126	86	56	Upper case V

W	127	87	57	Upper case W

X	130	88	58	Upper case X

Y	131	89	59	Upper case Y

Z	132	90	5a	Upper case Z

[	133	91	5b	Opening square bracket

\	134	92	5c	Backslash (Reverse slant)

]	135	93	5d	Closing square bracket

^	136	94	5e	Caret (Circumflex)

_	137	95	5f	Underscore

`	140	96	60	Opening single quote

a	141	97	61	Lower case a

b	142	98	62	Lower case b

c	143	99	63	Lower case c

d	144	100	64	Lower case d

e	145	101	65	Lower case e

f	146	102	66	Lower case f

g	147	103	67	Lower case g

h	150	104	68	Lower case h

i	151	105	69	Lower case i

j	152	106	6a	Lower case j

k	153	107	6b	Lower case k

l	154	108	6c	Lower case l

m	155	109	6d	Lower case m

n	156	110	6e	Lower case n

o	157	111	6f	Lower case o

p	160	112	70	Lower case p

q	161	113	71	Lower case q

r	162	114	72	Lower case r

s	163	115	73	Lower case s

t	164	116	74	Lower case t

u	165	117	75	Lower case u

v	166	118	76	Lower case v

w	167	119	77	Lower case w

x	170	120	78	Lower case x

y	171	121	79	Lower case y

z	172	122	7a	Lower case z

{	173	123	7b	Opening curly brace

|	174	124	7c	Vertical line

}	175	125	7d	Closing curly brace

~	176	126	7e	Tilde (approximate)

DEL	177	127	7f	Delete (rubout), cross-hatch box

Also see here for a list of additional symbols (non-english, math, etc) and the list of HTML codes.