also erstmal muss ich sagen ich hatte einmal programmiert und das war vor 10 Jahren und das war auch bloß Informatik-abi... also bin ich also so gut wie jungfräulich.
nun muss etwas programmieren für meine dr. arbeit die sich mit gen-auswertungen befasst
hier der quelltext:
population_info <- function(database="F:/Falk/ncbi/ncbi.db"){
library("RSQLite")
#database name
database <- "F:/Falk/ncbi/ncbi.db"
#database connection
con.population <- dbConnect(dbDriver("SQLite"),database)
#Snp-read-in
cat("\n","SNP Eingabe :","\n")
y<-scan(n=1)
#get data
sql.population <- paste("SELECT SNP.snp_id,SNPSubSNPLink.subsnp_id,allele.allele,Population.loc_pop_id,AlleleFreqBySsPop.freq,dn_Pop ulationIndGrp.pop_id ",
"from SNP,SNPSubSNPLink,AlleleFreqBySsPop,Population,dn_PopulationIndGrp,allele WHERE ",
"SNP.snp_id = SNPSubSNPLink.snp_id AND ",
"SNPSubSNPLink.subsnp_id = AlleleFreqBySsPop.subsnp_id AND ",
"AlleleFreqBySsPop.allele_id = Allele.allele_id And ",
"AlleleFreqBySsPop.pop_id = Population.pop_id AND ",
"AlleleFreqBySsPop.pop_id = dn_PopulationIndGrp.pop_id AND ",
"(Population.loc_pop_id IN ('HapMap-CEU','AFD_EUR_PANEL') OR ",
"dn_PopulationIndGrp.ind_grp_name IN ('European')) AND ",
"SNP.snp_id =",y)
#search and paste related data together
res.population <- dbGetQuery(con.population,sql.population)
[COLOR=Red] sql2.population <- paste("SELECT SNP.snp_id,SNPSubSNPLink.subsnp_id,allele.allele,AlleleFreqBySsPop.freq,Population.loc_pop_id,dn_Pop ulationIndGrp.pop_id ",
"from res.population where Case ",
"When Population.loc_pop_id IN ('HapMap-CEU') Then ",
"limit 1 Else ",
"When Population.loc_pop_id IN ('AFD_EUR_PANEL') then ",
"limit 1 Else limit 1 end ") [/COLOR]
#disconnect from database
dbDisconnect(con.population)
#return result
return(res.population)
}
Das was ich alles rausbekomme passt soweit, aber ich habe folgendes problem. Ich sage ihm er soll nur bestimmte populationen heraussuchen. kann ich ihm auch sagen dass er mir die in einer bestimmten reihenfolge ausgeben soll? (Mein "versuch" das zu erreichen ist rot markiert) ich möchte eigentlich immer Hapmap-datenmaterial, dann panel und dann die ergänzende abfrage european für kleinere gruppen haben.
Also ich bin ja eifrig am probieren und lesen aber irgendwie bin ich ratlos... also falls ihr kreative ansätze habt nur zu...
nun muss etwas programmieren für meine dr. arbeit die sich mit gen-auswertungen befasst
hier der quelltext:
population_info <- function(database="F:/Falk/ncbi/ncbi.db"){
library("RSQLite")
#database name
database <- "F:/Falk/ncbi/ncbi.db"
#database connection
con.population <- dbConnect(dbDriver("SQLite"),database)
#Snp-read-in
cat("\n","SNP Eingabe :","\n")
y<-scan(n=1)
#get data
sql.population <- paste("SELECT SNP.snp_id,SNPSubSNPLink.subsnp_id,allele.allele,Population.loc_pop_id,AlleleFreqBySsPop.freq,dn_Pop ulationIndGrp.pop_id ",
"from SNP,SNPSubSNPLink,AlleleFreqBySsPop,Population,dn_PopulationIndGrp,allele WHERE ",
"SNP.snp_id = SNPSubSNPLink.snp_id AND ",
"SNPSubSNPLink.subsnp_id = AlleleFreqBySsPop.subsnp_id AND ",
"AlleleFreqBySsPop.allele_id = Allele.allele_id And ",
"AlleleFreqBySsPop.pop_id = Population.pop_id AND ",
"AlleleFreqBySsPop.pop_id = dn_PopulationIndGrp.pop_id AND ",
"(Population.loc_pop_id IN ('HapMap-CEU','AFD_EUR_PANEL') OR ",
"dn_PopulationIndGrp.ind_grp_name IN ('European')) AND ",
"SNP.snp_id =",y)
#search and paste related data together
res.population <- dbGetQuery(con.population,sql.population)
[COLOR=Red] sql2.population <- paste("SELECT SNP.snp_id,SNPSubSNPLink.subsnp_id,allele.allele,AlleleFreqBySsPop.freq,Population.loc_pop_id,dn_Pop ulationIndGrp.pop_id ",
"from res.population where Case ",
"When Population.loc_pop_id IN ('HapMap-CEU') Then ",
"limit 1 Else ",
"When Population.loc_pop_id IN ('AFD_EUR_PANEL') then ",
"limit 1 Else limit 1 end ") [/COLOR]
#disconnect from database
dbDisconnect(con.population)
#return result
return(res.population)
}
Das was ich alles rausbekomme passt soweit, aber ich habe folgendes problem. Ich sage ihm er soll nur bestimmte populationen heraussuchen. kann ich ihm auch sagen dass er mir die in einer bestimmten reihenfolge ausgeben soll? (Mein "versuch" das zu erreichen ist rot markiert) ich möchte eigentlich immer Hapmap-datenmaterial, dann panel und dann die ergänzende abfrage european für kleinere gruppen haben.
Also ich bin ja eifrig am probieren und lesen aber irgendwie bin ich ratlos... also falls ihr kreative ansätze habt nur zu...
Kommentar