This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Error in `rownames<-`(`*tmp*`, value = c("2C01", "20089_R03C01", "20089_R04C01", : duplicate rownames not allowed

Hello,

I am having getting an error that with duplicate row names in R when there are no duplicate row names? I am downloading the raw idat files for a methylation array. Here are the files and here is the code I am trying to run. I think it is reading the Green and Red channels as duplicates (they have the same string until the "Grn" and "Red".

 idatFiles

 [1] "./GSM2612501_200379120089_R02C01_Grn.idat.gz" "./GSM2612501_200379120089_R02C01_Red.idat.gz"

 [3] "./GSM2612502_200379120089_R03C01_Grn.idat.gz" "./GSM2612502_200379120089_R03C01_Red.idat.gz"

 [5] "./GSM2612503_200379120089_R04C01_Grn.idat.gz" "./GSM2612503_200379120089_R04C01_Red.idat.gz"

 [7] "./GSM2612504_200379120089_R05C01_Grn.idat.gz" "./GSM2612504_200379120089_R05C01_Red.idat.gz"

 [9] "./GSM2612505_200379120089_R06C01_Grn.idat.gz" "./GSM2612505_200379120089_R06C01_Red.idat.gz"

[11] "./GSM2612506_200379120089_R01C02_Grn.idat.gz" "./GSM2612506_200379120089_R01C02_Red.idat.gz"

[13] "./GSM2612507_200379120089_R02C02_Grn.idat.gz" "./GSM2612507_200379120089_R02C02_Red.idat.gz"

[15] "./GSM2612508_200379120089_R03C02_Grn.idat.gz" "./GSM2612508_200379120089_R03C02_Red.idat.gz"

[17] "./GSM2612509_200379120089_R04C02_Grn.idat.gz" "./GSM2612509_200379120089_R04C02_Red.idat.gz"

[19] "./GSM2612510_200379120089_R05C02_Grn.idat.gz" "./GSM2612510_200379120089_R05C02_Red.idat.gz"

[21] "./GSM2612511_200379120089_R06C02_Grn.idat.gz" "./GSM2612511_200379120089_R06C02_Red.idat.gz"

[23] "./GSM2612512_200379120136_R01C01_Grn.idat.gz" "./GSM2612512_200379120136_R01C01_Red.idat.gz"

[25] "./GSM2612513_200379120136_R02C01_Grn.idat.gz" "./GSM2612513_200379120136_R02C01_Red.idat.gz"

[27] "./GSM2612514_200379120136_R03C01_Grn.idat.gz" "./GSM2612514_200379120136_R03C01_Red.idat.gz"

[29] "./GSM2612515_200379120136_R04C01_Grn.idat.gz" "./GSM2612515_200379120136_R04C01_Red.idat.gz"

[31] "./GSM2612516_200379120136_R05C01_Grn.idat.gz" "./GSM2612516_200379120136_R05C01_Red.idat.gz"

[33] "./GSM2612517_200379120136_R06C01_Grn.idat.gz" "./GSM2612517_200379120136_R06C01_Red.idat.gz"

[35] "./GSM2612518_200379120136_R01C02_Grn.idat.gz" "./GSM2612518_200379120136_R01C02_Red.idat.gz"

[37] "./GSM2612519_200379120136_R02C02_Grn.idat.gz" "./GSM2612519_200379120136_R02C02_Red.idat.gz"

[39] "./GSM2612520_200379120136_R03C02_Grn.idat.gz" "./GSM2612520_200379120136_R03C02_Red.idat.gz"

[41] "./GSM2612521_200379120136_R04C02_Grn.idat.gz" "./GSM2612521_200379120136_R04C02_Red.idat.gz"

[43] "./GSM2612522_200379120136_R05C02_Grn.idat.gz" "./GSM2612522_200379120136_R05C02_Red.idat.gz"

[45] "./GSM2612523_200379120136_R06C02_Grn.idat.gz" "./GSM2612523_200379120136_R06C02_Red.idat.gz"

[47] "./GSM2612524_200379120089_R01C01_Grn.idat.gz" "./GSM2612524_200379120089_R01C01_Red.idat.gz"

[49] "./GSM2612525_3998579182_R01C01_Grn.idat.gz"   "./GSM2612525_3998579182_R01C01_Red.idat.gz"  

[51] "./GSM2612526_3998579182_R02C01_Grn.idat.gz"   "./GSM2612526_3998579182_R02C01_Red.idat.gz"  

[53] "./GSM2612527_3998579182_R03C01_Grn.idat.gz"   "./GSM2612527_3998579182_R03C01_Red.idat.gz"  

[55] "./GSM2612528_3998579182_R04C01_Grn.idat.gz"   "./GSM2612528_3998579182_R04C01_Red.idat.gz"  

[57] "./GSM2612529_3998579182_R05C01_Grn.idat.gz"   "./GSM2612529_3998579182_R05C01_Red.idat.gz"  

[59] "./GSM2612530_3998579182_R06C01_Grn.idat.gz"   "./GSM2612530_3998579182_R06C01_Red.idat.gz"  

[61] "./GSM2612531_3998579182_R01C02_Grn.idat.gz"   "./GSM2612531_3998579182_R01C02_Red.idat.gz"  

[63] "./GSM2612532_3998579182_R02C02_Grn.idat.gz"   "./GSM2612532_3998579182_R02C02_Red.idat.gz"  

[65] "./GSM2612533_3998579182_R03C02_Grn.idat.gz"   "./GSM2612533_3998579182_R03C02_Red.idat.gz"  

[67] "./GSM2612534_3998579182_R04C02_Grn.idat.gz"   "./GSM2612534_3998579182_R04C02_Red.idat.gz"  

[69] "./GSM2612535_3998579182_R05C02_Grn.idat.gz"   "./GSM2612535_3998579182_R05C02_Red.idat.gz"  

[71] "./GSM2612536_3998579182_R06C02_Grn.idat.gz"   "./GSM2612536_3998579182_R06C02_Red.idat.gz"  

 sampleNames(rgSet) <- sub(".*3", "3", sampleNames(rgSet))
Error in `rownames<-`(`*tmp*`, value = c("379120089_R02C01", "3C01", "379120089_R04C01",  : 
  duplicate rownames not allowed
  

Any help would be much appreciated

genome methylation idat files r illumina

1 answer

It is your sub() command that produces non-unique names, which you then attempt to set as row names to your object rgSet.

NB - If you want to use the full stop in a function like sub(), then it's good practice to escape it like this: \\.

To maintain unique names, you need the GSM identifier. You could do this:

sampleNames(rgSet) <- sub("\\.\\/", "", sub("\\.idat\\.gz", "", sub("_[0-9]*_R", "_R", sampleNames(rgSet))))
sampleNames(rgSet)

 [1] "GSM2612501_R02C01_Grn" "GSM2612501_R02C01_Red" "GSM2612502_R03C01_Grn"
 [4] "GSM2612502_R03C01_Red" "GSM2612503_R04C01_Grn" "GSM2612503_R04C01_Red"
 [7] "GSM2612504_R05C01_Grn" "GSM2612504_R05C01_Red" "GSM2612505_R06C01_Grn"
[10] "GSM2612505_R06C01_Red" "GSM2612506_R01C02_Grn" "GSM2612506_R01C02_Red"
[13] "GSM2612507_R02C02_Grn" "GSM2612507_R02C02_Red" "GSM2612508_R03C02_Grn"
[16] "GSM2612508_R03C02_Red" "GSM2612509_R04C02_Grn" "GSM2612509_R04C02_Red"
[19] "GSM2612510_R05C02_Grn" "GSM2612510_R05C02_Red" "GSM2612511_R06C02_Grn"
[22] "GSM2612511_R06C02_Red" "GSM2612512_R01C01_Grn" "GSM2612512_R01C01_Red"
[25] "GSM2612513_R02C01_Grn" "GSM2612513_R02C01_Red" "GSM2612514_R03C01_Grn"
[28] "GSM2612514_R03C01_Red" "GSM2612515_R04C01_Grn" "GSM2612515_R04C01_Red"
[31] "GSM2612516_R05C01_Grn" "GSM2612516_R05C01_Red" "GSM2612517_R06C01_Grn"
[34] "GSM2612517_R06C01_Red" "GSM2612518_R01C02_Grn" "GSM2612518_R01C02_Red"
[37] "GSM2612519_R02C02_Grn" "GSM2612519_R02C02_Red" "GSM2612520_R03C02_Grn"
[40] "GSM2612520_R03C02_Red" "GSM2612521_R04C02_Grn" "GSM2612521_R04C02_Red"
[43] "GSM2612522_R05C02_Grn" "GSM2612522_R05C02_Red" "GSM2612523_R06C02_Grn"
[46] "GSM2612523_R06C02_Red" "GSM2612524_R01C01_Grn" "GSM2612524_R01C01_Red"
[49] "GSM2612525_R01C01_Grn" "GSM2612525_R01C01_Red" "GSM2612526_R02C01_Grn"
[52] "GSM2612526_R02C01_Red" "GSM2612527_R03C01_Grn" "GSM2612527_R03C01_Red"
[55] "GSM2612528_R04C01_Grn" "GSM2612528_R04C01_Red" "GSM2612529_R05C01_Grn"
[58] "GSM2612529_R05C01_Red" "GSM2612530_R06C01_Grn" "GSM2612530_R06C01_Red"
[61] "GSM2612531_R01C02_Grn" "GSM2612531_R01C02_Red" "GSM2612532_R02C02_Grn"
[64] "GSM2612532_R02C02_Red" "GSM2612533_R03C02_Grn" "GSM2612533_R03C02_Red"
[67] "GSM2612534_R04C02_Grn" "GSM2612534_R04C02_Red" "GSM2612535_R05C02_Grn"
[70] "GSM2612535_R05C02_Red" "GSM2612536_R06C02_Grn" "GSM2612536_R06C02_Red"

> length(sampleNames(rgSet))
[1] 72

> length(unique(sampleNames(rgSet))
[1] 72

Log in to answer this question.