Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
テンクーでのClojure活用事例
Search
OHTA Shogo
July 14, 2023
Technology
0
330
テンクーでのClojure活用事例
2023/07/13 ClojureエンジニアLT&交流会
OHTA Shogo
July 14, 2023
Tweet
Share
More Decks by OHTA Shogo
See All by OHTA Shogo
軽量デバッグツールPostmortemの紹介.pdf
athos
1
200
Clojure 1.10 概要紹介
athos
3
640
やってみる!clojure.spec
athos
4
1k
kitchen-async: a promising (?) Promise library, or a poor man's core.async
athos
3
470
Clojure 1.9 概要紹介
athos
4
1.4k
ここ最近のClojureScript
athos
5
1.7k
(= ? (+ nREPL Docker))
athos
0
530
clojure.specの話
athos
3
2.3k
clojure.specの話(仮)
athos
2
350
Other Decks in Technology
See All in Technology
Introduction to Bill One Development Engineer
sansan33
PRO
0
240
Babylon.jsでゲームを作ってみよう
limes2018
0
100
Java 30周年記念! Javaの30年をふりかえる
skrb
1
1k
ゴリラ.vim #36 ~ Vim x SNS ~ スポンサーセッション
yasunori0418
1
360
FastMCPでSQLをチェックしてくれるMCPサーバーを自作してCursorから動かしてみた
nayuts
1
220
オープンソースのハードウェアのコンテストに参加している話
iotengineer22
0
650
TechBull Membersの開発進捗どうですか!?
rvirus0817
0
220
テストを実施する前に考えるべきテストの話 / Thinking About Testing Before You Test
nihonbuson
PRO
14
2.1k
令和最新版TypeScriptでのnpmパッケージ開発
lycorptech_jp
PRO
0
110
面接を通過するためにやってて良かったこと3選
sansantech
PRO
0
140
GigaViewerにおけるMackerel APM導入の裏側
7474
0
460
Roo Codeにすべてを委ねるためのルール運用
pharma_x_tech
1
230
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Typedesign – Prime Four
hannesfritz
41
2.6k
We Have a Design System, Now What?
morganepeng
52
7.6k
Music & Morning Musume
bryan
47
6.6k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Art, The Web, and Tiny UX
lynnandtonic
298
21k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Side Projects
sachag
454
42k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Transcript
ςϯΫʔͰͷ$MPKVSF׆༻ࣄྫ $MPKVSFΤϯδχΞ-5ˍަྲྀձ גࣜձࣾςϯΫʔ !BUIPT
$MPKVSF-5@0965 ࣗݾհ w !BUIPT w ͔Β$MPKVSFΛ৮Γ࢝ΊΔ w ʹςϯΫʔೖࣾ w $MPKVSF
4DSJQU ίϯτϦϏϡʔλ 2
$MPKVSF-5@0965 ςϯΫʔͷաڈͷൃද 3 $MPKVSFDPOK 4FRVFODFBOE$PODVSSFOU1SPDFTTJOH GPS)VHF(FOPNJD%BUB https://youtu.be/ipNru1QSeWc 4IJCVZBMJTQ5FDI5BML
ςϯΫʔͰͷ$MPKVSFͷ׆༻ࣄྫ $MPKVSFͰͷή ϊϜղੳͱΤϯδχΞϦϯά https://youtu.be/ltdMlYLsb3I?t=2947
$MPKVSF-5@0965 ΞδΣϯμ w ςϯΫʔͷհ w ςϯΫʔͰͷ$MPKVSFͷΘΕํ w $MPKVSFΛ͏خ͠͞ 4
$MPKVSF-5@0965 ςϯΫʔͷհ
$MPKVSF-5@0965 ͲΜͳձࣾʁ 6 ໊ࣾ גࣜձࣾςϯΫʔ (Xcoo, Inc.) දऔక ଜ ༟
ઃཱ 20114݄1 ελοϑ 44໊ Web https://xcoo.co.jp ॴࡏ ౦ژจژ۠ຊڷ2-40-8 ࢿຊۚ 1ԯԁ ೝূ ISO/IEC 27001 (ISMS) ݈߁ܦӦ༏ྑ๏ਓ2021 ༀࣄ ୈҰछҩྍػثൢചۀऀ ҩྍػثۀऀ ߴཧҩྍػثൢചۀ/ି༩ۀऀ ใٕज़Ͱҩྍʹߩݙ ࣾձ࣮ͷՍ͚ڮ ή ϊϜҩྍͷτʔλϧιϦϡʔγϣϯιϑτΣΞ ͕Μή ϊϜҩྍͷใղੳ෦ΛτʔλϧͰαϙʔτ
$MPKVSF-5@0965 ͕Μή ϊϜҩྍ 7 ͕Μࡉ๔ͷή ϊϜͷมԽΛಛఆ ͦͷή ϊϜͷมԽʹ߹Θͤͯ ࠷దͳ࣏ྍɾஅɾ༧Λߦ͏
ۙɺή ϊϜͷมԽʹ߹ΘͤͨࢠඪతༀͷొʹΑΓɺ͕Μͷ࣏ྍ͕ܶతʹվળ T A G C A T G G G G C A T T A G C A T C A T
$MPKVSF-5@0965 ։ൃνʔϜߏ 8 Analysis Database Report όΠΦΠϯϑΥϚςΟΫεͷΞϧΰϦζϜܥ σʔλͷΞάϦήʔγϣϯ ߴͳݕࡧ
6*8FCܥ ҩֶతݟʹͱ͍ͮͯఆϩδοΫ Infrastructure + $ISPWJTΛӡ༻͢ΔͨΊͷճΓ ֤πʔϧϥΠϒϥϦ࣮ ͦͷଞͷࣾγεςϜ։ൃ Chrovisͷ։ൃνʔϜΤϯδχΞ20ਓఔ
$MPKVSF-5@0965 ςϯΫʔͰͷ$MPKVSFͷΘΕํ
$MPKVSF-5@0965 ։ൃن 10 ϦϙδτϦ ιʔείʔυͷϑΝΠϧ DMK DMKT DMKD
ιʔείʔυߦ DMK DMKT DMKD ϓϧϦΫΤετ Ҏ߱ ˞ݱࡏ
$MPKVSF-5@0965 ςϯΫʔ͕։ൃ͢Δ044 w $ISPWJTؔ࿈ͷ044IUUQTHJUIVCDPNDISPWJTͰެ։͞Ε͍ͯΔ DMKBNή ϊϜղੳͰΑ͘ΘΕΔϑΝΠϧܗࣜͷೖग़ྗΞϧΰϦζϜͷ࣮ WBSJUZมҟͷදهܗࣜ )(74˱7$'
ؒͷม DMKIHWT)(74ه๏ͷύʔαɾϑΥʔϚολ DMKEFDPOTUSVDUTJHTมҟύλʔϯ͔Βͷมҟγάωνϟͷಉఆ EVYIVOE%69༥߹Ҩࢠͷݕग़ FUDFUD 11
$MPKVSF-5@0965 Α͘ΘΕΔϑΝΠϧܗࣜ w '"452 ԘجྻͱͦͷΫΦϦςΟ ֤Ԙج͕Ͳͷఔͷ͔֬Β͠͞ͰಡΊ͔ͨ ͷใΛه w 4".#".
֤ྻΛϦϑΝϨϯεྻʹରͯ͠ΞϥΠϝϯτ ҐஔΛಉఆ ͨ݁͠ՌΛه w 7$'#$' มҟίʔϧʹΑͬͯಉఆ͞ΕͨมҟΛه 12 '"452 4". #". 7$' #$' ΞϥΠϯϝϯτ มҟίʔϧ
$MPKVSF-5@0965 DMKBNͷར༻ྫ 13 (require '[cljam.io.sam :as sam]) (with-open [r (sam/reader
"in.bam") w (sam/writer "out.bam")] (sam/write-header w (sam/read-header r)) (sam/write-refs w (sam/read-refs r) (->> (sam/read-alignments r) (sam/write-alignments w))) (require '[cljam.io.vcf :as vcf]) (with-open [r (vcf/reader "in.vcf") w (vcf/writer "out.vcf")] (->> (vcf/read-variants r) (vcf/write-variants w))) 4".#".ͷಡΈॻ͖ 7$'#$'ͷಡΈॻ͖ (… {:qname "HWI-ST216_0147:5:48:13963:160437#0/1", :flag 0, :rname "chr1", :pos 23000088, :end 23000123, :mapq 255, :seq "TATAGGATTTGTTTGTTGTGTTTAGGTGGGTATAGT", :qual "HFHHHHEHHHHFHHHHEHFHHHHBHGBFFE>EGCFC", :cigar "36M", …} …) (… {:chr "19", :pos 111, :ref "A", :alt ["C"], :qual 9.6, :filter nil, :FORMAT (:GT :HQ), :NA00001 {:GT "0|0", :HQ (10 10)}, :NA00002 {:GT "0|0", :HQ (10 10)}, …} …)
$MPKVSF-5@0965 ࣮ࡍͷγεςϜͰΘΕΔπʔϧɾϥΠϒϥϦ܈ 14 GSPN4FRVFODFBOE$PODVSSFOU1SPDFTTJOHGPS)VHF(FOPNJD%BUB
$MPKVSF-5@0965 $MPKVSFΛ͏خ͠͞
$MPKVSF-5@0965 γʔέϯεʹΑΔσʔλදݱ w ή ϊϜղੳͰΘΕΔϑΝΠϧαΠζ͕େ͖͘ͳΓ͕ͪ ώτͷή ϊϜྻԯԘج ϑΝΠϧͰेʙඦ(#ΦʔμʔʹͳΔ͜ͱ
ϑΝΠϧશମͷ༰ϝϞϦ্ʹࡌΒͳ͍ w ͜ΕΒͷେ͖ͳσʔλΛԆγʔέϯεͱͯ͠දݱ͢Δ͜ͱͰɺ$MPKVSFͰ ࣗવʹॲཧͰ͖Δ 16
$MPKVSF-5@0965 ฒྻԽ w σʔλ͕େ͖͍ͱॲཧ࣌ؒ͘ͳΓ͕ͪ σʔλαΠζʹΑͬͯύΠϓϥΠϯશମͷ࣮ߦͰҎ্͔͔Δ͜ͱ ఆഒͷߴԽ͕ޮՌతͳέʔεগͳ͘ͳ͍ w $MPKVSFͰجຊతͳσʔλܕϩʔΧϧଋറ͕Πϛϡʔλϒϧͳ͜ͱͰɺ
ϚϧνεϨουʹΑΔฒྻԽ͕༰қ w ςϯΫʔͰɺฒྻͷ੍ޚͷ͔͢͠͞ΒεϨουϓʔϧϥΠϒϥϦ $MBZQPPMF͕Α͘ΘΕΔ 17
$MPKVSF-5@0965 3&1-Ͱͷ୳ࡧ w ίʔυʹखΛண͚Δલͷ3&1-Ͱͷࢼߦࡨޡ "OBMZTJTνʔϜͷϓϩμΫτ։ൃʮԿΛͲ͏࡞Δ͔ ͔͢ ʯ͕࣮ࡍͷσʔλΛ ݟͳ͕Βܾ·Δݚڀ։ൃతͳଆ໘Λͭ͜ͱ͋Δ w
Ͳ͜ͰσόοάڥΛ࡞ΕΔ VCFSKBS͑͋͞Εɺαʔό্%PDLFSίϯςφͷڥͰ$MPKVSFͷ3&1-Λ ্ཱͪ͛ͯΞϓϦέʔγϣϯͷڥΛ͑ΒΕΔ ιέοτ3&1-Λ͑ϦϞʔτσόοά༰қ 18
$MPKVSF-5@0965 σʔλੳʹ͓͚ΔڧΈ w DG$MPKVSFGPS%BUB4DJFODFJOUIF3FBM8PSMEGSPN$MPKVSFDPOK w +7.͕ेߴͰɺ+BWBͷϥΠϒϥϦ๛ w 5FDI"TDFOU4DJ$MPKΛத৺ʹ$MPKVSFͷσʔλੳɾ౷ܭղੳɾػցֶश ϥΠϒϥϦ͕׆ൃʹ։ൃ͞Ε͍ͯΔ w
3&1-Ͱࢼߦࡨޡ͍͢͠ w ·ͱͳύοέʔδཧγεςϜ͕͋Δ😎 19
$MPKVSF-5@0965 ͍Ζ͍ΖͳϓϥοτϑΥʔϜͰ͑Δ w ςϯΫʔͰͷར༻ྫ $MPKVSF PO+7. ղੳπʔϧɺ8FCαʔϏε όοΫΤϯυ
$MPKVSF4DSJQU8FCαʔϏε ϑϩϯτΤϯυ #BCBTILB$-*πʔϧɺεΫϦϓςΟϯά w #BCBTILBBTCFUUFSγΣϧεΫϦϓτ #BCBTILBଞͷίϚϯυͱΈ߹Θ͍ͤͯ͘͢ɺେྔͷϑΝΠϧ͕ੜ͞Ε Δॲཧͷूܭʹศར $MPKVSFͷศརͳίϨΫγϣϯΛඋ͑ɺͦͷؾʹͳΕεϨου͑Δɺ͍ग़ ͕͋ΔεΫϦϓτݴޠͱͯ͠׆༻Ͱ͖Δ 20
$MPKVSF-5@0965 ·ͱΊ w ςϯΫʔͰ$ISPWJTΛ͡Ίͱͨ͠γεςϜͷେ෦Λ$MPKVSFΛͬͯ ։ൃ͍ͯ͠Δ w $MPKVSFͷγʔέϯεॲཧɾฒྻԽͷ༰қ͞ή ϊϜղੳͷڊେͳσʔλΛ ѻ͏ͷʹద͠ɺ3&1-ʹΑΔߴͳϑΟʔυόοΫݚڀ։ൃతͳࢼߦࡨޡ ͷ͢͠͞ʹߩݙ͍ͯ͠Δ
w ΞϧΰϦζϜدΓ͔ΒXFCدΓͷࣄ·Ͱ͍Ζ͍Ζ͋Γָ͍͠ʂ✌ Т ✌ w ڵຯ͕͋Δํͥͻֻ͓͚Λʂ 21