- Author:
- vickieshim <v.shim@auckland.ac.nz>
- Date:
- 2022-10-18 13:04:05+13:00
- Desc:
- updated muscles
- Permanent Source URI:
- https://staging.physiomeproject.org/workspace/87f/rawfile/398598d9679e10a030fd8ee04e5f28873f972d5d/NECK/change_basis_functions_in_multiple_files.pl
#!/usr/bin/perl -w
# Declare the subroutines
sub trim($);
sub ltrim($);
# Perl trim function to remove whitespace from the start and end of the string
sub trim($)
{
my $string = shift;
$string =~ s/^\s+//;
$string =~ s/\s+$//;
return $string;
}# Left trim function to remove leading whitespace
sub ltrim($)
{
my $string = shift;
$string =~ s/^\s+//;
return $string;
}
@muscles = ("left_abductor_digiti_minimi_hand", "left_abductor_pollicis_brevis", "left_abductor_pollicis_longus","left_anconeus", "left_biceps_brachii","left_brachialis","left_brachioradialis","left_coracobrachialis");
@upper_arm = ("left_biceps_brachii", "left_coracobrachialis","left_brachialis","left_triceps_brachii");
@anterior_arm = ("left_flexor_carpi_ulnaris", "left_flexor_carpi_radialis","left_pronator_teres","left_flexor_digitorum_superficialis","left_flexor_digitorum_profundus","left_flexor_pollicis_longus","left_pronator_quadratus");
@posterior_arm = ("left_brachioradialis","left_extensor_carpi_radialis_longus","left_extensor_carpi_radialis_brevis","left_extensor_digiti_minimi","left_extensor_carpi_ulnaris","left_anconeus","left_supinator","left_abductor_pollicis_longus","left_extensor_pollicis_brevis","left_extensor_pollicis_longus","left_extensor_indicis");
@hand = ("left_palmaris_brevis","left_dorsal_interossei_I_hand","left_dorsal_interossei_II_hand","left_dorsal_interossei_III_hand","left_dorsal_interossei_IV_hand","left_palmar_interossei_I","left_palmar_interossei_II","left_palmar_interossei_III","left_lumbrical_I_hand","left_lumbrical_II_hand","left_lumbrical_III_hand","left_lumbrical_IV_hand");
$LOOP = scalar(@upper_arm);
@bones = ("CAPITATE","DISTAL_PHALANX_I","DISTAL_PHALANX_II","DISTAL_PHALANX_III","DISTAL_PHALANX_IV","DISTAL_PHALANX_V","HAMATE","HUMERUS","METACARPAL_I","METACARPAL_II","MIDDLE_PHALANX_II","MIDDLE_PHALANX_III","MIDDLE_PHALANX_IV","MIDDLE_PHALANX_V","PISIFORM","PROXIMAL_PHALANX_I","PROXIMAL_PHALANX_II","PROXIMAL_PHALANX_III","PROXIMAL_PHALANX_IV","PROXIMAL_PHALANX_V","RADIUS","SCAPHOID","TRAPEZIUM","TRAPEZOID","TRIQUETRUM","ULNA");
@bones = ("DIGASTRICUS_ANTERIOR","DIGASTRICUS_POSTERIOR","GENIOHYOIDEUS","LONGUS_CAPITIS","LONGUS_COLLI_INFERIOR","LONGUS_COLLI_SUPERIOR","LONGUS_COLLI_VERTICAL","MYLOHYOIDEUS","OMOHYOIDEUS","PHARYNGEAL_CONSTRICTOR","PLATYSMA","RECTUS_CAPITIS_ANTERIOR","RECTUS_CAPITIS_LATERALIS","SCALENUS_ANTERIOR","SCALENUS_MEDIUS","SCALENUS_POSTERIOR","SPLENIUS_CAPITIS","STERNOCLEIDOMASTOID","STERNOHYOIDEUS","STERNOTHYREOIDEUS","STYLOHYOIDEUS","THYREOHYOIDEUS","TRAPEZIUS");
@missing = ("LUNATE","METACARPAL_III","METACARPAL_IV","METACARPAL_V");
$LOOP= scalar(@bones);
$start_dir = "/hpc_atog/bshi013/SPARC/ANATML/NECK/";
for($i=0; $i < $LOOP; $i++){
chdir $start_dir;
system ('pwd');
chdir $bones[$i];
system ('pwd');
system('cp', $bones[$i].".IPNODE", $bones[$i].".ipnode");
system('cp', $bones[$i].".IPELEM", $bones[$i].".ipelem");
open(INPUT,"<$bones[$i].ipelem") || die;
open (IPDATA, ">$bones[$i]_correct.ipelem") || die ("NO ipdata EXISTS");
while($line = <INPUT>){
if($line =~ /The basis function type for geometric variable 1 is/){
printf (IPDATA " The basis function type for geometric variable 1 is [1]: 1\n");
}
elsif($line =~ /The basis function type for geometric variable 2 is/){
printf (IPDATA " The basis function type for geometric variable 2 is [1]: 1\n");
}elsif($line =~ /The basis function type for geometric variable 3 is/){
printf (IPDATA " The basis function type for geometric variable 3 is [1]: 1\n");
}
elsif($line =~ /Enter the 8 /){
@node_numbers = split(':',$line);
$number_only = trim($node_numbers[1]);
#print " What is number only ? $number_only";
@numbers = split(' ', $number_only);
$array_length = @numbers;
#print "the length of the array is $array_length";
if($array_length != 8){
@numbers = split(' ', $number_only);
}
printf (IPDATA " Enter the 8 global numbers for basis 1: %5d %5d %5d %5d %5d %5d %5d %5d\n",$numbers[0],$numbers[1],$numbers[2],$numbers[3],$numbers[4],$numbers[5],$numbers[6],$numbers[7]);
}else{
printf (IPDATA "$line");
}
}
}