added a comment section..
[sgn.git] / cgi-bin / phenome / locus_pub_rank.pl
blobe36181052f9492231f19f67afda52b841fe37a43
1 #!/usr/bin/perl/
4 use strict;
6 use CXGN::Page;
7 #use CXGN::Page::Simple;
8 #use CXGN::Page::VHost::SGN;
9 use CXGN::Login;
10 use CXGN::Apache::Error;
11 use CXGN::DB::Connection;
12 use CXGN::Page::FormattingHelpers qw /info_section_html
13 tooltipped_text /;
15 use CXGN::Chado::Publication;
16 use CXGN::Phenome::Locus;
17 use CXGN::Phenome::Locus::LocusRanking;
19 my $page=CXGN::Page->new( "locus_pub_rank", "Naama");
21 my %args = $page->cgi_params(); #multi-valued parameters have values in a string, delimited by \0
22 my $locus_id= $args{locus_id};
23 my $dbh=CXGN::DB::Connection->new('phenome');
25 $page->jsan_use("CXGN.Phenome.Locus");
26 $page->jsan_use("Prototype");
29 my($person_id,$user_type)=CXGN::Login->new($dbh)->has_session();
31 my $locus=CXGN::Phenome::Locus->new($dbh,$locus_id);
32 my $locus_name=$locus->get_locus_name();
34 my @assoc_pubs= $locus->get_dbxrefs_by_type('literature');
35 $page->simple_header("Publication list for locus $locus_name", "Curator tool: Validate publications associated with locus <a href=locus_display.pl?locus_id=$locus_id target=blanc>$locus_name</a>");
37 my $locus_pub_ranks=$locus->get_locus_pub();
38 my $pubs="";
39 my ($val_pubs, $rej_pubs, $pending_pubs, $a_pubs)= ("" x 4);
41 my @pub;
43 foreach(sort { $locus_pub_ranks->{$b} <=> $locus_pub_ranks->{$a} } keys %$locus_pub_ranks ) {
44 #foreach ( keys %$locus_pub_ranks) {
45 my $publication=CXGN::Chado::Publication->new($dbh, $_);
46 my $pub_id = $publication->get_pub_id();
47 my $dbxref_id = $publication->get_dbxref_id_by_db('PMID');
48 my $title=$publication->get_title();
49 my $pyear=$publication->get_pyear();
50 my $series=$publication->get_series_name();
51 my $volume=$publication->get_volume();
52 my $issue=$publication->get_issue();
53 my $pages=$publication->get_pages();
54 my $abstract= $publication->get_abstract();
55 my $authors=$publication->get_authors_as_string();
56 my $locusRank = CXGN::Phenome::Locus::LocusRanking->new($dbh, $locus_id, $pub_id);
57 my $validated = $locusRank->get_validate() || "";
58 my $score = $locusRank->get_rank();
60 my $val_form= "<BR><BR>";
61 if ($user_type eq 'curator') {
62 $val_form= qq|
63 <div id='locusPubForm_$pub_id'>
64 <div id='pub_dbxref_id_$dbxref_id'>
65 <input type="hidden"
66 value=$dbxref_id
67 id="dbxref_id_$pub_id">
68 <select id="$dbxref_id" >
69 <option value="" selected></option>
70 <option value="no">no</option>
71 <option value="yes">yes</option>
72 <option value="maybe">maybe</option>
73 </select>
74 <input type="button"
75 id="associate_pub_button"
76 value="associate publication"
77 onclick="Locus.addLocusDbxref('$locus_id', '$dbxref_id');this.disabled=false;">
78 </div>
79 </div>
80 <BR>
83 my $associated= $publication->is_associated_publication('locus', $locus_id);
84 my $pub_link= tooltipped_text("$authors ($pyear)",$abstract) . qq| <a href="/chado/publication.pl?pub_id=$pub_id">$title.</a> $series. $volume($issue):$pages <b> Match score = $score </b> | . $val_form;
85 if ($validated eq 'no') {
86 $rej_pubs .= $pub_link; #qq|<a href="/chado/publication.pl?pub_id=$pub_id">$title</a> ($pyear) $val_form |;
87 }elsif ($validated eq 'yes') {
88 $val_pubs .= $pub_link;
89 }elsif ($validated eq 'maybe') {
90 $pending_pubs .= $pub_link;
91 }elsif (!$associated) {
92 $pubs .= $pub_link;
93 }elsif ($associated) {
94 $a_pubs .=$pub_link;
95 print STDERR "$associated ! pub $pub_id associated with locus $locus_id\n"; }
99 print info_section_html(title => 'Suggested publication list',
100 contents => $pubs,
103 print info_section_html(title => 'Associated publications',
104 subtitle =>'(these publications are already linked with the locus, but were not validated by a curator)',
105 contents => $a_pubs,
108 print info_section_html(title => 'Validated publications',
109 contents => $val_pubs,
111 print info_section_html(title => 'Pending publications',
112 contents => $pending_pubs,
114 print info_section_html(title => 'Rejected publications',
115 contents => $rej_pubs,
119 $page->simple_footer();
121 print <<EOF;
122 <a href="javascript:window.close();">Close This Window</a>