{"id":61,"date":"2026-01-12T21:28:07","date_gmt":"2026-01-12T21:28:07","guid":{"rendered":"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/?page_id=61"},"modified":"2026-04-24T13:07:00","modified_gmt":"2026-04-24T13:07:00","slug":"software-2","status":"publish","type":"page","link":"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/software-2\/","title":{"rendered":"Software"},"content":{"rendered":"\n<p><a href=\"https:\/\/github.com\/mdegiorgio\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>DeGiorgio Group GitHub Page<\/strong><\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/RuhAm\/SKINET\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>SKINET<\/strong><\/em><\/a><strong>&nbsp;<\/strong>(<strong>S<\/strong>upport vector&nbsp;<strong>K<\/strong>ernel for&nbsp;<strong>I<\/strong>nferring&nbsp;<strong>N<\/strong>atural selection and&nbsp;<strong>E<\/strong>volutionary&nbsp;<strong>T<\/strong>arget detection)<br>A Python program that implements the support vector kernel and associated predictive model&nbsp;<em>SKINET<\/em>&nbsp;of Amin&nbsp;<em>et al<\/em>. (submitted) for detecting and characterizing adaptive events by modeling structure within images of genetic variation.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/sandipanpaul06\/PULSe\/\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>PULSe<\/strong><\/em><\/a>&nbsp;(<strong>P<\/strong>ositive-<strong>U<\/strong>nlabeled&nbsp;<strong>L<\/strong>earning for&nbsp;<strong>Se<\/strong>lection detection)<br>A Python program that implements the semi-supervised classifier&nbsp;<em>PULSe<\/em>&nbsp;of Arnab&nbsp;<em>et al<\/em>. (2025; bioRxiv) for detecting adaptive regions that circumvents domain shift from unknown demographic parameters.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/riakanjilal\/ANDES\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>ANDES<\/strong><\/em><\/a>&nbsp;(<strong>AN<\/strong>omaly&nbsp;<strong>DE<\/strong>tection using&nbsp;<strong>S<\/strong>ummary statistics)<br>A program that implements the anomaly detection model&nbsp;<em>ANDES<\/em>&nbsp;of Kanjilal&nbsp;<em>et al<\/em>. (2025) for uncovering aberrant genomic regions by modeling genomic autocovariation with functional data analysis.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/sandipanpaul06\/TrIdent\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>TrIdent<\/strong><\/em><\/a>&nbsp;(<strong>TR<\/strong>ansfer learning for&nbsp;<strong>IDENT<\/strong>ification of adaptation)<br>A Python program that implements the classifier and predictor&nbsp;<em>TrIdent<\/em>&nbsp;of Arnab&nbsp;<em>et al<\/em>. (2025) for identifying and characterizing adaptive regions through transfer learning from haplotype images.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/RuhAm\/AlphaDAWG\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>\u03b1-DAWG<\/strong><\/em><\/a>&nbsp;(<strong>\u03b1<\/strong>-molecules for&nbsp;<strong>D<\/strong>etecting&nbsp;<strong>A<\/strong>daptive&nbsp;<strong>W<\/strong>indows in&nbsp;<strong>G<\/strong>enomes)<br>A Python program that implements the classifier&nbsp;<em>\u03b1-DAWG<\/em>&nbsp;of Amin&nbsp;<em>et al<\/em>. (2024) for identifying adaptive windows through \u03b1-molecule basis expansion of haplotype alignment images.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/anddssan\/CLOUDe\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>CLOUDe<\/strong><\/em><\/a>&nbsp;(<strong>CL<\/strong>assification using&nbsp;<strong>O<\/strong>rnstein-<strong>U<\/strong>hlenbeck of&nbsp;<strong>De<\/strong>letions)<br>An R program that implements the suite of machine learning methods&nbsp;<em>CLOUDe<\/em>&nbsp;of Campelos dos Santos&nbsp;<em>et al<\/em>. (2024) for predicting evolutionary targets of gene deletion events from expression data in two species.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/radamsRHA\/ROBRT\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>ROBRT<\/strong><\/em><\/a>&nbsp;(<strong>ROB<\/strong>ust<strong>R<\/strong>egression on&nbsp;<strong>T<\/strong>rees)<br>An R program that estimates trait association on phylogenetic trees using the robust L1, M, S, and MM phylogenetic independent contrast regression estimators of Adams&nbsp;<em>et al<\/em>. (2023).<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/RuhAm\/T-REx\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>T-REx<\/strong><\/em><\/a>&nbsp;(<strong>T<\/strong>ensor decomposition<strong>&#8211;<\/strong>based&nbsp;<strong>R<\/strong>obust feature&nbsp;<strong>E<\/strong>xtraction and classification)<br>A Python program that implements the classifier&nbsp;<em>T-REx<\/em>&nbsp;of Amin&nbsp;<em>et al<\/em>. (2023) for identifying adaptive regions through tensor decomposition of images of haplotype alignments.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/radamsRHA\/SpeciesTopoTestR\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>SpeciesTopoTestR<\/strong><\/em><\/a><br>An R program that computes the KH*, SH*, and SOWH* likelihood tests of species topology hypotheses of Adams and DeGiorgio (2023).<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/sandipanpaul06\/SISSSCO\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>SISSSCO<\/strong><\/em><\/a>&nbsp;(<strong>S<\/strong>pectral&nbsp;<strong>I<\/strong>nference of&nbsp;<strong>S<\/strong>ummary&nbsp;<strong>S<\/strong>tatistic&nbsp;<strong>S<\/strong>ignals using&nbsp;<strong>CO<\/strong>nvolutional neural networks)<br>A Python program that implements the classifier&nbsp;<em>SISSSCO<\/em>&nbsp;of Arnab&nbsp;<em>et al<\/em>. (2023) for identifying adaptive regions through spectral analysis of summary statistic signals.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/szpiech\/lassip\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>LASSI-Plus<\/strong><\/em><\/a><br>A program written in C++ that implements the likelihood ratio \u039b statistic of DeGiorgio and Szpiech (2021) for detecting selective sweeps and inferring their softness using the spatial distribution of distortions in the haplotype frequency spectrum. Software hosted by collaborator Zachary Szpiech.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/bioXiaoheng\/BallerMixPlus\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>BalLeRMix+<\/strong><\/em><\/a><br>A Python program that can simultaneously perform genomic scans of positive selection and long-term balancing selection using the composite likelihood ratio&nbsp;<em>B<\/em>&nbsp;statistics of Cheng and DeGiorgio (2022).<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/MehreenRuhi\/funbiased\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>funbiased<\/strong><\/em><\/a><br>A Python script that computes the unbiased estimators of&nbsp;<em>F<\/em><sub>2<\/sub>,&nbsp;<em>F<\/em><sub>3<\/sub>, normalized&nbsp;<em>F<\/em><sub>3<\/sub>, and normalzied&nbsp;<em>F<\/em><sub>4<\/sub>&nbsp;statistics of Mughal and DeGiorgio (2021).<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/radamsRHA\/PRDATR\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>PRDATR<\/strong><\/em><\/a>&nbsp;(<strong>PR<\/strong>obabilistic&nbsp;<strong>D<\/strong>istances under models of&nbsp;<strong>A<\/strong>daptive&nbsp;<strong>T<\/strong>rait evolution in&nbsp;<strong>R<\/strong>)<br>An R program that computes the probabilistic distances between phylogenetic models of continuous trait evolution of Adams&nbsp;<em>et al<\/em>&nbsp;(2021).<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/radamsRHA\/PhyloWGA\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>PhyloWGA<\/strong><\/em><\/a><br>An R program for performing chromosome-aware phylogenetic interrogation of whole genome alignments of Adams&nbsp;<em>et al<\/em>&nbsp;(2021).<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/rassis\/CLOUD\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>CLOUD<\/strong><\/em><\/a>\u00a0(<strong>CL<\/strong>assification using\u00a0<strong>O<\/strong>rnstein-<strong>U<\/strong>hlenbeck of\u00a0<strong>D<\/strong>uplicates)<br>An R program that implements the multi-layer neural network method\u00a0<em>CLOUD<\/em>\u00a0of DeGiorgio and Assis (2021) for classifying duplicate gene retention mechanisms and predicting their evolutionary parameters from gene expression data in two species.<\/p>\n\n\n\n<p><em><a href=\"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/surfdawave-sweep-inference-using-regularized-fda-with-wavelets\/\" data-type=\"link\" data-id=\"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/surfdawave-sweep-inference-using-regularized-fda-with-wavelets\/\">SURFDAWave&nbsp;<\/a><\/em>(Sweep inference&nbsp;Using&nbsp;Regularized&nbsp;FDA&nbsp;with&nbsp;Wavelets)<br>An R program that implements the classifier and predictor&nbsp;SURFDAWave&nbsp;of Mughal&nbsp;et al. (2020) for identifying adaptive targets and learning their evolutionary parameters using the spatial distribution of summary statistics around a test site.<\/p>\n\n\n\n<p><em><a href=\"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/volcanofinder\/\"><strong>VolcanoFinder<\/strong><\/a><\/em><br>A program written in C that can perform genomic scans for adaptive introgression using the composite likelihood ratio test of Setter&nbsp;<em>et al<\/em>. (2020).<\/p>\n\n\n\n<p><strong><em><a href=\"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/ballermix-balancing-selection-likelihood-ratio-mixture-models\/\">BalLeRMix<\/a><\/em>&nbsp;<\/strong>(<strong>BAL<\/strong>ancing selection&nbsp;<strong>L<\/strong>ik<strong>E<\/strong>lihood&nbsp;<strong>R<\/strong>atio&nbsp;<strong>MIX<\/strong>ture models)<br>A Python script that can perform genomic scans for balancing selection using the composite likelihood ratio&nbsp;<em>B<\/em>&nbsp;statistics of Cheng and DeGiorgio (2020).<\/p>\n\n\n\n<p><strong><em><a href=\"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/lassi-likelhood-based-approach-for-selective-sweep-inference\/\">LASSI<\/a><\/em>&nbsp;<\/strong>(<strong>L<\/strong>ikelhood-based&nbsp;<strong>A<\/strong>pproach for&nbsp;<strong>S<\/strong>elective&nbsp;<strong>S<\/strong>weep&nbsp;<strong>I<\/strong>nference)<br>A Python script that implements the likelihood ratio&nbsp;<em>T<\/em>&nbsp;statistic of Harris and DeGiorgio (2020) for detecting selective sweeps and inferring their softness.<\/p>\n\n\n\n<p><a href=\"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/ss-x12\/\"><em><strong>SS-X12<\/strong><\/em><\/a><br>A Python script that implements the classifier SS-H12 of Harris and DeGiorgio (2020) for detecting shared selective sweeps, and classifying them as ancestral or covergenent, as well as hard or soft.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/hillarykoch\/TASTI\" target=\"_blank\" rel=\"noreferrer noopener\"><em><strong>TASTI<\/strong><\/em><\/a>&nbsp;(<strong>T<\/strong>axa with&nbsp;<strong>A<\/strong>ncestral structure&nbsp;<strong>S<\/strong>pecies&nbsp;<strong>T<\/strong>ree&nbsp;<strong>I<\/strong>nference)<br>An R program that implements the maximum likelihood estimator of species trees in the presence of ancestral population structure of Koch and DeGiorgio (2020).<\/p>\n\n\n\n<p><em><strong><a href=\"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/trendsetter\/\">Trendsetter<\/a><\/strong><\/em><br>A Python script that implements the classifier&nbsp;<em>Trendsetter<\/em>&nbsp;of Mughal and DeGiorgio (2019) for classifying genomic regions as neutral, hard sweep, or soft sweep using the spatial distribution of summary statistics around a test site.<\/p>\n\n\n\n<p><em><strong><a href=\"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/mullet-multi-species-likelihood-tests\/\">MULLET<\/a><\/strong><\/em>&nbsp;(<strong>MUL<\/strong>ti-species&nbsp;<strong>L<\/strong>ik<strong>E<\/strong>lihood&nbsp;<strong>T<\/strong>ests)<br>A program written in C that can perform scans for ancient multi-species balancing selection in the absence of trans-species polymorphism using the composite likelihood ratio tests of Cheng and DeGiorgio (2019).<\/p>\n\n\n\n<p><em><strong><a href=\"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/mutebass-multi-species-balancing-selection-summaries\/\">MuteBaSS<\/a><\/strong><\/em>&nbsp;(<strong>MU<\/strong>l<strong>T<\/strong>i-sp<strong>E<\/strong>cies&nbsp;<strong>BA<\/strong>lancing&nbsp;<strong>S<\/strong>election&nbsp;<strong>S<\/strong>ummaries)<br>A Python script that computes multi-species variants of HKA and NCD for detecting long-term balancing selection from Cheng and DeGiorgio (2019).<\/p>\n\n\n\n<p><em><strong><a href=\"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/calcabs\/\">CalcABS<\/a><\/strong><\/em><br>A Python script that can perform genomic scans for ancestral selective sweeps using the ancestral branch statistic (ABS) of Cheng&nbsp;<em>et al<\/em>. (2017).<\/p>\n\n\n\n<p><a href=\"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/besthet\/\"><em><strong>BestHet<\/strong><\/em><\/a><br>An R script that computes the unbiased estimator of expected heterozygosity of Harris and DeGiorgio (2017) at a locus, as well as Fst and the locus-specific branch length, which are functions of expected heterozygosity.<\/p>\n\n\n\n<p><em><strong><a href=\"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/sweepfinder2\/\">SweepFinder2<\/a><\/strong><\/em><br>A program written in C that can perform genomic scans for recent selective sweeps selection while controlling for background selection and mutation rate variation (DeGiorgio&nbsp;<em>et al<\/em>. 2016).<\/p>\n\n\n\n<p><em><strong><a href=\"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/ballet-balancing-selection-likelihood-test\/\">BALLET<\/a><\/strong><\/em>&nbsp;(<strong>BAL<\/strong>ancing selection&nbsp;<strong>L<\/strong>ik<strong>E<\/strong>lihood&nbsp;<strong>T<\/strong>est)<br>A program written in C that can perform genomic scans for balancing selection using the composite likelihood ratio tests of DeGiorgio&nbsp;<em>et al<\/em>. (2014).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>DeGiorgio Group GitHub Page SKINET&nbsp;(Support vector&nbsp;Kernel for&nbsp;Inferring&nbsp;Natural selection and&nbsp;Evolutionary&nbsp;Target detection)A Python program that implements the support vector kernel and associated [&hellip;]<\/p>\n","protected":false},"author":101,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"normal-width-container","site-content-style":"boxed","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-61","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/wp-json\/wp\/v2\/pages\/61","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/wp-json\/wp\/v2\/users\/101"}],"replies":[{"embeddable":true,"href":"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/wp-json\/wp\/v2\/comments?post=61"}],"version-history":[{"count":31,"href":"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/wp-json\/wp\/v2\/pages\/61\/revisions"}],"predecessor-version":[{"id":350,"href":"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/wp-json\/wp\/v2\/pages\/61\/revisions\/350"}],"wp:attachment":[{"href":"https:\/\/faculty.eng.fau.edu\/degiorgiogroup\/wp-json\/wp\/v2\/media?parent=61"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}