File:Dna-SNP.svg
From Wikipedia, the free encyclopedia
Original file (SVG file, nominally 520 × 333 pixels, file size: 1.15 MB)
This is a file from the Wikimedia Commons. Information from its description page there is shown below. Commons is a freely licensed media file repository. You can help. |
Summary
DescriptionDna-SNP.svg |
English: A Single Nucleotide Polymorphism is a change of a nucleotide at a single base-pair location on DNA. Created using OpenSCAD v2021.01 and Inkscape v1.0.2. |
Date | |
Source | Own work |
Author | David Eccles (Gringer) |
Construction process
This file was derived from a 3D model of DNA, converted to SVG and coloured using David Eccles' STL2SVG script:
type=orig; ~/scripts/stl2svg.pl ./DNA_linear_complete_helix1.stl:330 ./DNA_linear_complete_helix2.stl:200 ./DNA_linear_complete_${type}_A.stl:140 ./DNA_linear_complete_${type}_C.stl:250 ./DNA_linear_complete_${type}_G.stl:90 ./DNA_linear_complete_${type}_T.stl:30 > out_${type}.svg type=mut; ~/scripts/stl2svg.pl ./DNA_linear_complete_helix1.stl:330 ./DNA_linear_complete_helix2.stl:200 ./DNA_linear_complete_${type}_A.stl:140 ./DNA_linear_complete_${type}_C.stl:250 ./DNA_linear_complete_${type}_G.stl:90 ./DNA_linear_complete_${type}_T.stl:30 > out_${type}.svg
The DNA models were then combined and annotated using Inkscape. The DNA backbone for the model is a pentagon extruded over a sine wave using David Eccles' guided path extrude script. The model source file (in OpenSCAD format) is shown below:
use <guided_extrude.scad>; hl = 100; // helix length hp = 33.2; // helix pitch [in angstroms] hr = 10; // helix radius [in angstroms] bbr = 1.5; // backbone radius loops = hl / hp; // random bases //bases = rands(0, 4, ceil(360 * loops / 34.3),1); // *GRINGENE* -- TAA GGN MGN ATH AAY GGN GAR AAY GAR TGA // -- TAA GGC AGG ATC AAC GGC GAG AAC GAG TGA // A = 0; G = 1; C = 2; T = 3 // [different from my usual order, // to simplify the 3D model logic] bases = [3,3,3, 1,1,2, 0,1,1, 0,3,2, 0,0,2, 1,1,2, 1,0,1, 0,0,2, 1,0,1, 3,1,0]; bAng = atan2(sin(120) - sin(0), cos(120) - cos(0)); drawMode = "all"; module lineTo(x1, x2){ hull(){ translate(x1) sphere(r=0.25, $fn=5); translate(x2) sphere(r=0.25, $fn=5); } } backbone_profile = [for(th = [0:72:359]) [bbr*cos(th), bbr*sin(th)*1]]; inc = floor($t * 30); thf = ($t * 30) - inc; h1limit = (360 * loops); h1jump = (360 * loops); helix_1 = [for(th = [(thf*34.3):(34.3/2):h1jump]) [hr * cos(th), hr * sin(th), hl * th / (360 * loops)]]; helix_2 = [for(th = [120:(34.3/2):(360 * loops+120)]) [hr * cos(th), hr * sin(th), hl * (th-120) / (360 * loops)]]; module purine(){ linear_extrude(height=0.75, center=true){ // average hydrogen bond length in water: 1.97 A // https://en.wikipedia.org/wiki/Hydrogen_bond#Structural_details translate([-0.985,0]) // scale: average of C-C and C=C bond length scale(1.435) translate([-2,0]) rotate(12) rotate(18){ rotate(-30) translate([1,0]) circle(r=1, $fn=6); color("blue") rotate(36) translate([-1 / (2*sin(36)),0]) circle(r=1 / (2*sin(36)), $fn=5); } } } module pyrimidine(){ linear_extrude(height=0.75, center=true){ // average hydrogen bond length in water: 1.97 A // https://en.wikipedia.org/wiki/Hydrogen_bond#Structural_details translate([-0.985,0]) scale(1.435) translate([-2, 0]) translate([1,0]) circle(r=1, $fn=6); } } $vpt = [0, 0, 0]; //$vpr = [310, 105, 10]; $vpr = [0, 0, 0]; rotate([310, 105, 130]) translate([0,0,-hl/2]) { if(drawMode == "all" || drawMode == "helix1") color("lightblue") mapExtrude("vertCylinder", backbone_profile, helix_1); if(drawMode == "all" || drawMode == "helix2") color("pink") mapExtrude("vertCylinder", backbone_profile, helix_2); for(thb = [inc:(360 * loops / 34.3 + inc)]) { thi = thb-inc; th = (thi-thf) * 34.3; thisBase = bases[floor(thb%30)]; doPur = (thisBase < 2); // base bond has a -1.2° angle; // not quite sure how to implement that baseFrac = (doPur ? 0.55 : 0.45); baseFInv = 1 - baseFrac; translate([0,0,hl * th / (360 * loops)]) rotate([-1.2,0,0]){ if(drawMode == "all" || drawMode == "helix2") color("pink") lineTo([hr * cos(th)*(baseFrac-0.15) + hr * cos(th+120) * (baseFrac+0.15), hr * sin(th)*(baseFrac-0.15) + hr * sin(th+120) * (baseFrac+0.15)], [hr * cos(th+120), hr * sin(th+120)]); if(th < (h1jump)) if(drawMode == "all" || drawMode == "helix1") color("lightblue") lineTo([hr * cos(th), hr * sin(th)], [hr * cos(th)*(baseFrac+0.15) + hr * cos(th+120) * (baseFrac-0.15), hr * sin(th)*(baseFrac+0.15) + hr * sin(th+120) * (baseFrac-0.15)]); if(drawMode == "all" || (drawMode == "A" && thisBase == 0) || (drawMode == "G" && thisBase == 1) || (drawMode == "C" && thisBase == 2) || (drawMode == "T" && thisBase == 3) ) color((thisBase < 1) ? "green" : (thisBase < 2) ? "gold" : (thisBase < 3) ? "blue" : "red") translate([hr * cos(th)*baseFrac + hr * cos(th+120) * baseFInv, hr * sin(th)*baseFrac + hr * sin(th+120) * baseFInv]) rotate(180 + bAng + th) if(doPur) { purine(); } else { pyrimidine(); }; if(drawMode == "all" || (drawMode == "A" && thisBase == 3) || (drawMode == "G" && thisBase == 2) || (drawMode == "C" && thisBase == 1) || (drawMode == "T" && thisBase == 0) ) if(th < (h1jump)) color((thisBase < 1) ? "red" : (thisBase < 2) ? "blue" : (thisBase < 3) ? "gold" : "green") translate([hr * cos(th)*baseFrac + hr * cos(th+120) * baseFInv, hr * sin(th)*baseFrac + hr * sin(th+120) * baseFInv]) rotate(bAng+th) if(doPur) { pyrimidine(); } else { purine(); }; } } if(drawMode == "all" || drawMode == "helix1") color("lightblue") { translate(helix_1[len(helix_1)-1]) sphere(r=bbr, $fn=5); translate(helix_1[0]) sphere(r=bbr, $fn=5); } if(drawMode == "all" || drawMode == "helix2") color("pink") { translate(helix_2[0]) sphere(r=bbr, $fn=5); translate(helix_2[len(helix_2)-1]) sphere(r=bbr, $fn=5); } }
Licensing
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation License.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
- You are free:
- to share – to copy, distribute and transmit the work
- to remix – to adapt the work
- Under the following conditions:
- attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
Items portrayed in this file
depicts
18 December 2014
image/svg+xml
File history
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 13:07, 8 May 2021 | 520 × 333 (1.15 MB) | Gringer | Update to slightly more accurate 3D model, showing base rings | |
21:50, 17 December 2014 | 457 × 298 (251 KB) | Gringer | Increase nominal size to something readable | ||
21:46, 17 December 2014 | 120 × 80 (244 KB) | Gringer | Updated to 3D model, different DNA sequence | ||
01:40, 6 July 2007 | 416 × 521 (59 KB) | Gringer | {{Information |Description=A Single Nucleotide Polymorphism is a change of a nucleotide at a single base-pair location on DNA. Created using Inkscape v0.45.1. [modified to remove long tails on DNA] |Source=self-made |Date=2007-07-06 |Author=David Hall (~~ | ||
00:56, 6 July 2007 | 471 × 521 (59 KB) | Gringer | {{Information |Description=A Single Nucleotide Polymorphism is a change of a nucleotide at a single base-pair location on DNA. Created using Inkscape v0.45.1. |Source=self-made |Date=2007-07-06 |Author=David Hall (~~~) |other_versions= }} |
File usage
- Evolution of the wolf
- Genealogical DNA test
- Haplogroup I-M253
- Haplotype
- Heather Dewey-Hagborg
- Human genetic variation
- Molecular models of DNA
- Single-nucleotide polymorphism
- Talk:DNA sequencing/Archive 1
- Talk:Molecular models of DNA/Galleries
- User:Bci2
- User:Bci2/Books/Wk2Book
- User:Bci2/Books/Wk3vol1
- User:Bci2/Books/Wk4
Global file usage
The following other wikis use this file:
- Usage on ar.wikipedia.org
- Usage on ast.wikipedia.org
- Usage on bs.wikipedia.org
- Usage on ca.wikipedia.org
- Usage on cs.wikipedia.org
- Usage on de.wikipedia.org
- Usage on el.wikipedia.org
- Usage on es.wikipedia.org
- Usage on et.wikipedia.org
- Usage on fa.wikipedia.org
- Usage on fi.wikipedia.org
- Usage on fr.wikipedia.org
- Usage on gl.wikipedia.org
- Usage on he.wikipedia.org
- Usage on hu.wikipedia.org
- Usage on it.wikipedia.org
- Usage on ja.wikipedia.org
- Usage on la.wikipedia.org
- Usage on mk.wikipedia.org
- Usage on ms.wikipedia.org
- Usage on nl.wikipedia.org
- Usage on no.wikipedia.org
- Usage on pl.wikipedia.org
- Usage on pt.wikipedia.org
- Usage on ro.wikipedia.org
- Usage on ru.wikipedia.org
View more global usage of this file.
Metadata
This file contains additional information, probably added from the digital camera or scanner used to create or digitize it.
If the file has been modified from its original state, some details may not fully reflect the modified file.
Width | 520 |
---|---|
Height | 332.93881 |