Kategoria: R

  • Uusi R-paketti aloitettu

    Aloitin juuri uuden R-paketin nimeltä ”SnakebiteTools”. Haluan koota siihen pieniä apufunktioita Snakemake-ajojen parempaan analysointiin ja seurantaan. Tulosteita voi myöhemmin käyttää resurssien optimointiin, käynnissä olevan Snakemake-ajon tilan tarkistamiseen (mikä voi olla sekavaa, jos töitä on paljon) jne.

  • Fluidigm-R-paketti

    Fluidigm-R-paketti

    Fluidigm-R-pakettimme julkaistiin juuri CRANissa. Paketti on tehty helpottamaan Fluidigm-laitteiden genotyyppausaineistojen analysointia. Se tarjoaa joukon työkaluja aineiston käsittelyyn ja analysointiin, mikä helpottaa tutkijoiden työtä. Paketin keskeiset funktiot ovat:

    1. fluidigm2PLINK(...): Muuntaa Fluidigm-aineiston PLINKin käyttämään muotoon ja luo Fluidigm-laitteen CSV-tulosteesta ped/map-tiedostoparin.
    2. estimateErrors(...): Arvioi genotyyppausaineiston virheet.
    3. calculatePairwiseSimilarities(...): Laskee näytteiden väliset parittaiset samankaltaisuudet.
    4. getPairwiseSimilarityLoci(...): Määrittää parittaisen samankaltaisuuden lokukset.
    5. similarityMatrix(...): Luo samankaltaisuusmatriisin.

    Funktiot voi ajaa yksitellen tai kaikki kerralla kätevällä kääreellä fluidigmAnalysisWrapper(...).

  • Lomalukeminen saapui

    Lomalukeminen saapui

    Juuri sopivasti ennen syyslomaa syyslomalukemiseni saapui! Odotan kevyttä luettavaa; Pythonini on ruostunut viime aikoina, joten on mukava aloittaa taas alusta johdantotason kirjasta. Ensivaikutelma on todella hyvä!

  • Painotetut taulukot R:llä / numeeristen arvojen summa luokittain

    Tavallinen taulukkokomento table() laskee vektorin jokaisen alkion frekvenssin näin:

    R> df <- data.frame(var = c("A", "A", "B", "B", "C", "C", "C"))
    R> table(df)
    df
    A B C 
    2 2 3 

    Se kertoo siis, että meillä on kaksi A:ta ja B:tä ja kolme C:tä.

    Jos tilanne on kuitenkin tällainen:

    df <- data.frame(var = c("A", "A", "B", "B", "C", "C", "C"), value = c(10, 20, 20, 40, 15, 25, 35))

    eli meillä on luokitteleva muuttuja var ja numeerinen muuttuja value, ja haluamme jokaiselle luokalle numeerisen muuttujan summan, voimme käyttää perus-R:n komentoa aggregate näin

    R> aggregate(value ~ var, data = df, FUN = sum)
      var wt
    1   A 40
    2   B 60
    3   C 70

    Koska käytän usein myös data.table-pakettia, tässä vielä yksinkertainen ratkaisu sillä; oletetaan, että teemme (tai meillä on muualta saatu datataulukko, esim. freadilla)

    library("data.table")
    dt <- data.table(df)

    Sitten voimme summata yhden sarakkeen toisen sarakkeen mukaan näin (ja tallentaa arvon uuteen muuttujaan tot):

    setDT(dt)[, .(n = sum(value)), var] 
    
  • Epäonnistunutta R-paketin asennusta ei voinut poistaa

    Tänään kohtasin oudon asian, kun yritin asentaa päivitystä yhteen R-paketeistani. Asensin uusimman version tavalliseen tapaan näin

    library("devtools")
    install_github("fischuu/GenomicTools")

    Asennus kuitenkin epäonnistui, ja kun yritin asentaa uudelleen, sain tämän virheilmoituksen:

    Installing package into ‘/homeappl/home/<user>/R/x86_64-redhat-linux-gnu-library/4.1’
    (as ‘lib’ is unspecified)
    ERROR: failed to lock directory ‘/homeappl/home/<user>/R/x86_64-redhat-linux-gnu-library/4.1’ for modifying
    Try removing ‘/homeappl/home/<user>/R/x86_64-redhat-linux-gnu-library/4.1/00LOCK-GenomicTools’
    Warning message:
    In i.p(...) :
      installation of package ‘/tmp/Rtmp<...>Lv/file3c36<...>34/GenomicTools_0.2.11.tar.gz’ had non-zero exit status

    Menin siis mainittuun hakemistoon poistamaan kansion käsin, ja siellä sain toisen virheen:

    rm: cannot remove '00LOCK-GenomicTools/GenomicTools/libs/.nfs00000001002e2<...>d': Device or resource busy

    Kokeilin sitä sun tätä, mutta mikään ei auttanut kansion poistamisessa; se vain väitti itsepintaisesti, että laite on varattu. Lopulta auttoi vain kansion uudelleennimeäminen näin

    mv 00LOCK-GenomicTools/ 00LOCK-GenomicTools-deleteThis/

    Se roikkuu yhä kansiossa, mutta sain R-paketin asennettua uudelleen. Muutaman päivän päästä katson uudestaan, onko laite yhä varattu vai voinko silloin poistaa sen …