help with doing calculations on data


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers help with doing calculations on data
# 8  
Old 03-21-2011
Code:
# awk '{match($0,/[0-9-]+/);x=2*$3/(RLENGTH+1);print $0,x,z?(z-x):0;z=x}' tst

Code:
# cat tst
common.levure5-6-7-8_SNP_SNP_annotated.gff      file_1  1348
common.levure5-6-8_SNP_SNP_annotated.gff        file_2  1167
common.levure5-6-7_SNP_SNP_annotated.gff        file_3  1125
common.levure5-7-8_SNP_SNP_annotated.gff        file_4  1104
common.levure6-7-8_SNP_SNP_annotated.gff        file_5  1083
common.levure5-6_SNP_SNP_annotated.gff          file_6  952
common.levure5-8_SNP_SNP_annotated.gff          file_7  896
common.levure5-7_SNP_SNP_annotated.gff          file_8  886
common.levure6-8_SNP_SNP_annotated.gff          file_9  872
common.levure7-8_SNP_SNP_annotated.gff          file_10 862
common.levure6-7_SNP_SNP_annotated.gff          file_11 846
# awk '{match($0,/[0-9-]+/);x=2*$3/(RLENGTH+1);print $0,x,z?(z-x):0;z=x}' tst
common.levure5-6-7-8_SNP_SNP_annotated.gff file_1 1348 337 0
common.levure5-6-8_SNP_SNP_annotated.gff file_2 1167 389 -52
common.levure5-6-7_SNP_SNP_annotated.gff file_3 1125 375 14
common.levure5-7-8_SNP_SNP_annotated.gff file_4 1104 368 7
common.levure6-7-8_SNP_SNP_annotated.gff file_5 1083 361 7
common.levure5-6_SNP_SNP_annotated.gff file_6 952 476 -115
common.levure5-8_SNP_SNP_annotated.gff file_7 896 448 28
common.levure5-7_SNP_SNP_annotated.gff file_8 886 443 5
common.levure6-8_SNP_SNP_annotated.gff file_9 872 436 7
common.levure7-8_SNP_SNP_annotated.gff file_10 862 431 5
common.levure6-7_SNP_SNP_annotated.gff file_11 846 423 8
#


Last edited by ctsgnb; 03-21-2011 at 01:55 PM..
# 9  
Old 03-21-2011
@ctsgnb:

This is not giving the expected output .... its not keeping the first entry in $4 which is 337 as a constant to be used for subtraction of other entries, but thanks for your input Smilie
# 10  
Old 03-21-2011
I missunderstood your needs : i was substracting entries $3[n]-$3[n+1] but ok i understand you want $3[0]-$3[n] instead so ...

Like this ?

Code:
# awk '{match($0,/[0-9-]+/);x=2*$3/(RLENGTH+1);print $1,$2,$3,x,(NR==1)?0:337-x}' tst
common.levure5-6-7-8_SNP_SNP_annotated.gff file_1 1348 337 0
common.levure5-6-8_SNP_SNP_annotated.gff file_2 1167 389 -52
common.levure5-6-7_SNP_SNP_annotated.gff file_3 1125 375 -38
common.levure5-7-8_SNP_SNP_annotated.gff file_4 1104 368 -31
common.levure6-7-8_SNP_SNP_annotated.gff file_5 1083 361 -24
common.levure5-6_SNP_SNP_annotated.gff file_6 952 476 -139
common.levure5-8_SNP_SNP_annotated.gff file_7 896 448 -111
common.levure5-7_SNP_SNP_annotated.gff file_8 886 443 -106
common.levure6-8_SNP_SNP_annotated.gff file_9 872 436 -99
common.levure7-8_SNP_SNP_annotated.gff file_10 862 431 -94
common.levure6-7_SNP_SNP_annotated.gff file_11 846 423 -86

If you want to avoid hardcoding the 337 :

Code:
 awk '{match($1,/[0-9-]+/);x=2*$3/(RLENGTH+1);print $0,x,(NR==1)?0:r-x}NR<2{r=x}' tst


Last edited by ctsgnb; 03-21-2011 at 02:16 PM..
This User Gave Thanks to ctsgnb For This Post:
# 11  
Old 03-21-2011
Yeah that fits my needs ... thanx Smilie
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Loop doing calculations

Hello. I'm writing an awk script that looks at a .csv file and calculates the weighted grade for each student based on the scores and categories in the file. I am able to get the script to run the only issue however is that the same score for each student is the same. I'm self-teaching myself the... (1 Reply)
Discussion started by: Eric7giants
1 Replies

2. Shell Programming and Scripting

Linux - Calculations between multiple rows of data

Morning All, I am needing assistance with a calculation process, which performs calculations on a group of records. Here is a breakdown of my requirement: Col1 = Always same value. Col2 = Grouping Column, and will have the same value for 5/6/7 records for example. Col3 = Date Col4 =... (3 Replies)
Discussion started by: RichZR
3 Replies

3. Shell Programming and Scripting

Output calculations

Attached are the is original output (zipped file) and a custom file using the awk code below in which the average reads per bait are calculated (average.txt) awk '{if(len==0){last=$4;total=$6;len=1;getline}if($4!=last){printf("%s\t%f\n", last,... (7 Replies)
Discussion started by: cmccabe
7 Replies

4. Shell Programming and Scripting

Number calculations

I'm writing a script that will read all the fields of a text file into an array(if they are numeric), while at the same time computing the minimum and maximum values from the file. After that I want to output the average of all the numbers in the array. The first problem I'm having is that many... (10 Replies)
Discussion started by: ksmarine1980
10 Replies

5. Shell Programming and Scripting

Problem with calculations

grep Quality abc.txt | awk -F"=" '{print $2}' o/p is given as 70/70 49/70 I want in the below format (percentage format) 100% 70% help me!!!!:confused::confused::confused: ---------- Post updated at 09:59 AM ---------- Previous update was at 09:57 AM ---------- Cell 01 -... (3 Replies)
Discussion started by: nikhil jain
3 Replies

6. UNIX for Dummies Questions & Answers

Doing calculations with bc on one field

Hello, I have to turn: Apple Inc.:325,64:329,57 into Apple Inc.:325,64:329,57:3,93 3,93=329,57-325,64. My code: cat beurs.txt | sed 's/\(*\):\(*\),*\(*\):\(*\),\(*\)/\4\.\5-\2\.\3/' beurs.txt | bc| tr '.' ',' | sed 's/^-*,/0,/' > winstmarges.txt; paste -d: beurs.txt winstmarges.txt; rm... (5 Replies)
Discussion started by: ikke008
5 Replies

7. Shell Programming and Scripting

calculations in bash

HI i have following problem, i need to use split command to split files each should be cca 700 lines but i dont know how to inplement it in the scripts becasuse each time the origin file will be various size , any body got any idea cheers (2 Replies)
Discussion started by: kvok
2 Replies

8. UNIX for Dummies Questions & Answers

Date Calculations

I need to be able to use the current date and calculate 7 days ago to be stored in another variable to be passed to a file in my Unix shell script. I need the date in the following format: date '+%m/%d/%Y' or 05/16/2006 How do I calculate date minus 7 days or 1 week ago? (8 Replies)
Discussion started by: mitschcg
8 Replies

9. UNIX for Dummies Questions & Answers

Time Calculations

I'm trying to have a loop print out statistics every X number of seconds. How can I add a specific number of seconds to a time variable and make a comparison? Thanks ahead of time. For example: startTime = `date +%H%M%S` currentTime = $startTime executeTime = startTime + X # X is equal... (5 Replies)
Discussion started by: Nysif Steve
5 Replies

10. UNIX for Dummies Questions & Answers

Float calculations

As expr is used for integer calculations, which command is used for float calculations. (1 Reply)
Discussion started by: sharmavr
1 Replies
Login or Register to Ask a Question