Az egyik kihívás a munkám során, hogy megtaláljuk az egyensúlyt a "nem piszkáljuk, mert működik" és a "kijött az update, felrakni!" között.
Az R-t például nem frissítjük minden hónapban, mert akkor minden felhasználó, minden csomagját frissíteni kellene (mert ugye minden felhasználó más csomagokat használ), és akkor soha nem dolgoznánk, csak frissítgetnénk. Ezért a szerveren egy 4.0.2-es R van, 3.12-es Bioconductorral.
Az egész szépen elzötyögött, egészen addig, míg a PureCN nevű csomagot nem telepítették a felhasználók. A PureCN ugyanis a biomaRt-ot is használja, ami viszont még abban az időben él, amikor még volt uswest tükör az EnsEMBL weboldalából.
Csakhogy nincs uswest, tehát nem megy a biomaRt, és ezért a PureCN is csak zagyvaságot ad vissza. Először megpróbáltuk fixálni R-ből a helyzetet, hogy ne használja az elvault tükör szervert, de persze nem működött. Egy uswest hívás már a könyvtár betöltésénél megtörténik.
A csomagból van frissítés, de akkor frissíteni kell a Bioconductor-t, de ahhoz meg az R-t is frissíteni kell. Ez sem járható út. Marad a programozás.
Leszedtem a GitHub-ról a biomaRt-ot:
git clone https://github.com/grimbough/biomaRt
Átváltottam az ősi branch-re, ami még kompatibilis a rendszerrel.
git checkout RELEASE_3_12
Kézzel kiszedtem az összes uswest hivatkozást a forrásból. Ahol fixen szerepelt, ott átírtam www-re. Most már csak meg kell etetni az R-el. Elindítottam az R-t. A módosított forrás a home könyvtáramban volt.
devtools::install("~/biomaRt")
Megkérdezte, frissítse-e a többi csomagot. Szépen megkértem, hogy eszébe se jusson. Fordított, teszteket futtatott. BUMM! Minden működött.