in reply to Re^7: Easiest way to filter a file based on user input (updated)
in thread Easiest way to filter a file based on user input
When I run the script below and enter -3 I expect the script to filter my text file of all the lines beginning with 'None' or numbers which are greater than -3, leaving only lines with numbers equal to or less than -3
Here is an example of my data:>hsa_circ_0067224|chr3:128345575-128345675-|NM_002950|RPN1 FORWARD -4.4 6 .. 17 xxxxxxxxxxGTGAC CAGT ATGC ACT +G AAGATGAGGTTTGTG -0.9 5 .. 18 xxxxxxxxxxxGTGA CCAGT ATGC ACT +GA AGATGAGGTTTGTGG None 1 .. 20 xxxxxxxxxxxxxxx GTGACCAGTATGCACT +GAAG ATGAGGTTTGTGGAC None 2 .. 21 xxxxxxxxxxxxxxG TGACCAGTATGCACTG +AAGA TGAGGTTTGTGGACC None 6 .. 25 xxxxxxxxxxGTGAC CAGTATGCACTGAAGA +TGAG GTTTGTGGACCATGT -2.3 5 .. 26 xxxxxxxxxxxGTGA C CAGTATGCACTGAAGA +TGAG G TTTGTGGACCATGTG -3.2 4 .. 27 xxxxxxxxxxxxGTG AC CAGTATGCACTGAAGA +TGAG GT TTGTGGACCATGTGT -1.9 3 .. 28 xxxxxxxxxxxxxGT GAC CAGTATGCACTGAAGA +TGAG GTT TGTGGACCATGTGTT
If I typed -3 I should be left with:
>hsa_circ_0067224|chr3:128345575-128345675-|NM_002950|RPN1 FORWARD -4.4 6 .. 17 xxxxxxxxxxGTGAC CAGT ATGC ACT +G AAGATGAGGTTTGTG -3.2 4 .. 27 xxxxxxxxxxxxGTG AC CAGTATGCACTGAAGA +TGAG GT TTGTGGACCATGTGT
So far it is only able to filter the 'None'. Shouldn't $RE{num}{real}{-places=>2} capture real & irrational numbers?
The script:#!/usr/bin/perl use strict; use warnings; use Regexp::Common qw /number/; print "Enter limit: "; chomp( my $limit = <STDIN> ); $limit = abs($limit); open my $IN, '<', "xt_spacer_results.hairpin" or die $!; open my $SIFTED, '>', "new_xt_spacer_results.hairpin" or die $!; while (<$IN>){ next if /^None/; next if /^($RE{num}{real}{-places=>2})/ && $1 > $limit; print $SIFTED $_; } close $IN; close $SIFTED;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^9: Easiest way to filter a file based on user input
by haukex (Archbishop) on Jul 16, 2017 at 09:29 UTC | |
by Peter Keystrokes (Beadle) on Jul 16, 2017 at 13:14 UTC | |
by haukex (Archbishop) on Jul 16, 2017 at 14:05 UTC | |
by Peter Keystrokes (Beadle) on Jul 16, 2017 at 16:23 UTC |