我正在尝试编写一些代码,它将采用.csv文件,其中包含一些样本名称作为输入,并将输出包含样本名称和96孔板或384孔板格式(A1,B1,C1. ..).对于那些不知道的人,96孔板有8个字母标记的行(A,B,C,D,E,F,G,H)和12个数字标记的列(1:12)和384孔板有16个字母标记的行(A:P)和24个数字标记的列(1:24).我正在尝试编写一些代码来生成这些格式中的任何一种(可以有两个不同的函数来执行此操作),允许将样本标记为DOWN(A1,B1,C1,D1,E1,F1,G1,H1) ,A2 ......)或ACROSS(A1,A2,A3,A4,A5 ......).
到目前为止,我已经弄清楚如何轻松获取行名称
rowLetter <- rep(LETTERS[1:8], length.out = variable)
#variable will be based on how many samples I have
Run Code Online (Sandbox Code Playgroud)
我只是无法弄清楚如何正确应用数字列名称...我试过:
colNumber <- rep(1:12, times = variable)
Run Code Online (Sandbox Code Playgroud)
但事情并非那么简单.如果你要'DOWN',那么所有8行必须在col号增加1之前填充,或者如果你要'ACROSS',则在行字母增加1之前必须填充所有12列.
编辑:
这是一个笨重的版本.它需要你拥有的样本数量,一个尚未发挥作用的"平板格式",以及一个方向,并将返回带有井和板号的data.frame.接下来,我将a)修复印版格式,使其正常工作; b)使此功能能够获取样品名称或ID或其他的列表,并返回样品名称,井位和板数!
plateLayout <- function(numOfSamples, plateFormat = 96, direction = "DOWN"){
#This assumes that each well will be filled in order. I may need to change this, but lets get it working first.
#Calculate the number of plates required
platesRequired <- ceiling(numOfSamples/plateFormat)
rowLetter <- character(0)
colNumber <- numeric(0)
plateNumber …Run Code Online (Sandbox Code Playgroud)