[med-svn] [Git][med-team/ncbi-entrez-direct][master] 4 commits: New upstream version 10.9.20190219+ds
Aaron M. Ucko
gitlab at salsa.debian.org
Wed Feb 27 02:30:51 GMT 2019
Aaron M. Ucko pushed to branch master at Debian Med / ncbi-entrez-direct
Commits:
857290e0 by Aaron M. Ucko at 2019-02-27T02:22:47Z
New upstream version 10.9.20190219+ds
- - - - -
1e536d30 by Aaron M. Ucko at 2019-02-27T02:23:19Z
Merge tag 'upstream/10.9.20190219+ds'
Upstream version 10.9.20190219(+ds).
- - - - -
8f0f08e7 by Aaron M. Ucko at 2019-02-27T02:26:29Z
debian/man/xtract.1: Update for 10.9.20190219(+ds): add -is-within.
- - - - -
e60cd640 by Aaron M. Ucko at 2019-02-27T02:29:30Z
Finalize ncbi-entrez-direct 10.9.20190219+ds-1 for unstable.
- - - - -
5 changed files:
- debian/changelog
- debian/man/xtract.1
- debian/patches/debian-changes
- nquire
- xtract.go
Changes:
=====================================
debian/changelog
=====================================
@@ -1,3 +1,10 @@
+ncbi-entrez-direct (10.9.20190219+ds-1) unstable; urgency=medium
+
+ * New upstream point release.
+ * debian/man/xtract.1: Update accordingly (adding -is-within).
+
+ -- Aaron M. Ucko <ucko at debian.org> Tue, 26 Feb 2019 21:28:41 -0500
+
ncbi-entrez-direct (10.9.20190205+ds-1) unstable; urgency=medium
* New upstream release.
=====================================
debian/man/xtract.1
=====================================
@@ -1,4 +1,4 @@
-.TH XTRACT 1 2019-02-06 NCBI "NCBI Entrez Direct User's Manual"
+.TH XTRACT 1 2019-02-26 NCBI "NCBI Entrez Direct User's Manual"
.SH NAME
xtract \- convert XML into a table of data values
.SH SYNOPSIS
@@ -25,6 +25,7 @@ xtract \- convert XML into a table of data values
[\|\fB\-select\fP\ \fIcondition\fP\|]
[\|\fB\-equals\fP\ \fIstr\fP\|]
[\|\fB\-contains\fP\ \fIstr\fP\|]
+[\|\fB\-is-within\fP\ \fIstr\fP\|]
[\|\fB\-starts\-with\fP\ \fIstr\fP\|]
[\|\fB\-ends\-with\fP\ \fIstr\fP\|]
[\|\fB\-is\-not\fP\ \fIstr\fP\|]
@@ -191,6 +192,9 @@ String must match exactly.
\fB\-contains\fP\ \fIstr\fP
Substring must be present.
.TP
+\fB\-is-within\fP\ \fIstr\fP
+String must be present.
+.TP
\fB\-starts\-with\fP\ \fIstr\fP
Substring must be at beginning.
.TP
=====================================
debian/patches/debian-changes
=====================================
@@ -5,17 +5,10 @@ Description: <short summary of the patch>
information below has been extracted from the changelog. Adjust it or drop
it.
.
- ncbi-entrez-direct (10.9.20190205+ds-1) unstable; urgency=medium
+ ncbi-entrez-direct (10.9.20190219+ds-1) unstable; urgency=medium
.
- * New upstream release.
- * debian/man/{archive-pubmed,download-pubmed,edirect,efilter,
- entrez-phrase-search,esearch,espell,fetch-pubmed,index-pubmed,
- phrase-search,rchive,stream-pubmed,transmute,xtract}.1: Update
- accordingly.
- * debian/man/{local-phrase-search,pm-{clean,current,erase,log,repack,uids,
- verify}}.1: Retire per the corresponding scripts.
- * debian/rules: Stop installing retired scripts local-phrase-search and
- (implicitly) pm-{clean,current,erase,log,repack,uids,verify}.
+ * New upstream point release.
+ * debian/man/xtract.1: Update accordingly (adding -is-within).
Author: Aaron M. Ucko <ucko at debian.org>
---
@@ -29,10 +22,10 @@ Bug-Debian: https://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Forwarded: <no|not-needed|url proving that it has been forwarded>
Reviewed-By: <name and email of someone who approved the patch>
-Last-Update: 2019-02-07
+Last-Update: 2019-02-27
--- /dev/null
-+++ ncbi-entrez-direct-10.9.20190205+ds/.gitignore
++++ ncbi-entrez-direct-10.9.20190219+ds/.gitignore
@@ -0,0 +1,3 @@
+.pc
+bin
=====================================
nquire
=====================================
@@ -84,6 +84,7 @@ sub clearflags {
$debug = false;
$http = "";
$j2x = false;
+ $x2j = false;
$output = "";
}
@@ -492,12 +493,12 @@ BioThings Queries
EDirect Expansion
ExtractIDs() {
- xtract -pattern BIO_THINGS -block Id -tab "\\n" -element "Id"
+ xtract -pattern BIO_THINGS -block Id -tab "\\n" -element Id
}
WrapIDs() {
- xtract -wrp BIO_THINGS -pattern opt -wrp "Type" -lbl "\$1" \\
- -wrp "Count" -num "\$2" -block "\$2" -wrp "Id" -element "\$3" |
+ xtract -wrp BIO_THINGS -pattern opt -wrp Type -lbl "\$1" \\
+ -wrp Count -num "\$2" -block "\$2" -wrp Id -element "\$3" |
xtract -format
}
@@ -584,6 +585,7 @@ sub nquire {
'-gene' => 'http://mygene.info/v3',
'-variant' => 'http://myvariant.info/v1',
'-chem' => 'http://mychem.info/v1',
+ '-disease' => 'http://mydisease.info/v1',
'-drug' => 'http://c.biothings.io/v1',
'-taxon' => 'http://t.biothings.io/v1',
);
@@ -695,6 +697,19 @@ sub nquire {
}
}
+ # if present, -j2x or -x2j must be next argument (undocumented)
+
+ if ( $i < $max ) {
+ $pat = $args[$i];
+ if ( $pat eq "-j2x" ) {
+ $i++;
+ $j2x = true;
+ } elsif ( $pat eq "-x2j" ) {
+ $i++;
+ $x2j = true;
+ }
+ }
+
# read file of keyword shortcuts for URL expansion
if ( $i < $max ) {
@@ -920,6 +935,16 @@ sub nquire {
binmode(STDOUT, ":utf8");
}
+ if ( $x2j ) {
+ my $xc = new XML::Simple(KeepRoot => 1);
+ my $conv = $xc->XMLin($output);
+ convert_bools($conv);
+ my $jc = JSON::PP->new->ascii->pretty->allow_nonref;
+ my $result = $jc->encode($conv);
+
+ $output = "$result";
+ }
+
print "$output";
}
=====================================
xtract.go
=====================================
@@ -112,6 +112,7 @@ String Constraints
-equals String must match exactly
-contains Substring must be present
+ -is-within String must be present
-starts-with Substring must be at beginning
-ends-with Substring must be at end
-is-not String must not match
@@ -1675,6 +1676,7 @@ const (
OR
EQUALS
CONTAINS
+ ISWITHIN
STARTSWITH
ENDSWITH
ISNOT
@@ -1778,6 +1780,7 @@ var argTypeIs = map[string]ArgumentType{
"-or": CONDITIONAL,
"-equals": CONDITIONAL,
"-contains": CONDITIONAL,
+ "-is-within": CONDITIONAL,
"-starts-with": CONDITIONAL,
"-ends-with": CONDITIONAL,
"-is-not": CONDITIONAL,
@@ -1893,6 +1896,7 @@ var opTypeIs = map[string]OpType{
"-or": OR,
"-equals": EQUALS,
"-contains": CONTAINS,
+ "-is-within": ISWITHIN,
"-starts-with": STARTSWITH,
"-ends-with": ENDSWITH,
"-is-not": ISNOT,
@@ -2586,7 +2590,7 @@ func ParseArguments(cmdargs []string, pttrn string) *Block {
cond = append(cond, op)
parseStep(op, elementColonValue)
status = UNSET
- case EQUALS, CONTAINS, STARTSWITH, ENDSWITH, ISNOT:
+ case EQUALS, CONTAINS, ISWITHIN, STARTSWITH, ENDSWITH, ISNOT:
if op != nil {
if len(str) > 1 && str[0] == '\\' {
// first character may be backslash protecting dash (undocumented)
@@ -4729,7 +4733,7 @@ func ConditionsAreSatisfied(conditions []*Operation, curr *Node, mask string, in
stat := constraint.Type
switch stat {
- case EQUALS, CONTAINS, STARTSWITH, ENDSWITH, ISNOT:
+ case EQUALS, CONTAINS, ISWITHIN, STARTSWITH, ENDSWITH, ISNOT:
// substring test on element values
str = strings.ToUpper(str)
val = strings.ToUpper(val)
@@ -4743,6 +4747,10 @@ func ConditionsAreSatisfied(conditions []*Operation, curr *Node, mask string, in
if strings.Contains(str, val) {
return true
}
+ case ISWITHIN:
+ if strings.Contains(val, str) {
+ return true
+ }
case STARTSWITH:
if strings.HasPrefix(str, val) {
return true
@@ -6039,6 +6047,70 @@ func ProcessINSD(args []string, isPipe, addDash, doIndex bool) []string {
return acc
}
+// BIOTHINGS EXTRACTION COMMAND GENERATOR
+
+// ProcessBiopath generates extraction commands for BioThings resources (undocumented)
+func ProcessBiopath(args []string, isPipe bool) []string {
+
+ // nquire -variant variant "chr6:g.26093141G>A" | xtract -biopath "clinvar.rcv.conditions.identifiers.omim"
+
+ // xtract -pattern opt -division clinvar -group rcv -branch conditions -block identifiers -sep "\n" -tab "\n" -element "omim, at omim"
+
+ var acc []string
+
+ max := len(args)
+ if max < 1 {
+ fmt.Fprintf(os.Stderr, "\nERROR: Insufficient command-line arguments supplied to xtract -biopath\n")
+ os.Exit(1)
+ }
+
+ path := args[0]
+
+ dirs := strings.Split(path, ".")
+ max = len(dirs)
+ if max < 1 {
+ fmt.Fprintf(os.Stderr, "\nERROR: Insufficient command-line arguments supplied to xtract -biopath\n")
+ os.Exit(1)
+ }
+
+ expname := []string{
+ "-division",
+ "-group",
+ "-branch",
+ "-block",
+ "-section",
+ "-subset",
+ "-unit",
+ }
+
+ acc = append(acc, "-pattern", "opt")
+
+ max--
+ if max > 7 {
+ fmt.Fprintf(os.Stderr, "\nERROR: Too many nodes in argument supplied to xtract -biopath\n")
+ os.Exit(1)
+ }
+
+ for i, str := range dirs {
+ if i < max {
+ acc = append(acc, expname[i], str)
+ } else {
+ if isPipe {
+ acc = append(acc, "-sep", "\\n", "-tab", "\\n")
+ } else {
+ acc = append(acc, "-sep", "\"\\n\"", "-tab", "\"\\n\"")
+ }
+ if isPipe {
+ acc = append(acc, "-element", str+",@"+str)
+ } else {
+ acc = append(acc, "-element", "\""+str+",@"+str+"\"")
+ }
+ }
+ }
+
+ return acc
+}
+
// HYDRA CITATION MATCHER COMMAND GENERATOR
// ProcessHydra generates extraction commands for NCBI's in-house citation matcher (undocumented)
@@ -8471,6 +8543,29 @@ func main() {
args = hydra
}
+ // BIOTHINGS EXTRACTION COMMAND GENERATOR
+
+ // -biopath takes a dotted exploration path for BioThings resources (undocumented)
+ if args[0] == "-biopath" {
+
+ args = args[1:]
+
+ biopath := ProcessBiopath(args, isPipe || usingFile)
+
+ if !isPipe && !usingFile {
+ // no piped input, so write output instructions
+ fmt.Printf("xtract")
+ for _, str := range biopath {
+ fmt.Printf(" %s", str)
+ }
+ fmt.Printf("\n")
+ return
+ }
+
+ // data in pipe, so replace arguments, execute dynamically
+ args = biopath
+ }
+
// ENTREZ2INDEX COMMAND GENERATOR
// -e2index shortcut for experimental indexing code (documented in rchive.go)
View it on GitLab: https://salsa.debian.org/med-team/ncbi-entrez-direct/compare/794603e88c010cdf21f660341356b7a8bdf1f2ce...e60cd640a7e6d597c2265b002bd4d00693ad3884
--
View it on GitLab: https://salsa.debian.org/med-team/ncbi-entrez-direct/compare/794603e88c010cdf21f660341356b7a8bdf1f2ce...e60cd640a7e6d597c2265b002bd4d00693ad3884
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20190227/e350ea0d/attachment-0001.html>
More information about the debian-med-commit
mailing list