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
350
テンクーでの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
650
やってみる!clojure.spec
athos
4
1k
kitchen-async: a promising (?) Promise library, or a poor man's core.async
athos
3
480
Clojure 1.9 概要紹介
athos
4
1.5k
ここ最近のClojureScript
athos
5
1.7k
(= ? (+ nREPL Docker))
athos
0
530
clojure.specの話
athos
3
2.3k
clojure.specの話(仮)
athos
2
360
Other Decks in Technology
See All in Technology
o11yツールを乗り換えた話
tak0x00
2
1.6k
リモートワークで心掛けていること 〜AI活用編〜
naoki85
0
180
Claude Codeから我々が学ぶべきこと
oikon48
10
2.8k
ユーザー課題を愛し抜く――AI時代のPdM価値
kakehashi
PRO
1
130
データモデリング通り #2オンライン勉強会 ~方法論の話をしよう~
datayokocho
0
180
ZOZOTOWNの大規模マーケティングメール配信を支えるアーキテクチャ
zozotech
PRO
0
530
AIと描く、未来のBacklog 〜プロジェクト管理の次の10年を想像し、創造するセッション〜
hrm_o25
0
110
AWSの最新サービスでAIエージェント構築に楽しく入門しよう
minorun365
PRO
6
130
「AIと一緒にやる」が当たり前になるまでの奮闘記
kakehashi
PRO
3
160
Amazon Bedrock AgentCoreのフロントエンドを探す旅 (Next.js編)
kmiya84377
1
160
PL/pgSQLの基本と使い所
tameguro
2
230
Amazon Inspector コードセキュリティで手軽に実現するシフトレフト
maimyyym
0
130
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
223
9.9k
The Pragmatic Product Professional
lauravandoore
36
6.8k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Typedesign – Prime Four
hannesfritz
42
2.8k
The Cost Of JavaScript in 2023
addyosmani
53
8.8k
KATA
mclloyd
32
14k
The Invisible Side of Design
smashingmag
301
51k
Docker and Python
trallard
45
3.5k
Faster Mobile Websites
deanohume
309
31k
For a Future-Friendly Web
brad_frost
179
9.9k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
20k
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