Sponsored Content
Top Forums Shell Programming and Scripting awk to print unique text in field Post 302957261 by cmccabe on Thursday 8th of October 2015 01:17:49 PM
Old 10-08-2015
awk to print unique text in field

I am trying to use awk to print the unique entries in $2

So in the example below there are 3 lines but 2 of the lines match in $2 so only one is used in the output.


File.txt
Code:
chr17:29667512-29667673 NF1:exon.1;NF1:exon.2;NF1:exon.38;NF1:exon.4;NF1:exon.46;NF1:exon.47 703.807
chr16:89877104-89877220 FANCA:exon.4;FANCA:exon.5 159.284
chr16:89838075-89838232 FANCA:exon.23;FANCA:exon.4 583.497

Desired output
Code:
NF1
FANCA

Code:
awk '!seen[$2]++ {lines[i++]=$2}      END {for (i in lines) if (seen[lines[i]]==1) print lines[i]}' file.txt > output.txt

is close but uses the entire line not the unique text

Current output
Code:
NF1:exon.14;NF1:exon.16;NF1:exon.8
NF1:exon.13;NF1:exon.22;NF1:exon.28;NF1:exon.30;NF1:exon.4
CTC1:exon.1;CTC1:exon.16;CTC1:exon.2;CTC1:exon.3;CTC1:exon.5
CTC1:exon.1;CTC1:exon.10;CTC1:exon.2;CTC1:exon.3

Desired output
Code:
NF1
CTC1

Thank you Smilie
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk, comma as field separator and text inside double quotes as a field.

Hi, all I need to get fields in a line that are separated by commas, some of the fields are enclosed with double quotes, and they are supposed to be treated as a single field even if there are commas inside the quotes. sample input: for this line, 5 fields are supposed to be extracted, they... (8 Replies)
Discussion started by: kevintse
8 Replies

2. Shell Programming and Scripting

Compare Tab Separated Field with AWK to all and print lines of unique fields.

Hi. I have a tab separated file that has a couple nearly identical lines. When doing: sort file | uniq > file.new It passes through the nearly identical lines because, well, they still are unique. a) I want to look only at field x for uniqueness and if the content in field x is the... (1 Reply)
Discussion started by: rocket_dog
1 Replies

3. Shell Programming and Scripting

Print unique records in 2 columns using awk

Is it possible to print the records that has only 1 value in 2nd column. Ex: input awex1 1 awex1 2 awex1 3 assww 1 ader34 1 ader34 2 output assww 1 (5 Replies)
Discussion started by: quincyjones
5 Replies

4. Shell Programming and Scripting

Print unique names in a specific column using awk

Is it possible to modify file like this. 1. Remove all the duplicate names in a define column i.e 4th col 2. Count the no.of unique names separated by ";" and print as a 5th col thanx in advance!! Q input c1 30 3 Eh2 c10 96 3 Frp c41 396 3 Ua5;Lop;Kol;Kol c62 2 30 Fmp;Fmp;Fmp ... (5 Replies)
Discussion started by: quincyjones
5 Replies

5. Shell Programming and Scripting

awk to parse field and include the text of 1 pipe in field 4

I am trying to parse the input in awk to include the |gc= in $4 but am not able to. The below is close: awk so far: awk '{sub(/\|]+]++/, ""); print }' input.txt Input chr1 955543 955763 AGRN-6|pr=2|gc=75 0 + chr1 957571 957852 AGRN-7|pr=3|gc=61.2 0 + chr1 970621 ... (7 Replies)
Discussion started by: cmccabe
7 Replies

6. Shell Programming and Scripting

awk to print unique text in field before hyphen

Trying to print the unique values in $2 before the -, currently the count is displayed. Hopefully, the below is close. Thank you :). file chr2:46603668-46603902 EPAS1-902|gc=54.3 253.1 chr2:211471445-211471675 CPS1-1205|gc=48.3 264.7 chr19:15291762-15291983 NOTCH3-1003|gc=68.8 195.8... (3 Replies)
Discussion started by: cmccabe
3 Replies

7. Shell Programming and Scripting

awk to print lines based on text in field and value in two additional fields

In the awk below I am trying to print the entire line, along with the header row, if $2 is SNV or MNV or INDEL. If that condition is met or is true, and $3 is less than or equal to 0.05, then in $7 the sub pattern :GMAF= is found and the value after the = sign is checked. If that value is less than... (0 Replies)
Discussion started by: cmccabe
0 Replies

8. UNIX for Beginners Questions & Answers

Print lines based upon unique values in Nth field

For some reason I am having difficulty performing what should be a fairly easy task. I would like to print lines of a file that have a unique value in the first field. For example, I have a large data-set with the following excerpt: PS003,001 MZMWR/ L-DWD// * PS003,001... (4 Replies)
Discussion started by: jvoot
4 Replies

9. Shell Programming and Scripting

awk to print text in field if match and range is met

In the awk below I am trying to match the value in $4 of file1 with the split value from $4 in file2. I store the value of $4 in file1 in A and the split value (using the _ for the split) in array. I then strore the value in $2 as min, the value in $3 as max, and the value in $1 as chr. If A is... (6 Replies)
Discussion started by: cmccabe
6 Replies

10. UNIX for Beginners Questions & Answers

Awk: count unique elements in a field and sum their occurence across the entire file

Hi, Sure it's an easy one, but it drives me insane. input ("|" separated): 1|A,B,C,A 2|A,D,D 3|A,B,B I would like to count the occurence of each capital letters in $2 across the entire file, knowing that duplicates in each record count as 1. I am trying to get this output... (5 Replies)
Discussion started by: beca123456
5 Replies
Bio::Map::GeneRelative(3pm)				User Contributed Perl Documentation			       Bio::Map::GeneRelative(3pm)

NAME
Bio::Map::GeneRelative - Represents being relative to named sub-regions of a gene. SYNOPSIS
use Bio::Map::GeneRelative; # say that a somthing will have a position relative to the start of the # gene on map my $rel = Bio::Map::GeneRelative->new(-gene => 0); # or that something will be relative to the third transcript of a gene # on a map $rel = Bio::Map::GeneRelative->new(-transcript => 3); # or to the 5th intron of the default transcript $rel = Bio::Map::GeneRelative->new(-intron => [0, 5]); # use the $rel as normal; see L<Bio::Map::Relative> DESCRIPTION
Be able to say that a given position is relative to some standard part of a gene. FEEDBACK
Mailing Lists User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to the Bioperl mailing list. Your participation is much appreciated. bioperl-l@bioperl.org - General discussion http://bioperl.org/wiki/Mailing_lists - About the mailing lists Support Please direct usage questions or support issues to the mailing list: bioperl-l@bioperl.org rather than to the module maintainer directly. Many experienced and reponsive experts will be able look at the problem and quickly address it. Please include a thorough description of the problem with code and data examples if at all possible. Reporting Bugs Report bugs to the Bioperl bug tracking system to help us keep track of the bugs and their resolution. Bug reports can be submitted via the web: https://redmine.open-bio.org/projects/bioperl/ AUTHOR - Sendu Bala Email bix@sendu.me.uk APPENDIX
The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _ new Title : new Usage : my $relative = Bio::Map::Relative->new(); Function: Build a new Bio::Map::Relative object. Returns : Bio::Map::Relative object Args : -gene => int : coordinates are relative to the int'th base downstream of the Position's map's gene [default is gene => 0, ie. relative to the start of the gene], -transcript => int : or relative to the start of the int'th transcript of the Position's map's gene, -exon => [i, n] : or relative to the start of the n'th transcript's i'th exon, -intron => [i, n] : or intron, -coding => int : or the start of the int'th transcript's coding region. -description => string : Free text description of what this relative describes (To say a Position is relative to something and upstream of it, the Position's start() co-ordinate should be set negative) In all cases, a transcript number of 0 means the active transcript. absolute_conversion Title : absolute_conversion Usage : my $absolute_coord = $relative->absolute_conversion($pos); Function: Convert the start co-ordinate of the supplied position into a number relative to the start of its map. Returns : scalar number Args : Bio::Map::PositionI object type Title : type Usage : my $type = $relative->type(); Function: Get the type of thing we are relative to. The types correspond to a method name, so the value of what we are relative to can subsequently be found by $value = $relative->$type; Note that type is set by the last method that was set, or during new(). Returns : 'gene', 'transcript', 'exon', 'intron' or 'coding' Args : none gene Title : gene Usage : my $int = $relative->gene(); $relative->gene($int); Function: Get/set the distance from the start of the gene that the Position's co-ordiantes are relative to. Returns : int Args : none to get, OR int to set; a value of 0 means relative to the start of the gene. transcript Title : transcript Usage : my $int = $relative->transcript(); $relative->transcript($int); Function: Get/set which transcript of the Position's map's gene the Position's co-ordinates are relative to. Returns : int Args : none to get, OR int to set; a value of 0 means the active (default) transcript. exon Title : exon Usage : my ($exon_number, $transcript_number) = @{$relative->exon()}; $relative->exon($exon_number, $transcript_number); Function: Get/set which exon of which transcript of the Position's map's gene the Position's co-ordinates are relative to. Returns : reference to list with two ints, exon number and transcript number Args : none to get, OR int (exon number) AND int (transcript number) to set. The second int is optional and defaults to 0 (meaning default/active transcript). intron Title : intron Usage : my ($intron_number, $transcript_number) = @{$relative->intron()}; $relative->intron($intron_number, $transcript_number); Function: Get/set which intron of which transcript of the Position's map's gene the Position's co-ordinates are relative to. Returns : reference to list with two ints, intron number and transcript number Args : none to get, OR int (intron number) AND int (transcript number) to set. The second int is optional and defaults to 0 (meaning default/active transcript). coding Title : coding Usage : my $transcript_number = $relative->coding; $relative->coding($transcript_number); Function: Get/set which transcript's coding region of the Position's map's gene the Position's co-ordinates are relative to. Returns : int Args : none to get, OR int to set (the transcript number, see transcript()) perl v5.14.2 2012-03-02 Bio::Map::GeneRelative(3pm)
All times are GMT -4. The time now is 04:49 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy