{"id":1042,"date":"2018-11-10T17:30:14","date_gmt":"2018-11-10T23:30:14","guid":{"rendered":"http:\/\/jimlund.org\/blog\/?page_id=1042"},"modified":"2020-09-09T11:22:54","modified_gmt":"2020-09-09T16:22:54","slug":"dna-synthesis","status":"publish","type":"page","link":"http:\/\/jimlund.org\/blog\/?page_id=1042","title":{"rendered":"DNA synthesis"},"content":{"rendered":"<p><strong>Short term goal:<\/strong> inkjet printer based phosphoramidite oligo synthesis<\/p>\n<p><a href=\"http:\/\/techdev.systemsbiology.net\/posam\/index.php\">Piezoelectric Oligonucleotide Synthesizer And Microarrayer (POSAM)<\/a>, <a href=\"https:\/\/www.ncbi.nlm.nih.gov\/pmc\/articles\/PMC507883\/#!po=80.8824\">paper<\/a><br><a href=\"http:\/\/www.bioinformatics.org\/pogo\/\">Pogo control software<\/a><\/p>\n<p><strong>Hardware:<\/strong><br>Manual for National Instruments <a href=\"pics\/dna_printer\/321464b.pdf\">PCI-DIO-32HS<\/a> IO board, $50-$100 used<br>Manual for National Instruments <a href=\"pics\/dna_printer\/370503k.pdf\">PCI-6040E<\/a>, <a href=\"pics\/dna_printer\/4daqsc199-201_ETC_212-213.pdf\">specs<\/a>, $150+ used<\/p>\n<p><strong>Software:<\/strong><br>Pogo (unavailable)<br>Lombardi v.0.7.3, <a href=\"pics\/dna_printer\/Lombardi073.tgz\">tgz<\/a><br>Arrayer v.0.9.2, <a href=\"pics\/dna_printer\/Arrayer092.tgz\">tgz<\/a><\/p>\n<p>Arrayer software exploration<br>-Requires Traditional <a href=\"ftp:\/\/ftp.ni.com\/support\/daq\/pc\/ni-daq\/traditional\/\">NI-DAC drivers<\/a>, only runs on Win XP or earlier.<\/p>\n<p>From Inkjet.cls:<br><code>    Jets 1-32: Black;  33-64: Dark Cyan.<br>\n    Jets 65-96: Light Cyan;  97-128: Dark Magenta.<br>\n    Jets 129-160: Light Magenta;  161-192: Yellow.<br>\nmboolNozzle(192) As Boolean<br>\nNCHG As Integer = 8192<\/code><\/p>\n<p><code><code><\/code><\/code><\/p>\n<p>Private Const REQINTERVALFAST As Integer = 20 #Make interval 1 microseconds or 1MHz.<br>Private Const REQINTERVALSLOW As Integer = 2000 #Make interval 100 microseconds or 10kHz.<\/p>\n<p><code><code><\/code><\/code><\/p>\n<p>#Load buffer with pzt waveform. This is used for startnstop printing.<br>trpz = Array(0, 5, 10, 15, 20, 23, 24, 25, 25, 25, 25, 27, 27, 27, 27, 27, _<br>26, 25, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2, 1, 0.5, 0, 0, 0, 0, _<br>0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)<br>For j = 1 To 50000 Step 100<br>For i = 1 To 49<br>wBuffer(j + i) = Int(trpz(i) * 255 \/ 30) #8 bits, 30 volts fs.<br>Next i<br>Next j<br>## wBuffer = 2..50 102..150 202..250 (500 total copies) 49902..49950 values scaled to 255=30V<\/p>\n<p><code><code><\/code><\/code><\/p>\n<p>sub SelectPztJets:<br>Private Const LAT As Integer = 256<br>Private Const CLK As Integer = 512<br>Private Const SG1 As Integer = 1024<br>Private Const SG2 As Integer = 2048<br>Private Const SG3 As Integer = 4096<br>Private Const NCHG As Integer = 8192<br>Private Const WBIGSIZE As Long = 1510002<br>Private Const WBUFFERTEMPSIZE As Long = 415<\/p>\n<p><code><code><\/code><\/code><\/p>\n<p>#Load a buffer with the digital output that selects nozzles.<br>cnt = 1<br>buffer(cnt) = NCHG: cnt = cnt + 1<br>stat = DIG_Out_Grp(DEV, GROUP, 0)<br>For i = 1 To 64<br>pulse = (mboolNozzle(i) * SG1 * -1) + _<br>(mboolNozzle(i + 64) * SG2 * -1) + (mboolNozzle(i + 128) * SG3 * -1)<br>buffer(cnt) = pulse: cnt = cnt + 1<br>buffer(cnt) = pulse + CLK: cnt = cnt + 1<br>buffer(cnt) = 0: cnt = cnt + 1<br>Next i<\/p>\n<p><code><code><\/code><\/code><\/p>\n<p>&#8212;<br>30 bits each<br>buffer(1) = 8192<br>pulse= -1024(i1) &#8211; 2048(i65) &#8211; 4096(i129)<br>buffer(2) = pulse<br>buffer(3) = pulse + 512<br>buffer(4) = 0<br>pulse= -1024(i2) &#8211; 2048(i66) &#8211; 4096(i130)<br>buffer(5) = pulse<br>buffer(6) = pulse + 512<br>buffer(7) = 0<br>&#8230;<br>buffer(193) = 0<\/p>\n<p><code><code><\/code><\/code><\/p>\n<p>buffer(194) = 256<br>buffer(195) = 0<br>sent to printhead to select nozzles for print or not at 100us speed.<br>&#8212;<\/p>\n<p><code><code><\/code><\/code><\/p>\n<p>buffer(cnt) = LAT: cnt = cnt + 1<br>buffer(cnt) = 0<\/p>\n<p><code><code><\/code><\/code><\/p>\n<p>sub Spew<br>SelectPztJets<br>If drops &lt; 1 Then Exit Sub If drops &gt; 500 Then drops = 500<br>count = 100 * drops<\/p>\n<p><code><code><\/code><\/code><\/p>\n<p>#Output piezo drive waveform.<\/p>\n<p><code><code><\/code><\/code><\/p>\n<p>#Enable pattern generation.<br>stat = DIG_Block_PG_Config(DEV, GROUP, ENABLEPG, REQSOURCEINTCLK, TIMEBASE, _<br>REQINTERVALFAST, EXTERNALGATE)<br>If (stat &lt;&gt; 0) Then ErrorMessage.Display (&#8220;DIG_Block_PG_Config error:&#8221; &amp; stat), 15<\/p>\n<p><code><br>\n<\/code><\/p>\n<p><code>    stat = DIG_Block_Out(DEV, GROUP, wBuffer(1), count)<br>\n<\/code><\/p>\n<p>MainFrm.frm:<br><code>    'Which banks are used?<br>\n    For x = 1 To 6: usedBanks(x) = False: Next x<br>\n    For x = 1 To COLZ<br>\n        For y = 1 To ROWZ<br>\n            i = theArray(x, y)<br>\n            If (i &gt; 0) Then usedBanks(i) = True<br>\n        Next y<br>\n    Next x<\/code><\/p>\n<p><code><br>\n<\/code><\/p>\n<p><code>    'Actually print.<br>\n    Screen.MousePointer = vbHourglass<br>\n    For b = 1 To 6 'For each bank of nozzles.<br>\n        If (usedBanks(b)) Then<br>\n            servo.MoveX (BankXOffset(b) - 1500)<br>\n            For x = 1 To COLZ<br>\n            Rem For x = 1 To 49 Step 2<br>\n                'Turn on desired nozzles.<br>\n                ink.NozzlesAllOff<br>\n                For y = 1 To ROWZ<br>\n                    If (theArray(x, y) = b) Then ink.Nozzle((b - 1) * 32 + y) = True<br>\n                Next y<br>\n                'Spew drops and move 280 microns.<br>\n                ink.Spew (d)<br>\n                servo.MoveX (222)<br>\n                Rem servo.MoveX (444)<br>\n            Next x<br>\n            servo.MoveX (-222 * COLZ - BankXOffset(b) + 1500)<br>\n        End If<br>\n    Next b<\/code><\/p>\n<p>Printhead waveform:<br>R code:<br><code>trap&lt;-c(0, 5, 10, 15, 20, 23, 24, 25, 25, 25, 25, 27, 27, 27, 27, 27, 26, 25, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2, 1, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)<br>\npar(las=2)<br>\nbarplot(trap,names.arg=c(1:55),cex.names=.85,main=\"Epson printhead trapezoidal waveform\",xlab=\"microseconds\",ylab=\"Voltage\")<\/code><\/p>\n<p><img decoding=\"async\" src=\"pics\/dna_printer\/printhead_waveform.png \" alt=\"\"><\/p>\n<p><strong>Chemicals:<\/strong><br><a href=\"http:\/\/www.glenresearch.com\/data\/ProductInfo.php?item=40-4330#\">0.02M Iodine in Tetrahydrofuran\/ Pyridine\/ Water, 40-4330-57 450mL $72.00, Glen Research<\/a><br><a href=\"http:\/\/www.glenresearch.com\/Catalog\/catalog.php?page=droligo&amp;anchor=p18#p18\">dA-CE Phosphoramidite, 10-1000-10M 1.0g $50.00, Glen Research (each)<\/a><br><a href=\" https:\/\/www.chemistryworld.com\/features\/step-by-step-synthesis-of-dna\/3008753.article\">dA-CE Phosphoramidite, 10-1000-02M 0.25g $12.50, Glen Research (each)<\/a><br><a href=\"http:\/\/www.glenresearch.com\/Catalog\/catalog.php?page=reagents&amp;anchor=p28#p28\">5-ethylthio-1H-tetrazole, 30-3140-52 200mL $100.00, Glen Research<\/a><br><a href=\"https:\/\/www.tcichemicals.com\/eshop\/en\/us\/commodity\/M0653\/\">3-Methoxypropionitrile, 500mL $55.00<\/a><br><a href=\"https:\/\/www.tcichemicals.com\/eshop\/en\/us\/commodity\/G0072\/\">Glutaronitril, 25g $34.00<\/a><br><a href=\"https:\/\/www.tcichemicals.com\/eshop\/en\/us\/commodity\/A0060\/\">Acetonitrile, 500mL $22.00<\/a><br><a href=\"https:\/\/www.tcichemicals.com\/eshop\/en\/us\/commodity\/D3478\/\">Dichloromethane, 500mL $23.00<\/a><br><a href=\"https:\/\/www.tcichemicals.com\/eshop\/en\/us\/commodity\/D0308\/\">Dichloroacetic acid, 500g $70.00<\/a><br><a href=\"https:\/\/www.robotshop.com\/en\/grove-o-gas-sensor.html\">Grove O\u00b2 Gas Sensor, $55<\/a><br><a href=\"https:\/\/www.tcichemicals.com\/eshop\/en\/us\/commodity\/A2038\/\">Ammonia Solution (28% in Water), 500mL $16.00<\/a><br><a href=\"https:\/\/www.tcichemicals.com\/eshop\/en\/us\/commodity\/M0137\/\">Methylamine (ca. 40% in Water, ca. 12mol\/L), 500mL $19.00<\/a><\/p>\n<p><strong>Oligo\/gene synthesis approaches under investigation<\/strong><br><a href=\" https:\/\/www.chemistryworld.com\/features\/step-by-step-synthesis-of-dna\/3008753.article\">Step-by-step synthesis of DNA by Andy Extance<\/a><\/p>\n<p><a href=\"https:\/\/www.ncbi.nlm.nih.gov\/pmc\/articles\/PMC507883\/\">POSAM<\/a><\/p>\n<p>A system is offered by Azco Biotech called the OligoArray for making oligos on a chip using electronic deprotection.<\/p>\n<p><a href=\"http:\/\/diyhpl.us\/diyhpluswiki\/dna\/dna-synthesis.html\">Info about DNA synthesis chemistry<\/a><br><a href=\"http:\/\/diyhpl.us\/diyhpluswiki\/dna\/synthesis\/notes\/\">DNA synthesis project, only prelim notes<\/a><\/p>\n<p><strong>Kwan inkjet printer project<\/strong><br>Design of Electronics for a High-Resolution, Multi-Material, and Modular 3D Printer, <a href=\"pics\/dna_printer\/870681346-MIT.pdf\">pdf<\/a><br>Part of the MultiFab project, <a href=\"pics\/dna_printer\/MultiFab.paper.zip\">pdf<\/a>, <a href=\"pics\/dna_printer\/MultiFab.supplemental.zip\">supplement<\/a><\/p>\n<p>Epson Workforce 30 (ebay $60-$300): F3-3 Mach Turbo II printhead, 600 DPI resolution and 540 nozzles that can eject droplets ranging from 6 pL to 26 pL. 5 channels, 2 rows with 180 nozzles, 3 channels with 60 nozzles each.<\/p>\n<p>Control:<\/p>\n<blockquote>\n<p>Eight digital signals control printing:<br>S12, S13, and CK. NCHG determines whether the trapezoidal waveform is applied to the ink chambers; CHA, CHB, and LAT indicate the beginning of a sub-waveform; SI1, S12, and S13 determine drop size; and CK is the clock signal.<\/p>\n<\/blockquote>\n<p>DAC is AD5424, $5. Two stage amp LT1632, $9 and Class AB amplifier (5 transistor) as the output stage.<\/p>\n<p>Epson Artisan 50 (ebay $105-400): six rows, 90 nozzles per row. Twice as fast as Workforce 30.<\/p>\n<p><strong>General piezo driver info<\/strong><br><a href=\"https:\/\/www.powerelectronicsnews.com\/technology\/driving-piezoelectric-actuators-in-industrial-inkjet-printers\">Driving piezoelectric actuators in industrial inkjet printers<\/a><br>Design around MP111FD, $140.<\/p>\n<p>Low-Cost Inkjet Process for 3-D Printing by Christopher T. Schmitt, <a href=\"pics\/dna_printer\/Low-Cost Inkjet Process for 3-D Printing.pdf\">pdf<\/a><\/p>\n<p><strong>Other DNA Synthesis methods<br><\/strong><a href=\"https:\/\/www.the-scientist.com\/news-opinion\/novel-method-could-accelerate-dna-synthesis-64297\">Novel Method Could Accelerate DNA Synthesis: The new technique uses an enzyme found in vertebrate immune systems to attach nucleotides to a growing strand.<\/a> <a href=\"https:\/\/www.nature.com\/articles\/nbt.4173\">Nat Biotech paper<\/a><\/p>\n<p><\/p>\n\n\n<p><a href=\"http:\/\/www.bioinformatics.org\/pogo\/\">Piezoelectric Oligonucleotide Synthesizer And Microarrayer (POSAM)<\/a>, <a href=\"http:\/\/techdev.systemsbiology.net\/posam\/index.php\">2nd link<\/a><br>Ebay: Print Head F057020<br>Inkjet heads, <a href=\"https:\/\/www.eevblog.com\/forum\/projects\/hacking-an-inkjet-printhead\/\">forum<\/a><br><a href=\"http:\/\/techref.massmind.org\/techref\/pcb\/etch\/custom-vs.htm\">Direct InkJet PCB Resist Printing<\/a><br><a href=\"https:\/\/www.asco.com\/en-us\/Pages\/solenoid-valve-series-282-s.aspx?flt=eyJCb2R5X01hdGVyaWFsIjp7InZhbHVlcyI6WyJFbmdpbmVlcmVkIFBsYXN0aWNzIiwiUE9NIl19fQ==\">ASCO Solenoid Valve &#8211; 2 Way: 2\/2 &#8211; Isolation Valve<\/a><br><a href=\"https:\/\/www.coleparmer.com\/i\/asco-valve-solenoid-2way-nc-24v-20l-solenoid-valve-2-way-normally-closed-24-vdc-20-lpm\/0134002\">&#8220;PTFE solenoid valve&#8221; 190224S30<\/a><br>MG04 gas regulator<br>Check valves, 0.1psi cracking pressure<br><a href=\"https:\/\/www.asco.com\/en-us\/Pages\/solenoid-valve-series-282-s.aspx?flt=eyJCb2R5X01hdGVyaWFsIjp7InZhbHVlcyI6WyJFbmdpbmVlcmVkIFBsYXN0aWNzIiwiUE9NIl19fQ==\"><strong><br><\/strong><\/a><strong>Other DNA Synthesis approaches<\/strong><br><a href=\"https:\/\/www.wired.com\/2015\/11\/making-dna\/\">Cheap DNA Sequencing Is Here. Writing DNA Is Next<\/a><br>  Twist: 100 or so holes per nanowell -&gt; combine into genes, $0.10 \/ base<br>  Gen9: inkjet based -&gt; combine into genes, $0.20 \/ base<br>&#8220;<a href=\"https:\/\/academic.oup.com\/nar\/article\/38\/8\/2522\/3112266\">Synthesis of high-quality libraries of long (150mer) oligonucleotides by a novel depurination controlled process<\/a>&#8221; <br>  &#8220;Moreover, for synthesis of long oligonucleotides, it is important to minimize the most prevalent side reaction\u2014depurination. &#8230; Identifying the likely source of depurination as the resident film of detritylation solution adhering to the surface&#8230; We found that the detritylation reaction could be effectively and reproducibly terminated by using oxidizer solution to displace the detritylation solution from the flowcell.&#8221;<br><\/p>\n\n\n\n<p><strong>Links<\/strong><br>Qiagen <a href=\"https:\/\/www.qiagen.com\/us\/service-and-support\/learning-hub\/technologies-and-research-topics\/pyrosequencing-resource-center\/pyromark-q48-autoprep\/\">PyroMark Q48<\/a><br>RAINDANCE TECHNOLOGIES RDT 1000 <br><br><strong>Monitoring synthesis by detecting the di-phosphate or mono phosphate:<br><\/strong>&#8220;<a href=\"https:\/\/www.ncbi.nlm.nih.gov\/pmc\/articles\/PMC2275100\/\">A new class of cleavable fluorescent  nucleotides: synthesis and optimization as reversible terminators for  DNA sequencing by synthesis<\/a>&#8220;<br><a href=\"https:\/\/webbook.nist.gov\/cgi\/cbook.cgi?Name=*phosphate&amp;Units=SI\">NIST chemical spectra<\/a><br><a href=\"https:\/\/www.science-softcon.de\/spectra\/cas_1.php\">UV\/Vis<\/a><sup><a href=\"https:\/\/www.science-softcon.de\/spectra\/cas_1.php\">+<\/a><\/sup><a href=\"https:\/\/www.science-softcon.de\/spectra\/cas_1.php\"> Photochemistry Database<\/a>, <a href=\"https:\/\/www.science-softcon.de\/spectra\/other\/other_1.php?q=adenosine%20triphosphate\">ATP link<\/a><br><a href=\"https:\/\/patents.google.com\/patent\/WO2008061626A1\/en\">Method for detecting pyrophosphate by means of bioluminescence detection <\/a> <br>&#8220;Pyrosequencing Sheds Light on DNA Sequencing&#8221; (2017), <a href=\".\/pics\/ronaghi2001.pdf\">pdf<\/a><br>&#8220;PYROSEQUENCING- PRINCIPLES AND APPLICATIONS&#8221;, <a href=\".\/pics\/67_pdf.pdf\">pdf<\/a><br><a href=\"https:\/\/en.wikipedia.org\/wiki\/Pyrosequencing\">Pyrosequencing<\/a><br><\/p>\n\n\n\n<p> <\/p>\n\n\n\n<p> <\/p>\n\n\n\n<p><br><\/p>\n\n\n\n<p><br><\/p>\n\n\n\n<p> <\/p>\n\n\n\n<p><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Short term goal: inkjet printer based phosphoramidite oligo synthesis Piezoelectric Oligonucleotide Synthesizer And Microarrayer (POSAM), paperPogo control software Hardware:Manual for National Instruments PCI-DIO-32HS IO board, $50-$100 usedManual for National Instruments PCI-6040E, specs, $150+ used Software:Pogo (unavailable)Lombardi v.0.7.3, tgzArrayer v.0.9.2, tgz Arrayer software exploration-Requires Traditional NI-DAC drivers, only runs on Win XP or earlier. From Inkjet.cls: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1042","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/jimlund.org\/blog\/index.php?rest_route=\/wp\/v2\/pages\/1042","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/jimlund.org\/blog\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/jimlund.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/jimlund.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/jimlund.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1042"}],"version-history":[{"count":33,"href":"http:\/\/jimlund.org\/blog\/index.php?rest_route=\/wp\/v2\/pages\/1042\/revisions"}],"predecessor-version":[{"id":1695,"href":"http:\/\/jimlund.org\/blog\/index.php?rest_route=\/wp\/v2\/pages\/1042\/revisions\/1695"}],"wp:attachment":[{"href":"http:\/\/jimlund.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}