Assuming each gene symbol represents a unique gene or protein (this may not be true; see for gene name aliases in e.g. NCBI Entrez gene) you can get a lot of information programmatically. Below is an example using [R] and [Bioconductor] resources.

Define your list of genes:

    # list of gene symbols, here we focus on one.
    > genes <- "KRAS"

Load the annotation package [org.Hs.eg.db] and retrieve basic information including Gene Ontology ids:

    # annotation package for human genes.
    > library(org.Hs.eg.db)
    
    # query Entrez gene id, description (GENENAME) and Gene Ontology id (GO)
    > info <- select(org.Hs.eg.db, keys = genes, keytype = "SYMBOL", columns = c("ENTREZID", "GENENAME", "GO"))
    > head(info)
      SYMBOL ENTREZID                                   GENENAME         GO EVIDENCE
    1   KRAS     3845 Kirsten rat sarcoma viral oncogene homolog GO:0000165      TAS
    2   KRAS     3845 Kirsten rat sarcoma viral oncogene homolog GO:0000186      TAS
    3   KRAS     3845 Kirsten rat sarcoma viral oncogene homolog GO:0001934      IMP
    4   KRAS     3845 Kirsten rat sarcoma viral oncogene homolog GO:0005515      IPI
    5   KRAS     3845 Kirsten rat sarcoma viral oncogene homolog GO:0005525      IEA
    6   KRAS     3845 Kirsten rat sarcoma viral oncogene homolog GO:0005737      IDA
      ONTOLOGY
    1       BP
    2       BP
    3       BP
    4       MF
    5       MF
    6       CC

Load the [GO.db] package and retrieve the term associated with the GO ids (this gives info about putative function):

    > library(GO.db)
    > info$Term <- Term(GOTERM[info$GO])
    > head(info)
      SYMBOL ENTREZID                                   GENENAME         GO EVIDENCE
    1   KRAS     3845 Kirsten rat sarcoma viral oncogene homolog GO:0000165      TAS
    2   KRAS     3845 Kirsten rat sarcoma viral oncogene homolog GO:0000186      TAS
    3   KRAS     3845 Kirsten rat sarcoma viral oncogene homolog GO:0001934      IMP
    4   KRAS     3845 Kirsten rat sarcoma viral oncogene homolog GO:0005515      IPI
    5   KRAS     3845 Kirsten rat sarcoma viral oncogene homolog GO:0005525      IEA
    6   KRAS     3845 Kirsten rat sarcoma viral oncogene homolog GO:0005737      IDA
      ONTOLOGY                                           Term
    1       BP                                   MAPK cascade
    2       BP                   activation of MAPKK activity
    3       BP positive regulation of protein phosphorylation
    4       MF                                protein binding
    5       MF                                    GTP binding
    6       CC

Load the [RefNet] package and get information about interacting proteins:

    > library(RefNet)
    > refnet <- RefNet() # this step downloads from AnnotationHub and may take some time.
    > int <- interactions(refnet, species = "9606", id = genes, provider = "BioGrid")
    # create data.frame with Entrez id of proteins.
    > d <- int[,1:2]
    > d$A <- sub(".*locuslink:(.*)\\|.*", "\\1", d$A)
    > d$B <- sub(".*locuslink:(.*)\\|.*", "\\1", d$B)
    > head(d)
          A    B
    1  3065 3845
    2  8841 3845
    3 23411 3845
    4  1994 3845
    5  3845 9770
    6  9770 3845

Use the [igraph] package to visualize the interacting proteins.

    > library(igraph)
    > g <- igraph::simplify(graph.data.frame(d, directed = FALSE))

    # annotate the nodes with the symbol.
    > V(g)$label <- select(org.Hs.eg.db, keys = V(g)$name, columns = c("SYMBOL"), )$SYMBOL
    > plot(g)

Then you could repeat the cycle with the interacting partners. There are many other things you can do, starting from a list of symbols; this is just a brief example. More detailed examples and workflows can be found [here](http://www.bioconductor.org/help/workflows/).


  [R]: http://www.r-project.org
  [Bioconductor]: http://www.bioconductor.org
  [org.Hs.eg.db]: http://www.bioconductor.org/packages/release/data/annotation/html/org.Hs.eg.db.html
  [GO.db]: http://www.bioconductor.org/packages/release/data/annotation/html/GO.db.html
  [RefNet]: http://www.bioconductor.org/packages/release/bioc/html/RefNet.html
  [igraph]: http://igraph.org