The following script takes a series of files with comma-delimited data named 0v.csv, 10v.csv etc., extracts everything in column 4 (in my case it contains relative abundance values from MS) from row 7 to the bottom, and stores those columns in files called 0.dat, 10.dat etc.
The second column (in my case it contains m/z values) is extracted from one of the csv files, and stored in mz.x.
Next, all the .dat files are pasted together, with the columns side by side, and the mz.x data added as the first column.
The data is rotated using the rotate script I've published earlier.
A file with cone-voltage values, cv.xy, has already been prepared by hand (single column), and is pasted together with the m/z data.
procms.sh
#!/usr/bin.bash
for e in 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300
do
tail -n +8 $e\v.csv | sed 's/\,/\t/g'| gawk '{print $4}' > $e.dat
done
#get m/z
tail -n +8 0v.csv | sed 's/\,/\t/g'| gawk '{print $2}' > mz.x
paste 0.dat 10.dat 20.dat 30.dat 40.dat 50.dat 60.dat 70.dat 80.dat 90.dat 100.dat 110.dat 120.dat 130.dat 140.dat 150.dat 160.dat 170.dat 180.dat 190.dat 200.dat 220.dat 240.dat 260.dat 280.dat 300.dat > all.dat
paste mz.x all.dat > $1dat
rotate $1.dat > $1\rot.dat
paste cv.xy $1\rot.dat > $1\tot.dat
The second column (in my case it contains m/z values) is extracted from one of the csv files, and stored in mz.x.
Next, all the .dat files are pasted together, with the columns side by side, and the mz.x data added as the first column.
The data is rotated using the rotate script I've published earlier.
A file with cone-voltage values, cv.xy, has already been prepared by hand (single column), and is pasted together with the m/z data.
procms.sh
#!/usr/bin.bash
for e in 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 220 240 260 280 300
do
tail -n +8 $e\v.csv | sed 's/\,/\t/g'| gawk '{print $4}' > $e.dat
done
#get m/z
tail -n +8 0v.csv | sed 's/\,/\t/g'| gawk '{print $2}' > mz.x
paste 0.dat 10.dat 20.dat 30.dat 40.dat 50.dat 60.dat 70.dat 80.dat 90.dat 100.dat 110.dat 120.dat 130.dat 140.dat 150.dat 160.dat 170.dat 180.dat 190.dat 200.dat 220.dat 240.dat 260.dat 280.dat 300.dat > all.dat
paste mz.x all.dat > $1dat
rotate $1.dat > $1\rot.dat
paste cv.xy $1\rot.dat > $1\tot.dat
ConversionConversion EmoticonEmoticon