Fájl:Dna-SNP.svg
Innen: testwiki
Ugrás a navigációhoz
Ugrás a kereséshez
Ennek a(z) SVG fájlnak ezen PNG formátumú előnézete: 520 × 333 képpont. További felbontások: 320 × 205 képpont | 640 × 410 képpont | 1 024 × 656 képpont | 1 280 × 820 képpont | 2 560 × 1 639 képpont.
Eredeti fájl (SVG fájl, névlegesen 520 × 333 képpont, fájlméret: 1,15 MB)
Ez a fájl a Wikimedia Commons megosztott tárhelyről származik, és más projektek is használhatják. A fájl ottani leírólapjának másolata alább látható.
Összefoglaló
| LeírásDna-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. |
| Dátum | |
| Forrás | A feltöltő saját munkája |
| Szerző | 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);
}
}
Licenc
Én, e mű szerzője a művemet az alábbi licencek alatt teszem közzé:
| Ez a fájl szabadon másolható, terjeszthető és/vagy módosítható a GNU Szabad Dokumentációs Licenc feltételei alapján, az 1.2 vagy későbbi, a Free Software Foundation által publikált Nem Változtatható szakaszok, Címlapszövegek és Hátlapszövegek nélküli változat szerint. E licenc egy példánya a GNU Szabad Dokumentációs Licenc című fejezetben olvasható.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
Ez a fájl a Creative Commons Nevezd meg! 4.0 Nemzetközi licenc alapján használható fel.
Így nevezd meg:
SNP model by David Eccles (gringer)
- A következőket teheted a művel:
- megoszthatod – szabadon másolhatod, terjesztheted, bemutathatod és előadhatod a művet
- feldolgozhatod – származékos műveket hozhatsz létre
- Az alábbi feltételekkel:
- Nevezd meg! – A szerzőt megfelelően fel kell tüntetned, hivatkozást kell létrehoznod a licencre és jelezned kell, ha a művön változtatást hajtottál végre. Ezt bármilyen észszerű módon megteheted, kivéve oly módon, ami azt sugallná hogy a jogosult támogat téged vagy a felhasználásod körülményeit.
A mű a fenti licencek bármelyike szerint felhasználható.
Képaláírások
Adj meg egy egysoros magyarázatot arról, hogy mit mutat be ez a fájl
DNA sequence variation in a population. A SNP is just a single nucleotide difference in the genome. The upper DNA molecule differs from the lower DNA molecule at a single base-pair location (a G/A polymorphism)
A fájl által ábrázolt elemek
mű tárgya
Valamilyen, Wikidata-elemmel nem rendelkező érték
18. december 2014
image/svg+xml
1 203 312 byte
333 képpont
520 képpont
80e2618911371d2da8252d8edc5d36cf8c929c94
Fájltörténet
Kattints egy időpontra, hogy a fájl akkori állapotát láthasd.
| Dátum/idő | Bélyegkép | Felbontás | Feltöltő | Megjegyzés | |
|---|---|---|---|---|---|
| aktuális | 2021. május 8., 14:07 | 520 × 333 (1,15 MB) | wikimediacommons>Gringer | Update to slightly more accurate 3D model, showing base rings |
Fájlhasználat
Az alábbi lap használja ezt a fájlt:
A lap eredeti címe: „https://hu.wiki.beta.math.wmflabs.org/wiki/Fájl:Dna-SNP.svg”