Jira issue IGBF-1220 --------- To clarify a few terms... Default preferences, including data providers, are packaged with IGB in a file called igbDefaultPrefs.json, often referred to as "prefs.json" or just "the json file". User preferences are generated and stored on the users system. On a mac, these preferences are stored in a file called "com.affymetrix.igb.plist" which can be converted and viewed as an xml file. For brevity, it is called the "preferences" or "prefs" file. "Resetting preferences" clears this file (removes all content except for a file type header). The GUI: When you click the "configure" option in the Available Data panel, IGB opens the preferences window to show the Data Sources table. Since this is my primary way of viewing the data providers through IGB, I often refer to the table as "the GUI". The data providers shown in the Available Data panel were consistently a subset of the data providers shown in this Data Sources table. The order is the same in both places--as long as you allow for inconsistent ordering of data providers that have the same load priority. Most of this document describes actions I took using this GUI and what I saw in the GUI as a result. Rows are rows in this table. Adding a data provider means using the "add" option in this GUI. Moving/flipping data providers means clicking the up/down arrows in this GUI. I made several local quicklaods for testing, and three are mentioned here. "the first one" is the aws local quicklaod which has no sequence data. The "AAA" quickload does have sequence data based on the actual Arabidopsis thaliana genome, but with a lot of bases changed to A. Likewise, the "GGG" quickload has several bases changed to G. This made it possible to determine which data source IGB was using for the genomic sequence. "Data provider" is abbreviated "DP" and sometimes "dp". --------- I changed the defaultPrefs.json file so that Blueberry was #2 and the rest followed sequentially. Initially I ran IGB without reseting the preferences, and the load priorities were a horrible mess. The GUI messed up, rows weren't moving consistently when I pushed the up/down arrows: some would move but only for so many places, some didn't move at all. In the preferences file, several things had load priority -1, several had priority 1. It was a mess. I reset preferences. After resetting preferences, The order of the Data Providers (DPs) in the configure table GUI matches the load priority sequence (and incidentally the node order in the file) in the json file. In the preferences file, the order of the nodes within the file seems to be random, but the load priorities match the json file. Good. I incremented the Soyseq DP up the list, and checked preferences each time. The appearance of the rows in the table and the load priority for each one in the prefs file all changed as expected with each click of the up arrow. Good. I added a local quickload. It was added to the very top, ie, the highest load priority. In the prefs, it has load priority -1, and the other DPs load priorities have not changed. I moved soyseq (currently load priority 0, right below the newly added local quickload) up by one click. It moved to the top position (good). In the prefs file, soyseq now has load priority of -1 and the local quickload has 0. This doesn't seem right... I thought I remembered something about -1 being handled as a special case of being the lowest priority. The relevant user guide page is here: https://wiki.transvar.org/display/igbman/Adding+and+Managing+Data+Source+Servers It doesn't say anything about the number values of the load priorities. I added another local quickload (the AAA DP). This one appeared right below soyseq, in row 2. In the prefs file, soyseq still has load priority -1, and so does the newly added DP. ***The existing load priorities are unchanged, and the new one is added as load priority -1, even if there is already a -1. I flipped a couple of the defaults with each other. That looks fine. But when I tried to move up my new DP to the 1st row, nothing changes (soyseq remains first, and AAA second) but the first row is now selected. In the prefs file, both DP still have load priorty of -1. I tried moving the first local DP (appears right below the AAA dp) up by one. No problem. Now the AAA dp is load priority 0, and the first local quickload is -1, and so is soyseq. When I try to move the first local QL up by one to take the first row, its like before. They both keep load priority of -1, and soyseq retains the first row position. I added another local quickload (the GGG DP). It takes the first row position. Now soyseq, the GGG dp, and the first local quickload all have load priority -1, and the top 3 rows refuse to switch with each other. The bottom one (first local) did switch down with the AAA dp. Still the top 3 rows will not switch with each other. ***The default load priority of -1 is a problem.*** Lets see how the sequence data loads. I closed IGB and in the prefs file I changed the AAA dp to be load priority -2, so it will be in front of the -1's, the Configure GUI reflects this. I went to the A thaliana genome, and I see the DPs in Available Data: AAA, GGG, first local. (order reflects load priority, good) Looking at the genomic sequence, I see my AAAA edits in the first ~100 bases. So it loaded the sequence from the AAA dp. I left A thaliana, and went to the configure GUI. AAA appears in the first row, right in front of GGG. I switched them. This made GGG go to the top row, and AAA go down by 2 rows, to sit under soyseq (now that its back in the -1 group, I guess the order is random). The important thing is that GGG is first. The A thaliana sequence is already loaded, and IGB remembers it. So I closed and reopened IGB. Now the data sequence shows the GGG sequence. I converted the 2bit GGG genome sequence to a fa file, and removed the 2bit file. I closed and re-opened IGB, and found that the sequence was AAA’s. It looks like IGB passed up the GGG quick load for the next one in line that had a 2bit file. I converted the GGG sequence to a 2bit file. Closed and reopened IGB, and went to the A thaliana genome. Now the data sequence shows the GGG sequence. I can flip the AAA quickload and GGG quickload in the GUI and IGB consistently loads the sequence from whichever one is on top. —So long as I close and re-open IGB (because it remembers the sequence within each session) and the top file has a 2bit genome file. Good news: IGB does seem to be using the load priority to determine which DP to use for the sequence data. Although, it passed up a fasta sequence file for a 2bit file. I have not checked to see if it passes up a fasta file that has an index.