{"id":26766126,"url":"https://github.com/ucl/metafloat","last_synced_at":"2026-02-14T18:33:02.784Z","repository":{"id":43602883,"uuid":"412068849","full_name":"UCL/metafloat","owner":"UCL","description":"Estimation of covariate interactions and subgroup-specific treatment effects in meta-analysis.","archived":false,"fork":false,"pushed_at":"2025-12-05T13:51:27.000Z","size":318,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-12-09T00:12:49.830Z","etag":null,"topics":["meta-analysis","randomized-controlled-trials","stata","subgroups"],"latest_commit_sha":null,"homepage":"https://doi.org/10.1002/jrsm.1590","language":"Stata","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UCL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-09-30T13:08:16.000Z","updated_at":"2025-12-05T13:51:30.000Z","dependencies_parsed_at":"2024-04-18T14:27:24.036Z","dependency_job_id":"eceeefec-0922-47bc-84fd-c33ee17ea06f","html_url":"https://github.com/UCL/metafloat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/UCL/metafloat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UCL%2Fmetafloat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UCL%2Fmetafloat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UCL%2Fmetafloat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UCL%2Fmetafloat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UCL","download_url":"https://codeload.github.com/UCL/metafloat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UCL%2Fmetafloat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29452371,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T15:52:44.973Z","status":"ssl_error","status_checked_at":"2026-02-14T15:52:11.208Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["meta-analysis","randomized-controlled-trials","stata","subgroups"],"created_at":"2025-03-28T20:19:13.610Z","updated_at":"2026-02-14T18:33:02.779Z","avatar_url":"https://github.com/UCL.png","language":"Stata","readme":"\u003ca href =\"https://www.mrcctu.ucl.ac.uk/\"\u003e\u003cimg src=\"logo_ukri-mrc-ctu_transparent-background.png\" width=\"50%\" /\u003e\u003c/a\u003e\n\n# metafloat\n v0.18  24nov2025\n\n# A Stata package to estimate covariate interactions and subgroup-specific treatment effects in meta-analysis\n\nMeta-analysis is a statistical technique for combining results from multiple independent studies, with the aim of estimating a single overall effect. However, it can also be used for assessing how treatment effects vary across participant subgroups. Ideally, this assessment will be based on treatment-covariate interaction effects derived _within each trial separately_, so that the pooled effects are free from aggregation bias. In particular, `metafloat` provides a simple way of estimating pooled interactions and \"floating\" subgroup-specific treatment effects from a set of observed (published, or otherwise pre-aggregated) treatment effects by trial and by subgroup.\n\nSee [Godolphin et al (2023)](https://doi.org/10.1002/jrsm.1590) for more information on the underlying methodology. The lead author, Dr Godolphin, also gave a [Cochrane webinar](https://training.cochrane.org/resource/estimating-interactions-and-subgroup-effects-in-aggregate-data-meta-analysis) on the methodology in January 2024.\n\n\n# Installation\n\nTo install the package directly from GitHub, type from within Stata:\n\n    . net describe metafloat, from(\"https://raw.githubusercontent.com/UCL/metafloat/master/src/\")\n\n# Usage and documentation\n\nCurrently, documentation on usage and options may be found in the documentation files within Stata.  After installation, type in Stata:\n\n    . help metafloat\n\n# Example\nA \"two-panel\" subgroup and interaction forest plot, as proposed by [Godolphin et al. (2023)](https://doi.org/10.1002/jrsm.1590)\n\nData taken from Supplementary Appendix 2, and displayed in Figure 1, of Godolphin et al (as above).\nData originally presented in Supplement 2, page 14, of [Shankar-Hari et al. (2021)](https://doi.org/10.1001/jama.2021.11330).\n\nNote that this same example is used to demonstrate the `metan` and `forestplot` commands within the [metan GitHub pages](https://github.com/UCL/metan/main/Examples/Example5.md), but without using `metafloat` directly (and without generating subgroup-specific treatment effects free from aggregation bias). It may be seen that far more lines of code are needed.\n\nTo run this example in full, the `forestplot` command is required.  This command is part of the `metan` [package](https://github.com/UCL/metan), which may be installed by typing:\n\n    . net describe metan, from(\"https://raw.githubusercontent.com/UCL/metan/master/src/\")\n\n\u003ca href =\"https://github.com/UCL/metafloat/blob/main\"\u003e\u003cimg src=\"Example5_Godolphin.png\" width=\"75%\" alt=\"forest plot\" /\u003e\u003c/a\u003e\n\n```Stata\n* Example generated by -dataex-. For more info, type help dataex\nclear\ninput str17 TrialName byte Subgroup int(n0 e0 n1 e1)\n\"ARCHITECTS\"        0    0   0    1   0\n\"ARCHITECTS\"        1   11   2    9   0\n\"BACC-Bay\"          0   81   4  158   9\n\"BACC-Bay\"          1    1   0    3   0\n\"CORIMUNO-TOCI-1\"   0   55   5   53   6\n\"CORIMUNO-TOCI-1\"   1   12   3   10   1\n\"CORIMUNO-TOCI-ICU\" 0   39   8   41   4\n\"CORIMUNO-TOCI-ICU\" 1    4   2    8   4\n\"COV-AID\"           0   30   4   33   3\n\"COV-AID\"           1   42   3   48   6\n\"COVACTA\"           0  103  16  238  44\n\"COVACTA\"           1   41  12   56  14\n\"COVIDOSE2-SS-A\"    0    6   1   13   0\n\"COVIDOSE2-SS-A\"    1    2   1    6   0\n\"EMPACTA\"           0   16   0   49   2\n\"EMPACTA\"           1  112  11  200  24\n\"HMO-020-0224\"      0    2   0    6   1\n\"HMO-020-0224\"      1   15   8   31  10\n\"ImmCoVA\"           0    1   0    1   0\n\"ImmCoVA\"           1   26   2   21   2\n\"PreToVid\"          0   11   2   11   1\n\"PreToVid\"          1  167  32  159  20\n\"RECOVERY\"          0  367 127  357 139\n\"RECOVERY\"          1 1721 600 1664 482\n\"REMAP-CAP\"         0  129  41  127  30\n\"REMAP-CAP\"         1  217  73  214  53\n\"REMDACTA\"          0   29   2   72   9\n\"REMDACTA\"          1  181  39  358  69\n\"TOCIBRAS\"          0   30   1   34   6\n\"TOCIBRAS\"          1   34   5   31   8\nend\n\ngenerate long f1 = n1 - e1\ngenerate long f0 = n0 - e0\nquietly metan e1 f1 e0 f0, or nogr keeporder\n\nlabel variable Trial Trial\nlabel variable Subgroup `\"\"Corticosteroid use\"\"'\nmetafloat _ES _seES, study(Trial) subgroup(Subgroup) fixed clear keepvars(e1 n1 e0 n0) \n\ngen counts0 = strofreal(cond(missing(e0), 0, e0)) + \"/\" + strofreal(cond(missing(n0), 0, n0)) if inlist(_y_USE, 1, 2)\ngen counts1 = strofreal(cond(missing(e1), 0, e1)) + \"/\" + strofreal(cond(missing(n1), 0, n1)) if inlist(_y_USE, 1, 2)\nlabel variable counts0 `\"\"Usual care\" \"n/N\"\"'\nlabel variable counts1 `\"\"Tocilizumab\" \"n/N\"\"'\n\nforestplot, prefix(_y) labels(_LABELS) or nowt lcols(counts0 counts1) keepall ///\n\tfavours(\"Favours tocilizumab\" \" \" # \"Favours usual care\" \" \") ///\n\txlabel(.125 \"0.125\" 1 8) range(.125 8) cirange(.2 8) boxsca(50) texts(150) astext(50) savedims(A) graphregion(color(white)) scheme(s2color) name(left)\n\nforestplot, prefix(_yInt) interaction usedims(A) nonames eform effect(\"Interact. Odds Ratio\") keepall nowt ///\n\tfavours(\"Favours greater effect of tocilizumab\" \"with corticosteroids\" ///\n\t# \"Favours greater effect of tocilizumab\" \"without corticosteroids\", fp(8)) ///\n\txlabel(.125 \"0.125\" 1 8) range(.125 8) cirange(.2 8) texts(150) graphregion(color(white)) scheme(s2color) name(right)\n\ngraph combine left right, imargin(zero) xsize(4.5) graphregion(color(white)) scheme(s2color)\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucl%2Fmetafloat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fucl%2Fmetafloat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucl%2Fmetafloat/lists"}