ropensci / unconf18

http://unconf18.ropensci.org/
44 stars 4 forks source link

Percentiles and z scores in maternal child health #49

Open monicagerber opened 6 years ago

monicagerber commented 6 years ago

I often need to calculate percentiles, z scores, and other measures of growth in maternal & child health research. There are some SAS macros out there and a couple of R packages. The 2 R packages I found don't have all of the measures I need and are a bit clunky to use with tidyverse packages. There are other measures that don't have a SAS macro or R package, just a data table of LMS parameters in a manuscript (PDF). Ideally these methods would be available all in one place in an R package!

Here some things the package could calculate:

  1. Percentiles and z scores for BMI using the CDC reference charts (SAS program: https://www.cdc.gov/nccdphp/dnpao/growthcharts/resources/sas.htm). I've found 1 package (childsds) that does this, but does not have all of the options as the SAS macro. Importantly, it doesn't calculate %BMIp95 (percent of the 95th percentile of BMI), which is being used more in obesity research. The zscorer package only uses WHO growth charts. The CDC charts are standard in US pediatric obesity research. I have been in contact with the author of the SAS macro and he is very nice and fully supportive of turning this into an R package!

  2. Birth weight for gestational age z-score. I haven't seen a publicly available program for this. I use a SAS program copied from another analyst. (Ref: Oken, E., Kleinman, K. P., Rich-Edwards, J., & Gillman, M. W. (2003). A nearly continuous measure of birth weight for gestational age using a United States national reference. BMC pediatrics, 3(1), 6.)

  3. Child blood pressure percentiles. (https://sites.google.com/a/channing.harvard.edu/bernardrosner/pediatric-blood-press/childhood-blood-pressure/childhoodbppctsas)

Eventually this could also include measures of maternal gestational weight gain.

After speaking with Stefanie about this, it seems like this could be a good project for someone who hasn't made an R package (myself included). The calculations aren't too difficult.

jenniferthompson commented 6 years ago

Project will be taking place in the mchtoolbox repo!

hafen commented 6 years ago

Here are a few other related R packages:

Is there any interest in a unified package?

monicagerber commented 6 years ago

Thanks for reaching out! Yes, I'm interested in contributing to a unified package. What do you think is the best way forward? Do we contribute to the hbgd package and are you interested in adding contributors? How do measures of maternal health fit in? I think adding specific vignettes for SAS-to-R users would be really helpful for people who have previously relied on the SAS code I have posted above.

hafen commented 6 years ago

That sounds great! As far as how to proceed, I’m open to whatever makes sense to you and the other developers. I don’t want to step on any toes, and if everyone determines that the goals of this package are too different from mine, no problem. I’m open to the idea of merging the functionality of growthstandards into mchtoolbox. It’s nice that you have rOpenSci backing and good visibility already, where that’s not really my strong suit. I suppose the most important consideration would be whether the interface to my functions is radically different and what to standardize to so that things are consistent across different standards, etc. With that consideration, on my end I need to be mindful of a large number of people already using the package within my organization's work and what any changes would do to their workflow. I do like the idea of a shiny app that provides a nice interface to everything. Another question to consider is what is the ultimate vision of mchtoolbox. Is it growth standards and maternal health calculations, or is it more?

stefvanbuuren commented 6 years ago

As Ryan indicated, you can do some of these things with my AGD package, in particular with the y2z() and z2y() functions.

Some years ago, I started a more ambitious project and created an S4 package called clopus that

While a lot of effort has already gone into it, it's not yet robust enough to get published. In particular, I don't like my current data format for storing, and the functionality for searching through references. Also, the import and export functions could be more user friendly. Is someone interested in creating a "standard format" for references, and improving the IO and user experience? If so, I'd be happy to contribute the work I've done so far on this.

monicagerber commented 6 years ago

Thank you both @hafen and @stefvanbuuren for the comments and ideas. I think the next step is to write up an overview of these packages, including a summary of where there is overlap and what we'd like to add with this project. I'll also give you an overview of what the vision is for mchtoolbox. In short, I can say that my initial vision was to provide functions that are commonly used in maternal-child health obesity-focused research. I'll reply here once I've written up a better summary.

statist7 commented 6 years ago

I'd also be interested in a unified project. I developed the LMS method years ago, and the British 1990 growth reference, and also the IOTF child obesity cut-offs. My sitar growth curve package (on CRAN and GitHub) has a few functions for working with growth references.

Ryan's hbgd and Stef's AGD packages are both valuable, but they are restricted to specific references. In the UK we use a modification of the WHO reference called UK-WHO, and there would be a lot of interest clinically in providing it via a simple shiny interface. So I'd like a solution where one can specify the growth reference up-front and then work from there.

I also have ideas for other ways to visualise growth data, such as my thrive lines to assess growth velocity, which I think could be of clinical interest.

The appeal for me of providing a shiny interface would be not only to provide access to non-R users, but also to avoid the tension that exists between using long-informative and short-parsimonious function names.

Do let me know how I might contribute.

Tim Cole

monicagerber commented 6 years ago

I wrote a roundup of these packages and resources. Please comment if I am missing something. I will follow-up with thoughts on existing gaps and next steps.

stefaniebutland commented 6 years ago

And here's the blog post: Exploring ways to address gaps in maternal-child health research about the process of working on mchtoolbox at unconf18

diegopenhanut commented 6 years ago

I would like to help too. I know a little bit about R.

stefaniebutland commented 6 years ago

@diegopenhanut Thank you for expressing your interest in helping. The lead developer is away for ~ a month, so won't be responding for a while.

genevieveray1 commented 5 years ago

I am somewhat new to maternal & child health space (also new to github!!), and found this page while googling for a SAS macro to calculate the Birth weight for gestational age z-score. (Ref: Oken, E., Kleinman, K. P., Rich-Edwards, J., & Gillman, M. W. (2003). A nearly continuous measure of birth weight for gestational age using a United States national reference. BMC pediatrics, 3(1), 6.)

Any chance you'd be willing to share your SAS code @monicagerber ?

monicagerber commented 5 years ago

@genevieveray1 the CDC has SAS code available on their website.

genevieveray1 commented 5 years ago

Thanks! I did not see the z-score for gestational age code but I will check again!

monicagerber commented 5 years ago

@genevieveray1 sorry, I misread your message! I would try contacting the authors directly for the code.