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
大量塩基配列登録申請システムができるまで
Search
Keita Urashima
October 21, 2022
3.1k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
大量塩基配列登録申請システムができるまで
Keita Urashima
October 21, 2022
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
3
3.9k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Typedesign – Prime Four
hannesfritz
42
3.2k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
660
Amusing Abliteration
ianozsvald
1
280
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
sira's awesome portfolio website redesign presentation
elsirapls
0
400
The SEO identity crisis: Don't let AI make you average
varn
0
550
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Transcript
େྔԘجྻొਃγεςϜ͕ Ͱ͖Δ·Ͱ ,FJUB6SBTIJNB !VSTN 0DU ,BJHJPO3BJMT
w ࠃཱҨֶݚڀॴੜ໋ใɾ%%#+ηϯλʔ͕ w ԘجྻʢੜͷҨใʣΛσʔλϕʔεԽͯ͠ެ։͢ΔͨΊʹ w όΠΦݚڀऀ͔ΒԘجྻͷొਃΛड͚͚ΔࡍʹΘΕΔγε ςϜ w (PPHMFϑΥʔϜʹϑΝΠϧΞοϓϩʔυػೳ͕͍ͨΑ͏ͳΠϝʔδ w
ͨͩ͠ѻ͏ϑΝΠϧ͕େ͖͍ ຊͷ͓େྔԘجྻొਃγεςϜ
ݱঢ়ͱΰʔϧ ԘجྻͷొਃΛड͚͚Δͱ͖ɺݱঢ়Ͱ w (PPHMFϑΥʔϜͰҰใΛೖΕͯΒ͏ w ϝʔϧͰΓऔΓΛͯ͠ඞཁͳใΛώΞϦϯά͢Δ w TDQͰϑΝΠϧΛసૹͯ͠Β͏ ͷΑ͏ͳखॱͰߦΘΕ͍ͯͯɺͱͯखֻ͕͔ؒΔͷͰվળ͍ͨ͠
μΠϨΫτΞοϓϩʔυ "DUJWF4UPSBHF w ϒϥβ͔ΒετϨʔδαʔϏεʹϑΝΠϧΛΞοϓϩʔυͤ͞Δ w ΞϓϦέʔγϣϯʹ࣮ϑΝΠϧͷΘΓʹϑΝΠϧΛࣝผ͢ΔΩʔ͕ͬͯ ͘Δ w ඞཁͰ͋Ε͜ͷΩʔΛͬͯݩͷϑΝΠϧΛऔಘͰ͖Δ w
ΞοϓϩʔυͷϋϯυϦϯάΛετϨʔδαʔϏεʹؙ͛Ͱ͖Δ
Ξοϓϩʔυ͚ͩͰͳ͔ͬͨ w Ξοϓϩʔυ͞ΕͨϑΝΠϧͷதΛಡΈग़ͯ͠ϑΥʔϜͷ߲ΛҰ෦ࣗಈͰ ຒΊ͍ͨ w ϑΝΠϧ͕େ͖͍ͱۃΊ͍ͯ͠
None
4USFBNT"1* w ϒϥβ্ͰσʔλΛࡉΕʹಡΈॻ͖͢ΔΠϯλʔϑΣʔεΛఏڙ͢Δ w ରϑΝΠϧωοτϫʔΫϦΫΤετϨεϙϯεͳͲ w ϝϞϦരൃͷ৺ͳ͘େ͖ͳσʔλΛѻ͑Δ const res =
await fetch('https://example.com'); res.body // これが ReadableStream
<input type="file" /> <script> document.querySelector('input') .addEventListener('change', async (e) => {
const file = e.target.files[0]; const reader = file.stream().getReader(); for (;;) { const {done, value} = await reader.read(); if (done) { break; } console.log(value); } }); </script>
None
>NIES3753_TRINITY_DN0_c0_g1_i1_len285 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCTCTTCATCAAACTCCTGCGCTGCCACT GCAGCCAAACACACAGCTGACACAGCACCAAAATAACCCCACGCCCTGCAGCTACAG // >NIES3753_TRINITY_DN1_c3_g1_i1_len267 CCTCAACGGGAGCAGCTGATCAAACTACAGAACTCCACACGCCCCATGGCACCACTT GTGACGGGACGGGCCTGGAGGTGGATTCATATCAGCCCCACCACTCCAAGCATGCTG // >NIES3753_TRINITY_DN1_c4_g1_i1_len257 GTCCATACTGGTCCTAGCAGGTCCCAGAATCTACCTCTTGCTTGCACCATATGCACT
TTCTGCATGCCTGGCCACAGTCTGGCTTGAGCCATTGGATGTGCCAGTTAACAGTAT // >NIES3753_TRINITY_DN1_c2_g1_i1_len229 CCCCCCCCCCCCCCCCCCCTCTCCTGCTGCATCTGTGGGGACATGCCCATCTGAGAG GCAGCCCAGCACTCATTGCAGATCGCAAGACCACTCGCCTCAACTCCCTTCACCCCA //
const LF = '\n'.codePointAt(0); const CR = '\r'.codePointAt(0); const GT
= '>'.codePointAt(0); async function parse(file) { const reader = file.stream().getReader(); let done, value; let entriesCount = 0; let isBOL = true; while (({done, value} = await reader.read()), !done) { for (const byte of value) { if (isBOL && byte === GT) { entriesCount++; isBOL = false; } else { isBOL = byte === LF || byte === CR; } } } return {entriesCount}; }
ύʔεதʹϒϥβ͕ݻ·Δ w େ͖ͳϑΝΠϧΛύʔε͢Δͱλϒͷඳը͕ࢭ·ͬͯૢ࡞ʹԠ͠ͳ͍ঢ়ଶ ʹͳͬͯ͠·͏ w ύʔε͕ऴΘΔͱݩʹΔ w +BWB4DSJQUγϯάϧεϨουͳͷͰ$16ͳίʔυଞͷͯ͢ΛࢭΊ ͯ͠·͏Մೳੑ͕͋Δ w
ҰൠతʹTFU5JNFPVUͳͲͰଞͷॲཧׂ͕ΓࠐΉ༨Λ࡞ͬͯରԠ͢Δ
8FC8PSLFST w ϝΠϯεϨουͱશʹಠཱͨ͠ผεϨουͰॲཧΛ࣮ߦ͢ΔΈ w ϫʔΧϝΠϯεϨουͷඳըૢ࡞Λ͛ͳ͍ w ϫʔΧฒྻʹಈ࡞͢ΔͨΊϚϧνίΞΛ׆༻Ͱ͖Δ
const worker = new Worker('./worker.js'); worker.addEventListener('message', e => { console.log(e.data);
}); worker.postMessage('hello, world'); addEventListener('message', e => { postMessage(e.data.toUpperCase()); }); NBJOKT XPSLFSKT ᶃ ᶄ ᶅ ᶆ
addEventListener('message', async ({data: {file}}) => { try { const payload
= await parse(file); postMessage([null, payload]); } catch (err) { postMessage([err, null]); } }); async function parse(file) { const reader = file.stream().getReader(); // ... return {entriesCount}; }
ϋογϡͷܭࢉ͕͍ w "DUJWF4UPSBHFμΠϨΫτΞοϓϩʔυͷͱ͖ϑΝΠϧͱҰॹʹϋογϡ ΛૹΔ w େ͖ͳϑΝΠϧͩͱϋογϡͷܭࢉʹֻ͕͔࣌ؒΔ w "DUJWF4UPSBHFTQBSLNEͱ͍͏ϥΠϒϥϦΛͬͯϋογϡΛٻΊ ͍ͯΔ w
TQBSLNEಉछͷϥΠϒϥϦͷதͰτοϓϨϕϧʹ͍
8FC"TTFNCMZ w ओʹϒϥβͰ࣮ߦ͢ΔͨΊͷԾతͳػցޠ w +BWB4DSJQUͰ౸ୡͰ͖ͳ͍ωΠςΟϒίʔυʹ͍ۙੑೳ͕ಘΒΕΔ w 8FC"TTFNCMZʹΑΔϋογϡؔͷ࣮IBTIXBTN w TQBSLNEͱൺֱͯ͠ഒҎ্ͷվળ
None
github.com/ddbj/submission-mss