8 use CXGN
::Apache
::Error
;
9 use CXGN
::DB
::Connection
;
10 use CXGN
::Page
::FormattingHelpers qw
/info_section_html
13 use CXGN
::Chado
::Publication
;
14 use CXGN
::Phenome
::Locus
;
15 use CXGN
::Phenome
::Locus
::LocusRanking
;
17 my $page=CXGN
::Page
->new( "locus_pub_rank", "Naama");
19 my %args = $page->cgi_params(); #multi-valued parameters have values in a string, delimited by \0
20 my $locus_id= $args{locus_id
};
21 my $dbh=CXGN
::DB
::Connection
->new('phenome');
23 $page->jsan_use("CXGN.Phenome.Locus");
24 $page->jsan_use("Prototype");
27 my($person_id,$user_type)=CXGN
::Login
->new($dbh)->has_session();
29 my $locus=CXGN
::Phenome
::Locus
->new($dbh,$locus_id);
30 my $locus_name=$locus->get_locus_name();
32 my @assoc_pubs= $locus->get_dbxrefs_by_type('literature');
33 $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>");
35 my $locus_pub_ranks=$locus->get_locus_pub();
37 my ($val_pubs, $rej_pubs, $pending_pubs, $a_pubs)= ("" x
4);
41 foreach(sort { $locus_pub_ranks->{$b} <=> $locus_pub_ranks->{$a} } keys %$locus_pub_ranks ) {
42 #foreach ( keys %$locus_pub_ranks) {
43 my $publication=CXGN
::Chado
::Publication
->new($dbh, $_);
44 my $pub_id = $publication->get_pub_id();
45 my $dbxref_id = $publication->get_dbxref_id_by_db('PMID');
46 my $title=$publication->get_title();
47 my $pyear=$publication->get_pyear();
48 my $series=$publication->get_series_name();
49 my $volume=$publication->get_volume();
50 my $issue=$publication->get_issue();
51 my $pages=$publication->get_pages();
52 my $abstract= $publication->get_abstract();
53 my $authors=$publication->get_authors_as_string();
54 my $locusRank = CXGN
::Phenome
::Locus
::LocusRanking
->new($dbh, $locus_id, $pub_id);
55 my $validated = $locusRank->get_validate() || "";
56 my $score = $locusRank->get_rank();
58 my $val_form= "<BR><BR>";
59 if ($user_type eq 'curator') {
61 <div id
='locusPubForm_$pub_id'>
62 <div id
='pub_dbxref_id_$dbxref_id'>
65 id
="dbxref_id_$pub_id">
66 <select id
="$dbxref_id" >
67 <option value
="" selected
></option
>
68 <option value
="no">no</option
>
69 <option value
="yes">yes
</option
>
70 <option value
="maybe">maybe
</option
>
73 id
="associate_pub_button"
74 value
="associate publication"
75 onclick
="Locus.addLocusDbxref('$locus_id', '$dbxref_id');this.disabled=false;">
81 my $associated= $publication->is_associated_publication('locus', $locus_id);
82 my $pub_link= tooltipped_text
("$authors ($pyear)",$abstract) . qq| <a href
="/publication/$pub_id/view">$title.</a
> $series. $volume($issue):$pages <b
> Match score
= $score </b
> | . $val_form;
83 if ($validated eq 'no') {
84 $rej_pubs .= $pub_link;
85 }elsif ($validated eq 'yes') {
86 $val_pubs .= $pub_link;
87 }elsif ($validated eq 'maybe') {
88 $pending_pubs .= $pub_link;
89 }elsif (!$associated) {
91 }elsif ($associated) {
93 print STDERR
"$associated ! pub $pub_id associated with locus $locus_id\n"; }
97 print info_section_html
(title
=> 'Suggested publication list',
101 print info_section_html
(title
=> 'Associated publications',
102 subtitle
=>'(these publications are already linked with the locus, but were not validated by a curator)',
106 print info_section_html
(title
=> 'Validated publications',
107 contents
=> $val_pubs,
109 print info_section_html
(title
=> 'Pending publications',
110 contents
=> $pending_pubs,
112 print info_section_html
(title
=> 'Rejected publications',
113 contents
=> $rej_pubs,
117 $page->simple_footer();
120 <a href="javascript:window.close();">Close This Window</a>