Използвам софтуер за генетична интерпретация, наречен SAIGE-GENE. Алгоритъмът изглежда така (пълният алгоритъм на https://github.com/weizhouUMICH/SAIGE/wiki/Genetic-association-tests-using-SAIGE#step-2--performing-the-region--or-gene-based-association-tests): Това включва множество различни файлове, които се въвеждат с номера на хромозоми в имената им (от 1 до 22).
SPAGMMATtest = function(
vcfFile = "",
vcfFileIndex = "",
vcfField = "DS",
groupFile ="",
savFile = "",
savFileIndex = "",
sampleFile = "",
idstoExcludeFile = "",
idstoIncludeFile = "",
rangestoExcludeFile = "",
rangestoIncludeFile = "",
chrom = "",
start = 1,
end = 250000000,
IsDropMissingDosages = FALSE,
minMAC = 0.5,
minMAF = 0,
maxMAFforGroupTest = 0.5,
minInfo = 0,
GMMATmodelFile = "",
varianceRatioFile = "",
SPAcutoff=2,
SAIGEOutputFile = "",
numLinesOutput = 10000,
IsSparse=TRUE,
......
Не съм сложил всичко тук, тъй като не е уместно. Въвеждам няколко различни файла в този алгоритъм и обикновено именувам моите файлове chr1_file_name.txt...chr22_file_name.txt.
След това използвам for цикъл в R върху целия алгоритъм, като използвам функцията за поставяне, за да въведа различните имена на файлове по номер на хромозома:
for(i in 1:22){SPAGMMATtest = function(
vcfFile = paste("chr",i,"_file_name.txt", sep=""),
vcfFileIndex = "",
vcfField = "DS",
savFile = "",
groupFile ="paste("chr",i,".group_file.txt", sep="")",
и т.н
Това обаче работи добре, реших, че ще бъда умен и ще използвам трицифрено именуване за моите имена на файлове за този експеримент: chr001_file_name.txt...chr022_file_name.txt.
Предишният ми цикъл сега не работи и ако променя началото на цикъла на for(i в 001:022), той също не работи.
Какво правя погрешно и как мога да поправя това, без да преименувам всичките си файлове?
vcfFile = paste("chr",sprintf( "%03d", i),"_file_name.txt", sep=""),
редактиране: за по-кратък код можете да използватеpaste0()
и да изпуснете sep-аргумента... - person Wimpel   schedule 17.08.2020%03d
означава: конвертирайте в три цифри, добавете водещи нули, когато е необходимо.. така че 1 става 001, 21 става 021 и 201 остава 201. - person Wimpel   schedule 17.08.2020