[R] How to loop over two files ...
cpoiw@rt m@iii@g oii chemo@org@uk
cpoiw@rt m@iii@g oii chemo@org@uk
Fri Jun 19 23:41:54 CEST 2020
Oh - read.text isn't in base! Not sure where is came from (my head
mostly!) You may have something that adds it but better to use
something that works. So try using:
library(readr)
f1 <- read_tsv("1g.txt", col.names=F)
This will give you a tibble with f1$X1 with the file in it
then loop it with (a in as.list(f1[,1])
Others will have much slicker code than me!
On 2020-06-19 22:02, Ana Marija wrote:
> Hi,
>
> thanks for getting back to me, it is just for my job :)
>
> so I tried it:
>
> library(httr)
> library(jsonlite)
> library(xml2)
> library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R",
> "lib")))
> sparkR.session(master = "local[*]", sparkConfig =
> list(spark.driver.memory = "2g"))
>
> server <- "http://rest.ensembl.org"
>
> f1 <- read.text("1g.txt")
> f2 <- read.text("1n.txt")
>
> for ( a in as.list(f1) ) {
>
> for ( b in as.list(f2) ) {
>
> ext <- paste0( "/ld/human/pairwise/",
> a,
> "/",
> b,
> "?population_name=1000GENOMES:phase_3:KHV")
>
> r <- GET(paste(server, ext, sep = ""),
> content_type("application/json"))
>
> write(r,file="list.txt",append=TRUE)
>
>
> }
>
> }
>
> and I got this error:
> Error in as.list.default(f1) :
> no method for coercing this S4 class to a vector
>
> Please advise
>
> On Fri, Jun 19, 2020 at 3:28 PM <cpolwart using chemo.org.uk> wrote:
>>
>> so (untested) if you did something like
>>
>> f1 <- read.text("1g.txt")
>> f2 <- read.text("1n.txt")
>>
>> for ( a in as.list(f1) ) {
>>
>> for ( b in as.list(f2) ) {
>>
>> ext <- paste0( "/ld/human/pairwise/",
>> a,
>> "/",
>> b,
>> "?population_name=1000GENOMES:phase_3:KHV")
>>
>> r <- GET(paste(server, ext, sep = ""),
>> content_type("application/json"))
>>
>> # You presumably need to do something with 'r' at the
>> moment its over written by the next loop.. were
>> # you appending it to list.txt? Possibly its just a
>> bit
>> of the R output you want.?
>>
>> write(r,file="list.txt",append=TRUE)
>>
>>
>> }
>>
>> }
>>
>>
>> Are we doing your PhD for you ;-) Do we get to share ;-)
>>
>>
>> On 2020-06-19 20:34, Ana Marija wrote:
>> > Hello,
>> >
>> > I have two files (each has 300 lines)like this:
>> >
>> > head 1g.txt
>> > rs6792369
>> > rs1414517
>> > rs16857712
>> > rs16857703
>> > rs12239392
>> > ...
>> >
>> > head 1n.txt
>> > rs1042779
>> > rs2360630
>> > rs10753597
>> > rs7549096
>> > rs2343491
>> > ...
>> >
>> > For each pair of rs# from those two files I can run this command in R
>> >
>> > library(httr)
>> > library(jsonlite)
>> > library(xml2)
>> >
>> > server <- "http://rest.ensembl.org"
>> > ext <-
>> > "/ld/human/pairwise/rs6792369/rs1042779?population_name=1000GENOMES:phase_3:KHV"
>> >
>> > r <- GET(paste(server, ext, sep = ""),
>> > content_type("application/json"))
>> >
>> > stop_for_status(r)
>> > head(fromJSON(toJSON(content(r))))
>> > d_prime r2 variation1 variation2 population_name
>> > 1 0.975513 0.951626 rs6792369 rs1042779 1000GENOMES:phase_3:KHV
>> >
>> > What I would like to do is to do is to run this command for every SNP
>> > in one list (1g.txt) to each SNP in another list (1n.txt). Where SNP#
>> > is rs# and output every line of result in list.txt
>> >
>> > The process is illustrated in the attachment.
>> >
>> > Please help,
>> > Ana
>> >
>> > ______________________________________________
>> > R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> > https://stat.ethz.ch/mailman/listinfo/r-help
>> > PLEASE do read the posting guide
>> > http://www.R-project.org/posting-guide.html
>> > and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list