Guest User

Untitled

a guest
Jul 21st, 2018
549
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. #!/usr/bin/env perl
  2. use strict;
  3. use warnings FATAL => 'all';
  4. use Data::Dumper::Concise;
  5. use Log::Log4perl ':easy';
  6. use HTGT::DBFactory;
  7. use IO::File;
  8. use Perl6::Slurp;
  9. use Text::CSV_XS;
  10.  
  11. Log::Log4perl->easy_init;
  12.  
  13. my $input_file = shift || die "Usage: $0 <input_file> [output_file]\n";
  14. my $outhandle = @ARGV ? IO::File->new( shift, 'w' ) : \*STDOUT;
  15. my $csv_parser = Text::CSV_XS->new( { eol => $/ } );
  16. my $connection = HTGT::DBFactory->connect('eucomm_vector');
  17. my $resultset = $connection->resultset('WellSummaryByDI')->search_rs(
  18. [ { 'me.targeted_trap' => 'yes' }, { 'me.pgdgr_distribute' => 'yes' }, ],
  19. {
  20. prefetch => { project => 'mgi_gene' },
  21. distinct => 1,
  22. columns => [
  23. qw(pgdgr_plate_name pgdgr_well_name pgdgr_distribute targeted_trap project_id)
  24. ],
  25. '+columns' => [qw(mgi_gene.mgi_accession_id project.project_status_id)]
  26. },
  27. );
  28.  
  29. for my $targvec_name ( slurp $input_file, { chomp => 1 } ) {
  30. if ( $targvec_name =~ m/^(GRD\d+)_(.+)$/ || $targvec_name =~ m/^(.+)_(\w+)$/ ) {
  31. my $summary_rs = $resultset->search_rs(
  32. { pgdgr_plate_name => $1, pgdgr_well_name => $2 } );
  33.  
  34. while ( my $summary = $summary_rs->next ) {
  35. $csv_parser->print(
  36. $outhandle,
  37. [
  38. $targvec_name,
  39. $summary->project->project_status_id,
  40. $summary->project->mgi_gene->mgi_accession_id
  41. ]
  42. );
  43. }
  44. }
  45. }
  46.  
  47. exit 0;
Add Comment
Please, Sign In to add comment