קובץ:Dna-SNP.svg

תוכן הדף אינו נתמך בשפות אחרות.
מתוך ויקיפדיה, האנציקלופדיה החופשית

לקובץ המקורי(קובץ SVG, הגודל המקורי: 520 × 333 פיקסלים, גודל הקובץ: 1.15 מ"ב)

ויקישיתוף זהו קובץ שמקורו במיזם ויקישיתוף. תיאורו בדף תיאור הקובץ המקורי (בעברית) מוצג למטה.

תקציר

תיאור
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);
  }
}

רישיון

אני, בעל זכויות היוצרים על היצירה הזאת, מפרסם אותה בזאת תחת הרישיונות הבאים:
GNU head מוענקת בכך הרשות להעתיק, להפיץ או לשנות את המסמך הזה, לפי תנאי הרישיון לשימוש חופשי במסמכים של גנו, גרסה 1.2 או כל גרסה מאוחרת יותר שתפורסם על־ידי המוסד לתוכנה חופשית; ללא פרקים קבועים, ללא טקסט עטיפה קדמית וללא טקסט עטיפה אחורית. עותק של הרישיון כלול בפרק שכותרתו הרישיון לשימוש חופשי במסמכים של גנו.
w:he:Creative Commons
ייחוס
הקובץ הזה מתפרסם לפי תנאי רישיון קריאייטיב קומונז ייחוס 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)

פריטים שמוצגים בקובץ הזה

מוצג

image/svg+xml

היסטוריית הקובץ

ניתן ללחוץ על תאריך/שעה כדי לראות את הקובץ כפי שנראה באותו זמן.

תאריך/שעהתמונה ממוזערתממדיםמשתמשהערה
נוכחית16:07, 8 במאי 2021תמונה ממוזערת לגרסה מ־16:07, 8 במאי 2021‪333 × 520‬ (1.15 מ"ב)GringerUpdate to slightly more accurate 3D model, showing base rings
00:50, 18 בדצמבר 2014תמונה ממוזערת לגרסה מ־00:50, 18 בדצמבר 2014‪298 × 457‬ (251 ק"ב)GringerIncrease nominal size to something readable
00:46, 18 בדצמבר 2014תמונה ממוזערת לגרסה מ־00:46, 18 בדצמבר 2014‪80 × 120‬ (244 ק"ב)GringerUpdated to 3D model, different DNA sequence
04:40, 6 ביולי 2007תמונה ממוזערת לגרסה מ־04:40, 6 ביולי 2007‪521 × 416‬ (59 ק"ב)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 (~~
03:56, 6 ביולי 2007תמונה ממוזערת לגרסה מ־03:56, 6 ביולי 2007‪521 × 471‬ (59 ק"ב)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= }}

הדף הבא משתמש בקובץ הזה:

שימוש גלובלי בקובץ

אתרי הוויקי השונים הבאים משתמשים בקובץ זה:

צפו בשימושים בקובץ זה במיזמי ויקימדיה נוספים.

מטא־נתונים