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 <cpolw...@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@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.

______________________________________________
R-help@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.

Reply via email to