variable_interval_1_2017: variable_interval_1_2017 dataset

Description Usage Format Subjects VI schedule Stimuli Reinforcement delivery Response recording Session duration Homecages Experimental chamber and apparatus Software Additional notes See Also Examples

Description

Data from a single variable-interval experiment. 11 pigeons for subjects Arranged inter-reinforcement intervals: 30s, 60s, 240s. Reinforced by 2s access to wheat. Session dueation was 1800s.

Usage

1

Format

A data.table.

Subjects

11 pigeons with subject labels: 221, 222, 223, 224, 225, S01, S02, S03, S04, S05, S06.

Because of injury, S01 was removed from the study.

VI schedule

A reinforcement delivery is arranged by sampling inter-reinforcement intervals from an Exponential distribution. The arranged inter-reinforcement intervals were: 30s, 60s, and 240s. As an example, for VI30s, the inter-reinforcement intervals were drawn from an Exponential( lambda = 1/30 ) distribution. See the Experiment and VI columns.

Stimuli

During the session, a single response key was lit red. When reinforcement was delivered, the keylight was turned off. A houselight was lit for the duration of the session.

Reinforcement delivery

Reinforcement deliveries were 2s access to wheat.

Response recording

Responses with inter-response times shorter than 0.1s were recorded (exclusive). Responses that occurred faster than 0.1s after the preceeding response were not recorded.

Session duration

Sessions lasted 1800s.

Homecages

Pigeons were kept in homecages in which water and grit were freely available.

Experimental chamber and apparatus

The experiments were conducted in MED Associates experimental chambers. These chambers were located in the same room as the home cages. The experimental chambers were themselves contained in a larger box that provided sound shielding and ventilation. For the experimental chambers, see http://www.med-associates.com/product/extra-tall-modular-test-chamber/. Each experimental chamber had dimensions: 300mm, 320mm, 2400mm (height, width, depth). Each chamber had a waste pan, see http://www.med-associates.com/product/stainless-steel-waste-pan/ and a steel grid for the subject to stand on, see http://www.med-associates.com/product/stainless-steel-grid-floor-for-pigeon-narrow-spacing/. The larger box is similar to http://www.med-associates.com/product/standard-mdf-sound-attenuating-cubicle-with-full-size-viewing-window/ without the window. A fan provided white noise and ventilation.

Each chamber had a houselight.

A row of three response keys were located on one side of the chamber, 220mm above the floor and 80mm apart (centre to centre). Each key was 25mm in diameter. The stimuli were projected onto these response keys. See http://www.med-associates.com/product/response-key-with-lcd-stimulus-display/. Only the left key was used for this experiment. 0.1N of force was required to activate the response key.

A hopper filled with wheat was located behind a magazine aperture. The aperture was 80mm above the floor of the experimental chamber. The dimensions of the aperture was 50mm, 60mm, 45mm (height, width, depth). During reinforcement, a light above the magazine was lit and the hopper was raised for the duration of the reinforcement delivery.

Software

The experimental protocol was run and events were recorded with MED-PC.

Inline Pascal procedures were used to arrange the reinforcement delvieries. The random number generation in Pascal requires setting a seed. The way that Pascal sets seeds is that the seed is based on the time at which the set seed function was called. As a result, subjects that started their experiments at the same time had the first reinforcement arranged at the same time. The set seed function is called each time a random number is requested, so the subsequent reinforcements are arranged at different times due to the variability in the organisms' responding.

Additional notes

A bug occurred with MED-PC, where a reinforcement delivery that overlapped with the end of the session caused a response to be recorded at the end of the session. For example, if reinforcement was delivered at 1799 seconds, the reinforcement delivery would have extended to 1801 seconds. This resulted in a response to be recorded at 1800 seconds. These responses have been removed from the event records. But the resp counter in the resp column still has this extra response in it. Hence, calculating molar rates from the resp column will be incorrect without correcting for this.

We had a problem with the hardwhare where the response keys would "bounce" after some responses with a particular response topography. This resulted in more than one response being recorded for some key pecks. An attempt to remedy the key bounding was to only record responses with inter-response times longer than or equal to 0.1s. However, the duration of the bouncing was on the order of 0.1s. Therefore, in some cases, the key bounces are recorded. This is evident when examining the inter-response time distributions. For many subjects, there is a group of inter-response times around 0.1s to 0.15s that are separate from all of the other inter-response times. In some cases, pigeons may "nibble" on the key resulting in some legitimate response times around this 0.1s to 0.15s band; in these cases, it is difficult to tell which responses are "nibbles" and which are keybounces. See examples.

See Also

import_medpc_to_formal_event_record For the function that read the data from the raw files.

event_record For the formal_event_record class.

variable_interval_1_2017_tibble for the same dataset but with tibbles (i.e. data frames) instead of formal_event_records or data.tables.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#### Code for reading the raw files and producing the data file ####

file_path = "I:/Data" variable_arrays = list( C = c("resp","rft") )
event_arrays = list( X = c("resp_time" = 1, "rft_time" = 2, "start" = 9 ) )
general_arrays = list( J = "arranged_vi" ) variable_interval_1_2017 =
import_medpc_to_formal_event_record( "Backup", variable_arrays, event_arrays,
general_arrays, file_path = file_path, round = 2 )

#Fix some bad labels
variable_interval_1_2017[ Experiment == "vi_30240", Experiment := "vi_240" ]
variable_interval_1_2017[ MSN == "new_don_vi_60", Experiment := "vi_60" ] #Take out subject 226
and S01 variable_interval_1_2017 = variable_interval_1_2017[ (Subject != 226 & Subject != "S01"), ]

#Fix column names
setnames( variable_interval_1_2017, c("Start Date","End Date" ), c(
"Start_Date", "End_Date" ) ) #Fix the dates variable_interval_1_2017[ , Start_Date := as.Date(
Start_Date, format = "%m/%d/%y" ) ] variable_interval_1_2017[ , End_Date := as.Date( End_Date,
format = "%m/%d/%y" ) ]

#Add numerical values for the VI
switch_keys = list( vi_30 = 30, vi_60 = 60,
vi_240 = 240 ) switch_fx = function( value, switch_keys ){ switch_keys = c(
list( EXPR = value ), switch_keys ) do.call( switch, switch_keys ) } variable_interval_1_2017[ ,
VI :=  vapply( Experiment, function(x) switch_fx( x, switch_keys ), FUN.VALUE

#Order by subjects, date
setorder( variable_interval_1_2017, Subject, Start_Date )

#Add number for vi sessions
variable_interval_1_2017[ , VI_session := rep(1:20) ]

#Save the data
save( variable_interval_1_2017, file = "variable_interval_1_2017.RData")

### Showing small inter-response times and bouncing keys ####
library( CAB )
working_data = copy( variable_interval_1_2017 )
working_data[ ,
   c( "resp_rate", "rft_rate") := transpose( lapply( event_record,
       function(x){
           compute.session_rates(
               data = x,
               event_offsets = list( rft_time = -2 ),
               dims = c("resp_time", "rft_time"),
               session_duration = 1800
           )
       } ) )
]

irts = working_data[ , unlist( irt, use.names = F ), by = Subject ]
# Subject 221 irts
hist( irts[ Subject == 221, V1 ], breaks = 10000 ] )
# Subject 221 small irts
# Note the small group around 0.1s. These are from the bouncing keys.
hist( irts[ Subject == 221, V1 ], breaks = 100000 ], xlim = c(0, 1) )

#Subject 224 irts
hist( irts[ Subject == 224, V1 ], breaks = 10000 ] )
# Subject 224 small irts
# Note the large group smaller than 0.2s. These are from a combination of "nibbling" responses and bouncing keys.
hist( irts[ Subject == 224, V1 ], breaks = 100000 ], xlim = c(0, 1) )

Don-Li/CABdata documentation built on May 6, 2019, 2:53 p.m.