Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
E
ensembl
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Iterations
Wiki
Requirements
Jira
Code
Merge requests
1
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package Registry
Container Registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
ensembl-gh-mirror
ensembl
Commits
dc747ab5
Commit
dc747ab5
authored
20 years ago
by
Arne Stabenau
Browse files
Options
Downloads
Patches
Plain Diff
extensions/bugfixes
parent
9821b80f
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
modules/Bio/EnsEMBL/AffyArray.pm
+28
-5
28 additions, 5 deletions
modules/Bio/EnsEMBL/AffyArray.pm
modules/Bio/EnsEMBL/AffyFeature.pm
+26
-4
26 additions, 4 deletions
modules/Bio/EnsEMBL/AffyFeature.pm
modules/Bio/EnsEMBL/AffyProbe.pm
+82
-29
82 additions, 29 deletions
modules/Bio/EnsEMBL/AffyProbe.pm
with
136 additions
and
38 deletions
modules/Bio/EnsEMBL/AffyArray.pm
+
28
−
5
View file @
dc747ab5
...
...
@@ -42,7 +42,7 @@ use warnings;
package
Bio::EnsEMBL::
AffyArray
;
use
Bio::EnsEMBL::Utils::
Argument
;
use
Bio::EnsEMBL::Utils::
Exception
qw( throw )
;
use
Bio::EnsEMBL::Utils::
Exception
qw( throw
warning
)
;
use
vars
qw(@ISA)
;
...
...
@@ -60,32 +60,53 @@ sub new {
rearrange
(['
NAME
',
'
INCLUDED_IN
',
'
PROBECOUNT
',
'
SETSIZE
'],
@
_
);
$self
->
{'
name
'}
=
$name
;
$self
->
{'
superset
'}
=
$superset
;
$self
->
{'
name
'}
=
$name
if
(
defined
$name
)
;
$self
->
{'
superset
'}
=
$superset
if
(
defined
$superset
)
;
$self
->
{'
probecount
'}
=
$probecount
;
$self
->
{'
setsize
'}
=
$setsize
;
$self
->
{'
probecount
'}
=
$probecount
if
(
defined
$probecount
)
;
$self
->
{'
setsize
'}
=
$setsize
if
(
defined
$setsize
)
;
return
$self
;
}
sub
get_all_AffyProbes
{
my
$self
=
shift
;
if
(
$self
->
adaptor
()
&&
$self
->
dbID
()
)
{
my
$probeAdaptor
=
$self
->
adaptor
()
->
db
()
->
get_AffyProbeAdaptor
();
my
$probes
=
$probeAdaptor
->
fetch_all_by_AffyArray
(
$self
);
return
$probes
;
}
else
{
warning
(
"
Need database connection to retrieve Probes
"
);
return
[]
;
}
}
sub
name
{
my
$self
=
shift
;
$self
->
{'
name
'}
=
shift
if
(
@
_
);
if
((
!
exists
$self
->
{'
name
'})
&&
$self
->
{'
dbID
'}
&&
$self
->
{'
adaptor
'}
)
{
$self
->
adaptor
->
fetch_attributes
(
$self
);
}
return
$self
->
{'
name
'};
}
sub
setsize
{
my
$self
=
shift
;
$self
->
{'
setsize
'}
=
shift
if
(
@
_
);
if
((
!
exists
$self
->
{'
setsize
'})
&&
$self
->
{'
dbID
'}
&&
$self
->
{'
adaptor
'}
)
{
$self
->
adaptor
->
fetch_attributes
(
$self
);
}
return
$self
->
{'
setsize
'};
}
sub
probecount
{
my
$self
=
shift
;
$self
->
{'
probecount
'}
=
shift
if
(
@
_
)
;
if
((
!
exists
$self
->
{'
probecount
'})
&&
$self
->
{'
dbID
'}
&&
$self
->
{'
adaptor
'}
)
{
$self
->
adaptor
->
fetch_attributes
(
$self
);
}
return
$self
->
{'
probecount
'};
}
...
...
@@ -98,6 +119,8 @@ sub superset {
(
ref
(
$superset
)
&&
$superset
->
isa
(
"
Bio::EnsEMBL::AffyArray
"
));
}
$self
->
{'
superset
'}
=
$superset
;
}
elsif
((
!
exists
$self
->
{'
superset
'})
&&
$self
->
{'
dbID
'}
&&
$self
->
{'
adaptor
'}
)
{
$self
->
adaptor
->
fetch_attributes
(
$self
);
}
return
$self
->
{'
superset
'};
}
...
...
This diff is collapsed.
Click to expand it.
modules/Bio/EnsEMBL/AffyFeature.pm
+
26
−
4
View file @
dc747ab5
...
...
@@ -63,16 +63,23 @@ sub new {
my
$self
=
$class
->
SUPER::
new
(
@
_
);
my
(
$probe
,
$probeset
)
=
rearrange
(['
PROBE
',
'
PROBESE
T
'],
my
(
$probe
,
$probeset
,
$mismatchcount
)
=
rearrange
(['
PROBE
',
'
MISMATCHCOUN
T
'
],
@
_
);
$self
->
{'
probe
'}
=
$probe
;
$self
->
{'
probeset
'}
=
$probese
t
;
$self
->
{'
mismatchcount
'}
=
$mismatchcoun
t
;
return
$self
;
}
sub
new_fast
{
my
(
$class
,
$hashref
)
=
@_
;
return
bless
(
$hashref
,
$class
);
}
# if the probe is set, take it from there
sub
probeset
{
...
...
@@ -84,6 +91,19 @@ sub probeset {
return
$self
->
{'
probeset
'};
}
sub
mismatchcount
{
my
$self
=
shift
;
$self
->
{'
mismatchcount
'}
=
shift
if
@_
;
return
$self
->
{'
mismatchcount
'};
}
sub
probelength
{
my
$self
=
shift
;
$self
->
length
();
}
# lazy load this
sub
probe
{
my
$self
=
shift
;
...
...
@@ -95,7 +115,9 @@ sub probe {
}
$self
->
{'
probe
'}
=
$probe
;
}
else
{
if
(
defined
$self
->
adaptor
()
&&
$self
->
dbID
()
)
{
if
(
!
defined
$self
->
{'
probe
'}
&&
defined
$self
->
adaptor
()
&&
$self
->
dbID
()
)
{
$self
->
{'
probe
'}
=
$self
->
adaptor
()
->
db
()
->
get_AffyProbeAdaptor
()
->
fetch_by_AffyFeature
(
$self
);
}
...
...
This diff is collapsed.
Click to expand it.
modules/Bio/EnsEMBL/AffyProbe.pm
+
82
−
29
View file @
dc747ab5
...
...
@@ -39,7 +39,7 @@ use warnings;
package
Bio::EnsEMBL::
AffyProbe
;
use
Bio::EnsEMBL::Utils::
Argument
qw( rearrange )
;
use
Bio::EnsEMBL::Utils::
Exception
qw( throw )
;
use
Bio::EnsEMBL::Utils::
Exception
qw( throw
warning
)
;
use
vars
qw(@ISA)
;
...
...
@@ -53,55 +53,125 @@ sub new {
my
$self
=
$class
->
SUPER::
new
(
@
_
);
my
(
$arrays
,
$probenames
,
$probeset
,
$arraynames
)
=
rearrange
(['
ARRAYS
',
'
PROBE
NAMES
',
'
PROBESET
',
'
ARRAYNAMES
'
],
my
(
$arrays
,
$probenames
,
$probeset
,
$arraynames
,
$arrayname
,
$probename
,
$array
)
=
rearrange
(['
ARRAYS
',
'
NAMES
',
'
PROBESET
',
'
ARRAYNAMES
'
,
'
ARRAYNAME
',
'
NAME
',
'
ARRAY
'
],
@
_
);
$self
->
arrays
(
$arrays
)
if
defined
(
$arrays
);
$self
->
probenames
(
$probenames
)
if
defined
$probenames
;
$self
->
arraynames
(
$arraynames
)
if
$arraynames
;
my
$i
;
if
(
$probenames
&&
ref
(
$probenames
)
eq
"
ARRAY
")
{
$i
=
scalar
(
@$probenames
);
}
elsif
(
defined
$probename
)
{
if
(
defined
$arrayname
)
{
$self
->
add_arrayname_probename
(
$arrayname
,
$probename
);
}
elsif
(
defined
$array
)
{
$self
->
add_Array_probename
(
$array
,
$probename
);
}
else
{
throw
(
"
Provide array or arrayname with probename
"
);
}
}
else
{
throw
(
"
You need to provide probenames to generat a probe
"
);
}
# check the parameters and fill internal data structures
if
(
$arrays
&&
ref
(
$arrays
)
eq
"
ARRAY
"
)
{
if
(
scalar
(
@$arrays
)
!=
$i
)
{
throw
(
"
Need a probename for each array
"
);
}
for
(
$i
=
0
;
$i
<
scalar
(
@$probenames
);
$i
++
)
{
$self
->
add_Array_probename
(
$arrays
->
[
$i
],
$probenames
->
[
$i
]
);
}
}
elsif
(
$arraynames
&&
ref
(
$arraynames
))
{
if
(
scalar
(
@$arraynames
)
!=
$i
)
{
throw
(
"
Need a probename for each array
"
);
}
for
(
$i
=
0
;
$i
<
scalar
(
@$probenames
);
$i
++
)
{
$self
->
add_arrayname_probename
(
$arraynames
->
[
$i
],
$probenames
->
[
$i
]
);
}
}
elsif
(
!
defined
$probename
)
{
throw
(
"
Need to provide arrays or names for a probe
"
);
}
$self
->
{'
probeset
'}
=
$probeset
;
return
$self
;
}
sub
add_Array
{
sub
add_Array
_probename
{
my
$self
=
shift
;
my
(
$array
,
$probename
)
=
@_
;
$self
->
{'
arrays
'}
||=
{};
$self
->
{'
arrays
'}
->
{
$array
->
name
()}
=
$array
;
$self
->
{'
probenames
'}
->
{
$array
->
name
()}
=
$probename
;
}
sub
get_all_AffyFeatures
{
my
$self
=
shift
;
if
(
$self
->
adaptor
()
&&
$self
->
dbID
()
)
{
}
elsif
(
defined
$self
->
{'
features
'}
)
{
return
$self
->
{'
features
'};
}
else
{
warning
(
"
Need to have attached features or database connection for that
"
);
return
[]
;
}
}
sub
get_all_AffyArrays
{
my
$self
=
shift
;
if
(
defined
$self
->
{'
arrays
'}
)
{
return
[
values
%
{
$self
->
{'
arrays
'}}];
}
elsif
(
$self
->
adaptor
()
&&
$self
->
dbID
())
{
# retrieve them by name
my
$array_adaptor
=
$self
->
adaptor
()
->
db
->
get_AffyArrayAdaptor
();
}
else
{
warning
(
"
Need database connection to make Arrays from names
"
);
return
[]
;
}
}
sub
get_all_complete_names
{
my
$self
=
shift
;
my
@result
=
();
while
(
my
(
$arrayname
,
$probename
)
=
each
%
{
$self
->
{'
probenames
'}}
)
{
push
(
@result
,
(
$arrayname
.
"
:
"
.
$self
->
probeset
()
.
"
:
"
.
$probename
));
}
return
\
@result
;
}
sub
get_complete_name
{
my
$self
=
shift
;
my
$arrayname
=
shift
;
my
$probename
=
$self
->
{'
probenames
'}
->
{
$arrayname
};
if
(
!
defined
$probename
)
{
throw
(
"
Unknown array name
"
);
}
$probename
=
$arrayname
.
"
:
"
.
$self
->
probeset
()
.
"
:
"
.
$probename
;
return
$probename
;
}
sub
get_all_probenames
{
my
$self
=
shift
;
return
[
values
%
{
$self
->
{'
probenames
'}}
]
}
sub
get_probename
{
my
$self
=
shift
;
my
$arrayname
=
shift
;
my
$probename
=
$self
->
{'
probenames
'}
->
{
$arrayname
};
if
(
!
defined
$probename
)
{
throw
(
"
Unknown array name
"
);
}
return
$probename
;
}
sub
add_array
_
name
{
sub
add_array
name_probe
name
{
my
$self
=
shift
;
my
(
$affy_array
,
$probename
)
=
@_
;
my
(
$arrayname
,
$probename
)
=
@_
;
$self
->
{'
probenames
'}
->
{
$arrayname
}
=
$probename
;
}
...
...
@@ -113,24 +183,7 @@ sub probeset {
return
$self
->
{'
probeset
'};
}
# lazy load this
sub
probe
{
my
$self
=
shift
;
if
(
@
_
)
{
my
$probe
=
shift
;
if
(
$probe
)
{
throw
(
"
Need Bio::EnsEMBL::AffyProbe as probe
"
)
unless
(
ref
(
$probe
)
&&
$probe
->
isa
(
"
Bio::EnsEMBL::AffyProbe
"
));
}
$self
->
{'
probe
'}
=
$probe
;
}
else
{
if
(
defined
$self
->
adaptor
()
&&
$self
->
dbID
()
)
{
$self
->
{'
probe
'}
=
$self
->
adaptor
()
->
db
()
->
get_AffyProbeAdaptor
()
->
fetch_by_AffyFeature
(
$self
);
}
}
return
$self
->
{'
probe
'};
}
1
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment