Податотека:Dna-SNP.svg
Од testwiki
Прејди на прегледникот
Прејди на пребарувањето
Големина на овој PNG-преглед на оваа SVG-податотека: 520 × 333 пиксели. Други разделности: 320 × 205 пиксели | 640 × 410 пиксели | 1.024 × 656 пиксели | 1.280 × 820 пиксели | 2.560 × 1.639 пиксели.
Изворна податотека (SVG податотека, номинално 520 × 333 пиксели, големина: 1,15 МБ)
Оваа податотека е од Ризницата и може да се користи во други проекти. Описот од нејзината описна страница е прикажан подолу.
Опис
| ОписDna-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. |
| Датум | |
| Извор | сопствено дело |
| Автор | 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);
}
}
Лиценцирање
Јас, праводржецот на ова дело, со ова го објавувам истото под следниве лиценци:
| Се дава дозвола за умножување, распространување и/или менување на овој документ под условите на ГНУ-овата лиценца за слободна документација, само Верзија 1.2 или било која понова верзија објавена од Фондацијата за слободна програмска опрема; без неменливи делови и без текстови на предни и задни корици. Примерок од лиценцата ќе најдете во делот наречен ГНУ-ова лиценца за слободна докуменација.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
Оваа податотека е под лиценцата Криејтив комонс Наведи извор 4.0 Меѓународна.
Припис:
SNP model by David Eccles (gringer)
- Можете:
- да споделите – да го умножувате, распространувате и емитувате делото
- да преработувате – да преработувате
- Под следните услови:
- наведи извор – Ќе мора да дадете прикладен припис, да ставите врска до лиценцата и да укажете дали има направено промени. Ова може да биде направено на било кој разумен начин, но без да оддава впечаток дека лиценцодавецот стои зад Вас и Вашата употреба.
Одберете лиценца по ваш избор.
Описи
Опишете во еден ред што претставува податотекава
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)
Предмети прикажани на податотекава
прикажува
Некоја вредност без предмет на Википодатоци
18 декември 2014
image/svg+xml
1.203.312 Бајт
333 пиксел
520 пиксел
80e2618911371d2da8252d8edc5d36cf8c929c94
Историја на податотеката
Стиснете на датум/време за да ја видите податотеката како изгледала тогаш.
| Датум/време | Минијатура | Димензии | Корисник | Коментар | |
|---|---|---|---|---|---|
| тековна | 14:07, 8 мај 2021 | 520 × 333 (1,15 МБ) | wikimediacommons>Gringer | Update to slightly more accurate 3D model, showing base rings |
Употреба на податотеката
Податотекава се користи во следнава страница: