Average molecular weight of a DNA base pair
Paul N Hengen
pnh at cockleberry.ncifcrf.gov
Wed Jul 17 12:14:47 EST 1996
Paul N Hengen (pnh at cockleberry.ncifcrf.gov) wrote:
> Many of the biotech. company catalogues (e.g. New England BioLabs, MBI
> Fermentas) include useful appendices which include as estimate of the
> molecular weight of single and double stranded DNA (sodium salts). For
> double stranded DNA I have seen values of 649, 650 and 660 per bp. Does
> anyone have an original reference to these numbers, or can derive them
> from the average molecular weight of a base pair?
: I think they add the 4 bases and divide by 4, then multiply this by the length
: of DNA in bases, a very crude method of calculating the MW of a dsDNA. If you
: know the number of As Cs Gs and Ts, or just the number of GC and AT pairs for
: that matter, you can do a much more accurate determination of MW. The following
: program can help you do it with minimal brain power ;-) If you don't want to
: compile it, just look at the description for the simple math stuff and do it
: on paper.
Sorry for the clutter....
Here is a cleaner version of the program for anyone reading through NetScape:
--
program dnamwt(input, report, output);
(* dnamwt: calculate the molecular weight of a DNA molecule
Paul N. Hengen and Tom Schneider
National Cancer Institute
Laboratory of Mathematical Biology
NCI/FCRDC Bldg 469. Room 144
P.O. Box B
Frederick, MD 21702-1201
(301) 846-5581 (-5532 for messages)
e-mail: pnh at ncifcrf.gov and toms at ncifcrf.gov
*)
label 1; (* end of program *)
const
(* begin module version *)
version = 1.08; (* of dnamwt.p 1995 July 20
origin 1995 July 14 *)
(* end module version *)
(* begin module describe.dnamwt *)
(*
name
dnamwt: calculate the molecular weight of a DNA molecule
synopsis
dnamwt(input: in, report: out, output: out)
files
input: user input
report: output file with calculated weight
output: output file with calculated weight
description
This program is used to calculate the molecular weight of DNA
examples
The molecular weights of the monophosporylated nucleotides are:
A = 331.2
C = 307.2
G = 347.2
T = 322.2
When polymerized, each nucleotide will lose a water molecule of 18.0,
and not considering methylation of any bases, the molecular weight of
each will be;
A = 313.2
C = 289.2
G = 329.2
T = 304.2
But, we'll have to add back two hydroxide ions, one for each strand polymerized,
which is 17.0 x 2 = 34.0 PLUS 2.0 for the two extra hydrogen ions subtracted earlier.
If you only know the sequence of one strand, and want to know
the molecular weight of the entire double-stranded DNA:
MW of strand1 = #A(313.2) + #C(289.2) + #G(329.2) + #T(304.2) + 18.0
PLUS
MW of strand2 = #A(304.2) + #C(329.2) + #G(289.2) + #T(313.2) + 18.0
Therefore the overall MW is
#A(313.2 + 304.2) + #C(289.2 + 329.2)
+ #G(329.2 + 289.2) + #T(304.2 + 313.2)
+ 36.0
---------------------------------------
OR
#A(617.4) + #C(618.4) + #G(618.4) + #T(617.4) + 36.0
OR
617.4(#T + #A) + 618.4(#C + #G) + 36.0
OR
If you know the %GC of the single stranded sequence,
MW in daltons for the double stranded DNA would be =
(%GC * total length) (100-%GC * total length)
-------------------- (618.4) + ------------------------ (617.4) + 36.0
100 100
documentation
Other sources of information or documents on the program.
see also
author
Paul N. Hengen and Thomas Dana Schneider
bugs
technical notes
*)
(* end module describe.dnamwt *)
(* begin module dnamwt.const *)
(* molecular weights of all the deoxynucleotides with a single phosphate
and H2O removed *)
awt = 313.2;
cwt = 289.2;
gwt = 329.2;
twt = 304.2;
(* end module dnamwt.const *)
var
report: text; (* file used by this program *)
(* begin module halt *)
procedure halt;
(* stop the program. the procedure performs a goto to the end of the
program. you must have a label:
label 1;
declared, and also the end of the program must have this label:
1: end.
examples are in the module libraries.
this is the only goto in the delila system. *)
begin
writeln(output,' program halt.');
goto 1
end;
(* end module halt version = 'delmod 6.16 84 mar 12 tds/gds'; *)
(* begin module dnamwt.themain *)
procedure themain(var report: text);
(* the main procedure of the program *)
var
ano: integer; (* number of a's in the sequence *)
cno: integer; (* number of c's in the sequence *)
gno: integer; (* number of g's in the sequence *)
tno: integer; (* number of t's in the sequence *)
total: integer; (* total number of bases in the sequence *)
c: char; (* a character *)
strand1: real; (* strand 1 molecular weight *)
strand2: real; (* strand 2 molecular weight *)
procedure getbase(var report: text; xchar: char; var xno: integer);
(* get the number of base x and write it to the report file *)
begin
write(output,'number of ',xchar,'''s in strand 1 of the sequence: ');
readln(input, xno);
writeln(report,'the number of ',xchar,
'''s in strand 1 of the sequence is: ',xno:1);
end;
begin
writeln(output,'dnamwt ',version:4:2);
rewrite(report);
writeln(report,'dnamwt ',version:4:2);
getbase(report,'A',ano);
getbase(report,'C',cno);
getbase(report,'G',gno);
getbase(report,'T',tno);
strand1 := ano*awt + cno*cwt + gno*gwt + tno*twt + 18.0;
strand2 := ano*twt + cno*gwt + gno*cwt + tno*awt + 18.0;
total := ano + cno + gno + tno;
writeln(report,'total number of bases: ',total);
writeln(report,'strand 1 molecular weight: ',strand1:4:1,' daltons');
writeln(report,'strand 2 molecular weight: ',strand2:4:1,' daltons');
writeln(report,'total molecular weight: ',(strand1+strand2):4:1,' daltons');
writeln(report,'% GC: ',(100*(gno+cno)/(ano+cno+gno+tno)):4:1);
(* show the report *)
writeln(output);
reset(report);
while not eof(report) do begin
while not eoln(report) do begin
read(report, c);
write(output, c);
end;
readln(report);
writeln(output);
end;
end;
(* end module dnamwt.themain *)
begin
themain(report);
1: end.
--
*******************************************************************************
* Paul N. Hengen, Ph.D. /--------------------------/*
* National Cancer Institute |Internet: pnh at ncifcrf.gov |*
* Laboratory of Mathematical Biology | Phone: (301) 846-5581 |*
* Frederick Cancer Research and Development Center| FAX: (301) 846-5598 |*
* Frederick, Maryland 21702-1201 USA /--------------------------/*
* - - - Methods FAQ list -> ftp://ftp.ncifcrf.gov/pub/methods/FAQlist - - - *
* - TIBS column archive -> http://www-lmmb.ncifcrf.gov/~pnh/readme.html - - *
* - The BEST Molecular Biology HomePage -> http://www-lmmb.ncifcrf.gov/~pnh/ *
*******************************************************************************
More information about the Methods
mailing list