1 2<!doctype html> 3<html lang="en" class="no-js"> 4 <head> 5 6 <meta charset="utf-8"> 7 <meta name="viewport" content="width=device-width,initial-scale=1"> 8 9 10 11 <link rel="canonical" href="https://xin-huang.github.io/software/"> 12 13 14 <link rel="prev" href="../publications/"> 15 16 17 <link rel="next" href="../development/"> 18 19 20 21 22 23 <link rel="icon" href="../assets/favicon.png"> 24 <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.6"> 25 26 27 28 <title>Selected Software - Xin Huang, PhD</title> 29 30 31 32 <link rel="stylesheet" href="../assets/stylesheets/main.484c7ddc.min.css"> 33 34 35 <link rel="stylesheet" href="../assets/stylesheets/palette.ab4e12ef.min.css"> 36 37 38 39 40 41 42 43 44 45 46 47 48 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 49 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"> 50 <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style> 51 52 53 54 <link rel="stylesheet" href="../stylesheets/extra.css"> 55 56
56<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
56 57 58 59 60 61 62 63 64
65<script id="__analytics">function __md_analytics(){function e(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],e("js",new Date),e("config","G-LKTXJ0SE20"),document.addEventListener("DOMContentLoaded",(function(){document.forms.search&&document.forms.search.query.addEventListener("blur",(function(){this.value&&e("event","search",{search_term:this.value})}));document$.subscribe((function(){var t=document.forms.feedback;if(void 0!==t)for(var a of t.querySelectorAll("[type=submit]"))a.addEventListener("click",(function(a){a.preventDefault();var n=document.location.pathname,d=this.getAttribute("data-md-value");e("event","feedback",{page:n,data:d}),t.firstElementChild.disabled=!0;var r=t.querySelector(".md-feedback__note [data-md-value='"+d+"']");r&&(r.hidden=!1)})),t.hidden=!1})),location$.subscribe((function(t){e("config","G-LKTXJ0SE20",{page_path:t.pathname})}))}));var t=document.createElement("script");t.async=!0,t.src="https://www.googletagmanager.com/gtag/js?id=G-LKTXJ0SE20",document.getElementById("__analytics").insertAdjacentElement("afterEnd",t)}</script>
65 66 67
67<script>"undefined"!=typeof __md_analytics&&__md_analytics()</script>
67 68 69 70 71 72 </head> 73 74 75 76 77 78 79 80 81 82 <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="lime" data-md-color-accent="indigo"> 83 84 85 <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> 86 <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> 87 <label class="md-overlay" for="__drawer"></label> 88 <div data-md-component="skip"> 89 90 91 <a href="#selected-software" class="md-skip"> 92 Skip to content 93 </a> 94 95 </div> 96 <div data-md-component="announce"> 97 98 <aside class="md-banner"> 99 <div class="md-banner__inner md-grid md-typeset"> 100 101 <button class="md-banner__button md-icon" aria-label="Don't show this again"> 102 103 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> 104 </button> 105 106 107<!-- <p style="text-align: center; font-size: 14px; font-family: 'STFangsong', 'FangSong_GB2312', 'FangSong', 'Apple LiSung Light';">齿é£é¢ï¼å½©é²ææ£ãå¿æ¯å¤©é«ï¼èº«çºä¸è³¤ã<br>風æµéå·§æäººæ¨ã壽å¤å¤å æ¯è¬çï¼å¤æ å ¬å空ç½å¿µã</p> --> 108<!-- <p style="text-align: center; font-size: 14px; font-family: 'STFangsong', 'FangSong_GB2312', 'FangSong', 'Apple LiSung Light';">ç½çå åæ¥è§£èï¼æ±é¢¨æ²å¾åå»ãèåè¶é£äºç´ç´ï¼å¹¾æ¾é¨éæ°´ï¼è±å¿ å§è³å¡µï¼<br>è¬ç¸·åçµ²çµä¸æ¹ï¼ä»»ä»é¨èé¨åãé¶è¯ä¼ç¬æ¬ç¡æ ¹ï¼å¥½é¢¨é »ååï¼éæä¸éé²ã</p> --> 109<!-- <p class="poem">å度人人綺宴éï¼æé¢å度ä¸ååã<br>æ é¡ä¸å»ç¡æ¶æ¯ï¼å¿å°åå±±ç壽æ¯ã</p> --> 110<!-- <p class="poem">è颿±å¤©æ¼¸æ¼¸è¡°ï¼å¹¸å¾å¤©æ©éé¨ä¾ã<br>æå»åä¾è½è®åï¼æ±è¬è«¸äºéå¿æ·ã</p> --> 111<!-- <p class="poem">å¸åèå®èçæ¶¯ï¼æå®èº«å¿è«è½éªã<br>ç´å¾ æäººè¼èåï¼æ»¿åæ¯æ¨åéè±ã</p> --> 112<!-- <p class="poem">çæ¯ç訣å¦éç¥ï¼ä¸å±æ¾ç¶å¹¾åº¦æ¥ã<br>èªåºæ´ä¾ç¡æµæï¼å¾é¥äººèä¸é¥äººã</p> --> 113<!-- <p class="poem">åç¥åè亦åä»ï¼éåé鿝éè³¢ã<br>è ¦ä¸çæ©ç¨ä¸ç¡ï¼ææ¡ææ¦åé天ã</p> --> 114<!-- <p class="poem">èªå°åºé æ·±è裡ï¼è仿¼¸è¦ºåºè¬è¿ã<br>æäººä¸èå鲿¨ï¼ç´å¾ åé²å§éé«ã</p> --> 115<!-- <p class="poem">ç¸è¦æé£å¥äº¦é£ï¼æ±é¢¨ç¡åç¾è±æ®ãæ¥è ¶å°æ»çµ²æ¹ç¡ï¼è ç¬æç°æ·å§ä¹¾ã<br>æé¡ä½æé²é¬¢æ¹ï¼å¤åæè¦ºæå å¯ãè¬å±±æ¤å»ç¡å¤è·¯ï¼é鳥殷å¤çºæ¢çã</p> --> 116<!-- <p class="poem">極ç®è¥å£éï¼èèè½èç§ã人ç¶é¿é¨é¦¬ï¼å¤¢å·²é丹ä¸ã<br>æ¯ç©´çæé¡ï¼åæ¸æ³çæ¨ãé¤è³ç¥æªæï¼å«åå¨çæ´²ã</p> --> 117<!-- <p class="poem">æå±±èä¸ä½çºè ï¼ä¸å°ºéé¾ä¸åæ³¥ã<br>ä¸åæ·å´èä¸è©¦ï¼å¦è鬼æ¯å¤æ²å¼ã</p> --> 118<!-- <p class="poem">ç½æ¥ä¾å±±ç¡ï¼é»æ²³å ¥æµ·æµã<br>欲窮åéç®ï¼æ´ä¸ä¸å±¤æ¨ã</p> --> 119<!-- <p class="poem">æµ·ä¸çææï¼å¤©æ¶¯å ±æ¤æã<br>æ 人æ¨éå¤ï¼ç«å¤èµ·ç¸æã</p> --> 120<!-- <p class="poem">è¢æçª®å±±ä¸å°å¹´ï¼ä½æ¾æå¤¢å°æ¾¶æ·µã<br>è±éæ£èªç¡äººèï¼èä¸ååå´å¶ç¶ã</p> --> 121<p class="poem">æ¥å®¶ç´ æèè±éï¼è叽宵奿è¡å ¬ã<br>è«éè±é仿²æï¼èª°äººçå¨ç¼çä¸ï¼</p> 122 123 </div> 124 125
125<script>var el=document.querySelector("[data-md-component=announce]");if(el){var content=el.querySelector(".md-typeset");__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0)}</script>
125 126 127 </aside> 128 129 </div> 130 131 132 <!-- 133 Copyright (c) 2016-2025 Martin Donath <[email protected]> 134 135 Permission is hereby granted, free of charge, to any person obtaining a copy 136 of this software and associated documentation files (the "Software"), to 137 deal in the Software without restriction, including without limitation the 138 rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 139 sell copies of the Software, and to permit persons to whom the Software is 140 furnished to do so, subject to the following conditions: 141 142 The above copyright notice and this permission notice shall be included in 143 all copies or substantial portions of the Software. 144 145 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 146 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 147 FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 148 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 149 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 150 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 151 IN THE SOFTWARE. 152--> 153 154<!-- Determine classes --> 155 156 157 158 159 160<!-- Header --> 161<header class="md-header md-header--shadow" data-md-component="header"> 162 <nav 163 class="md-header__inner md-grid" 164 aria-label="Header" 165 > 166 167 <!-- Link to home --> 168 <a 169 href=".." 170 class="md-header__button md-logo" 171 aria-label="Xin Huang, PhD" 172 data-md-component="logo" 173 > 174 175 <img src="../assets/seal.svg" alt="logo"> 176 177 </a> 178 179 <!-- Button to open drawer --> 180 <label class="md-header__button md-icon" for="__drawer"> 181 182 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> 183 </label> 184 185 <!-- Header title --> 186 <div class="md-header__title" data-md-component="header-title"> 187 <div class="md-header__ellipsis"> 188 <div class="md-header__topic"> 189 <span class="md-ellipsis"> 190 Xin Huang, PhD 191 </span> 192 </div> 193 <div class="md-header__topic" data-md-component="header-topic"> 194 <span class="md-ellipsis"> 195 196 Selected Software 197 198 </span> 199 </div> 200 </div> 201 </div> 202 203 <!-- Color palette toggle --> 204 205 206 <form class="md-header__option" data-md-component="palette"> 207 208 209 210 211 <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="lime" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0"> 212 213 <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden> 214 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"/></svg> 215 </label> 216 217 218 219 220 221 <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="yellow" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1"> 222 223 <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden> 224 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6m0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4M7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"/></svg> 225 </label> 226 227 228</form> 229 230 231 232 <!-- User preference: color palette --> 233 234
234<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
234 235 236 237 <!-- Site language selector --> 238 239 240 <!-- Button to open search modal --> 241 242 243 244 <!-- Check if search is actually enabled - see https://t.ly/DT_0V --> 245 246 <label class="md-header__button md-icon" for="__search"> 247 248 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> 249 </label> 250 251 <!-- Search interface --> 252 <div class="md-search" data-md-component="search" role="dialog"> 253 <label class="md-search__overlay" for="__search"></label> 254 <div class="md-search__inner" role="search"> 255 <form class="md-search__form" name="search"> 256 <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required> 257 <label class="md-search__icon md-icon" for="__search"> 258 259 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> 260 261 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> 262 </label> 263 <nav class="md-search__options" aria-label="Search"> 264 265 <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1"> 266 267 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> 268 </button> 269 </nav> 270 271 </form> 272 <div class="md-search__output"> 273 <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix> 274 <div class="md-search-result" data-md-component="search-result"> 275 <div class="md-search-result__meta"> 276 Initializing search 277 </div> 278 <ol class="md-search-result__list" role="presentation"></ol> 279 </div> 280 </div> 281 </div> 282 </div> 283</div> 284 285 286 287 <!-- Repository information --> 288 289 <div class="md-header__source"> 290 <!-- 291 Copyright (c) 2016-2025 Martin Donath <[email protected]> 292 293 Permission is hereby granted, free of charge, to any person obtaining a copy 294 of this software and associated documentation files (the "Software"), to 295 deal in the Software without restriction, including without limitation the 296 rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 297 sell copies of the Software, and to permit persons to whom the Software is 298 furnished to do so, subject to the following conditions: 299 300 The above copyright notice and this permission notice shall be included in 301 all copies or substantial portions of the Software. 302 303 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 304 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 305 FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 306 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 307 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 308 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 309 IN THE SOFTWARE. 310--> 311 312<!-- Repository information --> 313<a 314 href="https://xin-huang.github.io/cv/Xin_Huang_CV.pdf" 315 class="md-source" 316 data-md-component="source" 317> 318 <div class="md-source__icon md-icon"> 319 320 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6zm0 2h7v5h5v11H6zm2 8v2h8v-2zm0 4v2h5v-2z"/></svg> 321 </div> 322 <div class="md-source__repository"> 323 CV 324 </div> 325</a> 326 </div> 327 328 </nav> 329 330 <!-- Navigation tabs (sticky) --> 331 332</header> 333 334 <div class="md-container" data-md-component="container"> 335 336 337 338 339 340 341 <main class="md-main" data-md-component="main"> 342 <div class="md-main__inner md-grid"> 343 344 345 346 <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" > 347 <div class="md-sidebar__scrollwrap"> 348 <div class="md-sidebar__inner"> 349 350 351 352 353<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0"> 354 <label class="md-nav__title" for="__drawer"> 355 <a href=".." title="Xin Huang, PhD" class="md-nav__button md-logo" aria-label="Xin Huang, PhD" data-md-component="logo"> 356 357 <img src="../assets/seal.svg" alt="logo"> 358 359 </a> 360 Xin Huang, PhD 361 </label> 362 363 <div class="md-nav__source"> 364 <!-- 365 Copyright (c) 2016-2025 Martin Donath <[email protected]> 366 367 Permission is hereby granted, free of charge, to any person obtaining a copy 368 of this software and associated documentation files (the "Software"), to 369 deal in the Software without restriction, including without limitation the 370 rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 371 sell copies of the Software, and to permit persons to whom the Software is 372 furnished to do so, subject to the following conditions: 373 374 The above copyright notice and this permission notice shall be included in 375 all copies or substantial portions of the Software. 376 377 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 378 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 379 FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE 380 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 381 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 382 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 383 IN THE SOFTWARE. 384--> 385 386<!-- Repository information --> 387<a 388 href="https://xin-huang.github.io/cv/Xin_Huang_CV.pdf" 389 class="md-source" 390 data-md-component="source" 391> 392 <div class="md-source__icon md-icon"> 393 394 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
394<path d="M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6zm0 2h7v5h5v11H6zm2 8v2h8v-2zm0 4v2h5v-2z"/></svg> 395 </div> 396 <div class="md-source__repository"> 397 CV 398 </div> 399</a> 400 </div> 401 402 <ul class="md-nav__list" data-md-scrollfix> 403 404 405 406 407 408 409 410 <li class="md-nav__item"> 411 <a href=".." class="md-nav__link"> 412 413 414 415 <span class="md-ellipsis"> 416 417 418 About 419 420 421 422 </span> 423 424 425 426 </a> 427 </li> 428 429 430 431 432 433 434 435 436 437 <li class="md-nav__item"> 438 <a href="../publications/" class="md-nav__link"> 439 440 441 442 <span class="md-ellipsis"> 443 444 445 Selected Publications 446 447 448 449 </span> 450 451 452 453 </a> 454 </li> 455 456 457 458 459 460 461 462 463 464 465 466 <li class="md-nav__item md-nav__item--active"> 467 468 <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc"> 469 470 471 472 473 474 <a href="./" class="md-nav__link md-nav__link--active"> 475 476 477 478 <span class="md-ellipsis"> 479 480 481 Selected Software 482 483 484 485 </span> 486 487 488 489 </a> 490 491 </li> 492 493 494 495 496 497 498 499 500 501 <li class="md-nav__item"> 502 <a href="../development/" class="md-nav__link"> 503 504 505 506 <span class="md-ellipsis"> 507 508 509 Development Guideline 510 511 512 513 </span> 514 515 516 517 </a> 518 </li> 519 520 521 522 </ul> 523</nav> 524 </div> 525 </div> 526 </div> 527 528 529 530 <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" > 531 <div class="md-sidebar__scrollwrap"> 532 <div class="md-sidebar__inner"> 533 534 535<nav class="md-nav md-nav--secondary" aria-label="Table of contents"> 536 537 538 539 540 541 542</nav> 543 </div> 544 </div> 545 </div> 546 547 548 549 <div class="md-content" data-md-component="content"> 550 551 <article class="md-content__inner md-typeset"> 552 553 554 555 556 557<h1 id="selected-software">Selected Software</h1> 558<table class="no-borders"> 559 <tr> 560 <td><strong>â¢</strong> <a href="https://github.com/xin-huang/dadi-cli" target="_blank">dadi-cli</a>: Automated and Distributed Population Genetic Model Inference from Allele Frequency Spectra</td> 561 <td align="right"><a href="https://dadi-cli.readthedocs.io/en/latest/?badge=latest" target="_blank"><img alt="dadi-cli-manual" src="https://img.shields.io/badge/Manual-red?style=for-the-badge"></a></td> 562 </tr> 563 <tr> 564 <td><strong>â¢</strong> <a href="https://github.com/xin-huang/sstar" target="_blank">sstar</a>: Detecting Archaic Introgression from Population Genetic Data with <i>S</i>*</td> 565 <td align="right"><a href="https://xin-huang.github.io/sstar" target="_blank"><img alt="sstar-manual" src="https://img.shields.io/badge/Manual-orange?style=for-the-badge"></a></td> 566 </tr> 567 <tr> 568 <td><strong>â¢</strong> <a href="https://github.com/xin-huang/sai" target="_blank">SAI</a>: Statistics for Adaptive Introgression</td> 569 <td align="right"><a href="https://xin-huang.github.io/sai" target="_blank"><img alt="sai-manual" src="https://img.shields.io/badge/Manual-yellow?style=for-the-badge"></a></td> 570 </tr> 571 <tr> 572 <td><strong>â¢</strong> <a href="https://github.com/xin-huang/selscape" target="_blank">selscape</a>: Snakemake Workflow for Investigating Genomic Landscapes of Natural Selection</td> 573 <td align="right"><a href="https://xin-huang.github.io/selscape" target="_blank"><img alt="selscape-manual" src="https://img.shields.io/badge/Manual-green?style=for-the-badge"></a></td> 574 </tr> 575 <tr> 576 <td><strong>â¢</strong> <a href="https://github.com/xin-huang/gaishi" target="_blank">GAISHI</a>: Genomic Analysis of Introgressed-Site and -Haplotype Identification</td> 577 <td align="right"><a href="https://xin-huang.github.io/gaishi" target="_blank"><img alt="gaishi-manual" src="https://img.shields.io/badge/Manual-blue?style=for-the-badge"></a></td> 578 </tr> 579</table> 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 </article> 596 </div> 597 598
599<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
599 600 </div> 601 602 </main> 603 604 <footer class="md-footer"> 605 606 <div class="md-footer-meta md-typeset"> 607 <div class="md-footer-meta__inner md-grid"> 608 <div class="md-copyright"> 609 610 <div class="md-copyright__highlight"> 611 Copyright © 2017â2026 Xin Huang 612 </div> 613 614 615 Made with 616 <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> 617 Material for MkDocs 618 </a> 619 620</div> 621 622 623<div class="md-social"> 624 625 626 627 628 629 630 631 632 <a href="https://orcid.org/0000-0002-9918-9602" target="_blank" rel="noopener" title="orcid.org" class="md-social__link"> 633 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 0C5.372 0 0 5.372 0 12s5.372 12 12 12 12-5.372 12-12S18.628 0 12 0M7.369 4.378c.525 0 .947.431.947.947s-.422.947-.947.947a.95.95 0 0 1-.947-.947c0-.525.422-.947.947-.947m-.722 3.038h1.444v10.041H6.647zm3.562 0h3.9c3.712 0 5.344 2.653 5.344 5.025 0 2.578-2.016 5.025-5.325 5.025h-3.919zm1.444 1.303v7.444h2.297c3.272 0 4.022-2.484 4.022-3.722 0-2.016-1.284-3.722-4.097-3.722z"/></svg> 634 </a> 635 636 637 638 639 640 641 642 643 <a href="https://scholar.google.com/citations?hl=en&user=U_jbftIAAAAJ&view_op=list_works&sortby=pubdate" target="_blank" rel="noopener" title="scholar.google.com" class="md-social__link"> 644 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5.242 13.769 0 9.5 12 0l12 9.5-5.242 4.269C17.548 11.249 14.978 9.5 12 9.5c-2.977 0-5.548 1.748-6.758 4.269M12 10a7 7 0 1 0 0 14 7 7 0 0 0 0-14"/></svg> 645 </a> 646 647 648 649 650 651 652 653 654 <a href="https://www.researchgate.net/profile/Xin-Huang-26" target="_blank" rel="noopener" title="www.researchgate.net" class="md-social__link"> 655 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19.586 0q-1.226.001-2.073.565-.846.565-1.213 1.68a3 3 0 0 0-.112.437 8 8 0 0 0-.078.53 9 9 0 0 0-.05.727q-.014.423-.013 1.016a31.121 31.123 0 0 0 .014 1.017 9 9 0 0 0 .05.727 8 8 0 0 0 .077.53h-.005a3 3 0 0 0 .113.438q.368 1.114 1.214 1.68.847.564 2.075.564c.8 0 1.536-.213 2.105-.603.57-.39.94-.916 1.175-1.65.076-.235.135-.558.177-.93a11 11 0 0 0 .043-1.207v-.82q0-.142-.14-.142h-3.064q-.14 0-.14.141v.956q0 .14.14.14h1.666q.084.001.084.086c0 .36 0 .62-.036.865-.038.244-.1.447-.147.606-.108.385-.348.664-.638.876s-.738.35-1.227.35c-.545 0-.901-.15-1.21-.353-.306-.203-.517-.454-.67-.915a3.1 3.1 0 0 1-.147-.762 17.366 17.367 0 0 1-.034-.656q-.015-.39-.014-.939a26.401 26.403 0 0 1 .014-.938 16 16 0 0 1 .035-.656 3.2 3.2 0 0 1 .148-.76 1.9 1.9 0 0 1 .742-1.01c.344-.244.593-.352 1.137-.352.508 0 .815.096 1.144.303.33.207.528.492.764.925q.069.141.198.07l1.044-.43q.113-.072.042-.199a3.6 3.6 0 0 0-.466-.742 3 3 0 0 0-.679-.607 3.3 3.3 0 0 0-.903-.41A4 4 0 0 0 19.586 0M8.217 5.836c-1.69 0-3.036.086-4.297.086-1.146 0-2.291 0-3.007-.029v.831l1.088.2c.744.144 1.174.488 1.174 2.264v11.288c0 1.777-.43 2.12-1.174 2.263l-1.088.2v.832c.773-.029 2.12-.086 3.465-.086 1.29 0 2.951.057 3.667.086v-.831l-1.49-.2c-.773-.115-1.174-.487-1.174-2.264v-4.784c.688.057 1.29.057 2.206.057 1.748 3.123 3.41 5.472 4.355 6.56.86 1.032 2.177 1.691 3.839 1.691.487 0 1.003-.086 1.318-.23v-.744c-1.031 0-2.063-.716-2.808-1.518-1.26-1.376-2.95-3.582-4.355-6.074 2.32-.545 4.04-2.722 4.04-4.9 0-3.208-2.492-4.698-5.758-4.698zm-.515 1.29c2.406 0 3.839 1.26 3.839 3.552 0 2.263-1.547 3.782-4.097 3.782-.974 0-1.404-.03-2.063-.086v-7.19c.66-.059 1.547-.059 2.32-.059z"/></svg> 656 </a> 657 658 659 660 661 662 663 664 665 <a href="https://github.com/xin-huang" target="_blank" rel="noopener" title="github.com" class="md-social__link"> 666 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg> 667 </a> 668 669 670 671 672 673 674 675 676 <a href="https://huggingface.co/xin-huang" target="_blank" rel="noopener" title="huggingface.co" class="md-social__link"> 677 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
677<path d="M12.025 1.13c-5.77 0-10.449 4.647-10.449 10.378 0 1.112.178 2.181.503 3.185.064-.222.203-.444.416-.577a.96.96 0 0 1 .524-.15c.293 0 .584.124.84.284.278.173.48.408.71.694.226.282.458.611.684.951v-.014c.017-.324.106-.622.264-.874s.403-.487.762-.543c.3-.047.596.06.787.203s.31.313.4.467c.15.257.212.468.233.542.01.026.653 1.552 1.657 2.54.616.605 1.01 1.223 1.082 1.912.055.537-.096 1.059-.38 1.572.637.121 1.294.187 1.967.187.657 0 1.298-.063 1.921-.178-.287-.517-.44-1.041-.384-1.581.07-.69.465-1.307 1.081-1.913 1.004-.987 1.647-2.513 1.657-2.539.021-.074.083-.285.233-.542.09-.154.208-.323.4-.467a1.08 1.08 0 0 1 .787-.203c.359.056.604.29.762.543s.247.55.265.874v.015c.225-.34.457-.67.683-.952.23-.286.432-.52.71-.694.257-.16.547-.284.84-.285a.97.97 0 0 1 .524.151c.228.143.373.388.43.625l.006.04a10.3 10.3 0 0 0 .534-3.273c0-5.731-4.678-10.378-10.449-10.378M8.327 6.583a1.5 1.5 0 0 1 .713.174 1.487 1.487 0 0 1 .617 2.013c-.183.343-.762-.214-1.102-.094-.38.134-.532.914-.917.71a1.487 1.487 0 0 1 .69-2.803m7.486 0a1.487 1.487 0 0 1 .689 2.803c-.385.204-.536-.576-.916-.71-.34-.12-.92.437-1.103.094a1.487 1.487 0 0 1 .617-2.013 1.5 1.5 0 0 1 .713-.174m-10.68 1.55a.96.96 0 1 1 0 1.921.96.96 0 0 1 0-1.92m13.838 0a.96.96 0 1 1 0 1.92.96.96 0 0 1 0-1.92M8.489 11.458c.588.01 1.965 1.157 3.572 1.164 1.607-.007 2.984-1.155 3.572-1.164.196-.003.305.12.305.454 0 .886-.424 2.328-1.563 3.202-.22-.756-1.396-1.366-1.63-1.32q-.011.001-.02.006l-.044.026-.01.008-.03.024q-.018.017-.035.036l-.032.04a1 1 0 0 0-.058.09l-.014.025q-.049.088-.11.19a1 1 0 0 1-.083.116 1.2 1.2 0 0 1-.173.18q-.035.029-.075.058a1.3 1.3 0 0 1-.251-.243 1 1 0 0 1-.076-.107c-.124-.193-.177-.363-.337-.444-.034-.016-.104-.008-.2.022q-.094.03-.216.087-.06.028-.125.063l-.13.074q-.067.04-.136.086a3 3 0 0 0-.135.096 3 3 0 0 0-.26.219 2 2 0 0 0-.12.121 2 2 0 0 0-.106.128l-.002.002a2 2 0 0 0-.09.132l-.001.001a1.2 1.2 0 0 0-.105.212q-.013.036-.024.073c-1.139-.875-1.563-2.317-1.563-3.203 0-.334.109-.457.305-.454m.836 10.354c.824-1.19.766-2.082-.365-3.194-1.13-1.112-1.789-2.738-1.789-2.738s-.246-.945-.806-.858-.97 1.499.202 2.362c1.173.864-.233 1.45-.685.64-.45-.812-1.683-2.896-2.322-3.295s-1.089-.175-.938.647 2.822 2.813 2.562 3.244-1.176-.506-1.176-.506-2.866-2.567-3.49-1.898.473 1.23 2.037 2.16c1.564.932 1.686 1.178 1.464 1.53s-3.675-2.511-4-1.297c-.323 1.214 3.524 1.567 3.287 2.405-.238.839-2.71-1.587-3.216-.642-.506.946 3.49 2.056 3.522 2.064 1.29.33 4.568 1.028 5.713-.624m5.349 0c-.824-1.19-.766-2.082.365-3.194 1.13-1.112 1.789-2.738 1.789-2.738s.246-.945.806-.858.97 1.499-.202 2.362c-1.173.864.233 1.45.685.64.451-.812 1.683-2.896 2.322-3.295s1.089-.175.938.647-2.822 2.813-2.562 3.244 1.176-.506 1.176-.506 2.866-2.567 3.49-1.898-.473 1.23-2.037 2.16c-1.564.932-1.686 1.178-1.464 1.53s3.675-2.511 4-1.297c.323 1.214-3.524 1.567-3.287 2.405.238.839 2.71-1.587 3.216-.642.506.946-3.49 2.056-3.522 2.064-1.29.33-4.568 1.028-5.713-.624"/></svg> 678 </a> 679 680 681 682 683 684 685 686 687 <a href="https://pypi.org/user/xin-huang" target="_blank" rel="noopener" title="pypi.org" class="md-social__link"> 688 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m14.25.18.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z"/></svg> 689 </a> 690 691</div> 692 693 </div> 694 </div> 695</footer> 696 697 </div> 698 <div class="md-dialog" data-md-component="dialog"> 699 <div class="md-dialog__inner md-typeset"></div> 700 </div> 701 702 703 704 705 706
706<script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["announce.dismiss", "content.tooltips"], "search": "../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
706 707 708 709
709<script src="../assets/javascripts/bundle.79ae519e.min.js"></script>
709 710 711 712 </body> 713</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.