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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Keita Urashima
October 21, 2022
3k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
大量塩基配列登録申請システムができるまで
Keita Urashima
October 21, 2022
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
22k
The Invisible Side of Design
smashingmag
301
52k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
780
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
170
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
360
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
260
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
600
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
340
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
390
Building Flexible Design Systems
yeseniaperezcruz
330
40k
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