ireceptor-plus / issues

0 stars 0 forks source link

sciReptor takes almost 45secs to return rearrangement count stats #102

Open schristley opened 2 years ago

schristley commented 2 years ago

I am requesting stats on all of the repertoires, but there aren't that many, much less than the other IPA repositories. Returning all of the repertoires through the ADC API only takes like 2secs. Is maybe an index missing?

Here's the JSON request

{"statistics":["rearrangement_count","duplicate_count","rearrangement_count_productive","duplicate_count_productive"],"repertoires":[{"repertoire":{"repertoire_id":"athero_g07_09_1sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_1sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_1sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_10sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_10sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_10sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_11sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_11sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_12sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_12sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_12sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_13sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_13sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_13sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_14sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_14sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_14sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_15sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_15sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_15sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_16sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_16sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_16sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_17sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_17sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_17sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_18sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_18sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_19sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_19sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_19sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_2sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_2sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_2sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_20sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_20sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_20sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_21sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_21sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_22sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_22sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_22sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_23sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_23sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_23sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_24sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_24sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_24sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_25sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_25sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_25sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_26sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_26sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_26sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_27sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_27sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_27sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_28sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_28sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_28sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_29sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_29sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_29sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_3sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_3sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_3sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_30sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_30sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_30sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_31sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_31sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_31sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_32sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_32sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_32sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_33sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_33sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_33sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_34sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_34sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_34sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_4sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_4sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_4sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_5sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_5sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_6sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_6sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_6sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_7sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_7sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_7sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_8sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_8sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_8sr1_3"}},{"repertoire":{"repertoire_id":"athero_g07_09_9sr1_1"}},{"repertoire":{"repertoire_id":"athero_g07_09_9sr1_2"}},{"repertoire":{"repertoire_id":"athero_g07_09_9sr1_3"}},{"repertoire":{"repertoire_id":"omega_w02_1sr1_1"}},{"repertoire":{"repertoire_id":"omega_w02_2sr1_1"}},{"repertoire":{"repertoire_id":"omega_w02_3sr1_1"}},{"repertoire":{"repertoire_id":"omega_w03_1sr1_1"}},{"repertoire":{"repertoire_id":"omega_w03_2sr1_1"}},{"repertoire":{"repertoire_id":"omega_w03_4sr1_1"}},{"repertoire":{"repertoire_id":"omega_w03_5sr1_1"}},{"repertoire":{"repertoire_id":"omega_w03_6sr1_1"}},{"repertoire":{"repertoire_id":"omega_w03_7sr1_1"}},{"repertoire":{"repertoire_id":"omega_w03_8sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_1sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_1sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_1sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_10sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_10sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_10sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_11sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_11sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_11sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_12sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_12sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_12sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_13sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_13sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_13sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_14sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_14sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_14sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_15sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_15sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_15sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_16sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_16sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_16sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_17sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_17sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_17sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_18sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_18sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_18sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_19sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_19sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_19sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_2sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_2sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_2sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_20sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_20sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_20sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_21sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_21sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_21sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_22sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_22sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_22sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_3sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_3sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_3sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_4sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_4sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_4sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_5sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_5sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_5sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_6sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_6sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_6sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_7sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_7sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_7sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_8sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_8sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_8sr1_3"}},{"repertoire":{"repertoire_id":"omega_w04_9sr1_1"}},{"repertoire":{"repertoire_id":"omega_w04_9sr1_2"}},{"repertoire":{"repertoire_id":"omega_w04_9sr1_3"}},{"repertoire":{"repertoire_id":"omega_w05_1sr1_1"}},{"repertoire":{"repertoire_id":"omega_w05_10sr1_1"}},{"repertoire":{"repertoire_id":"omega_w05_11sr1_1"}},{"repertoire":{"repertoire_id":"omega_w05_12sr1_1"}},{"repertoire":{"repertoire_id":"omega_w05_13sr1_1"}},{"repertoire":{"repertoire_id":"omega_w05_2sr1_1"}},{"repertoire":{"repertoire_id":"omega_w05_3sr1_1"}},{"repertoire":{"repertoire_id":"omega_w05_4sr1_1"}},{"repertoire":{"repertoire_id":"omega_w05_5sr1_1"}},{"repertoire":{"repertoire_id":"omega_w05_6sr1_1"}},{"repertoire":{"repertoire_id":"omega_w05_7sr1_1"}},{"repertoire":{"repertoire_id":"omega_w05_8sr1_1"}},{"repertoire":{"repertoire_id":"omega_w05_9sr1_1"}},{"repertoire":{"repertoire_id":"omega_w07_1sr1_1"}},{"repertoire":{"repertoire_id":"omega_w07_2sr1_1"}},{"repertoire":{"repertoire_id":"omega_w07_3sr1_1"}},{"repertoire":{"repertoire_id":"omega_w07_4sr1_1"}}]}
bcorrie commented 2 years ago

sciReptor runs through a proxy, and I have noticed that it is a bit slower - given the number of repertoires. See the Repertoire graphs here:

https://sfu-ireceptor.github.io/ADC-API-Plots/ADC-API-Plots/external.html

It could be that. @bussec I wonder if you could do the query Scott gives above from outside (and therefore through the proxy) and inside your internal network (and therefore bypassing the proxy)???

bcorrie commented 2 years ago

The other thing to note is that even thought sciReptor has a small number of sequences, the number of Repertories is large (191). This is more than many of the IPAs and COVID19 repositories, and Stats is a repertoire driven query in terms of number of responses. Still, shouldn't be 45s 8-)

@schristley how long does IPA1 or COVID19-3 or COVID19-4 take. They have large number of Repertoires so would be the best comparison.

schristley commented 2 years ago

@bcorrie IPA1 takes a little under 20s, covid19-3 and -4 (and -1) wait for a long time then return a 500 error. I mentioned that on Slack Friday and Bojan was looking at it but I don't know the status.

As a reference point, VDJServer can return the stats on ~3000 repertoires in ~2sec, so it can be made fast :-D

schristley commented 2 years ago

Bojan mentioned that this was #90 still on staging but that might make it quicker as it can just return everything instead of selecting specific repertoires.

schristley commented 1 year ago

Hy @bussec do you know if the delay is due to your proxy? If yes then that's fine. I'm mostly curious. But if it's not the proxy...

I've looked at the exact query that VDJServer does, and it's sending a large query because it's asking for all repertoires. That might be making it slow too, though there we could implement a simple optimization #90.