You can subscribe to this list here.
| 2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(10) |
Sep
(92) |
Oct
(132) |
Nov
(70) |
Dec
(55) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006 |
Jan
(26) |
Feb
(41) |
Mar
(99) |
Apr
(80) |
May
(255) |
Jun
(179) |
Jul
(209) |
Aug
(229) |
Sep
(199) |
Oct
(76) |
Nov
(56) |
Dec
(53) |
| 2007 |
Jan
(70) |
Feb
(974) |
Mar
(73) |
Apr
(48) |
May
(96) |
Jun
(116) |
Jul
(129) |
Aug
(66) |
Sep
(159) |
Oct
(92) |
Nov
(67) |
Dec
(111) |
| 2008 |
Jan
(100) |
Feb
(108) |
Mar
(99) |
Apr
(143) |
May
(83) |
Jun
(116) |
Jul
(102) |
Aug
(72) |
Sep
(92) |
Oct
(141) |
Nov
(142) |
Dec
(89) |
| 2009 |
Jan
(38) |
Feb
(141) |
Mar
(106) |
Apr
(68) |
May
(16) |
Jun
(69) |
Jul
(71) |
Aug
(91) |
Sep
(76) |
Oct
(57) |
Nov
(54) |
Dec
(26) |
| 2010 |
Jan
(54) |
Feb
(26) |
Mar
(32) |
Apr
(44) |
May
(32) |
Jun
(46) |
Jul
(42) |
Aug
(65) |
Sep
(34) |
Oct
(31) |
Nov
(9) |
Dec
(52) |
| 2011 |
Jan
(21) |
Feb
(22) |
Mar
(42) |
Apr
(25) |
May
(29) |
Jun
(24) |
Jul
(26) |
Aug
(34) |
Sep
(15) |
Oct
(59) |
Nov
(80) |
Dec
(34) |
| 2012 |
Jan
(47) |
Feb
(19) |
Mar
(29) |
Apr
(26) |
May
(77) |
Jun
(26) |
Jul
(6) |
Aug
(17) |
Sep
(18) |
Oct
(17) |
Nov
(10) |
Dec
(14) |
| 2013 |
Jan
(57) |
Feb
(73) |
Mar
(52) |
Apr
(7) |
May
(16) |
Jun
(36) |
Jul
(22) |
Aug
(17) |
Sep
(20) |
Oct
(29) |
Nov
(34) |
Dec
(5) |
| 2014 |
Jan
(40) |
Feb
(21) |
Mar
(44) |
Apr
(35) |
May
(27) |
Jun
(26) |
Jul
(25) |
Aug
(15) |
Sep
(77) |
Oct
(45) |
Nov
(51) |
Dec
(22) |
| 2015 |
Jan
(33) |
Feb
(29) |
Mar
(31) |
Apr
(27) |
May
(31) |
Jun
(11) |
Jul
(17) |
Aug
(45) |
Sep
(45) |
Oct
(47) |
Nov
(8) |
Dec
(18) |
| 2016 |
Jan
(55) |
Feb
(21) |
Mar
(32) |
Apr
(38) |
May
(27) |
Jun
(20) |
Jul
(14) |
Aug
(59) |
Sep
(10) |
Oct
(32) |
Nov
(36) |
Dec
(5) |
| 2017 |
Jan
(28) |
Feb
(8) |
Mar
(27) |
Apr
(30) |
May
(22) |
Jun
(10) |
Jul
(2) |
Aug
(17) |
Sep
(3) |
Oct
(30) |
Nov
(36) |
Dec
(29) |
| 2018 |
Jan
(1) |
Feb
(21) |
Mar
(18) |
Apr
(2) |
May
(10) |
Jun
(1) |
Jul
(24) |
Aug
(8) |
Sep
(11) |
Oct
(37) |
Nov
(14) |
Dec
(8) |
| 2019 |
Jan
(8) |
Feb
(8) |
Mar
(8) |
Apr
(10) |
May
(16) |
Jun
(3) |
Jul
(10) |
Aug
(6) |
Sep
|
Oct
(9) |
Nov
(12) |
Dec
(25) |
| 2020 |
Jan
(8) |
Feb
(28) |
Mar
(21) |
Apr
(37) |
May
(69) |
Jun
(50) |
Jul
(23) |
Aug
(15) |
Sep
(11) |
Oct
(20) |
Nov
(24) |
Dec
(36) |
| 2021 |
Jan
(35) |
Feb
(24) |
Mar
(28) |
Apr
(23) |
May
(9) |
Jun
(25) |
Jul
(6) |
Aug
(20) |
Sep
(1) |
Oct
(8) |
Nov
|
Dec
(5) |
| 2022 |
Jan
|
Feb
(29) |
Mar
(33) |
Apr
(23) |
May
(46) |
Jun
(25) |
Jul
(7) |
Aug
(20) |
Sep
(27) |
Oct
(23) |
Nov
(17) |
Dec
(21) |
| 2023 |
Jan
(37) |
Feb
(42) |
Mar
(28) |
Apr
(34) |
May
(15) |
Jun
(13) |
Jul
(3) |
Aug
(32) |
Sep
(29) |
Oct
(15) |
Nov
(15) |
Dec
(12) |
| 2024 |
Jan
(19) |
Feb
(14) |
Mar
(68) |
Apr
(25) |
May
(28) |
Jun
(38) |
Jul
(13) |
Aug
(23) |
Sep
(13) |
Oct
(12) |
Nov
(75) |
Dec
(22) |
| 2025 |
Jan
(16) |
Feb
|
Mar
|
Apr
(13) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(3) |
| 2026 |
Jan
|
Feb
(4) |
Mar
|
Apr
(6) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <mho...@us...> - 2026-04-18 16:55:40
|
Revision: 9482
http://sourceforge.net/p/sashimi/code/9482
Author: mhoopmann
Date: 2026-04-18 16:55:38 +0000 (Sat, 18 Apr 2026)
Log Message:
-----------
[tpp2mzid] - fixed error caused by case where search to be converted had no PSMs to convert.
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/src/Parsers/Algorithm2XML/tpp2mzid/tpp2mzid.cpp
Modified: trunk/trans_proteomic_pipeline/src/Parsers/Algorithm2XML/tpp2mzid/tpp2mzid.cpp
===================================================================
--- trunk/trans_proteomic_pipeline/src/Parsers/Algorithm2XML/tpp2mzid/tpp2mzid.cpp 2026-04-16 06:39:35 UTC (rev 9481)
+++ trunk/trans_proteomic_pipeline/src/Parsers/Algorithm2XML/tpp2mzid/tpp2mzid.cpp 2026-04-18 16:55:38 UTC (rev 9482)
@@ -101,7 +101,7 @@
NeoPepXMLParser pep;
NeoProtXMLParser prot;
- cout << "tpp2mzid v0.9.15 (August 22 2023), copyright Mike Hoopmann, Institute for Systems Biology." << endl;
+ cout << "tpp2mzid v0.9.16 (April 18 2026), copyright Mike Hoopmann, Institute for Systems Biology." << endl;
cout << "Built using mzIMLTools: " << m.getMzIMLToolsVersion() << endl;
cout << "Built using NeoPepXMLParser: " << pep.versionNeo() << endl;
cout << "Built using NeoProtXMLParser: " << prot.versionNeo() << endl;
@@ -498,6 +498,9 @@
addPTMProphetToSIP(&m.analysisProtocolCollection.spectrumIdentificationProtocol[b],m_sip);
}
+
+ if(mrs->spectrum_query.size()==0) continue;
+
CSpectrumIdentificationList* m_sil = NULL;
CSpectrumIdentification* m_si = m.addSpectrumIdentification(m_sd->id, m_db->id, m_sip->id, m_sil);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2026-04-16 06:39:37
|
Revision: 9481
http://sourceforge.net/p/sashimi/code/9481
Author: real_procopio
Date: 2026-04-16 06:39:35 +0000 (Thu, 16 Apr 2026)
Log Message:
-----------
[error handling] Improve error reporting and code cleanup
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/perl/cgi-bin/ProtXMLViewer.pl
trunk/trans_proteomic_pipeline/perl/cgi-bin/mascotout.pl
trunk/trans_proteomic_pipeline/perl/cgi-bin/plotpp.pl
trunk/trans_proteomic_pipeline/perl/cgi-bin/promastcgi.pl
trunk/trans_proteomic_pipeline/perl/cgi-bin/show_tmp_pngfile.pl
Modified: trunk/trans_proteomic_pipeline/perl/cgi-bin/ProtXMLViewer.pl
===================================================================
--- trunk/trans_proteomic_pipeline/perl/cgi-bin/ProtXMLViewer.pl 2026-04-16 06:37:19 UTC (rev 9480)
+++ trunk/trans_proteomic_pipeline/perl/cgi-bin/ProtXMLViewer.pl 2026-04-16 06:39:35 UTC (rev 9481)
@@ -7,7 +7,7 @@
# #
# View and filter protXML result files in web browser #
# #
-# Copyright (C) 2013-2025 Luis Mendoza #
+# Copyright (C) 2013-2026 Luis Mendoza #
# #
# This library is free software; you can redistribute it and/or #
# modify it under the terms of the GNU Lesser General Public #
Modified: trunk/trans_proteomic_pipeline/perl/cgi-bin/mascotout.pl
===================================================================
--- trunk/trans_proteomic_pipeline/perl/cgi-bin/mascotout.pl 2026-04-16 06:37:19 UTC (rev 9480)
+++ trunk/trans_proteomic_pipeline/perl/cgi-bin/mascotout.pl 2026-04-16 06:39:35 UTC (rev 9481)
@@ -1,8 +1,9 @@
#!perl
-use FindBin qw($Bin);
+use FindBin qw($Bin $Script);
use lib "$Bin/../lib/perl";
use tpplib_perl; # exported TPP lib function points
my $TPPVersionInfo = tpplib_perl::getTPPVersionInfo();
+my $page_title = $Script;
print "Content-type: text/html\n\n";
@@ -31,10 +32,10 @@
}
} else {
- print "\n\n<font style='border:3px solid red;color:red'>ERROR: Count not open file: $tarfile does not exist</font>\n\n";
+ print "\n\n\n\n<span style='padding:20px 100px;border:3px solid red;color:red'>ERROR: Could not open file: $tarfile does not exist</span>\n\n\n\n";
}
-print "\n\n<hr size='1' noshade>";
-print "<font color='#999999'>$page_title\n$TPPVersionInfo</font>\n";
+print "\n<hr size='1' noshade>";
+print "<span style='color:#999999'>$page_title\n$TPPVersionInfo</span>\n";
print "</PRE>\n</body>\n</html>";
exit;
Modified: trunk/trans_proteomic_pipeline/perl/cgi-bin/plotpp.pl
===================================================================
--- trunk/trans_proteomic_pipeline/perl/cgi-bin/plotpp.pl 2026-04-16 06:37:19 UTC (rev 9480)
+++ trunk/trans_proteomic_pipeline/perl/cgi-bin/plotpp.pl 2026-04-16 06:39:35 UTC (rev 9481)
@@ -8,7 +8,7 @@
# Write incoming data as a json object to a file for later visualization #
# using flot #
# #
-# Copyright (C) 2017-2023 Luis Mendoza #
+# Copyright (C) 2017-2026 Luis Mendoza #
# #
# This library is free software; you can redistribute it and/or #
# modify it under the terms of the GNU Lesser General Public #
@@ -392,15 +392,15 @@
my $file = $cgi_query->param('file') || '';
my $html_response = "Content-type:text/html\n\n";
+ my $error_response = "<span style='color:red'>Unable to process request</span>";
if (!$file || !open(FILE, "$file")) {
- $html_response .= "<span style='color:red'>Could not find or open file $file for deletion</span>";
- return $html_response;
+ return $html_response.$error_response;
}
my $go_ahead_and_delete = 0;
while (<FILE>) {
- if (/^#DATA:/) {
+ if (/^#DATA:$/) {
$go_ahead_and_delete++;
last;
}
@@ -407,14 +407,11 @@
}
close FILE;
- if (!$go_ahead_and_delete) {
- $html_response .= "<span style='color:red'>File $file is of incorrect type; did not delete</span>";
+ if ($go_ahead_and_delete && unlink $file) {
+ $html_response .= "--DELETEOK--";
}
- elsif (unlink $file) {
- $html_response .= "--DELETEOK--";
- }
else {
- $html_response .= "<span style='color:red'>Could not delete file $file</span>";
+ $html_response .= $error_response;
}
return $html_response;
Modified: trunk/trans_proteomic_pipeline/perl/cgi-bin/promastcgi.pl
===================================================================
--- trunk/trans_proteomic_pipeline/perl/cgi-bin/promastcgi.pl 2026-04-16 06:37:19 UTC (rev 9480)
+++ trunk/trans_proteomic_pipeline/perl/cgi-bin/promastcgi.pl 2026-04-16 06:39:35 UTC (rev 9481)
@@ -7,7 +7,7 @@
# #
# Submits a sequence to the promast sequence mapping utility; returns JSON #
# #
-# Copyright (C) 2021-2023 Luis Mendoza #
+# Copyright (C) 2021-2026 Luis Mendoza #
# #
# This library is free software; you can redistribute it and/or #
# modify it under the terms of the GNU Lesser General Public #
@@ -37,19 +37,14 @@
# Globals
-my $exe_path = tpplib_perl::getHomePath() . 'bin/promast.pl';
+my $exe_path = tpplib_perl::getHomePath() . 'bin/promast.pl';
my $command;
-my $base_path = '/net/dblocal/wwwspecial/peptideatlas/map';
-my %opts;
+my $q = new CGI;
+my $cgi_action = $q->url_param('action') || undef;
-# Get basic cgi parameters
-my $q = new CGI;
-my $cgi_sessionid = $q->param('ssid') || &getNewRandomString(10);
-my $cgi_action = $q->param('action') || undef;
+my $json_response = "Content-type:application/json\n\n";
-
-my $json_response = "Content-type:application/json\n\n";
&performSearch() if ($cgi_action eq 'beginSearch');
if ($command) {
@@ -63,6 +58,9 @@
$json_response .= $mapped;
}
}
+else {
+ &reportError("There was a problem with promast");
+}
print $json_response;
exit(0);
@@ -70,11 +68,13 @@
###############################################################################
-# Send Error
+# Send Error (and exits)
###############################################################################
sub reportError {
my $msg = shift || 'unknown error...';
+ $msg =~ s/\n/<br>/g;
+
$json_response .= "{\"message\" : \"$msg\", \"status\" : \"ERROR\"}";
print $json_response;
@@ -86,94 +86,41 @@
# Run peptide sequence matching
###############################################################################
sub performSearch {
- my $dbase = $q->param('db') || undef;
- my $input = $q->param('peptide') || undef;
- my $mztol = $q->param('mztol') || undef;
- my $fuzzy = $q->param('fuzzy') || 0;
+ my $dbase = $q->url_param('db') || undef;
+ my $input = $q->url_param('peptide') || undef;
+ my $mztol = $q->url_param('mztol') || undef;
+ my $fuzzy = $q->url_param('fuzzy') || 0;
-# my $peplist = decode_entities($q->param('peptides')) || '';
- my $peplist = $q->param('peptides') || '';
-
- my $numpep = 0;
- if ($peplist) {
- $input = "$base_path/tmp/$cgi_sessionid.peplist";
- open(POUT, ">>$input") || do {
- &reportError("Cannot create file $input : $!");
- $peplist = ''; # skips writing to file
- };
-
- PEPLIST:
- for (split "\n", $peplist) {
- s/[\r\n]//g;
- s/^\s+//g;
- s/\s+$//g;
- next unless $_;
-
- for (split /\s+/) {
- if (++$numpep > 5000) {
- &reportError("Too many sequences requested! Please limit requests to 5000 entries.");
- last PEPLIST;
- }
- print POUT "$_\n";
- }
- }
- close (POUT);
- $opts{'output'} = "multi";
- }
- else {
- $opts{'output'} = "single";
- }
-
# Validate user input
unless (defined($input)) {
- &reportError("Please specify a peptide sequence or list to search");
+ &reportError("Please specify a peptide sequence to search");
}
+ if ($input !~ /^[A-Z]+$/) {
+ &reportError("Please specify a valid peptide sequence");
+ }
+
if (defined($mztol) && $mztol !~ /^[\d|\.]+$/ ) {
&reportError("Precursor m/z tolerance must be a number!");
}
+ if ($fuzzy !~ /^\d$/) {
+ &reportError("Incorrect parameter passed");
+ }
+
if (! -f $dbase) {
&reportError("Database not available!");
}
- # Assemble command:
- # promast
- # -c
- # -U
- # -u
- # -f <fuzzy>
- # -m <mztol>
- # <index file>
- # <sequence>
-
+ # Assemble command
my $options = "-E -c -u -o json";
if ($fuzzy > 0) {
$options .= " -U";
$options .= " -f $fuzzy";
$options .= " -m $mztol" if defined($mztol);
- $opts{'output'} = "fuzzy";
}
$command = "$exe_path $options $dbase $input";
return;
}
-
-
-###############################################################################
-# getNewRandomString
-###############################################################################
-sub getNewRandomString {
- my $len = shift;
-
- srand;
- my $string = "";
- my @charList = ('A'..'Z',0..9);
- for (my $i = 0; $i<$len; $i++) {
- $string .= $charList[int(rand 36)];
- }
-
- return $string;
-}
-
Modified: trunk/trans_proteomic_pipeline/perl/cgi-bin/show_tmp_pngfile.pl
===================================================================
--- trunk/trans_proteomic_pipeline/perl/cgi-bin/show_tmp_pngfile.pl 2026-04-16 06:37:19 UTC (rev 9480)
+++ trunk/trans_proteomic_pipeline/perl/cgi-bin/show_tmp_pngfile.pl 2026-04-16 06:39:35 UTC (rev 9481)
@@ -4,9 +4,8 @@
# a little CGI script to pump a temp graphic file to stdout, then delete it
#
-
my $serverroot = $ENV{WEBSERVER_ROOT};
-$serverroot =~ s/\\/\//g; # get those path seps pointing right!
+$serverroot =~ s|\\|/|g; # get those path seps pointing right!
my @qvars = split '&', $ENV{QUERY_STRING};
@@ -15,48 +14,42 @@
my $retain = 0;
foreach my $v (@qvars) {
- my @var = split '=', $v;
- if ($#var > 0) {
- if ($var[0] eq "file") {
- $fname = $var[1];
- }
- if ($var[0] eq "keep") {
- $retain = $var[1];
- }
-
-
+ my @var = split '=', $v;
+ if ($#var > 0) {
+ if ($var[0] eq "file") {
+ $fname = $var[1];
}
-
-
+ elsif ($var[0] eq "keep") {
+ $retain = $var[1];
+ }
+ }
}
-
-
-
-$fname =~ s/\\/\//g; # get those path seps pointing right!
+$fname =~ s|\\|/|g; # get those path seps pointing right!
my $fullpath = $fname ;
-$fullpath =~ s/\/\//\//g; # eliminate double slashes
+$fullpath =~ s|//|/|g; # eliminate double slashes
if (not -e $fullpath) { # prepend serverroot
- $fullpath = $serverroot . $fname ;
+ $fullpath = $serverroot . $fname ;
}
-if (not ($fname =~ m/\.png$/)) { # make sure nobody's trying to delete non-png files
- print "Content-type: html/text\n\n";
- print "wrong filetype";
-} elsif (-e $fullpath) { # if it exists, show it then delete it
- # show it
- my $qt = "'";
- $qt = '"' if ($^O eq 'MSWin32' );
- my $quotedpath = $qt.$fullpath.$qt;
- print "Content-type: image/png\n\n";
- system("cat $quotedpath");
- # kill it
- if ($retain == 0) {
- system("rm $quotedpath");
- }
-} else { # issue warning
- print "Content-type: html/text\n\n";
- print "The temporary image file $fullpath has already been deleted. ";
- print "Try using the Copy function in your browser instead.";
+if ($fname !~ /\.png$/) { # make sure nobody's trying to delete non-png files
+ print "Content-type: html/text\n\n";
+ print "wrong filetype";
}
+elsif (-e $fullpath) { # if it exists, show it then delete it
+ # show it
+ my $qt = $^O eq 'MSWin32' ? '"' : "'";
+ my $quotedpath = $qt.$fullpath.$qt;
+ print "Content-type: image/png\n\n";
+ system("cat $quotedpath");
+ # kill it
+ if ($retain == 0) {
+ system("rm $quotedpath");
+ }
+}
+else { # issue warning
+ print "Content-type: html/text\n\n";
+ print "The temporary image file $fullpath has already been deleted. ";
+ print "Try using the Copy function in your browser instead.";
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2026-04-16 06:37:22
|
Revision: 9480
http://sourceforge.net/p/sashimi/code/9480
Author: real_procopio
Date: 2026-04-16 06:37:19 +0000 (Thu, 16 Apr 2026)
Log Message:
-----------
[deprecation]
- Remove ancient protXML viewer, and any remaining references to it
- Replace cgi-based help page for PepXMLViewer with static HTML
- Rebalance Petunia tools menu
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/perl/Makefile
trunk/trans_proteomic_pipeline/perl/tpp_gui/tpp_gui.pl
trunk/trans_proteomic_pipeline/src/Validation/ProteinProphet/ProteinProphet.cpp
trunk/trans_proteomic_pipeline/src/Visualization/PepXMLViewer/html/PepXMLViewer.html
Added Paths:
-----------
trunk/trans_proteomic_pipeline/html/show_pipeline_help.html
Removed Paths:
-------------
trunk/trans_proteomic_pipeline/perl/cgi-bin/protxml2html.pl
trunk/trans_proteomic_pipeline/perl/cgi-bin/show_pipeline_help.pl
Added: trunk/trans_proteomic_pipeline/html/show_pipeline_help.html
===================================================================
--- trunk/trans_proteomic_pipeline/html/show_pipeline_help.html (rev 0)
+++ trunk/trans_proteomic_pipeline/html/show_pipeline_help.html 2026-04-16 06:37:19 UTC (rev 9480)
@@ -0,0 +1,150 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>PepXML Viewer: Help</title>
+ <link rel="stylesheet" type="text/css" href="css/tpp.css" ></link>
+ <link rel="icon" type="text/x-icon" href="images/pep-xml.ico">
+ </head>
+
+ <body>
+
+ <div id="tppWrapper">
+
+ <div class="tppbanner" banner-bg-text="pepXML Help"> TPP: PepXML Viewer help</div>
+
+ <div style="max-width:950px;padding-top:60px;padding-left:30px;background-color:#fff;">
+
+ <h1 class="section">Getting Started</h1>
+ <p>
+ This program is used to view PepXML files, which contain
+ information about peptides derived from MS/MS (MS level 2)
+ data. In the Trans Proteomic Pipeline, these files are
+ iteratively modified by various programs as processing
+ progresses. A basic PepXML file might only contain
+ search-engine results, converted, for example, from Comet, X!Tandem,
+ Spectrast, SEQUEST or MASCOT.
+ A more complex file (or the same file after more
+ processing steps) might contain information about Peptide
+ Prophet-assigned peptide probabilities and/or peptide quantitation
+ info (derived from XPRESS, ASAPratio, LIBRA, etc.)
+ </p>
+
+ <p>
+ When the viewer program runs, it creates an "index" file with
+ a name similar to the xml file you're viewing. This file
+ contains information for quickly moving through the (larger)
+ PepXML file. You may safely delete these at any time;
+ however, the next time you invoke the viewer on this file, you
+ may notice a delay as the index file is rebuilt.
+ </p>
+
+
+ <h1 class="section">Understanding the Interface: Overview</h1>
+ <p>
+ The page has five menus and a data section.
+ </p>
+ <ul>
+ <li><b>Summary</b>: general information about the file you're
+ viewing, including stats based on the filtering options
+ you've selected. Keep an eye here and you see the number
+ of peptides in the current subset change as you apply
+ various filters.</li>
+
+ <li><b>Display Options</b>: any option (besides column selection)
+ that doesn't change the number of peptides in the
+ current subset. Here you'll find options like number of
+ rows per page to display, sort order, highlighting, and so
+ forth. Data can be sorted by index (number), spectrum
+ name, peptide, search scores, probability (when
+ relevant), XPRESS quantitation either descending or
+ ascending (when relevant), and ASAPRatio quantiation
+ either descending or ascending (when relevant). After
+ making selection, push the "Update Page" button.</li>
+
+ <li><b>Pick Columns</b>: column selection and ordering. Here
+ you'll see lists of displayed and undisplayed columns.
+ Click on a column name (hold 'control' and click to select
+ multiple names at one time) and move them up or down, or
+ hide or display them.</li>
+
+ <li><b>Filtering Options</b>: here you'll find choices to pare
+ down your currently displayed subset. The options here,
+ like in Display Options, will change based on the
+ information contained in a specific PepXML file. Data can
+ be filtered by probability (when relevant), precursor ion
+ charge, search scores, XPRESS quantitation (when
+ relevant), and ASAPRatio quantitation (when relevant). In
+ the latter cases, 'require valid ASAP Ratio' excluses
+ those entries lacking a ratio, or having a negative ratio;
+ a minimum and maximum ratio can also be set. In addition,
+ when both XPRESS and ASAPRatio data are available,
+ checking ' Require xpress ratio within asap mean +/-
+ error' excludes all results for which the two ratios
+ differ by more than one standard deviation. After making
+ selection, push the 'Update Page' button, or press the enter
+ key from a text box. Filter options remain set until the
+ 'Restore Original' button (found under 'Other Actions').</li>
+
+ <li><b>Other Actions:</b> 'Update Page' refreshes the display with
+ new options you've selected. 'Export Spreadsheet'
+ generates a tab-delimited file closely mimic the view of
+ the data in your browser, corresponding the the current
+ subset. A link to the generated excel spreadsheet is
+ displayed at the bottom of the 'Summary' section.
+ 'Generate Pep3D' runs that program with the current PepXML file
+ as input. 'Additional Analysis Info' is a link to the models
+ summary page, which also provides details
+ of MS/MS analysis, including for each input file, search
+ engine, and record of each analysis. To the far right,
+ the 'Restore Original' button will discard any display
+ or filter options and restore the entire subset.</li>
+
+ <li><b>Data Table</b>: this is where your data is displayed.
+ Each link brings you to another window with more
+ infomation. See below for more information.</li>
+
+ </ul>
+
+
+ <h1 class="section">Working with the Data</h1>
+ <p>
+ Information about most of the typical columns can be found
+ here. Note that not all of these columns will be
+ available if your PepXML file was not processed with a
+ specific program. Some entries in the data table also
+ contain links which provide additional infomation.
+ </p>
+
+ <ul>
+ <li><b>index</b> (entry number): unique search result id</li>
+ <li><b>probability</b>: probability that search result is correct
+ (e.g. as determined by PeptideProphet), with link to
+ probability analysis results. Note that these links
+ will be the same within one PepXML file.</li>
+ <li><b>spectrum</b>: links to comprehensive search results
+ (including runner up peptides, if avaliable). You can
+ highlight and filter this text.</li>
+ <li><b>search scores</b>: specific for each search engine contributing to dataset.</li>
+ <li><b>matched ions</b>: the fraction of peptide theoretical
+ fragment ions present in spectrum. Link to MS/MS
+ spectrum with assigned fragment ions.</li>
+ <li><b>peptide</b>: Best match from search engine for a given
+ spectrum. Linked to Blast launcher. Note that you can
+ highlight and filter this text.</li>
+ <li><b>protein(s)</b>: Link to database sequence viewre. Hover the mouse over
+ this link for a description, if avaliable. Addtional
+ proteins containing assigned peptide are listed out, if
+ "multiple protein hits" : "list of all hits" is selected
+ in display options.</li>
+ <li><b>XPRESS</b>: Quantitation with link to ion trace.</li>
+ <li><b>ASAPRatio</b>: Quantitation with link to ion trace.</li>
+ <li>PeptideProphet <b>F score</b>: composite score incorporating several search scores.</li>
+ </ul>
+ </div>
+
+ <footer id="tppPageFooter"><strong>Trans-Proteomic Pipeline</strong>:: PepXMLViewer Help<br/>_TPP_BUILDID_<br/></footer>
+
+ </div>
+ </body>
+</html>
+
Modified: trunk/trans_proteomic_pipeline/perl/Makefile
===================================================================
--- trunk/trans_proteomic_pipeline/perl/Makefile 2026-04-02 04:31:30 UTC (rev 9479)
+++ trunk/trans_proteomic_pipeline/perl/Makefile 2026-04-16 06:37:19 UTC (rev 9480)
@@ -207,10 +207,8 @@
install :: $(INSTALL_CGI)/mascotout.pl
install :: $(INSTALL_CGI)/plotpp.pl
install :: $(INSTALL_CGI)/promastcgi.pl
-install :: $(INSTALL_CGI)/protxml2html.pl
install :: $(INSTALL_CGI)/ProtXMLViewer.pl
install :: $(INSTALL_CGI)/qsir.pl
-install :: $(INSTALL_CGI)/show_pipeline_help.pl
install :: $(INSTALL_CGI)/show_tmp_pngfile.pl
install :: $(INSTALL_CGI)/tpp_files.pl
install :: $(INSTALL_CGI)/Seq2MS_json.pl
Deleted: trunk/trans_proteomic_pipeline/perl/cgi-bin/protxml2html.pl
===================================================================
--- trunk/trans_proteomic_pipeline/perl/cgi-bin/protxml2html.pl 2026-04-02 04:31:30 UTC (rev 9479)
+++ trunk/trans_proteomic_pipeline/perl/cgi-bin/protxml2html.pl 2026-04-16 06:37:19 UTC (rev 9480)
@@ -1,11129 +0,0 @@
-#!perl
-#############################################################################
-# Program : protxml2html.pl #
-# Author : Andrew Keller <ak...@sy...> #
-# Date : 3.28.03 #
-# SVN Info : $Id$
-# #
-# ProteinProphet #
-# #
-# Program : ProteinProphet T.M. #
-# Author : Andrew Keller <ak...@sy...> #
-# Date : 11.27.02 #
-# #
-# #
-# Copyright (C) 2003 Andrew Keller #
-# #
-# This library is free software; you can redistribute it and/or #
-# modify it under the terms of the GNU Lesser General Public #
-# License as published by the Free Software Foundation; either #
-# version 2.1 of the License, or (at your option) any later version. #
-# #
-# This library is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU #
-# General Public License for more details. #
-# #
-# You should have received a copy of the GNU Lesser General Public #
-# License along with this library; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
-# #
-# Andrew Keller #
-# Insitute for Systems Biology #
-# 1441 North 34th St. #
-# Seattle, WA 98103 USA #
-# ak...@sy... #
-# #
-#############################################################################
-use strict;
-use FindBin qw($Bin);
-use lib "$Bin/../lib/perl";
-use POSIX;
-use File::Spec; # use perl libs instead of depending on /^\/ as fullpath indicator
-use tpplib_perl; # exported TPP lib function points
-
-
-print "Content-type: text/html\n\n" if(@ARGV == 0 || ! ($ARGV[0] eq '-file'));
-
-my %box;
-%box = &tpplib_perl::read_query_string if $ENV{'REQUEST_METHOD'}; # Read keys and values
-
-
-#############################################################################
-# C O N F I G U R A T I O N A R E A
-#
-# ISB-CYGWIN Release?
-# This is a kludge to hardcode isb-cygwin specific
-# defaults for the following parameters. In the
-# future these defaults should be automatically filled
-# in by a true build system. See the code which immediately
-# follows this section for isb-cygwin defults.
-#
-########################################
-# ALL NON-ISB USERS: SET THIS VALUE TO 0
-my $ISB_VERSION = 0;
-########################################
-
-my $WINDOWS_CYGWIN = -f '/bin/cygpath';
-$ISB_VERSION = $WINDOWS_CYGWIN;
-
-# USE OUTSIDE OF ISB, UNCOMMENT THIS LINE
-#my $DISTR_VERSION = 1;
-
-# USE INSIDE ISB, UNCOMMENT THIS LINE
-my $DISTR_VERSION = 0;
-
-# forward declare variables
-my $CGI_HOME; # Full path web server home directory
-my $HELP_DIR; # Where all help png's are kept
-my $xslt; # Full path reference to a stylesheet processor
-my $DTD_FILE; # Full path reference to ProteinProphet_v1.7.dtd
-my $SERVER_ROOT = '';
-my $TOP_PATH;
-
-# Why define this? We never use this variable...oh but *we* do. We cleverly
-# rewrite paths in the perl code using simple text subsitutions via a perl
-# one-liner buried within the TPP make files. See the "perl_paths"
-# target/directory. Now the real question is what value should it have.
-my $base_dir;
-
-$TOP_PATH = tpplib_perl::getHomePath();
-$CGI_HOME = tpplib_perl::getCgiUrl();
-$HELP_DIR = tpplib_perl::getHtmlUrl() . "images/help";
-
-$xslt = 'xsltproc -novalid'; # disconnect dtd check (since only has web server reference name)
-
-
-#
-# Cygwin Configuration
-#
-if ( ($^O eq 'cygwin' )||($^O eq 'MSWin32' )) {
-
- if(exists $ENV{'WEBSERVER_ROOT'}) {
- my ($serverRoot) = ($ENV{'WEBSERVER_ROOT'} =~ /(\S+)/);
- if ( $WINDOWS_CYGWIN && $serverRoot =~ /\:/ ) {
- $serverRoot = `cygpath '$serverRoot'`;
- ($serverRoot) = ($serverRoot =~ /(\S+)/);
- }
- if ($^O eq 'MSWin32' ) {
- $serverRoot =~ s/\\/\//g; # get those path seps pointing right!
- }
- # make sure ends with '/'
- $serverRoot .= '/' if($serverRoot !~ /\/$/);
- $SERVER_ROOT = $serverRoot;
- if($SERVER_ROOT eq '') {
- die "cannot find WEBSERVER_ROOT environment variable\n";
- }
- }
- else {
- die "cannot find WEBSERVER_ROOT environment variable\n";
- }
-}
-# end configuration
-
-
-
-#
-# gather TPP version info
-#
-my $TPPVersionInfo = tpplib_perl::getTPPVersionInfo() || 'version n/a';
-my $TPPhostname = "http://" . tpplib_perl::get_tpp_hostname();
-
-my $LC_SERVER_ROOT = lc $SERVER_ROOT; # lower case
-
-my $GO_ONTOLOGY_CGI = 'goOntology';
-
-
-my $HTML = 0;
-my $HTML_ORIENTATION = 1; # whether or not
-my $SHTML = 1; # whether or not to use SSI to launch cgi instead of traditional written html file
-my $ICAT = 0;
-my $GLYC = 0;
-my $EXCEL = 0; # Generate XLS file from command-line (arg = EXCEL) -- outputs to file
-my $HTMLGEN = 0; # Generate HTML file from command-line (arg = HTML) -- outputs to stdout
-my $NOGAGGLE = 0; # If set, do not generate Gaggle files (command-line arg = NOGAGGLE)
-
-my $SINGLE_HITS = 0;
-my $DISPLAY_MODS = 1;
-my $MOD_MASS_ERROR = 0.5;
-
-# get rid of these all
-my $CALCULATE_PIES = $ISB_VERSION; #whether to calc pies on the fly
-my %prot_entries = (); # for pies, prob for each protein entry
-
-# write out new xsl stylesheet
-my $xmlfile;
-my $xslfile;
-my $pngfile = '';
-my $htmlfile;
-my $excelfile;
-
-my $gaggleNameValueFile;
-my $gaggleNameValueSize;
-
-my $gaggleNameListFile;
-my $gaggleNameListSize;
-
-my $gaggleMatrixFile;
-my $gaggleMatrixSize;
-
-my $sort_index = -1;
-my $start_string = 'start';
-my $start_string_comment = '<!--' . $start_string . '-->';
-my $USE_INDEX = 1; # whether to use explicit @index rather than num siblings
-$USE_INDEX = 1 if(scalar(@ARGV) >= 2 && $ARGV[1] eq 'index');
-
-my $RESULT_TABLE_PRE = '<table ';
-my $RESULT_TABLE = 'cellpadding="0" bgcolor="white" class="results">';
-my $RESULT_TABLE_SUF = '</table>';
-
-my $checked = 'CHECKED="yes"';
-
-my $inital_xsl = 0;
-my $MAX_NUM_ENTRIES = 2000; # if more than that, will filter at min prob
-my $MIN_PROT_PROB = 0.1;
-# in some environments, form info is transmitted as $ARGV[0]
-
-
-my $entry_delimiter = 8; # empty cell height for delimiting successive entries
-
-my $initiate = 0;
-if(scalar(@ARGV) > 1 && $ARGV[0] eq '-file' && $ARGV[1] =~ /^(\S+\.)xml(\.gz)?$/) { # take file name from arg
- $xmlfile = $ARGV[1];
- if ($^O eq 'MSWin32' ) {
- $xmlfile =~ s/\\/\//g; # get those path seps pointing right!
- }
- $xmlfile =~ /^(\S+\.)xml(\.gz)?$/; # reevaluate $1
- $xslfile = $1 . 'xsl';
- $excelfile = $1 . 'xls';
- $pngfile = $1 . 'png';
- $gaggleNameValueFile = $1 . 'nv.ggl';
- $gaggleNameListFile = $1 . 'nl.ggl';
- $gaggleMatrixFile = $1 . 'mx.ggl';
- if($SHTML) {
- $htmlfile = $1 . 'shtml';
- }
- else {
- $htmlfile = $1 . 'htm';
- }
-
- # check for icat
- for(my $k = 2; $k <= $#ARGV; $k++) {
- $ICAT = 1 if($ARGV[$k] eq 'ICAT');
- $GLYC = 1 if($ARGV[$k] eq 'GLYC');
- $EXCEL= 1 if($ARGV[$k] eq 'EXCEL');
- $HTMLGEN = 1 if($ARGV[$k] eq 'HTML');
- $NOGAGGLE = 1 if($ARGV[$k] eq 'NOGAGGLE');
- }
-
- $initiate = 1 unless ($EXCEL || $HTMLGEN);
-
-}
-elsif(exists $box{'xmlfile'} && $box{'xmlfile'} =~ /^(\S+\.)xml(\.gz)?$/) {
- $xmlfile = $box{'xmlfile'};
- if ($^O eq 'MSWin32' ) {
- $xmlfile =~ s/\\/\//g; # get those path seps pointing right!
- }
- $xmlfile =~ /^(\S+\.)xml(\.gz)?$/; # reevaluate $1
- $xslfile = $1 . 'xsl';
- $excelfile = $1 . 'xls';
- $pngfile = $1 . 'png';
- $gaggleNameValueFile = $1 . 'nv.ggl';
- $gaggleNameListFile = $1 . 'nl.ggl';
- $gaggleMatrixFile = $1 . 'mx.ggl';
- if($SHTML) {
- $htmlfile = $1 . 'shtml';
- }
- else {
- $htmlfile = $1 . 'htm';
- }
-} # if
-
-
-my $go_level = 0;
-my %go_prots = ();
-$go_level = $box{'go_level'} if(exists $box{'go_level'});
-
-my $NEW_XML_FORMAT = 1;
-# cancel DISPLAY_MODS for inappropriate directories running old version
-$DISPLAY_MODS = 0 if(! useXMLFormatLinks($xmlfile));
-
-$| = 1; # autoflush
-
-my $restore_view = exists $box{'restore_view'} && $box{'restore_view'} eq 'yes';
-
-$ICAT = 1 if(exists $box{'icat_mode'} && $box{'icat_mode'} eq 'yes');
-$GLYC = 1 if(exists $box{'glyc_mode'} && $box{'glyc_mode'} eq 'yes');
-my $pre_existing_xsl = 0;
-
-
-if(0 && $restore_view && ! -e $xslfile) {
- print "Error: Cannot find stylesheet for most recent view of dataset. Please recreate.\n\n";
- exit(1);
-}
-
-if(exists $box{'custom_settings'}) {
- if($box{'custom_settings'} eq 'current') {
- writeCustomizedSettings($xmlfile, 0, \%box);
- }
- elsif($box{'custom_settings'} eq 'default') {
- writeCustomizedSettings($xmlfile, 1, \%box);
-
- # full/short menu settings
- my $menu = exists $box{'menu'} ? $box{'menu'} : '';
- my $full_menu = exists $box{'full_menu'} ? $box{'full_menu'} : '';
- my $short_menu = exists $box{'short_menu'} ? $box{'short_menu'} : '';
-
- %box = %{getCustomizedSettings($xmlfile)}; # immediately get default settings
- $box{'menu'} = $menu if(! ($menu eq ''));
- $box{'full_menu'} = $full_menu if(! ($full_menu eq ''));
- $box{'short_menu'} = $short_menu if(! ($short_menu eq ''));
-
- }
-}
-
-
-if(exists $box{'outfile'}) {
-
- my $init_outfile = $box{'outfile'}; # for later
- # if windows name, convert it to cywin
- if($WINDOWS_CYGWIN && $box{'outfile'} =~ /\\/) {
- $box{'outfile'} = `cygpath '$box{'outfile'}'`;
- if($box{'outfile'} =~ /^(\S+)\s?/) {
- $box{'outfile'} = $1;
- }
- } # windows
- my $outfile = $box{'outfile'} . '.xml';
-
- if($box{'outfile'} eq '') {
- print " please go back and specify filename for displayed data\n";
- exit(1);
- }
- # check to make sure not same as self and steal full path from xmlfile
- else {
- # steal directory from xml fle
- if(!File::Spec->file_name_is_absolute($outfile)) {
- my ($vol,$dirs,$files) = File::Spec->splitpath($xmlfile);
- $outfile = File::Spec->catpath($vol,$dirs,$outfile);
- if($outfile =~ /^(\S+)\.xml(\.gz)?$/) {
- $box{'outfile'} = $1;
- }
- }
-
- my $index = index($xmlfile, $outfile);
- if((File::Spec->file_name_is_absolute($outfile) && $outfile eq $xmlfile) ||
- ($index >= 0 && $index + (length $outfile) == (length $xmlfile))) {
- if($HTML_ORIENTATION && $xmlfile =~ /^(\S+\.)xml(\.gz)?$/) {
- if($SHTML) {
- print " please go back and specify a filename for displayed data other than $init_outfile.shtml\n";
- }
- else {
- print " please go back and specify a filename for displayed data other than $init_outfile.htm\n";
- }
- }
- else {
- print " please go back and specify a filename for displayed data other than $init_outfile\n";
- }
- exit(1);
- }
- if(-e $outfile) {
-
- if($HTML_ORIENTATION && $outfile =~ /^(\S+\.)xml(\.gz)?$/) {
- if($SHTML) {
- print " $init_outfile.shtml already exists. Please go back and specify an alternative filename for displayed data\n";
- }
- else {
- print " $init_outfile.htm already exists. Please go back and specify an alternative filename for displayed data\n";
- }
- }
- else {
- print " $init_outfile already exists. Please go back and specify an alternative filename for displayed data\n";
- }
- exit(1);
- }
-
- my $suffix = $HTML_ORIENTATION ? '.htm' : '.xml';
-
- $suffix = '.shtml' if($SHTML);
- my $newhtmlfile = $box{'outfile'} . '.htm';
- $newhtmlfile = $box{'outfile'} . $suffix if($SHTML);
- writeXMLFile($box{'outfile'}, \%box, $xslt, $xmlfile); # both temporary xsl file and xmlfile....
- initialize($xslt, $box{'outfile'} . '.xml', $box{'outfile'} . '.xsl', \%box, $newhtmlfile, 0);
-
- # make local reference
- my $local_datafile = $box{'outfile'} . $suffix;
-
- if(! $ISB_VERSION) {
-
- $local_datafile = $box{'outfile'} . '.xml'; # BSP until shtml fixed
-
- # this should be just like after analysis: use local datafile link, but windows name for shtml file
-
- if((length $SERVER_ROOT) <= (length $local_datafile) &&
- index((lc $local_datafile), ($LC_SERVER_ROOT)) == 0) {
- $local_datafile = '/' . substr($local_datafile, (length $SERVER_ROOT));
- }
- else {
- die "problem (pr1): $local_datafile is not mounted under webserver root: $SERVER_ROOT\n";
- }
- my $windows_outfile = $outfile;
- if($WINDOWS_CYGWIN) {
- $windows_outfile = `cygpath -w '$outfile'`;
- if($windows_outfile =~ /^(\S+)\s?/) {
- $windows_outfile = $1;
- }
- }
- # use windows path here
- print " data written to $windows_outfile<br><br>\n";
- if (!exists $ENV{'WEBSERVER_TMP'}) { # if working in tmpdir, don't give misleading info
- print ' direct your browser to <a target="Win1" href="' . $local_datafile . '">' . "http://" . $TPPhostname . $local_datafile . '</a>' . "\n\n";
- }
- } # if iis & cygwin
- else { # unix
- if (!exists $ENV{'WEBSERVER_TMP'}) { # if working in tmpdir, don't give misleading info
- print ' data written to <a target="Win1" href="' . $local_datafile . '">' . $local_datafile . '</a>', "\n\n";
- }
- }
-
- }
-}
-else {
- if(!$xmlfile) {
- print " No xml file specified; please use the -file option\n";
- &printUsage();
- exit(1);
- }
-
- if($initiate) {
- initialize($xslt, $xmlfile, $xslfile, \%box, $htmlfile, 0);
- print "\n protein probabilities written to file ";
-
- if(! $ISB_VERSION) {
- my $local_ref = $HTML_ORIENTATION ? $htmlfile : $xmlfile;
- my $windows_ref = $xmlfile;
- if($WINDOWS_CYGWIN) {
- # get windows name
- $windows_ref = `cygpath -w '$xmlfile'`;
- }
- if($windows_ref =~ /^(\S+)\s?/) {
- $windows_ref = $1;
- print $windows_ref;
- }
- if((length $SERVER_ROOT) <= (length $local_ref) &&
- index((lc $local_ref), ($LC_SERVER_ROOT)) == 0) {
- $local_ref = '/' . substr($local_ref, (length $SERVER_ROOT));
- print "\n direct your browser to http://" . $TPPhostname . $local_ref if($HTML_ORIENTATION);
- }
- else {
- die "problem (pr2): $local_ref is not mounted under webserver root: $SERVER_ROOT\n";
- }
- } # if iis & cygwin
- elsif($HTML_ORIENTATION) {
- print $htmlfile;
- }
- else {
- print $xmlfile;
- }
- print "\n\n";
- }
- elsif ($EXCEL) {
- print "Writing results to tab-delimited file: $excelfile\n";
- writeTabDelimData($excelfile, $xslt, $xmlfile);
- print "Done!\n";
-
- }
- elsif ($HTMLGEN) {
- my $outfile = $htmlfile;
- $outfile =~ s/shtml$/html/i;
- print "Writing results to html file: $outfile\n";
-
- open(HTMLOUT, ">$outfile") or die "cannot open $outfile $!\n";
- my $ fh= select HTMLOUT;
- my $nrows = 0;
- my $ncols = 0;
- unless ($NOGAGGLE) {
- writeGaggleNameValueData($gaggleNameValueFile, $xslt, $xmlfile);
- $nrows = writeGaggleNameListData($gaggleNameListFile, $xslt, $xmlfile);
- $ncols = writeGaggleMatrixData($gaggleMatrixFile, $xslt, $xmlfile);
- }
- writeXSLFile($xslfile, \%box, 0, $nrows, $ncols) if(! $restore_view);
- printHTML($xslt, $xmlfile, $xslfile, \%box);
- select $fh;
- print "Done!\n";
-
- }
- else {
- if($restore_view) {
-
- if(-e $xslfile) {
- $pre_existing_xsl = 1;
- %box = %{readXSLFile($xslfile)};
-
- }
- else {
- %box = %{initialize($xslt, $xmlfile, $xslfile, \%box, $htmlfile, 1)}; # write the xsl file
- }
- }
- else {
- %box = %{getCustomizedSettings($xmlfile)} if(exists $box{'restore'} && $box{'restore'} eq 'yes'); # no longer need to keep track of 'restore'
- }
- $go_level = $box{'go_level'} if(exists $box{'go_level'});
-
- if(exists $box{'excel'} && $box{'excel'} eq 'yes') {
- writeTabDelimData($excelfile, $xslt, $xmlfile);
- print "\n"; # write something to prevent cgi timeout
- }
-
- if(exists $box{'action'} && $box{'action'} eq 'Recompute p-values') {
- if ($^O eq 'linux') {
- system($TOP_PATH."bin/ASAPRatioPvalueParser $xmlfile");
- }
- else {
- system("ASAPRatioPvalueParser $xmlfile");
- }
- }
- writeGaggleNameValueData($gaggleNameValueFile, $xslt, $xmlfile);
- my $nrows = writeGaggleNameListData($gaggleNameListFile, $xslt, $xmlfile);
- my $ncols = writeGaggleMatrixData($gaggleMatrixFile, $xslt, $xmlfile);
- writeXSLFile($xslfile, \%box, 0, $nrows, $ncols) if(! $restore_view);
- printHTML($xslt, $xmlfile, $xslfile, \%box);
- }
-}
-
-sub useXMLFormatLinks {
- (my $file) = @_;
- return $NEW_XML_FORMAT;
-}
-
-
-sub getGoOntology {
-(my $proteins, my $go_level) = @_;
-# first string together hidden info for ChenWei's program
-#return "making pie chart...\n";
-# new interface for chen wei
-# goOntology <full path curr dir> <web server dir> <level> <prot1> <wt1> <prot2> <wt2> ..
-# goOntology <level> <file> <curr dir> <web server dir>
-
-# need to specify the full path name and webserver name for directories
-my $dir = '';
-if($xmlfile =~ /^(\S+\/)\S+\.xml/) {
- $dir = $1;
-}
-my $local_dir = $dir;
-
-my $go_file = $dir . 'go_prots.txt';
-
-open(OUT, ">$go_file") or die "cannot open $go_file $!\n";
-foreach(keys %{$proteins}) {
- if(/^IPI\:(\S+)\.\d$/) {
- print OUT "$1\t${$proteins}{$_}\n";
- }
- else {
- print OUT "$_\t${$proteins}{$_}\n";
- }
-}
-
-
-close(OUT);
-
-
-if(! $ISB_VERSION) {
-
- if(exists $ENV{'WEBSERVER_ROOT'}) {
- # make sure ends with '/'
- my ($serverRoot) = ($ENV{'WEBSERVER_ROOT'} =~ /(\S+)/);
- if ( $serverRoot =~ /\:/ ) {
- $serverRoot = `cygpath '$serverRoot'`;
- ($serverRoot) = ($serverRoot =~ /(\S+)/);
- }
- if ($^O eq 'MSWin32' ) {
- $serverRoot =~ s/\\/\//g; # get those path seps pointing right!
- }
- # make sure ends with '/'
- $serverRoot .= '/' if($serverRoot !~ /\/$/);
- if((length $serverRoot) <= (length $dir)) {
- $local_dir = '/' . substr($local_dir, (length $serverRoot));
- }else {
- die "problem (pr3): >$local_dir< is not mounted under webserver root: >$serverRoot<\n";
- }
- }
-} # if not ISB version
-my $hide = 0;
-if($go_level > 100) { # hide
- $go_level = $go_level - 100;
- $hide = 1;
-}
-if($CALCULATE_PIES) {
- print "<HR/><font color=\"green\">Go Ontology Information: Level $go_level</font><p/>";
- my $command = '/regis/data3/search/akeller/GO_ONTOLOGY/Go.exe ' . $go_level . ' ' . $go_file . ' /regis/data3/search/akeller/GO_ONTOLOGY/';
- $command .= ' HIDE' if($hide);
- system($command);
- unlink($go_file) if(-e $go_file);
-# write output to file, which will be hyperlinked at top of output
-
-} # if calc pies
-
-
-}
-
-
-sub writeXMLFile {
-(my $file, my $boxptr, my $xslt, my $xml) = @_;
-
-my $tempxslfile = $file . '.tmp.xsl';
-
-
-open(OUT, ">$tempxslfile");
-print OUT '<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:protx="http://regis-web.systemsbiology.net/protXML">', "\n";
-
-print OUT '<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>', "\n";
-
-
-print OUT '<xsl:template match="node() | @*">', "\n";
-print OUT '<xsl:copy>', "\n";
-
-
-print OUT '<xsl:apply-templates select="*[not(self::protx:protein_group or self::protx:protein or self::protx:peptide)] | @*"/>';
-
-print OUT '<xsl:text>' . "\n" . '</xsl:text>';
-
-my $minprob = exists ${$boxptr}{'min_prob'} && ! (${$boxptr}{'min_prob'} eq '') ? ${$boxptr}{'min_prob'} : 0;
-my $minntt = exists ${$boxptr}{'min_ntt'} && ! (${$boxptr}{'min_ntt'} eq '') ? ${$boxptr}{'min_ntt'} : 0;
-
-my $maxnmc = exists ${$boxptr}{'max_nmc'} && ! (${$boxptr}{'max_nmc'} eq '') ? ${$boxptr}{'max_nmc'} : -1;
-my $pep_aa = exists ${$boxptr}{'pep_aa'} && ! (${$boxptr}{'pep_aa'} eq '') ? ${$boxptr}{'pep_aa'} : '';
-my $exclude_1 = exists ${$boxptr}{'ex1'} && ${$boxptr}{'ex1'} eq 'yes' ? ${$boxptr}{'ex1'} : '';
-my $exclude_2 = exists ${$boxptr}{'ex2'} && ${$boxptr}{'ex2'} eq 'yes' ? ${$boxptr}{'ex2'} : '';
-my $exclude_3 = exists ${$boxptr}{'ex3'} && ${$boxptr}{'ex3'} eq 'yes' ? ${$boxptr}{'ex3'} : '';
-
-my @inclusions = exists ${$boxptr}{'inclusions'} ? split(' ', ${$boxptr}{'inclusions'}) : ();
-my @exclusions = exists ${$boxptr}{'exclusions'} ? split(' ', ${$boxptr}{'exclusions'}) : ();
-my @pinclusions = exists ${$boxptr}{'pinclusions'} ? split(' ', ${$boxptr}{'pinclusions'}) : ();
-my @pexclusions = exists ${$boxptr}{'pexclusions'} ? split(' ', ${$boxptr}{'pexclusions'}) : ();
-
-# other variables needed?
-my $min_asap = exists ${$boxptr}{'min_asap'} && ! ${$boxptr}{'min_asap'} eq '' ? ${$boxptr}{'min_asap'} : 0;
-my $max_asap = exists ${$boxptr}{'max_asap'} && ! ${$boxptr}{'max_asap'} eq '' ? ${$boxptr}{'max_asap'} : 0;
-my $min_xpress = exists ${$boxptr}{'min_xpress'} && ! ${$boxptr}{'min_xpress'} eq '' ? ${$boxptr}{'min_xpress'} : 0;
-my $max_xpress = exists ${$boxptr}{'max_xpress'} && ! ${$boxptr}{'max_xpress'} eq '' ? ${$boxptr}{'max_xpress'} : 0;
-my $show_groups = exists ${$boxptr}{'show_groups'} && ! ${$boxptr}{'show_groups'} eq '' ? ${$boxptr}{'show_groups'} : '';
-my $min_pepprob = exists ${$boxptr}{'min_pepprob'} && ! ${$boxptr}{'min_pepprob'} eq '' ? ${$boxptr}{'min_pepprob'} : 0;
-my $filter_asap = exists ${$boxptr}{'filter_asap'} && ! ${$boxptr}{'filter_asap'} eq '' ? ${$boxptr}{'filter_asap'} : '';
-
-my $show_ggl = exists ${$boxptr}{'show_ggl'} && ${$boxptr}{'show_ggl'} eq 'yes' ? ${$boxptr}{'show_ggl'} : '';
-
-my $filter_xpress = exists ${$boxptr}{'filter_xpress'} ? ${$boxptr}{'filter_xpress'} : '';
-my $show_adjusted_asap = (! exists ${$boxptr}{'show_adjusted_asap'} && ! exists ${$boxptr}{'adj_asap'}) || (${$boxptr}{'show_adjusted_asap'} eq 'yes') ? ${$boxptr}{'show_adjusted_asap'} : '';
-#my $show_adjusted_asap = (${$boxptr}{'show_adjusted_asap'} eq 'yes') ? ${$boxptr}{'show_adjusted_asap'} : '';
-my $max_pvalue_display = exists ${$boxptr}{'max_pvalue'} && ! (${$boxptr}{'max_pvalue'} eq '') ? ${$boxptr}{'max_pvalue'} : 1.0;
-my $asap_xpress = exists ${$boxptr}{'asap_xpress'} ? ${$boxptr}{'asap_xpress'} : '';
-my $quant_light2heavy = ! exists ${$boxptr}{'quant_light2heavy'} || ${$boxptr}{'quant_light2heavy'} eq 'true' ? 'true' : 'false';
-
-
-# add filter_xpress and asap_xpress capabilities here....
-
-
-# apply-templates select="protx:protein_group"
-# SHOW GROUPS
-if(! ($show_groups eq '')) {
- print OUT '<xsl:apply-templates select="protx:protein_group[@probability >=\'' . $minprob . '\'';
- print OUT ' and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio\'] and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio\']/ASAPRatio/@ratio_mean >= \'0\' and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@ratio_standard_dev >= \'0\'' if(! ($filter_asap eq ''));
- print OUT ' and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'xpress\'] and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_mean >= \'0\' and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_standard_dev >= \'0\'' if(! ($filter_xpress eq ''));
-
- print OUT ' and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'xpress\'] and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@' . getRatioPrefix($quant_light2heavy) . 'ratio_mean >= \'' . $min_xpress . '\'' if($min_xpress > 0);
- print OUT ' and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'xpress\'] and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@' . getRatioPrefix($quant_light2heavy) . 'ratio_mean <= \'' . $max_xpress . '\'' if($max_xpress > 0);
-
- if($show_adjusted_asap eq '' || ! exists ${$boxptr}{'adj_asap'}) {
- print OUT ' and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio\'] and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@' . getRatioPrefix($quant_light2heavy) . 'ratio_mean >= \'' . $min_asap . '\'' if($min_asap > 0);
- print OUT ' and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio\'] and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@' . getRatioPrefix($quant_light2heavy) . 'ratio_mean <= \'' . $max_asap . '\'' if($max_asap > 0);
-
- print OUT ' and (not(protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio\']) or not(protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'xpress\']) or ((protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_mean + protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_standard_dev - protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@'. getRatioPrefix($quant_light2heavy).'ratio_mean + protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@'. getRatioPrefix($quant_light2heavy) .'ratio_standard_dev >= \'0\') and (protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@'. getRatioPrefix($quant_light2heavy) .'ratio_mean + protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@'. getRatioPrefix($quant_light2heavy) .'ratio_standard_dev - protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_mean + protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_standard_dev >= \'0\')))' if(! ($asap_xpress eq ''));
-
- }
- else { # use adjusted values
- print OUT ' and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio_pvalue\'] and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio_pvalue\']/protx:ASAPRatio_pvalue/@' . getRatioPrefix($quant_light2heavy) . 'adj_ratio_mean >= \'' . $min_asap . '\'' if($min_asap > 0);
- print OUT ' and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio_pvalue\'] and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio_pvalue\']/protx:ASAPRatio_pvalue/@' . getRatioPrefix($quant_light2heavy) . 'adj_ratio_mean <= \'' . $max_asap . '\'' if($max_asap > 0);
- print OUT ' and (not(protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio_pvalue\']) or not(protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'xpress\']) or ((protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_mean + protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_standard_dev - protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio_pvalue\']/protx:ASAPRatio_pvalue/@adj_ratio_mean + protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio_pvalue\']/protx:ASAPRatio_pvalue/@adj_ratio_standard_dev >= \'0\') and (protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio_pvalue\']/protx:ASAPRatio_pvalue/@adj_ratio_mean + protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio_pvalue\']/protx:ASAPRatio_pvalue/@adj_ratio_standard_dev - protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_mean + protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_standard_dev >= \'0\')))' if(! ($asap_xpress eq ''));
-
- }
- print OUT ' and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio_pvalue\'] and protx:protein[@group_sibling_id = \'a\']/protx:analysis_result[@analysis=\'asapratio_pvalue\']/protx:ASAPRatio_pvalue/@decimal_pvalue <= \'' . $max_pvalue_display . '\'' if($max_pvalue_display < 1.0);
- for(my $e = 0; $e <= $#exclusions; $e++) {
- print OUT ' and not(@group_number=\'' . $exclusions[$e] . '\')';
- }
- print OUT ']"/>';
-
- if(@inclusions) {
- my $first = 1;
- foreach(@inclusions) {
- if($first) {
- print OUT '<xsl:apply-templates select="protx:protein_group[@group_number=\'' . $_ . '\'';
- $first = 0;
- }
- else {
- print OUT ' or @group_number=\'' . $_ . '\'';
- }
- }
- print OUT ']"/>';
- } # if have some inclusions
-} # show groups
-# HIDE GROUPS
-else {
- print OUT '<xsl:apply-templates select="protx:protein_group[@probability >=\'' . $minprob . '\'';
- print OUT ' and protx:protein[protx:analysis_result[@analysis=\'asapratio\'] and protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@'. getRatioPrefix($quant_light2heavy) .'ratio_mean >= \'0\' and protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@'. getRatioPrefix($quant_light2heavy) .'ratio_standard_dev >= \'0\']' if(! ($filter_asap eq ''));
- print OUT ' and protx:protein[protx:analysis_result[@analysis=\'xpress\'] and protx:XPressRatio/@ratio_mean >= \'0\' and protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_standard_dev >= \'0\']' if(! ($filter_xpress eq ''));
- print OUT ' and protx:protein[protx:analysis_result[@analysis=\'xpress\'] and protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@' . getRatioPrefix($quant_light2heavy) . 'ratio_mean >= \'' . $min_xpress . '\']' if($min_xpress > 0);
- print OUT ' and protx:protein[protx:analysis_result[@analysis=\'xpress\'] and protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@' . getRatioPrefix($quant_light2heavy) . 'ratio_mean <= \'' . $max_xpress . '\']' if($max_xpress > 0);
- if($show_adjusted_asap eq '' || ! exists ${$boxptr}{'adj_asap'}) {
- print OUT ' and protx:protein[protx:analysis_result[@analysis=\'asapratio\'] and protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@' . getRatioPrefix($quant_light2heavy) . 'ratio_mean >= \'' . $min_asap . '\']' if($min_asap > 0);
- print OUT ' and protx:protein[protx:analysis_result[@analysis=\'asapratio\'] and protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@' . getRatioPrefix($quant_light2heavy) . 'ratio_mean <= \'' . $max_asap . '\']' if($max_asap > 0);
- print OUT ' and (not(protx:protein/protx:analysis_result[@analysis=\'asapratio\']) or not(protx:protein/protx:analysis_result[@analysis=\'xpress\']) or protx:protein[protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_mean + protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_standard_dev - protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@'. getRatioPrefix($quant_light2heavy) .'ratio_mean + protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@'. getRatioPrefix($quant_light2heavy) .'ratio_standard_dev >= \'0\' and protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@'. getRatioPrefix($quant_light2heavy) .'ratio_mean + protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@'. getRatioPrefix($quant_light2heavy) .'ratio_standard_dev - protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_mean + protx:analysis_result[@analysis=\'xpress\']protx:XPressRatio/@ratio_standard_dev >= \'0\'])' if(! ($asap_xpress eq ''));
- }
- else { # show adjusted
- print OUT ' and protx:protein[protx:analysis_result[@analysis=\'asapratio_pvalue\'] and protx:analysis_result[@analysis=\'asapratio_pvalue\']/protx:ASAPRatio_pvalue/@' . getRatioPrefix($quant_light2heavy) . 'adj_ratio_mean >= \'' . $min_asap . '\']' if($min_asap > 0);
- print OUT ' and protx:protein[protx:analysis_result[@analysis=\'asapratio_pvalue\'] and protx:analysis_result[@analysis=\'asapratio_pvalue\']/protx:ASAPRatio_pvalue/@' . getRatioPrefix($quant_light2heavy) . 'adj_ratio_mean <= \'' . $max_asap . '\']' if($max_asap > 0);
- print OUT ' and (not(protx:protein/protx:analysis_result[@analysis=\'asapratio_pvalue\']) or not(protx:protein/protx:analysis_result[@analysis=\'xpress\']) or protx:protein[protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_mean + protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_standard_dev - protx:analysis_result[@analysis=\'asapratio_pvalue\']/protx:ASAPRatio_pvalue/@adj_ratio_mean + protx:analysis_result[@analysis=\'asapratio_pvalue\']/protx:ASAPRatio_pvalue/@adj_ratio_standard_dev >= \'0\' and protx:analysis_result[@analysis=\'asapratio_pvalue\']/protx:ASAPRatio_pvalue/@adj_ratio_mean + protx:analysis_result[@analysis=\'asapratio_pvalue\']/protx:ASAPRatio_pvalue/@adj_ratio_standard_dev - protx:analysis_result[@analysis=\'xpress\']protx:XPressRatio/@ratio_mean + protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_standard_dev >= \'0\'])' if(! ($asap_xpress eq ''));
- }
- print OUT ' and protx:protein[protx:analysis_result[@analysis=\'asapratio_pvalue\'] and protx:analysis_result[@analysis=\'asapratio_pvalue\']/protx:ASAPRatio_pvalue/@decimal_pvalue <= \'' . $max_pvalue_display . '\]' if($max_pvalue_display < 1.0);
- foreach(@exclusions) {
- print OUT ' and not(@group_number=\'' . $_ . '\')';
- }
- print OUT ']"/>';
-
-if(@inclusions) {
- my $first = 1;
- foreach(@inclusions) {
- if($first) {
- print OUT '<xsl:apply-templates select="protx:protein_group[@group_number=\'' . $_ . '\'';
- $first = 0;
- }
- else {
- print OUT ' or @group_number=\'' . $_ . '\'';
- }
- }
- print OUT ']"/>';
-} # if have some inclusions
-}
-# apply-templates select="protx:protein"
-if(! ($show_groups eq '')) {
- print OUT '<xsl:apply-templates select="protx:protein"/>';
-}
-# HIDE GROUPS
-else {
-
-# make sure there are no pexclusions or pinclusions
- print OUT '<xsl:apply-templates select="protx:protein[@probability >=\'' . $minprob . '\'';
- print OUT ' and protx:analysis_result[@analysis=\'asapratio\'] and protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@'. getRatioPrefix($quant_light2heavy) .'ratio_mean >= \'0\' and protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@'. getRatioPrefix($quant_light2heavy) .'ratio_standard_dev >= \'0\'' if(! ($filter_asap eq ''));
- print OUT ' and protx:analysis_result[@analysis=\'xpress\'] and protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_mean >= \'' . $min_xpress . '\'' if($min_xpress > 0);
- print OUT ' and protx:analysis_result[@analysis=\'xpress\'] and protx:analysis_result[@analysis=\'xpress\']/protx:XPressRatio/@ratio_mean <= \'' . $max_xpress . '\'' if($max_xpress > 0);
- if($show_adjusted_asap eq '' || ! exists ${$boxptr}{'adj_asap'}) {
- print OUT ' and protx:analysis_result[@analysis=\'asapratio\'] and protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@'. getRatioPrefix($quant_light2heavy) .'ratio_mean >= \'' . $min_asap . '\'' if($min_asap > 0);
- print OUT ' and protx:analysis_result[@analysis=\'asapratio\'] and protx:analysis_result[@analysis=\'asapratio\']/protx:ASAPRatio/@'. getRatioPrefix($quant_light2heavy) .'ratio_mean <= \'' . $max_asap . '\'' if($max_asap > 0);
- }
- else { # show adjusted
- print OUT ' and protx:analysis_result[@analysis=\'asapratio_pvalue\'] and protx:analysis_result[@analysis=\'asapratio_pvalue\']/protx:ASAPRatio_pvalue/@adj_ratio_mean >= \'' . $min_asap . '\'' if($min_asap > 0);
- print OUT ' and protx:analysis_result[@analysis=\'asapratio_pvalue\'] and protx:analysis_result[@analysis=\'asapratio_pvalue\']/protx:ASAPRatio_pvalue/@adj_ratio_mean <= \'' . $max_asap . '\'' if($max_asap > 0);
- }
- print OUT ' and protx:analysis_result[@analysis=\'asapratio_pvalue\'] and protx:analysis_result[@analysis=\'asapratio_pvalue\']/protx:ASAPRatio_pvalue/@decimal_pvalue <= \'' . $max_pvalue_display . '\'' if($max_pvalue_display < 1.0);
-
- foreach(@pexclusions) {
- if(/^(\d+)([a-z,A-Z])$/) {
- print OUT ' and not(parent::node()/@group_number=\'' . $1 . '\' and @group_sibling_id=\'' . $2 . '\')';
- }
- }
-
- print OUT ']"/>';
- if(@pinclusions > 0) {
- my $first = 1;
- foreach(@pinclusions) {
- if(/^(\d+)([a-z,A-Z])$/) {
- if($first) {
- $first = 0;
- print OUT '<xsl:apply-templates select="protx:protein[(parent::node()/@group_number=\'' . $1 . '\' and @group_sibling_id=\'' . $2 . '\')';
- }
- else {
- print OUT ' or (parent::node()/@group_number=\'' . $1 . '\' and @group_sibling_id=\'' . $2 . '\')';
- }
- }
- }
- print OUT ']"/>';
-
- }
-
-}
-
-print OUT '<xsl:apply-templates select="protx:peptide[@nsp_adjusted_probability >= \'' . $min_pepprob . '\'';
-print OUT ' and @n_enzymatic_termini >=\''. $minntt . '\'' if($minntt > 0);
-print OUT ' and not(@charge=\'1\')' if(! ($exclude_1 eq ''));
-print OUT ' and not(@charge=\'2\')' if(! ($exclude_2 eq ''));
-print OUT ' and not(@charge=\'3\')' if(! ($exclude_3 eq ''));
-print OUT ']"/>';
-
-# apply-templates select="peptide"
-
-
-print OUT '</xsl:copy>';
-print OUT '</xsl:template>', "\n";
-print OUT '</xsl:stylesheet>', "\n";
-close(OUT);
-
-my $outfile = $file . '.xml'; #'tempfile.xml';
-
-
-# now compute filter
-my $filter = '';
-if($minprob > 0) {
- if($show_groups eq '') {
- $filter .= 'min_prot_prob=\'' . $minprob . '\' ';
- }
- else { # group
- $filter .= 'min_group_prob=\'' . $minprob . '\' ';
- }
-}
-$filter .= 'exclude_illegal_XPRESSRatios=\'Y\' ' if($filter_xpress);
-$filter .= 'exclude_illegal_ASAPRatios=\'Y\' ' if($filter_asap);
-my $asap_prefix = $show_adjusted_asap eq '' || ! exists ${$boxptr}{'adj_asap'} ? '' : 'adj_';
-$filter .= 'asap_xpress_consistency=\'Y\' ' if(! ($asap_xpress eq ''));
-$filter .= 'min_' . getRatioPrefix($quant_light2heavy) . 'xpress=\'' . $min_xpress . '\' ' if($min_xpress > 0);
-$filter .= 'max_' . getRatioPrefix($quant_light2heavy) . 'xpress=\'' . $max_xpress . '\' ' if($max_xpress > 0);
-$filter .= $asap_prefix . 'min_' . getRatioPrefix($quant_light2heavy) . 'asap=\'' . $min_asap . '\' ' if($min_asap > 0);
-$filter .= $asap_prefix . 'max_' . getRatioPrefix($quant_light2heavy) . 'asap=\'' . $max_asap . '\' ' if($max_asap > 0);
-$filter .= 'max_pvalue=\'' . $max_pvalue_display . '\' ' if($max_pvalue_display < 1.0);
-$filter .= 'min_pepprob=\'' . $min_pepprob . '\' ' if($min_pepprob > 0);
-$filter .= 'minntt=\'' . $minntt . '\' ' if($minntt > 0);
-$filter .= 'maxnmc=\'' . $maxnmc . '\' ' if($maxnmc >= 0);
-$filter .= 'exclude_1+_peptides=\'Y\' ' if($exclude_1);
-$filter .= 'exclude_2+_peptides=\'Y\' ' if($exclude_2);
-$filter .= 'exclude_3+_peptides=\'Y\' ' if($exclude_3);
-$filter .= 'group_entry_inclusions=\'' . join(',', @inclusions) . '\' ' if(@inclusions > 0);
-$filter .= 'group_entry_exclusions=\'' . join(',', @exclusions) . '\' ' if(@exclusions > 0);
-$filter .= 'protein_entry_inclusions=\'' . join(',', @pinclusions) . '\' ' if(@pinclusions > 0);
-$filter .= 'protein_entry_exclusions=\'' . join(',', @pexclusions) . '\' ' if(@pexclusions > 0);
-
-
-# if $xmlfile is gzipped, returns tmpfile name, else returns $xmlfile
-my $tmp_xml = tpplib_perl::uncompress_to_tmpfile($xml);
-
-if($xslt =~ /xsltproc/) {
- open XALAN, "$xslt $tempxslfile $tmp_xml |" or print "cannot open $xslt\n";;
-}
-else {
- open XALAN, "$xslt $tmp_xml $tempxslfile |" or print "cannot open $xslt\n";;
-}
-open(XML, ">$outfile");
-
-my $start = 1;
-my $counter = 1;
-my $parentfile = $xmlfile;
-if($HTML_ORIENTATION && $xmlfile =~ /^(\S+\.)xml(\.gz)?$/) {
- if($SHTML) {
- $parentfile = $1 . 'shtml';
- }
- else {
- $parentfile = $1 . 'htm';
- }
-}
-
-# make local reference
-my $local_parent = $parentfile;
-my $windows_parent = '';
-if(! $ISB_VERSION) {
- if((length $SERVER_ROOT) <= (length $local_parent) &&
- index((lc $local_parent), ($LC_SERVER_ROOT)) == 0) {
- $local_parent = '/' . substr($local_parent, (length $SERVER_ROOT));
- if($WINDOWS_CYGWIN) {
- $windows_parent = `cygpath -w '$outfile'`;
- if($windows_parent =~ /^(\S+)\s?/) {
- $windows_parent = $1;
- }
- }
- }
- else {
- die "problem (pr4): $local_parent is not mounted under webserver root: $SERVER_ROOT\n";
- }
-} # if iis & cygwin
-
-
-# check for stylesheet reference
-my $xsltproc = $xslt =~ /xsltproc/;
-my $doctype = 0;
-while(<XALAN>) {
- if($start && /^(\<\?xml\-stylesheet type\=\"text\/xsl\" href\=\")\S+(\"\?\>.*)$/) {
- my $local_xslfile = $file . '.xsl';
-
- if(! $ISB_VERSION) {
- if((length $SERVER_ROOT) <= (length $local_xslfile) &&
- index((lc $local_xslfile), ($LC_SERVER_ROOT)) == 0) {
- $local_xslfile = '/' . substr($local_xslfile, (length $SERVER_ROOT));
- }
- else {
- die "problem (pr5): $local_xslfile is not mounted under webserver root: $SERVER_ROOT\n";
- }
- } # if iis & cygwin
- print XML $1 . $local_xslfile . $2;
- $start = 0;
- }
- elsif($start && ! $doctype && /^\<protx\:protein\_summary/) {
- my $local_xslfile = $file . '.xsl';
-
- if(! $ISB_VERSION) {
- if((length $SERVER_ROOT) <= (length $local_xslfile) &&
- index((lc $local_xslfile), ($LC_SERVER_ROOT)) == 0) {
- $local_xslfile = '/' . substr($local_xslfile, (length $SERVER_ROOT));
- }
- else {
- die "problem (pr6): $local_xslfile is not mounted under webserver root: $SERVER_ROOT\n";
- }
- } # if iis & cygwin
- print XML '<?xml-stylesheet type="text/xsl" href="' . $local_xslfile . '"? xmlns:protx="http://regis-web.systemsbiology.net/protXML">' . "\n";
- print XML;
- $start = 0;
- }
- # make replacements to num predicted correct prots and parent data file, as well as sens / err data
- elsif(/^(.*dataset\_derivation generation\_no\=\")(\d+)(\".*)$/) {
- my $first = $1;
- my $second = $2;
- my $third = $3;
- if(! ($filter eq '')) { # then there is something to do
- if($xslt =~ /xsltproc/) {
- my $update = $first . ($second+1) . '">';
- my $next = $second + 1;
- my $rest = $third;
-
- if($third =~ /^(\"\>.*?)(\<data\_filter\s+.*)/) {
- print XML $first . ($second+1) . $1 . "\n";
- print XML '<data_filter number="' . ($second+1) . '" parent_file="' . $local_parent;
- print XML '" windows_parent="' . $windows_parent if($WINDOWS_CYGWIN);
- print XML '" description="' . $filter . '"/>', "\n";
- print XML $2 . "\n";
- }
- else {
- print XML $first . ($second+1) . $third, "\n";
- # now add current filter
- print XML '<data_filter number="' . ($second+1) . '" parent_file="' . $local_parent;
- print XML '" windows_parent="' . $windows_parent if($WINDOWS_CYGWIN);
- print XML '" description="' . $filter . '"/>', "\n";
- }
- } # xsltproc
- else {
- print XML $first . ($second+1) . $third, "\n";
- # now add current filter
- print XML '<data_filter number="' . ($second+1) . '" parent_file="' . $local_parent;
- print XML '" windows_parent="' . $windows_parent if($WINDOWS_CYGWIN);
- print XML '" description="' . $filter . '"/>', "\n";
- }
-
- }
- else {
- print XML;
- }
- }
-
- elsif($USE_INDEX && /^(.*\<protx\:protein_group.*?group_number\=\")\d+(\".*)$/) {
- print XML $1 . $counter++ . $2;
- }
- else {
- if($start && /DOCTYPE/) {
- $doctype = 1;
- }
- print XML;
- }
-}
-
-close(XML);
-close(XALAN);
-unlink($tmp_xml) if ($tmp_xml ne $xml); # did we decompress protxml.gz?
-
-
-$inital_xsl = $counter > $MAX_NUM_ENTRIES;
-unlink($tempxslfile) if(-e $tempxslfile);
-unlink("$outfile.tmp") if(-e "$outfile.tmp");
-${$boxptr}{'restore'} = 'yes'; # for new xsl
-${$boxptr}{'xmlfile'} = $file . '.xml';
-if(exists $box{'xmlfile'} && $box{'xmlfile'} =~ /^(\S+\.)xml(\.gz)?$/) {
- $xmlfile = $box{'xmlfile'};
- $xslfile = $1 . 'xsl';
- $excelfile = $1 . 'xls';
-}
-
-}
-
-
-sub writeTabDelimData {
- (my $outfile, my $engine, my $xml) = @_;
- my $tempxslfile = $xmlfile . '.tmp.xsl';
- my $tempfile = $xmlfile . '.tmp.xls';
-
- my $text = exists $box{'text1'} ? $box{'text1'} : '';
- my @select_aas = ();
- if(exists $box{'pep_aa'} && ! ($box{'pep_aa'} eq '')) {
- for(my $k = 0; $k < (length $box{'pep_aa'}); $k++) {
- my $next = substr($box{'pep_aa'}, $k);
- if($next =~ /^[a-z,A-Z](\d\d+)/) {
- my $mass = $1;
- push(@select_aas, substr($box{'pep_aa'}, $k, 1) . '[' . $mass . ']');
- $k += (length $mass);
- }
- else {
- push(@select_aas, substr($box{'pep_aa'}, $k, 1));
- }
- }
- }
-
- unlink($tempxslfile) if(-e $tempxslfile);
- unlink($tempfile) if(-e $tempfile);
- writeXSLFile($tempxslfile, \%box, 1, 0, 0);
-
- if($xslt =~ /xsltproc/) {
- system("$engine $tempxslfile $xml > $tempfile");
- }
- else {
- system("$engine $xml $tempxslfile > $tempfile");
- }
- open(OUT, ">$outfile") or die "cannot open $outfile $!\n";
- open(IN, "$tempfile") or die "cannot open $tempfile $!\n";
- my $start = 0;
- my $active = 0;
- my $prot_ind = -1;
- my $pep_ind = -1;
- my $first = 1;
- while(<IN>) {
- if(index($_, $start_string_comment) >= 0) {
- $start = 1;
- }
- elsif($start) {
- if(/\S/) {
- $active = 1;
- }
- if(/^\<\/form/ || /^\<\/table/) {
- $start = 0;
- }
- elsif($active) {
- if(@select_aas > 0 || ! ($text eq '')) {
- chomp();
- my @parsed = split('\t');
- if($first) {
- for(my $p = 0; $p <= $#parsed; $p++) {
- if($prot_ind == -1 && $parsed[$p] eq 'protein') {
- $prot_ind = $p;
- }
- elsif($pep_ind == -1 && $parsed[$p] eq 'peptide sequence') {
- $pep_ind = $p;
- }
- }
- print OUT "$_\n";
- $first = 0; # done
- }
- else {
- my $ok = 1;
- for(my $p = 0; $p <= $#parsed; $p++) {
- for(my $s = 0; $s <= $#select_aas; $s++) {
- $ok &&= $pep_ind >= @parsed || $pep_ind == -1 || $p != $pep_ind || index($parsed[$p], $select_aas[$s]) >= 0;
- }
- $ok &&= $prot_ind >= @parsed || $prot_ind == -1 || $p != $prot_ind || index($parsed[$p], $text) >= 0; # =~ /$text/;
- }
- print OUT "$_\n" if($ok);
- } # not first
- }
- else {
- print OUT;
- }
- }
- }
- elsif(0 && ! $start && /^\<font color\=\"green\"\>(\S.*)\<\/font\>/) {
- print OUT "$1\n";
- }
- }
- close(IN);
- close(OUT);
- unlink($tempfile) if(-e $tempfile);
- unlink($tempxslfile) if(-e $tempxslfile);
-
- chmod 0666, $outfile;
-}
-
-sub writeGaggleNameListData {
- (my $outfile, my $engine, my $xml) = @_;
- my $tempxslfile = $xmlfile . '.tmp.nl.ggl.xsl';
- my $tempfile = $xmlfile . '.tmp.nl.ggl';
-
- my $text = exists $box{'text1'} ? $box{'text1'} : '';
- my @select_aas = ();
- if(exists $box{'pep_aa'} && ! ($box{'pep_aa'} eq '')) {
- for(my $k = 0; $k < (length $box{'pep_aa'}); $k++) {
- my $next = substr($box{'pep_aa'}, $k);
- if($next =~ /^[a-z,A-Z](\d\d+)/) {
- my $mass = $1;
- push(@select_aas, substr($box{'pep_aa'}, $k, 1) . '[' . $mass . ']');
- $k += (length $mass);
- }
- else {
- push(@select_aas, substr($box{'pep_aa'}, $k, 1));
- }
- }
- }
-
-
- unlink($tempxslfile) if(-e $tempxslfile);
- unlink($tempfile) if(-e $tempfile);
- writeGaggleNameListXSLFile($tempxslfile, \%box);
-
- if($xslt =~ /xsltproc/) {
- system("$engine $tempxslfile $xml > $tempfile");
- }
- else {
- system("$engine $xml $tempxslfile > $tempfile");
- }
-
- open(OUT, ">$outfile") or die "cannot open $outfile $!\n";
- open(IN, "$tempfile") or die "cannot open $tempfile $!\n";
- my $nrows = 0;
- my $start = 0;
- my $active = 0;
- my $prot_ind = -1;
- my $pep_ind = -1;
- my $first = 1;
- while(<IN>) {
- if(index($_, $start_string_comment) >= 0) {
- $start = 1;
- }
- elsif($start) {
- if(/\S/) {
- $active = 1;
- }
- if(/^\<\/form/ || /^\<\/table/) {
- $start = 0;
- }
- elsif($active) {
- if(@select_aas > 0 || ! ($text eq '')) {
- chomp();
- my @parsed = split('\t');
- if($first) {
- for(my $p = 0; $p <= $#parsed; $p++) {
- if($prot_ind == -1 && $parsed[$p] eq 'protein') {
- $prot_ind = $p;
- }
- elsif($pep_ind == -1 && $parsed[$p] eq 'peptide sequence') {
- $pep_ind = $p;
- }
- }
- print OUT "$_\n";
- $first = 0; # done
- }
- else {
- my $ok = 1;
- for(my $p = 0; $p <= $#parsed; $p++) {
- for(my $s = 0; $s <= $#select_aas; $s++) {
- $ok &&= $pep_ind >= @parsed || $pep_ind == -1 || $p != $pep_ind || index($parsed[$p], $select_aas[$s]) >= 0;
- }
- $ok &&= $prot_ind >= @parsed || $prot_ind == -1 || $p != $prot_ind || index($parsed[$p], $text) >= 0; # =~ /$text/;
- }
- if( $ok ) { print OUT "$_\n"; }
- } # not first
- }
- else {
- print OUT;
- $nrows++;
- }
- }
- }
- elsif(0 && ! $start && /^\<font color\=\"green\"\>(\S.*)\<\/font\>/) {
- print OUT "$1\n";
- }
- }
-
- close(IN);
- close(OUT);
- unlink($tempfile) if(-e $tempfile);
- unlink($tempxslfile) if(-e $tempxslfile);
-
- chmod 0666, $outfile;
- return $nrows;
-}
-
-sub writeGaggleNameValueData {
- (my $outfile, my $engine, my $xml) = @_;
- my $tempxslfile = $xmlfile . '.tmp.nv.ggl.xsl';
- my $tempfile = $xmlfile . '.tmp.nv.ggl';
-
- my $text = exists $box{'text1'} ? $box{'text1'} : '';
- my @select_aas = ();
- if(exists $box{'pep_aa'} && ! ($box{'pep_aa'} eq '')) {
- for(my $k = 0; $k < (length $box{'pep_aa'}); $k++) {
- my $next = substr($box{'pep_aa'}, $k);
- if($next =~ /^[a-z,A-Z](\d\d+)/) {
- my $mass = $1;
- push(@select_aas, substr($box{'pep_aa'}, $k, 1) . '[' . $mass . ']');
- $k += (length $mass);
- }
- else {
- push(@select_aas, substr($box{'pep_aa'}, $k, 1));
- }
- }
- }
-
-
- unlink($tempxslfile) if(-e $tempxslfile);
- unlink($tempfile) if(-e $tempfile);
- writeGaggleNameValueXSLFile($tempxslfile, \%box);
-
- if($xslt =~ /xsltproc/) {
- system("$engine $tempxslfile $xml > $tempfile");
- }
- else {
- system("$engine $xml $tempxslfile > $tempfile");
- }
-
- open(OUT, ">$outfile") or die "cannot open $outfile $!\n";
- open(IN, "$tempfile") or die "cannot open $tempfile $!\n";
-
- my $nrows = 0;
- my $start = 0;
- my $active = 0;
- my $prot_ind = -1;
- my $pep_ind = -1;
- my $first = 1;
- while(<IN>) {
- if(index($_, $start_string_comment) >= 0) {
- $start = ...
[truncated message content] |
|
From: <rea...@us...> - 2026-04-02 04:31:32
|
Revision: 9479
http://sourceforge.net/p/sashimi/code/9479
Author: real_procopio
Date: 2026-04-02 04:31:30 +0000 (Thu, 02 Apr 2026)
Log Message:
-----------
[ProtXMLViewer] Make sure file exists before attempting to create models file
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/perl/cgi-bin/ProtXMLViewer.pl
Modified: trunk/trans_proteomic_pipeline/perl/cgi-bin/ProtXMLViewer.pl
===================================================================
--- trunk/trans_proteomic_pipeline/perl/cgi-bin/ProtXMLViewer.pl 2026-04-02 03:18:39 UTC (rev 9478)
+++ trunk/trans_proteomic_pipeline/perl/cgi-bin/ProtXMLViewer.pl 2026-04-02 04:31:30 UTC (rev 9479)
@@ -3125,7 +3125,7 @@
$models_file =~ s/.prot.xml$/.prot-MODELS.html/;
my $models_exe = tpplib_perl::getHomePath() . 'bin/tpp_models.pl';
- `$models_exe $opts{'infile'}` if (!-e $models_file); # attempt, but disregard any errors
+ `$models_exe $opts{'infile'}` if (!-e $models_file && -f $opts{'infile'}); # attempt, but disregard any errors
if (-e $models_file) {
my $data_dir = tpplib_perl::getDataPath();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2026-04-02 03:18:42
|
Revision: 9478
http://sourceforge.net/p/sashimi/code/9478
Author: real_procopio
Date: 2026-04-02 03:18:39 +0000 (Thu, 02 Apr 2026)
Log Message:
-----------
[madcaps] Validate digestion parameters
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/perl/cgi-bin/madcaps.pl
Modified: trunk/trans_proteomic_pipeline/perl/cgi-bin/madcaps.pl
===================================================================
--- trunk/trans_proteomic_pipeline/perl/cgi-bin/madcaps.pl 2026-04-02 00:46:49 UTC (rev 9477)
+++ trunk/trans_proteomic_pipeline/perl/cgi-bin/madcaps.pl 2026-04-02 03:18:39 UTC (rev 9478)
@@ -8,7 +8,7 @@
# Multiple Alignment, Digestion, Coverage, and Annotations of #
# Protein Sequences #
# #
-# Copyright (C) 2017-2024 Luis Mendoza #
+# Copyright (C) 2017-2026 Luis Mendoza #
# #
# This library is free software; you can redistribute it and/or #
# modify it under the terms of the GNU Lesser General Public #
@@ -50,7 +50,6 @@
my %opts;
my %aamass;
-
my %index; # not used (yet)
@@ -118,7 +117,7 @@
" ",
'<input id="browse_button" title="Browse filesystem" onclick="tpp_selectFile(this,\'db_fullpathid\',null,\'\');" type="button" value="Browse">',
br,br,
- 'Enter protein accessions and (optional) peptide sequences, one per line in no particular order: ',
+ 'Enter protein accessions and (optional) peptide sequences, one per line (in no particular order): ',
br,
'<textarea name="bigform" style="white-space:pre;" rows="30" cols="120">';
@@ -1150,6 +1149,16 @@
$opts{'max_nmc'} = $cgi_query->param('max_nmc') || 0;
$opts{'min_peplen'} = $cgi_query->param('min_peplen') || 7;
+ if ($opts{'min_pepmass'} !~ /^\d+\.?\d*$/) {
+ $opts{'min_pepmass'} = 600;
+ }
+ if ($opts{'max_pepmass'} !~ /^\d+\.?\d*$/) {
+ $opts{'max_pepmass'} = 4000;
+ }
+ if ($opts{'max_nmc'} !~ /^\d+$/) {
+ $opts{'max_nmc'} = 0;
+ }
+
param('min_pepmass',$opts{'min_pepmass'});
param('max_pepmass',$opts{'max_pepmass'});
param('max_nmc',$opts{'max_nmc'});
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2026-04-02 00:46:51
|
Revision: 9477
http://sourceforge.net/p/sashimi/code/9477
Author: real_procopio
Date: 2026-04-02 00:46:49 +0000 (Thu, 02 Apr 2026)
Log Message:
-----------
[ProteoMapper] v1.7.0: Ignore specified mass tolerance if not doing fuzzy matching; Accept U and O in input sequences; Correctly capture error code from system call to find number of cores; Some cleanup
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/perl/bin/clips.pl
trunk/trans_proteomic_pipeline/perl/bin/promast.pl
Modified: trunk/trans_proteomic_pipeline/perl/bin/clips.pl
===================================================================
--- trunk/trans_proteomic_pipeline/perl/bin/clips.pl 2026-02-26 03:01:35 UTC (rev 9476)
+++ trunk/trans_proteomic_pipeline/perl/bin/clips.pl 2026-04-02 00:46:49 UTC (rev 9477)
@@ -8,7 +8,7 @@
# #
# Generate reverse index of n-AA keys, for use in mapping observed #
# peptide sequences to all proteins #
-# Copyright (C) 2018-2023 Luis Mendoza #
+# Copyright (C) 2018-2026 Luis Mendoza #
# #
# This library is free software; you can redistribute it and/or #
# modify it under the terms of the GNU Lesser General Public #
@@ -38,7 +38,7 @@
use FindBin qw($Bin);
use lib "$Bin/../lib/perl";
-my $VersionInfo = "stand-alone 1.5";
+my $VersionInfo = "stand-alone 1.7.0";
my $rc = eval {
require tpplib_perl; # exported TPP lib function points
tpplib_perl->import();
@@ -202,10 +202,7 @@
$protvar[$1] .= $2;
}
-
my $new = 0;
-
-
if ($new) {
my @variants = @protvar[1..$pepkeysize];
my %ret = ();
@@ -214,7 +211,6 @@
&assemble_variants_NEW('', $alias, 1, \@variants, \%ret);
my $pos = 1;
-
for (my $i = $pepkeysize+1; $i <= length($protseq); $i++) {
$pos++;
@@ -256,8 +252,6 @@
}
-
-
####################################################################################
sub assemble_variants_NEW { # recurse me...recurse me, my friend...
####################################################################################
@@ -272,8 +266,6 @@
if (1+length($str) == $pepkeysize) {
$index{"$str$aa"} .= ":$prt,$pos"; # format: PROT,POS #### speed this up with arrays??
-
-
###$index{"$str$aa"} .= ":$prt,".($pos+1); # format: PROT,POS #### speed this up with arrays??
## $index{"$str$aa"} .= ":".($pos+1).".$prt"; # format: POS.PROT (allows numerical treatment)
## $ret{"$str$aa"} = 1;
@@ -284,8 +276,6 @@
# print "==$str$aa\n";
-
-
}
else {
&assemble_variants_NEW("$str$aa", $prt, $pos, $varaas, $prestr);
@@ -293,12 +283,6 @@
}
}
-
-
-
-
-
-
####################################################################################
sub assemble_variants { # recurse me...recurse me, my friend...
####################################################################################
Modified: trunk/trans_proteomic_pipeline/perl/bin/promast.pl
===================================================================
--- trunk/trans_proteomic_pipeline/perl/bin/promast.pl 2026-02-26 03:01:35 UTC (rev 9476)
+++ trunk/trans_proteomic_pipeline/perl/bin/promast.pl 2026-04-02 00:46:49 UTC (rev 9477)
@@ -7,7 +7,7 @@
# SVN Info : $Id$
# #
# Find all instances of input peptide sequence(s) by index lookup #
-# Copyright (C) 2018-2023 Luis Mendoza #
+# Copyright (C) 2018-2026 Luis Mendoza #
# #
# This library is free software; you can redistribute it and/or #
# modify it under the terms of the GNU Lesser General Public #
@@ -45,7 +45,7 @@
my @btimes;
push @btimes, Benchmark->new; #0 :: exec start time
-my $VersionInfo = "stand-alone 1.6.0";
+my $VersionInfo = "stand-alone 1.7.0";
my $rc = eval {
require tpplib_perl; # exported TPP lib function points
tpplib_perl->import();
@@ -175,6 +175,10 @@
if ($p =~ /X/) {
print STDERR "...with wildcards";
print STDERR " (ignoring fuzzy matching)" if $options{'f'};
+ if ($options{'m'}) {
+ print STDERR " (ignoring mass tolerance)";
+ $options{'m'} = undef;
+ }
&expand_wildcards('',$p);
}
elsif ($options{'f'}) {
@@ -1153,7 +1157,7 @@
sub dispatchPeps {
####################################################################################
chomp(my $ncores = `getconf _NPROCESSORS_ONLN`);
- if ($@) {
+ if ($?) {
$ncores = $ENV{"NUMBER_OF_PROCESSORS"} || 1;
}
my $batches = 1 + int (scalar(keys %peps) / 5000);
@@ -1211,7 +1215,7 @@
delete $peps{$pep};
next;
}
- if ($pep =~ /[JUZBOX]/ ||
+ if ($pep =~ /[JZBX]/ || # changed to also accept U, O
$pep !~ /^[A-Z]+$/ ) {
print STDERR "Warning: ignoring peptide containing non-AA characters: $pep\n";
delete $peps{$pep};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2026-02-26 03:01:37
|
Revision: 9476
http://sourceforge.net/p/sashimi/code/9476
Author: real_procopio
Date: 2026-02-26 03:01:35 +0000 (Thu, 26 Feb 2026)
Log Message:
-----------
[cleanup] Re-tab RefreshParser.cpp for clarity
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/src/Parsers/RefreshParser/RefreshParser.cpp
Modified: trunk/trans_proteomic_pipeline/src/Parsers/RefreshParser/RefreshParser.cpp
===================================================================
--- trunk/trans_proteomic_pipeline/src/Parsers/RefreshParser/RefreshParser.cpp 2026-02-26 01:12:48 UTC (rev 9475)
+++ trunk/trans_proteomic_pipeline/src/Parsers/RefreshParser/RefreshParser.cpp 2026-02-26 03:01:35 UTC (rev 9476)
@@ -313,815 +313,813 @@
if(strcmp(interact_file_lines[line_num-1]->sequence, tag->getAttributeValue("peptide"))) {
cerr << "Error: " << interact_file_lines[line_num-1]->sequence << " does not match " << tag->getAttributeValue("peptide") << endl;
#else
- if(strcmp(interact_file_lines[line_num-1]->sequence, tag->getAttributeValue("stripped_peptide"))) {
- cerr << "Error: " << interact_file_lines[line_num-1]->sequence << " does not match " << tag->getAttributeValue("stripped_peptide") << endl;
+ if(strcmp(interact_file_lines[line_num-1]->sequence, tag->getAttributeValue("stripped_peptide"))) {
+ cerr << "Error: " << interact_file_lines[line_num-1]->sequence << " does not match " << tag->getAttributeValue("stripped_peptide") << endl;
#endif
- tag->write(cerr);
- exit(1);
+ tag->write(cerr);
+ exit(1);
+ }
+
}
+ else if(use_default_min_ntt_ && tag->isStart() && ! strcmp(tag->getName(), "enzymatic_search_constraint") &&
+ ! strcasecmp(tag->getAttributeValue("enzyme"), (*enzymes_)[enzyme_index_])) {
+ min_num_tol_term_ = atoi(tag->getAttributeValue("min_number_termini"));
- }
- else if(use_default_min_ntt_ && tag->isStart() && ! strcmp(tag->getName(), "enzymatic_search_constraint") &&
- ! strcasecmp(tag->getAttributeValue("enzyme"), (*enzymes_)[enzyme_index_])) {
- min_num_tol_term_ = atoi(tag->getAttributeValue("min_number_termini"));
+ }
+ else if ( ! strcmp(tag->getName(), "mod_aminoacid_mass") && tag->getAttributeValue("alt_aa")) {
+ char* alt_aa = new char[strlen(tag->getAttributeValue("alt_aa"))+1];
+ strcpy(alt_aa, tag->getAttributeValue("alt_aa"));
+ int pos = atoi(tag->getAttributeValue("position"));
- }
- else if ( ! strcmp(tag->getName(), "mod_aminoacid_mass") && tag->getAttributeValue("alt_aa")) {
- char* alt_aa = new char[strlen(tag->getAttributeValue("alt_aa"))+1];
- strcpy(alt_aa, tag->getAttributeValue("alt_aa"));
- int pos = atoi(tag->getAttributeValue("position"));
-
- if (!interact_file_lines[line_num-1]->alt_sequence) {
- interact_file_lines[line_num-1]->alt_sequence = new char[strlen(interact_file_lines[line_num-1]->sequence)+1];
- strcpy(interact_file_lines[line_num-1]->alt_sequence, interact_file_lines[line_num-1]->sequence_I2L);
- interact_file_lines[line_num-1]->alt_sequence[pos-1] = *alt_aa;
+ if (!interact_file_lines[line_num-1]->alt_sequence) {
+ interact_file_lines[line_num-1]->alt_sequence = new char[strlen(interact_file_lines[line_num-1]->sequence)+1];
+ strcpy(interact_file_lines[line_num-1]->alt_sequence, interact_file_lines[line_num-1]->sequence_I2L);
+ interact_file_lines[line_num-1]->alt_sequence[pos-1] = *alt_aa;
+ }
+ delete[] alt_aa;
}
- delete[] alt_aa;
- }
- else if(tag->isStart() && ! strcmp(tag->getName(), "sample_enzyme")) {
- char* nextenz = new char[strlen(tag->getAttributeValue("name"))+1];
- strcpy(nextenz, tag->getAttributeValue("name"));
- int enzIdx = enzymes_->findByStringValue(nextenz);
- if (enzIdx == -1) {
- //not an enzyme already stored
- enzymes_->insertAtEnd(nextenz);
- enzyme_digestions_->insertAtEnd(new ProteolyticEnzyme(tag));
- enzyme_index_ = enzyme_digestions_->length()-1;
- enzyme_data = True;
- if(use_default_min_ntt_ && min_num_tol_term_ < 0)
- min_num_tol_term_ = 0;
+ else if(tag->isStart() && ! strcmp(tag->getName(), "sample_enzyme")) {
+ char* nextenz = new char[strlen(tag->getAttributeValue("name"))+1];
+ strcpy(nextenz, tag->getAttributeValue("name"));
+ int enzIdx = enzymes_->findByStringValue(nextenz);
+ if (enzIdx == -1) {
+ //not an enzyme already stored
+ enzymes_->insertAtEnd(nextenz);
+ enzyme_digestions_->insertAtEnd(new ProteolyticEnzyme(tag));
+ enzyme_index_ = enzyme_digestions_->length()-1;
+ enzyme_data = True;
+ if(use_default_min_ntt_ && min_num_tol_term_ < 0)
+ min_num_tol_term_ = 0;
+ }
+ else {
+ //already listed
+ delete [] nextenz;
+ enzyme_index_ = enzIdx;
+ if(use_default_min_ntt_ && min_num_tol_term_ < 0)
+ min_num_tol_term_ = 0;
+ }
}
- else {
- //already listed
- delete [] nextenz;
- enzyme_index_ = enzIdx;
- if(use_default_min_ntt_ && min_num_tol_term_ < 0)
- min_num_tol_term_ = 0;
+
+ if(enzyme_data) {
+ if(tag->isEnd() && ! strcmp(tag->getName(), "sample_enzyme")) {
+ (*enzyme_digestions_)[enzyme_index_]->fixSpecificity();
+ enzyme_data = False;
+ }
+ else if(strcmp(tag->getName(), "sample_enzyme")) {
+ (*enzyme_digestions_)[enzyme_index_]->enterSpecificity(tag);
+ }
}
- }
-
- if(enzyme_data) {
- if(tag->isEnd() && ! strcmp(tag->getName(), "sample_enzyme")) {
- (*enzyme_digestions_)[enzyme_index_]->fixSpecificity();
- enzyme_data = False;
- }
- else if(strcmp(tag->getName(), "sample_enzyme")) {
- (*enzyme_digestions_)[enzyme_index_]->enterSpecificity(tag);
- }
-
- }
- delete tag;
- } // if not null
+ delete tag;
+ } // if not null
- data = strchr(data+1, '<');
- } // next tag
+ data = strchr(data+1, '<');
+ } // next tag
- } // next line
- fin.close();
+ } // next line
+ fin.close();
- num_interact_lines = line_num;
- interact_file_lines = (interact_data_line_t**)realloc(interact_file_lines, sizeof(interact_data_line_t*)* num_interact_lines);
+ num_interact_lines = line_num;
+ interact_file_lines = (interact_data_line_t**)realloc(interact_file_lines, sizeof(interact_data_line_t*)* num_interact_lines);
- // now do the db search
+ // now do the db search
- uniq_lines = num_interact_lines;
- uniq_interact_data = build_uniq_kwlist(interact_file_lines,&uniq_lines);
+ uniq_lines = num_interact_lines;
+ uniq_interact_data = build_uniq_kwlist(interact_file_lines,&uniq_lines);
#ifndef __LGPL__
- if ( !(kwset = kwsalloc((char *) 0)) )
- printf("Error initializing the keyword set!\n");
+ if ( !(kwset = kwsalloc((char *) 0)) )
+ printf("Error initializing the keyword set!\n");
- fprintf(stderr," - Building Commentz-Walter keyword tree...");
- const char* prev_seq = "";
- const char* prev_alt = "";
- int tot_added = 0;
- Array<int>* alt_index_map = new Array<int>();
- for ( i = 0; i < uniq_lines; i++ ) {
- interact_line = (interact_data_line_t *)uniq_interact_data[i];
+ fprintf(stderr," - Building Commentz-Walter keyword tree...");
+ const char* prev_seq = "";
+ const char* prev_alt = "";
+ int tot_added = 0;
+ Array<int>* alt_index_map = new Array<int>();
+ for ( i = 0; i < uniq_lines; i++ ) {
+ interact_line = (interact_data_line_t *)uniq_interact_data[i];
- if ( interact_line->sequence_I2L != NULL ) {
- if ( strcmp( interact_line->sequence_I2L,prev_seq) != 0 ) {
+ if ( interact_line->sequence_I2L != NULL ) {
+ if ( strcmp( interact_line->sequence_I2L,prev_seq) != 0 ) {
- prev_seq = interact_line->sequence_I2L;
+ prev_seq = interact_line->sequence_I2L;
+ if ( kwsincr(kwset,
+ interact_line->sequence_I2L,
+ strlen(interact_line->sequence_I2L)) != 0 )
+ printf("Error adding %s to the keyword structure!\n",
+ interact_line->sequence_I2L);
+
+ alt_index_map->insertAtEnd(i);
+
+ tot_added++;
+ }
+ }
+
+ if ( interact_line->alt_sequence != NULL ) {
if ( kwsincr(kwset,
- interact_line->sequence_I2L,
- strlen(interact_line->sequence_I2L)) != 0 )
+ interact_line->alt_sequence,
+ strlen(interact_line->alt_sequence)) != 0 )
printf("Error adding %s to the keyword structure!\n",
- interact_line->sequence_I2L);
+ interact_line->alt_sequence);
alt_index_map->insertAtEnd(i);
-
tot_added++;
}
}
- if ( interact_line->alt_sequence != NULL ) {
- if ( kwsincr(kwset,
- interact_line->alt_sequence,
- strlen(interact_line->alt_sequence)) != 0 )
- printf("Error adding %s to the keyword structure!\n",
- interact_line->alt_sequence);
-
- alt_index_map->insertAtEnd(i);
- tot_added++;
- }
- }
+ /* Prep the keyword trie for searching */
+ if ( kwsprep (kwset) != 0 )
+ printf("Error prepping the structure for a search!\n");
+#else
+ /* SPARE Parts Section */
+ kwset_t kwset;
+ kwmap_t kwmap; // preserves order of uniq_lines
+ int n_kwsets;
+ int max_kwset_size = min(5000,uniq_lines); //limit to avoid trie width explosion, also may adjust downward dynamically
+ std::vector<STRINGFINDER_pep *> finder_pep;
+ std::vector<STRINGFINDER_std *> finder_std;
+ fprintf(stdout," - Building Commentz-Walter keyword tree for %ld unique peptides...",uniq_lines);
+ bool bUsePeptideAlphabet = true; // use smaller alphabet if posssible
+ bool firstpass = true; // we may have to retry on trie width exception
+ while (true) { // dynamic sizing of tries
+ std::vector<kwset_t> kwsets; // break large jobs into multiple sets
+ n_kwsets = (uniq_lines/max_kwset_size)+((uniq_lines%max_kwset_size)!=0);
+ kwsets.resize(n_kwsets);
+ try {
+ peptideAlphabet::init(); // initialize lookup tables, etc
+ const char *badStr=NULL;
+ for ( i = 0; i < uniq_lines; i++ ) {
+ interact_line = (interact_data_line_t *)uniq_interact_data[i];
- /* Prep the keyword trie for searching */
- if ( kwsprep (kwset) != 0 )
- printf("Error prepping the structure for a search!\n");
-#else
- /* SPARE Parts Section */
- kwset_t kwset;
- kwmap_t kwmap; // preserves order of uniq_lines
- int n_kwsets;
- int max_kwset_size = min(5000,uniq_lines); //limit to avoid trie width explosion, also may adjust downward dynamically
- std::vector<STRINGFINDER_pep *> finder_pep;
- std::vector<STRINGFINDER_std *> finder_std;
- fprintf(stdout," - Building Commentz-Walter keyword tree for %ld unique peptides...",uniq_lines);
- bool bUsePeptideAlphabet = true; // use smaller alphabet if posssible
- bool firstpass = true; // we may have to retry on trie width exception
- while (true) { // dynamic sizing of tries
- std::vector<kwset_t> kwsets; // break large jobs into multiple sets
- n_kwsets = (uniq_lines/max_kwset_size)+((uniq_lines%max_kwset_size)!=0);
- kwsets.resize(n_kwsets);
- try {
- peptideAlphabet::init(); // initialize lookup tables, etc
- const char *badStr=NULL;
- for ( i = 0; i < uniq_lines; i++ ) {
- interact_line = (interact_data_line_t *)uniq_interact_data[i];
-
- if ( interact_line->sequence != NULL ) {
- kwsets[i/max_kwset_size].insert(interact_line->sequence_I2L);
- if (bUsePeptideAlphabet && !peptideAlphabet::legal_string(interact_line->sequence_I2L)) {
- badStr = interact_line->sequence_I2L;
- bUsePeptideAlphabet = false;
+ if ( interact_line->sequence != NULL ) {
+ kwsets[i/max_kwset_size].insert(interact_line->sequence_I2L);
+ if (bUsePeptideAlphabet && !peptideAlphabet::legal_string(interact_line->sequence_I2L)) {
+ badStr = interact_line->sequence_I2L;
+ bUsePeptideAlphabet = false;
+ }
+ if (firstpass && (i!=kwmap[interact_line->sequence_I2L])) { // will insert a record
+ kwmap.find(interact_line->sequence_I2L)->second = i;
+ }
}
- if (firstpass && (i!=kwmap[interact_line->sequence_I2L])) { // will insert a record
- kwmap.find(interact_line->sequence_I2L)->second = i;
+
+ if ( interact_line->alt_sequence != NULL ) {
+ kwsets[i/max_kwset_size].insert(interact_line->alt_sequence);
+ if (bUsePeptideAlphabet && !peptideAlphabet::legal_string(interact_line->alt_sequence)) {
+ badStr = interact_line->alt_sequence;
+ bUsePeptideAlphabet = false;
+ }
+ if (firstpass && (i!=kwmap[interact_line->alt_sequence])) { // will insert a record
+ kwmap.find(interact_line->alt_sequence)->second = i;
+ }
}
}
-
- if ( interact_line->alt_sequence != NULL ) {
- kwsets[i/max_kwset_size].insert(interact_line->alt_sequence);
- if (bUsePeptideAlphabet && !peptideAlphabet::legal_string(interact_line->alt_sequence)) {
- badStr = interact_line->alt_sequence;
- bUsePeptideAlphabet = false;
+ /* Prep the keyword trie for searching */
+ if (bUsePeptideAlphabet) {
+ firstpass = false;
+ for (int n=n_kwsets;n--;) {
+ finder_pep.push_back(new STRINGFINDER_pep(kwsets[n]));
}
- if (firstpass && (i!=kwmap[interact_line->alt_sequence])) { // will insert a record
- kwmap.find(interact_line->alt_sequence)->second = i;
+ } else {
+ if (firstpass) {
+ cout << "warning: unexpected character in peptide sequence \"" << badStr << "\", using more general but less efficient search " << endl;
}
+ firstpass = false;
+ for (int n=n_kwsets;n--;) {
+ finder_std.push_back(new STRINGFINDER_std(kwsets[n]));
+ }
}
- }
- /* Prep the keyword trie for searching */
- if (bUsePeptideAlphabet) {
- firstpass = false;
- for (int n=n_kwsets;n--;) {
- finder_pep.push_back(new STRINGFINDER_pep(kwsets[n]));
+ break; // success
+ } // end try
+ catch (...) {
+ // go back and try it again with smaller trie width
+ max_kwset_size /= 2;
+ if (bUsePeptideAlphabet) {
+ for (size_t n=finder_pep.size();n--;) {
+ delete finder_pep[n];
+ }
+ finder_pep.clear();
+ } else {
+ for (size_t n=finder_std.size();n--;) {
+ delete finder_std[n];
+ }
+ finder_std.clear();
}
- } else {
- if (firstpass) {
- cout << "warning: unexpected character in peptide sequence \"" << badStr << "\", using more general but less efficient search " << endl;
- }
- firstpass = false;
- for (int n=n_kwsets;n--;) {
- finder_std.push_back(new STRINGFINDER_std(kwsets[n]));
- }
}
- break; // success
- } // end try
- catch (...) {
- // go back and try it again with smaller trie width
- max_kwset_size /= 2;
- if (bUsePeptideAlphabet) {
- for (size_t n=finder_pep.size();n--;) {
- delete finder_pep[n];
- }
- finder_pep.clear();
- } else {
- for (size_t n=finder_std.size();n--;) {
- delete finder_std[n];
- }
- finder_std.clear();
- }
}
- }
#endif //__LGPL__
- /* Perform the search */
- fprintf(stdout,"\n - Searching the tree...");
- if ( ! (fp = fopen(database_,"r"))){
- std::string rdb(resolve_root(database_));
- const char *trythis = rdb.c_str();
- if (strcmp(trythis, database_)) {
- int err = errno;
- if (! (fp = fopen(trythis,"r"))) {
- printf("error: could not open database file \"%s\" (%s)\n", database_, strerror(err));
- printf("also tried \"%s\" (%s)\n", trythis, strerror(errno));
+ /* Perform the search */
+ fprintf(stdout,"\n - Searching the tree...");
+ if ( ! (fp = fopen(database_,"r"))){
+ std::string rdb(resolve_root(database_));
+ const char *trythis = rdb.c_str();
+ if (strcmp(trythis, database_)) {
+ int err = errno;
+ if (! (fp = fopen(trythis,"r"))) {
+ printf("error: could not open database file \"%s\" (%s)\n", database_, strerror(err));
+ printf("also tried \"%s\" (%s)\n", trythis, strerror(errno));
+ } else {
+ printf("opening \"%s\" as \"%s\"\n",database_,trythis);
+ }
} else {
- printf("opening \"%s\" as \"%s\"\n",database_,trythis);
+ printf("error: could not open database file \"%s\" (%s)\n", database_, strerror(errno));
}
- } else {
- printf("error: could not open database file \"%s\" (%s)\n", database_, strerror(errno));
+ if (!fp) {
+ exit(-1);
+ }
}
- if (!fp) {
- exit(-1);
- }
- }
- int iLenSeq;
+ int iLenSeq;
- char *szBuf_ = (char*) malloc(sizeof(char)*line_width_);
- char *szSeq_ = (char*) malloc(sizeof(char)*MAX_SEQ);
- char *szHdr_ = (char*) malloc(sizeof(char)*MAX_HEADER_LEN);
- char *szOutputDb_ = (char*) malloc(sizeof(char)*SIZE_FILE);
- int* sort_idx = NULL;
- int max_num_hits = 0;
+ char *szBuf_ = (char*) malloc(sizeof(char)*line_width_);
+ char *szSeq_ = (char*) malloc(sizeof(char)*MAX_SEQ);
+ char *szHdr_ = (char*) malloc(sizeof(char)*MAX_HEADER_LEN);
+ char *szOutputDb_ = (char*) malloc(sizeof(char)*SIZE_FILE);
+ int* sort_idx = NULL;
+ int max_num_hits = 0;
- szBuf_[0] = '\0';
- szSeq_[0] = '\0';
- szHdr_[0] = '\0';
- szOutputDb_[0] = '\0';
+ szBuf_[0] = '\0';
+ szSeq_[0] = '\0';
+ szHdr_[0] = '\0';
+ szOutputDb_[0] = '\0';
- while (fgets(szBuf_, line_width_, fp))
- {
- if (szBuf_[0]=='>')
- {
- int cAA;
-
- strncpy(szHdr_, szBuf_, MAX_HEADER_LEN);
- szHdr_[MAX_HEADER_LEN-1] = '\0';
- if(strlen(szBuf_) < MAX_HEADER_LEN)
- szHdr_[strlen(szBuf_)-1] = '\0';
-
- // now get rid of quotations
- char* quotematch = strchr(szHdr_, '"');
- while(quotematch != NULL) {
- memmove(quotematch,quotematch+1,strlen(quotematch));
- quotematch = strchr(quotematch, '"');
- } // while
+ while (fgets(szBuf_, line_width_, fp))
+ {
+ if (szBuf_[0]=='>')
+ {
+ int cAA;
- iLenSeq=0;
+ strncpy(szHdr_, szBuf_, MAX_HEADER_LEN);
+ szHdr_[MAX_HEADER_LEN-1] = '\0';
+ if(strlen(szBuf_) < MAX_HEADER_LEN)
+ szHdr_[strlen(szBuf_)-1] = '\0';
- while ( (cAA=fgetc(fp)) ) {
- if (isalpha(cAA) || cAA=='*') {
- if (cAA == 'I')
- cAA = 'L';
- if (cAA == '*')
- cAA = '-';
+ // now get rid of quotations
+ char* quotematch = strchr(szHdr_, '"');
+ while(quotematch != NULL) {
+ memmove(quotematch,quotematch+1,strlen(quotematch));
+ quotematch = strchr(quotematch, '"');
+ } // while
- szSeq_[iLenSeq++]=cAA;
- if (iLenSeq > MAX_SEQ) {
- printf(" Error - sequence larger than MAX_SEQ\n\n");
- printf("%s\n\n", szHdr_);
- fclose(fp);
- exit(1);
+ iLenSeq=0;
+
+ while ( (cAA=fgetc(fp)) ) {
+ if (isalpha(cAA) || cAA=='*') {
+ if (cAA == 'I')
+ cAA = 'L';
+ if (cAA == '*')
+ cAA = '-';
+
+ szSeq_[iLenSeq++]=cAA;
+ if (iLenSeq > MAX_SEQ) {
+ printf(" Error - sequence larger than MAX_SEQ\n\n");
+ printf("%s\n\n", szHdr_);
+ fclose(fp);
+ exit(1);
+ }
}
- }
- else if (feof(fp) || cAA=='>') {
- int iReturn;
- iReturn=ungetc(cAA, fp);
+ else if (feof(fp) || cAA=='>') {
+ int iReturn;
+ iReturn=ungetc(cAA, fp);
- if (iReturn!=cAA) {
- printf("Error with ungetc.\n\n");
- fclose(fp);
- exit(1);
+ if (iReturn!=cAA) {
+ printf("Error with ungetc.\n\n");
+ fclose(fp);
+ exit(1);
+ }
+ break;
}
- break;
}
- }
- szSeq_[iLenSeq]='\0';
-
+ szSeq_[iLenSeq]='\0';
+
#ifdef __LGPL__
- /* SPARE Parts */
- glob_matches.clear(); // nothing found yet
- if (bUsePeptideAlphabet) {
- for (int n=n_kwsets;n--;) {
- finder_pep[n]->match(szSeq_,spareparts_callback); // any proteins match?
+ /* SPARE Parts */
+ glob_matches.clear(); // nothing found yet
+ if (bUsePeptideAlphabet) {
+ for (int n=n_kwsets;n--;) {
+ finder_pep[n]->match(szSeq_,spareparts_callback); // any proteins match?
+ }
+ } else {
+ for (int n=n_kwsets;n--;) {
+ finder_std[n]->match(szSeq_,spareparts_callback); // any proteins match?
+ }
}
- } else {
- for (int n=n_kwsets;n--;) {
- finder_std[n]->match(szSeq_,spareparts_callback); // any proteins match?
- }
- }
- num_hits = (int)glob_matches.size();
- kwset_t::const_iterator iter = glob_matches.begin();
+ num_hits = (int)glob_matches.size();
+ kwset_t::const_iterator iter = glob_matches.begin();
#else
- num_hits = kwsexec_multiple(kwset, szSeq_, strlen(szSeq_), &match);
+ num_hits = kwsexec_multiple(kwset, szSeq_, strlen(szSeq_), &match);
#endif //__LGPL__
- //DDS: sort the matched indices
- if (num_hits > 0) {
- if (num_hits>max_num_hits) {
- sort_idx = (int *)realloc(sort_idx,(max_num_hits=num_hits)*sizeof(int));
- }
+ //DDS: sort the matched indices
+ if (num_hits > 0) {
+ if (num_hits>max_num_hits) {
+ sort_idx = (int *)realloc(sort_idx,(max_num_hits=num_hits)*sizeof(int));
+ }
- for (i=0; i<num_hits; i++){
+ for (i=0; i<num_hits; i++){
#ifdef __LGPL__
- sort_idx[i] = kwmap.find(iter->c_str())->second;
- iter++;
+ sort_idx[i] = kwmap.find(iter->c_str())->second;
+ iter++;
#else
- sort_idx[i] = match[i].index;
+ sort_idx[i] = match[i].index;
#endif
- }
+ }
#ifndef __LGPL__
- free(match);
+ free(match);
#endif
- qsort(sort_idx, num_hits, sizeof(int), compare_indices);
-
- // Process the hits for this protein sequence
- prev_index = -1;
-
- for ( i=0; i<num_hits; i++) {
- int this_index = sort_idx[i];
- this_index = (*alt_index_map)[this_index];
+ qsort(sort_idx, num_hits, sizeof(int), compare_indices);
- const char* result = NULL;
+ // Process the hits for this protein sequence
+ prev_index = -1;
- if (uniq_interact_data[this_index]) {
- result = strstr(szSeq_, ((interact_data_line_t *)
- uniq_interact_data[this_index])->sequence_I2L);
- }
- bool alt = false;
- if (!result) {
- alt = true;
- result = strstr(szSeq_, ((interact_data_line_t *)
- uniq_interact_data[this_index])->alt_sequence);
- }
+ for ( i=0; i<num_hits; i++) {
+ int this_index = sort_idx[i];
+ this_index = (*alt_index_map)[this_index];
- //DDS: For this to work the indices must be sorted
- if ( this_index != prev_index ) {
- if ( (new_db_ref = (db_ref_t *)malloc(sizeof(db_ref_t))) == NULL )
- printf("Error: Could not allocate memory for db_ref_t!\n");
+ const char* result = NULL;
- // use space or | as delimiter of accession if IPI database
- char cDelimiter;
+ if (uniq_interact_data[this_index]) {
+ result = strstr(szSeq_, ((interact_data_line_t *)
+ uniq_interact_data[this_index])->sequence_I2L);
+ }
+ bool alt = false;
+ if (!result) {
+ alt = true;
+ result = strstr(szSeq_, ((interact_data_line_t *)
+ uniq_interact_data[this_index])->alt_sequence);
+ }
- if (!strncmp(szHdr_, ">IPI", 4) && strchr(szHdr_, '|') != NULL && strchr(szHdr_, '|')<strchr(szHdr_,' ') )
- cDelimiter = '|';
- else
- cDelimiter = ' ';
+ //DDS: For this to work the indices must be sorted
+ if ( this_index != prev_index ) {
+ if ( (new_db_ref = (db_ref_t *)malloc(sizeof(db_ref_t))) == NULL )
+ printf("Error: Could not allocate memory for db_ref_t!\n");
- if ( strchr(szHdr_,cDelimiter) != NULL ) {
- new_db_ref->alias = make_substr(szHdr_,
- 0,
- strchr(szHdr_,cDelimiter) - szHdr_ - 1);
+ // use space or | as delimiter of accession if IPI database
+ char cDelimiter;
- // get rid of windows control characters (^M, etc) by truncating at the first one
- size_t len = strlen(new_db_ref->alias);
- for (size_t i = 0; i < len; i++) {
- if (new_db_ref->alias[i] < 20 || new_db_ref->alias[i] > 126) {
- new_db_ref->alias[i] = 0;
- break;
+ if (!strncmp(szHdr_, ">IPI", 4) && strchr(szHdr_, '|') != NULL && strchr(szHdr_, '|')<strchr(szHdr_,' ') )
+ cDelimiter = '|';
+ else
+ cDelimiter = ' ';
+
+ if ( strchr(szHdr_,cDelimiter) != NULL ) {
+ new_db_ref->alias = make_substr(szHdr_,
+ 0,
+ strchr(szHdr_,cDelimiter) - szHdr_ - 1);
+
+ // get rid of windows control characters (^M, etc) by truncating at the first one
+ size_t len = strlen(new_db_ref->alias);
+ for (size_t i = 0; i < len; i++) {
+ if (new_db_ref->alias[i] < 20 || new_db_ref->alias[i] > 126) {
+ new_db_ref->alias[i] = 0;
+ break;
+ }
}
- }
- new_db_ref->description = make_substr(szHdr_,
- strchr(szHdr_,cDelimiter) - szHdr_,
- (int)strlen(szHdr_));
+ new_db_ref->description = make_substr(szHdr_,
+ strchr(szHdr_,cDelimiter) - szHdr_,
+ (int)strlen(szHdr_));
- // get rid of windows control characters (^M, etc) by truncating at the first one
- len = strlen(new_db_ref->description);
- for (size_t i = 0; i < len; i++) {
- if (new_db_ref->description[i] < 20 || new_db_ref->description[i] > 126) {
- new_db_ref->description[i] = 0;
- break;
+ // get rid of windows control characters (^M, etc) by truncating at the first one
+ len = strlen(new_db_ref->description);
+ for (size_t i = 0; i < len; i++) {
+ if (new_db_ref->description[i] < 20 || new_db_ref->description[i] > 126) {
+ new_db_ref->description[i] = 0;
+ break;
+ }
}
+
+ // make sure no xml problem characters in prot descr
+ for(int z = 0; z < (int) strlen(new_db_ref->description); z++)
+ if(new_db_ref->description[z] == '&')
+ new_db_ref->description[z] = '+';
+ else if(new_db_ref->description[z] == '"')
+ new_db_ref->description[z] = '\'';
+ else if(new_db_ref->description[z] == '>')
+ new_db_ref->description[z] = ' ';
+ else if(new_db_ref->description[z] == '<')
+ new_db_ref->description[z] = ' ';
+ else if(new_db_ref->description[z] == '/')
+ new_db_ref->description[z] = '\\';
}
+ else {
+ new_db_ref->alias = strdup(szHdr_);
- // make sure no xml problem characters in prot descr
- for(int z = 0; z < (int) strlen(new_db_ref->description); z++)
- if(new_db_ref->description[z] == '&')
- new_db_ref->description[z] = '+';
- else if(new_db_ref->description[z] == '"')
- new_db_ref->description[z] = '\'';
- else if(new_db_ref->description[z] == '>')
- new_db_ref->description[z] = ' ';
- else if(new_db_ref->description[z] == '<')
- new_db_ref->description[z] = ' ';
- else if(new_db_ref->description[z] == '/')
- new_db_ref->description[z] = '\\';
- }
- else {
- new_db_ref->alias = strdup(szHdr_);
-
- // get rid of windows control characters (^M, etc) by truncating at the first one
- size_t len = strlen(new_db_ref->alias);
- for (size_t i = 0; i < len; i++) {
- if (new_db_ref->alias[i] < 20 || new_db_ref->alias[i] > 126) {
- new_db_ref->alias[i] = 0;
- break;
+ // get rid of windows control characters (^M, etc) by truncating at the first one
+ size_t len = strlen(new_db_ref->alias);
+ for (size_t i = 0; i < len; i++) {
+ if (new_db_ref->alias[i] < 20 || new_db_ref->alias[i] > 126) {
+ new_db_ref->alias[i] = 0;
+ break;
+ }
}
+ new_db_ref->description = (char *)malloc((2) * sizeof( char )); // allocate as done elsewhere
+ new_db_ref->description[0] = 0;
}
- new_db_ref->description = (char *)malloc((2) * sizeof( char )); // allocate as done elsewhere
- new_db_ref->description[0] = 0;
- }
- ref_list = ((interact_data_line_t *)uniq_interact_data[this_index])->updated_refs;
- ntt_list = ((interact_data_line_t *)uniq_interact_data[this_index])->updated_ntts;
- if(calc_prot_wt_)
- prot_wt_list = ((interact_data_line_t *)uniq_interact_data[this_index])->updated_prot_wts;
+ ref_list = ((interact_data_line_t *)uniq_interact_data[this_index])->updated_refs;
+ ntt_list = ((interact_data_line_t *)uniq_interact_data[this_index])->updated_ntts;
+ if(calc_prot_wt_)
+ prot_wt_list = ((interact_data_line_t *)uniq_interact_data[this_index])->updated_prot_wts;
- if ( uniq_interact_data[this_index]->updated_hits == 0 ){
- if ( (ref_list = (db_ref_t **)malloc( sizeof(db_ref_t *))) == NULL )
- printf("Error: Could not allocate memory for a new ref_list!\n");
- if ( (ntt_list = (int*)malloc( sizeof(int *))) == NULL )
- printf("Error: Could not allocate memory for a new ntt_list!\n");
- if (calc_prot_wt_ && (prot_wt_list = (double*)malloc( sizeof(double *))) == NULL )
- printf("Error: Could not allocate memory for a new prot_wt_list!\n");
- }
- else {
- if ( (ref_list = (db_ref_t **)realloc(ref_list,
- (((interact_data_line_t *)
- uniq_interact_data[this_index])->updated_hits + 1) *
- sizeof(db_ref_t *))) == NULL )
- printf("Error: Could not reallocate memory for ref_list!\n");
- if ( (ntt_list = (int*)realloc(ntt_list,
- (((interact_data_line_t *)
- uniq_interact_data[this_index])->updated_hits + 1) *
- sizeof(int *))) == NULL )
- printf("Error: Could not reallocate memory for ntt_list!\n");
- if (calc_prot_wt_ && (prot_wt_list = (double*)realloc(prot_wt_list,
- (((interact_data_line_t *)
- uniq_interact_data[this_index])->updated_hits + 1) *
- sizeof(double *))) == NULL )
- printf("Error: Could not reallocate memory for prot_wt_list!\n");
- }
- ref_list[uniq_interact_data[this_index]->updated_hits] = new_db_ref;
- ntt = -1;
+ if ( uniq_interact_data[this_index]->updated_hits == 0 ){
+ if ( (ref_list = (db_ref_t **)malloc( sizeof(db_ref_t *))) == NULL )
+ printf("Error: Could not allocate memory for a new ref_list!\n");
+ if ( (ntt_list = (int*)malloc( sizeof(int *))) == NULL )
+ printf("Error: Could not allocate memory for a new ntt_list!\n");
+ if (calc_prot_wt_ && (prot_wt_list = (double*)malloc( sizeof(double *))) == NULL )
+ printf("Error: Could not allocate memory for a new prot_wt_list!\n");
+ }
+ else {
+ if ( (ref_list = (db_ref_t **)realloc(ref_list,
+ (((interact_data_line_t *)
+ uniq_interact_data[this_index])->updated_hits + 1) *
+ sizeof(db_ref_t *))) == NULL )
+ printf("Error: Could not reallocate memory for ref_list!\n");
+ if ( (ntt_list = (int*)realloc(ntt_list,
+ (((interact_data_line_t *)
+ uniq_interact_data[this_index])->updated_hits + 1) *
+ sizeof(int *))) == NULL )
+ printf("Error: Could not reallocate memory for ntt_list!\n");
+ if (calc_prot_wt_ && (prot_wt_list = (double*)realloc(prot_wt_list,
+ (((interact_data_line_t *)
+ uniq_interact_data[this_index])->updated_hits + 1) *
+ sizeof(double *))) == NULL )
+ printf("Error: Could not reallocate memory for prot_wt_list!\n");
+ }
+ ref_list[uniq_interact_data[this_index]->updated_hits] = new_db_ref;
+ ntt = -1;
- char prev, next;
- ntt = 0;
- bool firstpass = true;
- if(result != NULL) {
- size_t seqlen=strlen(szSeq_);
- //DDS: Find all occurrences of the peptide in the protein
- while (result != NULL) {
+ char prev, next;
+ ntt = 0;
+ bool firstpass = true;
+ if(result != NULL) {
+ size_t seqlen=strlen(szSeq_);
+ //DDS: Find all occurrences of the peptide in the protein
+ while (result != NULL) {
- size_t reslen = strlen(result);
- if(reslen == seqlen)
- prev = '-';
- else
- prev = (result-1)[0];
+ size_t reslen = strlen(result);
+ if(reslen == seqlen)
+ prev = '-';
+ else
+ prev = (result-1)[0];
- // change M to - when it's first character in the Protein
- if(prev == 'M' && reslen >= seqlen - 1) {
- prev = '-';
- }
+ // change M to - when it's first character in the Protein
+ if(prev == 'M' && reslen >= seqlen - 1) {
+ prev = '-';
+ }
- size_t nextlen=strlen(((interact_data_line_t *)
- uniq_interact_data[this_index])->sequence_I2L);
+ size_t nextlen=strlen(((interact_data_line_t *)
+ uniq_interact_data[this_index])->sequence_I2L);
- if(reslen == nextlen)
- next = '-';
- else
- next = result[nextlen]; // next aa
+ if(reslen == nextlen)
+ next = '-';
+ else
+ next = result[nextlen]; // next aa
- if (enzyme_digestions_->size() == 0) {
- cerr << "ERROR: <sample_enzyme> tag was not found in the pep.xml file." << endl;
- exit(1);
- }
+ if (enzyme_digestions_->size() == 0) {
+ cerr << "ERROR: <sample_enzyme> tag was not found in the pep.xml file." << endl;
+ exit(1);
+ }
- int new_ntt = (*enzyme_digestions_)[((interact_data_line_t *)
- uniq_interact_data[this_index])->enzyme_ind]->
- getNumTolTerm(prev, ((interact_data_line_t *) uniq_interact_data[this_index])->sequence_I2L, next);
+ int new_ntt = (*enzyme_digestions_)[((interact_data_line_t *)
+ uniq_interact_data[this_index])->enzyme_ind]->
+ getNumTolTerm(prev, ((interact_data_line_t *) uniq_interact_data[this_index])->sequence_I2L, next);
- if (firstpass || new_ntt > ntt) { // do this just once
- if (firstpass) {
- new_db_ref->prev_aa = (char *)malloc(n_desired_prev_aas_+1);
- new_db_ref->next_aa = (char *)malloc(n_desired_next_aas_+1);
- }
- // resize the prev AA string
+ if (firstpass || new_ntt > ntt) { // do this just once
+ if (firstpass) {
+ new_db_ref->prev_aa = (char *)malloc(n_desired_prev_aas_+1);
+ new_db_ref->next_aa = (char *)malloc(n_desired_next_aas_+1);
+ }
+ // resize the prev AA string
- if (NULL != new_db_ref->prev_aa ) {
- const char *aa=result;
- int count = 0;
- while ((count<n_desired_prev_aas_) && (aa>szSeq_)) {
- aa--;
- count++;
+ if (NULL != new_db_ref->prev_aa ) {
+ const char *aa=result;
+ int count = 0;
+ while ((count<n_desired_prev_aas_) && (aa>szSeq_)) {
+ aa--;
+ count++;
+ }
+ char *w=new_db_ref->prev_aa;
+ while (count--) {
+ *w++ = *aa++;
+ }
+ *w = 0;
+ if (!new_db_ref->prev_aa[0]) {
+ strcpy(new_db_ref->prev_aa,"-");
+ }
}
- char *w=new_db_ref->prev_aa;
- while (count--) {
- *w++ = *aa++;
+ // resize the follow AA string
+ if (NULL != new_db_ref->next_aa) {
+ const char *aa=result+nextlen;
+ int count = 0;
+ while ((count<n_desired_next_aas_) && *aa) {
+ aa++;
+ count++;
+ }
+ char *w=new_db_ref->next_aa;
+ aa=result+nextlen;
+ while (count--) {
+ *w++ = *aa++;
+ }
+ *w = 0;
+ if (!new_db_ref->next_aa[0]) {
+ strcpy(new_db_ref->next_aa,"-");
+ }
}
- *w = 0;
- if (!new_db_ref->prev_aa[0]) {
- strcpy(new_db_ref->prev_aa,"-");
- }
}
- // resize the follow AA string
- if (NULL != new_db_ref->next_aa) {
- const char *aa=result+nextlen;
- int count = 0;
- while ((count<n_desired_next_aas_) && *aa) {
- aa++;
- count++;
- }
- char *w=new_db_ref->next_aa;
- aa=result+nextlen;
- while (count--) {
- *w++ = *aa++;
- }
- *w = 0;
- if (!new_db_ref->next_aa[0]) {
- strcpy(new_db_ref->next_aa,"-");
- }
- }
+ ntt = new_ntt > ntt ? new_ntt : ntt;
+ result = strstr(result+strlen(((interact_data_line_t *)uniq_interact_data[this_index])->sequence_I2L),
+ ((interact_data_line_t *)uniq_interact_data[this_index])->sequence_I2L);
+ firstpass = false;
}
- ntt = new_ntt > ntt ? new_ntt : ntt;
- result = strstr(result+strlen(((interact_data_line_t *)uniq_interact_data[this_index])->sequence_I2L),
- ((interact_data_line_t *)uniq_interact_data[this_index])->sequence_I2L);
- firstpass = false;
+ } // if not null
+ else {
+ cout << "error: " << ((interact_data_line_t *)uniq_interact_data[this_index])->sequence_I2L << " not found in " << szSeq_ << endl;
+ exit(1);
}
- } // if not null
- else {
- cout << "error: " << ((interact_data_line_t *)uniq_interact_data[this_index])->sequence_I2L << " not found in " << szSeq_ << endl;
- exit(1);
- }
- // now see if we can reuse existing text
- consolidate_text_ptr(new_db_ref->alias,aliases);
- consolidate_text_ptr(new_db_ref->description,descriptions);
- consolidate_text_ptr(new_db_ref->prev_aa,prev_aas);
- consolidate_text_ptr(new_db_ref->next_aa,next_aas);
+ // now see if we can reuse existing text
+ consolidate_text_ptr(new_db_ref->alias,aliases);
+ consolidate_text_ptr(new_db_ref->description,descriptions);
+ consolidate_text_ptr(new_db_ref->prev_aa,prev_aas);
+ consolidate_text_ptr(new_db_ref->next_aa,next_aas);
- ntt_list[uniq_interact_data[this_index]->updated_hits] = ntt;
+ ntt_list[uniq_interact_data[this_index]->updated_hits] = ntt;
- if(calc_prot_wt_)
- prot_wt_list[uniq_interact_data[this_index]->updated_hits] = ResidueMass::getProteinMass(szSeq_, monoisotopic);
+ if(calc_prot_wt_)
+ prot_wt_list[uniq_interact_data[this_index]->updated_hits] = ResidueMass::getProteinMass(szSeq_, monoisotopic);
- uniq_interact_data[this_index]->updated_hits += 1;
- ((interact_data_line_t *)uniq_interact_data[this_index])->updated_refs = ref_list;
- ((interact_data_line_t *)uniq_interact_data[this_index])->updated_ntts = ntt_list;
+ uniq_interact_data[this_index]->updated_hits += 1;
+ ((interact_data_line_t *)uniq_interact_data[this_index])->updated_refs = ref_list;
+ ((interact_data_line_t *)uniq_interact_data[this_index])->updated_ntts = ntt_list;
- if(calc_prot_wt_)
- ((interact_data_line_t *)uniq_interact_data[this_index])->updated_prot_wts = prot_wt_list;
+ if(calc_prot_wt_)
+ ((interact_data_line_t *)uniq_interact_data[this_index])->updated_prot_wts = prot_wt_list;
- prev_index = this_index;
- } // end if this_index != prev_index
- } // end for num_hits
- } // end if num_hits
- } // while fgets database
- } // while fin.getline
+ prev_index = this_index;
+ } // end if this_index != prev_index
+ } // end for num_hits
+ } // end if num_hits
+ } // while fgets database
+ } // while fin.getline
#ifdef __LGPL__
- /*SPARE Parts Section*/
- for (int n=n_kwsets;n--;) {
- if (bUsePeptideAlphabet)
- delete finder_pep[n];
- else
- delete finder_std[n];
- }
+ /*SPARE Parts Section*/
+ for (int n=n_kwsets;n--;) {
+ if (bUsePeptideAlphabet)
+ delete finder_pep[n];
+ else
+ delete finder_std[n];
+ }
#else
- kwsfree(kwset);
+ kwsfree(kwset);
#endif
- fclose( fp );
+ fclose( fp );
- fprintf(stdout,"\n - Linking duplicate entries...");
- link_duplicates(interact_file_lines,num_interact_lines);
+ fprintf(stdout,"\n - Linking duplicate entries...");
+ link_duplicates(interact_file_lines,num_interact_lines);
- incr_time = time(NULL);
- fprintf(stdout,"\n - Printing results...");
+ incr_time = time(NULL);
+ fprintf(stdout,"\n - Printing results...");
- // second time through data
- Tag* analysis_summary = new Tag("analysis_summary", True, True);
- analysis_summary->setAttributeValue("analysis", getName());
- analysis_summary->setAttributeValue("time", time_);
+ // second time through data
+ Tag* analysis_summary = new Tag("analysis_summary", True, True);
+ analysis_summary->setAttributeValue("analysis", getName());
+ analysis_summary->setAttributeValue("time", time_);
- Tag* analysis_timestamp_start = new Tag("analysis_timestamp", True, False);
- analysis_timestamp_start->setAttributeValue("analysis", getName());
- analysis_timestamp_start->setAttributeValue("time", time_);
- analysis_timestamp_start->setAttributeValue("id", "1");
+ Tag* analysis_timestamp_start = new Tag("analysis_timestamp", True, False);
+ analysis_timestamp_start->setAttributeValue("analysis", getName());
+ analysis_timestamp_start->setAttributeValue("time", time_);
+ analysis_timestamp_start->setAttributeValue("id", "1");
- Tag* analysis_timestamp_stop = new Tag("analysis_timestamp", False, True);
+ Tag* analysis_timestamp_stop = new Tag("analysis_timestamp", False, True);
- Tag* timestamp = new Tag("database_refresh_timestamp", True, True);
- // get time info
- timestamp->setAttributeValue("database", database_);
- // if(! use_default_min_ntt_) {
+ Tag* timestamp = new Tag("database_refresh_timestamp", True, True);
+ // get time info
+ timestamp->setAttributeValue("database", database_);
+ // if(! use_default_min_ntt_) {
- char next[20];
- sprintf(next, "%d", min_num_tol_term_);
- timestamp->setAttributeValue("min_num_enz_term", next);
+ char next[20];
+ sprintf(next, "%d", min_num_tol_term_);
+ timestamp->setAttributeValue("min_num_enz_term", next);
- //}
- // want to overwrite timestamp to summary.xml file......
+ //}
+ // want to overwrite timestamp to summary.xml file......
- int index = 0;
- double nextprob = -1.0;
+ int index = 0;
+ double nextprob = -1.0;
- // construct a tmpfile name based on xmlfile
- std::string outfile = make_tmpfile_name(xmlfile);
- //cerr << "writing data to " << outfile << endl;
- ofstream fout(outfile.c_str());
- if(! fout) {
- cerr << "cannot write output to file " << outfile << endl;
- exit(1);
- }
+ // construct a tmpfile name based on xmlfile
+ std::string outfile = make_tmpfile_name(xmlfile);
+ //cerr << "writing data to " << outfile << endl;
+ ofstream fout(outfile.c_str());
+ if(! fout) {
+ cerr << "cannot write output to file " << outfile << endl;
+ exit(1);
+ }
- TagFilter* refresh_filter = new TagFilter("alternative_protein");
+ TagFilter* refresh_filter = new TagFilter("alternative_protein");
- TagFilter* timestamp_filter = new TagFilter("analysis_timestamp");
- timestamp_filter->enterRequiredAttributeVal("analysis", getName());
+ TagFilter* timestamp_filter = new TagFilter("analysis_timestamp");
+ timestamp_filter->enterRequiredAttributeVal("analysis", getName());
- TagFilter* summary_filter = new TagFilter("analysis_summary");
- summary_filter->enterRequiredAttributeVal("analysis", getName());
+ TagFilter* summary_filter = new TagFilter("analysis_summary");
+ summary_filter->enterRequiredAttributeVal("analysis", getName());
- int result_index = 1;
- char search_result[] = "spectrum_query";
- char attr_name[] = "index";
+ int result_index = 1;
+ char search_result[] = "spectrum_query";
+ char attr_name[] = "index";
- RACI fin2(xmlfile); // can read gzipped xml
- if(! fin2) {
- cerr << "RefreshParser(2): error opening " << xmlfile << endl;
- exit(1);
- }
+ RACI fin2(xmlfile); // can read gzipped xml
+ if(! fin2) {
+ cerr << "RefreshParser(2): error opening " << xmlfile << endl;
+ exit(1);
+ }
- char current_database[500];
- current_database[0] = 0;
- Array<Tag*>* tags = NULL;
- long line_index = 0L;
- Boolean refreshed = False;
+ char current_database[500];
+ current_database[0] = 0;
+ Array<Tag*>* tags = NULL;
+ long line_index = 0L;
+ Boolean refreshed = False;
- while(fin2.getline(nextline, line_width_)) {
- data = strchr(nextline, '<');
- while(data != NULL) {
- tag = new Tag(data);
- refreshed = False;
+ while(fin2.getline(nextline, line_width_)) {
+ data = strchr(nextline, '<');
+ while(data != NULL) {
+ tag = new Tag(data);
+ refreshed = False;
- //tag->write(cout);
- if(line_index > num_interact_lines) {
- cerr << "error1" << endl;
- exit(1);
- }
- if(tag != NULL && ! timestamp_filter->filter(tag) && ! refresh_filter->filter(tag) &&
- ! summary_filter->filter(tag)) {
- if ( (tag->isStart() && ! strcmp(tag->getName(), "linked_peptide")) ||
- (tag->isStart() && ! strcmp(tag->getName(), "search_hit") &&
- ! strcmp(tag->getAttributeValue("hit_rank"), "1") &&
- (!tag->getAttributeValue("is_rejected") ||
- strcmp(tag->getAttributeValue("is_rejected"), "1")) &&
- refresh(tag)) ) {
+ //tag->write(cout);
+ if(line_index > num_interact_lines) {
+ cerr << "error1" << endl;
+ exit(1);
+ }
+ if(tag != NULL && ! timestamp_filter->filter(tag) && ! refresh_filter->filter(tag) &&
+ ! summary_filter->filter(tag)) {
+ if ( (tag->isStart() && ! strcmp(tag->getName(), "linked_peptide")) ||
+ (tag->isStart() && ! strcmp(tag->getName(), "search_hit") &&
+ ! strcmp(tag->getAttributeValue("hit_rank"), "1") &&
+ (!tag->getAttributeValue("is_rejected") ||
+ strcmp(tag->getAttributeValue("is_rejected"), "1")) &&
+ refresh(tag)) ) {
#ifdef USE_STD_MODS
- if(strcmp(interact_file_lines[line_index]->sequence, tag->getAttributeValue("peptide"))) {
- cerr << "error2 " << interact_file_lines[line_index]->sequence << " vs " << tag->getAttributeValue("peptide") << endl;
+ if(strcmp(interact_file_lines[line_index]->sequence, tag->getAttributeValue("peptide"))) {
+ cerr << "error2 " << interact_file_lines[line_index]->sequence << " vs " << tag->getAttributeValue("peptide") << endl;
#else
- if(strcmp(interact_file_lines[line_index]->sequence, tag->getAttributeValue("stripped_peptide"))) {
- cerr << "error2 " << interact_file_lines[line_index]->sequence << " vs " << tag->getAttributeValue("stripped_peptide") << endl;
+ if(strcmp(interact_file_lines[line_index]->sequence, tag->getAttributeValue("stripped_peptide"))) {
+ cerr << "error2 " << interact_file_lines[line_index]->sequence << " vs " << tag->getAttributeValue("stripped_peptide") << endl;
#endif
- exit(1);
- }
+ exit(1);
+ }
- tags = getRefreshTags(tag,
- interact_file_lines[line_index++],
- current_database);
-
- if(tags != NULL) {
- for(int k = 0; k < tags->length(); k++)
- if((*tags)[k] != NULL) {
- RECORD((*tags)[k]);
- delete (*tags)[k];
+ tags = getRefreshTags(tag,
+ interact_file_lines[line_index++],
+ current_database);
+
+ if(tags != NULL) {
+ for(int k = 0; k < tags->length(); k++)
+ if((*tags)[k] != NULL) {
+ RECORD((*tags)[k]);
+ delete (*tags)[k];
+ }
+ delete tags;
+ tags = NULL;
+ refreshed = True;
}
- delete tags;
- tags = NULL;
- refreshed = True;
+ }
+ else if(tag->isStart() && ! strcmp(tag->getName(), "msms_pipeline_analysis")) {
+ tag->write(fout);
+ // here write the timestamp
+ analysis_summary->write(fout);
+ }
+ else if(tag->isEnd() && ! strcmp(tag->getName(), "search_summary")) {
+ tag->write(fout);
+ // here write the timestamp
+ analysis_timestamp_start->write(fout);
+ timestamp->write(fout);
+ analysis_timestamp_stop->write(fout);
+ }
+ else if(tag->isStart() && ! strcmp(tag->getName(), "search_database")) {
+ memcpy(current_database,
+ tag->getAttributeValue("local_path"),
+ strlen(tag->getAttributeValue("local_path"))+1);
+ RECORD(tag);
+ }
+ else {
+ tag->write(fout);
+ }
}
- }
- else if(tag->isStart() && ! strcmp(tag->getName(), "msms_pipeline_analysis")) {
- tag->write(fout);
- // here write the timestamp
- analysis_summary->write(fout);
- }
- else if(tag->isEnd() && ! strcmp(tag->getName(), "search_summary")) {
- tag->write(fout);
- // here write the timestamp
- analysis_timestamp_start->write(fout);
- timestamp->write(fout);
- analysis_timestamp_stop->write(fout);
- }
- else if(tag->isStart() && ! strcmp(tag->getName(), "search_database")) {
- memcpy(current_database,
- tag->getAttributeValue("local_path"),
- strlen(tag->getAttributeValue("local_path"))+1);
- RECORD(tag);
- }
- else {
- tag->write(fout);
- }
- }
- if(! refreshed && tag != NULL)
- delete tag;
- data = strchr(data+1, '<');
- } // next tag
- } // next line
- fin2.close();
- fout.close();
+ if(! refreshed && tag != NULL)
+ delete tag;
+ data = strchr(data+1, '<');
+ } // next tag
+ } // next line
+ fin2.close();
+ fout.close();
- delete [] nextline;
+ delete [] nextline;
- if (num_mapped_ == 0)
- fprintf(stdout,"\nERROR: no entries mapped! Please check input files.");
- else
- fprintf(stdout,"\n - Mapped %d entries", num_mapped_);
- if (num_not_mapped_ > 0)
- fprintf(stdout,"\nWarning: could not map %d entries", num_not_mapped_);
+ if (num_mapped_ == 0)
+ fprintf(stdout,"\nERROR: no entries mapped! Please check input files.");
+ else
+ fprintf(stdout,"\n - Mapped %d entries", num_mapped_);
+ if (num_not_mapped_ > 0)
+ fprintf(stdout,"\nWarning: could not map %d entries", num_not_mapped_);
- fprintf(stdout,"\n\n");
+ fprintf(stdout,"\n\n");
- if (testType!=NO_TEST) {
- //
- // regression test stuff - bpratt Insilicos LLC, Nov 2005
- //
- TagListComparator("RefreshParser",testType,test_tags,testFileName);
- delete[] testFileName;
- for(int k = test_tags.length(); k--;) {
- delete test_tags[k];
- }
- }
+ if (testType!=NO_TEST) {
+ //
+ // regression test stuff - bpratt Insilicos LLC, Nov 2005
+ //
+ TagListComparator("RefreshParser",testType,test_tags,testFileName);
+ delete[] testFileName;
+ for(int k = test_tags.length(); k--;) {
+ delete test_tags[k];
+ }
+ }
- if(! overwrite(xmlfile, outfile.c_str(), "</msms_pipeline_analysis>")) {
- cerr << "error: no RefreshParser data written to file " << xmlfile << endl;
- }
+ if(! overwrite(xmlfile, outfile.c_str(), "</msms_pipeline_analysis>")) {
+ cerr << "error: no RefreshParser data written to file " << xmlfile << endl;
+ }
- // clean up...
- map <int*, int> freed_iptrs_map;
- map <char*, int> *freed_cptrs_map = new map <char*, int>;
- map <db_ref_t*, int> *freed_pptrs_map = new map <db_ref_t*, int>;
- map <db_ref_t**, int> *freed_rptrs_map = new map <db_ref_t**, int>;
+ // clean up...
+ map <int*, int> freed_iptrs_map;
+ map <char*, int> *freed_cptrs_map = new map <char*, int>;
+ map <db_ref_t*, int> *freed_pptrs_map = new map <db_ref_t*, int>;
+ map <db_ref_t**, int> *freed_rptrs_map = new map <db_ref_t**, int>;
- if (uniq_interact_data != NULL) {
- for(int k = 0; k < uniq_lines; k++) {
- if (uniq_interact_data[k] != NULL) {
- if (uniq_interact_data[k]->updated_refs != NULL)
- save_ptrs_to_free(uniq_interact_data[k],freed_rptrs_map,freed_pptrs_map,freed_cptrs_map);
- uniq_interact_data[k]->updated_refs = NULL;
+ if (uniq_interact_data != NULL) {
+ for(int k = 0; k < uniq_lines; k++) {
+ if (uniq_interact_data[k] != NULL) {
+ if (uniq_interact_data[k]->updated_refs != NULL)
+ save_ptrs_to_free(uniq_interact_data[k],freed_rptrs_map,freed_pptrs_map,freed_cptrs_map);
+ uniq_interact_data[k]->updated_refs = NULL;
+ }
+ }
+ free(uniq_interact_data);
+ uniq_interact_data = NULL;
}
- }
- free(uniq_interact_data);
- uniq_interact_data = NULL;
- }
- if (interact_file_lines != NULL) {
- for(int k = 0; k < num_interact_lines; k++) {
- if (interact_file_lines[k] != NULL) {
- delete[] interact_file_lines[k]->sequence;
- delete[] interact_file_lines[k]->sequence_I2L;
- delete[] interact_file_lines[k]->db_ref;
- if ( interact_file_lines[k]->alt_sequence != NULL )
- delete[] interact_file_lines[k]->alt_sequence;
+ if (interact_file_lines != NULL) {
+ for(int k = 0; k < num_interact_lines; k++) {
+ if (interact_file_lines[k] != NULL) {
+ delete[] interact_file_lines[k]->sequence;
+ delete[] interact_file_lines[k]->sequence_I2L;
+ delete[] interact_file_lines[k]->db_ref;
+ if ( interact_file_lines[k]->alt_sequence != NULL )
+ delete[] interact_file_lines[k]->alt_sequence;
- if (interact_file_lines[k]->updated_ntts != NULL)
- freed_iptrs_map[interact_file_lines[k]->updated_ntts] = 1;
- interact_file_lines[k]->updated_ntts = NULL;
+ if (interact_file_lines[k]->updated_ntts != NULL)
+ freed_iptrs_map[interact_file_lines[k]->updated_ntts] = 1;
+ interact_file_lines[k]->updated_ntts = NULL;
- if (interact_file_lines[k]->updated_refs != NULL)
- save_ptrs_to_free(interact_file_lines[k],freed_rptrs_map,freed_pptrs_map,freed_cptrs_map);
- interact_file_lines[k]->updated_refs = NULL;
+ if (interact_file_lines[k]->updated_refs != NULL)
+ save_ptrs_to_free(interact_file_lines[k],freed_rptrs_map,freed_pptrs_map,freed_cptrs_map);
+ interact_file_lines[k]->updated_refs = NULL;
- free(interact_file_lines[k]);
- interact_file_lines[k] = NULL;
+ free(interact_file_lines[k]);
+ interact_file_lines[k] = NULL;
+ }
+ }
+ free(interact_file_lines);
+ interact_file_lines = NULL;
}
- }
- free(interact_file_lines);
- interact_file_lines = NULL;
- }
- for (map <int*, int>::const_iterator it = freed_iptrs_map.begin(); it != freed_iptrs_map.end(); it++)
- free(it->first);
- for (map <char*, int>::const_iterator it = (*freed_cptrs_map).begin(); it != (*freed_cptrs_map).end(); it++)
- free(it->first);
- for (map <db_ref_t*, int>::const_iterator it = (*freed_pptrs_map).begin(); it != (*freed_pptrs_map).end(); it++)
- free(it->first);
- for (map <db_ref_t**, int>::const_iterator it = (*freed_rptrs_map).begin(); it != (*freed_rptrs_map).end(); it++)
- free(it->first);
- delete freed_cptrs_map;
- delete freed_pptrs_map;
- delete freed_rptrs_map;
+ for (map <int*, int>::const_iterator it = freed_iptrs_map.begin(); it != freed_iptrs_map.end(); it++)
+ free(it->first);
+ for (map <char*, int>::const_iterator it = (*freed_cptrs_map).begin(); it != (*freed_cptrs_map).end(); it++)
+ free(it->first);
+ for (map <db_ref_t*, int>::const_iterator it = (*freed_pptrs_map).begin(); it != (*freed_pptrs_map).end(); it++)
+ free(it->first);
+ for (map <db_ref_t**, int>::const_iterator it = (*freed_rptrs_map).begin(); it != (*freed_rptrs_map).end(); it++)
+ free(it->first);
+ delete freed_cptrs_map;
+ delete freed_pptrs_map;
+ delete freed_rptrs_map;
- delete alt_index_map;
- delete analysis_summary;
- delete analysis_timestamp_start;
- delete analysis_timestamp_stop;
- delete timestamp;
- delete refresh_filter;
- delete timestamp_filter;
- delete summary_filter;
+ delete alt_index_map;
+ delete analysis_summary;
+ delete analysis_timestamp_start;
+ delete analysis_timestamp_stop;
+ delete timestamp;
+ delete refresh_filter;
+ delete timestamp_filter;
+ delete summary_filter;
- free(sort_idx);
- free(szBuf_);
- free(szSeq_);
- free(szHdr_);
- free(szOutputDb_);
+ free(sort_idx);
+ free(szBuf_);
+ free(szSeq_);
+ free(szHdr_);
+ free(szOutputDb_);
- aliases.clear();
- descriptions.clear();
- prev_aas.clear();
- next_aas.clear();
-}
+ aliases.clear();
+ descriptions.clear();
+ prev_aas.clear();
+ next_aas.clear();
+ }
-
void RefreshParser::setFilter(Tag* tag) {
if(tag == NULL)
return;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2026-02-26 01:12:51
|
Revision: 9475
http://sourceforge.net/p/sashimi/code/9475
Author: real_procopio
Date: 2026-02-26 01:12:48 +0000 (Thu, 26 Feb 2026)
Log Message:
-----------
[comet] v2026.01.0
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/extern/Makefile
Added Paths:
-----------
trunk/trans_proteomic_pipeline/extern/comet_source_2026010.zip
Removed Paths:
-------------
trunk/trans_proteomic_pipeline/extern/comet_source_2025030.zip
Modified: trunk/trans_proteomic_pipeline/extern/Makefile
===================================================================
--- trunk/trans_proteomic_pipeline/extern/Makefile 2026-02-26 00:17:57 UTC (rev 9474)
+++ trunk/trans_proteomic_pipeline/extern/Makefile 2026-02-26 01:12:48 UTC (rev 9475)
@@ -414,7 +414,7 @@
#
# http://comet-ms.sourceforge.net/
#
-COMET_VER := 2025030
+COMET_VER := 2026010
COMET_ZIP := $(TPP_EXT)/comet_source_$(COMET_VER).zip
COMET_SRC := $(BUILD_SRC)/comet_source_$(COMET_VER)
.PHONY: comet comet-source comet-clean
Deleted: trunk/trans_proteomic_pipeline/extern/comet_source_2025030.zip
===================================================================
(Binary files differ)
Added: trunk/trans_proteomic_pipeline/extern/comet_source_2026010.zip
===================================================================
(Binary files differ)
Index: trunk/trans_proteomic_pipeline/extern/comet_source_2026010.zip
===================================================================
--- trunk/trans_proteomic_pipeline/extern/comet_source_2026010.zip 2026-02-26 00:17:57 UTC (rev 9474)
+++ trunk/trans_proteomic_pipeline/extern/comet_source_2026010.zip 2026-02-26 01:12:48 UTC (rev 9475)
Property changes on: trunk/trans_proteomic_pipeline/extern/comet_source_2026010.zip
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2026-02-26 00:18:00
|
Revision: 9474
http://sourceforge.net/p/sashimi/code/9474
Author: real_procopio
Date: 2026-02-26 00:17:57 +0000 (Thu, 26 Feb 2026)
Log Message:
-----------
Latest Unimod data, up to id=2147
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/html/ref/unimod.json
Modified: trunk/trans_proteomic_pipeline/html/ref/unimod.json
===================================================================
--- trunk/trans_proteomic_pipeline/html/ref/unimod.json 2026-02-25 18:09:39 UTC (rev 9473)
+++ trunk/trans_proteomic_pipeline/html/ref/unimod.json 2026-02-26 00:17:57 UTC (rev 9474)
@@ -1415,6 +1415,16 @@
],
"altst": []
},
+ "b-type-ion": {
+ "recid": "2132",
+ "_iscommon": false,
+ "fname": "Dehydration of C-terminus as reaction inside the mass spectrometer",
+ "delta": "-18.010565",
+ "sites": [],
+ "altst": [
+ "C-term"
+ ]
+ },
"Cys->Oxoalanine": {
"recid": "402",
"_iscommon": false,
@@ -1469,6 +1479,16 @@
"N"
]
},
+ "z-type-ion": {
+ "recid": "2143",
+ "_iscommon": false,
+ "fname": "Ammonia loss from N-terminus as reaction inside the mass spectrometer",
+ "delta": "-17.026549",
+ "sites": [],
+ "altst": [
+ "N-term"
+ ]
+ },
"Met->Asn": {
"recid": "1149",
"_iscommon": false,
@@ -1988,6 +2008,16 @@
"V"
]
},
+ "Dehydromethionine": {
+ "recid": "2144",
+ "_iscommon": false,
+ "fname": "Intramolecular cyclization product of N-terminal methionine, forming a five-membered azasulfonium ion where the sulfur atom bonds to the amine group",
+ "delta": "-2.01565",
+ "sites": [],
+ "altst": [
+ "M"
+ ]
+ },
"Met->Glu": {
"recid": "1145",
"_iscommon": false,
@@ -2079,6 +2109,16 @@
"E"
]
},
+ "c-type-ion": {
+ "recid": "2141",
+ "_iscommon": false,
+ "fname": "Cleavage at the N atom from the N+1 residue as reaction inside the mass spectrometer",
+ "delta": "-0.984016",
+ "sites": [],
+ "altst": [
+ "C-term"
+ ]
+ },
"Glu->pyro-Glu+Methyl:2H(2)13C(1)": {
"recid": "1827",
"_iscommon": false,
@@ -2119,6 +2159,16 @@
"K"
]
},
+ "Cys->fGly-diol": {
+ "recid": "2129",
+ "_iscommon": false,
+ "fname": "formylglycinediol, activated in sulfatases",
+ "delta": "0.017759",
+ "sites": [],
+ "altst": [
+ "C"
+ ]
+ },
"Gln->Lys": {
"recid": "631",
"_iscommon": false,
@@ -2621,6 +2671,16 @@
"E"
]
},
+ "Label:2H(8)": {
+ "recid": "2146",
+ "_iscommon": false,
+ "fname": "SILAC: Lysine_D8",
+ "delta": "8.050214",
+ "sites": [],
+ "altst": [
+ "K"
+ ]
+ },
"Lys->His": {
"recid": "1136",
"_iscommon": false,
@@ -3250,6 +3310,17 @@
"C-term"
]
},
+ "Methyl:13C(1)2H(2)": {
+ "recid": "2140",
+ "_iscommon": false,
+ "fname": "Heavy-Methyl:13C(1)2H(2)",
+ "delta": "17.031558",
+ "sites": [],
+ "altst": [
+ "K",
+ "N-term"
+ ]
+ },
"Methyl:2H(3)": {
"recid": "298",
"_iscommon": false,
@@ -3567,6 +3638,16 @@
"C"
]
},
+ "x-type-ion": {
+ "recid": "2142",
+ "_iscommon": false,
+ "fname": "Cleavage at the carbonyl from the N-1 residue as reaction inside the mass spectrometer",
+ "delta": "25.979265",
+ "sites": [],
+ "altst": [
+ "N-term"
+ ]
+ },
"His->Tyr": {
"recid": "581",
"_iscommon": false,
@@ -5437,6 +5518,16 @@
"W"
]
},
+ "Cys->Ser-O-sulfate": {
+ "recid": "2131",
+ "_iscommon": false,
+ "fname": "Serine O-sulfate",
+ "delta": "63.979659",
+ "sites": [],
+ "altst": [
+ "C"
+ ]
+ },
"Val->Tyr": {
"recid": "1223",
"_iscommon": false,
@@ -5835,6 +5926,16 @@
"K"
]
},
+ "Cys->sulfo-fGly-dio": {
+ "recid": "2130",
+ "_iscommon": false,
+ "fname": "Sulphated formylglycinediol, activated in sulfatases",
+ "delta": "78.966748",
+ "sites": [],
+ "altst": [
+ "C"
+ ]
+ },
"Delta:Se(1)": {
"recid": "423",
"_iscommon": false,
@@ -7715,6 +7816,16 @@
"K"
]
},
+ "imidazolone": {
+ "recid": "2147",
+ "_iscommon": false,
+ "fname": "imidazolone from 3-DG",
+ "delta": "144.042259",
+ "sites": [],
+ "altst": [
+ "R"
+ ]
+ },
"iTRAQ4plex115": {
"recid": "533",
"_iscommon": false,
@@ -8383,6 +8494,18 @@
"N-term"
]
},
+ "Phosphocholine": {
+ "recid": "2139",
+ "_iscommon": false,
+ "fname": "Serine/Threonine/Tyrosine of a protein becomes posttranslationally modified with a phosphocholine moiety.",
+ "delta": "165.05548",
+ "sites": [],
+ "altst": [
+ "T",
+ "S",
+ "Y"
+ ]
+ },
"Tween20": {
"recid": "1834",
"_iscommon": false,
@@ -8654,6 +8777,21 @@
"C"
]
},
+ "PnTAG": {
+ "recid": "2135",
+ "_iscommon": false,
+ "fname": "6-Phosphonohexanoylation",
+ "delta": "178.039496",
+ "sites": [],
+ "altst": [
+ "Y",
+ "T",
+ "S",
+ "N-term",
+ "N-term",
+ "K"
+ ]
+ },
"Galactosyl": {
"recid": "907",
"_iscommon": false,
@@ -9261,12 +9399,13 @@
"delta": "224.152478",
"sites": [],
"altst": [
+ "S",
"H",
"N-term",
"N-term",
"K",
- "S",
- "T"
+ "T",
+ "Y"
]
},
"Brij58": {
@@ -9313,7 +9452,8 @@
"T",
"S",
"H",
- "N-term"
+ "N-term",
+ "Y"
]
},
"Xlink:DSPP[226]": {
@@ -9424,7 +9564,8 @@
"T",
"S",
"H",
- "N-term"
+ "N-term",
+ "Y"
]
},
"PyridoxalPhosphateH2": {
@@ -9437,6 +9578,21 @@
"K"
]
},
+ "DMA-PEG3": {
+ "recid": "2136",
+ "_iscommon": false,
+ "fname": "DimethylaminoPEG3ylation",
+ "delta": "231.147058",
+ "sites": [],
+ "altst": [
+ "K",
+ "N-term",
+ "N-term",
+ "S",
+ "T",
+ "Y"
+ ]
+ },
"PropylNAGthiazoline": {
"recid": "514",
"_iscommon": false,
@@ -10029,7 +10185,8 @@
"N-term",
"N-term",
"K",
- "T"
+ "T",
+ "Y"
]
},
"IGBP": {
@@ -10163,7 +10320,8 @@
"T",
"S",
"H",
- "N-term"
+ "N-term",
+ "Y"
]
},
"PhosphoCytidine": {
@@ -10526,6 +10684,16 @@
"K"
]
},
+ "Desthiobiotin-Phenol": {
+ "recid": "2127",
+ "_iscommon": false,
+ "fname": "Desthiobiotin-Phenol",
+ "delta": "331.189592",
+ "sites": [],
+ "altst": [
+ "Y"
+ ]
+ },
"LG-lactam-K": {
"recid": "503",
"_iscommon": false,
@@ -11007,6 +11175,16 @@
"K"
]
},
+ "HCCA-Lys": {
+ "recid": "2138",
+ "_iscommon": false,
+ "fname": "Lysine labelled with HCCA tag",
+ "delta": "412.211056",
+ "sites": [],
+ "altst": [
+ "K"
+ ]
+ },
"PEO-Iodoacetyl-LC-Biotin": {
"recid": "20",
"_iscommon": false,
@@ -11419,6 +11597,16 @@
"C"
]
},
+ "Cys-vinyl sulfone amine probe addition": {
+ "recid": "2128",
+ "_iscommon": false,
+ "fname": "Michael addition of a vinyl sulfone amine desthiobiotin probe to cysteine",
+ "delta": "478.24612",
+ "sites": [],
+ "altst": [
+ "C"
+ ]
+ },
"EQIGG": {
"recid": "846",
"_iscommon": false,
@@ -16783,9 +16971,9 @@
}
},
"info": {
- "datetime": "2024-08-14 21:38:47",
- "generator": "./unimodxml2json.py",
+ "datetime": "2026-02-25 14:03:11",
+ "generator": "/users/lmendoza/bin/UNIMOD/./unimodxml2json.py",
"source": "/proteomics/lmendoza/reference/unimod.xml",
- "last_id": "2126"
+ "last_id": "2147"
}
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <en...@us...> - 2026-02-25 18:09:41
|
Revision: 9473
http://sourceforge.net/p/sashimi/code/9473
Author: eng_jk
Date: 2026-02-25 18:09:39 +0000 (Wed, 25 Feb 2026)
Log Message:
-----------
modify DatabaseParser to account for Comet .idx extension
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/src/Parsers/DatabaseParser/DatabaseParser.cpp
Modified: trunk/trans_proteomic_pipeline/src/Parsers/DatabaseParser/DatabaseParser.cpp
===================================================================
--- trunk/trans_proteomic_pipeline/src/Parsers/DatabaseParser/DatabaseParser.cpp 2025-12-09 06:49:19 UTC (rev 9472)
+++ trunk/trans_proteomic_pipeline/src/Parsers/DatabaseParser/DatabaseParser.cpp 2026-02-25 18:09:39 UTC (rev 9473)
@@ -65,6 +65,12 @@
memcpy(current_database,
tag->getAttributeValue("local_path"),
strlen(tag->getAttributeValue("local_path"))+1);
+
+ // when parsing .idx from Comet index search, strip ".idx" extension from
+ // parsed attribute value to return original fasta for sequence matching
+ int len = strlen(current_database);
+ if (strcmp(current_database + len - 4, ".idx") == 0 && len >= 4)
+ current_database[len - 4] = '\0';
}
else if(tag->isStart() && ! strcmp(tag->getName(), "database_refresh_timestamp")) {
strcpy(current_database, tag->getAttributeValue("database"));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2025-12-09 06:49:21
|
Revision: 9472
http://sourceforge.net/p/sashimi/code/9472
Author: real_procopio
Date: 2025-12-09 06:49:19 +0000 (Tue, 09 Dec 2025)
Log Message:
-----------
[comet] v2025.03.0
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/extern/Makefile
Added Paths:
-----------
trunk/trans_proteomic_pipeline/extern/comet_source_2025030.zip
Removed Paths:
-------------
trunk/trans_proteomic_pipeline/extern/comet_source_2025011.zip
Modified: trunk/trans_proteomic_pipeline/extern/Makefile
===================================================================
--- trunk/trans_proteomic_pipeline/extern/Makefile 2025-12-09 06:23:23 UTC (rev 9471)
+++ trunk/trans_proteomic_pipeline/extern/Makefile 2025-12-09 06:49:19 UTC (rev 9472)
@@ -414,7 +414,7 @@
#
# http://comet-ms.sourceforge.net/
#
-COMET_VER := 2025011
+COMET_VER := 2025030
COMET_ZIP := $(TPP_EXT)/comet_source_$(COMET_VER).zip
COMET_SRC := $(BUILD_SRC)/comet_source_$(COMET_VER)
.PHONY: comet comet-source comet-clean
Deleted: trunk/trans_proteomic_pipeline/extern/comet_source_2025011.zip
===================================================================
(Binary files differ)
Added: trunk/trans_proteomic_pipeline/extern/comet_source_2025030.zip
===================================================================
(Binary files differ)
Index: trunk/trans_proteomic_pipeline/extern/comet_source_2025030.zip
===================================================================
--- trunk/trans_proteomic_pipeline/extern/comet_source_2025030.zip 2025-12-09 06:23:23 UTC (rev 9471)
+++ trunk/trans_proteomic_pipeline/extern/comet_source_2025030.zip 2025-12-09 06:49:19 UTC (rev 9472)
Property changes on: trunk/trans_proteomic_pipeline/extern/comet_source_2025030.zip
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2025-12-09 06:23:26
|
Revision: 9471
http://sourceforge.net/p/sashimi/code/9471
Author: real_procopio
Date: 2025-12-09 06:23:23 +0000 (Tue, 09 Dec 2025)
Log Message:
-----------
[Petunia] Updated path to Python in local UB24 (regis)
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/perl/tpp_gui/tpp_gui.pl
Modified: trunk/trans_proteomic_pipeline/perl/tpp_gui/tpp_gui.pl
===================================================================
--- trunk/trans_proteomic_pipeline/perl/tpp_gui/tpp_gui.pl 2025-12-08 19:41:23 UTC (rev 9470)
+++ trunk/trans_proteomic_pipeline/perl/tpp_gui/tpp_gui.pl 2025-12-09 06:23:23 UTC (rev 9471)
@@ -17492,11 +17492,14 @@
$new_file .= $charList[int(rand 36)];
}
+ my $py_lib_path = readconfig('pythonpath', "/proteomics/sw/python/Ubuntu24");
+
open(SHCMD, ">$new_file") || &fatalError("CANNOT_CREATE_SHELL_COMMAND_FILE:$new_file:$!");
chmod 0744, $new_file;
print SHCMD "#!/bin/bash\n";
print SHCMD "export PERL5LIB=/proteomics/sw/perl-u20/share/perl:/proteomics/sw/perl-u20/lib/perl5:/proteomics/sw/perl-u20/lib/x86_64-linux-gnu/perl\n";
print SHCMD "export PATH=/proteomics/sw/bin:\$PATH\n";
+ print SHCMD "export PYTHONPATH=$py_lib_path\n";
print SHCMD "#echo PATH == \$PATH\n";
print SHCMD "export HOST=`/bin/hostname -s`\n";
print SHCMD "#echo HOST == \$HOST\n";
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <en...@us...> - 2025-12-08 19:41:25
|
Revision: 9470
http://sourceforge.net/p/sashimi/code/9470
Author: eng_jk
Date: 2025-12-08 19:41:23 +0000 (Mon, 08 Dec 2025)
Log Message:
-----------
Correct parsing of MS1 peaks for mzML files with ion mobility dimension.
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/src/Visualization/Comet/plot-msms/plot-msms-js.cpp
Modified: trunk/trans_proteomic_pipeline/src/Visualization/Comet/plot-msms/plot-msms-js.cpp
===================================================================
--- trunk/trans_proteomic_pipeline/src/Visualization/Comet/plot-msms/plot-msms-js.cpp 2025-04-30 00:57:04 UTC (rev 9469)
+++ trunk/trans_proteomic_pipeline/src/Visualization/Comet/plot-msms/plot-msms-js.cpp 2025-12-08 19:41:23 UTC (rev 9470)
@@ -1556,7 +1556,7 @@
}
if (scanHeaderMS.msLevel == (scanHeader.msLevel - 1))
- {
+ {
RAMPREAL *pPeaks;
int n = 0;
int bFirstDataPoint=1;
@@ -1565,19 +1565,23 @@
double dLowMass = scanHeader.precursorMZ - 0.25;
double dHighMass = scanHeader.precursorMZ + 0.25;
+ RAMPREAL fMass;
+ RAMPREAL fInten;
+ RAMPREAL fIonMob;
+
// Open a scan
pPeaks = readPeaks(fp_, index_[iScanNum]);
printf("\nms1peaks = [");
while (pPeaks != NULL && pPeaks[n] != -1)
- {
- RAMPREAL fMass;
- RAMPREAL fInten;
-
- fMass = pPeaks[n];
+ {
+ fMass = pPeaks[n];
n++;
fInten = pPeaks[n];
n++;
+ if ((fp_->fileType == 3 || fp_->fileType == 1) && fp_->mzML->getIonMobility())
+ fIonMob=pPeaks[n++];
+
if (fInten > 0.0)
{
if (dLowMass<fMass && fMass<dHighMass)
@@ -1602,10 +1606,10 @@
printf("\nms1scanLabel = \"%d, RT %0.2f\";\n", iScanNum, scanHeaderMS.retentionTime);
pEnvironment.iMS1Scan = iScanNum;
- }
+ }
else
{
- printf("\nms1scanLabel = \" %d is not a valid precursor scan!\";\n",iScanNum);
+ printf("\nms1scanLabel = \" %d is not a valid precursor scan!\";\n",iScanNum);
printf("ms1peaks= [[0.0,0.0]];\n");
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2025-04-30 00:57:23
|
Revision: 9469
http://sourceforge.net/p/sashimi/code/9469
Author: real_procopio
Date: 2025-04-30 00:57:04 +0000 (Wed, 30 Apr 2025)
Log Message:
-----------
[showXIC] Display RT in minutes insetad of seconds (as per Lab request). Minor style adjustment to max ppm
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/html/js/showxic.js
Modified: trunk/trans_proteomic_pipeline/html/js/showxic.js
===================================================================
--- trunk/trans_proteomic_pipeline/html/js/showxic.js 2025-04-29 23:39:01 UTC (rev 9468)
+++ trunk/trans_proteomic_pipeline/html/js/showxic.js 2025-04-30 00:57:04 UTC (rev 9469)
@@ -136,9 +136,9 @@
hitdataset['data'] = [];
peps[hit["modified"]] = hitdataset;
}
- peps[hit["modified"]]['data'].push({'x':hit["rt"], 'y':0});
- peps[hit["modified"]]['data'].push({'x':hit["rt"], 'y':0.9});
- peps[hit["modified"]]['data'].push({'x':hit["rt"], 'y':0});
+ peps[hit["modified"]]['data'].push({'x':hit["rt"]/60, 'y':0});
+ peps[hit["modified"]]['data'].push({'x':hit["rt"]/60, 'y':0.9});
+ peps[hit["modified"]]['data'].push({'x':hit["rt"]/60, 'y':0});
}
for (let pep in peps) {
@@ -148,7 +148,7 @@
tpp_clearElement("pepxml_hits_table",false);
- var fields1 = [ "rt","ppm" ];
+ var fields1 = [ "ppm" ];
var fields4 = [ "mz","diff","probability" ];
var fields = [ "rt","scan","mz","diff","ppm","charge","modified","probability" ];
var tr = document.createElement("tr");
@@ -175,7 +175,11 @@
td.className = 'value';
if (field == 'charge')
td.append("+");
- if (fields1.includes(field))
+ if (field == 'rt') {
+ td.append((Number(hit[field])/60).toFixed(3));
+ td.title = hit[field]+" seconds";
+ }
+ else if (fields1.includes(field))
td.append(Number(hit[field]).toFixed(1));
else if (fields4.includes(field))
td.append(Number(hit[field]).toFixed(4));
@@ -250,8 +254,12 @@
var url_params = "FILE="+mzfile;
for (let param of _ParamsNumeric) {
var val = Number(document.getElementById("new_"+param).value.trim());
- if (val && typeof val === 'number')
- url_params += "&"+param+"="+val;
+ if (val && typeof val === 'number') {
+ if (param.endsWith('_RT'))
+ url_params += "&"+param+"="+val*60;
+ else
+ url_params += "&"+param+"="+val;
+ }
else
val = '';
@@ -332,7 +340,7 @@
pspan.append(span);
span = document.createElement("li");
- span.innerHTML = "<strong>Radius</strong> of each PPM circle is proportional to m/z difference <i>(max="+max_ppm+"ppm)</i>";
+ span.innerHTML = "<strong>Radius</strong> of each PPM circle is proportional to m/z difference (max=<i class='tpporange'>"+max_ppm+"ppm</i>)";
pspan.append(span);
}
@@ -374,7 +382,7 @@
function plotXIC(mzfile,data) {
var mzval = document.getElementById("new_MZ").value.trim();
var subt = mzval==0 ? "Total Ion Current" : "Ion Current @ m/z = "+mzval;
- var chart = new_chart(mzfile, subt, 'Time (seconds)');
+ var chart = new_chart(mzfile, subt, 'Time (minutes)');
var dataset = {};
dataset['label'] = "Intensity";
@@ -394,8 +402,8 @@
}
if (was_zero)
- dataset['data'].push({'x':point['time'], 'y':0});
- dataset['data'].push({'x':point['time'], 'y':point['intensity']});
+ dataset['data'].push({'x':point['time']/60, 'y':0});
+ dataset['data'].push({'x':point['time']/60, 'y':point['intensity']});
if (point['ppm'] && Math.abs(point['ppm']) > 0) {
var ppm = Math.abs(point['ppm']);
@@ -403,7 +411,7 @@
max_ppm = ppm;
}
- prev_rt = point['time'];
+ prev_rt = point['time']/60;
was_zero = false;
}
chart['data']['datasets'] = [dataset];
@@ -420,7 +428,7 @@
if (point['ppm'] && Math.abs(point['ppm']) > 0) {
var ppm = Math.abs(point['ppm']);
var radius = 2+(25*ppm/max_ppm);
- ppmdataset['data'].push({'x':point['time'], 'y':point['intensity'], 'r':radius, 'ppm':point['ppm']});
+ ppmdataset['data'].push({'x':point['time']/60, 'y':point['intensity'], 'r':radius, 'ppm':point['ppm']});
}
}
chart['data']['datasets'].push(ppmdataset);
@@ -437,8 +445,8 @@
hitdataset['borderWidth'] = 4;
hitdataset['yAxisID'] = 'yabs';
hitdataset['data'] = [];
- hitdataset['data'].push({'x':_hit_data["RT"], 'y':0});
- hitdataset['data'].push({'x':_hit_data["RT"], 'y':1});
+ hitdataset['data'].push({'x':_hit_data["RT"]/60, 'y':0});
+ hitdataset['data'].push({'x':_hit_data["RT"]/60, 'y':1});
chart['data']['datasets'].push(hitdataset);
chart['options']['plugins']['legend']['display'] = true;
had_hit = true;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <en...@us...> - 2025-04-29 23:39:18
|
Revision: 9468
http://sourceforge.net/p/sashimi/code/9468
Author: eng_jk
Date: 2025-04-29 23:39:01 +0000 (Tue, 29 Apr 2025)
Log Message:
-----------
Add logic when finding correpsonding MS1 scan if scanHeader.precursorScanNum==0.
Previous code would fail as it would never find a scan number that matches the
scanHeader.precursorScanNum. It would hit the MAX_SCANS_TO_FIND_MS1_SIGNAL scan
range limit and complain the scan is not a valid precursor scan. The update now
handles scanHeader.precursorScanNum==0 by returning the first precursor scan
prior to the identification which is a better compromise than showing no
precursor scan. And I got rid of the MAX_SCANS_TO_FIND_MS1_SIGNAL range.
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/src/Visualization/Comet/plot-msms/plot-msms-js.cpp
Modified: trunk/trans_proteomic_pipeline/src/Visualization/Comet/plot-msms/plot-msms-js.cpp
===================================================================
--- trunk/trans_proteomic_pipeline/src/Visualization/Comet/plot-msms/plot-msms-js.cpp 2025-04-10 17:19:01 UTC (rev 9467)
+++ trunk/trans_proteomic_pipeline/src/Visualization/Comet/plot-msms/plot-msms-js.cpp 2025-04-29 23:39:01 UTC (rev 9468)
@@ -31,7 +31,6 @@
#include "Search/SpectraST/SpectraSTLibEntry.hpp"
#define PROTON_MASS 1.00727646688
-#define MAX_SCANS_TO_FIND_MS1_SIGNAL 500
#define MZ_RANGE_MAX 2000.0 // for setting x-axis scale, ignored if any data are above this value
#define TITLE "Lorikeet Spectrum Viewer // TPP"
@@ -1525,21 +1524,37 @@
iScanNum = pEnvironment.iMS1Scan;
readHeader(fp_, index_[iScanNum], &scanHeaderMS);
}
- else {
- // loop back through scans to find MS1 scan
- iScanNum--;
- while (i<MAX_SCANS_TO_FIND_MS1_SIGNAL)
- {
- readHeader(fp_, index_[iScanNum], &scanHeaderMS);
- if (iScanNum < 1 || ( scanHeaderMS.msLevel == (scanHeader.msLevel - 1) && scanHeaderMS.acquisitionNum == scanHeader.precursorScanNum))
- {
- break;
- }
- iScanNum--;
- i++;
- }
- }
+ else {
+ // loop back through scans to find MS1 scan
+ iScanNum--;
+ while (1)
+ {
+ readHeader(fp_, index_[iScanNum], &scanHeaderMS);
+
+ if (scanHeader.precursorScanNum != 0)
+ {
+ // This first if() below assumes scanHeader.precursorScanNum is set.
+ // Which means there's no point in also checking the msLevel
+ // here as it will be checked below at next if statement.
+ // Removing that check allows a break out of the while() loop
+ // when we get to the precursorScanNum.
+ if (iScanNum < 1 || scanHeaderMS.acquisitionNum == scanHeader.precursorScanNum)
+ {
+ break;
+ }
+ }
+ else if (iScanNum < 1 || scanHeaderMS.msLevel == (scanHeader.msLevel - 1))
+ {
+ // I see exmaples where scanHeader.precursorScanNum is set to 0.
+ // For such cases, break on the first msLevel-1 scan.
+ break;
+ }
+
+ iScanNum--;
+ }
+ }
+
if (scanHeaderMS.msLevel == (scanHeader.msLevel - 1))
{
RAMPREAL *pPeaks;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2025-04-10 17:19:18
|
Revision: 9467
http://sourceforge.net/p/sashimi/code/9467
Author: real_procopio
Date: 2025-04-10 17:19:01 +0000 (Thu, 10 Apr 2025)
Log Message:
-----------
Tagging 7.3.0 release
Added Paths:
-----------
tags/release_7-3-0/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2025-04-10 07:46:21
|
Revision: 9466
http://sourceforge.net/p/sashimi/code/9466
Author: real_procopio
Date: 2025-04-10 07:46:04 +0000 (Thu, 10 Apr 2025)
Log Message:
-----------
[qsir] Deal with Windoze paths...
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/perl/cgi-bin/qsir.pl
Modified: trunk/trans_proteomic_pipeline/perl/cgi-bin/qsir.pl
===================================================================
--- trunk/trans_proteomic_pipeline/perl/cgi-bin/qsir.pl 2025-04-10 01:28:23 UTC (rev 9465)
+++ trunk/trans_proteomic_pipeline/perl/cgi-bin/qsir.pl 2025-04-10 07:46:04 UTC (rev 9466)
@@ -36,6 +36,7 @@
# $CGI::LIST_CONTEXT_WARN = 0; # turn off this for now
my $cgi_query = CGI->new;
+my $in_windows = ($^O eq 'MSWin32');
my %options = ();
@@ -142,6 +143,11 @@
if ($element eq 'msms_run_summary') {
my $msrun = $atts{'base_name'}.$atts{'raw_data'};
+ if ($in_windows) {
+ $msrun = lc($msrun);
+ $msrun =~ s|\\|/|g;
+ }
+
if ($options{F} eq $msrun) {
$foundmsrun = 1;
}
@@ -261,6 +267,11 @@
@files = @ARGV;
}
+ if ($in_windows) {
+ $options{F} =lc($options{F});
+ $options{F} =~ s|\\|/|g;
+ }
+
&printOpts() if $options{d};
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2025-04-10 01:28:40
|
Revision: 9465
http://sourceforge.net/p/sashimi/code/9465
Author: real_procopio
Date: 2025-04-10 01:28:23 +0000 (Thu, 10 Apr 2025)
Log Message:
-----------
[ProtXMLViewer] Make Windows path comparisons case-insensitive; add [ + ] to Legend link for clarity. [Quetzal] Point to main Quetzal for links from L-keet
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/html/js/coatl.js
trunk/trans_proteomic_pipeline/perl/cgi-bin/ProtXMLViewer.pl
Modified: trunk/trans_proteomic_pipeline/html/js/coatl.js
===================================================================
--- trunk/trans_proteomic_pipeline/html/js/coatl.js 2025-04-09 07:38:34 UTC (rev 9464)
+++ trunk/trans_proteomic_pipeline/html/js/coatl.js 2025-04-10 01:28:23 UTC (rev 9465)
@@ -9,7 +9,7 @@
//_Quetzal['windowName'] = 'Quetzal!';
_Quetzal['windowName'] = '';
_Quetzal['spectra'] = [];
- _Quetzal['url'] = window.location.origin + '_QUETZAL_URL_';
+ _Quetzal['url'] = 'https://proteomecentral.proteomexchange.org/quetzal/';
if (add_listener) {
window.addEventListener("message", (e) => {
Modified: trunk/trans_proteomic_pipeline/perl/cgi-bin/ProtXMLViewer.pl
===================================================================
--- trunk/trans_proteomic_pipeline/perl/cgi-bin/ProtXMLViewer.pl 2025-04-09 07:38:34 UTC (rev 9464)
+++ trunk/trans_proteomic_pipeline/perl/cgi-bin/ProtXMLViewer.pl 2025-04-10 01:28:23 UTC (rev 9465)
@@ -539,7 +539,7 @@
# show legend
print "<br/><br/><span class='annt'>";
- print "<a style='margin-left:15px;' title='hide/show legend' href=\"javascript:toggleViz('boxpepslegend');\"> Legend </a><br/>";
+ print "<a style='margin-left:15px;' title='hide/show legend' href=\"javascript:toggleViz('boxpepslegend');\"> Legend [ + ] </a><br/>";
print "<span id='boxpepslegend' style='display:none;'>";
print "For each <b>protein</b> entry:";
print "<li><b>Bar width</b> corresponds to peptide <b>length</b></li>";
@@ -948,9 +948,9 @@
my $data_dir = tpplib_perl::getDataPath();
my $data_url = tpplib_perl::getDataUrl();
- if ($^O eq 'MSWin32') { # work with C:/ and c:/ etc...
- $data_dir = lcfirst($data_dir);
- $tsvfile = lcfirst($tsvfile);
+ if ($^O eq 'MSWin32') { # work with paste-eating Windows FS
+ $data_dir = lc($data_dir);
+ $tsvfile = lc($tsvfile);
}
$tsvfile =~ s/$data_dir/$data_url/;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2025-04-09 07:38:51
|
Revision: 9464
http://sourceforge.net/p/sashimi/code/9464
Author: real_procopio
Date: 2025-04-09 07:38:34 +0000 (Wed, 09 Apr 2025)
Log Message:
-----------
[Windows installer] Skip check for old ARCH type; minor text change. [Landing Page] Update link to Release Notes
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/html/index.html
trunk/trans_proteomic_pipeline/installer_win32/innodependencyinstaller/scripts/products.iss
trunk/trans_proteomic_pipeline/installer_win32/tpp.iss
Modified: trunk/trans_proteomic_pipeline/html/index.html
===================================================================
--- trunk/trans_proteomic_pipeline/html/index.html 2025-04-09 07:29:39 UTC (rev 9463)
+++ trunk/trans_proteomic_pipeline/html/index.html 2025-04-09 07:38:34 UTC (rev 9464)
@@ -40,7 +40,7 @@
<h1 class="section">Resources</h1>
<p>Externally available resources for TPP</p>
<a class="tppinfobox c2" target="tppext" href="http://www.tppms.org"><h2>tppms.org</h2>Main landing page for TPP, with info and links</a>
-<a class="tppinfobox c2" target="tppext" href="http://tools.proteomecenter.org/wiki/index.php?title=TPP:7.2.0_Release_Notes"><h2>Release Notes</h2>List of changes and updates for this TPP version</a>
+<a class="tppinfobox c2" target="tppext" href="http://tools.proteomecenter.org/wiki/index.php?title=TPP:7.3.0_Release_Notes"><h2>Release Notes</h2>List of changes and updates for this TPP version</a>
<a class="tppinfobox c2" target="tppext" href="http://groups.google.com/group/spctools-discuss"><h2>spctools-discuss</h2>Main discussion group for TPP tools</a>
<a class="tppinfobox c2" target="tppext" href="http://groups.google.com/group/spctools-announce"><h2>spctools-announce</h2>Group for general TPP announcements</a>
Modified: trunk/trans_proteomic_pipeline/installer_win32/innodependencyinstaller/scripts/products.iss
===================================================================
--- trunk/trans_proteomic_pipeline/installer_win32/innodependencyinstaller/scripts/products.iss 2025-04-09 07:29:39 UTC (rev 9463)
+++ trunk/trans_proteomic_pipeline/installer_win32/innodependencyinstaller/scripts/products.iss 2025-04-09 07:38:34 UTC (rev 9464)
@@ -241,7 +241,7 @@
function IsIA64: boolean;
begin
- Result := (not isForcedX86) and Is64BitInstallMode and (ProcessorArchitecture = paIA64);
+ Result := false;
end;
function GetString(x86, x64, ia64: String): String;
Modified: trunk/trans_proteomic_pipeline/installer_win32/tpp.iss
===================================================================
--- trunk/trans_proteomic_pipeline/installer_win32/tpp.iss 2025-04-09 07:29:39 UTC (rev 9463)
+++ trunk/trans_proteomic_pipeline/installer_win32/tpp.iss 2025-04-09 07:38:34 UTC (rev 9464)
@@ -223,7 +223,7 @@
LightMsgPage := CreateOutputMsgPage(wpWelcome,
'TPP Installation Help', 'Getting installation assistance',
'Welcome to the TPP installation process. If you need assistance with ' +
- 'the installation or the TPP in general, please refer to our support and ' +
+ 'the installation or TPP in general, please refer to our support and ' +
'discussion newsgroup at:'#13#13 +
'http://groups.google.com/group/spctools-discuss'#13#13 +
'and the TPP Wiki at:'#13#13 +
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2025-04-09 07:29:57
|
Revision: 9463
http://sourceforge.net/p/sashimi/code/9463
Author: real_procopio
Date: 2025-04-09 07:29:39 +0000 (Wed, 09 Apr 2025)
Log Message:
-----------
[Comet] Update to V.2025.01.1
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/extern/Makefile
Added Paths:
-----------
trunk/trans_proteomic_pipeline/extern/comet_source_2025011.zip
Removed Paths:
-------------
trunk/trans_proteomic_pipeline/extern/comet_source_2024020.zip
Modified: trunk/trans_proteomic_pipeline/extern/Makefile
===================================================================
--- trunk/trans_proteomic_pipeline/extern/Makefile 2025-04-09 07:27:47 UTC (rev 9462)
+++ trunk/trans_proteomic_pipeline/extern/Makefile 2025-04-09 07:29:39 UTC (rev 9463)
@@ -414,7 +414,7 @@
#
# http://comet-ms.sourceforge.net/
#
-COMET_VER := 2024020
+COMET_VER := 2025011
COMET_ZIP := $(TPP_EXT)/comet_source_$(COMET_VER).zip
COMET_SRC := $(BUILD_SRC)/comet_source_$(COMET_VER)
.PHONY: comet comet-source comet-clean
Deleted: trunk/trans_proteomic_pipeline/extern/comet_source_2024020.zip
===================================================================
(Binary files differ)
Added: trunk/trans_proteomic_pipeline/extern/comet_source_2025011.zip
===================================================================
(Binary files differ)
Index: trunk/trans_proteomic_pipeline/extern/comet_source_2025011.zip
===================================================================
--- trunk/trans_proteomic_pipeline/extern/comet_source_2025011.zip 2025-04-09 07:27:47 UTC (rev 9462)
+++ trunk/trans_proteomic_pipeline/extern/comet_source_2025011.zip 2025-04-09 07:29:39 UTC (rev 9463)
Property changes on: trunk/trans_proteomic_pipeline/extern/comet_source_2025011.zip
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2025-04-09 07:28:05
|
Revision: 9462
http://sourceforge.net/p/sashimi/code/9462
Author: real_procopio
Date: 2025-04-09 07:27:47 +0000 (Wed, 09 Apr 2025)
Log Message:
-----------
[PWiz] Revert VERSION string for successful compilation in Windows...
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/extern/ProteoWizard/pwiz-src/VERSION
Modified: trunk/trans_proteomic_pipeline/extern/ProteoWizard/pwiz-src/VERSION
===================================================================
--- trunk/trans_proteomic_pipeline/extern/ProteoWizard/pwiz-src/VERSION 2025-04-08 22:38:18 UTC (rev 9461)
+++ trunk/trans_proteomic_pipeline/extern/ProteoWizard/pwiz-src/VERSION 2025-04-09 07:27:47 UTC (rev 9462)
@@ -1 +1 @@
-3.0.24305
\ No newline at end of file
+#define PWIZ_VERSION "3 0 24305 20f5d8c"
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2025-04-08 22:38:37
|
Revision: 9461
http://sourceforge.net/p/sashimi/code/9461
Author: real_procopio
Date: 2025-04-08 22:38:18 +0000 (Tue, 08 Apr 2025)
Log Message:
-----------
[TPP files] Replace backslashes with forward ones. [Petunia] Point to updated Python in regis
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/perl/cgi-bin/tpp_files.pl
trunk/trans_proteomic_pipeline/perl/tpp_gui/tpp_gui.pl
Modified: trunk/trans_proteomic_pipeline/perl/cgi-bin/tpp_files.pl
===================================================================
--- trunk/trans_proteomic_pipeline/perl/cgi-bin/tpp_files.pl 2025-04-08 20:26:13 UTC (rev 9460)
+++ trunk/trans_proteomic_pipeline/perl/cgi-bin/tpp_files.pl 2025-04-08 22:38:18 UTC (rev 9461)
@@ -40,6 +40,8 @@
my $in_windows = ($^O eq 'MSWin32');
my $datadir = $cgi_query->param('datadir') || tpplib_perl::getDataPath();
+$datadir =~ s|\\|/|g;
+
my $action = $cgi_query->param('action') || 'dirlist'; #default
my $filter = $cgi_query->param('filter') || '';
my $sortby = $cgi_query->param('sort') || 'fname_asc';
Modified: trunk/trans_proteomic_pipeline/perl/tpp_gui/tpp_gui.pl
===================================================================
--- trunk/trans_proteomic_pipeline/perl/tpp_gui/tpp_gui.pl 2025-04-08 20:26:13 UTC (rev 9460)
+++ trunk/trans_proteomic_pipeline/perl/tpp_gui/tpp_gui.pl 2025-04-08 22:38:18 UTC (rev 9461)
@@ -4501,7 +4501,7 @@
# export LC_ALL=C
# tdf2mzml.py <options>
my $ld_lib_path = dirname($command{tdf2mzml});
- my $py_lib_path = readconfig('pythonpath', "/proteomics/sw/python/Ubuntu20");
+ my $py_lib_path = readconfig('pythonpath', "/proteomics/sw/python/Ubuntu24");
my @commands;
for my $file (@file_list) {
my $out_file = $file;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2025-04-08 20:26:32
|
Revision: 9460
http://sourceforge.net/p/sashimi/code/9460
Author: real_procopio
Date: 2025-04-08 20:26:13 +0000 (Tue, 08 Apr 2025)
Log Message:
-----------
[version] The winds of change...
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/VERSION.mk
Modified: trunk/trans_proteomic_pipeline/VERSION.mk
===================================================================
--- trunk/trans_proteomic_pipeline/VERSION.mk 2025-04-08 20:16:49 UTC (rev 9459)
+++ trunk/trans_proteomic_pipeline/VERSION.mk 2025-04-08 20:26:13 UTC (rev 9460)
@@ -6,6 +6,6 @@
# use -a<N> for alpha, and -b<N> for beta builds, where <N> is incremented for
# each new build.
-TPP_VERSION := 7.2.1dev
+TPP_VERSION := 7.3.0
# What's the name of this TPP release
-TPP_RELEASE := Bombogenesis
+TPP_RELEASE := Trade Wind
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2025-04-08 20:17:07
|
Revision: 9459
http://sourceforge.net/p/sashimi/code/9459
Author: real_procopio
Date: 2025-04-08 20:16:49 +0000 (Tue, 08 Apr 2025)
Log Message:
-----------
[Cuva/ShowXIC] Configuration tweaks for Windows
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/html/js/cuvalibre.js
trunk/trans_proteomic_pipeline/html/js/showxic.js
trunk/trans_proteomic_pipeline/installer_win32/tpp.iss
Modified: trunk/trans_proteomic_pipeline/html/js/cuvalibre.js
===================================================================
--- trunk/trans_proteomic_pipeline/html/js/cuvalibre.js 2025-04-08 20:11:23 UTC (rev 9458)
+++ trunk/trans_proteomic_pipeline/html/js/cuvalibre.js 2025-04-08 20:16:49 UTC (rev 9459)
@@ -69,7 +69,7 @@
// /////
document.body.style.cursor = "default";
- window.history.replaceState(null, null, "//"+ window.location.hostname + window.location.pathname + '?file='+file);
+ window.history.replaceState(null, null, "//"+ window.location.host + window.location.pathname + '?file='+file);
var chart = {};
chart['type'] = 'scatter';
Modified: trunk/trans_proteomic_pipeline/html/js/showxic.js
===================================================================
--- trunk/trans_proteomic_pipeline/html/js/showxic.js 2025-04-08 20:11:23 UTC (rev 9458)
+++ trunk/trans_proteomic_pipeline/html/js/showxic.js 2025-04-08 20:16:49 UTC (rev 9459)
@@ -272,7 +272,7 @@
url_params += "&"+param+"="+_hit_data[param];
}
document.title = "XIC: "+ mzfile.substring(mzfile.lastIndexOf('/') + 1);
- history.pushState({"mzfile":mzfile, "data":data, "hit":_hit_data}, document.title, "//"+ window.location.hostname + window.location.pathname + '?'+url_params);
+ history.pushState({"mzfile":mzfile, "data":data, "hit":_hit_data}, document.title, "//"+ window.location.host + window.location.pathname + '?'+url_params);
render_data(mzfile,data);
})
.catch(error => {
Modified: trunk/trans_proteomic_pipeline/installer_win32/tpp.iss
===================================================================
--- trunk/trans_proteomic_pipeline/installer_win32/tpp.iss 2025-04-08 20:11:23 UTC (rev 9458)
+++ trunk/trans_proteomic_pipeline/installer_win32/tpp.iss 2025-04-08 20:16:49 UTC (rev 9459)
@@ -577,6 +577,16 @@
Seq2MSPage.Values[2],Seq2MSPage.Values[3],
DataDirPage.Values[0] + '\params'
);
+ UpdateConf( ExpandConstant('{app}') + '\html\js\cuvalibre.js',
+ ExpandConstant('{app}'),
+ DataDirPage.Values[0],
+ ExpandConstant('{#TPP_BASEURL}'),
+ ExpandConstant('{#TPP_DATAURL}'),
+ TPPPortPage.Values[0],
+ Seq2MSPage.Values[0],Seq2MSPage.Values[1],
+ Seq2MSPage.Values[2],Seq2MSPage.Values[3],
+ DataDirPage.Values[0] + '\params'
+ );
UpdateConf( ExpandConstant('{app}') + '\html\js\plotpp.js',
ExpandConstant('{app}'),
DataDirPage.Values[0],
@@ -607,6 +617,16 @@
Seq2MSPage.Values[2],Seq2MSPage.Values[3],
DataDirPage.Values[0] + '\params'
);
+ UpdateConf( ExpandConstant('{app}') + '\html\js\showxic.js',
+ ExpandConstant('{app}'),
+ DataDirPage.Values[0],
+ ExpandConstant('{#TPP_BASEURL}'),
+ ExpandConstant('{#TPP_DATAURL}'),
+ TPPPortPage.Values[0],
+ Seq2MSPage.Values[0],Seq2MSPage.Values[1],
+ Seq2MSPage.Values[2],Seq2MSPage.Values[3],
+ DataDirPage.Values[0] + '\params'
+ );
UpdateConf( ExpandConstant('{app}') + '\html\js\tpp.js',
ExpandConstant('{app}'),
DataDirPage.Values[0],
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rea...@us...> - 2025-04-08 20:11:40
|
Revision: 9458
http://sourceforge.net/p/sashimi/code/9458
Author: real_procopio
Date: 2025-04-08 20:11:23 +0000 (Tue, 08 Apr 2025)
Log Message:
-----------
[Quetzal] Remove outdated code and related config; will re-add newer version at a later date
Modified Paths:
--------------
trunk/trans_proteomic_pipeline/conf/httpd-2.4-tpp.conf
trunk/trans_proteomic_pipeline/conf/httpd-tpp.conf
trunk/trans_proteomic_pipeline/html/Makefile
Removed Paths:
-------------
trunk/trans_proteomic_pipeline/html/quetzal/
Modified: trunk/trans_proteomic_pipeline/conf/httpd-2.4-tpp.conf
===================================================================
--- trunk/trans_proteomic_pipeline/conf/httpd-2.4-tpp.conf 2025-04-02 00:05:29 UTC (rev 9457)
+++ trunk/trans_proteomic_pipeline/conf/httpd-2.4-tpp.conf 2025-04-08 20:11:23 UTC (rev 9458)
@@ -111,11 +111,6 @@
Options Includes MultiViews
</Directory>
-# Redirect TPP :: QUETZAL
-Alias /_TPP_BASEURL_/quetzal "_INSTALL_DIR_/html/quetzal"
-<Directory "_INSTALL_DIR_/html/quetzal">
- Options Includes MultiViews
-</Directory>
# Support legacy URLs that may appear in TPP outputted files
Alias /ISB/schema /_TPP_BASEURL_/schema
Modified: trunk/trans_proteomic_pipeline/conf/httpd-tpp.conf
===================================================================
--- trunk/trans_proteomic_pipeline/conf/httpd-tpp.conf 2025-04-02 00:05:29 UTC (rev 9457)
+++ trunk/trans_proteomic_pipeline/conf/httpd-tpp.conf 2025-04-08 20:11:23 UTC (rev 9458)
@@ -109,11 +109,6 @@
Options Includes MultiViews
</Directory>
-# Redirect TPP :: QUETZAL
-Alias /_TPP_BASEURL_/quetzal "_INSTALL_DIR_/html/quetzal"
-<Directory "_INSTALL_DIR_/html/quetzal">
- Options Includes MultiViews
-</Directory>
# Support legacy URLs that may appear in TPP outputted files
Alias /ISB/schema /_TPP_BASEURL_/schema
Modified: trunk/trans_proteomic_pipeline/html/Makefile
===================================================================
--- trunk/trans_proteomic_pipeline/html/Makefile 2025-04-02 00:05:29 UTC (rev 9457)
+++ trunk/trans_proteomic_pipeline/html/Makefile 2025-04-08 20:11:23 UTC (rev 9458)
@@ -31,26 +31,8 @@
# Include the TPP configuration and default rules
include $(or $(SRC_DIR),$(abspath ..))/common.mk
-INSTALL_QUETZAL := $(INSTALL_WWW)/quetzal
-
-BUILD_QUETZAL := $(BUILD_WWW)/quetzal
-
WWW_DIR := $(SRC_DIR)/html
-QZL_DIR := $(WWW_DIR)/quetzal
-
-QZL_TEXT := $(wildcard \
- $(QZL_DIR)/js/*.js \
- $(QZL_DIR)/js/chartJS/* \
- $(QZL_DIR)/css/*.css \
- $(QZL_DIR)/*.html \
- $(QZL_DIR)/*.json \
- )
-
-QZL_IMAGES := $(wildcard \
- $(QZL_DIR)/images/*.png \
- )
-
WWW_TEXT := $(wildcard \
$(WWW_DIR)/*.html \
$(WWW_DIR)/js/*.js \
@@ -69,10 +51,7 @@
WWW_TXT := $(subst $(WWW_DIR),$(BUILD_WWW),$(WWW_TEXT))
WWW_IMG := $(subst $(WWW_DIR),$(BUILD_WWW),$(WWW_IMAGES))
-QZL_TXT := $(subst $(QZL_DIR),$(BUILD_QUETZAL),$(QZL_TEXT))
-QZL_IMG := $(subst $(QZL_DIR),$(BUILD_QUETZAL),$(QZL_IMAGES))
-
# -- HELP ----------------------------------------------------------------------
#
help ::
@@ -87,8 +66,6 @@
@echo "Additional information for html:"
@echo " WWW_TXT = $(WWW_TXT)"
@echo " WWW_IMG = $(WWW_IMG)"
- @echo " QZL_TXT = $(QZL_TXT)"
- @echo " QZL_IMG = $(QZL_IMG)"
@echo
@@ -98,21 +75,15 @@
# Top level
.PHONY: html
all : html
-html : $(WWW_TXT) $(WWW_IMG) $(QZL_TXT) $(QZL_IMG)
+html : $(WWW_TXT) $(WWW_IMG)
# Which web server templates...
ifeq ($(SYSTEM),mingw32)
-QUETZAL_URL := /tpp/quetzal/
# ...windows installer will fill in TPP_BASEURL and TPP_DATADIR
$(WWW_TXT) : $(BUILD_WWW)/% : $(WWW_DIR)/% | $(MKDIR)
cp $< $@
sed $(SED_OPT) 's#_TPP_BUILDID_#$(TPP_BUILDID)#g' $@
- sed $(SED_OPT) 's#_QUETZAL_URL_#$(QUETZAL_URL)#g' $@
-$(QZL_TXT) : $(BUILD_QUETZAL)/% : $(QZL_DIR)/% | $(MKDIR)
- cp $< $@
- sed $(SED_OPT) 's#_TPP_BUILDID_#$(TPP_BUILDID)#g' $@
-
else
# ...replace template values with TPP config
$(WWW_TXT) : $(BUILD_WWW)/% : $(WWW_DIR)/% | $(MKDIR)
@@ -122,15 +93,7 @@
sed $(SED_OPT) 's#_TPP_DATADIR_#$(TPP_DATADIR)#g' $@
sed $(SED_OPT) 's#_SEQ2MS_SOURCE_URL_#$(SEQ2MS_SOURCE_URL)#g' $@
sed $(SED_OPT) 's#_SEQ2MS_DEFAULT_MODEL_#$(SEQ2MS_DEFAULT_MODEL)#g' $@
- sed $(SED_OPT) 's#_QUETZAL_URL_#$(QUETZAL_URL)#g' $@
-
-$(QZL_TXT) : $(BUILD_QUETZAL)/% : $(QZL_DIR)/% | $(MKDIR)
- cp $< $@
- sed $(SED_OPT) 's#_TPP_BUILDID_#$(TPP_BUILDID)#g' $@
- sed $(SED_OPT) 's#_TPP_BASEURL_#$(TPP_BASEURL)#g' $@
- sed $(SED_OPT) 's#_TPP_DATADIR_#$(TPP_DATADIR)#g' $@
-
endif
@@ -137,21 +100,15 @@
$(WWW_IMG) : $(BUILD_WWW)/% : $(WWW_DIR)/% | $(MKDIR)
cp $< $@
-$(QZL_IMG) : $(BUILD_QUETZAL)/% : $(QZL_DIR)/% | $(MKDIR)
- cp $< $@
-
# -- INSTALL -------------------------------------------------------------------
#
install :: $(subst $(BUILD_WWW),$(INSTALL_WWW),$(WWW_TXT))
install :: $(subst $(BUILD_WWW),$(INSTALL_WWW),$(WWW_IMG))
-install :: $(subst $(BUILD_QUETZAL),$(INSTALL_QUETZAL),$(QZL_TXT))
-install :: $(subst $(BUILD_QUETZAL),$(INSTALL_QUETZAL),$(QZL_IMG))
-
# -- CLEAN --------------------------------------------------------------------
#
.PHONY: html-clean
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|