This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Delete numbers in the tables column

Hi All,

I have a table with six columns (in the following).

enter image description here

So, I want to delete SNPs that are less than number 10 in the SNP column.

What is the best idea?

Best Regard

Mostafa

r

2 answers

awk !

a cmdline such as below one should do the trick:

awk ' $4 >= 10' <table-file> > new_file

and if you want to (additionally) apply calculations on a certain column:

awk ' $4 >= 10' <table-file> | awk '$2=$2+2000' > new_file

Read the file, and filter out any row where SNP column is more than or equal to 10:

data <- read.table("SNP.txt", header = TRUE)
data <- data[ data$SNP >= 10, ])

To exclude 1st BP column, and to add 20KB to BP column:

data <- data[ , -3 ]
data$BP <- data$BP + 20000

many thanks for your reply,

I could do it.

Now, I have two BP columns.

First I want to delete one of them. And the second, I want to add 20,000 to each of the numbers in the first BP column.

What is the best idea?

awk again ;)

pretty nifty stuff awk

yes, now i want to add amount 20,000 to each of the numbers in the first BP column.

for example:

1+20000
20001+20000
40001+20000
.
.
.

You can add other operations to the cmdline I provided earlier (or do it in one go even). I'll split it up in separate operations for increased readability and understanding

awk ' $4 >= 10' <table-file> | awk '$2=$2+2000' > new_file

See edit, answer updated.

why fire up R while you can simply do this command line? ;-)

Maybe because some are more comfortable in R world. Please add your comments regarding +20KB, to your answer, so that your answer is complete.

OK, added it (though the question on the +20K was part of this thread).

and, OK, point taken.

Log in to answer this question.