ไฟล์:Dna-SNP.svg

ไม่รองรับเนื้อหาของหน้าในภาษาอื่น
จากวิกิพีเดีย สารานุกรมเสรี

ดูภาพที่มีความละเอียดสูงกว่า((ไฟล์ SVG, 520 × 333 พิกเซล, ขนาดไฟล์: 1.15 เมกะไบต์))

Wikimedia Commons logo รูปภาพหรือไฟล์เสียงนี้ ต้นฉบับอยู่ที่ คอมมอนส์ รายละเอียดด้านล่าง เป็นข้อความที่แสดงผลจาก ไฟล์ต้นฉบับในคอมมอนส์
คอมมอนส์เป็นเว็บไซต์ในโครงการสำหรับเก็บรวบรวมสื่อเสรี ที่ คุณสามารถช่วยได้

ความย่อ

คำอธิบาย
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:th:ครีเอทีฟคอมมอนส์
แสดงที่มา
ไฟล์นี้อยู่ภายใต้สัญญาอนุญาตครีเอทีฟคอมมอนส์ รุ่น แสดงที่มา 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)

ไอเทมที่แสดงอยู่ในไฟล์นี้

ประกอบด้วย

MIME type อังกฤษ

image/svg+xml

ประวัติไฟล์

คลิกวันที่/เวลาเพื่อดูไฟล์ที่ปรากฏในขณะนั้น

วันที่/เวลารูปย่อขนาดผู้ใช้ความเห็น
ปัจจุบัน20:07, 8 พฤษภาคม 2564รูปย่อสำหรับรุ่นเมื่อ 20:07, 8 พฤษภาคม 2564520 × 333 (1.15 เมกะไบต์)GringerUpdate to slightly more accurate 3D model, showing base rings
04:50, 18 ธันวาคม 2557รูปย่อสำหรับรุ่นเมื่อ 04:50, 18 ธันวาคม 2557457 × 298 (251 กิโลไบต์)GringerIncrease nominal size to something readable
04:46, 18 ธันวาคม 2557รูปย่อสำหรับรุ่นเมื่อ 04:46, 18 ธันวาคม 2557120 × 80 (244 กิโลไบต์)GringerUpdated to 3D model, different DNA sequence
08:40, 6 กรกฎาคม 2550รูปย่อสำหรับรุ่นเมื่อ 08:40, 6 กรกฎาคม 2550416 × 521 (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 (~~
07:56, 6 กรกฎาคม 2550รูปย่อสำหรับรุ่นเมื่อ 07:56, 6 กรกฎาคม 2550471 × 521 (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= }}

หน้าต่อไปนี้ โยงมาที่ภาพนี้:

การใช้ไฟล์ข้ามโครงการ

วิกิอื่นต่อไปนี้ใช้ไฟล์นี้:

ดูการใช้ข้ามโครงการเพิ่มเติมของไฟล์นี้

ข้อมูลเกี่ยวกับภาพ