Perl command in bash


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Perl command in bash
# 15  
Old 03-31-2015
"${id}.txt.hg19_multianno.txt" the green highlight will have S1 - AP1 as row headers. It will also have data in those columns (in this case 87)... A1 - R1 (headers only) and AQ1-AX1 (headers only). No data is needed for those columns (only the headers). I have a SQL import that is expecting all those columns in one file.

Code:
Index Chromosome ... Amino Acid Change Chr Start ... clinvarsubmit clinvarreference HP SPLICE ... Sanger References

So, the text in bold is added to the "${id}.txt.hg19_multianno.txt" and a new file with the combined is saved in the path. I hope this helps and apologize for the confusion. Thank you for all your help Smilie.
# 16  
Old 03-31-2015
Could you attach the file: "${id}.txt.hg19_multianno.txt" over here?
# 17  
Old 03-31-2015
Sure. I will post it tomorrow morning. Thank you Smilie.
# 18  
Old 03-31-2015
I attached the "${id}.txt.hg19_multianno.txt" Thank you Smilie.
# 19  
Old 03-31-2015
Code:
$
$ cat -n set_header.pl
     1  #!/usr/bin/perl
     2  use strict;
     3
     4  # Accept the input and output files as parameters
     5  my $input_file = $ARGV[0];
     6  my $output_file = $ARGV[1];
     7
     8  # Set the header columns to be added to the left
     9  # and to the right of the header in the input file
    10  my @left =  (
    11                   "Index",
    12                   "Chromosome Position",
    13                   "Gene",
    14                   "Inheritance",
    15                   "RNA Accession",
    16                   "Chr",
    17                   "Coverage",
    18                   "Score",
    19                   "A(#F,#R)",
    20                   "C(#F,#R)",
    21                   "G(#F,#R)",
    22                   "T(#F,#R)",
    23                   "Ins(#F,#R)",
    24                   "Del(#F,#R)",
    25                   "SNP db_xref",
    26                   "Mutation Call",
    27                   "Mutant Allele Frequency",
    28                   "Amino Acid Change"
    29              );
    30  my @right = (
    31                  "HP",
    32                  "SPLICE",
    33                  "Pseudogene",
    34                  "Classification",
    35                  "HGMD",
    36                  "Disease",
    37                  "Sanger",
    38                  "References"
    39              );
    40
    41  # Now open the input file, read the header line and sandwich it
    42  # between @left and @right arrays
    43  my $final_header;
    44  open (FH, "<", $input_file) or die "Can't open $input_file: $!";
    45  while (<FH>) {
    46      chomp;
    47      if ($. == 1) {
    48          $final_header = sprintf("%s\t%s\t%s\n", join("\t", @left), $_, join("\t",@right));
    49          last;
    50      }
    51  }
    52  close (FH) or die "Can't close $input_file: $!";
    53
    54  # Once the final header is set, print it to the output file
    55  open (FH, ">", $output_file) or die "Can't open $output_file: $!";
    56  print FH $final_header;
    57  close (FH) or die "Can't close $output_file: $!";
    58
$
$ perl set_header.pl del.txt.hg19_multianno.txt my_output.txt
$
$ sed 's/\t/\n/g' my_output.txt
Index
Chromosome Position
Gene
Inheritance
RNA Accession
Chr
Coverage
Score
A(#F,#R)
C(#F,#R)
G(#F,#R)
T(#F,#R)
Ins(#F,#R)
Del(#F,#R)
SNP db_xref
Mutation Call
Mutant Allele Frequency
Amino Acid Change
Chr
Start
End
Ref
Alt
Func.refGene
Gene.refGene
GeneDetail.refGene
ExonicFunc.refGene
AAChange.refGene
PopFreqMax
1000G2012APR_ALL
1000G2012APR_AFR
1000G2012APR_AMR
1000G2012APR_ASN
1000G2012APR_EUR
ESP6500si_ALL
ESP6500si_AA
ESP6500si_EA
CG46
common
clinvar
clinvarsubmit
clinvarreference
Otherinfo
HP
SPLICE
Pseudogene
Classification
HGMD
Disease
Sanger
References
$
$

# 20  
Old 03-31-2015
I am getting the below error:

Code:
Removing old files, please wait
 Old files removed, formatting for matrix Can't open : No such file or directory
 at C:\Users\cmccabe\Desktop\annovar\matrix.pl line 42.

line 42 in the .pl
open (FH, "<", $input_file) or die "Can't open $input_file: $!";

Thank you Smilie
# 21  
Old 03-31-2015
Check the error message closely.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to run several bash commands put in bash command line?

How to run several bash commands put in bash command line without needing and requiring a script file. Because I'm actually a windows guy and new here so for illustration is sort of : $ bash "echo ${PATH} & echo have a nice day!" will do output, for example:... (4 Replies)
Discussion started by: abdulbadii
4 Replies

2. Shell Programming and Scripting

How to call a bash command from within a perl script?

In a bash script, one can call a perl command in the following manner, where "myperlcommand" is a perl command. perl -e 'myperlcommand(arguments)' perl -e 'print("UUUU"x4)' Now, how can one call a bash command from within a perl script? (Suppose that mybashcommand is a bash... (1 Reply)
Discussion started by: LessNux
1 Replies

3. UNIX for Dummies Questions & Answers

Running set options from the command line and bash command

I'm reading about debugging aids in bash and have come across the set command. It says in my little book that an addition to typing set you can also use them "on the command line when running a script..." and it lists this in a small table: set -o option Command Line... (5 Replies)
Discussion started by: Straitsfan
5 Replies

4. AIX

Typing "bash" at the command line spawns two bash processes

Server: IBM p770 OS: AIX 6.1 TL5 SP1 When one of our develoeprs types "bash" on the command line to switch shells, it hangs. For some reason, two bash processes are created....the first bash process spawns a second bash process in the same console, causing a hang. Anyone have any idea what... (2 Replies)
Discussion started by: wjssj
2 Replies

5. Shell Programming and Scripting

perl/unix: script in command line works but not in perl

so in unix this command works works and shows me a list of directories find . -name \*.xls -exec dirname {} \; | sort -u | > list.txt but when i try running a perl script to run this command my $query = 'find . -name \*.xls -exec dirname {} \; | sort -u | > list.txt';... (2 Replies)
Discussion started by: kpddong
2 Replies

6. Shell Programming and Scripting

Calling bash command in perl script

Hi, I have tried several times but failed, I need to call this script from the perl script. This one line script will be sent to /var/tmp/error Bash command: /usr/openv/netbackup/bin/admincmd/bperror -backstat -l -hoursago 12 |awk '{ print $19, $12, $14, $16}'|grep -vi default|sort >... (12 Replies)
Discussion started by: sQew
12 Replies

7. Shell Programming and Scripting

combine two perl lines into a single perl command

Hi Everyone, i have a string 00:44:40 so: $tmp=~ s/://gi; $tmp=~s/({2})({2})({2})/$1*3600+$2*60+$3/e; the output is 2680. Any way to combine this two lines into a single line? Thanks (4 Replies)
Discussion started by: jimmy_y
4 Replies

8. Shell Programming and Scripting

Mixing Perl with Bash

I am fiddling with a little script that will issue a shutdown command if the temperature on the CPU goes above a certain level. I started writing the script in Bash, and then thought I would like to use Perl to extract the detailed bits, but I am not sure if this is really practical. Basically I... (2 Replies)
Discussion started by: kermit
2 Replies

9. Shell Programming and Scripting

[Perl] Accessing array elements within a sed command in Perl script

I am trying to use a script to replace the header of each file, whose filename are stored within the array $test, using the sed command within a Perl script as follows: $count = 0; while ( $count < $#test ) { `sed -e 's/BIOGRF 321/BIOGRF 332/g' ${test} > 0`; `cat 0 >... (2 Replies)
Discussion started by: userix
2 Replies

10. Shell Programming and Scripting

passing variable from bash to perl from bash script

Hi All, I need to pass a variable to perl script from bash script, where in perl i am using if condition. Here is the cmd what i am using in perl FROM_DATE="06/05/2008" TO_DATE="07/05/2008" "perl -ne ' print if ( $_ >="$FROM_DATE" && $_ <= "$TO_DATE" ) ' filename" filename has... (10 Replies)
Discussion started by: arsidh
10 Replies
Login or Register to Ask a Question