Sponsored Content
Top Forums Shell Programming and Scripting awk to print unique text in field Post 302957286 by drl on Thursday 8th of October 2015 04:20:30 PM
Old 10-08-2015
Hi, Scrutinizer.
Quote:
Originally Posted by Scrutinizer
@drl, that works if there is always only one kind of label per line...
Yes, I see what you mean, thanks; however, more kinds of labels were not presented in the sample data. If I have time, I'll think about a solution for that ... cheers, drl

---------- Post updated at 15:20 ---------- Previous update was at 15:10 ----------

Hi.

To correct possible flaw noted by Scrutinizer:
Code:
#!/usr/bin/env bash

# @(#) s2	Demonstrate extract unique string from specific field.

# Utility functions: print-as-echo, print-line-with-visual-space, debug.
# export PATH="/usr/local/bin:/usr/bin:/bin"
LC_ALL=C ; LANG=C ; export LC_ALL LANG
pe() { for _i;do printf "%s" "$_i";done; printf "\n"; }
pl() { pe;pe "-----" ;pe "$*"; }
db() { ( printf " db, ";for _i;do printf "%s" "$_i";done;printf "\n" ) >&2 ; }
db() { : ; }
C=$HOME/bin/context && [ -f $C ] && $C cut tr sort

FILE=${1-data2}

pl " Input data file $FILE:"
cat $FILE

pl " Results:"
cut -f2 -d" " $FILE |
tee f1 |
tr ';' '\n' |
tee f2 |
cut -f1 -d":" |
tee f3 |
sort -u

exit 0

produciing:
Code:
$ ./s2

Environment: LC_ALL = C, LANG = C
(Versions displayed with local utility "version")
OS, ker|rel, machine: Linux, 2.6.26-2-amd64, x86_64
Distribution        : Debian 5.0.8 (lenny, workstation) 
bash GNU bash 3.2.39
cut (GNU coreutils) 6.10
tr (GNU coreutils) 6.10
sort (GNU coreutils) 6.10

-----
 Input data file data2:
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
chr18:89838075-89838232 DARK:exon.23;FANCA:exon.4 583.497
chr19:89838075-89838232 PARK:exon.23;DARK:exon.4 583.497

-----
 Results:
DARK
FANCA
NF1
PARK

Best wishes ... cheers, drl
This User Gave Thanks to drl For This Post:
 

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::GenePosition(3pm)				User Contributed Perl Documentation			       Bio::Map::GenePosition(3pm)

NAME
Bio::Map::GenePosition - A typed position, suitable for modelling the various regions of a gene. SYNOPSIS
use Bio::Map::GenePosition; use Bio::Map::GeneMap; # say that the first transcript of a particular gene on a particular map # (species) is 1000bp long my $map = Bio::Map:GeneMap->get(-universal_name => 'BRCA2', -species => 'human'); my $gene = $map->gene; Bio::Map::GenePosition->new(-map => $map, -element => $gene, -start => 0, -length => 1000, -type => 'transcript'); # say that the coding region of the gene starts 30bp into the first # transcript Bio::Map::GenePosition->new(-map => $map, -element => $gene, -start => 30, -length => 600, -type => 'coding'); # A GenePosition isa PositionWithSequence, so can have sequence associated # with it my $exon = Bio::Map::GenePosition->new(-map => $map, -element => $gene, -start => 0, -type => 'exon', -seq => 'ATGGGGTGGG'); my $length = $exon->length; # $length is 10 DESCRIPTION
Define where various sub-regions (transcripts, exons, introns etc.) of a gene are. Do this so that you can then go onto to model other mappable elements as having positions 20bp upstream of transcript 2, or 10bp into intron 3 etc., all without having to know the absolute position of anything. See Bio::Map::GeneRelative and t/Map/Map.t for more example usage. 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 $obj = Bio::Map::GenePosition->new(); Function: Builds a new Bio::Map::GenePosition object Returns : Bio::Map::GenePosition Args : -map => Bio::Map::GeneMap object -element => Bio::Map::Gene object -relative => Bio::Map::GeneRelative object -type => 'transcript|coding|exon|intron', REQUIRED -seq => string, length of this string will set the length of this position's range * If this position has no range, or if a single value can describe the range * -value => scalar : something that describes the single point position or range of this Position, most likely an int * Or if this position has a range, at least two of * -start => int : value of the start co-ordinate -end => int : value of the end co-ordinate -length => int : length of the range map Title : map Usage : my $map = $position->map(); $position->map($map); Function: Get/set the map the position is in. Returns : L<Bio::Map::MapI> Args : none to get new L<Bio::Map::MapI> to set element Title : element Usage : my $element = $position->element(); $position->element($element); Function: Get/set the element the position is for. Returns : L<Bio::Map::MappableI> Args : none to get new L<Bio::Map::MappableI> to set type Title : type Usage : my $type = $position->type(); $position->type($type); Function: Get/set the type of this position. Returns : string Args : none to get, OR string transcript|coding|exon|intron to set relative Title : relative Usage : my $relative = $position->relative(); $position->relative($relative); Function: Get/set the thing this Position's coordinates (numerical(), start(), end()) are relative to, as described by a RelativeI object. Returns : Bio::Map::GeneRelative. The default GeneRelative returned has a meaning that depends on the type() of GenePosition this is: 'transcript' : "relative to the start of the gene on the Position's map" 'coding|exon|intron' : "relative to the start of the default transcript of the gene on the Position's map" Args : none to get, OR Bio::Map::GeneRelative to set seq Title : seq Usage : my $string = $position->seq(); Function: Get/set the sequence as a string of letters. If no sequence is manually set by you, the position's map will be asked for the sequence, and if available, that will be returned. Returns : scalar Args : Optionally on set the new value (a string). An optional second argument presets the alphabet (otherwise it will be guessed). perl v5.14.2 2012-03-02 Bio::Map::GenePosition(3pm)
All times are GMT -4. The time now is 03:38 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy