Sponsored Content
Top Forums Shell Programming and Scripting Classify lines in file using perl Post 302995617 by cmccabe on Sunday 9th of April 2017 09:17:49 AM
Old 04-09-2017
If f[54] has a . in it, the value associated with it is zero. In order to prevent column shifting due to null values I use a . in these fields.
So, I think I follow but just to make sure the abs($Score) is only used if f[54] is not a .? Is that right? Also, could you please comment the code so I may try to learn from more from it, if possible. Thank you very much Smilie.

Code:
#!/usr/bin/perl    # call perl
use strict;     # use exactdefined criteria
use warnings;   # display warning messages

print scalar <>;  # skip header line
while (<>)    # start conditional checks
{
    my @f = split /\t/;      # split on tabs
    my ( $FuncIDPrefGene,    # field 1
         $AAChangeIDPrefGene, # field 2
         $PopFreqMax,         # field 3
         $GeneDetailIDPrefGene, # field 4
         $ClinSig,              # field 5
         $Score ) = @f[6,11,13,8,46,54];   # field 6 and define field locations using 0 coordinate

    if (abs($Score) < 5) {      # check field 6 for value and ensure its less than 5
        if($FuncIDPrefGene eq 'exonic') {   # check field 1 and if exonic and conditon above met
            pj(\@f,'Likely Benign');    # set field 55 to Likely Benign
        } # end condition 1 block
        else {
            my $scored = $GeneDetailIDPrefGene=~/\.\d+[\+\-](\d+)/;  # use field 4 and split on the . and +/1 and read value into variable
            pj(\@f, 'Likely Benign') if $scored > 10;    # if variable greater then 10 then field 55 is Likely Benign
        }  # end condition 2 block
    } 
    else {
        pj(\@f, 'VUS');  # if niether condition is meet set field 55 to VUS
    }
}  # end while block
sub pj     # define subroutine
{    # start sub block
    my $fr = shift;  # define variable 
    $fr->[55] = shift;  # use field 55 as variable
    print join "\t", @{$fr};   # print value in field
}   # end sub block


Last edited by cmccabe; 04-09-2017 at 11:18 AM.. Reason: added comment question
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

strip first 4 and last 2 lines from a file using perl

Hi I have a file from which i need to remove the first 4 and the last 2 lines.. i know how to do it with sed but i need to do it in a perl script.. can you please help me how to do that. Thanks (10 Replies)
Discussion started by: meghana
10 Replies

2. Shell Programming and Scripting

add lines in file with perl

How to search string like: a and replace to a a a : : a in a file with perl? Thanks, Grace (6 Replies)
Discussion started by: jinsh
6 Replies

3. Shell Programming and Scripting

How to remove the lines from file using perl

Can anyone tell me what could be the solution to following : I have one .txt file which contains some seed information. This seed may appear multiple time in the file so what I want do is if this seed appears again in the file then that line should be removed. here is the contents of .txt... (5 Replies)
Discussion started by: dipakg
5 Replies

4. Shell Programming and Scripting

Parsing a file using perl and skipping some lines

Hi, Consider following file with input: `YFLG:NC^Byad_insert constraint {id=600104470} {profile=GENDER == 2} {profile=BEHAVIOR == 17} {profile=SITEATTR_MULT == siteid:211051} {profile=AGE in } yad_insert ad {id=1718286093336959379} {type=R} ^AYFLG:YOO^Byad_insert constraint {id=600104471}... (1 Reply)
Discussion started by: bvids
1 Replies

5. Shell Programming and Scripting

Using Perl to Merge Multiple Lines in a File

I've hunted and hunted but nothing seems to apply to what I need. Any help will be much appreciated! My input file looks like (Unix): marker,allele1,allele2 RS1002244,1,1 RS1002244,1,3 RS1002244,3,3 RS1003719,2,2 RS1003719,2,4 RS1003719,4,4 Most markers are listed 3 times but a few... (2 Replies)
Discussion started by: Peggy White
2 Replies

6. Shell Programming and Scripting

How to use awk to classify file extension from input ls -l

i try to do this for a long time input is command ls -l and output is: Number of files : xx Number of file type – awk : 5 total size: 2345 bytes // file ex type .awk Number of file type – dat : 10 total size: 233 bytes // file ex type .dat ... Number of unknown file type... (1 Reply)
Discussion started by: retsuseiba
1 Replies

7. Shell Programming and Scripting

How to get the lines matched of a file in perl?

Hi, I want to match the time in the file and retrieve those contents of the file. I am taking only first two parameters of localtime(time) function minutes and seconds so partial match i am performing. For Example $start = "14:23"; $end = "14:30"; I am matching file contents... (3 Replies)
Discussion started by: vanitham
3 Replies

8. UNIX for Dummies Questions & Answers

Classify value to a range

Dear All, I need to classify my data into sets or ranges based on values in the second column of a file as - low medium and high. INPUT: file1.dat 1.tmp 1.03 2.tmp 0.38 3.tmp 3.23 4.tmp 1.34 I would like to classify all the numerical values into a range based on the followng... (3 Replies)
Discussion started by: chen.xiao.po
3 Replies

9. Shell Programming and Scripting

How to delete lines from a file in PERL?

Hi, I have 500 MB of file. I want to retain first line and last line of the file. I am unaware of deleting lines from a file in PERL. How can i do it in PERL? Regards VANITHA (3 Replies)
Discussion started by: vanitham
3 Replies

10. Shell Programming and Scripting

AWK to classify a file into several ones ..

Good Day All, I need to make a script that will do the following : 1- read a .csv file line by line, check the 3 field of each file print the whole line if this field matches the condition (note : FS = ",") 2-from the basic file, the script should genrate 3 new files based on the step #1... (6 Replies)
Discussion started by: engkemo2002
6 Replies
DH_PERL(1)							     Debhelper								DH_PERL(1)

NAME
dh_perl - calculates Perl dependencies and cleans up after MakeMaker SYNOPSIS
dh_perl [debhelperoptions] [-d] [librarydirs...] DESCRIPTION
dh_perl is a debhelper program that is responsible for generating the ${perl:Depends} substitutions and adding them to substvars files. The program will look at Perl scripts and modules in your package, and will use this information to generate a dependency on perl or perlapi. The dependency will be substituted into your package's control file wherever you place the token ${perl:Depends}. dh_perl also cleans up empty directories that MakeMaker can generate when installing Perl modules. OPTIONS
-d In some specific cases you may want to depend on perl-base rather than the full perl package. If so, you can pass the -d option to make dh_perl generate a dependency on the correct base package. This is only necessary for some packages that are included in the base system. Note that this flag may cause no dependency on perl-base to be generated at all. perl-base is Essential, so its dependency can be left out, unless a versioned dependency is needed. -V By default, scripts and architecture independent modules don't depend on any specific version of perl. The -V option causes the current version of the perl (or perl-base with -d) package to be specified. library dirs If your package installs Perl modules in non-standard directories, you can make dh_perl check those directories by passing their names on the command line. It will only check the vendorlib and vendorarch directories by default. CONFORMS TO
Debian policy, version 3.8.3 Perl policy, version 1.20 SEE ALSO
debhelper(7) This program is a part of debhelper. AUTHOR
Brendan O'Dea <bod@debian.org> 11.1.6ubuntu2 2018-05-10 DH_PERL(1)
All times are GMT -4. The time now is 07:04 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy