@@ -153,11 +153,11 @@ function adjust(pValues::PValues{T}, n::Integer, method::BenjaminiHochberg) wher
153153 if k <= 1
154154 return pValues
155155 end
156- sortedOrder, originalOrder = reorder (pValues)
156+ sortedOrder = sortperm (pValues)
157157 pAdjusted = pValues[sortedOrder]
158158 pAdjusted .*= n ./ (1 : k)
159159 stepup! (pAdjusted)
160- pAdjusted = clamp .(pAdjusted[originalOrder] , 0 , 1 )
160+ pAdjusted[sortedOrder] = clamp .(pAdjusted, 0 , 1 )
161161 return pAdjusted
162162end
163163
@@ -262,11 +262,11 @@ function adjust(pValues::PValues{T}, n::Integer, method::BenjaminiYekutieli) whe
262262 if k <= 1
263263 return pValues
264264 end
265- sortedOrder, originalOrder = reorder (pValues)
265+ sortedOrder = sortperm (pValues)
266266 pAdjusted = pValues[sortedOrder]
267267 pAdjusted .*= harmonic_number (n) .* n ./ (1 : k)
268268 stepup! (pAdjusted)
269- pAdjusted = clamp .(pAdjusted[originalOrder] , 0 , 1 )
269+ pAdjusted[sortedOrder] = clamp .(pAdjusted, 0 , 1 )
270270 return pAdjusted
271271end
272272
@@ -315,14 +315,14 @@ function adjust(pValues::PValues{T}, n::Integer, method::BenjaminiLiu) where T <
315315 if n <= 1
316316 return pValues
317317 end
318- sortedOrder, originalOrder = reorder (pValues)
318+ sortedOrder = sortperm (pValues)
319319 pAdjusted = pValues[sortedOrder]
320320 # a bit more involved because cutoffs at significance α have the form:
321321 # P_(i) <= 1- [1 - min(1, m/(m-i+1)α)]^{1/(m-i+1)}
322322 s = n .- (1 : k) .+ 1
323323 pAdjusted = (1 .- (1 .- pAdjusted). ^ s) .* s ./ n
324324 stepdown! (pAdjusted)
325- pAdjusted = clamp .(pAdjusted[originalOrder] , 0 , 1 )
325+ pAdjusted[sortedOrder] = clamp .(pAdjusted, 0 , 1 )
326326 return pAdjusted
327327end
328328
@@ -370,11 +370,11 @@ function adjust(pValues::PValues{T}, n::Integer, method::Hochberg) where T <: Ab
370370 if k <= 1
371371 return pValues
372372 end
373- sortedOrder, originalOrder = reorder (pValues)
373+ sortedOrder = sortperm (pValues)
374374 pAdjusted = pValues[sortedOrder]
375375 pAdjusted .*= (n .- (1 : k) .+ 1 )
376376 stepup! (pAdjusted)
377- pAdjusted = clamp .(pAdjusted[originalOrder] , 0 , 1 )
377+ pAdjusted[sortedOrder] = clamp .(pAdjusted, 0 , 1 )
378378 return pAdjusted
379379end
380380
@@ -422,11 +422,11 @@ function adjust(pValues::PValues{T}, n::Integer, method::Holm) where T <: Abstra
422422 if n <= 1
423423 return pValues
424424 end
425- sortedOrder, originalOrder = reorder (pValues)
425+ sortedOrder = sortperm (pValues)
426426 pAdjusted = pValues[sortedOrder]
427427 pAdjusted .*= (n .- (1 : k) .+ 1 )
428428 stepdown! (pAdjusted)
429- pAdjusted = clamp .(pAdjusted[originalOrder] , 0 , 1 )
429+ pAdjusted[sortedOrder] = clamp .(pAdjusted, 0 , 1 )
430430 return pAdjusted
431431end
432432
@@ -474,7 +474,7 @@ function adjust(pValues::PValues{T}, n::Integer, method::Hommel) where T <: Abst
474474 if k <= 1
475475 return pValues
476476 end
477- sortedOrder, originalOrder = reorder (pValues)
477+ sortedOrder = sortperm (pValues)
478478 pAdjusted = vcat (pValues[sortedOrder], fill (one (T), n - k))
479479 lower = n * minimum (pAdjusted ./ (1 : n))
480480 q = fill (lower, n)
@@ -487,7 +487,9 @@ function adjust(pValues::PValues{T}, n::Integer, method::Hommel) where T <: Abst
487487 q[idx_right] .= q[n - j + 1 ]
488488 pa .= max .(pa, q)
489489 end
490- pAdjusted = max .(pa[originalOrder], pValues)
490+ pa = pa[1 : k]
491+ pa[sortedOrder] = pa
492+ pAdjusted = max .(pa, pValues)
491493 return pAdjusted
492494end
493495
@@ -578,12 +580,12 @@ adjust(pValues::PValues{T}, method::ForwardStop) where T <: AbstractFloat = adju
578580function adjust (pValues:: PValues{T} , n:: Integer , method:: ForwardStop ) where T <: AbstractFloat
579581 k = length (pValues)
580582 check_number_tests (k, n)
581- sortedOrder, originalOrder = reorder (pValues)
583+ sortedOrder = sortperm (pValues)
582584 logsums = - cumsum (log .(1 .- pValues[sortedOrder]))
583585 logsums ./= (1 : k)
584586 stepup! (logsums)
585- pAdjusted = clamp .(logsums[originalOrder] , 0 , 1 )
586- return pAdjusted
587+ logsums[sortedOrder] = clamp .(logsums, 0 , 1 )
588+ return logsums
587589end
588590
589591
@@ -628,7 +630,7 @@ function adjust(pValues::PValues{T}, method::BarberCandes) where T <: AbstractFl
628630 return fill (1 / n, size (pValues))
629631 end
630632
631- sorted_indexes, original_order = reorder (pValues)
633+ sorted_indexes = sortperm (pValues)
632634 estimated_fdrs = pValues[sorted_indexes]
633635
634636 Rt = 1 # current number of discoveries
@@ -655,7 +657,8 @@ function adjust(pValues::PValues{T}, method::BarberCandes) where T <: AbstractFl
655657 end
656658
657659 stepup! (estimated_fdrs)
658- pAdjusted = clamp .(estimated_fdrs[original_order], 0 , 1 )
660+ pAdjusted = clamp .(estimated_fdrs, 0 , 1 )
661+ pAdjusted[sorted_indexes] = pAdjusted
659662 return pAdjusted
660663end
661664
0 commit comments