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
290
テンクーでの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
190
Clojure 1.10 概要紹介
athos
3
610
やってみる!clojure.spec
athos
4
980
kitchen-async: a promising (?) Promise library, or a poor man's core.async
athos
3
430
Clojure 1.9 概要紹介
athos
4
1.4k
ここ最近のClojureScript
athos
5
1.7k
(= ? (+ nREPL Docker))
athos
0
500
clojure.specの話
athos
3
2.2k
clojure.specの話(仮)
athos
2
340
Other Decks in Technology
See All in Technology
コロプラのオンボーディングを採用から語りたい
colopl
5
1.3k
あなたの人生も変わるかも?AWS認定2つで始まったウソみたいな話
iwamot
3
860
Amazon Route 53, 待ちに待った TLSAレコードのサポート開始
kenichinakamura
0
170
comilioとCloudflare、そして未来へと向けて
oliver_diary
6
450
カップ麺の待ち時間(3分)でわかるPartyRockアップデート
ryutakondo
0
140
#TRG24 / David Cuartielles / Post Open Source
tarugoconf
0
590
0→1事業こそPMは営業すべし / pmconf #落選お披露目 / PM should do sales in zero to one
roki_n_
PRO
1
1.5k
When Windows Meets Kubernetes…
pichuang
0
310
AWSの生成AIサービス Amazon Bedrock入門!(2025年1月版)
minorun365
PRO
7
470
CDKのコードレビューを楽にするパッケージcdk-mentorを作ってみた/cdk-mentor
tomoki10
0
210
実践! ソフトウェアエンジニアリングの価値の計測 ── Effort、Output、Outcome、Impact
nomuson
0
2.1k
20250116_自部署内でAmazon Nova体験会をやってみた話
riz3f7
1
100
Featured
See All Featured
Practical Orchestrator
shlominoach
186
10k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
The World Runs on Bad Software
bkeepers
PRO
66
11k
Designing for humans not robots
tammielis
250
25k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.4k
For a Future-Friendly Web
brad_frost
176
9.5k
Bash Introduction
62gerente
610
210k
The Invisible Side of Design
smashingmag
299
50k
Typedesign – Prime Four
hannesfritz
40
2.5k
BBQ
matthewcrist
85
9.4k
The Cost Of JavaScript in 2023
addyosmani
46
7.2k
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