În 2024, versiunea 0.2 a Ednajoint a fost revizuită de la egal la egal și aprobată de Ropensci, iar câteva luni mai târziu, a fost publicat un manuscris despre pachet în Metode în ecologie și evoluție. Reflectând asupra experienței mele, detaliez mai jos motivele pentru care am scris Ednajuncoferiți un exemplu despre modul de utilizare a pachetului și efectuați un apel la acțiune pentru oricine este interesat să mă ajute să extind pachetul în continuare.
De ce am creat EdnaJoint?
ADN-ul de mediu (EDNA)-materialul genetic lăsat de organismele din mediul lor-este din ce în ce mai utilizat ca o metodă eficientă și rentabilă în sondajele de distribuție și abundență a speciilor. Acest tip de date emergente prezintă noi oportunități și noi provocări, în special în jurul interpretării și fricii de detectări pozitive false. Adesea, probele de EDNA sunt colectate în locații care coincid cu sondajele folosind metode „tradiționale”, cum ar fi numărul vizual sau capturile de pescuit, totuși înțelegând modul în care aceste două tipuri de date ar trebui să se informeze reciproc poate fi dificilă.
În timpul publicării tezei de master despre urmărirea unui front de invazie cu ADN de mediu, unul dintre recenzori a sugerat că modelul dezvoltat în cercetare va face un pachet R bun. În câmpul EDNA a existat o nevoie clară a acestui pachet: ubicuitatea datelor EDNA a depășit software -ul conceput special pentru interpretarea acestui tip de date din ce în ce mai comun. Modelul a furnizat un cadru cantitativ pentru integrarea datelor EDNA cu observații din sondaje „tradiționale”, estimând probabilitatea unei detectări de EDNA false pozitive și compararea sensibilităților relative ale celor două metode de sondaj. Aceasta s -a simțit ca o oportunitate de a face ca rezultatele cercetării mele să fie impactante și să împuternicească un set mai larg de utilizatori pentru a interpreta cu încredere datele EDNA.
Nu am avut experiență de dezvoltare a software -ului, dar trei ani mai târziu și acum ca candidat la doctorat, pot împărtăși cu mândrie că pachetul este pe Cran și și -a găsit drumul către publicul meu țintă. Resurse precum Hadley Wickham și cartea lui Jennifer Bryan despre construirea pachetelor R și Rstantools Vignette Ghid pas cu pas pentru crearea unui pachet care depinde de RSTAN m -a ajutat să încep, iar procesul de resurse și revizuire Ropensci mi -au arătat cum să fac un pachet care să urmeze cele mai bune practici. Dezvoltarea pachetului a implicat ca modelul să fie mai generalizabil, permițând mai multe variații, încorporarea modelelor Bayesiene pre-compilate scrise în Stan în pachet și adăugarea de funcții suplimentare pentru a ajuta la interpretarea rezultatelor modelului. Important este că am generat un ghid de utilizator care sper să facă pachetul utilizabil și accesibil.
Cum folosești EdnaJoint?
Pachetul EdnaJoint este util pentru interpretarea observațiilor din ADN-ul de mediu pereche sau semi-pereche (EDNA) și sondajele tradiționale. Pachetul rulează un model Bayesian care integrează aceste două fluxuri de date pentru a „estima” parametrii modelului. Variațiile opționale permit includerea covariatelor la nivel de site care scalcă sensibilitatea eșantionării EDNA în raport cu eșantionarea tradițională, precum și estimarea coeficienților de scalare atunci când sunt utilizate mai multe metode tradiționale de sondaj cu eficiență diferite de captură.
Mai jos este un exemplu de încadrare a modelului comun la date de la observații de eșantionare a edNA -ului, replicată, replicată și de eșantionare a senei, ale gobies -ului pe cale de dispariție pe cale de dispariție (Eucyclogogobius Newberryi) dintr -un studiu realizat de Schmelzle și Kinziger (2016). Următoarea variație a modelului comun include covariate la nivel de site care scalcă sensibilitatea eșantionării EDNA în raport cu eșantionarea tradițională.
library(eDNAjoint)
data(goby_data)
# run the joint model with two covariates
goby_fit <- joint_model(data = goby_data, cov = c("Filter_time", "Salinity"),
family = "poisson", p10_priors = c(1, 20), q = FALSE)
Și atunci acest model de potrivire poate fi accesat pentru a face lucruri precum rezumarea distribuției posterioare pentru probabilitatea unei detectări pozitive false, p10
# summarize p10 posterior joint_summarize(goby_fit$model, par = "p10") ## mean se_mean sd 2.5% 97.5% n_eff Rhat ## p10 0.003 0 0.001 0.001 0.007 11948.38 1
Sau pentru a găsi numărul de eșantioane de edna și eșantioane tradiționale de sondaj necesare pentru a detecta prezența speciilor la o rată de captură preconizată:
# find the number of samples necessary to detect presence with 0.9 probability detection_calculate(goby_fit$model, mu = c(0.1, 0.5, 1), cov_val = c(0, 0), probability = 0.9) ## mu n_traditional n_eDNA ## (1,) 0.1 24 14 ## (2,) 0.5 5 4 ## (3,) 1.0 3 2
Apel la acțiune
Deși cu siguranță am primit mult ajutor pe parcurs (vezi recunoașterea de mai jos), dezvoltarea acestui pachet a fost în mare parte un efort solo. În timp ce această independență a împuternicit, dacă software -ul ar crește, probabil că aș avea nevoie de alte mâini pe punte. Am multe idei pentru extindere și orice potențială colaborare ar putea lua mai multe forme.
Ești familiar cu Stan? Creșterea ar putea veni din dezvoltarea în continuare a codului; De exemplu, pachetul nu gestionează în prezent unele date lipsă într -un mod optim.
Aveți expertiză în domeniul EDNA? Am putea construi în continuare infrastructura de modelare. De exemplu, am putea adăuga un alt nivel de ierarhie la modelele în care probabilitatea unei detectări de EDNA false pozitive este informată de datele de control negative. Noua funcționalitate ar putea gestiona continuu, mai degrabă decât date binare EDNA. Ne -am putea extinde pentru a include datele de metabarcodare, unde un singur model este construit pentru mai multe specii.
Îți place să comunici concepte statistice? Modelul este formulat într -un cadru Bayesian, iar o înțelegere de bază a statisticilor Bayesiene și a metodelor MCMC este utilă pentru utilizarea pachetului. Anticipez că baza de utilizator a pachetului ar putea fi destul de largă și să includă utilizatori relativ necunoscuți cu statisticile. Cum construim eficient ghidul utilizatorului pentru a face pachetul cât mai accesibil?
Am beneficiat deja foarte mult de procesul de revizuire a comunității Ropensci și software de revizuire a colegilor și aș fi dornic să fac ca EdnaJoint să fie un loc de aterizare pentru oamenii interesați să se implice cu Ropensci.
Ești interesat să colaborezi? Deschideți o problemă pe GitHub sau trimiteți -mi un e -mail ((e -mail protejat))!
Mulțumiri
Mulțumim lui Mark Padgham (@MPadge) pentru că m -a ajutat la fiecare oprire de -a lungul procesului de revizuire Ropensci, recenzorii Ropensci Saras Windecker (@smwindecker), Chitra M Saraswati (@chitrams) și editorul Emiaka (@emitanaka), consilierul meu de phd Carl Boettger (@cboettig), care a răspuns multor mici întrebări de -a lungul modului. Utilizatori timpurii care au fost testatori beta valoroși și surse de încurajare.
